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.
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.
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
Guido’s keynote, also on Friday, covered Python 3.0. The take away
It’s coming. Don’t worry. It’s going to change everything. Don’t
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
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
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
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
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
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.
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
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
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
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
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
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
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.