How I finally started blogging thanks to Octopress

It is nearly the 6-year anniversary of registering itsjustcode.net according to whois: Record created on 23-Jan-2007, and I’m finally doing something with it.

Why did it take so long? I ask myself this question quite often actually.

Occasionally I think of topics that would be a good blog post, but never seemed to have the inclination to spend the time to set up the server. Primarily because I’m a code-monkey at heart I could never get on board with any of the usual suspects for blogging.

I work either in a terminal window at the command line or in a code editor. I write my notes and documentation in markdown or pseudo code, so even switching to a word processor to share documentation with ‘the business side of the house’ takes me out of my flow. I spend more time being frustrated with the interface than actually producing content.

GitHub tickles

A few years ago, when github:pages hit the scene, and introduced me to Jekyll, I really got excited. Finally, a code-centric approach to publishing content. Perfect, except for that pesky thing called design. Give me a design, and I can mark it up, but to come up with a design? Not my strength.

But now the spark was glowing again, I was wicked intrigued by Jekyll for blog publishing, yet there was still that pesky issue of configuration and design. So, I continued to think and not do.

Over beers with a good friend, the topic of blogging came up. He knows me well enough to know that I could easily get hung up on implementation details and he told me about Octopress. Somehow I had missed the memo.

Ignore the Yak

Brandon Mathis (@imathis) has put together exactly the right tool for bloggers with a serious technical bend. Thanks to his work on @octopress I can focus on writing blog posts and not on writing a blogging app.

To start blogging with Jekyll, you have to write your own HTML templates, CSS, Javascripts and set up your configuration. But with Octopress All of that is already taken care of. Octopress.org

The Awesome of Octopress

For anyone who is comfortable using git and the command line, you can be up and running in probably 15 minutes. Took me a bit longer, because I was busy poking under the hood and kicking the tires. And therein lies the awesome.

Content generation is as simple as creating a document in any text editor. Markdown syntax is the default, but you can change that to your preferred mark up syntax quite easily in the _config.yml file.

Since, Octopress was built to make using Jekyll easy, some simple commands exist to quickly create a blog post. How much more simple could it be than rake new_post["title"]? That creates your post using the Jekyll naming conventions. Then you open the file in your favorite text editor and the post meta data is pre-populated for you, just start writing.

“Octopress is a blogging framework for hackers.” As such, handling technical info is a breeze, making this an excellent option for keeping your development journal notes. Plenty of plugins come standard for sharing code snippets, including importing files directly from your filesystem. And, being so heavily integrated with GitHub, there is of course simple Gist embedding.

While it comes with a standard theme, which is what I am using as of the publish date of this post, there are third party themes available for Octopress. All the expected 3rd party plugins are available, and can be turned on with a simple entry in the configuration file.

Deployment can be as simple as rake deploy or git push if you’re using GitHub Pages or Heroku. Of course you can always use the old stand-by rsync if you have your own server or a hosting service that supports ssh. As you can see, Octopress was made with developers in mind.

Being Open Source, and available on github Octopress is a fantastic option for code-monkeys like myself. You can tinker with the configuration or deployment options, change out colors and themes, even build your own plugins. Brandon defines a very simple architecture that allows for customization while easily staying up-to-date with his releases.

With configuration files in YAML, posts written in markdown, simple rake tasks for publishing, and even a localhost preview server, blogging is now as natural as my normal workflow. I have no excuses to not continue.