Saturday, 20 Oct 2007
Switched to Pyblosxom
No, I didn't fall off the face of the earth. I haven't posted because
I've been busy, and also had a case of the blog migration blues. If
everything has gone smoothly, the website should look exactly the same.
(Attention conservation notice: lots of boring tech detail below.)
In late July, I decided that I was tired of Blosxom and wanted to upgrade
to more modern blogging software, and perhaps even get support for some
cool modern features such as tags and comments. This is difficult because
I have some strange requirements.
Though my blog doesn't get many readers, out of principle, I wanted the
migration to be extremely smooth: no data can be lost and everything important
should remain at the same URL's and render the same way. That rules
out anything where I don't have complete control over the rendering.
I also like knowing my website is hosted on a rock-solid ISP, and I've been
very happy with pair.com's reliability and conservative attitude; though I don't
have any automatic monitoring, as far as I know, my site has never gone down,
and that's good enough for me. Lots of newly popular ISP's are unreliable and even major websites can have problems.
It's important that all my blog entries be in an open data format that's easy
to understand and modify. (That's why I chose Bloxsom in the first place, though
perhaps sqlite might also work.) Also, it needs to be open source so that
if anything goes wrong, I can fix it myself.
But since I don't use Perl much anymore, I wanted to switch to a language I
actually enjoy working in. I believe that having software that's open source
in practice (that is, I actually do know how to make changes easily) is
as important as being open source in principle.
I actually would have preferred Java, but Blojsom seems not to support static
rendering and you can't run Java servers using a shared pair.com account.
So, I went with Pyblosxom as my second choice. It has static rendering and
seemed to have a lot of plugins, and I thought it would be an easy migration
since it's based on Blosxom.
Well, the migration wasn't so easy after all. I've installed a few Bloxsom
plugins over the years, such as the one that remembers the original post date
and the one that provides the "more" link, that have no direct equivalents in
Pybloxsom. (There is a plugin repository for Pybloxsom that lists plugins that
look promising, but they are mostly broken. Apparently, plugin
maintenance is not the Pybloxsom community's strong point.)
Along the way, I realized that I have no real interest in writing blog
software for only myself anymore, and that Pybloxsom isn't especially well
written, and wouldn't it be nice to migrate to some more mainstream
blogging software and get out of writing blog code? So I looked around at
other blogging software.
It's rather surprising how non-pluggable blog publishing tools still are. You'd
think that the Atom standard would let you compose your blog posts offline in
a great editor, upload completed posts to a blog entry database hosted by
another vendor, and then render the posts as static HTML on a website
hosted by another ISP. And maybe when there's wider support for the Atom
Publishing Protocol, this will actually happen, but it's not there today.
Instead, each blog software vendor is its own silo with its own custom API
for plugins and very few migration tools.
So, I finished the port (since it was almost done) and I'm back online.
It looks like I accomplished my goal of a smooth migration, but there are no
new features, and I no longer feel like working on it. Maybe in another year
I'll take another swing at it. For the time being, back to writing!
respond | link |