Yet another redesign at thejaswi.info

Wed 08 July 2009 by Thejaswi Puthraya

Oh yes!!! You are seeing it right! There's been another redesign of my site.

Technology fascinates me and I cannot get enough of it. This time I wanted my blog powered by the latest and coolest technology. Want to know more?

CouchDB powers the heart of the blogging engine as opposed to an RDBMS. CouchDB-python talks to the DB and the web app. How on earth could I have left my favourite framework out of this cool stuff! I make use of the Django templates and views for the presentation and logic.

CouchDB stores the posts, comments, authentication related data and session data. I have written custom auth and session backends in Django that store the data on the DB. The source has been released and is available here.

The advantages of using couchDB:

  • It scales tremendously. Suppose my blog readership touches a few million, all I would need to do is to add more couchDB nodes and voila it scales!!!
  • Since couchDB uses HTTP as the underlying protocol, it can be cached very easily using standard cache utilities like Squid and Varnish.
  • It is schema-less. I could easily add/edit and remove fields from the DB without having to get frightened about it's integrity.

The disadvantages of using couchDB:

  • couchDB is growing fast and still does not have a few features (slated to be released soon) and the API is a moving target.
  • It can give you a few scares from time to time. I almost lost my data when I made a few cfg changes. After googling around, I figured out that the data was safe but couchDB would require a reinstall.

Hope this time, the technology powering my blog is not obsoleted so fast ;-).

PS1: If you have come to the site from a previous bookmark, please update your bookmarks. I am sorry about breaking your results.

PS2: Some services on my blog are still missing, I promise to have them up at the earliest.

PS3: I am in the process of releasing the source code of the site. If you are one of the impatient folks, please ping me.