Friday, May 25, 2007

Mock Submissions and Tracks

I have noticed a few "gotchas" when scrobbling tracks in a certain sequence. I am trying to develop a good way to test Lastpod without actually connecting to AudioScrobbler or having tracks on the iPod. Any ideas about how this could be accomplished? I was thinking some kind of IoC pattern and/or mock objects would work. What do you think?

Sunday, May 20, 2007

New version of LastPod released

A new version of LastPod has been released. It can be obtained here.

Fixing "hanging" user interface and providing better submission progress

Recently I have been revamping the graphical user interface for LastPod.

One of my favorite new features are the progress indication components. LastPod used to provide no progress indication when submitting tracks. Actually, the user interface used to "hang" while the submission was occurring. I reworked the Submit button using Swingworker, which allows the submission to occur in a background thread, thus freeing the user interface from hanging. I used the "swingworker 3" implementation, which is compatible with JDK 1.4 or greater. I had a fairly hard time finding useful information on this implementation because it is getting fairly old. There is also a wealth of information about the latest SwingWorker, in Java 6, which is quite different from "swingworker 3".

After fixing the hanging, I realized LastPod needed progress indication. To solve this problem, I added a progress bar and a throbber. The progress bar (JProgressBar) updates as tracks are submitted. The throbber uses a Timer to repaint, therefore the animation is smooth. Both the progress bar and the throbber are updated from within the swing worker thread, otherwise submission would complete before the interface would ever refresh, which defeats the entire purpose of the progress indicator.

Please submit any feature or bug requests that you find.

LastPod: Direct iPod / Integration

LastPod is a tool that will parse the "iTunesDB/Play Counts" file from an iPod and submit played tracks to AudioScrobbler ( LastPod directly interfaces with, no additional software is required. This method is fairly unique, and I have only found a few other applications that support this usage model.

If you have not done so already please download and try LastPod. I believe you will really enjoy using it.

The project is released under the GNU Public License (GPL). Please feel free to review the code and/or suggest improvements.