<< December 2003 February 2004 >>

Thursday 29 January, 2004

My current bit of work, which I've been doing on and off for about the last year, had its press launch yesterday. Happily I wasn't invited. I never seem to be on the same wavelength as the marketing types. While I doubt the client produced any outright lies at this do, I'm sure I would have winced several times. The computer trade press journalists don't, on the whole, have my particular respect either. A large chunk of what they do seems to consist entirely of transcribing press releases and presenting the results as news. Being trapped in a room for several hours having to sit through a pile of guff with a bunch of duffers is something I'm glad I missed.

The software itself is my first piece of shrinkwrap and should, barring manufacturing mishaps, be cluttering up the shelves of PCWorld in about a month or so.

smellygit said But what is it ? [added 30th Jan 2004]
Erm, well it doesn't really do anything. It's a guided self-help system that tells you about printing letterheads, business cards and such. [added 1st Feb 2004]
smellygit said "Printing with Jez"

You could have a whole new series of articles :p [added 2nd Feb 2004]

Gevs said Not related to the thread above in any form but check out the BBC news link

"Geek names son Version 2.0" - cool?...erm i think not,

still its slightly preferable to being called Baby Nike


[added 3rd Feb 2004]

[Add a comment]
Wednesday 28 January, 2004

Committed some fixes in SAX2DOM. There was a couple of bugs which screwed up the reference count on DOM::Document if the DTD declared external or internal entities. Also fixed a bug which caused a crash if a default attribute was declared before the element to which it belonged.

Don't ask how I found this stuff didn't work ...

[Add a comment]
#[Arabica] Just committed some changes to filter/Writer. Writer now writes the DTD declaration and any internal DTD subset.
[Add a comment]
Tuesday 27 January, 2004
#[elsewhere] In the background
[Add a comment]
#Kung Hei Fat Choi
A Chinese Lion toy
[Add a comment]
#[linkfarm] Microsoft could soon be facing multi-billion euro fines and other sanctions for breaking European competition law.
[Add a comment]
# Lost count while I was swimming this morning, so I just carried on until everyone else had got out and there was a shower free. Feel a bit knackered now. This first cup of coffee is really going to make me shake.
[Add a comment]
Monday 26 January, 2004
#[linkfarm] The Conduct of Employment Agencies and Employment Businesses Regulations 2003 - Restriction on agencies and employment businesses purporting to act on a different basis
[Add a comment]
#[linkfarm] Queen to give knighthood to Bill Gates
[Add a comment]
Saturday 24 January, 2004
#[linkfarm] Lisp-to-Perl Compiler
[Add a comment]
#[linkfarm] Sleep 'can increase brain power'
[Add a comment]
#[linkfarm] Juggling 'can boost brain power'
[Add a comment]
Friday 23 January, 2004
#[linkfarm] Microsoft seeks XML-related patents
[Add a comment]
#[linkfarm] TagSoup
[Add a comment]
# Excuse me while I geek-out on Emacs 21.3 and nxml-mode. These little key-bindings rock too.
If you'd like a set of Windows binaries just say.
smellygit said Those key bindings don't rock, it just means that without your .emacs file you can't use Emacs anymore. [added 23rd Jan 2004]
M-x other-window or C-x o

C-x b


You should be able to live without keybindings. Where would you be without JDE, Tramp, xslide and all the rest? Modes. Now you really are stuffed without them [added 23rd Jan 2004]

smellygit said Using Eclipse :) [added 24th Jan 2004]
Yea, but without a massive jarfile you can't use it.

Hang on, isn't this where we started ... [added 24th Jan 2004]

smellygit said Hey - without a computer u can't use any of it ;) [added 26th Jan 2004]
Doh! [added 26th Jan 2004]
Nick [e] [w] said Damn, now i know where I've been going wrong. Nano is the future. [added 3rd Feb 2004]
I'm downgrading to ed. [added 3rd Feb 2004]

[Add a comment]
#[linkfarm] The Perfect 404
[Add a comment]
#[elsewhere] ID: 1273 Coffegrounds RSS Doesn't Display
[Add a comment]
# This is a page captured from Ananova on 22nd January 2004. One of these headlines is not like the others. Can you guess which?
planetcutie said I still don't know who 'Jordan' is. [added 23rd Jan 2004]
Ah, but can we really ever know anybody? [added 23rd Jan 2004]

