photo

Byte hacks the night away

Ingrediënten: 30 ongestoorde uren, 10 slimme techies, 20 collega’s met andere, uiteenlopende talenten, 5 monitors, 1 stoplicht en 6 raspberry pi‘s. Wat kan je hiermee?

Deze vraag was het uitgangspunt voor Byte’s allereerste hackathon. We kondigden het op dit blog al aan: ons technisch team ging 2 dagen en 1 nacht aan de slag met het project Meten is Weten. Productmatig gezien was ons doel om een systeem te bouwen om al onze interne getallen en andere data te kunnen laten zien aan onze collega’s. We wilden dit kunnen tonen op verschillende monitors. Het project zou echter pas geslaagd kunnen heten, als we dat systeem kant en klaar zouden opleveren met kakelverse metrics over bijvoorbeeld supporttickets, vrije servers, sales en natuurlijk de plantendienstagenda. Of dat gelukt is? Nou en of! Maar natuurlijk niet zonder de nodige uitdagingen.

Dag 1

zitzakken

Zoeken naar een geschikte videoplayer

Woensdagochtend begonnen we met frisse moed. Het team splitste zich op in een team ‘dashboard’ en een team ‘video’. Team dashboard ging aan de slag met het zoeken van het allerbeste dashboard dat kon samenwerken met Graphite, een systeem dat we bij Byte al veel gebruiken. Acht kandidaten werden onder de loep gehouden, waaronder Duckboard, Cyfe, Geckoboard, Dashing en Leftronic. Cyfe kwam als winnaar uit de bus; ondersteuning voor iframes en een mooi design gaven de doorslag.

Team video onderzocht hoe de Raspberry pi’s met video bestanden en streams konden omgaan. De Raspberry’s zouden in theorie gemakkelijk video moeten kunnen afspelen door de interne GPU. Helaas was het moeilijker dan gedacht om de GPU aan te spreken. De eerste poging om een video in de browser te tonen lukte niet, omdat de video softwarematig verwerkt werd. Resultaat: zwart beeld met alleen audio. Logisch, want het middels de CPU verwerken van video op een Raspberry is vele malen trager dan middels de GPU. Dus moesten we een manier zien te vinden om de GPU direct aan te spreken. Uiteindelijk lukte dat via Omxplayer, waardoor het mogelijk was om vloeiend een fullscreen video af te spelen. Door de Omxplayer te gebruiken, was het ook meteen mogelijk om YouTube-videos of een netwerkstream af te spelen, wat natuurlijk zeer van pas komt op bijvoorbeeld alle toekomstige Bytefeestjes.

Van Cyfe naar Geckoboard

beantwoordetickets

Aantal beantwoorde tickets in Highcharts

Na een pannenkoekenlunch kwamen de teams weer bij elkaar en ging iedereen aan de slag met klussen naar keuze. De eerste widgets verschenen op Cyfe, zoals een regencountdown en onze tweets. Maar geen hackathon zonder tegenslag; Cyfe bleek toch niet geschikt voor wat we nodig hadden. Het bleek niet mogelijk om grafieken te laten zien die een tijdsperiode kleiner dan een dag moesten weergeven. Onhandig als je bijvoorbeeld wilt laten zien hoeveel supporttickets er nog open staan. De informatie van gisteren is in een innovatief bedrijf als Byte natuurlijk hopeloos achterhaald. Ook was er geen goede documentatie voor grafieken te vinden. Terug naar de onderzoekstafel dan maar. Al een jaar geleden hadden we ooit een Geckoboard ingericht met een aantal interessante metrics. We waren hier weliswaar niet 100% happy mee, vanwege het starre design en met name vanwege een aantal bugs, die er in de loop van de tijd waren ingeslopen. We besloten deze bugs toch maar te gaan fiksen en het design voor lief te nemen. Het mooie aan Geckoboard is namelijk wel dat het een plugin heeft voor Highcharts, waar je prachtige grafieken op het scherm mee kunt toveren.

Andere teams waren ondertussen bezig met onder meer het uitzoeken van een geschikte browser, het kunnen switchen tussen dashboardmodus en videomodus, het kunnen overrulen van alle monitors en het koppelen van het stoplicht aan data uit Nagios. Slechts 2 van de 3 lampjes bleek nog heel te zijn (damn you, marktplaatsverkoper!), waardoor we nu een stoplicht hebben dat geen status ‘ok’ heeft, maar des te opvallender laat zien of we ‘warnings’ of ‘criticals’ hebben.

