<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
         xmlns="http://purl.org/rss/1.0/">




    



<channel rdf:about="http://grok.zope.org/blog/aggregator/RSS">
  <title>Grok News and Blog</title>
  <link>http://grok.zope.org</link>
  
  <description>
    
       Chatter from the cave
       
  </description>
  
  
  
            <syn:updatePeriod>daily</syn:updatePeriod>
            <syn:updateFrequency>1</syn:updateFrequency>
            <syn:updateBase>2007-10-05T08:06:53Z</syn:updateBase>
        
  
  <image rdf:resource="http://grok.zope.org/logo.gif"/>

  <items>
    <rdf:Seq>
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.4-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.3-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.2-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.1-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/book-on-web-development-with-grok-published"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/spotlight-on-megrok.traject"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/spotlight-on-dolmen.content"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/spotlight-on-z3c.recipe.usercrontab"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.1a1-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.1a2-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.0-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.0b2-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.0a3-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.0a4-released"/>
        
        
            <rdf:li rdf:resource="http://grok.zope.org/blog/grok-1.0a2-released"/>
        
    </rdf:Seq>
  </items>

</channel>

    <item rdf:about="http://grok.zope.org/blog/grok-1.4-released">        <title>Grok 1.4 released!</title>        <link>http://grok.zope.org/blog/grok-1.4-released</link>        <description>Grok 1.4 is a feature release of Grok based on the Zope Toolkit 1.1.1. &lt;p&gt;The Grok development team is happy to announce the Grok 1.4 release!&lt;/p&gt;
&lt;p&gt;This release brings several new features and bugfixes.&lt;/p&gt;
&lt;p&gt;The list of Grok specific package version can be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/releaseinfo/1.4/versions.cfg"&gt;http://grok.zope.org/releaseinfo/1.4/versions.cfg&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;To upgrade existing project you might find the upgrade notes helpful, to be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/doc/1.4/upgrade.html"&gt;http://grok.zope.org/doc/1.4/upgrade.html&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Amongst other changes, Grok 1.4 brings:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;New features in &lt;a class="reference" href="http://pypi.python.org/pypi/grokcore.view"&gt;grokcore.view&lt;/a&gt; like allowing for the use
of the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;grok.provides()&lt;/span&gt;&lt;/tt&gt; directive in view components,
the addition of a &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;grok:ignoreTemplates&lt;/span&gt;&lt;/tt&gt; ZCML directive
to configure what template filename extensions are to be
ignore when reporting unassociated templates, improved
reporting of unassociated templates and improved
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;grok.template()&lt;/span&gt;&lt;/tt&gt; directive inheritance.&lt;/li&gt;
&lt;li&gt;New &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;Subscriptions&lt;/span&gt;&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;MultiSubscriptions&lt;/span&gt;&lt;/tt&gt; components
from &lt;a class="reference" href="http://pypi.python.org/pypi/grokcore.component"&gt;grokcore.component&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Includes the latest &lt;a class="reference" href="http://pypi.python.org/pypi/zope.testbrowser"&gt;zope.testbrowser&lt;/a&gt; version that is based on
&lt;a class="reference" href="http://pypi.python.org/pypi/WebOb"&gt;WebOb&lt;/a&gt; and &lt;a class="reference" href="http://pypi.python.org/pypi/WebTest"&gt;WebTest&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Besides working on code, the Grok community is also working on
improving the documentation, both the &amp;quot;official&amp;quot; documentation
and the &amp;quot;community&amp;quot;-driven efforts. This is quite an undertaking
and not yet finished.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>jw</dc:creator>        <dc:rights></dc:rights>                <dc:date>2011-04-04T15:27:45Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.3-released">        <title>Grok 1.3 released!</title>        <link>http://grok.zope.org/blog/grok-1.3-released</link>        <description>Grok 1.3 is a feature release of Grok based on the Zope Toolkit 1.1c1. &lt;p&gt;The Grok development team is happy to announce the Grok 1.3 release!&lt;/p&gt;
&lt;p&gt;Where the previous release was mostly about slimming down the dependency hierarchy of packages that comprises Grok, this release brings several important changes in functionality typically found Grok-based applications.&lt;/p&gt;
&lt;p&gt;Grok 1.3 is based on the Zope Toolkit 1.1c1 release!&lt;/p&gt;
&lt;p&gt;Since the ZTK 1.1 release drops Python-2.4 support and gains Python 2.7 support, it was able to update quite a number of packages, most notably the ZODB. Grok does currently not need to override any version of packages defined in the ZTK!&lt;/p&gt;
&lt;p&gt;The list of Grok specific package version can be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/releaseinfo/1.3/versions.cfg"&gt;http://grok.zope.org/releaseinfo/1.3/versions.cfg&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;To upgrade existing project you might find the upgrade notes helpful, to be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/doc/1.3/upgrade.html"&gt;http://grok.zope.org/doc/1.3/upgrade.html&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;Amongst other changes, Grok 1.3 brings:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;The long awaited support for the most recent martian version.&lt;/li&gt;
&lt;li&gt;The long awaited merge of the template registry refactoring. This should result in considerable less spurious warnings concerning unassociated templates.&lt;/li&gt;
&lt;li&gt;Integration of the Fanstatic library and WSGI components. From the Fanstatic website:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;quot;&amp;quot;&amp;quot; Fanstatic is a small but powerful framework for the automatic publication of resources on a web page. Think Javascript and CSS. It just serves static content, but it does it really well. &amp;quot;&amp;quot;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &amp;quot;static&amp;quot; directory functionality in Grok based projects is now based on Fanstatic and the compatibility layer provided by zope.fanstatic.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Removal of the automatic test discovery and registration that was provided by the z3c.testsetup package. For newly created projects, the grokproject tool will layout examples of setting up test suites. Note that this is a first step in the way towards more drastic improvements in regards to test discovery and running tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Other important notes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;The updated grokproject tool will not be able to build new project based on Grok version &amp;lt; 1.3.&lt;/li&gt;
&lt;li&gt;Besides working on code, the Grok community is also working on improving the documentation, both the &amp;quot;official&amp;quot; documentation and the &amp;quot;community&amp;quot;-driven efforts. This is quite an undertaking and not yet finished.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;We realize this release will again bring quite some structural changes that might affect your projects in some way. Please let us know when you run into problems upgrading your projects on the grok-dev mailinglist or on the #grok IRC channel. We will try to help and it will also help us, the Grok developers, by fixing bugs and other issues.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>jw</dc:creator>        <dc:rights></dc:rights>                <dc:date>2011-01-20T21:36:49Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.2-released">        <title>Grok 1.2 released!</title>        <link>http://grok.zope.org/blog/grok-1.2-released</link>        <description>Grok 1.2 is a feature release of Grok based on the Zope Toolkit 1.0, zc.buildout-1.5.2. A very large number of zope.app.* dependencies have been removed to have a smaller, more manageable footprint. &lt;p&gt;This release took a huge effort from the Grok development team to reduce the number of (legacy) dependencies, most importantly removing a very large number of zope.app.* packages from the stack! This results in a smaller and more manageable footprint.&lt;/p&gt;
&lt;p&gt;The Grok (Toolkit) 1.2 uses zc.buildout-1.5.2 and the new features it brings. Most importantly, the possibility to safely use the system Python for creating new projects. This should especially help newcomers who want to try out Grok. We can simplify the installation instructions by leaving out the &amp;quot;virtualenv&amp;quot; steps.&lt;/p&gt;
&lt;p&gt;The Grok (Toolkit) 1.2 is based on the Zope Toolkit 1.0 release!&lt;/p&gt;
&lt;p&gt;The Grok (Toolkit) does diverge a little from the ZTK 1.0 for a couple of its dependencies. These are listed separately in the Grok Toolkit versions file that can be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/releaseinfo/1.2/versions.cfg"&gt;http://grok.zope.org/releaseinfo/1.2/versions.cfg&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;The list of changes can be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/doc/1.2.1/changes.html"&gt;http://grok.zope.org/doc/1.2.1/changes.html&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;To upgrade existing project you might find the upgrade notes helpful, to be found here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;a class="reference" href="http://grok.zope.org/doc/1.2.1/upgrade.html"&gt;http://grok.zope.org/doc/1.2.1/upgrade.html&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;The 1.2 release will __not__ bring two still long awaited changes:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Support for the latest martian version.&lt;/li&gt;
&lt;li&gt;The improved template registry merge.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;They will have to wait for the 1.3 release.&lt;/p&gt;
&lt;p&gt;Another important note:&lt;/p&gt;
&lt;p&gt;Because of the update to zc.buildout-1.5.2 and other structural changes, the new grokproject version will not be able to install projects for Grok &amp;lt; 1.2.&lt;/p&gt;
&lt;p&gt;We realize this release will bring quite some structural changes that might affect your projects in some way. Please let us know when you run into problems upgrading your projects on the grok-dev mailinglist or on the #grok IRC channel. We will try to help and it will also help us, the Grok developers, by fixing bugs and other issues.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>jw</dc:creator>        <dc:rights></dc:rights>                <dc:date>2010-10-26T19:30:10Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.1-released">        <title>Grok 1.1 released!</title>        <link>http://grok.zope.org/blog/grok-1.1-released</link>        <description>Grok 1.1 is a feature release of Grok preparing for the Zope Toolkit. &lt;p&gt;The major user visible changes are Python 2.6 support and new version of the Grok UI. The main changes in Grok 1.1 are under the hood: now Grok builds on a prerelease version of the &lt;a class="reference" href="http://docs.zope.org/zopetoolkit"&gt;Zope Toolkit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grok 1.1 should be compatible with Grok 1.0. Grok 1.1 lets you prepare for the upcoming Grok 1.2 release by updating your imports.&lt;/p&gt;
&lt;p&gt;For more information about this release, see the release info:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://grok.zope.org/project/releases/1.1"&gt;http://grok.zope.org/project/releases/1.1&lt;/a&gt;&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>faassen</dc:creator>        <dc:rights></dc:rights>                <dc:date>2010-05-18T19:09:08Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/book-on-web-development-with-grok-published">        <title>Book on Web Development with Grok Published</title>        <link>http://grok.zope.org/blog/book-on-web-development-with-grok-published</link>        <description>Packt Publishing just made available the first book on Grok development, by Carlos de la Guardia.
&lt;p&gt;&lt;span class="Apple-style-span"&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;a href="../."&gt;Grok&lt;/a&gt;&amp;nbsp;book from Packt Publishing has just been made available for sale at their site:&lt;/p&gt;
&lt;p&gt;&lt;a class="external-link" href="http://www.packtpub.com/grok-1-0-web-development/book?utm_source=grok.zope.org&amp;amp;utm_medium=link&amp;amp;utm_content=pod&amp;amp;utm_campaign=mdb_002592"&gt;http://www.packtpub.com/grok-1-0-web-development/book&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The book is intended for developers more or less familiar with the concepts of web applications who want to write their applications using the Python programming language. No familiarity with Zope is assumed from the start.&amp;nbsp;The approach is practical, focusing on getting working code right from the beginning.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The foreword is by Philipp von Weitershausen, Author of Web component Development with Zope 3 and an early Grok contributor. He made a blog post out of it, which can be read&amp;nbsp;&lt;a href="http://philikon.wordpress.com/2010/02/10/a-book-on-grok/"&gt;at his site&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;
Reviews on the Web :&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://lateral.netmanagers.com.ar/weblog/posts/BB885.html" target="_blank"&gt;http://lateral.netmanagers.com.ar/weblog/posts/BB885.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
&lt;a href="http://blog.pythonisito.com/2010/03/review-grok-10-web-development.html" target="_blank"&gt;http://blog.pythonisito.com/2010/03/review-grok-10-web-development.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
&lt;a href="http://www.jmcneil.net/2010/03/review-grok-1-0-web-development/" target="_blank"&gt;http://www.jmcneil.net/2010/03/review-grok-1-0-web-development/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;
&lt;a href="http://nixtu.blogspot.com/2010/03/book-review-grok-10-web-development.html" target="_blank"&gt;http://nixtu.blogspot.com/2010/03/book-review-grok-10-web-development.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>cguardia</dc:creator>        <dc:rights></dc:rights>                <dc:date>2010-03-24T16:08:01Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/spotlight-on-megrok.traject">        <title>Spotlight on: megrok.traject</title>        <link>http://grok.zope.org/blog/spotlight-on-megrok.traject</link>        <description>megrok.traject is a package that allows a different way to publish your models than the traversal that is most commonly used in Zope applications. By Martijn Faassen.&lt;p&gt;megrok.traject is a package that allows a different way to publish your
models than the traversal that is most commonly used in Zope
applications. With megrok.traject you can define explicitly what kind of
URLs you want to publish your models on, instead of having to construct
an object hierarchy.&lt;/p&gt;
&lt;p&gt;A model can be anything that you want to have views for, and doesn't
need to be a persistent &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;grok.Model&lt;/span&gt;&lt;/tt&gt;. In fact megrok.traject is most
suitable for objects that are not stored in the ZODB, as the ZODB makes
traversal easy.&lt;/p&gt;
&lt;p&gt;What kind of models could you publish with megrok.traject then? It
could be just Python objects you design yourself. In this case you can
use &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;traject.Model&lt;/span&gt;&lt;/tt&gt;. You tell it under what URL pattern it should
appear and how it is to be constructed, and you're done.
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;traject.Model&lt;/span&gt;&lt;/tt&gt; is very lightweight: it's just a &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;grok.Context&lt;/span&gt;&lt;/tt&gt; that
can be hooked up by a &amp;quot;traject pattern&amp;quot;.&lt;/p&gt;
&lt;p&gt;Alternatively you may want to treat your models even more lightly: you
may wish to hook up models that are defined by a package that is not
under your control at all. You could have for instance an ORM such as
SQAlchemy define the models in an entirely different package that knows
nothing about how these models should be presented on the web in your
application. You can then use &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;traject.Traject&lt;/span&gt;&lt;/tt&gt; to associate such
models with a URL pattern in your application.&lt;/p&gt;
&lt;p&gt;You can look at the megrok.traject documentation for more information:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://pypi.python.org/pypi/megrok.traject"&gt;http://pypi.python.org/pypi/megrok.traject&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The low-level implementation is a reusable library called &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;traject&lt;/span&gt;&lt;/tt&gt;,
and its documentation can give you more details:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://pypi.python.org/pypi/traject"&gt;http://pypi.python.org/pypi/traject&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you still don't understand why megrok.traject would be useful for
&lt;em&gt;you&lt;/em&gt;, don't worry. Grok's traversal method of publishing objects isn't
going anywhere, and megrok.traject is just an option. If you have
questions, we'd very much like to hear them on grok-dev however, so that
we can improve megrok.traject and its documentation.&lt;/p&gt;
&lt;p&gt;Volunteers who would want to write a tutorial oriented towards beginners
that uses megrok.traject would also be very welcome!&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>cguardia</dc:creator>        <dc:rights></dc:rights>                <dc:date>2010-02-10T05:30:10Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/spotlight-on-dolmen.content">        <title>Spotlight on: dolmen.content</title>        <link>http://grok.zope.org/blog/spotlight-on-dolmen.content</link>        <description>The package `dolmen.content` is a convenient way to define content
types. Written by Souheil CHELFOUH.&lt;p&gt;This spotlight is about dolmen.content, which is the first package I
wrote for Grok and the Dolmen project.
It first was a Plone package, using five, and five.grok, and it was
called &amp;quot;spear.content&amp;quot; (in 2007).
I refactored it partially, while I stopped Ploning and first started
the Dolmen project (ex-spear)
It's used outside of the Dolmen project in another Grok project called
uvcsite, coded by Christian Klinger.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h3&gt;&lt;a id="dolmen-content" name="dolmen-content"&gt;dolmen.content&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The package &lt;cite&gt;dolmen.content&lt;/cite&gt; is a convenient way to define content
types. Content types usually have several attributes : a type, a
schema, an icon. In addition, they need security to control the
creation, pages to edit them, easy ways to control the display, and
the widgets. This is what provides &lt;cite&gt;dolmen.content&lt;/cite&gt;, with an
easy-to-use set of grok directives.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h4&gt;&lt;a id="example" name="example"&gt;Example&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;A &lt;cite&gt;dolmen.content&lt;/cite&gt; content is declared as a simple class. Some
directives are available to define your content: &lt;cite&gt;name&lt;/cite&gt;, &lt;cite&gt;icon&lt;/cite&gt;,
&lt;cite&gt;schema&lt;/cite&gt; and &lt;cite&gt;factory&lt;/cite&gt;. To have detailed information about these
directives, please have a look at the package tests.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h5&gt;&lt;a id="defining-the-content" name="defining-the-content"&gt;Defining the content&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Let's demonstrate the package's features with a simple and
non-exhaustive test:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;gt;&amp;gt;&amp;gt; import dolmen.content
&amp;gt;&amp;gt;&amp;gt; from zope import schema

