Как стать автором
Обновить
113
0
Алексей Морозов @synedra

Биоинформатик

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

P<0.05, и откуда оно (иногда) берётся

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

Зарабатывать продажей лекарств, которые заведомо не работают, не только аморально, но и не особо легко. Люди всё-таки обычно не хотят покупать препараты, неэффективность которых была доказана. А вот если вы сумели выдавить заветное p < 0.05 в пользу того, что акупунктура таки работает из данных, которые явно утверждают обратное, — то серия публикаций, успех в карьере и вечная благодарность всех акупунктурщиков вам гарантированы.

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

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

Перепрограммирование GameBoy за счёт бага в Pokemon Yellow

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

Pokemon Yellow - это карманная вселенная со своими правилами. В ней можно покупать и продавать предметы, тренировать покемонов, побеждать других тренеров — но нельзя менять правила самой игры. Нельзя построить себе дом, поменять музыку или даже переодеться. Точнее, так было задумано. На самом деле есть последовательность валидных команд (типа перемещения из одного места в другое и манипуляций с предметами), которая позволяет превратить игру в Pacman, тетрис, Pong, MIDI-проигрыватель и что угодно ещё.

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

Ваш код не бесполезнее чая

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

Колониальные компании создавались ради того, чтобы возить из Индии чай и пряности. Ни их создатели, ни владельцы английских мануфактур не думали о создании лучшего мира для грядущих поколений - и тем не менее, он откуда-то взялся. Не исключительно благодаря Ост-Индской компании, но и нельзя сказать, что она тут была ни при чём. Гугл с фейсбуком существуют ради того, чтобы показывать рекламу, но это не значит, что они не помогают прогрессу человечества.

Читать далее
Всего голосов 13: ↑9 и ↓4+5
Комментарии8

Изобретайте колесо

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

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

Читать далее
Всего голосов 17: ↑14 и ↓3+11
Комментарии15

Ущерб от баннерной рекламы

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

Очевидно, баннерная реклама раздражает пользователей. Но насколько сильно? Возможно, она настолько всех бесит, что доход от рекламы не стоит потерь в трафике. А возможно, и нет. Если коротко, то даже единственный небольшой баннер снижает трафик примерно на 10%. Подробный анализ — под катом.

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

Архивация по URL

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


Каждый год несколько процентов материалов, на которые я ссылаюсь, исчезают навсегда. Для человека, который старается не писать без пруфов, это неприемлемо, так что я разработал собственную стратегию борьбы с битыми ссылками. Если коротко — коллекция скриптов, демонов и архивных сервисов в интернете просто берёт и бэкапит всё подряд. URLы регулярно выгружаются из логов моего браузера и статей с моего сайта. Все страницы архивируются локально и на archive.org, так что при необходимости они будут вечно доступны из нескольких независимых источников.

linkchecker регулярно проходит по моему сайту в поисках битых ссылок; все обнаруженные потери могут быть либо заменены (если адрес поменялся, но страница всё ещё существует), либо восстановлены из архива. Кроме того, мои локальные архивы криптографически датируются через блокчейн биткойна на случай, если возникнут подозрения в фальсификации.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии4

Хабра-календарь на 2021 год

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

Он же КДПВ, он же и составляет, собственно, всё содержание поста. Со стилизацией под ASCII-арт на АЦПУ-шной бумаге и сюжетом из средневековых маргиналий, потому что если взялся делать ретро - то может быть сложно остановиться на какой-то одной эпохе. Версии для печати - на гитхабе под CC-BY-3.0

Под катом буквально ничего нет
Всего голосов 32: ↑30 и ↓2+28
Комментарии18

Death Note, анонимность и энтропия

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


