The upgrade to Movable Type 4.01 is complete. It looks like I was able to keep the current feeds intact. Even though Atom is now the “primary” feed while RSS1 and RSS2 are considered deprecated, I’ll still generate all three for now. Email me if you suspect something went wrong. While the new web theme is hardly inspiring, it doesn’t completely suck (after a bit of tweaking). And if you’re curious about some of the technical details of the upgrade, keep reading.

I’ve been using Movable Type for over four years, now, back before WordPress, and back before it was commercial. What originally drew me towards it was the fact that it statically generated all pages and used SQLite as the back-end database. Ironically, this is why I again chose Movable Type.

When I first started using Movable Type, it’s permalink system was badly broken. I was able to fix it with a couple of hacks, but MT fixed both of these issues by version 3.2, I believe. The only reason I hadn’t upgraded sooner was because MarsEdit didn’t support setting the permalink URL (what MT calls “basename”). As I had been using MarsEdit since it was part of NetNewsWire, and I didn’t want to port my Short Title Plugin to 3.x, I was stuck with MT 2.65 and MarsEdit 1.x. Just recently, MarsEdit 2 came out, and it allows setting the URL via the “slugs” field. With all the pieces in place, it was time to upgrade. And as a bonus, I can now write my posts in Markdown.

The main reason I can still get away with statically generating the pages is because I don’t allow comments. The original reason for “no comments” was pretty simple: I didn’t want to have check for new comments and respond to them (this was before comment spam even existed). I figured people would just email me if they had something important to say, and they did. I’m glad I didn’t allow comments, and I’m sticking with that decision going forward.

Without comments, statically generating the pages makes a lot of sense. The pages only change when I make an update, which is quite rare (as compared to the number of page hits). Why spend CPU cycles generating the same content over and over again? Yeah, caching could make this less of an issue, but still, why bother? And static HTML files means it’s fast. Only Apache gets involved. No scripting language and no database. It just needs to serve bytes off of disk. This is how I could get away with such a measly server for so long. Even when traffic increased, I never had to deal with “Cannot access MySQL” errors. It just worked.

Since the database is only accessed when the pages are regenerated, using a full client-server RDBMS like MySQL or PostgreSQL is really pointless. Running one of those would be an extra admin headache and a waste of server resources. I’m glad MT has never dropped support for SQLite, and I will continue to ignore WordPress until it does support it. While I did briefly consider using a Rails-based blogging system (as Rails has good support for SQLite), I decided that deploying a Rails app was just too much of a hassle. So far, I think I’ve made the right choice. I’m happy with MT4, and I hope it gives me another four years of hassle-free blogging.