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.

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...

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.

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