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
- Dynamic modules are one of the most attractive features of modern scripting languages. Dynamic modules motivate programmers to build their applications as small components, then glue them together. They rely on the runtime linker to assemble components and shared libraries as the application runs. MONDO, a new debugging tool, provides programmers with the ability to monitor in real-time the dynamic linking of a program. MONDO supplies programmers with a graphical interface showing library dependencies, listing symbol bindings, and providing linking information used to uncover subtle programming errors related to the use of shared libraries. The use of MONDO requires no modification to existing code or any changes to the dynamic linker. MONDO can be used with any application that uses shared libraries.
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.
