While dabbling with Puppet I’ve spent a fair amount of time investigating facter, one of the tools (although puppet uses it as a library) it’s built on. While I quite like the format it uses to define a fact I’m hampered by my lack of ruby experience; simple things take me longer than they should. So when I noticed Pfacter while looking for a module on CPAN recently I thought I’d have a look at how it could be done in perl. Read on →

The current trend with config files is to fill them with comments (let’s ignore the fact this isn’t a substitute for documentation) and while this is helpful watching people arrow through them line by line looking for active options drives me nuts. If you’re using vim (as all good people do ;)) you can jump from uncommented directive to uncommented directive with /^[^#] as a search. Pressing n will then move you to the next uncommented option. Read on →

It’s been a long week that began with half the systems team coming down with colds and ended with no water at home and dealing with plumbers. A number of little road blocks cropped up and late Friday night I decided to do the adult thing - and ran away. I’ve not really had a non-tech break since January so about 10 Friday night I grabbed my “conference kit” (I’ve learned to pack for short trips both quickly and lightly - and with only cheap items) I went and bought a ticket to the coast, used the wireless in the train station to find a small “hotel” (that’s a glamourous term for where I ended up staying) and buggered off to enjoy the beach for two days. Read on →

A tech friend of mine has spent the last four months in Chennai doing the ground work for his first VC backed start-up. He’s got a years funding (at Chennai costs), he’s just got the building (including decent aircon and a generator - which were apparently harder to get than you’d think) and now he needs to grow his tech team from five to about thirty over the next couple of months. 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 →

Continuing the release of my Nagios code - here’s my Nagios Simple Trender. It parses Nagios logs and builds a horizontal barchart for host outages, service warnings and criticals. It’s nothing fancy (and the results are a little unpretty) but it does make the attention seeking services and hosts very easy to find. While the tool isn’t that technically complex I’ve found it useful in justifying my time on certain parts of the infrastructure. Read on →

We use the Nagios monitoring system at work (in fact we use four installs of it for physically isolated networks) and while it’s damn useful (and service checks are easy to create or extend) it’s a little lacking in higher level trending and visualisation tools. Well, at least the very old version we run suffers from this. Thankfully I work for a company that invests time in its core tools. Over the last couple of hackdays I’ve written two small scripts for parsing Nagios logfiles and presenting the information in a different, slightly more grouped way. Read on →

It’s not a well kept secret but I’m still surprised by how many people have never encountered .bash_logout. Its purpose is pretty simple, if you use the BASH shell it’ll be executed when you log out (see, a well named file!) So what’s it for? Well, I use mine to invalidate any sudo sessions I’ve got open (sudo -k), clear the screen -in case it’s a local session - and nuke a history file or two.

When I worked as a developer I played around with servers and infrastructure in my spare time, now I get paid to worry about that kind of stuff I quite enjoy writing the occasional useless piece of code. This weeks were a patch (well it started as a patch) to Statistics::Lite to make it pass its tests. And then I got distracted in to re-writing its test script from Test.pm to Test::More. Read on →

After heading to the Nordic Perl Workshop and watching sessions by Jonathan Worthington and brian d foy I decided to have a little play with Perl 6 and see if I could port my Daemon Percentages script (Perl 5 and Ruby versions already exist) to Perl 6. Thanks to material in the slides from the above sessions and asking a couple of questions in #perl6 I got a basically working Daemon percentages Perl 6 script running on my Windows desktop under pugs in a couple of hours (I had problems finding an example of the substitution). Read on →