Tutorial Program

Eight half-day tutorials were held on the first day of the conference, Monday January 24th, 2000.

Morning Sessions
8:30 till 12:00
Afternoon Sessions
1:30 till 5:00

Using Python on Windows Advanced Windows and COM
Fnorb XML
JPython wxPython
Zope for Content Managers Zope for Developers

Getting things done using Python on Windows

Andy Robinson,

This tutorial aims to give an overview of using Python to solve problems in a Windows or mixed-OS environment. Topics will include

  • How Python works on the Windows platform
  • The various IDEs and development tools
  • Integration technologies, includng processes and files; DLLs; COM and DCOM
  • Building Python COM servers and clients
  • using Python to add a scripting facility to Windows applications
  • a practical guide to automating Microsoft Office applications
  • database access
  • data cleaning, migration and transformation

Examples will focus on realistic tasks and problems encountered in a corporate IT environment. Prior experience in Python is not a prerequisite.

Advanced COM

Instructor: Mark Hammond, Windows Consultant

This tutorial will cover the advanced uses of Python with the Microsoft Component Model (COM). It will provide an overview of COM itself, then a look at the internals of Python COM and how to take advantage of most of the Python COM framework. Topics include:

  • COM, Interfaces, objects, automation objects, DCOM and COM threading.
  • Early-bound and late bound automation from Python.
  • Enumerators, Collections Events and Error handling.
  • Writing COM servers, wrapping and unwrapping objects, policies, implementing interfaces other than IDispatch.

Fnorb - The Python CORBA ORB

Martin Chilvers, Research Scientist, Distributed Systems Technology Centre

The CORBA distributed object system is becoming an important standard in developing industrial-stregnth client/server and Web applications. Fnorb is a CORBA 2.0 ORB written in Python. This makes Python/Fnorb ideal for prototyping complex CORBA architectures, for use as a scripting tool, and for building test harnesses for all your CORBA development projects. Learn how to program CORBA from Python.

Overview of Distributed Object Computing

  • client/server
  • object-oriented client/server
  • problems

Introduction to CORBA

  • motivation
  • who are the OMG?
  • overview of OMA
  • structure of an ORB


  • purpose of IDL
  • IDL basics
  • identifiers
  • basic types
  • complex types
  • interfaces
  • operations
  • exceptions
  • interface inheritance

Python mapping client-side

  • basics of mapping
  • mapping details
    • modules
    • interfaces
    • operations
    • attributes
    • data types
    • exceptions
  • ORB initialisation
  • generating stubs
  • a simple client example

Python mapping server-side

  • basics of mapping
  • implementation base classes
  • creating an implementation
  • raising exceptions
  • return values, inout and out parameters
  • ORB initialisation
  • BOA initialisation
  • generating skeletons
  • a simple server example

Common object services

  • interface repository
  • naming service

Programming XML from Python

Paul Prescod, Consulting Engineer - ISOGEN Corporation.

Extensible Markup Language, abbreviated XML, describes a class of data objects called "documents" and partially describes the behavior of computer programs which process them. XML is a subset of SGML, the Standard Generalized Markup Language, and seems to have considerable momentum behind it.

XML is primarily intended to meet the requirements of large-scale Web content providers for industry-specific markup and vendor-neutral data exchange. Over the next few years, XML has the potential to become an important tool for conveying web content in an industry-standard way.

XML JumpStart - 20 minutes

  • What is XML?
  • Where did it come from?
  • If XML is the answer, what is the question?

Component Parts of an XML system - 45 minutes

  • XML Data Models (Document Type Definitions)
  • XML Documents
  • Parsing XML
    • Validating Parsers
    • Non Validating Parsers
    • DTD Aware Parsers
  • Manipulating XML
    • Flat File Paradigm
    • Event Driven Paradigm
    • Tree Transformation Paradigm

XML and Python - 45 minutes

  • Mapping XML strctures to Python Objects
  • Parsing XML With Python
    • Non validating parsers (xmlproc, pyepat)
    • Validating parsers (xmlproc, nsgmls)

Manipulating XML with Python - 45 minutes

  • Flat file processing with RE's
  • PySAX - Simple API for XML implemented in Python
  • PyDOM - W3C Document Object Model implemented in Python
  • Some application examples

A look to the future - 10 minutes

  • XML Formatting with XSL(eXtensible Style Language) and Python
  • Hypertext Linking with XLL (eXtensible Link Langage) and Python

JPython for Python Programmers

David Ascher, Research Fellow, The Smith-Kettlewell Eye Research Institute

In this tutorial, I will aim to teach Python programmers what they need to know in order to use JPython effectively. This includes:

  • What JPython is, and how it works,
  • How JPython manages memory differently from CPython, and the consequences thereof,
  • How one installs JPython (including the JVM installation and which JVMs one should use and why),
  • How to find out about Java libraries, Javadoc, etc,
  • Running JPython, jpythonc, etc. Making class files, applets, servlets,
  • The ways in which JPython and CPython differ, including the ability to make Python methods synchronized, Unicode handling, and the library coverage,
  • The smarts JPython applies to Java libraries (bean property handling, action handling, etc.),
  • How JPython (a language with multiple inheritance but no polymorphism) interacts with Java (a language with single inheritance and interfaces and polymorphism), including issues of type conversion and type casting.
  • How to embed JPython in a Java application, and how to extend JPython with new extension modules.
  • Code examples will be used throughout to illustrate each point, including examples which use the Swing GUI library.

Working knowledge of Python will be assumed, and knowledge of Java is useful but not needed to follow the tutorial.

An Overview of wxPython

Robin Dunn, Software Craftsman

wxPython is a GUI toolkit for Python that is implemented as a wrapper around the wxWindows cross-platform C++ class library, (see the wxWindows Home Page.) This tutorial will give the attendees a basic introduction to wxPython and will give them enough knowledge to get themselves up and running with the toolkit.

Tutorial topics covered include general architecture, an overview of the commonly used classes, an understanding of the event system and how to use it, window layout techniques, and an overview of some of the application frameworks provided. The presentation will conclude with a discussion of resources available to the wxPython programmer, and a simple comparison to other GUI toolkits. The tutorial will also include several small sample applications that illustrate the concepts being presented.

Zope for Content Managers

Chris Petrilli, Product Manager for Digital Creations

This tutorial covers the use of Zope as a platform for managed content. Attendees should have a working knowledge of web browsers, HTML, and awareness of running a web server.

  • Overview of Zope
  • Installing Zope
  • Using the Zope management environment
  • Creating and managing web content in Zope
  • Introduction to dynamic pages with DTML scripting
  • Demonstration of the Zope Portal Toolkit

Zope for Developers

Chris Petrilli, Product Manager for Digital Creations

This tutorial is aimed at developers that wish to extend Zope by creating new kinds of objects or integrating external information. Attendees should be familiar with Python or other scripting languages.

  • DTML Scripting
  • Adding methods writen in Python
  • Creating products with ZClasses and Python
  • Debugging
  • Integrating relational databases