&amp;gt;&amp;gt;&amp;gt; class IContentSchema(dolmen.content.IBaseContent):
...    text = schema.Text(title=u&amp;quot;A body text&amp;quot;, default=u&amp;quot;N/A&amp;quot;)

&amp;gt;&amp;gt;&amp;gt; class MyContent(dolmen.content.Content):
...  &amp;quot;&amp;quot;&amp;quot;A very simple content
...  &amp;quot;&amp;quot;&amp;quot;
...  dolmen.content.schema(IContentSchema)
...  dolmen.content.name(&amp;quot;a simple content type&amp;quot;)
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h5&gt;&lt;a id="schema" name="schema"&gt;Schema&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;The content can now be instanciated. As we can see here, the object is
effectively providing the schema, even without grokking:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;gt;&amp;gt;&amp;gt; MyContent.text
&amp;lt;zope.schema.fieldproperty.FieldProperty object at ...&amp;gt;

&amp;gt;&amp;gt;&amp;gt; IContentSchema.implementedBy(MyContent)
True

&amp;gt;&amp;gt;&amp;gt; obj = MyContent()
&amp;gt;&amp;gt;&amp;gt; obj.text
u'N/A'
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h5&gt;&lt;a id="grokking" name="grokking"&gt;Grokking&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;We now let Grok register our component:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;gt;&amp;gt;&amp;gt; from grokcore.component import testing
&amp;gt;&amp;gt;&amp;gt; testing.grok_component('mycontent', MyContent)
True
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h5&gt;&lt;a id="factory" name="factory"&gt;Factory&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;When the content is registered, a factory is registered, using the
full module and class dotted names. It allows us to query and
instanciate the content easily:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;gt;&amp;gt;&amp;gt; from zope.component import getUtility
&amp;gt;&amp;gt;&amp;gt; factory = getUtility(dolmen.content.IFactory,
...                      name=&amp;quot;dolmen.content.MyContent&amp;quot;)
&amp;gt;&amp;gt;&amp;gt; factory
&amp;lt;dolmen.content.factoring.Factory object at ...&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h4&gt;&lt;a id="foot-notes-for-the-grokkers-out-there" name="foot-notes-for-the-grokkers-out-there"&gt;Foot notes for the grokkers out there&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;If you thought that Spotlight was too much code, or not detailed
enough, please let me know
I'll try to cover most of the interesting packages I released lately.
Please note, also, that dolmen.content is currenty under heavy surgery.
At the moment, the schema fields boostrap is done by a grokker.
I decided to drop this and use a zope.interface ClassAdvisor, to allow
very straightforward bootstrapping, even on non grokked objects.
Also, the 'icon' directive should disapear, soon, if I can get a
decent release of megrok.icon (another package I need to work on !)&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>cguardia</dc:creator>        <dc:rights></dc:rights>                <dc:date>2010-02-09T06:22:00Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/spotlight-on-z3c.recipe.usercrontab">        <title>Spotlight on: z3c.recipe.usercrontab</title>        <link>http://grok.zope.org/blog/spotlight-on-z3c.recipe.usercrontab</link>        <description>z3c.recipe.usercrontab is a zc.buildout recipe. With this recipe you can
define crontab rules that will be installed in the user's crontab. Written by Jan-Wijbrand Kolman.&lt;p&gt;&lt;a class="reference" href="http://pypi.python.org/pypi/z3c.recipe.usercrontab"&gt;z3c.recipe.usercrontab&lt;/a&gt; is a &lt;a class="reference" href="http://www.buildout.org/andhttp://pypi.python.org/pypi/zc.buildout"&gt;zc.buildout&lt;/a&gt; recipe. With this recipe you can
define &lt;a class="reference" href="http://en.wikipedia.org/wiki/Cron"&gt;crontab&lt;/a&gt; rules that will be installed in the user's crontab. As such it
is probably only useful on unix-like systems. It has been tested on Linux and
Mac OS X.&lt;/p&gt;
&lt;p&gt;With this recipe it is easy to define recurring actions related to the
deployment of your application. Examples are: periodically checking the event
log file for &lt;a class="reference" href="http://pypi.python.org/pypi/tha.logcheck"&gt;irregularities&lt;/a&gt;, sending emails from a mail queue, or have cron
start your application after a system reboot.&lt;/p&gt;
&lt;p&gt;The &lt;cite&gt;usercrontab&lt;/cite&gt; part in your &lt;cite&gt;buildout.cfg&lt;/cite&gt; file could look like this:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
[buildout]
...
parts = ...
        logcheck
        reboot

