Как стать автором
Обновить
2
Артур Соловьев @artur_solovievread⁠-⁠only

Программист

Отправить сообщение

68 непрошеных советов

Время на прочтение6 мин
Количество просмотров76K
Это перевод самого недавнего поста Кевина Келли, со-основателя журнала Wired, писателя, фотографа, футуролога.


Сегодня мой день рождения. Мне 68. Хочется пододвинуть кресло-качалку и пораздавать советы юнцам. Вот 68 непрошеных советов, которые я предлагаю всем вам как подарок ко дню рождения.

  • Научитесь учиться у тех, с кем вы не согласны, или даже тех, кто вас раздражает. Нет ли истины в их убеждениях?
  • Энтузиазм эквивалентен 25 баллам IQ.
  • Всегда требуйте дедлайн. Дедлайн избавляет от лишнего и заурядного. Он останавливает попытки достичь совершенного, поэтому вам приходится делать необычное. Необычное лучше.

Читать дальше →
Всего голосов 69: ↑62 и ↓7+78
Комментарии106

Практическое руководство по разработке бэкенд-сервиса на Python

Время на прочтение57 мин
Количество просмотров176K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+66
Комментарии48

Как создать мультиагентную транспортную модель

Время на прочтение5 мин
Количество просмотров11K
Привет, Хабр!

Представим, что у нас есть задача построить новую дорогу. Можно построить магистраль с двумя полосами в каждую сторону, но что, если этого будет недостаточно? Или, наоборот, окажется, что хватило бы и одной полосы, но для реализации проекта пришлось выкупать множество земельных участков? В обоих случаях принятое решение будет неэффективным. Чтобы минимизировать подобные риски, транспортные планировщики обращаются за помощью к компьютерному моделированию. Эта статья – краткий экскурс в мир мультиагентного моделирования.


Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии17

Физика для мобильного PvP шутера и как мы подружили её с ECS

Время на прочтение26 мин
Количество просмотров10K
Всем привет! В этой статье мы расскажем про личный опыт работы с физическими движками для мультиплеерного шутера и главным образом сфокусируемся на взаимодействии физики и ECS: на какие грабли мы наступили в процессе работы, чему научились, почему остановились на конкретных решениях.


Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии14

Как убивают малый бизнес в России: пример электронных денег

Время на прочтение11 мин
Количество просмотров31K
электронные деньги под запретомВсякий раз, как пишу материал на какой-то сайт, приходится пояснять, что работаю в IT-сфере юристом. Это очень важно, поскольку IT, особенно в России, требует определенной квалификации и специализации. И на самом деле не так много людей занимаются углублённо именно этой отраслью, особенно электронными платежами и e-commerce (пожалуй, выделил бы в первую очередь Екатеринбург, Питер и Москву).

В этой статье никоим не хочу обидеть крупные российские компании или тем более представителей публичной власти. Её цель совершенно иная: представить материал обществу с целью раскрытия тенденций рынка на основе анализа законодательства до момента его принятия и после, то есть выделить практический экстракт правовых норм, которые на мой взгляд создаются в разрыве как от реальной правовой действительности, так и от тех принципов, на которых должно базироваться развитие правовой системы (даже не системы права) в целом.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии102

Большой гайд по A/B-тестированию

Время на прочтение18 мин
Количество просмотров66K
В интернете масса информации об A/B-тестированиях, но многие до сих пор проводят их неправильно. Ошибиться действительно легко, поэтому подобные исследования требуют серьезной предварительной подготовки. В этой статье рассматриваются основные аспекты A/B-тестирования, которые необходимо учитывать для эффективного анализа веб-страниц.

Что такое A/B-тестирование?


A/B тестирование (сплит-тестирование) разделяет трафик в соотношении 50/50 между разными версиями страницы. По сути, этот метод — новое название для старой техники, известной как «контролируемый эксперимент».

Для проверки эффективности новых лекарств специалисты проводят сплит-тесты. Фактически, большинство исследовательских экспериментов можно назвать A/B-тестированием. Они включают в себя гипотезу, основной объект исследования, его вариацию и результат, представленный в виде статистических данных.

Вот и все. В качестве примера можно привести простое A/B-тестирование, при котором трафик в соотношении 50/50 делится между основной страницей и ее вариацией:


Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Ханс Петер Лун и рождение алгоритма хеширования

Время на прочтение10 мин
Количество просмотров9.7K
Алгоритм хеширования инженера IBM дал компьютерам возможность быстрого поиска документов, ДНК и баз данных


Начиная с 1940-х годов, Лун разрабатывал машины и системы для анализа информации, в частности, широко используемый в настоящее время алгоритм хеширования, который он предложил в качестве способа сортировки как чисел, так и текста.

В ноябре 1958, во время шестидневной международной конференции, посвященной научной информации, изобретатель Ханс Петер Лун продемонстрировал несколько электромеханических машин. Выглядели они весьма заурядно. Как и все прочие вычислительные устройства того времени, они были угловатыми, практичными и предназначались для приема и сортировки стопок перфокарт в слотах и корзинах.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии1

Руководство по Git. Часть №1: все, что нужно знать про каталог .git

Время на прочтение4 мин
Количество просмотров59K



Начало использования Git напоминает посещение новой страны, языка которой вы не знаете. Пока ясно, где вы и куда идти, все хорошо, но стоит заблудиться — и начинаются большие проблемы.

В интернете размещена масса руководств по командам Git, но в этой статье работа Git рассмотрена глубже, чем просто изучение команд.

Это первая часть гайда по Git из блога Pierre de Wulf в переводе команды Mail.ru Cloud Solutions
Читать дальше →
Всего голосов 47: ↑36 и ↓11+42
Комментарии64

Пример Makefile

Время на прочтение7 мин
Количество просмотров75K
Написание makefile иногда становится головной болью. Однако, если разобраться, все становится на свои места, и написать мощнейший makefile длиной в 40 строк для сколь угодно большого проекта получается быстро и элегантно.

Внимание! Предполагаются базовые знания утилиты GNU make.
Читать дальше →
Всего голосов 126: ↑118 и ↓8+110
Комментарии59

Пишем свой XML-парсер

Время на прочтение9 мин
Количество просмотров71K

Предыстория


Решив запустить небольшой сервис на подаренном мне хостинге, оказалось, что там нету ни одного xml-парсера: ни SimpleXML, ни DOMXML, а только libxml и xml-rpc. Недолго думая, я решил написать свой. Мне требовался разбор не сложных rss-лент, поэтому хватило достаточно просто класса xml => array.[1]

Но для интересной статьи этого было явно не достаточно, поэтому сейчас мы напишем свою замену для SimpleXML. А заодно пробежимся по многим интересным возможностям PHP 5.

Постановка задачи


Доступ к элементам у нас будет осуществляться как доступ к свойствам класса, например $xml->element, а доступ к атрибутам элемента, как к массиву, те $xml->element['attr'], также реализуем проверку на существование атрибута при помощи isset() и итерацию по элементам при помощи foreach. И так, начнем.
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии42

Спектральный метод на примере простых задач матфизики

Время на прочтение6 мин
Количество просмотров17K
В этой статье описан псевдоспектральный метод численного решения уравнений матфизики, используемый в вычислительной гидродинамике, геофизике, климатологии и во многих других областях.

image

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии5

Стратификация, или как научиться доверять данным

Время на прочтение6 мин
Количество просмотров17K

Посмотрите на эти два набора точек и подумайте: какой из них вам кажется более «случайным»? Распределение на левом рисунке явно неравномерно. Есть места, в которых точки сгущаются, а есть и такие, в которых точек почти нет: из-за этого даже может показаться, что левый график более тёмный. На правом рисунке локальные сгущения и разрежения тоже присутствуют, но меньше бросаются в глаза.




Меж тем, именно левый график получен при помощи «честного» генератора случайных чисел. Правый график тоже содержит сплошь случайные точки; но эти точки сгенерированы так, чтобы все маленькие квадраты содержали равное количество точек.


Стратификация — метод выбора подмножества объектов из генеральной совокупности, разбитой на подмножества (страты). При стратификации объекты выбираются таким образом, чтобы итоговая выборка сохраняла соотношения размеров страт (либо контролируемо нарушала эти соотношения, см. пункт 3). Скажем, в рассмотренном примере генеральная совокупность — точки внутри единичного квадрата; стратами являются наборы точек внутри квадратов меньшего размера.


