meyerweb.com

Skip to: site navigation/presentation
Skip to: Thoughts From Eric

Migration Patterns

I’ve fielded a few questions about my experience migrating from Movable Type to WordPress, so I thought I’d address that subject for anyone else who might be interested.  I didn’t migrate from Movable Type.  I’ve never run Movable Type.  Okay?  That’s not saying anything for or against MT.  I’ve just never used it.

What I was using before setting up WordPress was a completely hand-built system where I authored entries in an XML format of my own devising, in which every entry for a given period (say, all of 2004) was sitting the same file.  Once I wrote a new entry, I’d pour the XML file through a set of XSLT scripts to generate the latest posts, monthly archive pages, and RSS feeds.  This was accomplished with some dirt-simple shell scripts I’d put together.  Here’s what the main script looked like:

#!/bin/bash
MONTH="$(date +%Y%m)"
echo $MONTH
xsltproc -o latest.html xslt/latest.xsl archive.xml
xsltproc -o rss20.xml xslt/rss20.xsl archive.xml
xsltproc -o rss091.xml xslt/rss091.xsl archive.xml
xsltproc -o $MONTH.html -stringparam chunk $MONTH xslt/chunker.xsl archive.xml

Anyone familiar with xsltproc will see what I’m doing at a glance.  For the rest of you, here’s a quick explanation.  The first xsltproc... line runs xsltproc using the script at xslt/latest.xsl (relative to the shell script) against the file archive.xml, writing the result to the file latest.html.  That’s it.  Nothing very fancy, but it worked well enough when I created the system.

Why did I abandon my loving crafed system for an installable package?  A combination of factors, any of which would not have been enough on its own.

  • The monthly archives were starting to get too heavy.  For example, the archive page for March 2004 is 88KB, and that doesn’t count any style sheets, images, or other external resources that would have to be loaded on top of that.  Back in the day, a month’s worth of posts would be maybe 15KB of HTML and text.  Heck, all of my posts from 1999 and 2000 total a whopping 32KB of HTML source.  My total posting from December 1999 through 2001 is about the same amount of data as the posts for March 2004.  So I needed more flexibility in terms of post archiving, which meant things like per-post archives, which I didn’t really want to have to try to support via XSLT.
  • I wanted to offer post commenting from time to time, and also have a system that managed pingbacks and trackbacks.  I had very little interest in figuring out how to implement my own commenting system, so weblogging software was my best choice.
  • An ability to search through the post archives was something I wanted to add, but for some reason I don’t want to do it through Google.  I’m still not sure why… I just don’t.

So why did I migrate to WordPress, specifically?  After looking at a number of packages, I decided that WordPress just fit me the best.  I still don’t like having to go through a Web interface to write posts, as I’ve gotten very used to authoring in BBEdit, but that was going to be a hurdle no matter what.  (And I do often write up a post in BBEdit before simply pasting it into the Web interface.)  Here are some specific reasons:

  • By default, WordPress generates valid XHTML files.  Thus, the process of adapting its code to generate the valid HTML I wanted was a lot less painful than it would have been with a package that doesn’t generate valid markup by default.
  • Similarly, WordPress is set up to handle site presentation via CSS, so it was a trivial matter for me to replace their default styles with my own.
  • I like that WordPress is not only open source, but users are encouraged to hack on it and share their hacks, which I’ve already started to do.  This was enough like a hand-built system to make me happy.  I think of it as a stock car that I can tune and tinker with to my heart’s content.
  • The new “Import via RSS” feature in WordPress 1.2 made sucking all of my back posts into the system really, really easy.  I just had to create a full-content RSS file containing every post I’d ever written—pretty easy, given that I had them all stored in XML—and then point the RSS importer at the file.  Well, two files, actually, but it still made the whole process very smooth.  It read the publication dates, categories, and everything else of note in a matter of milliseconds.  In fact, it was so easy I felt no regret about blowing away my test-site import and doing it again for the public site.
  • It certainly didn’t hurt that one of the primary forces behind WordPress is Matt Mullenweg, a fellow GMPG founder, so I knew that if I really got stuck I could ask him for help.

