Hackathon @ JetBrains 2014

    
 
Минуло вже більше року з тих пір, як в нашій компанії пройшов перший хакатон , що дав життя новим проектам. За цей час "ідеафон " (той самий брутально-музичний інструмент, що складається з газових труб і молоточків, керованих за допомогою Arduino) відвідав кілька виставок і продовжував надихати наших розробників на нові ідеї.
 
Треба сказати, що протягом року руки свербіли: співробітники то і справа під час обідньої перерви обговорювали нові проекти, які можна було б захакатоніть, ідеї відкладалися в довгий ящик, з часом забувалися, і з'являлися нові. На початку літа нестерпне очікування хакатона змінилося затишшям відразу ж після анонсу події. За два тижні до початку в списку було не більше п'яти проектів, що ж трапилося? Бути може, криза ідей або банальний брак часу? Виявилося, ні перше, ні друге: хлопці в таємниці один від одного готували свої проекти, вивіряли складність і часові витрати, всім хотілося отримати за 48 годин працюючий прототип, а не концептуальну модель.
 
 
 
У результаті до початку хакатона було представлено більше 30 проектів з повним спектром технологій, від чистого розробки до хардварних проектів, останніх цього року було значно більше.
 
 
Як це було
 
 
 
 
Брати участь у Хакатона могли всі бажаючі (не тільки розробники). Теми проектів теж нічим не обмежувалися. Два офісу JetBrains — петербурзький і мюнхенський — на 2 дні перетворилися на бази для учасників проектів, з повним забезпеченням: тематичні ланчі (німецькі для пітерського офісу та росіяни для мюнхенського), набори для виживання (плед, подушка, беруші, маска для сну) і 48-годинна інфраструктурна підтримка проектів.
 
 
 
Писати про те, як писали код (вже пробачте за тавтологію), думаю, особливого сенсу немає. Всі хабрачітателі і так чудово уявляють, як це відбувається. Єдине, на що я хотів би звернути увагу — це символіка. Організатори вирішили виділити учасників хакатона прапорцями і браслетиками серед всіх співробітників, щоб усі знали: ці хлопці працюють зараз в іншому вимірі.
 
 
 
 
 
 Про додатках
Давайте тепер пробіжимося за додатками і гаджетам, які вийшли.
 
 TravelPie
Одна з команд за 48 годин зробила додаток для мандрівників, які, опинившись в новому місці, хочуть корисно провести час і дізнатися місто в своєму власному стилі.
 
 
 
Додаток не містить стандартних турів по місту, воно щоразу автоматично створює унікальний тур в залежності від інтересів користувача. На вході вибираєш місто, куди збираєшся поїхати (зараз це тільки Санкт-Петербург, хакатон жеж), кількість днів і адресу, де плануєш зупинитися. Далі зі списку вибираєш те, що тобі цікаво, і в яких пропорціях (складаєш свій власний travel pie інтересів). На виході отримуєш маршрут на кожен день з урахуванням того, де перекусити, куди сходити, чим зайнятися і все це — виходячи з твоїх уподобань.
 
 
 
На яких технологіях побудовано?
Для підняття бекенд було прийнято рішення використовувати знайомі технології та затратити найменші зусилля: Java, Servlet 3, H2 Database. Для фронтенда використовували Backbone.js і RequireJS для модульності та управління залежностями. Все, природно, писалося в IntelliJ IDEA, для зберігання коду використовувався git.
 
У хлопців в планах на поліпшення: вдосконалений алгоритм побудови шляху, можливість редагування побудованого маршруту, побудова не тільки піших маршрутів, але і маршрутів, що використовують міський транспорт, збереження маршруту, інтеграція з зовнішніми джерелами для отримання фотографій та інформації про пам'ятки. Будемо чекати оновлень і планувати відрядження через travel pie.
 
 JetSocialism
У нас є трекер заявок YouTrack, система контролю версій, сервер безперервної інтеграції TeamCity і блоги. Давайте додамо до всього цього трохи веселощів і бейджів. Кожна дія в перерахованих вище системах генерує відповідні події: хтось Фікс багу або робить фічу і отримує за кожну подію бали.
 
 
 
Оскільки кожна людина так чи інакше унікальний, то додаток може спробувати виділити сильні сторони користувача — наприклад, хтось постить більше інших meta-issues, або його Комміт частіше інших валить білд, а хтось просто пише великі тексти або швидко фікс мінорні завдання…
 
 
 
Таким чином, за досить складною формулою з'ясовується, що людина працює дуже швидко, і тоді він разлочівает бейдж «Спіді Гонзалес». А інший закриває стародавні ішью, він — "Вбивця мумій", ну і так далі… Формули бувають і прості, і складні. На виході отримуємо фан — а дані і так вже давно існують і будуть існувати.
 
 JetWorld
У нас багато користувачів по всьому світу, дуже приємно, коли в деяких містах є сильні спільноти, які діляться всередині себе знаннями, але ми хотіли б зробити ще один крок назустріч нашим користувачам і спробувати показати всі події, пов'язані з JetBrains на карті світу. JetWorld — інструмент, завдання якого — допомогти користувачам продуктів JetBrains по всьому світу створити більш тісні локальні спільноти.
 
Технологічно — це веб-додаток, що використовує API Google Maps для представлення даних. Як сховище даних використовується MongoDB, бекенд написаний на Kotlin, а фронтенд — на чистому JavaScript. В якості платформи для хостингу використовується Heroku.
 
 
 
На карті користувач може побачити заплановані події, так чи інакше мають відношення до JetBrains (конференції, доповіді співробітників на зустрічах юзер-груп, тощо), а також компанії, що використовують продукти JetBrains і розташовані неподалік. Зручний доступ до такої інформації, на думку учасників команди, може бути вкрай корисний для утворення активних локальних спільнот наших користувачів.
 
Є і можливість додавання організацій на карту, яка може дозволити стороннім компаніям розповідати про свій досвід використання продуктів JetBrains. Розробники JetWorld хочуть дати можливість окремим користувачам, які є експертами в наших продуктах, розповідати про себе. Доступ до бази експертів буде дуже корисний користувачам і компаніям в навчанні, обміні досвідом у використанні продуктів JetBrains.
 
Взагалі було багато крутих проектів, наприклад, хлопці з команди MPS робили автоматизовану поливалку рослин.
 
 
 
Мюнхенські колеги зібрали роботизований стенд з різнокольоровими кульками, який в режимі реального часу відображає вчинені користувачами покупки наших продуктів, кожному продукту відповідає свій власний колір.
 
 Про переможців
Ну і звичайно ж потрібно сказати про переможців.
 
 Robot — painter
Третє місце виграла Катерина Тузова зі своїм роботом-художником, який за 6 з невеликим годин могла в одну лінію намалювати будь-яку картинку формату А3. Робот побудований на крокових двигунах, керованих за допомогою Arduino. Програмне забезпечення з аналізу зображення і побудови шляху було написано на Пітоні.
 
 
 
Незважаючи на обмеження за часом в 48 годин, робот почав малювати картини ще в першу добу. Хоча спочатку не все йшло гладко, і доводилося правильним чином налаштовувати ПО і закріплювати кулькову ручку. Але вже до завершення хакатона робот впевнено малював картинки будь-якої складності.
 
  
 Wachter
У нашого офісу є власна територія для паркування автомобілів, і щоб потрапити всередину, необхідно відкривати шлагбаум . Коли ми тільки переїхали на Васильєвський острів, співробітникам видали брелоки для дистанційного відкриття шлагбаума. Але так трапляється, що іноді їдеш на роботу з іншим рюкзаком, або брелок залишився на роботі, доводиться телефонувати на ресепшн і просити, щоб хто-небудь відкрив шлагбаум.
 
 
 
Спочатку народилася ідея зробити веб-кнопку, яка при натисканні посилає сигнал на сервер і активує шлагбаум. Але хлопці з проекту з жартівливим назвою "Wachter" пішли далі. Вони отримали доступ до камер зовнішнього спостереження і за допомогою бібліотеки OpenCV стали «розбирати» автомобільні номери. У нас є своя внутрішня соціальна мережа JetPeople, в якій у кожного співробітника на сторінці вказано держномер транспортного засобу. Вже в перший день Wachter навчився розрізняти номери (правда не всі) і перевіряти їх на відповідність записам співробітників.
 
 
 
Вузьким місцем виявилося те, що не всі сигнали від трансмітера доходять до шлагбаума. Мабуть, розробники шлагбаума вирішили, що якщо він не піднімається після натискання кнопки, то користувач буде повторювати цей процес до успішного результату. Але все одно, проект отримав велику кількість голосів і посів 2-е місце.
 
 HandCartoon
Перше місце дісталося проекту по анімації плоских картинок на планшеті. Про цей проект ми вирішили зняти невеликий ролик-інтерв'ю:
 
  
Ось наші переможці:
 
 
 
А тепер будемо чекати наступного року.
 
Keep hacking!
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.