Ik help in mijn vrije tijd Refu Interim met, euh, database- en computerdingen.

Hoe gaat zoiets? Het is Batahlan, jaren geleden, en Xavier van cirQ vraagt of ik iemand ken die een database zou kunnen maken, en ik vraag wat rond, en terwijl ik uitleg aan een collega die dat eventueel wel zou kunnen doen, zoek ik zelf naar de manier waarop het zou kunnen gemaakt worden, en voor ge het weet, heb ik zelf een hele toepassing in mekaar gestoken in Django.

Het is al –miljaar!– decennia geleden dat ik voor mijn beroep geprogrammeerd heb, en ik ga mij geen enkel moment van de dag een ontwikkelaar noemen, maar zo’n klein toepassinkje, dat is toch eigenlijk geen programmeren, juist? Toch? Hé?

Enfin bon, we zijn dan een aantal jaar later en ik loop tegen de grenzen van waar ik goesting in heb aan. Ja, ik wéét wat er allemaal anders en beter zou moeten. Een moderne toepassing anno tegenwoordig, dat doet allerlei dingen die mensen normaal vinden, maar waar toch wel wat werk aan zou geweest zijn, als ik mijn ding zou verder ontwikkeld hebben.

Django als een headless ding gebruiken, daar een React of Vue frontend op zetten, bladiebla, jaja, maar doe het maar eens als ge wel weet hoe dat in theorie moet, maar als ge géén moderne ontwikkelaar zijt.

Ik heb echt waar serieus negatieve goesting om te brielen met docker of iets gelijkaardigs, een ecosysteem van tools bovenop tools bovenop tools op poten te zetten waarvoor ik de helft van het internet moet downloaden, en dan te werken in dingen die door die tools vertaald worden naar iets anders dat door nog meer tools naar nog iets anders vertaald wordt, en dan ergens in een pipeline terechtkomt waar, als alles goed gaat, uiteindelijk iets bruikbaars uitkomt.

Moderne ontwikkelaars, denk ik, zijn gelijk die kikkers die in een kookpot gestoken worden die langzaam langzaam warmer wordt. Deze rant is van 2016, en ik denk écht niet dat het zes jaar later (!) beter geworden is.

Lang verhaal kort: ik heb een specificatie geschreven van wat ik graag zou gehad hebben van een nieuwe toepassing, dat doorgegeven aan een Echt Bedrijf met Echte Ontwikkelaars, en na een aantal vijven en zessen hebben we bij Refu Interim een nieuwe toepassing. Er is wel nog werk aan, en Echte Bedrijven met Echte Ontwikkelaars zijn natuurlijk geen zotten zoals ik die na hun uren dingen concurrentievervalsend gratis doen.

En dus, om de kosten mogelijk te drukken voor als er kleine aanpassingen zouden zijn, zou ik wel eens kunnen hier en daar toch wat werken aan die wat meer moderne toepassing. Ik ga daar eerlijk in zijn, ik kijk daar niet echt zeer hard naar uit. ‘t Is met php, en dat is buiten wat gebriel met WordPress al geleden van euh 1998? 1999? Ik heb nog nooit composer in gang gesleurd, ik heb nog nooit met Laravel gewerkt. Neen, ‘t is allemaal niet zó ingewikkeld ongetwijfeld. Maar blurgh. Toch liever gelijk op het werk samenwerken met mensen die weten waar ze mee bezig zijn en elk zijn kant van het werk doen. 🙂

Eerste taak: door een stuk of dertig issues gaan en inschatten of het bugs zijn, feature requests, vragen, of iets daartussenin. Zien of dingen die kapot gemeld zijn reproduceerbaar zijn. Mogelijke oplossingen bedenken. En dan (urgh andermaal) zien wat ik zelf zou doen en wat niet.

On a slightly related note: er loopt in de toepassing die gemaakt is iets verkeerd met de rapportering. In de toepassing die ik gemaakt had, maakte ik als het nodig was gewoon een view bij met een rechtstreekse query naar de database. Nu is dat niet meer zo evident. Er zijn allemaal repositories voor de verschillende objecten, en daar wordt er dan allerlei propers gestructureerd gedaan. Ik ben een oude mens, ik wil op een bepaald moment gewoon iets doen van

select
    r.name refuInterim, year(v.created_on) jaar, v.status status, p.gender gender,
    p.country land, l.name statuut,
    count(v.id) aantal
from volunteer v
    join refu_interim r on v.refu_interim_id = r.id
    join personal_information p on v.id = p.id
    join legal_situation l on p.legal_situation_id = l.id
group by refuInterim, jaar, status, gender, land, statuut

en dat dan naar een spreadsheet sturen waar ik wel zelf mijn pivot tables zal maken. Normaal gezien doe ik dat allemaal in Excel (leve Excel, ik houd van Excel), maar nu deed ik het in de rapte in Google Sheets.

…en zo werd het toch nog een fijne avond, want schets mijn verbazing en aangename verrassing! ‘t Is allemaal artificiële intelligentie!

Ja, het was al zó lang geleden dat ik naar Google Sheets gegaan was, dat ik nog niet gezien had wat voor propere suggesties Sheets doet als ik een lange CSV laad. Ik krijg een hele reeks voorstellen om de data op te kuisen, nog voor ik er maar aan denk om er een draaitabel in te steken. Sheets herkent dat “land” een geografische aanduiding is, stelt meteen voor om “Verenigd Koninkrijk” en “UK” en “United Kingdom” en “Jemen” en “Yemen” tot één waarde te herleiden. Ziet “Fillippijnen” staan en vraagt mij of ik wel zeker ben dat dat een land is.

Leutig.

Morgen nog wat tiketten doornemen en dan overleg en briefing. Dát doet ik dan wel weer oprecht graag.