So that’s why I switched away from my home-brewed system and onto WordPress.  So far, aside from the occasional bouts of swearing at obscure MySQL and PHP syntax, neither of which has been anywhere near as migrane-inducing as XSLT syntax was, I’ve had no significant reason to regret the change.

Now you know… and knowing is half the battle.

17 Responses»

    • #1
    • Pingback
    • Fri 2 Jul 2004
    • 1539
    Received from my weblog » Found a link

    [...] under: General — site admin @ 10:39 am Found the link to this demo blog at Eric’s Archived Thoughts. Cool! [...]

    • #2
    • Comment
    • Mon 17 May 2004
    • 1703
    Geof wrote in to say...

    Ain’t it fun?

    • #3
    • Comment
    • Mon 17 May 2004
    • 1743
    John Y. wrote in to say...

    For the record, there is one piece of blogging software (that I know of, at least) which allows you to compose in a text editor: Blosxom. Not my cup of tea, and I seriously doubt that you’d switch over at this point, but for what it’s worth you might want to take a look at it.

    In short, you upload your post as a text file and it runs a perl script to smack the template around it. It’s a little more complex than that, but it’s the basics. Take a look.

    • #4
    • Comment
    • Mon 17 May 2004
    • 1941
    Jonathan Greene wrote in to say...

    Not sure how you aggregate feeds on your end, but if you use NetNewsWire Pro, you can post through it… You can also post through Ecto. In both you use the MoveableType API and set the blog ID to 1.

    • #5
    • Comment
    • Mon 17 May 2004
    • 2026
    James Sumners wrote in to say...

    Interesting. When you mentioned that you were migrating to a new system I wondered what you were doing before.

    Personally, I just wrote everything from scratch and have implemented features as I have felt a need to have them. I just recently implemented searching and I think I have a possible reason for not wanting to use google. Using google to search a personal site removes the personal touch, which you wrote about previously. Using your own search function you can integrate it in to the site and keep the personality intact.

    • #6
    • Comment
    • Mon 17 May 2004
    • 2326
    Peter Gallagher wrote in to say...

    Dear Eric,

    I’d like to second the comments from John Y. on Blosxom. For you and any of your readers who like to edit in BBEdit (or similar) Blosxom has the advantage of allowing you to save all of your posts in the a plain or marked-up text format locally or on a remote server using the file system to store and organize the data. It will spit-out RSS if you want. But plain text is so mobile between formats that there are minimal problems about mobility between HTML, PDF, LateX, word-processors etc.

    In fact, I use the Textile markup format (which is *nearly* plain) and save directly from BBEdit to my website when I’m ready to post… As simple as possible.

    Best wishes,

    Peter

    • #7
    • Comment
    • Tue 18 May 2004
    • 0747
    Trent wrote in to say...

    An online demo for WordPress can be found here. Log in with username ‘admin’ and password ‘demo’.

    Now, I have a question for fellow WP users: do you maintain a “development” system to test changes to stylesheets and index.php? Sometimes I find it hard to keep my development system in sync with my “production” system, especially when dealing with links. How do people here test out new CSS and designs for WP before going live?

    • #8
    • Comment
    • Tue 18 May 2004
    • 0849
    Daniel wrote in to say...

    Trent, I’m running MT, not WordPress, but the principle for a development area would work the same. I have an Apache virtual host set up on my Mac (dead simple under OS X), which is running an install of MT identical to what’s on my live web server. I’ve cloned the web directory structure to my localhost, too. Any changes are fiddled with at the local level, and when I’m ready I simply copy the templates, images, includes, etc. over to the live server. This way I can feel out exactly how my tweaks run in a real-time server environment without jeopardizing my live site.

    • #9
    • Comment
    • Tue 18 May 2004
    • 1007
    Seth Thomas Rasmussen wrote in to say...

    Why do you prefer HTML to XHTML for your site? Also, is XSLT something one could dabble in fairly casually, or is it a rather involved process? Thanks! :)

    • #10
    • Comment
    • Tue 18 May 2004
    • 1535
    markku wrote in to say...

    Funny thing, everyone starting to use WordPress these days is accused of switching from MT. It’s like a huge swarm making a long overdue move to a new colony. :)

    Regarding CSS and design changes: I test on my desktop, then upload to my host. Then see a mistake I should’ve seen earlier, edit again, upload again… You know the drill. :)

    • #11
    • Comment
    • Tue 18 May 2004
    • 1551
    Eric wrote in to say...

    Seth: see the meyerweb FAQ for an answer to the (X)HTML question. As for XSLT– it routinely made my head hurt. Badly. I don’t know whether I would be considered a casual dabbler or not, but the stuff I did seemed difficult and clumsy, and I often found that even simple things became rather involved. But that could just be me.

    • #12
    • Comment
    • Wed 19 May 2004
    • 0938
    Paul G wrote in to say...

    Trent, I usually save a static version of the page I want to edit, then turn around and upload the file to a non-public folder on my site, mainly so relative references stay intact. Then I copy my stylesheet to the same folder and use Crimson Editor to make changes directly to the file on the server (gotta love Crimson Editor). Once I’m happy with the changes, I back up my old stylesheet and copy the new one back into the main folder.

    Seth, as someone who uses XSLT on a semi-regular basis, I’ll say that for basic stuff like sorting lists and reorganizing information, it’s very easy, I think a casual dabbler could figure that out fairly easily. However, for more advanced transformations and filtering, it quickly turns into a headache and I’ll ususally just write a C# program or a PHP script to do what I want, as that will often be faster.

    • #13
    • Comment
    • Tue 25 May 2004
    • 0023
    mBoszko wrote in to say...

    Curiously enough, I’m in the process of moving to WordPress from MT, but only after moving to MT from PostNuke (trying to do too much with it), and before that to PostNuke from b2– which I liked best in the first place, but it looked like development had died. Little did I know that someday b2 would be reborn into the open-source WordPress.

    Anyway, glad to know I’m in good company. Now, if we can just get SmartyPants to power the typographic engine, and get someone to create WP-Amazon, I’ll be all set.

    • #14
    • Comment
    • Wed 16 Jun 2004
    • 1645
    Alexis Bellido wrote in to say...

    Hi, I had made the switch from MT to WordPress just a couple of days before and posted some of my comments about it on my own blog. Regards!

    • #15
    • Comment
    • Wed 16 Jun 2004
    • 1645
    Alexis Bellido wrote in to say...

    Hi, I had made the switch from MT to WordPress just a couple of days before and posted some of my comments about it on my own blog. Regards!

    • #16
    • Comment
    • Fri 9 Jul 2004
    • 0511
    Mark J wrote in to say...

    Anyway, glad to know I’m in good company. Now, if we can just get SmartyPants to power the typographic engine, and get someone to create WP-Amazon, I’ll be all set.

    May all your wishes come true:

    WP-Amazon
    SmartyPants for WP (included with WP Textile 2.x.x)

    • #17
    • Pingback
    • Tue 1 Nov 2005
    • 1059
    Received from Content Management Your Way // Ordered List by Steve Smith

    [...] nt Management Your Way I just finished reading Eric Meyer’s post about his switch to WordPress, and I thought I’d thro [...]

Leave a Comment

Line and paragraph breaks automatic, e-mail address required but never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Remember to encode character entities if you're posting markup examples! Management reserves the right to edit or remove any comment—especially those that are abusive, irrelevant to the topic at hand, or made by anonymous posters—although honestly, most edits are a matter of fixing mangled markup. Thus the note about encoding your entities. If you're satisfied with what you've written, then go ahead...


May 2004
SMTWTFS
April June
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Sidestep

Feeds

Extras