husk.org / blog. chaff. occasional witterings.

2006-03-05

An update on Blue Coconut

computing 17:20:05

Well, here we are. Spring is beginning to show signs of happening (well, it's light in London, even if it's still cold). It's now getting worryingly close to a year since I've written, or released, anything to do with Blue Coconut. So.

Recently, the first person asked if Blue Coconut would work on Intel Macs. The answer, sadly, seems to be, no, not at the moment. It's not a Universal application, and it doesn't run under Rosetta. This is partly because of the way I built the app; I knew Perl, and I had Perl tools to copy tracks between iTunes shared libraries, but I didn't want to build the GUI in CamelBones; instead, I chose AppleScript Studio.

The GUI actually works; it boots, and shows a "Please Wait" message. Unfortunately, because there's a dependency on a C-based library in the stack of Perl modules I use, currently the downloader only works on PPC machines.

There are two general approaches to fixing this. The first is to remove the Perl part of the code, and use C/ObjC/C++ called from AppleScript (which Xcode will then handle cross-compiling). This, understandably to those of you who are still scripting language programmers most of the time, is pretty daunting, but in the long run it's the right way to do it. The second is to either remove, or cross-compile, the C dependency in the Perl. Both are possible, but the former may mean a small performance hit, and the second seems to involve a fair bit of work with PAR. This is, for the moment, much more likely.

Another drawback is that I don't yet have an Intel Mac of my own, and I don't think I'm likely to any time soon; my current PowerBook may be over two years old, but it does its jobs well enough. I found out that the app was broken by going to the Regent Street Apple Store, which works for diagnosis but isn't, perhaps, the most efficient way of debugging an application.

As a side note, the use of the Perl script also means that Blue Coconut can't be used by users on the same machine at the same (ie under Fast User Switching); there are two copies of the application trying to start (and communicate with) two Perl scripts, and something gets confused. This is why I said above that using C was the right way to go. In the meantime, I'm afraid all I can suggest is to quit Blue Coconut before switching.

Still, Apple's been updating iTunes steadily since July; we're now at version 6.0.4 (from 4.7.1 or so). I'm actually almost amazed that Blue Coconut still works without changes, even with the latest version of iTunes (although I had to upgrade mt-daapd, which is doing a good job of keeping up with the moving target). Nonetheless, I do get questions about whether Blue Coconut works. If it ever doesn't, I'll endevour to get a post out about it.

It's time, though, for me to pay a bit more attention to the application, anyway. There's a second beta in the 1.5 branch that I should push out (although, ideally, I'll fix a rather annoying glitch first; if not, there should be a beta three rather soon, too). I also apologise wholeheartedly for my entirely lacksadaisical way with email. Reading the steady supply of indie developer stories has made me feel incredibly guilty about the lack of support and notification I give people about the app, especially as I've become aware that many people do like it. For those people, it's time to dust off Xcode.

navigation.