Thursday, January 01, 2009

There but for the grace of God go I

Microsoft has suffered some embarrassment because their Zune 30s stopped working on day 366 of a leap year. Lots of customers are annoyed, and lots of people are smug about Microsoft facing such problems.

All I can think was: thank God it wasn't me.

Time is one of the thorniest issues involved in computers. Clocks rolling over, leap dates, leap seconds, time zones, daylight savings, changes in daylight savings definitions, "official" sources that disagree with each other -- there is a lot to keep track of. "Time is a morass" a colleague once told me near the beginning of my career. I didn't understand it then, but by now I definitely do.

I was once at a start-up where our beta customers had the software stop working one day. The reason was because the default certificates that we issued had all expired. I wasn't the person who had created them, but I didn't think that the individual who did had made any grave error -- he had to choose an expiration and he did. At the time it was felt to be very far away and that our customers would be generating their own certificates anyway. (This was years ago, when people still believed in PKI.) Our software that regularly verified the certs should have warned that they were about to expire, but again that's a design decision that looks easy after-the-fact.