<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://www.rpatterson.net/</id>
  <title>Ross Patterson's Blog - Posts tagged Tahoe Sprint 2010</title>
  <updated>2025-07-14T00:00:48.962645+00:00</updated>
  <link href="https://www.rpatterson.net/"/>
  <link href="https://www.rpatterson.net/blog/tag/tahoe-sprint-2010/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.12">ABlog</generator>
  <entry>
    <id>https://www.rpatterson.net/blog/cioppino-sprint/</id>
    <title>Cioppino Sprint</title>
    <updated>2011-06-13T00:00:00+00:00</updated>
    <author>
      <name>Ross Patterson</name>
    </author>
    <content type="html">&lt;section id="cioppino-sprint"&gt;

&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;I’m back home after the west coast sprint formerly known as the Tahoe sprint, plone.net is now on plone.org, and I can spell Cioppino without looking it up.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/builds/rpatterson/ross-pattersons-site/blog/cioppino-sprint/index.rst&lt;/span&gt;, line 15); &lt;em&gt;&lt;a href="#id1"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate implicit target name: “cioppino sprint”.&lt;/p&gt;
&lt;/aside&gt;
&lt;p&gt;Last night I got home from the &lt;a class="reference external" href="http://www.coactivate.org/projects/snow-sprint-west-2011/project-home"&gt;Cioppino Sprint&lt;/a&gt;
in beautiful Bodega Bay, CA.  &lt;a class="reference external" href="http://www.linkedin.com/in/smcmahon"&gt;Steve McMahon&lt;/a&gt; did an excellent putting
arranging the sprint and got us a vacation house with a stunning view
and a hot tub.  Combine all this with a few great cooks and California
fresh produce, we ate well, enjoyed the view and got a lot of coding
done.&lt;/p&gt;
&lt;p&gt;The sprint was focused on “achievable tasks that provide immediate
wins for Plone-the-product or Plone-the-community”, meaning
low-hanging fruit mostly on the plone.org site itself.  With Limi, I
took on merging the &lt;a class="reference external" href="http://plone.net"&gt;plone.net&lt;/a&gt; service providers
site into &lt;a class="reference external" href="http://plone.org/support/providers"&gt;plone.org&lt;/a&gt; itself.
For my part, this involved:&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;updating &lt;a class="reference external" href="http://dev.plone.org/collective/browser/Products.PloneServicesCenter"&gt;Products.PloneServicesCenter&lt;/a&gt;
to Plone 4 along other fixes, cleanup and improvements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;exporting the content from the plone.net then importing it on
plone.org&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;doing a few selective catalog updates&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;re-creating some content&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;setting up some content rules&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Pretty easy stuff and it was mostly done by Friday.  It was also the
first time I got my hands on plone.org itself.  Call me a fan-boy but I still get giddy when I get one step closer to the core
of Plone, a project I was once totally on the outside of.&lt;/p&gt;
&lt;p&gt;I also spent some time walking through the creation of a new custom AT
content type with Bill and &lt;a class="reference external" href="https://www.facebook.com/tom.kapanka"&gt;Spanky&lt;/a&gt; to see how hard it is to
approach this task as a newcomer to Plone.  I always enjoy helping get
started and happily, Bill even &lt;a class="reference external" href="https://github.com/bdbaddog/Plone-Book-Review-Product"&gt;posted his code&lt;/a&gt; to github.&lt;/p&gt;
&lt;p id="manhattan"&gt;Not to toot my own horn, but my mixology seems to have been a hit.  My
Manhattan was particularly popular and since &lt;a class="reference external" href="http://www.linkedin.com/in/billdeegan"&gt;Bill Deegan&lt;/a&gt; asked, here’s the recipe:&lt;/p&gt;
&lt;div class="highlight-default notranslate"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;Cioppino&lt;/span&gt; &lt;span class="n"&gt;Manhattan&lt;/span&gt;

&lt;span class="mf"&gt;1.5&lt;/span&gt; &lt;span class="n"&gt;oz&lt;/span&gt;      &lt;span class="n"&gt;Buffalo&lt;/span&gt; &lt;span class="n"&gt;Trace&lt;/span&gt; &lt;span class="n"&gt;Bourbon&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;good&lt;/span&gt; &lt;span class="n"&gt;bang&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;buck&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;quite&lt;/span&gt; &lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;shelf&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mf"&gt;1.5&lt;/span&gt; &lt;span class="n"&gt;oz&lt;/span&gt;      &lt;span class="n"&gt;Carpano&lt;/span&gt; &lt;span class="n"&gt;Antica&lt;/span&gt; &lt;span class="n"&gt;Formula&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;really&lt;/span&gt; &lt;span class="n"&gt;good&lt;/span&gt; &lt;span class="n"&gt;sweet&lt;/span&gt; &lt;span class="n"&gt;vermouth&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="n"&gt;dashes&lt;/span&gt;  &lt;span class="n"&gt;Blood&lt;/span&gt; &lt;span class="n"&gt;Orange&lt;/span&gt; &lt;span class="n"&gt;Bitters&lt;/span&gt;

