Vide coding

Vibe coding is een nieuwe manier van software bouwen met behulp van AI. In plaats van zelf elke regel code te schrijven, beschrijf je simpelweg welke functionaliteit je wilt hebben, en de AI genereert deze voor je. Je test wat er is gemaakt, en als het goed werkt ga je door naar de volgende feature. Werkt het nog niet helemaal, dan vertel je de AI wat er moet worden aangepast, en past hij de implementatie aan.

Het verrassende is dat je de code niet eens hoeft te bekijken, tenzij je dat zelf wilt. Je richt je op de ideeën, de flow en de gebruikerservaring, en je vertrouwt erop dat de AI de technische details afhandelt. Het is een snelle, intuïtieve manier om software te creëren, waarbij je in de creatieve zone blijft in plaats van te verdwalen in syntax.

Voor Mushroom Mayhem ben ik jaren geleden begonnen met alles zelf te bouwen, er was toen nog geen AI, maar een tijdje geleden ben ik overgestapt op vibe coding. Alle ontwerpen, de verschillende speltypes, de schermen, ze zijn nu allemaal via vibe coding gemaakt. De kern van het spel staat stevig, dus ik dacht: alles wat ik hier bovenop bouw brengt maar een beperkt risico met zich mee. Vooralsnog ben ik tevreden met het resultaat. De ontwikkeling gaat erg snel. Fouten komen geregeld voor, maar zijn meestal eenvoudig te herstellen.

Mijn huidige vibe-codingtaak is het toevoegen van een shop aan het spel, zodat spelers eetbare paddenstoelen kunnen kopen om te onthullen wat er achter een veld zit. Dit is tot nu toe mijn grootste vibe-codingproject, en de voortgang ziet er veelbelovend uit.

Schaap

Kwaad schaap!De kinderen waren lekker aan het spelen, de moeders lekker social aan het kwebbelen en ik ging lekker een rondje hardlopen. Ik doe dat wel vaker, maar dit keer was het ietsje anders als normaal. Vanaf een groot skatepark loop ik een rondje van ongeveer 5 kilometer door de buurt. Het zijn allemaal bergpaadjes, met af en toe een stukje asfalt. Na ongeveer een kilometer kwam ik een groep schapen tegen. Gewoon op de openbare weg. Het waren er ongeveer 15 denk ik, en vijf daarvan waren jonkies. Leuk. Ik bleef eventjes kijken, en pakte mijn telefoon voor een fototje. Een schaap kwam naar me toe, en ik dacht even, ‘Oh, wat leuk, ik zal hem aaien’.

Opeens zag ik het schaap in een veel hogere definitie, terwijl de rest van de omgeving vervaagde. Het helemaal geen schaap, maar een ram. Ik zag alleen nog maar die ene ram, en dan met name zijn twee enorme hoorns. Oh. Met de snelheid van het licht begreep ik dat hij zijn nageslacht wilde verdedigen (tegen mij), tegelijkertijd wist ik dat bij een confrontatie mogelijk lichamelijke schade opgelopen kon worden, en dat ik maar beter weer verder kon lopen. Ik begon weer te lopen, en de kwaaie ram kwam achter mij aan. Wat?! Ik versnelde eenvoudig dankzij de adrenaline en het ram stopte gelukkig met zijn achtervolging.

Het resultaat, een saaie hardloop route levert toch nog een leuk verhaal op, en een adrenaline boost zo heel af en toe moet ongetwijfeld ook gezond zijn.

Ex

Mijn schoonmoeder haar appartement wordt geverfd. Tijd om ongewenste plankjes en schroeven van de muur te halen, zodat de hele muur mooi strak is. Ook zijn er alvast wat nieuwe gaten in de muur geboord om dingen te kunnen verplaatsen naar een betere plek. Ana/schoonmoeder wilde ook twee schilderijen aan de muur in een van de slaapkamers. Deze waren ooit door de schoonmoeder uit Madrid meegenomen en lagen al die tijd netjes en veilig in de kast. Ze waren gemaakt door een tante van Ana, en het waren twee schilderijen met Chinese tekens/teksten erop.

