Monthly Archives: December 2006

National [what?] service?

Went to the quack yesterday. After more than a decade of living with a toenail that isn’t right and periodically does something a little painful, I had the bright idea that we have this ‘ere health service. And our quacks are the UK’s only representatives of the techie community amongst the very-high-paid, so lets have ’em earn some of it …

He looked, suggested a couple of things, and asked for a sample (ahem, a toenail sample). To keep it all sterile, he provided a little purpose-built packet bearing the logo of a big pharmaceutical company. Then an envelope to put that in. Then more packagaing. Makes the worst supermarket practices look positively frugal!

Oh, and a pair of scissors to cut it, that looked as if they could easily have contaminated the sample. Not to mention anything on my hands at the time I cut it. But that’s OK: it was being carefully packaged, so nothing’s going to happen. Yeah, right.

mod_proxy_html 3.0

I’ve just announced a public dev version of mod_proxy_html, incorporating a range of updates.  That means it works nicely for me, and I’d like the outside world to start test-driving it.

First, there’s much better internationalisation support.

  • A charset not supported by libxml2 can be aliased to a supported one.
  • A charset that is neither supported directly nor aliased will be converted to unicode using apr_xlate (an iconv wrapper).
  • A default input encoding (for totally unlabelled contents) can be configured.
  • Output can be filtered through apr_xlate to a server admin’s desired encoding.

Second, support for rewriting proprietary HTML variants is now configurable.  Indeed, the definitions of all link and event attributes is now delegated to httpd.conf, and an example configuration is supplied, defining the links and events in W3C HTML 4.01 and XHTML 1.0.

When I announced it here I got two requests, one of which was easy to satisfy.  You can now override its refusal to run when not in a proxy context, or when the input isn’t HTML.  This of course is at your own risk, to help dealing with broken backends.

This is one of a number of new fixes available for broken backends.  Others include an option to ignore leading junk, and the capability to strip out bogus or deprecated markup and output cleaned up HTML or XHTML.

Finally, Version 3 introduces more flexible configuration.  It now supports variable interpolation in ProxyHTMLURLMap rules, and allows an additional clause making application of individual rules conditional on an environment variable.  So configuration can now be dynamic – e.g. driven by mod_rewrite –  when <Location> / <LocationMatch> sections aren’t sufficiently flexible.

Old times and winter warmth

It’s been a bit cooler over the past two nights, and today the sun was rather weak even during the day.  So I’ve bowed to the weather and resurrected the old 19″ CRT monitor, which puts out quite a lot more heat than the LCD/TFT jobbie I normally use.

I turned off while moving heavy stuff, and when I rebooted it dropped me into 1280×1024 at 60Hz vertical refresh.  Looked around the GUI tools, and failed to find anything that would improve the refresh rate without lowering the resolution, so I hacked xorg.conf by hand and added a section for the CRT (copied from an old config file that had some params for it).

OK, restart X.  Dammit, no display!  OK, boot into recovery mode, and edit xorg.conf.   Heh!  I’d added the new “Section Monitor” and the details, but omitted the corresponding “EndSection”.  Fix, reboot, and all’s well: I now have 1280x1024x24 at a much more satisfactory 85Hz.

And with this running, my room will warm up:-)

The bridge is back!

Today the footbridge is finally back.  I walked across it, and took a good look.

It’s a rather ugly beast, presumably built to minimum budget  and having all the elegance and charm of the railings put up around 1960s main roads in our cities to make it clear that pedestrians were no longer welcome.  Not that the old one was a thing of beauty, either.  Given the generally nice setting, that’s a shame. But at least we have the route back.

In other local news, I’ve looked at the details of that planning application.  There’s absolutely no access except from Old Exeter Road, and they’re going to have to close it for an extended period (having cleared it of parked cars) to build this lot.  There’s already an excess of demand over supply for parking, and new flats will only make that worse: that’s the kind of thing that’ll weigh fairly heavily with the planning folks, unless something substantially more than a Free Lunch is involved.

Still, the mere fact of the application is yet another reason to move from this blighted place.

How to (not) consult the public

I have on my desk a letter from the Council, addressed to “The Owner/Occupier” of my address.  It tells me they have a planning application to erect four flats, at another address just across the road from me.  So that’ll take over the general disturbance to the area when the last lot are finally done.   I (and others who will be directly affected) can view the plans at the council’s offices, and have two weeks to comment.  The letter is dated December 18th, so two weeks give us until January 1st.

This is the second time I’ve had a notice of this kind in Tavistock.  And on both occasions, the two weeks consultation period have come in late december.  This time I’m not going anywhere for christmas, so I have the option of going to their offices and (if anyone concerned with planning can be found) demanding to see the plans.  OTOH if I want professional advice – for example from a lawyer or civil engineer – I’m going to be stuffed.  Many others will be away (as I was last time), or working at full stretch to entertain family and friends.

I said last time this happened that I wouldn’t want to suggest any sinister motive, but if someone wanted to subvert the planning process, this is exactly how I’d expect them to go about it.

But, two out of two?  If we just narrow the coincidence down to one week (actually it’s even closer), that gives us a probability of 1/(52*52), or less than 0.0004, of it being pure chance.

First frost

December 20th.  First frost of the season outside.

But still comfortable.  High pressure and no wind, no need for the winter duvet, nor for a winter-weight pullover.  And the day is dawning bright and clear: in a minute I’ll have to put down the venetian blind to defend against the glare of the sun.  And the CRT monitor, which I still have in mind as a potential source of winter warmth in case of cold, remains unused and gathering dust.

The Bridge’s progress

I passed the site of our footbridge this afternoon just after four.  The workmen were there, so I asked about it.  No they can’t open it quite yet, but it should just be a couple of days.

As I was there, they opened up the bridge end of the section of path that had been closed.  They didn’t know why it had been closed, either, unless it was Health and Safety (a possibility, and a good scapegoat if not). If it was on some spurious safety grounds, they’ve scored a great big own goal there: the fallen leaves and moss that accumulated on the unused path are certainly more slippery than that path would normally be.

Apache/APR/MySQL packaging

My attention has just been drawn to Debian bugs 395959/403541 re: packaging the MySQL driver in apr-util. This is a legal problem of meeting the terms of all licenses involved.

That’s bad, because I believe packagers such as Debian are precisely the people best placed to make this integration available to end-users. Speaking as a key holder of the intellectual property in question, maybe I can help. I just posted an entry to the Debian bug tracker, but I’m not sure how that works. So I’ll blog it here for the record.


Joachim has just drawn my attention to this report.

I am the original developer of the MySQL driver, and it was originally my decision to license it under the GPL. I’m also director of WebThing, and a member of the Apache Software Foundation (though not, in this message, speaking in an official capacity).

I’m not dogmatic about the licensing, and I’d be happy for it to change if it helps, subject to the constraints of the other licenses involved. Originally I’d have been more dogmatic about it, because apr_dbd_mysql released under the Apache license seems to risk undermining MySQL’s GPL rights, and I didn’t want to be responsible for that. However, MySQL AB has made it clear that they are happy to live with that: indeed, they explicitly name APR and the Apache license at

So the sticking point is no longer the GPL, but rather ASF policy, which does not permit us to distribute anything that would impose restrictions on our users, over and above those in the Apache License. The ASF takes the view that to take advantage of MySQL’s exception risks leaving our users in limbo. That clearly doesn’t apply to Debian: your primary license is after all the GPL.

A quick google reveals that some Linux distros have apr_dbd_mysql as a separate (RPM) package, and have presumably built apr-util to enable dynamic loading of a DBD driver. This seems to me an excellent solution.

I hope Debian will see a way to make this available for your users. If I can help, please ask.

midwinter birdsong

I’ve never learned to distinguish one birdsong from another. But in the darkness of winter, a tuneful bird can be very noticeable. Especially on a Sunday night, when we’re relatively free of noise pollution.

I have a vivid recollection of midwinter birdsong from a few years ago. I’d been to a new years bash in Saltash, and was cycling back home through the leafier suburbs of Plymouth at about 2 a.m, when I heard several birds, which I took to be nightingales from the tunefulness and time of day. But when I mentioned it, it was suggested they could’ve been blackbirds, confused by the streetlights into nighttime song.

Yesterday (Sunday) just after dusk in Tavistock I heard the same bird, in strange conjunction with the harsh cry of the raven (or is it just a crow?) that is utterly characteristic of English winter. And as I write, I can still hear – intermittently – the nightingale (or is it blackbird?) in the distance.

Alas, I expect it’ll be a while before we get such another quiet night that I can hear birdsong around here.

Indexing the book

I got through the index today, and marked up quite a few changes.  Some of them are whittling it down (a whole bunch of consecutive closely-related entries pointing at the same couple of pages – reduce it to a single entry).  Others are adding to it, usually on the “big topic” keywords.

An interesting point here: I folded the HTTP spec into my format for inclusion as an appendix, but when it came to indexing, I sent them the index from the PDF version.  They’ve clearly used that index, and they’ve merged it with partial success.  So one of the things I’ve had to do is improve the integration of the two, with for example appropriate crossreferences where my text discusses something in the spec, but doesn’t use the same keywords as the spec’s index.

I think I still need to read it through again before closing the task.  I have until the middle of the week.