Hello python-announce-list,
Alpha version of PyAmulet, new module for the Amulet GUI toolkit, is
available. This version is made for OpenAmulet, newly maintained, supported
and developed version by volunteers. You may read more about OpenAmulet
below. As for Python, it is ideal language to be bound with this dynamic,
flexible toolkit.
(As an example, C++ code below rewritten in python:
# Create an green rectangle
r=Am.Rectangle(FILL_STYLE=Am.Green);
# Cast magic spell upon it:
# "Do Animate!"
r.append(Am.Move_Grow_Interactor())
# after this, rectangle on screen can be dragged with mouse
)
OpenAmulet homepage: http://www.openip.org
PyAmulet homepage: http://www.openip.org/html/oa_pyamulet.html
(sources and win32 binaries)
Binary of OpenAmulet dll (needed for win32 bin PyAmulet):
http://www.openip.org/oa/openamulet4.3-devel-mingw32-bin.zip
To be more informative, some kind of blurb (somewhat lengthy and
advocatic, sorry):
=============
OpenAmulet, free cross-platform GUI Toolkit version 4.3
-------------------------------------------------------
Why yet another GUI toolkit?
----------------------------
First of all, it's not yet another GUI toolkit, it's *the* GUI toolkit.
OpenAmulet is based on previous work of Amulet project
(http://www.cs.cmu.edu/~amulet/) held by User Interface Software Group
in the Human Computer Interaction Institute in the School of Computer
Science at Carnegie Mellon University (Brad A. Myers, Ellen Borison,
Alan Ferrency, Rich McDaniel, Robert C. Miller, Andrew Faulring,
Bruce D. Kyle, Patrick Doane, Andy Mickish, Alex Klimovitski). Amulet is
their second toolkit, the C++ redesign of Garnet, written in Lisp and
being classical example of nice and functional design.
One of the intentions of writing Amulet in C++ was popularizing ideas
not available to large audience and pushing it to production needs, in
addition to research and educational ones.
What are distinguishing features?
---------------------------------
Briefly, OpenAmulet utilises Prototype-Instance (vs Class-Object)
object system, uses Constraints as the means to maintain system's
state and actions, and provides detached behaviour-oriented
intercation model.
More specifically, OpenAmulet emphasizes data-oriented programming.
While "classical" (or, precisely, C++'s) object design preaches data
hiding and interfacing via methods, Amulet has it "upside-down": all
interfacing held via object's properties, and methods has only
auxillary, system-internal role. Amulet has means to support such view
of the world:
* Prototype-instance object model
Class-object model distinguishes two kinds of entities: 'classes',
which can be instantiated, but not used, and 'objects' with opposite
features. Prototype-instance approach doesn't have this distinction:
any object can be both used as entity ready for processing and for
instantiation of subobjects. Hence, class-object model is just
constrained form of prototype-instance model, having stipulation
above. Of course, Amulet object system is fully dynamic, allowing
creation of new types of objects at runtime.
* Demons and constraints
How is it possible to interface via data? That's because it's
possible to watch some object properties (or slots) and act upon
changes. Low-level mechanism for this is demons. They are supposed
to be eager and low-latency. For example, when size/position of
graphical object changes, attached demons queue changing region for
update.
More high-level notion is constraint. Ideally constraints are
mathematical equations, though may have side effects. With
constraints slots of different objects can be linked in some way,
for example top of one button may be equated to bottom of other.
Afterwards, this relation is maintained automatically by system:
wherewhere second button moved, first will be under it. Many current
systems support constraints in ad hoc manner. For example, Tk's
power to build quickly decent interfaces with pack is essentially
stating (high-level) constraints on widgets. wxWindows' constraints
are simplier and less amazing. What distinguishes Amulet here is
fully generalized constraint support. Constraints can do anything
(even loops are tried to be converged) on anything. Using ad hoc
methods may give some benefits in some cases, for example, for
example, laying out dialog with Amulet constraints is more verbose
than with Tk's packs, but you can do things just not possible with
Tk.
* Behaviourial interaction model
Contemplating evolution of GUI user-interaction techiques, following
scale may be drawn:
- (back to [your favorite 8-bit box] times) No interaction model
Your code is mess with no obvious destinction with user-event
handling and other code
- MS Windows' message loop
For each large-scaled entity (top-level window) you have "message
procedure" which recieves all events (all they low-level) happening
in that entity. Then you wonder to which lesser part it relates and
act on that, if needed.
- GTK, wxWindows, etc. event handlers, signals, maps, etc.
each user-interactible object has bunch of (relatively low-level) events
which may occur to it. Means to attach handler to needed event is
provided. Handlers are independent and don't put burden on them.
- Amulet's Interactors
No usual graphic Amulet object has ability to interact with user.
Interaction is supported by separate, external subsystem, by
entities called 'Interactors' (of course, that's usual Amulet
objects). Interactors function in high-level event terms, or
behaviours. For example, there interactors for Selecting, Moving,
Growing objects, Text-editing, etc. Low-level events, such as
button- or key-press still handled in unified manner. Amulet widgets
have interactors already attached.
Behaviourial model means that it is very easy and clean to program highly
interactive, direct-manipulation interfaces. E.g.:
// Create an green rectangle
Am_Object r=Am_Rectangle.Create().Set(Am_FILL_STYLE,Am_Green);
// Cast magic spell upon it:
// "Do Animate!"
r.Add_Part(Am_Move_Grow_Interactor.Create())
// after this, rectangle on screen can be dragged with mouse
What's more?
----------
Many, many more ;-) Crossplaformedness for X,Win32,Mac is worth
immediate note.
What's not?
-----------
By current standards OpenAmulet has poor widgets set, lacking such
things as trees/outlines, splitpanels, tabbed dialogs, etc.
Where?
------
Latest sources, binaries, samples, language bindings, TODO lists ;-)
available at http://www.openip.org/
=============
<P><A HREF="http://www.openip.org/html/oa_pyamulet.html">PyAmulet
0.1</A> - a module for the <A HREF="http://www.openip.org/">OpenAmulet</A>,
highly dynamic GUI Toolkit. (30-Oct-99)
Best regards,
Paul mailto:paul-ml@is.lg.ua
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
I'm pleased to announce the release of JPython 1.1 beta 4, the 100%
Pure Java implementation of the Python language. Below is a summary
of changes since 1.1 beta 3.
Enjoy,
-Barry
New JPython features and bug fixes
- fixed a bug related to loading anonymous inner classes (PR#201).
This is an experimental patch. See registry file for entry
python.options.extendedClassLoader
- fixed Java exceptions when calling apply() with a bogus 3rd
argument (PR#208)
- fixed a 1.1beta3 problem with method objects having their
im_self mysteriously changed out from under them (PR#186).
- fixed problems with Python classes being deeply derived from
Java classes and interfaces (PR#178, PR#195).
- Improved memory footprint when using exec().
- Dead threads are now reaped from thread state cache (Drew
Morrissey).
- Tuples, dictionaries, and strings now use fast method lookup
mechanism.
Improved CPython 1.5.2 compatibility
- md5 module supported (no need to download anything extra)
- dir() on function objects now returns a list containing __doc__,
func_doc, __namme__, func_name, func_globals, func_defaults,
func_code. __doc__/func_doc is writable (but not func_defaults
and func_code, which are writable in CPython). (PR#192)
- dir() on code objects returns a list containing co_name,
co_argcount, co_varnames, co_filename, co_firstlineno, co_flags.
Not supported: co_nlocals, co_code, co_consts, co_names,
co_lnotab, co_stacksize. All attributes are read-only.
- dir() on method objects returns a list containing im_self,
im_func, im_class, __doc__, __name__. These attributes are
read-only.
<P><A HREF="http://www.jpython.org">JPython 1.1 beta 4</A> - a 100%
Pure Java implementation of the Python language. (28-Oct-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
AmigaPython 1.5.2 - build 4
The Amiga version of Python.
WHAT IT IS:
This is the Python interpreter (version 1.5.2) for AmigaDOS.
WHAT'S NEW ?
- Prints correct string when command `exit' is issued at the prompt.
- Fixed some missing 1.5.2 issues, like the os.error exception type.
- A new time.strftime which passes the test.
- Fixed amiga.crc32 function to comply with CRC32 standards.
WHERE CAN I GET IT ?
>From Aminet <http://us.aminet.net/~aminet/>, in the dev/lang directory:
Python152.lha Python language 1.5.2 (bin+lib)
Python152_Doc.lha Python 1.5.2 documentation (HTML)
Python152_Src.lha Python language 1.5.2 (source)
SlimPython.lha AmigaPython stripped edition (source)
Also have a look at my Python pages at
<http://www.bigfoot.com/~irmen/python.html>.
It comes with a Python-style license, but is otherwise free for
commercial and non-commercial use.
REFERENCE:
<P><A HREF="http://www.bigfoot.com/~irmen/python.html">AmigaPython
1.5.2</A> - AmigaDOS port of Python 1.5.2. (27-Oct-99)
==
Irmen de Jong - irmen(a)bigfoot.com
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
Hello!
Russian-speaking Pythoneers, Zopers unite!
I am trying to revive the mailing list for russian-speaking. I also want
to add the Zope topic to the list. I am writing and debuggung simple web
site based on Zope, and soon will provide read-only access to the managemenet
interface for everyone who want to learn how to install, configure and run
Zope application.
Anyone interesting to talk about beloved Python language and Zope in
Russian please subscribe:
echo subscribe python | mail majordomo(a)list.glas.net
It is stndard majordomo, all commands available, including "help".
Our webpages are here:
http://www.glasnet.ru/~jno/Python/http://www.fortunecity.com/skyscraper/motorola/668/http://www.chat.ru/~pythonrus/
Oleg.
----
Oleg Broytmann National Research Surgery Centre http://sun.med.ru/~phd/
Programmers don't die, they just GOSUB without RETURN.
<P><A HREF="http://www.glasnet.ru/~jno/Python/">Russian mailing
list</A> - Russian-speaking mailing list for Python and Zope. (27-Oct-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
*** Hot off the press! ***
Python Essential Reference
By David Beazley
(with a foreword by Guido van Rossum)
New Riders Publishing
ISBN 0735709017
350 pages.
I'm pleased to announce the release of a new Python reference book
that is now shipping to a bookstore near you.
In a nutshell, the Python Essential Reference is a concise and
comprehensive reference to the Python language and its large library
of modules. This book is designed to be a compact and highly usable
companion to other Python books and the online documentation.
Some of its features include:
- Comprehensive coverage of the Python tutorial, language reference,
library reference, and C extension API.
- Documentation for more than 100 modules in the standard Python
library.
- A concise presentation style in which material is not obscured
by tutorial-style examples, programming lessons, advocacy,
and language comparisons. As a result, the book serves as an
excellent companion to introductory books such as Learning Python.
- Expanded coverage of many library modules. In particular, much
of the information contained in man pages and other books has
been added to clarify topics in network programming, operating
system interfaces, and other advanced topics. In addition,
a variety of new examples have been added to further expand
upon certain topics.
- A compact design. I have taken great liberty in rewording,
abridging, and reorganizing much of the existing Python
documentation. Obsolete modules, fluff, and a number
of more obscure topics have been omitted. In addition,
the publisher has done a fantastic job of typesetting the
book into a highly compact form factor that is easy to
carry on the plane, take to a dinner date, or go just about
anywhere one would expect to be writing a Python program.
The bottom line: this is a highly compact and intelligent book that is
intended to serve as a useful reference for Python programmers. I hope
that you find it to be a useful addition to your Python programming
library.
More information can be found by following the links on
http://www.python.org/psa/bookstore
Please support the PSA by purchasing the book through the above site.
Cheers,
Dave
<P><A HREF="http://www.python.org/psa/bookstore/">Python Essential
Reference</A> - a new Python reference book; a concise and comprehensive
reference to the Python language and its large library of
modules. (25-Oct-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
The Python Consortium is officially launched today. As proposed at
the Python Conference last year in Houston, several big Python players
are joining forces to further and promote Python and JPython
development. Current members of the Python Consortium are:
Full members:
Lawrence Livermore National Laboratory
Hewlett-Packard
Associate members:
Digital Creations
Interet Corporation
Foretec Seminars
For more information about the consortium, see the Python Consortium
webpage on Python website: http://www.python.org/consortium/. We
issued a press release which you can find at
http://www.python.org/consortium/press1.html.
If you are currently a corporate PSA member, consider joining the
consortium instead. More power to Python!
--Guido van Rossum (home page: http://www.python.org/~guido/)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
1
0
4XSLT 0.7.2
by uche.ogbuji@fourthought.com
Oct. 26, 1999
Oct. 26, 1999
FourThought LLC (http://FourThought.com) announces the release of
4XSLT 0.7.2
-----------------------
A python implementation
of the W3C's XSLT language
4XSLT is an XML transformation processor based on the W3C's specification
for the XSLT transform language.
http://www.w3.org/TR/xslt
Currently, 4XSLT supports a sub-set of the October 8th working draft
of XSLT including the following:
Full expression support and attribute-value template expansion
xsl:include xsl:import
xsl:template xsl:apply-imports
xsl:apply-templates xsl:copy
xsl:call-template xsl:if
xsl:for-each xsl:choose
xsl:element xsl:when
xsl:attribute xsl:otherwise
xsl:text xsl:message
xsl:value-of xsl:variable
xsl:processing-instruction xsl:param
xsl:comment xsl:with-param
xsl:strip-space xsl:key
xsl:preserve-space xsl:copy-of
and, of course, literal elements and text
4XSLT produces its result tree by throwing events from the emerging
SAX 2 standard to a handler, so it can be easily modified to supply
results to any SAX 2 consumer.
News
----
Changes in 0.7.2
----------------
- Implemented named templates
- Implemented the following instructions:
o comment
o copy
o call-template
o param
o with-param
- Packaging and implementation bug-fixes
More info and Obtaining 4XSLT
-----------------------------
Please see
http://FourThought.com/4Suite/4XSLT
Or you can download 4XSLT from
ftp://FourThought.com/pub/4Suite/4XSLT
4XSLT is distributed under a license similar to that of Python.
==
Uche Ogbuji
uche.ogbuji(a)fourthought.com
Consulting Member, FourThought LLC
http://FourThought.comhttp://OpenTechnology.org
<P><A HREF="http://FourThought.com/4Suite/4XSLT">4XSLT 0.7.2</A> -
XML transformation processor based on the W3C specification for
the XSLT transform language. (21-Oct-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------
1
0
4XPath 0.7.2
by uche.ogbuji@fourthought.com
Oct. 26, 1999
Oct. 26, 1999
FourThought LLC (http://FourThought.com) announces the release of
4XPath 0.7.2
-----------------------
A python implementation
of the W3C's XPath language
4XPath implements the W3C XPath language for indicating and selecting XML
document components.
http://www.w3.org/TR/xpath
4XPath implements the full 4XPath specification except for the lang
core function.
News
----
This version fixes several packaging and implementation bug-fixes.
More info and Obtaining 4XPath
-----------------------------
Please see
http://FourThought.com/4Suite/4XPath
Or you can download 4XPath from
ftp://FourThought.com/pub/4Suite/4XPath
4XPath is distributed under a license similar to that of Python.
==
Uche Ogbuji
uche.ogbuji(a)fourthought.com
Consulting Member, FourThought LLC
http://FourThought.comhttp://OpenTechnology.org
<P><A HREF="http://FourThought.com/4Suite/4XPath">4XPath 0.7.2</A> -
implementation of the W3C XPath language for indicating and selecting
XML document components. (21-Oct-99)
--
----------- comp.lang.python.announce (moderated) ----------
Article Submission Address: python-announce(a)python.org
Python Language Home Page: http://www.python.org/
Python Quick Help Index: http://www.python.org/Help.html
------------------------------------------------------------