top | item 2475346

The one second war: Finding a lasting solution to the leap seconds problem

81 points| wgrover | 15 years ago |cacm.acm.org | reply

27 comments

order
[+] jtwb|15 years ago|reply
Maybe the most awesome part of being a human being today is recycling solutions from the past to the solutions of today.

Once upon a time, written language was represented in computers by arrays of characters. Manipulating non-english user content in this model was big pain. Today, effective software dealing with written language uses UTF-8 Characters and the Grapheme abstraction. The problem was solved by separating the concepts of Bytes, Characters and Graphemes, which were previously conflated.

Clearly, it's ineffective to use the same abstraction for "elapsed time" and "time of day" due to the variable length of the day. Representing both concepts with one value leads to the problems described in this article. The concepts should be separated and a new abstraction created: Earth Position (EP).

Statements about the time of day, day of the week or lunar month of the year are really statements about the Earth's position relative to some other entity: the sun in most cases, but sometimes the moon in the case of lunar dates.

Given that "Unix time" is widely understood as "the number of seconds elapsed since Jan 1, 1970", it would be convenient to let it only represent Elapsed Time and define Earth Positional values in terms of Elapsed Time.

The leap second concept should only affect applications interested in Earth Position queries (time of day, etc) and not have any representation at the Elapsed Time level.

[+] vorg|15 years ago|reply
Within 20 or 30 years, we may need Luna Position and Mars Position queries to cater for many users on the network. Of course, we'd also need to know the distances between them, Earth-Mars Distance, Earth-Luna Distance, and Luna-Mars Distance queries, for calculation adjustments.
[+] celoyd|15 years ago|reply
You really nail it. I just want to add that all of this applies to DST too, although it’s a little different because it’s artificial and well-known.
[+] hugh3|15 years ago|reply
Speaking as a mad scientist, it's clear to me that the best solution is just to adjust the Earth's rotation to be exactly 24 hours.

Maybe 24 and a half, so we can all have a bit of a sleep in every morning.

[+] uvdiv|15 years ago|reply
No it should be 24.0159254 old-hours, so that the orbital period is an integral number of earth rotations. Assuming you want to waste your mad-scientist powers on silly bureaucratic nonsense, and not on, say, spinning the earth fast enough to lower surface gravity (leap tall buildings in a single bound to get to Starbucks).
[+] sliverstorm|15 years ago|reply
The article discussed that problem, indirectly. The earth is always slowing down, so even if you fixed it perfectly it would become broken with time.
[+] dpkendal|15 years ago|reply
If you live in Britain and you ever hear seven pips on BBC radio instead of six, there's just been a leap second. That's the Greenwich Time Signal computer compensating for the extra second.
[+] jarin|15 years ago|reply
From my understanding, setting leap seconds 20 years in advance is not a good idea either because large earthquakes (such as the recent one in Japan) can change the Earth's rotation speed enough to require an update.
[+] Deestan|15 years ago|reply
According to my calculations, the Japan earthquake will not require us to adjust a leap second - at least not within the next ~761 years.

The Japan earthquake shortened the day length by 1.8 microseconds. [1]

1.8 microseconds * 365.25 days * 20 years =~ 0.01 seconds off. Not enough to require an update, even less an urgent update before the 20 years.

1.8 microseconds * 365.25 days * 761 years =~ 0.50 seconds off.

[1] http://www.space.com/11115-japan-earthquake-shortened-earth-...

[+] Florin_Andrei|15 years ago|reply
Ignore it until it's one hour off, then do a "leap hour". We do that twice a year anyway.
[+] caf|15 years ago|reply
PHK's argument is that leap seconds don't come frequently enough to ensure that software is tested in their presence. Replacing them with a 3600-times rarer event would make the problem much, much worse (but on the plus side, it'll be our descendents' problem, not ours ;)