Moving to WordPress

After twelve years of using Movable Type, I have just moved the blogs on sunpig.com to WordPress. For some time now, Movable Type has been failing two of my three tests for choosing a piece of platform software:

  • Is it well documented? (Yes.)
  • Is it under active development? (No, at least not in its open source version.)
  • Does it have an active and supportive user community? (Not any more.)

I still like its architectural model of static publishing, and (partly because of that) it has a great security record, which is important if you’re running your own server. I’ve been using MT since version 1, and I’ve clung to it for sentimental and pseudo-practical reasons (“I know the templating language really well!”) for a long time, but the online world is a much different place now, and the fact is that compared to all other avenues for writing online, MT 5’s interface is poor, and I dislike using it. As a result, I don’t. I blogged less in 2013 than in any previous year.

OpenMelody was a fork of the open source version of MT 4, but it seems to be dead now.

I was considering using Jekyll, which is a modern static site generator: write posts in your text editor, run a site generator from the command line, and `rsync` the generated html files to your server. This has lots of good points: it generates static files, and it plugs directly into my standard text editor workflow — with version control! This is great if you’re a programmer and always have access to a machine with a command line. Not so great if `bundle exec jekyll build` makes you twitchy, or if you like the idea of occasionally posting something from your phone. Also, no matter how you slice it, comments end up as a crazy hack. I can see myself using jekyll for other projects, just not for our main blogs.

Ghost is new and shiny and looks like it pushes the standard blogging interface forward, but: node + sqlite. Really? They sat down and actually came up with that decision? Also, I mistrust an open source project that has a “sign up” link on its home page, but not a “download”.

Drupal would probably do the job, but my impression is (perhaps incorrectly) that it is more geared towards sites rather than blogs.

So… WordPress. Big community, well documented, under active development. Used to have a bad rep for security, but is a lot better than it used to be, and since version 3.7 even features an automatic update process to apply maintenance and security patches. It also has well-established guidelines and practices for hardening an installation. It’s “the standard” these days. I have a general preference for “off-piste” solutions, but sometimes I just want to go with something that “just works”. Mostly.

It took me a few days to prepare the migration. I pulled the trigger yesterday evening, and by the (late) end of the evening, the new Death Star was mostly operational. Today has been mopping up and housekeeping. And so far, I’m feeling pretty good about it.

The new shiny:

I put together a GitHub repository with my notes, preparation, and migration scripts in case anyone else might benefit from the experience: https://github.com/sunpig/sunpig-mt-to-wp. If you notice any problems, let me know.

Movable Type drops support for Safari?

I’ve been an enthusiastic user and advocate of Movable Type since version 1 in 2001. I can’t remember any statement from Six Apart that has shocked me more than this one, made by Jun Kaneka on the MT support forum on 9th December:

Just to be clear, MT5 should work fine with Safari. Actually, the UI designer mainly uses Safari to develop MT5.

On the other hand, supported platform is defined by
the platform which QA team conducts their test. It is now

* Mozilla Firefox 3.5 or higher

* Internet Explorer 6.0 or higher

He slightly elaborates on this on the MTOS-dev mailing list, also on 9th December:

That’s the difference between “Supported” and “Should work fine”.
I’m sorry that the System Requirements page on MT.org
is not precise on that part. We will fix it.

The System Requirements page for MT was last updated on 10th December. The “Web Browser” section currently reads:

As Movable Type is a modern web application which uses Javascript and AJAX extensively, it requires a modern web browser. We strongly recommend the latest version of the following browsers. Browsers are free and easy to upgrade!

The Movable Type is tested and supported on the following browsers:

  • Mozilla Firefox 3.5 or higher
  • Internet Explorer 6.0 or higher (We STRONGLY recommend the latest version).

Movable Type should work fine with other modern browsers, but is not tested with these browsers:

  • Safari 3 or higher
  • Opera
  • Chrome
  • etc.

As a web developer, I completely understand the difference between “supported” and “should work”. Yahoo’s Graded Browser Support policy, with its definitions of A, C, and X-grade browsers codifies this concept neatly. With limited development and testing resources it is impossible to fully support every browser.

But for a company like Six Apart to restrict their list to IE6+ and Firefox 3.5+ is mind-boggling. First of all, there is a huge contradiction between the two platforms they do support: IE6 is eight years old, used by a small and rapidly declining percentage of users, and is widely known as the least capable browser platform still in common use today; Firefox 3.5 is one of the most advanced browsers currently available, but it was released a mere six months ago. Secondly: no Safari. Safari is the browser of choice for the vast majority of Mac users, and enjoys significant use on Windows, too.

