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.

2004-09-16

freshtunes.pl

perl 16:50:46

Richard Clamp's excellent work on the Net::DAAP::Client - allowing Perl scripts to connect to iTunes shared libraries, even if they use one of the various authentication schemes that Apple have implemented since iTunes 4 was introduced - has led to a rash of little apps in our office.

freshtunes.pl is a little utility script that finds all the iTunes shared libraries that are advertising on Rendezvous, connects to them, and then lists all tracks on that share that are under a week old. (Technically, that is 'have been added to the iTunes library within the last week'. If someone just rebuilt the library, this will be quite verbose.)

Of course, it should probably take the interval during which it's looking for tracks as a parameter, and perhaps listing what's been updated in your own library is a little silly, but hey, that's what you get for a quick and dirty script. It's got the typical Perl licence, though, so that's OK: you can fix it.

2002-06-26

YAPC::NA, baby!

perl 14:22:03

Oh dear, I really am turning into Leon.

I was thinking of doing entries about the conference both here and on use.perl but I think I've decided that I'll only post things there. So far I've managed one entry but I'm sure there'll be more later.

In it I touch on the problems I had finding a heart to St Louis. It seems Simon Cozens had similar problems on Sunday.

2001-09-20

code2html, Lileks

perl 18:05:13

Hmm, code2html would have been useful an hour ago (before my tech talk). This is my light relief for the day.

navigation.