I've been really happy with Movable Type overall. It's free, I like the administration interface and the templating system, and it has the (minimal, admittedly) features I need. Last night while trying to move lemonodor between servers, however, I ran into two serious obstacles, both of which led me to think a little less of Movable Type.
The first problem I ran into was that the process of exporting my existing database and importing it into the new Movable Type installation did not preserve the IDs of entries. Unfortunately, entry IDs are used to construct the URLs of individual posts, which means that all URLs anywhere on the web pointing at specific entries would point to the wrong entry. For about 5 minutes I waffled on whether or not this was acceptable, but then I found these instructions on how to work around the problem.
Modifying the Movable Type source, exporting, putting out-of-order entries back into order, and inserting dummy entries to preserve IDs took about 45 minutes of tedious emacs work. Export/import that preserves IDs/URLs seems like a pretty basic capability.
The next obstacle was that even after all that work, about 300 entries into the import process the IDs got out of sync anyway. Movable Type seemed to think I had an extra 5 phantom posts in my database.
This problem was due to a totally amateurish bug in Movable Type's export/import.
MT's export format uses lines of dashes to delimit fields and records. E.g.,
---------- AUTHOR: jjwiseman ID: 453 ----- BODY: ... ----- COMMENT: AUTHOR: jjwiseman EMAIL: email@example.com IP: URL: DATE: 01/23/2002 10:52:18 PM Well, I installed OS X. But it feels too clunky to use an MCL that only works in Classic. -----
Unfortunately there were some comments posted to lemonodor that included long lines of dashes.
-------------------- (setf foo bar) -------------------- (print :woo-woo) --------------------
MT's importer was confused by this and treated each line of dashes as a delimiter for a new post.
The very first thing I ask myself when designing a data format or protocol is “How do I ensure that I can save/transmit any data payload at all without getting it confused with the metadata that's not actually part of the content?” Not properly escaping dashes that appear in the body of posts or in comments is a real novice error.Posted by jjwiseman at March 08, 2004 05:44 PM