PyCon 2008 | And Now For Something Completely Different, April 2008

Originally published in Python Magazine Volume 2 Issue 4 , April, 2008

PyCon 2008 was held March 12-20 in Chicago. The explosive growth in attendance of the conference translated to an increase in energy and enthusiasm, from both attendees and organizers.

I haven’t made it to a Python convention for several years, not since before they changed from being called International Python Conference to the community organized PyCon, so I was excited to have a chance to go to PyCon 2008 in Chicago last month. I wasn’t the only one, either – turnout was over 1000 this year (quickly dubbed a kiloPythonista). According to the organizers, that is a 70% increase over last year’s attendance. The growth trend is strong, so organizers are anticipating even more participation next year. Another statistic we were able to estimate based on registration is that 100 women attended the conference this year. While still lower than it should be, that number is up from 26 last year, and there has been a concerted effort to continue the upward trend to enhance the diversity of our community.

Tutorials

On the first day of PyCon attendees have the opportunity to participate in a wide variety of tutorial sessions. The topics this year included build tools, OLPC, ORMs, advanced Python programming tips, scientific computing, and a variety of web development frameworks. There were tutorials targeted at different levels of expertise, from new Python developers to those with years of experience. Most of the feedback I received from tutorial attendees was positive, with the only complaints related to networking issues that occurred early in the day. Given that more people attended tutorials this year than all of PyCon 2006, that widespread enthusiasm is impressive.

Keynotes

In typical conference style, each morning started with keynote presentations. On Friday morning Chris Hagner of White Oak Technologies, Inc. told us about some of the problems they have encountered since selecting Python as their primary development platform. For example, in response to the complaint that “Not enough developers know Python”, he answered that “No one learns Python ‘by accident’”, and those that do tend to be better developers who push themselves to learn new tools. Although few of their customers already know Python, they took that as an opportunity to build trust while teaching them about the technology. In all cases White Oak was able to convert the challenges into opportunities or competitive advantages. These types of success stories bode well for other Python consulting shops.

Guido’s keynote, also on Friday, covered Python 3.0. The take away quote is:

It’s coming. Don’t worry. It’s going to change everything. Don’t worry.

You can find the material he presented about the changes in 3.0 and everything being done to make the upgrade path as smooth as possible on python.org, so I won’t repeat it here.

Saturday’s keynote from Van Lindberg was an excellent discussion of intellectual property issues and how they relate to open source or free software licenses. I’ve been working with open source licenses of one form or another for several years now, but his description of the difference between rivalrous and excludable goods, and solutions for handling the “tragedy of the commons” and “free rider” problems clarified in my own mind the reasons why using open source licenses can be challenging in the short term but rewarding over the long term.

On Sunday morning, Mark Hammond discussed how Mozilla uses Python, including the news that version 1.9 includes some support for scripting Mozilla with Python. He also gave several examples of syntax and language constructs being lifted from Python and adopted in JavaScript.

