Sessions at PyCon US 2011 about Python

Friday 11th March 2011

This talk explains modern techniques that any developer can use to support multiple versions of Python. You probably already have a massive test suite using a tool like nosetests, py.test, hand rolled unittest, etc. This talk will focus on using the tox command line tool to build and run your tests in all versions of Python, from 2.4 to Jython and, most importantly, Python 3.

tox lets you set up isolated virtual environments to test your module's deployment and compatibility with all major versions of Python. It's easy to install and is flexible enough that it probably already supports your existing test suite. With one simple command you can execute your test suite in each version of Python, you can build its documentation with Sphinx, and get a nice printout of the results. It has also been designed from the ground up to integrate into continuous integration (CI) tools like Jenkins.

Using practical examples, this talk will show you how to toxify your existing test suite and trick it out with the tox.ini config file. You'll also see how to leverage a Jenkins matrix build so that each code checkin will run tests in all versions of Python and report detailed failures.

Your app supports Python 3, right? No? Tox is the best way to develop in parallel with 2 and 3. We'll go over how to set up tox for that.

This talk is split into three parts. The first will look at the different options in how to handle Python 3 porting. Do you need to support Python 2, or just port once? Should your code run unmodified or via 2to3, etc. It will in depth take up the benefits and problems with each strategy to let you choose, and also give quick examples of how to port with each strategy.

The second part looks at how you should prepare before porting, and things you can do right now to improve your code and make porting easier, even though you don't plan to port yet.

The third part will take up the most common problems in porting, and how you can solve them.

Combining Python with inexpensive robots is a very effective way of teaching programming at the middle and high school levels. Since Python is easy to understand a constructivist approach is possible - students learn by creating and running simple programs, observing the results, and then modifying their code to fix bugs and add functionality.

Saturday 12th March 2011

Dropbox is a startup company located in San Francisco that has probably one of the most popular file synchronization and sharing tools in the world, shipping Python on the desktop and supporting millions of users and growing every day. Dropbox uses Python on the client-side and server side as well.

This talk will give an overview of the first two years of Dropbox, the team formation, our early guiding principles and philosophies, what worked for us and what we learned while building the company and engineering infrastructure. It will also cover why Python was essential to the success of the project and the rough edges we had to overcome to make it our long term programming environment and runtime. Finally it will give some insight into the future of Dropbox and where the project is going.

Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. It is not only a web server but it is a light-weight, use only what you need, web development framework. In this talk we will review the current state of the Tornado project, review the features Tornado provides and give examples of how to implement asynchronous web applications in Tornado.

Unscheduled

Zed A. Shaw In this talk I will demonstrate how to use ZeroMQ with Python (and others) to do really advanced or even weird network architectures. You'll see Python talk to other languages, handle HTTP, JSON, XML, WebSockets, encode videos, chat messaging, etc. All in a short talk with only code, no diagrams. You should know ZeroMQ already.

A lot of people want to use Python, but their customer, management, school, government, or organization won't let them. Python is a great tool, but it can be challenging to get in the door. This panel will explore how companies and individuals have successfully introduced Python, what tools are available to sell Python, and what pitfalls there are to avoid.

Five panelists have been chosen from a broad spectrum of individuals including academic, government, for-profit organizations, and non-profit organizations. Possible questions will include:

What is a good example success story you can share?

What pitfalls should you avoid?

How do you deal with organizations that have already spent bucketloads of money on a piss-poor technology stack, are hurting for it, but can't seem to let go?

How do you fight Fear-Uncertainty-Doubt (FUD) spread by people who stand to lose from introducing Python?