I think an ideal input would be numeric keypad. Alternatively (in case numbers might be too many buttons), arrow left/right to move cursor and -/+ to adjust each digit individually, and the start/stop button (if pushed when the timer is already at zero, then it will silence, and then if pushed again without setting the timer, then it is counting up instead). The wheel (described there) and start/stop button, would be another way. Add the mode switch clock/alarm-set/timer/clock-set, and the alarm switch on/off, and light switch on/dim/off (or merely on/off), and possibly volume switch. Cover to avoid pushing the switches while it is closed.<p>But, I agree with them I don't like the hours/minutes button that many clocks have instead. Another thing that many clocks don't have, that I think would be helpful, is alarm test function. Both it can ensure that the sound is not broken and you can know how loud it is.<p>Last time I had went to a hotel, they did not have a clock. So, next time I will bring my own clock (but unfortunately, it makes some noise).<p>I had also made a program in uxn which includes clock/alarm/timer function. Input can be by keyboard, joypad, mouse, or touch screen (only one type of input is required, but assumes that the keyboard includes a mapping of the joypad buttons to some of the keys, too). It is 3490 bytes long (although it includes a full ASCII font, even though this program does not use the entire ASCII set, so some of it is wasted), and could hopefully run on many kinds of computers. Actually, it includes other functions too, including 12/24 hours switch, day of week display, timer counting down and up, timer recording, sound test, volume control, and Westminster Quarters. But, for a simple clock (with simple electronics) you do not need all of those things; the stuff listed in the article seems like mostly good (although I would do some things differently).