Андрей Хапугин

Hack Day One
8 октября 2012 г.

В этом году день рождения компании мы решили отметить совершенно новым для себя способом - провести хакерский фестиваль (он же hack day, hackathon и т.д.). Вот что из этого вышло.

Регламент был крайне прост: делаем любые проекты произвольными командами, потом показываем друг другу и голосуем за победителей. На все было полтора дня: пятница и половина понедельника. Присоединить еще и выходные не возбранялось.

Как все было

В пятницу, 5 октября, утро и в самом деле началось с рассвета. Несмотря на пробки, уже к девяти утра в офисе было полно народу.

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

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

А потом общим голосованием были определены победители, и вручены призы.

Вот как это выглядело:

Проекты

Всего было сделано девять проектов. Именно сделано, без явных провалов, которые могли бы хоть как-то облегчить муки выбора при голосовании.

Каждый проект оказался по-своему крут, и о каждом хочется рассказать. А точнее — похвастаться.

1. Новый компилятор

Hello, World!

Можно ли вдвоём за день перенацелить компилятор на новый процессор?

Оказалось, что да, можно. Хотя это сильно зависит от того, кто эти двое, а еще от того, какой компилятор перенацеливается. И если команда была с очевидностью идеальная, то компилятор так еще никто не проверял. Поэтому болели за этот проект, пожалуй, все.

Работающий "Hello, World" впечатлил даже тех, кто это сделал своими руками. Лично я до сих пор не могу поверить своим глазам.

Надо ли говорить, что этот проект был единодушно признан победителем? Еще он получил спецприз в номинации "Самый джедайский проект".

(Что за компилятор, с какого языка, для какого процессора - пока рассказать не можем, потому что до продукта еще очень далеко, а обманывать ожидания мы очень не любим. Расскажем обязательно, когда доведем до ума.)

2. Монитор сборочной системы

Screenshot

Не путать со сборочным конвейером!

У нас сборка продукта и прогон тестов идет практически непрерывно, на всем железе, что подключено к локальной сети. Хотя и называется это "ночной сборкой".

И вся эта вычислительная мощь нужна только для того, чтобы отправить каждому по нескольку десятков e-mail'ов, которые надо разгрести до начала работы. И так каждый день. Годами.

Понятно, что не использовать такой шанс навалиться на проблему просто не смогли.

В результате ночная сборка теперь рапортует веб-серверу, а убедиться, что тебе не надо все бросать и фиксать проблемы, можно за минуту.

Получилось здорово. Проект занял второе место и уже вовсю используется.

3. Консенсус-управление кондиционером

Оказывается, к офисному кондиционеру простым паяльником можно приделать USB-порт. Затем, следуя заветам великого Микеланджело взять код вот этого проекта, отрезать от него все лишнее, и получится изящная программка, которая умеет управлять температурой воздуха через этот USB-порт.

Зачем это?

Конечно, для внедрения принципов швейцарской демократии!

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

Проект получил спецприз в номинации "Самый веселый проект".

4. The Nothing System

Если коротко, то The Nothing System - это воплощение идей, заложенных ещё профессором Виртом в систему Oberon и получивших дальнейшее развитие в продукте BlackBox, только на Java. А поскольку Java для реализации этих идей дает гораздо больше возможностей, то при должном развитии они могут перевернуть мир. Люди забудут про инсталляцию приложений, а веб-технологии, наконец, встанут с головы на ноги.

Не очень понятно, правда?

Автора The Nothing System на презентации тоже мало кто понял, несмотря на всю простоту идеи. Просто это — альтернатива общепринятым и привычным принципам разработки, и с ней надо как следует поиграться, чтобы оценить.

Проект получил приз в номинации "Shut up and take my money".

Если удастся найти еще пару-тройку таких же буйных, можно будет продолжить начатый переворот…

Update 22.11.2012:

  1. DevDay@2gis, немного подробностей о The Nothing System.
  2. Исходные тексты The Nothing System на GitHub

5. Шаблоны в языке программирования

Как известно, шаблоны (templates, generics) в языках программирования вводят для того, чтобы не реализовывать одни и те же алгоритмы много раз.

Известно также, что их ввели ещё не во все заслуживающие этого языки. Среди отстающих — и тот, который мы сами интенсивно используем.

Этот проект был героической попыткой ликвидировать это отставание и тем сэкономить время и головы своих коллег.

Результат: работающий прототип, аплодисменты, и светлая перспектива продуктизации и внедрения, для начала в одной отдельно взятой компании, а впоследствии — и во всем мире. Подробности, опять же, обязательно расскажем со временем, но пока не можем, извините.

6. Блокировщик языка клавиатуры для Eclipse.

Случалось промахиваться с hot-key'ем только потому, что клавиатура оказалась в неподходящий момент переключена на русский?

С нами это случается регулярно, и раздражает это каждого.

Результат этого проекта - одна единственная кнопка в Eclipse. Нажимаешь, и клавиатура перестает переключаться с языка на язык. Нажимаешь еще раз — и она снова переключается.

На презентации самый частый вопрос был "Где взять?"

7. Идея из Эклипса

Screenshot

Не знаю как у вас, а у нас в компании есть поклонники Eclipse, а есть — поклонники IntelliJ IDEA. И каждый считает, что его любимая среда разработки намного удобнее.

Авторы этого проекта попытались хоть немного стереть различия между тем и другим, реализовав в Эклипсе одну из мелких “фишек” Идеи — отчеркивание вертикальными линиями структурных частей редактируемого исходного текста.

Результат — работает! Скорее всего будет продуктизировано и опубликовано в каком-то виде.

Update 27.11.2012:

Из письма одного из наших заказчиков:

...Посмотрела новую версию.
Все нравится :)
Очень понравились вертикальные ориентиры отступов!!!

Публикация для более широкой аудитории - не за горами.

8. Файлообменник для нормальных людей

Screenshot

В эпоху DropBox'а, Яндекс.Диска, Google Disk'а, и т.п., заставлять клиентов пользоваться FTP для передачи файлов, скажем, в нашу техподдержку, негуманно.

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

Этот проект - попытка сделать простой и понятный файлообменник с веб-интерфейсом для частных и общественных нужд.

Результат — работающий прототип, который автор уже использует для себя, и перспектива продуктизации и внедрения как минимум на нашем файлообменном сервере.

9. Форматтер Скайп-чатов

Skype IM Pretty Printer

Даже наш директор по маркетингу не остался в стороне и занялся автоматизацией своей собственной деятельности.

Скайп-чат для него — один их основных рабочих инструментов. В самом Скайпе чат выглядит отлично, но после передачи через буфер обмена, например, для пересылки фрагмента разговора по e-mail, получается месиво из имен, времен и фраз, читать которое трудно. Непорядок.

Чтобы не выходить из привычной роли слишком уж далеко, автор выбрал в качестве инструмента Visual Basic for Applications и модернизировал свой Outlook.

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

Update 29.11.2012:

Уже выложено на GitHub, здесь...

Благодарности

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

Благодарим также Степана Червякова за креативность, профессионализм и недюжинное упорство при создании видеоотчета, и группу We Have Facts — за музыку к нему.

Продолжение следует!