Do Not Disturb Bug
The problem—for some people, at least—is that come New Year’s Day 2013, Do Not Disturb apparently forgot to set its own alarm (or anthropomorphically slept right through it). These users awoke to see the familiar crescent-moon icon in the status bar, meaning that Do Not Disturb mode was still active, hours after it was scheduled to disappear. A Macworld editor, for example, discovered that Do Not Disturb was still enabled at 10:30am, even though it was scheduled to turn off at 8:25am.
John Gruber notes that New Year’s bugs are becoming an iOS tradition.
Apple’s TS4510 indicates that Apple knows about the bug, but rather than fix it is simply waiting for it to stop manifesting:
Do Not Disturb scheduling feature will resume normal functionality after January 7, 2013. Before this date, you should manually turn the Do Not Disturb feature on or off.
Jacqui Cheng speculates that the bug is due to using the wrong case in the ICU format string:
What’s perplexing is that Apple points out this common mistake in its own date formatting documentation for developers. YYYY specifies the week of the year (ISO) while yyyy specifies the calendar year (Gregorian). “In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year,” writes Apple.
Noah Sussman (via Erik Schwiebert):
I have repeatedly been confounded to discover just how many mistakes in both test and application code stem from misunderstandings or misconceptions about time. By this I mean both the interesting way in which computers handle time, and the fundamental gotchas inherent in how we humans have constructed our calendar — daylight savings being just the tip of the iceberg.
In fact I have seen so many of these misconceptions crop up in other people’s (and my own) programs that I thought it would be worthwhile to collect a list of the more common problems here.
Update (2013-01-04): Patrick McKenzie has a related post, Falsehoods Programmers Believe About Names (via Dave Dribin).