{"id":80111,"date":"2026-02-04T07:00:00","date_gmt":"2026-02-04T15:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=80111"},"modified":"2026-04-07T14:23:35","modified_gmt":"2026-04-07T21:23:35","slug":"de-ralph-wiggum-lus-vanuit-eerste-principes-nl","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/","title":{"rendered":"De Ralph Wiggum Lus, Vanuit Eerste Principes"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<p>Ralph Wiggum is een bash-lus die een AI-agent herhaaldelijk tegen externe controles (tests, linters) uitvoert totdat de taak slaagt. In plaats van het model te vragen wanneer het klaar is, beslist het harnas. De techniek ging van een geitenboerderij in Australi\u00eb naar een Anthropic plugin in zes maanden. De les is om te beginnen met de lus, niet met het model.<\/p>\n\n\n\n\n\t<\/div>\n<\/div>\n\n<p>Als je meer dan een paar uur een <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/vibe-coding-tools\/\">AI-coderings<\/a>agent hebt gebruikt, ken je de \u201cmuur\u201d: de agent boekt zichtbare vooruitgang, stagneert dan \u2014 en je eindigt met het zelf aanpassen en afronden van het werk.<\/p>\n\n\n<p>Zoals AI-ingenieurs vaak geneigd zijn te doen, dook er een patroon op om dat probleem op te lossen: laat de agent gewoon herhaaldelijk externe controles uitvoeren tot de taak daadwerkelijk slaagt.<\/p>\n\n\n<p>De aanpak sloeg zo hard aan dat het een naam kreeg \u2014 Ralph Wiggum.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" width=\"1000\" height=\"420\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/image-1.png\" alt=\"Memento voor AI Agents\" class=\"wp-image-79301 lazyload\" style=\"--smush-placeholder-width: 1000px; --smush-placeholder-aspect-ratio: 1000\/420;width:1024px;height:auto\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2026\/02\/image-1.png.webp 1000w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/image-1-300x126.png 300w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/image-1-768x323.png 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2026\/02\/image-1-600x252.png.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2026\/02\/image-1-730x307.png.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2026\/02\/image-1-784x329.png.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/smush-webp\/2026\/02\/image-1-877x368.png.webp 877w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><figcaption class=\"wp-element-caption\">via <a href=\"https:\/\/dev.to\/prefrontalsys\/memento-for-ai-agents-why-tattooed-ralph-is-the-future-of-coding-1674\" target=\"_blank\" rel=\"noreferrer noopener\">dev.to<\/a><\/figcaption><\/figure>\n\n\n<p>En de meme bleef hangen omdat het patroon werkt. Tegen eind 2025 had <a href=\"https:\/\/venturebeat.com\/technology\/how-ralph-wiggum-went-from-the-simpsons-to-the-biggest-name-in-ai-right-now\" target=\"_blank\">Anthropic het officieel geformaliseerd in een offici\u00eble Claude Code plugin<\/a>.<\/p>\n\n\n<p>Ralph vertegenwoordigt een verschuiving in hoe ontwikkelaars bestaande hulpmiddelen gebruiken. In plaats van AI-systemen te behandelen als interactieve assistenten, worden ze uitgevoerd als langlopende processen, geleid door tests, linters en expliciete stopvoorwaarden.<\/p>\n\n\n<p>Dus deze korte gids is de praktische versie. We zullen zien wat Ralph daadwerkelijk is, waarom het werkt, hoe het zich verspreidde, en wat er veranderde toen het werd geproductiseerd.<\/p>\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-9-16 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Ralph Wiggum Loop: The Simple AI Coding Trick That Actually Works\" width=\"422\" height=\"750\" data-src=\"https:\/\/www.youtube.com\/embed\/BnTfnlAvSyw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" data-load-mode=\"1\"><\/iframe>\n<\/div><\/figure>\n\n\n<h2 id=\"h-what-is-ralph-really\" class=\"wp-block-heading\">Wat Is \u201cRalph\u201d Eigenlijk?<\/h2>\n\n\n<p>In de kern is dit wat Ralph is: laat een agent in een lus draaien, controleer de uitvoer tegen iets wat niet kan liegen zoals een test, een linter, een typechecker; en blijf loopen tot het slaagt.<\/p>\n\n\n<p>Dat is het.<\/p>\n\n\n<p>Het oorspronkelijke voorbeeld dat <a target=\"_blank\" href=\"https:\/\/ghuntley.com\/ralph\/\">Geoffrey Huntley in juli 2025 deelde<\/a> was opzettelijk direct:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>while :; do cat PROMPT.md | npx --yes @sourcegraph\/amp ; done<\/code><\/pre>\n\n\n<p><a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/claude-ai\/\">Claude<\/a> Codevarianten volgen dezelfde vorm, gewoon met meer veiligheidsmaatregelen. Maar het principe verandert niet: voer een vastgezette prompt in bij de agent herhaaldelijk totdat de externe realiteit zegt dat je klaar bent.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1674\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop.webp\" alt=\"De Ralph Loop. Agent Ontmoet Externe Verificatie.\" class=\"wp-image-79313 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-287x300.webp 287w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-979x1024.webp 979w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-768x804.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-1468x1536.webp 1468w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-600x628.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-1200x1256.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-730x764.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-1460x1528.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-784x820.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-1568x1641.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/01_the_ralph_loop-877x918.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1674;\" \/><\/figure>\n\n\n<p>De lus zelf is bijna irrelevant, en wat telt is het contract:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>De toestand leeft in de repo:<\/strong> Bestanden, verschillen, logboeken, git geschiedenis; alles wat duurzaam is, komt hier.<\/li>\n\n\n\n<li><strong>Voltooiing leeft buiten het model:<\/strong> Tests, linters, typecheckers; de agent beslist niet wanneer het klaar is; het harnas doet dat.<\/li>\n\n\n\n<li><strong>De agent is vervangbaar:<\/strong> Het is een werker die herhaaldelijk wordt opgeroepen totdat de poort slaagt; als het vandaag traag of dom is, vervang het dan morgen door iets snellers.<\/li>\n\n\n<\/ul>\n\n\n<p>Op deze manier gezien, wordt Ralph een ontwerpprincipe: stop met het vragen aan het model om te weten wanneer het klaar is. Verwacht niet dat het beperkingen onthoudt bij context resets.<\/p>\n\n\n<p>Bouw in plaats daarvan het systeem zodanig op dat het model op die manieren niet kan falen.<\/p>\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n<h2 id=\"h2_why-does-the-loop-hold-up\" class=\"wp-block-heading\">Waarom Houdt de Lus Stand?<\/h2>\n\n\n<p>Een paar redenen:<\/p>\n\n\n<h3 class=\"wp-block-heading\">1. Contextvensters Gedragen Zich Als Buffers<\/h3>\n\n\n<p>Huntley presenteert vaak contextvensters op laag niveau:<\/p>\n\n\n<p>\u201cDenk als een C of C++ ingenieur. Contextvensters zijn arrays.\u201d<\/p>\n\n\n<p>Ze hebben een vaste grootte; ze schuiven; ze overschrijven; ze vergeten.<\/p>\n\n\n<p>Lange sessies gaan uit van continu\u00efteit die niet bestaat, dus het behandelen van de buffer als duurzaam geheugen leidt tot afwijkingen, gemiste beperkingen en inconsistent gedrag.<\/p>\n\n\n<p>Ralph leunt naar de realiteit van het systeem. In plaats van te doen alsof het contextvenster stabiel is, beschouwt hij het als wegwerpbaar.<\/p>\n\n\n<p>De krasruimte van de agent wordt tussen iteraties gereset, terwijl de blijvende staat op schijf bewaard blijft. De repository hoopt waarheid op over meerdere uitvoeringen. Dit maakt het opnieuw starten van de agent routine in plaats van verspillend; elke lus begint opnieuw maar bouwt voort op wat daadwerkelijk is bewaard.<\/p>\n\n\n<h3 class=\"wp-block-heading\">2. Externe Controles Overstijgen Intern Redeneren<\/h3>\n\n\n<p>Veel agentframeworks reageren op mislukkingen door structuur toe te voegen binnen het model: planners, samenvattingen, interne staat en reflectielussen.<\/p>\n\n\n<p>Ralph bewaart de intelligentie buiten de agent. Het is afhankelijk van:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Een vastgezette specificatie die niet verschuift<\/li>\n\n\n\n<li>Concreet bewijs van de laatste uitvoering<\/li>\n\n\n\n<li>Een deterministische poort die succes evalueert<\/li>\n\n\n<\/ul>\n\n\n<p>De agent beslist niet wanneer het werk klaar is &#8211; het harnas doet dat.<\/p>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1654\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach.webp\" alt=\"Traditionele Agent Frameworks. Intelligentie binnen het model.\" class=\"wp-image-79314 lazyload\" data-srcset=\"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach.webp 1600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-290x300.webp 290w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-991x1024.webp 991w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-768x794.webp 768w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-1486x1536.webp 1486w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-600x620.webp 600w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-1200x1241.webp 1200w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-730x755.webp 730w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-1460x1509.webp 1460w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-784x810.webp 784w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-1568x1621.webp 1568w, https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/02_traditional_agent_frameworks_vs_ralph_approach-877x907.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1654;\" \/><\/figure>\n\n\n<p>Dit is waarom Ralph uitblinkt in mechanisch werk: refactoren, migraties, opruimen, conformiteitstaken&#8230; Overal waar succes gemeten kan worden door een script in plaats van beoordeling, wordt iteratie betrouwbaar.<\/p>\n\n\n<p>Het model kan niet onder de vereisten uitkomen omdat de vereisten <em>buiten<\/em> zijn redenering liggen.<\/p>\n\n\n<h3 class=\"wp-block-heading\">3. Verdichting Erodeert Beperkingen<\/h3>\n\n\n<p>Een terugkerende kritiek van Huntley richt zich op samenvatting en compactheid.<\/p>\n\n\n<p>Wanneer een systeem het model vraagt te beslissen wat belangrijk genoeg is om te bewaren, gaat informatie verloren \u2014 beperkingen versoepelen, randgevallen verdwijnen, en spelden vallen uit.<\/p>\n\n\n<p>Ralph omzeilt dit door invoer letterlijk te houden:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>De specificaties blijven letterlijk in plaats van samengevat,&nbsp;<\/li>\n\n\n\n<li>De foutuitvoer blijft rauw en ongefilterd; en&nbsp;<\/li>\n\n\n\n<li>Geheugenbeheer gaat nooit over in het model.<\/li>\n\n\n<\/ul>\n\n\n<p>Het harnas behoudt de getrouwheid; de agent werkt erin, beperkt door wat er daadwerkelijk is in plaats van wat het model <em>denkt<\/em> dat er zou moeten zijn.<\/p>\n\n\n<h2 id=\"h2_so-how-did-the-idea-spread\" class=\"wp-block-heading\">Dus, Hoe Verspreidde Het Idee Zich?<\/h2>\n\n\n<p>De tijdlijn is behoorlijk samengeperst.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>19 Juni 2025:<\/strong> Op een meetup in San Francisco met ongeveer 15 ingenieurs die agentic coding bespreken, <a target=\"_blank\" href=\"https:\/\/www.humanlayer.dev\/blog\/brief-history-of-ralph\">demonstreert Huntley Ralph<\/a>, Cursed (de programmeertaal die door Ralph wordt gebouwd), en livestreamt autonoom coderen &#8216;s nachts terwijl hij slaapt in Australi\u00eb. De kamer heeft een ongemakkelijk gesprek over hoe gemakkelijk het is om 80%-90% van een <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/saas-websites\/\">SaaS<\/a> te kopi\u00ebren en hoeveel soorten werk op het punt staan volledig te verdwijnen.<\/li>\n\n\n\n<li><strong>Juli 2025:<\/strong> Huntley publiceert<a target=\"_blank\" href=\"https:\/\/ghuntley.com\/ralph\/\"> de originele blogpost<\/a> met de basis bash-loopstructuur. Het stuk bevat een lichtgewicht voorbeeldprompt en een verzoek: &#8220;je zou waarschijnlijk de cursed lang repo op github kunnen vinden als je ernaar zocht, maar deel het alsjeblieft nog niet.&#8221;<\/li>\n\n\n\n<li><strong>Augustus 2025:<\/strong> De YC agents hackathon vindt plaats \u2014 teams draaien Claude Code in continue loops. Het resultaat is<a target=\"_blank\" href=\"https:\/\/github.com\/repomirrorhq\/repomirror\/blob\/main\/repomirror.md\"> 6 repositories die &#8216;s nachts worden uitgebracht<\/a>. Dexter Horthy voert een experimentele Ralph-loop uit op een React codebase refactor. In meer dan 6 uur ontwikkelt het een volledig<a target=\"_blank\" href=\"https:\/\/github.com\/humanlayer\/humanlayer\/pull\/513\"> refactorplan en voert het uit<\/a>.<\/li>\n\n\n\n<li><strong>September 2025:<\/strong> Huntley<a target=\"_blank\" href=\"https:\/\/ghuntley.com\/cursed\/\"> lanceert officieel Cursed Lang<\/a>, de programmeertaal die Ralph heeft gebouwd. Het bestaat in drie implementaties (C, Rust, Zig), heeft een standaardbibliotheek en een stage-2 compiler geschreven in Cursed zelf.<\/li>\n\n\n\n<li><strong>Oktober 2025:<\/strong> Dexter presenteert Ralph op Claude Code Anonymous in San Francisco. De vraag uit het publiek: &#8220;Dus raad je dit aan?&#8221; Zijn antwoord: &#8220;Domme dingen kunnen verrassend goed werken. Wat kunnen we verwachten van een slimme versie?&#8221;<\/li>\n\n\n\n<li><strong>December 2025:<\/strong> Anthropic brengt een<a target=\"_blank\" href=\"https:\/\/github.com\/anthropics\/claude-plugins-official\/tree\/main\/plugins\/ralph-loop\"> offici\u00eble Ralph Wiggum plugin<\/a> uit. De plugin neemt Huntley&#8217;s bash-loop en formaliseert deze met Stop Hooks en gestructureerde foutgegevens.<\/li>\n\n\n\n<li><strong>Januari 2026:<\/strong> Huntley en Horthy houden een diepgaande YouTube-discussie waarin ze de originele bash-loop Ralph-implementatie vergelijken met de Anthropic stop-hook-implementatie.<\/li>\n\n\n<\/ul>\n\n\n<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }<\/style><div class='embed-container'><iframe data-src='https:\/\/www.youtube.com\/embed\/SB6cO97tfiY' frameborder='0' allowfullscreen src='data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==' class='lazyload' data-load-mode='1'><\/iframe><\/div>\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 id=\"h2_bash-loop-ralph-vs-plugin-ralph\" class=\"wp-block-heading\">Bash-loop Ralph Vs. Plugin Ralph<\/h2>\n\n\n<p>De originele Ralph is een 5-regelige bash-lus. Je cat een promptbestand, stuurt het door naar Claude, controleert of de output slaagt voor je test, en lussen totdat het dat doet. Alles staat op schijf, alles is zichtbaar. Als er iets breekt, kun je precies zien waarom.<\/p>\n\n\n<p>De Anthropic-plugin keert dat model om, dus in plaats van de lus van buitenaf uit te voeren, installeert het een Stop Hook in je Claude-sessie. Wanneer Claude probeert te stoppen, onderschept de haak dit, controleert je voltooiingsvoorwaarden en voert dezelfde prompt opnieuw in als er werk overblijft. De bestanden die Claude heeft gewijzigd, zijn er nog steeds.<\/p>\n\n\n<p>De git-geschiedenis is er nog steeds, maar de harnasmechanica is nu ondoorzichtig \u2014 verborgen in een markdown-statusbestand, gevoelig voor rechten, gemakkelijk te beschadigen als je niet weet wat je doet.<\/p>\n\n\n<p>Dit is de klassieke abstractie-afweging.<\/p>\n\n\n<p>De plugin verlaagt de adoptiekosten. Je hoeft geen bash te schrijven en je hoeft niet na te denken over loops. Maar naarmate het mechanisme verborgen wordt, wordt het oorspronkelijke inzicht makkelijker te missen.<\/p>\n\n\n<p>De bash-loopversie dwingt je om het harnas te ontwerpen. De pluginversie laat je die stap overslaan, wat prima is totdat je een randgeval tegenkomt en niet kunt zien wat er daadwerkelijk gebeurt.<\/p>\n\n\n<p>Dexter Horthy heeft het getest en ontdekte dat het op cryptische wijzen faalt, tenzij je \u201c&#8211;dangerously-skip-permissions\u201d gebruikt. De plugin installeert hooks op vreemde plaatsen, gebruikt ondoorzichtige staatbestanden, en als je het markdown-bestand verwijdert voordat je het stopt, breek je Claude in die repo totdat je de plugin volledig uitschakelt.<\/p>\n\n\n<p><strong>Dus, wat is de les?<\/strong> Beide werken, maar om verschillende redenen. De bash-lus werkt omdat het simpel en transparant is. De plugin werkt wanneer de abstractie niet iets cruciaals verbergt.<\/p>\n\n\n<h2 id=\"h2_what-do-you-learn-from-running-it\" class=\"wp-block-heading\">Wat Leer Je Van Het Uitvoeren?<\/h2>\n\n\n<p>Ralph gaat uit van afstand tussen de mens en de agent. Je zit niet in de sessie en leidt deze niet. In plaats daarvan zet je het in werking, loop je weg, inspecteer je de artefacten als het klaar is, en pas je de beperkingen aan voor de volgende iteratie.<\/p>\n\n\n<p>Interactie vindt plaats op het niveau van de harnas \u2014 de prompt, de tests, de stopvoorwaarden \u2014 niet binnen het gesprek.<\/p>\n\n\n<p><strong>Na verloop van tijd wordt een patroon zichtbaar: de meeste storingen zijn geen modelstoringen; het zijn storingen in de uitrusting.<\/strong><\/p>\n\n\n<p>De specificatie was vaag, de test was te algemeen, of de voltooiingsvoorwaarde beschreef niet daadwerkelijk wat &#8220;klaar&#8221; betekent.<\/p>\n\n\n<p>Zodra je dit een paar keer ziet, verandert je instinct. Je stopt met vragen &#8220;hoe maak ik Claude slimmer?&#8221; en begint met vragen &#8220;hoe maak ik de beperkingen strakker?&#8221;<\/p>\n\n\n<p>Hier worden specificaties cruciaal.<\/p>\n\n\n<h2 id=\"h2_specs-as-control-surfaces\" class=\"wp-block-heading\">Specificaties Als Besturingsoppervlakken<\/h2>\n\n\n<p>Huntley herkadert specificaties niet als documentatie maar als vaste controle-invoer. Je produceert ze door gesprekken met Claude, bewerkt ze doelbewust totdat ze precies zijn en dan zet je ze vast. Eenmaal vastgezet, veranderen ze niet meer gedurende de hele lus.<\/p>\n\n\n<p>Dit is belangrijk omdat specificaties tegelijkertijd drie dingen doen:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ze binden wat de agent kan verzinnen:<\/strong> Zonder een strakke specificatie voegt Claude defensieve lagen, abstracties of functies toe die je nooit hebt gevraagd, waardoor de reikwijdte bij elke iteratie uitbreidt.&nbsp;<\/li>\n\n\n\n<li><strong>Ze verankeren zoeken en ophalen:<\/strong> Zodat de agent geen nieuwe vereisten hallucineert.<\/li>\n\n\n\n<li><strong>Ze stabiliseren gedrag over runs:<\/strong> Elke iteratie lost hetzelfde probleem op, niet een iets andere interpretatie ervan.<\/li>\n\n\n<\/ol>\n\n\n<p>Als je specificatie vaag is over wat &#8220;klaar&#8221; betekent, zal de agent het elke keer anders interpreteren. Je eindigt met afwijkingen, reikwijdte-uitbreiding en iteraties die elkaar tegenspreken.<\/p>\n\n\n<h2 id=\"h2_how-do-you-run-the-loop-responsibly\" class=\"wp-block-heading\">Hoe Voer Je De Loop Verantwoord Uit?<\/h2>\n\n\n<p>Een minimale Ralph-configuratie ziet er vaak als volgt uit:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>MAX_ITERS=30\nfor i in $(seq 1 $MAX_ITERS); do\n&nbsp;&nbsp;cat PROMPT.md | claude\n&nbsp;&nbsp;if .\/ci.sh; then exit 0; fi\ndone\nexit 1<\/code><\/pre>\n\n\n<p>De mechanica van de lus is veel minder belangrijk dan de regels eromheen:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Houd de specificatie onveranderlijk; pas deze niet aan tijdens de lus op basis van wat Claude doet.&nbsp;<\/li>\n\n\n\n<li>Codeer voltooiing als uitvoerbare controles.<\/li>\n\n\n\n<li>Handhaaf iteratielimieten en tijdslimieten zodat de lus niet eeuwig kan draaien en door je tokenbudget heen brandt.&nbsp;<\/li>\n\n\n\n<li>Bewaar logboeken en verschillen zodat je kunt inspecteren wat er misging als dat gebeurt.&nbsp;<\/li>\n\n\n<\/ul>\n\n\n<p>Verder heeft de operationele praktijk een aantal heuristieken onthuld die van belang zijn:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Geef de voorkeur aan kleine, regelmatige verschillen boven grote herbewerkingen, omdat grote veranderingen fouten vergroten en moeilijker te debuggen zijn.&nbsp;<\/li>\n\n\n\n<li>Voer opnieuw uit op de huidige hoofdversie in plaats van opnieuw te baseren, omdat samenvoegconflicten iteraties verspillen.<\/li>\n\n\n\n<li>En vermijd het gebruik van Ralph voor verkennend werk, omdat als je geen duidelijke acceptatietests hebt, je alleen maar een chaotische lus krijgt die dingen verzint die je niet hebt gevraagd.<\/li>\n\n\n<\/ul>\n\n\n<p>De beperking is de functie.<\/p>\n\n\n<h2 id=\"h2_the-loop-is-the-lesson\" class=\"wp-block-heading\">De Loop <em>Is<\/em> de Les<\/h2>\n\n\n<p>Toen Ralph grip kreeg, ontstonden er variaties. Sommige teams bouwden gestructureerde externe lussen rondom gereedschap-oproepende agenten. Anderen voegden afzonderlijke verifieercomponenten toe: een ander model dat de output van de werker controleert voordat de lus besluit te eindigen. Deze uitbreidingen werken, ja, maar alleen als ze het oorspronkelijke inzicht respecteren.<\/p>\n\n\n<p><strong>De regel is eenvoudig: verificatie moet deterministisch blijven, en samenvattingen mogen nooit de primaire invoer vervangen.<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Als je een verificateur toevoegt, moet deze concrete zaken controleren: testen slagen, linter sluit netjes af, git diff komt overeen met de verwachtingen.&nbsp;<\/li>\n\n\n\n<li>Als je gestructureerde buitenlussen toevoegt, moeten ze nog steeds de ruwe uitvoer en ruwe logboeken zien, niet een opgeschoonde samenvatting van wat er misging.&nbsp;<\/li>\n\n\n<\/ul>\n\n\n<p>Huntley&#8217;s kernargument is dat <a target=\"_blank\" href=\"https:\/\/linearb.io\/dev-interrupted\/podcast\/inventing-the-ralph-wiggum-loop\">softwareontwikkeling als beroep effectief dood is<\/a>, maar software-engineering \u2014 de praktijk van het goed bouwen van systemen \u2014 leeft meer dan ooit.<\/p>\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>","protected":false},"excerpt":{"rendered":"<p>Een fundamentele blik op de Ralph Wiggum-lus \u2014 hoe systemen, platforms en prikkels afdwalen van intentie naar absurditeit, en waarom dit blijft gebeuren.<\/p>\n","protected":false},"author":1058,"featured_media":79312,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_metadesc":"Een eerste-principes blik op de Ralph Wiggum-loop \u2014 hoe systemen, platforms en prikkels afdrijven van intentie naar absurditeit, en waarom dit blijft gebeuren.","toc_headlines":"[[\"h-what-is-ralph-really\",\"Wat Is \u201cRalph\u201d Eigenlijk?\"],[\"h2_why-does-the-loop-hold-up\",\"Waarom Houdt de Lus Stand?\"],[\"h2_so-how-did-the-idea-spread\",\"Dus, Hoe Verspreidde Het Idee Zich?\"],[\"h2_bash-loop-ralph-vs-plugin-ralph\",\"Bash-loop Ralph Vs. Plugin Ralph\"],[\"h2_what-do-you-learn-from-running-it\",\"Wat Leer Je Van Het Uitvoeren?\"],[\"h2_specs-as-control-surfaces\",\"Specificaties Als Besturingsoppervlakken\"],[\"h2_how-do-you-run-the-loop-responsibly\",\"Hoe Voer Je De Loop Verantwoord Uit?\"],[\"h2_the-loop-is-the-lesson\",\"De Loop Is de Les\"]]","hide_toc":false,"footnotes":""},"categories":[14926],"tags":[],"class_list":["post-80111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-talk-nl"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>De Ralph Wiggum Lus, Vanuit Eerste Principes - DreamHost Blog<\/title>\n<meta name=\"description\" content=\"Een eerste-principes blik op de Ralph Wiggum-loop \u2014 hoe systemen, platforms en prikkels afdrijven van intentie naar absurditeit, en waarom dit blijft gebeuren.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"De Ralph Wiggum Lus, Vanuit Eerste Principes\" \/>\n<meta property=\"og:description\" content=\"Een eerste-principes blik op de Ralph Wiggum-loop \u2014 hoe systemen, platforms en prikkels afdrijven van intentie naar absurditeit, en waarom dit blijft gebeuren.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-04T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-07T21:23:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/1460x1095_blog_hero_the_ralph_wiggum_loop_from_first_principles.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"1095\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Ian Hernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Hernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"De Ralph Wiggum Lus, Vanuit Eerste Principes - DreamHost Blog","description":"Een eerste-principes blik op de Ralph Wiggum-loop \u2014 hoe systemen, platforms en prikkels afdrijven van intentie naar absurditeit, en waarom dit blijft gebeuren.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/","og_locale":"en_US","og_type":"article","og_title":"De Ralph Wiggum Lus, Vanuit Eerste Principes","og_description":"Een eerste-principes blik op de Ralph Wiggum-loop \u2014 hoe systemen, platforms en prikkels afdrijven van intentie naar absurditeit, en waarom dit blijft gebeuren.","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2026-02-04T15:00:00+00:00","article_modified_time":"2026-04-07T21:23:35+00:00","og_image":[{"width":1460,"height":1095,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/1460x1095_blog_hero_the_ralph_wiggum_loop_from_first_principles.webp","type":"image\/webp"}],"author":"Ian Hernandez","twitter_card":"summary_large_image","twitter_creator":"@dreamhost","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Ian Hernandez","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"De Ralph Wiggum Lus, Vanuit Eerste Principes","datePublished":"2026-02-04T15:00:00+00:00","dateModified":"2026-04-07T21:23:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/"},"wordCount":1969,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/1460x1095_blog_hero_the_ralph_wiggum_loop_from_first_principles.webp","articleSection":["Tech Talk"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/","name":"De Ralph Wiggum Lus, Vanuit Eerste Principes - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#primaryimage"},"thumbnailUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/1460x1095_blog_hero_the_ralph_wiggum_loop_from_first_principles.webp","datePublished":"2026-02-04T15:00:00+00:00","dateModified":"2026-04-07T21:23:35+00:00","description":"Een eerste-principes blik op de Ralph Wiggum-loop \u2014 hoe systemen, platforms en prikkels afdrijven van intentie naar absurditeit, en waarom dit blijft gebeuren.","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#primaryimage","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/1460x1095_blog_hero_the_ralph_wiggum_loop_from_first_principles.webp","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2026\/02\/1460x1095_blog_hero_the_ralph_wiggum_loop_from_first_principles.webp","width":1460,"height":1095,"caption":"The Ralph Wiggum Loop, From First Principles"},{"@type":"BreadcrumbList","@id":"https:\/\/www-dev.dreamhost.com\/blog\/nl\/de-ralph-wiggum-lus-vanuit-eerste-principes-nl\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"De Ralph Wiggum Lus, Vanuit Eerste Principes"}]},{"@type":"WebSite","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website","url":"https:\/\/www-dev.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www-dev.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www-dev.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96","name":"Ian Hernandez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","url":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","contentUrl":"https:\/\/www-dev.dreamhost.com\/blog\/wp-content\/uploads\/2022\/04\/ian-hernandez-dreamhost-150x150.png","caption":"Ian Hernandez"},"description":"Ian is a Product Designer based in Los Angeles, California. He is responsible for driving brand and product design at DreamHost, developing and maintaining our internal design system, and writing frontend code when he can. In his free time, he enjoys walking his dog, learning history, and discovering new music online and irl. Connect with him on LinkedIn: https:\/\/www.linkedin.com\/in\/ianhernandez23\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/author\/ianh\/"}]}},"lang":"nl","translations":{"nl":80111,"en":79311,"es":79297,"de":80011,"ru":80017,"uk":80025,"pl":80096,"it":80102,"pt":80117,"fr":80175},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/80111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/1058"}],"replies":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/comments?post=80111"}],"version-history":[{"count":3,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/80111\/revisions"}],"predecessor-version":[{"id":80452,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/80111\/revisions\/80452"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/79312"}],"wp:attachment":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=80111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=80111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=80111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}