Het boren ging goed. Plastic ding in de muur en een haakje erop geschroefd. Hierna tijdelijk de schilderijen opgehangen, zodat geverifieerd kon worden of het allemaal goed was. Hé, bij het eerste schilderij staat ‘ana maria’ op de achterkant geschreven. Grappig. Toen zag ik het andere exemplaar… ‘antonio’? Dat is de ex van Ana. Huh?! Soms is een gebeurtenis te bijzonder om er verder niets mee te doen. Dit was duidelijk zo een gebeurtenis.

Hey Ana, ik heb de twee schilderijen in de slaapkamer van je moeder opgehangen, degene met de Chinese tekst voor Ana Maria en Antonio.

Toen ik het aan Ana vertelde, schoot ze direct in de verdediging. Het was een werkje van haar tante, het betekende helemaal niets, het waren onleesbare Chinese tekens, ze had verwacht dat ik het nooit zou merken, blahblah. Ook mijn schoonmoeder was zich van geen kwaad bewust. Het hele verhaal was voor Ana en mijn schoonmoeder blijkbaar helemaal normaal. Dat mijn schoonmoeder een relikwie van 20 jaar geleden van een ex van Ana, meeneemt tijdens een trip van Madrid naar Las Palmas, het jaren in de kast bewaart en dan prominent in de slaapkamer hangt, dat was blijkbaar niet vreemd. Tsja. Ook Ana vond het gewoon normaal. Het ging om de artestieke waarde van het werk en meer niet. Jaja.

Uiteraard heb ik gedurende de dag geregeld gerefereerd aan het schilderij/de situatie van Antonio. Toen ik het liet vallen toen we bij een vriendin waren, werd direct duidelijk dat ik niet de enige was die het vreemd vond. Zelfs de AI vond het duidelijk een vreemde situatie.

Nu is het hele verhaal beladen. Weghalen kan niet, want het was allemaal zo onschuldig, en totaal niet vreemd, dus waarom zou je er iets aan doen. Laten hangen, nou ja, als de familie graag de naam van Ana en een ex aan de muur wil hebben, in onleesbare chinese tekst, tsja, dan kan dat natuurlijk. Blijkbaar is alleen de artistieke waarde van belang, en deze schilderijen zijn blijkbaar het enige beschikbare materiaal met voldoende artistieke waarde. Bij mij komen vooral de typische schoonmoeder vooroordelen naar boven.

De schoonmoeder wordt stereotiep afgeschilderd als bazig, onvriendelijk, vijandig, nieuwsgierig, overheersend en over het algemeen onaangenaam. Ze wordt vaak neergezet als de kwelgeest van de echtgenoot, die getrouwd is met de dochter van de schoonmoeder.

AI verwondering

Ik heb gratis een maand lang van een AI gebruik mogen maken. Ik moet toegeven dat ik nog steeds verbaasd ben over hoeveel werk de AI kan doen, en hoe nauwkeurig het precies uitvoert wat ik bedoel met slechts een paar korte instructies. Ik begon met hele kleine taken en ben langzaam steeds grotere opdrachten gaan geven. Mijn gratis maand loopt bijna af, maar ik ben er vrij zeker van dat ik doorga met het betaalde abonnement.

De productiviteitsboost die AI oplevert is enorm. Ik ben jaren geleden gestopt met ontwikkelen omdat het gezinsleven te veel tijd vroeg, en ik de lange blokken ononderbroken tijd kwijt was die ik vroeger had. Ik had altijd een paar uur achter elkaar nodig om me te kunnen concentreren op wat ik aan het bouwen was. Maar nu is ineens één uurtje al genoeg om echt vooruitgang te boeken. Fouten oplossen, wat altijd vervelend werk is, hoeft opeens niet meer, dat doet de AI. Alleen testen en bijsturen. Het is werkelijk fantastisch wat er allemaal kan en het lijkt alsof je een medewerker hebt die flink wat werk van je over kan nemen.

Dag drie

In de eerste twee dagen kreeg ik ontzettend veel werk gedaan. Vandaag vierde men drie koningen in Spanje, dus ik had nog een vrije dag beschikbaar. De derde dag gaf me wat tijd om te testen, tweaken en finetunen. Ik probeerde de app uit om dingen te vinden die niet goed voelden, logica die niet werkte zoals ik verwachtte, en andere kleine issues. Ik veranderde wat afbeeldingen, paste wat gameplay aan en gebruikte de AI om te verbeteren wat ik al had. Drie dagen (en een helder idee van wat ik wilde) was alles wat ik nodig had om van een vijf jaar oud concept naar een mooi uitziend spel te gaan dat me een geweldig gevoel gaf. Ik sta versteld!

Weekendje met de AI

Ik had één weekend zonder de kinderen, dus ineens had ik wat extra tijd. Ik besloot die te investeren in een spelletje waar ik vijf jaar geleden mee was begonnen maar nooit had afgemaakt. Ik gebruikte Copilot AI, dat heel mooi geïntegreerd is met Visual Studio Code.

Eerste twee uur
De eerste paar uur kon ik de AI gratis gebruiken, gewoon om te proeven. En ik heb geproefd. Mijn oude app werd uitgebreid aangepast zodat hij weer zou draaien in een moderne omgeving. Werk dat me dagen had gekost, werd moeiteloos door Copilot gedaan in zeer korte tijd. Alle bestanden waaruit het project bestond werden bijgewerkt, en elke wijziging werd duidelijk uitgelegd. Ik stond versteld.

Eerste volledige dag
Na een paar uur was mijn gratis tijd met de AI op, en nam ik een maandabonnement om verder te gaan. Het niveau van samenwerking dat de AI bood voelde echt waardevol. Het was alsof ik sprak met een collega die aan hetzelfde project had gewerkt. Ik gebruikte de AI om code te beoordelen en te corrigeren, mijn ontwikkelsysteem goed te configureren en mijn iPhone te koppelen voor tests. De AI begreep de vereisten snel en implementeerde ze precies zoals ik het zelf zou hebben gedaan. Het paste zich aan mijn stijl aan. Indrukwekkend.

Tweede dag
Gisteren gebruikte ik de AI voor kleine functionaliteitswijzigingen. Vandaag ging ik een stap verder. De AI creëerde de volledige avonturenmodus, eerst 5 levels, en later breidde het dat uit naar 25. Het implementeerde de achtergrondmuziek en hielp me de instellingenpagina in te stellen. De AI hielp me alle graphics bij te werken. De hoeveelheid werk die werd gedaan, had me in mijn eentje weken gekost.

De app die ik maakte was klein en vrij eenvoudig, maar de bijdragen van de AI lieten me sprakeloos achter. Copilot verhoogde mijn productiviteit enorm. Ik voelde me als een tester wiens feedback onmiddellijk werd opgelost door de AI. Ongelooflijk bevredigend. Gevreesde fouten in projectafhankelijkheden of opstartproblemen veroorzaakten geen stress meer, de AI loste simpelweg elke fout op die verscheen en kreeg de app weer draaiend.

Nog een paar tweaks, en de app kan in de app store geplaatst worden. Wordt vervolgd!…

AI: De volgende stap

A surreal digital landscape representing the rise of AI-generated content. In the foreground, a humanoid AI figure made of glowing code types rapidly on a keyboard, surrounded by floating screens displaying news articles, comments, and videos. Behind it, a vast, chaotic web of data streams and synthetic content floods the internet, blurring the line between real and artificial. The atmosphere is both futuristic and slightly ominous, with a glowing haze and fragmented digital elements.Twee jaar geleden zijn we langzaam begonnen, maar inmiddels komen we echt op gang. Het internet zoals we het kennen wordt steeds sneller gevuld met door AI gegenereerde content: nieuwsartikelen, reacties, video’s.

AI kan gebruikt worden zoals ik het doe, als een soort spellingscontrole, om grammatica te verbeteren en vertalingssuggesties te geven. Vervolgens gebruik ik de input van de AI om mijn definitieve versie te maken. Het resultaat is dat sommige van mijn teksten misschien wat anders aanvoelen dan voorheen; veelvoorkomende fouten die ik vroeger maakte komen niet meer voor. Maar je leest nog steeds mijn teksten, mijn gedachten en mijn gevoelens.

AI kan ook alles overnemen. Ik zou het toegang kunnen geven tot mijn website en het instrueren om wekelijks een (verzonnen) verhaal te posten over het leven, of wat ik op dat moment interessant vind. Ik kan het aantal alinea’s bepalen, het onderwerp, de schrijfstijl, of er een afbeelding bij moet en hoeveel berichten ik wil. Omdat ik wil dat deze blog over mij en mijn leven gaat, zal ik dat niet doen. Maar in andere omstandigheden zou het een goedkope en makkelijke oplossing kunnen zijn om AI in te zetten.

Dit is waar we nu staan. AI biedt eenvoudige manieren om content te produceren. Voorlopig is dat vooral in geschreven vorm, maar video komt er snel aan. Binnenkort zullen de populairste websites gevuld zijn met door AI gegenereerde content, inclusief waardevolle reacties die ook door AI zijn geschreven. We bewegen ons snel weg van een door mensen onderhouden ecosysteem naar een enorme bulk aan door AI gegenereerde informatie die niemand echt nodig heeft, maar goedkoop te maken is.

De toekomst is nog een mysterie, maar het is duidelijk dat het steeds belangrijker wordt om te achterhalen wat echt is, écht echt en niet gegenereerd. Voor snelle ontspanning met leuke content is dat natuurlijk geen probleem; de mogelijkheden zijn eindeloos. Maar voor echte informatie hebben we validatie van waarheid nodig. Er zijn nu al video’s over het repareren van je telefoon die door AI zijn gemaakt en je telefoon helemaal niet repareren. Recepten bevatten giftige ingrediënten, zoals lijm, omdat de AI het uiterlijk van het eindresultaat belangrijker vond. Chatondersteuning via AI die je adviseert om simpelweg een einde aan je leven te maken. AI die wordt ingezet bij sollicitaties en vrouwen systematisch uitsluit. De lijst gaat maar door.

Het internet wordt gebruikt om AI te voeden en te trainen. Naarmate er steeds meer door AI gegenereerde content wordt gepubliceerd, zullen volgende versies van AI, getraind met deze data, waarschijnlijk nog vaker kleine fouten maken.

Het probleem met huidige AI-systemen is dat ze niet in staat zijn om aan te geven dat ze iets niet zeker weten, of toe te geven dat ze iets niet weten. Je krijgt altijd een antwoord, zelfs als dat antwoord fout is. Er is geen manier om te weten of het antwoord juist is, behalve door het zelf op te zoeken en dat is nu juist wat je wilde vermijden door de AI te raadplegen. Mensen willen een snel antwoord en vermijden de zoektocht. Het is een zichzelf versterkende cyclus waarin je uiteindelijk een fout antwoord krijgt, daarop je acties baseert, en dat kan leiden tot een catastrofe.

Zout en schaamte

Zout en schaamte!Vandaag hoorde ik een grappig verhaal van een collega. Hij lag op het strand, en een onbekende hond begon hem te likken. Een grappig verhaal, en voor mij een inspiratie voor een nieuw liedje. Aan een AI vroeg ik om een song tekst, gebaseerd op de volgende context (het verhaal van mijn collega, een onbekende hond had hem gelikt, een beetje aangedikt):

  • Zonnebaden op het strand, dagdromen. Ik merk dat iemand nadert. Een zachte aanraking. Ik hoor haar ademhaling, ik twijfel of ik droom. Wellicht worden mijn fantasieen waarheid.
  • Zonnebaden op het strand, dagdromen. Ze raakt me aan, ze is niet preuts, ze neemt initiatief. Nat en warm, een subtiele lik. Ik voel zonnebrand op mijn rug, die over mijn rug gesmeerd wordt.
  • Zonnebaden op het strand, ik blijf leggen, ogen dicht, geniet van het moment. Mijn vreemdeling neemt me mee naar een hoger niveau. Creme over mijn hele lichaam, ze likt me met passie.
  • Zonnebaden op het strand, ik begin te twijfelen, droom ik? Het meisje is te wild. Op een publiek strand, want ze nu doet lijkt me niet legaal in het openbaar.
  • Zonnebaden op het strand, ik open mijn ogen een beetje, ik zie mijn lief, maar ze is zo dichtbij. Ik zie alleen haar bruine en zwarte haar terwijl ze me passievol likt, en creme blijft smeren.
  • Zonnebaden op het strand, ik schrik wakker. Het is een hond! Letterlijk een hond, mijn droom breekt in duizend stukjes termijl de realiteit me keihard raakt. Mijn dagdroom was een hond die me misbrukte. Ik voel me verschrikkelijk, vies, smerig.
  • Zonnebaden op het strand, het wordt nog erger. Het strand was overvol. Ik kijk om me heen, en zie duizenden ogen die allemaal naar mij kijken. Mensen lachen, zijn gegeneerd. De hond is er nog steeds. Hij zit op me. Wat nu?

