`Cal` è rotto? Che cosa accadde nel settembre del 1752?


28

Se guardi l'output cal 9 1752vedrai questo strano output:

   September 1752
 S  M Tu  W Th  F  S
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

La seguente storia intitolata " cal 9 1752 spiegato" "è stata copiata da una lista di notizie nei primi anni '90 e archiviata sotto Collezioni di cose divertenti per un pubblico di computer da David G. Wiseman (un Network Manager presso il Dipartimento di Informatica dell'Università dell'Ontario occidentale).

Il tizio che originariamente scriveva il comando "cal" su una vecchia macchina Versione 7 aveva un errore off-by-one nel suo codice. Questo si presentava come un output errato quando una variabile malloc sovrascriveva 12 byte extra con zero, portando così allo strano output del calendario visto sopra.

Ora, nessuno nella sua mente giusta si preoccupa davvero del calendario per settembre 1752. Persino l' idea dell'anno 1752 non esiste sotto UNIX, perché UNIX non ha avuto inizio fino all'inizio del 1970. Di conseguenza, nessuno sapeva nemmeno che "cal "ha avuto questo errore fino a molto tempo dopo. A quel punto c'erano migliaia di copie di "cal" che fluttuavano intorno, molte delle quali solo binarie. Era troppo tardi per sistemarli tutti.

Quindi, a metà del 1975, alcuni funzionari AT&T di alto livello si incontrarono con il Papa e raggiunsero un accordo. Il calendario è stato modificato in modo retroattivo per allineare il settembre 1752 alla realtà UNIX. Poiché il calendario è stato modificato contando all'indietro dal 14 settembre 1752, nessuna delle date successive è stata interessata. Le date precedenti sono state tutte spostate di 12 giorni. Hanno anche corretto la pagina man per "cal" per documentare il bug come funzionalità.

Gli 11 giorni dal 3 al 13 settembre erano semplicemente passati dai registri. Hanno perquisito i libri di storia e hanno scoperto che per fortuna non è successo nulla di molto significativo in quegli 11 giorni.

Nel complesso, l'intero incidente è stato praticamente un non-evento. Un autore di fantascienza più tardi ne venne a conoscenza e fece esplodere la cosa in un lungo lavoro di fantascienza chiamato "The Lathe of Heaven", un libro che secondo me ha poca somiglianza con ciò che è realmente accaduto.

Qual è la vera spiegazione dell'anomalia di uscita?


14
Non vedi la /humordirectory nell'URL che hai pubblicato? ;)
alex

1
Quel link mi ha fatto una bella risata.
jw013,

1
... cosa c'è di sbagliato nell'output? : p
d33tah,

Un calendario gregoriano prolettico sembra più ragionevole, altrimenti è necessario conoscere il paese, la religione, ecc. Per determinare il calendario con una certa precisione.
jfs,

1
Anche l'idea dell'anno 1752 non esiste sotto UNIX ... ... ma l'idea di UNIX esisteva nel 1752?
Alois Mahdal,

Risposte:


49

Per tracciare la vera storia, prova a correre man calda solo:

The Gregorian Reformation is assumed to have occurred in 1752 on the 3rd
of September.  By this time, most countries had recognized the reforma-
tion (although a few did not recognize it until the early 1900’s.)  Ten
days following that date were eliminated by the reformation, so the cal-
endar for that month is a bit unusual.

Quindi, se la tua storia è imprecisa, continua con Wikipedia per informazioni sui cambiamenti introdotti dal calendario gregoriano e la sua storia di adozione in varie parti del mondo:

La riforma del calendario gregoriano conteneva due parti, una riforma del calendario giuliano usata fino ai tempi di papa Gregorio, insieme a una riforma del ciclo lunare usato dalla Chiesa insieme al calendario giuliano per calcolare le date di Pasqua.
[...]
Oltre alla modifica della durata media dell'anno solare da 365,25 giorni (365 giorni 6 ore) a 365,2425 giorni (365 giorni 5 ore 49 minuti 12 secondi), una riduzione di 10 minuti 48 secondi all'anno , la riforma del calendario gregoriano ha anche affrontato la differenza accumulata in passato tra queste lunghezze.
[...]
A causa della Riforma protestante, tuttavia, molti paesi dell'Europa occidentale inizialmente non seguirono la riforma gregoriana e mantennero i loro sistemi vecchio stile. Alla fine altri paesi seguirono la riforma per motivi di coerenza, ma quando gli ultimi aderenti al calendario giuliano in Europa orientale (Russia e Grecia) passarono al sistema gregoriano nel 20 ° secolo, dovettero abbandonare 13 giorni dai loro calendari , a causa della differenza aggiuntiva accumulata tra i due calendari dal 1582 .
[...]
La Gran Bretagna e l'Impero britannico (compresa la parte orientale di quelli che oggi sono gli Stati Uniti) adottarono il calendario gregoriano nel 1752, quando fu necessario correggere entro 11 giorni. Mercoledì 2 settembre 1752 fu seguito da giovedì 14 settembre 1752.

Quando Unix arrivò e ripristinò gli orologi dei mondi per iniziare il 1 ° gennaio 1970, non c'era più nulla da fare sull'intera confusione, tranne scegliere una data per mostrare il ripristino. Dal momento che il mondo ha adottato l'attuale sistema di calendario gregoriano in diversi momenti in diversi paesi, l'ora esatta per effettuare questa correzione è in qualche modo arbitraria.

Se hai mai un motivo per contare le date che risalgono a così tanto tempo nel tuo software, incontrerai problemi molto più significativi di quel solo ripristino! La storia del calendario è piena di sorprese!


3
Bella risposta! Per rendere le cose ancora più complesse, alcune società monastiche greche usano ancora oggi il calendario giuliano.
Terdon

1
"il tempo esatto per effettuare questa correzione è alquanto arbitrario" - È troppo semplificato. Una versione più precisa sarebbe "ci vorrebbe almeno la posizione dell'utente per riconoscere le date in cui ha avuto luogo la correzione". (lo svedese, per esempio, aveva un piano ambizioso per diffondere la riforma del calendario in 40 anni: en.wikipedia.org/wiki/Swedish_calendar )
Piskvor,

4

Ecco un buon documento sui calendari (PDF) che spiega come il lento spostamento della Pasqua durante l'anno ha reso necessaria questa correzione della data e descrive anche quando diversi paesi hanno effettuato il passaggio.

A pagina 904:

Egli [Papa Greogory] ha anche corretto l'errore accumulato di 10 giorni nel calendario proclamando che giovedì 4 ottobre 1582 d.C., l'ultima data nel vecchio stile (calendario giuliano), sarebbe stato seguito da venerdì 15 ottobre 1582 d.C., il primo giorno del nuovo stile (calendario gregoriano). I paesi cattolici hanno seguito questa regola, ma i paesi protestanti hanno resistito: Spagna, Portogallo e Italia l'hanno adottata immediatamente, così come gli stati cattolici in Germania. Le parti protestanti della Germania attesero fino al 1700 per adottarlo. La Gran Bretagna e le sue colonie (compresi gli Stati Uniti ) attesero fino al 1752 , la Russia resistette fino a dopo la rivoluzione del 1918 e la Bulgaria fino al 1920.

Il documento continua a fare riferimento a un ampio elenco di date di adozione che è stato compilato dagli astronomi e spiega in modo semplice come convertire tra i diversi sistemi di calendario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.