Hacker News new | ask | show | jobs
by lappa 4006 days ago
This seems to be something that would benefit from standardization and modularity...

Pausing for a second, going back a second in time or changing how long a second is all are hacks that are bound to cause some edge case failure somewhere. I'd like to see a minute have a 60th second just as February has a 29th day.

3 comments

The problem is that the effect being compensated for is so tiny that it's really noisy. It's not like leap years, where all you have to do is measure the actual period of the Earth's orbit very precisely and come up with a nice way to fit the appropriate correction factor into the calendar.

The Earth's rotation is slowing, but it's not a steady process. For example, the Boxing Day earthquake in 2004 permanently decreased the length of the day by about 3 microseconds. Here is a graph of the changes over the past few decades:

https://upload.wikimedia.org/wikipedia/commons/5/5b/Deviatio...

As long as we have a standardized way of determining when leap seconds are going to happen, some authority determining and announcing, there shouldn't be problem. Leap years are predictable, but leap seconds can be accounted for a decade after an event disrupts the pattern.

Also, given all that variance and the fact that we only seem to be shifting around 1 minute per century at the current rate, we probably could get by having a leap minute every few decades when necessary.

This works fine for any system trying to interact with other computers and humans while keeping consensus on the time. Any system that is trying to determine earths yaw would no longer be able to rely on F(time), but that is only a minor inconvenience.

How is that different from what's being done now? There is a standardized way of determining when leap seconds are going to happen (they always happen on June 30th or December 31st when the deviation reaches about 0.6s), there is an authority that determines and announces it (the International Earth Rotation and Reference Systems Service) and it is, in fact, done by causing the last minute on the day in question to have 61 seconds instead of the usual 60.

The complication is just that there are a whole lot of systems out there that assume that every minute has exactly 60 seconds with no exceptions, so you end up with crazy workarounds like smearing to hide that 61st second from such systems.

>How is that different from what's being done now? There is a standardized way of determining when leap seconds are going to happen (they always happen on June 30th or December 31st when the deviation reaches about 0.6s)

It's different because you don't have to keep track of what an authority is saying or deal with the actual time adjustment except once in a century. Once in a century is acceptable since we will only deviate by around a minute at our current rate.

Leap seconds are announced months in advance and can only occur in 2 possible positions in an entire year. It's pretty standardized, especially compared to the mess that is daylight savings time, where changes can be announced only a few days in advanced (e.g., Egypt) and possibly even retroactively.

The problem with leap seconds is that time is often represented internally as seconds from the Unix epoch, and this simple integer counter assumes leap seconds don't exist. In effect, there is no way to actually represent a leap second in many computer systems, so the question of what you do is basically a choice of the least painful lie. Handling leap seconds in the situations where people care about them requires a lot of complexity for an event that happens only once every few years.

There's a movement to abolish leap seconds, which I am very much in favor of.

>It's pretty standardized, especially compared to the mess that is daylight savings time, where changes can be announced only a few days in advanced (e.g., Egypt) and possibly even retroactively.

It clearly isn't since the original post highlights three different ways people adjust the time making all these organizations lack consensus on the time.

It'd benefit from simply dropping it. Why should all of us pay and deal with these stupid hacks, just because some astronomers can't fix their software?

Move to leap hours, and by the time it's needed, let the AIs sort it out.

Leap hours are probably acceptable, but at the point that you're only deviating by an hour every few millenia, can't it be safely accepted that the time has a different meaning and between generations it be accepted that 8PM means night time in the summer rather than 9PM? I doubt that we will even be using the same system by then anyways.