25th February 2003
I'm very keen on this under-used protocol, with its enormous
expressive power, years of experience and consequent maturity, and
uniquely friendly user community. Use Z39.50! It's great! You'll
- I'm the principal author of the Zthes Profile for navigation
thesauri over Z39.50. (This is a lot more interesting than you
probably think it is.) This profile now has its own site at
- I am the author of the free Net::Z3950 Perl module,
which used to be on this web-site but now has its own site at
- I maintain the ZZPerl - Z39.50
Programming in Perl page, which tracks the status of
various projects to enable Perl for Z39.50 programming.
Warning: this is out of date
- I wrote
The Empire Strikes Back,
a rebuttal to some presentations at the December 2000 ZIG
meeting in Washington D.C. which I felt underplayed the
strengths of Z39.50 and overstated its weaknesses.
I also wrote
Just Say No,
another document which makes similar points in a somewhat more
forthright way. For example, The Empire Strikes Back stops
short of describing SOAP as ``stupid''. You're welcome to read
this, but please do so on the understanding that it reflects my own
strongly-held opinions only.
- As a hopefully more constructive response to the problems that
motivated the Z39.50-over-SOAP movement, I've initiated ZOOM: The
Z39.50 Object-Orientation Model, which used to be on this web site,
but now has its own site at
- I wrote an informal paper,
One Man's Ceiling is Another
Man's Floor - or - Why your data may not be as meta as you
think it is. A section on RDF is still needed.
- I've written a very short document that, over the last few
years, I've wished again and again that I could read. It's
All You Need to Know about XML in One
Page, and it does exactly what it says on the tin.
I've added a whole section on the
adventure games that I personally have written. Yes, this is
basically an ego trip; but lovers of ``classic gaming'' from the
early to mid-80s, and of early multi-user games (late 80s) might
find something to tickle their fancy here.
- I've designed and implemented
a rather unusual programming
language called ETA.
Even if you're not a programmer, you might be amused by some
If you are a programmer, I'd be fascinated to see what
you can produce using ETA. (As with the Zthes profile, these
documents need to be able to live a life separate of this
site, so they don't fit the site-wide ``look and feel''. What
are you going to do? Sue me?)
- Here's True in a Nutshell,
a parody of some of the obsessively detailed O'Reilly
Associates books. (I should say here that I've got nothing
and that some of their books - not least
- are truly outstanding.)
- As I was thinking about various very unlikely but theoretically
possible circumstances which may occur in programs, I came up
with a heuristic for when to worry and when not to. I dignify
this rule of thumb with the name
Taylor's Law of Programming Probability
- I was up till 3.15am last night hacking someone else's XSLT
engine invocation code, and all those Patterns got to me. So
here is my very brief exposition of
Java programming idioms.
- Here is my embryonic suite of very brief papers on
Why X Is Not My Favourite
Programming Language for various values of X
including C++, Perl, C, Ruby and ETA.
- Infuriated by an Alert Box column, I've written
a brief, but heartfelt, rant about stupid users.
- Back in the 80s I wrote an implementation of
Tetris for serial terminals,
called tt, that refuses to lie down and die.
Source code and some historical notes are available.
- I host several wonderful arcade games for serial terminals,
all written by Marke ``The Chief Slime Monster'' Fincher:
- Chicken Vomit,
which vaguely resembles Vulcan Venture, Nemesis, etc.
a port of Defender (yes, really!)
a puzzle game somewhat in the spirit of Tetris.
- Firstly, here's
my CV (or resumé, for Americans)
- Here's an older version of my CV, in both
as it was when I applied for my previous job at
Seatbooker UK Ltd.
(then TECC Ltd.)
It's well out of date now (including my email address and web site
as they then were), but it does give a flavour of the sort of
technical work I've done in the past, and what I'm liable to do in
- I've written a page outlining
some technical issues that I feel strongly
about - things like Open Source, Web Interoperability and of
course the eternal question: Why Can't Someone Make a Half-Decent
And here's a rant that I wrote while I was particularly furious with
one outstandingly poor piece of
- I've typed up and annotated
the manual for the B library
in the pre-historic First Edition of Unix.
- I suppose here is as good a place as any for my
-----BEGIN GEEK CODE BLOCK-----
GCS d- s+:+ a C++$ UL+++$ P+++(--)$ L++ E+++ W++(-)$ N o+ K- w-----$
O? M? V? PS--@ PE- Y- PGP-- t@ 5? X? R- tv--@ b+++ DI+@ D++ G-
e++ h---- r+++ y?
------END GEEK CODE BLOCK------
And here's the
decoded version, courtesy of
Bradley M. Kuhn.
- I wrote a trivial script to
convert Debian .deb files to
I can't remember why I did it now, but it seemed at the time
like a useful thing to have. Anyway, if you want it you're
welcome to it.