> "Basically, it was a Y2K problem, where some software didn't roll over the calendar date correctly," said A'Hearn. The spacecraft's fault-protection software (ironically enough) would have misread any date after August 11, 2013, he said, triggering an endless series of computer reboots aboard Deep Impact.
Men build a $267m spacecraft, send it to space, target it at a meteor, manage to make it inspect the meteor upclose at thousands of kms/hour... and still, writing correct software is an impenetrable problem.
Not only that, the problem was date/time related. Dates and times seem to be one of the most tricky things to account for and are consistently taken for granted, introducing unexpected errors. You would think by now someone would have made a fortune developing a robust radiation tolerant datetime IC, that has enough bits to count milliseconds from the big bang until the estimated end of the universe.
As Peter van der Linden says in his (excellent) book Expert C Programming: "Anyone who thinks programming dates is easy to get right the first time probably hasn't done much of it."
Totally off-topic, but that looks a lot like Haskell, what did you do to make ghci have such handy calculator functionality? (I can't find secs in Hoogle)
I bet that during the initial design phase, they wanted to keep the design simple, have enough timekeeping range to cover the mission and then maximize temporal resolution.
Someone realized that a counter operating on tenths of a second from 2000 was both easy to use and sufficient for the primary mission... they then thought nothing of it until the loss of contact
Men build a $267m spacecraft, send it to space, target it at a meteor, manage to make it inspect the meteor upclose at thousands of kms/hour... and still, writing correct software is an impenetrable problem.
Amazing.