[Add a comment]
Tuesday 20 January, 2004
# Having read this, I'm taking a perverse sense of small gratification from this error report. Thanks to Nick "dude, it's OO.o" Richards for taking the time.
[Add a comment]
#[linkfarm] CLR Profiler (v2.0)
[Add a comment]

So busy. I'm into the extreme fiddly tedium stage of my current piece of work. Can you change the label on that window? Could change the colour of that bit. Can you just shoe-horn in this completely different layout for everything that we had a graphic designer do?

I'm also having to build installers for the first time, as it's destined to be shrink-wrapped and on the shelves of PC World by the end of February. That's similarly tedious - build the installer, run it, check everything is where it should be, uninstall, rebuild the installer, etc. VS.NET will build installers but they are really limited to put-these-files-there-and-that-registry-key-over-there. Our application has a list of pre-requisites as long as your arm (Agent, IE6, speech engines, .NET framework, etc, etc) and checking for all those using VS.NET tools proved pretty much impossible. So a big hurrah for NSIS. If you ever get saddled with building a Windows installer, this is the tool for you.

Nick [e] [w] said You see AOL has done at least one good thing ;-) [added 20th Jan 2004]
smellygit said I can't believe you've been in software this long and managed to avoid installers! You need a month of using InstallShield to wipe that smile off your face :p [added 20th Jan 2004]
I have done

tar zcf package.tar.gz work/*

a few times. Doesn't that count? [added 20th Jan 2004]

AngryJohn [e] said Or InstallShield Java (well the first cut of it) - now that was truely a crock. I blame Dr Marc ;-) [added 22nd Jan 2004]

[Add a comment]
Saturday 17 January, 2004
#[linkfarm] BSD vs Linux
[Add a comment]
Friday 16 January, 2004
#[linkfarm] anti-telemarketing counterscript
[Add a comment]
Thursday 15 January, 2004
#[linkfarm] Entry-Level Unicode for XML
[Add a comment]
Tuesday 13 January, 2004
#[linkfarm] Burger King customers told: 'You are too fat to have a Whopper'
[Add a comment]
Monday 12 January, 2004
#[linkfarm] Tell your boss - more time in the pub means better productivity
[Add a comment]
#[linkfarm] How to Deconstruct Almost Anything--My Postmodern Adventure
[Add a comment]
Saturday 10 January, 2004
#[linkfarm] Lego Fires Two Executives, Mulls Layoffs
[Add a comment]
Friday 09 January, 2004
# Tories tackle speed camera rules - Shadow transport secretary Damian Green said many drivers caught by speed cameras should face only fines, not points on their licences.
Traffic wardens set for new power - The Tories warned the move to give greater power to traffic wardens could fuel further resentment from motorists already angry about the proliferation of traffic cameras.

There are a multitude of reason why I never have and never will vote Conservative. The characterisation of those that opposed Conservative foreign policy in the 80s as unpatriotic Stalinist dupes, for instance. Belief in Adam Smith's invisible hand to lead us all to some economic wonderland. What you could probably characterise as ideological issues.

I'm obviously becoming increasingly reactionary though, because right now this minute the thing that angers me most about current Tory policy is the idea that driving too fast or ignoring the odd traffic sign isn't really that bad.

This morning I stood with my two children and my dog at a pelican crossing and watched two cars and a lorry run the red light before I could cross. One of them even slowed down a bit first, before deciding that well, maybe he didn't have to stop after all. That's a bit of an extreme example, but I use the crossing 4 times a day and watch someone troll through on the red light about every second day. That's 1 in 8. The primary reason that people arn't routinely run over is because we've all learned to wait and see if the traffic really is going to stop.

Most evenings, as I dodge the traffic I can look down the high street to see a lots of people queued back over the crossroads. They will be waiting for somebody to whom the no right-turn doesn't apply to make his turn and get out the way. He'll be waiting for the oncoming traffic to clear before he can turn. But the oncoming traffic will be held up because of all the people backed over the crossing. Because knobhead wants to turn right. Eventually, of course, someone finally gives way, everything starts moving and traffic belts up the road. Towards the pedestrian crossing.

Perhaps because I grew up in a place where you could travel for miles without seeing a traffic light that when I see a red light now it means STOP. I don't see and read HAVE A LOOK AROUND FIRST AND CARRY ON IF NOONE SEEMS TO BE IN THE WAY or STOP IF YOU FANCY. It means STOP EVEN IF IT'S 3AM AND THERE'S NO ONE FOR MILES. Similarly, I read a no-right turn as DON'T TURN RIGHT HERE, not DON'T TURN RIGHT UNLESS YOU'RE IN A HURRY or I DON'T APPLY TO YOU.

I tried to come to some well considered little conclusion here, but I can't. People speeding and ignoring road signs puts me and my family at risk every day. I don't give a shit if some motorists feel resentful about speed cameras. They should be angry at their own stupidity. If the law were changed to allow mobs of angry pedestrians to pull them from their cars and give them a severe kicking, they still shouldn't feel resentful. Just don't drive like a prat. Everyone will be happier and safer.

smellygit said I am for once in complete agreement :)

Cameras should be hidden, so people don't just slow down where the camera is. If the complaint is they just raise revenue, cancel the fine but increase the number of points added to license.

Cycling to the office everyday lets me see close up the extreme risks some people will go to to get an extra 5 yards down the road, and get to the next traffic queue 30 seconds quicker. [added 9th Jan 2004]

planetcutie said Good god. You'd have a heart attack if you read some of the things that are on the Atlas F1 Nostalgia forum.

And one senior motorsport journalist, in his weekly column in the biggest selling magazine of it's genre, wrote that "Instead of using all that technology to devise traction control software, those scientists should spend their time devising something to shut down speed cameras before I pass them."

So, don't be worried about *you* being reactionary... [added 9th Jan 2004]

prashton said I'm currently working in Venezuela where there is a "cultura anarchia" when it comes to driving. Red lights? At least five vehicles run the red light every single time. Lane creep is another example of how motorists keep their options "open" at the expense of others. I don't drive for security reasons - though I am not sure what they mean by security!

I do feel that speed cameras are a poor substitute for what used to be. A speed camera can only measure speed. It cannot determine dangerous driving, varying local conditions or in rare cases a real need for a driver to break the speed limit. People do a much better job, simply because they have discretion. However the British police are never there where they are needed, seems to me. The excuse is that they have too much paperwork.

My best example of police discretion was, of course, the time an officer in Palacios, Texas decided that I was telling the truth when I confided that the speed signs on his stretch of road were too confusing! Well, as it happens it was July 4th and he was celebrating his independence from the likes of me, so perhaps his discretion was indulgence!

[added 15th Jan 2004]

webtrekker said Seems to me that the main problem is that vehicles are ALLOWED to exceed speed limits! Surely, if all vehicles were electronically governed (via a GPS system or induction loops in the road) so that they could not exceed the limit on a particular stretch of road then there would be no need for cameras or fines or points on licences.

As a bonus, police and emergency vehicles could be exempt from this limit enabling, for instance, a police car to easily apprehend a joyrider without killing pedestrians. With minor modifications, the system could be used to allow the police to switch off an engine of, say, a stolen or dangerously driven car. This way, you will get your stolen car back before it is torched!

As for running red lights, this is a case of dangerous driving and poor judgement and should be dealt with by an instant ban. Having said that, the whole traffic light system is flawed - sometimes not allowing drivers enough time to slow down on a fast road, or situated in poor positions in direct sunlight, or simply not working correctly.

Of course, all of this is just hot air as there is NO WAY the Government are going to give up their roadside cashpoints!

[added 10th Jul 2006]

simonhill255 said why oh why do you think its speeding that is the only bad thing that is on the roads, i have six points for speeding (32.8mph and 43.9mph) and am paying twice as much for my insurance because of it, yet i have been hit by an uninsured driver with no tax or insurance and all they got was a losey £150 fine tell me where the justice is in that, i think for speeding you should pay a larger fine and receive additional training but if you dont tax, mot or insure your car then an instant ban and your car taken and crushed if you drive without a valid license then you should receive at least 1 year jail time maybe more drivers would welcome that get the genuinely bad drivers of the road, also retest every 3 years like they do in some countrys around the world [added 14th Dec 2006]
jay [e] said WEBTRAKKER i agree the only way to stop speeding would be gps but the goverment wont make any revenue would they.. [added 4th May 2009]

[Add a comment]
Thursday 08 January, 2004
#Cooking with Pete: Butterbean and Lemon Soup

This is a terrific little recipe. There are almost no ingredients, there's virtually no effort involved, and the result is a delicious, velvety soup

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. -Antoine de Saint-Exupéry

Gather up

  1. Tip the beans into a pan. Throw the zest from the lemons on top. Add about a litre of water and a stock cube.
  2. Bring it all to the boil, then knock back to a simmer. Let it bubble gently away for about an hour or so, until the beans are cooked and soft. If the liquid gets a bit low, add some more.
  3. Squeeze the lemons' juice into the pan. Mix in some cayenne, salt and pepper.
  4. By now, there's probably very little liquid left in the pan. Add about 500 to 750ml more water and another stock cube.
  5. That's pretty much it. You can heat it through and serve as-is. You can mash the beans up a bit to give a thicker consistency, or you can puree the whole thing up with a blender. Whatever you do, it's yummy.

While yummy as soon as its made, it's even more so if you let it sit over night. The flavours mingle up, rounding and filling, making the soup feel really quite luxurious in your mouth.

[Add a comment]
#[Arabica]XPath support

Recently, I've been toying with the idea of added XPath support to Arabica. Using a DOM for real work without using XPath almost never seems to happen, for me at least. The longer Arabica's DOM went without XPath, the less useful it seemed to be.

Last night, I had a very brief browse around various around various XPath engines (Saxon, Jaxen, Blue, XPath for ActionScript and one or two more), to see how they parsed out XPath expressions. Jaxen, for instance, uses a SAX-like approach to tokenise the expression. Saxon's parser is all written by hand. I saw one, possibly two, that were generated by Yacc or Bison like tools.

Parsing out the expression is the thing I'm most concerned about. If you can pick the right bits out, then actually doing the work is going to be easy :). Constructing a parser by hand is a big pain. You've got all kinds of state to manage, look ahead to worry about, and all kinds of other things. Plus, I want the whole thing to be (eventually) templated on string type like the rest of Arabica, which adds an extra wrinkle. Further, given a fancy hand craft parser, how do you validate it against the grammer in the rec without building a massive pile of test cases. And if you do make a mistake, how easy will it be to fix.

The XPath rec defines the expression grammer using EBNF, which isn't really a surprise. There are tools like lex and yacc will convert EBNF to code for you. I've never used them though, and didn't fancy starting to learn them last night. I have played with Spirit though. Spirit is a parser toolkit which lets you pretty much transcribe EBNF directly into your C++ source. It's barkingly clever while at the same time being really very simple. (It'd also make a good counter-example to the operator-overloading-is-a-really-bad-idea argument, but that's a whole seperate issue). I pulled the latest release (it's now part of Boost) and set off. The latest release really is a piece of cake to use, so I spent a happy couple of hours with the XPath rec on one side of the screen and vi on the other transcribing XPath EBNF into C++. Sounds silly to say, but I had a really fun time.

Terris Linenbach [e] [w] said Xpath is absolutely a requirement.

Are you going to support xpath 2.0? When do you think it will be available?

I look forward to hacking some cross platform C++ together with your code. [added 24th Jan 2004]

I'm looking initially to implement XPath 1.0. XPath 2.0 is still pretty mobile and I don't have to the time to devote to following the rec as it evolves. Right now it seems like only Micheal Kay, who writes Saxon, is the only man on the planet who does. I don't really have a timescale for it either - I work on Arabica on an as I need to or as I can basis, so it depends very much on how much other stuff I have to do. Sorry to be so vague, but you know how these things go.

[added 26th Jan 2004]

[Add a comment]

#Somebody up there likes me.

Monday. I take Bean and Halster to walk Badger. Nat goes swimming.

Tuesday. I go swimming. Nat takes Bean and Halster to walk the dogboy. It rains.

Wednesday. I take Bean and Halster to walk dogsby. Nat goes swimming.

Thursday. I go swimming. Nat takes Bean and Halster to walk the Bidgebodge. It rains.

planetcutie said I went out in light rain to buy Autosport and DWM. Halfway into the 1.5 mile trip is starts really chucking it down and I get thoroughly drenched.

I came home and dried myself and sat down with my mags, and the guttering outside my house falls off (due to massive water overflow) as it's been threatening to do for me.

Somebody up there....well, you know the rest. [added 8th Jan 2004]

[Add a comment]
Wednesday 07 January, 2004
#[elsewhere] Or is that not what you mean?
[Add a comment]
Tuesday 06 January, 2004
#[elsewhere] Must drink!
[Add a comment]
#[elsewhere] Jez Higgins has released Arabica
[Add a comment]
#[elsewhere] Arabica Jan-04 release
[Add a comment]

Been using Arabica for some real work recently, which isn't something that I've done for a while. The project I'm working on at the moment is a guided help & how-to system for a printer manufacturer. People install the application, and it tell them how to print business cards properly, or about different types of paper, or whatever. The help sequences come up a page at a time with Next/Previous buttons, a bit like a Windows wizard. They can also have multiple paths, so you could say, for instance if your running Word or PowerPoint and you'll be guided appropriately.

The help sequences are stored as XPDL instances. XPDL is an XML application for describing workflows, which is about as much as you really need to know. We're subverting it slightly for our purposes I suppose, but it works very well. It saved us the trouble of designing our own format, which is always harder than you think it will be. There are some reasonable-ish tools for defining the workflows too, which also saved us a lot of time.

Recently our client wanted to extend the help sequences to include screenshots. XPDL is arbitrarily extensible via its ExtendedAttribute elements, into which you can put whatever you like. The editor stashes its layout info in there, for instance. I decided to Base64 encode the images and pop them into an ExtendedAttribute, so that the images and the text they go with are all contained in the same package. Carole laboriously captured all the screenshots, and annotated the text to indicate which image went where. All we had to do now was get the data into the XPDL.

I wrote a small SAX filter to do the job. When we read a Description element, it checks the text it contains. If the text has a {{image:something.gif}} sequence, then everything kicks off. After the Description element comes an ExtendedAttributes element, into which it adds a new ExtendedAttribute element. It reads something.gif to a string, using oconvert_adaptor to Base64 encode the data. The encoded image data then becomes the ExtendedAttribute's content. Bingo - image data in the right place, without a lot of labrious manual labour. Sitting on top of that filter is SAX/filter/Writer, which properly formats the modified document and writes it out to disk.

Using a simple makefile, the workflow XPDL documents can now be rebuilt whenever the source XPDL is modified, or new images are added. Carole can write new help sequences or grab more screenshots (and there are a load of those left to do), check them into CVS and they'll get incorporated straight into the build.

Putting all this together took only an hour or two, and the source code runs to 260 lines including blanks and comments. Who said C++ was hard :) ?

[Add a comment]
#[linkfarm] The Free Software Community After 20 Years: With great but incomplete success, what now?
[Add a comment]
Monday 05 January, 2004
#[elsewhere] Positively antidiluvian.
[Add a comment]
#[elsewhere] Many things ...
[Add a comment]
#[elsewhere] Red Eye #1
[Add a comment]
#[Arabica] Thanks, as ever, to Freshmeat and xmlhack, and also to Elliotte Rusty Harold for carrying the release announcement.
[Add a comment]
#[elsewhere] Shameful though it may be, I bought a new battery for my mobile phone.
[Add a comment]
#[linkfarm] What You Can't Say
[Add a comment]
Sunday 04 January, 2004
# Just dropped a new Arabica release. From the sofa. WiFi roolz, it really does.
smellygit said Hmm, being able to work instead of watching telly - yeah that r00lz :p [added 6th Jan 2004]
Depends what's on [added 6th Jan 2004]

[Add a comment]
#[Arabica]Arabica Jan-04 release
This is primarily a bug-fix release. There are a number of fixes to the DOM implementation, particularly relating to namespace handling and error reporting. The convert_adaptors now handle binary data correctly. A Makefile for Mac OSX is now also available.
Source tar.gz download Source zip download
Build notes
Major bug fixed
[Add a comment]
Friday 02 January, 2004

So I was given a lovely new potato masher for Christmas.

And socks, obviously.


peteychap said Electric razor, trousers, mug and socks. [added 2nd Jan 2004]
Gevs said lets see...

A weird Al Yankowich CD (from my bro in the U.S)

2 books 1 v. helpful book on basic baby stuff and

one truly awful one on "balanced babies" by some american chap!

right, i'm off to surf emmas diary. (not emmas dairy

which gives an altogether different set of google results!) [added 3rd Jan 2004]

ajbattrick said Binoculars, a mini polaroid camera and some napkin rings. [added 4th Jan 2004]
Marc said Coupla books, some pants (of the UK rather than US variety) and some Kevin Smith DVDs. [added 5th Jan 2004]
anonymous said half a PowerBook. Other half was for my birthday a month earlier. [added 6th Jan 2004]
planetcutie said £210 from my parents. Unimaginative, but I'm not complaining. [added 6th Jan 2004]

[Add a comment]
<< December 2003 February 2004 >>