Pripravený na novú výzvu? Poď k nám

Prečo byť programátorom práve v reklamnej agentúre

Nie veľa ľudí vie v práci robiť niečo, čo ich baví. Nehovorím o testovaní reštaurácií pre zľavové portály, to by podľa mňa robiť celý život nebavilo nikoho, hovorím o riešení výziev a hraní sa s problémami. Keď človek nerastie, tak nejak stagnuje a je aj osobne potom celý taký nejaký, nudný. Mojím koníčkom aj chlebom každodenným sa stalo programovanie; a je to po ničení si života hraním sa počítačových hier moja hneď druhá obľúbená činnosť. Jaj, vlastne mám ešte aj frajerku, takže, <politically correct> samozrejme, že mojou obľúbenou činnosťou je čas strávený s Vero </politically correct> (potreboval som nejakú zámienku, ako sa pochváliť, že mám frajerku).

Pri programovaní sa máte šancu naozaj vyhrať. Dostanete logickú hádanku a je úplne na vás, ako sa s problémom popasujete, môžete sa kreatívne vyjašiť, ako sa vám len zapáči. Spisovateľ je pre mňa asi najbližšie prirovnanie, ktoré sa tomuto povolaniu blíži, akurát že s programovaním je to taký voodoo shit, že po vymyslení a napísaní vlastného sveta máte na konci niečo naozaj „hmatateľné“. Michalova mama má na sebe tiež niečo hmatateľné. Dúfam že má šéf za tento nemiestny vtip nevyhodí. Cyberpunk scifi, kde sa viete nadopovať mikrochipmi pre nadľudské schopnosti? V poriadku. Abstraktný polygónový svet, kde sa čas hýbe jedine vtedy, keď vy? Jasné. Alebo si máte chuť len tak zatrúbiť na Donalda Trumpa? Neni problém. Spraviť si z mesta hudobný nástroj? Máš to mať (čaute, Zaraguza!). Simulátor vracania? Prečo nie. Alebo sa máte len tak chuť hrať na boha a vytvoriť vesmír, ktorý sa vytvára sám.

Pochopiteľne, pri práci, za ktorú vás niekto platí, je cieľ väčšinou jasne daný, no stále sa môžete vyhrať s riešením hádanky. A na dobré hádanky je potrebná dobrá spoločnosť, pre ktorú ich budete riešiť. Je rozdiel, keď musíte sedieť niekde v cubicli a do konca života vyvíjať presne našpecifikovaný software v jednom programovacom jazyku alebo ste s firmou, ktorá sa nebojí experimentovať a robiť váš život oveľa zábavnejším. V mojom prípade sa miestom na moje koníčky stala jedna reklamná agentúra, sekta menom Triád. Sekta, lebo je tu okrem dobrých hádaniek aj dobrý kolektív, ktorý drží vždy pokope a chodí všade spolu. Všeobecne si myslím, že reklamky sú v tomto smere skvelým miestom pre developerov, ktorí ľúbia experimentovať a neboja sa výziev (trápna prepoužívaná fráza™). Je to síce to riešenie hádaniek na reklamné účely pre značky; a nikto z nás nechce byť komerčný a predajný, bla bla, whatever, ale musím aj nejakým spôsobom zarábať peniaze na investovanie do už vyššie spomínanej frajerky. A okrem toho, že mi niekto platí za niečo, čo má baví, sú tu tie projekty naozaj zábavné a kolektív naozaj skvelý. Ale že naozaj! Mal som tu od svojich začiatkov česť skúsiť vyvíjať kadečo, od projektov vo flashovskom actionscripte, cez kadejaké javascriptové experimenty, interaktívne citylighty, raspberry pi hračky, opencv v c#, srandičky s processingom, až po serióznejšie portály s backendom na mvc frameworkoch v php.

Hľa

Tu som si vybral zopár projektov na ukážku, čo sme v Triáde porobili.

Kto s kým

Jeden zo starších projektov pre Topky, ktorý mal bohapustú bulvárnu hodnotu, sme písali v actionscripte, pre menej znalých „vo Fleši“. HTML5 canvas vtedy neexistoval a všetky zaujímavejšie interaktívne veci boli robené vo flashi. Teda niektorí ľudia si na stránke naivne embedovali Java applety, ale na tých len teraz všetci kolaboratívne ukážeme prstom a zasmejeme sa. Ha-ha.

