Archive for June, 2009

ICFPC 2009: отчет и впечатления

Вчера завершился ICFP Contest 2009.

Скажу сразу, ни одного очка я не набрал, что-то делал только в первые сутки.
Сначала пытался успеть отправить хоть что-то на Lightning Round, не успел, решил забить и заняться более полезными вещами :-D В итоге я успел написать только вроде бы корректно работающую виртуальную машину и почти работающее первое задание.

Задание не очень понравилось. Уж слишком серьезное и скучное: управление спутниками на орбите. Которые даже не стреляют!

По организации у многих участников были претензии: очень серьезные ошибки в спецификации, пересчет очков… Но вот таких высказываний я понять не могу (http://jabber-ru.ya.ru/replies.xml?item_no=4045):
А лично я пострадала от того, что они не ответили на мое письмо с требованием дать html версию спецификации (они выкладывали в pdf) и проигнорировали повторную просьбу через irc другим участником контеста. УРОДЫ.
Заметьте, именно с требованием дать спецификацию в HTML. Во первых, организаторы никому ничего не должны. Во вторых, спецификация в PDF с кучей формул, со сносками, что изменилось и т.д. - конвертировать в HTML может быть нетривиальной задачей. Да и PDF ну практически везде читается, даже на телефонах. В третьих, может и на русский например потребовать перевести надо было, мол английский не понимаю… Или поменять в спецификации little-endian на big-endian, мол у меня компьютер такой.

Лично мне организаторы ответили практически молниеносно: я в спешке при регистрации допустил ошибку в email — поправили в базе. Просто общаться надо уметь, а не “требовать” и обзывать уродами.

Из приятного: по текущим данным, на втором месте знакомая мне по “Сапке” команда THIRTEEN. И да, “Сапка” была интересней :-)

FreeDOS исполнилось 15 лет

28 июня 2009 года операционной системе FreeDOS исполнилось 15 лет. Кто не знает, это совместимая с MS-DOS операционная система под лицензией GNU GPL.

У меня есть старый ноутбук Compaq LTE Elite с 486 процессором и 20 MB памяти (когда-нибудь я перефотографирую все свои “раритеты” и выложу с описаниями). Некоторое время назад я установил туда FreeDOS 1.0 — отлично работает: запускает игрушки Mortal Combat III и Warcraft II :-D.

Еще я думал, что во FreeDOS будут длинные имена файлов, а не “8.3”, но оказалось, что так сделать не получится. Или получится, но работать не будет :-D Ну или будет, но только в некоторых программах.

С моим теперешним ноутбуком Dell система FreeDOS шла в комплекте. Ставить ее поленились, но диск был, с исходниками, как положено по лицензии GNU GPL. Просто вроде как по закону нельзя компьютер без операционной системы продавать.

P.S. При написании этой заметки наткнулся в своем архиве на запись одной донецкой группы, в которой я принимал участие. Так сказать, в тему нахлынувшим от воспоминаний о старых играх ностальгическим чувствам. Группа называлась “UA”, я там играл на бас-гитаре. Запись датирована 2006 годом, а кажется, что это было очень-очень давно.


http://kit1980.ru/files/audio/ua-nikogda-demo-2006_175834.mp3

ICFPC 2009: первые блины

Всю ночь решал задачи ICFP Contest 2009. Вернее писал виртуальную машину, в которой эти задачи надо решать. На C++.

Там, в общем-то, очень просто эту виртуальную машину реализовать. Но сначала организаторы несколько часов не признавали ошибку в спецификации.

А потом пару часов ушло на отладку тупейшей ошибки: забыл break в одном switch-е поставить! Какие-нибудь IDE о возможной ошибке в таком случае предупреждают? Или может ключик какой у компилятора?

Вакансия “исследователь-аналитик” в Яндексе: вопросы на сообразительность

Сегодня в Яндексе открылась вакансия “Исследователь-аналитик”.

В описании вакансии, как обычно делают в Яндексе, есть маленькие задачки-вопросы. Среди них:

  • Продолжите ряд: 2, 3, 5, 7, 11, 13, 17, …
  • Продолжите ряд: 1, 1, 2, 3, 5, 8, 13, …
  • Продолжите ряд: 3, 4, 7, 10, 16, 21, 30, …

Если лень думать, можно просто пойти на http://www.research.att.com/~njas/sequences/, скопировать туда последовательности и получить однозначные ответы.

Интересно, такой способ решения задачек — это плюс или минус для будущего исследователя-аналитика?

Через три дня стартует ICFP Contest 2009

Через три дня, в пятницу 26 июня в 21:00 по Киевскому времени стартует ICFP Contest 2009. Продлится, как обычно, 72 часа.

Я буду участвовать. Первый раз. Писать собираюсь на C++, в основном.

Al Zimmermann’s Programming Contests

Прочитал на топкодеровском форуме о новых (для меня) соревнованиях для программистов — Al Zimmermann’s Programming Contests.

Сегодня там стартовал конкурс под названием “Son Of Darts”. Окончание — ровно через год, так что спешите :-D

В призах там прикольные необычные металлические статуэтки, типа Borromean Rings. Я б такую и купил бы, но не за $450…

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

Я зарегистрировался. Но длительность — год… Как-то неспортивно.

Стихи Ренаты Мухи

Всем любителям и нелюбителям поэзии рекомендую: Рената Муха.

Из особо понравившегося:
Жил Человек на острове в печальном одиночестве.
Детей не знал по имени, но вспоминал по отчеству.
Мы с мамой
В Африке живем,
А в джунглях жизнь — не шутка:
Там страшно ночью,
Страшно днем,
А в промежутках
Ж у т к о.

Topcoder SRM 442

Сегодня прошел SRM 442 на topcoder.

Я снова улучшил свой, мягко говоря, скромный рейтинг в алгоритмах — 573 балла. Решил задачи на 250 и 500, при этом три раза неудачно пытался челленджить чужие решения :-D Все это во втором дивизионе.

Во второй задачке (на 500 баллов) надо было использовать простые числа до 100000. К своему стыду, мне быстрей было найти их в google и прописать константой в программе, чем запрограммировать. Не уверен, насколько это соответствует правилам. В марафонах точно можно, и тут http://forums.topcoder.com/?module=Thread&threadID=643815 Nickolas пишет, что “Sometimes the same method can be applied to Algorithm problems”.

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

Google Wave Developer Preview

Наконец-то посмотрел Google Wave Developer Preview at Google I/O 2009. Видео довольно длинное, почти полтора часа, но очень интересное. Кто еще не смотрел — рекомендую. Даже с нетехнической точки зрения: как люди ведут себя перед огромной аудиторией, делая живую презентацию, как выходят из затруднений и т.д.

Про саму технологию Google Wave. Впечатлило. Не до такой степени, как некоторые высказывания в Интернете в духе “не будет ни кино, ни театров — одно сплошное телевидение”, но очень серьезный продукт.

Для тех, кто не смотрел видео, расскажу вкратце, что это вообще такое, а то из встретившихся мне до этого статей лично я не понял. По большому счету, это навороченный instant messenger, работающий в браузере. Главные фишки — у получателя текст обновляется по мере набора (можно отключить), участвовать могут одновременно много человек и роботов, можно редактировать свои и чужие сообщения (причем сохраняется вся история изменений). При помощи плагинов Wave умеет экспортировать/импортировать данные из других источников (twitter, блоги, e-mail, сайты…). Сообщения в Wave могут содержать не только текст, но и изображения, таблицы, и даже игры (были продемонстрированы шахматы). Все это расширяемо на нескольких уровнях. Плюс это будет open source с открытым протоколом, можно будет установить себе на сервер.

Из особенно запомнившего — робот-спеллчекер. Исправляет ошибки, разбираясь по контексту. Например, “Icland is an icland” исправляет на “Iceland is an island”. Данные — на основе текстов из Интернета. Идея как бы лежит на поверхности, но раньше нигде такого не встречал.

Сделан Wave при помощи Google Web Toolkit (gwt) — фреймворка, позволяющего писать AJAX + HTML приложения типа Gmail или Google Wave на Java. Надо будет попробовать (перед этим только надо хотя бы немного выучить Java :-D).

Релиз Google Wave для простой публики обещают через несколько месяцев.

Google Chrome Linux

Недавно (со значительным опозданием по сравнению с Windows-версией) появилась тестовая версия браузера Google Chrome для Linux. Скачать можно тут: http://www.google.com/chrome/intl/en/eula_dev.html?dl=unstable_i386_deb.

Я поставил себе версию 3.0.183.1-r17570 на ноут на Ubuntu 8.04. Работает :-)

Первым делом проверил работу JavaScript на своих сайтах http://progopedia.ru/ и http://brainfuck.progopedia.ru/: все в порядке.

Буду дальше тестировать.

Уже заметил мелкое неудобство: на ноутбуке при пользовании тачпадом в Firefox чтобы выделить весь адрес в адресной строке достаточно поставить курсор в конец строки и, удерживая левую кнопку тачпада, повести курсор немного вверх. В общем это везде так, не только в адресной строке: для выделения строки достаточно удерживать левую кнопку и повести курсор вверх. А в Google Chrome такой трюк не работает.