Thursday, April 27, 2006

Email suggestions

I get dozens of emails each day about the alarm clock application. Many times users have suggestions for the app, and we converse back and forth about their implemenatations. Many of the new features in AC2 (and the upcoming features in version 2.3) are directly related to user suggestions. If you have suggestions, or general feedback I encourage you to send me an email or post a comment. (you can post comments annoymously on this blog if you wish)

There is one suggestion that I occasionaly get that I would like to publicly state my position. Every so often, I get a suggestion that says "how come I can't launch a 3rd party app when an alarm goes off?" There are several reasons why I haven't implemented such things in AC2, and I've pasted a recent email response to a similar suggestion below:

I apologize, but this is a feature request that I'm consistently resistant to.
Let me explain my thoughts on the matter.

For as far back as I can remember, I've hated alarm clocks with the passion of a thousand fiery suns. Every morning they would go off, loud and next to my ear, destroying my pleasant dreams and shattering my slumber with their incessant beep-beep-beeping. I'm convinced that in hell they use the sound of a beeping alarm clock as background music. (sorry, I'm getting off topic) So when I finally got my first mac several years ago, I realized it's potential as an alarm clock. Not being a mac programmer at the time, I did what everyone else does, and went out and downloaded one. For the next several years I used this alarm clock (as well as several other alarm clock programs) and learned a few things about them.

One of the things I learned (the hard way, several times over) was that it sounds cool to launch other applications to wake you, but it's not reliable. The alarm clock program probably has no problem running scripts, or launching other apps, but those apps were NOT made with the functionality of an alarm clock in mind, and don't always behave as one would expect. Would you stake your job on the ability of an applescript to launch EyeTV, and that EyeTV would launch perfectly without prompting you for anything, and would be at the correct volume, and would be on the correct channel...? (I used EyeTV because the sender specifically mentioned it, but you can insert any 3rd party app here.) When you start to think about all the potential problems with launching other apps, you start to see the problems that something small could cause for an alarm clock program. Many programs out there allow users to do all kinds of things when an alarm goes off, but how safe are they to use? One time I set my alarm to open up a webpage which would play an online radio station. The alarm clock launched the browser correctly, but when I awoke an hour late I was greeted proudly with a 404 error. I then had to explain to my Math teacher that the reason I missed the exam was because I was using a computer alarm clock and that it was set to open a web page which had restructured and changed URL's. His response: he laughed at me, told me to get a real alarm clock, and told me that excuses like that won't work in the "real world" so they won't work here.

Even the alarm clock applications out there that only play music aren't totally safe, because most of them rely on applescript to control iTunes! (Mine does NOT, btw) I've had my fair share of problems with these apps as well.
Think about some of the problems an alarm clock runs into when it depends on iTunes to play it's alarm in the morning:
- iTunes was recently upgraded, and requires you to re-agree to the license agreement. It was launched by your alarm in the morning.
- iTunes was set to play to your airTunes speakers, but they aren't available
- iTunes was set to play a radio station, but gets disconnected during play time. The music stops.
- A short playlist is used, but you forgot to turn on playlist repeat.

I can think of several more, but I'm sure you get the point.
It is directly because of all these problems that I decided to make my own alarm clock. I was sick and tired of alarm clocks which would occasionally not work in the morning. In my opinion that was completely unacceptable, and I think most people don't use alarm clocks on their computer because of all the crappy alarm clock software out there. I've made it my personal mission to make an alarm clock that is completely dependable. It doesn't execute applescripts, or launch web pages, or 3rd party applications... but you can rely on it to wake you up in the morning. It doesn't cross-fade songs in your playlists, or turn on iTunes visualizations... but you can sleep peacefully knowing that it will operate correctly in the morning, no matter what.

I'm sorry to shoot down your idea, and I hope I haven't offended you, but this is something I'm rather passionate about. I hope you can understand where I'm coming from, and maybe appreciate my desire to create such a dependable application.

Tuesday, April 18, 2006

Version 2.2.5 released

I just released a new version. I was going to add a few more things, and release this version later, but I found an OS X bug (on Intel only) that required an immediate patch. There were two major changes in this release:

1. "Implemented work-around for OS volume bug that affects intel macs immediately after waking from sleep."
When an alarm goes off, one of the first things the alarm does is execute a core audio call to set the system volume. For some reason, these calls don't work on Intel macs if they are executed shortly after the system wakes from sleep. The effect is that if the alarm clock wakes the computer from sleep to sound an alarm, the volume may not be properly set, and thus may not be loud enough to wake the user. I'm not sure if this happens on every Intel mac, but I received word of 2 confirmed cases, which was enough for me to classify it as a class-A bug, and scramble to release an immediate patch. Stability is key. This problem is now solved, as AC will continually set the volume during the alarm.

2. "Alarm Editor now properly badges close button during editing."
That is, if the alarm gets changed, the app will put the black dot in the red close button to indicate it's been changed and hasn't been saved. This is common in many apps, and AC now follows suite. If the user tries to close the window when there is unsaved changes, they are prompted to save their work. This helps as several users have stated that they sometimes close the alarm editor windows with the red button, and don't know if it's been saved or not.

Tuesday, April 11, 2006

How about a new name?

Many people have asked me, "Why do you call your product simply 'Alarm Clock'?" The answer is that when I started working on it, it was an obvious name and I figured I'd think of a clever name for it later. But I never did come up with a name I liked, and finally released it to the public with the same generic name. Some people like it. They say it's a simple name for an easy-to-use program. Other people think it's a silly name, and it makes the product look bad. So I wonder what YOU think of the name. Do you like it? Do you dislike it? Does it not matter? Do you have any ideas for an alternate name?

Monday, April 10, 2006

Version 2.2.4 released

Version 2.2.4 has just been released.
The biggest change in this version is the support for time zones. This means that if you change the time zone (via system preferences) the alarm clock will automatically update all the alarms to go off at the proper time for the new time zone. Also, if you change time zones while the application isn't running, it will update all the alarms to the new time zone when it launches.

If you're wondering why this was previously a problem, it's because of the way OS X stores dates. They are stored as the number of seconds since 1 Jan 1970 GMT. So '0' might mean '1 Jan 1970 12:00 AM' in London, but in New York it might mean '31 Dec 1969 8:00 PM'. The correct date and time are displayed by applying the time zone offset to the GMT time. Therefore, a date set for 9:00 AM EST, it will always go off at 9:00 AM EST... and if you happen to be in St Louis, that means the date is set as 11:00 AM for you! Confusing? Well all you really need to know is that I've taken care of all these problems. I worried about it so you wouldn't have to. Travel all you want, change time zones at will, and don't even try to remember when daylight savings is! Just set your alarms, and they will go off when they're supposed to. Enjoy.

Thursday, April 06, 2006

Windows screws up your clock

If you have an Intel Mac, and you installed Windows XP with the newly released Boot Camp from Apple (or you plan on it), beware of your system clock. Windows will screw up the time on the Mac!

This is because of the way the time is stored in EFI/BIOS. Windows XP sets the BIOS clock to match the local clock, but OS X uses the international standard UTC (Universal Time, otherwise known as GMT). One way to fix the problem is to set the Windows time zone to GMT (+0000) and deselect "automatically adjust for daylight saving time".

Tuesday, April 04, 2006

Italian Localization!

I just received an Italian localization for the alarm clock. It has been merged into the current build, and will be available upon the release of 2.2.4. (Which I'm currently working on.) This makes a total of 9 localizations...and counting. More are always welcome!