Ne

Ne

Podstatou projektu bolo vytvoriť interaktívny graf, ktorý by poukázal na to, že kto s kým zo „showbusinessu“. Manželia, exmanželky, milenky, frajeri, čokoľvek. Netuším, odkiaľ sa vôbec takáto databáza nabrala, ale niekto si musel dať naozaj záležať, a bolo toho dosť. V tom vlastne tkvel hlavný problém vykresľovania grafu, lebo mal priveľa konekcií. Niektoré nemenované tváre slovenského showbusinessu mali tak veľa vzťahov, že sa graf jednoducho nedal nijak rozumne vykresliť.

kto s kým

Nejak sa mi pokazili mäkčene pri importe starej databázy

Nie je nezvykom, že keď si neviete nejaký systém definovať intuitívnymi pravidlami, necháte „heavy lifting“ na tretiu stranu. Nejaký fyzikálny systém alebo neurónovú sieť, nech sa to proste nejak „porieši samo“. Pri tomto probléme sme sa obrátili na matku prírodu a nechali konekcie jednotlivých záletníkov fungovať ako elektricky nabité častice, ktoré sa navzájom priťahujú a odpružujú jednoduchými gravitačnými pravidlami. Pre niekoho, koho by to mohlo zaujímať viac, použili sme tzv. „force based“ algoritmus na vykresľovanie grafov. Tento komplikovane znejúci názov skrýva za sebou len to, že sa rôzne vrcholy grafu vzájomne neustále odpudzujú; a zároveň priťahujú v prípade, že majú medzi sebou nejaké prepojenie.

Ukážka takého fyzikálneho systému

Ukážka takého fyzikálneho systému

Najvtipnejšie na celom projekte mi prišlo to, že tým Microsoft zároveň promoval nejakú relačnú databázu a bolo to robené vo Flashi, teda ich konkurenčnej technológií v časoch, keď chceli preraziť so svojím Silverlightom.

Spoznaj svoj Pilsner

Jeden z mojich asi najobľúbenejších projektov vôbec. Promuje sa čerstvosť nepasterizovaného Pilsneru a hlavná myšlienka je, „ukáž telefónom na svoj Pilsner a my ti povieme, aký je starý“. To znie dosť cool, nie? Na prvý pohľad ako dosť odvážny a vlastne nie veľmi realizovateľný projekt, no nakoniec sa ukázalo, že to predsa len nejak ide. Veľa ľudí si po vypočutí toho, čo appka robí, myslí, že je to celé nejaký podvod, ale nie, naozaj sa v telefóne „rozpoznáva pivo“. Teda nie úplne Pilsner nepasterizovaný, ale to nám stačí.

Totižto, najprv sa algoritmus pozrie na GPS súradnice z telefónu a keď sa človek nachádza v nejakom podniku, kde sa čapuje nepasterizovaný Pilsner, tak pivo, ktoré sa naskenuje, bude zrejme nepasterizovaný Pilsner 🙂 Ťažkou úlohou ale stále zostáva zistiť, či sa s telefónom naozaj pozeráte na pivo. Tak sme si nasadili naše biele plášte, oprášili skilly z alma mater a pustili do researchu (lebo z televízie všetci vieme, že keď idú ľudia niečo skúmať, tak si obliekajú biele plášte). Načítali sme všakovaté výskumné články a zaspamovali všakovaté stackoverflowy, dokonca som otravoval svoju bývalú vyučujúcu z počítačového videnia, za čo sa jej ospravedlňujem, no a ukazuje sa, že detekovať tekutinu v sklenom pohári vôbec nie je triviálna úloha; a že nejaký 100 % funkčný prístup na riešenie problému takéhoto typu ani nie je vyskúmaný. Zdvihnime ale hlavy hore, pretože máme dosť konkrétnu informáciu o tom, aký tvar majú poháre Pilsner, a pivo má dosť špecifickú farbu.

