<?xml version="1.0" ?>
<?xml-stylesheet href="" type="text/css"?>

<Channel xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns="http://purl.org/net/rss1.1#"
         xmlns:p="http://purl.org/net/rss1.1/payload#"
         rdf:about="http://kssproject.org/blog">

    <title>Blog</title>
    <link>http://kssproject.org/blog</link>

    <description>Proceedings of KSS project development</description>

    <image rdf:parseType="Resource">
        <title>Blog</title>
        <url>http://kssproject.org/logo.png</url>
    </image>

    <items rdf:parseType="Collection">
        
        <item rdf:about="http://kssproject.org/blog/archive/2008/05/15/kss-1-4-released">
            <title>KSS 1.4 released</title>
            <link>http://kssproject.org/blog/archive/2008/05/15/kss-1-4-released</link>
            <description>Better performance and syntax in release 1.4 of KSS.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">KSS now uses <a href="http://dean.edwards.name/weblog/2007/03/yet-another/">base2</a> (which is significantly faster than CSSQuery) for css node selection: it provides among others much quicker page loads.<br />
<p>The release comes with several syntax improvements:</p>
<ul><li>
<p class="first">Multiple selectors are allowed in the same rule.<br /></p>
</li><li>
<p class="first">Value providers can be recursive.</p>
</li><li>
<p class="first">url() and alias() value providers.</p>
</li><li>
<p class="first">Node selection can be specified together with client actions.</p>
</li><li>
<p class="first">Full form submits can be specified together with actions.</p>
</li></ul>
We provide improved demos and testing.
<p>More details can be read in the <a title="KSS 1.4 Release Notes" href="../notes/kss-1.4-release-notes">release notes</a>.</p>
<p><br /></p>
<p>The following packages have been released, to be used with both Zope 2.10 or higher, and Zope3.<br /></p>
<table class="plain">

<tr>
<td><b>package</b><br /></td>
<th align="left"><b>version<br /></b></th>
<td><b>download<br /></b></td>
</tr>