Later, Ivan Krstić gave an update on the One-Laptop-per-Child project, including some uplifting stories of his work with kids in Peru and Uruguay during the first OLPC deployments. Ivan has written extensively about the trips on his blog, and the details of the OLPC project he has shared are inspiring (http://radian.org/notebook/first-deployment).

Scheduled Talks

I tried to attend as many of the scheduled talks as possible, but I can’t possibly write reviews of all of them in the space I have here. Each of the sessions was digitally recorded, and the volunteers doing the A/V work put in heroic efforts to transfer the digital tapes to files that eventually will be available online. Watch the PyCon blog for announcements; the videos will be posted as they are converted.

One of the more interesting sessions I attended was Brett Cannon’s talk entitled How Import Does Its Thing – a deep-dive examination of the intricacies of Python’s module and package re-use mechanism.

Later that morning Jeff Rush presented tips and tricks for managing and growing Python user groups. In addition to Jeff’s ideas, the questions and suggestions from the audience afterward showed the size and diversity of the Python community. There seem to be vibrant, active user groups all over the place, each with their own unique personalities. Some groups are heavily populated by students, while others are (ahem) older. Each type of group has its own challenges, so sharing knowledge about what works for some may help others.

Matt Harrison talked about managing code complexity, including how to use metrics to ensure you’re measuring something useful. His diagrams and explanation of cyclomatic complexity gave me an entirely new perspective on the way I plan my own testing. One of the GHOP projects this year was a cyclomatic complexity analyzer for Python code. It is open source, but not necessarily packaged for easy release, yet.

Another session worth mentioning was given by the folks at Resolver. Their Resolver One spreadsheet/Python interpreter mash-up feels like what we’ve always wanted a spreadsheet to be – a full-blown programming environment with charts and graphs. It will be interesting to see how the product does, and whether non-programmers are ready for the power and flexibility afforded to them by exposing the Python interpreter. I’d like to give it a try, but it uses IronPython and only runs on Windows.

Jason Pellerin’s talk on nosetest illustrated quite a few features that make it a powerful tool for running tests. The support for module and package-level fixtures using generators for data-driven test creation especially caught my eye. One of the issues we have with our test suite at work is the length of time it takes to run, mostly due to the expensive fixtures. Making it easier for a group of tests to use the same fixtures could help us cut down on the repetitive operations.

Titus Brown’s presentation on integrating code coverage analysis and UI test automation tools with the OLPC Sunday afternoon was intriguing. His approach to instrumenting a remote process to collect code coverage data, then collecting it and presenting the results in a UI shows great promise for testing and debugging distributed apps. Titus is well known for his work with testing tools and techniques, and never fails to deliver an entertaining and informative talk.

Open Spaces

The scheduled talks are a good source of information about what’s going on in the community, but the hallway track this year was one of the best parts of the weekend. The less formal nature of the Birds-Of-a-Feather (BOF) meetings and other open space sessions resulted in more collegial and participatory conversations. Some, such as Steve Holden’s Teach me Twisted were informative and hilarious at the same time. But the sessions weren’t all work related. There were spaces dedicated to board games, online gaming tournaments, and plenty of good food and drink. Meal times were an excellent opportunity to get to know the other attendees in small group conversations.

Sprints

The increase in overall attendance carried over to an estimated 40% increase in sprint attendance. Unfortunately, I had to leave while the sprints were still being organized, but there was a large crowd entering the hall for the pre-sprint tutorials as I was leaving for the airport. The participating projects included Django, TurboGears/Pylons, Python core, and many others.

Advice for Attending Next Year’s Conference

Here are a few tips if you plan to attend PyCon next year, in no particular order:

Obviously, do register early to take advantage of the discount rates and make sure you are able to reserve a room in the conference hotel. Space is limited, and the rooms fill up quickly.

Once you’re there, don’t get too wrapped up in the scheduled sessions. Make sure to check the open space schedule a couple of times a day to see what spur-of-the-moment events are planned.

For goodness sake, don’t sit in the corner. Mingle! Better yet, pitch in and help out. I arrived on Thursday evening, but hadn’t signed up for tutorials due to my travel time constraints. So after I registered for the conference I found myself with a big block of free time. The guys handing out tote bags and t-shirts, herded by Don Spaulding, accepted my offer of help and over the course of Thursday evening and Friday morning I was able to interact, at least in a limited fashion, with a large number of the conference attendees.

If you’re not interested in a session, don’t sit in the back of the room reading your email. Give up the seat for someone who is interested, and go to the lounge area to mingle or use your laptop there. Sitting through a talk you’re not listening to just wastes your time.

Get up a little earlier than you normally do to snag the best selection of breakfast pastries (or don’t, and leave them for me). Food quantity and quality were good this year, so missing out isn’t really an issue, but coming downstairs early also gives you a head start on the day. You’ll be fresh and ready for the early sessions. Breakfast is another good time to share a table with someone you don’t know and find out about interesting projects going on in the community. For example, I learned about a project Dr. Johnny Stovall is doing in Indonesia using Python to build an application to teach tribal people the national language by showing them words in both their tribal language and the national language at the same time.

Oh, and leave space in your suitcase for the swag and t-shirts. The vendors and sponsors this year were especially generous with the goodies.

Changes I Would Like to See

The conference went smoothly, but nothing is perfect and there is room to improve PyCon, too. Luckily, since it is an volunteer-run event, so we can change it.

One point that has been brought up is the commercial nature of some of the keynotes and lightning talks. It has been discussed rather extensively online, so I won’t belabor the point here. I will say that balancing the content of a sponsored presentation can be tough, and some worked out better than others. But balance can be achieved, and sponsorship is important to controlling costs, so we as a community need to work that out. Presentations about successful commercial apps written in Python that talk about the technology involved, development “war stories”, deployment, and other techniques that can be shared without giving away the “secret sauce” all can be useful and interesting from an advocacy and technology perspective. Not all projects are, or need to be, open source.

The layout of the conference hall had the open spaces rooms downstairs from the “main” conference. A few of the BOFs and other meetings I went to were well attended, but placing more emphasis on announcements about what was going on downstairs would have helped make it feel less like a sub-conference. Some sort of webcam system to project the schedule upstairs might have helped with that, but I don’t know how realistic such an idea is. I’m sure someone out there could come up with a more creative solution.

The primary complaints I heard in the hallways this year related to the wireless networking in the conference area. There were glitches early on in the first day or two, but I never had any trouble myself so I’m not sure how bad they really were. Less complaining and more pitching in should solve that problem, too.

Participating as an Organizer

Speaking of helping out, you really should consider getting involved. The conference will be in Chicago again next year, though the exact venue and setup has not been finalized. The best way to have input into those decisions and otherwise keep up with what is going on is to join the pycon-organizers mailing list. See the PyCon web site for details.

The bid process for PyCon 2010 was launched during a meeting on Saturday during lunch. There are several user groups pitching their cities to host the conference. One of the most important selection criteria is the enthusiasm and energy of the local organizing committee, so if you want the convention in your home town you need to be involved.