The obvious revamp of my blog’s appearance also reflects a change of the blogging software underneath. I switched from Blojsom to Pylosxom. Both are based on the Perl-based Blosxom. The unifying principle of all three is that blog entries are stored as plain text files, rather than in a relational database like other, fancier packages (e.g. WordPress).
The main reasons for moving to Pyblosxom:
- The next version of Blojsom, v3, is moving away from a file-based data store to a relational database (Apache Derby). A simple blog-entry-per-file scheme is why I looked for something like Blojsom in the first place (easy to backup, easy to edit).
- My server is a virtual machine with 96MB RAM. Running a light servlet container (Jetty) for Blojsom takes 40MB – most of the free memory after all other services are running.
- I like finding “better” ways of doing things.
I originally tried Blosxom, but I found it frustrating to get the plugins I wanted running. I later reasoned that since Python is the “cool” language right now, Pyblosxom had a chance of being good and of progressing. Compared to Blojsom, some of what I like about Pyblosxom:
- Low resource footprint.
- Load times are much faster (related to the lower resource footprint).
- Tagging and Captchas, which were difficult for Blojsom, were easy.
The main features I miss from Blojsom:
- Integrated administration webpages that can also be used to post to the blog.
- Better XML-RPC support for various graphical blog posting tools. The only one that worked while supporting categories was Deepest Sender. Blogmailr, which I used to post to my blog via e-mail, will work only with Pyblosxom’s root category.
- More active development of the base and of plugins. Blojsom’s authour, David Czarnecki, is prolific. Blojsom is also the default blog server for Mac OSX.
- Better error handling. Pyblosxom’s logging is poor (most errors result in an HTTP 500 error and a generic message in the Apache logs), and something as simple as a malformed metadata line (e.g. specifying the tags for the entry) or a zero-byte file will cause unrecoverable errors.
- The Pyblosxom plugin MetaWebLog XML-RPC API creates new posts as sequentially increasing filenames – Blojsom created them based on the title of the blog post.
Overall, I’m happy with the result. Pyblosxom had a limited set of appearances to choose from. However, starting with the one I liked the most as the base, and with feedback from Firion, I was able to hack around with the plugins and CSS to get something I’m content with – for now anwyay.