Older blog entries for tagishandy (starting at number 9)

CPAN v DTD (spoiler: CPAN loses)

I need to parse a DTD. Specifically I need to parse this DTD:


It’s quite a well known one. Certainly there’ll be a module on CPAN that can parse it. Let’s have a look.


Looks promising, comprehensive. Unfortunately it fails with an error which is eventually tracked to a misspelled method name. So much for test coverage. Fix that and it throws a bunch of warnings that cause a rapid loss of confidence. No matter, let’s try…


It’s a “quick and dirty DTD parser”. Hmm. “I’m too lazy to document
the structure”. Nice.

“Since version 1.6 this module supports my “extensions” to DTDs. If the DTD contains a comment in form…”

Maybe I’ll come back to XML::DTDParser…


SGML? That’s got to be good, right? SGML is the daddy. Every fule no that. Unfortunately it doesn’t really seem to have much of a Perl interface. It’s all about translating DTDs to XML. I might be able to use that. I’m getting desperate.

I’ll take a quick look at the test suite for a confidence boost. Here’s one:

    # Before `make install' is performed this script should be
    # `make test'. After `make install' it should work as `perl


    # change 'tests => 1' to 'tests => last_test_to_print';    

    use Test::More tests => 1;
    BEGIN { use_ok('SGML::DTDParse') };                        


    # Insert your test code below, the Test::More module is use
    # its man page ( perldoc Test::More ) for help writing this

(I’ve cut the right hand side of the test off so it fits my stupid page layout. Don’t worry - you’re not missing anything good)

The other test is pretty similar. I’m not that confident now.


Running out of options. Let’s look at XML::ParseDTD. From the documentation it appears to rock. The test results say “2 PASS, 2 FAIL”. 50/50. So at least it’s got some tests, right? Damn right! Here they are in their entirety:

    #!/usr/bin/env perl -w

    use strict;
    use Test::Simple tests => 2;
    use XML::ParseDTD;

    my $dtd = new XML::ParseDTD('http://www.w3.org/TR/xhtml1/D
    ok( defined $dtd, 'new() returned something' );
    ok( $dtd->isa('XML::ParseDTD'), 'it's the right class' );

(Again I’ve cut the right hand side of the test off. Again you’re not missing anything good)

I’m momentarily impressed that it managed to score two failures with that. I’m about to find out how.

Never mind, the DTD URI in the test looks a lot like the DTD I need to parse. I’m getting close. I can feel it.

Unfortunately it has a dependency on Cache::SharedMemoryCache (why?) which in turn depends on IPC::ShareLite - which doesn’t install on my PowerBook. So now I need to fix / avoid IPC::ShareLite.

See kids: the great thing about CPAN is how much time it saves!

Syndicated 2007-06-01 16:41:57 from Hexten

iTunes 9006 error?

Is anyone else experiencing stalled iTunes Pro downloads? I’ve got a bunch of files stuck in the download queue. Every time I reschedule them - either pause / un-pause or restart iTunes - it tries for a few minutes to download them and then fails with a 9006 error.

iTunes 9006 errors

Syndicated 2007-06-01 14:46:30 from Hexten

iTunes Plus

iTunes 7.2 is out. iTunes Plus (DRM free downloads) is available. So I’ve made a purchase: Placebo: Covers.

Wow, it’s easy isn’t it? So nice to be able to enjoy the integrated iTunes experience without worrying about infesting my computer with DRM crippled media.

As Kirk McElhearn points out the files do contain identifying information that can be traced (trivially) back to you. That’s fine by me.

Syndicated 2007-05-30 19:17:23 from Hexten


I’ve just released a Perl interface to reCAPTCHA. You should be able to find it here:


At the time of writing the US mirror of search.cpan.org doesn’t seem to have updated for a few days so if you need it in a hurry you can also get it here:



Syndicated 2007-05-28 15:11:42 from Hexten

Citizen Journalism

I’d like to make it possible for local people to set up blog space on the Nenthead community site. They’d post local news stories and interesting ones would be promoted to a unified news front page. Kind of like Advogato but for non-geeks.

Is anyone doing this kind of community focused citizen journalism? I see Wikinews but that’s more top down than what I have in mind.

Syndicated 2007-05-25 13:39:41 from Hexten

Drugs house shut after complaints

Drug House

Blimey, the complaints must have been annoying if they had to resort to drugs.

Syndicated 2007-05-24 14:13:31 from Hexten

Bastard Linux Patent FUD

And then this:

“The point of the study was actually to eliminate the FUD about Linux’s alleged legal problems by attaching a quantifiable measure versus the speculation,” he said. “And the number we found, to anyone familiar with this issue, is so average as to be boring; almost any piece of software potentially infringes at least that many patents.”

Who said that? Dan Ravicher of OSRM - also known as the guy who wrote the report Balmer is quoting.

Via The Inquirer

Update: This dates from November 2004 (eWeek). As far as I know Ballmer’s still quoting the same report.

Syndicated 2007-05-16 16:48:44 from Hexten

Robber Barons

James Turner is pissed off about Microsoft’s patent sabre rattling - as we all should be.

At the end, there’s only one thing left to say. For shame Microsoft, for shame. You’ve twisted competition into a thuggish debacle that ranks right up there with the worst of the great robber barons. How ironic that Bill Gates is trying to reinvent himself as the great philanthropist. Andrew Carnegie took much the same route late in his life, as if it could wash away his sins. We can only hope that in a few years, Steve Ballmer will look as much a fool as Daryl McBride does today.

More here.

Syndicated 2007-05-14 17:56:08 from Hexten

I've been having trouble focussing my eyes for the past week. Turns out I have some kind of macular dystrophy. My right eye has a blurred and displaced area (about the size of my thumbnail at a range of 30cm) which makes bits of text bend and blur when I try to look directly at them. My left eye is fine but seems unwilling to help my right eye out - presumably after years of laziness.

Apparently I'm too young for it to be conventional macular degeneration. I think that's supposed to be a consolation of some sort. It's all a bit freaky given that I spend about 80% of my waking time staring at a screen. Can't do that right now for more than about half an hour without getting a headache.

The good news is that it happened once before about five years ago and either went away or my brain got used to processing the distorted image. This in spite of having been told it was both incurable and degenerative. Of course right now I'm using the eye-power I have reading whatever I can find about the condition.

So I guess I might be a little less always-on than usual. The effect is much less pronounced when I focus near infinity. That's an excuse to get out more if ever I heard one.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!