I ein tidlegare tekst skreiv eg om korleis eg brukte NotebookLM til å skape eit heilt medieøkosystem rundt den interne Mario Kart-ligaen vår på jobb. Flip og Turbo kommenterar løpa som om det var VM i fotball, Reef hamrar laus på skrivemaskina si i eit psykedelisk vanvit, og Professor Query analyserte driftinga vår gjennom linsa til Theodor Adorno og Max Horkheimer.

Det var gøy. Kollegene mine likar det. Og naturlegvis tenkte eg: dette er ikkje nok.

Det starta som eit rekneark. Vi logga poengsummar, racernamn og kva cup vi køyrde, og laga formlar for å rekne ut stillingane. Det fungerte fint. Det var oversiktleg. Det var nøyaktig. Det var òg litt keisamt.

Så det vart meir avansert enn det trong vere. Formlar i reknearket blei større. Eg byrja å kalkulere kva par av racersjåførar som hadde den tettaste rivaliseringa. Og på eit eller anna tidspunkt tenkte eg: «kvifor sit eg og kranglar med reknearkformlar når det finst programmeringsspråk som er laga for akkurat dette?»

Eg kan ikkje programmere. Altså – eg kan nesten lese PHP, og forstå omtrent kva den gjer, eg kan gjere enkel feilsøking, og eg har nokre studiepoeng i objektorientert kode og Java. Men eg er ikkje ein utviklar.

Men vi lever i 2025, og vi har KI.

Claude – som aldri søv

Saman med Claude Code – Anthropic sitt KI-drivne kodeverktøy – byrja eg å bygge det som no heiter CDNMK. Ein fullverdig web-applikasjon i PHP og SQLite, med Apache-ruting, rekneskapsmotor, badge-system, AI-integrasjon, og eit admin-panel som eg er urettkomeleg stolt av.

Prosessen er omtrent slik: Eg beskriv kva eg vil ha, i vanleg norsk eller engelsk. Claude les den eksisterande kodebasen, forstår strukturen, og skriv koden. Eg testar. Det fungerer ikkje. Eg beskriv feilen. Claude fiksar. Det fungerer nesten. Eg beskriv kva som er feil no. Claude fiksar igjen. Det fungerer.

Det er ikkje ulikt å jobbe med ein ganske kompetent, ekstremt tolmodig kollega som aldri treng pause, aldri klagar over at du endrar meining, og aldri spør kvifor du treng ein Monte Carlo-simulator for ein intern Mario Kart-liga.

Ein kollega ville kanskje ha stilt det spørsmålet. Claude gjer det ikkje.

GPScore™ – ei poengutrekning som fortener TM

Det første eg bygde var poengsystemet. I Mario Kart 8 Deluxe kan du score mellom 0 og 60 poeng per Grand Prix (det er fire løp per GP, maks 15 poeng per løp). Men korleis du reknar ut sesongstilingane basert på dei resultata er eit heilt eige designspørsmål.

Vi landa på ikkje eitt, men ni ulike poengsystem. Kvar sesong vel vi kva system som gjeld. Nokre er enkle – summen av dine beste N løp, eller snittet minus dei dårlegaste resultata. Andre er meir eksotiske.

Det mest eksotiske er det vi kallar «Black Box». Det er eit poengsystem der formelen er med vilje ugjennomtrengjeleg. Eg meiner det bokstavleg: når du klikkar på «vis korleis poenga er rekna ut» i Black Box-modus, står det berre hemmeleg.

Eg ba Claude om eit ugjennomtrengeleg system som er laga for tette sesongar og som brukar fleire variablar enn nødvendig.

Er dette nødvendig? Absolutt ikkje. Er det morosamt at ingen skjønar kvifor dei ligg der dei ligg i tabellen? Absolutt.

42 badges – fordi achievements gjer alt betre

I tradisjon med at spel og appar har oppnåingar, har CDNMK no over 42 badges som racersjåførane kan låse opp. Dei spenner frå det seriøse (🤖 «Max Output» for ein perfekt 60-poengs GP) til det oppmuntrande (⚓ «The Anchor» – «For the ship to remain stable, someone needs to be at the bottom»), til det direkte merkjelege.

Nokre høgdepunkt:

«Slippery Slope» 🍌 – for å ha utløyst det vi kallar «Ludwig Obstruction Law» (LOL) tre eller fleire gongar. Ludwig Obstruction Law er ligaens interne regel for når ein NPC i spelet øydelegg for eit løp på ein urettvis måte. Ja, vi har namngitt det etter Ludwig von Koopa, og ja, vi har gitt det ein forkortelse som passar utmerka.

«What a Fun Guy!» 🍄 – for å hovudsakleg spele som Toad, Toadette eller Peachette. Fordi dei er soppar. Fungi. A fun guy.

«The Fourth Wall» 💀 – for å ende opp på fjerdeplass i meir enn ein fjerdedel av løpa. Ein ordvits som fungerer dobbelt.

Ein fjernsynsstasjon i ein web-app

Hugsar du medieøkosystemet frå førre artikkel? Flip, Turbo, Reef og dei andre? Dei bur no inne i web-appen.

Alle dei sju programma – Core Kart Crew, The Meta Report, Reef’s Dispatch, The Rant, The Ghost Racer’s Ascent, The Situated Spectator, Viberacing – er definerte som personlegdommar i kodebasen. Når ein admin vel å generere ei ny «sending», vel du program, og Gemini (Google sin KI-modell) får resultata frå den siste veka saman med ein detaljert personlegdomsprofil og sender tilbake ein analyse i den stilen.

Flip avsluttar framleis med «and that’s a finish line worth drifting into». Professor Query refererer framleis til Adorno. Reef er framleis på kanten. Men no er det alt saman integrert i eit arkiv med sendarlogo, dato, og ein lenke til resultata som sendinga baserer seg på.

Vi har også eit nyhetsband – ein ticker som rullar over toppen av framsida, akkurat som den du ser nederst på skjermen i BBC World eller CNN. Den viser dei ferskaste sendingane og rivaliseringsvarsla i sanntid.

Refleksjonar om å kode med KI

La meg vere ærleg: dette er langt meir avansert enn noko eg kunne ha bygd sjølv. PHP, SQLite, cURL, HTTP-headarar, Chart.js, D3.js, CSS grid, RSA-nøklar, ELO-utrekningar – alt dette er ting eg forstår konseptuelt, men ikkje ville ha fått til å implementere på eiga hand.

Men med KI som kodepartnar skiftar rolla mi frå «utviklar» til noko meir som «produkteigar» eller «prosjektleiar». Eg beskriver ein visjon. Eg testar resultatet. Eg gir tilbakemelding. Eg bestemmer kva som er godt nok og kva som treng meir arbeid. Eg bestemmer kva som er morosamt.

Det er ei rolle eg trivst i. Og det gjer meg i stand til å lage noko som elles ikkje ville ha eksistert – fordi budsjettet for ein intern Mario Kart-liga sin web-app ikkje akkurat tillet å tilsetje ein webutviklar.

Er det nødvendig?

Nei. Absolutt ikkje. Vi klarte oss fint med eit rekneark.

Er det gøy?

Eg har 42 badges, ni poengsystem, ein NFT-markedsplass (som sjølvsagt ikkje er ekte – og som også er hemmeleg), tre ulike kringkastingsskjermar, eit AI-drive medieøkosystem med åtte ulike personlegdommar, animerte sesongløp i D3.js, nedlastbare samlekort i PDF-format.

Ja. Det er gøy.

Og det er, igjen, veldig Andreasque.

Relevant