Стратификацию разумно применять при любом семплинге. Скажем, в социологических исследованиях необходимо соблюдать стратификацию как минимум по возрасту и месту проживания респондентов. В машинном обучении стратификация бывает полезна как на этапе сбора данных, так в процессе кросс-валидации .

Читать дальше →
Всего голосов 10: ↑9 и ↓1+12
Комментарии6

Разбираемся с алгоритмом коллапса волновой функции

Время на прочтение10 мин
Количество просмотров16K

После появления DeBroglie и Tessera меня много раз просили объяснить, как они работают. Генерирование может выглядеть как волшебство, но лежащие в его основе правила на самом деле просты.
Всего голосов 47: ↑47 и ↓0+47
Комментарии2

Увеличение чувствительности A/Б-тестов с помощью Cuped. Доклад в Яндексе

Время на прочтение12 мин
Количество просмотров32K
CUPED (Controlled-experiment Using Pre-Experiment Data) — техника A/Б-экспериментов, которую стали применять в продакшене сравнительно недавно. Она позволяет увеличить чувствительность метрик за счёт использования данных, полученных ранее. Чем больше чувствительность, тем более слабые изменения можно замечать и учитывать в эксперименте. Первой компанией, внедрившей CUPED, была Microsoft. Теперь этой техникой пользуются многие международные фирмы. В своём докладе Валерий Бабушкин venheads объяснил, в чём заключается смысл CUPED и каких результатов можно достичь, а перед этим разобрал метод стратификации, который также улучшает чувствительность.


— Меня зовут Валерий Бабушкин, я директор по моделированию и анализу данных в X5 Retail Group и советник в Яндекс.Маркете. В свободное время преподаю в Высшей школе экономики и частенько летаю в Казахстан, преподаю в Нацбанке Казахстана.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+8
Комментарии0

[Мастер-класс] Практические атаки на интерфейс USB

Время на прочтение2 мин
Количество просмотров6.1K


Пока бушует карантин, мы решили перенести наши мероприятия в онлайн.

19 апреля в воскресенье на Youtube пройдет онлайн трансляция мастер-класса по практическими атаками на стек USB. Все атаки будут показаны на реальном оборудовании в прямом эфире, во время трансляции можно будет задавать вопросы докладчику. Мы разберем практические способы анализа USB-протоколов, железо и софт для отладки USB, а также специализированные инструменты для атак.

Докладчик: Андрей xairy Коновалов


Инженер-программист, работает в Google. Разрабатывает инструменты поиска багов в ядре Linux (в том числе syzkaller и KASAN). Как исследователь интересуется выявлением уязвимостей и разработкой эксплойтов. Обнаружил множество уязвимостей в ядре Linux, в том числе CVE-2017-7308 в сетевом стеке и CVE-2016-2384 драйвере USB-MIDI. Выступления, разработки, исследования: xairy.github.io

Ассистент: Павел zhovner

Ссылка на трансляцию


Начало в 19:00 по мск 19 апреля в воскресенье. Чтобы не пропустить трансляцию, нажмите на колокольчик на Youtube. Вопросы можно будет задавать в чате Youtube, в комментариях под этой статьей и в нашем чате в Telegram.


План мероприятия и ссылки
Всего голосов 9: ↑8 и ↓1+8
Комментарии6

Выдуманная история открытия собственного дела с печальным концом

Время на прочтение13 мин
Количество просмотров3.5K
Вечер, пятница. Почему бы не почитать одну историю с печальным концом? На Хабре ведь не приняты такие?

На днях мной был оставлен комментарий, в котором я в двух словах написал, что мой бизнес уничтожили в зачаточном состоянии. Судя по вопросам в личку на Хабре и в vk тема актуальная. Что-ж, попробую написать о том, как все было, хотя точности не обещаю. Писать о том, что я Д'Артаньян, а все негодяи — не буду, ведь вам нужна поучительная история, а не история-оправдание еще одного неудачника.

