A few weeks ago, several of us from the New Relic engineering team attended DjangoCon 2012 in Washington, DC. I arrived a day early to do some sightseeing and make some new friends in the Django community. A few of us decided to visit the Air and Space Museum and luckily we convinced Russell Keith-Magee to join us. Best tour guide ever! If you haven’t met Russell, he’s a huge space geek and has an infectious enthusiasm for all things flying. It was a great way to kick off the week!
DjangoCon is one of the two main conferences in the States for Python users. (The other is PyCon which happens in the spring). The event had (I kid you not) exactly 404 attendees this year. Our table was prominently placed, and we had a great time meeting the attendees and our customers face to face.
When I wasn’t working the booth, I was enjoying the sessions and getting ready for my own presentation. Graham Dumpleton and I had worked on a talk together that was accepted at DjangoCon. I presented it on our behalf and was pleasantly surprised by the session’s turnout. A lot of people were interested in the ispyd tool that I demoed there.
I enjoyed the introductory session for Django on Gevent. Gevent is a networking module built on the greenlet module (green threads). The talk showed how easy it was to make your application do cooperative concurrency. gevent.socket works as a drop-in replacement for the standard library socket module. The green threads built on top of the greenlets are cooperative and not preemptive like the POSIX threads.
Another interesting talk was A Gringo’s Guide to Internationalization. As anyone who worked on them before knows, translations are hard work. The session went over some best practices to place stubs in place to make this task easier. (I also found out that i18n stands for ‘I’ followed by 18 chars ending with ‘n’, a mnemonic word for ‘internationalization’.)
Next up was Daniel Lindsley’s session on API Design Tips. Daniel is the creator of TastyPie, the API module for the Django framework. His talk advocated the top down design where you design your ideal code (interfaces) first and then write the underlying code to make it happen. (This also reminded me of Readme Driven Development by Tom Preston-Werner.)
Finally, I sat in on two similarly themed talks Flasky Goodness (Why Django Sucks) and About Django from a Pyramid Guy. They gave an overview of Django, explained why it isn’t suited for everything and where alternatives like Flask or Pyramid fit in. Both pointed out the monolithic nature of Django and contrasted it against the pluggable interface of their respective frameworks.
DjangoCon was a lot of fun and I enjoyed meeting members of the Python community there. New Relic and I will definitely be back for 2013.