dastapov: (Default)
[personal profile] dastapov
Ну-с, отчет-репортаж написан, теперь можно дать волю эмоциям :)

Что мне понравилось?

Во-первых, команда. Все молодцы (и даже я :), все сражались, все боролись, никто не опустил рук и не дезертировал, все друг другу помогали и все такое прочее. Море позитива.

Во-вторых, задание бы нескучным и интересным (за исключением некоторых аспектов, о которых ниже).

В третьих, была конкуренция между русскими/украинскими/белорусскими командами, был азарт, связанный с этим и все такое прочее.

Я наконец-то почитал код на Scala, написанный для задачи, в которой я хорошо разбираюсь (и, соответственно, можно компенсировать незнание языка знанием предметной области). Scala оказалась прикольной, но не зацепила.

Мне понравилось пользоваться sync.in для совместного редактирования: проще, чем gobby (не надо ставить выделенный сервер и софт-клиент у каждого). Почему не etherpad? Не знаю. У меня на него есть какой-то зуб, настолько давний, что я его уже забыл :)

Ну и традиционно я доволен Haskell. Посмотрите, например, на функцию "eval" тут. Засунул все гейты в список, "соединил" входы и выходы, вытащил оттуда output gate, и благодаря lazy evaluation можно не устраивать "закат солнца вручную" по обходу гейтов в порядке номеров, рекурсивному распространению сигналов и т.п. Все произойдет "автомагически".

Что мне не понравилось?

Система подсчета баллов: это epic fail этого года. Во всех предыдущих ICFPC можно было 3 дня кропеть над Суперидеей, в третий день ее реализовать и попасть в top-10.  Либо же можно было выбирать - решать много простых задачек или несколько сложных (2006-й год), и в любом из вариантов иметь шансы выиграть. В этом же году, кто не начал получать результаты на второй день - не имели шансов. Вообще. Нельзя было пропустить первый день, затем собраться, навалиться, и влезть в top-10. Это очень-очень-очень большой минус.

Да, безусловно, я говорю так в том числе и потому, что у нас основной прогресс попер на третий день, мы за ~3 часа наколотили ~300 очков (насколько можно было судить по постоянно подвисающему scoreboard-у), и если бы результаты отсылались не через сайт, а, скажем, по email после окончания конкурса - то у нас было бы на 300 решенных машин больше, чем есть (их мы просто не смогли залить). Плюс, учитывая, какой мы набрали темп - еще пару часов были бы для нас решающими. Короче, раньше такой фигни не было, и я протестую! :)

Далее. Условия конкурса подразумевали, что 200-800 команд будут постоянно засылать свои результаты. Slashdot-эффект для сервера организаторов был практически предопределен. Почему организаторы не сделали тупое API для заливки решений с basic http auth - это выше моего понимания. Вместо этого, мы имели дело с, кажется, сервлетами (я точно видел стандартную страницу ошибок от tomcat) и веб-мордой с развесистым JS внутри и вагоном отдельных CSS-файлов.

Затем, как говорят организаторы, тернарная кодировка в задании была "just for fun". Я первый соглашусь, что в ее реверсинге было много фана. И удовольствия от того, что ты в конце-концов понял и въехал, тоже было много. Но есть одно "но" - пресловутая зависимость очков от времени. Если бы ее не было - кодировка была бы очень в тему. А так - кодировка создавал достаточно высокий порог для входа, и если ты ко второму дню никак в этой области не продвигался, то можно было сливать воду и заканчивать участие. Что многие, как я понимаю, и сделали.

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

Спасибо за внимание :)

(no subject)

Date: 2010-06-23 07:13 pm (UTC)
From: [identity profile] jerom.livejournal.com
Плюс, где-то во второй день мы стали надолго замыкаться каждый на своей задаче, а надо было бы делать друг другу регулярные "доклады"...


Я сегодня перечитывал твой icfpc-2006, там та же фраза :)

(no subject)

Date: 2010-06-24 02:35 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Ну дык. Системные грабли такие системные :)

(no subject)

Date: 2010-06-23 07:25 pm (UTC)
From: [identity profile] -darkus-.livejournal.com
Я повторюсь, что в таких случаях необходим грамотный администратор-библиотекарь-хранитель всего накопанного знания.

(no subject)

