Death-Diffying Moves

December 29th, 2005

One of the aspects of being a professional software developer that is a real grind is the tedious, careful double-checking we must do in order to reduce the odds that our work will lead to some major metropolitan area bursting into flames.

Double-checking means diffing.

Diffing is hard. Even with somewhat friendly tools at our disposal, it’s a tedious, annoying pain in the butt. It doesn’t help that diff tools don’t seem to have improved much in the past 10 years, and are still obnoxiously finicky when it comes to issues like line-endings, encodings, etc.

But the worst part of diff tasks, as with most things, is simply getting started. I am particularly averse to working on things that are hard to start. While diffing from Xcode can be really easy just hit a keyboard shortcut to see a comparison with the last checked-in copy, for instance), diffing arbitrary files in the Finder usually follows a pattern more like this:

  1. Launch a diff-comparison tool like BBEdit or FileMerge.
  2. Navigate to File A in the Finder. Drag it to the diff-tool.
  3. Navigate to File B in the Finder. Drag it to the diff-tool.
  4. Tell the diff-tool you’re ready to compare!

Well, that’s too many steps for me. So I wrote an AppleScript to apply some rather straightforward logic to the selected items in the Finder, and open your favorite diff-tool for you with the comparison process started. The logic of the script is simple enough:

  1. Are there two items selected in front window? Compare them.
  2. Is there exactly one item selected in the front window and one item selected in the second-to-front window? Compare them.

Here, “compare them” means pull an Xcode-like move and launch the “diff opener tool” of your choice. I’ve included in the script the paths to two “secret tools” used by Xcode for opening with BBEdit and FileMerge. If you want to use a different tool you’ll have to find a way of invoking it directly with two full paths, or write a helper tool that can do the trick for you.

This simple script makes a great Cmd-Opt-C shortcut in the Finder. It’s the same shortcut I use for “compare with latest” in Xcode. Now when I see two files in the Finder that I want to compare, I just select them both and trigger the script. Wham!

Feel free to download the script: Compare Files. Let me know if you have any suggestions for improving it.

Clarion 2.0 Beta

December 29th, 2005

My oft-neglected utility for mastering musical intervals, Clarion, received a bit of renewed attention recently. I have been planning a fairly major revision to this application for more than a year, but various other responsibilities have repeatedly put it on the back burner.

Motivated in part by a desire to show off the spiffy new icon, pictured here and designed by Steven Ansell, I have finally put in the lion’s share of finishing touches on Clarion 2.0.

For those of you familiar with Clarion 1.4, the major change in 2.0 (aside from the icon) is a complete redesign of the Preferences interface and underlying structure. Prior to 2.0, Clarion offered users the ability to define and save custom “interval sets” (like a scale), but other settings such as interval direction, consonance, instrument, etc., all had to be changed by hand if you wanted to mix up your practice. In Clarion 2.0, all of these preferences are contained in a new “Configuration,” any number of which can be defined and easily switched between by the user in the main quiz window.

Clarion, like my other main product, FastScripts appeals to a niche audience. Some of you are wondering what the heck a music interval even is. Although the niche products don’t make anybody zillions of dollars, they are perhaps more appreciated than others because they connect so directly with the user’s specific interests and needs.

So if you need to learn your intervals, or you just want to brush up, give the Clarion 2.0 Beta a try. This sucker is dang-near done (he says with dangerous confidence), so if you’ve got feedback, be sure to let me know ASAP!

A special note for developers: if you have been putting off investing in a professional icon designer, wait no longer! I put it off for years, partly thinking that one day I’d just “get good at it,” or afraid that the costs would be unmanageable. Steven Ansell makes it easy and affordable to add panache to your technical creations. In addition to designing the Clarion icon for me, he also gave the FastScripts icon a modest makeover, and designed a third icon for an as yet unreleased product. Take advantage of his generously reasonable rates while the getting is good! And thanks again, Steven.

Update I accidentally posted a release of Clarion with artificially strict “trial period” controls in place. If you happened to download within the first 5 minutes of this post appearing, please download again to see the more generous side of the Clarion trial period :)

FastScripts for Free

December 27th, 2005

I’ve decided to make a slimmed-down version of FastScripts available, starting immediately in conjunction with a minor 2.2.7 upgrade of FastScripts. FastScripts Lite [d/l] offers much of the same organizational and performance functionality of FastScripts, at an infinitely lower price.

What you don’t get in FastScripts Lite is best summed up by what you do get with the “standard” edition of FastScripts:

  • Unlimited Keyboard Shortcuts
  • Recent Scripts support
  • Customizable Script Editor settings
  • Numerous fine-tuning options for menu presentation and behavior.
  • Built-in support for “On Screen Display” messages.

For the most part, everything not specifically mentioned above is included in FastScripts Lite. Now you can recommend it to your cheap friends without reservation!

Apple Strides in on a Banana

December 22nd, 2005

I’ve recently installed Mint, a statistics gathering package, on my web site. It’s basically a souped up referral/hit recording package, similar to what Google is now offering for free. Why pay for Mint when I can get the Julep for free? Several reasons. First, Google is not accepting new users for the service right now. And while I have it on good authority that I could weasel my way in through a personal contact, I am more troubled by what is described as a “six hour delay” in the time it takes for statistical information to show up for your page.

Mint is instantaneous. Furthermore, the Mint package hits some (small) nails right on the head. The “recent referrer” list comes with an option to subscribe as an RSS feed. This means that every time a click comes through from a new referrer, I see it pop up in my NetNewsWire subscription. This is even better than the Egorati and EGO-ogle searches I used to do, because a substantial number of sites that link to me do not ever show up in Technorati and/or Google.

By seeing exactly who has linked to me I not only get a warm fuzzy feeling that people are reading the blog, but I also get enchanted by the knowledge that readers all around the world are tuning in. I especially like foreign language links with native (to them) preambles. Today this one popped up on the Radar, a link to my Dell/Apple analysis from Sweden. A quick trip to Systran, yields a translation including this choice introduction:

This is the reason to that Dell, HP and the other has a market.
The as wants to have some in addition to a pinch pressed standard
pc must skruva together it, with all those problems the means.

But what hands when Apple strides in on banana?

My point exactly.