I’ve been a basic but happy user of the syntastic syntax checking plugin for vim for a few years now but time and software wait for no one and after seeing a few posts mentioning the newer ALE - Asynchronous linting/fixing for Vim I’ve decided to give it a go for a month and see how it impacts my work flow. Installing it was much easier than expected. I use the vundle plugin manager so replacing one plugin with another and then triggering the install was all I needed to get up and running. Read on →


Over the years I’ve built up a small stack of removable drives, mostly for off site backup rotation, and when one of them (a decade old Maxtor) started to sound like two angle grinders ‘passionately embracing’ I thought it was time to do some data validation and re-planning. Although I’m fully aware that most technology trends towards getting smaller and cheaper it’s been a while since I’ve been drive shopping. My god, the difference a few years makes! Read on →

Once you’ve been using *nix for a while it’s easy to become complacent with the dozen or so tools you reach for most often. As part of starting a new job, and having a Mac ‘bestowed’ on me, I’ve decided to make a conscious effort to choose my tools, rather than reach for the familiar. The first batch that have managed to survive January and still be mostly helpful are: Read on →


While looking for an OpenBSD baseball cap on the BSD stalls at FOSDEM I was given a couple of issues of the BSD Magazine to flick through - and it’s a lot better than I’d hoped. As most of the UK Linux magazines have become very desktop focused it’s nice to see some actual low-level code - packaging for OpenBSD, writing sound drivers for your NetBSD NSLU2, custom Jabber components and basic GDB were all in the two issues I skimmed. Read on →


The one thing online that irks me beyond all others, even surpassing chromatic, is Verified by Visa. I hate this service and every site that uses it. If you’ve been blessed enough to never have it ruin your transaction here’s the short version - in the middle of paying for something you get bounced, with no clue where you’re going and how secure it is, to a third party site, which is completely safe as it’s run by visa, that then gets you to enter a password. Read on →

It’s been a day for nice little technical surprises. On the tube ride to work this morning I started flicking through Cisco Routers for the desperate (2nd edition) and found a quote on the first page from the 1st edition book review I did a couple of years ago. I also had my first fully git workflow patch accepted by upstream. It was only a couple of lines of code but it means I’m gradually getting comfortable with the git toolchain. Read on →

