Hacker News new | past | comments | ask | show | jobs | submit login
Happy 1600M epoch second (epochconverter.com)
373 points by bajsejohannes on Sept 13, 2020 | hide | past | favorite | 48 comments



Dagnabbit I overslept!

I use BitBar on my macbook to display the epoch second on my menu bar in a format like this: { 1,600,003,345 }

The script to do that is:

    EPOCH=$(/bin/date +%s | /usr/local/bin/sed ':a;s/\B[0-9]\{3\}\>/,&/;ta')

    echo "{" "${EPOCH}" "}"
Separating the epoch into thousands was done with the help of this Stackoverflow question: https://unix.stackexchange.com/questions/113795/add-thousand...

EDIT: This is a much simpler way of writing it, thanks to GNU Coreutils' "numfmt"

    EPOCH=$(/bin/date +%s | /usr/bin/numfmt --grouping)


GNU coreutils printf also supports insertion of thousands separators with the ' format flag, which gives another way to add them to numbers:

EPOCH=$(printf "%'d" $(date +%s))


Very cool, thank you for sharing :)


I wrote the NumFmt answer :)


Thank you, yet another utility that I had no idea existed! :)


Here is a screenshot I took at Unix timestamp 1600000000: https://twitter.com/susam/status/1305120936098627589

Reproduced as text below:

  $ date -u; date; date +%s
  Sun Sep 13 12:26:39 UTC 2020
  Sun Sep 13 17:56:39 IST 2020
  1599999999
  $ date -u; date; date +%s
  Sun Sep 13 12:26:40 UTC 2020
  Sun Sep 13 17:56:40 IST 2020
  1600000000
An important point worth noting from the POSIX.1-2008 specification:

"Coordinated Universal Time (UTC) includes leap seconds. However, in POSIX time (seconds since the Epoch), leap seconds are ignored (not applied) to provide an easy and compatible method of computing time differences. Broken-down POSIX time is therefore not necessarily UTC, despite its appearance."

See https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd... for more details on the above point.

By the way, in case you got curious like me to find out if this Hacker News story (the original post) was posted exactly at this time, the answer is, it was posted at Unix timestamp 1599999975. See https://hacker-news.firebaseio.com/v0/item/24460382.json for the details.


> leap seconds

Over long periods of time the approximation that a day takes 86400 SI seconds will become less and less accurate as the rotational period of the Earth changes. I wish calendars would be either purely astronomical in nature or purely SI in nature. Hybrid systems like UTC become more and more messy over time as the amount of adjustment needed increases. We've had ~25 leap seconds in UTC already, and it's a relatively young calendar system.

EDIT: I also wish we would change the name of the SI measurement "second". An SI second and an astronomical second are two different things, and deserve two different names.



Oh my. Why are people matching an epoch with a regex?! Or you know, just think a couple of years ahead

Funny how the comment says "replace this before 2017" oh well.

> The app executes bash/Powershell at Splunk startup to check for the above regex and add a '6' if needed. It may not be the best fix, but it does kick-the-can on the problem for another 3 years, at least until epoch time reaches 1.7e10.


I’ve never used this piece of software (and their web site is remarkably uninformative about what it does, besides transform my enterprise), but from the comments it looks like some kind of search engine. It wouldn’t be too surprising to have a bunch of heuristics that try to extract meaning from unlabeled strings. Indeed, while viewing that very page, my iPad turned several of the epoch timestamps into telephone numbers.

So I don’t know if this is what actually happened, but this is a plausible reason for having such a regex that does not depend on stupidity: a “guess what this number could mean” routine written around 2015 might make include finding Unix timestamp-ish values not more than a few years into the future.

I’d still be pretty unhappy with the hard coded magic number approach and wish to see the specific requirements documented, along with some sort of tunable parameter for the range, as well as a test that verifies it works for the given requirements. Which gets into a fun and potentially philosophical exercise as well, since a test that passed yesterday should pass today, but this might be one case where “doesn’t fail with dates less than 5 years into the future” is a reasonable request.


> I’ve never used this piece of software (and their web site is remarkably uninformative about what it does, besides transform my enterprise), but from the comments it looks like some kind of search engine.

It is an 'enterprise' log aggregator, storage system, and log search engine/alert generation engine.

One sets one's Java code (remember: "enterprise") to stream log output to splunk, and splunk handles receiving, storage, alert generation from programmed patterns matching, and archived log data search.

> It wouldn’t be too surprising to have a bunch of heuristics that try to extract meaning from unlabeled strings.

That is a very accurate description of just what it does.


Left a few years buffer!


How the hell do regexes like these find their way into production …


There's an example of the sort of chronic (pun intended) patch-driven-development, YAGNI(Y) thinking that leads to this sort of thing, in the last paragraph:

