[Zope-dev] Ninth Zope 3 Newsletter
Gary Poster
gary@zope.com
Fri, 25 Jul 2003 10:26:49 -0400
WELCOME TO THE ZOPE 3 NEWSLETTER: ISSUE 9 (25 JULY 2003)
Welcome to the ninth Zope 3 newsletter. Information about Zope 3
and newsletter contributions and suggestions can be found at the
bottom of this newsletter.
GLOSSARY FOR THE UNINITIATED
Encounter a term in this newsletter you don't know? Try this
glossary: http://dev.zope.org/Zope3/NewsletterGlossary
NEWS SNIPPETS:
- Jim Fulton released the third Zope X3 milestone release on June 30.
A few "geddon"s (big changes to Zope 3) are still planned before
the beta release.
- The Australian OzZope Zope 3 sprint, organized by Jan Smith, was a
big success. See http://www.ozzope.org/OzSprintWiki for a fun
summary, and http://www.ozzope.org/news/LinMagAu for a link to a
nice explanatory interview about Zope, Zope 3, and sprints with
Jan.
FRED DRAKE:
Vocabulary Fields and Widgets
A vocabulary is an object which represents a collection of
distinct values (where distinct means that any two of them compare
as not equal using !=, and no two compare equal using ==). These
are most interesting when the set of values is highly dynamic. A
vocabulary may be provided by (for example) some object in the
ZODB, a query to an external database, the contents of a file
maintained by another process, or static data provided by a
separately maintained piece of code.
Vocabulary fields provide a field type for situations in which the
set of options is defined by a vocabulary. This is most useful
when the set of possible values may be highly dynamic or otherwise
be decoupled from the schema definition itself. A vocabulary
field in a schema contains either a vocabulary object
(``IBaseVocabulary``) or the name of a vocabulary. If a name is
used, the specific vocabulary to use will be supplied by a
registry when the schema field is bound to an instance of a
content object. Entries in the registry may be made through an
API or using ZCML.
More information is available in the Zope 3 source tree in the
file doc/schema/vocabularies.txt. This is an especially important
document to read before creating or configuring widgets to use
with vocabulary fields.
ZConfig for Zope 3 (Submitted June 30)
Zope 3 will be using a configuration file defined by a ZConfig
schema for site administration. This change is intended to make the
operation of a site easier for system administrators to work with.
Additional configuration parameters will be added to the
configuration file during the continuing development of Zope 3.
PHILIPP VON WEITERSHAUSEN (submitted July 1):
XML:
After Martijn Faassen and I had implemented a first bit of XML in
Zope3 in Louvain-la-Neuve, I thought it was time again to advance
things in that department. After discussing things with Martijn on
IRC, I moved all zopeproducts concerning XML to one
zopeproducts.xml package. The ParsedXML DOM implementation, which
Martijn had ported to Zope3 looked like the most advanced part of
the whole xml package. It was not yet ready to be used as
components though, so I wrote interfaces for the DOM, following
the W3C specs tightly, and added ZCML configuration directives for
the classes.
I also attempted to implement something like ParsedXML in the form
of DOM Document, which was simply a persistent document node.
While providing views for it and simple adapters to and fro
IXMLText (XML contained in a string) was - thanks to the CA -
quite easy, trying to implement editing capabilities turned out to
be a trip with much ContextWrapper pain, so I finally had to give
up realizing that ContextWrappers were not the right choice for a
DOM implementation. Martijn had used them because ParsedXML's DOM
implementation used acquisition and ContextWrappers are its
successors.
It is therefore questionable whether we will hang onto this DOM
implementation. It is also questionable whether we will have to
implement our own DOM at all. In order to store a DOM
persistently, we will most certainly have to, but it would be wise
to research use cases first before starting to re-implement the
whole DOM API.
XHTML compliance ("xhtml-gheddon"?):
When browsing through some page templates I realized that a lot
of the times, XHTML compliancy was neglected. Thus I validated all
page templates against XHTML 1.0 Transitional with the xmllint
command line tool from http://xmlsoft.org/ and corrected all
obvious errors that it reported. Unfortunately, the tool was very
disturbed by the TAL and METAL namespaces and the flood of error
messages was enormous, so I might have missed a few errors. I am
yet looking for a solution to this problem, so that we can
maintain XHTML compliance by validating page templates once in a
while.
For all emacs users: I used emacs's grep-find mode entering the
following command::
find . -name "*pt" -exec xmllint --noout --dtdvalid \
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd {} \;
The grep-find mode can parse this output. Instead of specifying
the URL, one can also download the DTD to speed up the process.
Zope products:
I kept a few zopeproducts up to date with the changes in Zope3
head (package refactorings, new-style implements, configuration ->
registration). Most time I spent on the NewsSite product which was
grossly out of date. I got it to work so that I could add a news
site and news entries, but it's not pretty.
This question goes out to both the initial developers
(participants of the DZUG sprint) and other people interested in
this product: is anyone willing to take further care of this
product? If it is only kept up to date with changes in Zope3, it
will remain in its miserable state for eternity. Then we might
just as well remove it.
CHRISTIAN THEUNE: Zope Security evaluation gains speed
The Zope Security Evaluation aims at getting Zope 3 security
mechanisms certified with a "common criteria certificate" which is
an approved certificate within 15 countries.
(http://www.commoncriteria.org)
During the 9. and 10. july there was a workshop at the TUV-IT
(http://www.tuev-it.de) which included Steve Alexander, Aroldo
Souza-Leite, 3 people from the TUV and me.
We have begun explaining them the Zope 3 security model which
produced a fair explicit layout of components that are involved and
started writing the documentation of the security target which means
determining the components that belong to security, possible threats
to them as well as selecting functional and environmental security
requirements and objectives to defend against those threats.
We gained a pretty good picture of what the certificate will give us
(better understanding of the whole complexity of the security
machinery) and that even the entry level certification means a lot
of explanation work and in-front work
I now continue writing the security target and am aiming to finish
it before end of june (which is some kind of unlikely but possible).
Everybody who likes to see the progress of the certification work
can find a page including the schedule in the "Subprojects" area of
the Zope3 Wiki named "SecurityEvaluation". Also there are first
checkins within the Zope 3 file tree to find under
Zope3/doc/security. The documentation format is reStructuredText and
is additionally checked in as a rendered .html file.
Stay Zope3ed.
STEPHAN RICHTER
Documentation
I have made significant progress with the Zope 3 Development
Cookbook. The "Content Components" section with 12 recipes
(roughly 124 pages) is now done, some in outline form and others
fully written out. The source code can be found at
ZopeProducts/demo/messageboard. The recipes build a message board
product from scratch and start out relatively easy and become then
more involved. There are a couple other recipes dispersed
throughout the book outline, which you can find at
http://dev.zope.org/Zope3/DevelCookbook.
For everyone who does not know yet, the Zope 3 Python Developers
Cookbook will be published by Sams (same people as New Riders who
did the Zope Book). I will be the primary author, and Jim and
Steve signed up as technical editors. The book will be published
under an open content license (http://
creativecommons.org/licenses/by-nd-nc/1.0/).
Please send me or post comments about the recipes. The more early
feedback I have, the better the book will be!
Online Help
While writing the recipes, I also fixed the Online Help to look
for views correctly. One of the above mentioned recipes
(http://dev.zope.org/Zope3/ OnlineHelpForZopeApps) has detailed
information on how to use it. The Zope 3 Development team would
like to encourage people to start developing help screens.
SQLExpr
Alan Runyan had the great idea to support a TALES expression that
would evaluate SQL statements. Short story: He told me, 2 hours
later it was done. The syntax looks as follows::
<html tal:define="rdb string:PsycopgDA; dsn string:dbi://test">
<body>
<ul tal:define="name string:Stephan; table string:contact">
<li tal:repeat="
contact sql: SELECT * FROM ${table} WHERE
name = '${name}'">
<b tal:content="contact/name" />
</li>
</ul>
</body>
</html>
The add-on is mainly aimed at scripters, who do not want to worry
about design so much. You can find the product at
http://cvs.zope.org/ZopeProducts/ sqlexpr. BTW, I think it would
be easy to port this code to Zope 2, since very little is Zope 3
specific.
Making zope3.org our Home
It has been in our heads since last year, but we did not have the
time to do it (other than registering the domain). But now it is
time! We have a ZWiki product and soon I will also have a Bug
Collector ready for Zope 3, so that we can start moving the
content over to www.zope3.org. I hope to be able to move there in
the next weeks.
CONTRIBUTING
Please send Zope 3 news, and newsletter suggestions and requests, to
gary@zope.com, with "Zope 3 newsletter" somewhere in the subject line.
As you can see above, casual and quick news items are acceptable and
even desirable.
MORE INFORMATION ON ZOPE 3
The central place to find Zope 3 information is currently
http://dev.zope.org/Zope3
The Zope 3 mailing list is archived and managed at
http://lists.zope.org/mailman/listinfo/zope3-dev
The Zope 3 development IRC channel, #zope3-dev at
irc.openprojects.net is (strictly) for discussion of Zope 3
development issues.
Newsletters are (supposed to be, blame the editor) archived at
http://dev.zope.org/Zope3/Zope3Newsletter