While I’ve always been a bit of a perl guy I don’t want this post to be “perl has x and python doesn’t” in tone. Which is lucky really as Python has exceptions and threading as first class features where as perl has… ahem. So after spending a chunk of today reading a python book and spending some time writing code here’s my initial short list of gripes - except IOError print adding newlines Significance of whitespace in blocks. Read on →

In the past I’ve written up a small list of general goals to help measure my technical progress. Over the last few years I’ve become a lot busier and this habit fell by the wayside. But no more! I’ve got a quarter left and I’m going to try and complete… Write and publish a technical article. Attend two technical events. Read and review 3 books. Write and publish two Perl modules. Read on →

While Google Chrome has been getting all the press coverage recently Ubiquity, from Mozilla Labs, is where all the interesting action seems to be happening. Ubiquity ticks all the boxes for me, it’s a simple, easy to use idea, that’ll save me time. It’s easily extensible and already has a huge community of people working, enhancing and just trying new things with it. All the things I’ve come to expect from Firefox and the Mozilla using community. Read on →

Like most of the techy part of the Internet I dutifully downloaded Google Chrome today and had a little play around. And just like all those other people I’m going to write about it. The difference is I’m very ambivalent about the whole thing. Chrome seems nice enough. It’s quick, works with all the websites I’ve tried so far and does have a killer feature - the task manager. Finally breaking tabs out in to their own sandbox is an idea whos time should have come years ago. Read on →

We’ve been hitting some load issues on one of our monitoring machines recently and while it looks like the munin graph generation is the culprit we also decided to keep an eye on how many services and hosts Nagios was checking. One of the downsides of having a very automated server deployment system is how easy it is to suddenly find yourself with an extra dozen hosts you no longer really need. Read on →

As part of my ongoing attempt to stop myself from silently making mistakes (I don’t so much mind the ones I notice) I’ve added another couple of Nagios Plugins. This time validate_feed and validate_html. As both of these checks call out to an external, third party resource, if you use them be sure to tweak your Nagios polling interval down to a respectful level.

I’m not exactly a demanding user of version control systems so I’ve not been heavily motivated to ditch my personal SVN repo (which I don’t use as much as I should) and plunge in to the shiny new distributed ones. However (and this is my excuse) I’ve recently wanted to put a handful of my own Nagios plugins under a public VCS. While we use a number of the checks at work I don’t necessarily want the local changes to be made immediately public so I thought I’d take this as an opportunity to have a fiddle with git. Read on →

It’s been the summer of returns, from the very enjoyable Dark Knight to the should have been left buried ‘plot’ of Indy and the Crystal Skull. Unfortunately most of them have been rubbish - and the The Mummy: Tomb of the Dragon Emperor doesn’t do anything to address this. The special effects are good but nothing ground breaking, the new Evelyn O'Connell is a masterpiece of terrible - how such an uninteresting character can steal and kill so many scenes baffles me. Read on →

While digging through a pile of syslog log files recently I needed something a little more data format aware than pure grep. So I present the first version of syslogslicer - a simple perl script that knows a little bit about the syslog log file format. # some example command lines syslogslicer -p cron -f program,message /var/log/syslog # print the program and message for all lines with program 'cron' syslogslicer -p cron -m hourly /var/log/syslog # all fields for all lines with program 'cron' and message 'hourly' syslogslicer -p cron -m hourly -s 20080810100000 -e 20080810123000 /var/log/syslog # all fields for all lines with program 'cron' and message 'hourly' # between 20080810100000 and 20080810123000 syslogslicer allows you to filter the output by matching text in the program or log message, only print certain output fields and do basic time based filtering. Read on →

“This script retrieves a URL via a specified proxy server and alerts (using the standard Nagios conventions) if the request fails.” We’re running a couple of services through a proxy server for a number of good, and to be honest a couple of not so good but mandated, reasons. The Check Proxy Check Nagios Plugin ensures that if the proxy goes down in a way that stops us pulling pages through it we know.