<?xml version="1.0" encoding="utf-8"?> 
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/"
     version="2.0">

    <channel>

        <title>TalkQuintagroup - Myroslav Opyr</title>
        <link>http://talk.quintagroup.com./blogs/myroslav</link>
        <description>Comments and impressions of what is going on around in the world of Plone Open Source CMS.</description>
        <language>en-us</language>
        <generator>Plone 2.0</generator>

        
            
                  <item>
                      <title>Tendencies in Multi-core computing</title>
                      <link>http://talk.quintagroup.com./blogs/myroslav/tendencies-in-multi-core-computing</link>
                      <description>Recently there were loud requests to remove to remove GIL in Python 3k.</description>
                      <author>myroslav</author>
                      <pubDate>Fri, 14 Dec 2007 03:35:26 -0600</pubDate>
                      
     
        <category>Myroslav Opyr</category>
     
      <content:encoded>
        <![CDATA[<p>They've produced healthy discussion upon the topic:</p>
<ul><li><a href="http://blog.snaplogic.org/?p=94">Mr Rossum, tear down that GIL</a> - request of Juergen Brendel</li>
<li><a href="http://www.artima.com/weblogs/viewpost.jsp?thread=214235">It isn't Easy to Remove the GIL</a> by Guido van Rossum</li></ul>

<p>I was pointed to a good writeup upon <a href="http://notes-on-haskell.blogspot.com/2007/10/defanging-multi-core-werewolf.html">Hardware/Software overview of tendencies in multi-core computing</a>. It sheds some light upon progress made in the area touched by Guido in different languages/systems/platforms.<p>

<blockquote><p>If we’re going to live in a world where CPUs are cheap and parallelism is the norm, then we need to think in those terms. If we need Perl/Python/Ruby/etc. programs to interact with parallelized libraries written in C/C++/Fortran, where’s the harm in spawning another process? Let the two halves of the program communicate over some IPC mechanism (sockets, or perhaps HTTP + REST). That model is well known, well tested, well-understood, widely deployed and has been shipping for decades. Plus, it is at least as language-agnostic as Parrot hopes to become. (+2 points if the solution uses JSON instead of XML.)</p>

<p>Fourth, there’s Patrick Logan, who rightly points out the issue simply isn’t about a multi-core future, but also a multi-node future. Some applications will run in parallel on a single machine, others will run across multiple nodes on a network, and still others will be a hybrid of both approaches. Running programs across a network of nodes is done today, with tools like MapReduce, Hadoop and their kin.</p>

<p>If you have a grid of dual-core machines today, and need to plan out how to best use the network of 64-core machines you will have a decade from now, here’s a very simple migration plan for you: run 32x as many processes on each node!</p>

<p>With that said, here is my recipe for taming the multi-core dust bunny:</p>

<ul> <li>Determine what kind of parallelism makes sense for you: none, flyweight, fine-grained or coarse grained.
</li><li>Avoid troublesome low-level concurrency primitives wherever possible.
</li><li>Use tools like GHC’s Nested Data Parallelism for flyweight concurrency (one program, lots of data, spread out over multiple CPUs on a single machine).
</li><li>Use tools like GHC’s Software Transactional Memory for lightweight concurrency (many interoperating processes managing shared data on a single machine).
</li><li>Use tools like MapReduce and friends for heavyweight concurrency (work spread out across multiple cooperating processes, running on one or many machines).
</li></ul></blockquote>]]>
      </content:encoded>
     

                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Open/close events of KSS Opener</title>
                      <link>http://talk.quintagroup.com./blogs/myroslav/kss-opener/open-close-events</link>
                      <description>How to apply custom reaction to open/close events of KSS Opener. How to disable default expand/collapse behaviour.</description>
                      <author>myroslav</author>
                      <pubDate>Wed, 04 Apr 2007 17:26:29 -0500</pubDate>
                      
     
        <category>Ajax</category>
     
     
        <category>KSS</category>
     
     
        <category>Myroslav Opyr</category>
     
     
        <category>Navigation</category>
     
     
        <category>Plone</category>
     
     
        <category>Quintagroup</category>
     
      <content:encoded>
        <![CDATA[<p>Besides defining ":opener-init" even that initializes opener, developer has ability to extend/override open/close events:</p>
<pre>.term:opener-init{<br />  evt-init-elementSelector: '.details';<br />}<br /><br />.term:opener-open{<br />  action-client: executeCommand;<br />  executeCommand-commandName: replaceInnerHTML;<br />  executeCommand-commandSelector: '#status';<br />  executeCommand-html: 'expanded';<br />}<br /><br />.term:opener-close{<br />  action-client: executeCommand;<br />  executeCommand-commandName: replaceInnerHTML;<br />  executeCommand-commandSelector: '#status';<br />  executeCommand-html: 'collapsed';<br />}</pre>
<p>
and HTML for the samle is:</p>
<pre>&lt;hr /&gt;<br />&lt;div id="status"&gt;Current status&lt;/div&gt;<br />&lt;hr /&gt;<br /><br />&lt;div class="term"&gt;<br />  History<br />  &lt;div class="details"&gt;<br />    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum<br />    iaculis eros eu purus. Integer accumsan leo id lorem viverra vulputate.<br />    Donec feugiat nunc molestie massa nonummy pulvinar. Proin porta pede<br />    sit amet lectus. Duis leo urna, tempor non, condimentum condimentum,<br />    commodo non, libero. Integer feugiat, pede at.<br />  &lt;/div&gt;<br />&lt;/div&gt;</pre>
<p>The resulting behaviour on page is:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="306" height="218"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">
 <param name="movie" value="http://talk.quintagroup.com/blogs/myroslav/kss-opener/kss-opener-events.swf">
 <param name="play" value="true">
 <param name="loop" value="True">
 <param name="quality" value="low">
<embed src="http://talk.quintagroup.com/blogs/myroslav/kss-opener/kss-opener-events.swf" width="306" height="218" play="true"
 loop="True" quality="low" type="application/x-shockwave-flash"
 pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed></object></p>
<p class="discreet invisible">If you do not see a flash movie above, see <a href="http://talk.quintagroup.com/blogs/myroslav/kss-opener/open-close-events">original post</a>.</p>
<p>The important thing is that on open and close you can have client-side or server-side actions. You can disable default expand/collapse behaviour, with preventDefault parameter:</p>
<pre>.term:opener-open{<br />  preventDefault: true;<br />}</pre>
<p><br/></p>]]>
      </content:encoded>
     

                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Controlling Controller of KSS Opener</title>
                      <link>http://talk.quintagroup.com./blogs/myroslav/kss-opener/controller</link>
                      <description>KSS Opener offers several configurable parameters that enables its real-world use. One of the most useful ones is ability to control where controller (small clickable handle) is injected in the page.</description>
                      <author>myroslav</author>
                      <pubDate>Tue, 20 Mar 2007 02:36:10 -0500</pubDate>
                      
     
        <category>Ajax</category>
     
     
        <category>KSS</category>
     
     
        <category>Myroslav Opyr</category>
     
     
        <category>Navigation</category>
     
     
        <category>Plone</category>
     
     
        <category>Quintagroup</category>
     
      <content:encoded>
        <![CDATA[<p>In the case you need your opener controller to be inserted into specific place, you can use pair of controllerPlacementSelector parameters:</p>
<pre>dl:opener-init{<br />  evt-init-elementSelector: '&gt; dd';<br />  evt-init-controllerPlacementSelector: '&gt; dt';<br />}</pre>
<p>
if the above sample is applied to following HTML code:</p>
<pre>&lt;dl&gt;<br />  &lt;dt&gt;History&lt;/dt&gt;<br />  &lt;dd&gt;<br />    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum<br />    iaculis eros eu purus. Integer accumsan leo id lorem viverra vulputate.<br />    Donec feugiat nunc molestie massa nonummy pulvinar. Proin porta pede<br />    sit amet lectus. Duis leo urna, tempor non, condimentum condimentum,<br />    commodo non, libero. Integer feugiat, pede at.<br />  &lt;/dd&gt;<br />&lt;/dl&gt;</pre>
<p>
And the result is:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" height="218" width="306">
 <param name="movie" value="http://talk.quintagroup.com/blogs/myroslav/kss-opener/kss-opener-controller.swf" />
 <param name="play" value="true" />
 <param name="loop" value="True" />
 <param name="quality" value="low" />
<embed src="http://talk.quintagroup.com/blogs/myroslav/kss-opener/kss-opener-controller.swf" width="306" height="218" play="true"
 loop="True" quality="low" type="application/x-shockwave-flash"
 pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed></object></p>
<p class="discreet invisible">If you do not see a flash movie above, see <a href="http://talk.quintagroup.com/blogs/myroslav/kss-opener/controller">original post</a>.</p>
<p>The whole definition list has opener assigned. Controller (clickable handle) is inserted into &lt;dt&gt; element, not in root of list (that can confuse some browsers). This is why I avoided dl/dt/dd example in my introduction post.</p>]]>
      </content:encoded>
     

                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Introduction of KSS Opener</title>
                      <link>http://talk.quintagroup.com./blogs/myroslav/kss-opener/introduction</link>
                      <description>KSS introduced revolutionary concept into Ajax/CSS development. However out-of-the-box feature set is limited, while offering quite good extensibility. Opener is KSS component that extends KSS selectors with the set of events to enable collapsible behaviour.</description>
                      <author>myroslav</author>
                      <pubDate>Wed, 14 Mar 2007 08:56:02 -0500</pubDate>
                      
     
        <category>Ajax</category>
     
     
        <category>KSS</category>
     
     
        <category>Myroslav Opyr</category>
     
     
        <category>Navigation</category>
     
     
        <category>Plone</category>
     
     
        <category>Quintagroup</category>
     
      <content:encoded>
        <![CDATA[<p>After installation product offers following event:</p>
<pre>opener-selector:opener-init {<br />   evt-init-elementSelector: element-selector;<br />}<br /></pre>
<p>All elements that matches opener-selector will get controller that will offer expand/collapse functionality with mouse click.</p>
<p>Real-life example is:</p>
<pre>.term:opener-init {<br />   evt-init-elementSelector: '.details';<br />}<br /></pre>
<p>and having HTML code:</p>
<pre>&lt;div class="term"&gt;<br />  History<br />  &lt;div class="details"&gt;<br />    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum<br />    iaculis eros eu purus. Integer accumsan leo id lorem viverra vulputate.<br />    Donec feugiat nunc molestie massa nonummy pulvinar. Proin porta pede<br />    sit amet lectus. Duis leo urna, tempor non, condimentum condimentum,<br />    commodo non, libero. Integer feugiat, pede at.<br />  &lt;/div&gt;<br />&lt;/div&gt;</pre>
<br />
<p>will produce into something like:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="307" height="165"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">
 <param name="movie" value="http://talk.quintagroup.com/blogs/myroslav/kss-opener/kss-opener-introduction.swf">
 <param name="play" value="true">
 <param name="loop" value="True">
 <param name="quality" value="low">
<embed src="http://talk.quintagroup.com/blogs/myroslav/kss-opener/kss-opener-introduction.swf" width="307" height="165" play="true"
 loop="True" quality="low" type="application/x-shockwave-flash"
 pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed></object></p>
<p class="discreet invisible">If you do not see a flash movie above, see <a href="http://talk.quintagroup.com/blogs/myroslav/kss-opener/introduction">original post</a>.</p>
]]>
      </content:encoded>
     

                  </item>

            
	   	
        
        
            
                  <item>
                      <title>History of KSS Opener</title>
                      <link>http://talk.quintagroup.com./blogs/myroslav/kss-opener/history</link>
                      <description>In times of Plone1 there was linear (produced with list of html elements that had different class to represent embedding) Navigation Tree in Plone. We've done several attempts to rewrite it into nested html structures, then to improve tree generator, then to make it dynamic.</description>
                      <author>myroslav</author>
                      <pubDate>Mon, 12 Mar 2007 07:09:29 -0500</pubDate>
                      
     
        <category>Ajax</category>
     
     
        <category>KSS</category>
     
     
        <category>Myroslav Opyr</category>
     
     
        <category>Navigation</category>
     
     
        <category>Plone</category>
     
     
        <category>Quintagroup</category>
     
      <content:encoded>
        <![CDATA[
<p>In Plone1 the navigation tree, nested structure by its nature and semantics, was rendered into ugly list of &lt;a&gt; tags that had just "navlevelX" class that made it possible for designers to style by some extent.</p>
<p><br />Then we had proper &lt;ul&gt;&lt;li&gt; nested structure that was huge step forward.</p>
<p>Then we had icons eliminated, that is another big step (not perfect yet, complex hover/active styles still makes life of designer hard).</p>
<p>And now we have Plone-3.0 knocking our doors. The most prominent feature everybody will be talking about is Ajax in Plone. Some will be mentioning KSS that made thing happen for complex CMS.</p>
<p>We had some efforts to address each of the items above, but none of them has matured enough to find its way into Plone code-base. And now we are going to address Ajax aspect of navigation tree.<br /></p>
]]>
      </content:encoded>
     

                  </item>

            
	   	
        


    </channel>

</rss>