I recently ‘attended’ my first MySQL University presentation - Scalability Challenges in an InnoDB-based Replication Environment. The service itself is great, you sign up, log in and then watch the speaker present in one window while listening to him speak and reading the slides (in the main part of the screen). Everything you’d expect really. The subject wasn’t anymore exciting than you’d guess (but what do you expect with that title? Read on →


You’re in charge of a server that provides two types of assets. The first type is public and its visibility is important to your company. The second should be restricted access only and shouldn’t be public. Now suppose there is a mistake made and the private material is exposed publicly - what’s more important, that the public data is available or that the private data isn’t? Who’d make that decision where you work? Read on →


While working on my Nagios display tools I wanted to modify our existing Nagios deployments to easily link the information in but after a quick dig I discovered that something was very wrong - the Nagios CGIs are written in C. While shell and perl are my current languages of choice I can write (a very little and very basic) C but the idea of customising webpages in it, especially pages this critical to the company, stopped me in my tracks. Read on →

A Fractal is “a rough or fragmented geometric shape that can be subdivided in parts, each of which is (at least approximately) a reduced-size copy of the whole" – Wikipedia - Fractal Fractally Crap - a system where any piece, when looked at individually, is every bit as broken, badly planned and undocumented as the rest. And yes, I know that if you pile rubbish on rubbish then you get… (strangely enough) rubbish but you can normally find the occasional little gem or ray of sunshine. Read on →

And now to one of my pet annoyances… Change Control is a formal process used to ensure a product, service or process is only modified in line with the identified necessary change. – Wikipedia - change control Revision control (also known as version control, source control or (source) code management (SCM)) is the management of multiple revisions of the same unit of information. – Wikipedia - revision control As you can tell from the different definitions these two terms do not mean the same thing. Read on →

Why don’t we have a .bank or .bank.country_code TLD that’s regulated by the same people that regulate the banks themselves? Most countries, with the notable exception of the US (which has multiple National regulators and a second tier of State ones), have a single body regulating all the banks so why not use their established trust metrics (you must be at least this tall to be a bank) to determine who can have a . Read on →


I worked through the MS Technet Virtual Lab Express: Introduction to ISA 2006 Beta demo last night and while the product doesn’t really interest me (I couldn’t deploy a Microsoft firewall and keep a straight face) the lab itself was interesting. You enter an email address, download an ActiveX control and wait five minutes for the lab to prepare itself. You then connect, via something that looks like Terminal Services, to four machines. Read on →

The Nagios monitoring system is a great example of Free Software, powerful, flexible and easy to extend. While it comes with a lot of functionality out of the box you’ll occasionally want to write you own Nagios plugin; which isn’t too hard to do. The plugins below have all been written by me to help keep my systems under control. They’re functional, released under the GPL and hopefully useful to someone other than me. Read on →

I’m subscribed to a lot of RSS and Atom feeds. I’ve tried online readers but I never found any that could match the user experience of SharpReader so I stuck with it on the desktop. But now I’m starting to want some functionality that none of the readers I’ve looked at seem to include. Firstly the easy stuff, when was the last article posted on a blog? When was the last time I clicked through it? Read on →

There are a couple of webcomics I read on a daily basis (a couple a week in the case of MegaTokyo) and recently I’ve found myself wanting to link to a couple of different strips in blog postings; and then discovered that they’re almost impossible to search through. None of the webcomics I read regularly have any kind of strip content search. You can’t see who was in which strip, you can’t search on the punchlines - which is what I want - and, apart from a couple of sites which have a one sentence summary, you can’t get any more context about any days issue than the time it was uploaded. Read on →

A couple of months ago a friend of mine changed jobs and went to work with some mutual techie acquaintances. What made this job interesting to me was the confidential nature of the project and how little he was allowed to say about it. In one of my flippant comments I mentioned that if I REALLY wanted to know I could find out what he was working on. And the bet was made. Read on →

Let’s cover the basics, if you’ve got two machines working as an identical failover pair then THEY SHOULD BE IDENTICAL. Adding services, hell, adding nearly anything, to only one of them is a mistake. You’ve now created a bias on which one you need running and you can no longer assume they’ll both do the same thing in the same situation. Which defeats the whole point of having them. This might seem obvious, but the number of people who break this simple rule never fail to make that pretty little vein in my neck dance. Read on →

Once a machine has settled in to a rack how long does it take you to turn it in to a working server? How many of these steps are automated? The longer you can go without making manual changes the more comfortable you can be that the machine’s running as it’s supposed to be. What little tweaks do people make once the machine is up? How do you know they’ve been done correctly on each machine? Read on →

Over the last week both Ruby and Python have had moments in the sunshine, between Jim Hugunins (now of Microsoft) IronPython 1.0 release and Sun hiring JRuby developers it’s nice to see the bigger players notice how far dynamic languages have come. So what do the little languages that can get from this? It’s a decent sized list - a huge range of well written libraries (both .NET and Java have a ton of supporting code available and a lot of it is damn good), a large potential user base (especially for IronPython) and enterprise recognition; while more forward thinking developers know all about the benefits of dynamic languages there are a lot of late adopters that are about to see the shiny things for the first time. Read on →

Here are three nice, simple, general rules regarding releases that you should try and stick to. If you don’t then you’re running on luck and eventually you’ll get called while doing something way more fun than deploying yet another bug fixing release. No releases on the day before a weekend / national holiday. No releases within two hours of the official end of your work day. No releases before you go away on holiday. Read on →

Over at use.perl.org Ovid recently posted How to tell if Perl is installed on your computer , an entry that points to a shell script that must die. Go and read the script in the post, I’ll wait. Note: this isn’t his code and he’s blame free, he just found it and started waving it like a red flag so the anal shell scripters among us have something to moan about :) Read on →

When designing internal firewalls and filtering policies PLEASE stop and think about ICMP Echo Request and ICMP Echo Reply (the ICMP types used by ping). If you turn these off you’re not really gaining any real security (especially on your internal network, and to be honest you want to think long and hard about what turning it off on the external facing machines gets you) and you’re making life much harder than it needs to be in the long run. Read on →

