Originally from del.icio.us/tag/plone by
Originally from del.icio.us/tag/plone by jindrich
Comparing Open-Source Content Management Systems
Originally from del.icio.us/tag/plone by bhudson2005
<p>Hello everyone,</p><br /><p>I started up this blog and documentation site to keep you informed about the proceedings of the ongoing AZAX development for Plone. You can check out a bit more information <a title=”Welcome to AZAX development” href=”../front-page” target=”_self”>here</a>, but at the moment there is not too much material yet. You can expect more things appearing in the near future.</p><p>At the moment we are in a bit of transitional state with the KSS description, which means there is preview code available but because of the changes I am currently implementing, I kindly ask everyone who is interested to wait a few days until I can prepare working code and demos, because that would make further discussion and development much easier.</p><p>I will make another announcement as soon as possible. Thank you for your attention and patience. <br /></p><p><br /></p>
Originally from Planet Plone by ree
<p>We have worked on the following areas during Snowsprint 2007:</p><ol><li>Godefroid was improving the testing framework, and built the<i> kissbot</i> with help of Andreas Zeidler and Thierry Benita. It is based on buildbot and buildout components. We can now test automatically our Selenium functional tests on a farm of servers.</li><li>Balazs and Godefroid made some refactoring on the framework in order to support the drag-and-drop plugin better. The drag-and-drop plugin is still under development.</li><li>Jean-Nicolas Bes and Balazs worked on eventPush with the help of Thierry Benita. This is an experiment based on Twisted and with technology borrowed from the “Comet” library. We tried to enable the server to send asynchronous commands to the clients. With this, we want to demonstrate, for example, that changing the title in one client would simultaneously change the title in all clients viewing the same page. The goal of this experiment was to show a proof of concept and proceed with the exploration of this area. This is <i>NOT targetted for Plone 3.0 </i>or any close release.<br /></li><li>After the sprint, Phillipp von Weitershausen refactored the server side event handling, fixed the pending issues and reported that he successfully used KSS with Grok, on Zope 3.<br /></li></ol><p>During the Plone 3.0 Baarn UI sprint, some progress was done in the following fields:</p><ol><li>Refactoring done to get rid of the “executeCommand” workaround. We can now use a selector with any client action to express on which nodes the action will be executed.</li><li>Several bugs were fixed in Plone 3.0 integration, including kupu related ones and the issues about the “Do you want to leave this page ?” query. Most issues were caused by other components that had changed and unwillingly broke KSS. The importance of testing is proven again.</li><li>More progress was done on the testing infrastructure. The demo tests are now exercised on Firefox-Linux and IE-Windows platforms. Jeroen Vloothuis worked on a script that generates Python modules (that run the Selenium test cases) from the Selenium HTML recorded with Selenium-IDE.<br /></li></ol><p>We would like to thank everyone for providing great work for Plone and KSS, and hope more will join in the future too.</p><p>We would like to mention that KSS has a FreeNode IRC channel (#kss).</p><p>There is a new <b>mailing list</b> on codeSpeak.net : <a href=”http://codespeak.net/mailman/listinfo/kss-devel” target=”_self”>kss-devel</a>. It is dedicated to KSS development issues and generic use cases. There is also a mailing list that monitors the KSS subversion repository : <a href=”http://codespeak.net/mailman/listinfo/kukit-checkins” target=”_self”>kukit-checkins</a>. Both lists have been subscribed to gmane.org : <a class=”generated” href=”news:gmane.comp.web.kss.devel” target=”_self”>news:gmane.comp.web.kss.devel</a> and <a class=”generated” href=”news:gmane.comp.web.kss.scm” target=”_self”>news:gmane.comp.web.kss.scm .<br /></a></p>
KSS development: Report from Snowsprint 2007 and the Baarn UI sprint
Originally from Planet Plone by ree
<p><img class=”image-right” src=”../Members/ree/440579982_422978ba87_b_d.jpg” alt=”sorrento1.jpg” />We spent a nice week in the beautiful region of <i>Sorrento, Italy</i>. For KSS, the sprint was a great success, even more than we had anticipated.</p><p>We arrived with a lot of to-do tasks and open bugs to the location. Since we recently realized that we are fixing the same bugs over and over again, the motto of this sprint was <b>”tests, tests, tests”</b>. This means that we extend the selenium tests to cover the entire Plone application part of KSS and soon we will be able to run these tests in an automated manner with our <b>kissbot.</b></p><p>We introduced KSS to a lot of developers, most of whom encountered the technology for the first time. After a one day tutorial, they were immediately able to start fixing issues and developing new functionality themselves. In addition, this time we also required that for each fix the corresponding tests must be written as well.</p><p>Writing selenium tests was a lot of fun and sometimes we encountered difficulties. It seems that we will soon need to make our life easier and improve this process. But we do not even stop here. We will make the creation of selenium tests as mandatory developer policy, accompanied with tests on different levels:</p><ul><li>functional doctests to test if a given html class or id, that is needed to activate kss, is present in a template,</li><li>unittests that simulate the client’s call to a kss server action, and check the command response that would be marshalled to the client.<br /></li></ul><p>A lot of issues were fixed or had a good progress, including the following ones:<br /></p><ul><li><i>Enter and Escape works correctly for in-line editing, including Safari!</i> (<b><i>Simone Deponti,</i> </b>congratulations.)</li><li>The zope3 <i>event handling</i> to refresh screen regions if content is edited, is fixed to work with the portlets engine again. (<b><i>Rosario Di Somma, </i></b><b><i>Simone Deponti</i></b><b><i></i></b>)</li><li>Fixed issues with the <i>links in the body view</i> of content. For this a new option created that can be used to prevent the bubbling of events. (<b><i>Fabrizio Reale, Davide Moro</i></b>)</li><li>Fixed issues with the <i>content menus</i> to change the review state and the default display view (<i><b>Massimo Azzolini, Rosario Di Somma</b></i>). This involved improving the refresh of the content menu. (<i><b>Jean-François Roche</b></i>)</li><li>Improved our test infrastructure which now use layers correctly (<i><b>Daniel Nouri</b></i>)</li><li>Made the first <i>functional doctest</i> to check html ids and classes (<b><i>Fabrizio Reale, </i></b><i><b>Daniel Nouri</b></i>)</li><li>Kss-ify Contentrules; this involved using macros from a Zope 3 view (<i><b>David Convent, </b><b>Daniel Nouri</b></i>)</li><li>Kss-ify locking support (<i><b>Jean-François Roche</b></i>)</li><li>Refreshing screen regions with viewlets (<i><b>Jean-François Roche</b></i>)</li></ul><p>In addition, many more developers helped checking bugfixes and writing more tests. We also had a bugday fully dedicated to <i>Internet Explorer</i>, and we also discovered a code clash with <b>kupu</b> concerning the usage of the <i>sarissa</i> javascript library. This is yet to be solved later.<br /></p><p> I believe this sprint was a milestone for this year and its success comparable with last year’s <i>BubbleNet sprint</i>. I would like to thank to everyone for the great work we could achieve together for KSS and Plone.</p><p><img class=”image-inline” src=”../Members/ree/440580655_dca0b293ff_b_d.jpg” alt=”sorrento2.jpg” /><br /></p>
KSS development: Report from the Sorrento sprint
Originally from Planet Plone by ree
<p>The Azax core developers featuring Godefroid Chapelle and Balázs Reé have had a 3-days mini-sprint on KSS in Belgium, in the BubbleNet headquarters. We would like to report about the work done since the Archipelago sprint.</p><ol><li>We were looking for a new name to replace ‘kukit” : we have decided to call it officially “KSS” since this is the most visible part of the framework. The Zope support is still called Azax and the Plone product PloneAzax. (The javascript file keeps its name “kukit.js”.)<br /></li><li>We revised Balázs’s KSS2 format. KSS2 had improvements to the syntax proposed at the archipelago. It had grown out the implementation of the first use cases. We have kept large part of the improved semantics of KSS2 but we have switched back to a syntax closer to the original proposal. We think we have come to a stable <a title=”KSS” href=”../documentation/kss” target=”_self”>KSS syntax</a>.<br /> We have put the new implementation on the trunk and updated all sample products to work with it. Docs will be brought up to date as well.<br /></li><li>We fulfilled our promise made at the Archipelago sprint, and showed how existing programs written with prototype, without any previous consideration to KSS, can be transparently hooked into KSS event binding and KSS’s command marshalling architecture. At the moment it just works with a single example. The same can be done with existing Bling components, although we have not demonstrated that yet. The codename of the project is “bluekit”.</li></ol><p>There is a lot to be done on the framework:</p><ul><li>refactor the code<br /></li><li>add missing features</li><li>evaluate with use cases</li><li>wrap up scriptaculous and Bling components into kss plugins to have some “effect lib”</li><li>finalize the plugin API<br /></li><li>write tutorials, documentation<br /></li></ul><p>But it is now finalized to the level that other developers can start experimenting with it. And so the most important part begins: start to use it with real Plone usecases, and find out if additional support is needed from the framework. Also design a consistent look and feel of ajax for Plone.</p><p>It would be nice to have a sprint on this subject, where the main focus would be the Plone UI itself, but with the framework developers present to support the different teams. Nothing has yet been decided but it’s in the plans.</p><p>Please visit <a title=”Available software” href=”../documentation/available-software” target=”_self”>this page</a> to have information about the current bundles.<br /></p>
KSS development: Report from mini-sprint
Originally from Planet Plone by ree
<p>A long time has passed since our last blog entry and a lot of progress has been made with KSS / Azax.</p><p>Previously we mainly concentrated on completing the core framework and working out use cases for Zope. As a result the core KSS framework and its base demos run on a variety of Zope versions including <b>Zope 2.8, 2.9, 2.10</b> and <b>Zope 3.2</b>. The documentation has also been started; there is a <a title=”Tutorials” href=”../documentation/tutorials/xxx” target=”_self”>tutorial for startup</a>, and some other <a title=”Available software” href=”../documentation” target=”_self”>documentation</a>. We also had some discussion on the mailing list that gave us a lot of input on what use cases would be important to do first – thank you <i>Martin ‘optilude’ Aspeli</i> for the lot of work devoted into this!<br /></p><p>Next we could start to focus on use cases for Plone and Archetypes. As a result, we already have some use cases working in our <a href=”https://svn.plone.org/svn/plone/review/kss-base-bundle/” target=”_self”>review bundle</a>, and our <a href=”http://plone.org/products/plone/roadmap/171″ target=”_self”>PLIP</a> contains more information about the general picture and how we plan to move on. <br /></p><p>In the bundle we decided not to branch off Plone or Archetypes but to offer add-on products instead, thus showing how KSS can add dynamicity to existing applications. We have working demonstration of</p><ul><li>content tab switching:Â if possible we change the content region without reloading the page in an economic way, and if not, we fall back to traditional navigation. This works with all “green” tabs including those in the setup area. There is a problem on loading the kupu editor, which currently either works or not, we hope to solve that soon.<br /></li><li>autorefresh of portlets: We have a simple portlet autorefresher that in the default setup refreshes the “recent” porltet, any portlet can be refreshed by just adding a corresponding rule to the KSS resource. This could be easily integrated with the portlet engine later.<br /></li><li>In-place navigation in the calendar portlet<br /></li><li>validation of AT fields on onblur event (in <i>ATAzax</i> product): On leaving a field the validation of the field is done and the field error message is displayed, this is only implemented for the String widget and will soon be extended for all built-in widget types.<br /></li><li>validation
of the entire AT form when save button is clicked, showing error
messages without reloading if there are some errors (in <i>ATAzax</i> product).</li><li>livesearch
is now bound to its input with KSS: in other words, we show how external
components can coexist with KSS and existing code can be wrapped with
lightweight modifications (in <i>livesearch</i> product). Soon we will also show how the same component is easily reusable for other tasks like autocomplete and other intelligent search fields.</li></ul><p>In addition, there is also a <a href=”http://azaxdemo.ree.hu” target=”_self”>live demo site</a> set up which however shows just the Zope-only demos of the <i>azaxdemo</i> product at the moment – which means none of the above stuff yet
, nevertheless it gives a quick view into how KSS works.<br /></p><p>In September, we will have a 4 days developer sprint in Belgium to enhance further the Plone UI with KSS. We plan to complete existing use cases and introduce additional ones. We also plan to enhance our testing system and provide more effect libraries by wrapping existing javascript libraries for use in the KSS framework.<br /></p><p>
</p>
<p>
</p>
<p>Although the main system is usable with all Zope and Plone versions, the Archetypes specific parts of the review bundle are prepared for <b>Plone 3.0</b> and run only on <b>Zope 2.10</b>. You also need to manually replace Five with the<b> svn version of Five 1.5, </b>(iow, even the <i>svn version of Zope 2.10 </i><b>is insufficient</b> since that links to a static tag of Five that contain critical bugs). Many thanks to all those people who made this possible and especially <i>Alec Mitchell,</i> <i>Hanno</i> <i>Schlichting</i> and <i>Philipp von Weitershausen</i> who helped us invaluably to track down a few showstopper issues.</p>
KSS development: KSS bundle for Plone 3.0
Originally from Planet Plone by ree
<p><b>Christian Klinger</b>, alias <b>goschtl,</b> has given us help in our effort to provide KSS use cases for Archetypes. Besides helping with the in-place navigation of AT edit forms and validation, he also wrote <a href=”https://svn.plone.org/svn/collective/ploneazax/KSSMasterSelectWidget/trunk” target=”_self”>KSSMasterSelectWidget</a> that we included in the review bundle for <a href=”http://plone.org/products/plone/roadmap/171″ target=”_self”>PLIP171</a>. He has chosen a slightly different approach from our base track and instead of refreshing the entire widget at once, he modifies individual attributes in the HTML DOM. We will further enhance the widget and possibly integrate it with ATAzax during the upcoming KSS sprint.</p><p>He has written a mail that I would like to include here with his kind permission. Thank you Christian, for your ongoing help in our efforts.</p><p><br /></p><p>My Experience with KSS</p><p>
</p><p>
</p><p>
</p><p>
</p><p>First, I work with Archetypes since two years I think. I have deep knowledge about Archetypes. For intra and extranet projects, I developed several AT-based objects. I have less experience about Javascript and basic knowledge about CSS.</p><p>
</p><p>
</p><p>
</p><p>
</p><p>I came to KSS, because we needed dynamic widgets for a project. Unfortunately, the MasterSelectWidget in the Collective does not exactly match my usecase. I tried to add my extra functionality to MasterSelectWidget but did not get it to work (lack of experience in JavaScript). </p><p>
</p><p>
</p><p>
</p><p>Then I looked around for other Ajax-frameworks for Plone. The results of search –> KSS. I read the site <a href=”../../documentation”>http://azax.ree.hu/documentation</a>Â and worked through the tutorials.</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>
</p><p>I like the concept of an additional kss which is responsible for binding on elements. The binding stuff goes into seperate KSS files, which are managed by ResourceRegistries in Plone. For the server-actions, it´s possible to use the new Z3-view classes with all their advantages. The syntax of KSS is, with my knowledge of CSS and Firebug (Extension for FireFox), relatively easy to use. With the help of the tutorials and cheat-sheat, I learned to work with the KSS-Server actions (replaceInnerHTML, …). Additionally, there are some very cool debugging and logging functions which makes it easy to understand what’s going on.<br /></p><p>For my first test of KSS in RealWorld, I tried to realize the Content view/Edit tab. I had to hack some code to only render the <div fill:slot=”main”> part of main_template. But with some help from ree on IRC, it was pretty easy to do the KSS part of this task.</p><p>
</p><p>
</p><p>
</p><p>After collecting those first experiences, I developed my DynamicWidget. My aim was to add the functionality of MasterSelectWidget to a new KSSMasterSelectWidget. All in all, it was not difficult to adapt the fuctionallity from the old MasterSelectWidget to the new KSSMasterSelectWidget.</p><p>Christian</p>
KSS development: KSS user experience
Originally from Planet Plone by ree
As promised a long time ago, KSS has now support for Scriptaculous effects. The integration was really easy thanks to the overall pluggability of kukit.js (Kudos to Balazs for this.)<br /><br />Effects can be:<br /><ul><li>bound to events by a KSS resource :</li></ul><pre>#regionToFade:click {<br /> action-client: effect;<br /> effect-type: fade;<br />}</pre><ul><li>or executed from a command added to the response on the server :</li></ul><pre>from Products.PloneAzax import AzaxBaseView<br />view = AzaxBaseView(context, context.REQUEST)<br /><br />commands = view.getCommands()<br />commands.effect(’#regionToShow’, ‘appear’)<br /><br />return view.render()<br /></pre><p>The support is still very basic : some effects are missing, parameters are not supported… This will be refined during the sprint that will happen next week in Belgium by <a href=”http://bubblenet.be/” target=”_self”>BubbleNet</a>’s offices. If you can’t wait, take a look at the <a href=”http://azaxdemo.ree.hu/effects.html” target=”_self”>online-demo</a>.</p><br />This week has been rich in the KSS team :<br /><ul><li><a href=”http://plone.org/products/resourceregistries/releases/1.2.3/ResourceRegistries-1.2.3.tar.gz” target=”_self”>ResourceRegistries 1.2.3</a> now includes the fixes needed by PloneAzax. (Florian)</li><li>PloneAzax has now a <a href=”http://dev.plone.org/collective/browser/ploneazax/PloneAzax/branches/2.1″ target=”_self”>branch</a> that is compatible with Plone 2.1.3. It works with the Zope 2.8 branch of azax. Bundle will follow. (Balazs)</li><li>There is now a <a href=”http://codespeak.net/svn/kukit/kukit.js/trunk/utils/kss.vim” target=”_self”>Vim syntax file</a> for KSS. (Godefroid)</li></ul>I really enjoy this team work !<br /><br />I also would like to mention a document describing the <a title=”Development process with KSS” href=”../documentation/development-process-with-kss/development-process-with-kss” target=”_self”>development process of ajaxification with KSS</a> and the <a href=”irc://irc.freenode.net/#kss” target=”_self”>brand new IRC channel</a>. <br />
KSS development: Scriptaculous Effects
Originally from Planet Plone by Godefroid Chapelle
<p>So the KSS sprint in BubbleNet is finished. I am pleased to say it is a real success.</p><p>The following objectives had been set, sorted by order of priority :<br /></p><ul><li>introduce new plonistas to the tool and have them make some development,</li><li>move on with the development of the PLIPs <a href=”http://plone.org/products/plone/roadmap/121″ target=”_self”>121</a> and <a href=”http://plone.org/products/plone/roadmap/122″ target=”_self”>122</a>,</li><li>improve tests infrastructure and begin to add some where they were missing,</li><li>refactor the adapter story of Azax, to make it more compliant to the right way.</li></ul><h3>More Plonistas</h3>Jean-Paul Ladage, David Convent, Daniel Nouri and Wim Boucquaert have shown to Balazs and me that the tool is more than usable. They did implement the following use cases (in PloneAzax and ATAzax) :<br /><ul><li>all standard AT widgets are now validated at blur time in edit view,</li><li>change of views with display menu do not reload the full page anymore,</li><li>same for copy and cut of actions menu,</li><li>and for workflow transitions of status menu,</li><li>instant edit of text and description fields of the ‘page’ content type is now implemented, based on a generic archetypes implementation (iow, which will be expandable to all views/fields pretty easily).</li></ul>I want to insist on the fact that they could achieve this by themselves, depending on Balazs and I only for the fixes needed here and there in Azax or kukit.js.<br /><br /><h3>Plips</h3><p>Thanks to their work, second objective has been mostly attained as well. Further, the main usability issue until now (the lack of spinner) has been fixed : you know now when you are waiting for a refresh of some parts of the page.</p><h3>Tests and refactoring<br /></h3><p>We did quite some work on the third objective : tests coverage has improved a lot. Even though code is still not 100% covered, I could use the current tests as safety belt for my work on the adaptors refactoring. On the last day of the sprint, I merged the work as all tests were passing. I must say I was really satisfied to find out that none of the use cases that had been worked on before were broken, iow that the tests were doing their job. <br /><br />Now, let’s not forget the less positive things.<br />First, on client side, we found out once again how cross-browser JS/UI is difficult. Lemme explain.<br />For instance, as we already know, the use of the Enter key in forms is sort of broken in IE (cfr FormController warnings). Well, it is also fragile in Safari. We will have to explore more in order to enable (cross-browser) to just press Enter to save the Title.<br />The good news is that we have shown with the other use cases that, when the JS code is already covering the cross-browser issues, the layer that KSS provides really ensure that the developer stays away of those troubles. Iow, if and when we get a solution for the problem just cited above, it will be fixed once. There will be other cases like this and this is the main reason for KSS imo : lets fix things in a central place.<br /><br />Second, on server side, the ZPT, Python scripts, FormController stack combined with Five views is often in our way when we insist on reusing existing code. In some cases, a lot of time is needed as we all already know. Nevertheless, we can do it, for instance, Archetypes validation is fully supported in the edit actions.<br /><br />Third, no work was done to refine the effects support… which is not so serious as it is a little task anyway.<br /><br />So all in all, four very good days. If you want to see it by yourself, checkout the code from svn (do not forget to use Five 1.4 head). If you can wait, you’ll get a release asap.<br /><br />I want to thank all the people that have worked with me on this since already more than one year : to see my dream becoming reality is a great feeling.<br /><br /></p>
KSS development: KSS sprint in Louvain-la-Neuve (Belgium) is a success
Originally from Planet Plone by Godefroid Chapelle