"Here are some features I'd particularly like to have (though anything that's good at waking a heavy sleeper is worth mentioning, even if it doesn't have all these features):
- Gets progressively louder until snoozed. Starts louder with each successive snooze.
- Max volume slightly painful, but not physiologically dangerous. An air compressor and train whistle is probably overkill.
- Easy to snooze, but hard to accidentally turn off completely. Bonus points if turning it off means being cognizant enough to operate a screwdriver or tool of some kind.
- Snooze time gets geometrically shorter each iteration (e.g., half as long as the previous) so that there's a maximum total snooze time that can be approached assymptotically.
- Has battery backup so that it will operate during a power outage, at least to keep time. (I _could_ just stick it on the UPS, but do I really want to spend a UPS outlet for an alarm clock?) This is a feature my current clock has (takes a nine-volt battery), but even better would be a rechargeable that will even operate the alarm during a power outage.
- Can be set to always go off at the same time every day, so I don't have to remember to set it at night unless I need to get up at a different time than usual.
- Has some kind of cool feature with geek appeal -- but not binary time display; I need to be able to read the time when mostly asleep.
If you were going to go the route of building a cheap computer to do this, what software would you use to do it?