Archive for December, 2004

Merry Christmas to All!

Christmas 2004, already!  Best wishes to everyone!  Here’s hoping that Santa
brought you everything you wished for.

Nicholas is rapt with his presents (a sit-down musical learning piano from Mummy
and Daddy, a lovely soft puppy-dog toy from Aunty Berni, and a set of Baby’s First
Blocks from Uncle Roger) — even though he doesn’t really understand what’s happening
and was just as happy playing with the wrapping paper!  

For foreign visitors, in Brisbane it’s currently 30 degrees (that’s 86 Fahrenheit)
with about 60% humidity (feels like 32C/90F).  We expect to still gain a few degrees
since it’s not quite the hottest part of the day yet.  So much for the white
Christmas…  :)

Off to the coast soon (Maroochydore, Sunshine Coast), and it will feel like about
100C under the canvas annexe of the in-laws’ caravan…  But that’s part of
what Christmas in Australia is all about — gathering with family over roast dinner
at the hottest part of the day while all the kids go postal because the batteries
in the toys they got from Santa have already run out.

Bring on the New Year…  :)

SlimServer ROCKS!

Sometimes you find the absolutely coolest things completely by accident, proving my theory of “Zen Internet Navigation” (you rarely find what you want, but you often find something you needed to see).  Last night I found SlimServer, a music streaming server that has to be about the coolest thing I’ve seen in ages (yes, even better then graphical Links).

SlimServer is the server component of a music appliance by a company called Slim Devices (WWW).  The SqueezeBox is a really funky-looking network music player — you hook it up to your stereo system and can stream not only music from a SlimServer (in MP3, MP2, WAV, AIFF, OGG, AAC, FLAC and Apple Lossless formats — it can even do WMA if you want to run SlimServer on Windows), but also Internet Radio (Icecast and SHOUTcast).  Here’s a look at the basic black and cool coloured versions of the SqueezeBox (images from the Slim Devices website):

Slim Devices SqueezeBoxSlim Devices SqueezeBox

While there are a good few of these types of devices on the market nowdays, I think the two neatest things about the SqueezeBox are:

  • There is an open API for writing plugins for the SqueezeBox, and Slim Devices have created a community around just that, and
  • A software developer has written a Java-based SqueezeBox emulator called SoftSqueeze (WWW), allowing you to have a pretend SqueezeBox on your PC desktop — it even handles most of the SqueezeBox plugins!

While the SlimServer protocol provides for a lot of interaction between a SqueezeBox or SoftSqueeze player and the server (the ability to control the player from the server’s web interface, for instance), just about any player that can handle a network audio stream can be run from the SlimServer.  As proof, I configured my Asterisk PBX to use a stream from SlimServer as music-on-hold — in seconds I was listening to tunes from my collection over the phone.  SlimServer can handle supplying different streams to different players, or SqueezeBoxes can synchronise each other to the same stream.

As I mentioned, SlimServer’s web interface gives you a lot of control over not only the server, but also the attached players.  This means that you could, for instance, control your SqueezeBox at home while at work (of course we all want to have music playing at home while we are at work!).  Here’s a look at a snippet of the web interface (image from the Slim Devices web site):

SlimServer screensnip

Speaking of remote access, SoftSqueeze has built-in support for tunneling the audio stream via SSH, so you can listen to your home audio collection while at the office.  I’ve only scratched the surface of what SlimServer, SqueezeBox and SoftSqueeze can do.

I’ve said it before, I’ll say it again: Free Software is the way of the future.  I really am very impressed by this set of products — even though a SqueezeBox would cost more than the Netgear or D-Link media players I’ve been looking at recently (certainly once the Australian Customs parasites got done with it), I’m seriously considering putting an order in for one of these pups.  As for SlimServer, I’ve had to create a new “highest rating”: “Would Pay Real Money For It”!  Bravo, Slim Devices, seriously good gear!

Nicholas’ first "bleeding injury"

He’s had bumps on the head, tumbles from prams, and other assorted spills, but today Nicholas spilled claret for the first time.  Just to prove that you can NEVER truly be prepared for all eventualities, he managed to find something sharp to cut his finger on.

I blame myself, of course.  As soon as he started crawling and became fascinated with the drain covers that we have in a few places in our tiled wet-areas at home, I thought that the small openings in them might be places where little fingers could get stuck.  Then I talked myself out of it: I was being TOO safety-conscious, I told myself.

Sure enough, this afternoon he caught one of his fingers in one.

