Choosing a blogging platform

I tried blogging in the past and it never worked out. One reason was that frameworks like Movable Type, WordPress and Blogger (aka Blogspot) either aren't under your control if you use the hosted version or are high maintenance if you host them yourself (too high for a lazy guy like me, at least).
Another is you are supposed to write your posts in a form on a web-page. Usually some kind or rich-text enhanced form. To be fair, there are desktop clients for all major blog frameworks, some of which I tried but I can't be bothered to look them up now. And AFAIK you can't really preview the resulting blog posts without actually uploading them to your blog (or a local instance with the same configuration).

When I found out about static site generators, starting a blog became an option again. You can write your posts in markdown or ReStructuredText, build the pages on your local machine and only upload the generated static html files. After playing around with jekyll, cryogen and nikola I decided to give pelican a spin. While I like learning new languages, I decided to use a blog software written in a language I use on a daily basis. If one day I decide I want to dig deeper into the software I'm using, I don't want to be forced to learn a new language at the same time. So Python it was. First, the possibility to use the IPython Notebook format in Nikola appealed to me, but Nikola's options turned out to be overwhelming when I started reading the documentation. Thus I decided to use Pelican for now.

It's very easy to use and packaged with Arch linux. If you want to use Fabric to automate the building and publishing process, you have to use python2 with pelican. So I created a virtual environment and did

$ pip install pelican markdown fabric

and there was my ready-to-use blogging environment. You can skip markdown if you want to write your blog in ReStructuredText.
Now when writing a blog post, I dedicate a tmux window to blogging, change into the virtualenv and just write the post in vim. fab build and fab serve can be used to preview the output and fab publish will upload the generated output to my website.