Gathan Beaga

playing with Octopress

Predictably, nothing much has eventuated thus far from my firm post-Webstock resolution. Whatever.

Even more predictably, I am now considering moving this blog to a new platform. I have my eye on Octopress.

Octopress is a set of Ruby scripts that more or less takes a folder of text files, in Textile or Markdown, on your local machine, converts them to HTML, wraps them in a nice template and uploads them – via rsync – to your webserver. There’s no PHP, no CGI; nothing has to run on your webserver. All the heavy lifting is done locally. This makes it pretty secure as blog platforms go, and better yet, it lets the webserver get on with very very quickly serving static files.

But the disadvantages of this approach over more popular systems such as Wordpress and Textpattern are many:

  • With no PHP or similar server side scripting available, there’s no built in commenting system. While Octopress does integrate easily with Disqus, a pretty nifty third-party comment service, I’d still be ceding content to a place not owned by me.
    • On the other hand, I get very few comments these days.
  • There’s no built in image processing services: no automatic thumbnail generation and the like.
    • On the other hand, I hardly ever need that kind of thing – I tend to use Flickr (though I want to pull back a bit there too).
  • Customisation of the built-in templates will take a bit of learning – there appears to be yet another abstraction on top of the CSS. The existing template is very nice, but as most installs seem to have kept it unchanged, my install will need to be modified significantly if my blog is not to look like almost every other Octopress install.
  • Importing of old postings from my existing blog is proving… interesting. I am not a Ruby hacker but I may have be soon.
    • On the other hand, this is not necessarily a bad thing.
  • Exporting of old comments from my existing blog to Disqus, and association of these with their equivalent new postings in the Octopress version of the blog, just may not be possible at all. This is actually a bit of an issue as some postings, such as this one and this one, have built up little communities there in the comments which are still useful to their participants even to this day. I may be able to torture Textpattern, Octopress and Disqus into working together, but I am not at all sure I can.
    • On the other hand, how responsible do I need to feel here?
  • Matching of the URLs between the systems also may not be possible. This means that any bookmarks or links to existing pages will be broken (and this affects me more than anyone else, given how much cross-linking between blog postings I do).
    • On the other hand… do I care? Google will re-index everything within a few days; and I can emplace URL redirects for the more popular pages, just as I did when I switched from Movable Type to Textpattern all those years ago.
  • The local heavy lifting required for large Octopress blogs can be quite intense. Apparently a few hundred postings can easily take several minutes to rake generate and rake deploy, so there’s no instant posting/instant feedback like one gets used to with Textpattern or Wordpress.
    • On the other hand, this is an unavoidable consequence of the technology. (And ironically so – how I used to complain about Movable Type back in 2003 doing much the same thing!) There may be some workarounds available though – for example, some older content may be best placed into a static structure that Octopress (or at least, my working install of Octopress) never touches.

So why would I do this?

I’ve been thinking a lot about content ownership as it relates to the cloud and that, in general, I should never put anything onto the net that I don’t have a copy of locally.

This sounds a little pretentious in the context of what is a pretty inconsequential blog read by very few people. But it’s mine, and there’s a lot of effort tied up in here; and this remains important to me if no-one else. So having a whole lot of stuff exclusively stored in an opaque database somewhere on the internet makes me nervous.

(I mean to think some more about this – does this mean I should, for example, be saving all my tweets? Probably. Does this mean I need to think carefully about what services I use on the Internet? Always. Am I over-thinking this stuff? Yeah, most like.)

With Octopress, whatever I do starts out locally, before being upstreamed (channelling Dave Winer’s Radio Userland a little there) to the Internet. If I have to switch hosts for any reason, it’s a simple change to some text files, followed by redeployment. I like that the primary repository of my content is local (and that for added safety, I can set up a Git repository to hold the off-site backup).

So now I’m happily experimenting away, seeing if there is a way I can bend this thing to my will. And as always, it’s nice to be learning something completely new.