&lt;span class="n"&gt;Stir&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;lots&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;ice&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;good&lt;/span&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;melt&lt;/span&gt; &lt;span class="n"&gt;plenty&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;mellow&lt;/span&gt;
&lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;cocktail&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;  &lt;span class="n"&gt;Strain&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;serve&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In summary, the Cioppino Sprint was quite a success, I had a great
time, and I very much hope it becomes an annual tradition!&lt;/p&gt;
&lt;div class="note update admonition"&gt;
&lt;p class="admonition-title"&gt;Updated on 13 June 2011&lt;/p&gt;
&lt;p&gt;Imported from Plone on Mar 15, 2021.  The date for this update is the last
modified date in Plone.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
</content>
    <link href="https://www.rpatterson.net/blog/cioppino-sprint/"/>
    <summary>I’m back home after the west coast sprint formerly known as the Tahoe sprint, plone.net is now on plone.org, and I can spell Cioppino without looking it up.</summary>
    <category term="Plone" label="Plone"/>
    <category term="TahoeSprint2010" label="Tahoe Sprint 2010"/>
    <category term="Zope" label="Zope"/>
    <published>2011-02-14T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://www.rpatterson.net/blog/ttw-dexterity-vocabularies/</id>
    <title>TTW Dexterity Vocabularies</title>
    <updated>2010-03-19T00:00:00+00:00</updated>
    <author>
      <name>Ross Patterson</name>
    </author>
    <content type="html">&lt;section id="ttw-dexterity-vocabularies"&gt;

&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;First report from the Tahoe Sprint working on user-enterable vocabularies in the schema editory.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;So I’m here at the Tahoe Sprint thanks in part to a generous
sponsorship by WebCollective.  Thanks WebCollective!&lt;/p&gt;
&lt;p&gt;This is the first year of what I hope will be many &lt;a class="reference external" href="http://www.coactivate.org/projects/tahoe-snow-sprint-2010"&gt;Tahoe Sprints&lt;/a&gt; and was
focused on &lt;a class="reference external" href="http://plone.org/products/dexterity"&gt;Dexterity&lt;/a&gt;.  I
decided to start by trying to implement TTW field vocabularies for the
&lt;a class="reference external" href="http://pypi.python.org/pypi/plone.schemaeditor"&gt;plone.schemaeditor&lt;/a&gt;
TTW &lt;a class="reference external" href="http://pypi.python.org/pypi/zope.schema"&gt;Zope 3 schema&lt;/a&gt; editor.
The plone.schemaeditor is a generalized approach to TTW schema editing
and does not depend on Dexterity but is at the heart of Dexterity’s
TTW content type support.  It had basic support for defining a few
simple fields and adding support for user-selectable or user-entered
vocabularies or sources seemed like the next step.&lt;/p&gt;
&lt;p&gt;For those not familiar with Zope 3 schemata, fields that support
choosing from a set of values can use either vocabularies or sources.
Vocabularies are the older approach and are, roughly speaking, more
suitable to simple sets or sequences of selectable values.  Sources
are a newer approach and are, roughly speaking, more suitable to
complex choice behaviors such as searching for items to select, or
choosing from very large sets of values where more conventional
listing would not scale.&lt;/p&gt;
&lt;p&gt;We discussed the various things one might want to do with specifying
vocabularies or sources for fields.  The simplest, and probably most
common case, is where the user simply wants to enter the list of
allowed values and have a simple selection widget presented when the
field widget is rendered.  For more complex sources, each source will
have it’s own implementation specific set of options for the user to
configure when creating the fields and as such each source will need
it’s own add/edit form in the schema editor.  We also discussed the
possibility that users creating/editing schemata may want to re-use
the same vocabulary or source across multiple fields, where those
fields may themselves be in different schemata.  Given all that we
decided it was best to implement only simple vocabularies with a list
of user-entered values on the field edit form and tackle the shared
vocabulary and source support as a registry of vocabularies and
sources that could be assigned to choice fields.&lt;/p&gt;
&lt;p&gt;On the first day (well the first day not spent driving and
socializing), I was able to get user-entered vocabularies working for
single selection fields, labeled “Choice” for now in the schema
editor.  Early on the second day I finished user-entered vocabulary
support for multiple-selection fields.  If you’d like to take a look
at it, fire up the &lt;a class="reference external" href="https://svn.plone.org/svn/plone/plone.dexterity/buildouts/dev"&gt;dexterity development buildout&lt;/a&gt; and
try it out.&lt;/p&gt;
&lt;div class="note update admonition"&gt;
&lt;p class="admonition-title"&gt;Updated on 19 March 2010&lt;/p&gt;
&lt;p&gt;Imported from Plone on Mar 15, 2021.  The date for this update is the last
modified date in Plone.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
</content>
    <link href="https://www.rpatterson.net/blog/ttw-dexterity-vocabularies/"/>
    <summary>First report from the Tahoe Sprint working on user-enterable vocabularies in the schema editory.</summary>
    <category term="Plone" label="Plone"/>
    <category term="TahoeSprint2010" label="Tahoe Sprint 2010"/>
    <category term="Zope" label="Zope"/>
    <published>2010-03-19T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://www.rpatterson.net/blog/at-relation-field/</id>
    <title>AT Relation Field</title>
    <updated>2010-03-19T00:00:00+00:00</updated>
    <author>
      <name>Ross Patterson</name>
    </author>
    <content type="html">&lt;section id="at-relation-field"&gt;

