gavinb's blog

Opening the floodgates

In order to potentially double the readership of this blog from 2 to 4 people (Hi, Mom!) I've registered with Technorati, to see how that helps people find my site. You can visit my Technorati Profile and see for yourself. Note that there's only 1.1 Million blogs in my path as I skyrocket to the top!

Common Lisp

Having long had a fascination for languages, both spoken and digital, I was very pleased when Peter Seibel came out with "Practical Common Lisp", which you can also find online. I read some of the online version, and liked it so much I went and bought the book. So if you're interested in learning this venerable language, I strongly recommend you to check it out:

Peter's writing style is very engaging and easy to follow, and manages to explain some highly technical aspects (and some rather arcane corners) of the language in a very accessible way. Given Lisp's academic roots, Peter goes to great effort to show how "practical" Lisp is, with a great deal of useful sample code.

Behold the BuildBot!

I'm working on some software that needs to run on multiple platforms. Periodically doing manual checkouts on each system, building, testing, fixing, yada yada, it all gets a bit tired after a while. So, being a lazy hacker, I decided to automate things, and went off in search of a tool.

Being a huge Python fan helps, and it didn't take long at all before I came across BuildBot, which happens to be implemented in Python, but can drive just about any sort of project you care to throw at it. I installed
yesterday, and I'm well impressed.

Surface plots of image data in GNU R

I needed to plot the intensity profile of some test images for my thesis. It's really useful to be able to visualise 2D grayscale image data by treating the intensity as a height-field and displaying it in 3D. There's a variety of ways to do this, but I wanted something that would produce good printed results, so EPS was the best output option.

So here's a recipe for using GNU R to produce such a plot.

First, generate your image data and crop it appropriately. For example, I used ITK to generate a Gaussian field.

New Style Safari

I've been playing around with writing some Cocoa apps recently, and I am often struck by the UI differences when comparing the different generations of Apple applications (as has been commented on by various luminaries before). There's the original "brushed metal" look (such as can see seen in Safari and iCal), the smooth look (that most 3rd party apps adopt), the "burnt" square look (introduced by iTunes and later by the new iPhoto et al, sans borders).

When I saw Safari next to iPhoto, I realised that something should be done to bring this wonderful web browser back into the fold, and give it a makeover. So I did the logical thing and fired up Interface Builder. And here is the result...

Stuff to review

There's some great software out there these days for the Mac. Through reading various articles and comments around the traps, I've got a list of things to review, most with an "information management" flavour:

Ubuntu Linux and Linksys WPC54G Card

A while ago I purchased the Linksys WRT54G for my home networking setup. Herein I chronicle the steps to get it working. Since Linksys use the Broadcom chipset, and they do not see fit to publish any specs, getting anything but the latest version of Windows supported is - well, you can guess.

Now that I have Tiger installed...

...it's time to update Emacs. Fortunately, the hard work of getting the latest Emacs running under Tiger has been done for us. Thanks Mick!

A real Python logging example

For some reason, all the examples of the configuration files for the Python logging framework are artificial ones, with names like handler01,handler02 and so on. This makes it a little difficult to figure out how to apply it to a real world example. So after a bit of fiddling around, here is a real example of using the Python logging module in a non-trivial application (ie. with multiple hierarchical modules) with an associated configuration file.

The Python logging framework is extremely useful and powerful, but the documentation is somewhat lacking. It is dead easy to use in its simplest form:

The 800 pound gorilla weighs in on patents

For some time now, there has been a great deal of debate and lobbying in Europe on both sides of the software patents issue. I will declare my bias straight away and say that, as a developer of both commercial/proprietary software as well as Free/Open software, I am firmly against the patentability of algorithms and software. Patents create a legal minefield, almost impossible to map out, in which any given non-trivial piece of software could simultaneously infringe upon hundreds of patents. The situation with software is fundamentally different to, for example, the pharmaceutical or manufacturing industries. Richard Stallman has given numerous speeches on patents and written many articles, including an excellent analysis of patents that I urge everyone to read.

XML feed