The great django rewrite

Published June 26, 2012 by Toran Billups

When I started this blog way back in 2009 I was on a very different software journey. At the time I was writing enterprise web applications in using classic webforms. I decided to start blogging because for once I thought it would be a good idea to embrace the very thing I disliked the most.

Writing was never something I wanted to do growing up, and to be fair I still struggle with it today. I think most of the pain comes from the fact that I've never been great at explaining complex stuff to other people. I used this blog as a platform to help me express ideas in a way I never had the courage to do in person.

Another reason I started this blog was to write the software myself. I was learning webforms and thought building my own webforms app would give me some experience on the .net platform. A few years later I wanted to learn the new mvc framework so I rewrote the blog again. And each time I rewrote the blog it gave me a real project that I could finish in my spare time, learning about a new platform all along the way.

Recently I made the switch to python and django but didn't have any real experience with the platform. In the past I would jump in a few weeks before I started the job to get familar with the ecosystem, but for some odd reason this time around I decided to wait a few months before the rewrite as I wanted to truly embrace the accepted techniques and practices of a seasoned python developer. So after I had a few months of professional python under my belt, I decided it was time for the next great rewrite.

I went from not knowing a thing about python or mysql to building/deploying/hosting my own app in just a few weeks. The following is a comprehensive list of the technologies I got to learn more about during the rewrite.

  • python
  • django
  • south
  • django unit test
  • mock
  • pip
  • virtualenv
  • chef
  • capistrano
  • apache
  • mysql
  • memcached

I also felt it was time for a visual refresh (as the theme I was rocking looked a good 4 years old). In addition I decided to trim the amount of http requests required to read a basic blog post on my site. The average desktop user might not notice, but anyone using an iPhone will find the site loads up blazing fast now. I thought this was worth the effort because most of the programming related content I consume is over 3G on my iPhone these days.

As usual, the entire application is available on github

Buy Me a Coffee

Twitter / Github / Email