Devigner blog about development and design

Octopress: My Thoughts So Far

A week or so ago, I got rid of my dedicated server and handed the clients off to a friend who’s managing the hosting now. It’s a breath of fresh air for me after hosting client sites for the better part of a decade. During this change over I decided to take my sites over to rackspace (this site and gregnewman.org). This was the perfect time to resurect this site. I had done an almost two year experiment to see if mixing code and art in a blog would suffice. It doesn’t. And may warrant another post down the road sometime.

I had been running 20seven off Movable Type for many years and figured it was time to kill it. I wanted something simple so I opted for a static site generator. There’s a lot of good one’s out there. I won’t go into the specifics but my friend Rich Leland wrote a nice post detailing the strenths and weaknesses of most of them. Octopress is what I settled on. Not sure really why, aside from the great logo. Day two and so far I’m impressed.

Ease of Setup

Setting up Octopress was very easy and painless. In all, the setup took less than ten minutes, including importing Movable Type data. Deployment took a little longer but that’s due to having to setup the server.

If you have RVM installed, you’ll need to install Ruby 1.9.2. Macs ship with Ruby 1.8.7.

rvm install 1.9.2 && rvm use 1.9.2

Clone Octopress, cd into the directory and use Ruby 1.9.2.

git clone git://github.com/imathis/octopress.git octopress
cd octopress
rvm use 1.9.2

Install the dependencies

gem install bundler
bundle install

Install this theme that I’m using for the next few days

rake install

That’s the extent of the setup of you’re starting from scratch. There are some configurations for the blog that I won’t cover here but it’s pretty straight forward. There are also a hand full of handy plugins that ship with Octopress, to include disqus for comments.
Look in the docs to find out more and since Octopress is based on Jekyll you can check out some of their documentation as well.

Movable Type Import

I had a lot of posts to import from Movable Type. I setup my database locally and ran the script provided by Jekyll to import the data.

I first had to install the sequel and mysqlplus gems

gem install sequel mysqlplus

Then the import was painless

ruby -rubygems -e 'require "jekyll/migrators/mt"; Jekyll::MT.process("database", "user", "pass")'

There are a number of importers to include Wordpress, Drupal, Typo 4+, TextPatter, Mephisto, Blogger, Tumblr and Posterous. The [Jekyll docs[(https://github.com/mojombo/jekyll/wiki/Blog-Migrations) have all the info.

Syntax: Markdown or Textile

Since Octopress supports textile and markdown, all my old posts were brought in flawlessly. I always used textile, but thankfully I can now write posts in markdown though.

Writing Posts

Posts are simple to write. Just save the file in the _posts directory with the extension of .markdown or .textile and save.

rake generate # generates the html from markdown (or textile)
rake preview # to view it locally before deploying at localhost:4000


I won’t go into all the deployment steps. That really depends on where your hosting and what support you have. I’m using Rsync which was cake to setup and deploying is as simple as writing a post and running the two commands to refresh 20seven.org.

rake generate # generates the html from markdown (or textile)
rake deploy # makes my blabber available to the world

Octopress also supports Github pages and Heroku out of the box. If you’re using those platforms for blogging, you can’t go wrong.

What I like about Octopress

I’m tired of having to fudge with databases or coding my own blog platform. It’s much easier to just write a post and serve it up in static files. Why? Because I have the posts in plain text format that are stored in a github repo. No worrying about problems. If something happens, I just redeploy.

Also the fact that the time expense was so small it’s really refreshing. I would say I had no more than an hour total (with server setup) to get 20seven.org back up and running. Now I’m not a fan of the design, but I can fix that later.

Also, Sass/Compass is built in so that’s another plus for css.

What I wish Octopress supported

I wish I could write these posts in restructured text or better yet, orgmode files. That’s a small gripe and one I can live with.