The wound is largely superficial, although he did manage to get an impressive amount of red stuff on the floor, on a napkin and on Mummy’s shirt (so Mummy and Daddy have both passed a parenting test: not passing out at the sight of a child’s blood).  Dunked in a disinfectant solution and patched up with some Liquid Bandage (absolute magic stuff, although a bit overpriced IMO), he was right as rain in minutes.

And yes, the drain covers are now protected.

Furry house guest

We have a furry four-legged house guest for a few weeks: Molly, the Pembroke Corgi pup.

While my in-laws go on vacation for three weeks, we are minding their dog.  It will be very interesting to see how our Corgi, Chelsea, handles this — given that she’s already being a bit displaced by the new-found mobility of our son (nine-month-old Nicholas has recently started crawling).

It’s noe 10:15pm, and the dogs went to bed about an hour ago.  By the sounds of it, Molly is not keen on sharing accommodations with Chelsea…  Oh dear, the laundry (where the dogs sleep) is directly across the hallway from Nicholas’ bedroom…

I don’t plan on getting much sleep tonight!  :)

Metadot Portal Server

I’ve just been having a bit of a play with this.  Wow, it does a lot, and it looks to be really great — but it’s not a blogger, so Crossed Wires will probably be safe on Polarblog for a while yet.

It really looks to be an impressive piece of programming.  It’s produced by a company called (surprisingly) Metadot Corporation, on the apparently quite successful model of “give a Free version to the community, but offer a pay-for version and support contracts”.

It does extensive content management, calendaring, polls, email forms, you name it; and it’s all managed through a browser.

Hopefully I’ll get a chance to do some more extensive testing over the coming weeks.

New home for Crossed Wires

Having paid for the veejoe.net domain some time ago (got a fully sic deal as well, 5 years for the price of two, or something) I decided to finally do something about it.  So, it’s now the new (official) home of Crossed Wires.

I’m hardly going to submit it to Google or anything like that, but it’s something newsworthy in the life of the site anyway.

From a Linux perspective, I’m using Apache VirtualHost directives so that access to the other stuff I host is not changed (at least that’s the plan).  Over time, I’ll upgrade things and integrate the photo gallery, but one step at a time!

Tags:

My name is Bacula, wha-ha-ha-ha-ha…

For too long I’ve been committing the Systems Programmer cardinal sin — advocating proper backup strategies without doing so myself.  Apparently I’m not alone (but that doesn’t make it right, of course).  Having read about this things called Bacula, I decided to do something about my backup un-preparedness.  Now, not without some pain, I have a working Bacula setup across three machines (Gentoo Linux, SUSE Linux, and Mac OS X) with more on the way.

Bacula is quite a sophisticated distributed backup system.  It differs from others like AMANDA in that it uses an SQL database as a backend to provide a catalog service.  It also provides better capability in dealing with backup devices across a number of machines.  It natively handles Windows machines (apparently, I’ve not tried this myself), ahich AMANDA could not last time I looked.

My only gripe so far is a lack of a troubleshooting guide — but more on that later.

As I said, I’ve got a three machine Bacula configuration.  I have my Gentoo Linux main server that provides Director, Storage and File services.  My SUSE Linux bastion/PBX provides Storage and File, while the Mac OS X system just provides File service.  The idea is that files from the SUSE and Mac OS X boxes are backed up to the Gentoo box, and the Gentoo box is backed up to the SUSE box.  At regular intervals I’ll copy the Bacula volumes to a fourth machine and archive them to DVD.  Good plan — or so I thought.

Installing Bacula was fairly easy.  Gentoo provides a Bacula ebuild in the portage tree, so it was just an emerge away (even on AMD64).  For Mac OS X, Bacula is source-distributed via Fink.  SUSE does not yet provide Bacula, but the Bacula people themselves provide RPMs for popular distros on their Sourceforge download page.

So I emerged, finked and RPMed.  I configured, which involved some cutting and pasting of obscure looking password strings.  I was all set to go.  Backing up to the Storage service on the Gentoo box went fine, but for some reason backing up to the SUSE machine failed every time.  I configured, re-configured, and configured again.  Every time, the Storage service complained that there was no appendable volume available, and that I have to issue the ‘label’ command to make one — which I did, to be greeted by the same message!  Frustrated, I went to bed.

Next morning, I rechecked the configs (thinking that a clear head might show a previously-undetected error) and tried again.  Same.  Then a thought occurred to me that I should check the versions of the Bacula code I had installed on the machines.  I discovered that the version on the Gentoo box (the machine that was running as Director) was an earlier level than the SUSE box.  Since I’ve yet to work out how to make my own ebuilds for Gentoo and an earlier, matching, RPM for SUSE was available for download, I regressed the SUSE level to the same as the Gentoo box.  With the configs unchanged, it worked first time!