Het resultaat was een hele leuke opbouw voor een liedje, samen met een stijl indicatie: dream-pop, pop, rap, dark ambient had ik genoeg om in suno dit volgende nummer te laten genereren.

Zout en Schaamte Lyrics (engels)

(Verse 1)
Sun-bleached sand beneath my skin
Lying here, letting daydreams begin
Lost in thought, a gentle haze
Then a shadow fell across my days
Someone near, a breath so light
A tender touch, bathed in sunlight.
Is this real? Or just a plea?
Fantasy unfolding over me.

(Verse 2)
Warmth spreads slow, a subtle grace
Fingers tracing time and space
Sunscreen scent, a summer kiss
A boldness I couldn’t resist.
Wet and warm, a playful tease
Rubbed all over, finding ease.
She takes the lead, no hesitant plea
This stranger’s touch awakening me.

(Chorus)
Eyes closed tight, surrender slow
Letting go of all I know
A rising tide, a burning heat
Is this a dream? Or bittersweet?
Something wild, something free
Lost in the moment, just her and me.

(Verse 3)
Doubt creeps in, a whispered fear
This feels too much to be held near
Public sand, a reckless game
Things she’s doing, whispering my name.
A line is crossed, a boundary blurred
Passion flares, unspoken word.
Licking slow, with fervent grace
Lost in shadows of her face.

(Verse 4)
I crack an eye, a blurry view
Shades of brown and black shine through
So close now, I can almost see
The intensity consuming me.
Creamy touch, a fevered plea
This isn’t right, it can’t be she.

(Verse 5)
I wake with a start, the spell is broke
Not a lover’s kiss, but a canine stroke!
A dog? Oh God, it’s truly true.
My daydream shattered, soaked in dew.
Dirty and raw, a shameful sting
This fantasy, a ridiculous thing.

(Verse 6)
But the worst is yet to unfold
A sea of faces, stories told.
Thousands watching, judging eyes
Laughter rings beneath the skies.
The dog remains, oblivious still
While humiliation takes its fill.
Stuck in place, what can I do?
Underneath a horrified view.

(Outro)
Salt and shame, on this crowded shore
A broken daydream, forevermore.

Voetbal kaart perikelen

Hoe kan het ook anders… Het is weer eens fout gegaan. Ik begrijp dat logistiek lastig is, maar in dit geval lijkt me dat de logistieke basis toch goed voor mekaar moet zijn. Honderden fotos van honderden kinderen, samen met een registratie van naam, nummer in het album, team, trainer, groepsfoto, team logo, sommige landscape, sommige portrait. Daar moet over nagedacht zijn.

Het thema; De voetbalplaatjes van Alan zijn team zijn helaas niet allemaal perfect. Er is een foutje ingeslopen. Een team lid van Alan heeft wel zijn eigen plaatje, maar met een verkeerde foto van een ander jongetje. Balen, helemaal voor het ventje zelf en zijn ouders.

Een (leeg) album kost 7 euro, en per 6 plaatjes tik je 1.50 euro af. In het album passen bijna 200 plaatjes, dus met flink ruilen kan je met 34 zakjes precies uitkomen, en dat kost dan (34 x 1.50) + 7 = 58 euro. Prijzig album, en helemaal als je kind er verkeerd in staat, maar voor de rest is het ook jammer als een vriendje niet klopt.

Een lapmiddel zou zijn om een paar nieuwe gecorrigeerde kaartjes te printen. Dat lijkt me de goedkoopste oplossing. Mogelijk doen ze niks, ‘volgende keer beter’, dat is nog goedkoper. We zullen zien hoe dit gaat lopen.