Tu stai zitta

La terra gira come gli pare.

E ai computer non frega niente. Ma la questione, guardando alla tecnicita' della cosa, e' molto piu' complessa, anche se alla fine e' rassicurante. Siccome ci si e' messa anche META, direi che sia il caso di chiarire alcune cose prima di esaminare la differenza tra "clock" e "calendario". Perche' la rotazione del pianeta non cambia assolutamente il tempo: cambia il calendario. 

Liquidiamo innanzitutto i ciarlatani di META. Se il sistema che hai disegnato dipende dalla fisica esterna tanto che un evento da 0.0001% della magnitudine puo' causare danni gravissimi, lo hai disegnato male,i tuoi architetti sono incompetenti, e dimostri la stessa cialtroneria che dimostri quando facebook sta giu' per ORE, cosa che ad un sistema cosi' replicato NON dovrebbe succedere MAI. Hai mai visto andar giu' per ore internet, o la rete cellulare, o la rete telefonica, per due miliardi di persone? No. 

Detto che me ne infischio di quel che dicono i dilettanti di META (1) , vediamo di spiegare un attimo la differenza tra tempo e calendario, in cui ai computer frega molto del tempo ma poco del calendario, mentre a sistemi come il GPS la rotazione della terra, cioe' il calendario, importa molto di piu'.


Se ci riferiamo alla fisica non relativistica (quindi escludiamo per il momento il GPS dal discorso), cioe' una fisica relativamente locale, ai computer il tempo e' necessario per fare in modo che gli eventi siano in ordine. Significa che se chiudo un file PRIMA di aver salvato l'ultimo pezzo che ho scritto, il pezzo che ho scritto non verra' salvato.

Se ho un sistema di code, dove gli eventi venngono processati in ordine, e l'orologio del mio computer va indietro, alcuni di questi eventi sembreranno iniziati nel futuro, e la mia coda avra' il suo da fare a capire in che ordine metterli.

Se pensiamo ad una transazione, va da se' che essa inizi PRIMA di finire, e se portiamo indietro l'orologio, il problema e' che potrebbe finire (apparentemente) prima di essere iniziata. Il che la renderebbe piuttosto difficile da interpretare.

Quindi, se due computer pensano di vivere in due tempi diversi perche' il loro clock e' sfasato, e il primo inizia una transazione che finisce nel secondo, questo puo' dare dei problemi. Di solito la soluzione e' che chi ha il "journal", cioe' chi prende nota del tempo locale, usi sempre il proprio orologio: questo pero' significa che due computer coinvolti nella stessa transazione ma sfasati nel tempo possono avere due journals diversi, e questo fa si' che in caso di indagine forense , la cosa debba essere valutata.

Ma questo oggi non succede piu', perche' il tempo (non il calendario, attenzione) viene diffuso in rete. Un tempo si usavano le celle telefoniche, e anche se hanno il GPS oggi (quasi tutti, o almeno molti) i cellulari usano a loro volta NTP (scelta bizzarra, devo dire) , e qui dobbiamo fermarci per capire come funziona NTP.


Il primo concetto da capire e' lo "stratum". Diciamo che ci siano al mondo degli orologi molto precisi. Quelli atomici. E supponiamo che questi orologi rendano disponibili i loro "tick" su internet. E' una supposizione corretta? E' una supposizione corretta. Ecco alcuni degli orologi, ed ecco la loro denominazione convenzionale.

(come vedete c'e' anche Galileo e c'e' GPS, di cui parlo dopo perche' nel discorso "tempo vs data" occupano un caso speciale. )

Le altre sorgenti diramano l'orario, il il semplice pulse per second, con diverse modalita'. Per esempio, DCF viene usato sia via radio (vendono anche orologi radio basati su questo segnale) che su coassiale 1588 dalle principali telco tedesche. Il coassiale 1588 poi viene collegato, nei Central Office delle telco, agli switch service edge, dove e' attaccata di solito la LIB (Lawful Interception Box), in modo che la polizia , per produrre le prove di un crimine telematico, abbia sempre il tempo esatto.(per quanto mi sfugga l'impatto, nella logica delle azioni umane, dei nanosecondi, ma tant'e').

Ma stiamo parlando di una cosa precisa.

Il tempo. NON IL FOTTUTO CALENDARIO. Non LA DATA. Sono due cose diverse. 

Comunque, chiamiamo "stratum 0" quello strato, perche' e' fisico e almeno in origine non ha problemi di latenza.

