?

Log in

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


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



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

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

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

Вот они, родимые.

Мы - на позорном 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 )
Работа моя нынешняя пригласила Саймона Пейтона-Джонса (того самого) прийти и рассказать нам что-то интересное.

Он согласился и пришел, рассказывал вариации на тему побега из башни из слоновой кости (кто не видел - пролистайте хоть слайды, они ржачные). Т.к. аудитория наполовину состояла из caml-программистов, позубоскалили на тему eager и lazy evaluation, и т.д. и т.п.

В процессе я узнал, что (извините за пиджин рашн):Read more...Collapse )
Я тут читал залежи в google reader и наткнулся на пост, озаглавленный "Окно в закабаленный мир". В нем были описаны какие-то жуткие ужасы о том, как сетапить окружение для разработки на Haskell, и я хотел бы рассказать, как это делал я. Писать буду только про Linux, т.к. с Windows у меня никакого опыта нет.
Read more...Collapse )
1st-Nov-2011 09:02 pm - Чукча - не читатель!
"Хвалить себя надо всегда: источник забудется, а информация останется".

Вот, хвалю: http://themonadreader.wordpress.com/2011/10/26/issue-19/
На своей нынешней работе я много пишу на OCaml. Не только на нем, но если это не SQL, и не простенькие скрипты, то это почти наверняка будет OCaml. И по результатам трех месяцев я решил сесть и записать свои негативные впечатления от, скажем так, перехода с Haskell. Про позитив писать особого смысла нет - ну, почитаете вы его, покиваете головой и все. А так, глядишь, кто чего посоветует :)

В этот раз, думаю, у меня получится лучше, чем в прошлый. let bitching = begin ...Collapse )
Чем сейчас занимаются люди, которые привыкли празновать Новый Год, а вынуждены праздновать Рождество?

Сейчас у них каникулы после Рождества, но праздник-то еще впереди. Поэтому они ... красят двудольные графы :)

"Резюмируя, мы описали проверку двудольного графа исходя непосредственно из определения. Получившийся код даже немного короче, чем рассмотренные примеры [...]."

(Предыдущие серии этой занимательной истории и ссылки на ее начало можно найти в моем посте)
Надысь один мой френд написал пост про проверку двудольности графа на Haskell. После чего другой мой френд взял его код и откомментировал. После чего третий мой френд разразился язвительным постом-комментарием на эту тему (именно в комментариях к этому посту есть эпический тред про вывод типов в PHP и иже с ними).

После этого тема была вытащена на Хабр и образцово отхабрена.

Так как весь базар-вокзал - про Haskell, я тоже хочу добавить пару слов.Точнее, два листингаCollapse )
Вышел второй номер журнала "Практика функционального программирования" - теперь с меньшим количеством теории и большим количеством практики ;)

Авторы статей: _adept_, thesz, gaperton, alexott, _darkus_, dmzlj  и Александр Самойлович.

Читаем на сайте: http://fprog.ru/2009/issue2/
Обсуждаем в ЖЖ: http://community.livejournal.com/fprog/3105.html
Вышел первый выпуск журнала, посвящённого практике функционального и декларативного программирования, чему я очень рад. В нем есть моя статья, и этому я рад еще больше.

http://fprog.ru/2009/issue1/.

Организатор процесса - lionet. Авторы статей: thesz, _darkus_, antilamer, kurilka и alexott.

Официальный анонсCollapse )
Когда-то давно на волне некоторого успеха в деле написания заметочек в блог и журнальных статей, мне подумалось - а почему бы не попробовать себя в следующей весовой категории? Мысль пришла в голову и ушла в подсознание. Осела там, окопалась и изредка напоминала о себе, впрочем - без особого результата.

Однако же, когда в начале этого года _darkus_ обратился ко мне с предложением стать соавтором книги, благодатная почва была уже подготовлена и обильно удобрена, и я сразу же согласился. И вот уже в течении трех месяцев мы пишем книгу о синтаксическом анализе и построении DSL (domain-specific languages) при помощи Haskell, и ищем экспертов-рецензентов для обсуждения черновых вариантов ее глав.

