Older blog entries for dorward (starting at number 42)

Mail Merge

Vodafone sent me a letter recently (to the wrong address - they've got the billing address sorted now, but it seems the snail-spam is still going to my old home) to let me know that their deal with Sainsbury's was ending, so I wouldn't be able to collect Nectar points from my phone bill any longer.

This wasn't actually a big deal since I no longer shop at Sainsbury's anyway, but their letter does highlight the perils of using mail merge.

With your points balance of 496 on account number etc etc etc why not treat yourself to a shopping spree at Debenhams, Argos or Sainsbury's?

Well, the answer to that is very simple. 496 points are worth absolutely nada. If I saved up another 4 points I would be able to get the minimum denomination voucher worth two pounds and fifty pence! Yes, that's worth about half a cheap bottle of wine!


Finally got the old code ported to my new framework, so I can start adding new content again now. I made some changes to the layout while I was at it.

BitTorrent Adware

So, people are sticking spyware along with videos and putting up torrents. My goodness. Whatever next. I never expected anything like this to happen.

OK, enough sarcasm, seriously, if people are going to run executables without knowing who they are from and without running them through anti-virus and anti-spyware software - what do you expect?

I don't want to provide evidence that I'm human.

The recipient of the message you recently sent uses a anti-spam blocking system. We do not have your email address in our database as a human verified sender.

And you are not going to. I hate such conformation systems, and if Edgard Padilla wants to sign up to mailing lists and then plant barriers in them, then he is going to have to get used to not recieving all messages from them.

7 Jun 2005 (updated 7 Jun 2005 at 21:58 UTC) »


I put together an article on CSS Inheritance (An explanation of how inheritance works in CSS and why CSS doesn't need Object Oriented style inheritance) a couple of weeks ago. I think its ready to go public now, but any feedback people care to provide would be welcomed.


It is confirmed - I'm off to Braga this year.

I've just seen another mention of Google Sitemap, I wonder how long it will take for a Perl module to show up on CPAN for generating these?

Minus four days it seems. Google::SiteMap. Ah well, I'll add this to my TODO list for the CMS.

6 Jun 2005 (updated 6 Jun 2005 at 22:44 UTC) »


Serious progress? I made that impossible by suggesting it might happen didn't I?

I did force myself to make some actual progress on the CMS tonight, and have just finished implementing the SBuilder::PageType::Copy module. This is the simplest of the Page Types, and simply slurps a file and then returns it as a scalar, prints it to standard out, or to a file (either a default based on the database or a one specified as a parameter to the method). It doesn't do much but it does lay the groundwork for other modules (in that a number of the methods will be moved to a superclass).

Since the output can be to standard out or to a file, it makes it more convenient for use in a preview scenario (dynamically rendering resources while making edits with the CMS frontend).

My week without working on the CMS

Ah well, I did have an enjoyable week (after I'd sorted out the evil paperwork caused by one company sending me a nasty letter for not paying a bill they forgot to send me). A very enjoyable week as it happens, it even netted me a signed photo and a hug from the first actress I remember having a crush on (OK, so she hugged almost everybody at the open day, but it was still fun). How she puts up with geek fans I'll never know.

The Sky Has Fallen

Sarge has been released! Next up - Duke Nukem Forever.


Discovered ivman so now I can stick a USB mass storage device into my PC and have it automounted.


Added an about page for my bookmarks and linked to the RSS feed.

Since this is a bank holiday weekend, and I have people coming to stay for a few days on Thursday, I've taken the whole week off. I should find some time to make some serious progress on the CMS now.


Since I had a large chunk of code to deal with in my blog entry yesterday, I thought it might be nice to give Nvu another try. A graphical editor will make it easy to paste a block of code into a webpage and convert all the less than, greater than and ampersands into their respective entities, or so I thought.


The first problem was that it didn't appear to support the X clipboard. I selected the code in Emacs, then middle clicked in Nvu and ... nothing. "Oh well", I thought and tried to open the Perl in FireFox so I could Ctrl+C copy it. Nope. Firefox offered to download the file instead. Perl files aren't text (cough) so it won't display it.

Getting annoyed with it I saved the blog entry, opened it in Emacs, pasted it in and addeed a couple of <pre> tags and search/replaced the characters with special meaning in HTML. Then I reopened it in Nvu to type the rest of the entry.

Then wretched thing promptly removed all the literal line breaks from the <pre> block and replaced them with <br /> tags, thus giving me lines of several hundred characters that would be a nightmare to edit.

Nvu scores a big thumbs down.


To pass some time this afternoon I decided to move forwards with the CMS a little. Now I'm on Gentoo again I have managed to get Class::DBI installed and working, so I set myself a little project to begin to get to grips with it.

I've been keeping my bookmarks over at del.icio.us, and thought it would be nice to include the most recent ones on the site. I could simply parse the RSS feed and include it, but I also want to keep a backup. Out comes MySQL and Class::DBI.

First task is to extend Class::DBI very slightly so it knows about the database table.

package SBuilder::DB::Bookmarks;
use strict;
use warnings;
use base 'Class::DBI';
SBuilder::DB::Bookmarks->connection('dbi:mysql:not', 'in', 'public');
SBuilder::DB::Bookmarks->columns(All => qw/link title description date/);

Then we download and parse the RSS feed before inserting it into the database.

use strict;
use warnings;
use XML::RAI;
use LWP::Simple;
use SBuilder::DB::Bookmarks;
my $xml = get('http://del.icio.us/rss/dorward');
my $rai = XML::RAI->parse($xml);
foreach my $item ( @{$rai->items} ) {
    my $title = $item->title;
    my $link = $item->link;
    my $isodate = $item->issued;
    my $description = $item->description || '';
    my $db = SBuilder::DB::Bookmarks->find_or_create({link => $link});

I love Perl, it makes so many things so easy. At some stage I need to add support for del.icio.us tags, and suck the entire history of my bookmarks into it, but this is a nice start.

Having populated my database, I simply pick the most recent five and drop them into a template so they appear on my homepage.

19 May 2005 (updated 19 May 2005 at 15:10 UTC) »

Netscape 8

So Netscape 8 is out.

"The browser is like a hybrid car that combines the usability of Internet Explorer with the security of Firefox," Andrew Weinstein, a spokesman for America Online/Netscape, told Reuters.

The usability of IE? I've always found Firefox more usable. It sounds more like a hybrid car that combines the security and usability of Firefox with a Big Red Lever which turns that security off.

Biometric DVD Protection

Over at Wired there is an article about Biometric DVD protection. Obvious problems not mentioned in that article include:

  • Buying a DVD as a gift
  • Letting other people in the same household watch the DVD
  • Buying a DVD by mail order

This must be the most insanely stupid DRM scheme yet.

33 older entries...

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!