Cerca nel blog

2014/01/10

Com’è complicato il tempo! Meno male che c’è l’open source

L'articolo è stato aggiornato dopo la pubblicazione iniziale.

Il cambio d'anno festeggiato pochi giorni fa ci regala, come consueto, una serie di cambiamenti: buttar via i calendari obsoleti, abituarsi a scrivere l'anno con un 4 finale al posto del 3, e così via.

Niente di speciale, tutto sommato, perché il tempo è lineare e procede con scadenze ben familiari: secondi, minuti, ore, giorni, settimane, mesi, anni. Un sistema dal quale dipendiamo sempre di più, non solo per la puntualità ma anche per la validità per esempio delle transazioni bancarie o delle operazioni di borsa.

Ma in realtà il sistema è semplice soltanto in superficie: come racconta molto bene questo video di Computerphile (in inglese), un errore anche di un solo secondo può causare problemi a catena, e chiunque si trovi a dover insegnare a un computer come gestire correttamente i calcoli del tempo, o a dover prendere un appuntamento telefonico con un interlocutore dall'altra parte del mondo, si trova presto in un pantano di regole e di eccezioni.

Prima di tutto bisogna tenere conto, ovviamente, dei fusi orari: ma non basta aumentare o scalare di un'ora tonda, perché ci sono paesi come l'Australia, la cui zona centrale è nove ore e mezza avanti rispetto all'ora standard di Greenwich, o il Nepal, che è avanti di cinque ore e tre quarti. Serve una tabella con tutti i fusi orari e le relative eccezioni.

Poi c'è l'ora legale, che entra in vigore in giorni differenti in base alle nazioni: serve una tabella che elenchi tutte le date nelle quali ciascun paese del mondo passa dall'ora legale a quella solare e viceversa. E ci sono i paesi dell'emisfero sud, che in autunno portano le lancette indietro anziché avanti, e lo fanno, ovviamente, in date differenti. Bisogna tenere conto anche di questo.

Ma ci sono anche casi come Samoa, che si trova nel Pacifico, sulla linea di cambiamento di data: nel dicembre 2011 ha scelto di perdere un intero giorno di calendario, passando dal 29 direttamente al 31. Anche questo va incluso nei calcoli. Per fortuna esiste già un file che elenca i cambi di fuso orario passati e futuri, che vengono annunciati con un certo anticipo. Tranne nel caso della Libia, che l'anno scorso, con pochissimo preavviso, ha annullato l'ora legale, col risultato che è stato impossibile creare e distribuire gli aggiornamenti di tutti i software e che ogni computer libico, con qualunque sistema operativo, si è trovato a indicare l'ora sbagliata.

C'è di peggio. In Cisgiordania, a fine settembre scorso la popolazione israeliana si è trovata a usare un'ora diversa da quella palestinese, perché l'Autorità Palestinese aveva deciso di tornare all'ora solare, mentre i residenti israeliani avevano deciso di restare sincronizzati con il cambio dell'ora legale in Israele a fine ottobre. Nello stesso posto, insomma, c'erano due orari differenti in base all'etnia. E qui il programmatore si mette le mani nei capelli. Se non se li è già strappati prima. Ma non è finita.

Se è già un incubo calcolare che ore sono adesso in un altro luogo del mondo, immaginatevi cosa succede quando si tratta di calcolare date storiche. C'è da tenere conto del passaggio dal calendario giuliano a quello gregoriano, che però non è stato fatto da tutti: ci sono paesi che l'hanno adottato nel 1582, quando si è passati dal 4 ottobre direttamente al 15, e ci sono altri paesi che non l'hanno introdotto neanche adesso. Molti paesi europei passarono al calendario gregoriano in momenti differenti anche di secoli: la Danimarca e la Prussia nel 1700, l'Impero Britannico nel 1752, la Russia nel 1918, la Grecia nel 1923.

Neppure una cosa apparentemente ovvia e incontestabile come l'inizio dell'anno è facile da calcolare. In Inghilterra, dal dodicesimo secolo fino al 1751, l'anno legale iniziava il 25 di marzo, per cui tutte le date storiche di gennaio, febbraio e marzo vanno corrette (l'esecuzione di Carlo I, per esempio, avvenne il 30 gennaio 1648 secondo il calendario dell'epoca, ma oggi i libri di storia correggono e la indicano nel 1649). In altri termini, dopo il 31 dicembre 1712, per esempio, c'era il primo gennaio... 1712. In Scozia, invece, l'anno legale iniziava il primo gennaio già dal 1600, per cui a quei tempi passare dall'Inghilterra alla Scozia in gennaio, febbraio o marzo significava cambiare anno.

Queste possono sembrare stramberie antiche; oggi siamo più pratici e razionali, visto che siamo molto più interconnessi e interdipendenti. Invece no. Gli astronomi hanno introdotto i secondi intercalari, ossia secondi supplementari o mancanti, per tenere conto delle leggere irregolarità della rotazione terrestre, altrimenti il tempo coordinato universale o UTC, usato come riferimento principale in tutte le attività industriali e sociali, si sfaserebbe rispetto alla rotazione del pianeta (tempo solare). Quando c'è un secondo intercalare supplementare, c'è un minuto che ha 61 secondi e quindi gli orologi di precisione devono segnare 23:59:60. Dal 1972, quando è stato introdotto questo sistema, sono stati aggiunti 25 secondi intercalari.

Che differenza potrà mai fare un secondo in più? Tanta, se c'è di mezzo l'informatica. I computer non si aspettano un minuto che duri 61 secondi, e a volte vanno in tilt, come è successo ai sistemi della Oracle nel 2009 e a molti siti Internet che usavano un Linux non aggiornato nel 2012. Google risolve il problema “spalmando” il secondo nell'arco della giornata, in modo da non avere mai un minuto con 61 secondi.

Per fortuna ci sono degli esperti che tengono traccia di tutte queste complicazioni e, cosa più importante, le rendono pubblicamente disponibili sotto forma di tabelle e codice open source, già pronto per l'uso, da prendere e inserire in qualunque programma, e sotto forma di siti come TimeAndDate.com e WorldTimeZone.com.

Nessun commento: