All Episodes

May 17, 2025 22 mins

Oggi parliamo di come funziona la gestione degli errori nel linguaggio HTML e del perché una legge fondamentale di Internet trasforma il nome di Chuck Norris nel colore rosso.

Pensieri in codice

chucknorrisfacts.com su Archive.org

Entra a far parte della community

Canale Telegram
Gruppo Telegram

Sostieni il progetto

Sostieni tramite Satispay
Sostieni tramite Revolut
Sostieni tramite PayPal (applica commissioni)
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader, Satispay
Sostenitori di oggi: Edoardo Secco, Carlo Tomas, Luca Francesca, Marco Frau

Partner

GrUSP (Codice sconto per tutti gli eventi: community_PIC)
Schrödinger Hat

Fonti dell'episodio

https://ultimateactionmovies.com/the-history-of-conans-walker-texas-ranger-lever/
https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#rules-for-parsing-a-legacy-colour-value
https://devopedia.org/postel-s-law

Crediti

Sound design - Alex Raccuglia
Voce intro - Maria Chiara Virgili
Voce intro - Spad
Musiche - Kubbi - Up In My Jam, Light-foot - Moldy Lotion, Creativity, Old time memories
Suoni - Zapsplat.com
Cover e trascrizione - Francesco Zubani

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:00):
Oggi parliamo di una delle più importanti e al tempostesso meno conosciute leggi dell'informatica,
un vero e proprio pilastro del web così come lo conosciamoma che probabilmente non hai mai sentito nominare.
Sto parlando della legge di Postel.
Per l'occasione ho deciso di avviare ildiscorso partendo da un altro pilastro del web,

(00:23):
uno molto più conosciuto che ti sarà invece sicuramentecapitato di vedere se frequenti i social network,
e cioè i Chuck Norris Facts.
Quindi mettiti comodo o comoda e lascia che io ti guidi in
questo viaggio un po' surreale attraverso il funzionamento
e la filosofia del linguaggio HTML e quindi del web.

(00:46):
Sigla!
Benvenuti su Pensieri in Codice,
il podcast dove si ragiona da informatici,
con Valerio Galan.
Non so se sia realmente necessario spiegare cosa sono i Chuck Norris Facts,

(01:07):
ma nel caso in cui tu non li conosca,
in questo blocco ti farò qualche esempio e ti racconterò unpo' la presunta storia della nascita di questo fenomeno.
Se la cosa non ti interessa,
perché magari sei già il massimo esperto di Chuck Norris,
allora ti consiglio di schippare questo capitoloe di passare direttamente a quello successivo.

(01:30):
Non preoccuparti perché il resto dell'episodio saràtranquillamente comprensibile anche saltando questa parte.
I Chuck Norris Facts sono un insieme di affermazioni ironiche ed esagerate cheattribuiscono al famoso attore marzialista Chuck Norris qualità sovrumane,
imprese straordinarie o capacità impossibili.

(01:53):
Si tratta di battute surreali e paradossali chegiocano con l'immagine iconica dell'attore,
noto soprattutto per i suoi molteplici ruoli interpretati in film d'azionee serie TV e soprattutto nella celebre serie Walker Texas Ranger.
Questi "fatti" non riflettono ovviamente la realtà esono invece costruiti per divertire e creare meme,

(02:18):
esagerando i toni fino ai limiti dell'assurdo e oltre.
Tra le innumerevoli quindi troviamo battute del tipo "Chuck Norris
può sbattere una porta girevole" oppure "lo spazio profondo esiste
perché ha paura di stare sullo stesso pianeta con Chuck Norris".
La nascita di questo fenomeno non è esattamente individuabile ma

(02:40):
da molti viene fatta risalire all'anno 2004 e ad un programma
televisivo statunitense intitolato Late Night di Conan O'Brien.
Prova ad immaginare,
siamo agli inizi degli anni 2000.
Internet si sta ancora diffondendo e ha appenainiziato a riempirsi di contenuti virali e di meme.

(03:01):
Nel 2004 la NBC,
che produce il Late Night,
acquista la Universal,
la quale tra gli altri detiene anche tutti idiritti degli episodi di Walker Texas Ranger.
Conan O'Brien,
che per una decina d'anni è stato un pilastro dellaprogrammazione a tarda notte negli Stati Uniti,
ha quindi improvvisamente accesso completo egratuito a tutta una nuova serie di contenuti.

(03:27):
Il conduttore ovviamente non si lascia sfuggire all'occasione di
sfruttare la situazione e aggiunge al proprio repertorio comico
numerosi commenti sarcastici sulla serie interpretata da Chuck Norris,
della quale manda anche in onda innumerevoli estratti.
In breve tempo però quella che è nata come una presa ingiro si trasforma in un susseguirsi di sketch divertenti,

(03:50):
entusiasmanti e soprattutto esagerati,
nei quali l'attore appare alla stregua di un supereroe.
Nel giro di un anno nasce il sito ChuckNorrisFacts.
com,
un progetto ironico creato da parte di alcuni fan,
la cui idea è quella di cavalcare l'onda di O'Brien ecelebrare in modo scherzoso l'immagine di Chuck Norris,

(04:12):
trasformandolo in una sorta di supereroe invincibile e onnipotente.
Ora il sito non è più accessibile,
ma può essere comunque visionato su Archive.
org.
Ti lascio il link in descrizione.
Ad ogni modo,
frasi del tipo "non c'è nessun mento dietro la barba di Chuck Norris,
c'è solo un altro pugno" oppure "quando Chuck Norris fa le flessioni

(04:36):
non alza se stesso ma spinge il mondo in basso" sono solo alcune
delle simpatiche esagerazioni che diventeranno poi centinaia.
Il successo dei Chuck Norris Facts è subito immediato e travolgente.
Presto queste battute diventano un fenomeno globale,
diffuso su forum,
social media e persino nei programmi televisivi.

(04:57):
Chuck Norris stesso,
inizialmente sorpreso,
accoglie poi con simpatia il fenomeno,
raccontando in diverse interviste che i "fatti" rappresentanouna dimostrazione di affetto e ironia da parte dei suoi fan.
Oggi,
possiamo tranquillamente affermare che i Chuck Norris Facts
sono uno dei primi esempi di contenuti virali capaci di unire

(05:21):
milioni di persone attorno ad un'idea leggera e giocosa,
trasformando una star del cinema in un'icona culturale anche del mondo digitale.
Ma ora ti starai chiedendo.
Che cosa centra Chuck Norris con l'HTML o con la legge di Postel?

(05:42):
Beh,
devi sapere che Chuck Norris,
oltre ad aver contato fino a infinito due volte e a poter dividere per zero,
è perfino un colore HTML.
Sì,
hai capito bene,
non "ha" un colore,
nel senso che è il suo preferito o quello che lo contraddistingue.

(06:02):
Lui "è" un colore.
Se infatti si scrive all'interno del codice di una paginaHTML qualcosa del tipo "font color = Chuck Norris",
tutto attaccato e fra virgolette,
beh,
si ottiene che il testo incluso nel tag diventa di un bel colore rosso.
Rosso come il mar rosso,

(06:22):
quello le cui acque e mosea ha diviso ma che Chuck Norris ha anche moltiplicato,
sommato e sottratto.
Ok,
la smetto,
era l'ultima,
giuro.
Com'è possibile però che l'attributo "color =Chuck Norris" faccia diventare il testo rosso?
Beh,
tutto nasce dalla logica con la quale il linguaggio HTML gestisce gli errori.

(06:47):
In generale,
in HTML non esiste un vero e proprio stato di errore,
quindi i browser sono progettati per essere moltopermissivi e quando si trovano ad interpretare del codice,
generalmente fanno del loro meglio per correggereeventuali errori commessi dallo sviluppatore.
Ad esempio,

(07:08):
se in una pagina viene lasciato un tag come un div o un p aperto,
allora il browser fa quanto in suo potere per cercare di capire dove queltag avrebbe dovuto essere chiuso e mostrare il risultato nel modo corretto.
Un'impostazione di questo tipo però aggiunge al processo diinterpretazione del codice parecchi artifici e soluzioni imprecise,

(07:32):
che portano a fenomeni curiosi come appunto il fatto
che la stringa "Chuck Norris" finisca con l'essere
considerata un valore corrispondente ad un colore rosso.
Il motivo di questa fantasiosa interpretazione nasce da unset di regole ufficiali per la gestione dei colori "legacy",

(07:52):
cioè quelli provenienti da codice molto vecchio,
che raccomanda l'utilizzo di una specifica procedura ma che così
facendo porta a convertire il nome dell'attore in una stringa
che risulta poi corrispondere ad una tonalità di rosso.
Secondo quanto specificato da queste regole infatti,
quando si trova davanti ad un valore inconsueto,

(08:15):
il parser,
cioè il motore che si occupa di trasformareil codice HTML nella pagina di un sito,
deve tentare di interpretarlo come se fosse un numero esadecimale.
La ragione di questa scelta risiede nel fatto che si cercadi mantenere la massima retrocompatibilità del linguaggio.

(08:36):
L'esadecimale infatti è il sistema più vecchio utilizzato
per specificare i valori dei colori in HTML e pertanto
esso funziona anche con il codice più datato.
Ad ogni modo,
se correttamente specificato,
un valore in tale formato è composto dal carattere "cancelletto" seguito da trenumeri che vanno da 00 a FF e che indicano rispettivamente l'intensità di rosso,

(09:02):
di verde e di blu.
Mi raccomando,
tieni sempre a mente che nel formato esadecimale la numerazione segueappunto la base 16 e quindi un singolo numero va da 0 a F e non da 0 a 9,
come nella numerazione decimale.
Nel processo di rendering,
cioè la trasformazione del codice in elementi grafici,

(09:24):
il primo passaggio per elaborare un coloreesadecimale è la rimozione del cancelletto,
il quale è considerato una convenzione ma non è utile ai fini del calcolo.
Quindi,
ad esempio,
se avessimo un valore tipo "cancelletto 7F0A89",
dopo la prima pulizia otterremmo il corrispettivo 7F0A89,

(09:48):
semplicemente senza "cancelletto".
Come secondo passo di rendering,
poi,
qualsiasi carattere che non sia un numero da 0 a 9 o una lettera da A ad F,
appunto uniche cifre valide in esadecimale,
deve essere sostituito con uno 0.
Dunque,
se il valore fosse ad esempio "ABCDXY123",

(10:13):
esso diventerebbe "ABCD000123".
Al terzo passaggio viene invece standardizzata la lunghezza delle stringhe.
Se essa,
infatti,
è vuota o non è divisibile per 3,
vanno aggiunti degli 0 fino a raggiungere una lunghezza adeguata,

(10:33):
cioè un multiplo di 3.
Per esempio,
il valore "A" diventerebbe "A00",
mentre il valore "ABCDE" diventerebbe "ABCDE0".
Al quarto passaggio,
poi,
il valore va separato in tre parti di pari lunghezza cheandranno a determinare le componenti di colore rosso,

(10:55):
verde e blu.
Se ad esempio avessimo "ABCDEF000",
la stringa verrebbe divisa in "ABCDEF000",
dove il primo blocco rappresenterebbe il rosso,
il secondo il verde e il terzo il blu.
A questo punto vanno applicate altre rifiniture.
Per esempio,

(11:15):
se per caso i valori delle componenti fossero maggiori di 8 caratteri,
allora andrebbero tagliati rimuovendo icaratteri in eccesso partendo da sinistra.
E se la lunghezza fosse maggiore di 2 etutte le componenti iniziassero con uno 0,
allora andrebbero rimossi gli 0 iniziali fino a portarli a lunghezza 2.

(11:36):
E ancora,
se i tre valori risultassero più lunghi di 2 caratteri ciascuno,
andrebbero mantenuti solo i primi 2 caratteri,
scartando il resto.
Insomma,
sembra complicato a descriverlo così,
ma il concetto è che alla fine del processodevono rimanere tre numeri da due cifre.
Applicate quindi tutte queste trasformazioni,

(11:57):
il parser ha finalmente dei valori puliti che può utilizzare perrenderizzare un colore miscelando i livelli di rosso verde e blu,
e l'utente vedrà tale colore.
Ora,
tornando al nostro caso specifico,
quando il browser deve renderizzare il valore Chuck Norris,
stabilisce immediatamente che tra le variemodalità con cui può essere specificato un colore,

(12:23):
l'unica utilizzabile è proprio quella di fallback,
quindi quella esadecimale.
Questo perché le varie modalità più moderne hannoparole chiave nel valore che le identificano,
come RGB o HSL o il nome proprio di un colore,
tutte cose che chiaramente non corrispondono al nome dell'attore.

(12:43):
Il parser dunque avvia la trasformazione che abbiamo descritto poco fa,
e qui accade la magia.
Innanzitutto,
i caratteri non validi della stringa Chuck Norris vengono rimpiazzati con zeri,
ottenendo così C00 C00000000.

(13:04):
Questo semplicemente perché di tutte le lettere della parolasolo le C possono essere cifre valide in esadecimale,
tutto il resto diventa zero.
La cifra ottenuta in tal modo però non è un multiplo di tre,
e quindi va aggiunto uno zero per renderla tale.
Successivamente essa poi va divisa nelle tre parti di cui abbiamoparlato prima e pertanto queste diventano C00C000000 e 0000.

(13:36):
Per ciascuna di queste parti ora vanno presi solo iprimi due caratteri e quindi ciò che ci resta è C000000.
A questo punto abbiamo i tre valori per le tre componenti colore,
ma solo il primo è diverso da zero,
quindi banalmente nel colore ottenuto è presente una certaparte di rosso e sono totalmente assenti il verde e il blu,

(14:04):
e pertanto il risultato è rosso.
La gestione degli errori in HTML si basa su una filosofia nota come robustezza
o tolleranza degli errori ed è riassunta efficacemente dal principio
"si tollerante con ciò che accetti ma rigoroso con ciò che invii".

(14:28):
Questo principio prende il nome di legge di Postel,
dal nome dell'informatico che l'ha formulatadurante i primi anni dello sviluppo di Internet.
Come accennato prima,
i browser web sono progettati per non bloccarsi o restituireerrori critici anche quando incontrano HTML mal formato.
Essi infatti cercano di interpretare e riparare automaticamente i problemicosì da mostrare il contenuto nel modo più sensato possibile all'utente.

(14:57):
Questa tolleranza nell'interpretazione e nella gestione degli errorigioca un ruolo fondamentale nel funzionamento del metalinguaggio,
garantendo tutta una serie di caratteristiche tipiche dei siti web.
Innanzitutto c'è un tema di accessibilità universale.
Il web funziona anche per contenuti scritti male,
incompleti o realizzati molti anni addietro,

(15:20):
permettendo a chiunque di accedere alle informazionianche se esse non sono in condizioni ottimali.
Poi viene garantita un'enorme retrocompatibilità.
Gli ultimissimi browser sono perfettamente in grado di
visualizzare correttamente anche siti molto vecchi e
realizzati addirittura con precedenti versioni di HTML.

(15:40):
In tal modo essi garantiscono la continuità della frizione anche a distanzadi molti anni e abbattono la necessità di manutenere i contenuti vecchi.
E infine anche l'esperienza utente giova enormemente di questo
atteggiamento perché vengono evitate condizioni d'errore
e viene garantita una resa visiva piacevole e uniforme,

(16:03):
cose fondamentali per agevolare la frizioneanche da parte di utenti non esperti.
Ovviamente però questa tolleranza ha anche i suoi limiti.
Ad esempio può rendere più difficile il debugpoiché gli errori non sono sempre evidenti,
oppure può portare a comportamenti inusuali - vedi l'esempio di ChuckNorris - e incoraggiare pratiche di sviluppo poco pulite o poco rigorose.

(16:28):
Per questo motivo esistono strumenti specifici chiamati validatori che
permettono appunto di validare la bontà del codice HTML scritto e suggeriscono
correzioni e migliorie e inoltre con l'uso del nuovo HTML 5 sono state
introdotte moltissime funzionalità e linee guida che
permettono di realizzare codici HTML più potente,

(16:52):
pulito e corretto,
pur mantenendo intatto il principio di tolleranza e retrocompatibilità.
Ma queste sono altre storie di cui magari parleremo in altri episodi.
Tornando invece all'argomento di oggi,
la gestione degli errori in HTML grazie proprio alla filosofiadella legge di Postel risulta essere in effetti molto pragmatica,

(17:14):
essa infatti privilegia la continuità e la robustezzarispetto alla rigidità e all'ottimizzazione.
L'obiettivo principale non è puntare alla perfezione tecnica,
bensì garantire che il web funzioni sempre e comunque,
anche quando il codice risulta problematico o non aggiornatissimo o incompleto.

(17:35):
Più in generale questa legge rappresenta un importante principio di ingegneria
della resilienza che permette di massimizzare le capacità di comunicazione e
evitare che errori minori compromettano il funzionamento dell'intero sistema.
Essa in realtà è applicata a numerosi ambiti del mondo dell'informatica,
dalla gestione dei protocolli di rete finoalla progettazione dei formati dei file,

(18:00):
passando per l'implementazione di modelli di machine learning e software vari.
In effetti la legge di Postel non è solo un principio tecnico,
ma una vera e propria filosofia.
Essa infatti ci ricorda che in molti campi è importante essereflessibili e comprensivi per far sì che le cose funzionino.

(18:21):
La rigidità e la precisione sono certamente una virtù,
ma solo finché non inficiano il funzionamento generale.
Se portate all'estremo esse possono diventare unintralcio lungo il cammino verso il risultato desiderato.
Il web così come lo conosciamo è costruito su fondamenta di resilienza.

