[Zope] 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