376: Bug

Explain xkcd: It's 'cause you're dumb.
(Redirected from 376)
Jump to: navigation, search
Bug
The universe started in 1970. Anyone claiming to be over 38 is lying about their age.
Title text: The universe started in 1970. Anyone claiming to be over 38 is lying about their age.

[edit] Explanation

In computer systems, time is measured starting from some arbitrarily chosen point. That particular time is known as the "epoch" for that system. The UNIX operating system internally uses an epoch of January 1, 1970, and measures the time as a number of seconds from then. Since this was intended only for things internal to the OS (File last modified times and the like), using 1-Jan-1970 was safe as no UNIX systems existed before that date.

Dates before 1 January, 1970 are represented by negative values. At 03:14:08 on 19 January 2038, the 32-bit versions of the Unix time stamp will cease to work, as it will overflow the largest value that can be held in a signed 32-bit number. The 64-bit version "will" expire at 15:30:08 on 4 December 292,277,026,596.

Cueball has clearly misused the system date in some way, his friend makes a pun by combining "Epoch" with "Epic Fail" - a colloquial term meaning "a very big mistake was made".

The title text takes the joke to the next level, claiming that the entire universe began when Unix did, and therefore no one can be older than 38 (at the time of the comic), which would explain away the bug since no later dates would be needed. This is also similar to Last Thursdayism.

[edit] Transcript

[Cueball sits at a computer, staring at the screen and rubbing his chin in thought. A friend stands behind him.]
Cueball: Weird - My code's crashing when given pre-1970 dates.
Friend [pointing at the computer]: Epoch fail!
comment.png add a comment!

Discussion

That is why on Unix epoch (the time_t type) is signed type, and covers dates before epoch. --JakubNarebski (talk) 19:52, 5 July 2013 (UTC)

Ohh, and much more is missing. I did mark it as incomplete. We also have to talk about the time frame the 32bit epoch does cover, and what would be changed by using a 64bit variable. What will happen on 19 January 2038?--Dgbrt (talk) 20:17, 5 July 2013 (UTC)
The general hope, it appears, is that 64-bit integers will be firmly in place, having ousted the feeble 32-bit integers from the system time. As has been demonstrated in innumerable instances, it's rather difficult to eliminate legacy code from systems due to attempts to support older systems in a backward-compatible methodology. In short, however, it will take time to resolve time. Thokling (talk) 05:34, 22 September 2013 (UTC)
Personal tools
Namespaces

Variants
Actions
Navigation
Tools

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal or Bitcoin?