This came up in conversation with a developer at the Google OpenSource Jam so I thought I’d mention it while it is fresh in my mind (update: at which point I forgot to move it to the published directory. Doh). Breaking up config files isn’t done just to annoy people, it’s done to make automated and mass management easier. A solid practical example is the Debian Apache configs. Historically most distros (and too many current ones) used a single config file for Apache. Read on →

I recently went to the second Google London OpenSource Jam over at Belgrave House. I’ve been aware of some of the London Google evenings but I’ve never made the effort to go, how ever there were a couple of people I’ve not seen for ages on the attendee list for this one so I decided to sign up. I don’t know exactly what I was expecting but what I got was more than a little weird, part pre-2000 dotcom and part group hug; it wasn’t really my kind of event. Read on →

For reasons that are too dull to post about (yes, even on THIS blog!) I spent some time today looking at Log::Dispatch. Bob (the afore mentioned bigger boy) then made^Wsuggested I integrate it with the shining example of wasted time that is Twitter. So I (not very) proudly present: Log::Dispatch::Twitter! Now, where’s the build system source code…

All I wanted to do was stop the IPv6 kernel module from starting on boot. It shouldn’t be hard, it shouldn’t be difficult and despite the early hour of the day, it shouldn’t require me to google. But it seems that it does, as a start point the Planete Beranger Disable IPv6 post shows the many different ways to solve the problem. Unfortunately it seems that the Debian Etch install I’m testing on doesn’t like: # /etc/modprobe.d/00local alias net-pf-10 off alias ipv6 off But it has no problems with a blacklist ipv6 - apart from a number of cases where that might not work and you’ll then have to rely on a install ipv6 /bin/true GAH! Read on →

I’m on-call tonight so I invested some time in facter, “A cross-platform Ruby library for retrieving facts from operating systems.” While facter is an interesting command line program (its extension mechanism is quite nice) its main claim to fame is that it’s used by puppet (which I’m slowly evaluating as a CFEngine replacement) to determine facts about a machine. While the docs are a little light on the ground the tgz contains a couple of examples and after some playing around I think I’ve got a basic Linux Bonding fact ready. Read on →

Over at the top-like command for disk io thread on GLLUG Kostas Georgiou mentioned a Linux /proc file entry I’d never heard of before, and after some digging it looks like it could be useful when debugging certain IO problems. Assuming you have 2.6.6 or above - or a vendor patched kernel. When you activate the option with a echo 1 > /proc/sys/vm/block_dump as root (read the article and consider turning syslog off first) the kernel starts to log which processes are accessing which disk blocks and inodes. Read on →

Both Jim Weirich and Ben Summers were kind enough to email me about my Daemon Logging Percentages and Playing with Ruby Idioms post. They sent me an explanation on how to do the hash assignment in a way I find much nicer, so with no more delays I present - Option 4: tally = tally[daemon] += 1 It really is that simple - and I still missed it by a mile. Read on →

Tonight I saw Outlaw. It starts out showing how people feel let down and abandoned by the law and the fact it seems to treat criminals better than the victims. It’s a great idea, the topic is perfectly timed and it’s only spoiled by a shoddy execution (no pun intended). It soon turns in to a badly plotted gang film that is amazingly one sided - the outlaws are never really developed so their point is lost, it is full of cliches and pretty dull. Read on →

I’m not sure about the basic idea behind Twitter but after signing up, having a little look and noticing the Net::Twitter CPAN module I decided to implement a really bad idea… #!/usr/bin/perl -w use strict; use warnings; use Net::Twitter; my $bot = Net::Twitter->new( username => "username", password => "password" ); chomp(my $doing = <>); $doing =~ s/^\s+\d+\s+//; $bot->update($doing); To make it ‘useful’ you’ll need to run the following in your bash shell: PROMPT_COMMAND='history | tail -n 1 | /path/to/' and tada! Read on →

Ghost Rider took a lot longer to reach our screens than it should have, and considering the amount of re-work involved it isn’t that good. Very middle of the road (haha), only see it if you’re a comic book geek, bored or want another chance to see Nicolas Cage not have expressions. 4⁄10.