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.
Thursday, April 27, 2006
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.
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.
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".
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!
Monday, March 27, 2006
Version 2.2.3 released!
I've just released version 2.2.3 to the general public. It's available for download NOW! This version adds support for the APPLE REMOTE. So now, if you happen to have one of these handy devices, you can snooze your alarm from across the room. I've always wanted to be able to do this...and I still can't because I don't have an apple remote. :( But my roommate (with a MacBook Pro) can, and he loves it! And I'll admit, sometimes this functionality can be dangerous... so I've added an option in the preferences to disable it, just in case.
What else is new in this version:
Added Spanish localization
Added Dutch localization
Did I mention the apple remote support?
Fixed bug where application would fail to unmute the system volume
Several other minor bug fixes.
And since it always bothers me when developers say "several bug fixes" without elaborating, I'll provide a few more details here:
1) Check for updates now correct for pre-release builds.
Normally, pre-release builds, where the build number was higher than the build number of the last released version, would claim there was a newer version available. This annoyed me, so I fixed it.
2) Fixed "Song: (null)" and "Playlist: (null)" display bugs
This would happen after upgrading to 2.2.2 or later from an earlier version, and the previous song or playlist had disappeared. (Or changed ID numbers within iTunes, which isn't that uncommon)
3) Fixed Enter/Return bug
I've been using a Powerbook for so long, I've forgotten that the Enter and Return keys are actually different on a standard Mac keyboard! When the alarm said "Press Enter to stop the alarm", it actually meant "Press Return to stop the alarm", and the Enter key didn't actually work! So now I've made it so that either key works, as one would expect.
4) Fixed double-clicking stop bug
Did you know that if you double-clicked the Stop button on the alarm window, the application would crash. Well I didn't! So I've now fixed this problem.
5) Smoother window fade out when stop is clicked
Partly due to the fix from the above problem.
6) Improved accuracy of AlarmTask timer
This is the timer that checks for alarms to go off every minute. Previously this would check when the seconds were zero, but the milliseconds could have been anything, depending on when you launched the program. It now checks right at zero seconds, and zero milliseconds. (Ok, it's more like 1 or 2 milliseconds depending on the speed of your computer)
7) Improved readability of text in bezel by adding a shadow
Got this idea after looking closely at some Growl notification windows. I was like, "What?!? How did they add a text shadow?!?" Now I know.
What else is new in this version:
Added Spanish localization
Added Dutch localization
Did I mention the apple remote support?
Fixed bug where application would fail to unmute the system volume
Several other minor bug fixes.
And since it always bothers me when developers say "several bug fixes" without elaborating, I'll provide a few more details here:
1) Check for updates now correct for pre-release builds.
Normally, pre-release builds, where the build number was higher than the build number of the last released version, would claim there was a newer version available. This annoyed me, so I fixed it.
2) Fixed "Song: (null)" and "Playlist: (null)" display bugs
This would happen after upgrading to 2.2.2 or later from an earlier version, and the previous song or playlist had disappeared. (Or changed ID numbers within iTunes, which isn't that uncommon)
3) Fixed Enter/Return bug
I've been using a Powerbook for so long, I've forgotten that the Enter and Return keys are actually different on a standard Mac keyboard! When the alarm said "Press Enter to stop the alarm", it actually meant "Press Return to stop the alarm", and the Enter key didn't actually work! So now I've made it so that either key works, as one would expect.
4) Fixed double-clicking stop bug
Did you know that if you double-clicked the Stop button on the alarm window, the application would crash. Well I didn't! So I've now fixed this problem.
5) Smoother window fade out when stop is clicked
Partly due to the fix from the above problem.
6) Improved accuracy of AlarmTask timer
This is the timer that checks for alarms to go off every minute. Previously this would check when the seconds were zero, but the milliseconds could have been anything, depending on when you launched the program. It now checks right at zero seconds, and zero milliseconds. (Ok, it's more like 1 or 2 milliseconds depending on the speed of your computer)
7) Improved readability of text in bezel by adding a shadow
Got this idea after looking closely at some Growl notification windows. I was like, "What?!? How did they add a text shadow?!?" Now I know.
Friday, March 24, 2006
Seeking beta testers
I'm looking for people willing to help me beta test the alarm clock. Especially intel mac owners. Several days prior to each release, I send out a beta version to all testers. I'm currently seeding a pre-release version of 2.2.3. There have been many improvements to this version, as well as a cool new feature! Want to know what it is? Send me an email and I'll send you the latest pre-release.
Wednesday, March 22, 2006
Happy 2-month anniversary
Monday marked the 2-month anniversary of the initial public release of the Alarm Clock application. So how has the application been doing?
To date, it's had an estimated 38000 downloads.
It's now available in 8 different languages.
It's been on apple's top 10 download list (in it's category) for the past month.
And this is just me perfecting it's original design. I've still got a few tricks up my sleeve...
To date, it's had an estimated 38000 downloads.
It's now available in 8 different languages.
It's been on apple's top 10 download list (in it's category) for the past month.
And this is just me perfecting it's original design. I've still got a few tricks up my sleeve...
Spanish & Dutch localizations complete
I received the completed Spanish and Dutch localizations today, and they have been integrated into the current build. These will be part of the next release, which I hope to have ready in the next several days.
Friday, March 17, 2006
Spanish localization
I've just received an offer from someone to help me create a spanish localization of the alarm clock! This will be a welcome addition, and will make localization number 8! I'm extremely thankful for all the help and support I've received from the Mac community in the development of this software. I've had a lot of kind feedback, encouragement and help. To everyone who has submitted feedback, helped with graphics or localizations, and those who have given donations: THANK YOU. None of this would be possible without you.
Version 2.2.2
Version 2.2.2 has just been released. It offers several bug fixes and a few new features/tweaks.
Fix 1:
Previously there were problems if the user had multiple playlists in their iTunes library with the same name. Most people don't know this is possible, but it is. Well this was a tiny little oversight in the code (or should I say failure to read apple's documentation fully), which has now been corrected.
Fix 2:
In version 2.2.1 I added support for resolving aliases to the iTunes Music Library.xml file. Well, apparently I have problems copying and pasting code from apple's website, because I failed to copy their code correctly, and the result was a failure to resolve an alias if it pointed to an external drive. (At least I think external drives were the only thing affected.) I've corrected this oversight.
Fix 3:
(More like a feature addition...) The alarm editor now automatically reselects your track and/or playlist. So if you chose to wake up to a playlist, and you open the alarm in the alarm editor, your selected playlist will be restored when looking at your music. The same thing happens if you selected a track. Also, if you switched to a playlist (say a playlist for songs you like to wake up to) and selected a song from there, then both the playlist will be displayed and the song within the playlist will be selected. Makes switching songs a lot faster for many people.
Fix 4:
The alarm clock would sometimes crash if you owned a laptop, and quickly switched between wake and sleep several times in succession. (Obviously, this didn't affect everyone) Normally it happens if you have the lid shut, and plug in a usb device. In this case the computer would wake up, and immediately go back to sleep when it realized there wasn't an external display attached. If you then unplugged the usb device (causing it to wake up and go back to sleep again) the alarm clock would crash. (Yeah, it happens under just about those particular conditions. And yes, I did take me forever to track down this sequence.) Well anyway, this seemed to be a problem with apple's code, in particular the [NSTask waitUntilExit] method. So instead of using it, I wrote my own version and all is fixed.
Fix 5:
I tweaked the look of the 'Alarm' tab in the alarm editor. Made it a little simpler... I think you'll like it.
Fix 1:
Previously there were problems if the user had multiple playlists in their iTunes library with the same name. Most people don't know this is possible, but it is. Well this was a tiny little oversight in the code (or should I say failure to read apple's documentation fully), which has now been corrected.
Fix 2:
In version 2.2.1 I added support for resolving aliases to the iTunes Music Library.xml file. Well, apparently I have problems copying and pasting code from apple's website, because I failed to copy their code correctly, and the result was a failure to resolve an alias if it pointed to an external drive. (At least I think external drives were the only thing affected.) I've corrected this oversight.
Fix 3:
(More like a feature addition...) The alarm editor now automatically reselects your track and/or playlist. So if you chose to wake up to a playlist, and you open the alarm in the alarm editor, your selected playlist will be restored when looking at your music. The same thing happens if you selected a track. Also, if you switched to a playlist (say a playlist for songs you like to wake up to) and selected a song from there, then both the playlist will be displayed and the song within the playlist will be selected. Makes switching songs a lot faster for many people.
Fix 4:
The alarm clock would sometimes crash if you owned a laptop, and quickly switched between wake and sleep several times in succession. (Obviously, this didn't affect everyone) Normally it happens if you have the lid shut, and plug in a usb device. In this case the computer would wake up, and immediately go back to sleep when it realized there wasn't an external display attached. If you then unplugged the usb device (causing it to wake up and go back to sleep again) the alarm clock would crash. (Yeah, it happens under just about those particular conditions. And yes, I did take me forever to track down this sequence.) Well anyway, this seemed to be a problem with apple's code, in particular the [NSTask waitUntilExit] method. So instead of using it, I wrote my own version and all is fixed.
Fix 5:
I tweaked the look of the 'Alarm' tab in the alarm editor. Made it a little simpler... I think you'll like it.
Dutch Localization in the works
I've received word that a Dutch localization of the alarm clock is currently under way. This will make a total of 7 languages! If anyone is interested in localizing it into a new language, I'd love to hear from you! Just send me an email. ...anyone out there speak spanish and want to help out?
Friday, March 10, 2006
Version 2.2.1
Version 2.2.1 has just been released. It fixes a few bugs that have been a thorn in my side for quite some time.
Fix 1:
Previously, if the user moved their iTunes library, there was a chance that their "iTunes Music Library.xml" file would be moved too. Generally this didn't occur if they moved it via the iTunes Preferences, and allowed iTunes to migrate the music files for them. But occasionally, users would move the files manually (including the xml file) and just slap an alias in the original location. What they didn't know is that these aliases are not automatically readable by the filesystem or by applications. Developers have to go in and specifically add code to check for aliases, and then add code to follow these aliases. Needless to say this is a pain in the arse for us developers, but then again, aliases have their virtues. Well, I've finally added the 500 lines of code to deal with this problem, so hopefully it shouldn't happen again.
Fix 2: (More iTunes library XML problems...)
Occasionally, after making changes to your iTunes library, the song that you selected to play would skip to another song nearby the original. This is because the application previously stored the "Track ID" for the song. This track ID is needed to lookup the song in the XML file, but unfortunately this track ID isn't persistant. iTunes creates the XML file everytime you change your library, so everytime it gets created, there is a small chance the track ID of a song may change. This is fixed by now storing a "Persistant Track ID", which can be validated against the "Track ID". If the track ID has changed, the persistant track ID can now be used to find the updated track ID. Sounds confusing? It's really not that hard. Just an extra little step in the process.
For more information about this crazy "iTunes Music Library.xml" file I keep talking about, go here: http://www.indyjt.com/blog/?p=51
Fix 1:
Previously, if the user moved their iTunes library, there was a chance that their "iTunes Music Library.xml" file would be moved too. Generally this didn't occur if they moved it via the iTunes Preferences, and allowed iTunes to migrate the music files for them. But occasionally, users would move the files manually (including the xml file) and just slap an alias in the original location. What they didn't know is that these aliases are not automatically readable by the filesystem or by applications. Developers have to go in and specifically add code to check for aliases, and then add code to follow these aliases. Needless to say this is a pain in the arse for us developers, but then again, aliases have their virtues. Well, I've finally added the 500 lines of code to deal with this problem, so hopefully it shouldn't happen again.
Fix 2: (More iTunes library XML problems...)
Occasionally, after making changes to your iTunes library, the song that you selected to play would skip to another song nearby the original. This is because the application previously stored the "Track ID" for the song. This track ID is needed to lookup the song in the XML file, but unfortunately this track ID isn't persistant. iTunes creates the XML file everytime you change your library, so everytime it gets created, there is a small chance the track ID of a song may change. This is fixed by now storing a "Persistant Track ID", which can be validated against the "Track ID". If the track ID has changed, the persistant track ID can now be used to find the updated track ID. Sounds confusing? It's really not that hard. Just an extra little step in the process.
For more information about this crazy "iTunes Music Library.xml" file I keep talking about, go here: http://www.indyjt.com/blog/?p=51
Tuesday, February 28, 2006
Version 2.2 released!
Version 2.2 has just been released for the general public. See the website for the change log.
I also made some last minute improvements too. The alarm icons have reverted to their original color scheme, as many beta testers have requested. Also, a suggestion given to me via a comment on VersionTracker.com: the application now returns the system volume to it's original level after stopping an alarm.
LET THE DOWNLOADS BEGIN!
I also made some last minute improvements too. The alarm icons have reverted to their original color scheme, as many beta testers have requested. Also, a suggestion given to me via a comment on VersionTracker.com: the application now returns the system volume to it's original level after stopping an alarm.
LET THE DOWNLOADS BEGIN!
Monday, February 27, 2006
Version 2.2 just around the corner
Version 2.2 has just been sent out to the translators and beta testers. If all goes smoothly, it should be released in the next couple days!
Shuffle it up
I just finished implementing Shuffle. Now when selecting a playlist, you can choose to have the songs play in order, or play randomly. This was a popular feature request and shold make a lot of users happy (including myself).
Sunday, February 26, 2006
New menu icons!
Think the icons in the menu look like crap! I do...and I created them! In fact, I've had several people comment that they "could be better." (I think they were sugar coating it) Well all that is over now, because someone has created brand new ones! And they look sexy! Much better than before. These will be included in the next release.
More radio streams trouble
I have the majority of the radio stream code complete. However, during testing I continually run into problems. It just isn't stable enough yet to merge into the application. And since I have made several other improvements since the last release, I'm putting it on hold for a while so I can get the next release out the door.
Danish Localization Complete
I just received the localizations for Danish. They have been integrated into the application, and will be in the next release!
Subscribe to:
Posts (Atom)