I use a LOT of FireFox extensions and in an attempt to slim my install down I disabled the less used ones so I could remove them in a week or so if I hadn’t needed them. The first stage was easy, right click the extensions in the Extensions menu and choose “disable”. I then carried on using FireFox as normal. I didn’t need the extensions removed immediately so I didn’t restart it. Read on →

One of my favourite Windows applications is WinDirStat, a great little utility that breaks down disk usage by file and folder and shows it using a treemap. The tree map is possibly the best way of displaying this kind of information, in addition to the obvious “block size is relative to the file size” you also get colour coded file types (you soon learn to spot clusters of mp3s…) and easy right click access to most of the functionality you’ll want to use while investigating disk hogs. Read on →

One of the annoyances of my (working) life is the build up of mail in obscurely named mailboxes on different machines. While the typical aim is to have all hosts sending their local mail to a central point (for mass filtering and deleting^Wlogging) you - firstly - have to actually implement this change (normally on machines with lots of different mailservers - yum!) and then add a check to ensure that it never gets broken in the future. Read on →

Although I’ve been remarkably slack and only managed to make it to a couple of the meetings, the London Ruby User Group Presentation Archive allows me (and you…) to have a peek at what’s been presented. The highlight of the current talks, in my opinion, is “Ruby on Rails from the other side of the tracks” by Tom Armitage - if you do any kind of website work it’s worth a couple of minutes of your time. Read on →

One of the great things about Apache is that you can override most of the configuration settings on a server, virtual host or directory level. This fine grained customisation makes it both flexible and damn powerful. Unfortunately the people behind bind don’t seem to have grabbed on to this idea. A prime example is bind logging. I want to log all queries to a domain I want to retire (actually a number of domains I want to retire…); but bind doesn’t allow this. Read on →

This one’s as much for my own memory as for everyone else, I’ve already used it at two companies and had to rediscover it at each… If you have a number of load balanced apache servers serving the same site and you use ETags to help reduce the number of page requests make sure that the generated ETag doesn’t consult the file inode; these will hardly ever be the same across servers - unless you build from a gold image - and will cause the client to download the page again each time it hits a different server. Read on →

Amazon sent me one of the more amusing recommendations I’ve ever had: Greetings from Amazon.co.uk, We've noticed that customers who have purchased books by Rael Dornfest have also ordered "Adolf Hitler: A Portrait" by Michael Fitzgerald. I know O’Reilly are not the most popular of companies since the web 2.0 incident but I didn’t think they’d fallen that far… :)

Due to some other, recently appearing, demands on my spare (and not so spare) time I’ve had to drastically cut back on the amount of time I spend working with different Free and Open groups. One of the biggest casualties of this has been the UKUUG. I no longer have the time available to make any meaningful contributions so I’ve stepped down from the UKUUG council. As a group they’re doing a lot of interesting work, and some great conferences, so it’s worth looking at their site every now and again. Read on →

It’s an evolution rather than a revolution but Ray Ozzies introduction to Live Clipboard over at spaces.msn.com is an interesting read. The Live Clipboard Screencasts are also worth viewing. What I find more interesting than the actual Live Clipboard stuff itself (which is pretty neat) is that Microsoft has noticed, and seems to like, Microformats… It might just be me but that seems odd.

Simon never fails to impress as a speaker and his Javascript tutorial is one of the most talked about sessions from this years Etech. Judging by the quality of the JavaScript tutorial material he’s put up on his own site I can see why. Read the PDF first and then go through the slides. They are well worth the time.


Update: I no longer run the code required for this to work. I’ve only left the post up as a little reminder to myself. Every been given a number and thought ‘I wonder where that is?’ or seen an area code you didn’t recognise and want to know where it is? No? Oh, OK. If on the other hand the answer was yes to either of those then I’d like to present the “UK number mapper” (yes the name’s bad…). Read on →

Today I was taken through a couple of system tasks that were both in-depth and pretty time consuming. And like a good lad I wrote down instructions fine grained enough to go through the task on my own. Now firstly this means if I missed anything I have to go through it again and make corrections. Secondly I wrote them by hand. Which was a mistake. After I’d finished the oddness of what I’d just done came to me. Read on →

