Posts Tagged ‘hackfmi’

HackFMI 3 – представянето на отборите

Tuesday, April 29th, 2014

И така, да напиша за представянето на отборите, което продължи 6-7 часа (издържани само заради няколкото чаши Lagavulin).

(списък на отборите и source код)

Отбор 1 – FMI free time (отборът се състоеше само от един човек – Атанас Керезов, който в момента ми е на върха на класацията за дразнещи хора). Беше започнал система, която да може да се ползва за уговаряне на време за посещение на администрацията (като системата на КАТ), но не беше стигнал до никъде.

Отбор 2 – Old school – бяха написали система за тези, които могат да получават стипендии, да си попълнят данните и да могат да следят къде са в класирането. Не можах да си задам въпросите, че бързо ги изгониха, но се зачудих колко лесно ще е някой да смени IBAN-ите, които се подават, и да получи на хората стипендиите.

Отбор 3 – voltron – тук ми се губи и бележките не казват много, беше някаква система за дарения и следенето на развитието на кампаниите.

Отбор 4 – hackfmi_se – отбелязал съм, че са имали ужасна презентация. WordPress plugin, който да помага на за документите на докторантите, който и се оторизира през СУСИ (което прозвуча като перфектния backdoor да се събират user-и и пароли и да се използват за системата на втория отбор да се сменят IBAN-и).

Отбор 5 – noex1t – plugin за chrome, който може да разпознае encoding-а на даден текст и да го визуализира както трябва да е. Това беше една от малкото сериозни теоретични разработки – ползва речников метод, и може да разпознава дори прекодиран през две кодировки текст (например UTF8, закаран до cp1251 и после пак до UTF8). За това ползваше външен service (за което аз го питах дали не е privacy concern, хората да си пращат части от личната кореспонденция на трети лица, и той отговори, че за до две прекодирания може да го прави от plugin-а и няма да се налага). Човекът до мен имаше въпрос, който не успя да зададе, дали ако има текст на два езика в подаденото нещо, няма да се обърка системата.

Отбор 6 – hack Bulgaria, в който беше и Радорадо – бяха разработили интересна идея, API, чрез което може да се събират задачи (да речем по програмиране) и от тях да се генерират контролни. Към тях имаше мета-данни, та да може да се направи приложение, което приема отговорите и ги проверява. Изглеждаше доста добро и удобно, интересно дали ще намери приложение.

Отбор 7 – СМГ11 (хора от СМГ, 11-ти клас :) ) бяха направили система, която даваше възможност на кандидат-студентите на едно място да видят и сравнят различни специалности в различни университети, доколкото биха им били интересни/полезни. Имаха и система за рейтинги, т.е. можеше да се отбелязва коя специалност е хубава и коя не (по няколко признака). Цялото нещо беше работещо и това беше отбора, за който гласувах с 3 точки.
Питах ги как решават следния проблем – решавам, че някоя специалност е много трудна за влизане, та пускам един ботнет да гласува против нея усилено, хората виждат, че е с нисък рейтинг и се отказват да кандидатстват, което ми дава доста по-голям шанс. Нямаха решение, но ако я пуснат, с удоволствие ще се включа с нещо. Не ми се мисли колко ще ги мразят някои ВУЗ-ове…

Отбор 8 – VPR (на които бях ментор) – бяха направили система за помощ с бърз response, т.е. хората казват “трябва ми помощ за едно контролно утре”, дават краен срок, да речем половин час, след което чакат някой да влезе в системата, да хареса въпроса им и да се свържат. Системата им предлага свързване по някакъв chat в реално време (планираха да направят и видео/аудио разговори, но не им е стигнало времето), както и търсене по тагове на търсещи.
Демонстрираха работеща система, въпреки проблемите с internet-а.

Отбор 9 – full metal team – бяха едно количество деца от ТУЕС, които даже в началото в представянето си доста добре се избъзикаха с всички фирми, които се бяха представили (“имаме много офиси, навсякъде по света…”). За съжаление така и не схванах какво им прави системата, и съм си отбелязал да ги питам, но не стигнах до там.

Отбор 10 – #чичковитечервенотиквениковчета – бяха реализирали една идея по задание от реална организация, сайт за дистрибуция на книги. В общи линии има вариант да се задава търсещите организации (детски домове например) какво търсят, или някой да каже “ей-тука имам тия книги”, или “имам два кашона, дето искам да се отърва от тях” (т.е. конкретно моят случай :) ), и системата да се погрижи да свърже който с когото трябва и да улесни организирането на пренасянето. Ще чакам да кажат къде ще е deploy-ната и ще ги ползвам с удоволствие…

Отбор 11 – Едногор – пак хора от ТУЕС, в общи линии опростен web клиент за youtube, който да може да се ползва и на по-слаби машини. Филтрира реклами, всякаквите глупости от страни и показва само заглавие и самото клипче. Няма и autocomplete (за което хората питаха).
На въпроса “ако си сменят api-то, така че тоя клиент да не работи, т.е. ако тръгнат да го спират той какво ще направи” отговорът беше “това отне ден и половина да се напише, за следващото ще е пак толкова” (и цялата зала ръкопляска).

Отбор 12 – ПодайМонстъраТам – търсачка за къде може да се спортува, в общи линии overlay на карта и географско търсене или такова по думи. Данните вътре те си ги въвеждаха/минаваха някаква модерация.

Отбор 13 – ДГ – беше система за организиране на дарения, базирана на wordpress. Идеята им беше хората през сайта да се уговарят, и даващите получаваха код, чрез който да си изпратят исканите неща. Имаха няколко метода за транспорт.
Питах ги тоя код, който се ползва как го генерират и могат ли 1) да го опростят или 2) да сложат в него някакъв error correction, понеже хората доста грешат, когато преписват.

Отбор 14 – recaro (бях им ментор) в общи линии имаха да решават traveling salesman проблема, но това, което показаха беше най-вече хардуер, който се връзва в колата и показва на шофьора какво има да разтовари, както и праща нагоре колко му е пълен резервоара, така да може от централната система да се следи какво се случва и да се праща към бензиностанция.
Имат възможност да вържат системата към CAN bus-а в колата, както и да сложат сензор в резервоара (ако е много стара), иначе частта в колата беше правена/писана с някакъв PIC18. Като цяло беше недовършен проекта и ми се стори леко странен.

Последва почивка за торта, оправяне на звука, няколко глътки уиски и леко разтъпкване.

Отбор 15 – madeinbg – търсачка за продукти, правени в България. Пак стандартна снабдителна задача, производителите попълват, хората търсят, като има и някакви chat-ове вътре, с които хората могат да задават някакви въпроси и т.н.

Отбор 16 – УТ (обратното на ТУ, понеже са от там) – модулна платформа за всякакви приложения, свързани с благотворителност, заедно с едно примерно, за размяна на дрехи. Питах ги какво им е API-то и как може да се пише нов модул, казаха, че още не е документирано.

Отбор 17 – оркестър без име – бяха направили система за отбелязване по карта на интересни събития, които се случват в момента, например улични музиканти. Даваха възможност да се правят снимки (и в бъдеще – клипчета) и да се качват заедно със събитието, като нямаха идеята за live streaming. Цялото нещо беше хибридно мобилно приложение (т.е. html и js), което беше още по-учудващо (повечето такива неща работят с огромен зор).
За да го демонстрират, си доведоха един младеж с китара на сцената да посвири и да го снимат и качат. Това си беше малко hack в/у журито, нещо от типа на замайване с bells and whistles, и май мина, щото доста хора гласуваха за тях и спечелиха втора награда.

Отбор 18 – Осем – мобилно приложение за дарителски sms-и (които и спечелиха първа награда) – в общи линии агрегатор на всички съществуващи кампании в телефона, като те събират на едно място базата и тя се пресипва на телефона и човек може да си гласува за каквото си хареса (дори да няма internet, така и така гласуването е със sms-и). Оказа се, че на всяка проверка си точат целите данни наново, та ми се искаше да намеря време да им дам идеи как може да си организират синхронизиране само на промените и да пестят доста трафик на потребителите (текущата им база е около 4MB).

Отбор 19 – панда (на които бях ментор) – бяха направили благотворителна система за продаване на content. Създателя на съдържанието го качва, описва го, системата генерира thumb-ове и т.н., след което казва и за кои каузи да отиват парите от продажбите. Имаха реализирани и плащания през един payment процесор.
Имаше въпроси дали пазят кредитни карти (щото се въвеждат на техния сайт) – не, дали правят обработката на content-а в отделен процес/с друг user id – могат, въпрос на deployment, и дали става ясно какви са таксите и къде отиват – може да се expose-не.
Най-учудващото беше, че наистина са успели да го сглобят за два дни, може би трябваше да спечелят повече от трето място :) (вероятно им помогна, че няколко човека от екипа си работят професионално и пишат сериозно)

Отбор 20 – план бе – бяха направили нещо като kickstarter за благотворителност, като интересната част към него беше, че може да се дари обещание за нещо. Идеята на обещанието е, аз казвам – ако някой дари X лева, аз ще му направя курс по програмиране, Александър Тодоров ще му сготви конски кюфтета или нещо такова. Идеята е доста ценна, надявам се да се появи някъде.

Отбор 21 – el romantico, на които бях ментор и които в петък имаха 4 идеи, в събота работеха по пета – бяха направили система за намиране на курсове (т.е. пак снабдителния проблем). Дава се възможност някой да предложи курс, да даде минимален брой хора, които да дойдат, и останалите да се записват. Системата им работеше :) Питахме ги дали имат филтриране по географска локация – казаха, че са го махнали, и нямат също така идея дали курсът в крайна сметка се случва или не.

Отбор 22 – RQ – бяха написали система за резервации в ресторанти и подобни заведения (и не беше ясно дали това има много връзка с благотворителната тематика на hackaton-а). Собствениците на заведения можеха да качват архитектурни скици на заведението си и да обработват заявки за резервации, като поставят хората на определени места. Скиците се работеха като bitmap-и, и резервациите се маркираха просто с правоъгълници, т.е. нямаше анализ и разпознаване на картинки, но бяха докарали пълна работеща система. Нямаха и автоматично разполагане на резервации. Имаха допълнителни бележки към всяка резервация, като metadata как да се разположат хората.

Отбор 23 – парчетата – бяха направили система за следене на заетостта на залите в университета, в общи линии улеснител на учебния отдел, който и работеше. Интересно дали вече няма нещо такова.

Отбор 24 – 42 (на които бях ментор) бяха направили визуализатор на произволни данни в/у карта чрез csv файлове. Ползваха за основа OpenStreetMap. Питахме дали може да комбинират няколко вида данни или да изобразяват функция от два вида (например брой училища на глава от населението за даден регион), нямаха го.
(те имаха доста по-мащабна идея, но явно не бяха успели да я доработят)

Отбор 25 – супер герои – бяха направили “мобилен app за доброта”, в общи линии като контролния дисплей на някой супер герой. Хората подават заявка за помощ през някакъв вариант на приложението, след което всеки докато си върви по улицата може да види къде наблизо има някакви проблеми и да се включи, ако иска. Примерът, който бяха дали е как можем да видим, че някой има проблеми с компютъра и е от нашия вход, и да идем да помогнем.
Планираха да сложат ACK за всеки, който е реших да иде да решава даден проблем, за да не се получава slashdot-ване на някой проблем.
Нямаха добро решение за случая ако някой използваше системата като honeypot, т.е. или да примамва хора, или да гледа къде има пострадали хора и да ходи да лешоядства – казаха, че оставят решението за пускане на заявка за помощ на самите крайни потребители.
Не беше съвсем ясно и какъв точно е target-а на приложението.
(работеше)

Отбор 26 – infinity – бяха написали система за регистрация на басове (облози, не музикалните инструменти, както си помислих в първия момент). В нея просто едната страна описва баса, другата го приема, и чрез системата си го помнят. Питахме ги дали не ги хваща закона за хазарта (което е доста вероятно, и не знаеха), и дали има вече такива приложения (май има, те не знаеха).

Отбор 27 – repl5 (бях им ментор) – бяха направили система за генериране на тестове (от тия, дето печатаме, за да изпитваме студентите). Един от менторите им беше помогнал с написването на разпознаването на изображения, за да може да се проверяват по-лесно тестовете.
Имаше бая въпроси към тях: как валидират генерираните тестове, т.е. как знаят, че не са повторили въпрос, или отговор (щото това винаги е бил първия бъг на всичките генератори, които съм виждал) – ще си напишат тестове към алгоритъма; възможност за повече от един верен отговор – имат; схемата им с табличката за попълване на факултетния номер (5 реда с числата от 0 до 9, и човек на всеки ред отбелязва поредната си цифра от факултетния номер) беше лесна за объркване – имат и друга; какво става, когато човек си коригира отговор на листа – разпознаването би трябвало да се справи (това не го вярвам).
Ще е хубаво най-накрая да има унифицирана система за това, но не е ясно дали ще е тази (иначе работи като приложение директно в browser-а на потребителя, само на javascript и генерира pdf-и, т.е. е доста portable, за разлика от много други, дето сме правили).

Отбор 28 – бащата на Кнут Хамсун (проверих в wikipedia, Педер Педерсен) – бяха направили проста система с QR кодове за информация за статуите из ФМИ, на кого са, какво е направил и т.н..
Оказа се, че те пишат в QR-а директно URL (а самия QR е на лист, залепен за статуята), което значи, че ако подменя листа с някакво друго url, хората ще отварят него. Решението им за в бъдеще е, че ако QR кодът е издълбан на статуята, то няма да работи номера с фалшификацията (а самия код е супер издръжлив на опити за промяна).

Отбор 29 – Оги самотния войн – беше нещо за предизвикателства/challenges, но нямам много бележки по него и не беше особено ясен (и не беше стигнал много далече, основно имаше някаква идея).

Отбор 30 – placeholder – бяха направили lock screen, който показва реклами, от които приходите по принцип да отиват за благотворителност. Единствената ми бележка е “ужасна идея”.

(приемам корекции и допълнения, сигурен съм, че имам доста грешки и пропуски)

2014-04-28 HackFMI 3

Monday, April 28th, 2014

(неособеноадекватенpost, пишете корекции ако видите нещо)

В последните три дни бях на HackFMI 3. То приключи преди около 12 часа, а сега съм леко адекватен и ще се опитам да напиша нещо по въпроса.

В общи линии регламентът беше – има кратко откриване, представят се спонсорите, разни проекти и менторите, сформират се отбори, записват се и след това си избират ментори. За петък имаше разпределени 5 слота по половин час, в които трябваше избраните ментори да посетят отборите, които са ги поискали и да си поговорят с тях.

(аз бях успял да измисля атаки в/у два от проектите, за които ме питаха още преди разпределянето. Беше забавно.)

Всичките бяха интересни. Записал съм си някаква част от тях:
Единият отбор (VRP) правеше система за комуникация в реално време, да се откриват хората по конкретен проблем и да могат да си пишат и да прекарват аудио/видео в реално време. С тях си говорих за webrtc и как могат да решат проблема с NAT-а и изобщо да прекарат медията, съответно след като открихме, че няма TURN поддръжка в повечето browser-и, двете ми идеи бяха да се срещат през TOR, или да ползват някакъв flash chat (през red5 и нещо такова), понеже е докарано да работи.

Вторият (42) правеше карта на местата, удобни за инвалиди, т.е. overlay в/у google maps или OSM, който да използваш за да провериш къде можеш да отидеш да свършиш определена работа и да е достъпно. Там говорихме откъде могат да събират данни (OSM, OKFN проектите и т.н.), както и че атаката, която аз бих измислил в/у системата е да направя някакви много привлекателни места за такива хора (на картата), да застана там с едно паве и да ги обирам един по един.
(някъде по това време бях обвинен в безчовечност)
(в отбора имаше двама колеги от моя офис)

Третия отбор (El Romantico, който беше в стая 404 и бяха изтървали да се кръстят отбор “Not Found”) имаше 4 идеи (на следващия ден работеше по пета). Две от тях съвпадаха с други, които бях чул, третата беше вариант на patreon/gittip за България (което от няколко месеца и аз мисля), и четвъртото – система за обсъждане, подобна на reddit/slashdot с модерация. На четвъртата идея се появи и Кънев, който разказа една доста добра идея за такава система с гласуване – която дава възможност за конкретни въпроси да си дадеш гласа на някой друг участник в системата, и той да го използва вместо теб (което звучеше супер интересно и жалко, че не го направиха).

По някое време през нощта свърших с тия работи и отидох да спя.

В събота имаше пак няколко слота за обикаляне по отбори – пак посетих първите (VRP, с webrtc-то), едни хора, които решаваха traveling salesman проблем, като цяло някакви хора, които решаваха проблема за запознаването (“Имаме хора, дето предлагат нещо и хора, които търсят нещо, да им улесним живота”). Едно изключение от тоя тип неща беше изцяло client-side генератор на тестове (такива, дето печатаме на хартия и с които изпиваме студентите) на javascript, който генерираше pdf-и.
(като цяло май много от нещата ми се губят, въпросите и отговорите ми се смесват в главата и не си водех бележки)
Бях взел Велин с мен, и той също остана учуден от това колко интересна е цялата работа, даже в един момент каза “А ако можеше да използваме цялата тая енергия за мирни цели…”.

В неделя нямаше менторстване, та използвах повечето време, което бях във ФМИ да подкарвам frab за различните конференции (в петък/събота Митьо ми беше помогнал да му setup-на deployment-а с puma), та в общи линии вече има frab.it-tour.bg, който тия дни ще пуснем официално.
(wifi-то беше ужасяващо през цялото време, повечето работа, която свърших беше на кабел, това трябва да му се измисли решение)

Последва закриващата част.

Тя започна с презентации на фирмите-спонсор, (които в общи линии до една бяха скучни и според мен не уцелваха за какво и на кого говорят, т.е. бяха доста по-маркетингови и изкуствени, отколкото трябваше. Още от тогава имаше малко технически проблеми с проектора, и това явно трябва да се проучи, поне за следващия път.

Започна изслушването на отборите (29 на брой), в около 19:00. Продължи до около 1:30… В един момент дадох на Яна ключовете от нас, да иде да донесе една бутилка Lagavulin, която бая помогна.
(списък с отборите/проектите и с source code-а им)

Имаше пауза по средата на изслушванията, в която раздаваха торта и която използвахме, за да оправим звука (имаше странни проблеми със силата на различните микрофони, имаше някакви неща на същия канал и всякакви такива неща, та съм говорил с Радо следващия път да се занимая аз с тая част).

Като цяло изслушването беше интересно и бая тежко (имам един файл с около 170 реда съкратени бележки, от който ще направя като имам време един огромен blog post). Мисля, че аз зададох най-много въпроси (и вероятно съм виновен за поне половин-един час от закъснението, учуден съм, че не ме линчуваха), като доста ги дъвкахме за всякакви начини, по които може да им се счупи системата или защо са взели някакво странно (за нас) решение.
(интересни въпроси задаваха и Пенков, Семерджиев и един човек, който седеше до мен и който май така и не му научих името. Също така, лицето Атанас Керезов е най-дразнещия човек, на който съм попадал в последните месеци и който основно се заяждаше с отборите, вместо да задава смислени въпроси.)

Като интересна статистика – броих, имаше около 20% жени в участниците, но нямаше нито една менторка (следващия път трябва да набутаме Яна да им помогне с маркетинговата част, и да видим кои програмистки биха се престрашили).
Също така имаше няколко ученически отбора – 10ти, 11-ти клас (които бяха даже с придружител, и едните трябваше да им пишат извинителна бележка, щото бяха първа смяна и нямаше шанс да спят достатъчно, че да могат нормално да идат на училище). Имаше и хора от други университети (например отбор на ТУ, който нарочно се беше кръстил УТ).
Спокойно мога да кажа, че в традицията на олимпиадите по информатика развращавахме младото поколение с това да висят ден и нощ, да пият нещо, което да ги държи будни, да пишат, дебъгват и да дремват по половин час по столове/бюра/дивани.

Последва кратко гласуване (т.е. събрахме се журито на едно място, написаха на една дъска кой за кого гласува, сумираха, фирмите казаха на кой си дават наградите) и последва една сравнително кратка и весела церемония по награждаването (в около 2:30). В момента даже не мога да си спомня кой спечели, това ще го напиша в другия post…

Останах малко след края да помогна с изчистването, после се видях с някакви хора пред факултета и в 3:15 се бях прибрал вкъщи, свърших малко работа и умрях. Тая сутрин съм изпил едно кафе и не усещам да има особен ефект…

btw. За всички отбори, на които бях ментор (и за останалите) – ако продължавате тези проекти или по принцип може да ви е полезен някакъв акъл от мен, пишете, идвайте на ИББ и т.н..

Update: Напомниха ми да спомена, ученическите отбори бяха от СМГ, НПМГ и ТУЕС, като май ТУЕС бяха най-представени.

Update 2: А като си тръгвахме в 3 сутринта, имаше някакъв младеж, останал да спи някъде във факултета, понеже имал контролно в 8…