MusicBrainz.org falls under the category of "useful apps", making use of acoustic signatures on your song files to match against its database and retrieve reasonably accurate tag information.
You can search the database from the web, or better yet, download a tagger utility either for Mac or Windows.
iEatBrainz, the Mac utility, operates wonderfully, correctly identifying and semi-automatically correcting a number of mp3 files in my collection that were consistently misidentified by Gracenote (see screenshot)

CHUD 4.0, as presented at JavaOne, contains a new version of the Shark tool which allows profiling of Java Applications on Mac OS X. A step by step run of a simple profiling session is shown here.
CHUD can be downloaded from the Performance and Debugging Tools page at developer.apple.com: http://developer.apple.com/tools/performance/
Note that the current release is 4.0.0b1. If you already have CHUD installed on your Mac, you'll need to run the CHUDRemover tool to remove the previous CHUD installation before installing 4.0. The CHUDRemover tool is included in the CHUD disk image.
Since I had a *little* bit of trouble getting this all running, I thought I'd document the process I went through. I'm basically going to profile a Java Swing app (as opposed a Cocoa Java app), and I want to do it without having to use XCode - in other words, I want to profile my completed application as others would run it.
Before you start profiling, there are a couple of things you need to do.
First you need to make a small change to the startup parameters of the VM for your application, adding the option -XrunShark. I added this to the info.plist file for my app:

Secondly, if you want to have access to your source code from within Shark (and you do want this), you have to tell Shark the path to your source. You do this from Shark Preferences, adding one or more paths to your source files:

After these changes, start your application. You can start your app from Shark as well as launching it manually. If you have the Console open (something, again, that you want to do), you'll see the message:
2004-07-05 19:44:11.443 JavaApplicationStub[684] Shark for Java is enabled...

You can now attach Shark to the running process. In Shark, choose which type of profiling you want:
- Java Alloc Trace
- Java Time Trace
- Java Method Trace
The SharkJavaReleaseNotes.rtf (located in /Developer/Documentation/CHUD) document contains a description of these profiling types (as well as the configuration instructions above). For my example, I'm going to choose Time Trace, which will give me the times spent in each method during the sampling session.

With the application running, select "Java Time Trace" from the pull-down menu in Shark, and select your running application in the process pull-down. Click the Start button and Shark will begin collecting data. You can now perform whatever actions in your application that you're trying to profile.
Click Stop when you're finished, and Shark will (after a few seconds) display a view of method calls with a percentage attached to each. The screenshot below shows a tree view.

This isn't, by itself, particularly useful because the majority of the time spent is actually spent waiting for an HTTP connection (which I'd expect). But Shark will let me do several things (called "Data Mining") which makes exploration of the results easier.
I could exclude parts of the tree I'm not interested in, which basically removes clutter but doesn't change the percentage values assigned to the parts I am interested in, or prune, which does readjust the percentages. I'm not going to do either of those, opting instead to "focus" on the branch of the tree that I think I can do something about :-)
So I select the branch I'm interested in, and select Data Mining->Focus Symbol Mp3HTTPD$HTTPSession:run
Having done this, I can then navigate the focused branch and look at what optimization opportunities I have (screenshot)

A very quick scan takes me to the 20.6% used by MMPdb:sqlEscapeNoQuotes. I'd like to have a look at this because all this method does is (you guessed it) perform SQL escaping on String objects.
Rather than having to fire up my IDE, at this point I can simply double click on the line in question. Shark almost immediately shows me the source for the method, with the "offending" line highlighted (screenshot).

Interestingly, as I start to think about how to optimize this small piece of code, I realize that it's being called by mistake (a result of the reuse of the getCleanTerms() method to obtain search terms for a web search rather than a database query). So the proper thing to do here is not call this method in this case :-)
Instead of finding a performance hit, I've actually found a bug. One that, since it has a limited overt effect on the operation of the program, I'd likely never find without the use of Shark.
Is this a good tool? Yes. It's freely available from Apple and is reasonably straightforward and performant. There's pretty clearly a lot more to it than I've shown here, so I'd encourage people out there to give it a try. As you can see from my experience, there's no telling what you might find :-)