Strani insetti e le loro storie
Se cerchi nel World Wide Web bug strani, sorprendenti e divertenti, troverai molte storie interessanti.
In questo articolo vogliamo riassumere alcuni casi di bug famosi, da quelli divertenti a quelli altamente distruttivi.
Tra l’altro, la scoperta e la correzione sono spesso interessanti quanto il bug stesso.
Il bug delle email a 500 miglia
Uno dei bug più curiosi è stato scoperto in un sistema di posta elettronica universitario.
Un professore ha notato che le e-mail inviate a destinatari nel raggio di 500 miglia venivano consegnate senza problemi, mentre quelle inviate a destinatari più lontani non arrivavano mai.
Come è possibile?
Dopo aver scervellato e setacciato il codice, si è scoperto che l’errore risiedeva in un parametro di timeout basato su un periodo di tempo che permetteva ai segnali luminosi di percorrere una certa distanza.
Dal momento che gli sviluppatori avevano utilizzato la velocità della luce nel calcolo, il risultato era un “orizzonte” molto reale, anche se non intenzionale, di 500 miglia per la comunicazione via e-mail.
Dopo aver modificato il parametro del timeout, il bug è stato risolto.
Tra l’altro, da questo bug deriva anche il nome di una newsletter e di un blog che si occupa esclusivamente di bug software assurdi.
La newsletter, che vale la pena leggere, si chiama 500 Mile Email ed è stata fondata da Harley Hicks.
Il Mars Climate Orbiter
Il Mars Climate Orbiter era una sonda della NASA inviata su Marte nell’ambito del programma Discovery nel 1999, ma alla fine si è bruciata a causa di un bug del software tanto famoso quanto semplice.
La fine ingloriosa di quello che all’epoca era un sistema altamente tecnologico fu causata da un semplice errore di unità di misura: mentre il team di navigazione effettuava i calcoli in unità metriche, il software dell’orbiter utilizzava unità di misura anglo-americane.
Utilizzava quindi unità come le libbre (per il peso), i pollici e i piedi (per la lunghezza) e i galloni (per il volume), che differivano dalle unità metriche come i chilogrammi, i metri e i litri.
Questa discrepanza ha fatto sì che l’orbiter volasse molto più vicino a Marte di quanto previsto e alla fine si è bruciato nell’atmosfera marziana.
Cosa possiamo imparare da questo episodio?
L’incidente ci mostra l’importanza di concordare standard e forme di comunicazione comuni nello sviluppo del software e di attenersi costantemente agli standard concordati.
Il bug del Pentium FDIV
Un altro esempio molto famoso è il bug FDIV dei processori Pentium di Intel a metà degli anni ’90. Questo bug nell’operazione di divisione in virgola mobile causava risultati errati per alcune divisioni.
Questo bug nell’operazione di divisione in virgola mobile faceva sì che il processore restituisse risultati errati per alcune divisioni.
Sebbene il bug si verificasse solo in condizioni molto specifiche e la maggior parte degli utenti probabilmente non se ne sarebbe mai accorta, l’attenzione pubblica che ricevette portò Intel a lanciare una campagna di sostituzione.
Questo incidente ha dimostrato l’importanza dell’accuratezza nello sviluppo dell’hardware e la crescente consapevolezza del pubblico nei confronti dei dettagli tecnici.
Tra l’altro, l’errore è talmente noto che esiste un articolo di Wikipedia a parte, che puoi leggere qui.
Il bug dell’anno 2000
Uno dei bug più famosi e potenzialmente catastrofici nella storia della tecnologia è stato quello dell’anno 2000, noto anche come problema dell’anno 2000.
Il bug derivava dalla pratica di codificare l’anno nei sistemi informatici con solo due cifre (ad esempio “99” per il 1999) per risparmiare spazio in memoria.
Questo ha portato al timore diffuso che, al passaggio dall’anno 1999 all’anno 2000, i sistemi informatici avrebbero interpretato l’anno “00” come 1900 e non come 2000, il che avrebbe potuto portare a calcoli errati e a malfunzionamenti in tutti i settori, dai sistemi bancari ai sistemi di controllo delle centrali elettriche.
In tutto il mondo sono stati investiti miliardi per risolvere il problema, aggiornando il software e testando i sistemi per assicurarsi che potessero gestire correttamente il nuovo millennio.
Grazie a questi sforzi, gli effetti catastrofici che si temevano non si sono verificati e il bug dell’anno 2000 è ora un monito sull’importanza della pianificazione preventiva nello sviluppo del software.
Il bug Heartbleed
Heartbleed è una grave falla di sicurezza nella libreria software OpenSSL, scoperta nell’aprile 2014.
OpenSSL è ampiamente utilizzato per implementare i protocolli SSL e TLS per le comunicazioni internet e fornisce la crittografia per una serie di servizi per proteggere dati sensibili come password e informazioni personali.
Il bug permetteva agli aggressori di leggere la memoria dei server web e quindi di accedere a una grande quantità di dati sensibili e riservati senza lasciare alcuna traccia.
La cosa preoccupante in questo caso non è stata solo la facilità di sfruttamento, ma anche il fatto che il bug è rimasto completamente inosservato per circa due anni.
Di conseguenza, Heartbleed ha portato a un aumento degli investimenti nella sicurezza del software open source e a una migliore comprensione dell’importanza della sicurezza nel mondo digitale.
Conclusione
Questi aneddoti dimostrano che i bug nello sviluppo del software possono assumere forme bizzarre.
Questo dovrebbe ricordarci che, nonostante i progressi della tecnologia, c’è ancora spazio per errori, disattenzioni e incomprensioni che possono avere conseguenze di vasta portata.
Le storie di questi bug non sono solo divertenti, ma servono anche come preziose lezioni sull’importanza della dovuta diligenza e della revisione approfondita dei prodotti di lavoro prima del loro rilascio (cioè, soprattutto, di un corretto testing del software).