Alarm Clock Rant

I have a simple radio-controlled alarm clock standing on the desk next to my bed. Being radio-controlled is pretty convenient as you do not have to set the current time, care about daylight saving time or leap-years.

Yesterday I wanted to set the alarm before going to bed. None of the buttons had any effect although he clock was running and it was obviously displaying the correct time. My first thought: “Oh no, the clock’s OS crashed!”, but I realized that an alarm clock probably does not have an OS (and hopefully no Windows…).

It was a few seconds later that a flashing icon was giving me a hint what was going on: The clock was synchronising to the radio time source as it does every hour. While it does so, it cannot act to user input at all!

Since I had coded a simple software-decoder for a radio-clock myself (working with hardware over a serial port a friend of mine had designed), I knew that it takes one minute to transfer the current date and time. Most clocks receive this information three times to make sure, no error occured. And that’s exactly what happened: I had to wait full 3 minutes (I just happend to try setting it at exactly 1am in the beginning) before I could set the alarm and close my eyes!

As a computer science guy I can accept that a (cheap) alarm clock can’t do two things at once: synchronizing and handling user input. What I can’t accept, however, is the priortiy chosen by the designers! Why can’t this damn clock simply cancel its synchronizing when a user input arrives and handle the user input? It tries to synchronize every hour anyways and, honestly, I don’t care if it is off by 0.1 seconds for one hour because I wanted to set my alarm.

So, lesson learned: Always put your users at the top of your priority list!