5

This fake manual page posted to the comp.humor newsgroup jokes that

A.out accepts any option passed to it, stalls for a few seconds, and then prints a cryptic message chosen from the list below. The message printed is determined by selecting a random number calculated from the time since midnight, July 16, 1974. Each of the messages has a different probability of appearing.

It is not unusual to seed a random number generator with the current system time. However, even though the Unix epoch started at January 1, 1970, this man page uses a different date.

What is significant about July 16, 1974? Did something computer-related happen on that date?

DrSheldon
  • 15,979
  • 5
  • 49
  • 113
  • 3
    I don't know, but I have written software that used my 40th birthday as the epoch (the unit was "seconds over the hill"). The rationale was that I needed a 32-bit value, wanted signed, and felt 2038 was a little too close for comfort. – dave Jan 16 '22 at 17:09
  • 2
    Well, maybe in relation to the first wide circulated paper about Unix printed in the ACM journal of July 1974? More general I'd say it was added as just another layer of obfuscation. – Raffzahn Jan 16 '22 at 17:15
  • First meeting of Unix Users Group (which became Usenix) is reported as occurring in 1974, – dave Jan 16 '22 at 17:16
  • @Raffzahn - that seems like a probable reference. I'm not sure 'obfuscation' really carries the right sense though, it's more like a humorous comment for those who'd appreciate it. – dave Jan 16 '22 at 17:18
  • 2
    @another-dave That meeting was in November. And yes, usage of obfuscation may differ. For this it's the act of adding useless information in a way that people start to look for a reason why this was added, when there is none. – Raffzahn Jan 16 '22 at 17:23

1 Answers1

10

That date is 2**32 30Hz ticks since the modern Unix epoch:

$ perl -E 'say scalar gmtime(2**32 / 30)'
Tue Jul 16 00:12:56 1974
pndc
  • 11,222
  • 3
  • 41
  • 64
  • 3
    Why 30 Hz? Would be good to include that. – user3840170 Jan 16 '22 at 19:01
  • The existing question https://retrocomputing.stackexchange.com/questions/16147/why-is-the-unix-epoch-january-1st-1970 also asks "why", and it's much the same answer: we don't know for sure, but the values happen to be easy to remember and convenient to use. – pndc Jan 16 '22 at 19:11
  • 17
    +1 But I suspect more likely would be **2**31 60Hz ticks. As in, highest 32-bit signed** integer. Because nobody thinks "30 Hz" except when it comes to interlaced display frame rates. – manassehkatz-Moving 2 Codidact Jan 16 '22 at 19:34
  • Oh, right. Originally, Unix time (including file system timestamps) was a count of line-frequency clock ticks. This quickly proved to be untenable :-). See the 'time' syscall in these man pages. – dave Jan 16 '22 at 19:50
  • 3
    Further comment from dmr = We even anticipated the millenium bug: time was measured in sixtieths of a second since 1 Jan. 1971 as a 32 bit quantity. The BUGS section for time(II) remarks, "The cronological-minded reader will note that 2**32 sixtieths of a second is only about 2.5 years." Later, this was patched more than once by declaring a new epoch, then again in 1973 by making the units full seconds dating from the 1970 New Year--this is the "classical" Unix epoch. Of course, it only pushed the issue off to 2038. – dave Jan 16 '22 at 19:57
  • Most important, it explicit mentions midnight of that day, not 12 minutes past midnight - which in itself is posibly an purpose vague after all, is 00.00.00 of the 16th it's midnight, or the one of the day before? That's why the Unix epoch start is not defined as 'midnight 1/1/70, but explicit as " 1 January 1970 00:00:00 UTC" – Raffzahn Jan 16 '22 at 23:03
  • 2
    @manassehkatz-Moving2Codidact, did you mean 2³³ 60Hz ticks? Or perhaps 2³¹ 15Hz ticks? Those are consistent with the 1974 date, but 2³¹ 60Hz ticks from epoch is Fri Feb 19 06:03:14 1971. – Toby Speight Jan 17 '22 at 14:12
  • 4
    @TobySpeight OMG. You're right. I got it backwards. If it is 2^32 x 30 then it would be 2^33 x 60 (doesn't make sense because 33) or 2^31 x 15 (doesn't make sense because 15). Back to the drawing board... – manassehkatz-Moving 2 Codidact Jan 17 '22 at 15:18