Pull to refresh
108
0
Павел Садовников @Siarshai

Программист

Send message

Музыка для игр: где брать треки инди-разработчикам

Reading time3 min
Views14K

Было время, когда музыка в видеоиграх представляла собой 8-битные мелодии. Но сегодня она такая же разнообразная, как и в других развлекательных жанрах. Есть мнение, что наибольший вклад в ее развитие вносят инди-разработчики, которые, обладая скромными бюджетами, не стесняются экспериментировать.

Сегодня мы расскажем о трех ресурсах, где можно найти royalty free треки для своих игровых экспериментов — IndieGameMusic, Unminus Music и cchound.

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments3

Интервалы: грядущая эволюция C++

Reading time8 min
Views22K
Уже скоро появится стандарт C++20, в который, скорее всего, добавят концепцию интервалов (ranges), однако мало кто знает, что они из себя представляют и с чем их едят. Доступных широкой аудитории русскоязычных источников про этого зверя мне найти не удалось, вследствие чего в данной статье я бы хотел подробнее про него рассказать, базируясь на лекции Arno Schödl «From Iterators to Ranges: The Upcoming Evolution Of the STL» с конференции Meeting C++ 2015-го года. Я постараюсь сделать эту статью максимально понятной для тех, кто впервые сталкивается с этим понятием, и одновременно расскажу про всевозможные фишки вроде интервальных адаптеров для тех, кто с этим понятием уже знаком и хочет узнать больше.

Библиотеки с ranges


На момент написания данной статьи можно выделить три основные библиотеки, реализующие интервалы:


Первая библиотека, по сути, прародитель данной концепции (что неудивительно, ведь чего только нет в собрании библиотек Boost :) ). Вторая — библиотека Эрика Ниблера (Eric Niebler), про неё будет рассказано позднее. И наконец, последняя библиотека, как нетрудно догадаться, написана компанией think-cell, которая, можно сказать, развила и усовершенствовала Boost.Range.
Читать дальше →
Total votes 40: ↑38 and ↓2+36
Comments36

Фантастические книги, которые вы могли пропустить в 2020 году

Reading time7 min
Views65K

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

Буду рад, если в комментариях поделитесь своими фантастическими находками.

Читать далее
Total votes 57: ↑54 and ↓3+51
Comments63

Куда идти за иммунитетом?

Reading time6 min
Views180K

Начну с того, что я не антипрививочник ни разу, скорее наоборот. Но вакцина вакцине рознь, особенно сейчас и от известного вируса. Итак, что же мы имеем на сегодня? 

Гамалеевский Спутник V. Нашумевшая и очень современная вакцина, впереди только генная терапия в чистом виде. Неудивительно, что именно сюда вложили столько сил, времени и средствОна же пока еще единственно возможная в нашей стране. Ее очевидные плюсы: максимальный иммунный ответ (помимо антител имеем клеточный иммунитет) при минимальных побочных эффектах. Но есть нюанс, про который почему-то если и говорят, то очень-очень мало и конечно же не в СМИ, а в специализированных медицинских пабликах. Сейчас объясню, о чем речь.

Данная вакцина представляет собой генетически модифицированный аденовирус, вернее два обезвреженных аденовируса (5-го и 26-го серотипов), которые вводятся в организм с промежутком в 3 недели. В геном каждого встроен ген спайк-белка ("шипа") коронавируса. По сути, это «машины», задачами которых является доставка важного «пассажира» по назначению. А дальше все идёт так, как заложено природой: аденовирус доставляет ген коронавируса в клетки, распаковывается там и начинает производить белки как «пассажира», так и свои. Кусочки этих белков выставляет заражённая клетка, обучая тем самым т-лимфоциты. После разрушения «клетки-фабрики», вирусные белки (именно белки, а не готовые заражать новые клетки вирионы, как при болезни) попадают в кровь, тем самым стимулируя производство антител. Заболеть невозможно, иммунитет формируется, и вроде бы все здорово. Но побочным эффектом этой вакцины является развитие иммунного ответа на сами аденовирусные компоненты вектора. В результате повторного введения, «машина с пассажиром» просто не успеет доехать до клетки, а будет сразу уничтожена антителами, которые образуются в результате предыдущего «знакомства». Получается, что Спутник V можно использовать только один раз. И это чревато даже не столько тем, что вакциной больше нельзя будет воспользоваться по назначению - напряженность иммунитета к коронавирусу все равно никому не известна, а случаи повторных заражений вроде бы есть, но малоПугает пожизненное ограничение на любую потенциально возможную аденовекторную генную терапию, в том числе и на лечение онкологии, которая может понадобиться в будущем. Все это сейчас активно развивается, а после такого «масштабного тестирования», дело пойдёт ещё быстрее. Но опять же, терапия эта может пригодиться, а может быть и нет, а иммунитет к вирусу нужен уже сегодня. Поэтому, здесь каждый выбирает для себя, что ему важнее. Вакцина получилась вполне нормальная, для пожилых - самое то. А вот на месте молодых (у них ведь есть все шансы в будущем  воспользоваться генной терапией), я бы призадумалась.

Слышала про разработку версии «Спутник-Лайт», для тех, кто бережёт (фигуру) иммунитет. Это будет однокомпонентная вакцина, сделаная на основании только одного серотипа. Этот вариант приятнее, но его выпуск планируется не раньше декабря 2021 года. 

Читать далее
Total votes 197: ↑168 and ↓29+139
Comments340

Что почитать менеджеру продукта или проекта: от исследований Канемана до мотивации Брэдбери

Reading time9 min
Views9.2K


Всем привет! В нашем совместном с МФТИ учебном проекте Технотрек есть семестровый курс по Product Management. Меня зовут Станислав, и я ведущий преподаватель этого курса, а также менеджер продукта в проекте DonationAlerts. Готовясь к курсу, я собрал внушительный список полезных материалов. Сделал для вас из этого списка подборку книг и блогов, которые будут полезны менеджерам продуктов или проектов.

Список собран на основе моего опыта, а также рекомендаций от коллег и экспертов индустрии. К каждой книге есть микрорецензия и формальное описание. Подборка получилась обширная, и будет интересно увидеть в комментариях ваши рекомендации.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments3

Работа с файлами в C++ с использованием Boost

Reading time9 min
Views35K
Привет! Я время от времени рассказываю на Хабре о решениях распространённых задач на C++ и вообще люблю делиться опытом. Поэтому даже написал целую книгу, которая называется «Разработка приложений на С++ с использованием Boost». Она может быть интересна разработчикам, которые уже немного знакомы со стандартной библиотекой языка, хотят глубже изучить Boost, упростить и повысить качество разработки приложений. Уверен, что информация, которую я собрал в книге, будет полезна — всё больше библиотек Boost становятся частью стандарта. Сегодня предлагаю прочитать главу, посвящённую работе с файлами. В ней я рассказываю о перечислении файлов в каталоге, стирании и создании файлов и каталогов, а также о самом быстром способе чтения. Надеюсь, будет интересно. И, пожалуйста, не забывайте делиться впечатлениями в комментариях.

UPD: добавил в конец поста бонус для читателей Хабра.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments25

Black [O]lives Matter: раса, криминал и огонь на поражение в США. Часть 2

Reading time15 min
Views32K

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

Поехали!
Total votes 108: ↑102 and ↓6+96
Comments386

Фильтр Калмана — это легко

Reading time18 min
Views73K


Много людей, в первый раз сталкивающихся в работе с датчиками, склонны считать, что получаемые показания — это точные значения. Некоторые вспоминают, что в показаниях всегда есть погрешности и ошибки. Чтобы ошибки в измерениях не приводили к ошибкам в функционировании системы в целом, данные датчиков необходимо обрабатывать. На ум сразу приходит словосочетание “фильтр Калмана”. Но слава этого “страшного” алгоритма, малопонятные формулы и разнообразие используемых обозначений отпугивают разработчиков. Постараемся разобраться с ним на практическом примере.
Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments34

