<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.plone.org/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny" />
  <title>Planet Plone</title>
  <updated>2013-06-20T01:23:37Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Plone Website Team</name>
    <email>plone-website@lists.sourceforge.net</email>
  </author>
  <id>http://planet.plone.org/atom.xml</id>
  
  <link href="http://planet.plone.org/" rel="alternate" />

  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.plone.org/ploneblogs" /><feedburner:info uri="ploneblogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>ploneblogs</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
    <id>tag:blogger.com,1999:blog-2374927650282178606.post-198631888713762382</id>
    <link href="http://keeshink.blogspot.com/feeds/198631888713762382/comments/default" rel="replies" title="Post Comments" type="application/atom+xml" />
    <link href="http://www.blogger.com/comment.g?blogID=2374927650282178606&amp;postID=198631888713762382" rel="replies" title="0 Comments" type="text/html" />
    <link href="http://www.blogger.com/feeds/2374927650282178606/posts/default/198631888713762382" rel="edit" type="application/atom+xml" />
    <link href="http://www.blogger.com/feeds/2374927650282178606/posts/default/198631888713762382" rel="self" type="application/atom+xml" />
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/71E3cn8DROo/update-your-robotstxt.html" rel="alternate" title="Update your robots.txt" type="text/html" />
    <title>Update your robots.txt</title>
    <summary type="html">We recently had an interesting afternoon when our servers were all but brought down by a crawler called 80legs. This crawler showed no mercy on our poor site and bore down with great vengeance and furious anger on articles so old that the cache didn't have them.
We get a lot of crawlers, if you've spent hours gazing at your instance-Z2.logs like i have (beats a washing machine!), you've seen a&lt;img src="http://feeds.feedburner.com/~r/ploneblogs/~4/71E3cn8DROo" height="1" width="1"/&gt;</summary>
    <updated>2013-06-19T13:45:38Z</updated>
    <published>2013-06-19T13:45:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="for_planet_plone" />
    <author>
      <name>Kees Hink</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12213747448510868481</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-2374927650282178606</id>
      <category term="argouml" />
      <category term="quota" />
      <category term="phonology" />
      <category term="encoding" />
      <category term="bug" />
      <category term="archgenxml" />
      <category term="latex" />
      <category term="pound" />
      <category term="gnome" />
      <category term="MailDrop" />
      <category term="picasa" />
      <category term="translations" />
      <category term="shell" />
      <category term="python" />
      <category term="nginx" />
      <category term="debian" />
      <category term="script" />
      <category term="gimp" />
      <category term="deliverance" />
      <category term="robot framework" />
      <category term="catalog" />
      <category term="for_planet_plone" />
      <category term="linux" />
      <category term="apache" />
      <category term="debug" />
      <category term="i18n" />
      <category term="clusterssh" />
      <category term="cvs" />
      <category term="security" />
      <category term="webdav" />
      <category term="buildout" />
      <category term="music" />
      <category term="ssh" />
      <category term="ie" />
      <category term="pdf" />
      <category term="dms" />
      <category term="non-geek" />
      <category term="plone" />
      <category term="android" />
      <category term="zeo" />
      <category term="genericsetup" />
      <category term="html" />
      <category term="archetypes" />
      <category term="mac" />
      <category term="mr.developer" />
      <category term="ubuntu" />
      <category term="testing" />
      <category term="error" />
      <category term="svn" />
      <author>
        <name>Kees Hink</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12213747448510868481</uri>
      </author>
      <link href="http://keeshink.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" />
      <link href="http://www.blogger.com/feeds/2374927650282178606/posts/default/-/for_planet_plone" rel="self" type="application/atom+xml" />
      <link href="http://keeshink.blogspot.com/search/label/for_planet_plone" rel="alternate" type="text/html" />
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html" />
      <subtitle>Avoid making the same mistake twice: Lessons learned by a Plone developer/integrator.</subtitle>
      <title>The Donkey's Stone</title>
      <updated>2013-06-19T18:22:57Z</updated>
    </source>
  <feedburner:origLink>http://keeshink.blogspot.com/2013/06/update-your-robotstxt.html</feedburner:origLink></entry>

  <entry>
    <id>http://plone.org/news/hotfix-posted-for-20130618</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/K7z_tQ3sa-k/hotfix-posted-for-20130618" rel="alternate" type="text/html" />
    <title>Hotfix Posted for security vulnerability 20130618</title>
    <summary type="html">Users of Plone 4.3, Plone 4.2, Plone 4.1, Plone 4, Plone 3, Plone 2.5 and Plone 2.1 should immediately apply this hotfix.&lt;img src="http://feeds.feedburner.com/~r/ploneblogs/~4/K7z_tQ3sa-k" height="1" width="1"/&gt;</summary>
    <updated>2013-06-18T17:55:00Z</updated>
    <source>
      <id>http://plone.org/news/newslisting</id>
      <author>
        <name>Plone.org</name>
      </author>
      <link href="http://plone.org/news/newslisting" rel="alternate" type="text/html" />
      <link href="http://plone.org/news/newslisting/RSS" rel="self" type="application/rdf+xml" />
      <subtitle>Site News</subtitle>
      <title>Plone News</title>
      <updated>2013-06-20T01:22:09Z</updated>
    </source>
  <feedburner:origLink>http://plone.org/news/hotfix-posted-for-20130618</feedburner:origLink></entry>

  <entry xml:lang="en-US">
    <id>http://du-alter-schwede.de/?p=112</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/gAMpY2Z0Z9w/" rel="alternate" type="text/html" />
    <link href="http://du-alter-schwede.de/2012/07/26/how-to-build-python-so-that-a-shared-library-libpythonx-y-so-is-produced/#comments" rel="replies" type="text/html" />
    <link href="http://du-alter-schwede.de/2012/07/26/how-to-build-python-so-that-a-shared-library-libpythonx-y-so-is-produced/feed/atom/" rel="replies" type="application/atom+xml" />
    <title xml:lang="en-US">How to build Python, so that a shared library (libpythonX.Y.so) is produced.</title>
    <summary type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml">For an optimal configuration of the Apache module mod_wsgi, Graham Dumpleton recommends: “you are highly encouraged to ensure that your Python installation has been configured and compiled with the ‘–enable-shared’ option to enable the production and use of a shared … <a href="http://du-alter-schwede.de/2012/07/26/how-to-build-python-so-that-a-shared-library-libpythonx-y-so-is-produced/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en-US"><div xmlns="http://www.w3.org/1999/xhtml"><p>For an optimal configuration of the Apache module <em>mod_wsgi</em>, Graham Dumpleton recommends:</p>