After that it was easy to extend the backup to the Mac OS X machine — which, by the way, is an earlier version of Bacula still.  Seems that the Director doesn’t mind talking to servers that are older than itself, it just can’t talk to something more recent.

So, a hint that I’m going to feed back to the Bacula community: DON’T try and use an older Director with recent Storage server!  Corollary: if you’re going to upgrade your Bacula code, upgrade the Director box first!

Anyway, I like it — it’s fast, and it seems to do the job.  I think it’s missing a bit in the user-interface department, though.  I really liked AMANDA’s FTP-style restoration interface — you could almost give that to ‘end-users’ and let them run their own restores.  Bacula’s interface is quite unforgiving, with not much by way if GIGO-trapping (I managed to feed a bogus SQL query to the database, by entering incorrect data).  Still, it does the job, and that makes it better by far than what I had before.  Bacula gets my highest rating: “Worth more than I paid for it”.

Links is my new favourite browser

As a text-mode browser it’s just that little bit better than Lynx (my old favourite),
but I found its graphical mode today, and once I fix a couple of little niggles I’ll
be hooked.

Really, nowadays you can only be stubborn and use text-mode for some
really simple browsing.  Try using Google text-mode: the search part on Google is okay,
but how many of the sites you get linked to are legible?  And you really don’t want
to light up X on your file server just to check some webmail.

So — Links has a graphical mode that works not only under X, but on the console as
well.  Console graphics mode can utilise SVGAlib, or it can talk to the frame-buffer
using either DirectFB or its own internal driver.

What *really* surprised me is that Linux multiple virtual consoles still works: when
running Links graphical, I can still use “Alt-Fx” to get to my other Linux consoles.
Plus, Links has support for its own multiple windows using “Alt-x” to switch.

It actually helped me find a bug in my system monitoring tool.  I use mrtg-rrd, a CGI
script that creates web pages and graphs that look like MRTGs own work; this is needed
when you convert to using RRDtool as a backend for MRTG (which means that MRTG does not
produce the web output any longer).  I thought I had configured to generate PNG graphics, and indeed the image filenames ended in .png,
but no graphs would display when I viewed the page in Links.  I double checked that
Links has PNG support: it does, as well as JPEG and a few other formats.

To cut a long story short: the CGI script uses a Perl module called RRDs to actually
invoke rrdtool and generate the graph.  Turns out that this module was actually generating
a GIF image; even though the makers of mrtg-rrd.cgi make it an option to create PNG or
GIF, RRDs can only make GIF.  The funny part is that evey other browser I’ve ever used to
look at this output has not been bothered by the fact that GIF output was contained in a
with a .png extension, but Links seems to be — indeed, as soon as I changed the names to .gif,
Links was happy.

So, long story, and where is the bug really?  In Links?  Well, maybe it’s being a bit
agressive by not taking the contents of the file at face-value, but I don’t think it’s
unreasonable to expect a webmaster to put accurate extensions on files…  Is the bug
in RRDs?  I doubt it — I can’t see where it makes any claim to being able to create
PNGs, but on the other hand RRDtool supports generating formats other than GIF, and
RRDs should not be assuming that all graphics are GIF…  Is the bug in mrtg-rrd.cgi?  
That’s tough, as it seems like the author has put function into his code that cannot
be supported by the support code he’s calling — it’s a variation on what I call the
“Maverick Syndrome”[1].  

Now, when the only running machine I can access is my production file server, and I
really have to go to eBay and see what auctions I’m losing, I don’t have to
boot up my desktop or schlepp a laptop out of hibernation.

So, how can you join my console-browsing utopia?  links -g is a starting point.
If it doesn’t work (and it didn’t on my SUSE 9.0 box), consult the error message.  I found that
once I had the right USE flags (on my Gentoo machine) it just built right up, and I just
had to muck about with permissions on some device nodes to get things working.  The
SUSE box is more of a problem, since it looks like they’ve omitted framebuffer support
from their binary, but I’m sure that a solution for that will be just an SRPM away!

Links gets my second-highest rating: “Worth every bit of what I paid for it”.  Happy surfing!

[1] From the movie ‘Top Gun’: “Son, your ego’s writing cheques your body can’t cash.”

Christmas lights installed at our place

Part of Christmas celebrations here, the twice-yearly trip to the roof (once to install them,
once to bring them down) was commenced this evening.

Maybe if you’re really lucky there will be photos on the gallery!  Actually, they
look quite good.  This year a Santa silhouette is a new addition to the usual coloured
and plain lights.