В начале “Death Note” местный гениальный детектив по сути занят деанонимизацией: он знает только то, что убийца существует где-то на планете. Никаких улик тот не оставляет, но довольно быстро оказывается пойман. Вообще-то хабр не площадка для обсуждения аниме, но такая же охота на того-не-знаю-кого порой случается и в реальном мире — достаточно вспомнить Сатоши Накамото, Dread Pirate Roberts или Q. Так что под катом перевод статьи (анонимного, кстати говоря, автора) о том, насколько происходящее в этом сериале связано с реальной анонимностью и что у его героя пошло не так.

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

Название имплементации и название результата

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


Я хотел написать этот пост ещё в июле, но никак не мог, о ирония, решить, как его назвать. Удачные термины пришли мне в голову только после доклада Кейт Грегори на CppCon, и теперь я наконец могу рассказать вам, как не надо называть функции.


Бывают, конечно, названия, которые вообще не несут информации, типа int f(int x). Ими пользоваться тоже не надо, но речь не о них. Порой бывает, что вроде бы и информации в названии полно, но пользы от неё абсолютно никакой.

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

bear_hug: игры в ASCII-арте на Python3.6+

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


Для своих игр в ASCII-арте я написал библиотеку bear_hug с очередью событий, коллекцией виджетов, поддержкой ECS и прочими полезными мелочами. В этой статье мы посмотрим, как с её помощью сделать минимальную работающую игру.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии5

Минимальный возможный шрифт

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

Задача: используя наименьшее возможное количество ресурсов, отрендерить осмысленный текст.


  • Насколько маленьким может быть читаемый шрифт?
  • Сколько памяти понадобится, чтобы его хранить?
  • Сколько кода понадобится, чтобы его использовать?

Посмотрим, что у нас получится. Спойлер:


Читать дальше →
Всего голосов 108: ↑102 и ↓6+96
Комментарии69

Правдоподобия, P-значения и кризис воспроизводимости

Время на прочтение26 мин
Количество просмотров20K
Или: Как переход от публикации P-значений к публикации функций правдоподобия поможет справиться с кризисом воспроизводимости: личное мнение Элиезера Юдковского.

Если Монро нарисовал комиксы про 75% существующих интересных проблем, а четверть моих статей интересные, то какова вероятность, что рано или поздно мне придётся искать КДПВ где-то ещё?

Комментарий переводчика: Юдковский, автор HPMOR, создатель Lesswrong и прочая и прочая, изложил свою позицию по поводу пользы байесовской статистики в естественных науках в форме диалога. Прямо классический такой диалог из античности или эпохи возрождения, с персонажами, излагающими идеи, обменом колкостями вперемешку с запутанными аргументами и неизбежно тупящим Симплицио. Диалог довольно длинный, минут на двадцать чтения, но по-моему, он того стоит.

Дисклеймеры
  • Этот диалог был написан сторонником байесовского подхода. Реплики Учёного в нижеприведённом диалоге могут и не пройти идеологический тест Тьюринга на фреквентизм. Возможно, что они не отдают должное аргументам и контраргументам сторонников частотного подхода к вероятности.
  • Автор не рассчитывает, что описанные ниже предложения будут приняты широким научным сообществом в ближайшие десять лет. Тем не менее, это стоило написать.

Если вы ещё не знакомы с правилом Байеса, на сайте Arbital есть подробное введение.

Модератор: Добрый вечер. Сегодня в нашей студии: Учёный, практикующий специалист в области… химической психологии или чего-то типа того; его оппонент Байесовец, который намерен доказать, что кризис воспроизводимости в науке можно как-то преодолеть с помощью замены P-значений на что-то из Байесовской статистики…
Студент: Извините, как это пишется?
Модератор:… и, наконец, ничего не понимающий Студент справа от меня.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии41

Мемоизация дефолтным kwarg в Python

Время на прочтение3 мин
Количество просмотров8K
Вот так можно мемоизировать питоновскую функцию:

def memo_square(a, cache={}): 
    if a not in cache: 
        cache[a] = a*a 
    return cache[a]

Приём незаслуженно малоизвестный, так что под катом мы разберём, как он работает и для чего нужен.
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии14