Date: 2010-06-24 11:14 am (UTC)
From: [identity profile] sorhed.livejournal.com
Я тоже так думал. И даже думал «вот организую свою команду с блекджеком и т.д., и непременно сам стану таким администратором-библиотекарем-хранителем».

Вот, организовал. И, конечно же, все 72 часа прошли в ритме «быстрее-быстрее-быстрее» в ворохе бумаг и sync.in'а. Фактор «быстрее-быстрее» в этом году, кстати, был особенно значим.

(no subject)

Date: 2010-06-24 11:19 am (UTC)
From: [identity profile] -darkus-.livejournal.com
Да, Дмитрий уже написал про быстрее-быстрее. Налажали организаторы. Но в общем случае администратор нужен же.

(no subject)

Date: 2010-06-24 11:36 am (UTC)
From: [identity profile] sorhed.livejournal.com
В следующий раз постараюсь исполнять обязанности администратора лучше. :)

(no subject)

Date: 2010-06-25 01:53 pm (UTC)
From: [identity profile] gabriel-irk.livejournal.com
Если в следующий раз снова возьмёте меня в команду - с удовольствием стану "архивариусом-хранителем". Всё равно я слишком много задумываюсь и слишком медленно кодирую. :)

(no subject)

Date: 2011-04-01 03:41 pm (UTC)
From: [identity profile] sorhed.livejournal.com
Внимание, следующий раз (http://community.livejournal.com/ru_icfpc/1146.html). :)

Адепта это тоже касается.

(no subject)

Date: 2010-06-23 07:28 pm (UTC)
From: [identity profile] antilamer.livejournal.com
Да, система подсчета очков невероятно обидная - мы "рванули" в последний час (поняли идиотскую ошибку, из-за которой не могли декодировать топливо) и начали раскусывать, пусть и брутфорсом, но тачку за тачкой, но было уже поздно :(

(no subject)

Date: 2010-06-23 08:38 pm (UTC)
From: [identity profile] savinovalex.livejournal.com
а я ненавижу летнюю сессию :'(

(no subject)

Date: 2010-06-24 06:43 am (UTC)
From: [identity profile] assaron.livejournal.com
присоединяюсь

(no subject)

Date: 2010-06-24 08:07 am (UTC)
From: [identity profile] thedeemon.livejournal.com
>Ну и традиционно я доволен Haskell. Посмотрите, например, на функцию "eval" тут. Засунул все гейты в список, "соединил" входы и выходы, вытащил оттуда output gate, и благодаря lazy evaluation можно не устраивать "закат солнца вручную" по обходу гейтов в порядке номеров, рекурсивному распространению сигналов и т.п. Все произойдет "автомагически".

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

(no subject)

Date: 2010-06-24 02:36 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Согласен, про "закат солнца" - это я не доразобрался

(no subject)

Date: 2010-06-25 01:58 pm (UTC)
From: [identity profile] gabriel-irk.livejournal.com
Известное решающее преимущество ФП я прочувствовал на собственной шкуре ещё года 3 назад, когда писал диплом на ОКамле. И в этот раз порадовался снова, кодируя на Хаскеле. А именно.

Даже переписывая какую-то функцию поздней ночью ближе к утру, когда в голове остаётся место ровно для одной мысли одновременно - ничего не ломается!

Императивные решения этому критерию не удовлетворяют.

(no subject)

Date: 2010-06-25 05:28 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Ну, про ФП в целом мне можно не рассказывать, сам на Окамле как раз решал. Я про конкретный кусок кода, в императивном варианте на Окамле он у меня покороче и попроще.

(no subject)

Date: 2010-06-25 06:52 pm (UTC)
From: [identity profile] gabriel-irk.livejournal.com
А я как раз про то, что проще, короче и быстрее - ещё не все характеристики кода. И не всегда главные или показательные.

(no subject)

Date: 2010-06-26 07:09 am (UTC)
From: [identity profile] gamerdenis-msk.livejournal.com
Etherpad же ёк.
Google Wave? :)

(no subject)

Date: 2010-07-04 04:31 pm (UTC)
From: [identity profile] fester-ua.livejournal.com
«Вместо этого, мы имели дело с, кажется, сервлетами (я точно видел стандартную страницу ошибок от tomcat) и веб-мордой с развесистым JS внутри и вагоном отдельных CSS-файлов.»

Вот вам и весь ICFPC.

Profile

dastapov: (Default)
Dmitry Astapov

July 2017

M T W T F S S
     12
3456789
1011 1213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags