3. Test Automation for a Complex System: Technology and Social Aspects David Hancock (ARINC); Mrs. Anita L. Ewing; Karen Mishler (ARINC) 30min Beginner (audio and materials) categories: case study, testing Our team got enthusiastic about changing its test approach after PyCon 2006. Even with excellent consulting assistance and lots of motivation, it wasn't easy. Ours is a large and complex system for aviation support, with many external interfaces, and the sharpened focus on test tools and approaches has begun to pay off for us.

4. Pybots: Testing Python Projects in Real Time Grig Gheorghiu 30min Beginner (audio and materials) categories: testing, community The goal of the Pybots project (www.pybots.org) is to allow people to run automated tests for their Python projects "in real time". Testing is done every time a commit is made to the Python's subversion repository (trunk and 2.5 branch currently), with Python binaries built from the latest source.

I will talk about the setup of the Pybots buildbot farm, about the issues that the Pybots farm has helped uncover, and also about lessons learned in building, sustaining and growing an open-source community project.

5. twill, scotch, and figleaf -- tools for testing Dr. C. Titus Brown (Caltech) 30min Intermediate (audio and materials) categories: testing, web twill, scotch, and figleaf are recent additions to the suite of Python-based testing tools. twill is a simple Web-scripting framework based on mechanize that lets users automate Web browsing with a simple language; scotch is a WSGI proxy server & Web traffic recorder that lets users record and replay raw WSGI/HTTP traffic and translate it into twill script; and figleaf is a code coverage recorder and analyzer that is aimed at integration with large projects where coverage.py may be less suitable. I'll briefly discuss the genesis of the tools and their architecture, and I'll spend most of the time demonstrating how to combine these tools with others in order to build automated tests for Python projects.

I *aim* to tailor some of the examples to show their equivalent form in Python for .NET, which can access .NET classes from a modified version of CPython.

7. The State of Python Advocacy Jeff Rush 30min Beginner (audio and materials) categories: advocacy, community To present, as Advocacy Coordinator, the progress made in encouraging the use of Python, the tools and resources that are available and to seek input from the community on what needs to be done.

12. The Star Schema in Python - Analysis and Reporting without Overheads Steven Lott (CTG) 30min Intermediate (audio and materials) categories: databases Data warehousing provides some powerful tools and techniques for doing data analysis and reporting. Specifically, the star-schema (or dimensional) data model gives us a design pattern that supports flexible "slice and dice" reporting. This technique is sometimes misunderstood, making it underutilized. This paper will present the essence of the dimensional model, implemented in Python.

13. Developing Desktop Applications with Dabo Mr. Edward Leafe 45min Intermediate (audio and materials) categories: databases, gui Dabo is a 3-tier framework designed to help developers create desktop database applications in Python. This session will focus on using the various visual tools available in Dabo to create powerful rich-client applications.

16. Python In Open Pit Mining Operations Mr. Carl B. Trachte (Phelps Dodge Morenci, Inc.) 30min Beginner (audio and materials) categories: case study, engineering Several (3 to 5, 5 to 10 minutes each) examples of Python scripts applied to open pit mining applications. Each example will include a description of the engineering problem, what the script accomplished (economically and operationally), and exerpts from the script's code showing the methodology and rationale used.

