Problemet med Forstyr ikke-systemet kan være relateret til den måde, systemet er designet på

  Det ved I alle sammen Forstyr ikke-systemet i iOS virkede ikke for mange brugere på den første dag i dette år, og i går fortalte jeg dig det vi vil først kunne bruge det igen fra den 7. januar. Apple sagde ikke, hvorfor systemet holdt op med at fungere korrekt, det fortalte os kun, hvornår alt vil vende tilbage til det normale, men dem fra Macworld har en mulig forklaring. De hævder, at den måde, hvorpå systemets kildekode blev tænkt, genererer et problem med at fungere på den første dag i et kalenderår, alt sammen at gøre med den måde, datoen blev sat ved hjælp af ISO-systemet.

Til programmører, der har arbejdet meget med dato- og klokkeslætshåndtering (som mig; jeg skriver flyselskabers flysystemer til livets ophold, som kræver en masse tung tidszone-matematik) "det er gået i stykker i noget som den første uge af år" antyder umiddelbart et moderat uklart problem relateret til ISO-ugedatoen. Dette er en lidt mærkelig definition af året, som du får fra mange datamanipulationsbiblioteker ved at angive, at du vil have året som "ÅÅÅÅ", i modsætning til det mere almindelige "åååå".

Så for 2012 vil den 1.-6. januar blive vist som værende en del af 2012, hvis udvikleren angiver "ÅÅÅÅ" i sin datostreng, i stedet for at være en del af 2013. Det betyder, at når DND automatisk tændes, vil den har en beregnet slukningsdato engang i 2012, som nu er fortid, så den slukker aldrig. Jeg lavede engang denne fejl i min egen kode, da det er meget nemt at skrive "ÅÅÅÅ" i stedet for "åååå"; Det ser ud til, at en eller anden navnløs Apple-ingeniør har gjort det samme i iOS's Forstyr ikke-funktion, men kun i den automatiske sluk-tid, ikke i koblingstiden. I mit tilfælde blev problemet fanget i automatiseret test og gik aldrig live. Apple-ingeniøren har været mindre heldig.

  Du kan finde hele forklaringen på Macworld, hvis du er sikker på, at du vil forstå den, og du har brug for den på nogen måde.

UPDATE: Macworld hævder, at deres forklaringer er forkerte, så ignorer dem.