<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://www.hovinne.com/blog/index.php/">
  <title>jf-hovinne.blog</title>
  <description><![CDATA[Debian,Dev,Web & Co]]></description>
  <link>http://www.hovinne.com/blog/index.php/</link>
  <dc:language>fr</dc:language>
  <dc:creator></dc:creator>
  <dc:rights></dc:rights>
  <dc:date>2009-02-01T20:45:09+01:00</dc:date>
  <admin:generatorAgent rdf:resource="http://www.dotclear.net/" />
  
  <sy:updatePeriod>daily</sy:updatePeriod>
  <sy:updateFrequency>1</sy:updateFrequency>
  <sy:updateBase>2009-02-01T20:45:09+01:00</sy:updateBase>
  
  <items>
  <rdf:Seq>
    <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2009/02/01/145-fosdem-2009" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2008/09/17/143-wymeditor-05-beta-1-released-google-chrome-compatible" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2008/05/09/142-wymeditor-05-alpha-1-released-safari-compatible" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2008/02/17/139-fosdem-2008" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2008/02/12/138-wymeditor-news" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2007/09/10/137-wymeditor-04-released" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2007/08/09/136-related-feeds-widget" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2007/08/09/135-jquery-wordstats-plugin" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2007/07/30/134-fixedbox-jquery-plugin" />
  <rdf:li rdf:resource="http://www.hovinne.com/blog/index.php/2007/07/16/133-jss-javascript-simple-syndication" />
  </rdf:Seq>
  </items>
</channel>

<item rdf:about="http://www.hovinne.com/blog/index.php/2009/02/01/145-fosdem-2009">
  <title>FOSDEM 2009</title>
  <link>http://www.hovinne.com/blog/index.php/2009/02/01/145-fosdem-2009</link>
  <dc:date>2009-02-01T20:45:09+01:00</dc:date>
  <dc:language>fr</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>Dev</dc:subject>
  <description>FOSDEM 2009: Linux, Mozilla, MySQL et plus encore</description>
  <content:encoded><![CDATA[<p>FOSDEM 2009: Linux, Mozilla, MySQL et plus encore</p> <p>9ème rassemblement des développeurs de logiciel libre et open source à Bruxelles le 7-8 février 2009.</p>


<p>Le 7 et 8 février, plus de cinq mille développeurs de logiciel libre et open source se rassemblent à l'Université Libre de Bruxelles, sur le campus Solbosch, pour la neuvième conférence FOSDEM annuelle.  Les conférenciers principaux de cette année sont Mark Surman (directeur exécutif de la Mozilla Foundation), BDale Garbee (secrétaire de projet Debian), et Leslie Hawthorn (Google Summer of Code).</p>


<p><a href="http://www.fosdem.org/2009/" hreflang="en">FOSDEM 2009</a></p>


<p><img src="http://www.fosdem.org/2009/promo/fosdem" alt="" /></p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2008/09/17/143-wymeditor-05-beta-1-released-google-chrome-compatible">
  <title>WYMeditor 0.5 beta 1 released, Google Chrome compatible</title>
  <link>http://www.hovinne.com/blog/index.php/2008/09/17/143-wymeditor-05-beta-1-released-google-chrome-compatible</link>
  <dc:date>2008-09-17T22:42:04+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>WYMeditor</dc:subject>
  <description>WYMeditor 0.5 beta 1 has been released!


This release brings new features and fixes bugs.


New features:

Better Safari and Opera support
Google Chrome support
New skins
New translations
Table summary support
Resizable plugin, using jQuery UI
Editing direction option (left-to-right, right-to-left)...</description>
  <content:encoded><![CDATA[ <p><a href="http://www.wymeditor.org/" hreflang="en">WYMeditor</a> 0.5 beta 1 has been released!</p>


<p>This release brings new features and fixes bugs.</p>


<p>New features:</p>
<ul>
<li>Better Safari and Opera support</li>
<li>Google Chrome support</li>
<li>New skins</li>
<li>New translations</li>
<li>Table summary support</li>
<li>Resizable plugin, using <a href="http://ui.jquery.com/" hreflang="en">jQuery UI</a></li>
<li>Editing direction option (left-to-right, right-to-left)</li>
<li>New <a href="http://files.wymeditor.org/wymeditor/trunk/src/examples/" hreflang="en">example pages</a></li>
<li>New insert() command</li>
</ul>

<p>Bugs, improvements:</p>
<ul>
<li>Bugs have been fixed in the XHTML parser, API, events handlers, ...</li>
<li>Remaining string and array helpers have been moved to WYMeditor.Helper</li>
<li>A new <a href="http://files.wymeditor.org/wymeditor/trunk/src/test/unit/" hreflang="en">test suite</a>, based on the jQuery Test Suite, has been added</li>
<li>The documentation has been improved</li>
</ul>

<p>As always, please refer to the <a href="http://trac.wymeditor.org/" hreflang="en">Trac website</a> for more information.</p>


<p>Due to SourceForge issues, we're moving the <a href="http://www.wymeditor.org/download/" hreflang="en">download page</a> to the main WYMeditor website. Please contact me in case of any problems downloading the file.</p>


<p>Many thanks to all our donors and contributors who made this release possible!</p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2008/05/09/142-wymeditor-05-alpha-1-released-safari-compatible">
  <title>WYMeditor 0.5 alpha 1 released, Safari compatible</title>
  <link>http://www.hovinne.com/blog/index.php/2008/05/09/142-wymeditor-05-alpha-1-released-safari-compatible</link>
  <dc:date>2008-05-09T21:07:59+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>WYMeditor</dc:subject>
  <description>WYMeditor 0.5 alpha 1 has been released!


This new version brings major new features:


Safari compatibility
New skin system, easier to customize
WYMeditor namespace, no more global variables
Automatic loading of language and skin files


As always, any help and feedback is welcome at the Trac, the...</description>
  <content:encoded><![CDATA[ <p><a href="http://www.wymeditor.org/" hreflang="en">WYMeditor</a> 0.5 alpha 1 has been released!</p>


<p>This new version brings major new features:</p>

<ul>
<li>Safari compatibility</li>
<li>New skin system, easier to customize</li>
<li>WYMeditor namespace, no more global variables</li>
<li>Automatic loading of language and skin files</li>
</ul>

<p>As always, any help and feedback is welcome at the <a href="http://trac.wymeditor.org/" hreflang="en">Trac</a>, the <a href="http://lists.wymeditor.org/" hreflang="en">mailing-list</a>, or by dropping me a line at jf.hovinne at wymeditor dotorg.</p>


<p>Thanks to contributors, especially to <a href="http://www.skybluecanvas.com/" hreflang="en">Scott Lewis</a> for his help on the Safari implementation.</p>


<p><a href="http://www.wymeditor.org/en/download/" hreflang="en">Download WYMeditor</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2008/02/17/139-fosdem-2008">
  <title>FOSDEM 2008</title>
  <link>http://www.hovinne.com/blog/index.php/2008/02/17/139-fosdem-2008</link>
  <dc:date>2008-02-17T21:35:11+01:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>Dev</dc:subject>
  <description>The eighth FOSDEM is a two-day event organized by volunteers to promote the widespread use of Free and Open Source software.

Taking place in the beautiful city of Brussels (Belgium), FOSDEM meetings are recognized as "The best Free Software and Open Source events in Europe".


I'm (of course) going...</description>
  <content:encoded><![CDATA[ <blockquote><p>The eighth <a href="http://fosdem.org/" hreflang="en">FOSDEM</a> is a two-day event organized by volunteers to promote the widespread use of Free and Open Source software.</p>
<p>
Taking place in the beautiful city of Brussels (Belgium), FOSDEM meetings are recognized as "The best Free Software and Open Source events in Europe".</p></blockquote>


<p>I'm (of course) going to FOSDEM (again) this year, on Sunday 24 February.</p>


<p>FYI, a <a href="http://fosdem.org/2008/linkedin-group" hreflang="en">LinkedIn group</a> has been created for those who will attend the event.</p>


<p>There's also a <a href="http://fidzu.com/fidzu/fosdem" hreflang="en">FOSDEM channel</a> on <a href="http://fidzu.com/" hreflang="en">fidzu</a> available for your enjoyment.</p>


<p>And last but not least, Emakina, the company I work for, is an official <a href="http://fosdem.org/2008/sponsors/#emakina" hreflang="en">FOSDEM sponsor</a>, and is <a href="http://www.emakina.com/company/career.cfm" hreflang="en">hiring</a>...</p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2008/02/12/138-wymeditor-news">
  <title>WYMeditor news</title>
  <link>http://www.hovinne.com/blog/index.php/2008/02/12/138-wymeditor-news</link>
  <dc:date>2008-02-12T22:08:51+01:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>WYMeditor</dc:subject>
  <description>I've been very busy these last months, and unfortunately I had no time to blog, nor work on WYMeditor.
Things are finally getting back to normal, though I must admit I currently don't have so much time for the project...


Anyway, we have started to refactor WYMeditor's code, cleaning up the global...</description>
  <content:encoded><![CDATA[ <p>I've been very busy these last months, and unfortunately I had no time to blog, nor work on WYMeditor.<br />
Things are finally getting back to normal, though I must admit I currently don't have so much time for the project...</p>


<p>Anyway, we have started to refactor WYMeditor's code, cleaning up the global object, moving classes to the WYMeditor namespace, and so on. No new feature, but I think the code is getting better and easier to maintain.<br />
Next step: use <a href="http://www.naturaldocs.org/" hreflang="en">NaturalDocs</a> for the code documentation.</p>


<p>As a preview for the next features - true WYSIWYM editing, better event handling - a <a href="http://vmx.cx/wymeditor/proto/" hreflang="en">prototype</a> written by Volker Mische (one year ago !) is available.<br />
Volker has already implemented the Selection API for Gecko browsers.<br />
This SAPI, and a better event handling, are required for a true WYSIWYM behaviour.</p>


<p>As always, any help is welcome. Please feel free to send a patch for current <a href="http://trac.wymeditor.org/trac/report/1" hreflang="en">open issues</a>, or drop me a mail (jf.hovinne at wymeditor dot org) if you have any suggestion - thanks!</p>


<p>And PS: sorry for the late news!</p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2007/09/10/137-wymeditor-04-released">
  <title>WYMeditor 0.4 released</title>
  <link>http://www.hovinne.com/blog/index.php/2007/09/10/137-wymeditor-04-released</link>
  <dc:date>2007-09-10T20:48:37+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>WYMeditor</dc:subject>
  <description>WYMeditor 0.4 stable has been released!


This release includes Bermi Ferrer's powerful XHTML and CSS parsers, and fixes some outstanding bugs.


For your convenience, jQuery 1.1.4 has been included in the package, as well as getting started examples, which should work out of the box.


Thanks to...</description>
  <content:encoded><![CDATA[ <p><a href="http://www.wymeditor.org/" hreflang="en">WYMeditor</a> 0.4 stable has been released!</p>


<p>This release includes <a href="http://www.bermi.org/" hreflang="en">Bermi Ferrer</a>'s powerful XHTML and CSS parsers, and fixes some outstanding bugs.</p>


<p>For your convenience, <a href="http://jquery.com/" hreflang="en">jQuery</a> 1.1.4 has been included in the package, as well as getting started examples, which should work out of the box.</p>


<p>Thanks to all the contributors who made this release possible.</p>


<p>Enjoy!</p>


<p><a href="http://sourceforge.net/project/showfiles.php?group_id=148869" hreflang="en">Download WYMeditor 0.4</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2007/08/09/136-related-feeds-widget">
  <title>Related feeds widget</title>
  <link>http://www.hovinne.com/blog/index.php/2007/08/09/136-related-feeds-widget</link>
  <dc:date>2007-08-09T22:54:39+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>Dev</dc:subject>
  <description>This a widget example, using the jQuery jFeed and wordStats plugins, to display a list of articles related to the current document.


wordStats computes the top keywords
jFeed asks Google Blogsearch for related articles (matching the top keywords), using a server side proxy
jQuery displays the...</description>
  <content:encoded><![CDATA[ <p>This a widget example, using the jQuery <a href="/blog/index.php/2007/07/15/132-jfeed-jquery-rss-atom-feed-parser-plugin" hreflang="en">jFeed</a> and <a href="/blog/index.php/2007/08/09/135-jquery-wordstats-plugin" hreflang="en">wordStats</a> plugins, to display a list of articles related to the current document.</p>

<ul>
<li>wordStats computes the top keywords</li>
<li>jFeed asks Google Blogsearch for related articles (matching the top keywords), using a server side proxy</li>
<li>jQuery displays the results</li>
</ul>
<ul>
<li><a href="/dev/jquery/relatedfeeds/example.html" hreflang="en">Basic related feeds example</a></li>
<li>The <a href="/dev/jquery/relatedfeeds/proxy.phps" hreflang="en">PHP proxy</a></li>
</ul>

<p>JavaScript code:</p>


<pre>&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.wordstats.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.wordstats.en.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.jfeed.pack.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;</pre>


<pre>$(function() {
   
   var count = 3;
   $.wordStats.computeTopWords(count); //compute the 3 first top words
   
   //create the query
   var query = '';
   for(var i = 0; i &lt; count &amp;&amp; i &lt; $.wordStats.topWords.length; i++) {
       query += $.wordStats.topWords[i].substring(1) + ' ';
   }
   query = query.substring(0, query.length - 1);
   $('#related').html('Querying blogs for: "' + query + '" ...');
   
   //load and parse the feed
   jQuery.getFeed({
       url: 'proxy.php?query=' + query,
       success: function(feed) {
           var html = "&lt;h2&gt;Related articles&lt;/h2&gt;&lt;ul&gt;";
           for(var i = 0; i &lt; feed.items.length; i++) {
           
               html += '&lt;li&gt;&lt;h3 class="feeditemtitle"&gt;'
                       + '&lt;a href="' + feed.items[i].link + '"&gt;'
                       + feed.items[i].title + '&lt;/a&gt;&lt;/h3&gt;'
                       + '&lt;p class="feeditemdescription"&gt;'
                       + feed.items[i].description + '&lt;/p&gt;';
               }
           
           html += '&lt;/ul&gt;';
           $('#related').html(html);
       }
   });
});</pre>


<pre>&lt;/script&gt;</pre>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2007/08/09/135-jquery-wordstats-plugin">
  <title>jQuery wordStats plugin</title>
  <link>http://www.hovinne.com/blog/index.php/2007/08/09/135-jquery-wordstats-plugin</link>
  <dc:date>2007-08-09T22:18:01+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>Dev</dc:subject>
  <description>The jQuery wordStats plugin tries to determine what a page is about by computing the density of its keywords. 
It uses a simple algorithm which adds a variable weight for each keyword occurence, depending on its 'position' in the document.
Although this computation model is quite simple, I get good...</description>
  <content:encoded><![CDATA[ <p>The jQuery wordStats plugin tries to determine what a page is about by computing the density of its keywords. <br />
It uses a simple algorithm which adds a variable weight for each keyword occurence, depending on its 'position' in the document.<br />
Although this computation model is quite simple, I get good results with all sorts of documents.<br />
There's of course a system to exclude 'stop words' (frequent pronouns, prepositions, adverbs and so on).</p>


<p>Example: <a href="/dev/jquery/wordstats/mars.html" hreflang="en">computing top keywords of a Wikipedia article</a>.</p>


<p>Usage:</p>

<pre>&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.wordstats.js"&gt;&lt;/script&gt; &lt;!-- core code --&gt;
&lt;script type="text/javascript" src="jquery.wordstats.en.js"&gt;&lt;/script&gt; &lt;!-- English stop words --&gt;
&lt;script type="text/javascript"&gt;</pre>


<pre>       $(function() {</pre>


<pre>           var count = 3;            
           $.wordStats.computeTopWords(count);</pre>


<pre>           //$.wordStats.topWords[0] returns the most frequent keyword
           //$.wordStats.topWords[1] the second, and so on</pre>


<pre>           $.wordStats.clear(); //release memory</pre>


<pre>           //compute top keywords of the element with id="content"
           $.wordStats.computeTopWords(count, $('#content'));</pre>


<pre>       });</pre>


<pre>&lt;/script&gt;</pre>


<p>Download:</p>
<ul>
<li><a href="/dev/jquery/wordstats/jquery.wordstats.js" hreflang="en">wordStats plugin</a></li>
<li><a href="/dev/jquery/wordstats/jquery.wordstats.en.js" hreflang="en">English stopwords</a></li>
<li><a href="/dev/jquery/wordstats/jquery.wordstats.fr.js" hreflang="fr">French stopwords</a></li>
</ul>

<p>Dual licensed under MIT/GPL.</p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2007/07/30/134-fixedbox-jquery-plugin">
  <title>fixedBox jQuery plugin</title>
  <link>http://www.hovinne.com/blog/index.php/2007/07/30/134-fixedbox-jquery-plugin</link>
  <dc:date>2007-07-30T22:04:43+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>Dev</dc:subject>
  <description>fixedBox is a lightweight jQuery plugin that allows you to display a fixed box in the web page.
The box is centered by default, but you can also define the left and/or top positions.


Look at a fixedBox example.


Usage:


centered:
$('div.message').fixedBox();


left = 200px, top = 100px:...</description>
  <content:encoded><![CDATA[ <p>fixedBox is a lightweight jQuery plugin that allows you to display a fixed box in the web page.<br />
The box is centered by default, but you can also define the left and/or top positions.</p>


<p>Look at a <a href="/dev/jquery/fixedbox/example.html" hreflang="en">fixedBox example</a>.</p>


<p>Usage:</p>


<p>centered:<br />
<code>$('div.message').fixedBox();</code></p>


<p>left = 200px, top = 100px:<br />
<code>$('div.message').fixedBox({x: 200, y: 100});</code></p>


<p>Note: you'll need to set the width and height of the matched nodes (e.g. in your CSS, see the styles in the provided example), in order to correctly center them.</p>


<p>Tested with jQuery 1.1.3.1, Firefox 1.5+, Opera 9.0+, MSIE 6.0+. Should also work with Safari 2.0+.</p>


<p>Download <a href="/dev/jquery/fixedbox/jquery.fixedBox.js" hreflang="en">fixedBox</a>.<br />
Download <a href="/dev/jquery/fixedbox/jquery.fixedBox.pack.js" hreflang="en">fixedBox packed</a>.<br /></p>


<p>License: MIT/GPL.</p>]]></content:encoded>
</item>
<item rdf:about="http://www.hovinne.com/blog/index.php/2007/07/16/133-jss-javascript-simple-syndication">
  <title>JSS: JavaScript Simple Syndication - yet another implementation</title>
  <link>http://www.hovinne.com/blog/index.php/2007/07/16/133-jss-javascript-simple-syndication</link>
  <dc:date>2007-07-16T22:06:29+02:00</dc:date>
  <dc:language>en</dc:language>
  <dc:creator>Jean-François</dc:creator>
  <dc:subject>Dev</dc:subject>
  <description>jFeed, the jQuery RSS/ATOM feed parser plugin I wrote lately has a drawback: you must use a server-side proxy to load cross-domain feeds.


It's a little bit annoying, so I looked for a more elegant solution.
There exist some web services and libraries that convert RSS/ATOM feeds to JavaScript code,...</description>
  <content:encoded><![CDATA[ <p><a href="/blog/index.php/2007/07/15/132-jfeed-jquery-rss-atom-feed-parser-plugin" hreflang="en">jFeed</a>, the jQuery RSS/ATOM feed parser plugin I wrote lately has a drawback: you must use a server-side proxy to load cross-domain feeds.</p>


<p>It's a little bit annoying, so I looked for a more elegant solution.<br />
There exist some web services and libraries that convert RSS/ATOM feeds to JavaScript code, so you can embed external content in your HTML document, but I'd prefer something more generic.</p>


<p>Another JSS proposal is to convert XML data (e.g. RSS) to JSON at the server-side, and to dynamically load it as a JS script at the client side.</p>


<p>There's a XSLT to do the conversion from XML to JSON, <a href="http://www.bramstein.nl/xsltjson/" hreflang="en">XSLTJSON</a>, but unfortunately it uses XSLT 2.0, which isn't very wide-spread at the moment.</p>


<p>So I searched for another solution and got the best results with the <a href="http://badgerfish.ning.com/" hreflang="en">BadgerFish convention</a>, implemented (among others) in PHP.</p>


<p>I wrote a simple PHP class to use it:</p>


<pre>&lt;?php
require_once('BadgerFish.php');</pre>


<pre>class JSS {
   public static function encode($url, $callback) {
       $doc = new DOMDocument;
       $doc-&gt;load($url);
       $out = BadgerFish::encode($doc);
       return($callback . '(' . $out . ');');
   }
}
?&gt;</pre>


<p>JSS::encode loads the local or external XML document, applies the BadgerFish transformation, and returns the JSON data as the callback function argument, in the form:</p>

<pre>callback({...JSON data...});</pre>


<p>Note: the external JS script will be loaded asynchronously, thus we need a callback function.</p>


<p>This is the actual PHP file which will output the data:</p>


<pre>&lt;?php
require_once('jss/JSS.php');</pre>


<pre>$callback = $_REQUEST['callback'];
$url = 'rss.xml';</pre>


<pre>header("Content-Type: application/x-javascript");
echo(JSS::encode($url, $callback));
?&gt;</pre>


<p>And now the client-side JavaScript part:</p>


<pre>var JSS = {</pre>


<pre>   counter: -1,
   getFeed: function(url, callback) {
   
       this.counter ++;
       JSS[this.counter] = callback;
       var body = document.getElementsByTagName('body')[0];
       var script = document.createElement('script');
       script.type = 'text/javascript';
       script.src = url + '?callback=JSS[' + this.counter + ']';
       body.appendChild(script);
   }
};</pre>


<p>We append the external script in the document's BODY, passing the callback function name in the query, in the form:</p>

<pre>&lt;script type="text/javascript" src="...url...?callback=JSS[counter]"&gt;&lt;/script&gt;</pre>


<p>And finally, the HTML document which will import the JSON data and execute the callback:</p>


<pre>&lt;!DOCTYPE ...
&lt;html&gt;
&lt;head&gt;
...
&lt;script type="text/javascript"&gt;
function initJss() {
   JSS.getFeed('http://www.hovinne.net/feed/jss.php', function(data) {
       console.log(data); //use Firebug console
   });
};
&lt;/script&gt;
&lt;/head&gt;
&lt;body onload="initJss();"&gt;
...
&lt;/body&gt;
&lt;/html&gt;</pre>


<p>A <a href="/dev/jss/example.html" hreflang="en">JSS implementation example</a> is available, as well as the <a href="/dev/jss/jss.tar.gz" hreflang="en">JSS source code</a>, licensed under MIT license.</p>


<p>Next step: parse the JSON feeds with jFeed!</p>]]></content:encoded>
</item>

</rdf:RDF>
