~/blog
Blog
Artikelen en gedachten over webontwikkeling, architectuur en technologie.
Lege catch-blokken in AI-code: het commentaar dat je linter het zwijgen oplegt
AI-code slikt fouten in met catch-blokken waar alleen een commentaar in staat, en de aanbevolen ESLint-config laat ze juist dankzij dat commentaar door. Wat ik in mijn eigen repositories vond, waarom een model ze schrijft, en de regel die wel door het commentaar heen kijkt.
lees →Wat een dependency-graph vindt dat je coding agent mist
Ik liet een scanner los op een interne applicatie waar agents al maanden in werkten. Hij deed er nog geen twee seconden over en leverde vier tickets op. Geen van die defecten zat in een bestand, en precies daarom vond niemand ze door bestanden te lezen.
Wie schreef deze commit? Git-attributie als een agent meewerkt
Ik ging op zoek naar de coding agent in 1.644 commits uit tien van mijn publieke repositories. Hij liet geen enkel spoor na. Wat de auteursgegevens wél herschreef, was de merge-knop.
Een MCP-beveiligingsscore is geen oordeel
Een MCP-beveiligingsscore ziet eruit als een uitspraak over een server. Gemeten over 74.101 servers is het meeste wat een scanner je vertelt een heuristiek, en wat je bijna nooit te zien krijgt, is dat niemand de broncode heeft gelezen.
MCP of CLI: wat de tools van je agent echt kosten
Elke vergelijking noemt een factor. Ik mat er 88,9x, en dat getal beantwoordt een vraag die mijn client allang beantwoord heeft. Wat een tool nu kost, en wat een schema nog altijd van een commando onderscheidt.
Slopsquatting: bestaat het package? Verkeerde vraag
Het standaardadvies tegen verzonnen packages luidt: controleer eerst of het package bestaat. Ik heb vier namen uit het nieuwste onderzoek opgezocht op PyPI. Ze bestaan alle vier. De registry beantwoordt de verkeerde vraag, en dat gaat in beide richtingen mis.
Software inschatten met AI: het typen was nooit waar de tijd in zat
Software inschatten met AI zit er steeds naast. Eén enquête van METR vroeg 349 mensen in technische beroepen hoeveel sneller ze waren geworden en hoeveel meer waarde ze opleveren, en kreeg 3x en 1,4 tot 2x terug. Het gat tussen die twee antwoorden is de schatting die je eigenlijk maakt.
Kwaliteitsdrempels voor AI-code: baselines die alleen strenger worden
Met een lint-baseline dwing je een standaard af die je codebase vandaag nog niet haalt. Bestaande overtredingen krijgen vrijstelling, nieuwe breken de build, en het bestand mag alleen krimpen. Hoe PHPStan, ESLint, detekt en Sonar dit doen, en de vier manieren waarop zo'n drempel stilletjes stopt met werken.
Oncall voor AI-code: wat je regelt voordat de pager afgaat
Het bekendste geval van AI-code die productie platlegde wordt door het bedrijf zelf ontkend. Niemand van buiten kan uitmaken wie gelijk heeft, want de gegevens waarmee dat zou kunnen, zijn nooit vastgelegd. Oncall voor code die een model schreef is een administratieprobleem.
Claude Code in een grote codebase: de agent afbakenen tot wat ertoe doet
Boven ongeveer 400.000 regels lopen coding agents systematisch vast. Wat er precies misgaat, welke instellingen het in een monorepo oplossen, en het ignore-bestand dat iedereen aanraadt en dat nooit heeft bestaan.