ДержХак 2014 + Х = eGoverment . Пошук змінної

6-7 вересня в Києві пройшов перший державний хакатон України - " ДержХак - 2014 " . Місцем проведення було обрано конференц - зал стадіону " Олімпійський " . Організовували цей захід хлопці з ДП " Інформаційно - ресурсний центр " , які займаються держреєстру . Вони заявили про призовий фонд у розмірі 898560 грн + призи від спонсорів , якими виступили Google , Microsoft , Cisco , Oracle та інші , представники яких були також менторами . На відкритті виступав міністр юстиції і ще пара важливий дядьком .

На хакатон ми пішли втрьох : я ( Женя ) і мої товариші Максим та Андрій . Ми з Максимом вчимося на 4м курсі факультету прикладної математики в КПІ , Андрій - старший науковий співробітник Інституту кібернетики ім. Глушкова НАН України . Задача хакатона була розбита на 2 напрямки:
1 . Інформаційна безпека ( обійти захист пошуку в єдиному держреєстрі ) .
2 . Створення нових сервісів з використанням наданого API. API надавало пошук за єдиним держреєстру юр . і фіз . осіб - підприємців. Ми вирішили створювати новий сервіс . Треба було з'ясувати , як виглядає API наших реєстрів , і перевірити свої сили в створенні проекту за добу. Для більшого інтересу вирішили помінятися ролями з Максимом : він зайнявся написанням необхідного функціоналу на JS ( хоча зазвичай пише під .NET) , я взявся за парсинг даних , одержуваних за API на Java ( хоча зазвичай пишу frontend ) , а Андрій ці дані витягав . Але все не так просто , як звучить! Перший день - API. Прийшовши на місце , ми першим ділом вирішили ознайомитися з люб'язно наданими нам роздруківками , які містили опис API. На цьому моменті настав перший шок : те, що гордо іменувалося " прототип системи конвертації даних пошуку в Єдиному державному Реєстрі юридичних осіб та фізічніх осіб- підприємців та підприємств у формат , прідатній для сприйняттів автоматизоване системами " , виявилося найпростішої річчю. Система дозволяла знайти фіз . особа за номером паспорта або юр . особа по восьмизначний коду ( ID ) в реєстрі . У відповідь сервер плював XML. Все . Те , що компанію не можна шукати за назвою , - тільки за кодом ( дізнатися який можна , тільки знайшовши її в реєстрі ) , Максим відразу обізвав безумством . Тоді він і підозрювати не міг , що на цьому проблеми не закінчаться. Поки ми збирали докупи потенційні ідеї для майбутнього сервісу , поступово підтягувалися інші учасники , а організатори підключали відеозйомку і тестували великий центральний екран ( метра 3 ? 7 в розмірах ) . Половину часу на ньому йшов відеоряд з красиво підсвіченими шматками коду в перемішку з кадрами з турнірів по Dota 2 Також - мабуть, щоб учасники не нудьгували - постійно грала музика , гучність якої можна було оцінити як " відволікаюча " . Десь через годину зібралися всі офіційні особи , і провели урочисте відкриття . Так як , простігосподі , документацію видали на вході , до моменту відкриття всі команди вже старанно працювали . Ми вже визначилися з ідеєю і створили програмну базу для нашого проекту , але ще не почали працювати з API. Незабаром, коли API став барахлити , люди усвідомили , що ті , хто створює сервіси , і ті , хто намагається обійти захист , сидять на одному інтерфейсі . І коли одна з команд - зломниць домоглася якогось успіху , про це дізналися всі . Журі та Ментори . Тут відразу варто зазначити , що журі , яке пізніше буде розподіляти місця , в перший день якщо і були присутні на заході , то тільки на його урочистої частини. А ті пару менторів , які були , пішли відразу після обіду , хоча ідейно повинні були провести цю добу кодинга з нами в одному приміщенні. Екосистема . На будь-якому подібному заході однією з основних і невід'ємних складових є наявність вільного доступу до інтернету. На " ДержХаке " інтернет був якісний , але не у всіх. Приміром , серед членів нашої команди інтернет відмінно працював тільки у Максима , у Андрія - з перемінним успіхом , а у мене - практично не працював взагалі. Організатори намагалися виправити ситуацію , але не завжди виходило. Їжа . Як відомо , для продуктивної роботи , крім ясної голови , необхідний повноцінний раціон харчування. В цьому плані хакатон більш ніж порадував. Очікували печеньки і піцу , а отримали розкішний ресторан з відмінним обслуговуванням , який оцінили б навіть самі вибагливі гурмани . Після цього настрій , звичайно ж , піднялося . Реалізація сервісу . Добре підкріпившись і розподіливши завдання за обідом , ми повернулися до роботи , і кожен зайнявся своїм завданням :
- Андрій зайнявся витягуванням даних з їх сервера .
- Я приступив до парсинга одержуваних XML - ін та переводу даних в необхідний нам формат .
- Максим почав роботу над графічною візуалізацією . Що складного в отриманні доступу до даних , якщо у вас є API ? Як вже говорилося раніше , отримати XML з даними про підприємство можна тільки знаючи його індентіфікатор , тому нам не залишалося нічого іншого , окрім як перебирати все підряд. ID був 8 -значним , тому вирішили почати десь з 30000000 - го ідентифікатора і тягнути все по черзі . На кожні 20 завантажених XML -ок припадала одна з даними , всі інші були пустушками . Результати , повертаються сервером , вирішили підкинути ще одну ложку дьогтю . Порівнявши 3 перших отриманих результату , я помітив відразу кілька несумісностей . Приміром , один з файлів містив поля " Прізвище " та " Ім'я По батькові " , а другий - " Прізвище Ім'я По батькові " у вигляді одного поля. Також здивував формат шматка XML з засновниками : в одному файлі це був масив Founders [ Founder [ " name " , " code " , " info "] , Founder [ " name " , " code " , " info "] ] .
В іншому файлі , де учередителей був всього один , було Founders [ Founder [ " name " , " code " , " info "] ] . Ніби як все добре , чи не так? Але тут в очі кидається третій файл : Founders [ " name " , " code " , " info "] . Ці та багато інших неоднозначності забрали багато часу на облік усіх "стандартів" , але , на щастя , це вирішувалося просто. Приблизно до 5 години вечора пішли всі організатори , і залишилося близько 25 учасників з 100 та охорона. Догляд учасників можна пояснити можливістю використання API віддалено з дому , але як розуміти відсутність взагалі будь-кого з оргов в нічний період ? Бути може , держслужбовці просто не розуміють , що після шести вечора теж може щось відбуватися. Разом з організаторами зникли настирлива музика і хлопці , які вдень брали досить кумедні інтерв'ю. Забавні вони були тим , що репортери поняття не мали , що це за захід . Все їхнє уявлення вкладалося в " тут зібралися хакери щось зламувати " . Деякі питання були по темі , але відповідей хлопці не розуміли. Ну , це не їх профіль , - добре що хоч намагалися висвітлити подію . Мета виправдовує засоби . Тим часом кодинг йшов успішно. Оцінивши свій прогрес , ми подумали , що навіть зможемо викроїти пару годин сну і бути свіжими на презентації. Дійсно , до другої години ночі проект був майже готовий. Ми зробили карту з відображенням всіх підприємств і можливістю фільтрувати результати за різними параметрами , наприклад , по виду діяльності компанії. Щоб відобразити все це , довелося набити собі словник координат по поштовим індексам , так як популярні геокодери не дають вичавлювати себе безкоштовно . Також прикрутили красиві графи , що дозволяють знайти спільної засновника компаній або подивитися дочірні підприємства . Ще зробили генерацію pdf - виписки з інформацією по компанії , підписаної електронним цифровим підписом . Такий набір послуг ми і переплели в нашому сервісі . Забекапівшісь , ми роз'їхалися по домівках. Результат : Електронні Адміністративні послуги для бізнесу ( демо - версія) У 8 ранку , повернувшись , ми застали тих же 6 осіб , які залишалися , коли ми йшли. " Довилізалі " все до повної готовності і зробили презентацію . До половині 10 - го почали підтягуватися організатори заходу і решта учасників . В 11:00 головний дядько оголосив , що частина членів журі спізнюється , і ми почнемо без них . Презентації . Велика частина презентацій в змаганні з інформаційної безпеки були досить хороші . Хоч зламати повністю ні у кого не вийшло , тим не менш, цікаві уразливості були знайдені. Коли ж справа дійшла до представлення нових проектів , враження були дивними . Велика частина проектів , які презентувалися , були не те щоб слабкі - їх просто не було. Т.е. люди просто показували слайди презентації своїх ідей , а не готових проектів. Зрідка з'являлися хоча б скріншоти інтерфейсу . Справедливості заради варто відзначити , що були команди , що показують демо , і з цікавими ідеями . Мені особисто запам'яталися хлопці з проектом порівняно підприємств та команда , яка представила сервіс по стеженню за змінами в реєстрі . Здивували команди , які взагалі не намагалися користуватися API і просто робили якісь загальнокорисні речі , на зразок свого спрощеного документообігу . Кульмінацією була пропозиція організаторів провести останню презентацію в кімнаті з журі. Все це було схоже нa конкурс презентацій. Нагородження . Після невеликого засідання журі вийшло нагороджувати переможців. Хакери отримали дипломи та можливість влаштуватися до них на роботу. А серед розробників було 2 дуже схожих номінації - ми, зокрема , зайняли 2 - е місце , але на призах це ніяк не відбилося : для всіх призових місць щедрий приз був один. Це контракт з ДП " Інформаційно - ресурсний центр" на отримання знижки ! Суть ось у чому : вартість одного запиту до них на сервер для отримання інформації про підприємства або фіз . особах коштує 3 грн , але завдяки контракту ми можемо робити запит всього за 1.98 ! Саме ця знижка була оцінена сумарно на всі призові місця в економію на ті 898560 грн , про які було згадано на початку статті. Правда , як у них вийшла така математика , я не знаю . Також були призи від спонсорів - домени в кириличній зоні .укр для 3х команд , у яких назви були не англійською мовою , і ноутбук для одного з учасників. Ми трохи пофотографировались на пам'ять і поїхали додому . Замість епілогу . В цілому хакатон був влаштований дорого , і все , що не стосувалося технічної частини , було зроблено добре . На жаль , цитуючи одного з учасників , " бутерброди тут були краще інтернету" . Мабуть , метою хакатона було " Зламаті систему захисту Держреєстру НЕ вдалось " , т . е . крок назустріч бізнесу у вигляді електронних виписок з національного реєстру & lt ; 200 грн поки не планується. Ласкаво просимо в нову країну !

Опубліковано: 16/09/14 @ 06:33
Розділ Різне

Рекомендуємо:

Бесіда з Дмитром Миндру , Software Development Engineer in Test в Unity
Сувора бюрократична реальність , або як ми прийняли участь в першому державному хакатоні
Про Мюнхені
23 - 26 вересня, Київ - Agile - інтенсив : дві сертифікації CSM + Kanban зі знижкою -40 %
iOS Дайджест # 0