TL;DR: В следующую пятницу, 17 июля, стартует ICFP Programming Contest — ежегодное открытое онлайн-соревнование, придуманное функциональными программистами. По духу это развлекательный 72-часовой марафон с неожиданными задачами и сложно передаваемыми ощущениями от участия (о них пишут длинные статьи). Если не пробовали, обязательно участвуйте в этом году. Зарегистрируйтесь на сайте, подпишитесь на твиттер.
В отличие от других соревнований, для участия в ICFP Contest собирают команды, причем любого размера. В 2019 году были команды от 1 до 12 человек, а в медианной команде было три человека. За 72 часа нужно решить всего одну задачу — но всегда неожиданную, сложную и многогранную.
Например, в 2018 году нужно было оптимизировать 3D-печать с помощью наноботов. Вот впечатляющая визуализация решателя таких задач от команды WILD BASHKORD MAGES (Ripatti, LinesPrower и др.):
У нашей команды тоже был визуализатор, хоть и не такой красивый. Но мы больше гордились своей асинхронной архитектурой для алгоритмов управления роем наноботов — потом сделали о ней доклад на конференции DotNext.
А в 2016 году нужно было по оригами — плоской фигурке из электронной бумаги — восстановить максимально простую её развертку в рациональных координатах. Вот как работал алгоритм команды unagi:
И такое каждый год!
По-моему, ICFP Contest начал набирать популярность в России благодаря Дмитрию Астапову и его захватывающему отчёту об участии в 2006 году. Почитайте! С такими заданиями удовольствие получаешь не от победы, а от самого участия. А вот коллекция отчетов на английском от Jeremy Sawicki, ещё одного многолетнего участника. А вот отчёт Никиты Прокопова ¯_(ツ)_/¯ об участии в 2019 году.
Похоже, что хороших результатов добиваются команды участников с олимпиадным прошлым. Яркий пример — это команда unagi из Японии, которая уверенно держит первое место последние 5 лет. Её костяк — это финалисты ACM/ICPC разных лет (imos, chokudai, iwiwi, wata и др.). Конечно, только алгоритмической подготовки будет мало. Ещё нужен командный дух (в одиночку можно, но сложнее и не так весело) и умение хоть как-то организовать процесс разработки на эти 72 часа. Я писал об этом на Хабре в шпаргалке для подготовки в контесту.
А теперь — срыв покровов. В этом году, впервые за 23-летнюю историю соревнования, его организаторы — из России. Собственно, это я и ещё семь человек. Мы участвовали в ICFP Contest много лет подряд (лучший результат в 2013 году — 3 место), и нам так понравилось, что мы захотели его организовать. Всего два года переговоров — и нам разрешили :)
Пользуясь случаем, мы хотим максимально популяризировать это соревнование в России. Обычно больше всего участников — из США и Японии, а Россия на третьем месте. Но я уверен, что в местном сообществе найдутся те, кому этот нестандартный контест придется по вкусу. Ну и где ещё, если не тут, искать команды, способные дать достойный отпор японцам из unagi с их оскорбительно олимпиадным кодом? :)
Итак, начало 17 июля в 13:00 UTC, окончание 20 июля в 13:00 UTC.
Регистрируйтесь на сайте: https://icfpcontest2020.github.io
До старта ещё больше недели. Обычно это время можно занять поиском тизеров и спойлеров от организаторов, но в этом году есть способ потратить время с пользой. Наш друг, астроном Иван Зайцев из Пеговской обсерватории, просит помощи от программистов, чтобы разобраться в сигналах, которые принимает его радиотелескоп. Помогите Ивану:
Как идёт подготовка к контесту и развивается история — следите в нашем твиттере или в блоге Зайцева.
До встречи на контесте!