ICFPC 2012
Организаторы ICFP наконец объявили дату состязания. В этом году конкурс по функциональному программированию пройдет с 13 по 16 июля. Lyrical Tokarev берет четырехдневный отпуск и садится курить маны.
Организаторы ICFP наконец объявили дату состязания. В этом году конкурс по функциональному программированию пройдет с 13 по 16 июля. Lyrical Tokarev берет четырехдневный отпуск и садится курить маны.
После некоторых манипуляций с ветками в Windows (сбросы/переключения/слияния) git перестал коммитить проект, ругаясь на переносы строк в одном из файлов:
fatal: LF would be replaced by CRLF …./Foo.java
Пляски с core.autocrlf ни к чему не привели. Но нашлось все же простое решение: вручную преобразовать символы перевода строки из виндовых в линуксовые, открыть файл в Eclipse, еще раз визуально все проконтролировать и сохранить. После этого коммитить. Быстро заменить CRLF на LF можно утилитой dos2unix, входящей в MINGW, с которым поставляется git для win32:
dos2unix.exe -f -D …./Foo.java
При запуске maven-а (например, в виде плагина m2eclipse) из виндового Eclipse в стандартной конфигурации мы на выходе непременно получим злобное ворчание:
Unable to locate the Javac Compiler in:
C:\Program Files\Java\jre6\..\lib\tools.jar
Причина, как можно догадаться, кроется в том, что мавен рассчитывает на запуск из под виртуальной машины JDK, а не JRE. А эклипс по дефолту грузится как раз под JRE.
Отучить его от этой привычки можно двумя простыми действиями:
-vm
C:\Program Files\Java\jdk1.6.0_24\bin\javaw.exeТут есть три важных момента. Во-первых ключ и его значение не должны располагаться в одной строке. Во-вторых значение ключа должно содержать путь не к папке, с установленным JDK, а именно к исполняемому файлу javaw.exe (можно, разумеется, указать и java.exe, но тогда вы будете лицезреть помимо основного окна Eclipse черную консольку). В-третьих, если добавленная вами строка – последняя в файле, непременно добавьте после нее перенос строки, иначе Eclipse ее проигнорирует .Организаторы опубликовали наконец-таки долгожданные результаты кровопролитной битвы ботов ICFP’2011.
Расстроились за atomic $ save Madoka: мы болели за них, а они заняли только третье место.
А наш Lyrical Tokarev на достойном 21м, что вполне соответствовало нашим ожиданиям. Можно открывать шампанское! Поздравляем и другие команды, там немало ребят из СНГ. Надеемся встретиться в состязании в 2012 году.
Особо любознательные могут посмотреть презенташку, в которой можно узнать об истории турнира, кто придумал игру «Lambda: The Gathering», какие языки пользовались популярностью среди участников (лидер, конечно, Haskell, но там есть даже bash script, клянусь!).
PS. Только что узнал, что ICFP2011 это не только ценный мех турнир по функциональному программированию, но международная конференция по планированию семьи. )
Видео-лекции по алгоритмам и структурам данных от самого легендарного Скиены:
http://www.cs.sunysb.edu/~algorith/video-lectures/
Стэнфордские открытые курсы:
http://openclassroom.stanford.edu/MainFolder/HomePage.php
Разный Computer Science от американских вузов:
http://lecturefox.com/computerscience/?page=1
И так, по мелочи, об интернет-технологиях:
http://cs259.tv/2007/fall/
При попытке выполнить gwt:compile и собрать GWT проект maven упорно вываливал загадочное исключение:
java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference
с сопутствующим стектрейсом.
Несколько часов поисков выявили виновника этого безобразия. Им оказался JasperReport, а точнее одна из его зависимостей eclipse:jdtcore.
Решение – одно: принудительно исключить эту зависимость из своего проекта.
<!-- JasperReports -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.0.1</version>
<exclusions>
<exclusion>
<groupId>eclipse</groupId>
<artifactId>jdtcore</artifactId>
</exclusion>
</exclusions>
</dependency>
Отличный цикл видео-лекций Functional Programming Fundamentals по функциональному программированию вообще и хаскелю в частности от Эрика Мейера из Microsoft Research.
Об этом чудесном мероприятии я узнал на хабре недели за три до начала. Почитав официальный сайт, очень удивился, что не слышал о нем раньше. Итак, ICFP – это командная олимпиада по функциональному программированию, которая проводится c 1998 года. В отличие от большинства прочих олимпиад, сводящихся к решению небольших задач на время, ICFP дает командам трое суток на одну большую. И судя по отзывам, в этом году задача превзошла, все предыдущие. (Тут хотелось бы выразить благодарность ЖЖ-жителю _adept_ за интересный рассказ об ICFP 2010, который в значительной степени подтолкнул меня к участию в этом году)
Уже через пару дней после чтения новости на хабре у нас была команда из 6ти человек. Хотя поучаствовало все же только пять: nofate, lacemaker, }{aMe/)eOH, irbis и Apelsinov.
Кстати, никто в команде практически не имел представления о функциональном программировании Читать полностью…
В течение ближайшей недели мы расскажем, как участвовали в международной олимпиаде по функциональному программированию(ICFP Programming Contest 2011), и чем это закончилось. Не переключайтесь.
Спойлер: попали во второй тур..
Переносил проект с SVN на Git и в ходе этого увлекательного процесса несколько раз прошелся по одним и тем же граблям.
При подключении к gitosis-репозиторию после успешной авторизации возвращается сообщение:
ERROR:gitosis.serve.main:Repository read access denied
Что делать? Быть внимательным при добавлении пользователей к проектам. основная причина появления этой ошибки – отсутствие у пользователя прав на чтение репо. Вы добавляли пользователя к проекту? Точно? Проверьте еще раз, попросите прочитать конфиг соседа.
Убедитесь, что стопроцентно совпадают имена пользователей в группе проекта в gitosis.config, в имени файла с публичным ключом (вы ведь положили ключ username.pub в keydir?) и, конечно, в самом файле ключа.