[logcheck]
recipe = z3c.recipe.usercrontab
times = 39 * * * *
command = [cmd]

[reboot]
recipe = z3c.recipe.usercrontab
times = &amp;#64;reboot
command = ${buildout:directory}/bin/zopectl start
&lt;/pre&gt;
&lt;p&gt;After running &lt;cite&gt;./bin/buildout&lt;/cite&gt; you can inspect the result of the recipe with:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ crontab -l
&lt;/pre&gt;
&lt;p&gt;There you will see something like:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
# Generated by /home/jw/projects/sandbox/usercrontab [logcheck]
39 * * * *    /home/jw/projects/sandbox/usercrontab/bin/[cmd]
# END /home/jw/projects/sandbox/usercrontab [logcheck]

# Generated by /home/jw/projects/sandbox/usercrontab [reboot]
&amp;#64;reboot       /home/jw/projects/sandbox/usercrontab/bin/zopectl start
# END /home/jw/projects/sandbox/usercrontab [reboot]
&lt;/pre&gt;
&lt;p&gt;The markers around the actual crontab line are important: z3c.recipe.usercrontab
will use this markers to see if the buildout part already did its work in order
to prevent duplicates. The markers are also used to remove these lines from the
crontab, when uninstalling the part.&lt;/p&gt;
&lt;p&gt;The Python Package Index page for z3c.recipe.usercrontab explain the use of the
&lt;cite&gt;times&lt;/cite&gt; and &lt;cite&gt;command&lt;/cite&gt; directives in more detail.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>cguardia</dc:creator>        <dc:rights></dc:rights>                <dc:date>2010-02-09T06:23:50Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.1a1-released">        <title>Grok 1.1a1 released!</title>        <link>http://grok.zope.org/blog/grok-1.1a1-released</link>        <description>The Grok team is happy to announce the release of Grok 1.a1!&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.1a1"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>faassen</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-11-17T20:56:10Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.1a2-released">        <title>Grok 1.1a2 released!</title>        <link>http://grok.zope.org/blog/grok-1.1a2-released</link>        <description>The Grok team is happy to announce the release of Grok 1.a2!&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.1a2"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>faassen</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-12-22T22:37:40Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.0-released">        <title>Grok 1.0 released!</title>        <link>http://grok.zope.org/blog/grok-1.0-released</link>        <description>The Grok team is happy to announce the release of Grok 1.0!&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.0"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>faassen</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-10-07T19:52:57Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.0b2-released">        <title>Grok 1.0b2 released!</title>        <link>http://grok.zope.org/blog/grok-1.0b2-released</link>        <description>The Grok team is happy to announce the release of Grok 1.0b2. We should be close to Grok 1.0 now.
&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.0b2"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>faassen</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-09-17T17:21:08Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.0a3-released">        <title>Grok 1.0a3 released!</title>        <link>http://grok.zope.org/blog/grok-1.0a3-released</link>        <description>The Grok team is happy to announce the release of Grok 1.0a3. This is the second step on the way to the release of Grok 1.0!&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.0a3"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>jw</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-04-10T20:25:55Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.0a4-released">        <title>Grok 1.0a4 released!</title>        <link>http://grok.zope.org/blog/grok-1.0a4-released</link>        <description>The Grok team is happy to announce the release of Grok 1.0a4. This is the fourth step on the way to the release of Grok 1.0!&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.0a4"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>jw</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-05-21T20:41:10Z</dc:date>        <dc:type>News Item</dc:type>    </item>
    <item rdf:about="http://grok.zope.org/blog/grok-1.0a2-released">        <title>Grok 1.0a2 released!</title>        <link>http://grok.zope.org/blog/grok-1.0a2-released</link>        <description>The Grok team is happy to announce the release of Grok 1.0a2. This is the second step on the way to the release of Grok 1.0!&lt;p&gt;For more information see the &lt;a class="reference" href="http://grok.zope.org/project/releases/1.0a2"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
</description>        <dc:publisher>No publisher</dc:publisher>        <dc:creator>jw</dc:creator>        <dc:rights></dc:rights>                <dc:date>2009-04-08T19:52:50Z</dc:date>        <dc:type>News Item</dc:type>    </item>




</rdf:RDF>