Po niekoľkých nepodarených pokusoch sme nakoniec v kombinácii s farbou použili „Kaskádový klasifikátor“ na „HAAR – like features“ v OpenCV. Jednak, pretože je to dosť rozšírená metóda, čo sa bežne používa na rozoznanie tváre, takže sú k dispozícii prepracované knižnice; a jednak lebo šak, prečo nie. Taký klasifikátor sa musí zo začiatku ale dobre nacvičiť. Potrebujete stovky pozitívnych a negatívnych obrázkov (teda pozitívne sú také, kde sa konkrétne pivo nachádza, a negatívne také, na ktorých nie). Tak pred nami stál asi najkomplikovanejší task tohto projektu, vypiť strašne, ale že strašne veľa piva a urobiť že strašne, ale že strašne veľa fotiek a videí . Fotili sme pracne a nahraté videa sme rozbili na jednotlivé frame-y. Nakoniec sme mali databázu s niekoľkými gigabajtami obrázkov pív, v ktorých sme si jeden po druhom, za pomoci svojej a zopár stážistov, označovali pivo. Na záver sa to všetko hodilo do klasifikátora a nechali sme počítač šrotiť. Šrotilo sa deň, dva, tri. Ked sme sa vrátili v pondelok do práce, zistilo sa, že vypadol prúd.

Výpadok elektriny

Výpadok elektriny

Potom sme to celé pustili znova, no, a všetko skončilo happy endom, dokonca sme za to vyhrali nejaké tie ceny. Tu je z toho celkom pekná case study.

Triad t(h)anks to all fans

V Triade máme každoročne „allfans párty“, na ktorú si zavoláme klientov, rodiny, spolureklamných kumpánov z konkurenčných agentúr a iných ľudí, ktorých máme radi. Všetci sa zídeme u nás na záhrade a svorne sa spolu bavíme. No, a keďže sme tí reklamní kreatívni ľudia s tými rôznymi kreatívnymi nápadmi, snažíme sa každý rok spraviť žúrku niečím zaujímavú. Lebo tak, len tak niekam vkráčať, dať si drink a ísť domov môžete hocikde. Určí sa nejaká téma a vymyslia atrakcie, za pomoci ktorých môžeme spraviť zábavu väčšou a lepšou (áno, práve som citoval Rytmusa).

Asi najpamätnejším kúskom atrakcie takej allfans party sú interne prezývané „tanky“. Spravili sme si na našej wifi lokálny node.js server, na ktorý sa ľudia pripojili svojimi smartfónmi a dostali priradený tank, s ktorým sa prestreľovali so zvyškom návštevníkov. Bývaly kolega Dano to s krvavými očami zbúchal, tuším, za 3 dni- a to je naozaj úctyhodný výkon, takže týmto spôsobom mu chcem vzdať hold. Jeden obrázok je hodný tisícich slov a jedno video je teda potom asi hodne tisícich slov krát počet frameov za sekundu krát počet sekúnd vo videu, takže tu je video, ktoré je v tom prípade asi tak 1917000-krátom hodnotnejšie ako predošlé dva odseky textu.

Okrem toho, že sme nechali ľudí pod vplyvom šoférovať tank je to, buzzwordmi povedané, „jeden z prvých interaktívnych projection mappingov na Slovensku“. Do histórie interaktívnych projection mappingov na Slovensku sa veľmi nevyznám, takže si netrúfam povedať, či bol naozaj prvý. Teraz sa to môže zdať byť priemerná zábavka, ale bola to naozaj sranda, ešte to bolo before it was cool. A napokon si myslím, že za také niečo by sme sa na žúrke nemuseli hanbiť ani dnes.

Chito: Koktejl emócií

Dosiahla vaša lenivosť takú úroveň, že sa vám nechce už naozaj nič? Ja viem, že áno, to bola skôr rétorická otázka. No, a keď ste v bare a proste sa neviete rozhodnúť, čo si dnes dať, a ale že vôbec sa vám to nechce riešiť, tak tento problém sme sa pre vás pokúsili vyriešiť s Chitom. Vymysleli sme takú magickú krabicu o veľkosti dvojmetrového človeka, ku ktorej stačí prísť, pozrieť sa do nej a ona vám odporučí drink podľa vašej nálady, a ten vám následne barman namieša. Tiež sme, samozrejme, zohrávali úlohu dodávateľa mágie do krabice, čo bola teda tá náročnejšia časť.

