Before I resume general blogging, here are some notes and observations from moving my blog from Movable Type 3.3 to WordPress. If you are considering WordPress for your blog, you may find this interesting.
Printer-friendly versions. For those of you wondering what happened to printer-friendly versions of my blog posts, they have not gone away, just changed. Simply print whatever page you want. Ads, comments and text in the right two columns will not be printed. To see what I mean do a Print Preview. As part of upgrading, I decided that using @print Cascading Style Sheet commands was a more intuitive and better way to implement this feature.
Redirection. I felt it was crucial that links that used to work on MovableType still work in WordPress. I documented some of how I solved this in this post. In some cases, changing WordPress’s permalink structure did not solve my problem. I had to dig into the details of an Apache mod called mod_rewrite. Like many things about Apache, the syntax was a bit cryptic but I struggled through it. I discovered an undocumented “feature” that WordPress will periodically rewrite part of your .htaccess file between the “# BEGIN WordPress” and the “# END WordPress” lines. Once I put my mod_rewrite redirection commands before the “#BEGIN WordPress” line, my redirection commands were no longer overwritten. I had to redirect both my category and newsfeed links using mod_rewrite. I also had to edit a number of blog posts to correct URLs to my tag libraries.
Widgets vs. Plug-Ins. Widgets are objects that show some form of content which you can drag and drop into your sidebars. Plugins are programming extensions that add to or change the behavior of WordPress. Widgets require no programming, but plugins generally require a certain amount of programming skill to integrate them into existing templates. While I am a competent programmer, I found that if I looked long enough I could do it faster and easier with a widget. Go with widgets if you possibly can.
Things I like about WordPress
- Administrator Interface. It is much easier to navigate its administrator interface. The tab and sub-tab metaphor is so much more natural than Movable Type’s combinations of menus and tabs.
- Themes. The number of ready themes for WordPress is staggering and they look good. There are clearly many first class artists out there anxious to show off their talent. Even better, they are all free! I had a hard time choosing between them, but eventually settled on the Andreas-04 theme by Tara Aukerman. I chose it primarily because it would look familiar, but was classier than what I had (which in itself is quite a complement).
- Plugins and Widgets. Like with WordPress themes, there seem to be an almost unlimited number of these gizmos that will extend and customize WordPress. The hard part is finding the one you need. Some only work on earlier versions. Some are a bit flaky. With a couple of exceptions, I was able to find a plugin or widget for each of my complex needs.
- Pages that are not posts. I like the fact that I can use the editor to create pages that are not posts. The “About” page in the top right corner is an example. This gives me a way to put up relevant information like “I am going on vacation for a week” without it being treated as a blog post. If Movable Type had such a feature, I missed it.
- Blog post editor. Finally, a WYSIWYG blog editor. I may have to stop using MS Word to compose my blog posts. In addition, adding objects like images is done by simply pressing a button. Sweet.
- Blog post protection. You can password protect a post so only those who know the password can read it. I also understand you can create communities of users who are privileged to read certain categories of posts. I do not need this feature but it is nice to know it is available.
- Emails to all subscribers. MT 3.3 could not do this.
- Search. Text search is built-in and very fast, unlike MT 3.3, which was unnaturally slow. Moreover, there is nothing to program. Just drop the search widget in on one of your sidebars and you are done.
- User accounts. I like that users can create accounts and see versions of the blog. Users can also be granted special privileges.
- Dynamic text generation. Finally, the end of static pages. Blog content (except for specially designated permanent pages) are rendered on the fly. Static pages simply add overhead and reduce flexibility.
- Blog hiding. With one button, you can hide your blog from search engines.
- PHP based. PHP is much easier for the layman to program. So if you need to tweak or extend WordPress you do not necessarily have to be a rocket scientist to do it.
Things I liked better in Movable Type
- Archive and category management. In MT, archives and categories by default will show all entries. In WordPress, the number you get in an archive or category is the number that you allow displayed on your index page, which are typically 10 or 15 posts. I hope WordPress eventually fixes this limitation. Meanwhile, you can use the Different Posts per Page plug in that will give you equivalent functionality. However, WordPress does allow archives and categories to be placed on sidebars by dragging the widget to the spot you want.
- Tags. WordPress seems to have a bug in that it cannot distinguish between a tag and a category when they are named the same. MT does not have this problem. In general, tags are better thought out in MT, perhaps because they are brand new to WordPress. MT will suggest tags to use if you type part of it on the command line. This is more intuitive.
Useful Widgets
- Daiko’s Text Widget. This is very useful because you can embed PHP code inside it yet drop the widget into a sidebar. It became my solution for showing “The Best of Occam’s Razor” posts in my sidebar.
- AdSense Manager. This widget made adding Google Adsense code very straightforward. Its only limitation is that there appears to be no way to tell it to display ads only on certain pages. I would prefer to hide ads on my index page.
- Creative Commons License Widget. This widget made it easy for me to add my licensing information without hard-coding HTML.
- Get Recent Comments. In MT, I found I had to code some template tags to show my recent comments on my blog pages. With Wordpress, I just used this widget and I could place recent comments on all my pages.
- Subscribe2. Handles advanced email notifications. With the Subscribe2 widget, you drop the control on your page. With it, your readers have much more flexibility. You can unsubscribe (a feature not available in MT 3.3) as well as select to get emails only for certain categories.
Useful Plugins
- Akismet. The Akismet plug in is a godsend. It redirects comments and trackbacks through the Akismet spam engine, which seems to be a foolproof way to ensure spam does not affect your blog. Akismet is so essential that it is built into WordPress. However, it must be enabled. To enable it, you first need to get an Akismet key by creating an account on the WordPress site and then enable Akismet spam filtering on your blog. If you do not bother you will soon wish you had.
Sphere: Related Content
October 25th, 2007 at 10:11pm
Posted by
Mark |
Technology |
no comments
I hope to change my blogging software to WordPress within the next month. Currently I am using Movable Type to host this blog. I would like to say I am a loyal Movable Type customer, since I have used it for the nearly five years I have been hosting this blog. However, since its license allows me to use it for free for personal use, I never actually bought the software. That is not to say I have not given its owners, SixApart, some money. I needed to buy support when I re-hosted this year in order to make the dynamic publishing feature work. That cost me $50 and made me start wondering if I wanted to convert to WordPress, which serves all its content dynamically.
No, I stayed with Movable Type not necessarily out of loyalty, but mostly out of convenience. Just as after a certain point it is hard to move from Quicken to Microsoft Money because of the hassle of retraining, so it seemed easier to stay with Movable Type than work my way through the myriad issues associated with moving from one blogging solution to another.
Nonetheless, I am taking the plunge. I recently received an announcement from SixApart informing me that Movable Type 4.0 was ready. It extolled all its wonderful and latest features. Did I really want to upgrade and spend the considerable time learning how to use all these new features, particularly when I would not use most of them? Should I stay with Movable Type 3.3 until it gradually deteriorated into irrelevance? On the other hand, should I bite the bullet and move to what most of us non-commercial bloggers use today, which is WordPress?
Since yesterday was a holiday for me and being geeky looked more appealing than weeding the garden, I took the plunge. Installing WordPress, an open source blogging solution, turned out to be painless. I had to create a new MySQL database instance (easy enough to do in phpMyAdmin), copy the files over to my web server, edit a few settings in a configuration file, and then run the installation program. Installation time: about 15 minutes.
Next step: move 700 plus blog entries and 400 plus comments from Movable Type to WordPress. After digging through the WordPress documentation, I discovered I had to export my entries in Movable Type then import them into WordPress. It was relatively straightforward. Total time: another 15 minutes.
Unfortunately, by default all my WordPress posts will have URLs that are completely different from the URLs generated by Movable Type. All those search engine links would become obsolete meaning that Google might unlist my blog again. This would not do, so I went hunting through the documentation to find out how to solve the problem. Blessedly, WordPress has a way so that you can create a customized path and post names for your entries. I could make the resulting URLs look just like on Movable Type. Problem solved?
Not quite. There was a significant number of impedance issues resulting from blogging for five years with Movable Type. For one thing, until mid 2005, Movable Type limited entry name URLs to 15 characters. (Before that, entry names were numbers, like 000001.html.) Therefore, if your entry was titled “This is a long entry name” the resulting URL was “this_is_a_long.html”. If you wrote another entry with a similar name Movable Type would make sure you didn’t reuse the same name, so the next one was “this_is_a_long_1.html”. During one Movable Type upgrade, this limitation went away so I allowed entry name URLs to be up to 50 characters long, but this still left hundreds of entries where the entry name URL was truncated at 15 characters. In addition, WordPress puts dashes where blank spaces would be in your URLs. Movable Type substitutes underscores. I followed the helpful online advice but still had hundreds of mismatched URLs. Eventually, in frustration I wrote a little PHP script that identified the mismatched URLs. I also came up with a strategy for fixing discrepancies in the 15-character entry name URLs. Many of these entries had underscores in the last character that had to be fixed. Most of these could be fixed with one SQL statement.
When I make the switch to WordPress, my individual entry and monthly archives should now match correctly. Category archives though are not so simple. Had they been stored under /category/archive_name it would be straightforward but I have them under /archive_name. I am still pondering how to solve this one. The most expeditious way seems to be to create symbolic links.
In addition, currently there is no way to move over my Movable Type entry tags. This is an issue that must be solved before I can migrate the blog. The good news is that by examining how tags are stored in Movable Type and WordPress, I think I have found a way to do it using SQL and PHP. I will be testing it when I have some spare time. Moving over the tags was not possible until I first had addressed the inconsistent URLs.
I know there are all sorts of other embedded URLs that will break that will need to be addressed. These include tag archive URLs, feed URLs and differences in the search interface. Then there is the look of the blog itself. There is no utility to move over Movable Type templates, so once rehosted in WordPress, this site will have to look a bit different. Fortunately, WordPress has hundreds of themes to choose from, and they are much easier to edit than Movable Type templates. My WordPress blog is a work progress and can be viewed here. If you have any feedback on the look and feel let me know.
Overall, WordPress is slick. The user interface is much more straightforward and feels more powerful than Movable Type. It is also wholly written in PHP. Movable Type started out as a Perl application, and in my current incarnation, it is a mixture of Perl and PHP. However, I understand PHP and loathe Perl, and I know that PHP is highly scalable. WordPress will be very fast and easier for me to customize with my own programs than Movable Type. WordPress, being open source, is unlikely to disappear. Both Movable Type and WordPress have plug in architectures, but WordPress has a huge user community. Consequently the selection of templates, plug ins and widgets is much greater. Moreover, it is likely that upgrading WordPress will be much more straightforward and less of a hassle than Movable Type. Therefore, I am confident this project will pay off in the end.
I thought there would be more users who had moved over their blogs from Movable Type to WordPress. While there are clearly some, the online documentation was inadequate. Therefore, I have been contributing to improving the documentation by adding my experience in the WordPress Wiki. While wikis have been around for a while, I am still taken aback that I can make changes instantly to their official online documentation and no one bothers to review these changes.
So I expect things to look a bit different around here within a month. One thing will not change: I will continue to set high standards for myself for all the entries I place here.
Sphere: Related Content
October 9th, 2007 at 09:26am
Posted by
Mark |
Technology |
one comment