Se io attacco il mio computer a questi orologi, mi attacco agli orologi piu' precisi, ma dimentichiamo che il segnale impiega tempo per arrivare dal mio computer alla rete del dispositivo sullo  stratum zero , e poi tornare indietro. Quindi lo stratum 1 e' MENO preciso dello stratum zero, anche se di pochissimo perche' quel tempo (anche se piccolo) puo' falsare misure molto precise. (per dire, qualcuno in un laboratorio di fisica , nel misurare eventi molto rapidi potrebbe anche concludere di avere visto un fenomeno andare indietro nel tempo).

Comunque, a parte questi fisici che hanno bisogno di misure preciserrime, lo stratum 1 e' considerato preciso. Anche perche', altrimenti dovreste portare un orologio atomico sul posto.

Adesso immaginate di attaccarvi a dei computer sullo stratum 1. Siete lo stratum 2. E quindi siete ancora piu' imprecisi. Se vi attaccate allo stratum 3, aggiungete altra latenza , e siete ancora piu' imprecisi ancora.

Su Linux potete visualizzare questa situazione in maniera molto semplice:

Se vedete la colonna "st", ottenete che il computer "clitosaurus" e' connesso a due orologi di stratum 1 che sono "PZF"  e "PPS". PPS e' il pulse per second, mentre PZF e' questo signore qui:

https://www.meinbergglobal.com/english/products/rack-mount-1u-ntp-server.htm

gli altri, come vedete, hanno uno stratum piu' alto e come vedete hanno offset diversi.

Il sistema fa 16 rilevamnti, misurando gli sfasamenti medi, e sceglie l'orologio che trova migliore. Nel caso sopra, ha scelto PPS. Buongustaio.

Questo e' il modo in cui i computer vedono il tempo, e si sincronizzano tra loro in rete. Voi direte: e cosa c'entra il modo in cui gira la terra? Questo sembra un tempo "assoluto" (ARGH!) , e comunque sembra sconnesso alla rotazione della terra, e connesso agli orologi atomici. 

Corretto.La rotazione della terra non c'entra un piffero.


Pero', mi direte, se io vado a scrivere "date", che usa l'orologio del PC, allora ottengo questo:

Apparentemente, c'e' una grossa dipendenza tra il calendario e il tempo, ma e' solo apparente. Non voglio andare sul significato di CEST: farebbe confusione e sarebbe solo un bulgar display of power, come dicevano i Pantera in overdose di gulash.

Il problema invece e' che "Agosto" e "13", nonche' "13:25:15" sono legati all'orologio soltanto attraverso un altro ente fisico: il pianeta terra. Quando diciamo che e' "agosto", un mese estivo, diciamo che la terra si trova ad una certa inclinazione ed in un certo stadio della sua orbita attorno al sole. Quando diciamo 13:25:15" ci riferiamo alla rotazione del pianeta.

Quindi abbiamo DUE concetti distinti, entrambi egualmente "eventi fisici":

  1. il tempo come ordinamento degli eventi
  2. il calendario oppure "orario" se consideriamo "13:25:15"

Il calendario (o data) non e' altro che un modo per indicare lo stato del pianeta nel tempo. E di modi ce ne possono essere tanti: abbiamo il calendario ebraico, quello ortodosso, eccetera. Per esempio:

Entrambi i calendari sono corretti, a patto di attivare le dovute convenzioni. 3188 e' preciso quanto 2022, che si basa sulla mitologia cristiana, mentre 3188 si basa sulla mitologia greca, della dea Eris.

Ma il tempo, almeno localmente, passa di un secondo ogni secondo. E' il computer che trasforma il tempo che riceve dalle sue sorgenti in una data del calendario. 

