In the first part of the presentation, I will be reporting on the release of the OpenGL bindings for Python, work done in collaboration with Jim Hugunin, Mike Harsthorn and Tom Schwaller.
In the second part of the presentation, I will present some of the ways Python has been used at Brown in the fields of psycholinguistics, neural network modeling, and vision research.
This will include a number of semi-generic classes for working with Linux configuration files.
Two source formats are supported: extended Python format strings, and HTML with markup that uses server-side-include syntax. When document templates are attributes of objects published with the Python Object Publisher (Bobo), then Bobo treats the templates as as methods and binds then to their associated objects when they are called to output text; the document template source may then refer to object attributes. HTML document templates provide a web interface that supports through-the-web editing and management of document source.This paper will provide an overview of Document Templates with simple examples of HTML methods taken from an application written for the Python Software Activity (PSA). Providing persistence for World-Wide-Web applications, Jim Fulton
Insertion of data with application-defined formats, such as date-time formats,
Automatic evaluation of python functions and methods,
Nested documented templates,
Conditional insertion,
Iterative insertion, by iterating over python sequences, including support for browse by batch, and
Automatic computation of summary statistics when iterating over sequences.
On-demand object activation,
Delay of loading object data until needed, to speed activation,
Support for persistent sub-objects that are retrieved and updated independently from containing objects,
Management of multiple object versions and loging of object changes,
Simple transaction management that rolls back object updates when errors occur.
The modules currently use a very simple data format. All data changes are made by appending new revisions to the end of the file, reducing opportunities for file corruption.
This paper will provide an overview of the persistence modules and their interaction with the Python Object Publisher (Bobo), with a simple example taken from an application written for the Python Software Activity (PSA). The paper also presents limitations and issues arising from the use of the Python pickle mechanism and steps taken or planned to address them.
Digital Creation's Inter-Language Unification (ILU) Requestor,
Open Market's Fast CGI, and
Digital Creation's Persistent CGI
The paper discussed how support for long-running processes is integrated with the Python Object Publisher (Bobo).
The GRAD process is non-intrusive so the legacy code does not have to be modified in order for the interface to work. No superclasses or include files are added to the existing code. Therefore, the legacy code is not directly dependent on the interface and changes in the interface generator system do not require changes in the legacy code. Changes to the legacy code naturally requires the regeneration of the interface but no manual editing of the generated interface is needed, so the interface generation can be made part of the make process.
Using GRAD, the promise of entire new applications written rapidly in the high level language Python is attainable while still preserving much of the operational advantage of, and investment in, existing compiled and tested code.
Python is an elegant, general-purpose, object-oriented scripting language that is freely available for anyone to use for any purpose. Being interpreted, Python has no need for a compiler and much less need for a formal development environment. Python is a concise very-high-level language. A typical program requires less then half the amount of source code than any of the C derived languages, including Java. Python offers programmers conciseness, simplicity, and the short test cycle benefits of an interpretive environment. These features combine to enable rapid prototyping with more building and less writing.
No one language should be all things to all software engineers. As possible next-generation languages, both Java and Python bring many new capabilities to developers that increase productivity. In contrast, each has aspects that are relatively weak when compared with other languages. This paper explores some of the merits and drawbacks of each language, for a number of different application areas, with the intent of proving each to be a worthy addition to the pool of valuable software engineering tools.
Presentation slides
This should follow the same format as the previous workshops. Guido will summarize changes since the last workshop and discussion of what is to be done in the next release. It's also a question and answer period and a chance to discuss topics not covered earlier in the workshop.