This wiki is in the process of being archived due to lack of usage and the resources necessary to serve it — predominately to bots, crawlers, and LLM companies. Edits are discouraged.
Pages are preserved as they were at the time of archival. For current information, please visit python.org.
If a change to this archive is absolutely needed, requests can be made via the infrastructure@python.org mailing list.

Speakers by First Name, with Presentation Titles

Note to speakers welcome to PyCon - Feel free to edit the section for your paper, or to start a PyConYourName page dedicated to just your paper(s) - Thanks to AndrewKuchling for adding synopses to most presentations - SH

If you have multiple talks scheduled too closely together (see http://www.python.org/pycon/pycon-schedule.html), send e-mail to Neal Norwitz (neal@metaslash.com).

Steve Holden

Introduction from the Chair

Please see PyConSteveHolden for an example CategoryPyConSpeakerPage page. The chairman's introductory remarks will now probably given at the end of the conference :-)

Aahz

Threads tutorial

This tutorial will walk through Python's threading model, emphasizing an understanding of the Global Interpreter Lock (GIL), then show how to create threaded applications using "brute force" threads and Queue.Queue.

Aahz

Objects vs classes

This tutorial is aimed at beginning/intermediate Python programmers who want to solidify their understanding of Python's object system. I'll be using new-style classes to illustrate various aspects, so you should read http://www.python.org/2.2.2/descrintro.html (you don't have to understand all of it). Although the C API won't be discussed directly, this tutorial should be especially useful for people who intend to use the C API, because I'll be discussing Python's memory management at some length.

Allen Short

Twisted Reality: A Flexible Framework for Virtual Worlds

Modelling virtual worlds flexibly in object-oriented languages has historically been difficult; the issues arising from multiple inheritance and order-of-execution resolution have restricted the sophistication of existing object-oriented simulations. Twisted Reality avoids these problems by reifying both actions and relationships, and avoiding inheritance in favor of automated composition through adapters and interfaces.

Benjamin Saller

CMFTypes: Next Generation Content Type Development for Zope 2

CMFTypes is an attempt to simplify the creation of new content types under the Zope 2 and the Content Management Framework (CMF). Many content management projects involve introducing new types of content which in the non-trivial case requires an informed understanding of how Zope and the CMF work. CMFTypes attempts to provide a simple, extensible framework that can ease both the development and maintenance costs of CMF content types while reducing the learning curve for the simpler cases.

The Zope/CMF world is populated with many projects that deal with content types. Most of these deal with one or two aspects of content management, mainly specifying what data constitutes a type and what might serve as acceptable source data for populating a content object. By these I mean defining what fields make up a type (body, teaser, etc) and products that deal with converting rich original content (Office Products, PDF, Docbook, etc) into web ready forms.

CMFTypes provides a framework that tries to provide some layering between concerns and provide a reasonable set of default policy and integration with Zope's leading CMF implementation, Plone (www.plone.org).

Brett Cannon

Using ReStructured Text (reST)

Go to PyConBrettCannon to let your questions, comments, etc. about this tutorial be heard!

Brian Warner

BuildBot: build/test automation

The BuildBot is a system to automate the compile/test cycle required by most software projects to validate code changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not. Warning counts, lint checks, image size, compile time, and other build parameters can be tracked over time, are more visible, and are therefore easier to improve.

The overall goal is to reduce tree breakage and provide a platform to run tests or code-quality checks that are too annoying or pedantic for any human to waste their time with. Developers get immediate (and potentially public) feedback about their changes, encouraging them to be more careful about testing before checkin.

Check out PyConBrianWarner for more details about this presentation.

Brian Warner

Perspective Broker: "Translucent" Remote Method calls in Twisted

One of the core services provided by the Twisted networking framework is "Perspective Broker", which provides a clean, secure, easy-to-use Remote Procedure Call (RPC) mechanism. This paper explains the novel features of PB, describes the security model and its implementation, and provides brief examples of usage.

Check out PyConBrianWarner for more details about this presentation.

C. Donour Sizemore, Jacob R. Lilly, and David M. Beazley

MONDO : A Shared Library and Dynamic Linking Monitor

Project details are available at our Project Page.

Chetan Gadgil

KOBRA - .NET (Wrapper) for Python

Please see PyConChetanGadgil for details.

Christopher Armstrong

Managing the Release of a Large Python Project

Twisted is a Python networking framework. At last count, the project contains 60,000 lines of effective code (not comments or blank lines). When preparing a release, many nits must be checked, and many steps must be followed. We describe here the technologies and tools we use, and explain how we built tools on top of them which help us make releasing as painless as possible.

See PyConChristopherArmstrong for more info.

Christopher Blunck

Python in a Rapid Development Environment

SkipWare is a series of extensions to standard Internet transport protocols that, when installed on a network device, maximizes link utilization and reliability in a stressed transmission environment. It has been developed collaboratively between GST and Comtech: GST provides the software and Comtech provides the hardware. Although SkipWare is an implementation of SCPS (Space Communication Protocol Standards), a graphical user interface is required to specify configuration settings that impact overall system performance. Given that the product forwards IP (Internet) traffic, a web-based client was the most feasible interface for our customers.

Because the interface requirements were soft and time was short, we approached the interface with a rapid development mentality centered around constant customer feedback. A language decision had to be made, and we had the following choices (primarily due to our experience): C, PHP, Perl, Java, Python. This paper examines our reasons for selecting Python and discusses the effect on the project.

Dana Moore

Subversion from Within. Python in a Java world Slides at: PyConDanaMoore Our goal in this paper and tutorial proposal is to preach to the unconverted rather than reinforce what some of us already know to be true - that lightweight languages and Python in particular are transformational and illuminate a path for the future of application design and delivery. We note with some concern that the emergence of the Java programming language as the "COBOL of a new generation" often clouds the thinking of system designers and developers. Too many designers and developers simply cannot think in terms of lightweight languages as the vehicle for delivering sophisticated and complete systems. This paper and presentation suggests a "embrace and replace" strategy for co-existing with languages such as Java with the eventual goal of replacing their functionality altogether.

We conduct a survey of strategies for Python and Java co-existence with discussion and practical demonstration.

We suggest that in the next generation internet, there is a crucial need for Python scripting as the way to provide the "glue" for distributed applications, to support fast and loose prototyping, and indeed to create applications themselves. Many in our target audience may not consider =scripting languages to be first class application vehicles, but with Java objects as invocation targets for scripting languages and Java applications as a launch platform for dynamic scripting, it is an exciting recipe for building rapid prototypes and even next generation applications.

This paper and tutorial session will explain the how and why. In particular, we focus on: Java and Python together (Jython) and discuss and demonstrate distributed applications using Java and Python via JXTA and Jabber, turning native applications into services, and creating conversational knowledgebots with Python, ECMAScript and Java.

David Abrahams

Introducing Boost.Python

Boost.Python is a free C++ library which provides a concise IDL-like interface for binding C++ classes and functions to Python. Leveraging the full power of C++ compile-time introspection and of recently developed metaprogramming techniques, this is achieved entirely in pure C++, without introducing a new syntax. Boost.Pythons rich set of features and high-level interface make it possible to engineer packages from the ground up as hybrid systems, giving programmers easy and coherent access to both the efficient compile-time polymorphism of C++ and the extremely convenient run-time polymorphism of Python.

David C. Morrill

Traits: A New Way of Adding Properties to Python Classes

Python is a weakly typed language, which as any experienced Python programmer knows has both good and bad points. In this paper we discuss 'traits', a new Python package whose goal is to help address cases where weak typing leads to problems. In particular, the motivation for creating traits came as a direct result of work done on Chaco, an open source scientific plotting package.

David C. Morrill

Chaco: A Python Plotting Package for Scientists and Engineers

With packages such as Mathematica and MatLab, scientists and engineers already have a variety of high-quality plotting capabilities available to them. However, if you are a scientist or engineer who is also a Python user, or you are working with a limited budget, your choices are more limited. Chaco is an open source and freely available plotting package being developed to address many of the plotting needs of the scientific and engineering communities.

Dean W. Hall