<p><em>“you are highly encouraged to ensure that your Python installation has been configured and compiled with the ‘–enable-shared’ option to enable the production and use of a shared library for Python.”</em></p>
<p>(<a href="http://code.google.com/p/modwsgi/wiki/InstallationIssues">http://code.google.com/p/modwsgi/wiki/InstallationIssues</a> : “Lack Of Python Shared Library”)</p>
<p>This recipe might save you a few minutes’ research:</p>
<pre>wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar vxzf Python-2.7.3.tgz
cd Python-2.7.3
PREFIX=$HOME/local/python-2.7.3
export LD_RUN_PATH=$PREFIX/lib
./configure --prefix=$PREFIX --enable-shared
make
make install</pre>
<p>Another thing is that <em /><a href="http://wiki.nginx.org/Main">nginx</a> might be a better choice for the “front office”. But anything with a red star in its logo simply makes us old farts suspicious…</p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/gAMpY2Z0Z9w" height="1" width="1" /></div></content>
    <updated>2013-06-16T13:27:34Z</updated>
    <published>2012-07-26T04:46:45Z</published>
    <category scheme="http://du-alter-schwede.de" term="Plone" />
    <category scheme="http://du-alter-schwede.de" term="Python" />
    <author>
      <name>kleist</name>
    </author>
    <source>
      <id>http://du-alter-schwede.de/feed/atom/</id>
      <link href="http://du-alter-schwede.de" rel="alternate" type="text/html" />
      <link href="http://du-alter-schwede.de/category/plone/feed/atom/" rel="self" type="application/atom+xml" />
      <subtitle xml:lang="en-US">Karl Johan Kleist - a Swedish expat in Berlin</subtitle>
      <title xml:lang="en-US">Du alter Schwede! » Plone</title>
      <updated>2013-06-16T13:27:34Z</updated>
    </source>
  <feedburner:origLink>http://du-alter-schwede.de/2012/07/26/how-to-build-python-so-that-a-shared-library-libpythonx-y-so-is-produced/</feedburner:origLink></entry>

  <entry>
    <id>http://www.uwosh.edu/ploneprojects/plone-activities-blog/psm13-talk-videos-are-online</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/E5eaycL2qDw/psm13-talk-videos-are-online" rel="alternate" type="text/html" />
    <title>PSM13 talk videos are online</title>
    <summary>Plone Symposium Midwest 2013</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>The videos of talks given at Plone Symposium Midwest 2013 are now available at</p>
<p><a class="external-link" href="https://midwest.plonesymp.org/video/video-recording">https://midwest.plonesymp.org/video/video-recording</a></p>
<p>The videos of keynotes will be posted early this coming week.</p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/E5eaycL2qDw" height="1" width="1" /></div></content>
    <updated>2013-06-16T02:49:24Z</updated>
    <category term="for_plone_edu" />
    <author>
      <name>nguyen</name>
    </author>
    <source>
      <id>http://www.uwosh.edu/ploneprojects</id>
      <link href="http://www.uwosh.edu/ploneprojects" rel="alternate" type="text/html" />
      <link href="http://www.uwosh.edu/ploneprojects/plone-activities-blog/plone-activities-blog/RSS" rel="self" type="application/rdf+xml" />
      <subtitle>Updates on Plone activities across campus</subtitle>
      <title>Plone Activities</title>
      <updated>2013-06-20T01:23:37Z</updated>
    </source>
  <feedburner:origLink>http://www.uwosh.edu/ploneprojects/plone-activities-blog/psm13-talk-videos-are-online</feedburner:origLink></entry>

  <entry>
    <id>http://www.andreas-jung.com/contents/plone-future-or-legacy</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/GQDK14kmsLQ/plone-future-or-legacy" rel="alternate" type="text/html" />
    <title>Plone: Future or Legacy?</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is a personal followup on several discussions I had in personal lately with other Plone integrators and big Plone users in addition to Steve's and Eric's latest blog posts on the future of Plone (5):</p>
<ul>
<li><a class="external-link" href="http://http//www.stevemcmahon.com/steves-blog/the-plone-4-generation" target="_self" title="">Steve McMahon: The Plone 4 generation</a></li>
<li><a class="external-link" href="http://willrantforbeer.com/post/52975919723/plone-5" target="_self" title="">Eric Steele: Plone 5</a></li>
</ul>
<p>Most of us are in weird situation because we have multiple and different roles in the #Plone world: either as integrators, as contributors, as Plone users.</p>
<p>So where is my current problem?</p>
<p><span>Steve numbers clearly show a growing number of contributors. On the other hand there is the overall feeling that Plone turned into a legacy technology that will be around for many years but the overall impression is that the overall adoption of Plone is stagnating. This impression is of course subjective and based on personal experience and talks with customers. In addition many so-called Plone companies are currently making a shift by no longer focusing on Plone but also providing services in other areas and focusing on solution and services to customers and addressing their needs instead of advertising themselves as "Plone company". The concept of the "Plone company" is going to fail for most Plone shops. Customers are looking for solutions and as integrators we have to have various solution options - Plone will be one out of many others. The decade of the CMS systems is over. CMS turned into commodity software. They were something new and cool in the first decade of the millennium but nowadays web technology moved and the technology and requirements are more diverse than ever. So content management is now only a small fraction of "the web"  as it was some years ago. I think the trend of stagnation and more slowly adoption is also true for other content management systems.</span></p>
<p>Going back of the level of adoption of Plone. The level of adoption of an enterprise-level software is possibly depending  on factors like</p>
<ul>
<li><span>marketing</span></li>
<li><span>user experience</span></li>
<li><span>to a certain degree: underla</span><span>ying technolog</span><span>y</span></li>
</ul>
<div>Steve speaks in the last paragraph of his posting of a marketing problem or lack of Plone marketing in the past. I would object that this is has been a real problem and does not explain the stagnation of Plone. In Germany we found the German Zope User Group (DZUG) around 2002 and made annual conferences around Zope &amp; Plone. The DZUG invested a lot of marketing work in promoting Plone through the participation in various fairs (like Linuxtag, Froscon etc.). There was certaintly an outcome by attracting some new people and institutions to Plone but we could actually never compete with our competitors like Joomala are the special German phenomeon Typo 3.</div>
<div />
<div>The more important reason for the stagnation of Plone comes from my point of view from the user experience with Plone. User experience breaks down (for me) into usability of the system and professionalism and reliability of the system. At the latest conference of the  German universities using Plone we had a pretty long and controversial discussion about how a usable CMS should like editor. My conclusion from this discussion: people love or hate Plone in the same way as it is true from the usability point of view for Typo 3. Power users seem to prefer Typo 3 while more average editors prefer Plone!? Anyway...this is a never ending discussion and there is no solution to make a CMS user interface work for all editors. This will always a love-hate relationship. Another point that we have in our own hands is the reliability and the professionalism of the overall system. I personally came across several weird issues lately and bitched about them in several controversial postings on the Plone product developers list (you will find them  if you are interested :-). The key point is quality and stability. </div>
<div />
<div>Some examples:</div>
<div>
<ul>
<li><span>Webdav support of Plone under Windows is fragile and not usable for enterprise-level usage. Many weird workaround exists for getting rid of webdav locking problems.</span></li>
<li><span>Customer received a Plone 4.2 buildout with a policy and theme package. Everything was working...the customer himself installed a few add-ons on its own...suddenly the complaint that TinyMCE would no longer work...even after debugging for some hours I could not find the real problem...perhaps not a core-issue but some weird interaction of Plone with some of the add-ons. Bad user experience, pissed integrator experience.</span></li>
<li><span>OOTB installation of add-ons must work. E.g. a simple functionality like video support in Plone has to work without issues by installing collective.flowplayer (4.0). As an integrator I can handle issues and properly fix them. End users just become frustrated.</span></li>
<li><span>Upgrade story: upgrades in Plone 4.x became an unpredictable pita. With 4.x update we had to update various add-ons basically because of changed imports. So some add-on in some version was only running with one particular Plone 4.x version. Having to support multiple Plone 4.x versions ended up with try..except cascades or different release branches....not nice.</span></li>
<li><span>Migration story: I upgraded a Plone 4.0 site to Plone 4.2 based on my own Produce &amp; Publish framework. Suddenly some image URLs (using plone.app.imaging) could no longer be resolved directly through restrictedTraverse() for whatever reason. In addition: Plone started to store image URLs (as edited through TinyMCE) suddenly with the full host and port which became a major pita in the context of virtual hosting and in particular in the context of having image URLs starting with https:// accessed through the public website served over http:// (IE security restrictions caused the images to appear broken). All these issues caused major user pain and trouble on our site. In the end the migration took full six working days (two days scheduled and paid, four unpaid working days on the integrator side).</span></li>
</ul>
<div>I am not sure with conclusion I should draw personally when we talk about the future of Plone. There is of course a future for Plone in certain areas like large institutions as intranet or portal but also the requirements here are shifting into a different direction ("social media"....). hm.....Plone is legacy for me...but an important legacy, one solution out of many others, a solution that fits a particular use-case: enterprise-level content-management.</div>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/GQDK14kmsLQ" height="1" width="1" /></div></content>
    <updated>2013-06-15T06:18:25Z</updated>
    <category term="BlogItem" />
    <author>
      <name>ajung</name>
    </author>
    <source>
      <id>http://www.andreas-jung.com</id>
      <link href="http://www.andreas-jung.com" rel="alternate" type="text/html" />
      <link href="http://www.andreas-jung.com/contents/collection/RSS" rel="self" type="application/rdf+xml" />
      <title>Blog of Andreas Jung</title>
      <updated>2013-06-20T01:22:11Z</updated>
    </source>
  <feedburner:origLink>http://www.andreas-jung.com/contents/plone-future-or-legacy</feedburner:origLink></entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7708488525461734858.post-4919129349363497492</id>
    <link href="http://pigeonflight.blogspot.com/feeds/4919129349363497492/comments/default" rel="replies" title="Post Comments" type="application/atom+xml" />
    <link href="http://www.blogger.com/comment.g?blogID=7708488525461734858&amp;postID=4919129349363497492" rel="replies" title="5 Comments" type="text/html" />
    <link href="http://www.blogger.com/feeds/7708488525461734858/posts/default/4919129349363497492" rel="edit" type="application/atom+xml" />
    <link href="http://www.blogger.com/feeds/7708488525461734858/posts/default/4919129349363497492" rel="self" type="application/atom+xml" />
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/7JpqA-vfvxM/modern-plone-best-practices-or-how-to.html" rel="alternate" title="Modern Plone Best Practices (or How to be ready for Plone 5)" type="text/html" />
    <title>Modern Plone Best Practices (or How to be ready for Plone 5)</title>
    <summary type="html">This poster is meant to keep developers on the "golden path" it is based on tips from Eleddy's Everything you never wanted to know about Plone 5. I'm hoping it will steer developers (old and new) in the right direction. There are really 6 tips, but 5 for Plone 5 sounds so much better than 6 for Plone 5, so I sneakily combined 2 tips :).







Update: Hi resolution English and Spanish versions&lt;img src="http://feeds.feedburner.com/~r/ploneblogs/~4/7JpqA-vfvxM" height="1" width="1"/&gt;</summary>
    <updated>2013-06-15T03:05:03Z</updated>
    <published>2013-06-12T12:44:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="tips" />
    <category scheme="http://www.blogger.com/atom/ns#" term="plone" />
    <author>
      <name>David Bain</name>
      <email>noreply@blogger.com</email>
      <uri>https://plus.google.com/109283825079578719423</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7708488525461734858</id>
      <category term="dotcloud" />
      <category term="pc" />
      <category term="diazo" />
      <category term="public-speaking" />
      <category term="meetup" />
      <category term="installation" />
      <category term="tools" />
      <category term="s3" />
      <category term="documentation" />
      <category term="html5" />
      <category term="web" />
      <category term="books" />
      <category term="google appengine" />
      <category term="firebug" />
      <category term="convergence" />
      <category term="time management" />
      <category term="upgrade" />
      <category term="weebly web2.0 webdesign checklist" />
      <category term="ots" />
      <category term="knowledge-management" />
      <category term="supervisord" />
      <category term="chrome" />
      <category term="troubleshooting" />
      <category term="firefox" />
      <category term="techia" />
      <category term="pshell" />
      <category term="themeeditor" />
      <category term="configuration" />
      <category term="git" />
      <category term="windmill" />
      <category term="nginx" />
      <category term="tips" />
      <category term="video" />
      <category term="performance" />
      <category term="varnish" />
      <category term="training" />
      <category term="xfs" />
      <category term="plone atimageeditor snipshot" />
      <category term="type" />
      <category term="pinax" />
      <category term="mysql" />
      <category term="CSS" />
      <category term="kss" />
      <category term="security" />
      <category term="cynin" />
      <category term="plone4" />
      <category term="fluxflex" />
      <category term="shared hosting" />
      <category term="ux" />
      <category term="django" />
      <category term="ideas" />
      <category term="wordpress" />
      <category term="xdv" />
      <category term="theming" />
      <category term="spliish" />
      <category term="trac" />
      <category term="plone.app.themeditor" />
      <category term="server administration" />
      <category term="software" />
      <category term="pyramid" />
      <category term="html" />
      <category term="mac" />
      <category term="CMS" />
      <category term="118n" />
      <category term="dropbox" />
      <category term="memcached" />
      <category term="design" />
      <category term="ploneconf2008" />
      <category term="ubuntu" />
      <category term="chandler" />
      <category term="blogging" />
      <category term="munin" />
      <category term="prototype" />
      <category term="Chromebook" />
      <category term="ruby" />
      <category term="education" />
      <category term="proxy" />
      <category term="attention" />
      <category term="javascript" />
      <category term="Barbados" />
      <category term="ec2" />
      <category term="apple" />
      <category term="homeschool" />
      <category term="iso" />
      <category term="postfix" />
      <category term="os x" />
      <category term="cubieboard" />
      <category term="social" />
      <category term="event" />
      <category term="plone2.5" />
      <category term="flock" />
      <category term="wine" />
      <category term="laptop hunting" />
      <category term="conference" />
      <category term="flask" />
      <category term="jekyll" />
      <category term="Leopard" />
      <category term="plesk" />
      <category term="typography" />
      <category term="ChromeOS" />
      <category term="screencasts" />
      <category term="python" />
      <category term="amazon" />
      <category term="browser" />
      <category term="easy_install" />
      <category term="zope" />
      <category term="paster" />
      <category term="script" />
      <category term="debian" />
      <category term="windows" />
      <category term="qrcode" />
      <category term="code" />
      <category term="virtualenv" />
      <category term="ploneconf2010" />
      <category term="learning" />
      <category term="cloud9ide" />
      <category term="deliverance" />
      <category term="teaching" />
      <category term="presentations" />
      <category term="linux" />
      <category term="tangent" />
      <category term="prototype.js" />
      <category term="gtd" />
      <category term="me" />
      <category term="tricks" />
      <category term="translation" />
      <category term="internet explorer" />
      <category term="ies4linux" />
      <category term="googlechart api" />
      <category term="ajax" />
      <category term="howto" />
      <category term="programming" />
      <category term="tutorial" />
      <category term="webdesign" />
      <category term="buildout" />
      <category term="web2py" />
      <category term="960.gs" />
      <category term="plonethemeeditor" />
      <category term="seo" />
      <category term="plone" />
      <category term="ruby on rails" />
      <category term="running" />
      <category term="elasticfox" />
      <category term="plonetv" />
      <category term="grok" />
      <category term="dexterity" />
      <category term="doctype" />
      <category term="server" />
      <category term="IE" />
      <category term="ploneformgen" />
      <category term="bootstrap" />
      <category term="weebly" />
      <category term="slow tech" />
      <author>
        <name>David Bain</name>
        <email>noreply@blogger.com</email>
        <uri>https://plus.google.com/116877537744480251154</uri>
      </author>
      <link href="http://pigeonflight.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" />
      <link href="http://www.blogger.com/feeds/7708488525461734858/posts/default/-/plone" rel="self" type="application/atom+xml" />
      <link href="http://pigeonflight.blogspot.com/search/label/plone" rel="alternate" type="text/html" />
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html" />
      <link href="http://www.blogger.com/feeds/7708488525461734858/posts/default/-/plone/-/plone?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml" />
      <subtitle>Adventures of a Linux user (with two working kidneys) trapped on a Mac. Also features Plone, Python, running and other randomness.</subtitle>
      <title>Flight of the Pigeon</title>
      <updated>2013-06-17T14:11:35Z</updated>
    </source>
  <feedburner:origLink>http://pigeonflight.blogspot.com/2013/06/modern-plone-best-practices-or-how-to.html</feedburner:origLink></entry>

  <entry xml:lang="en">
    <id>http://reinout.vanrees.org/weblog/2013/06/15/water-and-python.html</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/7cijepqutpw/water-and-python.html" rel="alternate" type="text/html" />
    <title xml:lang="en">Water software and python</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><div class="document">