В настоящее время для прочтения выложены введение и первая глава книги. Вторая, третья и четвертая главы будут в самом ближайшем времени доступны тем, кто плотно заинтересовался процессом и вступил в закрытое community sa_in_haskell.

Вы уже заинтересовались? Дело за малым: для того чтобы попасть в сообщество, необходимо написать e-mail на адреса darkus.14 AT gmail.com и dastapov AT gmail.com, в котором в паре абзацев рассказать про себя и про свой опыт использования языка Haskell, ещё в паре абзацев рассказать о том, почему имеется интерес к книге и чем конкретно, как вам кажется, вы можете помочь или быть полезны. Речь не идет о том, что мы будем устраивать формальные интервью и делить желающих на "годных" и "негодных". Речь, скорее, о том, чтобы убедиться, что потенциальный рецензент способен связно выражать свои мысли на письме и хоть что-то слышал про Haskell или связанные с ним вещи. Эта мера, равно как и закрытие community - наш (возможно, неоптимальный) способ улучшить соотношение "сигнал-шум" в общении с вами.

Спасибо за внимание, ждем писем!
Этот пост был написан "в стол" и долгое время там лежал. В процессе переезда обычно наводишь порядок, в том числе - и в столе. Ненужное выкидываешь, нужно - приспосабливаешь для какой-то пользы. Раз уж пост был написал - надо его публиковать :)

О чем повествует сказка про репку, вы все наверняка в курсе.

Если кто забыл - напомню:

> module Main where

> import Prelude hiding (putStrLn, print)
> import System.IO.UTF8
> import Data.List (intersperse, find)

Вы скажете - в сказке такого не было? Погодите - скоро сказка сказывается, не скоро дело делается. Так вот, жили-были любители репы:Read more...Collapse )
Умные люди придумали много разных формальных нотаций для моделирования процессов и систем (например, UML и IDEFx) . Другие умные люди написали гору софта, который призван облегчать работу по созданию этих самых моделей в выбранной нотации.

Казалось бы, выбирай нотацию, подбирай софт поудобнее - и вперед, рисовать схемы по захвату мирового господства.Дальше интересно будет только тем, кому уже интересно :)Collapse )
Я сподобился написать еще одну статью о ФП на русском. На этот раз - о бесконечных списках и ленивых вычислениях (в стиле "Tying The Knot", если кто в курсе). Буду рад, если вы прочтете и покритикуете.
Прошел год с тех пор, как я в составе команды Lazy Bottoms боролся за победу в ICFPC-2006. Победить нам не удалось, но мы заняли достаточно почетное 18 место (среди 360 команд), причем упорная борьба шла до самых последних минут и в течении последнего часов соревнования top 10 достаточно сильно изменялся.

В этом году наша команда собралась в несколько измененном и расширенном составе и выступила под старым названием. Результат, увы, оказался не столь впечатляющим - 56 место среди 860 команд, из которых 500 не сделали вообще ничего.

История в трех частях с прологом и эпилогом про то, как мы дошли до жизни такойCollapse )
Написал еще одну статью про ФП для developers.org.ua. Читайте, ругайте.

UPD: в принципе, статья писалась под впечатлением известной статьи Walder-а (The essense of FP) и некоего поста в ЖЖ, который я долго пытался найти, и не мог. А вот сейчас получилось :) To give credit where credit is due: спасибо thesz за пост http://thesz.livejournal.com/326004.html :)

PS
normal blogging will resume shortly :)
Написал короткую статью про ФП для developers.org.ua. Читайте, ругайте :)
По чьей-то ссылке наткнулся на очередной сайт с загадками вида "вычисли URL следующей страницы". При ближайшем рассмотрении оказалось, что головоломка рассчитана на программистов и предполагает использование Python-а.

Just for fun я попробовал сделать ее на Haskell. И вот что получилось ...Collapse )
This page was loaded Aug 19th 2019, 10:53 pm GMT.