Skip to content

Instantly share code, notes, and snippets.

View AlexVanderbist's full-sized avatar
🌚
Dark mode propaganda account

Alex Vanderbist AlexVanderbist

🌚
Dark mode propaganda account
View GitHub Profile

Vandaag begon een beetje al een luie, grijze vrijdag. Ik had nog wat kleine issues in te halen en het werd tijd dat ik mijn werkcomputer eens opkuiste. De voorbije maanden heb ik zo goed als iedere package van de GitHub repo binnengehaald inclusief nog enkele kopieen voor tests. Tijd om wat orde op zaken te zetten.

Tijdens de middag eten we hier meestal allemaal samen. Vaak zorgt dat ook wel voor de nodige creatieve input. Je hoort waar andere mensen mee bezig zijn, krijgt wat feedback op je eigen projecten/opdracten en het belangrijkste van al: het is een beetje een break van 8 uur per dag programmeren. Deze middag werd er gepraat over het geheime project. Aangezien Electron eigenlijk niet veel meer is dan een minimale browser is het belangrijk om die "browser feeling" zoveel mogelijk weg te werken. Zo werken we met Vue om alles realtime en snappy te maken en een globale store via Vuex om de verschillende onderdelen in sync te houden met elkaar. Bijvoorbeeld wanneer iets aan het laden is in een onderdeel mo

Dag 2 van het geheime project 👁.

Electron is echt meer en meer een aangename verrassing aan het worden. Eens de basisstructuur van je app is uitgewerkt en geprogrammeerd kan je eigenlijk volledige cross-platform apps maken met de frameworks die je al vanbinnen en vanbuiten kent. In ons geval zijn een hondertal lijnen genoeg om vanuit Electron een taskbar icoontje toe te voegen en een nieuw browser venster te openen waarin de applicate draait. Super simpel.

Ondertussen hebben we hier ook een nieuw Slack kanaal voor de mensen die mee werken aan het project. Het volledige team bestaat nu uit 2 collega's van hier, een developer van Duitsland en ik. Als we aan dit tempo doorgaan is er misschien een werkende demo tegen het einde van mijn stage... Hopelijk want hierna zal ik genoeg werk hebben aan mijn eindwerk.

Vanaf vandaag duik ik volledig in de wereld van Electron. Het "geheime project" is een soort native applicatie om servers te beheren via een zekere externe service. Uiteraard heeft deze externe service een online controle paneel maar het is net die functionaliteit die we in een native app willen gieten. Dit gebeurt dus via Electron. Een gemakkelijke manier om cross-platoform apps te maken eigenlijk gewoon zijn opgebouwd als webapps. Dit gebeurt m.b.v. de Chromium JavaScript engine.

Het eerste deel van de dag moet ik mij nog een beetje inwerken in de nieuwe workflow. Het is redelijk verwarrend aangezien er een Vue webapp draait binnen Electron dat op zijn beurt NodeJS is. Ondanks dat de applicatie zelf een Vue app is zijn er toch enkele API's om te communiceren met het onderliggende Electron process en dus ook het OS zelf. Hoe dat exact in zijn werk gaat heb ik dus 's ochtends uitgezocht.

De rest van de dag heb ik enkele simpele feature toegevoegd die op de to-do lijst stonden. Binnen de Vue app wordt er gew

Zoals verwacht is er 's nachts al wat feedback gekomen op de nieuwe versie van het permission pakket en gelukkig maar ook. Blijkbaar zat er nog een enorme bug in waardoor heel het pakket eigenlijk gewoon niet meer werkte. Daar beginnen we dan vandaag ook mee.

Terwijl ik de ene issue sluit staat er vaak al weer een nieuwe klaar. Ook nu is dat het geval; een feature request voor een Vue.js plugin en een bug in de uptime-monitor. Wanneer die allebei afgerond zijn kan ik eindelijk beginnen aan het geheime project.

Dat neemt dan ook de rest van mijn middag in beslag. Grotendeels om te kijken hoe het project nu in elkaar zit, wat het build proces is, enzovoort... Wanneer ik eindelijk aan het echte werk begin zit ik al onmiddelijk een uur vast op een gekke quirk van Vuex (state management). Dat zal dan toch voor morgen zijn.

Mijn voorlaatste week wordt al onmiddelijk goed ingezet met... GitHub issues! Dat neemt ook weer het grootste deel van de ochtend in beslag.

Na de middag hebben we eindelijk de tweede versie van het permission pakket gereleased (wat waarschijnlijk voor meer issues gaat zorgen morgen, het is een nooit eindigende cyclus...). Ik ben eens benieuwd of daar wat goede feedback op komt. Ikzelf ben allesinds al enthousiast om het voor mijn eindwerk te kunnen gebruiken.

De rest van de middag werk ik nog een demo af voor een ander opensource pakket, iets dat ook al lang op het programma stond. Volgende week moet er enkel nog iemand met mij over het design gaan en dan is dat pakket ook weer mooi afgewerkt samen met het einde van mijn stage.

Tegen de late namiddag ben ik door mijn to-do lijst heen. Gelukkig zitten ze hier zelf ook niet stil. Mijn stagebegeleider zelf is samen met wat andere mensen bezig met aan een native applicatie voor een bekende server management oplossing. Hier is nog wel wat werk aan dus dat zou

Dag 50! Nog 10 dagen en het zit er hier op voor mij. Ik zal het nog wel gaan missen...

