PyCon 2012 Wrap-Up

#programming

2012 was my 5th PyCon, the annual Python programming language conference. One of the best parts of PyCon is that the talks are recorded and posted to the Internet promptly. This means that if there are multiple talks you want to see in the same time slot, it’s no sweat because you can catch the other talk(s) online. This also means that you have more freedom in the hallway track to follow-up on ideas that capture your interest.

You can view the full list of PyCon 2012 videos over on pyvideo.org

Here is my curated list of the talks I found interesting.

Fun

No one said educating yourself had to be boring.

David Beazley’s PyPy Keynote » Have you ever peeked under the hood of PyPy? David Beazley did, and the results are diabolical.

Militarizing Your Backyard with Python: Computer Vision and the Squirrel Hordes » Kurt Grandis shares a fun experiment he did involving robotics, computer vision, and machine learning to rid his backyard of furry pests.

Building a Robot that Can Play Angry Birds on a Smartphone, (or Robots are the Future of Testing) » Jason Huggins shows off a robot that can play Angry Birds with a live demo. Robotics had a big presence at PyCon this year.

Paul Graham’s Keynote » Paul Graham gave a really good keynote presentation on big, audacious startup ideas.

Databases

Flexing SQLAlchemy’s Relational Power » A great primer on databases. Brandon Rhodes takes you through database basics and design, and the tradeoffs you implicitly make when you delegate your database access to an ORM. On a side node, Brandon is becoming one of my favorite speakers at PyCon. His talks are very well prepared and fathomable. His PyCon 2010 talk, The Mighty Dictionary, is one of my all-time favorites.

Hand Coded Applications with SQLAlchemy » Michael Bayer, the creator of SQLAlchemy, takes up where Brandon Rhodes leaves off in his talk, Flexing SQLAlchemy’s Relational Power. More advanced and detailed examples are available in this talk.

Design

Data, Design, Meaning » Speaker, Idan Gazit, gives a nice overview of visual design for a software engineering audience.

Python

Pragmatic Unicode, or, How do I stop the pain? » Ned Batchelder is one of my favorite PyCon speakers. He is well prepared, lucid, and engaging. This year he tackles Unicode and, for the first time, I understand the difference between the Unicode and Bytes types in Python 2 and 3. Ned also gives advice on how best to handle these types in your programs. His slides are available at on bit.ly.

The Art of Subclassing » I always enjoy Raymond Hettinger’s talks about software, this year was no different. A thoughtful and informative look at how to make the most of inheritance in Python.

Stop Writing Classes » Sometimes a class is premature optimization. Jack Diedrich reminds us that sometimes a function is all you need.

Python, Linkers, and Virtual Memory » Brandon Rhodes talks about about how an operating system manages memory, loads shared libraries, and what this means for Python servers and applications.

Why PyPy by example » The PyPy devs show some of the big ticket items they’ve been working on this year, and features that are in the pipeline. Highlights include debugging tools, NumPy progress, Python 3 porting progress, and Software Transactional Memory.

Stepping Through CPython » Speaker, Larry Hastings, gives us a tour of the guts of the Python interpreter. The talk covers the initialization of the interpreter, the initialization of your program, key data types, and how memory is allocated. This talk was on the “extreme” track of the conference, and I thought it played well there.

Introspecting Running Python Processes » Figuring out what’s going wrong in a running system is hard enough without good tools to see what’s going on under the hood.

How CherryPy supports Python 2 and 3 » The future marches on, and so does the porting of projects to Python 3. Robert Brewer provides the lessons learned from porting the venerable CherryPy project to Python 3. CherryPy maintains compatibility from Python 2.3 to Python 3.3. An impressive accomplishment.

Science

IPython: Python at your fingertips » IPython is is an excellent interactive programming environment. This talk shows off IPython features like the REPL, parallel computing and web notebooks. The web notebooks feature was one of the coolest things I saw at PyCon this year.

Python and HDF5 - Fast Storage for Large Data » A very good overview of the HDF5 data format, and PyTables. Provides nice examples of the API’s for accessing data using h5py and PyTables.

Storing, manipulating and visualizing timeseries using open source packages in Python » A whirlwhind tour of libraries to help you manage time-series data. A lot of material to cover for a 25 minute talk, but examples are provided for NumPy, Pandas, PyTables, and Chaco. The source code used in his talk is available on GitHub.

Pandas: Powerful data analysis tools for Python » Pandas is a time-series data analysis library that provides functionality described as, “R’s DataFrame on steroids”. Watch this talk to get a good feel for the capabilities (The audio cuts out for a few minutes a little after the halfway mark, but picks up again).

Testing

pytest - rapid and simple testing with Python » Holger Krekel give a nice overview of py.test. I’ve used Nose in the past, mostly due to its test discovery features, but I’m definitely going to try out py.test after watching this talk.

Fast Test, Slow Test » Most unit tests aren’t fast and their authors suffer for it. What is a unit test, really? How can writing them prevent classic testing problems? If you do write them, what trade-offs are you implicitly making?

Speedily Practical Large-Scale Tests » Erik Rose describes how to keep large test suites manageable over time. Good intro for people testing webapps. He also demos a nose plugin, nose-progressive, which shows your test failures as the test runs, so you can start investigating issues before your test suite finishes.

Testing in Django » If you write Django apps, this talk will be worth your while. Carl Meyer gives his opinions and advice on how to effectively test Django applications.

Practicing Continuous Deployment » “Deployment is the least interesting part of Continuous Deployment.” Much of this talk covers all the other things you need to have in place to do continuous deployments. Much of the infrastructure that enables deployment is testing and monitoring.

Web

Web Server Bottlenecks And Performance Tuning » Graham Dumpleton, the author of the mod_wsgi Apache module, gives good advice for finding bottlenecks in your web application stack.