Twice a year I’m reminded of how little correlation there is between how much a time-telling device costs and how smart it is about daylight saving time.
Device | Approximate price new | Does it automatically adjust for DST? |
---|---|---|
IKEA wall clock | $15 | No |
Microwave oven | $90 | No |
Kindle Paperwhite | $100 | No |
Fitbit fitness tracker | $150 | Yes (but don’t ask about the sleep tracking for that night) |
Canon M5 camera | $700 | No |
iPhone 7 | $750 | Yes |
Stove and oven | $1,000 | No |
MacBook Pro | $3,000 | Yes |
Toyota Camry | $16,000 | Yes |
For comparison, Amazon lists an analog wall clock that will regularly set itself, including for daylight saving time, from the time station in Colorado. It costs $20 and has an average rating of 4½ stars.
Irritation at others’ inadequacies
The one that really gets me is the camera. I like it overall, but it doesn’t have built-in GPS for geotagging my photos, and—setting aside daylight saving entirely—it’s bad at keeping accurate time, so even if I use my smartphone to collect a GPS track it will still take trial and error later to tag my photos. Why, Canon!?
Admission of my own inadequacies
I worked for a scientific-measurement company whose devices would appear near the Camry in this table. The instruments had industry-leading precision, but they didn’t have real-time clocks, so on each new boot they got to relive some day in 2011. This detail was invisible to the end user… until I had the bright idea to make the device accessible through an HTTP API. Now every piece of information from the device came with a Date header that was wrong by at least three years. But what can you do? RFC 2616 requires that you send a Date header, after all.
Except… it doesn’t. In fact, it specifically says that “if the server does not have a clock that can provide a reasonable approximation of the current time, its responses MUST NOT include a Date header field.” And I was using the built-in Go HTTP server, which will remove the auto-generated Date header if you just ask it to. I had hoped there would be a more interesting moral to this story, but I think the lesson is simply that if you’re justifying a bug by pointing to a standard, make sure you’ve actually read the standard.