&lt;blockquote&gt;
&lt;div&gt;&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Working with David Brennan on two-way references and relationships&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;between Archetypes and Dexterity.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Next to the method for defining content type schema and installing
content types in a portal, the &lt;a class="reference external" href="http://plone.org/products/archetypes"&gt;Archetypes&lt;/a&gt; reference engine has been one
of the more valuable and widely used bits of Archetypes.
Unfortunately, the AT reference engine is also a bit heavy weight and
too tightly coupled to AT, making it hard to re-use fruitfully.&lt;/p&gt;
&lt;p&gt;The &lt;a class="reference external" href="http://pypi.python.org/pypi/zc.relation"&gt;zc.relation&lt;/a&gt; package
provides a very powerful library for establishing connections, read
references and relationships, between objects.  It also provides for
walking and searching networks of connections.  It’s all very cool.
It’s also very generalized which is a good thing since it can be used
in so many different ways.  This does, however, make it very difficult
to approach.  It’s my hope that as we find ways to integrate
zc.relation into the Plone stack, that others will find clever ways
to use zc.relation’s powerful network traversing to do some unexpected
things.  So the combination of zc.relation and &lt;a class="reference external" href="http://pypi.python.org/pypi/z3c.relationfield"&gt;z3c.relationfield&lt;/a&gt; provides not only a
more widely re-usable, loosely coupled replacement for the AT
reference engine, but a much more powerful tool with capabilities far
beyond what could ever be achieved with the AT reference engine.&lt;/p&gt;
&lt;p&gt;One of the concerns which kept coming up was that getting rid of the
AT reference engine meant getting rid of UIDs.  With &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Universally_Unique_Identifier"&gt;UUID&lt;/a&gt; use
taking off and finding new and interesting uses it’s important that we
provide some sort of UUID system, but the AT reference engine is large
and heavy and very much unnecessary to support UUIDs.  UUIDs are very
simple and should not be coupled to any particular framework or larger
library when they can so easily be a very small library of their own
easily integrated in lots of ways.  So the question of how we want to
support UUIDs and the question of what to do with the AT reference
engine should no be conflated, they can and should be addressed
separately.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://plone.org/products/dexterity"&gt;Dexterity&lt;/a&gt; integrates the
z3c.relationfield package to provide widgets for specifying
zc.relation connections between content on z3c.form forms.  This
allows Dexterity content to establish relationships and references to
both Dexterity and AT content.  There is, however, no zc.relation
field and widget for AT content so there’s no way for AT content to
establish relationships or references to Dexterity content.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://davidbrenneman.com/"&gt;David Brennan&lt;/a&gt; set out to build an AT
field and widget that could make use of zc.relation relations and on
the latter half of the second day I joined him for some pair
programming.  By lunch on the third day, we had working extensions of
Products.Archetypes.Field.ReferenceField and
Products.Archetypes.Widget.ReferenceWidget which used zc.relation
behind the scenes.&lt;/p&gt;
&lt;p&gt;Next up is an extension of Products.ATReferenceBrowserWidget which
works with zc.relation.  Once that is working,
&lt;a class="reference external" href="http://pypi.python.org/pypi/archetypes.schemaextender"&gt;archetypes.schemaextender&lt;/a&gt; can be used
with one which uses zc.relation.  Finally, a migration can be to offer
a ZCML file which would replace the ATCT relatedItems field
implemented to migrate existing AT references to the zc.relation
back-end.&lt;/p&gt;
&lt;p&gt;Once that is completed archetypes.z3crelationfield can be used as a
proving ground for the possibility of removing the reference engine
from Archetypes itself.  Once it’s polished and the AT reference
engine removed, the way will be paved to remove one of the hurdles
which has made it so hard for newer content type frameworks to make an
entrance on the Plone scene.&lt;/p&gt;
&lt;div class="note update admonition"&gt;
&lt;p class="admonition-title"&gt;Updated on 19 March 2010&lt;/p&gt;
&lt;p&gt;Imported from Plone on Mar 15, 2021.  The date for this update is the last
modified date in Plone.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
</content>
    <link href="https://www.rpatterson.net/blog/at-relation-field/"/>
    <summary>Working with David Brennan on two-way references and relationships</summary>
    <category term="Plone" label="Plone"/>
    <category term="TahoeSprint2010" label="Tahoe Sprint 2010"/>
    <category term="Zope" label="Zope"/>
    <published>2010-03-19T00:00:00+00:00</published>
  </entry>
</feed>
