Thursday, November 29, 2007

Comet with Apache

I’ve been mucking around with Comet, and ran into a situation which I couldn’t seem to find a solution on the lazyweb for. The problem was that none of the streamed JavaScript code blocks would be executed until the entire page was loaded.

I tracked it down to the gzip encoding module, which waits for all the data to be output, compresses it and sends it on to the browser.

You can disable gzip encoding for a particular directory in a .htaccess file (with Apache) like this:
RemoveOutputFilter DEFLATE
SetEnv no-gzip

Friday, June 29, 2007

Rollout Manual

I can't stand it when people release open source software, expect people to use it, and don't provide any sort of documentation. I'm not the sort of person who enjoys writing doco, but I do think it's required.

So here, in it's entirety: the Rollout Manual

Thursday, June 28, 2007


Announcing a new Open-Source project: Rollout!

Rollout is a system developed to automate system administration on UNIX servers. It is primarily focused towards Linux, but could be adapted to Solaris, HP-UX, AIX, etc.

It is written purely in Perl, and the configuration is also a Perl source file. Some Perl knowledge is required to edit the configuration, but copy-and-paste may suffice.

System Administration can generally be reduced to a set of steps, which must be completed in order. Some example steps include:

  • Copy files, create symlinks

  • Edit configuration files

  • Start / stop services

  • Add / modify users & groups

  • Install applications

The idea behind Rollout is to automate all these steps in a configurable way. Rollout is by design idempotent - it can be run many times on a single server and produce the same results.

There is a certain amount of overlap between this and other projects such as puppet and cfengine. They all have similar goals. Rollout is designed to be very easy to extend (as long as you can cope with Perl) and very fast.

You can get rollout from my git repository at If you’re using Cogito, you can run:

cg clone

This is the first public release, and as such is not expected to be everything to everybody. However it is in active production use and hasn’t destroyed anything yet. Use it at your own risk. The documentation included contains instructions on setting up a server and configuring clients.

Also, I’m enabling comments on this post (and I feel dirty doing it) so that people can submit bugs/patches/requests/complaints.

Friday, June 8, 2007

Upgrading dbackup 1.1.0 to 1.1.1

If you’re one of the lucky few using dbackup, and want to upgrade from 1.1.0 to 1.1.1 so things work (I really shouldn’t use a minor version number increase to fix such a major bug), you’ll probably want to run the following command in your backup storage root:

rename 's/^([a-z./]+).(d+).(d+).(d+-d+-d+-d+-d+-d+).(meta|data)$/
sprintf("%s.%03d.%03d.%s.%s", $1, $2, $3, $4, $5)/ex' */*

This should be run as all one line. It requires the rename perl script, which is in the perl package on Debian/Ubuntu at least.

Wednesday, June 6, 2007

Dbackup 1.1.1

I’ve released a new version of dbackup today, version 1.1.1. This version fixes a sorting problem, which you would see if you ever get above level 10 in a backup run.

You can download the new version at:
Source Tarball:
Source RPM:
Server RPM:
Client RPM:

Along with this release, I’m also opening up my git repository, so you can grab the latest source yourself. If you’re using Cogito, which I highly recommend, you can run:
cg clone

For instructions on using dbackup, see my original post.