<p>Weird link I got from a colleague this evening: <a class="reference external" href="http://www.nederlandict.nl/index.shtml?id=12854&amp;ch=ICT&amp;refID=10303">some Dutch ICT awards</a>
were awarded this week. The link is in Dutch, but trust me if I say
that the two (to me) relevant awards were awarded to Python (as a
fantastic computer language) and to <a class="reference external" href="http://www.hydrologic.com">hydrologic</a> (a Dutch water+ict company, for their
water software).</p>
<p>For me, the weirdness is three-step process:</p>
<ul class="simple">
<li>Ok, an award for Python is nice! Almost all our (<a class="reference external" href="http://www.nelen-schuurmans.nl">Nelen &amp; Schuurmans</a>) software is written in Python.
And virtually all of it is open source. Just look at github:
<a class="reference external" href="https://github.com/nens/">https://github.com/nens/</a> and especially
<a class="reference external" href="https://github.com/lizardsystem/">https://github.com/lizardsystem/</a> . Lots of Python and Django.</li>
<li>The water software award goes to a closed source Microsoft shop.</li>
<li>We (<a class="reference external" href="http://www.nelen-schuurmans.nl">Nelen &amp; Schuurmans</a>) are the
perfect combination of water software and open source Python.</li>
</ul>
<p>We're a water consultancy company. And a successful one, too. Lots of
great projects. Most of them centered around something called Lizard
(<a class="reference external" href="http://lizard.net">http://lizard.net</a> for the mostly-Dutch business language stuff,
<a class="reference external" href="http://lizard.org">http://lizard.org</a> for the English IT stuff). Lots of partners working
on and with it. It is a real platform with every partner putting in
ideas and expertise. Most of the actual <em>programming</em> happens at our
place, to be fair, at the moment. But... I've now personally been
involved with already three partner companies that have been working
with the Python code.</p>
<p>Ok, <strong>now what's the weird thing?</strong> Well, the things being said in the
other company's award text are actually the things I'd use to describe
the Lizard products :-) The core tenet of Lizard is "combining data"
and that's literally what's in the award text. I have got the videos
and screenshots to prove it. I can show you the lines in lizard-map's
<tt class="docutils literal">models.py</tt> that are the core of our information-combination
structure.</p>
<p>Well, let them have fun. If you're looking for water-related software,
Lizard is the one you want. Combining data, friendly visualization,
big data, flood calculations, a lot. And... most of it is open source.
And <strong>our software combines water with the other award winner:
Python!</strong> Open source Python water software. That's much better than
the current water software award winner: I can hardly find a
screenshot on their webpage. And not a lot of specifics. <em>We</em> have got
all our stuff on github and a bunch of demo videos on
<a class="reference external" href="http://video.nelen-schuurmans.nl/">http://video.nelen-schuurmans.nl/</a>.</p>
<p>I'm very happy working where I work now. Water + open source + python:
it can hardly get better. I notice the same mindset in my colleagues:
we're a big force that's pushing forwards and putting out lots of very
good software. Including source code, screen shots and videos. To me,
that's pretty different from working for a company without open
source, with microsoft-only software and with hardly a screenshot on
their website. (Perhaps weird that I'm hammering on the lack of
screenshots, but I still haven't managed to see one of "their"
websites in real life, so I'm personally (probably unfairly) thinking
about it as brochure-ware instead of as a potential threat...)</p>
<p>Wanna work on great Python water software in Utrecht? Mail us
(provided you speak Dutch, that's pretty much a necessity). A nice
working location dead smack in the center of Utrecht next to the <em>oude
gracht</em>. Especially nice now that the weather is good!</p>
</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/7cijepqutpw" height="1" width="1" /></div></content>
    <updated>2013-06-15T00:37:00Z</updated>
    <published>2013-06-14T23:00:00Z</published>
    <category term="python" />
    <category term="nelenschuurmans" />
    <category term="lizard" />
    <category term="django" />
    <author>
      <name>Reinout van Rees</name>
    </author>
    <source>
      <id>urn:syndication:a55644db8591c020bd38852775819a9a</id>
      <link href="http://reinout.vanrees.org/weblog/plonefeed.xml" rel="self" type="application/atom+xml" />
      <link href="http://reinout.vanrees.org/weblog/" rel="alternate" type="text/html" />
      <subtitle xml:lang="en">Python, grok, books, history, faith, etc.</subtitle>
      <title xml:lang="en">Reinout van Rees' weblog</title>
      <updated>2009-04-04T20:44:00Z</updated>
    </source>
  <feedburner:origLink>http://reinout.vanrees.org/weblog/2013/06/15/water-and-python.html</feedburner:origLink></entry>

  <entry>
    <id>http://willrantforbeer.com/post/52975919723</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/7UG7Vd0jMAw/52975919723" rel="alternate" type="text/html" />
    <title>Plone 5</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>So, as you’ve likely <a href="http://plonechix.blogspot.com/2013/06/psm-2013-days-1-4-everything-you-never.html">noticed</a>, we spent a lot time of talking about Plone 5 during the recent Plone Symposium Midwest. I think we’ve reached the point where can really start prioritizing concepts for a major release. Obviously, any changes need to go through the Framework Team for final approval, but I’ve got a bully pulpit and I’m not afraid to use it.</p>
<p>Here’s how I’d like to see development focused over the near term:</p>
<p> <strong>Plone 5 ships with Dexterity as its default content type story.</strong></p>
<ul><li>Dexterity versions of plone.app.event and plone.app.collection</li>
<li>A better set of widgets (plone.app.widgets)</li>
<li>Products.Archetypes, Products.ATContentTypes, archetypes.schemaextender remain available as add-ons for older content</li>
<li>Full multilingual story available (plone.app.multilingual)</li>
</ul><p><strong>Plone 5’s UI gets an extensive overhaul.</strong></p>
<ul><li>Diazo becomes the default theming story</li>
<li>Fewer CSS files makes finding and overriding easier</li>
<li>No more !important in its CSS</li>
<li>Editing interface is separated from content for easier styling (plone.app.toolbar)</li>
<li>Accessible: WCAG- and ATAG-compliant</li>
<li>Deco.gs is replaced with a more commonly-used grid system, responsive</li>
<li>New folder contents UI with filtering and batch operations</li>
<li>Improved, tested widgets</li>
<li>TinyMCE gets upgraded to version 4.0, with a simplified integration making it easier for us to stay up-to-date</li>
</ul><p><strong>Plone 5 ships with an empty portal_skins.</strong></p>
<ul><li>Exists for add-ons</li>
<li>Most content moved to browser views, z3c.form</li>
<li>Login rewritten to use views, events. Simple, but pluggable for more complex use cases</li>
<li>Pay attention to proper XSRF protection for our most common functionality</li>
</ul><p><br /><strong>Plone 5 has amazing test coverage.</strong></p>
<ul><li>Migrating scripts from portal_skins to browser views allows more unit testing</li>
<li>New JavaScript practices mean more unit tests for our interactive stuff</li>
</ul><p><strong>Plone 5 is faster.</strong></p>
<ul><li>Chameleon reduces rendering times by 30%</li>
<li>Date formatting is handled on the client side</li>
</ul><p><br /><strong>Plone 5 is easier to learn.</strong></p>
<ul><li>plone.api covers most common development tasks.</li>
<li>Plone 5 eats its own dog food and sets an example for:
<ul><li>Views over skins</li>
<li>z3c.form</li>
<li>Dexterity</li>
<li>Diazo</li>
</ul></li>
<li>JavaScript integration/development requires less knowledge of Plone</li>
<li>Theming requires less knowledge of Plone, less fighting with the default setup</li>
</ul><p>And most importantly…<br /><strong>Plone 5 is achievable within the next 12 months.</strong></p>
<p>There are, I’m sure, 30 other features that are in some stage of not-doneness, and while I’d like to see us do everything, we need to find some kind of scope. I think the above featureset gives us a nice range of features, a not-too-painful upgrade, and gives everyone plenty to do over the next year.</p>
<p>We’ve already begun approaching Plone companies to get buy in to the effort, asking for time, money or organizational support. <a href="http://sixfeetup.com/">Six Feet Up</a> has pledged 5 hours per week of their QA team’s time to test our work. <a href="http://www.netsight.co.uk">Netsight</a> is organizing a sprint to rework the login. <a href="http://www.ampsport.com/">AMP</a> is pledging 5 hours a week toward deprecating portal_skins. <a href="http://www.wildcardcorp.com/">Wildcard</a> is taking on the folder contents revamp. If your group has a particular need, now is the time to make it happen.</p>
<p>In addition, we have plans to use the general community excitement that comes along with a major release to build some momentum in our non-code teams. If we can move this forward, I think Plone 5 will be a big step up for both Plone the software and Plone the community.</p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/7UG7Vd0jMAw" height="1" width="1" /></div></summary>
    <updated>2013-06-14T22:05:00Z</updated>
    <category term="plone" />
    <source>
      <id>http://willrantforbeer.com/</id>
      <author>
        <name>Eric Steele</name>
      </author>
      <link href="http://tumblr.superfeedr.com/" rel="hub" type="text/html" />
      <link href="http://willrantforbeer.com/" rel="alternate" type="text/html" />
      <link href="http://willrantforbeer.com/tagged/plone/rss" rel="self" type="application/rss+xml" />
      <subtitle>Random shouting from Eric Steele</subtitle>
      <title>Will rant for beer.</title>
      <updated>2013-06-20T01:21:42Z</updated>
    </source>
  <feedburner:origLink>http://willrantforbeer.com/post/52975919723</feedburner:origLink></entry>

  <entry>
    <id>tag:blogger.com,1999:blog-3585841838339962909.post-974414928036076986</id>
    <link href="http://plonechix.blogspot.com/feeds/974414928036076986/comments/default" rel="replies" title="Post Comments" type="application/atom+xml" />
    <link href="http://plonechix.blogspot.com/2013/06/operation-flawless-login.html#comment-form" rel="replies" title="0 Comments" type="text/html" />
    <link href="http://www.blogger.com/feeds/3585841838339962909/posts/default/974414928036076986" rel="edit" type="application/atom+xml" />
    <link href="http://www.blogger.com/feeds/3585841838339962909/posts/default/974414928036076986" rel="self" type="application/atom+xml" />
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/y3n6rgMBkvM/operation-flawless-login.html" rel="alternate" title="Operation Flawless Login" type="text/html" />
    <title>Operation Flawless Login</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody><tr><td style="text-align: center;"><a href="https://www.evernote.com/shard/s1/sh/1f63bb67-63d3-4fd0-b30b-f2c6d243972e/e2699a76c491fbd51a242a9ea4b1ea41/deep/0/Screenshot%206/14/13%2011:35%20AM.png" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://www.evernote.com/shard/s1/sh/1f63bb67-63d3-4fd0-b30b-f2c6d243972e/e2699a76c491fbd51a242a9ea4b1ea41/deep/0/Screenshot%206/14/13%2011:35%20AM.png" width="173" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">No booze, no caffeine, training,<br />bad wifi, jetlag, and 100+ users<br />on every type of device under<br />the sun who couldn't reliably<br />log onto the system. PAIN.</td></tr></tbody></table><div class="p1">I was going to do the whole play it cool thing and wait 3 days for the next post but I am just so excited about this new "blogging" trend. I'm hoping to make it a Friday tradition (preceded by 2 cups of drip coffee and followed by a nap).</div><div class="p2"><br /></div><div class="p1">One thing I'm super excited to start working on as part of the migration away from cpy/cpt is redoing login. As far as Plone goes, you are likely in 1 or 2 camps: </div><ol class="ol1"><li class="li1">Works fine for me!</li><li class="li1">Rot in hell you !@#$ old code</li></ol><div class="p1">I suspect most of you are in camp 1, or just have no opinion whatsoever so I'm hoping I can convince you to jump over to camp 2. Most of the following was originally written with an intense amount of pain (see photo) so if it seems like I'm shouting at times its because I was: I probably qualified as temporarily insane. Here we go!</div><div class="p1"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://www.evernote.com/shard/s1/sh/5ebd86b3-7af1-4eb0-aac1-1b1429fa5194/a512b7f3ffce423ce314c1eae521b3b5/deep/0/Screenshot%206/14/13%2011:48%20AM.png" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="316" src="https://www.evernote.com/shard/s1/sh/5ebd86b3-7af1-4eb0-aac1-1b1429fa5194/a512b7f3ffce423ce314c1eae521b3b5/deep/0/Screenshot%206/14/13%2011:48%20AM.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Ryan Foster (@dextermilo) recently proposed this beautiful, simple, login page for a client which has all css/js/etc embedded making it load very fast (1 template + logo). Tell me you don't want this login page HARD. I know I do.</td></tr></tbody></table><h3>Login as a First Impression</h3><div class="p1">For sites that are completely blocked off by default, login is the first experience with a new system/site. For anyone who is invited to a system, its the same case. In fact, I would argue that <b>a seamless login is the most important introduction to any web based system</b>. It should be flawless. Absolutely flawless. </div><div class="p2"><br /></div><div class="p1">And this is where "we the Plone" fall flat on our face. A sampling of the issues, mostly focused on the ones dear to my heart at the moment:</div><ul class="ul1"><li class="li3">The login, registration, password reset pages are too slow from relying on a framework that it doesn't need, causing more complications with frustrated users. We can't login 100 people at once even with load balancing. Trainers around the world know exactly what I'm talking about. How can you ramp up a system that people can't login to fast and accurately?</li><li class="li1">We are 100% not ready for mobile. There are some issues with random phones that we will never be able to address but we also need to catch up with HOW people use mobile devices. The best example is the shitty network experience. What happens when you click on a  registration link and the network goes out before you can complete? You go back to the email invite and RE-CLICK. But wait… whats that? Plone only allows you to click once and the link expires? 1999 called and wants their user restrictions back. </li><li class="li1">The messaging/wording of invite and password reset emails is robotic and offers no indication to what the user just signed up for or were invited to. They get the email and have questions like "Wait, so how to I get to the home page?" and "What is my username?" and "Who is admin?". If you have signed up for basically any service at any point lately I'm sure you know what a <a href="https://www.evernote.com/shard/s1/sh/90641af7-4a7b-4fa4-b9d5-0b6b2442a81c/4bf6e4d9b0b67c5d7a1f960ddc34a130/deep/0/Screenshot%206/14/13%2011:15%20AM.png">great</a> <a href="https://www.evernote.com/shard/s1/sh/6d15672c-832a-4b44-857c-48097bb69af4/8922b3d134a59b28486d26320a59ec38/deep/0/Screenshot%206/14/13%2011:16%20AM.png">invite</a> <a href="https://www.evernote.com/shard/s1/sh/cc6eb357-21e3-4a03-b7fb-60bdedfe06e0/c069bd4c14ba995bdf4b46b302f86bbb/deep/0/Screenshot%206/14/13%2011:17%20AM.png">email</a> feels like.</li><li class="li1">Testing? What's that? </li><li class="li3">Have you seen this code? <a href="https://github.com/plone/Products.CMFPlone/tree/master/Products/CMFPlone/skins/plone_login">I mean seriously</a> (WARNING: NSFW) look at that shit. It's 10 years of whacked out random bug fixes that no one has any idea if its ok to rip out or not. Its 20+ different files spewed throughout the code in portal_skins style that requires a diagram the size of my kitchen table to print out. Bugs languish in the tracker for years because everyone is terrified to touch it. It is officially <b>unmaintainable code</b>. Don't get me wrong, it was great in its hay day. But I'm sorry login_form.pt, it's time for us to go our separate ways.</li><li class="li1">Customization. Ugh. Enough said.</li><li class="li1">There is no OOB way to block off a site.</li><li class="li3">and so much more… I don't have time to list them all. Have a favorite login gripe? Comment below!</li></ul><div class="p1"><b>Summary</b>: It's a liability to Plone and more importantly my projects, and my job these days is to minimize liability. I'm coming for you login!</div><div class="p1"><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://www.evernote.com/shard/s1/sh/ada99401-566f-44ae-8e14-ae0ce0444a08/b631b4e0da1c5d3076d5816dec29e12d/deep/0/Screenshot%206/14/13%2011:30%20AM.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="270" src="https://www.evernote.com/shard/s1/sh/ada99401-566f-44ae-8e14-ae0ce0444a08/b631b4e0da1c5d3076d5816dec29e12d/deep/0/Screenshot%206/14/13%2011:30%20AM.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Battling the login monster one head at a time takes too long. Instead we cut out the heart, then roast the heads in olive oil for 8 hours, top with a dollop of creme freche and a sprinkle of truffle oil. Serve immediately with a spicy Triple.</td></tr></tbody></table><h3>I Love You but I've Chosen Rewrite</h3><div class="p1">In good faith of open source complaining, I am determined to help fix it. In fact, <a href="https://github.com/hammertoe">Matt Hamilton</a> has already agreed to help and get this handled and I secretly suspect that he has more deep down pain than I since he is taking off with it and already planning a quick weekend sprint to kick it off. Are you one a member of the login burned? <a href="https://github.com/collective/plone.future.login">Help us out</a>!</div><div class="p2"><br /></div><div class="p1">Here is a brain dump of the things I personally want to accomplish with login rework:</div><ul class="ul1"><li class="li1">Login gets dirt fast. It should handle 100 simultaneous logins on 1 site, 1 box, standard hardware. I want to say 300 but 100 is a good target and we can't have mass training sessions without this. I think a lot of the other options can help on this. I am tired of pointing to caching as the solution. There are a lot of transaction issues in this but we have to start somewhere. The skeletons oh the skeletons!</li><li class="li1">Stop basing on main template (this also applies to 404, 500, etc). If a site is closed off and resources were just recooked, thats 20+ resources the browser has to load and thats the immediate impression for the users. Get this down to less than 3 files (a login splash type thing, ideally 1 page with embedded resources). Ability to customize VERY easily (diazo?) but more importantly having a good default. </li><li class="li1">Mobile. Responsive, quick. Avoid redirects at all costs and where they are make it sane. I recently saw password reset on initial login fail on a variety of mobile devices. We are doing something wrong/old school/something. </li><li class="li1">Integrate iw.rejectanynmous to core. </li><li class="li1">Sane invite messages. Default system invite messages are horrid. They don't have site urls, nor indicate the username or who or what or… anything really. Ideally this message can be customized TTW (e.g. welcome to the site. this is our new intranet and I want you to use it like x,y,z your login is x the url is y and I am your new overlord)</li><li class="li1">Forgotten password. Oh god. Expire on click is a disaster, and the methodology is generally buggy.</li><li class="li1">Tests. Tests everywhere.  I want robot going crazy too.</li><li class="li1">Security. Lots of it.</li><li class="li1">Login/reset/all forms rewritten as z3c. This allows us to extend and add things like site agreements. </li><li class="li1">Simplicity. There are too many options to be sane at the moment. We need to not even look at the code, and think "what do people REALLY need to configure in login" (especially that can't be done in PAS). We need to worry about our 80% use case first. I will be rabid about this. Login, login, login. And that's it. For now.</li><li class="li1">Rip out openid as it is. A simple pluggable solution is the answer to proper integration.</li><li class="li1">Default captcha for open registration.</li><li class="li1">Integrate some of the <a href="https://dev.plone.org/ticket/10959">login api work</a> that has been done. </li></ul><div class="p1">And on my "after that is done" wish list:</div><ul class="ul1"><li class="li1">Must reset password is weird and has never worked properly as I have wanted it implemented. The ability to expire passwords from some control panel has been on a wish list for many clients over the years. Time based expiration as well. That works, not that is a hack into the current whacky code base.</li><li class="li1">Tracking for site admins. Who hasn't logged in in 2 weeks? 1 month? Who has NEVER logged in? How can I make sure people are actually using the site? What kind of data do we need to capture to answer security compliance questions? We can't hide behind LDAP integrations for that forever. Also not first pass, but the ability to generate these reports must be considered.</li></ul><div class="p1">In the category of "really dreamy some day if I can find the time":</div><ul class="ul1"><li class="li3">Plone as oauth consumer. It's 2013 and "login with Facebook" isn't going away. *sigh*. I don't know that this should be in core but the ability to do setup oauth is HAWT.</li><li class="li3">Plone as an authentication provider. </li></ul><div class="p1">We are ripping out portal_skins piecemeal so that we can get the new stuff out to integrators ahead of time to test then merge it back into core for the release. Login is its own package, <a href="https://github.com/collective/plone.future.login">plone.future.login</a> and anyone is welcome to help the rewrite. The theme is release early, release often, simple, fast, extensible.</div><div class="p2"><br /></div><div class="p1">Easy enough right?</div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/y3n6rgMBkvM" height="1" width="1" /></div></content>
    <updated>2013-06-14T19:11:19Z</updated>
    <published>2013-06-14T19:11:00Z</published>
    <author>
      <name>eleddy</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12829844320869028742</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-3585841838339962909</id>
      <category term="plone" />
      <category term="POSKeyError" />
      <category term="errors" />
      <author>
        <name>eleddy</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12829844320869028742</uri>
      </author>
      <link href="http://plonechix.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" />
      <link href="http://www.blogger.com/feeds/3585841838339962909/posts/default" rel="self" type="application/atom+xml" />
      <link href="http://plonechix.blogspot.com/" rel="alternate" type="text/html" />
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html" />
      <subtitle>Empowered by Plone</subtitle>
      <title>PloneChix</title>
      <updated>2013-06-14T19:11:19Z</updated>
    </source>
  <feedburner:origLink>http://plonechix.blogspot.com/2013/06/operation-flawless-login.html</feedburner:origLink></entry>

  <entry>
    <id>http://www.stevemcmahon.com/steves-blog/the-plone-4-generation</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/RoVr_MCaZas/the-plone-4-generation" rel="alternate" type="text/html" />
    <title>The Plone 4 Generation</title>
    <summary>Plone's development activity is high and climbing.</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Ken Wasetis gave a great talk at Plone Symposium Midwest comparing Plone with current versions of Drupal. The talk — which Ken gave in a very "just the facts" way — was mostly about the different strengths of the applications, but Ken also talked some about differences between the projects. A couple of Ken's slides showed <a class="external-link" href="http://ohloh.net">Ohloh.net</a> charts comparing commit and participation rates.</p>
<p>Take a look at the <i>Commits per Month</i> chart for Plone:</p>
<p style="text-align: center;"><img alt="Plone: Commits per Month" class="image-inline" src="http://www.stevemcmahon.com/steves-blog/GoogleChromeScreenSnapz003.png" title="Plone: Commits per Month" /></p>
<p>This is a remarkable chart. Plone development activity has increased dramatically over the past three years, and is now averaging close to 1k commits per month. Poking around Ohloh I was unable to find anything like this for any comparable project. Most of the projects that we think of as competitive show the opposite: declining commit rates.</p>
<p>Contributors per month is also impressive:</p>
<p style="text-align: center;"><img alt="Plone: Contributors per Month" class="image-inline" src="http://www.stevemcmahon.com/steves-blog/GoogleChromeScreenSnapz004.png" title="Plone: Contributors per Month" /></p>
<p>This is how a community open-source project should look. Note that this chart is not directly comparable to projects that have become largely single-company rather than community organized. Plone has actively sought to increase direct contributors, relying on code review and our test-driven culture to maintain quality. Some projects instead keep commit rights down to a small circle of patch reviewers.</p>
<p>Take a look again at that <i>Commits</i> chart. The big shift up occurs at roughly the point where Plone 4.0 alpha 1 became available. If you look at commits, that's also when we began seeing a new generation of developers — many from countries that had never had Plone core developers before that point. If you look at the leaders for commits in the last 12 months, many of those names were not on the Plone 3.x list.</p>
<p>Also at Plone Symposium Midwest, Eric Steele gave a great talk on inter-generational transfer of information in open-source software projects. (The actual title was different, but that's a big part of what I remember.) I think the case can be made that Plone has had a very successful generational transfer in core and add-on development.</p>
<p>Why has that happened? And why does Plone's activity level look so much better than projects we think of as competitive? Part of that's leadership. Eric Steele's way of handling the release manager role makes it clear that the project is open. His technical skill at managing an astonishing number of modules keeps it working. But, while it's more amorphous and hard to measure, I think culture is a bigger part. Our culture prizes collaboration. Sprints are where that culture is passed on. I suspect that our more intimate sprints may play the most important part, particularly those that bring long-time developers side-by-side with new contributors. There's probably a dissertation topic in there for some aspiring Sociologist or Anthropologist.</p>
<p>My ramble here has been focussed on core development. I think we've been far less successful with marketing and communications. In particular, I think we had an unfortunate period where we tried to model those parts of the project on the communications of more corporate, hierarchical organizations. That's shifting. I see some dedication to making marketing and communications more like the rest of the project: explicitly collaborative and welcoming to new faces. It'll be fun to see how it works out!</p>
<p><span class="discreet">Charts are from ohloh.net and include only core commits.</span></p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/RoVr_MCaZas" height="1" width="1" /></div></content>
    <updated>2013-06-14T15:30:00Z</updated>
    <category term="Open Source" />
    <category term="Plone" />
    <author>
      <name>mcmahon</name>
    </author>
    <source>
      <id>http://www.stevemcmahon.com</id>
      <link href="http://www.stevemcmahon.com" rel="alternate" type="text/html" />
      <link href="http://www.stevemcmahon.com/steves-blog/plone/RSS" rel="self" type="application/rdf+xml" />
      <subtitle>Blog entries filed under the Plone topic</subtitle>
      <title>Plone</title>
      <updated>2013-06-20T01:20:37Z</updated>
    </source>
  <feedburner:origLink>http://www.stevemcmahon.com/steves-blog/the-plone-4-generation</feedburner:origLink></entry>

  <entry>
    <id>http://blog.fourdigits.nl/fourdigits.remotemembrane-released</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/uXP5oPHRILo/fourdigits.remotemembrane-released" rel="alternate" type="text/html" />
    <title>fourdigits.remotemembrane released</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p /><h2>Wait, what?</h2>
<p>fourdigits.remotemembrane is a PAS plugin, that delegates to a membrane PAS plugin in another Plone site within the same Zope instance.</p>
<h2>Usecase</h2>
<p>We have a group of four Plone sites in which one of them contains all the membrane objects. We needed all of the Plone sites to do authentication and authorisation on those membrane objects.</p>
<p>The PAS plugin implents the following API:<br />RemoteMembraneUserManager(MembraneUserManager)<br />:: IAuthenticationPlugin<br />:: IUserEnumerationPlugin<br />:: IUserIntrospection<br /><span style="line-height: 1.5em;">:: IUserManagement<br />:: IMembraneUserChanger</span></p>
<p><span style="line-height: 1.5em;">RemoteMembraneUserFactory(MembraneUserFactory)<br /></span><span style="line-height: 1.5em;">:: IMembraneUserFactoryPlugin</span></p>
<p><span style="line-height: 1.5em;">RemoteMembraneRoleManager(MembraneRoleManager)<br />:: IMembraneRoleManagerPlugin<br />:: IRolesPlugin</span></p>
<p><span style="line-height: 1.5em;">RemoteMembranePropertyManager(MembranePropertyManager)<br />:: IPropertiesPlugin<br />:: IMutablePropertiesPlugin</span></p>
<p><span style="line-height: 1.5em;">RemoteMembraneGroupManager(MembraneGroupManager)<br />:: IMembraneGroupManagerPlugin<br />:: IGroupEnumerationPlugin<br />:: IGroupsPlugin</span></p>
<p> </p>
<h2>Usage</h2>
<p>Just add the plugins you need as normal plugins in acl_users and fill in the id of the remote Plone site.</p>
<h2>Download / forks</h2>
<p>We're on bitbucket: <a class="external-link" href="https://bitbucket.org/fourdigits/fourdigits.remotemembrane">https://bitbucket.org/fourdigits/fourdigits.remotemembrane</a> .<br />PyPI: <a class="external-link" href="https://pypi.python.org/pypi/fourdigits.remotemembrane/">https://pypi.python.org/pypi/fourdigits.remotemembrane/</a></p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/uXP5oPHRILo" height="1" width="1" /></div></content>
    <rights>(C) Four Digits</rights>
    <updated>2013-06-14T14:52:10Z</updated>
    <author>
      <name>Roel Bruggink</name>
    </author>
    <source>
      <id>http://blog.fourdigits.nl</id>
      <link href="http://blog.fourdigits.nl" rel="alternate" type="text/html" />
      <link href="http://blog.fourdigits.nl/feeds/RSS" rel="self" type="application/rdf+xml" />
      <subtitle>This is the Tech Blog of Four Digits. On this Blog we will share our experiences, ideas and code of our projects at work and at home.

Since our main development platform is based on Python, Zope, Plone and Javascript most of the posts will be about these topics but other not related topics will be posted also.</subtitle>
      <title>Four Digits Tech Blog</title>
      <updated>2013-06-14T15:02:05Z</updated>
    </source>
  <feedburner:origLink>http://blog.fourdigits.nl/fourdigits.remotemembrane-released</feedburner:origLink></entry>

  <entry>
    <id>http://polyrambling.tumblr.com/post/52906861322</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/wVy4yDlOOLA/52906861322" rel="alternate" type="text/html" />
    <title>Please, Plone developers, refrain from &lt;dt&gt;</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Hi people, </p>
<p>last week an absolutely fabulous gathering happened: Plone Symposium Midwest, in Oshkosh, Wisconsin, USA.</p>
<p>Much happened there, which you will read about in various other places. Especially,  we also did some good work on accessibility. I’ll post much more on this in the coming weeks; stay posted. </p>
<p>One thing I want to stress today to the Plone community: we have been using the HTML tags of &lt;dt&gt; and &lt;dd&gt; for a lot of stuff. Most notably portlets. </p>
<p>This is wrong. Let me repeat this: this is wrong. You should only be using &lt;dt&gt; and consorts if it is actually semantically correct. That means: you can use it if it is actually a definition list. You should <strong>not</strong> be using this for display purposes. Like, really not. No. Just don’t. Bunnies and kittens will die in vain when you do this. We love bunnies and kittens, and they should thrive. Trust me on this one.</p>
<p><img alt="image" src="http://media.tumblr.com/be1ef6adfd33c72620efc52117fb644d/tumblr_inline_mocy0vho5y1qz4rgp.jpg" /></p>

<p>We will change the whole portlet templates in the future. As many people are basing their own templates off of the standard ones, we won’t do this in the Plone 4.x series, so we won’t break your stuff unexpectedly, but we will do it in the future.</p>
<p>So please. If you want to future-proof your portlets: use something else. Use a header tag for the header, and use &lt;ul&gt; &lt;li&gt; for the content. Tack classes onto it so the design people can make it beautiful.</p>
<p>Just don’t use &lt;dt&gt; and friends, unless your portlet is actually, semantically, really, seriously, and I mean this,  an explanation of a term.</p>
<p>If you’re using it just to tack some CSS onto it, change your ways. Please, pretty please, with whipped cream on top. It will make our compliance with accessibility rules around the globe much easier.</p>
<p>Thank you.</p>
<p>Paul</p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/wVy4yDlOOLA" height="1" width="1" /></div></summary>
    <updated>2013-06-14T00:13:00Z</updated>
    <source>
      <id>http://polyrambling.tumblr.com/</id>
      <author>
        <name>Paul Roeland</name>
      </author>
      <link href="http://tumblr.superfeedr.com/" rel="hub" type="text/html" />
      <link href="http://polyrambling.tumblr.com/" rel="alternate" type="text/html" />
      <link href="http://polyrambling.tumblr.com/rss" rel="self" type="application/rss+xml" />
      <subtitle>On opensource, cocktails and other stuff I like</subtitle>
      <title>Polyester's ramblings</title>
      <updated>2013-06-20T01:23:34Z</updated>
    </source>
  <feedburner:origLink>http://polyrambling.tumblr.com/post/52906861322</feedburner:origLink></entry>

  <entry>
    <id>tag:blogger.com,1999:blog-3585841838339962909.post-5834056043177910088</id>
    <link href="http://plonechix.blogspot.com/feeds/5834056043177910088/comments/default" rel="replies" title="Post Comments" type="application/atom+xml" />
    <link href="http://plonechix.blogspot.com/2013/06/psm-2013-days-1-4-everything-you-never.html#comment-form" rel="replies" title="4 Comments" type="text/html" />
    <link href="http://www.blogger.com/feeds/3585841838339962909/posts/default/5834056043177910088" rel="edit" type="application/atom+xml" />
    <link href="http://www.blogger.com/feeds/3585841838339962909/posts/default/5834056043177910088" rel="self" type="application/atom+xml" />
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/O5dI1mpk9jU/psm-2013-days-1-4-everything-you-never.html" rel="alternate" title="PSM 2013 Days 1-4: Everything you Never Wanted to Know About Plone 5" type="text/html" />
    <title>PSM 2013 Days 1-4: Everything you Never Wanted to Know About Plone 5</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="p1"><br /></div><div class="p2">My, my, my it's been a while Ploners. I deeply apologize for lack of communication on my part and my only excuse is laziness, impatience, and hubris.</div><div class="p3"><br /></div><div class="p1">How does one sum up the realization that communication in the Plone community has hit rock bottom? One can't. So this will likely be the longest blog post I ever write and hopefully the last one of this length. Anyone who has ever said they get pissed that "we" don't communicate will leave this post with sincere regrets about asking for more info. If you are lucky I will put a TOC on this manifesto, but don't hold your breath. It's technical, it's marketing, and everything in between. Grab a cup of coffee and join me on the 7 day adventure that was Plone Symposium Midwest 2013 (PSM13).</div><div class="p1"><br /></div><div class="p1">Technical note: unlike certain content management systems like Plone, blogger does not have pull quotes. I'll do my best to mimic them for you lovelies, but I'm limited here. </div><h3><b>Pre Sprint</b></h3><br /><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-HgRctXUy1_o/UbgLtuwt7kI/AAAAAAAAL9c/v2y8Xnj_9tM/s1600/IMAG0056.jpg" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="180" src="http://3.bp.blogspot.com/-HgRctXUy1_o/UbgLtuwt7kI/AAAAAAAAL9c/v2y8Xnj_9tM/s320/IMAG0056.jpg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Pre-sprinters at the park</td></tr></tbody></table> <span style="text-align: center;">PSM13 was kicked off by a pre-sprint. 10+ of us rolled into Oshkosh early, with the intention of focusing on the </span><a href="https://dev.plone.org/ticket/13260" style="text-align: center;">portal_skins removal plip</a><span style="text-align: center;">. I arrived a day later than the usual suspects to see that things were already kicked off on redefining the javascript integration story for Plone which generally distracted us from the goal of coding for and drove most of us to the overarching question of...  </span><i>Seriously, can we define Plone 5 for real and really mean it?</i><br /><div class="p3"><br /></div><div class="p1">Plotting, coffee, arguments, persuasion, a whole lot of momentum, and 2 days later, <a href="https://docs.google.com/document/d/1ctopG52U7ieicCPvavRAshgkAW68uIDa9zXGTGqhmyc">a document</a> was born. That's right folks, its in writing, and its happening. Get ready.</div><blockquote class="tr_bq"><b><span style="font-size: x-small;">Alanis Morisette Interlude</span></b><i><span style="font-size: x-small;">This may seem like a very trivial document folks, but I assure you its one of a kind. Not only does it list what we plan to do, but it even has marketing reasons and measures of completeness. Get your lottery ticket now. Book a flight to loch ness and prepare to capture sasquatch. This could never happen again.</span></i></blockquote><div class="p1">I'm sure you don't trust us, and considering that the first talk of Plone 5 like things started in <i>December of 2007</i>, I totally understand. Why is this time different? First, all of these features are already in progress, and in fact many of them are complete. There was talk of a 4.4 release and that is likely hitting the wayside in exchange for the opportunity to make many overdue, much needed improvements (read:change is coming). </div><blockquote class="tr_bq"><b><span style="font-size: x-small;">This Time, in the Key of A Major</span></b><i><span style="font-size: x-small;">What is a major release? A major release is an opportunity for us as developers to break some backwards compatibility in exchange for overdue large infrastructure upgrades and extra fancy new features. These changes affect highly customized sites the most so if you are running stock Plone, chances are that you are going to be A-OK. In general, we do our best not to break anything for ANY upgrades but some changes can't be avoided. Hence - major release!</span></i></blockquote><div class="p1">Second, we reached out to integrators at the conference, business people, developers, etc to get feedback. What you see documented is by no means final, but rather a general consensus of what generally sounds reasonable to cut a major release. Think something is missing? <a href="http://plone.org/community/processes/plips">Submit a PLIP</a> NOW. Not sure why something is or isn't there? Ask a question in the comments and I will gladly explain. The posted document has open comments and if you want to have access to help us gather collective business reasoning, <a href="mailto:eleddy@plone.org">just ask</a>.</div><blockquote class="tr_bq"><b><span style="font-size: x-small;">Deco vs Collective.Cover or How I learned to Stop Hating and Start WAITING</span></b><i><span style="font-size: x-small;">Oh dear. This was very much debated, but you'll notice these are both omitted from Plone 5. If we were to include either one of them, there is a good chance the release would be delayed even more, and both technologies have some serious technical issues before they can really be integrated. In addition, it was crossing the line of "maybe too much at once". They can still both be used as ad ons and I encourage the continuing development of both.</span></i></blockquote><div class="p1">Third, we realized that the basic changes present a need to prepare add-on developers and integrators for the set of changes that are coming up. We need to get the community on best practices NOW so that the shock of Plone 5 doesn't hit us later. Almost all of the technologies and framework to make your custom integrations and add-ons compatible with Plone 5 are available for use TODAY. However, modern best practices are not documented well, and we realize that the success of Plone 5 relies on people upgrading their Plone 2.5 habits to modern development and integration practices. Documenting these best practices is at the top of all of our lists and we will do what we can to make sure that you aren't shocked. </div><blockquote class="tr_bq"><b><span style="font-size: x-small;">Tough Love Interlude</span></b><i><span style="font-size: x-small;">I know integrators, it's hard to change old habits. But, progress demands it. If you are particularly concerned about a change to the infrastructure and how it will affect your deploys, we will be putting together a FAQ to go with the release. Start asking here or on the PLIPs or on the Plone 5 document. We'll make sure that you're "story" has a translation. We aren't ask you to go back and upgrade all sites, just that you become familiar with modern Plone practices and start off new sites with them. A quick list:</span></i><br /><ul class="ul1"><li class="li1" style="text-align: justify;"><i><span style="font-size: x-small;">Theme with Diazo</span></i></li></ul><ul class="ul1"><li class="li1" style="text-align: justify;"><i><span style="font-size: x-small;">Use z3c.form for forms (not formlib)</span></i></li></ul><ul class="ul1"><li class="li1" style="text-align: justify;"><i><span style="font-size: x-small;">Don't make CPT workflows (not like you wanted to anyways)</span></i></li></ul><ul class="ul1"><li class="li1" style="text-align: justify;"><i><span style="font-size: x-small;">Use BrowserViews not portal_skins. Once you start, the fun won't stop. </span></i></li></ul><ul class="ul1"><li class="li1" style="text-align: justify;"><i><span style="font-size: x-small;">Stop making custom archetypes and use Dexterity</span></i></li></ul><ul class="ul1"><li class="li1" style="text-align: justify;"><i><span style="font-size: x-small;">Think about your reliance on z3c.jbot: in theory that is a task for Diazo these days. UPDATE: People are bitching about this statement. I don't know what to tell you. I prefixed it with "in theory"  and a little "Think about" because I have never seen a need for jbot myself. That's right, I have never used it. I'm sure it's great, but my general thought is that it is a crutch for a more real problem that needs to be solved. This is not part of my expertise or something I care to fight about or elaborate on so here is my advice: do whatever you want. This blog post is not here to prevent you from thinking.</span></i></li></ul></blockquote><div class="p1">Fourth, we have no BDFL or dominant company at the moment to drive development and set a roadmap (and we are excited about it). Many historical leaders and companies have moved on to different places in life. All of the statistics show the community moving to a less centralized development pattern and at a faster rate (more on that research in a later blog post). When you see the data, you'll get tingles I'm sure. This means that we need to coordinate differently and make decisions differently.</div><div class="p3"><br /></div><div class="p1">Because of this, we realize the need to reach out for help to hit this vision so here is your ample notice and opportunity for all of the community to help us reach this goal. We aren't the community that can lock Martin Aspeli in a room and expect Deco to pop out a week later anymore. We have to be a bit more deliberate and communicate much more clearly. Someone said "failing to plan is planning to fail" and I almost spit out my beer. Fuck that shit, I'm planning to kick ass.</div><div class="p3"><br /></div><div class="p1">In particular, we are reaching out to companies to help us support this vision by offering resources to help out a particular PLIP. For example, <a href="http://www.sixfeetup.com/">SixFeetUp</a> is offering QA time for new features like <a href="https://dev.plone.org/ticket/10886">plone.app.events</a> and <a href="http://www.netsight.co.uk/">Netsight</a> is interested in helping get the Plone login story fixed (with one of my clients also having a vested interest). Please check out the story and ask your boss, clients, etc if there is some way that your company, institution, whatever can get behind a change and help is make Plone 5 better. I'll update this post with anyone who pledges to chip in!</div><blockquote class="tr_bq"><b><span style="font-size: x-small;">We Need Marketers, not Developers</span></b><i><span style="font-size: x-small;">One thing that you will hear more of as these blog posts start pouring out of my butt is the notion that we aren't really suffering from lack of developers. We can always use more of course, but what we REALLY need are people with "soft skills". We need people who can start getting ready to market and push, who can make campaigns, and translate developer speak to business leaders and decision makers. Got some of those lying around? <a href="mailto:eleddy@plone.org">Contact me</a> and we'll take advantage of them tomorrow.</span></i></blockquote><div class="p1">In summary, Plone 5 is happening this time because we now understand the importance of communicating with all of you NOW and not after. All of us have promised to blog, talk, and communicate more. In exchange, we are asking for your help. Help as developers, integrators, and most importantly, business people and marketers. Key contacts are listed on the document and hopefully each leader will write a post explaining the change and what it means to you. When in doubt, just ask them.</div><div class="p3"><br /></div><div class="p1">Which is a perfect segue into my <span class="s1"><strike>personal vendetta</strike></span> Plone 5 project: removal of portal_skins.</div><h3><b>Goodbye CPY</b></h3><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-tafVtGk8gk4/UbgLscN2TxI/AAAAAAAAL9M/t05_yTSVFU8/s1600/IMAG0045.jpg" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://4.bp.blogspot.com/-tafVtGk8gk4/UbgLscN2TxI/AAAAAAAAL9M/t05_yTSVFU8/s320/IMAG0045.jpg" width="181" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Wildcards fantastic home brew</td></tr></tbody></table><div class="p1">At the Plone Conference in 2012, I started working on the r<a href="https://dev.plone.org/ticket/13260">emoval of cpy/vpy scripts</a>. It's been slow and I confess I haven't dedicated the time I wanted. At this moment I think its for the better because there have been some realizations in the meanwhile on the right way to do this.</div><div class="p3"><br /></div><div class="p1">Initially I was focused on only upgrading cpy/vpy scripts but have broadened the scope to idealism in the way that only a masturbatory developer could: Down with portal_skins!</div><div class="p3"><br /></div><div class="p1">Now before you freak out, let me say that YOU, integrator, developer, all around good guy can still upgrade your plone product which uses things in portal_skins. However, my vision has a portal_skins free Products.CMFPlone. Everything that is there will be moved into plone_deprecated and you can let acquisition be all magical and do weird stuff still. In addition, your custom skins and what not will still work (there is no guarantee that this will still be the case in Plone NextBigRelease though). However, <b><i>a major goal of Plone 5 is to return core to represent the current best practice of developing in Plone</i></b>. </div><div class="p3"><br /></div><div class="p1">And now the most important question: WHY? portal_skins are part of this notion of acquisition. Security and performance reasons have show us that maybe this isn't the best way forward. In addition, modernizing the underlying framework relies on us moving beyond this notion. But wait, there's more. Most of that stuff existed before test cases were culturally enforced. The code is untested and intricate, so people are terrified to touch it. We can't fix bugs on files that everyone is afraid to modify. It get's better. Customization of page templates in portal_skins is shotty at best. It doesn't survive upgrades. Moving all forms to z3c.form gets us on one form technology that can be plugged and extended, and should survive future upgrades much better. Last but not least, times have changed. Resources like js and css shouldn't be managed in the registry. Anything bigger than a small site should be compressing with modern tools and hosting in a web server and/or a CDN. We need to recognize that the <i>industry</i> standards have changed and we are behind. Time to play a little catch up.</div><div class="p3"><br /></div><div class="p1">Moving all of portal_skins is a much larger task and this meant changing the approach to the change. At first it was a branch on Products.CMFPlone but I had a couple of realizations that led me to believe that the majority of changes should actually be done in a new package, which will then be merged back into core at the end. I'll bullet point the reasons since I'm running out of transition words:</div><ol class="ol1"><li class="li1">Constantly merging back in changes in every package made me want to throw my laptop out of the window. Git has been merging like a dickhead lately and I had several errors from that waste a lot of time. </li><li class="li1">I want these changes for my own projects. Yesterday. I am willing and have the capacity to put them in live sites. Mostly performance reasons, but also integration pain points. I suspect other people do as well.</li><li class="li1">We can document and keep track of the effort in a more sane matter. When merging in commits I was losing track of the W5H of what happened because this is such a long ranging project.</li><li class="li1">Integrators and add on developers can pull the changes at any time and see if their shizzle works.</li><li class="li1">We have a lot of test cases to write. I'm emotionally tied to this thought that we can start fresh and outside of core will just seem more approachable.</li></ol><div class="p1">All changes will go into plone.future.* packages that will be grouped by general integration points.</div><br /><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-wcbAAgziT5c/UbgLtiavaTI/AAAAAAAAL9k/tbC_QoFmYzU/s1600/IMAG0057.jpg" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://3.bp.blogspot.com/-wcbAAgziT5c/UbgLtiavaTI/AAAAAAAAL9k/tbC_QoFmYzU/s200/IMAG0057.jpg" width="113" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Grace Lim, the Plone Ranger</td></tr></tbody></table>People will be able to grab them at any point. At the moment I see these as:<br /><ul class="ul1"><li class="li1">plone.future.formscripts: All of our core actions like a add, move, delete, etc.. are on code that hasn't been touched in YEARS. These are things that are highly unlikely to be uncustomized. This also includes control panel forms and their conversion to z3c forms. I can't imagine that most people can't start using this as soon as a release is cut. At first it will be just a few scripts and I will cut releases after each new thing is added. Ideally we can get these out in the wild, slowly, before the big bang.</li><li class="li1">plone.future.login: Oh god, login is worth a whole blogpost at least this length. It can't be approached in the same set of changes with any sort of sanity. </li><li class="li1">plone.future.resources: Plone 5 will have a new diazo theme so this won't affect you. Old themes will still work, but if you have properly based your site on Sunburst, then you have the OPTION to use this package, which will contain 1 properly minified js file, 1 properly minified css, and various icons moved out of portal_skins and into resource registries. I know I have several sites that likely won't redesign for a while and will benefit immensely from this. </li></ul><div class="p1">In order to smooth this transition and to allow you as an add on developer and/or integrator there are a few other things that I intend to include:</div><ul class="ul1"><li class="li1">A script to scan a directory of code that issues warnings for usages of things that have been deprecated.</li><li class="li1">A script to scan a directory of code that issue warnings for all plone.future references once the packages have all been merged back into core.</li><li class="li1">An intense upgrade guide that matches said warnings and indicates old school vs new school ways of doing things.</li><li class="li1">Tests, tests, tests!</li></ul><div class="p1">Ideally each one of these items is updated AS the feature is removed to limit the last minute documentation work. I'm in the process of using cut, copy, paste, delete, and rename as an example and setting up this framework, after which I'll start cherry picking work that has already been done and calling for more help. The hard work and dedication that went into plone.api has been inspiring and its my hope to walk away from what <i>could </i>be a tedious task with an immense amount of <b>pride</b>. This is a chance to fix a whole helluva lot of things.</div><div class="p3"><br /></div><div class="p1">Overall, a pre-sprint was the best thing to happen to a symposium/conference since reliable wifi. </div><h3><b>Fundraising</b></h3><div class="p1">When you thought this blog post couldn't get any longer, it did. It will continue to grow until you all REGRET  knowing what's going on. Should you have made it to this point, obviously you haven't learned. </div><div class="p3"><br /></div><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-yUz4aUrAg-M/UbgLt4z1GmI/AAAAAAAAL9s/pOyOu1mkIb4/s1600/IMAG0058.jpg" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="181" src="http://4.bp.blogspot.com/-yUz4aUrAg-M/UbgLt4z1GmI/AAAAAAAAL9s/pOyOu1mkIb4/s320/IMAG0058.jpg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">It's like the city of Oshkosh just knew...</td></tr></tbody></table><div class="p1">Being on the Plone Foundation board has been fruitful this year, and I'm super ecstatic about the push to spend money on sprints and kickstart this Plone 5 process. I was so excited in fact, that I <a href="http://www.slideshare.net/eleddy/uwosh">gave a talk</a> about it. With that victory has come a little burden to bear, and that burden is a bear by the name of "fundraising".</div><div class="p3"><br /></div><div class="p1">In order to dump money into sprints this year, I promised to raise the money we dumped for next year, so we can do the same thing. Turns out that I am a TERRIBLE fundraiser with a serious time deficit and intense lack of skills. Enter <a href="https://twitter.com/jasontlantz">Jason Lantz</a>, who gave a talk on how he built a <a href="https://github.com/innocenceproject/collective.salesforce.fundraising">fundraising platform</a> on Plone for <a href="https://secure.innocenceproject.org/donate">the innocence project</a>. How disgustingly appropriate! After spending a full day hashing out ideas with him I realized how little I knew about raising money for non-profits and how much beer I will owe him the next time we meet up.</div><div class="p3"><br /></div><div class="p1">He has been a community lurker for over 10 years and is very excited to help us, the good people of Plone, get our fundraising shit together. His work is open and he is working on repackaging the add on for use by everyone (if you are a non-profit and you are interested, head over to <a href="https://github.com/innocenceproject/collective.salesforce.fundraising">github</a> to see the progress). I am excited to work with Jason and in addition a whole new team of people excited to kick off fundraising efforts. Expect to hear more from us on that later and remember: you don't have to wait for a fancy donation website to support the foundation. Go to <a href="http://plone.org/foundation/foundation-donations">plone.org</a> to help out now. The money that you donate is going to things like bringing K.K. Dhanesh over to Oshkosh from India to sprint for the first time!!</div><h3><b>Communications</b></h3><div class="p1">I've hinted at the severe lack of communication that goes on in Plone and we have lots of people (including myself) that have vowed to make this a little easier on people. This includes but is not limited too:</div><ul class="ul1"><li class="li1">Eric Steele, Rok Garbas, David Glick, and myself vowing to blog more. Twitter has killed the blog and we need to go back to putting complete thoughts and ideas on paper for those that can't explain MultiAdapters in under 140 characters. I encourage all developers to get back to the paragraph.</li><li class="li1">Eric Steele will be trying to get together a regular call of team leaders, which will be attended by Rose Pryune who will act as a translator and post back to the community. </li><li class="li1">A revamp of the marketing team to be led by Eric Rozeboom. There is a lot to be done here and I'm sure he will post a wonderful plan soon and start recruiting. I know in particular that <i>I</i> am looking for someone to help us better utilize our adwords account. Know someone???</li><li class="li1">Heidi Reinke of UW Oshkosh College of Business has volunteered to have her marketing class for fall semester take on Plone as a use case for marketing. I can't wait to see what she comes up with and if you get contacted out of the blue by people doing research - don't be shocked! </li></ul><div class="p1">And look guys, its in writing. No backing out now!</div><div class="p3"><br /></div><div class="p1">Lots of talk about communication led to some solid realizations on all sides. Developers don't like to communicate in lengthy posts like this and a lot of "translation" gets lost because of it. Forcing people to write docs is, however, not the solution. The oral interview is MUCH more effective and we have to spread that word. Want to know what's going on in Plone? Don't wait for a blog post. Ping a core member, ask them on a call, and write up a post for everyone else to consume. </div><h3><b>That Stinking Contributor Agreement</b></h3><div class="p1">In addition to being a Plone Foundation Sponsor, hosting a kick ass pre-sprint barbecue complete with home brew, and maintaining several high quality Plone plugins,  Talin Senner of <a href="https://www.wildcardcorp.com/">Wildcard Corp</a> has volunteered to help us finally kick this long standing issue with the Plone Contributor Agreement. I am eternally grateful for them picking this up and rolling with it since it was making my head spin and I was dangerously spread thin.</div><h3><b>Mailing Lists</b></h3><div class="p1">We REALLY need someone to put a nice front end on mailing lists. The lovely Heidi made a statement along the lines of "why would i use plone? signing up for the mailing list makes this software look like its from 1990". OUCH. Interested? Ping me. We just need a plone.org initial UI into the basic mailing lists. </div><div class="p3"><br /></div><div class="p1">In addition, we should think about making plone-accounce a mail chimp list, considering that:</div><br /><ol class="ol1"><li class="li1">The UI doesn't suck at all</li><li class="li1">It's for communicating out, not within</li></ol><h3>I'm Running out of Steam</h3><div>I didn't even get to talk about Grace Lims video project for coders and their kids, the Plone Ranger, the packages that were released and the intense code sessions, the work on EVERYTHING from coredev docks to mock, realization that we need help with adwords... oh god. That's another 6 hour plane ride of info. For now, sleep.<br /><br /><b>More sprint reports at</b>:<br /><ul><li><a href="http://www.uwosh.edu/ploneprojects/plone-activities-blog/">http://www.uwosh.edu/ploneprojects/plone-activities-blog/</a></li></ul><div><b>Followup Awesomeness</b>:</div></div><div><ul><li><a href="http://pigeonflight.blogspot.com/2013/06/modern-plone-best-practices-or-how-to.html">http://pigeonflight.blogspot.com/2013/06/modern-plone-best-practices-or-how-to.html</a></li><li><a href="http://pigeonflight.blogspot.com/2013/06/modern-plone-practices-poster-now.html">http://pigeonflight.blogspot.com/2013/06/modern-plone-practices-poster-now.html</a></li></ul></div><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/O5dI1mpk9jU" height="1" width="1" /></div></content>
    <updated>2013-06-13T22:19:39Z</updated>
    <published>2013-06-12T06:17:00Z</published>
    <author>
      <name>eleddy</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12829844320869028742</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-3585841838339962909</id>
      <category term="plone" />
      <category term="POSKeyError" />
      <category term="errors" />
      <author>
        <name>eleddy</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12829844320869028742</uri>
      </author>
      <link href="http://plonechix.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" />
      <link href="http://www.blogger.com/feeds/3585841838339962909/posts/default" rel="self" type="application/atom+xml" />
      <link href="http://plonechix.blogspot.com/" rel="alternate" type="text/html" />
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html" />
      <subtitle>Empowered by Plone</subtitle>
      <title>PloneChix</title>
      <updated>2013-06-14T19:11:19Z</updated>
    </source>
  <feedburner:origLink>http://plonechix.blogspot.com/2013/06/psm-2013-days-1-4-everything-you-never.html</feedburner:origLink></entry>

  <entry>
    <id>http://willrantforbeer.com/post/52887807972</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/PRztZVcOcpc/52887807972" rel="alternate" type="text/html" />
    <title>Communications</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><blockquote>“Every step is a first step if its a step in the right direction.” <br />- Terry Pratchett, “I Shall Wear Midnight”</blockquote>
<p>I tend to be…measured in what I say. In the best case, that means that it takes me far longer than it should to communicate things. In the worst, it means that things just sit in my drafts folder.</p>
<p>Discussions during last week’s Plone Symposium Midwest point to many great things happening in the next 12 months. For me, the greatest is the rebooting of Plone’s communications team. Since last September, Rose Pruyne has been writing <a href="http://plone.org/author/rpruyne">some fantastic articles for plone.org</a> about community members doing great things with Plone. Now, she and a team of writers and editors will be conducting interviews with team leaders, developers, and anyone working to make Plone even better.</p>
<p>We recognize that we’ve been pretty lax about letting everyone know what’s going on, and this is our first step in fixing that.</p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/PRztZVcOcpc" height="1" width="1" /></div></summary>
    <updated>2013-06-13T19:43:55Z</updated>
    <category term="plone" />
    <source>
      <id>http://willrantforbeer.com/</id>
      <author>
        <name>Eric Steele</name>
      </author>
      <link href="http://tumblr.superfeedr.com/" rel="hub" type="text/html" />
      <link href="http://willrantforbeer.com/" rel="alternate" type="text/html" />
      <link href="http://willrantforbeer.com/tagged/plone/rss" rel="self" type="application/rss+xml" />
      <subtitle>Random shouting from Eric Steele</subtitle>
      <title>Will rant for beer.</title>
      <updated>2013-06-20T01:21:42Z</updated>
    </source>
  <feedburner:origLink>http://willrantforbeer.com/post/52887807972</feedburner:origLink></entry>

  <entry xml:lang="en">
    <id>tag:www.vlent.nl,2013-06-13:/weblog/2013/06/13/collective-twitterportlet-and-twitter-api-version-1-1/</id>
    <link href="http://feeds.plone.org/~r/ploneblogs/~3/XB1Ugt0RVPk/" rel="alternate" type="text/html" />
    <title xml:lang="en">Collective.twitterportlet and Twitter API version 1.1</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>This week, on June 11th, Twitter retired version 1 of their <span class="caps">API</span>. As a
result, the Twitter portlets of some of our customers stopped
working. They are all using collective.twitterportlet so we created a
quick (and slightly dirty?) fix to get them up and running again:
<a href="https://pypi.python.org/pypi/edition1.twitterportletfix">edition1.twitterportletfix</a>.</p>
<h3 id="the-problem">The problem</h3>
<p>The obvious symptom we were confronted with, was that there were no
tweets shown in the portlet. Instead, it contained the following text:</p>
<blockquote><p>There was an error while rendering the portlet.</p></blockquote>

<p>And the error log included entries like this:</p>
<pre><code>AttributeError: 'unicode' object has no attribute 'get'
</code></pre>
<p>After vaguely recalling something about a Twitter <span class="caps">API</span> change, we
started looking around and found the Twitter blog entry where they
stated that the
<a href="https://dev.twitter.com/blog/api-v1-is-retired"><span class="caps">API</span> v1 is retired</a>
and we should use
<a href="https://dev.twitter.com/docs/api/1.1/overview"><span class="caps">API</span> v1.1</a>. But <span class="caps">API</span>
version 1.1 requires you to use
<a href="https://dev.twitter.com/docs/auth/oauth/faq">OAuth</a>.</p>
<p>The good news is that
<a href="https://pypi.python.org/pypi/collective.twitterportlet/">collective.twitterportlet</a>
uses
<a href="https://pypi.python.org/pypi/python-twitter/">python-twitter</a>. And
that package is compatible with version 1.1 of the Twitter <span class="caps">API</span>. So
upgrading to version (at least) version 1.0 of that package should at
least make the Twitter <span class="caps">API</span> wrapper compatible.</p>
<p>The bad news is that just upgrading python-twitter is not enough. You
still need to give it some keys (consumer key, consumer secret,
et cetera) to get data from Twitter. Otherwise, you’ll see these kind
of messages in you logs:</p>
<pre><code>TwitterError: [{u'message': u'Bad Authentication data', u'code': 215}]
</code></pre>
<h3 id="the-optimal-solution">The optimal solution</h3>
<p>In my humble opinion the optimal solution would be to do something
similar as the combination of
<a href="https://pypi.python.org/pypi/collective.facebook.portlets">collective.facebook.portlets</a>
and
<a href="https://pypi.python.org/pypi/collective.facebook.accounts">collective.facebook.accounts</a>
provides. That is: allow the user to configure accounts (and perhaps
even applications?) and let the user choose which account to use <em>per
portlet</em>.</p>
<p>Unfortunately this involves more work and time than we could spend at
the moment with customers waiting for their home page to look good again.</p>
<p><strong>Update (2013-06-14):
<a href="https://pypi.python.org/pypi/collective.twitter.accounts">collective.twitter.accounts</a>
probably provides everything we’d need. Thanks for the tip Héctor!</strong></p>
<h3 id="the-quick-workaround">The quick workaround</h3>
<p>So instead of doing it the proper way, we decided to create a small
package,
<a href="https://pypi.python.org/pypi/edition1.twitterportletfix">edition1.twitterportletfix</a>,
that would solve our immediate need. What this package does is it
allows the user to configure the required keys/tokens. It also
customises the <code>Renderer</code> class of the portlet to use those keys to
call the Twitter <span class="caps">API</span>.</p>
<p>Obviously this package will not fulfil all needs (and I’m not really
proud of it) but for our use cases it should be enough for now. At
least until there is a better solution available.</p>
<h4 id="why-i-chose-this-solution">Why I chose this solution</h4>
<p><em>(This section was added on 2013-06-14 after the question why it was
easier to create this package than contribute to
collective.twitterportlet. A very fair question.)</em></p>
<p>As I already stated, this is not an optimal solution and I’m not
really proud of it. So why did I still go ahead with it? There are
several reasons.</p>
<p>First of all, even if I would have liked to contribute, the
<a href="https://pypi.python.org/pypi/collective.twitterportlet/">PyPI page of collective.twitterportlet</a>
does not list a publicly available repository. Looking around on the
<a href="https://github.com/collective">collective repo on GitHub</a> also did
not turn up anything. I did find a
<a href="https://github.com/muellert/collective.twitterportlet">repo with the same name</a>
but saw no relation between the owner of the repo and the owner of the package.</p>
<p>Furthermore, even if I had found a repository, contributing to the
original package would have delayed this fix. My current solution does
not provide a fix for every use case of the package. For instance, you
cannot have two portlets showing different accounts. But building that
proper solution (and effectively replicating the functionality of
<a href="https://pypi.python.org/pypi/collective.twitter.accounts">collective.twitter.accounts</a>)
would have taken more time and I needed a fix for our customers sooner
rather than later.</p>
<p>(My focus was on fixing collective.twitterportlet rather than
replacing it. As a result I failed to look around more and did not
know about collective.twitter.accounts until Héctor commented on this
article. Otherwise I would have tried to have
collective.twitterportlet use collective.twitter.accounts, instead of
reinventing the wheel.)</p>
<p>So I was fully aware that edition1.twitterportletfix is not a
permanent solution. That is why I tried to make sure that you can
cleanly uninstall the package. Once there is a better solution
available—or you decide to replace collective.twitterportlet
completely—you should be able to uninstall the fix and not leave a trace.</p><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/ploneblogs/~4/XB1Ugt0RVPk" height="1" width="1" /></div></content>
    <updated>2013-06-13T12:46:00Z</updated>
    <category term="development" />
    <category term="plone" />
    <author>
      <name>Mark van Lent</name>
      <uri>http://www.vlent.nl/about/</uri>
    </author>
    <source>
      <id>tag:www.vlent.nl,2010-02-04:/weblog/tag/plone/feed.atom</id>
      <icon>http://www.vlent.nl/favicon.ico</icon>
      <logo>http://www.vlent.nl/feed-logo.png</logo>
      <author>
        <name>Mark van Lent</name>
        <uri>http://www.vlent.nl/about/</uri>
      </author>
      <link href="http://www.vlent.nl/" rel="alternate" type="text/html" />
      <link href="http://www.vlent.nl/weblog/tag/plone/feed.atom" rel="self" type="application/atom+xml" />
      <rights xml:lang="en">Copyright © Mark van Lent, Creative Commons Attribution 3.0 Unported License</rights>
      <subtitle xml:lang="en">Mark van Lent’s weblog</subtitle>
      <title xml:lang="en">Practicing web development</title>
      <updated>2013-06-13T12:46:00Z</updated>
    </source>
  <feedburner:origLink>http://www.vlent.nl/weblog/2013/06/13/collective-twitterportlet-and-twitter-api-version-1-1/</feedburner:origLink></entry>
</feed>
