Ik ben verliefd op Python en zal dat ook altijd blijven. Vanaf het eerste moment dat ik mijn stoute programmeerschoentjes aantrok, wist deze taal mijn hart al te veroveren door zijn duidelijke syntax, fantastische libraries en schijnbaar eindeloze toepassingen. Zeker als je kijkt naar wat allemaal mogelijk is op het gebied van data analyse, science en visualisatie is er geen taal die je meer kan bieden dan Python. Python is mijn eerste liefde. Python is simpelweg fantastisch!
In de toekomst ga ik zeker meer vertellen over het geweldige potentieel van Python, maar voor nu moet dit juweeltje gewoon bovenaan mijn lijst van favoriete technologie staan. Dit is "One Programming Language To Rule Them All". Bij deze dus...
Voordelen
Nadelen
Er zijn weinig momenten waar ik meer van kan genieten dan het opstarten van een nieuw blanco Jupyter Notebook. Dat betekent namelijk dat ik op het punt sta om weer iets nieuws te ontdekken. Een notebook is namelijk waar je je Python code kunt typen, draaien, visualiseren en vertalen naar een prachtig onderzoeksrapport. Heerlijk om te doen!
Het leuke is dat je je notebook kunt opfraaien met Markdown tekst, waardoor coderesultaten naadloos overgaan in toelichting en context. Het resultaat is een prachtig verhaal waarin de complete reis van datapreparatie, analyse en visualisatie wordt afgelegd. In mijn beleving is dit de fijnste manier om onderzoek te doen.
Mocht je het zelf nog niet kennen, download dan de Anaconda suite. Daarmee installeer je Python en de belangrijkste libraries, en dan krijg je ook nog eens Jupyter Labs en Notebooks gratis en voor niks kado. Hoe vet is dat!
Voordelen
Nadelen
De beste websites hebben een goede backend achter de schermen. Dit is de plek waar je bijvoorbeeld je gegevens opslaat en gebruikersbeheer toepast. Hier zijn natuurlijk verschillende oplossingen voor (node.js, Flask, etc.), maar sinds kort heb ik wel een hele goede dienst ontdekt. Kennen jullie allemaal Googles Firebase al? Zo niet, wacht dan niet langer en ga hier als de sodeknetter mee spelen!
Firebase is namelijk ontzettend gaaf. Het enige wat je hoeft te doen is een project aanmaken onder je Google-account, en daarna heb je een complete backend in de cloud voor je ter beschikking. Dat betekent dat je dus bijvoorbeeld het complete gebruikersbeheerd en inlogproces hierin kunt laten regelen. Compleet met alle beveiliging die je van Google mag verwachten.
Maar misschien nog wel vetter, is de gratis realtime (!) database Firestore. Ik moet zeggen dat ik niet eens wist dat het bestond, maar als je er eenmaal mee werkt zie je gelijk hoe vet dit is. Concreet: je kunt hierbij direct met je database praten en rechtstreeks visualisaties laten updaten. Een grafiek kan dus direct op je scherm bijgewerkt worden, zonder dat je je scherm hoeft te verversen. En zeker in combinatie met visualisatielibrary D3.js levert dit de mooiste dingen op
Binnenkort wil ik dus ook zeker deze website aansluiten aan een Firebase instance. Mocht zelf willen leren hoe je dat doet, dan helpt deze tutorial je daar enorm bij. Twijfel je nog, check dan deze lijst met voordelen eens:
Voordelen
Nadelen
Natural Language Processing (NLP) is de kunst van het met computers analyseren van de menselijke taal. Op het eerste gezicht klinkt dat misschien wat droog, maar als je er eens goed over nadenkt is dat werkelijk verdomd fascinerend. Die taal van ons is namelijk zo abstract als wat, maar volgt wel allemaal meetbare regeltjes. Met NLP kan je al die regels en patronen zichtbaar maken en daarmee kan je vervolgens de gaafste dingen doen. Wat dan zoal?
Nou, wat dacht je bijvoorbeeld van een sentiment analyse? In woorden en punctuatie kan je een scoresysteem aanbrengen om te oordelen in welke mate een tekst positief of negatief is, en die lessen kan je toepassen op alle teksten die nog niet zijn beoordeeld. Zo kan je bijvoorbeeld cijfermatig onderbouwen of Wateengast.nl inderdaad zo’n blij positieve website is als ik altijd al had gedacht.
Of wat dacht je van automatische categorisering van je blogposts of artikelen. Met topic modeling volgens bijvoorbeeld Latent Dirichlet Allocation of een Non-Negative Matrix Factorization kan je automatisch een x aantal categoriën laten opzoeken in een bundel teksten door te kijken naar welke woordcombinaties vaker voorkomen. Dit is heel handig als je bijvoorbeeld geen idee hebt waar je moet beginnen als je honderden teksten voor je neus hebt liggen om doorheen te ploeteren.
Nog gaver is misschien nog wel tekstgeneratie met deep learning (een neuraal netwerk). Daarmee kan je bijvoorbeeld een eigen chatbot te ontwikkelen, al moet je dan wel de nodige tijd hebben om je model te trainen. Niet dat het zo resource-intensief is, maar het grote probleem (zoals zo vaak bij machine learning) is dat er eerst gewoon kneiterveel handwerk aan modeltraining aan vooraf gaat voordat je iets zinnigs uit je algoritmes kunt krijgen. Persoonlijk heb daar niet zoveel zin is, maar de inspiratie ligt al op de plank hoor. Veel lolliger is het om gewoon wat komische antwoorden voor te programmeren om zogenaamd een onwijze klootzak van een chatbot na te maken. Daar ga ik binnenkort dus mooi even werk van maken!
Maar al met al is Natural Language Processing een prachtige techniek die je laat zien tot welke prachtige dingen de moderne techniek vandaag de dag wel niet toe in staat is. Als je een beetje bekend bent met Python raad ik je van harte aan om je eens te verdiepen in de libraries Spacy en NLTK. Het is echt wonderbaarlijk wat je hier allemaal mee kunt.
Mocht je zelf ook een keer de eerste stappen willen zetten, volg dan deze cursus van mijn held Jose Portilla eens: NLP - Natural Language Processing with Python
En dan nog even in het kort over NLP:
Voordelen
Nadelen
Net zoals een timmerman een goede hamer nodig heeft, heeft een programmeur een goede code editor nodig. Dat is de plek waar je al je ideeën uitwerkt, waar je concepten test, en waar simpelweg "the magic happens". Ik heb inmiddels een aantal editors geprobeerd (zoals Sublime, Atom, PyCharm), maar de editor die toch echt mijn hart heeft gewonnen is met stip Visual Studio Code gebleken. Je kunt er wel zo ontzettend veel mee!
De beste manier om hierachter te komen is door er vooral zelf mee te gaan werken, maar om toch een klein idee te geven van de awesomeheid van deze tool: VScode is gratis, VScode barst van de plugins, VScode is lightweigt, VScode heeft een live server, VScode kan je aan GitHub linken, VScode kan je synchroniseren over meerdere apparaten, VScode ziet er goed uit, VScode kan je tot in den treure personaliseren, VScode wordt elke maand beter, VScode werkt voor elke programmeertaal, VScode kan je statistiekjes bijhouden, en ga zo maar door. Ik zou hier hele boeken over kunnen volschrijven!
Maar dat doe ik lekker niet. Probeer het gewoon zelf maar, gratis te downloaden op deze link.
Voordelen
Nadelen
Flutter is een relatief nieuw framework van Google waarmee je native apps voor Android en iOS kunt programmeren. Het gave hiervan, is dat je het niet met visuele editors hoeft te doen, maar dat je alles volledig in je code kunt opbouwen. Alles, dus ook de visuele layout en de opmaak van alle elementen van je app.
Dit alles wordt opgebouwd in een heel logisch te volgen Widget-tree. Alle stukjes van je app (textveld, knop, lijstje, plaatje, etc.) hangen als een soort stamboom aan je app, en volgens dat concept is het heel leuk werken om je app te bouwen. Vervolgens compileert Flutter je code (overigens in de Javascript-achtige taal Dart), naar een supersnelle app volgens het prachtige Materialize-design.
Als je al een beetje kunt programmeren krijg je dit redelijk snel onder de knie, en daarna kan je meteen los om je wilde app-fantasieën te verwezenlijken met dit mooie framework. Omdat dit een hele leuke en tastbare manier van coderen is (je ziet meteen resultaat), kan ik niet anders dan elke nerd aanraden om ook eens een avondje te gaan stoeien met Flutter en Dart.
Bij deze! Op deze link staat ook veel documentatie, maar als je wat meer wilt leren kan ik je aanraden om deze cursus eens te proberen.
Voordelen
Nadelen
PowerApps is een geniaal programma van Microsoft waarmee je in een handomdraai complete mobiele apps voor je organisatie kunt maken. En beter nog: live publiceren en in productie gooien! Ik ben hier voor het eerst mee gaan spelen toen ik erover hoorde in combinatie met Sharepoint-lijsten, één van de betere features van Sharepoint. Door daar een app overheen te gooien kan je dus vanaf je telefoon eenvoudig gegevens bijhouden in een lijst, die je daarna weer in andere analysetools zoals bijvoorbeeld PowerBI over kunt nemen. PowerApps geeft je een hele simpele interface om deze gegevens mee te bewerken. En dat is vet. Stiekem heel erg vet.
Het beste voorbeeld is een usecase voor mijn werk, waar zogenaamde huismeesters rondlopen om te kijken welke dingen beter kunnen op ons vliegveld. Eenmaal terug achter hun bureau moeten ze dan nog de administratie doen door allemaal excelletjes bij te werken. Met mijn zelfgemaakte PowerApp kunnen ze dit nu onderweg doen, fotootjes toevoegen, locaties op de kaart markeren, enzovoort. Dat scheelt ze elke dag een half uur werk, die ze nu nuttiger voor mijn geliefde luchthaven kunnen besteden. Hoe mooi is dat!
Sinds ik PowerApps ontdekt heb ben ik in elk geval om. Hier kun je mooie dingen mee maken! Wel heb ik even een gratis online cursusje gevolgd om erin wegwijs te raken, maar de leercurve is verder absoluut niet hoog: Developing Business Applications with Microsoft PowerApps, CDS and Flow (die gast is wat irritant en je kunt stoppen na de hoofdstukken over Canvas-apps, dan heb je alle kennis om aan de slag te gaan)
Het mooiste van alles is misschien wel het gemak waarmee je je app kunt publiceren en delen binnen je organisatie. Daar is geen IT-architect voor nodig en dat betekent dat je dus in no t ime jouw gave idee in productie kunt brengen. En dat wil je toch als ontwikkelaar van wereldverbeterende dataproducten?
PowerApps is zeker de moeite waard om eens te checken, je kunt er echt hele gave dingen mee maken! Hieronder een korte balans:
Voordelen
Nadelen
Als je met data werkt is SQL één van de belangrijkste dingen die je kunt leren. Met SQL kan je namelijk databases bevragen en data ophalen voor verdere analyse. Door dit gericht en efficiënt te doen voorkom je dat je veel irrelevante data meesleept in je analyses en kun je een hoop simpele berekeningen en mutaties op voorhand al doen. Welke tool je er vervolgens ook overheen gooit, je hebt hier altijd profijt van.
En het leren van SQL is zeker geen straf, want de syntax van deze Structured Query Language is heel erg overzichtelijk en in mijn ervaring snel onder de knie te krijgen (als in easy to learn, hard to master). Als je eenmaal doorhebt dat je alles met een simpele SELECT .. FROM .. WHERE naar boven kunt krijgen, kan je 9 van de 10 onderzoeksvragen al beantwoorden.
Mocht je zelf een zetje in de rug kunnen gebruiken om SQL te leren kan je bij deze overzichtelijke udemy cursus terecht:
Voordelen
Nadelen
Deep learning is prachtig. Door de techniek achter neurale netwerken toe te passen kun je je computer onwijs gave dingen laten doen. Een van die gave dingen is bijvoorbeeld het leren herkennen van dingen op beeld. En hoewel wij zelf al best wel gewend zijn aan het bestaan van deze techniek, is het stiekem best wel ongelofelijk als je eens wat dieper in de eentjes en nulletjes kruipt van zo'n wonderlijk netwerk. Convolutional Neural Networks zijn dan je vriend, heel gaaf om eens mee te spelen.
Zelf heb ik er wat mee zitten stoeien waardoor je plaatjes in kan laden en de computer kan laten zeggen in welke categorie dat plaatje dan het meest waarschijnlijk zal moeten vallen. En hoewel ik de techniek echt supervet vindt, heb ik wel vaak een beetje moeite om toepassingen te verzinnen in mijn dagelijkse praktijk. En dan bedoel ik toepassingen waar de wereld (of je organisatie in elk geval) daadwerkelijk beter wordt. Vaak blijven de toepassingen hangen op het aantonen hoe gaaf die techniek is.
Uitzondering hierop is natuurlijk de medische wereld, aangezien daar het analyseren van ontelbare samples wel degelijk van onschatbare waarde is. Daarbuiten is dit echter vooral heel erg gaaf speelgoed. En daar is niks mis mee hoor! Spelen is te gek, zeker met deze state of the art techniek.
Voordelen
Nadelen
Met deep learning kan je hele gave dingen maken. Met name op de gebieden van image recognition en natural language processing komt deze wonderlijke techniek het beste tot zijn recht. Om die potentie aan te boren heb je alleen wel de juiste middelen nodig, en ik heb daarvoor de combinatie Tensorflow met Keras uitgekozen. Er zijn meer oplossingen, maar ik ben nou eenmaal stiekem best een grote fan van de producten van Google.
Tensorflow is een opensource machine learning platform uit de koker van Google. Deze mooie library kan je helpen om neurale netwerken te laten berekenen om zo bijvoorbeeld tekst te laten genereren of dingen op afbeeldingen te herkennen. Daarvoor heb je natuurlijk wel de nodige rekenkracht nodig, maar ook daar biedt Google uiteraard weer uitkomst. Want mocht je nou zelf niet over een fraai computercluster beschikken, dan kan je tegenwoordig via Google Colab notebooks helemaal gratis en voor niets je eigen GPU aanslingeren. Hoe vet is dat?
Dat betekent dus dat je voortaan zelf hele leuke dingen kunt gaan doen met deep learning. Mits je natuurlijk wel een leuk idee hebt. De mogelijkheden zijn veel, mooi, maar ook redelijk specifiek. Dat neemt niet weg dat je prachtige dingen kunt maken als je ze kunt verzinnen! Ga ervoor, en mocht je weer een zetje in de rug kunnen gebruiken kan ik je deze cursus van harte aanbevelen. Die brengt je compleet op stoom om je eigen ideeën uit te kunnen werken. Veel plezier!
Voordelen
Nadelen
Het leukste aspect van data analyse vind ik het visualiseren van de resultaten. Dat is namelijk het punt waarop de interactie met je gebruiker plaatsvindt, en dat is dus de plek bij uitstek waar je het verschil kan maken. Om te zorgen dat je daar de meeste impact maakt, moet je proberen om een zo gaaf mogelijke visualisatie te maken. En voor zover ik weet, bestaan er nog geen gavere resultaten dan die je kunt maken met D3.js.
D3 is een Javascript library waarmee je de gaafste interactieve dingen kunt bouwen. Dit gaat veel verder dan alleen een bewegend grafiekje of een uitklikbare databoom. Werkelijk alles dat je kunt verzinnen, kan je nabouwen in D3. En dat ziet er ontzettend vet uit!
Een beeld zegt natuurlijk meer dan 1000 woorden, dus neem vooral een kijkje op de website van D3 zou ik zeggen. Ik heb zelf ook een aantal fraaie dingen gemaakt, en zodra ik tijd heb ben ik van plan die hier in een mooie portfolio-site met de wereld te gaan delen. Stay tuned!
Voor nu kan ik zeggen dat D3 misschien niet de makkelijkste tool is om mee te werken, maar als je het eenmaal aan de praat hebt zijn de resultaten meestal werkelijk fantastisch. Om je op stoom te helpen heb ik deze cursus gevolgd, die geeft je een mooie basis voor deze gave visualisaties. Wacht niet langer en check dit uit!
Voordelen
Nadelen
Het mooiste compliment dat een data analist/scientist/nerd kan hebben, is dat zijn of haar producten daadwerkelijk gebruikt worden in het dagelijks werk van je collega's. Om dit voor elkaar te krijgen, helpt het enorm om een goede Business Intelligence tool te gebruiken. In mijn beleving is PowerBI wat dat betreft de beste die er is. Je kunt er ontzettend veel mee, en dat alles ook nog eens op een ontzettend gebruiksvriendelijke manier. Wat wil een datanerd nog meer?
Nou, dat je dashboard gemakkelijk te delen en publiceren is. En laat dat nou net het sterkste pluspunt zijn van PowerBI! Aangezien het een onderdeel is van de Microsoft Office 365 suite kun je (mits je organisatie op Microsoft draait en over de nodige licenties beschikt) heel eenvoudig mensen uit je adresboeken kiezen om je werk mee te delen. Dan hoef je alleen nog maar de dataverversing in te stellen en je hebt je organisatie weer een klein beetje datagedrevener gemaakt. Hoe vet is dat!
Serieus, als je het nog niet gebruikt, ga het dan snel doen. Voor mij was PowerBI een broodnodige upgrade van mijn basistoolkit.
Voordelen
Nadelen
Qlikview is geweldig. Voor wie het niet kent: Qlikview & QLiksense zijn twee varianten van een BI tool die al vrij snel mijn hart gestolen heeft. En dat heeft Qlik met een heel slim truukje gedaan. Er zit namelijk een onnavolgbaar goed filter in, en dat helpt je onwijs snel door je data heen.
Tel daarbij op dat je ook nog eens elke pixel in je werkveld naar eigen wens in kunt richten, en dan weet je dat je een hele fijne BI-tool in handen hebt. De mogelijkheden zijn enorm, en daarmee ook soms een beetje overweldigend. Maar dat neemt niet weg dat je er de fraaiste dingen mee kunt maken als je eenmaal weet welke settings de beste zijn voor jouw situatie.
Goed, net zoals met eigenlijk alle BI-tools ben je vooral afhankelijk van welke jouw organisatie eerder ooit heeft gekozen, maar mocht dit toevallig een product van Qlik zijn mag je best in je handjes knijpen. Samen met de grootste concurrenten Tableau en PowerBI is dit ook gewoon een supersterk product om mee te werken!
Zelf heb ik ooit een hele goede Qlikview-developer training op locatie gedaan op het kantoor van Qlik op Schiphol, maar daarbuiten zijn er zat partijen te vinden die je een mooie training kunnen geven. Enjoy!
Voordelen
Nadelen
Tableau is de eerste BI-tool die ik ooit heb uitgeprobeerd. Net als zo veel anderen was ook ik heel erg gecharmeerd van de schijnbare eindeloze mogelijkheden en het natuurlijke gebruiksgemak waarmee je de mooiste visualisaties in elkaar kunt slepen. Helaas werkte ik toen voor een medium-kleine startup, en die lui konden de enorme licentiekosten van Tableau jammer genoeg niet opbrengen. Balen!
Nadien heb ik helaas nooit bij een bedrijf gewerkt dat wel Tableau in huis had, maar ik heb er wel genoeg mee gespeeld. Want wat is Tableau mooi zeg! Op de een of andere manier ben ik onwijs gecharmeerd van het strakke uiterlijk dat je visualisaties ongemerkt met zich meekrijgen. Het ziet er allemaal precies zo uit als je het wilt hebben, en je hebt zo'n beetje alle mogelijkheden te beschikking die je van een BI-tool verwacht.
Zeker een aanrader dus! Maar ja, je moet wel eerst een hele organisatie zover krijgen om het aan te schaffen voordat je echt de volle potentie van Tableau onder je vingertoppen hebt. En dat kost wel een bak duiten.
Voordelen
Nadelen
Een essentiële skill voor iedere analist is natuurlijk een degelijke basis op het gebied van kansberekening en statistiek. Puur het feit dat het vaak onmogelijk is om complete populaties te betrekken in je onderzoek, zorgt ervoor dat je dan wel echt moet weten wat je wel en niet kunt weten over de steekproefresultaten die daar voor je neus liggen. Met statistiek kun je daar uitspraken doen.
Statistiek is namelijk het doen van uitspraken op basis van dingen die je wel weet. Een belangrijk onderdeel hiervan is logica in argumentatie: als dit, dan dit, met zo’n grote kans, etcetera. Vaak heeft statistiek een wat stoffig imago, maar in de praktijk is het een stuk gaver dan je zou denken. Je kunt er namelijk hele discussies mee bevestigen of ontkrachten.
Door bepaalde hypotheses te toetsen met de juiste data, kan je een onderbuikgevoel vertalen naar een concrete antwoorden waar je actie op kunt ondernemen. En die mogelijkheid om actie te ontketenen met statistische analyses is wat deze onderzoeksmethode zo vet maakt.
Ik denk dat veel mensen ooit in hun leven wel eens statistiek gehad hebben, maar dat het na verloop van tijd weer een beetje is weggezakt. Bij mij is dit in elk geval wel soms het geval. In dat geval is het fijn om zo nu en dan een goede opfriscursus te doen. Dit is naar mijn weten de beste cursus op dit moment. Gegeven door de briljante Jose Portilla, krijg je hier alles in mee om weer lekker aan de slag te gaan met je T-testen, ANOVA’s en basis regressieanalyse. Enjoy!
Voordelen
Nadelen
Goed, je lost er geen moeilijke vraagstukken mee op of je programmeert er geen handige toepassingen mee, maar het eindresultaat van een avond met Ableton is soms minstens net zo briljant en vaak ongeëvenaard in haar creativiteit. Althans, dat vind ik dan natuurlijk zelf. De volgende ochtend klinkt het meestal een stuk minder briljant dan ik aanvankelijk had verwacht.
Maar dat boeit niet! Het mooiste van Ableton is dat je er helemaal 'echte' muziek mee kunt maken, en dat je het zo bont kunt maken als je zelf wilt. De mogelijkheden zijn serieus eindeloos, mits je portemonnee ook eindeloos is. Die van mij is dat niet en dus doe ik het met de versie Ableton Live 10 Lite. Deze krijg je gratis als je een stukje hardware koopt (zoals in mijn geval deze fantastische Launchpad van Novation). Die versie klinkt misschien heel licht, maar ik heb zelf als amateur nog niets gevonden wat ik mis. Je kunt er echt complete tracks mee maken en simpelweg een geweldige tijd mee beleven!
Ik hoop hier binnenkort natuurlijk de eerste geniale tracks met jullie te kunnen delen, maar eerst moet ik nog even wat beter worden in het vak. Het helpt om wat leuke cursussen en trainingen te doen (zoals deze bij Udemy en deze geweldige tutorial over muziek van Ableton zelf). Maar daarna moet je toch echt vooral zelf gaan stoeien, en dat ben ik nu dus vol overgave aan het doen.
En ik vind het heerlijk!
Voordelen
Nadelen
De eerste regel code die ik in mijn leven voor een PC geschreven heb moet HTML geweest zijn. Dat was destijds op de middelbare school, voor een vreemd verplicht vak dat 'informatica' genoemd werd. Destijds vond ik het allemaal maar onzin, want die meisjes om me heen die glazig verveeld om zich heen staarden waren veel interessanter. Hoe mis had ik het toen! Als ik op dat moment had gerealiseerd dat HTML zo'n beetje het cement van het hele internet was, had ik toch een stuk beter opgelet denk ik nu...
Jarenlang heb ik mijn vaardigheden van toen wat laten sluimeren, tot ik mijn eerste websites begon te maken. En dan merk je pas hoe leuk het kan zijn om met HTML te spelen! Zeker als je zoals ik graag hier en daar wat tekstjes schrijft online, mag in elk geval de basiskennis van HTML niet ontbreken. Als eerste pilaar in de heilige drie-eenheid HTML-CSS-JavaScript is deze taal eigenlijk gewoon verplichte kost voor alle volgende generaties.
Voordelen
Nadelen
Hoe meer je je verdiept in het maken van websites, hoe gaver de technieken die je ondertussen tegen gaat komen. Dat geldt zonder meer ook voor Vue, een fantastisch web-framework waarmee je supergave en supersnelle single-page websites kunt bouwen.
Een single-page app houdt in dat je een enkele homepage hebt, en daarna zonder ook maar enige laadtijden te ervaren door de hele site heen kunt klikken. Hier ga je niet van html naar html, maar je blijft op je homepage en laat het framework continu de juiste data voorschotelen aan je gebruikers.
Het idee is een heel klein beetje zoals de site die je nu voor je ziet, maar dan veel cleaner en efficiënter. Is heb recent deze briljante cursus gevolgd van mijn held Shaun Pelling (aka the Net Ninja), en ergens bovenaan mijn to-do-verlanglijstje staat om deze site helemaal te herbouwen in Vue als ik een keer tijd heb.
Het plan is om de boel dan ook gelijk te koppelen aan Firebase zodat ik een geweldige complete website op kan bouwen. Onwijs leerzaam, onwijs leuk en ook nog eens onwijs mooi om te gebruiken. Dat gaat vet worden!
Voordelen
Nadelen
Aanvankelijk zat ik nog te twijfelen of ik hier een apart stukje over moest schrijven of dat ik CSS gewoon als onderdeel van HTML moest beschouwen, maar toen realiseerde ik me weer eens wat een ongelofelijke mogelijkheden je eigenlijk alleen al hebt met CSS. Naast gewoon het gestructureerd stylen van je websites, kan je er namelijk ook de gaafste animatie-effecten mee maken. Om maar wat te noemen... Combineer het met JavaScript en misschien een sausje jQuery en CSS is misschien wel de goochelstok van een webdeveloper. Zeker de moeite waard om je wat meer in te verdiepen!
Een leuk beginpunt om de fijne kneepjes van CSS te leren kennen is bijvoorbeeld deze gratis tutorial, waarin je aan de hand van het briljante Mario Kart door wat leuke animaties heengeloodst wordt. En daar komt dus geen JavaScript aan te pas!
Voordelen
Nadelen
Mijn passie voor programmeren is begonnen bij Python, maar in JavaScript heb ik toch zeker een tweede liefde gevonden. Waar Python goed is voor alles, is JavaScript nog beter voor alles op het web. En dat komt in de praktijk vaker van pas dan je zou denken! Zelfs de meest doorwinterde data scientist kan eigenlijk niet om een gedegen basiskennis van JavaScript heen. Al is het maar om je te realiseren dat veel van de beste Python-libraries voor data visualisatie achter de schermen stiekem gewoon de boel converteren naar keiharde JavaScripts.
Goed, qua syntax mag het allemaal wel wat minder met die haakjes als je het mij vraagt, maar daar staat tegenover dat je de meest fantastische dingen kunt bouwen op het web. En dan bedoel ik ook zo'n beetje alles! Doordat er allemaal gespecialiseerde webframeworks zijn is er voor elke toepassing wel een prachtige oplossing in JavaScript te vinden. Van data visualisatie (D3.js) tot single-page apps (Vue.js) tot native apps bouwen voor Android en iOs (Flutter): het is nog maar het topje van de ijsberg qua toepassingen van JavaScript.
Mocht je dus nog twijfelen of je JavaScript of Python moet gaan leren: twijfel niet langer en doe het allebeei! Daarmee kan je zo'n beetje alles maken wat een moderne creatieve nerd zich kan wensen. Er zijn veel fijne interactieve trainingen online (Codecademy bijvoorbeeld), maar deze cursus is ook heel erg goed en vooral erg compleet en actueel. Aanrader!
Voordelen
Nadelen
Om de zoveel tijd heb ik een nieuwe hobby, en de laatste tijd is dat met veel plezier werken in Android Studio geworden. Daarin kan je namelijk helemaal zelf apps maken voor op je smartphone, en dat werkt allemaal een stuk beter dan ik dacht. Dat komt voor een groot deel door het gebruiksgemak van deze IDE. Android Studio is een genot om in te werken! En laat je alsjeblieft niet misleiden door de naam: het feit dat het Android Studio heet, betekent niet dat je alleen maar apps voor Android kunt maken. Je kunt er namelijk ook met Flutter (en Dart) in werken, en dat compileert zowel naar Android als iOS (maar daarover later meer).
Maar in oorsprong schrijf je je code natuurlijk wel voor Android, en dat doe ik graag (als Google-fanboy). Hiervoor schrijf je oorspronkelijk Java code, en dat voelt soms een beetje stoffig en omslachtig. Gelukkig kun je met hetzelfde gemak switchen naar Kotlin, en mijn eerste indruk daarover is al een stuk positiever. Het is even wennen, maar zeker niet te moeilijk als je al wat kunt programmeren. En dan is de enige grens nog maar je eigen fantasie!
En tijd natuurlijk, want je schrijft die droomapp natuurlijk ook niet in een uurtje tussendoor... Maar het is heerlijk om je eigen idee beetje voor beetje werkelijk heid te zien worden! Android Studio is daar je perfecte partner voor.
Voordelen
Nadelen
Als je mij vraagt wat ik het leukste vind om te doen, krijg je twee dingen te horen: schrijven, en coderen. Schrijven doe ik elke dag op mijn melige wordpress blog Wateengast.nl. Coderen doe ik voornamelijk in Python (voor data science en analyse) en in HTML+Javascript voor het maken van websites. Hoe mooi zou het dan zijn als ik die twee passies met elkaar zou kunnen combineren? En natuurlijk kan dat!
Het doel: een native mobile app van mijn blog
Mijn weblog draait zoals gezegd op Wordpress, vooral omdat je content daar zo ontzettend makkelijk in te beheren is en er voor de meeste denkbare toepassingen wel fraaie gratis plugins te vinden zijn. Mijn ambitie was nu om een mooie mobiele app te maken, waarin de kernfunctionaliteit van mijn blog terug te vinden zou zijn. Daarbij is dit een mooie les om eens te ervaren wat er allemaal bij komt kijken om een eigen app live te krijgen in de app stores. Hoe moeilijk zou dat zijn?
Hoe ben ik begonnen?
Nu is mijn blog zeker niet groot te noemen (wel zo’n 100 bezoekers per dag, maar dat is niets in die wereld). Omdat ik er ook niet veel aan verdien wil ik zo min mogelijk geld kwijt zijn aan het maken van deze app. Dat moet kunnen! De eerste uitgave die ik een jaar geleden heb gedaan was een Udemy-cursus van 15 euro of zo, waarin een vrolijk monotone man uit India stap voor stap een Wordpressblog programmeert in Ionic. Die cursus was prima te volgen en het resultaat was inderdaad een werkende app die live te downloaden is in de Play Store, maar achteraf had ik op veel vlakken eigenlijk nog geen idee wat ik precies gedaan had. Ik volgde de code, deed wat die beste man van me vroeg, maar ik leerde te weinig. Dat moest anders. Maar hoe?
Focus op 1 platform: Android
Een belangrijke les die ik geleerd had, was dat het relatief duur is om een app voor iOS van Apple te maken. Zo duur, dat het helemaal niet interessant is voor een hobbyist als ik. Waar je bij Google maar eenmalig 25 dollar hoeft neer te leggen voor een developer-account, kost precies hetzelfde bij Apple maar liefst 100 dollar per jaar! Dat ga ik dus never nooit terugverdienen met dit geintje. En wat daar dan nog bovenop komt, is dat je ook nog eens een Mac nodig hebt om die code te kunnen schrijven. Die heb ik niet, en die ga ik daar zeker niet speciaal voor kopen. Dit is nou precies de reden waarom ik het op zijn zachtst gezegd niet zo op heb met Apple. Wat een geldkloppers zeg! Dan gebruik ik veel liever de geweldige software van mijn eigen lievelingstechgigant: Google.
Is Android Studio de oplossing?
Als ik dan toch alleen voor Android bouw, dan kan ik net zo goed eens Android Studio gaan leren. Hoe moeilijk kan dat zijn? En dus ging ik weer een cursus volgen, en voor ik het wist zat ik tot over mijn oren in het omslachtige, fossiele Java. Ik snap best dat er veel mensen fan van zijn, maar die programmeertaal wist mij in elk geval niet echt te charmeren. Dat begint al bij die draak van een code om alleen maar een simpele ‘hello world’ op je scherm te toveren. Kom op jongens, als je zoals ik Python gewend bent kan je daar echt geen vrienden mee maken hoor! Gelukkig ziet Google dat ook wel in en hebben ze er dus ook maar het iets hippere dialect Kotlin ingegooid, maar ook dat wist me uiteindelijk niet zo te bekoren. Die manier van bouwen via Android Studio, xml en Java/Kotlin is gewoon te omslachtig om leuk te zijn. Maar toen kwam daar gelukkig de oplossing: Flutter!
Flutter to the rescue!
God zij dank leerde ik toen Flutter kennen, een speciaal framework van (hoe kan het ook anders) ook weer Google. Flutter maakt gebruik van de programmeertaal Dart, en als je al enigszins bekend bent met Javascript en de algemene programmeerprincipes in de vingers hebt, is dit echt een eitje om op te pikken. Zeker in de context van Flutter, want dat framework is compleet opgehangen aan een even simpel als briljant principe: de Widgettree.
Hoe steekt dat Flutter in elkaar?
Het idee is dat alles wat je in een app ziet een aparte widget is, en al die widgets hangen als een grote hiërarchische boom aan elkaar. Zo heb je bijvoorbeeld een Scaffold, met daaronder je Appbar, die weer een Tekst-widget als titelbar heeft, met een TextStyle widget om die tekst op te maken, de body is een kolom met twee rijen, elk van een icoontje met een knop, etcetera etcetera. Logisch gezien is dat heel goed te volgen. Vervolgens moet je nog de staat van je data regelen en wat routering fixen tussen de schermen en voila: je hoeft alleen nog maar het commando “flutter build appbundle” te runnen en je bent klaar voor de play store!
Is het echt zo simpel?
Nou ja, in theorie natuurlijk. Want net zoals bij ieder ander framework, moet je natuurlijk wel weten wat waar te vinden is en hoe je dingen doet. Maar het leuke van zo’n app bouwen, is dat je een heel concreet en tastbaar doel voor ogen hebt. Je wilt een app met een bepaalde functionaliteit, en Flutter kan het regelen. Je moet alleen even uitzoeken hoe. Hier is Google/Stackoverflow natuurlijk weer je beste vriend en voor je het weet zie je je creatieve idee voor je ogen werkelijkheid worden. Zeker door de speciale ‘hot reload’ functie, waardoor je je code alleen maar hoeft te verversen en je wijzigingen zie je terug op je aangekoppelde telefoon. En dat is echt gewoon superleuk om te doen!
Wat waren de eisen van de app?
De eisen die ik aan mijn app had gesteld waren helder: hij moest kunnen praten met de Wordpress-API van mijn blog, die data uitpakken en ombouwen in een mooie lijst met kleine plaatjes, daar een infinite scroll overheen zodat je eindeloos kunt blijven scrollen, uiteraard moest je door kunnen klikken naar een detailpagina om mijn posts te lezen en tenslotte wilde ik een filter met daarin de categorieën. En het liefst dat het er dan ook een beetje fraai uitzag en ik achter de schermen wat analytics data kan verzamelen om van te leren. O ja: en last but not least: ik wilde push notificaties toevoegen om gebruikers te kunnen bereiken zodra er een nieuwe post live is gegaan. Net echt allemaal!
En hoe is dat gelukt?
Dat laatste ging gelukkig prima: Flutter apps zien er door het MAterial-design gewoon standaard al heel erg mooi uit. Ok, ik geef toe dat ik geen designopleiding gedaan heb en dat die huisstijl echt nog wel wat mooier kan, maar het kan ook zeker vele malen lelijker al zeg ik het zelf! Voor een MVP is het in elk geval zeker te pruimen, en het ziet er sowieso al tien keer beter uit dan de eerste versie van mijn app in Ionic.
En die push-notificaties?
Het implementeren van push-notificaties is ook even een gepuzzel, maar met dank aan het fantastische platform Firebase is ook dit uiteindelijk een hele degelijke oplossing geworden. Het werkt als een trein en aan de codekant is het supereenvoudig om een goed systeem aan je app toe te voegen. Hier zat de uitdaging vooral weer aan de kant van Wordpress, omdat je daar compleet afhankelijk bent van de plugins die anderen voor Wordpress hebben geschreven. Ik heb een plugin gevonden die voor 90% voldoet (hij kan alleen geen click_action: FLUTTER_NOTIFICATION_CLICK meekrijgen, waardoor de notificatie niet direct de juiste functie triggert als je erop klikt). Toch werkt het goed genoeg, waardoor ik nu zonder extra handeling een notificatie stuur naar iedereen met de app op zijn telefoon. En dat is toch best wel vet, al zeg ik het zelf!
Wat was het moeilijkst?
Meer moeite had ik met het uitpakken van de Wordpress-API en het goed inregelen van de state van je widgets. Dat komt vooral omdat je hier met asynchrone code werkt (het duurt even voordat je een respons hebt) en je die wel soepel moet uitpakken en opslaan in je app. In dit geval had ik liever dat ik met mijn vertrouwde Python aan het werk was, maar ja, je kunt niet alles hebben. Ook was het nog best een uitdaging om die infinite scroll in te bouwen, maar ook dat is uiteindelijk gelukt. Het is een paar avondjes pielen, maar des te groter is de voldoening als je dan aan het eind van de dag je app werkend in handen hebt op je telefoon. Victory!
Wat zijn de belangrijkste lessen?
Het belangrijkste dat ik heb geleerd is dat ik nu echt werkelijk alles kan maken wat ik maar wil! Er zijn natuurlijk grenzen in hoe ver ik wil gaan, maar ik denk oprecht dat ik samen met Flutter en Stack Overflow in elk geval de middelen heb om elk idee voor een app kan verwezenlijken in een werkende versie die de hele wereld kan downloaden in de app-stores. Ik heb dan wel nog geen app gepubliceerd voor iOS, maar ook dat is een fluitje van een cent met dit prachtige framework (ware het niet dat dat fluitje tweeduizend euro kost omdat het Apple is, maar toch…)
Daarnaast was dit een perfecte les in frontend-development, API management, state control en het beheren van releases en live gaan van productie. Dit is sofware development van A tot Z, en dat kan ik iedere data scientist, ontwikkelaar of programmeur aanraden.
Wat zijn de next steps
Hoewel ik nog tientallen gave ideeën heb om deze Wateengast-app uit te breiden, is nu toch het moment gekomen om de ontwikkeling van dit kindje on hold te zetten. Mijn nieuwe project gaat namelijk een grote worden! Althans dat hoop ik, en die potentie is er zeker. Ik heb namelijk ook een website over de voordelen van stoppen met alcohol (Alcoholvrijheid.nl), en voordat iedereen strak in januari weer een maandje of langer gaat stoppen, wil ik een app in de playstore hebben liggen die voor mensen kan bijhouden hoe lang ze al gestopt zijn, hoeveel geld ze bespaard hebben, welke voordelen ze hebben vrijgespeeld, etcetera.
Dat wordt vast weer een hoop gepuzzel, maar samen met mijn nieuwe vrienden Flutter, Dart en Firebase ga ik daar ongetwijfeld weer vele avondjes plezier aan beleven. Binnenkort lees je daar meer over op deze site!
Tenslotte voordat je gaat:
Hier natuurlijk nog de belangrijkste links van dit verhaal. Via deze link kan je de app downloaden en installeren in de play store, en dit is de link naar alle belangrijkste code in Github. Geniet ervan, en als je nog vragen, tips of ideeën hebt: ik hoor ze graag via contact@reinonlein.nl!
Dit is er eentje waar ik echt trots op ben! Voor het eerst in mijn leven heb ik namelijk iets geprogrammeerd waar ik daadwerkelijk de levens van mensen mee kan verbeteren. Goed, ik zal er echt geen Nobelprijs voor krijgen hoor, maar de dankbare woorden die ik erover te horen krijg zijn soms echt hartverwarmend. Maar goed, even terug naar het begin. Wat heb ik dit keer gemaakt?
Het doel: een stoppen-met-alcohol-tracker rond mijn site Alcoholvrijheid.nl
Toen ik bijna 3 jaar geleden mijn laatste biertje dronk, had ik nooit verwacht dat ik daar zo'n ontzettend profijt van zou gaan beleven. Mijn plan was een jaartje zonder drank, maar een leven zonder alcohol beviel me zo goed dat ik uiteindelijk nooit meer een druppel heb aangeraakt. Toen ik daar dit artikel over schreef, ontdekte ik in Google Analytics dat dit artikel bijzonder goed werd gelezen. Kennelijk is daar veel vraag naar, en dus begon ik spintaan mijn nieuwe website: Alcoholvrijheid.nl. In 2020 schreef ik daar op mijn dooie gemakje elke week een nieuw stukje voor, totdat ik op een gegeven moment het app-framework Flutter ontdekte. Dit opende plotseling prachtige nieuwe deuren!
Toen ik stopte met alcohol, had ik namelijk dolgraag een app gemaakt die allemaal lollige statistiekjes voor me bij zou houden, zoals hoeveel geld je had bespaard, hoeveel kratten bier ik had laten staan, misschien zelfs hoeveel badkuipen en meer van dat soort ongein. Zo'n app was er natuurlijk niet, maar het idee bleef me altijd bij. Toen ik Flutter eenmaal in de vingers kreeg, kwamen deze ideeën plotseling binnen handbereik en dus werd dit een van de eerste apps die ik maakte. Mijn tweede om precies te zijn, naast de eerste eigenhandige remake van mijn Wateengast-app.
Flutter maakt apps bouwen pas écht leuk
Voordat ik Flutter ontdekte had ik wel eens met Android Studio en Java lopen klooien, maar pas vanaf de dag dat ik Flutter heb leren kennen is het maken van apps pas écht leuk geworden. Die widget-tree in combinatie met hot-reload maakt het bijna een artistieke ervaring en dat is simpelweg een genot om te doen. Voor je het weet is het diep in de nacht en sla je jezelf voor je kop dat je niet eerder naar bed bent gegaan, maar als je de volgende ochtend het resultaat van je nachtelijke programmeerwerk in handen hebt is het dat slaaptekort stiekem toch echt meer dan waard.
Deze app gaat door waar ik bij Wateengast gestopt was
De opzet van deze app was zoals die van mijn Wateengast-app (zie mijn andere projecten), maar dan uitgebreid met een hoop nieuwe functies. De belangrijkste zijn natuurlijk het hele accountbeheer, het gamification-element in de vorm van prestaties, en natuurlijk de notificaties die gebruikers bij hun mijlpalen ontvangen.
Accountbeheer met Firebase
De complete back-end van deze app draait uiteraard op het briljante Firebase-platform. Nou ja compleet: de artikelen haal ik gewoon binnen via de Wordpress-API, maar het complete authenticatieverhaal is perfect in te richten met Firebase. Mensen kunnen een account aanmaken, inloggen, en vervolgens hun stopgegevens invoeren die dan weer opgeslagen worden in de NoSQL Firestore database. Dat werkt als een trein en het gebruik valt vooralsnog ruim binnen de gratis bandbreedte van de riante free tier die Google gratis weggeeft. Voorlopig kan ik dus heerlijk blijven genieten van deze mooie diensten, voordat ik ook maar een cent hoef te betalen.
Gamification met prestaties
Het volgende vernieuwende element dat ik heb toegevoegd is de mogelijkheid om prestaties vrij te spelen. Als iemand nu bijvoorbeeld 10 dagen niet drinkt krijgt ie een vrolijke pop-up te zien met lovende woorden, waardoor het alleen maar leuker is om vooral zo goed bezig te blijven. Het is heel leuk geweest om dit systeem uit te denken en uit te werken, en als het dan eenmaal blijkt te kloppen zie je dat het ook echt heel motiverend kan werken. Zeker in combinatie met het volgende.
Notificaties bij de mijlpalen
Ik had al eerder uitgevogeld hoe ik notificaties naar een telefoon kon sturen, maar dat dit zo'n breinbreker zou worden had ik niet verwacht. Ik wilde namelijk bij elke vrijgespeelde prestatie een bericht laten sturen, maar dat kan dus ook pas over een aantal maanden zijn. De oplossing was om zogenaamde local notifications op de telefoon in te laten plannen. Die werken dan als een soort wekker en gaan af op het moment als de gebruiker een mijlpaal bereikt. Een extra uitdaging was om die allemaal opnieuw te laten inplannen als de gebruiker zijn gegevens aanpast, maar ook dat is na een hoop gepuzzel allemaal feilloos gelukt. Het resultaat mag er zijn, en zelfs ik word nog steeds blij als ik wakker word met zo'n complimentje op mijn telefoon.
En dan deze mijlpaal: publiceren voor iPhones!
Toen ik de app draaiend had in de Android Playstore zag ik dat er zeker vraag voor was. Van meerdere mensen kreeg ik te horen dat ze het zo jammer vonden dat ie alleen voor Android te downloaden was, en wie ben ik om daar dan niet naar te luisteren? Helaas is het een stuk lastiger om voor iPhone te publiceren, maar zeker niet onmogelijk. Mijn grootste hobbel zat hem eigenlijk in de hardware. Om voor iOS te publiceren, heb je een Mac nodig en eigenlijk ook een iPhone om de boel goed te kunnen testen. Die Mac heb ik gelukkig tijdelijk kunnen lenen van een vriendin, en die iPhone leende ik wat later van mijn werk. Nu had ik een paar maanden de tijd om dit te fixen, maar gelukkig was dat ruim lang genoeg dankzij de onmogelijke awesomheid van Flutter: one codebase!
Goed, je bent nog wel een paar avonden zoet om alle plugins ook goed werkend te krijgen op iOS, maar dankzij Flutter heb je redelijk eenvoudig je Android app voor iOS verpakt. En dan kan je met de Appstore gaan vechten. En betalen, man... Waar Google eenmalig een bijdrage van 27 dollar vraagt aan developers, vraagt Apple gewoon schaamteloos 99 euro per jaar! En dan heb ik dus nog geeneens hardware gekocht. Maar goed, een paar ribben uit mijn lijf armer en een hoop gekloot met screenshots en metadata in de appstore was daar eindelijk de witte rook van Apple: your app is ready for sale!
En nu vrolijk uitbouwen
Nou ja, sale: ik blijf mijn app natuurlijk helemaal gratis uitdelen aan de wereld want de grootste vreugde aan dit avontuur is natuurlijk dat ik werkelijk mensen heb die mijn product dankbaar gebruiken. Dat is toch priceless! Helemaal als je je bedenkt dat ik daadwerkelijk een steentje bijdraag door mensen te helpen vrij te worden van een ongezonde gewoonte die ervoor zorgt dat je niet het beste uit jezelf kunt halen.
Voor nu heb ik de database in elk geval aangesloten op mijn eigen cloud datawarehouse in BigQuery, zodat ik ook leuk kan bijhouden hoe mijn gebruikersbasis langzaam doorgroeit met de tijd. Ter indicatie: op dit moment (na anderhalve maand) heb ik zo'n 200 gebruikers mogen verwelkomen, en daar ben ik best trots op! Zeker met zometeen Dry January voor de deur denk ik dat dit echt nog wel een veelvoud van dit gaat worden. Gaaf hoor!
En dus blijf ik mijn app nu vooral rustig uitbouwen en verder perfectioneren. Ik heb nog tal van nieuwe features in gedachte, dus wie weet waar dit schip strandt! De reis alleen al is net zo leerzaam als dankbaar gebleken. Meer van dit graag!
Het zal inmiddels geen geheim meer zijn dat ik een groot fan ben van de producten van Google. Elders op deze site lees je al een ode aan de fantastische services van het platform Firebase, en dat is dan nog maar een fractie van al het moois dat ze voor nerds/analisten/data scientists zoals ik in de koker hebben. Onder de vlag van Google Cloud Platform hangt nog zo ontzettend veel moois om te ontdekken. En dat in veel gevallen helemaal voor niets!
Het is namelijk zo dat Google echt onwijs riant is met de free tier die op de meeste producten zit. Dat betekent dat je bijna alle diensten in volledige functionaliteit kunt gebruiken, mits je binnen de vastgestelde limieten blijft. Ga je daaroverheen, dan betaal je een paar centen (al heb ik dat zelf nog nooit hoeven doen). En doordat die limieten in mijn beleving echt heel schappelijk hoog zijn, kan je hier volledig los voor al je hobbymatige projecten. Hoe vet is dat!
Denk hier bijvoorbeeld aan gratis storage, computing engines, scheduling van queries, etcetera etcetera. Echt, van veel dingen zou ik niet eens weten wat ze doen, maar ik kan bij alles niet wachten om ermee aan de slag te kunnen. Zolang je geen hele gekke dingen gaat doen kom je echt een heel eind met alle gratis ruimte en rekenkracht, dus ik zou zeggen: maak er snel gebruik van als je dat niet al doet!
Voordelen
Nadelen
Als je net zoals ik niet over een bedrijf met een leuk IT-budget beschikt, is de kans groot dat je zelf geen datawarehouse in huis hebt. En dat is zonde, want met een datawarehouse kan je enorm leuke dingen doen! Je kunt er namelijk al je data in opslaan, en dat heeft mee usecases dan je denkt. Zo heb ik bijvoorbeeld allemaal google analytics data over de gebruiksstatiestieken van mijn websites en mijn apps, maar ook een stel IoT-sensoren die om de zoveeltijd hun metingen naar met terug willen roepen. Al die data moet natuurlijk wel ergens landen, en gelukkig is ook daar natuurlijk Google weer je vriend.
Met BigQuery geeft Google je namelijk een volledig serverloos datawarehouse in de cloud. Helemaal voor niets, mits je binnen de riante perken van de free tier blijft. Zelf ben ik daar nog nooit overheen gegaan, terwijl ik inmiddels toch al aardig wat data in mijn tabellen pomp. En die data haal je er met het grootste gemak weer uit, want die software van BigQuery werkt als een trein.
Een van de leukste features vind ik dat je ook queries kunt schedulen, en daarmee weer compleet nieuwe tabellen kunt maken. Ik doe dat bijvoorbeeld op de aggregaties van de gebruikers van mijn app, waardoor je precies door de tijd het verloop van al je data kunt volgen. De naadloze integratie met Firebase is hier natuurlijk ook weer absolute key, want die stuurt zonder omkijken alle data uit mijn NoSQL collectie naar een fraaie tabel in BigQuery. Een beetje handigheid met SQL doet de rest :-)
Voordelen
Nadelen