(18:41):
Un sito del 1996 può essere visualizzato ancora oggi in un browser moderno.
Una pagina può essere consultata anche se il css nonè più valido o addirittura è completamente assente.
E tutto questo è possibile proprio grazie al fatto che l'interpretazionedel linguaggio è stata da sempre basata sulla legge di Postel.

(19:05):
Oggi puntata un po' più breve del solito,
ma ho capito che se non mi trattengo sulla quantità di informazioni e fontiche prendo in considerazione finisce che a stento esce un episodio al mese.
Quindi,
rapidamente ringrazio i sempre presenti Edoardo e Carlo per laloro donazione mensile e Luca F e Marco C per la donazione spot.

(19:33):
In particolare Marco,
la tua email di questa mattina è stata davvero provvidenziale perché devi sapereche è la seconda volta che registro da capo questo intero episodio perché ieri,
dopo aver registrato per quasi tre ore,
mi sono reso conto che c'era una forte eco e quindi ho dovutobuttare via tutto e non hai idea di quanto mi sono innervosito.

(19:59):
Ma quello che mi hai scritto stamattina mi ha fattovenire voglia di registrare il prima possibile.
Tant'è vero che questa parte su di te non è nello script.
Ad ogni modo questi quattro fantastici ascoltatorihanno aderito alla filosofia value for value.
Probabilmente ormai già sai cosa vuol dire,
ma devo ripeterlo per chi magari è nuovo e non lo sa,

(20:22):
quindi perdonami.
Value for value in pratica è la filosofia a cui aderisce questo progetto.
Io produco contenuti gratuiti e senza pubblicitàche sono fastidiose e tracciano gli utenti,
però in cambio chiedo a te di farti la seguente domanda.
Pensieri in codice,
ha un valore per me?

(20:42):
Se lo ascolti in modo continuativo,
se ti insegna qualcosa,
se ti intrattiene,
allora forse un piccolo valore ce l'ha.
Pensaci e decidi senza nessun obbligo se tiva di restituire un po' di questo valore.
Tipo un caffè offerto.
E come fare per offrirmi un caffè?

(21:02):
Ovviamente con una donazione per cui trovi tutti i dettaglinella sezione sostieni del sito pensieri in codice.
it,
ma anche e soprattutto contribuendo alla diffusione del podcast.
Consiglialo,
fallo ascoltare,
parlane in giro,
online,
offline.
Ogni ascoltatore in più che magari si affeziona e diventaassiduo è un piccolo passo avanti per tutto il progetto.

(21:30):
Oppure supportami con qualche attività che sai o vuoi svolgere.
Potresti aiutarmi a gestire un account social o a ricercaree mettere insieme fonti o a scrivere gli episodi.
Ti dirò di più.
Se hai idee e ti va di espormele,
io sono qui in ascolto.
Ultimamente sto anche pensando che si potrebbero avviare nuove rubriche,

(21:54):
ma da solo non riesco a fare tutto.
Quindi lanciati!
Tanto non sono alla ricerca di professionisti,
ma di qualcuno che abbia un po' di tempo e buona volontà.
I contatti sono sempre tutti sul sito pensieri in codice.
it.
Mi raccomando con due "i".
In ogni caso noi ci sentiamo al prossimo episodio e nondimentichiamo mai che quando ogni sera i bambini vanno a dormire,

(22:18):
controllano che nell'armadio non ci sia l'uomo nero.
Ma quando ogni sera l'uomo nero va a dormire,
controlla che nell'armadio non ci sia Chuck Norris.
Ciao!
Advertise With Us

Popular Podcasts

On Purpose with Jay Shetty

On Purpose with Jay Shetty

I’m Jay Shetty host of On Purpose the worlds #1 Mental Health podcast and I’m so grateful you found us. I started this podcast 5 years ago to invite you into conversations and workshops that are designed to help make you happier, healthier and more healed. I believe that when you (yes you) feel seen, heard and understood you’re able to deal with relationship struggles, work challenges and life’s ups and downs with more ease and grace. I interview experts, celebrities, thought leaders and athletes so that we can grow our mindset, build better habits and uncover a side of them we’ve never seen before. New episodes every Monday and Friday. Your support means the world to me and I don’t take it for granted — click the follow button and leave a review to help us spread the love with On Purpose. I can’t wait for you to listen to your first or 500th episode!

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Special Summer Offer: Exclusively on Apple Podcasts, try our Dateline Premium subscription completely free for one month! With Dateline Premium, you get every episode ad-free plus exclusive bonus content.

24/7 News: The Latest

24/7 News: The Latest

The latest news in 4 minutes updated every hour, every day.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.