Session Minutes, Tues 6/4
Robin Friedrich Conference Chair - Introductions
- History of the Python Conference
- On-line catalog of past and present
- 4th meeting, 1st three were workshops
- Tutorials first day, three days seminar
- Uses Python as a glue language for
gluing tools together
- Found Python when searching for languages,
object oriented, and free .
- Convinced NASA that this free language
was worth using (not an easy task as NIH is rampant)
- This year has had the largest growth of users
- The first Python book will be published real soon now.
Mark Lutz - The O'Reilly Python Book
- Programming Python
- Starts with a picture of the cover (picture of snake)
- Status - O'Reilly has converted to SGML
- August release date
- Book will have a CD rom
- Book is really big (around 600 pages)
- tutorial - scripts, functions, examples
- extending, embedding, tkinter, ...
- language & text, parser
- Politically incorrect conclusion as to why Python is better
then everything else
- Been a two year project
- CD should have everything from the FTP site, pythonwin, ...hopefully Grail
- O'Reilly is the primier publisher for books of this kind, much marketing
- Book itself *may* be on the CD rom
- Q: Would you write another?
- A: Maybe if O'Reilly gives me a million dollar advance like Joan
Collins got for her last book
- Q: Joan Collins wrote an O'Rielly Book? :-)
SIGs in Progress
- Database - Greg Stein
- SIG was started back in 3rd conference
- utility classes to manage tuples returned by databases
- Semi-complete API for Informix, Oracle, and ODBC modules
- Problem now is ownership issues of the work... not on python.org
- Comment: Paul Dubios: I've just succeeded in convincing LLNL to release the python
modules written by his group for free and general use.
- Python is very nice for database retrieves in that its 'typeless'. Data from a
row can be returned in a tuple without, explicitly typing the return container values
- Some stuff (like stored proceedures) are faster with the native database tools
instead of using the thin Python layer.
- API simply 'exposes' the database, and does not try to do any 'extras'.
- Q: how does the API compare to the MSQL interface
- A: MSQL is much simpler. No cursors, no input binding.
- Connecting to the database is accomplished via a constructor which you
- pass a 'login string'.
- GUI &
- Very little GUI-controvery activity in the last 6 months
- Last workshop we had the GUI back-off
- Guido presented Tk
- Jim presented wpy
- Those two were selected to be distributed with Grail
- Others used: wxWindows (big but runs on many, many platforms), Pythonwin
- 80% of windows users still use 3.11.
- Many companies cannot decide between NT and 95
- Grail being ported to the Windows platform by Roger Masse...
word is it's pretty stable and performs well. (requires 32 bit model)
- Tk on Windows is still Motif look & feel.
- MAC port of Grail underway also by Guido.
- MAC is not quite as stable as Windows.
- Grail on both the MAC and Windows have pretty big memory footprints
- Q: What about a GUI builder?
- A: Yes, that would be great! :-)
- Documentation &
Web - Michael McLay
- Two low bandwidth SIGs
- Documentation - Jim Fulton's work at Digital Creations
- Paul Dubois and Jim Hugunin are against docstring tools
and code that requires docstrings because of the extended load time.
- Guido: It's quite possible to have a modification for a future Python
to have a choice of reading docstrings from a different file if you want
them.... lets talk about this more at the Thursday SIG meeting...
- Web - A couple of new tools
- Imaging - Fred Drake
- Standin for Frederick Lundh
- Four libraries have been produced for Python
- GD - Gif drawing library, used in Web based applications
- IMG - Reads and writes a variety of image formats and a
display for MAC and UNIX
- Interface to Khoros imaging system
- PIL - Python Imaging Library - provides alot of documentation
and support for reading and writing several
formats. Also providing
an infrastructure for transforming images... (cut, paste, others).
PIL runs under windows and UNIX. Supports alpha channels for
transparency. Tied into the new Matrix class. Being ported to
Mark Hammonds Pythonwin (currently available in early beta
in the form of a .pyd file). Can display in Tk widgets without much problem.
Able to print images nicely.
- Numeric Python - (Matrix
SIG) - Jim Hugunin
- Currently version 0.36
- Many successful beta releases
- Final design is complete
- Public release any day now
- Object in C that handles arrays very efficiently
- Some python code that operates on these objects
- Many other extensions will follow: OpenGL, FFT,
- Three extensions to Python (Slated for 1.4 plus complex numbers)
- a[1:2, :-1:2]
- a[..., 2]
- Requires a modified Python... working with Guido for inclusion in
a future release
- Currently 52 individual members
- 7 Corporate members
- Need some new ideas to increased membership
- Increase the fee $10 and add a T-shirt
- Give people more of a feel for what they get
- Distribute a CD rom for corporate memberships...
Python 1.4 and Beyond - Guido van Rossum
- 1.4 will be released soon after the workshop
- Jim Hugunin's matrix mods will come in a later release
- Complete summary.
Martin Chilvers (David Arnold, Andy Bond, Martin Chilvers,
- What is a Naming Service?
- Names associated with objects - binding
- Objects are found, given their name - resolution
- Usually buried inside applicatins, e.g. filesystem or a spreadsheet
- Problem: essential naming operations obscured
- Problem: many different interfaces
- Composite Names
- Names that span multiple naming services
- Unix 'rcp' command 'myhost:/usr/bin/python'
- myhost and /usr/bin/python are in different
- Excel on the MAC 'mydisk:timesheet:feb-96!$b$4'
- mydisk:timesheet:feb-95 and $b$4
- Problem: different rules for composition
- Problem: applicatins support specific name services
- What is a Federated Naming Service?
- Collection of cooperating name services
- Provide a common interface to naming operations
- allow resolution of composite names
- X/Open Federated Naming
- XFN: framework for federation of new and existing name
- Single uniform naming interface, lookup, bind, unbind, rename, etc
- protocols: DCE, ONC+
- Names are bound to references to objects!
- An implementation in Python
- Problem: the XFN spec is Object based vs. Object Oriented
- Provides a XFN API
- Provides abstract datatypes
- Provides XFN protocols
- Why we chose Python
- XFN is a large complex spec, allowed rapid prototyping
- Federation with C world, C extension modules
- XFN datatypes easy to build in Python: dictionaries, persistence
- Future work
- Implement one of the XFN protocols, DCE, ONC+, (TCP/IP)
- Add optional aspects of the XFN model
- XFN applicable to a large class of naming problems
- XFN can federate with almost any other naming system
- Python very extensible
- Would have hated to do this in C!
- More info: Read the XFN spec :-() or
e-mail the Hector team:
David Arnold (David Arnold, Andy Bond, Martin Chilvers, Richard Taylor)
- Distributed Objects: Systems
- Operating systems: Amoeba, etc
- Distributed environments (middleware)
- related areas
- Hector is focused on Middleware
- Distributed Objects: Features
- Interface Description Language used to generate stubs
- Some code needed for location, connection info for the server
- Distributed Objects: Scalability
- Heterogeneity, language, OS, Communications protocols
- Wide variety of Services available
- DCE works OK on a LAN, but poorly on the Internet
- Distributed Objects: Hector
- is a meta-middleware system
- implemented at a more abstract level than CORBA
- apply a policy once, and it persists for the entire interaction
- With CORBA, if corba breaks, your app breaks
- With Hector, if CORBA breaks, it finds something else
- Hector: Overview
- Hector capsule : a lightweight container
- Similar to an ORB
- Language Layer: Python, C++
- Encapsulation Layer:
- Offer: can export, withdraw
- Binding: define the roles and
communications of an application,
biggest and most complex class in the
system. The constructor takes as
arguments one or more offers .
- Interaction: abstraction for messaging,
roles and connections, ordering controlled
by a state machine. e.g. RPC, Stream
- Communication Layer: Abstraction of real communications protocols.
Classes: Protocol, EndPoint, Address Currently use UDP, working on
HTTP and others
- Hector: Services
- Naming, authentication, trading, type managment, banking,
relationship repository, policy, privacy
- Similar to CORBA services
- Hector: Tools
- Binding Editor
- define roles and connections
- build state machines
- Capsule Browser
- Services: types, trader, names
- Hector: Why Python?
- initially started in C, took two years to get 20% of what we have now.
- Too big and static
- Looked at C++ but saw few benefits
- Python: good integration with OS
- Garbage collection (well reference counting)
- Hector Kernel written in Python
- Some C modules
- 13000 lines of code
- 8 months of development
- Web site