<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>John Kleijn</title>
    <link>http://www.johnkleijn.nl/</link>
    <description>Cogito ergo sum, baby</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.2 - http://www.s9y.org/</generator>
    <pubDate>Mon, 21 Mar 2011 23:44:24 GMT</pubDate>

    <image>
        <url>http://www.johnkleijn.nl/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: John Kleijn - Cogito ergo sum, baby</title>
        <link>http://www.johnkleijn.nl/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Back from Calgary</title>
    <link>http://www.johnkleijn.nl/2011/Back-from-Calgary</link>
            <category>Personal</category>
    
    <comments>http://www.johnkleijn.nl/2011/Back-from-Calgary#comments</comments>
    <wfw:comment>http://www.johnkleijn.nl/wfwcomment.php?cid=43</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.johnkleijn.nl/rss.php?version=2.0&amp;type=comments&amp;cid=43</wfw:commentRss>
    

    <author>nospam@example.com (John Kleijn)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Last week I was in Calgary (Canada) for a few days to meet some of the people I have been doing business with remotely for a few years now. Despite my throat infection and horrible cough, I had a great time.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Many thanks to Mark Lall and his wife, Christopher Staley and David Nagy &lt;img src=&quot;http://www.johnkleijn.nl/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;img src=&quot;http://www.johnkleijn.nl/images/bannf.JPG&quot; alt=&quot;&quot; /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 22 Mar 2011 00:44:24 +0100</pubDate>
    <guid isPermaLink="false">http://www.johnkleijn.nl/2011/43</guid>
    
</item>
<item>
    <title>Topological sorting of JavaScript files</title>
    <link>http://www.johnkleijn.nl/2010/Topological-sorting-of-JavaScript-files</link>
            <category>PHP</category>
    
    <comments>http://www.johnkleijn.nl/2010/Topological-sorting-of-JavaScript-files#comments</comments>
    <wfw:comment>http://www.johnkleijn.nl/wfwcomment.php?cid=41</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.johnkleijn.nl/rss.php?version=2.0&amp;type=comments&amp;cid=41</wfw:commentRss>
    

    <author>nospam@example.com (John Kleijn)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Recently I&#039;m doing a lot of ExtJS work. In complex JS app developement you&#039;ll quickly have a LOT of files to link to your HTML document. You&#039;ll want to combine and compress these files for production and link them sperate and uncompressed for testing.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;The simplest solution is just listing the files in a configuration file. But managing this list is a PITA. We&#039;re developers, not clerks. So I decided this list should be auto-generated and properly sorted. Scanning the filesystem for javascript files is trivial, and I quickly decided the sort order should be determined by examining the contents, looking for class names. All files contain classes, with a JSDoc declaration of @class app.module.ClassName, so it&#039;s not hard to establish which file depends on which.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;The real issue is sorting. Before long I came to the conclusion that there&#039;s no out of the box solution for the type of sorting I needed, all sort functions use QuickSort, even the ones using UDFs. On WikiPedia, I found that what I needed &quot;resolving dependencies into an ordered list&quot; could be accomplished using a different algorithm called &quot;Topological sorting&quot;.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;WikiPedia describes one implementation in pseudo code:
&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;L ← Empty list that will contain the sorted elements&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;S ← Set of all nodes with no incoming edges&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;while S is non-empty do&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;    remove a node n from S&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;    insert n into L&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;    for each node m with an edge e from n to m do&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;        remove edge e from the graph&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;        if m has no other incoming edges then&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;            insert m into S&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;if graph has edges then&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;    output error message (graph has at least one cycle)&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;else &lt;/p&gt;&lt;p class=&quot;break&quot;&gt;    output message (proposed topologically sorted order: L)&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;I decided to create a PHP implementation of this algorithm. &lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.johnkleijn.nl/2010/Topological-sorting-of-JavaScript-files#extended&quot;&gt;Continue reading &quot;Topological sorting of JavaScript files&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 29 Dec 2010 09:46:34 +0100</pubDate>
    <guid isPermaLink="false">http://www.johnkleijn.nl/2010/41</guid>
    <category>dependencies</category>
<category>php</category>
<category>sorting</category>
<category>topological sort</category>

</item>
<item>
    <title>ExtJS RecordFormPanel</title>
    <link>http://www.johnkleijn.nl/2010/ExtJS-RecordFormPanel</link>
            <category>JavaScript</category>
    
    <comments>http://www.johnkleijn.nl/2010/ExtJS-RecordFormPanel#comments</comments>
    <wfw:comment>http://www.johnkleijn.nl/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://www.johnkleijn.nl/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (John Kleijn)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Say you have a an overview component, like a grid, and you need to edit that. The best approach would be to load the record into the form and invoke BasicForm&#039;s &quot;loadRecord&quot;. This means you&#039;ll be using the Store for persistence though, and BasicForm.submit() no longer does the trick. Especially when creating new records, directly inserting that into the store a grid uses is extra useful. It means the grid wont have to reload it&#039;s data from the server and immediately shows the inserted record.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;The solution is creating a form type that loads records and uses a store for persistence. This is relatively simple and seems like this functionality should be available in the Ext library. In any case, below is my implementation.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.johnkleijn.nl/2010/ExtJS-RecordFormPanel#extended&quot;&gt;Continue reading &quot;ExtJS RecordFormPanel&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 29 Dec 2010 12:39:50 +0100</pubDate>
    <guid isPermaLink="false">http://www.johnkleijn.nl/2010/42</guid>
    <category>extjs</category>
<category>javascript</category>

</item>
<item>
    <title>Where's all the good HipHop?</title>
    <link>http://www.johnkleijn.nl/2010/Wheres-all-the-good-HipHop</link>
            <category>Personal</category>
    
    <comments>http://www.johnkleijn.nl/2010/Wheres-all-the-good-HipHop#comments</comments>
    <wfw:comment>http://www.johnkleijn.nl/wfwcomment.php?cid=40</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.johnkleijn.nl/rss.php?version=2.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    

    <author>nospam@example.com (John Kleijn)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Working late, yet again, I often have a news/current events program running on one of my 3 monitors. Today I had to listen to some elitist guys praise the last Kanye West album as &quot;one of the best Hip Hop albums ever made&quot;.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Please. Kanye West is of Puff Daddy/Diddy whatever caliber: he sucks. I&#039;d even go as far as saying that kind of stuff is not even Hip Hop.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;A few months ago (better late than never) though I discovered a new combination that is stepping up to represent the real hardcore Hip Hop, Hip Hop as it&#039;s meant to be: La Coka Nostra. From the Soul Assassins network, you can expect little less than excellence. And La Coka delivers.

&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;object width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/53GrVNFArHQ?fs=1&amp;amp;hl=en_US&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/53GrVNFArHQ?fs=1&amp;amp;hl=en_US&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;640&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;La Coka, of course, isn&#039;t perfect. It&#039;s lyricists consist of Slaine, Ill Bill and Everlast. Slaine&#039;s an excellent lyricist, though he seems a bit off sometimes. Everlast at times seems out of time: the style that suited him well in the House of Pain seems out of place at times. But other times he shows the type of skill that validate his position as an all time classic. And then there&#039;s Ill Bill. Well, I have no comment on Ill Bill, that guy is just plain awesome. In the above clip you&#039;ll also see B-Real, Cypress Hill front man and Soul Assassins catalyst, it would be ridiculous to review his skills.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;em&gt;On a serious note:&lt;/em&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Someone on that program explicitly praised the accessibility of Kanye West&#039;s work. That&#039;s not the right reason to praise an album. I don&#039;t like classical music, if I praise someone for making classical more accessible all I&#039;m really saying is &quot;this didn&#039;t suck as much&quot;. Or is Beethoven praised for the accessibility of classical music that his familiar tunes provide? 
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Where&#039;s all the good Hip Hop?&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 26 Nov 2010 22:21:12 +0100</pubDate>
    <guid isPermaLink="false">http://www.johnkleijn.nl/2010/40</guid>
    
</item>

</channel>
</rss>