Over at IT Conversations is a recording of Kim Polese’s OSCON 2005 keynote. Better known to many people as the public face of Marimba, the push technology that was shoved away, her new employers seem a lot more interesting. The basic idea is to test and certify stacks of software, seemingly from the kernel up, and then presumably get paid to add desired items to the testing. It might just be me but this sounds fascinating. Read on →

While sitting in the BBC backstage session at OpenTech I had an idea for an entry to the competition. Which I then forgot about. After an email from a friend recently asking if I’d done anything for it and pointing out I only had three days left I decided to have a coding day on Saturday and try and get a prototype working and submitted. And then the BBC Backstage competition deadline is extended! Read on →

As the amount of content available online grows, the length of the URL's required to access it seems determined to keep up. This little bundle of a vim script and some Perl code will convert a long URL into a shorter one (using MakeAShorterLink) at the press of a single button. While the masl.pl script can be used on the command line to shorten URL's if you’re lucky enough to use mutt as your email reader and vim as the editor within it you can easily shorten target addresses so they slip under the magic 75 character limit that differentiates visited URL's from my home pages. Read on →

Twice today I’ve suddenly stopped what I was doing and thought, they must have set out to make this awkward… The first incident was also the simplest one, in xinetd config files you’ll often find “disable = yes”. Firstly this is insane because you should assume something’s off and people will turn it on if they want it. This is a basic principle that should be stuck to. Secondly the option is strange to read. Read on →

Blosxom (pronounced “blossom”) is a lightweight yet feature-packed weblog application designed from the ground up with simplicity, usability, and interoperability in mind. From the Blosxom Homepage. My own Unixdaemon Blog is powered by Blosxom and while it is more than adequate for most of my needs, its small codebase and powerful plugin architecture make it very easy to extend with small chunks of code. Whether you want to change parts of its behaviour or just tweak it to suit your own working style, with half a dozen lines of Perl the customisation oppotunities are amazing. Read on →

Every now and again there seems to be a small uprising in the geek Mac using community. Paul Graham seems to be man behind this iteration of the uprising but he’s getting a lot of support from a number of smart people like David Heinemeier Hansson (Rails) who has a couple of choice quotes, this one is my favourite: I would have a hard time imagining hiring a programmer who was still on Windows for 37signals. Read on →

If you ever want to collect a cross-section of the more common Windows email viruses then I’ve got a tip for you. Post a job advert on a couple of the bigger jobsites (Jobserve, Monster etc.) and then wait a day for the agents to start submitting CVs. Reply to them saying no thanks so you get added to their local address books and then watch as every variant of Bagel, Klez and all the other little bits of shite come flooding in to your inbox. Read on →

You’ve probably seen it all over the news but Radianz has been bought! For those that don’t know of it, the Radianz network is an extranet of financial institutions, it provides a fully redundant infrastructure (if you want to join you are required to have dual lines connecting you; each line has to be from a different approved supplier). It’s used for accessing financial applications where the unpredictable nature of the Internet makes it undesirable but the commodity status of it’s applications and protocols make it the best alternative. Read on →

There is an interesting post by Aslak Hellesoy over at CodeHaus regarding simple ruby annotations. While I’ve not really paid much attention to annotations in Java (beyond Ted Newards occasional post on the subject) the simplicity of this unofficial ruby implementation is making me want to dig out my Pickaxe second edition and delve in again… Now if I only had a reason to use annotations ;)

There’s an interesting article over at the Tucows Farm on a series of talks titled php|symphony. It’s a live, payed for, talk that allows two way communication with the speaker on some pretty low end machines with very little bandwidth required. So what’s my interest in this PHP stuff? Over the last couple of months I’ve had a couple of conversations with some friends about doing this kind of thing now that VoIP (Skype for communication) is here, virtual machines (UML for interactive sessions) are pretty easy to use and bandwidth is becoming cheaper. Read on →

I’ve had a findbig files script up on my miniprojects page for a while now, it’s not exactly a difficult script to write but it deals with a couple of less obvious cases (exclude lists) that most of the similar scripts on line don’t cater for. While the script is something thats easily down-loaded and run, if you have anything beyond a handful of machines you need to actually think about how to incorporate it into your checks and how you should run it to get the most return from the least effort. Read on →

The day time job is eating up a little bit too much time at the moment so I’m just going to post a couple of links that look interesting and would typically be gifted with my witty rantings :) Ward Cunningham (now an MSoftie) is probably involved in PatternShare, a site that lets you look through a number of patterns from different authors. It’s probably worth keeping an eye on this and seeing how it develops Read on →

For those of you that haven’t heard the roars yet MS have released a beta of their spyware detection software. Now that they’ve got both this and an AntiVirus product on the market it’s time for people like Symantec to start watching over their shoulders. Now my issue with this isn’t that Microsoft wants to enter (and by extension dominate) this very lucrative market, instead I want to raise, what seems to me anyway, a big conflict of interest. Read on →


Over the last few weeks I’ve been involved with arranging evaluations and purchasing of a number of ‘enterprise’ products. Among the rogues gallery have been IBM (OK but nothing special considering they had near a dozen people in the room), Oracle (Actually very good) and my new favourite, Business Objects (BO), providers of Crystal Reports. The day started off quite nicely, the BO technical gent came in and did an install of the product we were evaluating on our test server with me watching over his shoulder. Read on →

Here is a rarity, something that annoys the hell out of me :). If you have a website then your goal is to get people to view it, or at least it should be if you’re sane. So why the heck do so many site admins require me to type in the ‘www.’ before I can view the site? All it needs is a “ServerAlias domainname” in the Apache config; or what ever you IIS people use instead. Read on →

If you’re reading this site then there are pretty good odds you own a number of tech books, take a look around your shelves and admire your collection. Now think about the number of those books that include a CD, next try and think of an included CD that was actually useful. Did you think of any? If you did you are a better man than me. One of the reasons CDs are seldom included in tech books is the shelf life of the book vs the software contained within. Read on →

I’d like to see the European Union spend some more time investigating regional pricing. I’m in the market for a new monitor and I’ve seen a number of people recommend the Dell 2001FP, it’s a nice looking monitor with a good spec. More importantly everyone who has bought one has recommended it. This monitor looks pretty good and I considered buying one. Being a diligent consumer I decided to do some pricing, for comparison lets use the details at Dell 2001FP UK and Dell 2001FP US. Read on →

On this page you will find a number of my shorter scripts, applications and bits of code I find helpful and that scratch my own itches. Each one is accompanied by a short explanation of the script, any dependencies, any needed configuration and a link to the code itself. Unless otherwise stated all the code on this page is GPL'd and you are free to do what you want with it. Read on →

Just don’t expect to get new customers when your registration process makes US immegration look open and friendly. I was recently looking for a piece of software to handle WSDL generation from Java source code, I had no current long term need for the software, I just needed to see how well the technology worked these days and have a look at a real world example. Now put your business hat on, I’m not currently a sales prospect but if the product does what I want then there is a pretty good chance I’ll come back to you if I ever need it. Read on →

I’ve spent the last few days looking at document management systems, versioning and work-flow applications, while I’m happy enough putting my own scribbles under CVS (I’ve not yet drunk from the Subversion Koolaid) a number of my less techy co-workers need a solution that fits them better. After some digging around I started to eval WebDAV, it’s used by Apple for shared calendaring, MS Word has WebDAV support and there was an Apache module; very promising. Read on →

Today I hit an issue with mod_perl that had me going around in circles for about an hour, my mod_perl handler wasn’t being invoked, and I was getting a directory listing instead. With the able assistance of a co-worker the problem was found and solved pretty quickly. If you add the “LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so” line into the config file yourself ensure it’s the last line otherwise something else such as mod_dir or mod_index will execute instead and you’ll go insane trying to work it out. Read on →

I’ve been busy lately and I’ve not really had a chance to spend more than half-an-hour on any one thing, I thought I should write a brief update entry to help me keep tabs on what I’ve been playing^Wworking on. Pragmatic Guide to Version Control with CVS book review Added DOAP data to two of my Freshmeat projects. Started playing with bash 3.0, more to come on this. Rattled through six-eight mycroft requests using the excellent tools provided at Mindzilla Read Managing RAID with Linux. Read on →

