[Zope] Second ZOPE 3 mini- NEWSLETTER (and kinda large glossary)
Gary Poster
gary@zope.com
31 Oct 2002 10:15:25 -0500
WELCOME TO THE ZOPE 3 MINI-NEWSLETTER: ISSUE 2 (31 OCT 2002)
Find out what's going on in Zope 3 development, then contribute your
opinions, your experience, and your code to one of the most exciting
Open Source projects going.
Most news is submitted. Tell us what you're doing! Send anything
from a sentence to a few paragraphs about your latest efforts, be
they code, documentation, research, or design, to gary@zope.com.
I'll send one of these out whenever we have enough to warrant it--
just two or three submissions are enough--and I'll also specifically
request news from the zope3-dev@zope.org group once a month. I send
them to zope@zope.org and zope3-dev@zope.org (subscribe at
http://www.zope.org/Resources/MailingLists), announce it on the front
page of zope.org, and archive it at
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Zope3Newsletter
LITE (?) 'N' EASY GLOSSARY:
Each newsletter begins with a high-level glossary that might help you
understand a bit about what's going on with some of the announcements.
Want to help others get a grasp on your favorite Zope 3 (or pertinent
Zope 2) concept? Send in a definition, or request one, or fix these.
Starred (or italicized) items have definitions also in the glossary.
Only terms discussed in this newsletter or newly submitted or
corrected terms are included here. For full glossary, see
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/NewsletterGlossary
[NEW]
Adapter Service: a tool that, given one "component" (an object that
declares an interface) and a desired resulting interface, tries to
wrap the component with extra functionality that matches the desired
interface (forgive the simplification!)
[NEW]
Forms: Allows you to create (web) forms in a structured, secure and
easy way. First create the *schema*. This is just an *interface* with
schema information on it. From the schema, a form can be generated
automatically using widgets from an extensible set. User input to the
form is then automatically converted to the value types the schema
expects, and can then be validated against the schema to check whether
the values fit the schema criteria. If any errors occur they can be
displayed to the end user (possibly along with the form itself).
(thanks to Martijn Faassen)
[CORRECTED]
I18N: In Zope 3, i18n covers all that is needed to have an application
be able to be switched from one language to another, or being able to
support multiple languages at the same time, be it for its interface
or for its content objects themselves. That covers input and output
encoding, translatability and actual translation of views and
contents, the tools and formats necessary to provide those
translations, maybe even the translation workflows that authors will
use. (thanks to Florent Guillaume for the corrected definition)
[NEWLY COPIED :)]
Interface: a description of the behavior of objects. Zope provides
objects for representing interfaces and a facility for asserting that
objects implement interfaces. Interface objects were added to Zope
for specification and documentation purposes. Zope 3 uses interfaces
primarily for classification and for connecting components based on
compatible interfaces. Future versions of Zope may utilize interfaces
for type safety, as part of the security system.
[NEW]
Placeful: An adjective describing an object that resides in the *ZODB*
(and so is persistent) and is potentially pertinent only to the ZODB
branch (or "folder" and all children) in which it resides. Similar
to standard programming "local" concept of variables. Opposite of
*Placeless*.
[NEW]
Placeless: An adjective describing an object that resides outside
of the typically addressed Zope database, and is available to all
objects irresepective of their location in the ZODB (or what "folder"
they reside in). Usually not persistent, but instantiated in memory
on each program start. Somewhat similar to standard programming
"global" concept of variables. Opposite of *Placeful*.
[CORRECTED]
Relationship Service: A proposed central place to store relationships
between objects, giving some very simple and basic
relational-database-like functionality. A client of the *ObjectHub*.
[NEW]
Schema: A Zope 3 framework built on the Interface package that allows
you to specify details about attributes of the object that implements
the schema. This includes type information (string, integer, etc) as
well as restrictions on what values may be set (maximum length, can
be None, etc) which can be automatically validated. The schema
framework allows you to specify this information in an object's
interface. Schema information is used by several other Zope 3 systems,
such as metadata (properties) and forms. The schema package lives in
'lib/python/Zope/Schema'. (thanks to Martijn Faassen)
[NEWLY COPIED :)]
Sprint: A sprint is a multi-day session of intense Zope3 development
organized around extreme programming (XP) ideas such as pair
programming. [stolen from
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/SprintSchedule
which tells a lot more!]
[NEW]
TTW: "Through the web," usually used in reference to ideas such as
"scripting TTW" or "configuring TTW" and so on.
NEWS SNIPPETS:
* Jim Fulton and the team in India checked in a new
ErrorReportingService to the Zope3 head, as well as a lot of work on
a placeful AdapterService, TTW code, and Forms in a couple of
branches. I'm probably leaving whole chunks of topics out too!
* Look! Up in the air! It's a glossary! It's spam! No, it's
*the second Zope 3 mini-newsletter*!
* uh...Happy Halloween?
STEVE ALEXANDER:
I spent a few days tracking down the source of the two month old bug
http://collector.zope.org/Zope3-dev/78, fixing it, adding unit tests,
and fixing the fix's repercussions.
I've continued helping CodeWorks with their work on the cache manager.
Barry Warsaw and I had a chat about what would make a good MailHost
replacement for Zope 3. Some important things include
transaction-aware mail delivery (so that you don't get mails sent
when there are conflict errors or aborted transactions), and mail
delivery in a separate thread, so it doesn't hold up a page's
response. Barry's writing up a proposal on this, and I have some time
put aside to help with this.
I refactored the unit tests for ContextMethods, making them more
elegant, and
increasing their coverage.
I reimplemented SimpleMethodWrapper to work better, and added in
support for
context-aware properties too. This is useful when you want to use
properties
in a Service implementation.
KAPIL THANGAVELU (as hazmat on IRC): Document Autogeneration
I've been working on using docgeneration tools [epydoc] to generate
api docs from the z3 source. [Not from interfaces yet, from what he
said, but hopefully the tools will go there!]
INFRAE'S MARTIJN FAASSEN: Sprintathon
Infrae is hosting a Zope 3 Content Management Sprintathon to be held
december 2-6 in Rotterdam, the Netherlands. We already have an
interesting and large cast of developers who are planning to attend.
Even so, the room we have at our disposal is large enough to fit in
several more, so if you are interested in participating, please mail
faassen@infrae.com!
One of the special features (and not strictly content management
related) of the Sprintathon will be a user interface team. This team
will be composed of people with a background and interest in user
interfaces, to lay down some of the groundwork for the Zope 3 user
interface.
Other topics will include workflow and searching. If you have a topic
you are interested in, please mail the zope3-dev mailing list to talk
about it.
See this wiki page for more information:
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/InfraeSprintathon
GARY POSTER:
I checked in a placeful version of the ObjectHub, replacing
the placeless one previously in CVS and fixing some errors and
polishing the interface. Yay.
I also have the most recent draft of RelationshipService proposal at
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/RelationshipService
Steve Alexander and I hope to put together a first take on
integrating indexing, metadata, relationships, and the ObjectHub,
very very soon, so we can all complain about what we don't like and
redo it.... Well, actually, I'm serious. :-)
NEWS CONTRIBUTION GUIDELINES:
We want to know what you're doing, be it code or design, so just
write something quick and easy. First person and casual is fine, as
you can see. Send to gary@zope.com whenever the spirit moves you.
LEARN MORE ABOUT ZOPE 3:
See http://lists.zope.org/mailman/listinfo/zope3-dev
See
http://dev.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/FrontPage
but be aware the design docs often lag as we develop prototypes.