Никто не умеет управлять программистами — и все придумывают костыли, вместо решений

Reading time6 min
Views30K


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

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

Если коротко — все ещё хуже, чем выглядело со стороны.
Читать дальше →
Total votes 93: ↑65 and ↓28+37
Comments103

Почему единственный вид деревьев не победил все остальные?

Reading time26 min
Views52K

«Лес красив, дремуч, высок», — писал Роберт Фрост. Этот ямб вспоминается мне каждый раз, когда я начинаю путь по расположенной недалеко от моего дома лесной тропе. Тропу назвали в честь Фроста, который провёл несколько лет в этой части Массачусетса, обучая мальчиков в блейзерах с медными пуговицами из Амхерстского колледжа. Прогуливался ли поэт среди именно этих деревьев? Такое возможно, хотя тогда, век назад, они были ещё молодняком. Как бы то ни было, если он и останавливался возле этого леса, то ненадолго, ведь «ждут меня сегодня в срок, а до ночлега путь далек».

Когда я шёл тропой Фроста, она привела меня к непримечательной лужайке в лесистой местности Северо-запада, зажатой между шоссе, домами и городской свалкой. Она не была ни дремучей, ни высокой, и ощущение близости людей никогда не пропадало. Это не был девственный лес, однако он был достаточно лесистым не только для того, чтобы вспомнить рифмы популярных поэтов, но и задаться сложными вопросами о деревьях и лесах — вопросами, которые волновали меня уже многие годы. Почему деревья такие высокие? Почему они не становятся выше? Почему их листья имеют такое разнообразие форм и размеров? Почему деревья являются деревьями (в том смысле, который используется в теории графов), а не имеют какую-то другую структуру? И был ещё один вопрос, который бы я хотел обсудить сегодня:

Сегодняшний вопрос: почему в смешанном лесу виды деревьев остаются смешанными?
Total votes 127: ↑125 and ↓2+123
Comments120

KPI, или пособие по командному самоубийству

Reading time11 min
Views447K
Для написания этой заметки  было затрачено:

  • 68338 километров на поездки.
  • 72 человеко-часа на почтовую переписку.
  • 423 человеко-часа на эксперименты с коллективом в 30 человек.
  • 88 часов на подготовку докладов и выступления на конференциях.
  • 17 чашек кофе на беседу с мудрыми людьми на афтепати.
  • Порядка 25 часов на набор этого текста и правку багов в нем :).
  • До смерти замученный копирайтер, который был вынужден разбирать мои черновики, аудиозаписи и вообще ему спасибо.


Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.

Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).

Смысл такого подхода: платить по справедливости. На сколько наработал — столько и получил. Это честно, это логично, это — прекрасно!



Ну, логично же, что:

  • Продажникам  нужно назначать процент с оборота. Волки должны быть голодными. (Да, есть альтернативное мнение, что применить такой подход — значит «обложить себя дополнительным налогом». Но как по мне — тут все справедливо :-)).
  • Офисному планктону — ставить оклад. Стабильность для них — ооочень важное условие существования.


А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.

Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:



Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
Читать дальше →
Total votes 130: ↑114 and ↓16+98
Comments122

Золотое кольцо скучнейших экскурсий: как это пытаются исправить

Reading time13 min
Views50K
Привет! Мы сейчас всерьёз упарываемся по развитию внутреннего туризма. Обычно я пишу про эту часть работы не на Хабр, но на днях появился один крутой пример, по которому можно отследить интересное продуктовое мышление и UX-подход. В реальном мире. В общем, компания внезапно поняла, что мир изменился, старые подходы не работают, и вообще-то вокруг есть много крутых технологий. Меня позвали как эксперта всё это оценивать и тестировать раннюю альфу турпродукта, и я просто хочу показать, как рациональное мышление может повлиять на туризм.

Итак, у нас есть экскурсии по Золотому кольцу России. Для пенсионеров это желанное приключение, для молодёжи — особый подвид предельно скучного и бессмысленного занятия. «20 храмов за 3 дня», «Самые нудные экскурсоводы, сыпящие датами», «Очереди в банальных местах вроде заселения в отель» — это из отзывов. Думаю, вы и сами можете себе всё это представить.


Вот так должно выглядеть заселение в отель: без людей и анкет, чёрт побери!

Первый вопрос к любой деятельности — это зачем она делается. Обычно после грамотных ответов процентов 20 проектов в компании можно закрывать, потому что они плюс-минус бессмысленны. Второй вопрос — как всё декомпозировать и переделать каждый кусочек в соответствии с целью.

В примере подошли немного иначе: переписали всё, что бесит, и просто начали думать, как это убрать. Подход, очень знакомый мне по рознице — это способ резко поднять уровень сервиса до небывалых высот. Давайте пройдёмся по тому, что конкретно сделали в этом примере.
Читать дальше →
Total votes 206: ↑199 and ↓7+192
Comments307

Black [O]lives Matter: раса, криминал и огонь на поражение в США. Часть 3

Reading time25 min
Views16K

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

Читать далее
Total votes 54: ↑47 and ↓7+40
Comments208

Тимлидство — роль, которая может стать ловушкой для разработчика, а может дать огромные возможности для создания ПО

Reading time7 min
Views26K
Вернёмся года на два назад, когда я был разработчиком. Что я думал? «Хочу стать тимлидом. Это круто, он решает все вопросы, получает больше денег, им становятся после сеньора». Тогда не было никого, кто сказал бы мне: это вообще про другое. Пришлось учиться на своих ошибках.



Я дважды становился тимлидом


У меня есть такая черта: стараться во всем наводить идеальный порядок, систематизировать, выстраивать процессы. Поэтому меня всегда тянуло брать на себя больше, чем просто написание кода. В моём первом стартапе, назовем его «T», был полный хаос в процессах разработки.
Total votes 37: ↑37 and ↓0+37
Comments39

Кто такие шизоиды, где они обитают, и почему вам может быть полезно о них узнать

Reading time35 min
Views144K

Основные стереотипы о шизоидах в одной картинке

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

Сам этот характер довольно тяжело описать одновременно коротко и корректно. Некоторые называют их «гиками», «интровертами», «чудаками», «ботаниками», «хикканами», «эксцентричными», «нердами», «компьютерными гениями»[1, стр. 231], и все эти характеристики в той или иной мере имеют отношение к, собственно, шизоидам, но ни одна из них не является определяющей.

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

Большая часть литературы, посвящённой шизоидам, имеет клиническую направленность и описывает достаточно тяжёлые случаи шизоидизации, а в рамках этого текста я хотел бы рассказать о здоровых шизоидах, коих среди нас присутствует достаточно для того, чтобы их особенности имели значение в контексте трудовых отношений, управления и маркетинга.
Читать дальше →
Total votes 170: ↑163 and ↓7+156
Comments351

Почему функциональное программирование такое сложное

Reading time15 min
Views90K

Я несколько раз начинал читать статьи из серии «Введение в функциональное программирование», «Введение в Теорию Категорий» и даже «Введение в Лямбда Исчисление». Причем и на русском, и на английском. Каждый раз впечатление было очень сходным: во-первых, много новых непонятных слов; во-вторых, много новых определений, которые возникают из ниоткуда; в-третьих, совершенно непонятно, как это использовать.


Самым непонятным и зубодробительным оказалось, наверное, Теория Категорий. Я освоился в ней только с третьего подхода. В первые два раза я честно все прочитал, кажется понял, но т.к. никакой связки с реальной жизнью она не имела, то спустя неделю она благополучно полностью выветривалась.


Попытки использовать как-то в работе изученные концепции разбивались о полное непонимание, как применить полученное глубокое знание. Ведь, напомню, что парадигму ФП (где-то удобнее, где-то не очень, но) можно использовать практически в любом ЯП, совсем необязательно для этого изучать условный Хаскель.