The Topographica simulator (http://topographica.org) is an open source project written in Python that is actively used by computational neuroscientists to simulate the mammalian brain. The unique properties of Python allows for the rapid prototyping of visual cortex models while simultaneously providing enough speed to run the memory-intensive linear-algebra based simulations.

Developed by the University of Edinburgh and by the University of Texas at Austin, Topographica focuses on the large-scale structure and function of neurons that are visible only when many thousands of such neurons are connected into topographic maps containing millions of connections. By using the simulator, computational neuroscientists make predictions about the structure of living tissue.

As a previous developer for Topographica, I will discuss the implementation of the application as well as the open source components also used by the system. In particular, what made Python the language of choice (syntax, flexibility, GUI) and what else was needed (Weave, Numeric, PyLab).

19. Writing Parsers and Compilers with PLY David M Beazley 45min Intermediate (audio and materials) categories: parsing PLY (Python Lex-Yacc) is a 100% Python implementation of the lex/yacc toolset for Python. PLY is similar to other Python parsing efforts in that it uses a number of advanced Python features such as introspection to simplify parser construction. Moreover, PLY provides virtually almost all of the functionality found in traditional yex/yacc tools including LALR(1) parsing, good performance, extensive error checking, and useful diagnostics. This talk will provide an overview of PLY and focus on its more interesting and unusual features. In addition, I will describe some of my experiences using PLY to implement compilers, including my recollections of teaching a graduate compilers course in which students created a fully-functional compiler in Python.

20. Becoming an Open Source Developer: Lessons from the Django Project Jacob Kaplan-Moss 30min Beginner (audio and materials) categories: case study, django It almost seems like a joke: a family-owned newspaper in Lawrence, KS (population 80,000) releases an open-source web framework. It's not a joke, of course: today Django is an increasingly popular web development platform. As an open-source community Django has been incredibly successful; in Tim O'Reilly's OSCON keynote, he called Django "the new face of open source."

But it's often unclear how we got here. How did a couple of programmers at a newspaper convince management to contribute to the open-source ecosystem? How does the company justify the time its developers spend on open source? And how have we as individuals and as a business had to adapt to become better open source developers?

In this session: ten lessons in becoming an open source developer from the Django project.

25. The Absolute Minimum an Open Source Developer Must Know About Intellectual Property Van Lindberg 30min Beginner (audio and materials) categories: legal However you feel about intellectual property laws, they are an important feature of today's technology landscape. This talk will give a brief introduction to the three main areas of intellectual property law - patents, copyrights, and trademarks - with an emphasis on principles that will help keep individuals and businesses out of trouble when developing or using open source software.

27. Distributing your project with Python Eggs Dr. Stephen PAscoe (British Atmospheric Data Centre) 30min Intermediate (audio and materials) categories: packaging, eggs Python Eggs is an exciting technology that has the potential to revolutionise the way python projects are developed, distributed and installed. In some parts of the python community the revolution has already happened. This talk will cover how project authors and maintainers ensure that their code takes full advantage of what Eggs have to offer.

Make your project downloadable and installable in a single command; seemlessly handle dependencies on other projects; make managing revisions easier and much more.

31. The Wonderful World of Widgets for the Web Kevin Dangoor 30min Intermediate (audio and materials) categories: web, turbogears Tosca Widgets handle form display and validation of the input with great customizability, and can even include JavaScript and CSS for great user interfaces. Origionally implemented as part of the TurboGears framework, Tosca Widgets are easy to use, easy to make and have been re-implemented to work with any python web framework. Check out this introduction to Tosca Widgets (http://toscawidgets.org/).

32. pyweek: making games in 7 days Alejandro J Cura (Python Argentina); Lucio Torre (Python Argentina) 30min Intermediate (audio and materials) categories: games, agile The objective of this talk is to encourage people to participate in pyweek. We explain what the contest is, when it takes place, who can and does participate and why everybody should. A quick review of the most unique games is given, plus an account of the fun experience we had developing our entries. We also talk about how python is the perfect match for this kind of tight schedules, and about what the contest brings back into the python community.

33. A Program Transformation Tool for Python 3000 Jeremy Hylton 30min Advanced (audio and materials) categories: parsing, ast Python 3000 will not run some existing Python programs, primarily because many deprecated language features will be dropped. This paper describes a tool for automatically updating existing Python programs to run on Python 3000. The tool combines describes transformations at the level of abstract syntax. It also decorates the abstract syntax tree with information about raw tokens, preserving existing formatting in most cases.

34. Python and wxPython for Experimental Economics Dr. Theodore L. Turocy (Texas A&M University) 30min Intermediate (audio and materials) categories: science, gui The Economic Research Laboratory at Texas A&M University has begun using Python and wxPython to develop software to implement laboratory experiments in economics. This talk outlines why this combination has been so successful for the specific requirements of laboratory economics in general, and illustrate specifically how the code for one specific experiment is evolving into a framework of reusable components.

I'll have a chat server or a Web site where people can ask followup questions, if the Internet connectivity is sufficient (it wasn't, last year!) Otherwise, I'll open the floor up to questions towards the end.

See http://us.pycon.org/TX2007/WebFrameworksPanel for more information. 38. Python, Unicode, and Internationalization Mr. Patrick G Smith (University of Toronto) 30min Intermediate (audio and materials) categories: language, technique As Python is used more and more throughout the world, internationalization of Python programs is becoming increasingly more important. This talk discusses what Unicode is, how Python natively supports Unicode, and examines a case study of the internationalization and localization of a Python application.

39. Studying Internet Censorship: a Python case study Michelle Levesque 45min Intermediate (audio and materials) categories: case study In an increasing number of countries, significant portions of the web are being blocked from public access, from pornography to human rights sites. Studying what is being blocked and how the filtering occurs is a complex cat-and-mouse game involving rapidly changing requirements and restrictions. This presentation will examine how Python is providing the researchers with an advantage and demonstrate an example of Python being used to do some good in the world.

40. Embedding Little Languages in Python Dan Milstein 30min Intermediate (audio and materials) categories: technique Python offers excellent support for creating Domain-Specific Languages and embedding them in your programs. This talk will explore python DSL's by developing several detailed examples of little languages for specific problem domains: testing web-facing servlet code; generating and processing HTML forms; sending email notifications in a workflow system. The focus will be on looking for ways to turn a complex, imperative program into a simpler, largely declarative specification.

41. Securing Python: "Protecting the interpreter from code wielding fresh fruit." Brett Cannon 30min Intermediate (audio and materials) categories: security, core Python currently has no security model. This talk discusses why this is and how I am fixing the problem. 42. Python-Dev Panel : "We make the things that make Python work." Brett Cannon 45min Beginner (audio and materials) categories: panel, core A discussion panel consisting of members of the Python development team answering any and all questions tossed at them (in a hopefully cogent manner).

45. Writing a Python Extension module in C++ using Swig Monty Taylor (MySQL) 30min Advanced (audio and materials) categories: extensions We will step through a fully functional example of how to write, build and use an extension module in C++ using swig. A portion of the NDB/Python bindings will be used as example source code, although they will not be the focus of the talk.

46. Packaging Python apps for Linux Distributions Monty Taylor (MySQL) 45min Intermediate (audio and materials) categories: packaging An overview of packaging Python libraries and tools for the major distributions. We will cover use of setuptools and eggs, and how those interact with deb and RPM packages. Attention will be given to recent Debian decisions such as the use of python-central, as well as strategies for packaging for multiple distros.

47. SQLAlchemy -- the Front-to-Back database toolkit Mr. Mark R Ramm-Christensen 45min Intermediate (audio and materials) categories: databases SQLAlchemy (http://www.sqlalchemy.org) isn't just a ORM, it's a next generation, full-stack SQL Toolkit. The talk explores how to use SQLAlchemy to perform all kinds of database acrobatics at various levels.

49. Iterators in Action Jim Baker 30min Intermediate (audio and materials) categories: language, technique Using iterators well can make your code lean and your programming fun. We will distill current best practice by investigating some (mostly) useful examples of iterators in action.

50. Interactive Parallel and Distributed Computing with IPython Dr. Brian E Granger (Tech-X Corporation); Fernando Perez (University of Colorado at Boulder) 30min Intermediate (audio and materials) categories: science, concurrency One of Python's strengths is that it can be used interactively. In this talk I will describe recent developments in the IPython project (http://ipython.scipy.org) that extend Python's and IPython's interactive capabilites into the realm of parallel and distributed computing.

The architecture we have developed allows parallel and distributed applications to be developed, debugged, tested, executed and monitored in a fully interactive manner.

Many styles of parallelism and concurrency are supported including traditional message passing (using MPI), task farming, shared memory and custom approaches as well. This flexibility makes it easy to incorporate existing parallel codes and libraries as well as quickly design novel parallel approaches and algorithms.

I will talk about the design and implementation of the architecture, detail its basic usage and provide examples of more sophisticated usage scenarios. 51. Why and when to use ctypes? Mr. Mike C Fletcher (VRPlumber Consulting Inc.) 30min Intermediate (audio and materials) categories: extensions Experiences in wrapping a large set of C APIs using the ctypes Foreign Function Interface are presented to provide guidance to other developers considering using the technology for their own projects. 52. Understanding and Using NumPyDr. Travis E Oliphant (Brigham Young University) 45min Beginner (audio and materials) categories: science NumPy is the next-generation array object that inherits from the Numeric code-base and incorporates the features of Numarray. Its purpose is to effectively combine the two array objects into one. This talk will summarize the history of array objects for Python and describe NumPy and how to use it, including some of its new features. More information is available at http://numpy.scipy.org55. Towards and Beyond PyPy 1.0 Mr. Michael Hudson (Heinrich-Heine Universität Düsseldorf) 45min Intermediate (audio and materials) categories: implementations I will describe PyPy, the implementation of Python in Python, focussing on the new features implemented since the last PyCon and the progress made towards a release we will be happy to call "1.0", and maybe speculate a little on what the future holds. 56. Using Python Eggs Dr. Stephen PAscoe (British Atmospheric Data Centre) 30min Beginner (audio and materials) categories: packaging, eggs This, first in a series of 2 talks on Python Eggs will, demonstrate how Eggs can completely change the way you install python software. After mastering the basics of the easy_install command you need never hesitate in "trying out" new packages again. The talk will also provide a taster for advanced features covered in the remaining talks and take you on a tour of the python cheeseshop (http://cheeseshop.python.org).

57. State of Zope Panel Jim Fulton (Zope Corporation) 30min Beginner (audio and materials) categories: web, zope This has been a big year for Zope. The Zope Foundation was formed. Zope 3 technology continued to mature and have a greater impact on Zope 2. Python technologies, like WSGI and Python eggs are making it easier for Zope to be used with other Python web frameworks.

This panel will provide a number of perspectives on the events of the past year and on plans for the coming year. the next year from a number of perspectives.

58. Testable network programming via the Network Gateway Interface Jim Fulton (Zope Corporation) 30min Intermediate (audio and materials) categories: testing, network The Network Gateway Interface (NGI) allows tests for network applications to be written much more easily by separating application code from low-level network calls. Tests need not create network connections, threads, or processes. This talk will present the NGI and discuss it's strengths, limitations, and current status. A small NGI application used in production at Zope Corporation will be presented in detail to illustrate the NGI's use and benefits.

59. Creating games with Pygame on the GP2X Mr. Frank K Wilder 30min Beginner (audio and materials) categories: games, handheld This talk will be about the challenges and opportunities of game development on the GP2X (an open-source, Linux-based handheld video game console) using Pygame.

60. IPython: getting the most out of working interactively in Python Dr. Brian E Granger (Tech-X Corporation); Fernando Perez (University of Colorado at Boulder) 30min Beginner (audio and materials) categories: ide, gui, shell IPython (http://ipython.scipy.org) is an enhanced interactive shell for Python. It provides a large number of features not found in the default shell that make interactive work in Python more seamless and convenient.

These features include: full access to the OS, sophisticated tab-completion and object introspection, and easy access to debugging and profiling tools. All of these features are customizable by the user. It also offers support for interactively working with all major GUI toolkits from the command line.

This talk will outline the basic ideas and major features behind IPython and demo some of them directly.

61. Easy Creation of Interactive Tutorials Dr. Andre Roberge 30min Intermediate (audio and materials) categories: education, tutorial, web In this talk, I will illustrate how a Python program (crunchy.sourceforge.net) can be used to transform easily static html-based tutorials into interactive sessions. Two types of interactive tutorials will demonstrated: those that teach about learning to program in Python, and those that teach about using a given module. 63. Creating the WhatWhat Project with TurboGearsJonathan LaCour30min Intermediate (audio and materials) categories: web, turbogears, project WhatWhat Status (http://cleverdevil.org/whatwhat) is a simple approach to project status tracking. It was developed at Optio Software to fill a real need, and is used there on a day-to-day basis. WhatWhat is built on top of the fantastic TurboGears web framework in the Python Programming Language. In 2006, Optio decided to release WhatWhat as an open source project.

This talk will review the functionality of the WhatWhat project, and how TurboGears made it possible to create WhatWhat in a matter of weeks, exploring every layer of the application's MVC (model-view-controller) stack.

64. How I Wrote a Python App and Got $5 Million Mr. Mark R Hinkle; Erik A Dahl; Shaun Howard 30min Intermediate (audio and materials) categories: case study, zope, twisted Zenoss CTO Erik Dahl, will discuss how he developed his Python-powered commercial open source monitoring tool and specifically why he chose Python over other technologies. 66. WSGI: An Introduction Mr. Ian S Bicking (The Open Planning Project) 45min Intermediate (audio and materials) categories: web WSGI is the Web Server Gateway Interface, a Python standard for representing HTTP requests. WSGI provides a flexible, cross-framework, and very stable way to combine web-related code. The kind of code that can be integrated includes web applications, servers, app servers like Zope, authentication systems, styling, debugging tools, and more. Especially the last year has seen an increase in WSGI-based components for a variety of tasks.

This talk will introduce the basic technical concepts of WSGI, and then discuss the architectural options available in a WSGI stack and how you can use the basic techniques and extensibility of WSGI to add functionality to a stack.

67. Good-bye Hello World: Rethinking Teaching with Python Dr. Vern Ceder (Canterbury School) 30min Beginner (audio and materials) categories: education, k-12 In spite of introducing all of our high school students to programming with Python, interest in our programming classes was flat. A survey revealed that 95% of our students hated the Python programming unit. Some experimentation lead to throwing out some dearly held beliefs about what a first exposure to programming (and Python) should be, and student attitudes toward the programming unit have dramatically changed.

69. Python on Parrot -- under the hood Dr. Patrick R. Michaud 45min Intermediate (audio and materials) categories: implementations Parrot is a virtual machine environment that is being developed to support dynamic languages such as Perl, Python, Ruby, JavaScript, and many others. This talk provides a detailed description of the architecture of Parrot, its compiler tools, and the implementation of a Python compiler for Parrot.

70. Accessing and serving scientific datasets with Python Roberto De Almeida 30min Intermediate (audio and materials) categories: databases, science The Data Access Protocol (DAP) is a HTTP-based data transmission protocol designed specifically for science data and widely used in the oceanography, meteorology and climate communities. The DAP is currently used by several institutions to serve hundreds of scientific datasets that can be remotely accessed by different clients, in a transparent and efficient manner regardless of storage format.

Pydap (http://pydap.org) is a pure Python implementation of the DAP, written from scratch. Pydap can be used as a DAP client to inspect an retrieve data from any DAP served dataset. This way, remote datasets can be introspected by the client before any data is retrieved, allowing the user to download only the desired variables and for the area and period of interest.

The module also implements an extensible DAP server as a WSGI application (http://www.python.org/dev/peps/pep-0333/). The server supports different data formats (netCDF, CSV and Matlab files and SQL databases) through a simple plugin interface based on setuptools' entry points, and can be easily deployed using Python Paste (http://pythonpaste.org). 72. SQLSoup Jonathan Ellis 30min Intermediate (audio and materials) categories: databases SQLSoup is a SQLAlchemy extension that exposes much of the power of SQLAlchemy with a minimal learning curve and a very close correlation with SQL constructs.

76. Using Stackless Andrew Dalke (Dalke Scientific Software) 45min Intermediate (audio and materials) categories: concurrency Stackless: What is it, how to use it, and why.

Stackless Python is modified version of CPython with support for tasklets; also called microthreads, fibers or green threads. Tasklets are an additional way to implement multithreading but with much lower overhead than system threads. They take fewer system resources so a Stackless environment may have tens of thousands of active tasklets instead of at most a few hundred threads. Context switching and inter-tasklet communication via "channels" are fast, making Stackless a useful platform for developing dense multitasking systems. The best known example is the game EVE Online with 30,000+ simultaneous users in the same environment. 77. IronPython: Present and futures Mr. Jim Hugunin (Microsoft) 45min Intermediate (audio and materials) categories: implementations IronPython (http://codeplex.com/ironpython) is an implementation of the Python language targeting the Common Language Runtime. IronPython has excellent performance, seamless integration with the .NET platform and very high compatibility with the standard Python implementation. The first public talk on IronPython was at PyCon 2004, three years ago. Since then, IronPython has progressed from a rough prototype to a 1.0 release with a vibrant user community. This talk will present the present state and future directions of this Python implementation.

78. soaplib: an easy-to-use python soap library Aaron I Bickell 30min Beginner (audio and materials) categories: web Soaplib is a very easy to use and powerful python soap library written at Optio Software. It will be open-sourced before PyCon '07.

79. Python and vim: Two great tastes that go great together. Sean Reifschneider (tummy.com, ltd.) 30min Beginner (audio and materials) categories: gui, ide, shell The vim editor includes extensive abilities for customization and scripting. In addition to it's own simple macro language, vim also supports calling Python code. This Python code has access back into vim for manipulating the edit buffer as well as running normal vim commands. Examples demonstrated in this talk will include automatically detecting indentation style (tabs/N spaces), automatic update of DNS "serial" numbers when editing DNS zone files, mail alias tab-expansion, and a time tracking application using a "domain specific vim" as the user interface.

80. Galaxy: A Python based web framework for comparative genomics Dr. James Taylor (Courant Institute) 30min Intermediate (audio and materials) categories: science, biology, web This talk will discuss the use and implementation of 'Galaxy' (http://g2.bx.psu.edu), a Python based framework for integrating comparative genomic analysis tools.

83. You vs. The Real World: Writing Tests With Fixtures Kumar McMillan30min Intermediate (audio and materials) categories: testing One of the biggest challenges of testing is creating an environment akin to the real world that your code lives in. This talk will focus on general strategies for tackling the problem and then will move into specific examples using the fixture module for setting up and interacting with data stored in databases and other storage media.

The goal of the talk is to promote better code coverage in tests, more maintainable test suites, and techniques for easy and painless refactoring.

85. The Essentials of Stackless Python Mr. Christian Tismer 30min Advanced (audio and materials) categories: concurrency, coroutines As a surprise for people who think they know Stackless, we present the new Stackless implementation For PyPy, which has led to a significant amount of new insight about parallel programming and its possible implementations. We will isolate the known Stackless as a special case of a general concept.

This is a Stackless, not a PyPy talk. But the insights presented here would not exist without PyPy's existance. 86. Python for Visual Effects and Animation Pipelines: A Case Study of Tippett Studio's JET Russell Darling (Tippett Studio) 30min Intermediate (audio and materials) categories: case study, animation JET is a Python-based system comprised of software tools and scripts used to implement a visual effects and animation pipeline .

In this presentation we will show what we've learned while building such a system at http://www.pollingpoint.com. We will provide a specific end-to-end example of how to make a Python web application scale up to handle high load.

When I was asked to replace a vendor-supplied reminder web application with a more robust and sophisticated Python service, two of the most fearsome requirements involved better handling of event recurrence and time zone support. Luckily, I happened across Gustavo Niemeyer's dateutil (http://labix.org/python-dateutil) package at exactly the right time; it quickly became the indispensable core of AG Interactive's new calendaring service, catering to over three million users on AmericanGreetings.com and BlueMountain.com .

I'll illustrate dateutil's capabilities, how I used it to solve some of my tricky problems, and share some interesting adventures I had with it along the way.

90. Developing Python applications in Komodo 4.0 Mr. Todd Whiteman 30min Intermediate (audio and materials) categories: ide Komodo 4.0 is a Mozilla based IDE designed for scripting languages, primarily supporting Python, Perl, PHP, Ruby, Tcl and now JavaScript. It features code assistance technologies to aid in the rapid development of applications, debugging analysis to provide informative run time inspection, project management to help maintain code bases and to keep it organized and accessible, as well as providing a multitude of tools to assist in common programming tasks.

Todd, one of the authors of this IDE, will take you on a tour of all the features available to Python developers using Komodo as well as covering how Komodo itself makes use of Python internally.

Todd Whiteman is a Developer at ActiveState Software Inc and has been actively working on the Komodo IDE for the past 15 months.

91. Unit testing with mock objects using PyMockjeff m younker (Data Pipes) 30min Beginner (audio and materials) categories: testing This is an introduction to mocking object behavior in unit tests using the PyMock module http://www.theblobshop.com/pymock. There is a brief overview of mocking, a summary of existing python mock objects modules, and a recounting the common tasks to be accomplised using mocking and how they can be accomplised using PyMock. 92. Write Less Code with XRC for wxPython Matt Boersma (Array BioPharma) 30min Intermediate (audio and materials) categories: gui Learn an easier way to do GUI layout using wxPython's XML-based resource system.

93. Jython for Python Developers Frank J Wierzbicki (Jython) 45min Intermediate (audio and materials) categories: implementations, jython Jython (http://www.jython.org) is an implementation of the Python programming language designed to run on the Java Virtual Machine.

This talk will focus on using Jython to natively access JVM libraries from Python.

94. Software Development with Trac Mr. Matthew Good 30min Beginner (audio and materials) categories: project Trac is an enhanced wiki and issue tracking system for software development projects. This talk will introduce users to using Trac to integrate their issue tracking and version control, use plugins for automated builds and testing, and demonstrate how to extend Trac with new plugins.

http://trac.edgewall.org/95. Writing Your Own Python Types in C Mr. Jack Diederich (Psynchronous Communications, Inc) 30min Intermediate (audio and materials) categories: extensions Hand writing C versions of your important Python classes isn't a mystery - or shouldn't be. This talk translates what you know about writing python classes to their lower level C equivalents. By example a Sudoku solver (everyone's favorite play thing) will get a 30% speedup by writing a from-scratch version of Python's set() in 300 lines of C.

96. PyDX: mathematics is code Mr. Simon Burton (EWT LLC. and The Australian National University) 30min Intermediate (audio and materials) categories: science PyDX is a package for working with calculus (differential geometry), arbitrary precision arithmetic, and interval arithmetic.

97. Parsing revisited: a grammar transformation approach to parsing Ernesto Posse (School of Computer Science - McGill University) 30min Advanced (audio and materials) categories: parsing We present a new parser generator for Python applications called "aperiot" based on grammar transformation. This approach retains the complexity and performance advantages of LL(1) parsers while allowing to parse a large set of non-LL(1) grammars and without imposing a lookahead limit. We demonstrate the practicality of this approach with a case-study of a realistic language.

101. Embedding Jython applications in a Firefox Extension Mr. Ed Brannin; Dr. Jonathan I Schull (Rochester Institute of Technology) 30min Beginner (audio and materials) categories: packaging, jython This summer, I embedded a Jython-based web service in a Firefox extension. This talk (and accompanying files) will show how to do the same, particularly focusing on: - embedding Jython in a Java app, - porting a (fairly simple) CherryPy-based web service to Jython - common pitfalls, such as Jython quirks and where to store files, - and any other Really Nifty applications or techniqutes that I discover before February.

102. Python for Students of the Modern World Dr. Andrew Harrington (Loyola University Chicago) 30min Beginner (audio and materials) categories: education, university I teach liberal arts students brought up in the information age. I expose them to the computing discipline and show them the power and enjoyment they can have using my Hands-on Python Tutorials, http://www.cs.luc.edu/anh/python/hands-on. The tutorials require active interaction and provide examples involving graphics, text processing, and dynamic web pages. I use Python as a tool to illuminate various parts of computer science.

103. Weaving Together Women and IT Anna Martelli Ravenscroft 45min Beginner (audio and materials) categories: advocacy, community Women are woefully underrepresented in IT in general, and programmin and other higher-level IT areas in particular. Further, this is not merely a United States problem, but is worldwide: with few exceptions, women represent less than 30% of the IT workforce, primarily in the lower-skill areas, while comprising approximately half of the workforce. Even worse, the rate of undergraduate admission of women to CS majors has been trending downward. This deplorable situation has many causal factors, and has been studied extensively since the 1980s, yet the underlying causes are not clear. No single presentation can address all the factors, or all aspects, from K-12 to university undergraduate and graduate studies, to job and career development and retention. This presentation will focus primarily (but not exclusively) on entry to IT.