When I started this blog, I chose a platform that would give me a site that looked fine out of the box so I could concentrate on the writing. Tumblr fit this requirement and even provided several nice features:
- Built-in search
- Organization with tags so visitors could easily find articles by category
- Easy integration with Disqus comments
- Built-in RSS feed for those who want to subscribe
- Automatic announcement of new articles to Facebook
- Easy integration with Google Analytics (for traffic statistics)
Now, a year later, I have more of a vision for what I want to do with the site and I’m ready to tinker a bit. Unfortunately, while there’s some flexibility in how a Tumblr site looks, but they don’t give you any real control. Ever since high school I’ve spent regular chunks of time writing code and bending computers to my will. I’ve done this as a professional software developer, as a research economist, and often just messing around. The last year has been less geeky than usual as I’ve concentrated on teaching and less technical research projects. It’s time to scratch my nerd itch.
I’ve chosen to switch to a particularly nerdy blog platform (Octopress) that requires using command-line tools, but it has the huge benefit of total control. Octopress is built on top of Jekyll which is written in Ruby and I can tweek it as much as I’d like. I’ve always wanted to learn Ruby and reading and modifying other other people’s code is a great way to learn a language.
In addition to Octopress/Jekyll/Ruby, this project gets me up to speed on several other modern nerdy technologies:
- Homebrew is a package manager for MacOS that lets you install all sorts of open source software including the latest version of Ruby.
- git is what version control will look like for years to come–it’s fast, collaborative, distributed, and flexible.
- Github is where all the coolest open source projects live these days. Any new software I write that I want to share will go here.
- Sass (Syntactically Awesome Style Sheets) is a powerful layer on top of CSS (Cascading Style Sheets) that allows for powerful adaptive layout of HTML pages.
While Octopress is in part an excuse to fiddle with new tech, it also feels very comfortable as articles are written in Markdown–a very lightweight text-based markup language that I lately find myself using for almost everything.
On the surface, the site shouldn’t look all that different, but beyond the engine being replaced, there are several subtle changes:
- A real About page
- Links up top for the main categories I tend to write about
- A search bar near the top of every page
- Quick links to my recent posts and my favorite posts.
- Much better layout for mobile devices
- Super-fast rendering since Octopress generates the whole site as static HTML which just sits on the server
Was it Easy to Migrate from Tumblr?
Two things helped a lot: The Octopress documentation is excellent and I already had all the articles on my local machine in Markdown. The only thing that was tricky was backwards compatibility as I wanted all my old URL’s to work and all my discussions to transfer over. I used the alias-generator plugin and a little elbow grease to make all my Tumblr URL’s redirect to my new URL’s.
Disqus (the service that keeps track of comments) says they will crawl your new site and use any redirects it provides to update their database. Unfortunately, while browsers can understand the redirects that the alias-generator creates1 just fine, the disqus crawler does not. So I had to create a csv file that mapped all the old URL’s to the new ones and upload that.
Announcements of new articles on Facebook are now handled by IFTTT. It will likely take a little fine-tuning to get these right.
What’s on the Horizon?
The primary emphasis of this site remains the text, but I do want to integrate a little more media–even just a few pictures here and there would be nice. I want the category pages to have their own looks. Beyond that, all I know is that I’ve now got the power to do anything. Should be fun!
Since the site is static, it can’t actually send HTTP 301 permanent redirects. Instead, the alias-generator creates HTML stub files for all the old URL’s with http-equiv meta tags containing the new locations of the URLs.↩