Burdzi0
2017-12-05 20:44

Dzisiaj mój mikroblog opowie wam historię o moim pierwszym hackatonie :P
#hackathon #my #first #time
tl;dr dla tych, którzy nie mają tyle czasu na czytanie pierdółek niżej

Parę słów o mnie: student informatyki pierwszego roku na politechnice wrocławskiej, absolwent (jak to ładnie brzmi) technikum elektronicznego z dyplomem technika informatyka, beznadziejny klepacz kodu.
Wydarzenie: Hackathon Wrocław - Let's Hack !T
Organizatorzy: Credit Suisse i Akademickie Stowarzyszenie Informatyczne

Zaczęło się w sumie od tego, że usłyszałem o lokalnym hackathonie (był organizowany na polibudzie) od znajomych z Akademickiego Stowarzyszenia Informatycznego (które swoją drogą było również organizatorem). Stwierdziłem, że chcę wziąć udział - tak dla fun'u, zobaczyć po raz pierwszy jak to jest. Problem pojawił się taki, że osoby, które znałem na roku nie miały czasu/możliwości. Internecie ratuj, czyli wysmarzyłem posta na grupie na fb naszego rocznika czy ktoś by nie chciał, napisałem, że preferowana Javka bo nic innego nie napiszę (smutny ja xd). Zgłosiło się parę osób, których nie znałem, stworzyliśmy team.

Tematyką hackathonu był bot. Trzeba było napisać bota, a co ten bot miał robić uzależnione było tylko od naszej wyobraźni (zdolności programistycznych i ograniczenia czasowego). Żaden z nas nie miał pomysłu (no dobra, miałem pomysł na multiwyszukiwarkę do porno XDD, ale po pierwsze żaden to bot, a po drugie nie chcieliśmy zostać zdyskwalifikowani). Zdecydowaliśmy, że trzeba się spotkać i obgadać temat. Spotykamy się po raz pierwszy w czwartek wieczorem i przy pizzy robimy burzę mózgów. Wychodząc mamy ustalone, że tworzymy simple 2d game, a do tego bota, który do nauki wykorzystuje sieć neuronową - myślałem "nie do zrobienia, przecież sieć ogarnia tylko jedna osoba z teamu, no ale chcę iść to siedzę cicho".

Następnego dnia hackathon. Pomysł został przez nas odrzucony, Filip (bo muszę jakoś określić osoby w teamie na potrzeby mojej opowieści) tłumaczy swój pomysł, akceptujemy, bo w sumie nie mamy innego wyboru.
Robimy bota do gry 2048. Projekt składa się z 3 elementów:

  • sieci neuronowej, która uczy się grać
  • własnej implementacji gry, aby nauka bota przebiegała szybko
  • modułu podczepiającego się do strony i pokazujący czego bot się nauczył

Generalnie na początku spędziliśmy 3h na walce z gitem - żaden z nas nigdy nie pracował z nim w teamie. Jako smaczek dodaję screena poniżej - tak wyglądały nasze branche i merge mniej więcej w połowie prac :P Następnie implementacja sieci neuronowej (ja i Filip) oraz gry (pozostałych 2 uczestników). Praca wyglądała tak: Filip mówił czego potrzebuje, ja implementowałem na bieŻąco (Boże, widzisz takie błędy i nie grzmisz). On się skupiał na teorii sieci, ja na jej wykonaniu. Tak dobrze jeszcze nigdy mi się nad projektem nie pracowało - nieprzerwany flow kompletnego zrozumienia trwał jakieś 2 do 3 godzin. To był kawał dobrej współpracy, która przynosiła efekty w czasie rzeczywistym. Potem dzieliliśmy się zadaniami na bieżąco, wziąłem na klatę implementację obsługi gry w przeglądarce. Mieliśmy problem, bo gra była napisana w JS, który w trakcie gry tworzył nowe divy i podmieniał je ze starymi. Otrzymaliśmy podpowiedź od mentora (a właściwie jego kolegów) z Credit Suisse, żeby użyć Selenium. Poświęciłem jakąś godzinę na ogarnięcie, jednakże ze względu na to, że projekt nie korzystał z Mavena (a mówiłem na początku, że się przyda!) po rozmowie z teamem poszliśmy w rozwiązanie chamskie i nieeleganckie - bierzemy zahardkodowane piksele z ekranu, pobieramy kolor i ze stałych zapisanych w css'ie wiemy jaką mamy liczbę (w teorii bo działa do 4096). Fakt faktem w pewnym momencie działało i działało dobrze. Do czasu.

