Нас было 7 человек. У нас было 20 модулей на хаскеле, приватный репозиторий на гитхабе, 6 веток в этом репозитории, ImplicitParams, MagicHash и UndecidableInstances в коде и одна highmem нода на Амазоне, а также hangouts для общения, юнит-тесты, просто тесты, google docs для заметок и куча статей про SMT-солверы. Не то что бы мы это все использовали, но на ICFPC ты ищешь в инете всякую дурь и бывает трудно остановиться. Единственное что вызывало у меня опасение — это SMT-солверы. Нет ничего более беспомощного, безответственного и испорченного, чем человек, читающий статьи в ходе контеста. Но я знал, что рано или поздно мы подсядем и на эту дрянь.
(Дмитрий Астапов)
Посвящается хабровчанам, которым иногда хочется отдохнуть от промышленного кодинга и найти чего-то такого безумно[ круто]го для души. Ежегодный ICFP Contest начнётся меньше чем через неделю!
Что это
Есть такая International Conference on Functional Programming, раз в год проходящая в разных местах земного шара. К ней приурочен трёхдневный командный контест-хакафон, призёры которого помимо уважухи и денежных призов получают бесплатные билеты. И вот тут начинается самое интересное.
Несмотря на название и тематику конференции, задачи не заточены под какие-то языки и технологии, и писать можно совершенно на чём угодно; а в призовых местах, например, стабильно оказывается C++. Как правило, эталонного решения у них нет, и подходить можно с полной свободой творчества. Сроку отводится трое суток (пятница по понедельник в зависимости от часового пояса участников), в течение которых можно отсылать всякие промежуточные результаты и получать за это очки, и ещё есть lightning division с отдельной таблицей победителей по итогам первых суток. То есть демократия полная – работать можно где угодно, как угодно, каким угодно составом без регистрации
- раскодировать двухмегабайтную виртуальную машину, в которой упихана тонна паззлов вроде юникс-консольки, математических головоломок и текстового квеста (2006);
- помочь пришельцу адаптироваться к нашей планете, распотрошив и дополнив его самомодифицирующуюся ДНК, которая умеет рисовать упоротые картинки (2007);
- научиться играть и выигрывать у других участников в гибрид Magic: the Gathering и лямбда-исчисления (2011);
- написать ботов для альтернативного пакмана, крутящегося на аркадном автомате из лисп-машины и восьмибитного микроконтроллера (2014).
Отличный способ приобщиться и вдохновиться — глянуть отчёты вышеупомянутого Дмитрия Астапова, которые можно читать как технотриллер. Рекомендую начать с 2006 года, который ни один конкурс пока не переплюнул.
Для участия необходимы навыки командной разработки и возможность хотя бы частично выпать из жизни в уикенд. Очень желателен кругозор в области computer science. Особо приветствуются знатоки и умельцы ИИ, виртуальных машин и компиляторов, эти темы проскакивают почти в каждом году. Хотя, конечно, самое важное – общая соображалка.
Анонс
Теперь немного о том, что же будет в этом году.
Конференция проводится с 31 августа по 2 сентября в Ванкувере, а контест уже совсем скоро – с 7 по 10 августа. Судя по традиционно немногословному анонсу, нас ждёт что-то на криптографическую тематику с аллюзиями на национальную безопасность и творчество Лавкрафта. Имеющиеся крупицы инфы проанализировал постоянный участник ICFPC Turtle//Bazon.
До встречи в турнирной таблице!