<< January 2004 March 2004 >>

Saturday 28 February, 2004
# It's the Bean's birthday today. He's four.
[Add a comment]
Thursday 26 February, 2004
# At about half past nine, the Bean got out of bed and went for a pee. Then he went back to bed. In our bedroom. On my side of the bed. Something horridly Freudian is going on.
smellygit said He'll be blogging in your name next .... [added 26th Feb 2004]
BWAH-HA-HA! [added 27th Feb 2004]
B. [e] said Think nothing of it. My daughter is 7. Three nights ago, she felt lonely and appropriated my side of "the big bed." I came home and tried to walk her to her room. She walked to the end of the bed, matter-of-factly turned right, turned right again and crawled in on her mother's side. [added 3rd Mar 2004]

[Add a comment]
#[elsewhere] Arabica Feb-04 (Default)
[Add a comment]
#[elsewhere] Jez Higgins has posted a new version of Arabica
[Add a comment]
# Nattle's just seen Location, Location, Location's Kirsty and Phil on the high street, bustling around with a production crew. Phil was wearing a parka, which kind of blows his on-screen cool'n'sexy property-boy image.
Pete Ashton said So your property will be increasing in value then? [added 26th Feb 2004]
Because of Phil's parka?

House prices are going up here, as they are generally. This is something of a double-edged sword, because when we do move again we're planning to move elsewhere in Moseley. Doh! [added 27th Feb 2004]

[Add a comment]

#[linkfarm] Appleseed
[Add a comment]
#[linkfarm] Casshern
[Add a comment]
#[linkfarm] Sky Captain and the World of Tomorrow
[Add a comment]
#[elsewhere] Picking up rubbish is a crappy job, and it's hard job, and I don't fancy it myself.
[Add a comment]
# New Arabica release. You get loads done when you're not working :)
[Add a comment]
#[Arabica]Arabica Feb-04 release

Primarily a bug-fix release.

SAX: SAXParseException copy constructor was corrected. DefaultHandler::fatalError now throws an exception, matching its documentation. Thanks to Ulrich Heinen of the University of Freiburg for picking that up. The MSXML2 wrapper now allows exceptions thrown from ErrorHandlers to propagate properly, rather than dropping them at the COM boundary. There are a few VS.NET specific fixes. The Writer SAX filter now also writes any internal DTD subset.

DOM: Some minor DTD handling problems were fixed

Source tar.gz download Source zip download
Build Notes

[Add a comment]
Tuesday 24 February, 2004
#Cooking with Pete: Pasta with Spicy Broccoli

Another exceedingly quick'n'easyTM teatime winner. It's a lovely way to eat broccoli - you really get to taste the broccoli, rather than the sauce or gravy or whatever that it usually gets mixed up with.

Nip down the shops and get

  1. Find a pan big enough to hold all the pasta and the broccoli, fill it with water and stick it on to boil. The bigger the pan, the better really.
  2. Cut or break the broccoli florets up into little bite sized pieces.
  3. Get another large pan, and pour in a generous quantity of good oil. Heat the oil gently. Crush or chop up the garlic, then fling it into the oil along with the chilli flakes. Fry it round for a couple of minutes, then turn off the heat. Throw in a large pince of salt, and stir it around.
  4. When the water comes up to boil, tip in the pasta. Bring it back to the boil and cook it for five minutes or so. See how long the packet recommends and knock about 5 minutes off that.
  5. After five (or however long) minutes, tip the broccoli into the water too. Bring it back to the boil again. (Depending on how big your pan is and how much water you have, this'll take between no time and a couple of minutes.) Simmer for two or three minutes more, until the pasta is cooked. Drain it.
  6. Turn the heat up high under the garlic and chilli. Tip the pasta and broccoli into the pan, and turn it around and around until everything is coated with the oil, chilli and garlic bits.
  7. Eat!

With all that broccoli to work against, the pasta need to be pretty rugged. Right now, I normally use buckwheat pasta because Natalie isn't eating wheat. Wholewheat spaghetti is something I usually avoid, but it's excellent cooked with the broccoli. Hemp and spelt pasta is good too - it cooks so quickly you can put everything in at the same time.

[Add a comment]
Monday 23 February, 2004
#Nodding in Parbold

Spent the weekend up near Skelmersdale with my Warps chums JD, Anton and AndyB. Warps is a crappy acronym for Wargames and Role-Playing Society but WARPS made for a better name than Hull University Wargames Society. It also meant Ian could design a cool logo for the T-shirts. I'm fairly sure I came up with the Warps name, so I'm gratified that it still exists and is, no doubt, ensuring that maladjusted scientists and engineers continue to get 2:2s. Hurrah!

We talked a lot of nonsense, played Carcassonne, drank some beer and, with JD's delightful goodwyf Francine at the wheel, embarked on an extended midnight tour of Ormskirk looking for a takeaway. Top fun.

In the weeks beforehand Anton had solicited suggestions for music we listened to at university. He turned up with a CD of 119 rock tracks, roving from Biohazard through Faith No More to Lawnmower Deth. At the cheesy end of things he also threw in some Poison, Dave Lee Roth and Warrant's marvellous Cherry Pie. Sitting round the game, drinking beer, Andy outlined his objections to Unilever's latest branding strategy. The rest of us tuned out slightly and gradually we all began to nod in time to Queensryche.

I don't honestly see us not continuing to do this two or three times a year until we're all dead and buried.

anton said I don't think I tuned out that much, but who knows, I was hungover [added 23rd Feb 2004]

[Add a comment]
Thursday 19 February, 2004
#[Arabica]The XPath grammar is, modulo whitespace, complete.

I can't claim to have an exhaustive test suite, but it eats all the arbitrarily complex XPaths I've thrown at it today.

What I find amazing is the speed with which I've been able to do this. I've spent less than two working days on it - two hours transcribing EBNF from the XPath rec, half a day footling around with abstract syntax trees and what not, and the rest of the time eliminating left-recursion. Now I have a grammar that I'm extremely confident is correct.

That development speed and confidence is entirely due to the mind-boggling power of the Spirit library. By allowing you to transcribe EBNF more or less directly into code, I can take the grammar in the recommendation and codify it. Literally codify it. The rec text is there in my code, so the code must be right. Here's snippet

// [1]
LocationPath = RelativeLocationPath | AbsoluteLocationPath; 
// [2]
AbsoluteLocationPath = AbbreviatedAbsoluteLocationPath
                     | ('/' >> !RelativeLocationPath);
// [3]
RelativeLocationPath = Step >> *((boost::spirit::str_p("//") | boost::spirit::ch_p('/')) >> Step);

// [4], [5]
Step = AxisSpecifier >> NodeTest >> *Predicate | AbbreviatedStep;
AxisSpecifier = AxisName >> "::" | AbbreviatedAxisSpecifier;
The numbers in square brackets refer to the rules in the recommendation -
[1] LocationPath ::= RelativeLocationPath | AbsoluteLocationPath	
[2] AbsoluteLocationPath ::= '/' RelativeLocationPath?
		| AbbreviatedAbsoluteLocationPath	
[3] RelativeLocationPath ::=   	Step	
		| RelativeLocationPath '/' Step	
		| AbbreviatedRelativeLocationPath	
[4] Step ::= AxisSpecifier NodeTest Predicate*	| AbbreviatedStep	
[5] AxisSpecifier ::= AxisName '::' | AbbreviatedAxisSpecifier
Even without knowing the Spirit syntax, it's easy to see the two match very closely. You can see I've had to reorder some rules slightly. RelativeLocationPath is an example of left-recursion, which I've had to refactor. But differences are minor and pale into nothing compared with a hand-coded parser. (I was going to link to Xalan's XPath grammar and I can't actually find it, which kind of demonstrates the point.)
[Add a comment]
#[linkfarm] GCC Bugzilla Bug 13007 - basic_streambuf::pubimbue, imbue wrong
[Add a comment]
Wednesday 18 February, 2004
#[Arabica] I have an almost working XPath grammar. Yay!
        'text' parses OK
        'comment' parses OK
        'text()' parses OK
        'processing-instruction('poo')' parses OK
        'processing-instruction("poo")' parses OK
        'processing-instruction()' parses OK
        'self::name' parses OK
        '@fruit' parses OK
        'one/two' parses OK
        'one/@fruit' parses OK
        'one/@fruit[1]' parses OK
        'one/descendant-or-self::woot[1]' parses OK
        'one/two/three' parses OK
        'one/two/three[1]' parses OK
        'one/two[1]/three' parses OK
        '/one/two' parses OK
        '/one[1]/two[2]/comment()' parses OK
        '/one[1]/two[2][1]' parses OK
        '//one' parses OK
        '//one/two' parses OK
        '//one/two//@id' parses OK
        'one/two/three[@attr]' parses OK
        'one/two/three[@attr][1]' parses OK
        'one/two/three[four/@attr]' parses OK
        'one/two/three[@attr='nob']' fails Parsing
        'one/two/three[position() = first()]' fails Parsing
        'one/two/three[(@attr) or (@id)]' fails Parsing
If you're interested, the code is in the CVS as xpath-dev-sandbox. You'll need a current version on Boost, or Spirit 1.6. So far, it is just the grammar, but everything else is just a simple matter of programming ...
[Add a comment]
Monday 16 February, 2004
#[linkfarm] smack the pingu!!!
[Add a comment]
#Parental choice: tutor, find God, appeal, move or pay
A friend of mine lives in Wolverhampton. Almost everyone in her street sends their children to the local, middle-ranking primary. After that, there is no automatic transfer to a similar school. The closest school is a girls-only grammar. The two nearest secondaries restrict their intakes to Catholics and Anglicans respectively. The local comprehensive has a catchment area that never reaches their street. My friend's best hope is that her children will be accepted at the specialist city technology college, which selects bands of children from an entrance test. The only choices for her children and those of everyone in the streets around her, if they want to avoid being placed in the area's failing schools, are these: tutor, find God, hope, appeal, move, or pay. They aren't choosing schools - it's schools that are choosing them.
[The Guardian, 14 Feb 2004]

[Add a comment]
Sunday 15 February, 2004
[Add a comment]
Friday 13 February, 2004
# It's 17:14. The first ice cream van of year has just pulled up outside.
Pete Ashton said Exactly 48 hours later one turns up outside my door. [added 15th Feb 2004]
Well, it is a long way from here to Perry Barr :)) [added 15th Feb 2004]
Pete Ashton said Perry Barr? Nothing so metropolitan and sophisticated for me. It's the souless drudgery of Kingstanding for this sucker. BTW, housemate Sam says her friend heard one in our area two weeks ago. That's January. I believe it had just snowed a few days previous. [added 15th Feb 2004]
anonymous said I'm in Glasgow, where it's not uncommon for armour-plated Ice Cream vans to get into vicios pitched battles over such contentious issues as lucrative catchment areas and the films of Bill Forsyth. [added 17th Feb 2004]
anonymous said And I can spell 'vicious', it's just my sticky keyboard... [added 18th Feb 2004]

[Add a comment]
Thursday 12 February, 2004
  • What is a residential broadband IP address?

    Residential customers of broadband services are assigned an IP address from a specific range maintained by the provider. These IP addresses may be either dynamic or static depending up the individual provider. Residential IP addresses should use the provider's SMTP servers and should not be connecting directly to another ISP's SMTP servers. Please see our Info Center for more information on IP addresses.
  • [Postmaster.Info : AOL Mailer FAQ]

    Bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards, bastards.

    smellygit said :)) That'll stop your crazy mail system :p [added 12th Feb 2004]
    prashton said The same problem manifests itself over here (Houston) with SBC. You are lured into their broadband service with nebulous promises but ultimately find out that your pre-existing SMTPs are barely tolerated. For some reason I can still communicate with non-SBC authorized SMTP servers but every so often I get a refusal. I quit Mail (Apple software) and reload - hey presto, mail goes through! [added 13th Feb 2004]
    I run a mail server, inaccessible from outside my network, to deliver my mail.

    AOL don't want to deal with it, because they consider such things as carrying the whiff of spam, either by delivering spam directly or acting as an open-relay for others. There's no doubt that a lot of machines do operate like this, largely because they've been infected with trojans.

    However, statements like "residential addresses ... should not be connecting directly to another ISP's [servers]" are nonsence, and refusing connections from so-called "residential addresses" won't do anything very much to reduce spam. [added 16th Feb 2004]

    smellygit said I bet quite a lot of spam is sent from smtp software running on machines connected to dial up, cable modems etc, it certainly ups the probability of a mail being spam using SpamAssasins rules. What's the problem with using your ISPs server though? [added 16th Feb 2004]
    In my past experience, Blueyonder's SMTP servers have been prone to delay mail for several hours.

    Obviously, I don't know what the situation is now because I haven't been using them. [added 16th Feb 2004]

    Britt [e] said AOL is technically challenged, and I advice to not use such a "service" provider.

    It is not AOL who set the internet standards, and they could benefit from understanding technology better. [added 11th Dec 2008]

    kk [e] said AOL belives that only ISP's are allowed to have mail-servers. This confirms the previous message. Internet is not about such dictatorship as this:"Residential IP addresses should use the provider's SMTP servers and should not be connecting directly to another ISP's SMTP servers."

    Thsi expression "Residential IP addresses" has no technical meaning, and businesses also use such "residesial" addresses.

    [added 11th Dec 2008]

    [Add a comment]

    For the first time noticed the dedication in Java in a Nutshell, 4th Edition.

    This book is dedicated to all who teach peace and resist violence.

    Admirable sentiment. No doubt the many, many people to whom that applies sleep a little bit sounder in their beds knowing their noble actions inspired a 5cm thick Java fucking reference manual.

    Nick [w] said That's interesting becuase just 3 hours ago I hit someone on the head with my copy of Java in a Nutshell. Irony upon irony abounds. [added 16th Feb 2004]
    Well, that's clearly you off the list. [added 16th Feb 2004]
    Unless you did it, you know, for peace! [added 16th Feb 2004]
    ... erm, wait ... [added 16th Feb 2004]

    [Add a comment]

    I'm a little bit late picking this up but am saddened to read that Flossie, the prettiest sheep in world, has moved on to a pasture where the grass is always lush and there are many, many McVitie's biscuits.

    If you'll excuse me, I'm going to play GridRunner++ for a few minutes.

    [Add a comment]
    Wednesday 11 February, 2004
    #[linkfarm] Autism-Spectrum Quotient
    [Add a comment]
    #[linkfarm] Why It Is Great To Be A Geek
    [Add a comment]
    #[linkfarm] Optimizing Mozilla Firebird
    [Add a comment]
    #[linkfarm] The String Bag and Octopus Guide to Parenthood
    [Add a comment]
    #[linkfarm] A tutorial on character code issues
    [Add a comment]
    #[linkfarm] Unicode spaces
    [Add a comment]
    #[linkfarm] Why questions go unanswered.
    [Add a comment]
    Tuesday 10 February, 2004
    #[linkfarm] Free Software Foundation Online Order Form
    [Add a comment]
    #[linkfarm] IMCom
    [Add a comment]
    #[linkfarm] jabbot
    [Add a comment]
    #[elsewhere] WheresKal Feb 2004 (Default)
    [Add a comment]
    # Mozilla Firefoxbird 0.8 is out. Go and download it now, Mum.
    Nick [e] [w] said You mean you don't even set up your own Mum's browser? Cruel, cruel man. Ahoy Jez's Mum, don't forget Thunderbird as well. [added 10th Feb 2004]
    Jez said Nick! You still live! Unfortunately, your website doesn't -

    ping www.nedrichards.com

    Unknown host www.nedrichards.com [added 10th Feb 2004]

    And no, I don't. First off, my Mum's more than capable of sorting it out herself. Second, providing tech-support for relatives is just asking for trouble :) [added 10th Feb 2004]
    Pete Ashton said Tell me about it... [added 10th Feb 2004]
    wunderwoman said Well, should manage it when I can actually get the download - keeps timing out coz of heavy traffic. I'm already a very happy Thunderbird user - prefer it to Jez's favourite Pegasus. Have just spent the best part of 3 very stressful working days getting "support" for the machine that crashed at work (with all our accounts stuff on it) first they said it was software but now an engineer is coming (allegedly) tomorrow to replace the hard drive. I did manage to retrieve all data. The Dell software support line had over an hours wait time for support today - after you'd already waited 15 mins to even speak to someone - all charged at premium rate of course, you just have to sit there waiting on the line - because of heavy call volumes about the latest viruses they said - i rang off......but its no wonder that we sometimes call those closer to us for help in our hour of need! [added 10th Feb 2004]
    planetcutie said Christ, *my* mother (age 49) thinks that the PC will blow up if she presses a key... [added 10th Feb 2004]
    wunderwoman said Browsing on Firefox now.... [added 10th Feb 2004]
    Ronan said Give me Safari anyday! :-) [added 11th Feb 2004]
    ... instead of AvantGo? [added 11th Feb 2004]
    Ronan said Not allowed Internet access at work. Notthat iy matters, it's all peecees here anyway. [added 11th Feb 2004]
    You're not allowed Internet access, but yet you can sync via AvantGo several times a day? So Internet access is sort of allowed, or you're sneakily dialling up via your mobile? [added 11th Feb 2004]
    Ronan said AvantGo is allowed as, apparently, PocketPC users have little control as to when Syncs happen. So AvantGo accesses are not counted in Internet access logs if these are checked. Slight loophole in the policy, methink. Still, not complaining! [added 12th Feb 2004]

    [Add a comment]
    Monday 09 February, 2004
    #[linkfarm] The C# Design Process: A Conversation with Anders Hejlsberg
    [Add a comment]
    Sunday 08 February, 2004

    A guy ran through the crossing in front of me this evening. He wasn't going especially fast, and then pulled up outside Sainsbury's. I hoofed it down the road and caught up with him.

    Me: Red lights not apply to you, mate?
    Me: Red lights not apply to you, mate?
    Him: What?
    Me: You just ran through the pedestrian crossing when the lights where red.
    Him: I did?

    His surprise seemed genuine. He appeared to have not noticed the crossing, nor the fact the someone on the opposite side from me was on it at the time he drove through. If I hadn't picked up on his unchanged engine note, I would have started crossing too. Would he have noticed me, if I had not noticed him?

    I'd expected a more aggressive reaction from him on being challenged, not a mild show of "oh silly me" surprise. I'd always assumed that the people running the crossing, jumping the lights or whatever, where largely motivated by selfishness and aggression. It didn't seem possible that people could fail to see a pair of traffic lights, but apparently they can. Perhaps the nation really is asleep at the wheel.

    planetcutie said Oh good. As I type this he's probably in the process of being hired as a road safety instructor.

    I'm not saying all problems would be solved by having cars banned from the road, but... [added 8th Feb 2004]

    smellygit said I just (minutes ago) came within about 18 inches of being carved down by some idiot burning thru a red light on a 3 lane road when the other 2 lanes were stopped. He stopped half way over the crossing when I shouted - looked at me - then carried on. Too shocked to get his number though.

    Ban cars ! [added 13th Feb 2004]

    [Add a comment]
    Friday 06 February, 2004
    John Cowan, XML big-brain, says
    Since 2001 I have been working sporadically on a new parser written in Java that, instead of parsing well-formed or valid XML, parses HTML as it is found in the wild: nasty and brutish, though quite often far from short. TagSoup is designed for people who have to process this stuff using some semblance of a rational application design. By providing a SAX interface, it allows standard XML tools to be applied to even the worst HTML.
    I would love to have the time to port this to C++ and give Arabica HTML eating capabilities.
    Terris Linenbach [e] [w] said .. how is this different from HTML Tidy? [added 9th Feb 2004]
    They do similar jobs, but Tidy doesn't present a SAX interface. Looking at it, it has more of a DOM like interface, slanted towards HTML. TagSoup on the other hand, lets you process HTML as if it were XML. [added 10th Feb 2004]
    Terris Linenbach [e] [w] said As you've commented before, there isn't a standard SAX interface in C++, nor is there a way to implement one.

    An interface for SAX sources is even more obscure.

    So I assume whatever you build will be for a specific implementation, such as an abstract class that you define, so that this HTML parser can send events to it, and the events look like SAX events on the other end of the conversation.

    Fun project. [added 10th Feb 2004]

    Almost, but not quite. Arabica, right now, provides the same SAX interface to expat, libxml, MSXML and Xerces. You configure the library to use one of them, and after that it doesn't matter because everything looks the same. You can also build Arabica to support multiple parsers. Then, if you write code for one parser, you can convert to another simply by changing say expat_wrapper to msxml2_wrapper.

    Porting something like TagSoup would mean writing something that implemented the SAX::basic_XMLReader interface. After that, you could drop it in and everything would just work.

    There are examples of this kind of thing in CPAN, where there are Perl modules to present all kinds of things as SAX sources. There are probably Python examples too. [added 11th Feb 2004]
    Here's a cool example:

    Screenscraping HTML with TagSoup and XPath - http://www.hackdiary.com/archives/000029.html [added 11th Feb 2004]

    anonymous said Hm.. Why didn't you do the same thing with the DOM? Why did you implement DOM yourself? libxml already supports xpath 2.0. [added 13th Feb 2004]

    [Add a comment]
    #Bettie Page Bio-pic Trailer
    From: Jez
    To: Pete
    Subject: Bettie Page Bio-pic Trailer
    It's what broadband was invented for.

    From: Pete
    To: Jez
    Subject: re: Bettie Page Bio-pic Trailer
    There is a god ...

    [Add a comment]

    Chariot Of The Gods

    The original book of ancient-astronaut craziness in a cheesy mid-70s Corgi edition? For only one of your English Pounds? Extra amusement points for being on sale at the Birmingham Buddhist Centre? How could I resist?

    Actually, if you see von Daniken on the TV or hear him on the radio, he doesn't sound like a wide-eyed crazyman at all. He seems at least as sensible as James Lovelock when he explains Gaia or as methodical as Fred Hoyle describing how he came to round to the idea of panspermia. In the current frenzied political atmosphere, he certainly makes more sense then the explanation for going to war in Iraq. Footle around legendarytimes.com for more fringe-pseudo-science fun.

    [Add a comment]
    Thursday 05 February, 2004
    # Note to self: When going swimming in the morning (or indeed anytime) try not to snag pubes in drawstring of swimming trunks.
    smellygit said you could allways wax 'em - that would solve the problem ;)

    And before you ask - no I don't [added 5th Feb 2004]

    [Add a comment]
    Tuesday 03 February, 2004
    #At the park
    The Bean and the geese
    This took me all of ten minutes, including Googling for and downloading the software. I was going to have another go round to make the joins a bit neater, but I cba.
    [Enormous version]
    smellygit said ahh wide is good, like


    The camera shows you the previous pic in the sequence on half the screen making it easier to line up. [added 3rd Feb 2004]

    [Add a comment]
    #[linkfarm] Wayland's Forge
    [Add a comment]
    #[linkfarm] ``ed" Editor
    [Add a comment]
    #[linkfarm] GNU nano
    [Add a comment]
    #[linkfarm] PTGui is a Graphical User Interface for Panorama Tools, Helmut Dersch
    [Add a comment]
    # US bans timed-honoured typeface - In an internal memorandum distributed on Wednesday, the department declared "Courier New 12" - the font and size decreed for US diplomatic documents for years - to be obsolete and unacceptable after February 1.
    Courier New 12 is my second favourite font, after Courier New 10.

    [Add a comment]
    #[linkfarm] FreeTTS 1.2beta - A speech synthesizer written entirely in the JavaTM programming language
    [Add a comment]
    #[linkfarm] The Festvox project aims to make the building of new synthetic voices more systemic and better documented, making it possible for anyone to build a new voice.
    [Add a comment]
    Monday 02 February, 2004
    #[elsewhere] French obviously, but super.
    [Add a comment]
    << January 2004 March 2004 >>