The only thing I can think of when I look at that list is: enterprise. Movable Type has now completely abandoned its former user base of hobbyists, bloggers, and geeks, and wants to concentrate on selling into the corporate market. The vocal minority of people who will be pissed off by the absence of official Safari support &mdash the trendsetters, the evangelists, the plugin developers, the tutorial writers — are not the people 6A is interested in reaching any more. To be honest, most of them left for WordPress, Drupal, or ExpressionEngine a long time ago. For several years now, Movable Type has been lacking in product momentum, community, and cool factor, but damn it, it’s a great product with a fantastic feature set, and it’s an awesomely stable platform on which to build a site.

But if MT is abandoning me (I’m writing this in Chrome — not Safari, but part of the Webkit family), I don’t think I can continue to recommend it any more, and this makes me very sad.

Movable Type 3.33, and associated FTP problems

Movable Type 3.3 badge-type thingSix Apart have just released a new version of Movable Type (3.33) which contains several patches for a bunch of potentially nasty security holes. Given the problems I had upgrading to 3.3 in the first place, I wasn’t exactly relishing the idea of another install, but security comes first.

And, just like last time: HTTP 500 server errors as soon as I tried to log back in afterwards.

It looks like my problem isn’t related to Movable Type at all, though, but instead to the FTP upload process. I had grabbed the .zip version of the movable type package, unzipped it locally, and then uploaded all the individual files to my web server. My FTP client is FileZilla, and the server is running NcFTPd. With FileZilla set to use multiple simultaneous connections (for a faster upload) it would occasionally transpose the contents of two files.

This is very ungood. Not only does this lead to the obvious failure situation where an app doesn’t work because its internals are screwed up (the HTTP 500 server errors I was seeing), but there’s also the possibility of a silent failure, where everything still appears to work, but all is still not well. For example, a file containing passwords could be swapped with a simple HTML file so that they become publicly readable (and Google-able).

Curiously, the transposing of files doesn’t seem to be entirely random. When I first noticed the phenomenon, I tried re-uploading the pair of files that had been switched, and they ended up switched again. It was only when I dropped back to using a single connection (menu: Queue -> Use multiple connections) that the upload worked properly.

A quick search on Google showed that although this is uncommon, it’s not an entirely unknown problem. A few people have mentioned this happening with FileZilla (here and here, for example), but this also seems to be an occasional problem with CuteFTP, too: see this forum post.

The fact that the problem shows up on multiple clients makes me wonder if it’s the server that’s at fault. Alternatively, both CuteFTP and FileZilla could be using a very similar, but subtly wrong piece of code to do multiple simultaneous uploads. Very curious. But at least knowing what has gone wrong will make me feel much more at ease when the next MT upgrade comes around.

Now running on Movable Type 3.3

Movable Type 3.3 badge-type thingBut just as with the upgrade to 3.2, this did not go smoothly. By following the parallel install method of upgrading I managed to get around the 500 server error problem, and was successfully able to run mt-upgrade under cgiwrap. This makes me think that my problem last year (and this year, too, initially) was something dodgy on my server rather than anything inherent in MT.

Once I got past the server errors, the actual upgrade script ran smoothly. However, I can’t say that I’m madly impressed by the new documentation (with a search option that doesn’t currently work), and the support forums were unavailable for all the time I was hitting problems. I like the new features in 3.3, but the overall upgrade experience has left me unsure as to whether a new release of MT is something to look forward to, or dread.

Update: I just noticed that Jay Allen posted a message to the Pronet mailing last saying that Six Apart was going to be doing some maintenance on its site over the weekend. This might be the cause of the forums outage. Maybe I just picked a bad time to do the upgrade…

Mac Switching update, Mon 26 Sep

Well, one of my major goals in working with the Mac Mini has now been achieved: I have a working local version of Movable Type up and running. My httpd.conf file is not as clean as it probably should be, and I’ve got permissions on my site and archive folders set to 777 because installing suexec or cgiwrap felt like a step too far at this point…but it’s there. Archives and indexes are building.

More:

  • I’m using Safari more and more, and getting to like it better. One thing I don’t like is that it uses the Apple+R keystroke to reload a page, rather than the IE/Firefox F5. I don’t like this because I’ve got Apple+R bound to Quicksilver, so I have to use the mouse to reload pages.
  • TextWrangler is turning into my default text editor. I like it.