Heads up for 1234567890 day!
Posted by Jim DeLaHunt on 12 Feb 2009 at 02:03 pm | Tagged as: software engineering, time, Vancouver
During a high school class, my teacher interrupted his discussion of classical Greek history to say, “it’s twelve thirty-four on the fifth of June, 1978”. In other words, 12:34 5/6/78 (in the British notation). Alert people in the United States had already celebrated that moment on May 6th. If you missed that moment, you have another chance on Friday: 1234567890 day.
Humans love to find patterns, and dates have rich potential for that. For instance, I was walking through a train station on a business trip in Tokyo in February, 1990. I noticed that people were making an unusual fuss about the train tickets. 1990 was å¹³æˆï¼’å¹´ , or “Heisei year 2”, in the calendar based on the Japanese era name. The date was printed on the train tickets as “H2-2-2”. The symmetry made them collectors items. (I wish I could lay my hands on a ticket from that day, to convince myself I didn’t invent this memory…)
I have a fondness for finding leaks in the software engineering abstractions that represent our messy real world. I wrote last year about POSIX time, and the limitations in its representation of modern calendars and time zones. So when a leaky abstractions turns up as a pretty pattern, it’s irresistible. And that’s what happens this Friday.
POSIX time represents moments in time as integers, the number of seconds since 00:00h, January 1st, 1970. This usage is known as time_t, and the start date is known as the POSIX (or Unix) “epoch”. The POSIX time integer reached 1,000,000,000 at 01:46:40h 2001-09-09 UTC. That was a pretty pattern of a number, and it was worth a party then. The photo above is from a Denmark celebration; the bottom number it shows is the POSIX time.
On Friday, February 13th, 2009 at 23:31:30h UTC (15:31:30h PST), POSIX time will rise to 1,234,567,890 ! What a very pretty pattern from the leaky abstraction. So much so that someone set up 1234567890day.com, an international clearinghouse of 1234567890 day celebrations. Here in Vancouver, there will be a gathering at the Wild Heather, 217 Carral St., in Gastown, from 14:31-15:31h PST. Come join in the completely arbitrary and substantially geeky celebration!
By the way, POSIX time gives us two further notable opportunities to observe leaky time abstractions. On January 19th, 2038 at 03:14:08h UTC, POSIX time will reach 2^31, and software which stores POSIX time quantities (i.e. time_t) as signed 32-bit integers will fail. Then on February 7th, 2106 at 06:28:16h UTC, POSIX time will reach 2^32, and software which stores time_t as unsigned 32-bit integers will fail. Hopefully, all time_t values will be stored in unsigned 64-bit integers by then. And unsigned 64-bit integers should last us for another… oh, 584 billion years. time_t will probably be replaced before it overflows 64 bits.
P.S. Thanks to the Bootup Labs Upcoming Events feed for the tip!
P.P.S. Photo of 1000000000 seconds since epoch celebration by user Chlor on da.Wikipédia, licensed under GFDL or CC-BY-SA, see my image page for more information.
[Updated to fix typos.]