Сразу оговорюсь, я не помню о каком городе/районе идет речь, и в каком государстве это происходило, если было. Также не могу вспомнить имен и точных должностей. А потому любые совпадения случайны и не имеют никакого отношения ни к какой власти — официальной и неофициальной.
Читать дальше →
Всего голосов 167: ↑151 и ↓16+135
Комментарии157

Анализ дзета-функции Римана

Время на прочтение5 мин
Количество просмотров13K
В одном из разделов математики существует достаточно забавная задача про сумму чисел, связанных с натуральным рядом, и на первый взгляд кажется, что она достаточно проста, но при более глубоком погружении в тематику, приходит ощущение полной беспомощности.

Вся моя жизнь неразрывно связана с математикой. В голове постоянно рождаются мысли: «Почему именно так и какое этому объяснение?». Мне нравится находить разные способы решения интересных задач.
Читать дальше →
Всего голосов 21: ↑14 и ↓7+15
Комментарии99

Математика листьев: как один необычный куст изменил уравнение модели роста растений

Время на прочтение6 мин
Количество просмотров12K
Мы любим листья за их тень, осенние цвета, запах, а расположение листьев растения — это практичный способ определения их видов. Однако подробности того, как растения управляют расположением своих листьев, оставались в ботанике неразъяснимой загадкой. Один вид японских растений с необычным паттерном расположения листьев недавно позволил нам под неожиданным углом взглянуть на то, как почти все растения управляют этим расположением.

«Мы разработали новую модель для объяснения одного особенного паттерна расположения листьев (филлотаксиса). Но на самом деле он намного точнее отражает не только природу этого конкретного растения, но и широкое разнообразие практически всех паттернов расположения листьев, наблюдаемых в природе», — рассказывает доцент Ботанического сада Коисикава Токийского университета Мунэтака Сугияма.

Всё дело в углах



Листья на ветке O. japonica (вверху слева) и схематическое изображение филлотаксиса orixate (справа). Паттерн orixate демонстрирует необычный цикл смены углов листьев, состоящий из четырёх значений (от 180 градусов к 90 градусам, потом к 180 градусам и к 270 градусам). На изображении со сканирующего электронного микроскопа (в центре и внизу слева) показана зимняя почка Orixa japonica, в которой начинают расти листья. Зачатки листьев последовательно помечены от самого старого листа (P8) до самого молодого (P1). Точкой O помечена верхушка побега.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии7

Визуальная теория информации (часть 1)

Время на прочтение12 мин
Количество просмотров21K


Перевод интересного лонгрида посвященного визуализации концепций из теории информации. В первой части мы посмотрим как отобразить графически вероятностные распределения, их взаимодействие и условные вероятности. Далее разберемся с кодами фиксированной и переменной длины, посмотрим как строится оптимальный код и почему он такой. В качестве дополнения визуально разбирается статистический парадокс Симпсона.

Теория информации дает нам точный язык для описания многих вещей. Сколько во мне неопределенности? Как много знание ответа на вопрос А говорит мне об ответе на вопрос Б? Насколько похож один набор убеждений на другой? У меня были неформальные версии этих идей, когда я был маленьким ребенком, но теория информации кристаллизует их в точные, сильные идеи. Эти идеи имеют огромное разнообразие применений, от сжатия данных до квантовой физики, машинного обучения и обширных областей между ними.

К сожалению, теория информации может казаться пугающей. Я не думаю, что есть какая-то причина для этого. Фактически, многие ключевые идеи могут быть объяснены визуально!

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии7

Чтобы пацанам было не стыдно показать

Время на прочтение3 мин
Количество просмотров107K
Я стар и уже глуп, а у вас всё впереди, уважаемый программист. Но позвольте дать вам один совет, который наверняка поможет в вашей карьере – если, конечно, вы планируете остаться программистом.

Советы типа «писать красивый код», «хорошо комментировать свои доработки», «изучать современные фреймворки» — очень полезные, но, увы, второстепенные. Они идут прицепом к главному качеству программиста, которое надо в себе развивать.

Вот это главное качество: пытливый ум.
Читать дальше →
Всего голосов 251: ↑227 и ↓24+267
Комментарии172

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность