#131 – Il bug del 2038

Pillole di Bit
Pillole di Bit
#131 - Il bug del 2038
Loading
/

A Gennaio del 2038 ci sarà un gran casino con il conteggio del tempo nei calcolatori, anzi, ad essere sinceri i casini sono già successi ed è tutta colpa di un overflow su un numeratore.

Pillole di Bit (https://www.pilloledib.it/) è un podcast indipendente realizzato da Francesco Tucci, se vuoi metterti con contatto con me puoi scegliere tra diverse piattaforme:
Telegram (o anche solo il canale dedicato solo ai commenti delle puntate)
TikTok (per ora è un esperimento)
Twitter
BlueSky
– Il mio blog personale ilTucci.com
– Il mio canale telegram personale Le Cose
Mastodon personale
Mastodon del podcast
– la mail (se mi vuoi scrivere in modo diretto e vuoi avere più spazio per il tuo messaggio)

Rispondo sempre

Se questo podcast ti piace, puoi contribuire alla sue realizzazione!
Con una donazione diretta:
– Singola con Satispay
Singola o ricorrente con Paypal
Usando i link sponsorizzati
– Con un acquisto su Amazon (accedi a questo link e metti le cose che vuoi nel carrello)
– Attivando uno dei servizi di Ehiweb
– Iscrivendoti a FiscoZen, se hai la Partita IVA (prima consulenza gratuita e 50€ di sconto sul primo anno)

Se hai donato più di 5€ ricordati di compilare il form per ricevere i gadget!

Il sito è gentilmente hostato da ThirdEye (scrivete a domini AT thirdeye.it), un ottimo servizio che vi consiglio caldamente e il podcast è montato con gioia con PODucer, un software per Mac di Alex Raccuglia


Ciao a tutti e bentornati all’ascolto di Pillole di Bit, questa è la puntata 131 e io sono, come sempre, Francesco.

Il 19 Gennaio 2038 alle 3:14:07 sarà l’ultimo momento prima del crash. Perché il secondo successivo, per i computer,almeno alcuni, sarà venerdì 13 dicembre 1901 alle 20:45:52.

Un bel problema.

Eh, ma è tra 18 anni più o meno!

Certo, ma i problemi iniziano ad esserci già adesso, per i sistemi che calcolano cose molto in là nel tempo.
Ok, è necessario partire dalle basi.
Contare il tempo, calcolarlo e usarlo in codici, programmi e database è sempre stato un gran problema nel mondo dei calcolatori. Un problema talmente grande che persino Apple, una delle più grandi aziende che sviluppa software e sistemi operativi, non più di 10 anni fa ha avuto un problema sulla sveglia in iOS al cambio dell’ora.
Gestire in un sistema operativo le date, le ore, i fusi orari, la gestione dell’ora legale e solare, il formato data che in certi posti è giorno, mese, anno, in certi altri è, mese, giorno anno e in altri ancora, anno, mese, giorno è un vero delirio.
Se poi aggiungiamo che l’anno può essere scritto con due o 4 cifre, arriviamo al famosissimo millennium bug.
I computer erano programmati per ignorare le prime due cifre dell’anno, in quanto si supponeva fossero sempre 19, ma il passaggio dal 99 allo 00 ha creato non pochi problemi a chi lavorava nel settore, per evitare che i computer pensassero di essere tornati improvvisamente al primo gennaio 1900.
Ogni sistema ha un suo modo per contare il tempo, i calcolatori a 32bit usano una variabile a 32bit, la massima gestibile, con segno, che conta i secondi a partire dal 1 gennaio 1970 a mezzanotte.
Ok, facciamo un passo indietro.
Una variabile a 32 bit può contenere un numero che va da 0 a 2 elevato a 32-1, cioè 4.294.967.295, il valore più basso, cioè zero equivale a 32 bit a zero, il più alto equivale a 32 bit a uno.
Dire che la variabile è con segno equivale a prendere il bit più significativo, quello più a sinistra, e dirgli semplicemente: se tu sei a zero, questo numero è positivo, se sei a 1, questo numero è negativo. In questo modo però la nostra variabile, può contare sempre i soliti quattro miliardi e rotti di numeri, ma metà in positivo e metà in negativo.
Bene, il 19 Gennaio 2038 alle 3:14:07 sarà il numero più alto che questa variabile può contenere come numero positivo 2.147.483.647, che in binario è uno zero seguito da 31 uno. Il numero successivo, che in binario è un 1 seguito da 31 zeri è -2.147.483.648. Un gran bel casino.
Siamo nel 2020, al 2038 mancano 18 anni, insomma di tempo per ragionarsi su ce n’è, no?
Ecco, no.
Ho letto un thread su Twitter, che porcalamiseria, non trovo più, di un tecnico che lavora in USA in un ente che gestisce le pensioni e fa calcoli sugli anni a venire e che per questo problema ha avuto un fermo della produzione e un danno stimato di più di un milione di dollari perché in questo periodo lo script che andava a calcolare le date future ha superato quella fatidica data.
Le buone notizie sono che di sistemi a 32 bit ormai, tranne quelli veramente vecchi vecchi, in produzione non ce ne sono più molti e che Linux, nel suo kernel, ha risolto questo problema dalla versione 5.6.
E come si risolve la cosa?
In un modo molto semplice, se il processore ce la fa: si passa tutto a una variabile a 64 bit con segno, che al posto di arrivare a due miliardi e rotti arriva a circa 9 miliardi di miliardi di secondi, roba da stare tranquilli per molti molti anni a venire.
Una piccola curiosità. Questo overflow dei contatori a 32 bit venne a galla la prima volta in Youtube, quando il video Ganga Style venne visto più di 2 miliardi di volte e il contatore andò in overflow, imponendo così agli sviluppatori di Google di cambiare la dimensione dello stesso da 32 a 64 bit.

I contatti
Trovate tutti i contatti e i modi per sostenermi in questo progetto direttamente nelle note di questa puntata o sul sito www.pilloledib.it, mi trovate su twitter, nel gruppo telegram, il canale che preferisco e che ormai conta più di 200 iscritti oppure via mail, se volete scrivere di più.
Se volete sostenermi con 5€ o più, compilate il form e vi spedisco gli adesivi a casa.
Grazie a chi ha donato in questa settimana!
Una nota per chi ha difficoltà con i link e con il gruppo telegram. Se nelle note dell’episodio della vostra app non vedete nessun link, ma solo il sito all’inizio cliccabile, cliccate lì e il vostro telefono vi porterà al sito vero con tutti i link fatti bene.
Non trovate il gruppo telegram cercandolo dentro telegram, l’ho dovuto rendere privato per evitare di essere sommerso dallo spam, quindi, per iscrivervi fate riferimento al link nelle note della puntata o nella barra laterale del sito, se lo aprite da desktop.

Il tip
Questo tip con le variabili a 32 o a 64 bit non c’entra nulla, vi avverto.
In effetti non c’entra propro nulla con il digitale, è più cosa da carta e forbici o legno e seghetto alternativo.
Vi è mai successo di dover fare un lavoro con il legno o con la carta e, avendo la necessità di tagliare uno o più pezzi non sapevate come arrangiarli sui pezzi di dimensione standard che si possono trovare in cartoleria o in falegnameria?
Bene, esiste un tool che fa al caso vostro. Si mettono le dimensioni dei pezzi finiti che vi serve ottenere, l’eventuale spessore della lama di taglio, la dimensione delle superfici grandi da cui partire e lui vi restituirà la miglior disposizione di taglio di tutti i pezzi, in modo da ottimizzare le superfici e le lunghezze di taglio. Sembra quasi magia, invece è realtà, è gratis ed è online, si chiama Cut List Optimizer e i link lo trovate nelle note dell’episodio.


Bene è proprio tutto, non mi resta che salutarvi e darvi appuntamento alla prossima puntata.

Ciao!