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 vb.net 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 asp.net 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