Celá inštalácia pozostávala z dotykového monitora s webkamerou, napojenou na notebook zabednený do krabice, v ktorom bežala appka na rozpoznávanie tváre a jej emócií. Našťastie, rozpoznávanie tváre a vecí s tým spojených sú dobre skúmaná oblasť výskumu. „Under the hood“ je to vlastne už vyššie spomínaný kaskádový klasifikátor na detekciu tváre, ktorého výstup je hodený do „Constraint Local Model“-u a podľa toho sa na detekovanej tvári určí „emócia“. Keď raz niekto niečo vyskúma, je veľmi pravdepodobné, že to už niekto naprogramoval aj vo vašom obľúbenom jazyku. My sme použili populárny clmtrackr, čo je vlastne spomínaný algoritmus v javascripte. Ten sme použili hlavne kvôli tomu, že sme kód re-usovali aj na samotnú stránku Chita, takže si viete nechať odporučiť drink aj vo svojom browseri, v pohodlí vášho domova (alebo inej inštitúcie, kde práve prokrastinujete). Už si len zostáva zohnať toho barmana 🙂

Jump like a star

Posledným projektom, ktorý v tomto shameless self promo blog poste spomeniem, je stánok, ktorý sme pre Nay elektrodom inštalovali na minuloročnej Pohode. Na pochopenie pointy netreba žiaden magisterský titul, pointou bolo skočiť do bazéna plného molytanu. No, a my sme vám teda spravili real time 3D fotografiu vášho skoku.

 

K dispozícii sme mali 12 (alebo 15? ja mám naozaj hroznú pamäť. Volajme to číslo N) vysokorýchlostných wifi kamier od Sony, ktorými konkuruje GoPročku. Kamerky sme rozostavili v polkruhu vypočítanom matematickou metódou pokus – omyl. Okrem kamier bol prítomný aj jeden notebook, jeden sieťový switch a N Raspberry PI. V skratke, celé to bolo prepojené takým spôsobom, že vás vo výskoku kamery cez Raspberry PI naraz cvakli, uploadli fotky na notebook a tam sa z toho spravilo jedno gifko. Keby tam nebol problém s internetom, dalo by sa gifko rovno aj sharovať, ale nebolo tomu, bohužiaľ, tak, a preto sme na konci každého dňa zozbierali všetky dáta, ktoré si kolega Paľo odviezol fyzicky domov a hodil ich na net. Rozmýšľali sme aj nad možnosťou spúšťať spúšť automaticky pri výskoku, ale čas na vývoj tohto algoritmu sa ukázal byť drahší, ako si jednoducho najať dve šarmantné brigádničky, ktoré v čase výskoku stlačia tlačidlo „spúšť“ 🙂

Najväčšou výzvou pri tomto projekte bol (okrem každodennej konfigurácie Raspberry PI a kamier za ranného pohodového bolehlavu z včerajšej prežúrovanej noci) boj s počasím. Každú chvíľu mrholilo, takže sme za deň museli celú vec rozložiť a zložiť niekoľkokrát. Tak či onak bol ale celý projekt zábava a určite by som sa do takého niečoho pustil niekedy znova.

Príď aj ty

Aj práve teraz hľadáme nové posily do nášho teamu. Okrem toho, že by ťa také niečo mohlo baviť, by si mal byť proste kamoš, aby sme sa spolu dobre zabavili na lyžovačke 🙂

Šikovní ľudia (patria) do TRIADu

Globálne projekty potrebujú zmanažovať! Posielaj CV >>

Skúsený Art Director, ktorý je už odpracovanými rokmi senior, ale nadšením stále junior 😊 Hľadáme ťa tu >> 

Ideamaker slash Copywriter, ktorý už má celkom vycibrené skúsenosti, ale stále sa mu máli. Čakáme na tvoje nápady >> 

Stážist(k)a - Šikovní študenti, ktorí túžia po cenných skúsenostiach do svojho CV, píšte nám! >>