TNL.net is designed for modern browsers but the content is still readable in older ones. If you want to ensure the best experience, please install a browser that was developed after 2009.

tnl.net

On the WordPress move

After many years of using my own blog soft­ware, some­thing I had writ­ten myself and tended to over the years, I finally threw the towel in and decided to upgrade. Here are a few things that I learned in the process.

Mak­ing the Decision

The first, and prob­a­bly tough­est, part of this migra­tion was to actu­ally make the jump. This site, and every bit on it, is some­thing I’ve care­fully crafted over the years. Up to recently, I could proudly say that every piece of code on the site was some­thing I had writ­ten myself. It was a point of pride and, while blog soft­ware was still new, it was also a way to exper­i­ment and go deep into the code. Over the years, though, soft­ware plat­forms have got­ten more and more com­plex and my own code failed to keep up.

The sec­ond part of the deci­sion in mak­ing the jump was also due to my focus on spend­ing more time writ­ing. How­ever, this was bal­anced by my need to tin­ker with the code. As time went on, it became more and more dif­fi­cult to fig­ure out where I wanted to experiment.

Last but not least in that deci­sion was the fact that every­thing I was build­ing was my own but not some­thing I could really share with any­one. Time and time again, peo­ple asked me how I imple­mented a par­tic­u­lar fea­ture on my blog and I had no way to deal with this than to pass the whole code, ugly com­ment­ing and all, to them.

Last month, the main drive on TNL.net crashed, some­thing that appeared like a dis­as­ter at the time but was really a bless­ing in dis­guise. Hav­ing to rebuild the box, I decided that it was time for a mas­sive upgrade. First, I would upgrade the oper­at­ing sys­tem (TNL.net had been lan­guish­ing on an old ver­sion of Red­hat Linux 7.3 for so many years due to some bad sys­tem design deci­sions I made when I moved to Linux a few years ago). Hav­ing done so, I also decided to upgrade the web server (to Apache 2.0), the data­base (to MYSQL 5) and the pro­gram­ming lan­guage (to PHP 5). It was a major upgrade and, as is the case with every major upgrade, things started to break. I spent a con­sid­er­able amount of time bring­ing things back up and rein­tro­duc­ing tweaks that had built up over sev­eral years. It was then that I real­ized that maybe a dif­fer­ent approach was needed.

Who are the contenders?

Hav­ing decided that I would upgrade the blog to some­one else’s soft­ware, I had to estab­lish what fac­tors I would con­sider when build­ing the new site. From there, I built a quick list:

Hav­ing those require­ments made the choice con­sid­er­ably eas­ier, as it left only two major con­tenders: Dru­pal and Word­Press. In the end, I decided on Word­Press for purely visual rea­son: the admin inter­face just struck me as much more pol­ished so I went with it. Dru­pal had a geekier feel to it but Word­Press felt like a more fin­ished prod­uct (and here, I may show some bias for interface).

Start­ing the migration

The first step in migrat­ing things to move over was to fig­ure out what I needed to migrate. One of things I wanted to ensure was that any upgrade would have lit­tle or no impact on the over­all feel of the site. I’ve spent a con­sid­er­able amount of time tweak­ing TNL.net so it did not nec­es­sar­ily feel like a blog and so that the user expe­ri­ence was always as opti­mized as pos­si­ble, allow­ing peo­ple to get to any con­tent within only a few clicks.

First Chal­lenge: Look & Feel

This pre­sented some chal­lenges: the first chal­lenges was in keep­ing the inter­face con­sis­tent. Most blog pack­ages come with a set of skins or themes that are used by begin­ning users. I, how­ever, set out on a path to change the whole look and feel to mir­ror exactly (pixel per­fect) the pre­vi­ous look of the site. This sent me down the path of theme devel­op­ment for Word­Press and I spent many hours learn­ing about the inter­nals of the sys­tem in order to make it do what I wanted it to.

The other look and feel chal­lenge was in the URL struc­ture of the site. For years, the URL struc­ture on TNL.net has not changed how­ever, I’ve always been bugged by some of the lim­i­ta­tions I had cre­ated for myself. For exam­ple, entries could not have the same title because I had cre­ated a sys­tem that pre­vented me from being able to do so. It seemed clever at the time but turned out to be a major design flaw. As a result, the URLs for every entry sat at roughly the root of the site. I wanted to make sure that any Google juice or other types of link­age would not break so I had to write my own rou­tine to redi­rect pages cor­rectly. This ensured that the URL struc­ture of old could still remain.

Sec­ond Chal­lenge: Data structure

In the process of writ­ing my own blog, I defined my own data struc­ture. I wanted to ensure that it would be fol­lowed in WP but it took some tweak­ing to get every­thing to map cor­rectly. How­ever, thanks to the RSS import­ing fea­ture, I was able to import most of the old entries with­out prob­lems. This, once again, was to ensure that con­ti­nu­ity would remain unbro­ken and that the site would still func­tion as it always did.

How­ever, a sec­ond chal­lenge was in import­ing com­ments. I’m still try­ing to fig­ure that one out as I’m work­ing on import­ing all the com­ments back into the new sys­tem. They’re tem­porar­ily offline but they will come back.

Third Chal­lenge: RSS feeds

A sub­stan­tial amount of TNL.net reader never visit the site: they get it via RSS. This pre­sented a new chal­lenge as I wanted to ensure that they would remain mostly undis­turbed through this tran­si­tion. In the process, though, I decided to move to a new model that would ensure they never have to worry about such URL changes. I redi­rected all the feeds to new URLs (http://feeds.tristanlouis.com/TNLnet for the excerpts feed and http://feeds.tristanlouis.com/TNLFull for the full entry feed) which are now pow­ered by Feed­Burner, allow­ing me to get a bet­ter under­stand­ing of who my read­ers are while help­ing migrate them from one plat­form to another. In a sense, Feed­Burner is now serv­ing as a migra­tion tool while at the same time pro­vid­ing me with a new URL schema that I could take any­where I want.

Con­clu­sion: A pretty seam­less transition

All and all, while it was some work to get most every­thing work­ing, the tran­si­tion has been pretty good so far. I’ve gained a fair num­ber of new fea­tures and am still explor­ing how the sys­tem works. It seems to be much more fea­ture rich than any code base I devel­oped so that’s another great relief. On the down­side, I feel a lit­tle sad to let go of a large chunk of code pow­er­ing the site (the TNL.net blog was pow­ered by a 90k PHP file which will soon be cleaned up). I’m still con­sid­er­ing adapt­ing the old code to deal with the front end of TNL.net but, all and all, it looks like Word­Press will be my blog­ging tool of choice… until I decide to switch again.

Originally published on May 29, 2006 in Personal, Technology . You may find related thoughts pieces under the following terms: , , , , , ,

  • Robert True­man

    I agree that word­press is a really good pack­ages
    and I was able to add the plug in with no problem.

    with the new plu­gin to install the update­sis great.
    I just upgaded 20 of the one i have run­ning in about
    20 min. That was install the plu­gin then the upgrade.

    I have started a blog com­mu­nity to help peo­ple to
    get there post on the blog and set up the plug ins.

    If you like to pro­gram then what a bet­ter way than to
    help with word­press grow.

    So Happy Blogging

    Rob