Hack Day One
8 октября 2012 г.
В этом году день рождения компании мы решили отметить совершенно новым для себя способом - провести хакерский фестиваль (он же hack day, hackathon и т.д.). Вот что из этого вышло.
Регламент был крайне прост: делаем любые проекты произвольными командами, потом показываем друг другу и голосуем за победителей. На все было полтора дня: пятница и половина понедельника. Присоединить еще и выходные не возбранялось.
Как все было
В пятницу, 5 октября, утро и в самом деле началось с рассвета. Несмотря на пробки, уже к девяти утра в офисе было полно народу.
После легкого завтрака команды занялись собственно хаком, с перерывами на обед, оперативно доставленный в офис из ресторана неподалёку, и вечернюю пиццу. Некоторые пришли в выходные, а некоторые и в понедельник до последнего готовили презентации своих проектов.
Наконец мы все стали смотреть, что у кого получилось. Полтора часа мы с удовольствием слушали друг друга, смотрели презентации и действующие образцы, задавали вопросы, и смеялись над шутками.
А потом общим голосованием были определены победители, и вручены призы.
Вот как это выглядело:
Проекты
Всего было сделано девять проектов. Именно сделано, без явных провалов, которые могли бы хоть как-то облегчить муки выбора при голосовании.
Каждый проект оказался по-своему крут, и о каждом хочется рассказать. А точнее — похвастаться.
1. Новый компилятор
Можно ли вдвоём за день перенацелить компилятор на новый процессор?
Оказалось, что да, можно. Хотя это сильно зависит от того, кто эти двое, а еще от того, какой компилятор перенацеливается. И если команда была с очевидностью идеальная, то компилятор так еще никто не проверял. Поэтому болели за этот проект, пожалуй, все.
Работающий "Hello, World" впечатлил даже тех, кто это сделал своими руками. Лично я до сих пор не могу поверить своим глазам.
Надо ли говорить, что этот проект был единодушно признан победителем? Еще он получил спецприз в номинации "Самый джедайский проект".
(Что за компилятор, с какого языка, для какого процессора - пока рассказать не можем, потому что до продукта еще очень далеко, а обманывать ожидания мы очень не любим. Расскажем обязательно, когда доведем до ума.)
2. Монитор сборочной системы
Не путать со сборочным конвейером!
У нас сборка продукта и прогон тестов идет практически непрерывно, на всем железе, что подключено к локальной сети. Хотя и называется это "ночной сборкой".
И вся эта вычислительная мощь нужна только для того, чтобы отправить каждому по нескольку десятков 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:
- DevDay@2gis, немного подробностей о The Nothing System.
- Исходные тексты The Nothing System на GitHub
5. Шаблоны в языке программирования
Как известно, шаблоны (templates, generics) в языках программирования вводят для того, чтобы не реализовывать одни и те же алгоритмы много раз.
Известно также, что их ввели ещё не во все заслуживающие этого языки. Среди отстающих — и тот, который мы сами интенсивно используем.
Этот проект был героической попыткой ликвидировать это отставание и тем сэкономить время и головы своих коллег.
Результат: работающий прототип, аплодисменты, и светлая перспектива продуктизации и внедрения, для начала в одной отдельно взятой компании, а впоследствии — и во всем мире. Подробности, опять же, обязательно расскажем со временем, но пока не можем, извините.
6. Блокировщик языка клавиатуры для Eclipse.
Случалось промахиваться с hot-key'ем только потому, что клавиатура оказалась в неподходящий момент переключена на русский?
С нами это случается регулярно, и раздражает это каждого.
Результат этого проекта - одна единственная кнопка в Eclipse. Нажимаешь, и клавиатура перестает переключаться с языка на язык. Нажимаешь еще раз — и она снова переключается.
На презентации самый частый вопрос был "Где взять?"
7. Идея из Эклипса
Не знаю как у вас, а у нас в компании есть поклонники Eclipse, а есть — поклонники IntelliJ IDEA. И каждый считает, что его любимая среда разработки намного удобнее.
Авторы этого проекта попытались хоть немного стереть различия между тем и другим, реализовав в Эклипсе одну из мелких “фишек” Идеи — отчеркивание вертикальными линиями структурных частей редактируемого исходного текста.
Результат — работает! Скорее всего будет продуктизировано и опубликовано в каком-то виде.
Update 27.11.2012:
Из письма одного из наших заказчиков:
...Посмотрела новую версию.
Все нравится :)
Очень понравились вертикальные ориентиры отступов!!!Публикация для более широкой аудитории - не за горами.
8. Файлообменник для нормальных людей
В эпоху DropBox'а, Яндекс.Диска, Google Disk'а, и т.п., заставлять клиентов пользоваться FTP для передачи файлов, скажем, в нашу техподдержку, негуманно.
Но так же негуманно заставлять их регистрироваться на этих службах только для того, чтобы передать или получить один файл.
Этот проект - попытка сделать простой и понятный файлообменник с веб-интерфейсом для частных и общественных нужд.
Результат — работающий прототип, который автор уже использует для себя, и перспектива продуктизации и внедрения как минимум на нашем файлообменном сервере.
9. Форматтер Скайп-чатов
Даже наш директор по маркетингу не остался в стороне и занялся автоматизацией своей собственной деятельности.
Скайп-чат для него — один их основных рабочих инструментов. В самом Скайпе чат выглядит отлично, но после передачи через буфер обмена, например, для пересылки фрагмента разговора по e-mail, получается месиво из имен, времен и фраз, читать которое трудно. Непорядок.
Чтобы не выходить из привычной роли слишком уж далеко, автор выбрал в качестве инструмента Visual Basic for Applications и модернизировал свой Outlook.
А поскольку положение обязывает, то в Интернете этот пакет появится однозначно. Внутри компании уже есть три пользователя.
Update 29.11.2012:
Благодарности
В первую очередь хочется поблагодарить всех, кто в этой затее участвовал. Без вас не было бы самого главного: немного сумаcшедшей атмосферы этого фестиваля профессионального творчества. Да и самого фестиваля - тоже.
Благодарим также Степана Червякова за креативность, профессионализм и недюжинное упорство при создании видеоотчета, и группу We Have Facts — за музыку к нему.