You are viewing _adept_

dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Recent Entries 
Что можно найти в этом журнале:


  1. Баечки из жизни IT-специалистов
  2. Рассказы о мобильной связи. Мне можно задавать вопросы о мобильной связи, и я постараюсь на них ответить.
  3. Зарисовки о жизни в Англии
  4. Конкурсы-загадки для IT-шников и не только
  5. Рассказы об участии в конкурсах ICFPC



Если вы хотите прочесть пару записей разных стилей и жанров "на пробу", то можете попробовать: отчет про ICFPC-2006, первоапрельскую шутку про тотальное прослушивание компьютеров через излучение от витой пары и про телепузиков.

Подзамочных записей практически не делаю - смело подписывайтесь внешними RSS-агрегаторами. Если вы хотите читать не все мои посты, а только их часть - можете подписаться на feed, содержащий только посты с тэгом GSM или на feed, содержащий только истории.

Механизм friend-ов в LJ я рассматриваю исключительно как техническое средство удобно читать журналы тех, кого мне интересно читать.

Во-первых, поздравляю человека и парохода jabber.ru с победой в lightning раунде.

Во-вторых, на этом месте мог бы быть отчет, но писать особо не о чем. В этом году я пробовал что-то сделать самостоятельно, но буквально сразу увидел (кажется, на IRC) слово SECD и в результате отвлекся на чтение книжки Хэндерсона "Functional Programming Application and Implementation", которой явно вдохновлялись организаторы. В результате я узнал много нового и интересного о том, как можно использовать camlp4, чтобы реализовать "компилятор" из сделанного тобой DSL в OCaml, а также о том, что такое SECD-машина (как она дана у Хэндерсона, а не урезанный вариант из задачи этого года).

После возни с полноценной SECD-машиной мотивация делать обкоцанную SECD-машину у меня как-то пропала, и я для себя на этом ICFPC-2014 закрыл. А что у вас?
25th-Jul-2014 08:12 am - Сегодня ICFPC-2014
Сегодня начинается ICFP Contest, также известный как ICFPC.

В этом году я ни с кем не кооперировался, никак не готовился, и вообще собираюсь писать на ocaml :) А вы?

PS: если вдруг кто еще не знает, что такое ICFPC, можете почитать мои старые отчеты, начиная с этого, они все под тэгом icfpc.
21st-May-2014 09:53 pm - Вот и ОНО :)
Если вдруг кто еще не знает, то в этом году ОНО будет с 25 по 28 июля. Кто собирается участвовать?

Эпиграф



Нас было 7 человек. У нас было 20 модулей на хаскеле, приватный репозиторий на гитхабе, 6 веток в этом репозитории, ImplicitParams, MagicHash и UndecidableInstances в коде и одна highmem нода на амазоне, а также hangouts для общения, юнит-тесты, просто тесты, google docs для заметок и куча статей про SMT-солверы. Не то что бы мы это все использовали, но на ICFPC ты ищешь в инете всякую дурь и бывает трудно остановиться. Единственное что вызывало у меня опасение - это SMT-солверы. Нет ничего более беспомощного, безответственного и испорченного, чем человек, читающий статьи в ходе контеста. Но я знал, что рано или поздно мы подсядем и на эту дрянь.

Краткое содержание для тех, кому лень читать все



Наша команда называлась "(unmatched", и состояла она из меня, Жени jkff, Ромы ro-che.info, Вани _navi_, Саши sorhed, Макса (которого нет в ЖЖ) и еще одного Саши wizzard0.

Мы набрали 1301 из 1820 возможных, из них 457 в lightning round, т.е. в первые 24 часа (UPD: и, похоже, заняли там 10 место! Аааааа!). Мы заняли место между 11-м и 25-м, но еще не знаем, какое конкретно.

Мы писали на Haskell и вот наш репозиторий.

Спасибо моим соратникам - вы все молодцы и умницы! Традиционное спасибо моей жене yulanta за моральную и прочую поддержку :)