"For instances that can't/won't get updated in time, this Splunk app can be deployed as a workaround. The app executes bash/Powershell at Splunk startup to check for the above regex and add a '6' if needed. It may not be the best fix, but it does kick-the-can on the problem for another 3 years, at least until epoch time reaches 1.7e10."

Someone, somewhere is saying "but it passed all the unit tests..."


> at least until epoch time reaches 1.7e10.

And to add insult to injury: that should actually be 1.7e9; 1.7e10 would be 17000M epoch seconds, not 1700M.


Spunk also has field extractors where they automatically generate regexes from sample data that look a little bit like this.


Am I the only one that thinks this isn't completely unreasonable? Is it a hack? Definitely, but I don't see a much better way without more context of determining whether some number is likely to be a timestamp. Should it base it on a range of numbers determined at startup? Probably, but it's not fundamentally much different.


A much saner heuristic could use a reasonable range (for some value of reasonable) around the current timestamp to check whether it's also one. The assumption being that logs will be streamed, hence any timestamp will likely refer to something that happened in the recent past.


Knowing Splunk, I'm surprised it was a regex and not a bunch of strchr()s



first thought after seeing this: holy shit how did that pass code review?

on second thought, that's probably intentional to force their customers to upgrade at least once every 3 years.


I celebrated the Billenium with my brother (two days before 9/11, actually). He's dead now, and we didn't have a lot of shared interests, so it'll always be a nice memory for me.


I remember being in #billenium on openprojects (before it was called freenode) at the time. Really neat shared community experience.


Less than eighteen years until 19th January 2038!


Sweet 16 seems fitting here, considering that Unix/Linux systems have gained so much momentum over the past decade (even Lenovo started shipping Fedora on laptops this month).


I've recorded a video if someone wants to relive it for whatever reason: https://twitter.com/input_sh/status/1305122125250990080


There we go, humanity survived for another insert description of time interval



Woohoo!

Next one (1700M) will be on 2023-11-14 22:13:20 +0000 UTC.


Unless you celebrate in hexadecimal …

* https://news.ycombinator.com/item?id=24459288

… or count actual seconds.

* https://news.ycombinator.com/item?id=24458914


Which makes me why this got so much traction; meh it's only every 3 yearsish.


That means it's 3x more significant than New Year's Eve!


"There were programs here that had been written five thousand years ago, before Humankind ever left Earth. The wonder of it—the horror of it, Sura said—was that unlike the useless wrecks of Canberra’s past, these programs still worked! And via a million million circuitous threads of inheritance, many of the oldest programs still ran in the bowels of the Qeng Ho system. Take the Traders’ method of timekeeping. The frame corrections were incredibly complex—and down at the very bottom of it was a little program that ran a counter. Second by second, the Qeng Ho counted from the instant that a human had first set foot on Old Earth’s moon. But if you looked at it still more closely…the starting instant was actually about fifteen million seconds later, the 0-second of one of Humankind’s first computer operating systems."

- A Deepness in the Sky, Vernor Vinge


Look at it yet more closely even than that, however, and you'll find that it isn't the year that that operating system was invented, nor the year of its 1st Edition, nor even the way that it counted time before 1974. It was simply a year that, in the words of one of its creators, "seemed to be as good as any" (dmr, Wired, 2001).


The end of an era, I’ll be glad to see 1600M timestamps with a lot more zeroes in them now. Feels like the future.


This is gonna be weird seeing timestamps starting with 16- from now on


Sort of like I remember the rollover from 9.. to 1000000000 in 2001 like it wasn't all that long ago as I was well into my career. It must have been a notable moment as I remember that I was doing some consulting work hooking up remote datasources for some telecom apps.


Our local Linux User Group (now defunct) had a "special event" to celebrate the occasion (although I didn't realize ~19 years have since past!).

Unfortunately, the bakery we got the cake from was unable to satisfy our request for 1000000000 candles on the cake.


Yeah the seconds since must me shorter. You could've gone for 31.7 candles but it doesn't have the same splash.


Should’ve asked for 10 candles and only lit the first candle


Life is fleeting.


Time flies.


Time flies like an arrow. Fruit flies like bananas.


Did anyone get alerts so far on a Sunday morning? Suddenly one of my replicas is reporting suspiciously behind but not actually


My apartment building had a very brief (less than a few seconds) power outage at the time 1600M seconds rolled over. Weird.


I had two repl monitors wake me up and then immediately resolve themselves. Self-healing devops ftw.


Happy 1600


https://www.unixtimestamp.com/ The Current Unix Timestamp 1600001210 seconds since Jan 01 1970. (UTC)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: