#алгоритмы

6 постов
пост №2030

Умер создатель quicksort’а Хоар.

Говорят, когда Дейкстра был при смерти, его спросили, что делать с архивом переписки, на что профессор ответил «оставьте письма Тони, остальное можно сжечь».

Хоар создал язык CSP (communicating sequential processes), с помощью которого до сих пор описывают параллельные процессы; Erlang, Elixir (и каналы в Go) — внуки его идей. Он выбрал кучу ключевых слов (case, new, null), которыми мы пользуемся каждый день.

А еще он был учеником Колмогорова! В Оксфорде учил греческий, латынь и философию, во флоте выучил русский и приехал по обмену в МГУ заниматься теорией вероятности и машинным переводом. Quicksort он придумал как раз для поиска слов в словаре.

Вот цитата из его лекции при получении премии Тьюринга (компьютерная Нобелевка).

Есть два способа писать программы: один — сделать программу такой простой, чтобы было очевидно, что в ней нет ошибок. Другой — сделать ее такой сложной, что в ней нет очевидных ошибок. Первый способ гораздо сложнее. Он требует того же умения, рвения, проницательности и даже вдохновения, как открытие простого закона физики, который лежит в основе сложных феноменов природы. [И никакой комитет не сделает нужных компромиссов в разумное время, хорошие программы создают одиночки и слаженные группы]

пост №1718

История создания формата mp3 напоминает сюжет голливудского блокбастера: в центре герой, который борется с силами в сотни раз больше его, раз за разом выдерживает удары судьбы и наконец уезжает в закат победителем. Герой — сутулый математик в свитере и очках. Роль Голиафа исполняют крупнейшие музыкальные лейблы. Есть даже неожиданное камео Стива Джобса.

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

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

Слушайте на всех платформах: Apple, Google, Яндекс, Spotify, Castbox, Overcast, веб-версия.

пост №1615

P. S. Я конечно слышал о Дейкстре и раньше, его алгоритм поиска кратчайшего пути в графе — один из немногих, которые я помню со школы и при этом этот алгоритм реально используется в компьютерных сетях, через которые вы получили это сообщение.

Я не знал, что Дейкстра был супер крутым писателем и знаменитостью ещё при жизни. Его статьи ксерились (отдельная история) и распространялись в IT-сообществе.

Самая увлекательная статья из Википедии за долгое время. 🔥

пост №1449

За десять лет до яндекса и гугла, Maps.me создали мобильное приложение с картами, которые работали офлайн, без интернета.

Для обработки данных карт в телефоне не хватает ни процессора, ни памяти. О том, как в Maps.me решили эту проблему и откуда вообще берется информация о мире в приложениях говорим с сооснователем сервиса, Юрием Мельничеком. Слушайте на всех платформах: Apple, Google, Castbox, Spotify, Яндекс, Overcast, веб-версия.

Тот случай, когда я думал «ну технически там всё понятно, быстренько пробежимся и поговорим про бизнес-часть». Оказалось, что там полный взрыв мозга с точки зрения алгоритмов, программирования и технологий. Так что часть разговора про бизнес в картах мы вынесли в отдельный эпизод в бонусном канале запуск++, подписывайтесь и слушайте: Apple, Патреон.

За фото спасибо Кириллу Уланову!

пост №880

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

Это одна из величайших игр в истории. 12 миллиардов долларов выручки. Хайп в те времена, когда слова хайп ещё не было.

Вот идеальное прохождение на ютубе — 3,333,360 очков за 5 часов, 27 минут и 20 секунд. Интересные моменты: опасная ситуация, окончание игры (всё начинает глючить).

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

Помню, хотели сделать в Медузе клон пэкмена на злободневную тему, но я так и не смог разобраться, как качественно заменить ресурсы и запустить js-версию (github) внутри webview нашего мобильного приложения. Можете сыграть прямо сейчас.

пост №799

Когда продакт попросил добавить сортировку игр по рейтингу

Основная проблема — как сделать так, чтобы инди-игра с двумя «пятерками» не встала вперед блокбастера с тысячью «пятерок» и одной «двойкой».

Интересно, что IMDb не раскрывает свой алгоритм рейтингования, чтобы не накручивали, а для top-250 используют Bayesian estimate.