Somewhat in relation to my last post on my search for new a webhost, I've switched from Perl-based MovableType to PHP-powered WordPress. The connection between hosting and the weblog script switch isn't really obvious, but it will be once I tell you that the server "admin" on the dedicated server that I'm currently on (and sharing with several other guys) showed me that MovableType was causing MySQL load to spike. Not to mention the recent rash of comment spam, a particularly bad case totaling over 400 comment spam from a single source. I can imagine how the rebuilding frenzy brought the server to its metaphorical knees.

Screenshot of WordPress website banner


And that, my friends, is the technical reason I'm being booted from that dedicated server. I was spitting curses when requests to the codefront.net domain were redirected to a "suspended" page yesterday. It turned out that the server admin suspended my account intending to bring it back up, but forgot to. Anyway, I have been refunded my pre-payment for the next 5 months hosting (plus 1 month from July to August), and given my walking orders. So I am now looking for alternative hosting. Of course I don't think I was being fairly treated, but I'm not going to argue my case here. My advice to you: if you share a dedicated server with several peeps, make sure you appoint a server admin and pay him for it. Have agreements (preferably in contract form) on what would cause account suspension and termination.

Having put that aside, let's go back to the much more interesting "switch".

WordPress. Ah written in a language I can understand. And having to tweak certain things to keep this blog as it was when running on MovableType made me delve into the source. And I realize that being based on b2 (another weblog script) has meant that WordPress has a lot of cruft to clean up. But working on a nightly build (2004-08-04), I could see that the developers are hard at work cleaning and firming up the code.

The main beef I have with WordPress is the way it has everything running of a single index.php page. Well, there isn't anything really wrong with that, but having it this way makes the code a little more complicated when you have to differentiate between a single blog entry page and, say, a category page (which lists several entries and is sort of an index page). WordPress has this is_single() function to tell you which situation you are in. Which is good, except that it isn't exposed to users. I had to look at the source code to discover that function. I'm not sure if it's meant to be exposed, but here I am using it because there doesn't seem to be another way to determine which of the 2 contexts the page being displayed is in. Let me know if I'm wrong here.

Anyway, I'm so glad I persevered and made the switch. It was tedious because the dedicated server was sometimes borked (there were times when FTP didn't work, shell access definitely didn't and Apache seemed to have gone down too) today. But other than that, being able to read and understand the source code of WordPress is a very, very uplifting feeling. It makes me want to contribute as a developer.

In short, I'm happier because:

  • I can read PHP code.
  • No more nasty long rebuilds.
  • Visitors can comment with speeds 100X faster (non-scientific estimate). And no more double-postings too.
  • A very nice and fast admin control panel.
  • Comment spam doesn't bring the server down as easily as for MovableType.
  • There's a neat "Post Slug" field that you can use to define each entry's URL. For example, this entry has a URL ending with "movabletype-to-wordpress" instead of "the-other-switch-from-movabletype-to-wordpress". Frequent readers would have noticed by now that I like long titles.
  • I feel like I can contribute to WordPress (if they'd have me). That is a good feeling because I've always wanted to write some MovableType plugins but never got around to it because of my fear of Perl CGI (I can do Perl string manipulation pretty well, just not CGI).
  • Fast is good!

Time to submit some bugs to WordPress Mosquito.