Update: As you can probably tell from the “Updated on ‘Thu Jul 22 16:03:01 2004’” I’ve not touched this page for a while. I assume these no longer work so I’ve removed links to the executables and the executables themselves. Love it or hate it IE is one of those things that’s here to stay, at least for the foreseeable future, so why not make it work a little more to our liking? Read on →

While rummaging around the grep man page i stumbled on something I’d never noticed before; GREP_OPTIONS. This environmental variable does pretty much what you’d expect, once set it passes the options you specified to each and every invocation of grep that runs with the variable still in scope. While I’m not aware of any real positive usages for this something slightly less wholesome crossed my mind. If you set ‘GREP_OPTIONS=-v’ then every run would return the lines NOT matching your criteria, -v is an absolute switch rather than a toggle one so its not possible to reverse it with another -v. Read on →

Just don’t copy MySQL data files while the tables are in use and expect the backup to work. The conversation was going to be a painful one, sysadmin, the hero of our story felt it in the stream of vindaloo sauce that passed as his blood. “I noticed that our MySQL backups are just raw copies of the data files. I also saw some errors from the tar command about the files being written to while the backup was being run. Read on →

I’ve just finished a cursory read of this months Java focused Dr Dobbs magazine (number 362, July 2004). Not being a Java person i wasn’t expecting to get too much out of it but what surprised me was the sheer number of adverts. This issue has a pull out poster (sponsored by Microsoft) and a total of 50 full pages of adverts. This doesn’t include the half-page or multiple quarter page adverts found on another couple of dozen or so pages. Read on →

I buy a lot of books, while a few of them are purchased on the strength of the authors name alone or through idle browsing i stumble upon a growing number of them via webblogs. Unlike the reviews on sites like Amazon with a blogged review i have a basis on which to decide if the authors views are going to mesh with my own. But, like everything else, there’s a downside. Read on →


My honeymoon period with Mozilla and Firefox has come to an end. Despite the popup blocking, the actual working security settings and the tabbed browsing I’ve discovered needs that Firefox can no longer meet. When i reached this point with IE i began to work on adding the small snippets of functionality i needed, such as the address bar customisations and the IE plugins but i soon reached the limit of what was easy to add to the browser. Read on →

Webscraping has always been, at best, a flaky way of gathering data and at worst a legal gray area. With premier sites such as Google and Amazon now offering official webservice interfaces to their data, developers can now add both respectability and reliability to their applications and drop the fragile HTML parsing. This change in focus from using these services at the provided front end to wrapping our own services around them takes a while to get your head around but once you ‘get it’ the possibilities become pretty much endless. Read on →

It was a dark and stormy night, in the corner a Postfix server threatened to buckle under the weight of the Sobig.F worm. On a mailing list not quite in a galaxy far far away an argument a discussion about sudo, history files and information disclosure raged. One of the topics that came up was the information you can glean from the process table as people use commands such as Sudo and su instead of running everything as root. Read on →

Update: As you can probably tell from the “Last updated on ‘Tue Aug 22 00:04:12 2006’” I’ve not touched this page for a while. I assume these no longer work so I’ve removed links to the executables and the executables themselves. I’ve been using IE almost exclusively on Windows since version 4 was released. It beat Netscape hands down and it was actually quite useable. Unfortunately once Netscape was firmly thrashed (Although i did still have to put up with it on Linux. Read on →

From the projects sourceforge home: "Dave’s Quick Search Deskbar is an add-on for the Windows Desktop Taskbar that lets you launch searches quickly. With dozens of search engines, a calculator, clock, calendar, and more in one little textbox, it’s monster functionality in a flea-sized GUI" What is DQSD? From the projects sourceforge home: "Dave’s Quick Search Deskbar is an add-on for the Windows Desktop Taskbar that lets you launch searches quickly. Read on →

Googlism is an amusing way of wasting ten minutes of time you’d otherwise spend reading your email. A better explanation from the official Googlism site itself is “Googlism.com will find out what Google thinks of you, your friends or anything!” A bookmarklet is a snippet of code that adds or enhances a web browsers functionality. They live in the same place as your bookmarks and allow easy access to tasks ranging from the trivial (resizing the browser window or turning images off) through to the more complex (running searches with whichever text you have highlighted as the search term or validating the html and links on the current page. Read on →