А теперь - длинная история про то, как дело было.Read more...Collapse )
Вот они, родимые.

Мы - на позорном 131 месте. Где-то за 20 минут до финиша, когда мои товарищи по команде вырубались после бессонной ночи, возник вопрос - какой же солвер сдавать в качестве финального?

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

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

На мелких картах второй тред успевал перебрать все (или почти все) и выбраться из практически любой ловушки. На больших же картах он рисковал со временем пожрать всю память и быть убитым OutOfMemory Killer-ом (который живет в ядре linux). Если бы это произошло, то мы бы на такой карте не набрали ничего. Осознание этой засады пришло слишком поздно, и сделать какой-то монитор/ограничитель мы уже не успевали.

Забоявшись out of memory, я убедил полусонных Женю и Ваню, что сдавать надо первый вариант. В результате мы вылетели в первом раунде.

Второй вариант набрал бы как минимум 7200 очков (я запускал его на оценочных картах с лимитом в 30 секунд, а за 150, думаю, он мог бы набрать и больше) и мы были бы где-то в районе 50-60 месте. Ну, как известно, если бы да кабы ... :) Мораль придумайте сами.

Посмотрим, что будет в следующем году.

Обязательное вступление: что это вообще такое?


Каждый год случается международная конференция ICFP - International Conference on Functional Programming. К этой конференции приурочен програмерский конкурс под названием ICFPC. Несмотря на название конференции, участвовать в контесте может любой желающий, и пользоваться можно любыми языками, не только функциональными, кроме того - участники могут объединяться в команды. ICFPC отличается от соревнований типа ACM и topcoder тем, что он менее "заточен" под какие-то конкретные языки или наборы навыков, а задачи в нем прикольные и позволяют получить удовольствие не только от победы, но и от участия.

Я стараюсь принимать участие во всех ICFPC, и о том, как это было в прошлые годы, можно почитать в этом журнале по тэгу icfpc.

Подготовка


В этом году я заранее вписал даты в календарик, взял на работе отгул, и договорился с Женей antilamer и Ваней _navi_ о том, что мы будем выступать одной командой и писать на Haskell.

Моя жена собиралась где-то в это же время поехать с детьми на историческую родину, и мы подгадали поездку так, что на время ICFPC я остался один-совсем-один. Если быть точным, за 4 часа до старта я был в аэропорту и провожал их на самолет, и вернулся домой за 5 минут до начала.

Подготовка, таким образом, свелась к заливанию ssh-ключей на bitbucket (где у нас был git-репозиторий) и обмену контактами с остальными участниками команды :)

Старт и условие

Read more...Collapse )
21st-Jun-2012 04:57 pm - ICFPC-2012
А кто что себе думает про ICFPC-2012? Кто собирается участвовать? На чем писать? Я в этом году твердо намерен не пропустить мероприятие - кто хочет объединить усилия?

UPD: договорился с _navi_ и antilamer.
Отсюда: The ICFP Programming Contest dates have been announced. The contest will run from Friday 13 July 12:00 GMT to Monday 16 July 12:00 GMT.
24th-Jun-2010 05:47 pm - ICFPC-2010: Киев
Кстати, а кто из участников ICFPC-2010 был из Киева? Я знаю себя и murkt (уверен на 90%), а кто еще?
23rd-Jun-2010 10:03 pm - ICFPC-2010: aftermath
Ну-с, отчет-репортаж написан, теперь можно дать волю эмоциям :)

Что мне понравилось?Read more...Collapse )
Этот пост - о том, как мы строили машины, фабрики и гнали бензин на ICFPC-2010.

