I got back from PyCon 2010 Atlanta for a while, I am still absorbing the huge volume of knowledge and information I gathered during the conference. It was an amazing experience for me to see at first hand what the Python community were doing. There were something for everyone in PyCon 2010, from beginner Python users to advanced python users. The tone of the conference was very friendly, it was a totally difference experience from corporate sponsored technology conferences.
During the two tutorial days prior to the conference days, I attended four tutorials:
Faster Python Programs through Optimization – The tutorial presented the guidelines and strategies of Python program optimization. It demonstrated the techniques on measuring speed(test.pystone), profiling CPU usage(cProfile), and profiling Memory usage(Guppy_PE framework), which I never knew before. The tutorial detailed the essential differences among Python built-in data types in terms of performance, which is also helpful for me.
Pinax Long Tutorial – Pinax is an open-source platform built on the Django Web Framework. In the tutorial, the Pinax core developers presents on Pinax installation, creating projects, leveraging Django resuable applications, modification of templates, Pinax specific settings, media handling, deployment. The most impressive part of the tutorial for me are how Pinax takes advantage of virtualenv and pip, both provided by Ian Bicking to streamline the installation process, and how Pinax leverages the resuable Django applications. The tutorial also exposed lots of open source reusable Django applications that worth looking at in the coming days, to name a few, django-frontendadmin, django-flatblocks, django-ajax-validation, django-openid, and django-pagination.
Django in Depth – Django is one of my favourite topics during the conference. “In this tutorial, we’ll take a detailed look under the hood, covering everything from the guts of the ORM to the innards of the template system to how the admin interface really works”. James Bennett led us dive deep into the internal world of Django Web Framework, showed us the bits and pieces of Django’s ORM, Forms and Validation, Template system, request processing, view, and admin interface, which are far beyond the Django documentation covers.
Django Deployment Workshop – Another tutorial on Django presented by Jacob Kaplan-Moss covers the creation of a full Django deployment environment running on a cluster of (virtual) machines. Jacob Kaplan-Moss walked us through a live demo on how to setup a production ready deployment environment on the cloud(Rackspace, Amazon EC2) by removing the single point of failures one by one.
During the following three conference days, I attended lots of talks, here are the highlights of the topics that attracted me the most:
NoSQL Database was a hot topic during the conference, MongoDB, Cassandra, and Neo4j attracted lots of attentions. Mark Ramm and Rick Copeland from SourceForge.net presents the comparison between Relational DB and NonSQL Database, the practical guide on deciding what to use in projects, and how they quickly migrating one of their high traffic website from PHP to Python by using TurboGears, MongoDB, and Jinja templates. It is a live example to demonstrate how NoSQL Database could be used in real world projects.
Test in Python was another topic I followed closely in the conference: Ned Batchelder for the fame of coverage.py, gave a talk on test and testability, there was not too much new for me, as we emphasize TDD in the daily software development here in Point2. Michael J Foord, creator of the famous Python Mock library, gave a talk on New *and* Improved: Coming changes to unittest, the standard library test framework, which covered lots of great stuff coming to Python unittest, the most attractive bits are test discovery and more convenient assertion methods. By the way, you do not need to wait for upgrading your Python to 2.7 or 3.2 to take advantages of the new unittest library features, it was back ported to Python 2.4+. It is great to see that test picking up speed in Python community.
Using Django in Non-Standard Ways given by Eric Florenzano was an interesting topic, Eric covered how to use Django with alternatives to what Django offers and how to using bits Django offers in other contexts. He gave examples on using Jinja2 template engine with Django, not using django.contrib.auth in Django application, not using ORM in Django, using Django’s ORM stand-alone. It is amazing to see how you can take advantages of the Django framework, even not in the standard way.
Overall, my experience of PyCon 2010 Atlanta was amazing. The conference was great fun and informative. It was great to be there – PyCon 2010 Atlanta.
Having attended PyCon 2009 in Chicago I would like to highlight a few tools which were demonstrated and I feel stood out from the crowd.
It’s safe to assume you have read online tutorials for a programming language and had the following setup: a) a web browser window open displaying the tutorial documentation, b) IDE / Command Prompt open to write and execute code, c) multiple monitors so you can show it all at once (if you’re lucky). Crunchy takes a different approach and delivers HTML formatted documents with an interactive python shell so that you can try the code snippets as you encounter them. A demonstration of this tool included the user being able to read the requirements for a function, implement that function to the best of their ability, and finally execute pre-existing unit tests to check if their implementation works!
It can be annoying running a time-consuming python program and after 2 minutes of execution you find there is a problem and have to start over. This would really start to gnaw at your patience if this happened a few more times. Wouldn’t it be great to have a Python shell that clearly showed you which line the execution was hanging on, allow you to make a fix, and then only re-execute the code that is necessary to realize your change? This Python graphical shell implements this, and more, great functionality which I really hope to see adopted elsewhere.
Chances are this has happened to you or someone you know:
You plan on demoing some code to a group of peers. You begin to code and upon execution you get an error. You try to recover but are too nervous and cannot get the %&*$ thing to run. The demo ends with an awkward bit of silence and a brief apology.
First of all, let’s avoid live code demos. Second, let’s pretend they’re live demos! For those of you who don’t know, a Player Piano is a self playing piano running pre-programmed music. PlayerPiano is a great python tool that runs doctests inside a fake Python shell; effectively it runs your pre-programmed demo while you can focus on speaking and paying attention to your audience.
Please, please, please no more live code demos.
By: Logan Peters