Raspberry pi’s, maar geen kabels

foto2

Raspberry pi’s!

Natuurlijk moesten ook de Raspberry pi’s worden ingericht en worden aangesloten op de monitors. Glunderend pakten we de doos met pi’s uit. Mooi speelgoed! Alleen bleken we vergeten te zijn om ook HDMI-kabels te bestellen. Zelfs de scherpste techie vergeet wel eens iets… Gelukkig voor ons leven we in 2013, waarin levering-binnen-24-uur de normaalste zaak van de wereld is, en hadden we 2 dagen ingepland voor onze hackathon, waardoor ons doel toch nog binnen handbereik bleef.

Collega’s van andere afdelingen zaten beslist ook niet stil; regelmatig kwamen ze langs met hapjes en gezonde, natuurlijke energiedrankjes. In de keuken werden enorme schalen lasagne voorbereid en na het diner bleek er een kamer helemaal ingericht te zijn als fitnessroom, compleet met hometrainer, crosstrainer, fitnessmatjes, gewichten, hoelahoeps, trainingsschema’s en aanmoedigende foto’s van juichende collega’s. Na het driegangendiner stonden er verse ijskoffies in 4 verschillende smaken klaar en een paar echte die hards bleef zelfs de hele nacht op kantoor om om 4 uur ’s nachts nog een nachtelijke versnapering te komen brengen.

Dag 2

ontbijt

Collega’s verzorgden een luxe ontbijt

Om 7 uur kwamen er verse collega’s aan, die zorgden voor een ontbijt met sapjes en gebakken ei. Verfrist door dit ontbijt, een warme douche en/of een hazenslaapje, maakten we ’s ochtends de stand op. Gelukkig bleek dat we op onze productiefste eerste dag de hele basis goed gelegd te hebben, zodat we ons nu konden toeleggen op het vullen van het dashboard met leuke en informatieve grafieken. Dit bleek uitdaging genoeg; na 24 uur hacken en geen slaap begonnen we fout op fout te stapelen, te struikelen over onze eigen vingers en 20 commits nodig te hebben voor één simpele fix. Zeker tegen het einde van de ochtend was het muisstil op de techvloer, een stilte die alleen werd onderbroken door af en toe een doffe bonk van een hoofd dat op een toetsenbord stuiterde. Na de lunch, knakworsten dit keer, kreeg iedereen weer wat kleur op de wangen en ontstond er weer wat gezellig rumoer.

Ondanks de vermoeidheid kregen we het deze tweede dag nog wel voor elkaar dat bij het opstarten van de Raspberry pi’s het juiste scherm meteen opstartte. Hierdoor hoefden we de Raspberry’s alleen van stroom en een internet kabel te voorzien, waarna de Raspberry de rest zelf doet. Na het opstarten loggen de Raspberry’s in op een centrale server. Deze stuurt vervolgens commando’s waar de kastjes naar luisteren. Dit kan bijvoorbeeld het commando ‘video’ zijn, waarop alle monitors reageren met het tonen van de gewenste video. Geen muis en toetsenbord meer nodig om een video op te starten!

willem

Romantische foto voor onze collega’s

16:00 uur: demo, bubbels en naar bed

In totaal maakten we vijf dashboards, een voor elke afdeling, en twee extra voor het Belpaleis en voor de lunchruimte. We regelden ook een lunchalarm. Wie bij Byte werkt zal vanaf nu tot het einde der tijden elk dierengeluid associëren met honger en we vergaten ook niet onze collega’s te bedanken voor de verwennerij door romantische foto’s van alle techies in het lunchdashboard op te nemen.

Ops_geckoboard

Het dashboard voor team Ops

Om 16:00 uur was de hackathon afgelopen en toonden we onze collega’s wat we voor ze gemaakt hadden. Helaas bleek de 24-uurs levering een farce en hadden we nog steeds onze HDMI-kabels niet binnen. Daardoor moesten we de demo beperken tot 1 monitor en 1 stoplicht met maar 2 lampjes. De dashboards werden gelukkig wel met unaniem gejuich ontvangen en ook de partymodus viel in de smaak. Na één glaasje bubbels op ons mooie dakterras begonnen de meeste techies al met dubbele tong te spreken. Tijd om heel lang te gaan slapen.

 

 

 

 

 

Scan je eigen Magento shop op veiligheidslekken