or, Convincing Oneself is the Next Step Toward Insanity.

I’m not a programmer, dammit. I keep telling this to people who ask, and I keep telling this to myself. Yet, here I am, admittedly flailing about more like a yard-guard scr1pt-k1dd!3 than doing Significant Things, but I’ve written another package for your amusement.

This one also starts with technical difficulties in operating the Top Secret Radio Network. When I built the TSRN website, we were broadcasting over a ShoutCast server hosted at tess.fast-serv.com, and things were very simple. Things remained simple when I spun up a ShoutCast server at rbx.topsecretradio.net to replace tess. Things got even simpler when I moved the website to its new home on rbx as well. Then things sat stagnant for a while.

You may recall my post from last month wherein I described a plugin I’d developed for Exaile to support updating title information on a ShoutCast an Icecast server. I realized at some point last night that while I’d switched the server from ShoutCast to Icecast, I hadn’t updated the website to reflect this change.

The website sports a ticker on the right-hand panel that displays current server information, including the stream title, current track, and listener numbers. The ticker is derived (read: ripped wholesale) in large part from the MusicTicker XML package that I located while trying to find something to handle this function. This package hasn’t been updated in years, but it did what I needed it to do, with a minimum of fussing around with it. The problem: it only deals with ShoutCast XML; if you feed it Icecast XML for an active stream, it gags and dies. I wanted to fix this. It shouldn’t be that difficult, right?

Well, it wasn’t that difficult a fix, really; it only involved me staying up until 0500 beating my head on PHP’s supposedly ‘SimpleXML’ parser (which is, I guess, if you’re a stronger programmer than I am). The end result is the beginnings of a replacement, which vaguely resembles MusicTicker.  It’s not quite where I want it yet, and it only really supports monitoring one mountpoint at a time, but it seems to be doing the trick for the moment. I have some plans to work on this some more in the next few days to handle everything I want it to handle, but it’s in a sufficiently advanced state that I felt okay sharing it with everyone. You can get it here:

git clone http://www.dragonsroost.org/src/iceticker.git

Normally, I would release it under the revised BSD license, but because it’s derived from a GPLv2-licensed work, I’ve released it under the terms of the GPLv3. As usual, there is neither warranty nor active support, but I’ll probably answer short questions about it.