view content/Coding/000-blog-reboot.rst @ 11:75a003a548c4

Added a script to create a new post by answering questions.
author Brian Neal <bgneal@gmail.com>
date Sun, 02 Feb 2014 13:07:15 -0600
parents 7ce6393e6d30
children
line wrap: on
line source
Blog reboot with Blogofile
##########################

:date: 2011-04-17 14:10
:tags: Blogging, Blogofile
:slug: blog-reboot-with-blogofile
:author: Brian Neal

Welcome to my new blog. I've been meaning to start blogging again for some time, especially since
the new version of SurfGuitar101.com_ went live almost two months ago. But the idea of dealing with
WordPress was putting me off. Don't get me wrong, WordPress really is a nice general purpose
blogging platform, but it didn't really suit me anymore.

I considered creating a new blog in Django_, but I really want to spend all my time and energy on
improving SurfGuitar101 and not tweaking my blog. I started thinking about doing something
simpler.

Almost by accident, I discovered Blogofile_ by seeing it mentioned in my Twitter feed. Blogofile is
a static blog generator written in Python. After playing with it for a while, I decided to use it
for a blog reboot. It is simple to use, Pythonic, and very configurable. The advantages for me to go
with a static blog are:

1. No more dealing with WordPress and plugin updates. To be fair, WordPress is very easy to update
   these days. Plugins are still a pain, and are often needed to display source code.
2. I can write my blog posts in Markdown_ or reStructuredText_ using my `favorite editor`_ instead
   of some lame Javascript editor. Formatting source code is dead simple now.
3. All of my blog content is under version control.
4. Easier to work offline.
5. Easier to deploy. Very little (if any) server configuration.
6. I can use version control with a post-commit hook to deploy the site.

Disadvantages:

1. Not as "dynamic". For my blog, this isn't really a problem. Comments can be handled by a service
   like Disqus_.
2. Regenerating the entire site can take time. This is only an issue if you have a huge blog with 
   years of content. A fresh blog takes a fraction of a second to build, and I don't anticipate 
   this affecting me for some time, if ever. I suspect Blogofile will be improved to include caching 
   and smarter rebuilds in the future.

It should be noted that Blogofile seems to require Python 2.6 or later. My production server is
still running 2.5, and I can't easily change this for a while. This really only means I can't use
Mercurial with a *changegroup* hook to automatically deploy the site. This should only be a temporary 
issue; I hope to upgrade the server in the future.

Blogofile comes with some scripts for importing WordPress blogs. Looking over my old posts, some of
them make me cringe. I think I'll save importing them for a rainy day.

The bottom line is, this style of blogging suits me as a programmer. I get to use all the same
tools I use to write code: a good text editor, the same markup I use for documentation, and version
control. Deployment is a snap, and I don't have a database or complicated server setup to maintain.
Hopefully this means I will blog more.

Finally, I'd like to give a shout-out to my friend `Trevor Oke`_ who just switched to a static blog
for many of the same reasons.


.. _SurfGuitar101.com: http://surfguitar101.com
.. _Django: http://djangoproject.com
.. _Blogofile: http://blogofile.com
.. _Markdown: http://daringfireball.net/projects/markdown/
.. _reStructuredText: http://docutils.sourceforge.net/rst.html
.. _favorite editor: http://www.vim.org
.. _Disqus: http://disqus.com/
.. _Trevor Oke: http://trevoroke.com/2011/04/12/converting-to-jekyll.html