Что случилось с парадоксом Ферми

Время на прочтение4 мин
Количество просмотров42K
Парадокс Ферми заключается в том, что вероятность возникновения внеземной цивилизации обычно оценивается довольно высоко, а признаков её существования что-то не видать. Недавно на arxiv появился препринт Сандерса с соавторами «Dissolving the Fermi paradox», который уже успели интерпретировать как отмену этого парадокса (правда), пустую болтовню в отсутствие данных (скорее правда, но верно для парадокса Ферми вообще, а не только для этой статьи), и как доказательство несуществования инопланетян и/или низкого L (неправда). В этой статье попробуем разобраться, что в препринте содержится на самом деле.

Читать дальше →
Всего голосов 61: ↑60 и ↓1+59
Комментарии774

Нумерация двоичных деревьев

Время на прочтение3 мин
Количество просмотров6.2K
Как пронумеровать все двоичные деревья? Как на КДПВ: “дерево” из одного листа будет первым, дерево из двух листов вторым, второе дерево с ещё одной веткой, исходящей из корня – третьим. А как найти номер произвольного дерева в такой схеме?

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

Distant Joining: выбираем репрезентативный набор генов

Время на прочтение9 мин
Количество просмотров2.8K
Современные методы биоинформатики позволяют довольно точно восстанавливать эволюционные истории на основании последовательностей генов или белков ныне живущих организмов. А благодаря технологиям секвенирования нового поколения последовательности производятся быстрее, чем их успевают анализировать. Вот только эволюционная реконструкция – дело вычислительно дорогое и неплохо бы уметь получать репрезентативные выборки пригодного для анализа размера. Как это сделать и что вообще такое в данном случае “репрезентативная” – под катом.
Древо жизни по Hug et al. 2016
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Изменяемые свойства классов в питоне: польза для дела и мелкого хулиганства

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

В питоне аттрибуты класса можно сколько угодно модифицировать во время работы, и изменения видны всем объектам этого класса и других подклассов. Под катом — одно полезное применение этого факта.

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

AI монстров и поиск пути с помощью тепловых карт

Время на прочтение5 мин
Количество просмотров25K
image Допустим, у нас есть плоская карта, состоящая из тайлов. На некоторых тайлах стоят монстры, а на некоторых других – всякие штуки, которые монстров интересуют: игрок, оружие, зелья, боеприпасы и прочее в том же духе. Задача состоит в том, чтобы объяснить монстрам, к каким штукам им идти и как. Путь должен быть близким к оптимальному, а время вычисления – настолько маленьким, насколько это возможно. Один из самых простых способов – использовать тепловую карту дистанций до определённой цели или целей.
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии26

Пишем текстовую игру на Python/Ren'Py ч.2: мини-игры и подводные камни

Время на прочтение7 мин
Количество просмотров37K
Краткое содержание предыдущих двадцати пяти тысяч серий: мы пишем текстовую игру про плавание по морю и ввязывание в истории. Пишем мы её на движке Ren'Py, который изначально предназначен для визуальных новелл, но после минимальной настройки способен делать всё, что нам надо. В прошлой статье я рассказал, как сделать простенькую интерактивную читалку, а в этой мы добавим ещё пару экранов с более сложными функциями и наконец поработаем на питоне.
image

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

Пишем текстовую игру на Python/Ren'Py

Время на прочтение8 мин
Количество просмотров125K
Как сделать текстовую игру? Да как угодно. Как сделать кроссплатформенную текстовую игру на русском с иллюстрациями, звуком, работающими сохранениями, без проблем с кириллицей, и с каким-никаким геймплеем? Да ещё и в свободное время, не отрываясь от основной работы? Вот это уже интересней и на самом деле — довольно несложно. Заинтересовавшихся прошу под кат.

image
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии32

Информация

В рейтинге
Не участвует
Откуда
Иркутск, Иркутская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность