psst.. this blog is on hiatus.

My curt goodbye to Movable Type

I had a fantastic rant planned. I was going to trash Movable Type, my former blogging platform. I was going to rip it apart, throw it on the lawn and set it on fire. But alas, I just don’t have the energy.

That’s right. I don’t have the energy. Many of you know me as a prolific ranter, an inclination (or failing? or talent?) in full display here at the jotsheet. But there comes a point at which one’s frustration moves beyond the pale. To dedicate the time to write a suitable, all-encompassing rant would only exacerbate the problem.

I’m not angry anymore. I’m just kind of sad. I mean, I wasted a lot of time on that Movable Type shit. I’m past the denial and the anger; I’ve quietly accepted the trial that was Running a Large Blog Using Movable Type™.

I’m not angry about the 10 minute rebuilds or the 90 second post times. I’m not angry about the 30 second page load times for the admin interface (well, Dreamhost might have been to blame for that, too). I’m not mad that MT’s plugins are less extensive, less flexible, less interesting, and harder to install than WordPress’. I can look past the fact that building a CMS on Perl is, uh, probably not a great idea. I’m okay with the fact that much of the MT enthusiasts from 2003 have moved on to greener pastures. I’m all right with Six Apart placing a commercial license on the creaking mass of Perl code known as Movable Type.

But I do have a couple of things I’d still like to get off my chest, before I put this puppy to bed for good.

Dynamic publishing in Movable Type is a dirty, dirty lie

Jay Allen, oh Jay Allen. How you lied to me. Remember when you said…

Yes, Virginia, Movable Type 3.1x does have dynamic publishing. And it rocks! By switching some or all of your templates to dynamic publishing, you can drastically cut down or eliminate the time it takes to get an entry published or to rebuild your whole blog.

See, the thing is, I talked to Virginia too, and she told me dynamic publishing in Movable Type is a big steaming pile of hippo shit. With peanuts mixed in. I was a pretty freakin’ advanced MT user in my day and I couldn’t get that dynamic mojo workin’ after tinkering with it one night for, oh, 3 hours. How’s a normal sap gonna do it? Eh, Anil?

The lesson of entry_basename

I’ve got just one more piece of MT dirty laundry to air. This is a little story about a field called “entry basename.”

Long ago, most MT blogs had an ID-based permalink. A post might have the URL http://somewhere.com/blog/001293.html. Some enterprising and adventurous bloggers were unhappy with this arrangement and instead changed the permalink configuration to the use the title of the post, e.g. http://somewhere.com/blog/this_is_the_title.html.

An even smaller group of people, myself included, wanted complete control over the permalink structure and used a plugin to get a completely configurable permalink, e.g. http://somewhere.com/blog/custom_permalink.html.

A couple of years after this all went down, Six Apart caught a clue and built into Movable Type 3.2 the ability to specify a custom permalink. (It was there in MT 3.0D but worthless.) The new field was called “entry_basename,” and if you set your entry_basename for a post to “custom_permalink”, it would get the same URL as above. This change was put in by Six Apart to give users more control over the publishing of their blogs, but with the caveat that its intricacies were best left to advanced users:

[I]f you edit the basename of a published entry, it will very likely change the published filename, hence breaking incoming links to the entry.

Armed with this information about entry_basename, I was pretty confident approaching my conversion from MT to WordPress. My thought process was simple:

1. Move my permalink setting into the “entry_basename” field. (Using the custom permalink plugin, it had been stored in the “keywords” field.)
2. Export from MT.
3. Import into WP.

I ran into just one little problem: Movable Type doesn’t export the information. That’s right; they went to all these pains to give their beloved users complete control over permalinks—and even warned with a wagging finger that we ought not to change the entry_basename after publishing, lest we “break incoming links”—yet they didn’t bother to include the field in the export.

This made the field utterly useless for someone in my position, converting from MT to WP, but what’s a heckuva lot worse is what’s happened to MT users switching installations: they lose all their permalinks. For example:

  • Joe builds a blog in Movable Type, version 3.2.
  • Taking note of the fancy new entry_basename field, Joe customizes the permalinks of his blog entries.
  • Joe decides to move his website to a different host.
  • Joe is pleasantly surprised to learn that he cannot export from Movable Type 3.2 on his old host and import in Movable Type 3.2 on his new host. Everything breaks.
  • Joe gives up and moves to WordPress.

The saddest part is that Six Apart knows all this. They acknowledged it in July 2005 and still haven’t bothered to fix it:

Warning: Currently, the export format does not include the basename field. This means if you use this method and you then export your entries, when you import them into a new weblog your assigned basenames will not be carried over.

I’m afraid I still can’t wrap my head around it: Six Apart adds a feature to give its users more control, warns them to be careful not to break links with it, and then provides no way not to break links with it. And they don’t warn their users upon export. And they’ve publicly acknowledged (albeit buried in a note on sixapart.com I spent 20 minutes looking for) the technically minor problem for 14 months yet haven’t done a thing to fix it.

I just don’t understand.

Conclusion

This isn’t a rant. It’s really more of a plea: If you’re thinking about starting a blog, avoid Movable Type. If you’re on Movable Type now and still have a small number of posts, get out while you can. If you’re on a big Movable Type blog—I can pick you out because you fall asleep in your chair during the rebuilds—then pray.

Oh, and one more thing. Six Apart, over the past couple of years, I’ve become intimately aware of your damage control strategy. You troll the blogs looking for criticism of MT and come hat in hand to the comments section, professing to love MT users and blogging and free expression and open source and kittens and Perl and everything else.

Well, don’t bother coming here.

Anil, Ben, Mena, Jay (and Virginia), and anyone else at 6A: do your PR elsewhere. Find another sap to get on MT. Do some database backups at Typepad. Hell, rip off MSN and MySpace and make a new CMS. (Oh wait, that’s Vox.) Just don’t bother me.