GoodData SF Hackathon, duben 2014

10.-11. dubna 2014 jsme jeli do San Francisco na hackathon, pořádaný v kanclech GoodData, zaměřený na používání jejich nových SDKček. Za 7 měsíců jsem si nenašel čas to sepsat, tak snad bez větších zkratek teď. Po dobu hackathonu jsme měli v Praze i San Francisco dropcam.com kamery - v textu jsou bez kontextu 2 timelapse videa.

Akce to byla super! Účastnilo se jí asi milion lidí z GoodData, jedna jejich externí firma (saama.com), co jim pomáhá s implementacema a my. Hackathon se pořádal paralelně v Praze a SF. Tomáš Trnka a já jsme jeli spolu s Lumírem Kajnarem a Martinem Karáskem z Prahy. Z Kanady dorazil Ondra Hlaváček, Adam Hu a Ling. Největší oběť pak udělal Jakub Nešetřil, když nám nabídl spaní u něj v garáži a nakonec nám dal 2 super pokoje!  


Hacking 

Na hackathon jsme dorazili pozdě (Uber zklamal! :), ale svižně jsme udělali 2 týmy - jeden v SF a druhý v Praze, kde bylo 6 Kebooláků (Martin Matějka, Jakub Matějka, Martin Halamíček, Tomáš Kačur, Erik Žigo a Miro Čillík). 

Keboola Tentacle

Pražský tým makal na projektu, který jsme nazvali “Keboola Tentacle” a měl za úkol analyzovat vztahy v objektech v GoodData projektu, s časovou závislostí. Prakticky to denně olizuje GoodData projekt, archivuje všechny definice datasetů, metrik, reportů a dashboardů a sleduje jejich vztahy. Je pak snadné ukázat na sloupeček s čísly a Tentacle poví, v jaké metrice/reportu/dashboardu je sloupeček použitý. Pokud se tedy něco změní v datech, je snadné říct, jaký to má dopad na ostrý projekt. Vedle toho to umí říct co se stalo, zatímco jsem byl na dovolené. Celé je to postavené nad API, vyrábí to repozitář json objektů, které jsou uložené v S3, zpracovávají se v Elasticsearch a nad nima je AngularJS aplikace na prohlížení.

Keboola Tentacle, jak jsme jej měli na hackathonu, je k vidění tady.


Klikněte si na zelené “entries” - ukáže se seznam sloupečků v datasetu a všech metrik, reportů a dashboardů. U sloupečků je vidět, jestli je to Attribut (A) nebo Fact (F) a kolikrát někde figuruje.


Kliknutím na sloupček “part_in_month” se zvýrazní kde všude daný sloupec figuruje. Tyhle pohledy jde kroutit mezi sebou. K olizování GoodData projektu je použité GoodData Ruby SDK, což koukám, že se dneska jmenuje GoodData Automation SDK - sakra, kam na tyhle rádoby trendy jména choděj :-)

S touhle věcí kluci z pražskýho týmu vyhráli třetí cenu ($500), což je super úspěch!

Syntetizované Objekty

Tomáš Trnka, Adam Hu a Ondra Hlaváček pak v San Fran kanclu kutili projekt, kterej ani nemá název, ale je podle mě hyper cool, jen nikdo nepochopil, co to dělá, protože to vypadalo jako když klonujeme hotový dashboardy normálníma GoodData funkcema. 


O co jde? Měl jsem hypotézu, že bez ohledu na model dat, pokud chci udělat graf, co ukazuje “Client Lifetime Value”, stačí mi vědět, co je klient a kde je vyjádřený “value” - pak prostě sečtu value podle klienta a mám to. Pokud to nepůjde, je blbě model, ale to není věc, kterou potřebuju v tenhle moment řešit. 

Adam a Tomáš udělali drobný generický Salesforce BI projekt, ze kterého posléze vzali definice metrik, reportů a dashboardů a všechno co se vztahovalo k datům, nahradili nějakým klíčovým slovem (místo ID sloupce pro “revenue” by v definici třeba "%%REV_COLUMN%%”). 

Ondra mezitím udělal js aplikaci, napsanou v GoodData JavaScript SDK, která mu umožňuje otagovat přímo v GoodData sloupečky. Aplikace se de-facto ptá na pár otázek typu “vyber sloupec, kde je datum založení objednávky” nebo “označ ID, které určuje zákazníka” nebo “jaký typ transakce znamená, že je zaplaceno?". Takhle získané informace strká přímo do GoodData projektu, aby nad nima následně vygeneroval z šablon metriky, grafy a dashbaordy. 

Na první pohled to vypadá, že do prázdného projektu strčíme hotový dashboard, ale celý trik je v “rozhovoru” s uživatelem, kde úplně obecně odpovídá na otázky, ze kterých pak syntetizujeme úplně unikátní projekt (vždy v závislosti na modelu dat). 

Udělat tuhle věc byl mega výkon, protože GoodData JS SDK, které jsme chtěli použít k autorizaci a abstrakci od GD, nepočítá (minimálně tehdá - možná se to od té doby posunulo), že by běželo kdekoliv jinde než přímo na serverech GoodData. My jediní jsme neměli to co ostatní - kompletní přístup k testovací infrastruktuře. Takže pro nás bylo nemyslitelné třeba udělat v rámci hackathonu nový druh grafu, co se prezentuje přímo v projektu. Díky tomu jsme třeba jen 8 hodin řešili, jak to celé rozjet, aby se dalo začít programovat. Cejtil jsem to jako docela silný handicap, ale s ohledem přes rameno to samozřejmě nevadilo :) Nutno podotknout, že se o nás kluci hodně dobře starali a snažili se nám to pomoct rozběhnout!

První místo (a $3000) na hackathonu vyhrál Petr Cvengroš s nevím kým. Udělali super interaktivní LDM vizualizaci, u které je jen velká škoda, že ji dodnes nedostali do produktu a leží zahrabaná v prostředí “Labs / Apps” o kterém nikdo moc neví :(

Výstupy z hackathonu zvalidovaly nějaké koncepty, které teď zpracováváme - o tom snad časem.

Lessons learned:

  • jedna "modrá pilulka" Martina Karáska = spíš celej let
  • AT&T pořád používá 1000 let starý v.35 kabely
  • v GoodData kanclu je zakázaný instalovat vlastní kamery (porušeno!)
  • v GoodData kanclu nesmíme bejt sami bez dozoru (porušeno! dozor usnul :)

  • v noci maká jen Ondra Hlaváček, pak já, pak indové ze Saama.com; nejvíc to flákaj kmenový zaměstnanci a čínská delegace z Keboola :-)

  • po GD kanclu na wc jen na koloběžce, nad ránem součastně i na skejtu
  • Karásek a Trnka jsou teplý => musej mít Corvette :)
  • když v noci opilej Petr Olmer říká: “tady bydlí Svára” a zvoní na zvonky, tak vyběhne pes a budou po vás střílet
  • když se acebook snaží, jde v SF koupit i bryndza - a pak pan Tully z Apiary vysmrkne halušky!

Pár fotek tady

Odkazy:

Pokud víte o jiných článcích, prosím do komentářů, rád to aktualizuju.