{"id":80102,"date":"2026-02-04T07:00:00","date_gmt":"2026-02-04T15:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=80102"},"modified":"2026-04-07T13:51:51","modified_gmt":"2026-04-07T20:51:51","slug":"il-ciclo-ralph-wiggum-dai-primi-principi-it","status":"publish","type":"post","link":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/","title":{"rendered":"Il Ciclo Ralph Wiggum, Dai Primi Principi"},"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 \u00e8 un ciclo bash che esegue ripetutamente un agente IA contro controlli esterni (test, linter) fino a quando il lavoro non \u00e8 completato. Invece di chiedere al modello quando ha finito, decide l&#8217;infrastruttura. La tecnica \u00e8 passata da una fattoria di capre in Australia a un plugin di Anthropic in sei mesi. La lezione \u00e8 iniziare con il ciclo, non con il modello.<\/p>\n\n\n\t<\/div>\n<\/div>\n\n<p>Se hai utilizzato un agente di <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/vibe-coding-tools\/\">codifica IA<\/a> per pi\u00f9 di qualche ora, conosci il &#8220;muro&#8221;: l&#8217;agente compie progressi visibili, poi si blocca \u2014 e finisci per dover correggere e completare il lavoro da solo.<\/p>\n\n\n<p>Come spesso accade agli ingegneri IA, \u00e8 emerso un modello per risolvere quel problema: basta far iterare l&#8217;agente con controlli esterni finch\u00e9 il lavoro non viene effettivamente superato.<\/p>\n\n\n<p>L&#8217;approccio ha preso piede cos\u00ec tanto che ha ricevuto un nome \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=\"Ricordo per Agenti IA\" 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>E il meme ha preso piede perch\u00e9 il modello funziona. Entro la fine del 2025, <a href=\"https:\/\/venturebeat.com\/technology\/how-ralph-wiggum-went-from-the-simpsons-to-the-biggest-name-in-ai-right-now\" target=\"_blank\">Anthropic aveva formalizzato il tutto in un plugin ufficiale di Claude Code<\/a>.<\/p>\n\n\n<p>Ralph rappresenta un cambiamento nel modo in cui gli sviluppatori utilizzano gli strumenti esistenti. Invece di trattare i sistemi IA come assistenti interattivi, vengono eseguiti come processi a lunga durata, guidati da test, linters e condizioni di arresto esplicite.<\/p>\n\n\n<p>Quindi questa breve guida \u00e8 la versione pratica. Vedremo cos&#8217;\u00e8 realmente Ralph, perch\u00e9 funziona, come si \u00e8 diffuso, e cosa \u00e8 cambiato quando \u00e8 stato commercializzato.<\/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\">Cos&#8217;\u00e8 Veramente \u201cRalph\u201d?<\/h2>\n\n\n<p>Alla sua base, questo \u00e8 ci\u00f2 che Ralph rappresenta: eseguire un agente in un ciclo, verificare l&#8217;output contro qualcosa che non pu\u00f2 mentire come un test, un linter, un controllo dei tipi; e continuare a ciclare fino a quando non supera.<\/p>\n\n\n<p>Ecco fatto.<\/p>\n\n\n<p>L&#8217;esempio originale che <a target=\"_blank\" href=\"https:\/\/ghuntley.com\/ralph\/\">Geoffrey Huntley ha condiviso nel luglio 2025<\/a> era intenzionalmente diretto:<\/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> le varianti di codice seguono la stessa forma, solo con pi\u00f9 protezioni. Ma il principio non cambia: inserisci un prompt fissato nell&#8217;agente ripetutamente finch\u00e9 la realt\u00e0 esterna non dice che hai finito.<\/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=\"Il Giro di Ralph. Agente incontra Verifica Esterna.\" 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>Il ciclo in s\u00e9 \u00e8 quasi irrilevante, e ci\u00f2 che conta \u00e8 il contratto:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lo stato vive nel repository:<\/strong> File, differenze, log, cronologia git; tutto ci\u00f2 che \u00e8 durevole va qui.<\/li>\n\n\n\n<li><strong>Il completamento vive al di fuori del modello:<\/strong> Test, linter, verificatori di tipo; l&#8217;agente non decide quando ha finito; lo fa l&#8217;infrastruttura.<\/li>\n\n\n\n<li><strong>L&#8217;agente \u00e8 sostituibile:<\/strong> \u00c8 un lavoratore invocato ripetutamente fino a quando il controllo non viene superato; se oggi \u00e8 lento o stupido, sostituiscilo domani con qualcosa di pi\u00f9 veloce.<\/li>\n\n\n<\/ul>\n\n\n<p>Visto in questo modo, Ralph diventa un principio di design: smetti di chiedere al modello di sapere quando ha finito. Smetti di aspettarti che ricordi le restrizioni dopo i reset di contesto.<\/p>\n\n\n<p>Invece, costruisci il sistema in modo che il modello non possa fallire in quei modi.<\/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\">Perch\u00e9 Il Ciclo Resiste?<\/h2>\n\n\n<p>Alcuni motivi:<\/p>\n\n\n<h3 class=\"wp-block-heading\">1. Le Finestre di Contesto si Comportano Come Buffer<\/h3>\n\n\n<p>Huntley inquadra spesso le finestre di contesto in termini di basso livello:<\/p>\n\n\n<p>\u201cPensa come un ingegnere C o C++. Le finestre di contesto sono array.\u201d<\/p>\n\n\n<p>Hanno una dimensione fissa; scorrono; sovrascrivono; dimenticano.<\/p>\n\n\n<p>Le sessioni di lunga durata presuppongono una continuit\u00e0 che non esiste, quindi trattare il buffer come memoria duratura porta a deviazioni, vincoli mancati e comportamenti incoerenti.<\/p>\n\n\n<p>Ralph si immerge nella realt\u00e0 del sistema. Piuttosto che fingere che la finestra di contesto sia stabile, la tratta come se fosse usa e getta.<\/p>\n\n\n<p>Lo spazio di lavoro temporaneo dell&#8217;agente viene resettato tra un&#8217;iterazione e l&#8217;altra, mentre lo stato persistente rimane su disco. Il repository accumula verit\u00e0 attraverso le esecuzioni. Questo rende la riattivazione dell&#8217;agente una routine piuttosto che uno spreco; ogni ciclo inizia da zero ma si basa su ci\u00f2 che \u00e8 effettivamente persistito.<\/p>\n\n\n<h3 class=\"wp-block-heading\">2. I Controlli Esterni Superano Il Ragionamento Interno<\/h3>\n\n\n<p>Molti framework di agenti rispondono al fallimento aggiungendo struttura all&#8217;interno del modello: pianificatori, riassunti, stato interno e cicli di riflessione.<\/p>\n\n\n<p>Ralph mantiene l&#8217;intelligenza fuori dall&#8217;agente. Si basa su:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Una specifica fissata che non si sposta<\/li>\n\n\n\n<li>Prove concrete dall&#8217;ultimo esecuzione<\/li>\n\n\n\n<li>Un cancello deterministico che valuta il successo<\/li>\n\n\n<\/ul>\n\n\n<p>L&#8217;agente non decide quando il lavoro \u00e8 finito &#8211; lo fa l&#8217;arnese.<\/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=\"Framework Tradizionali per Agenti. Intelligenza all'interno del modello.\" 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>Ecco perch\u00e9 Ralph eccelle nel lavoro meccanico: refactoring, migrazioni, pulizia, compiti di conformit\u00e0&#8230; Ovunque il successo possa essere misurato da uno script piuttosto che dal giudizio, l&#8217;iterazione diventa affidabile.<\/p>\n\n\n<p>Il modello non pu\u00f2 sottrarsi ai requisiti perch\u00e9 i requisiti esistono <em>esternamente<\/em> al suo ragionamento.<\/p>\n\n\n<h3 class=\"wp-block-heading\">3. La Compattazione Erode i Vincoli<\/h3>\n\n\n<p>Una critica ricorrente di Huntley prende di mira la sintesi e la compattazione.<\/p>\n\n\n<p>Quando un sistema chiede al modello di decidere cosa \u00e8 abbastanza importante da conservare, si perdono informazioni \u2014 le restrizioni si attenuano, i casi limite scompaiono e i perni cadono.<\/p>\n\n\n<p>Ralph elude questo mantenendo gli input letterali:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Le specifiche rimangono verbatim invece di essere riassunte,&nbsp;<\/li>\n\n\n\n<li>L&#8217;output di errore rimane grezzo e non filtrato; e&nbsp;<\/li>\n\n\n\n<li>La cura della memoria non passa mai nel modello.<\/li>\n\n\n<\/ul>\n\n\n<p>Il sistema mantiene la fedelt\u00e0; l&#8217;agente opera all&#8217;interno di esso, limitato da ci\u00f2 che \u00e8 effettivamente presente piuttosto che da ci\u00f2 che il modello <em>pensa<\/em> dovrebbe esserci.<\/p>\n\n\n<h2 id=\"h2_so-how-did-the-idea-spread\" class=\"wp-block-heading\">Quindi, Come Si \u00c8 Diffusa L&#8217;Idea?<\/h2>\n\n\n<p>La tempistica \u00e8 piuttosto compressa.<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>19 Giugno 2025:<\/strong> Durante un incontro a San Francisco di circa 15 ingegneri che discutono di codifica agente, <a target=\"_blank\" href=\"https:\/\/www.humanlayer.dev\/blog\/brief-history-of-ralph\">Huntley presenta Ralph<\/a>, Cursed (il linguaggio di programmazione creato da Ralph) e trasmette in diretta la codifica autonoma durante la notte mentre dorme in Australia. La stanza ha una conversazione inquietante su quanto sia facile copiare l&#8217;80%-90% di un <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/saas-websites\/\">SaaS<\/a> e su quanti tipi di lavoro stanno per scomparire completamente.<\/li>\n\n\n\n<li><strong>Luglio 2025:<\/strong> Huntley pubblica<a target=\"_blank\" href=\"https:\/\/ghuntley.com\/ralph\/\"> il post originale sul blog<\/a> con la struttura base del loop bash. L&#8217;articolo include un esempio di prompt leggero e una richiesta: &#8220;potresti probabilmente trovare il repo di cursed lang su github se lo cercassi, ma per favore non condividerlo ancora.&#8221;<\/li>\n\n\n\n<li><strong>Agosto 2025:<\/strong> Si svolge l&#8217;hackathon degli agenti di YC \u2014 i team eseguono Claude Code in loop continui. Il risultato \u00e8<a target=\"_blank\" href=\"https:\/\/github.com\/repomirrorhq\/repomirror\/blob\/main\/repomirror.md\"> 6 repository realizzati in una notte<\/a>. Dexter Horthy esegue un loop sperimentale di Ralph su un refactoring di codice React. In oltre 6 ore, sviluppa un completo<a target=\"_blank\" href=\"https:\/\/github.com\/humanlayer\/humanlayer\/pull\/513\"> piano di refactoring ed esegue l&#8217;implementazione<\/a>.<\/li>\n\n\n\n<li><strong>Settembre 2025:<\/strong> Huntley<a target=\"_blank\" href=\"https:\/\/ghuntley.com\/cursed\/\"> lancia ufficialmente Cursed Lang<\/a>, il linguaggio di programmazione che Ralph ha creato. Esiste in tre implementazioni (C, Rust, Zig), ha una libreria standard e un compilatore di secondo livello scritto in Cursed stesso.<\/li>\n\n\n\n<li><strong>Ottobre 2025:<\/strong> Dexter presenta Ralph a Claude Code Anonymous a San Francisco. La domanda del pubblico: &#8220;Quindi lo consigli?&#8221; La sua risposta: &#8220;Le cose stupide possono funzionare sorprendentemente bene. Cosa potremmo aspettarci da una versione intelligente?&#8221;<\/li>\n\n\n\n<li><strong>Dicembre 2025:<\/strong> Anthropic lancia un <a target=\"_blank\" href=\"https:\/\/github.com\/anthropics\/claude-plugins-official\/tree\/main\/plugins\/ralph-loop\">plugin ufficiale di Ralph Wiggum<\/a>. Il plugin prende il loop bash di Huntley e lo formalizza con Stop Hooks e dati strutturati di fallimento.<\/li>\n\n\n\n<li><strong>Gennaio 2026:<\/strong> Huntley e Horthy fanno un&#8217;analisi approfondita su YouTube confrontando l&#8217;implementazione originale del loop bash di Ralph con l&#8217;implementazione degli stop-hook di Anthropic.<\/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>L&#8217;originale Ralph \u00e8 un ciclo bash di 5 righe. Fai un cat di un file di prompt, lo invii a Claude, controlli se l&#8217;output supera il tuo test e continui fino a quando non lo fa. Tutto \u00e8 memorizzato su disco, tutto \u00e8 visibile. Se qualcosa si rompe, puoi vedere esattamente perch\u00e9.<\/p>\n\n\n<p>Il plugin Antropico inverte quel modello, quindi invece di eseguire il ciclo dall&#8217;esterno, installa un Stop Hook all&#8217;interno della tua sessione Claude. Quando Claude tenta di uscire, il gancio lo intercetta, verifica le tue condizioni di completamento e reinserisce lo stesso prompt se rimane del lavoro. I file modificati da Claude sono ancora l\u00ec.<\/p>\n\n\n<p>La cronologia di git \u00e8 ancora presente, ma i meccanismi del harness sono ora opachi \u2014 nascosti in un file di stato markdown, sensibili ai permessi, facili da danneggiare se non sai cosa stai facendo.<\/p>\n\n\n<p>Questo \u00e8 il classico compromesso dell&#8217;astrazione.<\/p>\n\n\n<p>Il plugin riduce il costo di adozione. Non devi scrivere bash e non devi pensare ai cicli. Ma mentre il meccanismo si nasconde, l&#8217;intuizione originale diventa pi\u00f9 facile da trascurare.<\/p>\n\n\n<p>La versione bash-loop ti obbliga a progettare il sistema di supporto. La versione del plugin ti permette di saltare quel passaggio, il che va bene fino a quando non incontri un caso limite e non riesci a vedere cosa sta effettivamente succedendo.<\/p>\n\n\n<p>Dexter Horthy lo ha testato e ha scoperto che si blocca in modi criptici a meno che non si usi \u201c&#8211;dangerously-skip-permissions.\u201d Il plugin installa hook in posti strani, utilizza file di stato opachi e se cancelli il file markdown prima di fermarlo, rompi Claude in quel repository finch\u00e9 non disabiliti completamente il plugin.<\/p>\n\n\n<p><strong>Allora, qual \u00e8 la lezione?<\/strong> Entrambi funzionano, ma funzionano per motivi diversi. Il ciclo bash funziona perch\u00e9 \u00e8 semplice e trasparente. Il plugin funziona quando l&#8217;astrazione non nasconde qualcosa di critico.<\/p>\n\n\n<h2 id=\"h2_what-do-you-learn-from-running-it\" class=\"wp-block-heading\">Cosa Apprendi Dal Gestirlo?<\/h2>\n\n\n<p>Ralph presuppone una distanza tra l&#8217;umano e l&#8217;agente. Non ti siedi nella sessione e lo guidi. Invece, lo avvii, ti allontani, ispezioni i manufatti quando finisce e aggiusti i vincoli per la prossima iterazione.<\/p>\n\n\n<p>L&#8217;interazione avviene a livello di harness \u2014 il prompt, i test, le condizioni di arresto \u2014 non all&#8217;interno della conversazione.<\/p>\n\n\n<p><strong>Con il tempo, emerge un modello: la maggior parte dei fallimenti non sono fallimenti del modello; sono fallimenti del sistema.<\/strong><\/p>\n\n\n<p>Le specifiche erano vaghe, il test era troppo generico, o la condizione di completamento non descriveva realmente cosa significa &#8220;completato&#8221;.<\/p>\n\n\n<p>Una volta che lo vedi qualche volta, il tuo istinto cambia. Smetti di chiederti &#8220;come posso rendere Claude pi\u00f9 intelligente?&#8221; e inizi a chiederti &#8220;come posso rendere i vincoli pi\u00f9 stretti?&#8221;<\/p>\n\n\n<p>Qui le specifiche diventano fondamentali.<\/p>\n\n\n<h2 id=\"h2_specs-as-control-surfaces\" class=\"wp-block-heading\">Specifiche Come Superfici Di Controllo<\/h2>\n\n\n<p>Huntley ridefinisce le specifiche non come documentazione ma come input di controllo fissi. Le produci attraverso una conversazione con Claude, le modifichi deliberatamente fino a quando non sono precise e poi le fissi. Una volta fissate, non cambiano per l&#8217;intero ciclo.<\/p>\n\n\n<p>Questo \u00e8 importante perch\u00e9 le specifiche fanno tre cose contemporaneamente:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Limitano ci\u00f2 che l&#8217;agente pu\u00f2 inventare:<\/strong> Senza una specifica precisa, Claude aggiunger\u00e0 strati di protezione, astrazioni o funzionalit\u00e0 che non hai mai richiesto, espandendo l&#8217;ambito con ogni iterazione.&nbsp;<\/li>\n\n\n\n<li><strong>Stabiliscono ricerca e recupero:<\/strong> Cos\u00ec l&#8217;agente non allucina nuovi requisiti.<\/li>\n\n\n\n<li><strong>Stabilizzano il comportamento attraverso le iterazioni:<\/strong> Ogni iterazione risolve lo stesso problema, non una interpretazione leggermente diversa di esso.<\/li>\n\n\n<\/ol>\n\n\n<p>Se la tua specifica \u00e8 vaga riguardo al significato di &#8220;fatto&#8221;, l&#8217;agente lo interpreter\u00e0 diversamente ad ogni ciclo. Finirai per avere una deriva, espansione degli obiettivi e iterazioni che si contraddicono a vicenda.<\/p>\n\n\n<h2 id=\"h2_how-do-you-run-the-loop-responsibly\" class=\"wp-block-heading\">Come Gestisci Il Ciclo Responsabilmente?<\/h2>\n\n\n<p>Una configurazione minima di Ralph spesso appare come:<\/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>La meccanica del ciclo conta molto meno delle regole che lo circondano:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Mantieni la specifica immutabile; non modificarla a met\u00e0 ciclo basandoti su quello che fa Claude.&nbsp;<\/li>\n\n\n\n<li>Codifica il completamento come controlli eseguibili.<\/li>\n\n\n\n<li>Impone limiti di iterazione e limiti di tempo in modo che il ciclo non possa durare per sempre e consumare il tuo budget di token.&nbsp;<\/li>\n\n\n\n<li>Conserva i log e le differenze in modo che tu possa ispezionare cosa \u00e8 andato storto se succede.&nbsp;<\/li>\n\n\n<\/ul>\n\n\n<p>Inoltre, la pratica operativa ha rivelato alcune euristiche importanti:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Preferisci piccole, regolari modifiche piuttosto che grandi ristrutturazioni, perch\u00e9 i grandi cambiamenti accumulano errori e sono pi\u00f9 difficili da debuggare.<\/li>\n\n\n\n<li>Riesegui sul main attuale piuttosto che fare rebase, perch\u00e9 i conflitti di merge sprecano iterazioni.<\/li>\n\n\n\n<li>Evita di usare Ralph per lavori esplorativi, perch\u00e9 se non hai test di accettazione chiari, otterrai solo un ciclo caotico che inventa cose che non hai chiesto.<\/li>\n\n\n<\/ul>\n\n\n<p>Il vincolo \u00e8 la funzionalit\u00e0.<\/p>\n\n\n<h2 id=\"h2_the-loop-is-the-lesson\" class=\"wp-block-heading\">Il Loop <em>\u00c8<\/em> la Lezione<\/h2>\n\n\n<p>Mentre Ralph guadagnava terreno, sono emerse variazioni. Alcuni team hanno costruito cicli esterni strutturati intorno agli agenti che utilizzano gli strumenti. Altri hanno aggiunto componenti verificatori separati: un modello diverso che esamina l&#8217;output del lavoratore prima che il ciclo decida di terminare. Queste estensioni funzionano, s\u00ec, ma solo se rispettano l&#8217;intuizione originale.<\/p>\n\n\n<p><strong>La regola \u00e8 semplice: la verifica deve rimanere deterministica, e i riassunti non devono mai sostituire gli input primari.<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Se aggiungi un verificatore, dovrebbe controllare cose concrete: i test passano, il linter termina correttamente, il git diff corrisponde alle aspettative.&nbsp;<\/li>\n\n\n\n<li>Se aggiungi cicli esterni strutturati, dovrebbero comunque vedere l&#8217;output grezzo e i log grezzi, non un riassunto pulito di ci\u00f2 che \u00e8 andato storto.&nbsp;<\/li>\n\n\n<\/ul>\n\n\n<p>L&#8217;argomento principale di Huntley \u00e8 che <a target=\"_blank\" href=\"https:\/\/linearb.io\/dev-interrupted\/podcast\/inventing-the-ralph-wiggum-loop\">lo sviluppo di software come professione \u00e8 effettivamente morto<\/a>, ma l&#8217;ingegneria del software \u2014 la pratica di costruire sistemi bene \u2014 \u00e8 pi\u00f9 viva che mai.<\/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>Uno Sguardo Ai Principi Fondamentali Del Loop Di Ralph Wiggum \u2014 Come I Sistemi, Le Piattaforme E Gli Incentivi Si Allontanano Dall&#8217;intenzione All&#8217;assurdit\u00e0, E Perch\u00e9 Continua A Succedere.<\/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":"Uno sguardo ai principi di base del Ralph Wiggum Loop \u2014 come i sistemi, le piattaforme e gli incentivi si allontanano dall'intenzione verso l'assurdit\u00e0, e perch\u00e9 continua ad accadere.","toc_headlines":"[[\"h-what-is-ralph-really\",\"Cos'\u00e8 Veramente \u201cRalph\u201d?\"],[\"h2_why-does-the-loop-hold-up\",\"Perch\u00e9 Il Ciclo Resiste?\"],[\"h2_so-how-did-the-idea-spread\",\"Quindi, Come Si \u00c8 Diffusa L'Idea?\"],[\"h2_bash-loop-ralph-vs-plugin-ralph\",\"Bash-loop Ralph vs. Plugin Ralph\"],[\"h2_what-do-you-learn-from-running-it\",\"Cosa Apprendi Dal Gestirlo?\"],[\"h2_specs-as-control-surfaces\",\"Specifiche Come Superfici Di Controllo\"],[\"h2_how-do-you-run-the-loop-responsibly\",\"Come Gestisci Il Ciclo Responsabilmente?\"],[\"h2_the-loop-is-the-lesson\",\"Il Loop \u00c8 la Lezione\"]]","hide_toc":false,"footnotes":""},"categories":[15052],"tags":[],"class_list":["post-80102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-talk-it"],"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>Il Ciclo Ralph Wiggum, Dai Primi Principi - DreamHost Blog<\/title>\n<meta name=\"description\" content=\"Uno sguardo ai principi di base del Ralph Wiggum Loop \u2014 come i sistemi, le piattaforme e gli incentivi si allontanano dall&#039;intenzione verso l&#039;assurdit\u00e0, e perch\u00e9 continua ad accadere.\" \/>\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\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Il Ciclo Ralph Wiggum, Dai Primi Principi\" \/>\n<meta property=\"og:description\" content=\"Uno sguardo ai principi di base del Ralph Wiggum Loop \u2014 come i sistemi, le piattaforme e gli incentivi si allontanano dall&#039;intenzione verso l&#039;assurdit\u00e0, e perch\u00e9 continua ad accadere.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/\" \/>\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-07T20:51:51+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":"Il Ciclo Ralph Wiggum, Dai Primi Principi - DreamHost Blog","description":"Uno sguardo ai principi di base del Ralph Wiggum Loop \u2014 come i sistemi, le piattaforme e gli incentivi si allontanano dall'intenzione verso l'assurdit\u00e0, e perch\u00e9 continua ad accadere.","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\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/","og_locale":"en_US","og_type":"article","og_title":"Il Ciclo Ralph Wiggum, Dai Primi Principi","og_description":"Uno sguardo ai principi di base del Ralph Wiggum Loop \u2014 come i sistemi, le piattaforme e gli incentivi si allontanano dall'intenzione verso l'assurdit\u00e0, e perch\u00e9 continua ad accadere.","og_url":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/","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-07T20:51:51+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\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#article","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/"},"author":{"name":"Ian Hernandez","@id":"https:\/\/www-dev.dreamhost.com\/blog\/#\/schema\/person\/220faf2464d5ae08e41cf5f3b28fdc96"},"headline":"Il Ciclo Ralph Wiggum, Dai Primi Principi","datePublished":"2026-02-04T15:00:00+00:00","dateModified":"2026-04-07T20:51:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/"},"wordCount":2042,"publisher":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#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\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/","url":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/","name":"Il Ciclo Ralph Wiggum, Dai Primi Principi - DreamHost Blog","isPartOf":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#primaryimage"},"image":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#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-07T20:51:51+00:00","description":"Uno sguardo ai principi di base del Ralph Wiggum Loop \u2014 come i sistemi, le piattaforme e gli incentivi si allontanano dall'intenzione verso l'assurdit\u00e0, e perch\u00e9 continua ad accadere.","breadcrumb":{"@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www-dev.dreamhost.com\/blog\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#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\/it\/il-ciclo-ralph-wiggum-dai-primi-principi-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dhblog.dream.press\/blog\/"},{"@type":"ListItem","position":2,"name":"Il Ciclo Ralph Wiggum, Dai Primi Principi"}]},{"@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":"it","translations":{"it":80102,"en":79311,"es":79297,"de":80011,"ru":80017,"uk":80025,"pl":80096,"nl":80111,"pt":80117,"fr":80175},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/80102","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=80102"}],"version-history":[{"count":3,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/80102\/revisions"}],"predecessor-version":[{"id":80370,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/80102\/revisions\/80370"}],"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=80102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=80102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-dev.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=80102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}