<tbody>
<tr>
<td>kss.core</td>
<td>1.4</td>
<td><a href="http://pypi.python.org/pypi/kss.core/1.4">cheeseshop</a><br /></td>
</tr>
<tr>
<td>kss.demo</td>
<td>1.4</td>
<td><a href="http://pypi.python.org/pypi/kss.demo/1.4">cheeseshop<br /></a></td>
</tr>
</tbody>
</table>
<br />
<p>There is a <a href="../docs/how-to/how-to-setup-and-use-kss-1.4">howto</a> available that answers common setup and usage questions.</p>
<p>Plone 3.1 includes KSS 1.4. The Plone specific version of the same howto is <a href="http://plone.org/documentation/how-to/kss-on-plone-3.1">here</a>.<br /></p>
<p>Many thanks to anyone who worked on the KSS code, and made this new release possible.</p>
</p:payload>
            <dc:date>2008-05-15T09:21:52+02:00</dc:date>
            <dcterms:modified>2008-05-15T09:21:52+02:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plonepackage</dc:subject>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>general</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2008/04/08/plone-app-kss-sprint-in-sorrento">
            <title>plone.app.kss sprint in Sorrento</title>
            <link>http://kssproject.org/blog/archive/2008/04/08/plone-app-kss-sprint-in-sorrento</link>
            
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">
<p>We had a great time in Sorrento this year. The KSS work was centered around testing Plone and the <a href="http://dev.plone.org/plone/ticket/7871">PSPS #7841 topic</a>. <br /></p>
<ul><li><b>Simone Deponti</b>, <b>Tom "Spanky" Kapanka</b>, and <b>Balázs Reé</b> worked on extending the kss.demo testrunner to deal better with application level selenium tests. Besides testing Plone itself, it also aims at enabling testing of applications written with Plone, Zope or Grok.<br /></li><li><b>Beppe Zizza</b> wrote documentation that explains how to install the test running environment, how to run the existing tests, and how to write new ones, The document is targeted towards Plone developers but is also meant to be generic with respect to other Zope based frameworks.</li><li><b>Simone Deponti</b> and <b>Massimo Azzolini</b> championed the review of the Plone tests we wrote last year. They fixed those and tried to write new ones. During this, we identified and solved important problems, such as site creation (adapting the code written by <b>Davide Moro</b> at the last Sorrento sprint), login and logout as different users (test suite layers). We also realized it is sometimes difficult to carry out the tests we want with Selenium.<br /></li><li><b>Sylvain Viollon</b> worked on <i>Funittest</i> integration. After discussing the topic, we agreed that this method should live in parallel with the already existing one that uses prerecorded tests. Because of platform dependency problems and the challenge of the different testing models, the evaluation and adoption of Funittest might be a longer process. As a first step, Sylvain made a buildout that contains all package dependencies, and wrote example tests for Plone with the help of <b>Massimo Azzolini</b>. We also explored the possibility of converting Funittests testrun snapshots into a sequential format that can be played directly with Selenium IDE and thus used with the existing KSS testrunner.</li></ul>
<p>We also looked into future possibilities. We started with the help of <b>Robert Niederreiter</b> the evaluaton of <i>Cornerstone,</i> the ajaxian widget framework of <i>Devilstick.</i> We definitely need more time to evaluate this component, and consider the possibility of adopting code and/or ideas for widget support into KSS.</p>
Balázs and<b> Malthe Borch</b> also discussed the  possibility of integrating <i>z3c.resourceinclude</i> with KSS. This might lead to finally drop the resource handling part of kss. That would improve the developer experience of KSS on Plone as well.<br />
<p></p>
<h3>Check out material<br /></h3>
<p>The documentation that explains how to install the test running
environment, how to run the existing tests, and how to write new ones,
can be found here.<i> Check it out!:</i></p>
<a href="../../docs/tutorial/kss-testing-how-to-for-plone-3.1">http://kssproject.org/docs/tutorial/kss-testing-how-to-for-plone-3.1</a><br />
<p>The ploneout branch that enables selenium testing of Plone 3.1 is here:</p>
<p><a href="https://svn.plone.org/svn/plone/ploneout/branches/3.1-kss-test">https://svn.plone.org/svn/plone/ploneout/branches/3.1-kss-test</a></p>
<p>The kss.demo extensions are still subject to change, but you can simply drop new tests inside plone.app.kss, under the <i>selenium_tests</i> directory and they will be picked up automatically.<br /></p>
<a href="../docs/tutorial/kss-testing-how-to-for-plone-3.1"></a><br />
<p><b>Funittest</b></p>
<p>The experimental <i>Funittest integration buildout</i> is here:</p>
<p><a href="https://svn.plone.org/svn/plone/ploneout/branches/3.1-funittest">https://svn.plone.org/svn/plone/ploneout/branches/3.1-funittest</a></p>
<p>Actual tests are in <a href="https://svn.plone.org/svn/collective/funittest/funittest.plone/trunk/">funittest.plone</a>, in the <i>lib/plone/kss</i> directory. More information on using Funittest is available on <a href="http://www.openplans.org/projects/funittest/project-home">OpenPlans</a>, together with more <a href="http://www.openplans.org/projects/sorrento-sprint-2008/summary-on-funittest">technical reports</a> as well.<br /></p>
</p:payload>
            <dc:date>2008-04-08T11:32:14+02:00</dc:date>
            <dcterms:modified>2008-04-08T11:32:14+02:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>testing</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
            
            <dc:subject>plone</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2007/10/27/kss-base-first-alpha-released">
            <title>kss.base first alpha released</title>
            <link>http://kssproject.org/blog/archive/2007/10/27/kss-base-first-alpha-released</link>
            <description>We are happy to inform you that we have released the first alpha of kss.base. This new library will be the base library for all pythonic web frameworks that choose to support KSS.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">
<p>The predecessor of<b> kss.base</b> is the <b>kss.core</b> package, which depends heavily on the Zope 3 component architecture. Our new library only depends on Python and setuptools. This will widen our support for integration with other frameworks. We have already seen some fruits of the new approach in experimental support for both <b>Pylons</b> and <b>Django.<br /></b></p>
<p><b>kss.base is alpha, and at the moment not compatible with Zope or Plone. </b>For those platforms,<b> kss.core is still needed, </b>as previously. Later, we will improve kss.base to also support Zope and Plone: we will introduce the <b>kss.zope</b> package. kss.base and kss.zope together will replace kss.core, which will be phased out in the end (with keeping complete backwards compatibility).</p>
<p>We suggest  to test kss.base to anyone interested in KSS integration on Pylons, Django, or any other pythonic platform.<br /></p>
</p:payload>
            <dc:date>2007-10-27T11:02:48+02:00</dc:date>
            <dcterms:modified>2007-10-30T17:11:13+01:00</dcterms:modified>
            <dc:creator>Jeroen Vloothuis</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>general</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2007/10/20/plone-app-kss-sprint-in-naples-one-step-further">
            <title>plone.app.kss sprint in Naples: one step further</title>
            <link>http://kssproject.org/blog/archive/2007/10/20/plone-app-kss-sprint-in-naples-one-step-further</link>
            <description>We were sprinting on applying KSS in Plone after the Naples conference. During this sprint we made a lot of progress which will further establish the KSS project.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">
<p>One main focus was making it easier for people to write KSS plugins. We arrived with the new <i><b>kss.templates</b></i> component that eases the creation of custom plugins. Thanks to <b>Godefroid Chapelle</b> we also have <a title="firekiss.xpi" href="../../../../../download/firekiss.xpi"><i><b>FireKiss</b></i></a> that will bring a revolution to debugging KSS.<br /></p>
<p>During the sprint we also started to use new technologies such as <a href="http://bazaar-vcs.org/">bazaar</a> for version management and we also created the <a href="http://launchpad.net/~kissbooth">kissbooth</a> project area on<a href="http://launchpad.net"> Launchpad</a>. Launchpad offers repository storage for bazaar branches and a web interface for project management.</p>
<p>Sprinters were working on various topics:</p>
<ul><li><b>Jan Murre</b> was working on enabling drag-and-drop in Plone, together with <b>Jeroen Vloothuis</b> and <b>Balazs Ree.</b> We failed to finish this: after realizing that more Javascript work is needed than the time available for us, we turned our focus to other subjects.</li><li><b>Jan Murre</b> started to integrate <a href="http://docs.jquery.com/Effects">jQuery effects</a> with KSS.  He also made a working demo of it in Plone.</li><li><b>Massimo Azzolini</b> was working on code to KSS that will enable the correct handling of <b><i>browser history</i></b> through AJAX operations.</li><li><b>Daniel Greenfeld</b> and <b>Carsten Rebbien</b> were creating a new <i><b>KSS tutorial</b></i> that is based solely on Zope3 technologies on the contrary of the existing ones that present using KSS TTW (through the web).</li></ul>
We also helped other teams to apply KSS:<br />
<ul><li><b>Jean-Paul Ladage</b> and the <b>XM team</b> were working on the KSS application part of the <b><i>eXtremeManagement tool</i></b> and <i><b>plonehrm.</b></i><br /></li></ul>
<p>We also made a big step forward with our platform support. Before the sprint we had KSS integration for the following platforms:</p>
<ul><li><a href="http://zope.org">Zope 2 &amp; 3</a><br /></li><li><a href="http://grok.zope.org"><b><i>Grok</i></b></a> (<b>Godefroid Chapelle</b>)</li><li>and the pythonic platform <a href="http://pylonshq.com"><i><b>Pylons</b></i></a> (<b>Jeroen Vloothuis</b>)</li></ul>
<p>and by the end of the sprint we were proud to present that</p>
<ul><li><b>Manuel Saelices</b> has integrated KSS with <a href="http://djangoproject.com"><i><b>Django</b></i>!</a></li></ul>
He made this work by building on top of kss.base (which is also used for the Pylons integration, and will be for Zope). If you want to know how to use it head on over to the <a href="../docs/tutorial/kss-in-django-with-kss-django-application">tutorial on Django and KSS</a>.
<p>There was also experimental work going on with a large potential impact on the future of KSS:</p>
<ul><li>
<p><b>Georg Gogo. </b><b>Bernhard</b> continued the work he started on the last SnowSprint on the <b><i>eventPush</i><i> </i></b> project. His demonstration spoke for itself: we have seen a <b><i>proof-of-concept</i></b> application pushing KSS commands from the server to the client (as opposed to the traditional poll-style AJAX).<br /></p>
</li></ul>
We would like to thank everyone involved in making this happen. It was a fantastic sprint!</p:payload>
            <dc:date>2007-10-20T08:57:55+02:00</dc:date>
            <dcterms:modified>2007-11-05T14:20:38+01:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>general</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>django</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2007/10/15/new-website-skin-for-kssproject.org">
            <title>New website skin for kssproject.org</title>
            <link>http://kssproject.org/blog/archive/2007/10/15/new-website-skin-for-kssproject.org</link>
            <description>We now have a new theme for KSS project website. This finally gives KSS a specific style.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">
