Remember those record inner sleeves with the logo: “Home taping is killing music and it’s illegal”?
The record companies were trying to tell us that making a cassette copy of an LP would lead to the music disappearing because the taped copy represented a lost sale.

A dire warning

Sometime in 1986 or 1987 Luke let me copy his Batsumi record. It was love at first listen.

On side A of that tape was Freedom’s ChildrenAstra. Astra I had recorded from Brian Davidson who had been the lead singer of Freedom’s Children. At the time Astra was impossible to get hold of. The master tapes were destroyed in a fire, so no record company could release it. In the CD age it was released after a copy was made from a vinyl album. Ironic, né?. Brian’s girlfriend made me the copy from his tape. When she turned both tapes over she mixed up source and destination, so Brian’s side B was wiped and mine remained blank. I never did find out which album disappeared, but I suspect it was Galactic Vibes.
Anyway that was how I had side B available to record Batsumi.

That tape powered my VW Beetle all over the place for many years. It only stopped receiving play when I was finally able to buy a CD of Astra and was driving a car without a cassette deck.
In the intervening years I have never laid eyes on a copy of Batsumi for sale (and in years gone by I spent a lot of time in record stores so I would have noticed!)


Now in 2011 Matsuli Music has rereleased Batsumi and I finally have my own copy. Take a listen to it there. Buy a copy, it’s well worth owning.

It still is magnificent and my enthusiasm for it is just as great as it ever was.
The remastering has removed a bit of the murkiness of the sound, but the tremendous atmosphere of the original album is still there. As the needle drops on side one and Zulu Bidi’s bass plucks forth from the speakers, I wait in anticipation for the mangled flute that sounds like a kudu horn and then I’m off again on that wonderful journey into the unique sound world of Batsumi.
It’s a magnificent masterpiece and I would have bought it decades ago if it were possible.

Home taping did nothing to kill this music – it’s very much alive and for me probably only because I did once tape them.


Alan deLevie posted a useful bit of Sinatra code for documenting the tables in a database in Database documentation in 50 lines of Sinatra.
I built on his code, making it database-agnostic while also turning it into a tool for comparing database structures. In the process the line count nearly doubled, so now we have database documentation in (almost) 100 lines!

It has been tested against Mysql, Postgresql and Sqlite databases.
Continue Reading »

On Sunday 25 July 2010 I looked up as a massive group of pelicans flew overhead. They were so close and so tightly packed together that I saw three of them collide above the garden and could hear the peculiar “cl-ock” of feathered bone meeting. Had each pelican been a jet aircraft we would have had a fiery tragedy in our backyard, but these birds just took it in their stride.

I watched for a while as they circled overhead gathering altitude all the while. Then I dashed in for the camera and grabbed a few shots by which time  had already moved quite far away.

This looks a bit like a shark:

Pelican Shark?

I counted about sixty birds. A friend said she counted eighty when she saw the same phenomenon from her home.


Warning: poor photos below – taken in haste when an opportunity presented itself. Click on each to see slightly better detail.

Well it seemed like a whirlwind of activity anyway.
In late July we cut back a tree in the garden and I was pleasantly surprised to find that this revealed a previously hidden bird nest. For a while we had been aware of a male sunbird appearing quite frequently in our garden. He (a Lesser Doublecollared Sunbird) was soon spotted on the nest and in the company of a female. Homeowner identified! Continue Reading »

Thursday 3 June 2010

Between 4 and 5am

A short thunderstorm wakes me in Somerset West. Jipe barks at the thunder. I go back to sleep. A bit of rain falls, but not much.

About 10am

Dad calls from Betty’s Bay: “Just want to let you know the mountain above us is on fire. No need to panic yet, just an early warning.” Obviously this morning’s lightning started a fire. I go about the day as per normal and check in with the folks from time to time.

About 10pm

I talk to mom. They’ve packed essentials (change of clothes, documentation) and placed everything in the entrance hall. Friends in the community have been quick and generous with offers of help. Two of their largest paintings have already been moved to the Ficks. The Bossengers brought their trailer to the house and it is filled with books and wine. Books would be difficult to pack in a hurry – my folks have quite a large number of books they would be devastated to lose.  Wine would be awkward to pack in a hurry. A dropped bottle can never be recovered. I wish them well and go to sleep.


I’m woken by an SMS. “Packing cars”. I have a difficult night tossing and turning, wondering what’s going on in Betty’s Bay but not wanting to call and wake them or interfere with things at a possibly critical moment.

Friday 4 June 2010


I call the Bossengers. The folks are still in the house – it hasn’t burned down yet. Call the folks. Mom answers. Fire still a way off, but probably just a few hours away. She’s had two hours of sleep. Dad is talking to the fire chaps up the road in the Harold Porter Botanical Gardens. Sister Cathy & her husband John are on their way from Cape Town. I decide to leave it up to dad to decide if they need me. He calls later and I take the seats out of Melanie’s car and pack the roofracks, grab a torch, pocket camera, cellphone and charger and I’m off – leaving the wife to look after the dogs. Continue Reading »

There are many many troops of Guineafowl in Somerset West and we have quite a few around us. Homer (the dog) and I encounter them every morning on our inspect-and-sniff of the suburb.

A while ago I noticed (and heard) a young peahen in the nearby garden of a friend. The bird didn’t belong to her, but would sometimes arrive to snack on the seeds that her family puts out for the guineafowl. Some days she’d see it and others not. It seems to have a free run of the suburb.

Since then I have often seen this bird in the company of a troop of guineafowl, looking much like a grand aunt. This morning I snapped a couple of shots with a small camera:

Peahen wandering with guineafowl

The Peahen amongst the guineafowl

For a while they felt it best to eye us from the safety of a tree:

Peahen and guineafowl in a tree

The peahen and guineafowl in a tree

The photos are very indistinct as the small camera couldn’t deal well with the early morning light.

I wonder if this fowl split from one of the groups on Lourensford estate or on Erinvale. However it happened, Homer and I continue to enjoy our suburban safaris.

Update: Here are a couple more photos – just a little clearer.

Four guineafowl and a peafowl

Four guineafowl and a peafowl

The peahen with a number of guineafowl

The peahen with a number of guineafowl

All of a sudden Firebug was showing a Javascript error when I clicked on an expanding panel in a page of my Rails app. This had been working for ages and I had done no changes in that area, so it was a bit of a puzzle. I had just upgraded Ubuntu (and Firefox along with it) though.

The error Firebug showed was:
An invalid or illegal string was specified"  code: "12 pointing to line 2844 in prototype.js

Line 2844 in prototype looked inoffensive enough:

results = $A(root.querySelectorAll(e)).map(Element.extend);

The offending line in the application’s javascript didn’t scream “problem” either:

elem.down('img').replace('<img src="/images/panels/active.gif" alt="hide section" />');

After a great deal of head-scratching from poring over the code, I turned to Google and eventually found this page:
perhaps javascript is not ready for xhtml 1.1 yet
The comment from Tobias revealed the issue – an all-numeric id attribute.
The div concerned had an id attribute set to 2009-12-16. Once I changed this to panel-control_2009-12-16 everything worked smoothly again.

I guess Firefox 3.5.x is stricter about these things than Firefox 3.0.x was.
Moral of the story and a mantra for my memorybanks: All id attributes should begin with a letter.