Welcome To The New Blog

I spent the weekend putting together this shiny new weblog. It was quite an experience. Two days of package installing, page designing, server configuring, code wrangling, error figuring goodness.

Inspiration

There were a few reasons why I decided to spend days of my precious free time on this project. First off, my DNS was on a server at my dad’s house and, even though he’s a big shot network guy, a single cable modem is a pretty serious point of failure. It was definitely time to get it out of there. I decided to move my DNS records to my domain provider’s site.

Second, I wanted to set up an infrastructure for hosting web apps (all part of my plan for world domination — more on that in another post). Back in the day I hosted my own web apps on an extra server in my apartment. In this age of virtualization, however, that doesn’t really make any sense. The cost of the electricity to run a server at home is only slightly less than the cost of a modest hosting account. Couple that with the noise and bother of maintaining a server and it’s a no brainer to use a hosting provider. In my case I decided to grab a cheap Linux-based shared hosting account at GoDaddy.com for the time being.

Idea 1: Ruby on Rails

I’ve been reading up on Ruby quite a bit lately and had done a bit of puttering around with it. It’s an interesting language. I’m not sure it’s completely up to all of the hype it’s gotten recently. On the other hand, I haven’t spent a lot of time outside of the C-style world in a long time so I thought maybe it was time to dive in head first. Of course, the real draw of Ruby is Rails and so I went looking for some blog software that worked with Rails. A quick search revealed that Typo seems to be the default answer.

The first step was to grab a copy of MySql. It installed flawlessly on my Vista laptop. I’d already installed Ruby and RubyGems so I used Gems to download a copy of Rails. Hats off to the folks at the Gems project. What could have been a mess of dependencies was no more than a single command line and a bunch of yes/no questions.

Finally I downloaded Typo. I spent a good bit of time trying to get it to run with Rails default web server, WEBrick but to no avail. Finally I got a copy of Mongrel and voila, Typo came up in my browser. Hooray! I signed into Typo’s admin interface and began setting things up. One of the features of Typo is the ability to notify you of new posts and comments via Jabber. I have a Google Talk account which is compatible so I enabled it. Boom! Everything was broken with no apparent way to disable the feature. It appears Typo originally used the Jabber4R libraries but because of some breakage had switched to XMPP4R. Apparently, however, this new library is not license-compatible with Typo and so they don’t ship it in the box. So I downloaded XMPP4R and installed it. No luck. Finally I just dove into the Typo code and commented out the Jabber calls.

At this point I had a semi-working Typo installation. It seemed to fail intermittently and then come back mysteriously. Whatever. I was willing to ignore it for the moment. I spent a little time in CSS land making the site pretty. Finally it came time to import my old posts from the old blog. Seems Typo has a script for that. Excellent. I exported my old posts and — darn it — the script can only import directly from a Wordpress database which, of course, I don’t have access to.

At that point I gave up on Typo. It’s a shame because I really like the AJAX architecture which would nicely support some of the new features I’ve been thinking about. Maybe I’ll look at it again in the future.

Idea 2: Wordpress

After a few hours sleep I came back and decided to use Wordpress for the new blog. I knew it would import my old posts, I knew it was pretty well-designed, and it had a fancy one-step installer at GoDaddy. Sweet.

I logged into my hosting account (Note to GoDaddy: Do I really need a separate password for my billing account, my hosting account, each application, and each database? You guys need a directory. Go talk to Jackson. He’ll hook you up.) I followed the breadcrumbs to the Wordpress installer. It didn’t work. Something about an invalid database configuration.

No matter. I created the database manually (Note to GoDaddy: Why do you name your databases after the first user added and not allow a proper name?). I downloaded Wordpress and uploaded it to my hosting space. I edited the config file to point to the new database. I ran through the Wordpress admin wizard and voila, a brand spanking new Wordpress installation. Hooray!

My next step was to import my posts from the old blog. Everything seemed to go OK but none of the links to other blog pages (archives, categories) seemed to work. Oddly, this resolved itself when I went back a few hours later. Weird. Perhaps it was still processing the import.

Finally, I wanted to get a local copy of Wordpress working on my laptop so I could work on the look and feel offline and get some workflow going for updating the live site. I already had MySql going locally so that was a plus. I chose to install this version of Wordpress directly on my local instance of IIS7 rather than the more common choice of Apache.

The last thing I needed was a local install of PHP. I downloaded it and tried installing. The first install didn’t work due to permissions on my Program Files directory. Rather than fight with that I followed the recommendation to simply install it in my inetpub directory which is permissioned correctly by default. Next I configured the PHP ISAPI filter for IIS. The last thing to do was to get the MySQL extensions for PHP configured. I modified the php.ini file to enable these extensions and once again hit a wall. After much Googling and fighting I finally figured out that PHP was looking in my %windir% (i.e. C:\Windows) for the ini file. Maybe there’s a way to tell it to look elsewhere but I don’t know it. Adding directories to the path didn’t help. No matter. I copied it and restarted IIS and voila, a working local Wordpress installation. Hooray!

I spent the next few hours back in CSS land putting together the look and feel of the site. Next I added the Google ads (they’re here on a trial basis). Finally I uploaded the new theme to the live site and I had what you see here.

Next Steps

I still have to add my custom code to source control. I’m considering setting up a Subversion repository on my hosting account. Also, I expect there will be a bit of futzing with the look and feel. I plan to offer Atom 1.0 feeds exclusively and those are not part of the default Wordpress install. My blogroll and del.icio.us sidebar menus are still missing. Finally, I expect I will add some static content to the non-blog portions of the site.

Conclusion

So there you have it. A professionally-hosted, offsite, standards-compliant blog complete with development workflow in a kajillion easy steps. Simple.

7 April, 2007 (19:17) | Tech

Comments

Pingback from My Blog Is Dead. Long Live My Blog. « On The Other Hand
Date: April 8, 2007, 9:07 pm

[...] My Blog Is Dead. Long Live My Blog. 8 04 2007 I’ve moved my blog from Wordpress.com to a new hosted instance.  You can find it at http://blog.brentrockwood.com.  I’ve gotten the ball rolling with an article all about the migration process. [...]

Write a comment