Kat-update: iemand van een van de bedrijven op het gelijkvloers is ze vanochtend komen ophalen. De katin zag er niet superblij uit in een kleine kooi maar het is voor haar eigen bestwil. Hopelijk zie ik nog wat foto's voorbij komen van de kittens voor ik hier weg ben.

Voor vandaag staat er eigenlijk niet veel meer op het programma. Ik begin met een paar issue van gisteren waarop antwoord is gekomen en daarna werk ik verder aan de refactor van de Laravel Permission tests. Rond 11u was alles eindelijk rond en kon ik pushen. Door wat kleine aanpassingen zijn we van 20% coverage naar 90% coverage gegaan! Wanneer mijn stagebegeleider volgende week terug is kunnen we de v2 taggen. Dan is het enkel nog hopen dat er niets faliekant kapot is gegaan in de update...

De rest van de dag schuim ik GitHub af op zoek naar nieuwe issues. Na 50 dagen issues begin ik de meest populaire pakketten van buiten te kennen. Veel vragen en problem

De kat zit er nog steeds! Ik kwam ze gisterenavond nog even tegen en vanochtend zat ze er nog. Hoewel ik mijn dagelijks bezoekje aan de kat wel apprecieer hoop ik echt dat iemand haar wil meenemen naar huis. Ik heb al voorgesteld om ze op kantoor binnen te laten als mascotte maar dat zagen ze hier toch niet helemaal zitten... Onbegrijpelijk.

Vandaag staat de rest van de Laravel Permission tests op het programma. Terwijl ik die aan het refactoren was ben ik ook nog een aantal andere "problemen" tegengekomen. Het goede aan opensource is dat iedereen kan meehelpen en nieuwe features toevoegen maar dat is tegelijkertijd ook een beetje een nadeel. Zelfs met services zoals Style CI die codestyle nakijken en verbeteren merk ik dat een aantal pakketen een beetje een warboel worden wanneer feature na feature wordt toegevoegd.

Rond de middag was ik het permission pakket even beu en begin ik aan mijn dagelijks lijstje issues. Vaak sturen mijn collega's mij GitHub issues door, maar

@AlexVanderbist
AlexVanderbist / blog_day_48.md
Last active April 7, 2017 13:47
Blog dag #48

Het kantoor waar ik al 48 dagen stage loop sluit aan op een aantal andere kantoorgebouwen en huizen met een soort gemeenschappelijke binnenplaats/tuin in het midden. Toen ik vanochtend aan kwam zat daar plots een zwangere kat. Aan de groep mensen er rond te zien is ze geen regelmatige bezoekster. Blijbaar zijn haar baasjes verhuisd en hebben ze haar achtergelaten... Best wel zielig, gelukkig zijn hier heel wat vriendelijke mensen die een oplossing zoeken.

Met een kwartiertje vertraging door de kat begin ik vandaag met een snelle patch voor een update die ik eergisteren online had gezet in het DB dumper pakket. De bijhorende issue had te maken met verschillende character set encodings te ondersteunen in database dumps in het backup pakket. Ik had de aanpassingen al online gezet in het DB dumper pakket, maar nog niet in het backup pakket, met alle gevolgen van dien.

Gisteren vroeg een van mijn collega's hier of het niet "saai" is om heel de dag aan zo'n issues te werken maar het tegendeel is echter waar. Omda

Vandaag staan browser tests op het programma met Laravel Dusk. Het leuke aan deze stageplek is dat iedereen even hyped is over nieuwe ontwikkelingen in verband met web development. Zo kwam Taylor Otwell onlangs op de proppen met Laravel Dusk, een slimme combinatie van een aantal opensource pakketen zoals phpunit en php-webdriver van Facebook. Dit laat ons toe heel gemakkelijk tests te schrijven die de features echt testen in de browser, in dit geval chrome.

Voor mijn stagebedrijf is een veel voorkomend probleem dat mensen hun wachtwoord niet kunnen resetten binnen in het CMS. Op de een of andere manier is er altijd wel een feature binnen ieder project die altijd voor problemen zorgt. In dit geval omdat Laravel zelf vaak wijzigingen doorvoert aan de password reset functionaliteit en omdat ze hier veel van die functionaliteit zelf hebben overschreven. Om to the point te komen: dit is een ideaal geval voor browser tests.

Om heel de reset flow te testen hebben we eerst nog wel een aantal dingen nodig. Om te b

Mijn derdelaatste week zet zich goed in met een platte band in de mist. Dan maar te voet. Deze week is mijn stagebegeleider op verlof, er staan gelukkig (zoals altijd) wel wat issues klaar op GitHub.

Ik begin vandaag met de medialibrary. Daar heeft iemand wat foutjes gevonden in de caching waardoor alles eigenlijk veel efficienter kan. De code zelf is een kleine aanpassingen, slechts een tiental regels maar er moet altijd goed getest worden. Heel veel mensen gebruiken deze packages op heel veel verschillende manieren. Vaak passen ze ook kleine delen aan dus er moet zoveel mogelijk gezorgd worden dat er niets fundamenteel veranderd of kapot gaat voor sommige workflows. De unit en integration tests zijn daar een super hulpmiddel bij. In combinate met semver en GitHub branches/PRs kom je al redelijk ver.

Toch is de tweede issue iets waarbij ik blijkbaar een bepaalde usecase heb gemist waarbij het image manipulations pakket een hoop tijdelijke bestanden soms niet opkuist. Na weer heel wat gepruts en getest ben