bgneal@4: Blog reboot with Blogofile bgneal@4: ########################## bgneal@4: bgneal@4: :date: 2011-04-17 14:10 bgneal@4: :tags: Blogging, Blogofile bgneal@4: :slug: blog-reboot-with-blogofile bgneal@4: :author: Brian Neal bgneal@4: bgneal@4: Welcome to my new blog. I've been meaning to start blogging again for some time, especially since bgneal@4: the new version of SurfGuitar101.com_ went live almost two months ago. But the idea of dealing with bgneal@4: WordPress was putting me off. Don't get me wrong, WordPress really is a nice general purpose bgneal@4: blogging platform, but it didn't really suit me anymore. bgneal@4: bgneal@4: I considered creating a new blog in Django_, but I really want to spend all my time and energy on bgneal@4: improving SurfGuitar101 and not tweaking my blog. I started thinking about doing something bgneal@4: simpler. bgneal@4: bgneal@4: Almost by accident, I discovered Blogofile_ by seeing it mentioned in my Twitter feed. Blogofile is bgneal@4: a static blog generator written in Python. After playing with it for a while, I decided to use it bgneal@4: for a blog reboot. It is simple to use, Pythonic, and very configurable. The advantages for me to go bgneal@4: with a static blog are: bgneal@4: bgneal@4: 1. No more dealing with WordPress and plugin updates. To be fair, WordPress is very easy to update bgneal@4: these days. Plugins are still a pain, and are often needed to display source code. bgneal@4: 2. I can write my blog posts in Markdown_ or reStructuredText_ using my `favorite editor`_ instead bgneal@4: of some lame Javascript editor. Formatting source code is dead simple now. bgneal@4: 3. All of my blog content is under version control. bgneal@4: 4. Easier to work offline. bgneal@4: 5. Easier to deploy. Very little (if any) server configuration. bgneal@4: 6. I can use version control with a post-commit hook to deploy the site. bgneal@4: bgneal@4: Disadvantages: bgneal@4: bgneal@4: 1. Not as "dynamic". For my blog, this isn't really a problem. Comments can be handled by a service bgneal@4: like Disqus_. bgneal@4: 2. Regenerating the entire site can take time. This is only an issue if you have a huge blog with bgneal@4: years of content. A fresh blog takes a fraction of a second to build, and I don't anticipate bgneal@4: this affecting me for some time, if ever. I suspect Blogofile will be improved to include caching bgneal@4: and smarter rebuilds in the future. bgneal@4: bgneal@4: It should be noted that Blogofile seems to require Python 2.6 or later. My production server is bgneal@4: still running 2.5, and I can't easily change this for a while. This really only means I can't use bgneal@4: Mercurial with a *changegroup* hook to automatically deploy the site. This should only be a temporary bgneal@4: issue; I hope to upgrade the server in the future. bgneal@4: bgneal@4: Blogofile comes with some scripts for importing WordPress blogs. Looking over my old posts, some of bgneal@4: them make me cringe. I think I'll save importing them for a rainy day. bgneal@4: bgneal@4: The bottom line is, this style of blogging suits me as a programmer. I get to use all the same bgneal@4: tools I use to write code: a good text editor, the same markup I use for documentation, and version bgneal@4: control. Deployment is a snap, and I don't have a database or complicated server setup to maintain. bgneal@4: Hopefully this means I will blog more. bgneal@4: bgneal@4: Finally, I'd like to give a shout-out to my friend `Trevor Oke`_ who just switched to a static blog bgneal@4: for many of the same reasons. bgneal@4: bgneal@4: bgneal@4: .. _SurfGuitar101.com: http://surfguitar101.com bgneal@4: .. _Django: http://djangoproject.com bgneal@4: .. _Blogofile: http://blogofile.com bgneal@4: .. _Markdown: http://daringfireball.net/projects/markdown/ bgneal@4: .. _reStructuredText: http://docutils.sourceforge.net/rst.html bgneal@4: .. _favorite editor: http://www.vim.org bgneal@4: .. _Disqus: http://disqus.com/ bgneal@4: .. _Trevor Oke: http://trevoroke.com/2011/04/12/converting-to-jekyll.html