| ton4eg ( @ 2009-06-30 02:28:00 |
Рецепт хороших выходных.
Наконец-то мы поучаствовали в http://icfpcontest.org/. Это програмерский контест приуроченный к конференции по функциональному программированию, и его смысл заключается в том, чтобы померяться какой язык круче.
Вот здесь феерическое описание контеста 2006 года. http://users.livejournal.com/_adept_/240 49.html
Задания бывают очень интересные(2006, 2007), а бывают не очень(2008).
В этом году суть заключалась в том, чтобы управлять спутником, причем физическая модель спутника закодиравано в бинарных файлах представляющих программу для виртуальной машины, которую нужно было написать. Влияя на входные порты виртуальной машины можно было управлять спутником. Самая простая задача заключалась в том, чтобы перевести спутник с одной круговой орбиты на другую. Самая сложная заключалась в том, чтобы пролететь по 11 спутникам, причем можно посещать заправочную станцию и кроме земли в модели присутствует еще Луна!
3 из 4х задач мы решили и в предварительном рейтинге заняли аж 58 место. http://icfpcontest.org/scoreboard.php
В прошлом году мы учавствовали с n0mad-0 и дрюней и жоско слили. В этом году
n0mad_0 слинял в Киев, и типа писал что это круче чем кодить все выходные. А мы с дрюней решили собрать дрим тим. В пятницу чурс уговорил Мишу поехать с нами, а второй Миша не уговорился мотивируя тем что будет ботать. За ночь Миша дописал ядро виртуальной машины и тоже уехал бухать в лес. Дрюня написал гуи и уехал в зоопарк. Чурс ничего не написал и уехал бухать в лес и встретил там того Мишу, который должен был ботать. Вася написал решение первых задач и уехал на концерт. Я остался один закомитил решение а оно не работает, поэтому я лег спать.(Это было днем в субботу). Вот такая вот Санта Барбара.
Приехал Вася надавал всем люлей, нашел баг, тем самым подняв мне настроение и я сел решать задачки. К концу первых суток мы к сожалению ничего не сдали из-за досадного бага, который нашел Вася.
В третьей задачке нужно было встретиться со спутником, который летает по произвольной орбите. После долгих обсуждений придумали решение, посчитали теоретически, но обнаружили проблему, что теоретическое решение из-за погрешностей связанных с дискретностью модели давало ошибку в несколько километров, в то время как требовалась точность в 1 километр. Мы потратили много времени на подгонку, наверное, нужно было написать автоматический подгоняльщик, но у нас не дошли руки. В понедельник Васю осенило написать "неоптимальный вариант", который "следит" за спутником который надо догнать. Алгоритм работал надежно но не совсем оптимально. То есть топливо тратилось чуть больше чем нужно.
Мораль, которую я вынес из данного контеста, что нужно как можно быстрее делать дубовую схему, и решать хоть как-то, очень часто "оптимальные" общие решения не работают на практике или работают но на них тратиться слишком много времени.
Еще у нас была проблема, как объединять код, дело в том, что Миша пишет на си, Вася на си++ с классами, но юзает сишные библиотеки и немного stl, а мне хочеться юзать только плюсовые потоки, каждого воротит от кода другого и каждый норовил переписать чужой код.
Совсем не пользовались чудесами цивилизации типа контроля версий. Вообще писал в основном Вася, поэтому без котроля версий было терпимо.
В целом, задачка была интереснее чем в прошлом. Нам удалось сделать хоть чтото =) Но до хакерских задач 2006 2007 она не дотягивает.
Когда залезал в irc канал, позадавать вопросов, увидел интересную дискуссию, чуваки жаловались, что они не шарят в физике процесса, поэтому они тупо все три дня улучшали гуи написанный на хаскеле, даже добавили анимацию взрыва при столкновении спутника с землей, вот такие они функциональные программисты.
Выходные прошли не зря...
ЗЫ
Здесь менее сумбурное описание происходящего:
http://users.livejournal.com/_adept_/948 39.html#cutid1
Мы обогнали адепта на 1 место в преварительном рейтинге)
Наконец-то мы поучаствовали в http://icfpcontest.org/. Это програмерский контест приуроченный к конференции по функциональному программированию, и его смысл заключается в том, чтобы померяться какой язык круче.
Вот здесь феерическое описание контеста 2006 года. http://users.livejournal.com/_adept_/240
Задания бывают очень интересные(2006, 2007), а бывают не очень(2008).
В этом году суть заключалась в том, чтобы управлять спутником, причем физическая модель спутника закодиравано в бинарных файлах представляющих программу для виртуальной машины, которую нужно было написать. Влияя на входные порты виртуальной машины можно было управлять спутником. Самая простая задача заключалась в том, чтобы перевести спутник с одной круговой орбиты на другую. Самая сложная заключалась в том, чтобы пролететь по 11 спутникам, причем можно посещать заправочную станцию и кроме земли в модели присутствует еще Луна!
3 из 4х задач мы решили и в предварительном рейтинге заняли аж 58 место. http://icfpcontest.org/scoreboard.php
В прошлом году мы учавствовали с n0mad-0 и дрюней и жоско слили. В этом году
Приехал Вася надавал всем люлей, нашел баг, тем самым подняв мне настроение и я сел решать задачки. К концу первых суток мы к сожалению ничего не сдали из-за досадного бага, который нашел Вася.
В третьей задачке нужно было встретиться со спутником, который летает по произвольной орбите. После долгих обсуждений придумали решение, посчитали теоретически, но обнаружили проблему, что теоретическое решение из-за погрешностей связанных с дискретностью модели давало ошибку в несколько километров, в то время как требовалась точность в 1 километр. Мы потратили много времени на подгонку, наверное, нужно было написать автоматический подгоняльщик, но у нас не дошли руки. В понедельник Васю осенило написать "неоптимальный вариант", который "следит" за спутником который надо догнать. Алгоритм работал надежно но не совсем оптимально. То есть топливо тратилось чуть больше чем нужно.
Мораль, которую я вынес из данного контеста, что нужно как можно быстрее делать дубовую схему, и решать хоть как-то, очень часто "оптимальные" общие решения не работают на практике или работают но на них тратиться слишком много времени.
Еще у нас была проблема, как объединять код, дело в том, что Миша пишет на си, Вася на си++ с классами, но юзает сишные библиотеки и немного stl, а мне хочеться юзать только плюсовые потоки, каждого воротит от кода другого и каждый норовил переписать чужой код.
Совсем не пользовались чудесами цивилизации типа контроля версий. Вообще писал в основном Вася, поэтому без котроля версий было терпимо.
В целом, задачка была интереснее чем в прошлом. Нам удалось сделать хоть чтото =) Но до хакерских задач 2006 2007 она не дотягивает.
Когда залезал в irc канал, позадавать вопросов, увидел интересную дискуссию, чуваки жаловались, что они не шарят в физике процесса, поэтому они тупо все три дня улучшали гуи написанный на хаскеле, даже добавили анимацию взрыва при столкновении спутника с землей, вот такие они функциональные программисты.
Выходные прошли не зря...
ЗЫ
Здесь менее сумбурное описание происходящего:
http://users.livejournal.com/_adept_/948
Мы обогнали адепта на 1 место в преварительном рейтинге)