Jakieś 5/4 h przed prezentacjami wszystko zaczęło się krzaczyć. Sieć się nie uczy, tylko rzuca NaNy, bot robi ruchy tylko w prawo na stronie, parsowanie liczb szlag trafił. Przed samą prezentacją udało nam się wprowadzić ostatnie poprawki, na tyle, na ile pozwolił czas. Na końcu zmarnowani i niewyspani (zwłaszcza ja i Filip, bo ani on, ani ja nie zmrużyliśmy oka całą noc) zrobiliśmy najbrzydszą prezentację - wszyscy pokazywali gotowego bota (nie zawsze działającego) i piękne prezentacje w powerpoincie, a my wyszliśmy z moim laptopem i pokazywaliśmy gołe IDE i wypisywanie kolejnych kroków sieci neuronowej w terminalu. Porażka. Smutek. Żal, że nie wyszło a było bardzo blisko.

Wyczytywanie zwycięzców. 3 miejsce - zaczynamy się powoli zbierać. 2 miejsce - pakujemy się. 1 miejsce - już zakładamy plecaki, gdy dociera do mnie, że wyczytali nazwę naszego teamu. Takiego karpia nigdy nie strzeliłem. Banda "pierwszaków" pokonała resztę, pokazując rozorany projekt. Okazało się, że się spodobał, techniczna prezentacja podobno pomogła. Do teraz mi się japa cieszy :D

Wnioski: warto brać udział, warto walczyć, warto dawać z siebie wszystko. I nie chodzi tutaj o nagrody - o własną ku##a satysfakcję, że nie jest się g**no wartym. Że ktoś może doceni.

Jeszcze tylko parę słów o Credit Suisse (i nie należy tego traktować jako reklamy tylko podziękowania!). Mentorzy (czyli pracownicy techniczny) byli bardzo mili, zawsze chętni do pomocy czy zwykłej rozmowy. Naprawdę się starali zapewnić nam wszystko czego potrzebujemy. Dodatkowo otrzymaliśmy kupę fajnych gadżetów, w tym: koszulki, bluzy, mini składane narzędzia, selfie-sticki, te sprawy. Zawsze miło jest coś dostać.
Tutaj kończy się moja historia, jeśli o czymś nie powiedziałem, to pytajcie w komentarzach ;)

TL;DR
Banda pierwszaków z polibudy umawia się na hackathon, tematyka to dowolny bot. Żaden z nich w żadnym nie uczestniczył, spotykają się po raz pierwszy w czwartek, w piątek (dzień hackathonu) tworzy się pomysł, całą noc kodzą, pod koniec wszystko bierze w łeb, a i tak okazuje się, że zajęli pierwsze miejsce, więc szok, niedowierzanie i meega wielka radocha :)

blackom412

Fajny pomysl z ta multiwyszukiwarka :p

AreQrm

+1 za TL;DR wersję :-)

Prav

EZN czy Haukego-Bosaka? Który kierunek i jakie wrażenia po pierwszych miesiącach na polibudzie?
Gratuluję sukcesu, chociaż liczyłem na open source multiwyszukiwarkę :D

Burdzi0

@Prav: To nie jest pytanie do mnie xd ja tam tylko pisałem co miało być napisane. Kierunek infa na W8, całkiem fajnie, jeszcze zależy gdzie się trafi (np. trafiłem do ćwiczeniowca z podstaw programowania, który pracuje jako programista dzieścia lat i naprawdę świetne są te zajęcia). Na wyszukiwarkę też przyjdzie czas ( ͡° ͜ʖ ͡°)

wwfl11

Mówili coś czy będą to powtarzać? xD Chętnie bym się wybrał

Nevaan

fajna opowieść. tak z ciekawości: co udało się wygrać?

Burdzi0

@Nevaan: Karta podarunkowa do Saturna, na całkiem zgrabny hajsik, @wwfl11 na razie cisza, ale jak coś będzie to może dam znać ;)

krzysiek050

Gratuluję :). Ja zawsze bałem się że nie dam rady. Dzisiaj wolałbym przegrać, ale grać, niż się bać. Niestety czasu nie cofnę. Idziesz dobrą drogą, którą daleko zajdziesz.

c7

@wwfl11 pewnie tak, w poprzednim roku brałem w tym udział (też ten sam sponsor, ten sam temat)

okmanek

+1 za piękne zobrazowanie branchy. Aż złapałem się za głowę.

Burdzi0

@okmanek: Jak metro w Londynie! :D