<p>The design started with a new logo designed by Thijs Jonkman. <br /></p>
<p>After this was approved, Linda Verhagen designed a draft theme for the website.</p>
<p>
Jola Hyjek helped to choose the main color of the site.</p>
<p>At Plone Conf 2007, Jarno de Wit and Thijs pulled together to finish the theme.</p>
<p>Balazs Ree and Jeroen Vloothuis have put it in production.<br /></p>
<p>We want to thank everyone who helped, especially all the nice people at <a href="http://www.pareto.nl">Pareto</a> for having worked for the project.</p>
</p:payload>
            <dc:date>2007-10-15T13:07:09+02:00</dc:date>
            <dcterms:modified>2007-10-18T11:26:21+02:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2007/09/03/louvain-la-neuve-sprint">
            <title>Louvain-la-Neuve sprint</title>
            <link>http://kssproject.org/blog/archive/2007/09/03/louvain-la-neuve-sprint</link>
            <description>There was a KSS sprint in Louvain-la-Neuve. Developers produced speed improvements, new syntax for KSS style sheets and refactorings for easier development with both client-side Javascript and server-side Python code. </description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">One week after the release of <a href="http://plone.org/products/plone/releases/3.0">Plone 3.0</a> - the first official release of a project which includes KSS engine, we had a development sprint for KSS. The sprint lasted three days (August 27-29, 2007),  in <a href="http://bubblenet.be">BubbleNet</a> offices in Louvain-la-Neuve, Belgium.<br /><br />The focus of the sprint was threefold :<br />
<ul><li>Changes of KSS stylesheets syntax,</li><li>Refactorings in client-side engine,</li><li>Refactorings of server-side support in Python.<br /></li></ul>
<p>Four developers joined me to work on KSS project :</p>
<ul><li>Balazs Ree (from <a href="http://greenfinity.hu">Greenfinity</a> - Hungary),</li><li>Jeroen Vloothuis (from <a href="http://pareto.nl">Pareto</a> - Netherlands),</li><li>Jean-François Roche (from <a href="http://jfroche.be">Pyxel</a> - Belgium),</li><li>Laurent Lasudry (from Netitbe - Belgium).<br /></li></ul>
Additionally, Guido Wesdorp (of <a href="http://pragmagik.com">Pragmagik</a> - Netherlands) joined us for one day. We could introduce Guido to our framework and get help from his experience gained among others when developing Kupu, the default visual editor of Plone and Silva CMS.<br /><br />Let's get a bit more into the details of the work done during the sprint.<br /><br />
<h3>Changes of KSS style sheets syntax</h3>
<br />We discussed and agreed on the following changes for the KSS syntax.<br /><br />
1) Declarations like the following were previously forbidden :
<pre>input.blurrable:blur, select.blurrable:blur {<br />    action-server:                kssValidateField;<br />    kssValidateField-fieldname:   kssAttr('atfieldname', true);<br />    kssValidateField-value:       currentFormVar();<br />    kssValidateField-uid:         kssAttr('atuid', true);<br />}</pre>
<p>Multiple CSS selectors are now allowed, both when events that should be bound are similar like above or different like below.</p>
<pre>form.inlineForm input[name=kss-cancel]:click,<br />form.inlineForm input.blurrable:keypress(inlineescape) {<br />    evt-keypress-keycodes: '27'<br />    evt-click-preventdefault: true;<br />    action-server: replaceWithView;<br />    replaceWithView-fieldname: kssAttr('atfieldname', true);<br />    replaceWithView-macro: kssAttr('macro', true);<br />    replaceWithView-templateId: kssAttr('templateId', true);<br />    replaceWithView-uid: kssAttr('atuid', true);<br />    replaceWithView-edit: true;<br />}<br /></pre>
2) Value providers are now recursive. In other words, parameters of value providers can now be other value providers.  <br />
<pre>... {  <br />...<br />saveField-value: currentForm(kssAttr('variableName', true));<br />...<br />}<br /></pre>
3) Value providers will be allowed in event binder ids. In other words, value providers will also be used for the selectors.<br />
<pre>form.inlineForm input.blurrable:keypress(kssAttr('binderId', true)) {<br />...<br />}<br /></pre>
4) kssParameters (action parameters which have a name starting with 'kss') will be allowed in the action name declaration. They will be space separated. In other words,<br />
<pre>... {  <br />...<br />action-server: replaceWithView url(http://host/object/replaceWithView);<br />...<br />}</pre>
will be equivalent and will coexist with<br />
<pre>... {  <br />...<br />action-server: replaceWithView;<br />replaceWithView-kssUrl: url(http://host/object/replaceWithView);<br />...<br />}</pre>
that works currently.<br /><br />Changes 1) and 2) have been developed during the sprint and are NOW in the trunk and tested.<br />Change 3) is available in a branch developed before the sprint by Balazs : it will be merged as soon as possible.<br />Change 4) will be developed later. <br /><br />We are very happy that Jean-François and Laurent could join Balazs and myself in developing those features : they have made their first steps in the knowledge of the Javascript code of the KSS engine. This implies that the number of developers able of supporting the engine is growing !<br /><br />
<h3>Refactorings in client-side engine</h3>
<br />1) KSS is now 4 to 5 times quicker !<br /><br />This is the result of integrating <a href="http://code.google.com/p/base2/">base2</a> (new library from <a href="http://dean.edwards.name/">Dean Edwards</a> of <a href="http://dean.edwards.name/my/cssQuery/">cssQuery</a> fame). Selection of nodes with base2 is much quicker than cssQuery because a native XPath engine is used when available in the browser instead of only slow Javascript code.<br /><br />The work was started in May by Balazs and Jeroen during a week-end in Rotterdam. Balazs and <a href="http://plone.org/foundation/members/alecm">Alec Mitchell</a> spent another few days in June to benchmark and test the integration. Finally, Balazs and Jeroen made the last needed refactorings during the sprint.<br /><br />2) Exception infrastructure does not swallow anymore the place where exceptions have been throwed.<br /><br />Thanks to Jeroen and Balazs that did the refactoring, debugging of exceptions will be easier.<br /><br />3) The KSS parser code has been refactored.<br /><br />This allow for better readability and thus better extensibility or maintenability. (We need ...abilities.) <br /><br />4) The Javascript unit tests page in kss.demo has also been improved. The parser code unit tests still run in IE, Firefox, Safari, Opera and Konqueror. <br /><br />Thanks to Jean-François and Laurent that did 3) and 4) with me.<br /><br />
<h3>Refactorings in server-side Python code</h3>
<br />1) <a href="http://codespeak.net/svn/kukit/kss.base/trunk/">kss.base</a> allow us to distribute Javascript plugins as Python eggs !<br /><br />Jeroen had written Python code for server-side integration of KSS : he <a href="http://indico.cern.ch/contributionDisplay.py?contribId=18&amp;sessionId=19&amp;confId=13919">presented</a>  his integration of KSS in <a href="http://pylonshq.com/">Pylons</a> at <a href="http://www.europython.org/">EuroPython</a> in July 2007.<br /><br />During the sprint, Jeroen refactored his code into the new kss.base module. It will serve as the base implementation for server-side integration of KSS in Python frameworks. One of the features of kss.base is the registration of KSS
Javascript plugins by extracting metadata from Python eggs.<br /><br /><a href="http://codespeak.net/svn/kukit/kss.pylons/trunk/">kss.pylons</a> has already been refactored to use kss.base. In the future, we will build also build kss.zope above kss.base; it will replace kss.core that is now distributed in Plone 3.0.<br /><br />2) Distribution of Javascript engine is now a step further !<br /><br />As Laurent had worked with Jeroen on kss.base, he could also use it to develop kssconcatjs command-line utility. This will allow to easily produce the various flavours of KSS engine in a single Javascript file : development or production, with or without concatenated plugins.<br /><br />Developers from frameworks built on Java or PHP will integrate the whole engine by integrating a single Javascript file. <br /><br />All in all, a lot of work was achieved. Long life KSS !<br /><br />--<br />Godefroid Chapelle<br /></p:payload>
            <dc:date>2007-09-03T01:15:08+02:00</dc:date>
            <dcterms:modified>2007-09-04T15:47:21+02:00</dcterms:modified>
            <dc:creator>Godefroid Chapelle</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>general</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2007/04/04/report-from-the-sorrento-sprint">
            <title>Report from the Sorrento sprint</title>
            <link>http://kssproject.org/blog/archive/2007/04/04/report-from-the-sorrento-sprint</link>
            
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><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></p:payload>
            <dc:date>2007-04-04T20:29:39+02:00</dc:date>
            <dcterms:modified>2007-04-04T20:29:39+02:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>general</dc:subject>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2007/03/02/report-from-snowsprint-2007-and-the-baarn-ui-sprint">
            <title>Report from Snowsprint 2007 and the Baarn UI sprint</title>
            <link>http://kssproject.org/blog/archive/2007/03/02/report-from-snowsprint-2007-and-the-baarn-ui-sprint</link>
            <description>Work done on KSS framework during Plone community coding sprints.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><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></p:payload>
            <dc:date>2007-03-02T11:37:26+01:00</dc:date>
            <dcterms:modified>2007-03-02T11:37:26+01:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/11/29/naming-consolidation-kss-on-the-rocks">
            <title>Naming consolidation: KSS on the rocks</title>
            <link>http://kssproject.org/blog/archive/2006/11/29/naming-consolidation-kss-on-the-rocks</link>
            <description>KSS, Kinetic StyleSheets is the name that will be used from now on for the project.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><p>Recently, we received a lot of comments that we were using too many names for the various parts of the project. This induced confusion within users and developers. We had both historical and strategical reasons for having multiple names. However, the time to clean up the situation has now arrived.</p><p>We want to confirm that the framework will be called</p><p class="callout"><b>KSS</b></p><p><b> </b>as an acronym of<br /></p><p class="callout"><b>Kinetic Style Sheets.</b></p><p>This name, already used previously, represents the principal nature of the framework : our behavior stylesheet, which has syntax and semantics similar to <i>CSS (Cascading StyleSheets</i> - hence the similarity between KSS and CSS). The word <b>kinetic</b> insists on the idea that the framework adds dynamicity to existing pages. From now on, <b>KSS</b> will imply the whole system, the stylesheet syntax and the javascript stack.<br /></p><p>There is nothing settled today for the pronounciation. Some like to pronounce <b>KSS</b> as it is spelled <i>(Kay-es-es).</i> Some like to say <i>"KiSS"</i> . And some prefer to imitate the "<i>Kssssss Kssssss"</i> sound that the friendly snake called Python likes to make after dinner...<br /></p><p>Simultaneously, to simplify things, the following names are deprecated and wont be used anymore.</p><ul><li><i>Azax</i>  was used to differentiate the Zope product from our client-side javascript library. <b>"KSS for Zope" </b>will be used instead of <i>Azax</i><i>,</i> and <b>"KSS for Plone"</b> will be used instead of <i>PloneAzax.<br /></i></li></ul><ul><li><i>Kukit </i>is the original name of the client-side javascript library. It was used as the global project name but we dropped it because of its negative connotations in certain languages. Although it still appears in directory and variable names in our code, it will remain an internal detail.</li></ul><br /><h3>Merge in Plone 3.0</h3>We will soon merge our Plone specific products into the 3.0 Plone repository. Simultaneously, our products will be moved out of the Zope 2 Products namespace. This will imply some package import changes:<br /><ul><li><i>Products.azax</i> will become <b>kss.core</b> (class names that have the word "azax" in them do <i>not</i> change for now, but will be gradually replaced in the future, with a proper deprecation policy). The namespace <b>kss</b> will be reserved to hold further packages for the development of the core framework.<br /></li><li><i>Products.PloneAzax</i> will become <b>plone.app.kss</b></li><li><i>Products.ATAzax</i> will become <b>archetypes.kss</b></li><li>Add-on products will go wherever they otherwise belong to. They do not have to go under any of the kss namespaces : each product can have its own kss stylesheets, command sets and javascript plugins that are activated from zcml and totally agnostic to their subdirectory locations. Those KSS addons are meant to be bundled with the product that uses them.<br /></li></ul><p>Since the external products will not need extensive import due to the newest enhancements, the change from <b>azax</b> to <b>kss</b> will not be painful and will affect few places in add-on products (in case there are some already ;-). In fact, there is a single interface that any product needs to import. The merge will happen in the next coming days. However, the package path changes will only affect the repository trunk versions: versions <i>1.0</i> and <i>1.1,</i> working with <b>Plone 2.1</b> and<b> 2.5</b> will <i>not</i>  be affected at the moment.</p><p>The above information is still subject to small changes, until the merge will have been completed. If necessary, I will post further information to developers currently working on the code.<br /></p></p:payload>
            <dc:date>2006-11-29T08:10:05+01:00</dc:date>
            <dcterms:modified>2006-11-29T08:10:05+01:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>general</dc:subject>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/11/23/interview-at-the-end-of-the-kss-sprint-in-seattle">
            <title>Interview at the end of the KSS sprint in Seattle</title>
            <link>http://kssproject.org/blog/archive/2006/11/23/interview-at-the-end-of-the-kss-sprint-in-seattle</link>
            
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><a href="http://podcasts.plonetv.de/ep14/cltv14-mpeg.mov"><img src="http://podcasts.plonetv.de/ep14/ep14.jpg" /></a>
<br /><br />A video report summarizing the KSS sprint in Seattle is available from <a href="http://comlounge.tv/blog/archive/2006/11/19/cltv14-plone-conference-2006-the-ajax-sprint" target="_self">COM.LOUNGE TV</a>.<br /><br /></p:payload>
            <dc:date>2006-11-23T15:17:16+01:00</dc:date>
            <dcterms:modified>2006-11-23T15:22:31+01:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plonepackage</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/11/08/plone-conference-report">
            <title>Plone conference report</title>
            <link>http://kssproject.org/blog/archive/2006/11/08/plone-conference-report</link>
            <description>Report about KSS both at the conference and at the post-conference sprint.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><p>The Plone conference and sprint has finished in Seattle. Lot of people say it was the largest and most interesting conference so far. Well, it was also an important step for the development of KSS.</p><p>We gave an introductory tutorial about KSS. We were running at the same time than Philikon and had the same feeling as him that we spoke in front of a not so full room. After all, it was afternon of the last day and people might have grown tired.</p><p>Nevertheless, we received lots of positive feedback that reassures us that the initial goals are valid, and that we are moving into the right direction with the implementation. At the sprint following the conference, new developers started to work with and on KSS; once again, we could experience that, after a short introduction, they were able to contribute to the code.</p><p><img class="image-right" src="../Members/ree/ploneazax.jpg" alt="ploneazax" height="206" width="273" />Although the sprint lasted for two days only, we made good progress, especially in the following areas:</p><ul><li>Jan and Massimo have fixed most of the bugs that had crept in after the Louvain-la-Neuve sprint. (They were either the consequence that we are using the development trunk of Plone, or that we provide backports of the software to practically all Zope and Plone versions. - In other words, we have many branches to maintain and that gives a higher chance to dependency problems.)<br /></li><li>Balazs has refactored the way the plugins use the Zope3 component architecture : as a consequence, all our plugin components are now really independent of their import locations.<br /></li><li>Jan, with Aaron and Josten, went on with implementing the Plone 3.0 use cases. We can, now, for example,  quick-edit the data rendered in the event summary table. <br /></li><li>Last, but not least, we have a <i>working </i>version of a solution to the following problem : when some data on the server is modified by an Ajax request, the client should update all parts of the screen that are displaying the modified item. For instance, after quick-editing the title of a content item, not only must the title be updated in the content area, but the navigation portlet, the breadcrumbs, the recent items portlet have also to be updated. We can see how a generic solution is needed for this generic problem : custom portlets might also need to be updated. Jeroen (with Luca, Gotcha and Philikon), has built a Zope 3 event based solution that emits an event (IAzaxEvent) when some state is modified on the server. Handlers can be registered to <a title="Seattle sprint event handling screencast" href="../Members/jvloothuis/azax_sprint.swf" target="_self">automatically update</a> all dependent parts of the screen.<br /></li></ul><p>There is still a lot to do in the future. Without being exhaustive, the following key points are foreseen:</p><ul><li>Move our code out of Products. Merge PloneAzax and ATAzax templates into the Plone core. This is now prepared and will happen asap.</li><li><i>Tests, tests, tests</i>. We are entering into a stage where testing becomes even more critical. We have to complete our coverage. We need to have Selenium tests for all the Plone UI functionality, and we are also planning to extend our client side framework to be able to load and test DOM content in an automated way.</li><li>Improve the caching story. We want to be able to differentiate between cacheable and non-cacheable requests, and allow CacheFu to have fine-grained control just as with normal requests.<br /></li><li>Improve the client-side request queue manager to handle priority queues and the cancellation of requests. This will allow, for example, to have individual "loading" spinners and cancel buttons on each of the page elements whose refreshment is in progress.</li><li>And most importantly: go on with the use cases for Plone, make a drag-and-drop component and extend the LiveSearch component to be used in a more generic way then before, for the filtering of very large result sets.</li></ul><p>We wish to thank to everyone who joined us in our efforts. We believe that if we go on working like this (and of course we will), we are looking forward to a real exciting Plone 3.0 release. Thank you for making this happen.</p><p>And of course, as always, there is also a personal side of the story. It involves us Europeans, the trip to America was really amazing. Our private passtime activities like birdwatching, sealspotting in either Seattle or San Francisco, attending some cool Halloween parties (yes, <a href="http://www.cbsnews.com/stories/2006/11/01/national/main2141583.shtml" target="_self">nine were shot</a> just a few blocks away from us) or chasing the Hollywood sign in LA (one of my favs) were truly fun. <br /></p><p><br />Finally, although many have already told it on several occasions, we want to repeat it : big kudos to the conference organizers and to our more then friendly personal hosts.</p><br />The KSS team<br /></p:payload>
            <dc:date>2006-11-08T12:41:53+01:00</dc:date>
            <dcterms:modified>2006-11-08T15:21:07+01:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/10/01/visit-to-drupal-conference">
            <title>Visit to Drupal conference</title>
            <link>http://kssproject.org/blog/archive/2006/10/01/visit-to-drupal-conference</link>
            
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><p align="left">Today I took a short visit at the Drupal conference, held in Budapest, Hungary. (<a href="http://drupal.hu/konferencia/2006">Drupal Konferencia 2006</a>, Hungarian link only.) I had the chance to talk with <i>Dries </i><i>Buytaert, Károly Négyesi</i> and other lead developers of Drupal. <br /></p><p align="left">I do not attempt to give a summary or comparison between the two CMFs, because I hardly know Drupal. It was an interesting experience to recognize the same patterns we apply in Plone but in a quite different context. I had an overall good impression and was very welcome by our "rivals". (No, I did not wear my Plone Conference t-shirt. :-) )<br /></p><p align="left">I also had a chance to learn about the usage experiences of AJAX technologies in Drupal. Drupal has already adopted <a href="http://jquery.com" target="_self">jQuery</a> as its  javascript framework and plans to build its AJAX services on top of that. jQuery indeed looks very promising and many developers will agree on this.<br /></p><p align="left">This makes me stronger in my position: the core of KSS is currently independent of all javascript frameworks, and it should stay so. The layer that enables access from KSS to any particular framework should not go into the KSS core, but should be implemented as a KSS plugin component (distributable together with the core or separated) instead. This has been our recent practice, and I'm convinced we should continue with that. This ensures not only that we will always be able to deploy simultaneously multiple javascript frameworks if needed, but also that we can always reuse the most stable and best maintained javascript codebase that is available.</p><p align="left">I mention this because during the BubbleNet sprint I had an argument with Daniel Nouri who was in favour of depending on Mochikit, and I also understand that others promote the usage of Prototype and Scriptaculous. I believe that the above outlined solution allows us to take the best of all worlds.<br /></p></p:payload>
            <dc:date>2006-10-01T12:03:37+02:00</dc:date>
            <dcterms:modified>2006-10-01T12:03:37+02:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/09/20/kss-sprint-in-louvain-la-neuve-belgium-is-a-success">
            <title>KSS sprint in Louvain-la-Neuve (Belgium) is a success</title>
            <link>http://kssproject.org/blog/archive/2006/09/20/kss-sprint-in-louvain-la-neuve-belgium-is-a-success</link>
            <description>Report about the achievements and the failures of September 16-19 KSS sprint.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><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></p:payload>
            <dc:date>2006-09-20T22:15:10+00:00</dc:date>
            <dcterms:modified>2006-09-20T22:15:10+00:00</dcterms:modified>
            <dc:creator>Godefroid Chapelle</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/09/07/scriptaculous-effects">
            <title>Scriptaculous Effects</title>
            <link>http://kssproject.org/blog/archive/2006/09/07/scriptaculous-effects</link>
            <description>Basic support for Scriptaculous effects has been added to KSS.
</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal">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 /></p:payload>
            <dc:date>2006-09-07T15:52:05+00:00</dc:date>
            <dcterms:modified>2006-09-07T15:52:05+00:00</dcterms:modified>
            <dc:creator>Godefroid Chapelle</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://kssproject.org/blog/archive/2006/09/01/kss-user-experience">
            <title>KSS user experience</title>
            <link>http://kssproject.org/blog/archive/2006/09/01/kss-user-experience</link>
            
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><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 --&gt; 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 &lt;div fill:slot="main"&gt; 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></p:payload>
            <dc:date>2006-09-01T15:11:26+02:00</dc:date>
            <dcterms:modified>2006-09-01T21:02:19+02:00</dcterms:modified>
            <dc:creator>Balazs Ree</dc:creator>
            
            
            <dc:subject>plone</dc:subject>
            
            
            <dc:subject>plonepackage</dc:subject>
            
        </item>
        
    </items>
</Channel>

