4

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?

5
  • 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. Jan 16 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 at 17:15
  • First meeting of Unix Users Group (which became Usenix) is reported as occurring in 1974, Jan 16 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. Jan 16 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 at 17:23

1 Answer 1

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
8
  • 3
    Why 30 Hz? Would be good to include that. Jan 16 at 19:01
  • 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. Jan 16 at 19:34
  • 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. Jan 16 at 19:57
  • 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. Jan 17 at 14:12
  • 3
    @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... Jan 17 at 15:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.