|<< July 2004||September 2004 >>|
Off to sunny Norfolk (here's hoping anyway) to spend the weekend camping with Bean.
Update: Day at Cromer beach on Saturday with Ric and Sharon and their kids. Camping that evening, complete with quick bit of midnight stargazing. Gentle outing to Hickling Broad Sunday morning (disappointing lack of birds, but it's like dragonfly-world, Daddy). Drive into Norwich (complete with authentic getting-stuck-behind-a-combine-on-the-Acle-straight Norfolk experience), for an afternoon at James and Yvette's. Stroll up to St Benedicts for tea at Pizza Express. Drive back Monday morning.
Turn off the lights. Tweak up the volume. Play Doom3.
Scored (that's the only word for it) a copy of Doom 3 from chum Phil on Saturday afternoon. Had to wait until Nat went out on Sunday evening to install it on the laptop (it being the only machine in the house with sufficient grunt), then had to wait until this morning to actually have a go. It's very, very pretty indeed. Me like.
Me like lots.
Suspect when I get my new machine next month, I'll like it even more.
It's Caption this weekend, which unfortunately I'm not going to be able to attend. This year's theme is history, and in that vein here's a trump card from Caption '97.
Jam strips seemed to be exceedingly fashionable at the time, and this was my little comment on what I saw as a trend that produced absolutely no comics of any merit.
Being the irony-master I am, the trump itself is a jam comic. Panels are by Rik Hoskin, me, Davey-boy Metcalfe, Nige Lowrey, Tony McGee, the Andy we now call Andy Kronky-Kru but who was then known as Andy P.O.Box, Terry Wiley, Jeremy Dennis and Gav Burrows.
Drawn directly in ink with a Rotring Rapidograph pen, which I'd been given for my birthday the week before. Shortly after I managed to knacker it completely. I kept it for several years, cleaning it occasionally in the forlorn hope it would spring back to life. It didn't, and in the end I reluctantly admitted defeat.
Top trivia: Chris Askham once described this strip as the funniest thing he'd read in ages. No really, he did. (And once I dig out the proper quote, I'll show you. I'll show you all. It will be mine. Oh yes, it will be mine.)
From: "Mail Administrator"Since I don't email myself (not very often anyway), I immediately realised that this mail had come from an account that was used to send a large amount of junk email messages, probably because their computer was compromised and now runs a trojaned proxy server.
Subject: Message could not be delivered
Date: Wed, 11 Aug 2004 08:25:21 +0100
Dear user firstname.lastname@example.org,
We have received reports that your account was used to send a large amount of junk e-mail messages during this week. Probably, your computer was compromised and now runs a trojaned proxy server.
Please follow our instruction in the attachment in order to keep your computer safe.
The jezuk.co.uk team.
New ACCU Overload has just arrived busting with crunchy C++ goodness, including an article I cowrote with my programming chum Paul. Am suddenly feeling very aware of Abe Lincoln's Better to remain silent and be thought a fool than to speak out and remove all doubt.
Not that it's stopping us from putting in a proposal for next year's conference.
As to why? Why not? :) The other available implementations are tied to their DOM implementations, for a start. You can't use Pathan on anything other than a Xerces DOM, libxml2's XPath implementation wants to work with libxml2 DOMs, similarly MSXML.
Arabica doesn't build on those DOMs (primarily because they're all tied to custom string types or char pointers, involve ludicrous levels of resource management, are C based or whatever). So, if Arabica is going to get XPath, then it needs writing.
I wanted to do something with Spirit, just because it's cool. Despite the rather lengthy development period, getting the grammar up and going has only taken a few hours (8, 10 maybe) which is pretty fantastic. What's more, thanks to Spirit, you can validate it directly against the spec. If I'd been writing my own parser, I probably wouldn't have bothered.
I also wanted to work with Spirit, because I have this nagging thing at the back of my head that I should write a "native" Arabica XML parser sometime.
There's an educational aspect to implementing spec text and, as XML specs (sorry recommendations) go, XPath is one of the shorter ones.
I fancied doing it anyway.
I need it for work. Kind of. You never know what clients are going to ask you to do, or in what language. Having an ongoing C++ project stops the relevant brain muscles withering. I like working in C++ too - it's much more fun than anything else, even Python, and is just streets ahead of C# and Java.
Having said I would, I felt I couldn't not.
How's that? :)
I can't knock a developer for writing some code and I would have never known about spirit without you. However, in the meantime of waiting for XPATH support in Arabica, I switched over to xmlwrapp which only works with libxml, and that is a minus, but xmlwrapp exposes libxml's XPATH engine, which is something I couldn't live without in my timeframe.
One warning about XPATH: make sure you support namespaces. This is usually an afterthought and anyone who deals with documents that use w3c XML schema needs namespace support.
I think a new XML parser in C++ is needed. One that has a C++ interface and not a C interface. One that uses std::string for strings. One that doesn't consume so much memory. One that supports RELAX NG, w3c schema, and RDF. Arabica's API is a good start.
Added some more XPath expression classes for multiply, divide and modulus. At the moment, I'm testing all these things by manipulating them directly. Now I've got a little handful of classes, the next time I get a few minutes I hope to start hooking them up to the parser.
At the moment, I've got the parser on the one hand and these expression classes on the other. The parser chews through a XPath and, assuming it's syntactically correct, produces an abstract syntax tree (ast) modelling that XPath. The expression classes actually do stuff.
All I need to do now is join them up by walking the ast and creating the corresponding objects as you go. This should be pretty straightforward, as the ast nodes have a unique integer type id. By using a lookup table of type ids to factory functions, everything should more or less fall out. Then, as I add new classes to fill out the functionality I can just add them into the table.
Towards the end of the afternoon he matched to get some kind of handle on the scoreboard. He would inform me with great alarm that "now they've got 176 runs, Daddy". "The team we are on has got another wicket!", he'd shout as the scoreboard ticked on, failing to connect all the shouting and arm-waving the entire crowd had just engaged in. He's asked to go again, although that might be for the ice cream rather than the sport.
[Add a comment]
Still, lovely time, but didn't we shout a lot? My throat hurt for most of Sunday. Or is that down to the two fags I smoked? Probably. Forgot to remember I gave up.
|<< July 2004||September 2004 >>|