Кто еще не знает, что это такое - может пройти в сад почитать мой отчет об ICFPC-2006. Всех же остальных я не буду мучать долгими вступлениями и сразу перейду к сути.Read more...Collapse )
14th-Sep-2009 02:16 pm - ICFPC'09: результаты
Я слоупок опять все пропустил: уже есть результаты ICFPC'09.Read more...Collapse )
Имя команды: li-monad (спасибо aleksey/jabber.ru за идею)
Состав: я, endless-world, iakovz, при участии blancus.
Итоговый бал: 2234.7171 (12 problems solved)

Поскольку scoreboard традиционно перестал обновляться за пару часов до окончания соревнования, мне сложно сказать, какое же место мы заняли в конце-концов. Если все остальные участники расслаблялись перед финальным свистком и ничего не делали, то это будет 59-е место.  Но скорее всего в расстановке сил перед самым финишем наверняка произошли существенные изменения, и я буду рад, если нас не "выдавят" хотя бы из первой сотни.

Читать в деталяхCollapse )
24th-Jun-2009 01:24 pm - ICFPC'09
Если вы, как и я, регулярно путаете июнь и июль, то знайте, что до ICFPC'09 остался вовсе не месяц, а всего два дня! :)

Сайт соревнования: http://icfpcontest.org

Обсуждение в jabber: конференция icfpc@conference.jabber.ru

Обсуждение в IRC: #icfp-contest на freenode
Сорока на хвосте принесла новость о соревновании для (русскоязычных) программистов, которое будет проводится с 5-го по 12-е марта.

Организаторы обещают фан на уровне ICFPC. Надеюсь, образца 2006-го года :)

Читаем и участвуем: http://stanfy.com.ua/contest/
Итак, организаторы выложили предварительные результаты ICFPC-2008. Победитель определялся серией "заездов", в каждом из которых выбывало какое-то количество участников, и организаторы выложили результаты первых семи подобных раундов.Read more...Collapse )
Под катом - немножко ссылок на ICFPC-шные делаRead more...Collapse )
Это окончание рассказа. Линки на начало и середину.

13 Jul 2008. Начало второго полного дня соревнований. До финиша - где-то 35 часов.

Утром тринадцатого числа наш марсоход мог быть укомплектован тремя безбашенными стратегиями локального управления разной степени расхлябаности, которые, тем не менее, умудрялись периодически доводить его до цели.Read more...Collapse )
Это вторая часть рассказа. Линк на начало.

12 Jul 2008.

Однако, я только и успел, что выписать определения сообщений, которые придется принимать от марсохода и передавать ему. Сразу после этого в jabber-е прорезался yvl, который двигает науку в области робототехники. Сам он по стечению обстоятельств в соревновании участия не принимал, но интересовался моим мнением о задаче.

У нас завязался увлекательный разговор, первые пятнадцать минут которого напоминали скорее монолог: yvl вещал, я записывал на листик неизвестные мне термины и понятия. В результате я вынес из нашего общения несколько ценных крупиц знаний:
1)Все могло бы быть и хужеRead more...Collapse )
Несколько дней тому назад закончился ICFPC'08, и, пока свежи воспоминания, я тороплюсь их записать.

Перво-наперво,
Результаты и впечатления

Результаты:
========
* Мы, скорее всего, попадем в верхние 50%. Мы явно не победим, и даже не приблизимся к десятке
* Мы получили фан
* Я получил кучу (без)полезных сведений о том, как осуществляется управление технологическими процессами, роботами и т.п.
* Я получил удовольствие от игры в замечательной русскоязычной команде

Что понравилось:
===========
* Мы начали готовится загодя, и со стартом соревнования почти не тормозили
* Мы старались по максиму использовать выбранные технические средства
* У нас было очень немного проблем с коммуникациями

Что не понравилось:
=============
* Задание и провтыки организаторов (хотя лично нас они и не коснулись)
* То, насколько сильно я забыл физику и тригонометрию
* То, что мы в какой-то момент все-таки попали в творческий кризис и разброд и шатание

А теперь - детали и подробностиCollapse )
This page was loaded Dec 22nd 2014, 5:06 pm GMT.