Posle konferencije održane 9. aprila ove godine u Beogradu, Hackaday je 5. i 6. novembra održao još jednu međunarodnu hakersku superkonferenciju u Pasadeni, predgrađu Los Anđelesa. I ovoga puta se Srbija umešala u hakersku elitu...
O aprilskoj konferenciji u Beogradu, prvoj koju je Hackaday organizovao u Evropi, opširno smo pisali u PC #232 (maj 2016). Organizator ove konferencije je firma Supplyframe, inače vlasnik bloga i internet časopisa Hackaday.com. Dvodnevni skup u Pasadeni je održan u prostoru Sypplyframe Design Lab-a, kao i u susednim salama koje pripadaju Muzičkom koledžu Los Anđelesa.
U poslednjoj deceniji je program hakerskih skupova već dobro definisan, pa je i ovoga puta bilo puno stručnih predavanja, hardverskih i softverskih radionica, dodela nagrada, a iznad svega upoznavanja, druženja i razmene iskustava. Bilo je prisutno oko 300 gostiju iz čitavog sveta, pa su sve prostorije bile pune. Vreme je bilo prijatno toplo, što je u Kaliforniji uobičajeno, tako da je i prostrano dvorište između ove dve institucije bilo puno. U njemu je bio postavljen šator sa neograničenom količinom hrane i pića, pa su svi uslovi za uspešan skup bili ispunjeni.
Govornici na dva terena
Iako su predavanja održavana istovremeno u dve sale, bilo je prijavljeno toliko govornika da je bila neophodna ozbiljna selekcija. Teško je grupisati teme koje su tako različite, ali je ipak bilo moguće prepoznati nekoliko karakterističnih tokova. Govorilo se o tome kako se, uz hakersko umeće, jeftino može napraviti profesionalna laboratorijska oprema (čak i kako se NASA bavi hakovanjem sa istim ciljem), zatim o uvek aktuelnoj robotici, a s tim u vezi i kako projektovanjem inteligentnih senzora i servo mehanizama pomoći hendikepiranim osobama. Ovu poslednju temu obradile su i dve osobe koje možemo smatrati insajderima. Lia Martirosyan, pevačica anđeoskog glasa, govorila je iz specijalnih invalidskih kolica jer ne može da se služi ni nogama ni prstima na šakama, ali je lako našla put do srca publike izvođenjem Komitasevih i Mocartovih vokalnih dela. Teško je ne uporediti je, barem po pitanju životne energije i kreativnosti, sa Stivenom Hokingom. Nameće se zaključak da fizički hendikep kod nekih ljudi pokreće vanserijske sposobnosti, pa bi možda bilo zanimljivo znati koiko bi od tih sposobnosti bilo razvijeno da su oni živeli kao fizički zdrave osobe.
Bodo Hoenen je postao haker silom prilika, kad je njegova ćerka zbog virusne infekcije postala delimični invalid. Bez ikakvog znanja i iskustva počeo je da konstruiše egzoskelet za njenu ruku i, uz pomoć kolega sa raznih strana sveta, postigao rezultat koji je zainteresovao velike proizvođače slične opreme. Pošto se Bodo upustio i u razvoj senzora koji „hvataju“ neuralne signale direktno sa nadlaktice ruke njegove ćerke, ta tema se nadovezala na priču o inteligentnim neuralnim senzorima, koji je vodila Christal Gordon. Slušajući ove predavače, stiče se utisak da hakeri puno rade na tome da pomognu osobama sa specijalnim potrebama.
Teško bi bilo ovde obraditi sve teme koje su u dve sale tekle dva dana, ali će, po već ustaljenom običaju, na sajtu Hackaday.com biti dostupan kompletan video zapis svakog od ovih predavanja, čim bude montiran sa slajdovima iz prezentacija i pripremljen za publikovanje.
Godišnje nagrade za najbolje projekte
Na konferenciji su proglašeni i pobednici konkursa za najbolji projekat. Važan kriterijum kojim se žiri rukovodio bio je da je projekat otvoren i dostupan svakome, a to znači da bude dobro dokumentovan, jednostavan i jeftin za realizaciju. Pobednik, i dobitnik nagrade u iznosu od $150.000, je Alberto Molina Perez odnosno projekat „Modularni robotski sistem“. Alberto je razvio sklop manjih modula koji mogu sami da se konfigurišu tako da se kreću kao gusenica, beskrajna traka ili na neki treći način. Lako se probijaju kroz ruševine, nuklearna postrojenja, kanalizacione cevi ili kroz prepreke koje se inače smatraju teško premostivim.
Drugu nagradu osvojio je projekat jednostavne i jeftine kupole za 3D semplovanje okoline, slede projekti kompleta za optičke eksperimente, merača nagiba sa ferofluidom i koncept jeftinog steper motora koji ima karakteristike skupih industrijskih motora itd.
Bedž kao hakerski simbol
Posle neočekivanog uspeha na beogradskoj konferenciji, ponovo mi je pripala čast da projektujem interaktivni bedž za učesnike konferencije. Odmah je postavljen zahtev da bedž bude isti kao beogradski, dozvoljena su bila samo poboljšanja i izmene u vizuelnom dizajnu. Na sastanku u Beogradu su čelni ljudi Supplyframe-a rekli da nema potrebe da se menja koncept, jer „već imamo bedž koji radi“. Na moju naivnu primedbu da bi isto tako dobro radio i neki drugi, rečeno mi je da u ovom slučaju „radi“ ne znači „funkcioniše“ u tehničkom smislu, nego „prihvaćen je od strane publike“.
Tako sam prionuo na posao i ponudio novi vizuelni dizajn – bedž je znatno manji i lakši, sa zgodnije postavljenim baterijama i komandama. Od hardvera je dodat samo akcelerometar i konektor za hardverska proširenja, a modularni matrični LED displej je zamenjen sa 128 diskretnih LED-ova, čime je proizvodnja pojeftinjena. Softver i svi ostali detalji (infracrveni port, USB bootloader, tasteri) ostali su slični kao na beogradskom bedžu, opisanom u broju PC #230 (mart 2016).
Bedževi su proizvedeni u Americi, pa sam mogao da se opustim jer je sve obavljeno bez stresa i žurbe. Kad sam dve nedelje pred konferenciju stigao u Design Lab, čekale su me napunjene štampane ploče, spremne za finalizaciju i programiranje. Sve je teklo kako se poželeti može, ostalo je samo još da napišem softver za tradicionalni nagradni zadatak, tzv. kripto izazov.
Nevolje sa nagradnim zadatkom
Bedž ne služi samo kao simbol, poklon, ukras i ulaznica za posetioce, nego i kao hardverska platforma za hakersko veče, na kome se prave razne hardverske i softverske aplikacije, koje se kasnije nagrađuju kao projekti. Posetioce konferencije po nepisanom pravilu čeka i zadatak koji će oni rešavati tokom konferencije, a onoga ko prvi dođe do rešenja čeka vredna nagrada. Zadatak je napravljen kao aplikacija za bedž, koja se lako instalira pomoću bootloader-a i onda se rešava na samom bedžu.
Pred polazak na put sam napravio grubi koncept zadatka, ali nisam imao dovoljno vremena da napišem softver. To nije trebalo da bude problem, jer sam imao dovoljno vremena u rezervi, a Design Lab nudi savršene uslove za rad. A onda sam se jako prehladio, uz visoku temperaturu zbog koje u početku nisam mogao ni da ustanem iz kreveta. Ipak sam morao da dolazim i u Design Lab, mada mi nije prijala pomisao na to da bih nekome mogao da prenesem bolest. Domaćini su se držali hrabro, a jedini izuzetak bio je jedan naš zemljak koji se držao što dalje i neprestano ponavljao „beži od mene“.
Tokom izrade koncepta zadataka, ali i pisanja softvera, veliku pomoć mi je pružio moj sin Marko, kome sam slao međuverzije na kontrolu i potragu za bagovima. Zajedno smo procenjivali težinu zadataka, jer je cilj da rešavanje bude dovoljno teško da traje tokom oba dana konferencije, ali i dovoljno lako da ne ostane nerešeno na kraju. Tu nam je od pomoći bila vremenska razlika od devet sati, jer smo mogli da naizmenično radimo bez međusobnog uznemiravanja.
Softver je očišćen od bagova i finalizovan veče pred početak konferencije. Bilo je jasno da mi te noći nema spavanja, a sutradan je na zvaničnom programu bilo moje predavanje na kome je trebalo da predstavim prezentaciju. Pribegao sam poslednjem rešenju koje sam čuvao u rezervi – zamolio sam Majka Stiša (Mike Sycyzs), glavnog uredika Hackaday-a, da umesto mene održi predavanje – ne bi bilo zgodno da me na govornici snađe napad istovremenog kijanja, kašljanja i curenja nosa. Dva sata posle predavanja sam nekim čudom naglo ozdravio! Svi su me zadirkivali da je bolest bila samo moj trik da izbegnem govore pred publikom, a ja sam bio tako srećan zbog takvog razvoja događaja, da mi je bilo svejedno šta će ko da misli.
Nagradni zadatak
Zadatak je za posetioce bio prilično složen. Imao je pet delova od kojih prva četiri mogu da se reše i preko reda, a rezultat svakog od tih delova bila je reč od pet slova, koju je trebalo zabeležiti i upotrebiti pri rešavanju petog zadatka.
Stariji čitaoci će se možda setiti igre Mastermind, koja je bila popularna u vreme pre masovne upotrebe kompjtera. Tada se igrala na plastičnoj platformi veličine dlana, u koju su se ubadale raznobojne plastične „pečurke“. Jedan igrač bi zadao kombinaciju od četiri boje, a drugi pokušavao da je pogodi. Za svaki popunjeni red bi od prvog igrača dobio odgovor koliko ima pogođenih boja na tačnim mestima (crna pečurka) ili na pogrešnim (bela).
Mikrokontroler je preuzeo ulogu prve osobe u igri, ali na bedžu nema boja (displej je monohromatski), a rezolucija je svega 8×16 piksela. Zato su sva predstavljanja bila binarna, a od igrača se očekivalo da zadatak reši u šest koraka, inače se igra resetuje i zadaje se nova kombinacija.
To je bio jedini zadatak za koji su igrači bar približno znali o čemu se radi, jer je Brian Benchoff, najpoznatiji autor tekstova na blogu Hackaday, u preliminarnom govoru o kripto-izazovu izrekao magičnu reč Mastermind (da, i njega sam zamolio da me zameni pred publikom). Svi ostali zadaci bili su otežani time što je trebalo da igrač sam shvati suštinu problema, pre nego što počne da ga rešava. Nikakvih uputstava ni naznaka nije bilo, osim toga da postoji pet zadataka i da bi bilo korisno da svako ima pri ruci olovku i papir.
Drugi zadatak je zahtevao poznavanje Morzeove azbuke, jer je jedan blok u gornjem delu displeja blinkao u ritmu telegrafije, dok je u donjem postojao editor za upis teksta. Ispravno pročitani telegrafski signali činili su pitanja, na koja je trebalo odgovoriti u editoru. Bilo je pet pitanja iz oblasti informatike, istorije, osvajanja svemira, slikarstva i muzike. Kad se ispravno odgovori na sva pitanja, dobija se drugi kod od pet znakova. Naravno da se danas ni od koga ne očekuje poznavanje telegrafije, pa su se svi služili Vikipedijom. Za neke ljude je ova „vizuelna“ telegrafija bila prebrza za čitanje, pa su se dosetili da telefonima snime displej bedža, a onda da ga usporeno reprodukuju.
Treći zadatak je bio lak za rešavanje, ali je doneo najviše glavobolje zbog toga što nije bilo lako shvatiti šta treba rešiti. Postojao je samo jednostavan grafički editor, kojim se moglo setovati ili ugasiti svako od polja u matrici 4×4. Trebalo je najpre proučiti niz od 12 grafičkih simbola Supplyframe-a, odštampanih kao zaštitni znak na poleđini bedža. Za ispravno rešenje trebalo je obaviti logičku operacoju XOR (isključivo-ILI) svih simbola i grafički upisati rezultat.
Četvrti zadatak činio je niz naizgled randomizovanih piksela, ali se mogla menjati vertikalna pozicija kolona pomoću tastera. Zadatak je rešen kada pri određenom rasporedu pikseli načine reč Hackaday. Posle rešavanja svakog od zadataka, igrač je dobijao prefiks „YOUR CODE“ i po jednu reč od po pet naizglad nasumičnih slova. Prva dva slova u tim rečima bila su ista za sve igrače, a ostala različita, jer ih je činio skremblovan serijski broj bedža. Kompletne poruke su glasile, recimo, ovako:
YOUR CODE UDEPY
YOUR CODE REWGA
YOUR CODE YCTWE
YOUR CODE OOBTZ
Sve je to trebalo nekako upotrebiti u petom zadatku, ali kako uopšte ući u peti zadatak, kad u meniju pri uključenju bedža postoje samo četiri odrednice, a na bedžu samo četiri tastera? Samo onaj ko se setio da bedž ima i akcelerometar, mogao je da uđe u program za rešavanja petog zadatka, jer je trebalo snažno protresti bedž, i to je bio taj „peti taster“. Peti zadatak se zasniva na nečemu što se u kriptorafiji zove „Cezareva kutija“. Treba najpre ignorisati heder Your Code, a onda preostale reči poređati tako da prve dve kolone čine reči Your Code:
YCTWE
OOBTZ
UDEPY
REWGA
Sada treba nastaviti sa čitanjem u istom smeru, pa je lako doći do konačnog rešenja, koje (za neki hipotetični serijski broj bedža) glasi TBEWWTPGEZYA. Kada to upišete, dobijate poruku Congratulations! i... to znači da ste osvojili nagradu!
Dodela nagrada
Možda sve ovo deluje komplikovano, ali treba imati u vidu da su ovi zadaci prilagođeni hakerima, koji se u poslu ili hobiju svakodnevno susreću sa logičkim glavolomkama. Firmver aplikacije je objavljen u subotu, 5. novembra u 10:00 pre podne, a prvi učesnik je rešio zadatke u nedelju u 13:00, samo četiri sata pre zatvaranja konferencije. Već pola sata posle prvog, imali smo još tri ispravna rešenja. Ovakav tajming je optimalan i nije ga moguće postići bilo kakvim planiranjem. Treba samo imati sreće.
Pobednici su proglašeni u atmosferi koju je teško zamisliti i maniru koji mi je umnogome pomogao da shvatim američki duh. Dodeljene su ukupno četiri simbolične nagrade od po 256 dolara, od kojih je prva bila za najbrže rešavanje kripto izazova, a ostale za hakovanje bedža u tri kategorije. Prva kategorija je Dead Bug (mrtva buba, što je u hakerskom žargonu naziv za integrisano kolo okrenuto naopako, kako bi se na nožice lemile komponente koje stoje u vazduhu). Reč je, dakle, o improvizovanom hardverskom proširenju bedža. Druga kategorija je Best blinky (najbolje treperenje), u kojoj je trebalo upotrebiti mogućnosti kernela (jezgra firmvera, sličnog BIOS-u) i dopisati svoj program tako da bedž ima neku konkretnu funkciju, po mogućstvu što atraktivniju. Treća kategorija je Over the top (Povrh svega), u kojoj treba zaobići sve udobnosti koje nudi kernel i napisati svoj program od početka. Naravno da je ovo najteža kategorija, rezervisana samo za najveštije hakere.
Sva rešenja su demonstrirana pred publikom, a iznad stola na pozornici postojala je kamera povezana sa projektorom, tako da je publika jasno videla svaki detalj koji su učesnici demonstrirali na svojim bedževima. O pobedniku u svakoj grupi odlučivala je publika, jačinom aplauza i uzvika, ali je uglavnom bilo jasno ko je osvojio simpatije, jer su skoro svi pobednici bili proglašeni urnebesnom aklamacijom.
Ideja je bilo svakakvih, od najbanalnijih do sjajnih, ali je svaka ponaosob bila originalna i na svoj način neponovljiva. U kategoriji Dead Bug, recimo, jedan učesnik je namontirao nekoliko štapova tako da je na kraju imao motku dugačku tri metra, na koju je zakačio sve i svašta, sa bedžom na počasnom mestu na vrhu. Drugi učesnik je pokazao jednostavan demo program koji je Majk Stiš objavio kao primer korišćenja periferala bedža. Na pitanje šta je on sam tu napravio, odgovorio je „Ja nikada ništa u životu nisam napravio, ali sam sada bar dokazao sebi da umem da pokrenem neku aplikaciju“. Jedna devojka je pošteno priznala da ona ne ume time da se bavi, a onda je sa svoje vrpce oko vrata skinula bedž i još nekoliko torbica zakačenih na vrpcu, da bi ih otvorila i pokazala šta sve može da stane u njih. Sto je bio pun raznih ženskih potrepština, od kozmetike do slatkiša. Teško je zamisliti urnebesne reakcije publike na svaki od predmeta koje je opisivala dok ih je ređala po stolu. Na kraju je Chris Gammell, Majkov pomoćnik u ovom delu programa, upotrebio jedan stalak za note (jer se sve događalo u glavnoj sali muzičkog koledža) da bi na njega sručio sav krš sa stola.
Nisu svi projekti bili ovako bezvredni. Bilo je sjajnih igara i aplikacija, a u najboljoj od njih, u kategoriji „Povrh svega“ pobedu je odneo američki haker Sprite_TM, koji je najpre od publike zatražio još tri bedža, koje je na licu mesta preprogramirao svojim firmverom, a onda ih je poređao po stolu tako da dobije širi ekran i četvrtim bedžom na daljinu upravljao njima preko infracrvenog porta. Taj četvrtii bedž je emitovao muziku, a na prva tri je, na proširenom ekranu, izveden kratak AVI muzički spot sa plesnim performansom.
Reakcije publike, a i mojih domaćina, pokazuju da je bedž ponovo bio pun pogodak. Sada bi bilo prirodno da se neko drugi prihvati tog posla za sledeću konferenciju, ali razgovori tek slede i priznajem da me plaši njihov dalji tok. Teško je održati neprekidan uzlazni trend i stalno zadovoljavati nečija optimistična očekivanja, a sve drugo bi bilo povod za razočarenje. Još teže od toga je neprekidno imati sreće.
To bi bio moj odgovor svima koji su mi čestitali i rekli da će mi posle ovog uspeha sve biti lako.