« Back to Nicolas Pouillard's Blog

Date: Friday 11 Sep, 2009, Tags: blogination, haskell

Starting a new Blog using Blogination

It's time for a new blog. The main non technical goal for this one is to be non-empty :)

This time, I'm gonna force myself to write new posts on a regular basis.

The intended topics would be among: theory and practice of programming languages, in particular functional ones; some system administration tips and tools; and communication services/software like emails, twitter or Google wave.

Choosing a blogging platform

I wanted a really lightweight platform, at least from the developer point of view. I've used Typo then Mephisto and they were really to heavyweight to maintain. So I wanted a system for which I can be responsible of the code in a sustainable way. Not that I couldn't fix the various issues I had with Typo and Mephisto but more that I no longer want to!

Here are the features I wanted:

  • Plain text
  • Really small code-base
  • Written in Haskell
  • Static pages
  • Comments
  • Syndication
  • Tagging
  • UTF8

After some search, there were two competitors Blogination and Whisper. However since only Blogination was written in Haskell I opted for it.

Blogination was written by Chris Done and I must say that this tool fits almost all my needs.

Of course as I will go along with adapting Blogination for my needs I will submit patches to Chris Done.

Let's go a bit deeper into the expected features:

Plain text: No RDBMS/SQL

Relying on plain text files makes the blogging code much more simpler. Indeed the blogging code only needs to read the files. All the CRUD (create, update, delete) is done with your favorite editor.

To quote William Morgan (Whisper's author):

Storing your blog entries in a RDBMS is like driving to work in the Space Shuttle.

So even if driving a Space Shuttle could be kind of cool, I don't consider RDBMS/SQL as cool in the long run.

Then it is really simple to keep track of the contents safely using a version control system, and here Darcs is a perfect match for the situation.

Small code-base

I want to acquire the control of the code almost as if I had written it. Being able to change it easily to fit my needs is of prime importance.

Written in Haskell

Because maintaining high level, well abstracted, well typed, purely functional code is a much more pleasant task to do than what one can find elsewhere.

Static pages

Static pages generated in batch makes the administration much more simpler. Moreover there is almost no scalability issues with static pages.

Tagging and UTF8

Those speak for themselves.


At the beginning no support for comments is not a problem. I think that blog comments should reuse an existing communication layer like emails.

Comments could be supported via emails like it is done in Whisper. However in the mean time that is not the main task, sending me emails will be enough.


Some RSS support or Atom was really needed. I also like to experiment with some pubsubhub support in the future.

Syndication will be also done with twitter, since every post will be accompanied by some tweets about it, answering to these tweets will be another way to comment on each post.

Future improvements

On the list of improvements there is: A nicer design, an inspiring blog title, more features... All of these need to come, however as I said earlier the main task is to publish contents regularly and to stop keeping these thoughts for myself.