[LEAPSECS] leap smear
Michael Deckers
michael.deckers at yahoo.com
Sun Sep 18 11:13:18 EDT 2011
On 2011-09-16 22:46, Daniel R. Tobias observed
Google's lack of compliance with international standards:
> On 16 Sep 2011 at 10:54, Poul-Henning Kamp wrote:
> > Well, Googles hack is a workaround for internal use with no regard
> > to subsecond interoperability with anybody else.
> That's typical of Google's general philosophy, where they value their
> services functioning smoothly over strict compliance with external
> standards; for instance, "web purist geeks' find it infuriating that
> Google's HTML fails to validate, but they're more interested in
> shaving off a few bytes by doing things like omitting quotes around
> attributes even where the standards require them, so long as all
> known browsers render the page correctly.
There simply is no standard modification of UTC that
is a monotone function of TAI, and which is N times
continuously differentiable for some N >= 0. Instead, there
are several such modifications, used or propsed, such as
Google's, the SLS time scale of Markus Kuhn, the
modification in SOFA, and the time_t values in UNIX-like
operating systems, each especially designed for their
usage.
Google needed a modification of UTC that could be used as
the steering input for an ensemble of clocks. This requires
a signal that is at least two times differentiable, like
the signal of a clock that is not subject to sudden
changes in rate. I find it clever from the Google
engineers that they realized that the smoothness of
the steering clock must be controlled, and that the
the maximal deviation in rate is a secondary concern
that is best left to a parameter of the solution.
As long as that window size is less than the distance
between successive leap seconds, UTC[Google] is well-defined
-- eg, when UTC was 2008-12-31T23:59:60 (beginning of a
"positive leap second"), UTC[Google] was 2008-12-31T23:59:59.
I have never seen an equally clear statement for
the value of type time_t to be returned by POSIX calls
of time(), even with parameters left unspecified.
Michael Deckers.
More information about the LEAPSECS
mailing list