10 Year Blogoversary!

10 years ago today, I posted my first blog post on this site. That’s pretty much forever on the internet, and I think it probably also makes me old. A lot has changed in the last decade, both on this website, and for me personally (and the world at large). Let’s have a quick look shall we?


When I first created this website, I was using a little tool called blosxom to manage the blog. It was a tiny little Perl script that pulled the contents of your blog from text files on your filesystem. Pretty awesome, nerdy stuff. Dented Reality also looked something like this, pretty hot huh?



Blank File Bug Fixed

I’ve finally figured out a bug in the current development version of webpad that meant once in a while I’d somehow overwrite a file I had previously been working on with a blank file.

Turns out that it was because I was reloading webpad in a window which I had previously used it, so the session (containing filenames etc) was still active. When webpad loaded, it was triggering the ‘save’ operation, and saving the now-empty main window as the file I was previously working on. All I’ve done is make it so that you can’t write a blank file now — if you want to delete something, you should be using the delete operation in the file dialog anyway.

One step closer to release! Blogs are still a sticking point tho… how/what to support on Blogger.com/MovableType is the thing holding me up. Complete blosxom support is already in there, and works wonderfully – I’m using it to maintain my blogs and website. The Blogger Atom API sounds really ugly and excessively complex, but I’ll let it stabilise a little more and then have a proper look at it I think…

If Not For The Blogs

webpad development is coming along very well, and the UI is streets ahead of version 2.0, with a collection of really useful little extras, some great new features and some bits and pieces that just make life a lot easier while using the program. If it weren’t for the blogging functionality, I’d be this close to releasing a beta version of 3.0 Personal Edition.

Incidentally, adding the functionality for the fantastic blogging application, blosxom was completely trivial, care of it’s wonderful use of the file system of the server that it’s hosted on. In effect, blosxom blogs within webpad are represented as alternate home directories, and use all the same file access operations as the normal server actions do – excellent!

Check it out and get yourself a copy of blosxom if you’re running a blog, it’s the best thing out there if you don’t mind a bit of hackery and custom mods 🙂

blosxxxom – it’s not porn

In amongst all the talk of the Atom API (which might one day actually be released and usable) and RSS, and with me working on some XML/XSL things at work, I realised that there’s probably another option entirely with blosxom as far as templates/flavours/themes goes, and it goes a little something like this;

Three Xs, therefore blosxxxom, that’s one for blosxom (Apple’s OSX), one for XML and one for XSL, which are the three technologies we’re dealing with here.

  1. Install the theme plugin for blosxom and get it working (this plugin makes life much easier!)
  2. Now create a new theme, with a suitable name (mine’s called ‘blosxxxom’ for the sake of the experiment, and it looks like this; page.blosxxxom. This theme should create a valid XML document from your posts.
  3. Your XML output should refer to an XSL stylesheet, which will actually take care of doing the formatting, entirely client-side (style.xsl in my example theme file)
  4. In the XSL file, just use normal XSL processing instructions to handle the output and presentation of the XML document into XHTML!
  5. Point your browser to blosxom and tell it to use the flavour name that you used to create this theme, and you should be able to see what the output looks like. View the source of the document and you should see the plain XML produced by blosxom 🙂

Now, for a couple notes;

  • I made my content_type value in the theme text/xml, but this forced blosxom to encode special characters to be nice for me. I found that it was better to comment this section of the main CGI out so that I could drop the values in, and wrap them in the CDATA tag seen in the XML theme.
  • Rather than worry about what’s in the body much, I just wrapped things in a <![CDATA[ tag ]]> to be safe.
  • Mozilla doesn’t currently display my output properly – it’s not doing links (or any tags) properly, and it’s just showing them rather than interpreting them as HTML. Anyone got any ideas on this one?
  • There’s more to be done, but it’s a fun point to start at, and there’s no reason why you can’t add things like a COMMENTS element to your STORY node, or a KARMA, a META node with a series of elements – it’s pretty free-form if you’re only doing the XML for your own presentation needs!

Hope that’s inspired some people to try some things out that they might not have otherwise tried, and if nothing else, it just demonstrates how flexible blosxom really is! 🙂