domenica 2 febbraio 2020

VLOG 304: Il Millennium bug #OperazioneNostalgia



Oggi non solo faremo un salto nel passato, ma parleremo parecchio di passato, e lo faremo cominciando - innanzi tutto - a vent'anni fa circa: mi riferisco all'anno 1999, che è stato un anno particolarmente complicato per moltissimi tecnici, consulenti e sistemisti informatici.
Infatti sto per parlarvi di quello che era stato definito con la sigla Y2K (o - in inglese - "way two key"), ossia il Millennium bug, e ve ne parlerò oggi, in questo episodio di Diario di Viaggio on the road #OperazioneNostalgia
[🎵🎶]

Le risorse sono limitate e bisogna utilizzarle con parsimonia
Questa è la prima (se non una delle prime regole) che si impara quando si studia ingegneria informatica. Ed è una regola che ha - naturalmente - le sue basi di importanza, ma aveva una grandissima importanza soprattutto nel passato, nell'archeologia informatica: negli anni compresi fra il 1950, il 1960 e il 1970, quando le risorse erano incredibilmente e pesantissimamente limitate, e quindi qualsiasi soluzione in grado anche di far risparmiare un singolo bit sarebbe stata guardata con grandissimo interesse.
Per questo motivo nel momento in cui si dovette considerare di immettere delle date nel computer (di "registrare" una data), si considerò immediatamente di fare quello che facevano tutte le persone meccanicamente: registrare il giorno, registrare il mese e registrare le ultime due cifre dell'anno, perché qualsiasi persona che avesse letto una data (non so: 03/03/70) sapeva si riferiva al 3 marzo del 1970, certo NON al 3 marzo del 70 dC, millenovecento e rotti anni fa!
Il problema che è stato posto, però, è molto più complesso di quanto possa sembrare, perché naturalmente una persona dotata di raziocinio può capire la differenza tra il 70 e il 1970, un computer no: gli dai un valore, e lui lo tratta per quello che è!
E quindi sino a quando si arriva ad avere le ultime due cifre dell'anno che si riferiscono al millenovecento E QUALCOSA ma il computer memorizza solo le ultime due cifre, dici:
“Vabbè: ci aggiungiamo 1900 e abbiamo l'anno in corso”
Il problema si presenta quando si arriva al 1999 (che il computer memorizza come "99"): dopo il 1999 c'è il 2000, che il computer memorizza come "00".
Che può rappresentare un problema, ma non così grosso come sembri, giusto?
Eh beh: sbagliato!
Perché una delle prime cose che succede è questa: questo "00" dev'essere considerato un numero MAGGIORE DI 99, e poi quelli successivi: "01" per il 2001 è maggiore - magari - di "98";
"03", "04, "05" sono maggiori, magari, di "97"
E non è così semplice come sembra, perché il computer si limita a fare dei calcoli matematici, e per il computer "00", "01", "02" sono numeri MINORI di "97", "98", "99"!
Questo ha introdotto una serie di problemi che sembravano essere stupidi, risolvibili facilmente, ma che invece sono risultati dei problemi estremamente complessi, perché in molte situazioni si utilizzava la data per effettuare dei calcoli più specifici, e questo poteva portare il computer a ottenere dei valori inaspettati e quindi bloccarsi o andare completamente in errore.
Questo avrebbe potuto bloccare completamente dei macchinari, e ora se si fosse completamente bloccato un computer che serviva per fare i calcoli in uno studio commercialistico, sarebbe stato un problema sicuramente non indifferente, ma non così catastrofico.
Mentre provate a pensare se si dovesse bloccare, all'improvviso, alla mezzanotte del 31 dicembre 1999 (al passaggio con il 1 gennaio 2000) un macchinario che - per esempio - è un respiratore automatico che tiene in vita una persona che, altrimenti, non è in grado di respirare da sola.
Proviamo a immaginare se si bloccasse all'improvviso un macchinario (un computer) che tiene sotto controllo la temperatura del nucleo di un reattore nucleare.
Ecco quindi che quello che consideriamo come un semplice difetto poteva diventare una catastrofe di proporzioni (letteralmente) bibliche!
Per cercare di affrontare questo problema, nel corso soprattutto del 1998 e del 1999, moltissimi governi investirono centinaia di milioni di dollari per riuscire a risolvere questo problema, per analizzare questo problema, per cercare di intervenire modificando il codice, per cercare di intervenire ricostruendo parti di codice, per cercare di intervenire sostituendo o modificando o aggiornando parti di hardware, ed è stato un lavoro massacrante sotto molti punti di vista: in alcuni casi non si è potuto praticare delle soluzioni ben specifiche, bensì delle soluzioni molto arraffazonate.
Una delle soluzioni che è stata applicata, che ha riportato il Millennium bug in auge quest'anno (il 2020) è stata quella di risolvere il problema portandolo più avanti di vent'anni, ossia dire:
“Bene: adesso diciamo al computer che TUTTE LE DATE da "00" a "19" sono da considerare - in qualche modo, manualmente - dei numeri SUPERIORI a "99"!”
E questo ha portato il problema, semplicemente, in avanti: lo ha spostato al primo gennaio 2020, perché a questo punto (dal 1 gennaio 2020, registrato da alcuni computer come 01/01/20) si sarebbe ripresentata la situazione che il "20" diventava un numero MINORE DI "19"!
Il Millennium bug causò una vera e propria psicosi, che fu legata anche a tutta una serie di fattori di carattere commerciale e tutta una serie di idee che si erano costruite su rischi pazzeschi e clamorosi.
E su questo io vi voglio segnalare un interessante video di LGR che analizza anche questo discorso del 2020: questo video ve lo lascio linkato sul doobly-doo e sulla scheda, così andate e gli date un'occhiata.
Ma la cosa importante da dire è che - per fortuna - poi quando finalmente arrivò il 1 gennaio 2000 ci sono stati dei problemi ma sono stati dei problemi minori: sono stati degli errori minimi.
C'è stato - per esempio - un signore che ha restituito una videocassetta che aveva noleggiato il 30 dicembre, e si vide presentare un conto di 91mila dollari per cento anni di ritardo.
Ci fu un signore, in Germania, che si vide accreditare sul conto circa 12 milioni di Marchi (poco più di 6 milioni di Euro) come 100 anni di interessi.
Ma, a parte queste piccole cose, per fortuna non c'è stato nessun fallimento catastrofico e questo è anche il motivo per il quale molta stampa generalista, poi, ha cercato di "sgonfiare" l'idea del Millennium bug dicendo:
“E vabbè: ma dopo tutta questa storia, dopo tutte queste paure, alla fine non è successo niente. Forse il Millennium bug era falso!”
Invece no: il Millennium bug era VERO: c'erano respiratori che si bloccavano, c'erano macchine che si bloccavano; sono stati pochissimi e molto limitati i "danni" (ci sono state solo queste piccole disfunzioni), proprio perché furono investiti queste centinaia di milioni di dollari, proprio perché centinaia di migliaia di tecnici, di sistemisti, di consulenti informatici si alzarono le maniche e si misero al lavoro proprio per CERCARE DI LIMITARE IL PIÙ POSSIBILE I DANNI!
Questo è stato il Millennium bug: ne avete sentito parlare? Sapevate che c'era stato questo problema con l'arrivo del 1 gennaio 2000?
Sapevate che il terzo millennio NON È cominciato il 1 gennaio 2000, bensì il 1 gennaio 2001? (anche questo è stato - forse - uno dei piccoli errori del Millennium bug!) C'è qualche altra curiosità che avete sull'informatica? Parliamone nei commenti qua sotto, oppure su Twitter con l'hashtag #DdVotr
Bene: io sono Grizzly, questo era #OperazioneNostalgia
Come sempre vi invito a mettere pollice-in-alto, condividere questo vlog, iscrivetevi al canale; noi ci vediamo alla prossima puntata: ciao a tutti!

0 commenti: