<?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="http://purl.org/rss/1.0/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <channel rdf:about="http://meta/exportrss">
    <title>Atomisator</title>
    <description>Meta Feed</description>
    <link>http://meta/exportrss</link>
    <items>
      <rdf:Seq><rdf:li rdf:resource="http://digg.com/programming/Introduction_to_Python_Part_1"/>
<rdf:li rdf:resource="http://worldcookery.com/News/Camp5Training"/>
<rdf:li rdf:resource="http://www.zope.org/Members/infrae/news/Tramline-0.5.1_Released"/>
<rdf:li rdf:resource="http://www.agmweb.ca/blog/?p=107"/>
<rdf:li rdf:resource="http://cheeseshop.python.org/pypi/zc.recipe.zope3checkout/1.1"/>
<rdf:li rdf:resource="http://www.zope.org/Members/infrae/news/Tramline-1.5.1_Released"/>
<rdf:li rdf:resource="http://www.zope.org/Members/cbc/camp5"/>
<rdf:li rdf:resource="http://www.zope.org/Products/CMF/CMF-1.6.3-beta"/>
<rdf:li rdf:resource="http://mg.pov.lt/blog/sleepless-nights.html"/>
<rdf:li rdf:resource="http://plone.org/news/plone-2-5-2-released"/>
<rdf:li rdf:resource="http://www.zope.org/Products/Zope/2.10.2b1"/>
<rdf:li rdf:resource="http://www.zope.org/Products/Zope/2.10.2b1/Zope-2.10.2b1_released"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905295986194992"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905295449082060"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905284243194690"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905276644914062"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905272930929284"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905265292456370"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905260076538651"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905234999116114"/>
<rdf:li rdf:resource="http://www.pythonware.com/daily/#entry116905231511731007"/>
<rdf:li rdf:resource="http://www.agmweb.ca/blog/?p=108"/>
<rdf:li rdf:resource="http://feeds.feedburner.com/~r/ComloungeTv/~3/80158002/cltv21-plone-conference-06-lightning-talk-andreas-jung-about-unserding.de"/>
<rdf:li rdf:resource="http://vanrees.org/weblog/archive/2007/01/22/yeah-phd"/>
<rdf:li rdf:resource="http://vanrees.org/weblog/archive/2007/01/22/itch-scratching"/>
<rdf:li rdf:resource="http://feeds.feedburner.com/~r/ComloungeTv/~3/79592018/cltv20-plone-conference-06-lightning-talk-andy-mckay-about-clouseau"/>
<rdf:li rdf:resource="http://vanrees.org/weblog/archive/2007/01/19/new-firebug-version"/>
<rdf:li rdf:resource="http://theploneblog.org/blog/archive/2007/01/18/zope-3-for-plone-3-product-developers-boot-camp-and-sprint"/>
<rdf:li rdf:resource="http://www.ihde.info/blog/platforms"/>
<rdf:li rdf:resource="http://www.rickhurst.co.uk/2007/01/17/plone-skinning-skillswap-was-a-success/"/>
<rdf:li rdf:resource="http://www.redinnovation.com/blog/archive/2006/09/09/first-steps-with-django"/>
<rdf:li rdf:resource="http://www.redinnovation.com/blog/archive/2006/09/09/organical-growth-in-code"/>
<rdf:li rdf:resource="http://www.redinnovation.com/blog/archive/2006/08/21/lost-n-found"/>
<rdf:li rdf:resource="http://www.redinnovation.com/blog/archive/2007/01/15/hacker-s-story-how-plone-changed-my-life"/>
<rdf:li rdf:resource="http://danielnouri.org/blog/devel/adaptation-and-generic-functions.html"/>
<rdf:li rdf:resource="http://theploneblog.org/blog/archive/2007/01/14/top-7-plone-conference-videos"/>
<rdf:li rdf:resource="http://redinnovation.com/blog/archive/2007/01/15/hacker-s-story-how-plone-changed-my-life"/>
<rdf:li rdf:resource="http://theploneblog.org/blog/archive/2007/01/14/limi-to-appear-on-future-of-site-design-panel"/>
<rdf:li rdf:resource="http://www.rickhurst.co.uk/2007/01/10/another-plone-skillswap/"/>
<rdf:li rdf:resource="http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;articleId=73&amp;blogId=1"/>
<rdf:li rdf:resource="http://www.z3lab.org/sections/blogs/philipp-weitershausen/2007_01_09_you-thought-zope-3-wasn"/>
<rdf:li rdf:resource="http://nateaune.com/2007/01/09/integration-proclamation/"/>
<rdf:li rdf:resource="http://faassen.n--tree.net/blog/view/weblog/2007/01/09/0"/>
<rdf:li rdf:resource="http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;articleId=72&amp;blogId=1"/>
<rdf:li rdf:resource="http://optilude.wordpress.com/2007/01/08/test-driven-development/"/>
<rdf:li rdf:resource="http://blog.ianbicking.org/wsgiremote-now-httpencode.html"/>
</rdf:Seq>
    </items>
  </channel>
<item rdf:about="http://digg.com/programming/Introduction_to_Python_Part_1">
  <title>Introduction to Python - Part 1</title>
  <description>Python is a very handy tool whenever you need to put together a small script that manipulates some files in a few minutes. Moreover, it is also useful for bigger projects, as you get all the power you from data structures, modularization, object orientation, unit testing, profiling, and the huge API.</description>
  <link>http://digg.com/programming/Introduction_to_Python_Part_1</link>
      <dc:subject>Introduction to Python - Part 1</dc:subject>

</item>
<item rdf:about="http://worldcookery.com/News/Camp5Training">
  <title>Attend the Camp 5 training and get the book for free!</title>
  <description>I'm happy to announce that I'll be giving another 4-day Zope 3
training 10 - 13 March 2007, now for the first time on the North
American continent.  Like the famous Python and Plone bootcamps from
past years, it is organized by the Triangle Zope and Python Users
Group  TriZPUG  and takes place at the University of North Carolina in
Chapel Hill, NC, USA.</description>
  <link>http://worldcookery.com/News/Camp5Training</link>
      <dc:subject>Attend the Camp 5 training and get the book for free!</dc:subject>

</item>
<item rdf:about="http://www.zope.org/Members/infrae/news/Tramline-0.5.1_Released">
  <title>Tramline 0.5.1 Released</title>
  <description>22 january 2007 ??? Infrae has just released version 0.5.1 of Tramline. This version has improved installation and configuration, an example of setting up Tramline with Zope3, and various bug fixes.</description>
  <link>http://www.zope.org/Members/infrae/news/Tramline-0.5.1_Released</link>
      <dc:subject>Tramline 0.5.1 Released</dc:subject>

</item>
<item rdf:about="http://www.agmweb.ca/blog/?p=107">
  <title>Number of people in channels</title>
  <description>A random slection of numbers of people in irc channels. Which is not any indicator at all of anything really.&lt;p&gt;
Ruby on rails: 481
Django: 202
Plone: 179
Plone: 112
Typo3: 58
Pylons: 52
Turbogears: 50
HTML::Mason: 1
Bricolage: 0</description>
  <link>http://www.agmweb.ca/blog/?p=107</link>
      <dc:subject>Number of people in channels</dc:subject>

</item>
<item rdf:about="http://cheeseshop.python.org/pypi/zc.recipe.zope3checkout/1.1">
  <title>zc.recipe.zope3checkout 1.1</title>
  <description>ZC Buildout recipe for installing a Zope 3 checkout</description>
  <link>http://cheeseshop.python.org/pypi/zc.recipe.zope3checkout/1.1</link>
      <dc:subject>zc.recipe.zope3checkout 1.1</dc:subject>

</item>
<item rdf:about="http://www.zope.org/Members/infrae/news/Tramline-1.5.1_Released">
  <title>Tramline 1.5.1 Released</title>
  <description>22 january 2007 ??? Infrae has just released version 0.5.1 of Tramline. This version has improved installation and configuration, an example of setting up Tramline with Zope3, and various bug fixes.</description>
  <link>http://www.zope.org/Members/infrae/news/Tramline-1.5.1_Released</link>
      <dc:subject>Tramline 1.5.1 Released</dc:subject>

</item>
<item rdf:about="http://www.zope.org/Members/cbc/camp5">
  <title>Zope 3 Boot Camp :: March 10-17, 2007</title>
  <description>TriZPUG's fifth and latest boot camp brings the legendary Philipp von Weitershausen as your instructor for four days of Zope 3 training followed by four days of Plone 3 groupware and other product development sprinting.</description>
  <link>http://www.zope.org/Members/cbc/camp5</link>
      <dc:subject>Zope 3 Boot Camp :: March 10-17, 2007</dc:subject>

</item>
<item rdf:about="http://www.zope.org/Products/CMF/CMF-1.6.3-beta">
  <title>Content Management Framework  1.6.3-beta </title>
  <description>Zope.org Product Updates</description>
  <link>http://www.zope.org/Products/CMF/CMF-1.6.3-beta</link>
      <dc:subject>Content Management Framework  1.6.3-beta </dc:subject>

</item>
<item rdf:about="http://mg.pov.lt/blog/sleepless-nights.html">
  <title>Sleepless nights</title>
  <description>My sleep schedule is totally out of whack.  I cannot sleep before 3 AM
 sometimes I stay awake until 7 AM , then I cannot get up before noon.&lt;p&gt;
As a result I have more free time for hacking.  Today I tried to play around
with Metacity's compositor, with some mixed
successpatched
FBReader with a numeric page indicator tweaked to the size and position of
my liking  &lt;p&gt;
 also got a facelift today.
It is now installable with easy_install.&lt;p&gt;
I do not like easy_install.  It wants to install stuff into
/usr/lib/python2.4/site-packages.  That location is reserved for Debian
packages.  A sensible default would be /usr/local/lib/python2.4/site-packages
or, preferably, somewhere in my home directory, with the caveat that I'll have to
set up PYTHONPATH myself.  You can force easy_install to do more or less what
you want, but that involves reading tons of documentation, invoking arcane
multi-thousand line scripts, or sacrificing small animals.  Not my
definition of "easy".&lt;p&gt;
patch to add
a tiny help topic to bzr.  Before that, nights were dedicated to
 and&lt;p&gt;

In the mean time, actual paying work suffers.  Karmic retribution for those
three 11-and-a-half hour days I spent at work during the first week of January?
No, just lack of willpower to force myself to go to sleep  or wake up  early
instead of, for example, blogging.</description>
  <link>http://mg.pov.lt/blog/sleepless-nights.html</link>
      <dc:subject>Sleepless nights</dc:subject>

</item>
<item rdf:about="http://plone.org/news/plone-2-5-2-released">
  <title>Plone 2.5.2 released  Updated </title>
  <description>A bug fix release in the 2.5.x series.</description>
  <link>http://plone.org/news/plone-2-5-2-released</link>
      <dc:subject>Plone 2.5.2 released  Updated </dc:subject>

</item>
<item rdf:about="http://www.zope.org/Products/Zope/2.10.2b1">
  <title>Zope  2_10_2b1 </title>
  <description>Zope.org Product Updates</description>
  <link>http://www.zope.org/Products/Zope/2.10.2b1</link>
      <dc:subject>Zope  2_10_2b1 </dc:subject>

</item>
<item rdf:about="http://www.zope.org/Products/Zope/2.10.2b1/Zope-2.10.2b1_released">
  <title>Zope 2.10.2 b1 released</title>
  <description/>
  <link>http://www.zope.org/Products/Zope/2.10.2b1/Zope-2.10.2b1_released</link>
      <dc:subject>Zope 2.10.2 b1 released</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905295986194992">
  <title>[Steve Holden] Is Python becoming a standard for animation applic...</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://holdenweb.blogspot.com/2007/01/is-python-becoming-standard-for.html"&gt;[Steve Holden] Is Python becoming a standard for animation applic...&lt;/a&gt;
&lt;i&gt;&amp;#171;Is Python becoming a standard for animation application scripting interfaces? Autodesk, originally well-known for their AutoCAD drafting software have diversified into animation with a product called Maya, which has just been upgraded to version 8.5. One of the new features trumpeted in a report of the announcement is Python scripting, which turns out to be very popular with the film industry.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905295986194992</link>
      <dc:subject>[Steve Holden] Is Python becoming a standard for animation applic...</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905295449082060">
  <title>[Steve Holden] No Database Tutorial?</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://holdenweb.blogspot.com/2007/01/no-database-tutorial.html"&gt;[Steve Holden] No Database Tutorial?&lt;/a&gt;
&lt;i&gt;&amp;#171;Well, from the reports so far it looks as though I won't be giving my &amp;quot;Using a Database in Python&amp;quot; tutorial. It looks like the PyCon market for introductory database tutorials was saturated last year and there may be too few signups for this year. Unless there's a late surge it looks like it will be cancelled.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905295449082060</link>
      <dc:subject>[Steve Holden] No Database Tutorial?</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905284243194690">
  <title>[Pycon] First tutorial fills up; Django tutorials expanded, one full</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://pycon.blogspot.com/2007/01/first-tutorial-fills-up-django-tutorial.html"&gt;[Pycon] First tutorial fills up; Django tutorials expanded, one full&lt;/a&gt;
&lt;i&gt;&amp;#171;The first tutorial to reach its room capacity is &amp;quot;Faster Python Programs through Optimization and Extensions I&amp;quot;, taught by Mike M&amp;#252;ller.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905284243194690</link>
      <dc:subject>[Pycon] First tutorial fills up; Django tutorials expanded, one full</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905276644914062">
  <title>[Calvin Spealman] Python's super   Abused as a Hook</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://ironfroggy-code.blogspot.com/2007/01/pythons-super-abused-as-hook.html"&gt;[Calvin Spealman] Python's super   Abused as a Hook&lt;/a&gt;
&lt;i&gt;&amp;#171;There has been some recent-ish discussion on the python-dev mailing list about &amp;quot;fixing&amp;quot; the &amp;quot;super&amp;quot; built-in, which is used to access attributes of an object with lookup rules on the superclass of a given class.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905276644914062</link>
      <dc:subject>[Calvin Spealman] Python's super   Abused as a Hook</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905272930929284">
  <title>[Calvin Spealman] Python on Windows and the PATH</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://ironfroggy-code.blogspot.com/2007/01/python-on-windows-and-path.html"&gt;[Calvin Spealman] Python on Windows and the PATH&lt;/a&gt;
&lt;i&gt;&amp;#171;Took me a few hours to track down a problem with importing win32com and getting &amp;quot;ImportError: DLL load failed: The specified module could not be found&amp;quot; which wasn't very clear.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905272930929284</link>
      <dc:subject>[Calvin Spealman] Python on Windows and the PATH</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905265292456370">
  <title>[Python Cookbook] BaseHTTPServer with socket timeout</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/499376"&gt;[Python Cookbook] BaseHTTPServer with socket timeout&lt;/a&gt;
&lt;i&gt;&amp;#171;BaseHTTPServer blocks while waiting for a connection. This means that a script will not respond to anything until it receives a network connection, which may never come. By adding a timeout to the listening socket, the script will regain control every so often.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905265292456370</link>
      <dc:subject>[Python Cookbook] BaseHTTPServer with socket timeout</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905260076538651">
  <title>[comp.lang.python.announce] Front Range Pythoneers Meeting: Wed, Jan 17, in Boulder, Colorado</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://comments.gmane.org/gmane.comp.python.announce/6793"&gt;[comp.lang.python.announce] Front Range Pythoneers Meeting: Wed, Jan 17, in Boulder, Colorado&lt;/a&gt;
&lt;i&gt;&amp;#171;Meeting: Wednesday, January 17, 2007. Time: 6-8 PM. Location: Churchill Navigation. ... Tom Churchill and Vinny Fiano will demo Churchill Navigation's earth-rendering engine. ... Brian Granger from Tech-X will help us think more deeply about concurrent Python programming, especially as seen in a new version of IPython. BoulderSprint.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905260076538651</link>
      <dc:subject>[comp.lang.python.announce] Front Range Pythoneers Meeting: Wed, Jan 17, in Boulder, Colorado</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905234999116114">
  <title>[comp.lang.python.announce] TayLayout Release 00.00.15</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://comments.gmane.org/gmane.comp.python.announce/6792"&gt;[comp.lang.python.announce] TayLayout Release 00.00.15&lt;/a&gt;
&lt;i&gt;&amp;#171;TayLayout is a more sophisticated version of the flow layout - you can
add controls to a panel or form and it takes care of positioning them.
Controls are added in a Left to Right order until you specify that a
new line is required.&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905234999116114</link>
      <dc:subject>[comp.lang.python.announce] TayLayout Release 00.00.15</dc:subject>

</item>
<item rdf:about="http://www.pythonware.com/daily/#entry116905231511731007">
  <title>[Spyced] Why SQLAlchemy impresses me</title>
  <description>&lt;div class="description"&gt;

&lt;a href="http://spyced.blogspot.com/2007/01/why-sqlalchemy-impresses-me.html"&gt;[Spyced] Why SQLAlchemy impresses me&lt;/a&gt;
&lt;i&gt;&amp;#171;One of the reasons ORM tools have a spotted reputation is that it's really, really easy to write a dumb ORM that works fine for simple queries but performs like molasses once you start throwing real data at it. Let me give an example of a situation where, to my knowledge, only SQLAlchemy of the Python  or Ruby  ORMs is really able to handle things elegantly, without gross hacks like &amp;quot;piggy backing.&amp;quot;&amp;#187;
&lt;/i&gt;&lt;/div&gt;</description>
  <link>http://www.pythonware.com/daily/#entry116905231511731007</link>
      <dc:subject>[Spyced] Why SQLAlchemy impresses me</dc:subject>

</item>
<item rdf:about="http://www.agmweb.ca/blog/?p=108">
  <title>Andy McKay: Clouseau 0.7 released</title>
  <description>Changes in this version:

Fix tab handling in safari, yay!
Doing an assignment will give you a tooltip too
Truncate large messages. If a message is large it won&amp;#8217;t get syntax highlighted, and you can click to expand it. This makes the scrolling much nicer and increase performance
Nicer bigger Ploney font for results
Clean up error messages


Download: Clouseau.0.7.zip</description>
  <link>http://www.agmweb.ca/blog/?p=108</link>
      <dc:subject>Andy McKay: Clouseau 0.7 released</dc:subject>

</item>
<item rdf:about="http://feeds.feedburner.com/~r/ComloungeTv/~3/80158002/cltv21-plone-conference-06-lightning-talk-andreas-jung-about-unserding.de">
  <title>COM.lounge TV: CLTV21: Plone Conference 06 Lightning Talk: Andreas Jung about unserding.de</title>
  <description>&lt;a href="http://podcasts.plonetv.de/ep21/cltv21-mpeg.mov"&gt;&lt;img border="1" alt="" src="http://podcasts.plonetv.de/ep21/ep21.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://podcasts.plonetv.de/ep21/cltv21-mpeg.mov"&gt;Watch the Video&lt;/a&gt;

[&lt;a href="http://podcasts.plonetv.de/ep21/cltv21-ipod.m4v"&gt;ipod version&lt;/a&gt;]
&lt;p&gt; &lt;br /&gt; 

&lt;h3&gt;Shownotes&lt;/h3&gt;

&lt;a href="http://plone.org/seattle-2006"&gt;Plone Conference&lt;/a&gt;, &lt;a href="http://zopyx.de/"&gt;ZOPYX&lt;/a&gt;, &lt;a href="http://unserding.de"&gt;unserding.de&lt;/a&gt;&lt;br /&gt;
&lt;p&gt;
recorded on Oct 25th, 2006 at the Seattle Center
&lt;div class="feedflare"&gt;&lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=KMkfUd5p"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=KMkfUd5p" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=1cHaEvO6"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=1cHaEvO6" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=7sy9c6yH"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=7sy9c6yH" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=lbLpL5kj"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=lbLpL5kj" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <link>http://feeds.feedburner.com/~r/ComloungeTv/~3/80158002/cltv21-plone-conference-06-lightning-talk-andreas-jung-about-unserding.de</link>
      <dc:subject>COM.lounge TV: CLTV21: Plone Conference 06 Lightning Talk: Andreas Jung about unserding.de</dc:subject>

</item>
<item rdf:about="http://vanrees.org/weblog/archive/2007/01/22/yeah-phd">
  <title>Reinout van Rees: Yeah, I've got my PhD</title>
  <description>&lt;div&gt;
              &lt;p&gt;&lt;img src="http://vanrees.org/images/2007/uitreiking.jpg" alt="Final ceremony" /&gt;
&lt;/p&gt;
&lt;p&gt;Hurray, after 6 years of work I got my PhD on 15 January 2007. Finally I'm done! There was a nice formal ceremony in which I had one hour to defend my thesis against 7 official opponents. Actually pretty funny to do, but &lt;strong&gt;very intensive&lt;/strong&gt;. You've got to keep all your wits about you for one full hour.&lt;/p&gt;
&lt;p&gt;That's also &lt;strong&gt;exactly&lt;/strong&gt; one full hour, for after one hour you get a loud bang on the floor of the beadle  Dutch: &lt;em&gt;pedel&lt;/em&gt; . That means you've got to keep talking while she looks at her watch as it is appreciated if you have to stop mid-sentence. I even had to stop mid-word, so that went OK :- &lt;/p&gt;
&lt;p&gt;There's a lot more to say, but I'll just link to &lt;a href="http://vanrees.org/photos/2007/phd"&gt;the photos&lt;/a&gt; for now. A switch on the photo camera that was in the wrong position ruined about 80% of the photos, but there are enough left to give a good impression, luckily.&lt;/p&gt;
&lt;p&gt;Loads of people have asked me "what I'm going to do now", mostly meaning whether I'm going to continue research or whether I'm going to look for a job now. Well, I'm simply continuing the work I've done for the last 1.5 years: &lt;a href="http://zestsoftware.nl/"&gt;Zest software&lt;/a&gt; . Building pretty elaborate websites and intranets  like &lt;a href="http://www.milieudefensie.nl"&gt;milieudefensie&lt;/a&gt; , &lt;a href="http://www.triple-p.nl"&gt;triple p&lt;/a&gt; , two philips intranets, etc. . For that, I'm working with the content management system &lt;a href="http://plone.org"&gt;Plone&lt;/a&gt; that I also used for many of the &lt;a href="http://vanrees.org/thesis/node45.html"&gt;prototypes&lt;/a&gt; in my &lt;a href="http://vanrees.org/research/phd"&gt;PhD thesis&lt;/a&gt; . &lt;/p&gt;
&lt;p&gt;I've got permission  and encouragement  to continue to keep my eye out for opportunities in the building&amp;amp;construction industry. There's still a bit of prototype software lying around that I want to resurrect again as people found it useful and want to use it again. So I'll continue to dabble a bit in it, as it is a really interesting problem :- &lt;/p&gt;

            &lt;/div&gt;</description>
  <link>http://vanrees.org/weblog/archive/2007/01/22/yeah-phd</link>
      <dc:subject>Reinout van Rees: Yeah, I've got my PhD</dc:subject>

</item>
<item rdf:about="http://vanrees.org/weblog/archive/2007/01/22/itch-scratching">
  <title>Reinout van Rees: Itch scratching and scratch frameworks</title>
  <description>&lt;div&gt;
              &lt;p&gt;Joel Spolsky &lt;a href="http://www.joelonsoftware.com/items/2007/01/21.html"&gt;reviews a book about Chandler&lt;/a&gt; . I don't know if he's right, but the last time I looked at &lt;a href="http://www.osafoundation.org/"&gt;chandler&lt;/a&gt; they still seemed to be in the "early preview" stage. And I thought I've seen presentations on chandler's architecture on the last 4 europython conferences or so that I attended.&lt;/p&gt;
&lt;p&gt;Anyway, I want to quote something from the end of his article:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The Chandler team also overestimated how much help they would get from volunteers. Open source doesn't quite work like that. It's really good at implementing copycat features, because there's a spec to work from: the implementation you're copying. It's really good at Itch Scratching features. I need a command line argument for EBCDIC, so I'll add it and send in the code. But when you have an app that doesn't do anything yet, nobody finds it itchy. They're not using it. So you don't get volunteers. Almost everyone on the Chandler dev team got paid.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;That's one thing I noticed after I started &lt;a href="http://plone.org/products/instance-manager"&gt;instancemanager&lt;/a&gt;  see also &lt;a href="http://vanrees.org/weblog/topics/instancemanager"&gt;some weblog entries&lt;/a&gt; . The first version was already pretty usable and a few people started to use it. And found a small thing lacking here and there. Something that lacks is an itch that needs scratching. And instancemanager provided a framework for hanging your personally-crafted itch-scratcher on :- &lt;/p&gt;
&lt;p&gt;Somehow it turned out to be a good place to attach all sorts of tiny helper scripts and handy additional functionality. The same with &lt;a href="http://plone.org/products/archgenxml"&gt;archgenxml&lt;/a&gt;, of course. It started out as a handy way to generate archetypes contenttypes, but at a certain moment somebody added a way to generate workflow with it. And then someone added CMFMember support. Lately Jean Jordaan added "remember" support. You can add little things here and there. Stuff like that turns a product into a small open source community.&lt;/p&gt;

            &lt;/div&gt;</description>
  <link>http://vanrees.org/weblog/archive/2007/01/22/itch-scratching</link>
      <dc:subject>Reinout van Rees: Itch scratching and scratch frameworks</dc:subject>

</item>
<item rdf:about="http://feeds.feedburner.com/~r/ComloungeTv/~3/79592018/cltv20-plone-conference-06-lightning-talk-andy-mckay-about-clouseau">
  <title>COM.lounge TV: CLTV20: Plone Conference 06 Lightning Talk: Andy McKay about Clouseau</title>
  <description>&lt;a href="http://podcasts.plonetv.de/ep20/cltv20-mpeg.mov"&gt;&lt;img border="1" alt="" src="http://podcasts.plonetv.de/ep20/ep20.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://podcasts.plonetv.de/ep20/cltv20-mpeg.mov"&gt;Watch the Video&lt;/a&gt;

[&lt;a href="http://podcasts.plonetv.de/ep20/cltv20-ipod.m4v"&gt;ipod version&lt;/a&gt;]
&lt;p&gt; &lt;br /&gt; 

&lt;h3&gt;Shownotes&lt;/h3&gt;

&lt;a href="http://plone.org/seattle-2006"&gt;Plone Conference&lt;/a&gt;, &lt;a href="http://www.agmweb.ca/blog/"&gt;Andy's blog&lt;/a&gt;, &lt;a href="http://plone.org/products/clouseau"&gt;Clouseau 0.6&lt;/a&gt;&lt;br /&gt;
&lt;p&gt;
recorded on Oct 25th, 2006 at the Seattle Center
&lt;div class="feedflare"&gt;&lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=2lJNt1R6"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=2lJNt1R6" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=udN67g4b"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=udN67g4b" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=njxJPz6t"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=njxJPz6t" border="0" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/ComloungeTv?a=33JtLSYG"&gt;&lt;img src="http://feeds.feedburner.com/~f/ComloungeTv?i=33JtLSYG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
  <link>http://feeds.feedburner.com/~r/ComloungeTv/~3/79592018/cltv20-plone-conference-06-lightning-talk-andy-mckay-about-clouseau</link>
      <dc:subject>COM.lounge TV: CLTV20: Plone Conference 06 Lightning Talk: Andy McKay about Clouseau</dc:subject>

</item>
<item rdf:about="http://vanrees.org/weblog/archive/2007/01/19/new-firebug-version">
  <title>Reinout van Rees: New firebug version</title>
  <description>&lt;div&gt;
              &lt;p&gt;Most of my firefox extensions  see an &lt;a class="reference" href="http://plone.org/documentation/how-to/firefox-tools"&gt;extension list&lt;/a&gt; at plone.org,
I use about half of that list  are updated automatically. Somehow
&lt;strong&gt;firebug&lt;/strong&gt; was still at version 0.4something and I missed the 1.0
beta.&lt;/p&gt;
&lt;p&gt;Wow. &lt;a class="reference" href="http://getfirebug.com/"&gt;Get firebug&lt;/a&gt;. Loads of additions to the previous version. The
previous version was handy to spot bugs in javascript and css, as a
small icon at the bottom right of your browser window would turn into
a red circle with a cross: you'd click it to get a list of the errors.&lt;/p&gt;
&lt;p&gt;But now it shows you what files get loaded or processed with the
 down load times. And it shows in which sequence they get loaded, all
nicely in a graph. Hover over a line that shows an image got
downloaded and you get a small preview: real handy to see what
P038827.jpg was again. I didn't get too far into the rest of the
functionality, but there's a javascript debugger; you can change css
and javascript values on-the-fly; there's a javascript &lt;strong&gt;profiler&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;So get it!&lt;/p&gt;
&lt;p&gt;One thing that tripped me was that, when loooking at the load times,
it showed both my html file and some javascript and css files. Those
javascript and css files are supposed to be cached forever in the
browser, so they shouldn't show up as being downloaded. Checking the
apache log didn't show them being downloaded there. So I assume that
firebug showed the processing time there. Can anyone confirm or deny?&lt;/p&gt;

            &lt;/div&gt;</description>
  <link>http://vanrees.org/weblog/archive/2007/01/19/new-firebug-version</link>
      <dc:subject>Reinout van Rees: New firebug version</dc:subject>

</item>
<item rdf:about="http://theploneblog.org/blog/archive/2007/01/18/zope-3-for-plone-3-product-developers-boot-camp-and-sprint">
  <title>The Plone Blog: Zope 3 for Plone 3 product developers Boot Camp and Sprint</title>
  <description>&lt;p&gt;Chris Calloway is once again organizing what sounds like a fantastic Plone eBoot Camp + Sprint.&lt;/p&gt;
&lt;br /&gt;
&lt;blockquote&gt;
&lt;p&gt;The Triangle  NC  Zope and Python Users Group invites you to register for Camp 5 &lt;br /&gt;and the BBQ Sprint:&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;a href="http://trizpug.org/boot-camp/camp5/"&gt;http://trizpug.org/boot-camp/camp5/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;
&lt;p&gt;This is a Zope 3 boot camp followed by a Plone 3 sprint. The boot camp is taught &lt;br /&gt;by Philipp von Weitershausen, author of Web Component Development with Zope 3. &lt;br /&gt;The training has previously only been offered in Europe and is now available in &lt;br /&gt;North America for the first time. The sprint includes several sponsored and &lt;br /&gt;invited sprinters.&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;TriZPUG hopes you will participate in Camp 5 in Chapel Hill, NC.&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;p&gt;Camp 5: Saturday March 10 - Tuesday March 13, 2007 &lt;br /&gt;&lt;br /&gt;BBQ Sprint: Wednesday March 14 - Saturday March 17, 2007&lt;/p&gt;
&lt;/blockquote&gt;</description>
  <link>http://theploneblog.org/blog/archive/2007/01/18/zope-3-for-plone-3-product-developers-boot-camp-and-sprint</link>
      <dc:subject>The Plone Blog: Zope 3 for Plone 3 product developers Boot Camp and Sprint</dc:subject>

</item>
<item rdf:about="http://www.ihde.info/blog/platforms">
  <title>Maik Ihde: Where are the python frameworks?</title>
  <description>Last year I read the announcement for a web platform programming contest, and was very excited because I liked the Idea to have ...</description>
  <link>http://www.ihde.info/blog/platforms</link>
      <dc:subject>Maik Ihde: Where are the python frameworks?</dc:subject>

</item>
<item rdf:about="http://www.rickhurst.co.uk/2007/01/17/plone-skinning-skillswap-was-a-success/">
  <title>Rick Hurst: Plone Skinning SkillSwap was a success!</title>
  <description>&lt;p&gt;&lt;img title="Pole skinning Workshop by Rick Hurst at the Watershed in Bristol" alt="Pole skinning Workshop by Rick Hurst at the Watershed in Bristol" src="http://www.rickhurst.co.uk/images/plone_skinning_skillswap.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;I am really pleased to say that the Plone Skinning presentation last night was a success! About 30 local web designers/developers and people interested in using Plone turned up - a much higher attendance than my previous &amp;#8220;Plone Demo&amp;#8221; talk. I used the Plone S5 product to create a simple set of slides with a few bullet points to keep me from jumping around too much, but it was mostly a hands on presentation demonstrating a bit of basic customisation via the ZMI, then the process for creating a filesystem based skin.&lt;/p&gt;
&lt;p&gt;I ran plone locally and used dreamweaver  in code view with large fonts  to do ZPT editing to keep things familiar for those designers who may be scared by the idea of terminals and Emacs!&lt;/p&gt;
&lt;p&gt;I also tried to dispell the &amp;#8220;all plone sites look the same&amp;#8221; myth by taking a random design I had knocked up as a static html page and inserting the minimum possible ZPT markup to make it function as a front end plone main template rendering the body content and portlets  with none of the plone CSS .&lt;/p&gt;
&lt;p&gt;The Q&amp;#038;A was really good - it ranged from basic questions about templating to &amp;#8220;can plone do&amp;#8230;.?&amp;#8221; type questions. I think I managed to field them all fairly well - i&amp;#8217;ll have to wait to see the video  coming soon  to listen back for any clangers I may have made. I was disappointed however that all the free beer had gone by the end of the Q&amp;#038;A - a conspiracy maybe? &amp;#8220;psstt&amp;#8230; keep Rick talking while we drink all the beer - ask him if there is a cow-milking module available&amp;#8230;&amp;#8221;.&lt;/p&gt;
&lt;p&gt;The event was sponsored by &lt;a href="http://www.knowledgewest.org.uk/"&gt;Knowledge West&lt;/a&gt;  room/projector hire/buffet  and beer kindly provided by &lt;a href="http://www.teamrubber.com/"&gt;Team Rubber&lt;/a&gt;.
&lt;/p&gt;</description>
  <link>http://www.rickhurst.co.uk/2007/01/17/plone-skinning-skillswap-was-a-success/</link>
      <dc:subject>Rick Hurst: Plone Skinning SkillSwap was a success!</dc:subject>

</item>
<item rdf:about="http://www.redinnovation.com/blog/archive/2006/09/09/first-steps-with-django">
  <title>Mikko Ohtamaa: First steps with Django</title>
  <description>I have been poking around with Django few days now. I have been doing Plone development two years, so pardon me if my comments on Django are inaccurate. Here is a bit mindflow pouring out of my head. Again pardon for not-so-well-ordered content.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;On the blue corner...&lt;/h3&gt;&lt;br /&gt;&lt;a href="http://www.djangoproject.com" target="_self"&gt;Django &lt;/a&gt;is a web development framework. You can easily implement small site functionality on it. Django has a bit hype around it now when the father of Python, Guido van Rossum, named it as &lt;a href="http://www.eweek.com/article2/0,1895,2009632,00.asp" target="_self"&gt;the preferred framework for Python web development&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://plone.org" target="_self"&gt;Plone content management system&lt;/a&gt;/ running on &lt;a href="http://zope.org" target="_self"&gt;Zope &lt;/a&gt;application server  is complete content management solutions which ships with tons of stuff like permissions. workflows, complete skinnable UI. Plone has been here for years, there are a lot of real companies doing web development and some developers estimated Plone installation base be several thousands.&lt;br /&gt;&lt;br /&gt;Naturally both are open source.&lt;br /&gt;&lt;br /&gt;Common for both of these web platforms is that they are based on &lt;a href="http://python.org" target="_self"&gt;Python &lt;/a&gt;programming language. Currently, Python is my favorite as a wrist saving language. Python has compact, easy-to-read, syntax: You type less - you are more productive. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Test-fix-restart&lt;/h3&gt;&lt;br /&gt;Plone takes aeons to boot  it loads nearly 10 MB Python code to memory . This makes Python code debugging painful, even on the latest monster machines.  Note: this doesn't concern CSS/HTML development . Plone used to have on-the-fly code replacing, but with the latest Plone/Zope versions it usually fails due to Zope 3 dependencies. Zope 3/Five doesn't support hot replacing code, does it?&lt;br /&gt;&lt;br /&gt;Django boots in one second. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The best of both&lt;br /&gt;&lt;/h3&gt;&lt;br /&gt;Django doesn't have a hiearchial content tree which makes things like automatic navigation trees, permission inheritance, etc. difficult. On the other hand, a big part of Plone codebase internals deal with acquistision: you have extra things to worry about. &lt;br /&gt;&lt;br /&gt;Django is good when you don't need through-the-web content editing, the content is mostly static and there aren't many people working on your site  permissions .&lt;br /&gt;&lt;br /&gt;Also, Django is based on traditional relational SQL databases. Plone's object-oriented Zope database, though is better for hierarchial content like most of CMS deal with, is simply weird. This scares off management people. &lt;br /&gt;&lt;br /&gt;&lt;p class="discreet"&gt;Why Zope backend is better for CMS? For example, it has field level automatic permission support, hiearchy  SQL doesn't do trees very well  and built-in capabilities to deal with HTML  e.g in search . The high level of integration is also needed when building very high performance sites - tuning database access on product level à la Plone's Cache-Fu product is the only way to achieve high level dynamic performance for content.&lt;br /&gt;&lt;/p&gt;Templates are a big part of web development, since in the end, it alls goes to down to ugly HTML hacking. Django uses its own template language. I wonder what lead to yet-another-template-language decision, since the world is already full of template language engines  Smarty, Velocity, XSLT bunch, Freemarker . Unlike Zope's TAL, Django is a generic string replacement language. TAL co-opereates with HTML tags so that it doesn't break the structure of template document. Though the latter might be more painful to write, I prefer it because in the end it gives you easier toread results.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Hype r space&lt;/h3&gt;&lt;br /&gt;Even though Plone is an old project, it lacks the marketing it deserves. Plone is tons of times more mature than Ruby on Rails &amp;amp; co. but when you mention Plone everyone is like "huh?". People even know Django better. I wonder where Plone would be today if it had buzz around it like RoR or Django.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Common woes&lt;/h3&gt;&lt;br /&gt;Let's hope that &lt;a href="http://www.redinnovation.com/blog/archive/2006/09/09/organical-growth-in-code/folder_contents" target="_self"&gt;organic growth&lt;/a&gt;, one of my favorite topics, don't harm Django codebase as much as it has harmed Plone. Looks like Django already had some mixed styles in its coding conventions. &lt;br /&gt;&lt;br /&gt;</description>
  <link>http://www.redinnovation.com/blog/archive/2006/09/09/first-steps-with-django</link>
      <dc:subject>Mikko Ohtamaa: First steps with Django</dc:subject>

</item>
<item rdf:about="http://www.redinnovation.com/blog/archive/2006/09/09/organical-growth-in-code">
  <title>Mikko Ohtamaa: Organical growth problems in open source codebases</title>
  <description>One common feature in nearly all community driven open source projects
is that they grow organically - stuff gets added when people need it.
People come from different backgrounds, have different principles and
goals. You cannot command them into engineering discipline like in big
corporation world. This leads to tangled codebase.&lt;br /&gt;&lt;br /&gt;
I have been working with few Python based open source projects  Plone,
Zope, Django and Python itself, all community driven  and then with
Java projects  Eclipse, IBM led . &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Community driven code borns through natural evolution&lt;/li&gt;&lt;li&gt;Corporate driven code borns through design and discipline&lt;br /&gt;
  &lt;/li&gt;&lt;/ul&gt;
In my opinion, the strong lead might
lead to higher quality code base which is more fun to work with  i.e.
gives less headache . &lt;br /&gt;

&lt;ul&gt;&lt;li&gt;If there are big payrolls involved someone is usually paid to
create documentation and there might be even useful comments in the
source code due to formal reviews. Less try-to-see-how-it-works, less
dive-into-source, less headache.&lt;/li&gt;&lt;li&gt;The style is consistent. You don't see code like
MyClass. my_function  . getAnotherFunction  . isthisreasonable  .  Java has standard coding conventions, when Python lacks them. The result is eye hurting soup to read. Since
good auto complete is nearly impossible to implement in Python IDEs, double
checking function naming is even more PITA.&lt;/li&gt;&lt;li&gt;More polish. You won't find XXX, TODO, etc. in code in a critical moment when you thought the subsystem was already working&lt;/li&gt;&lt;li&gt;After things are once done without too much thinking, phasing them out is difficult. "This method will be deprecated" warnings may stay in the code many years. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;In community driven open source projects, at least code conventions could be forced in the scope of the project itself. Other kind of strict rules might not work. Decrease too much the degree of the freedom and soon you don't have committers at all. &lt;br /&gt;&lt;br /&gt;I have myself patched some Plone products. It's very unmotivating when your freshly baked cake gets tossed away when the codebase maintainers point things you are not interested in and thus your patches are rejected. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
  <link>http://www.redinnovation.com/blog/archive/2006/09/09/organical-growth-in-code</link>
      <dc:subject>Mikko Ohtamaa: Organical growth problems in open source codebases</dc:subject>

</item>
<item rdf:about="http://www.redinnovation.com/blog/archive/2006/08/21/lost-n-found">
  <title>Mikko Ohtamaa: Lost'n'found</title>
  <description>&lt;p&gt;Plone's stock search functionality has several shortcomings&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Search form doesn't utilize Plone's content model and is based on scripts containing a lot of hard coded location information, making customizing and creating variants difficult. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Plone's Smart Folder functionality provides rich search criteria, but doesn't provide easy end user interface to do arbitary queries - searches are static, created by the site manager.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The underlaying architechture, Zope's ZCatalog, doesn't support boolean queries or multiple sort keys.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;According to the &lt;a href="http://www.jyu.fi/Members/tarvans/sivut/" target="_self"&gt;research&lt;/a&gt;  sorry, Finnish only!  made at University of Jyväskylä, Plone's default search result listing can be confusing. Try it yourself: go to plone.org and type "Eclipse" to the search field. The first hit is a screenshot instead of the tutorial you are probably looking for. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;ul&gt;&lt;li&gt;Searches don't utilize content type in the ranking, only word counts in the text matter. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The results lack location information. If there are similiar titles under many folders, the result will be ever more confusing. A simple use case would be a folder per company department, each folder having "personell" page. One couldn't distinguish pages from each other in the result listing.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;A new product, &lt;a href="http://plone.org/products/custom-search" target="_self"&gt;Custom Search&lt;/a&gt;,  addresses these problems&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Search forms are Archetypes based objects, meaning they appear in the navigation tree, they have permissions, etc.&lt;/li&gt;&lt;li&gt;Adding new forms and search fields can be done through-the-web easily If you have need &lt;i&gt;very&lt;/i&gt; custom code, the search items can be extended using the normal class inheritance and schema magic which is used for the all Plone content types. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Numeric, boolean and ranged search indexes are supported. This is useful if your content types have attributes like a price.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Custom Search uses &lt;a href="http://www.dieter.handshake.de/pyprojects/zope/AdvancedQuery.html" target="_self"&gt;AdvancedQuery &lt;/a&gt;product by Dieter Mauer as a backend. AdvancedQuery monkey patches ZCatalog to support boolean queries and multiple sort keys.&lt;/li&gt;&lt;/ul&gt;Here are &lt;a href="http://plone.org/products/custom-search/documentation/manual/manual/some-sample-screenshots" target="_self"&gt;some screenshot examples&lt;/a&gt; what Custom Search can currently do. &lt;br /&gt;&lt;br /&gt;For some use cases, Custom Search is already very usable. It still lacks some functionality like batching support  all search are displayed on one page  and adding boolean conditions to the queries. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
  <link>http://www.redinnovation.com/blog/archive/2006/08/21/lost-n-found</link>
      <dc:subject>Mikko Ohtamaa: Lost'n'found</dc:subject>

</item>
<item rdf:about="http://www.redinnovation.com/blog/archive/2007/01/15/hacker-s-story-how-plone-changed-my-life">
  <title>Mikko Ohtamaa: Hacker's story - How Plone changed my life</title>
  <description>&lt;p&gt;

&lt;/p&gt;

&lt;p&gt;This story
is greatly inspired by Tom Lazar's blog entry &lt;a href="http://www.tomster.org/blog/archive/2006/07/16/fulltime-developer/"&gt;On
Living 'The Life[tm]'&lt;/a&gt;. He tells his story. I feel that I need to tell mine,
in hope to inspire and encourage people. And naturally, when it's once well written
down, I don't need to reinvent my background story in every occasion.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I am an
entrepreneur, and have been a full time entrepreneur few months now. Nowadays,
when people ask what my job is, I answer "I am hacker".  Usually the conversation ends there, with a
strange expression on the questioner's face. It's much easier say to be a
hacker than to explain all this open source and contracting stuff to people
outside IT scene. And I like being called a hacker. I think I was born to be a
hacker.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;What hacker
does? He codes. By coding I don't refer to programming alone, but to all
activity happening at the front of computer which requires a lot of typing and
results to new wonderful things. A hacker codes, with passion, a code which does miracles.
Passion is the key element. All the expertise gushes from the natural love for
the technology. This brings expertise which cannot be achieved in 8/24 job, in
company training, in office environment or at the university classes. You need
to be an adventurer who lives in Internet to stay in constant touch with the
latest technology. You don't do these things to get a comfortable office with
nice salary - you do it to create a better world for people to live. &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I have been
writing code since I got my first PC as 8-years-old kid. It had black and white
Hercules monitor, which greatly limited running games. So, I just had my text
mode and &lt;a href="http://en.wikipedia.org/wiki/GW-BASIC" target="_self"&gt;GWBASIC &lt;/a&gt;interpreter, and all I could do was to type code. Thanks,
Bill. Since then I have been coding everything: embedded, server, web, WAP,
Windows, Unix, UI, protocol, 3D games, mobile phones, ring tones, you-name-it.
And I am pretty sure that I have reached my limits as a software developer. &lt;/p&gt;

&lt;h2&gt;What kind of person I am?&lt;/h2&gt;

&lt;p&gt;It might come
as a surprise, but I didn't study computer science in the university. I studied
industrial engineering and management. By far, it has been the best choice in
my life. It has crucially made me a person I am now. In class room, I learnt
basics of quality, project management, and basic managerial stuff. But the real
growing happened outside class room.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Mainly due
to high team spirit in &lt;a href="http://www.optiem.fi" target="_self"&gt;our student organization&lt;/a&gt;, a bit unsocial guy, like I
was, turned out to be a nice friendly guy who can actually handle people and
management stuff too. Nowadays, I love be at the stage. I love to discuss with
people. I love to help people. I insult people less with not-so-well-though
phrases. I can take any criticism people throw at me. The sharpest edges of my
nerdish, fly agaric like, nature have been polished out. I am not a natural
born leader, I know my weaknesses, but I have gained enough social skills to
run a business.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Thank you
for student organization &lt;a href="http://galleria.optiem.fi/" target="_self"&gt;activities&lt;/a&gt;!  The actual growth process consists of sitting
in student organization meetings, parties, lots of &lt;a href="http://en.wikipedia.org/wiki/Koskenkorva_Viina"&gt;vodka&lt;/a&gt;, sauna, crazy
stuff done naked, and causing havoc for general society. And lots of vodka. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Tipping point of the life&lt;/h2&gt;



&lt;p&gt;The tipping
point of my life was on spring 2006. &lt;a href="http://en.wikipedia.org/wiki/The_Tipping_Point_ book "&gt;Tipping point&lt;/a&gt;
is a book by Malcolm Gladwell, much hyped by Ruby folks  whose active efforts
of marketing and making out-of-box experience easy as possible might some day
be the nail in Plone's coffin . I am not sure whether I can apply the term 'tipping
point' to something qualitative as life, but oh boy, my life took a totally
different course then.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I had done
little &lt;a href="http://www.opensourceusability.com/"&gt;experiments&lt;/a&gt; with
Plone. Gosh, Plone was hard to learn. Plone is candy outside, monster inside.
Don't ever think about asking documents in open source world, but even the
slightest code comments would have been really helpful when I was sunk in the
incomprehensive software layers of Plone and Zope. Anyway, I felt that I could
give something back to Plone community, so I released and patched few Plone
products. I don't know what I hoped when I added a little signature to release
notes "will work for food".&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Then, I got
the first email. Someone was asking for help. Kindly, I wanted to help. It
appeared that someone had fell in love with Plone, but this incomprehensive
software layers part was a bit too much for her. I ended up doing a month worth
of working hours for little fee. My Plone consulting career just had started.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I didn't
find my office work very rewarding; Plone work as
an open source hacker was much more fun. I started to be more active in Plone
community - I got more work propositions. Then I though passed my mind: if I
could do this for my life.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Plone has the most functional business
ecosystem from all those numerous open source projects I have seen. &lt;a href="http://plone.net/"&gt;Companies&lt;/a&gt; really make money making Plone services and
it creates push for Plone. I don't know how Plone ecosystem has evolved to be
Plone ecosystem. But If I had not picked Plone I wouldn't be where I am today.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt; &lt;/b&gt;&lt;/p&gt;

&lt;h2&gt;Going incorporated&lt;/h2&gt;

&lt;p&gt;in Autumn
2006, I told to &lt;a href="http://www.ardites.com/"&gt;Ardites&lt;/a&gt;, my former
employer, that I want to go for my own business. They kindly offered a soft landing to the entrepreneurship world. I was able to work for them as a
part-timer and later as a subcontractor, providing basic workload for myself
and thus guaranteed that I had butter on my bread. My advice: If you want to go
for your own business, always ask possibility of doing some kind of deal with
the current employer. Don't burn bridges, but tell how it's a good option for
both of you.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Currently I
have two contracting projects unrelated to Plone which take the greatest share
of my time, but also provide some stable income. After nine months, I have had
five clients who have paid for Plone tasks. A fun point is that all those are
foreigners. A contractor is a rare sight here in my beloved home country where national
social system is strong. Not everyone wants to be a wage slave in a safe,
stable, environment.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I got
myself incorporated at the turn of the year.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Now, when I
am not a hacker alone anymore, but a manager too, I want to impose my hacker
values to business life: Openness, altruism and the pride of one's work. There
are already some &lt;a href="http://www.liferay.com/"&gt;companies&lt;/a&gt; doing it and
they have inspired me to take these steps. Let's see if hackers make good
managers.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I am hiring
one of my good friends as my associate. He is not hacker as I am, but I really
need the pair of extra hands. My biggest worry is that if I can offer enough
work for my buddy. Instead of getting Plone contracts through open source
community, I hope we can aim for non-technology specific web site deals. General
web sites might not pay as well as platform specific consulting, but I doubt whether I can get enough work through Plone community.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;The future                &lt;/h2&gt;

&lt;p&gt;I have a
vision. The vision is "software product business." Consulting business
is easy, but you'll never get rich with it. Every penny you got is tore off
from some poor bastard's back skin - if it's not you then it's your colleague. Thus,
you'll need to create new business, by definition, not just help others.
Unfortunately, I am 30k€ - 100k€ short of cash to start bigger
product development ventures. Let's see how things will turn out.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Ultimately,
what I  thought I want to do in my life is to make video games. It's my
childhood dream. Write games, direct them and product them. Tell my stories
and then watch when people are enjoying. I want to be kind of an architect of
fun. Unfortunately game business has high risks and is quite costly, one AAA
title costing over 10 million euros.  As I said, I am still a bit short of cash. &lt;br /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I also want
Jaguar and a house in Australia - little silly dreams.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Meanwhile,
if you need a Plone hacker or have extra 10 million euros, you know where to get
my email. &lt;/p&gt;

&lt;p&gt;&lt;img class="image-inline" src="http://redinnovation.com/image-bank/hoppi.jpg" alt="May day monster" /&gt;&lt;br /&gt;&lt;/p&gt;







&lt;div align="center"&gt;&lt;i&gt;Seek to understand then be understood.&lt;/i&gt; – Stephen R. Covey, author&lt;br /&gt;&lt;br /&gt;;- &lt;br /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;</description>
  <link>http://www.redinnovation.com/blog/archive/2007/01/15/hacker-s-story-how-plone-changed-my-life</link>
      <dc:subject>Mikko Ohtamaa: Hacker's story - How Plone changed my life</dc:subject>

</item>
<item rdf:about="http://danielnouri.org/blog/devel/adaptation-and-generic-functions.html">
  <title>Daniel Nouri: Generic functions kick ass</title>
  <description>&lt;div class="document"&gt;
&lt;p&gt;Yesterday, I watched &lt;a class="reference" href="http://video.google.com/videoplay?docid=-6459339159268485356"&gt;Guido van Rossum's talk about Python 3000&lt;/a&gt;
along with some Monty Python sketches that turned up in my search
results page.  It was quite interesting to see what Python 3.0 will be
and what it will not be.&lt;/p&gt;
&lt;p&gt;One thing that occured to me some months ago after I watched the
&lt;a class="reference" href="http://www.turbogears.org/ultimate.html"&gt;TurboGears Ultimate DVD&lt;/a&gt; was that those &lt;em&gt;generic functions&lt;/em&gt;  in the
form of &lt;a class="reference" href="http://dirtsimple.org/2005/12/ruledispatch-on-move.html"&gt;RuleDispatch&lt;/a&gt;  are an &lt;a class="reference" href="http://mail.python.org/pipermail/python-3000/2006-April/000342.html"&gt;alternative to adaptation&lt;/a&gt;, as it
exists in Zope.  That is, you could do everything that you wanted to
do with adaptation also with generic functions, and that in an
arguably less verbose way.  Also, Guido explains in his Google talk
that &lt;em&gt;adapters are only a special case of generic functions&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I tried it out.  In &lt;a class="reference" href="http://dev.plone.org/collective/browser/plone.checksum/trunk"&gt;plone.checksum&lt;/a&gt;  which is not that interesting
by itself , I'm using a generic function instead of adaptation.  I
have a class called &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;Checksum&lt;/span&gt;&lt;/tt&gt; that returns an md5 checksum in its
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;do_checksum&lt;/span&gt;&lt;/tt&gt; method:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
import dispatch

class Checksum:
    &amp;#64;dispatch.generic  
    def do_checksum self, value :
        """Return md5 object that has the calculated checksum.
        """
&lt;/pre&gt;
&lt;p&gt;You can see that the generic function doesn't actually have an
implementation.  It's meant to be overloaded like this:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
import md5

&amp;#64;Checksum.do_checksum.when 'isinstance value, object ' 
def do_checksum self, value :
    checksum = md5.new  
    checksum.update str value  
    return checksum
&lt;/pre&gt;
&lt;p&gt;This is the most general implementation that I could come up with.
It'll be called when the argument value is an instance of &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;object&lt;/span&gt;&lt;/tt&gt;,
that is, always, unless there's a more specialized generic function.
Let's say we want a different implementation for &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;OFS.Image.File&lt;/span&gt;&lt;/tt&gt;.
Instead of having &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;File&lt;/span&gt;&lt;/tt&gt; implement an interface just for this
purpose and register an adapter, we register a generic function:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
import OFS.Image.File

&amp;#64;Checksum.do_checksum.when 'isinstance value, OFS.Image.File ' 
def do_checksum self, value :
    checksum = md5.new  
    value = value.data
    if isinstance value, str :
        checksum.update value 
    else:
        while value is not None:
            checksum.update value.data 
            value = value.next
    return checksum
&lt;/pre&gt;
&lt;p&gt;Interfaces are a generally a good thing, but not in this case where we
would have to mark the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;File&lt;/span&gt;&lt;/tt&gt; class just to serve our adaptation.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.artima.com/weblogs/viewpost.jsp?thread=155123"&gt;Guido blogged about adaptation versus generic functions&lt;/a&gt; half a year
ago.  There are also some nice additional links in there.&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://danielnouri.org/blog/devel/adaptation-and-generic-functions.html</link>
      <dc:subject>Daniel Nouri: Generic functions kick ass</dc:subject>

</item>
<item rdf:about="http://theploneblog.org/blog/archive/2007/01/14/top-7-plone-conference-videos">
  <title>The Plone Blog: Top 7 Plone Conference Videos</title>
  <description>&lt;p&gt;I'm fascinated to watch which &lt;a href="http://plone.org/events/conferences/seattle-2006/presentations/"&gt;Plone Conference 2006 videos&lt;/a&gt; are turning out to be the most popular.&amp;nbsp;  Wanna see the &lt;a href="http://www.archive.org/search.php?query=plone%20conference"&gt;raw stats&lt;/a&gt; yourself? &lt;br /&gt;&lt;/p&gt;&lt;p&gt;So far, our top 7 videos are:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=NorfgQlEJv8"&gt;Eben Moglen's Keynote&lt;/a&gt; -- with over 950 downloads  plus over 13,000 views on YouTube &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="titleLink" href="http://www.archive.org/details/plone2006-plone-3-sneak-peak"&gt;A Sneak Peek at &lt;span class="searchTerm"&gt;Plone&lt;/span&gt; 3.0&lt;/a&gt;, Alexander Limi - 587 downloads&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="titleLink" href="http://www.archive.org/details/plone2006-b-org"&gt;b-org: Creating Content Types the &lt;span class="searchTerm"&gt;Plone&lt;/span&gt; 2.5 Way&lt;/a&gt;, Martin Aspeli - 233 downloads&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="titleLink" href="http://www.archive.org/details/plone2006-top-20-pitfalls"&gt;Top 20 &lt;span class="searchTerm"&gt;Plone&lt;/span&gt; Pitfalls -- And How To Avoid Them&lt;/a&gt;, Stefan Holek - 195 downloads&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="titleLink" href="http://www.archive.org/details/plone2006-high-performance-plone"&gt;High Performance &lt;span class="searchTerm"&gt;Plone&lt;/span&gt;&lt;/a&gt;, Joel Burton - 188 downloads&lt;/li&gt;&lt;li&gt;&lt;a class="titleLink" href="http://www.archive.org/details/plone2006-100-hours"&gt;100 Hours or Less: Creating a Scope of Work for a Simple &lt;span class="searchTerm"&gt;Plone&lt;/span&gt; Website&lt;/a&gt;, Patrick Shaw - 187 downloads&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="titleLink" href="http://www.archive.org/details/plone2006-from-spaghetti-to-sushi"&gt;Graduating from Spaghetti to Sushi: &lt;span class="searchTerm"&gt;Plone&lt;/span&gt; for PHPers&lt;/a&gt;, Sean Kelly - 185 downloads&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;It's no surprise to see Eben and Alex's talks at the top of the pile.&amp;nbsp; Martin, Stefan and Joel are both well-known Plone community members, and they all gave bang-up presentations.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;It's particularly gratifying to see Patrick and Sean's talks rounding out the top 7, though.&amp;nbsp; Both Patrick and Sean are relative newcomers to the Plone community.&amp;nbsp; Both of their talks were relatively non-technical talks aimed at fellow Plone newbies.&amp;nbsp; I think we're seeing strong evidence here of a thirst for solid information aimed at the everyday concerns of people who are implementing Plone projects.&lt;br /&gt;&lt;/p&gt;</description>
  <link>http://theploneblog.org/blog/archive/2007/01/14/top-7-plone-conference-videos</link>
      <dc:subject>The Plone Blog: Top 7 Plone Conference Videos</dc:subject>

</item>
<item rdf:about="http://redinnovation.com/blog/archive/2007/01/15/hacker-s-story-how-plone-changed-my-life">
  <title>Mikko Ohtamaa: Hacker's story - How Plone changed my life</title>
  <description>&lt;p&gt;

&lt;/p&gt;

&lt;p&gt;This story
is greatly inspired by Tom Lazar's blog entry &lt;a href="http://www.tomster.org/blog/archive/2006/07/16/fulltime-developer/"&gt;On
Living 'The Life[tm]'&lt;/a&gt;. He tells his story. I feel that I need to tell mine,
in hope to inspire and encourage people. And naturally, when it's once well written
down, I don't need to reinvent my background story in every occasion.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I am an
entrepreneur, and have been a full time entrepreneur few months now. Nowadays,
when people ask what my job is, I answer "I am hacker".  Usually the conversation ends there, with a
strange expression on the questioner's face. It's much easier say to be a
hacker than to explain all this open source and contracting stuff to people
outside IT scene. And I like being called a hacker. I think I was born to be a
hacker.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;What hacker
does? He codes. By coding I don't refer to programming alone, but to all
activity happening at the front of computer which requires a lot of typing and
results to new wonderful things. A hacker codes, with passion, a code which does miracles.
Passion is the key element. All the expertise gushes from the natural love for
the technology. This brings expertise which cannot be achieved in 8/24 job, in
company training, in office environment or at the university classes. You need
to be an adventurer who lives in Internet to stay in constant touch with the
latest technology. You don't do these things to get a comfortable office with
nice salary - you do it to create a better world for people to live. &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I have been
writing code since I got my first PC as 8-years-old kid. It had black and white
Hercules monitor, which greatly limited running games. So, I just had my text
mode and &lt;a href="http://en.wikipedia.org/wiki/GW-BASIC" target="_self"&gt;GWBASIC &lt;/a&gt;interpreter, and all I could do was to type code. Thanks,
Bill. Since then I have been coding everything: embedded, server, web, WAP,
Windows, Unix, UI, protocol, 3D games, mobile phones, ring tones, you-name-it.
And I am pretty sure that I have reached my limits as a software developer. &lt;/p&gt;

&lt;h2&gt;What kind of person I am?&lt;/h2&gt;

&lt;p&gt;It might come
as a surprise, but I didn't study computer science in the university. I studied
industrial engineering and management. By far, it has been the best choice in
my life. It has crucially made me a person I am now. In class room, I learnt
basics of quality, project management, and basic managerial stuff. But the real
growing happened outside class room.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Mainly due
to high team spirit in &lt;a href="http://www.optiem.fi" target="_self"&gt;our student organization&lt;/a&gt;, a bit unsocial guy, like I
was, turned out to be a nice friendly guy who can actually handle people and
management stuff too. Nowadays, I love be at the stage. I love to discuss with
people. I love to help people. I insult people less with not-so-well-though
phrases. I can take any criticism people throw at me. The sharpest edges of my
nerdish, fly agaric like, nature have been polished out. I am not a natural
born leader, I know my weaknesses, but I have gained enough social skills to
run a business.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Thank you
for student organization &lt;a href="http://galleria.optiem.fi/" target="_self"&gt;activities&lt;/a&gt;!  The actual growth process consists of sitting
in student organization meetings, parties, lots of &lt;a href="http://en.wikipedia.org/wiki/Koskenkorva_Viina"&gt;vodka&lt;/a&gt;, sauna, crazy
stuff done naked, and causing havoc for general society. And lots of vodka. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Tipping point of the life&lt;/h2&gt;



&lt;p&gt;The tipping
point of my life was on spring 2006. &lt;a href="http://en.wikipedia.org/wiki/The_Tipping_Point_ book "&gt;Tipping point&lt;/a&gt;
is a book by Malcolm Gladwell, much hyped by Ruby folks  whose active efforts
of marketing and making out-of-box experience easy as possible might some day
be the nail in Plone's coffin . I am not sure whether I can apply the term 'tipping
point' to something qualitative as life, but oh boy, my life took a totally
different course then.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I had done
little &lt;a href="http://www.opensourceusability.com/"&gt;experiments&lt;/a&gt; with
Plone. Gosh, Plone was hard to learn. Plone is candy outside, monster inside.
Don't ever think about asking documents in open source world, but even the
slightest code comments would have been really helpful when I was sunk in the
incomprehensive software layers of Plone and Zope. Anyway, I felt that I could
give something back to Plone community, so I released and patched few Plone
products. I don't know what I hoped when I added a little signature to release
notes "will work for food".&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Then, I got
the first email. Someone was asking for help. Kindly, I wanted to help. It
appeared that someone had fell in love with Plone, but this incomprehensive
software layers part was a bit too much for her. I ended up doing a month worth
of working hours for little fee. My Plone consulting career just had started.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I didn't
find my office work very rewarding; Plone work as
an open source hacker was much more fun. I started to be more active in Plone
community - I got more work propositions. Then I though passed my mind: if I
could do this for my life.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Plone has the most functional business
ecosystem from all those numerous open source projects I have seen. &lt;a href="http://plone.net/"&gt;Companies&lt;/a&gt; really make money making Plone services and
it creates push for Plone. I don't know how Plone ecosystem has evolved to be
Plone ecosystem. But If I had not picked Plone I wouldn't be where I am today.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt; &lt;/b&gt;&lt;/p&gt;

&lt;h2&gt;Going incorporated&lt;/h2&gt;

&lt;p&gt;in Autumn
2006, I told to &lt;a href="http://www.ardites.com/"&gt;Ardites&lt;/a&gt;, my former
employer, that I want to go for my own business. They kindly offered a soft landing to the entrepreneurship world. I was able to work for them as a
part-timer and later as a subcontractor, providing basic workload for myself
and thus guaranteed that I had butter on my bread. My advice: If you want to go
for your own business, always ask possibility of doing some kind of deal with
the current employer. Don't burn bridges, but tell how it's a good option for
both of you.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Currently I
have two contracting projects unrelated to Plone which take the greatest share
of my time, but also provide some stable income. After nine months, I have had
five clients who have paid for Plone tasks. A fun point is that all those are
foreigners. A contractor is a rare sight here in my beloved home country where national
social system is strong. Not everyone wants to be a wage slave in a safe,
stable, environment.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I got
myself incorporated at the turn of the year.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Now, when I
am not a hacker alone anymore, but a manager too, I want to impose my hacker
values to business life: Openness, altruism and the pride of one's work. There
are already some &lt;a href="http://www.liferay.com/"&gt;companies&lt;/a&gt; doing it and
they have inspired me to take these steps. Let's see if hackers make good
managers.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I am hiring
one of my good friends as my associate. He is not hacker as I am, but I really
need the pair of extra hands. My biggest worry is that if I can offer enough
work for my buddy. Instead of getting Plone contracts through open source
community, I hope we can aim for non-technology specific web site deals. General
web sites might not pay as well as platform specific consulting, but I doubt whether I can get enough work through Plone community.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h2&gt;The future                &lt;/h2&gt;

&lt;p&gt;I have a
vision. The vision is "software product business." Consulting business
is easy, but you'll never get rich with it. Every penny you got is tore off
from some poor bastard's back skin - if it's not you then it's your colleague. Thus,
you'll need to create new business, by definition, not just help others.
Unfortunately, I am 30k€ - 100k€ short of cash to start bigger
product development ventures. Let's see how things will turn out.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Ultimately,
what I  thought I want to do in my life is to make video games. It's my
childhood dream. Write games, direct them and product them. Tell my stories
and then watch when people are enjoying. I want to be kind of an architect of
fun. Unfortunately game business has high risks and is quite costly, one AAA
title costing over 10 million euros.  As I said, I am still a bit short of cash. &lt;br /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;I also want
Jaguar and a house in Australia - little silly dreams.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Meanwhile,
if you need a Plone hacker or have extra 10 million euros, you know where to get
my email. &lt;/p&gt;

&lt;p&gt;&lt;img class="image-inline" src="http://redinnovation.com/image-bank/hoppi.jpg" alt="May day monster" /&gt;&lt;br /&gt;&lt;/p&gt;







&lt;div align="center"&gt;&lt;i&gt;Seek to understand then be understood.&lt;/i&gt; – Stephen R. Covey, author&lt;br /&gt;&lt;br /&gt;;- &lt;br /&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;</description>
  <link>http://redinnovation.com/blog/archive/2007/01/15/hacker-s-story-how-plone-changed-my-life</link>
      <dc:subject>Mikko Ohtamaa: Hacker's story - How Plone changed my life</dc:subject>

</item>
<item rdf:about="http://theploneblog.org/blog/archive/2007/01/14/limi-to-appear-on-future-of-site-design-panel">
  <title>The Plone Blog: Limi To Appear On "Future of Site Design" Panel</title>
  <description>&lt;p&gt;Plone co-founder  and Google UI Designer  Alex Limi will be speaking at &lt;a href="http://www.webguild.org"&gt;WebGuild Silicon Valley&lt;/a&gt;'s next meeting, Jan. 17, 2007 from 6 - 9:30 p.m.  &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Their topic is "The Future of Site Design" and the panel discussion will feature Alex, along with folks from Oracle and Yahoo's UI teams.  &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Jan. 17, 2007 from 
				6 - 9:30 p.m.&lt;br /&gt;
				6 p.m. - Reception; 7 p.m. - Presentation&lt;/p&gt;
&lt;p&gt;Location: &lt;a href="http://local.google.com/maps?f=q&amp;amp;hl=en&amp;amp;q=1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&amp;amp;ie=UTF8&amp;amp;z=14&amp;amp;ll=37.422867,-122.085056&amp;amp;spn=0.021404,0.086002&amp;amp;om=1&amp;amp;iwloc=addr"&gt;Google's Mountain View campus&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.123signup.com/register?id=qnckg"&gt;Registration&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Blurb from site:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For web site and web app design, 2006 has been a stellar year and 2007
promises to be even better. Hear what the brightest and most
cutting-edge designers in the field are saying about the future of web
design. This panel will discuss trends, innovations, predictions, and
the outlook for web site and app design for 2007. The panel will also
address some of the best practices, principles, and methodologies in
design including new age tools and technologies such as Web 2.0, design
patterns libraries, and AJAX, as well as the reinvention of CSS, Flash,
and much more. Get a head start on the new year. Don't miss it!
&lt;br /&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description>
  <link>http://theploneblog.org/blog/archive/2007/01/14/limi-to-appear-on-future-of-site-design-panel</link>
      <dc:subject>The Plone Blog: Limi To Appear On "Future of Site Design" Panel</dc:subject>

</item>
<item rdf:about="http://www.rickhurst.co.uk/2007/01/10/another-plone-skillswap/">
  <title>Rick Hurst: Another Plone skillswap</title>
  <description>&lt;p&gt;I have volunteered to give another &lt;a href="http://plone.org"&gt;Plone&lt;/a&gt; related skillswap at the &lt;a href="http://www.watershed.co.uk/"&gt;Watershed&lt;/a&gt; in Bristol  UK , on 16th January. The &lt;a href="http://www.rickhurst.co.uk/2006/08/14/my-plone-demo-as-first-bristol-skillswap/"&gt;previous one  a general plone demo &lt;/a&gt; went down well, and this time I am going to cover the basics of skinning a plone site, from basic Through The Web  TTW  customisation, to creating an installable skin product. I think it will be streamed live - check &lt;a href="http://groups-beta.google.com/group/bristolskillswap/web/january-16-meeting-plone"&gt;here&lt;/a&gt; for details. If you are in the Bristol area come along  it&amp;#8217;s free !&lt;/p&gt;
&lt;p&gt;I am going to rig up a device that gives me an electric shock every time I say the word &amp;#8220;umm..&amp;#8221;, to train me up abit better for this public speaking lark..
&lt;/p&gt;</description>
  <link>http://www.rickhurst.co.uk/2007/01/10/another-plone-skillswap/</link>
      <dc:subject>Rick Hurst: Another Plone skillswap</dc:subject>

</item>
<item rdf:about="http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;articleId=73&amp;blogId=1">
  <title>Carlos de la Guardia: me says grok good</title>
  <description>&lt;p&gt;I recently &lt;a href="http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;amp;articleId=72&amp;amp;blogId=1"&gt;commented about the need for a Zope 3 application&lt;/a&gt; that allows mere mortal developers like me to take advantage of all its power and mentioned that Grok could very well be It.&lt;/p&gt;
&lt;p&gt;Well, the Grok developers are moving fast, and just this past weekend held a sprint where Grok advanced a lot. Check out sprint reports from &lt;span&gt;&lt;a href="http://jw.n--tree.net/blog/dev/python/second-grok-sprint"&gt;Jan-Wijbrand Kolman&lt;/a&gt; and &lt;/span&gt;&lt;a class="commentAuthor" href="http://faassen.n--tree.net/blog/view/weblog/2007/01/09/0"&gt;Martijn Faassen&lt;/a&gt;. To make things more interesting, Philipp von Weitershausen has published a complete application showing &lt;a href="http://www.z3lab.org/sections/blogs/philipp-weitershausen/2007_01_09_you-thought-zope-3-wasn"&gt;how Grok code looks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you look at the code you will see simplicity you never thought possible with Zope 3, and only one line of ZCML! I think this cavemen are onto something.&lt;/p&gt;
&lt;p&gt;Some people may sneer and say, "convention over configuration, &lt;a href="http://www.rubyonrails.org"&gt;where have I heard that one before?&lt;/a&gt;". I think it's not the same, though, since Grok will be based on a poweful framework and the potential for easy integration, extension and customization is good. If you thought there are too many web frameworks for Python, wait to see if the Grok approach shows results and you might be surprised.&lt;/p&gt;
On a completely unrelated note, doesn't Grok the caveman look a lot like &lt;a href="http://en.wikipedia.org/wiki/Fred_Flintstone"&gt;Fred Flintstone&lt;/a&gt;?&lt;br /&gt;?&lt;br /&gt;</description>
  <link>http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;amp;articleId=73&amp;amp;blogId=1</link>
      <dc:subject>Carlos de la Guardia: me says grok good</dc:subject>

</item>
<item rdf:about="http://www.z3lab.org/sections/blogs/philipp-weitershausen/2007_01_09_you-thought-zope-3-wasn">
  <title>Philipp von Weitershausen: And you thought Zope 3 wasn't fun</title>
  <description>If you think that Zope 3, or even Zope in general, isn't fun, agile,
developer-friendly, easily understandable or "Pythonic", enter
Grok  Cheeseshop, Launchpad, SVN .  Here's an excerpt...</description>
  <link>http://www.z3lab.org/sections/blogs/philipp-weitershausen/2007_01_09_you-thought-zope-3-wasn</link>
      <dc:subject>Philipp von Weitershausen: And you thought Zope 3 wasn't fun</dc:subject>

</item>
<item rdf:about="http://nateaune.com/2007/01/09/integration-proclamation/">
  <title>Nate Aune: Integration Proclamation</title>
  <description>&lt;p&gt;I just signed the &lt;a href="http://www.integrationproclamation.com/"&gt;Integration Proclamation&lt;/a&gt;, a first step towards encouraging funders, software developers and those of us who work with them to invest resources in making tools that play together better. &lt;/p&gt;
&lt;p&gt;Ever since I heard Alan Runyan, co-founder of Plone give a talk &amp;#8220;Integration, not Isolation&amp;#8221;  &lt;a href="http://media.plone.org/video/conference/2006/NOLASymposium/AlanRunyan.wmv"&gt;video&lt;/a&gt;  at the &lt;a href="http://plone.org/events/regional/nola06/"&gt;Plone Symposium 2006&lt;/a&gt;, this has been something I&amp;#8217;ve been thinking about a lot. &lt;/p&gt;
&lt;p&gt;It&amp;#8217;s easy to fall into the trap of thinking that your CMS can do-it-all, and solve all technology problems. But the fact is, that no one piece of software can do everything equally well, and the sooner we accept this and look at how to integrate our software with other best-of-breed systems, the better off we will be. &lt;/p&gt;
&lt;p&gt;There are already steps being taken to integrate &lt;a href="http://plone.org/products/salesforceconnector"&gt;Plone with Salesforce&lt;/a&gt;, &lt;a href="http://cheeseshop.python.org/pypi/deminaction/"&gt;Democracy in Action&lt;/a&gt;, &lt;a href="http://www.onenw.org/open-source/pywhatcounts/view"&gt;What Counts&lt;/a&gt;, and Get Active.&lt;/p&gt;
&lt;p&gt;If you want to make tools play together better, sign the proclamation. It only takes 15 seconds to &lt;a href="http://www.integrationproclamation.com/"&gt;fill out the form&lt;/a&gt;. Do it now!
&lt;/p&gt;</description>
  <link>http://nateaune.com/2007/01/09/integration-proclamation/</link>
      <dc:subject>Nate Aune: Integration Proclamation</dc:subject>

</item>
<item rdf:about="http://faassen.n--tree.net/blog/view/weblog/2007/01/09/0">
  <title>Martijn Faassen: Grok Sprint Zwei: the Ascent of Man</title>
  <description>&lt;p&gt;Yesterday I returned from "Grok Sprint Zwei", the second grok sprint, hosted by Philipp von Weitershausen in Dresden, Germany  and partially at Gocept for the warming up . Grok is a project to make Zope 3 safe, easy and fun for cavemen and other hominids like ourselves. Zope 3 of course is the powerful and flexible framework for the construction of web applications. See &lt;a class="reference" href="http://faassen.n--tree.net/blog/view/weblog/2006/11/09/0"&gt;here&lt;/a&gt; for my initial introduction of the Zope Grok project.&lt;/p&gt;
&lt;p&gt;To summarize, Grok is an advanced alternate way to construct Zope 3 based applications that makes it possible to use the powerful Zope 3 component architecture  the glue that binds Zope 3 together  without having to write lots of configuration code. Instead, we apply "convention over configuration" to Zope 3. We aim for two things:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;developers can write simple Python code to make Zope 3 applications&lt;/li&gt;
&lt;li&gt;developers can still fully exploit the power of Zope 3  object database, pluggability, authentication, virtual hosting support, etc, etc &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Besides a project, Grok is also a caveman. Here he is again, relaxing after his work at the sprint:&lt;/p&gt;
&lt;img alt="http://faassen.n--tree.net/grok_relax.png" src="http://faassen.n--tree.net/grok_relax.png" /&gt;
&lt;p&gt;We had five people participating in the sprint. Everybody present at the first sprint was back: Philipp von Weitershausen, Christian Theune, Wolfgang Schnerring and myself. New at this sprint was Jan-Wijbrand Kolman. Jan-Wijbrand and I go back a while by now; I've had the pleasure to work with him for some years. More recently, after the first Grok sprint, we have been doing regular work on Grok and Grok applications. I was particularly happy he could make it to the second sprint, as he has lots of experience with usability, and Grok is a  developer  usability project.&lt;/p&gt;
&lt;p&gt;The second Grok sprint was a success: we set ourselves goals and we accomplished them. We also played lots of &lt;a class="reference" href="http://en.wikipedia.org/wiki/Guitar_hero"&gt;Guitar Hero&lt;/a&gt; in the evening. :  The major new things in Grok after this sprint are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p class="first"&gt;security declarations for views. Views are public by default but
you can now restrict access using permissions. This allows
Grok to make use of Zope 3's advanced authentication/authorization
support.&lt;/p&gt;
&lt;p&gt;In Grok, we deliberately turn off security for anything &lt;em&gt;but&lt;/em&gt;
views  only security where your app faces
the web , as we noticed that the standard pervasive Zope 3
security proyxing model can hinder rapid application
development.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;local utility support. Local utilities can be used to do
context-specific configuration and storage  such as the storage
of an index . They are equivalent to CMF's tools. Utilities
are looked up by interface which makes it easy to plug in new
ones implementing the same interface. We now have an easy way
to use local utilities.&lt;/p&gt;
&lt;p&gt;Concretely, this means Grok applications can now easily use
powerful Zope 3 components such as the Zope 3 catalog for
indexing of objects.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We think Grok now has enough features to start developing real world applications. We could of course only go so quickly as we're exposing  existing Zope 3 features.&lt;/p&gt;
&lt;p&gt;Since we're now ready with features, what remains to be done? One thing we are going to continue to do is build real-world applications with Grok. This will help us polish Grok further.&lt;/p&gt;
&lt;p&gt;One of the main areas that is still lacking is documentation that tells you how to use Grok, so we will be working on this now.&lt;/p&gt;
&lt;p&gt;Another aspect we want to work on is a focused admin UI for Grok applications. This is explicitly much more narrowly targeted than the Zope Management Interface. The admin ui is aimed at developers and admins to install and inspect Grok-based applications.&lt;/p&gt;
&lt;p&gt;We hope to do an initial release of Grok within a few weeks. We are also planning another sprint in april, where we plan to make Grok ready to exit the cave and step into the wide world, club in hand and smile on his face - ready for the ascent.&lt;/p&gt;</description>
  <link>http://faassen.n--tree.net/blog/view/weblog/2007/01/09/0</link>
      <dc:subject>Martijn Faassen: Grok Sprint Zwei: the Ascent of Man</dc:subject>

</item>
<item rdf:about="http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;articleId=72&amp;blogId=1">
  <title>Carlos de la Guardia: Zope 3: the framework is not the application</title>
  <description>&lt;p&gt;In a &lt;a href="http://mail.zope.org/pipermail/zope3-dev/2007-January/thread.html#21383"&gt;recent discussion on the Zope 3 Developers mailing list&lt;/a&gt;, Jim Fulton &lt;a href="http://mail.zope.org/pipermail/zope3-dev/2007-January/021383.html"&gt;shares some thoughts&lt;/a&gt; about the nature of Zope 3.&lt;/p&gt;&lt;p&gt;What is interesting to me as a Zope 2 longtimer but Zope 3 newbie, is that I finally realize Zope 3 is not really or ever will be a replacement for Zope 2. In short, Zope 3 should really be thought of as a library or framework  or, perhaps more accurately, a &lt;i&gt;collection&lt;/i&gt; of libraries and frameworks .&lt;/p&gt;&lt;p&gt;In fact, what many Zope 2 developers would consider &lt;i&gt;the Zope&lt;/i&gt; in Zope 3, which would be the application that implements what we know as the ZMI and Jim calls OFS, is not even considered valuable, let alone important, for the majority of current Zope 3 developments.&lt;/p&gt;&lt;p&gt;One could panic and think, well, we've got it made: on the one hand we have Zope 2, the application that wanted to be a framework, and on the other there is Zope 3, a framework that seems to be an application. Where does that get us?&lt;/p&gt;&lt;p&gt; The situation is not that bad, though. As Jim points out, there are many applications that have been built using Zope 3, they are just not intended for web developers to create their own applications. There are also many instances of Zope 2 projects that claim to incorporate "Zope 3 concepts", like Plone does.&lt;/p&gt;&lt;p&gt;In a way, it would seem that Zope 2 itself is experiencing a transformation from the inside out, becoming more and more an application which uses the Zope 3 framework rather than the half framework, half application beast that we have come to love and hate  FrankenZope lives! . That would make it the stellar Zope 3 app, but it is debatable whether it can get there.&lt;/p&gt;&lt;p&gt;It would seem that Zope 3 could be trapped in the old chicken and egg conundrum, where developers are waiting for a stellar app before using it and the stellar app is not written because there are not enough developers to do it.&lt;/p&gt;&lt;p&gt;It is apparent now to me that one of the reasons that the Python community
has not taken warmly to Zope 3 as a web framework, is that this OFS application is not really the framework or even an exemplary embodiment of it, but I think one could be justified to think of it in that way when beggining to know Zope 3. That makes the whole framework unattractive to the average Python web
developer  if there is such a thing , who compares it with Django or CherryPy.&lt;/p&gt;&lt;p&gt;It turns out that Zope 3 may not be the web framework for Python developers everywhere, but it may very well allow someone to develop one that could be. In any case, the Zope 3 project would get a big boost if somebody,
somewhere creates an application  or applications  that really shows
how Zope 3 can shine and allows other kinds of audiences than hard-core
developers to take advantage of it  see &lt;a href="http://mail.zope.org/pipermail/zope3-dev/2007-January/021412.html"&gt;Paul Everitt's comment&lt;/a&gt; on the thread .&lt;/p&gt;&lt;p&gt;In this last regard, I have high hopes for &lt;a href="http://www.gocept.com/gocept-de/aktivitaeten/community/grok-sprint"&gt;Grok&lt;/a&gt;. Let's see how it turns out.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; the Grok team is &lt;a href="http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;amp;articleId=73&amp;amp;blogId=1"&gt;moving fast&lt;/a&gt;, you can take a look at some code now.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</description>
  <link>http://blog.delaguardia.com.mx/index.php?op=ViewArticle&amp;amp;articleId=72&amp;amp;blogId=1</link>
      <dc:subject>Carlos de la Guardia: Zope 3: the framework is not the application</dc:subject>

</item>
<item rdf:about="http://optilude.wordpress.com/2007/01/08/test-driven-development/">
  <title>Martin Aspeli: Test-driven development</title>
  <description>&lt;div class="snap_preview"&gt;&lt;p&gt;First they gave us test scripts. Then, they taught us integration tests. The XP gurus extolled the virtues of unit tests. The test gurues hammered on about functional tests. The python heads brought us DocTests. All of this is nothing, however, compared to IQ-Test-driven development!&lt;/p&gt;
&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; obj = portal.restrictedTraverse '/my/object' 
&amp;gt;&amp;gt;&amp;gt; context = portal.restrictedTraverse '/some/folder' 
&amp;gt;&amp;gt;&amp;gt; wrapped = obj.__of__ context 

 Whoooa! __of__   is an advanced function. I can't let you do
 that Dave, unless you can answer the following two questions
 right:

     1  What is the difference between Acquisition.Explicit and Acquisition.Implicit?
     2  What is air speed velocity of a swallow carrying a coconut?&lt;/pre&gt;
&lt;p&gt;Type your answers below. You have 2 minutes.&lt;br /&gt;
?&amp;gt;&lt;/p&gt;
&lt;p&gt; &lt;img src="http://optilude.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=": " class="wp-smiley" /&gt; &lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://optilude.wordpress.com/2007/01/08/test-driven-development/</link>
      <dc:subject>Martin Aspeli: Test-driven development</dc:subject>

</item>
<item rdf:about="http://blog.ianbicking.org/wsgiremote-now-httpencode.html">
  <title>Ian Bicking: WSGIRemote now HTTPEncode</title>
  <description>&lt;div class="document"&gt;
&lt;p&gt;I renamed WSGIRemote to be &lt;a class="reference" href="http://pythonpaste.org/httpencode/"&gt;HTTPEncode&lt;/a&gt;.  The relation to WSGI was only minimal -- it happens to know about internal requests, and serves up content via a WSGI application.  But more generally it's just about serializing and deserializing HTTP requests and responses, not unlike &lt;a class="reference" href="http://formencode.org"&gt;FormEncode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There's some &lt;a class="reference" href="http://svn.pythonpaste.org/Paste/HTTPEncode/trunk/examples/"&gt;simple examples&lt;/a&gt;; basic client usage looks like:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
from httpencode import GET
data = GET 'http://slashdot.org', output='lxml' 
all_ids = [el.attrib['id'] for el in data.xpath '//*[&amp;#64;id]' ]
&lt;/pre&gt;
&lt;p&gt;I.e., you give the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;output&lt;/span&gt;&lt;/tt&gt; type  current supported are &lt;a class="reference" href="http://codespeak.net/lxml/"&gt;lxml&lt;/a&gt;, &lt;a class="reference" href="http://effbot.org/zone/element-index.htm"&gt;etree&lt;/a&gt;, &lt;a class="reference" href="http://python.org/doc/current/lib/module-cgi.html"&gt;cgi.FieldStorage&lt;/a&gt; and &lt;a class="reference" href="http://www.crummy.com/software/BeautifulSoup/"&gt;BeautifulSoup&lt;/a&gt; and &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;python&lt;/span&gt;&lt;/tt&gt; , and it does its best to coerce the output from the page to that type.  As you can see, several of these convert XML and/or HTML, and the library doesn't assume there is only one suitable Python data type for this.  &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;python&lt;/span&gt;&lt;/tt&gt; refers to basic Python data structures -- right now only &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;json&lt;/span&gt;&lt;/tt&gt; produces such structures  which aren't really a class of anything .&lt;/p&gt;
&lt;p&gt;There's still a lot I want to do with it -- probably move to &lt;a class="reference" href="http://bitworking.org/projects/httplib2/ref/module-httplib2.html"&gt;httplib2&lt;/a&gt; and maybe like httplib2 use a class that is constructed with any app-specific options  like a default encoding .  And I have to implement insecure formats  like Pickle  with the necessary options, and somehow figure out how to keep the function signatures under control.&lt;/p&gt;
&lt;/div&gt;</description>
  <link>http://blog.ianbicking.org/wsgiremote-now-httpencode.html</link>
      <dc:subject>Ian Bicking: WSGIRemote now HTTPEncode</dc:subject>

</item>

</rdf:RDF>