Ma il clock e' il clock. La data e' la data. (non infieriro' con le timezones, perche' non c'entrano col discorso).


Allora qual'e' il problema per i computer se il pianeta terra sfasa? Nessuno, di per se'. Nessuno perche' i computer in rete non allineano il calendario, bensi' il tempo. Al massimo, il problema arriva quando si da' per scontato che il pianeta interpreti il tempo in maniera regolare (e ora sappiamo che NON lo fa) e certe volte un giorno dura meno di un altro. Fine.

Certo, se volete che un computer tenga conto anche del fatto che oggi la mezzanotte del pianeta si e' spostata e RAPPRESENTI il tempo con piu' precisione, allora dovreste scaricare le tabelle di conversione accurate e fare la vostra conversione con tabelle diverse di momento in momento.

Oppure basare i timestamp del vostro computer sul tempo unix.nano(), in modo da dipendere meno possibile da eventi fisici e fluttuazioni esterne.

Ricapitolando:

  • il tempo locale lo misurate coi clock atomici
  • la data la misurate stimando lo stato del pianeta in un certo momento.

entrambi (orologi atomici e stato del pianeta) sono eventi fisici. Il fatto e' che questi due eventi non sono regolari in relazione tra loro, e quindi la conversione puo' fallire.

Che problema c'e'? NESSUNO: la differenza di durata tra tempo-pianeta e tempo-orologioatomico e' assorbita assolutamente dal ritardo e dallo jitter che avete quando vi collegate ad un server NTP. Quindi, per il computer e' impercettibile, tranne che per computer collegati direttamente (e con poca latenza) allo stratum 0, per esempio via coassiale 1588.

 


Ma... c'e' un "ma".

Avrete visto che nella lista delle sorgenti (stratum zero) dello stratum 1 c'e' il GPS, e anche "GAL", Galileo. (in realta' potete usare anche la rete Glonass dei russi o quella cinese).

Il problema dell'orario preso dalle reti satellitari e' che da un lato e' molto preciso, se parliamo di tempo, ma siccome le reti satellitari subiscono l'influenza della gravita' del pianeta (il campo non e' perfettamente sferico perche' la terra non ha densita' omogenea ne'  simmetrica)  e i satelliti sono costruiti per fare di continuo piccole variazioni di rotta per compensare la variazione del campo, di fatto ricalibrano di continuo.

Ovviamente, quando succede che il pianeta si addensa al centro e gira piu' in fretta, i satelliti ricalibrano la rotta, e questo potrebbe anche causare dei lievi ritardi nel vostro GPS, GAL,GLONASS; etc.

Ma il GPS si usa in informatica? Beh, ovviamente sapete che ognuno dei vostri cellulari ha un GPS, ma sui cellulari non viene usato per ricevere il segnale orario (in genere, anche se sarebbe razionale). 

Per i computer da lavoro esistono schede GPS/GALINEO, che attaccate all'USB e possono allinearvi il computer estremamente bene, sullo stratum 1. (per via della relativita' lo stratum  zero e' sul satellite. Altrimenti il GPS non funzionerebbe). 

Siccome la maggior parte dei computer sono al coperto e non hanno visibilita' del cielo, normalmente vengono usati solo da persone cui servono davvero, oppure per applicazioni outdoor, quando non volete portare un cavo coassiale dal piu' vicino orologio atomico. (che puo' essere scomodo).

Forse queste applicazioni verrebbero influenzate, certo. Ma in genere chi fa applicazioni basate su gps e ha bisogno di precisione, sa bene quali siano i limiti di precisione.


Allora perche' i mediocri tromboni di META si lamentano?

L'unica spiegazione possibile di questa lamentela e' che META faccia un uso DAVVERO stravagante dei dati di posizione dei cellulari. Oppure l'incompetenza.

 

Perche' dico "incompetenza"? Non sono le migliori menti del pianeta? No.

Il punto e' che un tempo lo erano. Assumevano per fare il portinaio soltanto se avevate un PhD. Il problema e' che di PhD non ne esiste una riserva infinita. E quando sul vostro CV, dopo il PhD, rimane solo che avete fatto i portinai da Google per tre anni (il tempo medio di turnover presso molto GAFAM) , i PhD hanno cominciato ad evitare i GAFAM.

Il GAFAM vi chiedeva conoscenze accademiche immense, per poi sbattervi a fare javascript su qualche frontend, o portineria, o supporto alle risorse umane. 

Nel tempo, quindi, e' successo che le "migliori menti" hanno cominciato ad evitarli, e quelle che avevano (per via dei loro meccanismi di turnover) se ne sono andate altrove. 

Il risultato e' che si sono specializzati a cercare il "talento" anche laddove non esisteva il titolo accademico. Ma in realta' hanno semplicemente parcellizzato il lavoro cosi' da richiedere solo impiegati-scimmia, che ricevono mediamente istruzioni da sistemi automatici, e lavorano in maniera alienante. Non hanno piu' i migliori cervelli. Se avete un IQ di 190 non lavorate per Google: fate i consulenti per Gartner. E vendete slide alle scimmie di google.

Quindi direi di calmarsi: la terra e' sempre stata asimmetrica, chi lavora nelle stazioni di controllo dei satelliti lo sa sin dallo Sputnik, il campo gravitazionale non e' perfettamente sferico, la rotazione non e' mai stata perfettamente costante, e l'unico problema e' che le "menti" di Facebook non sono piu' le migliori del mondo.

Amen.

 

(1) Li chiamo dilettanti perche' hanno uno SLA da dilettanti. Se prendiamo una cosa come la chiamata di emergenza, essa e' garantita funzionare su tutta Europa col 100% dell'uptime. Perche' va giu' per un minuto, tra chiamate alla polizia, pompieri e ambulanza, contate i morti a migliaia. Facebook e' stato giu' anche per ORE. Quando si tratta di uptime, sono dei dilettanti allo sbaraglio. Punto. Se venisse a mancare la chiamata di emergenza a due miliardi di persone, per sei ore, contereste centinaia di migliaia di morti.