Читать дальше →
Total votes 176: ↑157 and ↓19+138
Comments715

Рубрика «Читаем статьи за вас». Июль — Сентябрь 2019

Reading time17 min
Views11K


Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!


Статьи на сегодня:


  1. Layer rotation: a surprisingly powerful indicator of generalization in deep networks? (Université catholique de Louvain, Belgium, 2018)
  2. Parameter-Efficient Transfer Learning for NLP (Google Research, Jagiellonian University, 2019)
  3. RoBERTa: A Robustly Optimized BERT Pretraining Approach (University of Washington, Facebook AI, 2019)
  4. EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (Google Research, 2019)
  5. How the Brain Transitions from Conscious to Subliminal Perception (USA, Argentina, Spain, 2019)
  6. Large Memory Layers with Product Keys (Facebook AI Research, 2019)
  7. Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches (Politecnico di Milano, University of Klagenfurt, 2019)
  8. Omni-Scale Feature Learning for Person Re-Identification (University of Surrey, Queen Mary University, Samsung AI, 2019)
  9. Neural reparameterization improves structural optimization (Google Research, 2019)
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments0

Ох уж этот метод Ньютона

Reading time8 min
Views32K
О методах численной оптимизации написано много. Это и понятно, особенно на фоне тех успехов, которые в последнее время демонстрируют глубокие нейронные сети. И очень отрадно, что хотя бы часть энтузиастов интересуется не только тем, как забомбить свою нейросеточку на набравшей в этих ваших интернетах популярность фреймворках, но и тем, как и почему все это вообще работает. Однако мне в последнее время пришлось отметить, что при изложении вопросов, связанных с обучением нейросетей (и не только с обучением, и не только сетей), в том числе на Хабре, все чаще впроброс используется ряд “хорошо известных” утверждений, справедливость которых, мягко говоря, сомнительна. Среди таких сомнительных утверждений:

  1. Методы второго и более порядков плохо работают в задачах обучения нейросетей. Потомучто.
  2. Метод Ньютона требует положительной определенности матрицы Гессе (вторых производных) и поэтому плохо работает.
  3. Метод Левенберга-Марквардта — компромисс между градиентным спуском и методом Ньютона и вообще эвристичекий.

и т.д. Чем продолжать этот список, лучше перейдем к делу. В этом посте рассмотрим второе утверждение, поскольку его я только на Хабре встречал как минимум дважды. Первый вопрос затрону только в той части, что касается метода Ньютона, поскольку он куда более обширен. Третий и остальные оставим до лучших времен.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments14

Ультимативное сравнение embedded платформ для AI

Reading time22 min
Views24K
Нейронные сеточки захватывают мир. Они считают посетителей, контролируют качество, ведут статистику и оценивают безопасность. Куча стартапов, использование в промышленности.
Замечательные фреймворки. Что PyTorch, что второй TensorFlow. Всё становиться удобнее и удобнее, проще и проще…
Но есть одна тёмная сторона. Про неё стараются молчать. Там нет ничего радостного, только тьма и отчаяние. Каждый раз когда видишь позитивную статью — грустно вздыхаешь, так как понимаешь что просто человек что-то не понял. Или скрыл.
Давайте поговорим про продакшн на embedded-устройствах.

Total votes 43: ↑43 and ↓0+43
Comments57

Хабрастатистика: анализируем комментарии читателей

Reading time4 min
Views9.9K
Привет Хабр. В предыдущей части была проанализирована популярность различных разделов сайта, и параллельно возник вопрос — какие данные можно извлечь из комментариев к статьям. Также хотелось проверить одну гипотезу, о которой скажу ниже.


Данные получились довольно интересные, также удалось составить небольшой «мини-рейтинг» комментаторов. Продолжение под катом.
Читать дальше →
Total votes 65: ↑62 and ↓3+59
Comments190

Information

Rating
Does not participate
Location
Долгопрудный, Москва и Московская обл., Россия
Date of birth
Registered
Activity