<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://prendreuncafe.com/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Prendre un Café - javascript</title>
  <link>http://prendreuncafe.com/blog/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Fri, 09 May 2008 13:03:02 +0200</pubDate>
  <copyright>Contenus sous licence Creative Commons BY-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Toujours en vrac</title>
    <link>http://prendreuncafe.com/blog/post/2007/12/21/Toujours-en-vrac</link>
    <guid isPermaLink="false">urn:md5:7d41d4df0fcafa8d0bfbe209a44df4e0</guid>
    <pubDate>Thu, 13 Dec 2007 10:41:00 +0100</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Divers</category>
        <category>acid2</category><category>amazon</category><category>browsers</category><category>firefox</category><category>gmail</category><category>gtd</category><category>javascript</category><category>standards</category><category>wiimote</category>    
    <description>    &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.satine.org/archives/2007/12/13/amazon-simpledb/&quot; hreflang=&quot;en&quot;&gt;SimpleDB&lt;/a&gt;, un webservice de stockage et d'accès aux données proposé par Amazon &lt;a href=&quot;http://www.amazon.com/gp/browse.html?node=342335011&quot; hreflang=&quot;en&quot;&gt;en version beta&lt;/a&gt;. Intéressant !&lt;/li&gt;
&lt;li&gt;Créez vos applications javascript en ligne chez &lt;a href=&quot;http://appjet.com/&quot; hreflang=&quot;en&quot;&gt;AppJet&lt;/a&gt;. Impressionnant... mais complètement inutile ?&lt;/li&gt;
&lt;li&gt;Un &lt;a href=&quot;http://www.gearlog.com/2007/12/incredible_wiimote_hack_create.php&quot; hreflang=&quot;en&quot;&gt;hack génialissime à base de wiimote&lt;/a&gt;. Là pour le coup, c'est une petite révolution... Sans doute l'un des meilleurs hack de matos de tous les temps !&lt;/li&gt;
&lt;li&gt;Votre ordinateur est-il &lt;a href=&quot;http://getfirefox.jp/video/gallery/j9wm/&quot; hreflang=&quot;en&quot;&gt;satisfait de son browser&lt;/a&gt; ?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx&quot; hreflang=&quot;en&quot;&gt;IE8 passerait le test Acid2&lt;/a&gt;. Excellente nouvelle &lt;a href=&quot;http://blog.alsacreations.com/2007/12/20/407-support-de-css-de-gros-progres-pour-internet-explorer-8&quot; hreflang=&quot;fr&quot;&gt;pour les standards&lt;/a&gt; !&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mozilla.com/en-US/firefox/all-beta.html#fr&quot; hreflang=&quot;en&quot;&gt;Firefox 3 beta 2&lt;/a&gt; est dispo. Nanti du &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/6050&quot; hreflang=&quot;en&quot;&gt;thème Proto pour OS X&lt;/a&gt;, c'est déjà une petite tuerie &lt;img src=&quot;/blog/themes/PuC4/smilies/smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Amis du &lt;acronym title=&quot;Getting Things Done&quot;&gt;GTD&lt;/acronym&gt;, la nouvelle &lt;a href=&quot;http://www.rememberthemilk.com/services/gmail/&quot; hreflang=&quot;en&quot;&gt;extension Firefox pour GMail de Remember The Milk&lt;/a&gt; est très chouette.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Yet Another En Vrac</title>
    <link>http://prendreuncafe.com/blog/post/2007/12/06/Yet-Another-En-Vrac</link>
    <guid isPermaLink="false">urn:md5:95d9b3b4916f464e17b53e713e1b645e</guid>
    <pubDate>Thu, 06 Dec 2007 09:00:00 +0100</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Divers</category>
        <category>html5</category><category>javascript</category><category>php</category><category>symfony</category>    
    <description>    &lt;p&gt;Tiens, ça faisait longtemps...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un &lt;a href=&quot;http://www.alistapart.com/articles/previewofhtml5&quot; hreflang=&quot;en&quot;&gt;petit tour d'horizon des possibilités de HTML 5&lt;/a&gt;. Évolution très prometteuse du vieux et abscons HTML 4, la date de sortie supposée (dans 10 ou 15 ans dixit l'auteur) refroidit cependant, et c'est dommage...&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://feeds.feedburner.com/~r/ajaxian/~3/194928739/upcoming-changes-to-the-javascript-language&quot; hreflang=&quot;en&quot;&gt;Javascript 2 pointe le bout de son nez&lt;/a&gt;, basé sur la version 4 de la &lt;a href=&quot;http://www.ecmascript.org/&quot; hreflang=&quot;en&quot;&gt;spécification ECMAScript&lt;/a&gt;. Au programme, entre autres réjouissances, classes, interfaces, namespaces et packages : MIAM (et surtout, ENFIN.)&lt;/li&gt;
&lt;li&gt;Quelques unes des nouvelles fonctionnalités retenues pour implémentation dans la &lt;a href=&quot;http://devzone.zend.com/article/2739-Zend-Weekly-Summaries-Issue-359#Heading1&quot; hreflang=&quot;en&quot;&gt;version 5.3 de PHP&lt;/a&gt; : &lt;a href=&quot;http://prendreuncafe.com/blog/post/2007/07/13/Namespaces-en-PHP6-cest-parti&quot; hreflang=&quot;fr&quot;&gt;namespace&lt;/a&gt; support (megayeah), &lt;a href=&quot;http://openid.net/&quot; hreflang=&quot;en&quot;&gt;OpenID&lt;/a&gt; support in ext/openssl (megayeah), &lt;a href=&quot;http://www.colder.ch/news/08-24-2007/28/late-static-bindings-expl.html&quot; hreflang=&quot;en&quot;&gt;late static binding&lt;/a&gt; (yeah), &lt;a href=&quot;http://sqlite.org/&quot; hreflang=&quot;en&quot;&gt;SQLite&lt;/a&gt; 3 support in ext/sqlite (cool), &lt;a href=&quot;http://blog.wampserver.com/index.php/2007/12/04/mysqlnd-un-driver-mysql-optimise-pour-php/&quot; hreflang=&quot;fr&quot;&gt;mysqlnd library&lt;/a&gt; in the core (cool)... Mais que restera t-il à &lt;a href=&quot;http://www.cyruss.com/blog/index.php?2007/05/05/170-les-nouveautes-de-php6-php-6&quot; hreflang=&quot;en&quot;&gt;PHP 6&lt;/a&gt; ? &lt;img src=&quot;/blog/themes/PuC4/smilies/wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://couchdb.org/&quot; hreflang=&quot;en&quot;&gt;CouchDB&lt;/a&gt;, un serveur de base de document accessible via une API REST JSON très prometteuse avec un &lt;a href=&quot;http://jan.prima.de/~jan/plok/archives/108-Programming-CouchDB-with-Javascript.html&quot; hreflang=&quot;en&quot;&gt;exemple de mise en oeuvre&lt;/a&gt; simple et efficace.&lt;/li&gt;
&lt;li&gt;Côté &lt;a href=&quot;http://www.symfony-project.com/&quot; hreflang=&quot;en&quot;&gt;Symfony&lt;/a&gt; :
&lt;ul&gt;
&lt;li&gt;Une chouette exploration des fonctionnalités de &lt;a href=&quot;http://notjosh.com/blog/archives/47-Symfony-1.1-Forms-and-Validation.html&quot; hreflang=&quot;en&quot;&gt;gestion de formulaires et de leur validation&lt;/a&gt; dans la prochaine version 1.1 du framework.&lt;/li&gt;
&lt;li&gt;Un &lt;a href=&quot;http://redotheweb.com/2007/11/28/motilee-symfony-powered-forum-engine-released-open-source/&quot; hreflang=&quot;en&quot;&gt;chouette projet de forum&lt;/a&gt; basé sur le framework et quelques plugins a vu le jour : &lt;a href=&quot;http://www.motilee.com/&quot; hreflang=&quot;en&quot;&gt;Motilee&lt;/a&gt;. Contributions bienvenues.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.aide-de-camp.org/&quot; hreflang=&quot;fr&quot;&gt;Fabien Potencier&lt;/a&gt;, créateur et mainteneur de Symfony a ouvert &lt;a href=&quot;http://www.aide-de-camp.org/&quot; hreflang=&quot;fr&quot;&gt;son blog&lt;/a&gt;, et on y trouve déjà quelques &lt;a href=&quot;http://www.aide-de-camp.org/tips/fr&quot; hreflang=&quot;fr&quot;&gt;petites astuces intéressantes&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Dégradabilité javascript et Ajax dans Symfony avec jQuery</title>
    <link>http://prendreuncafe.com/blog/post/2007/10/03/Degradabilite-javascript-et-Ajax-dans-Symfony-avec-jQuery</link>
    <guid isPermaLink="false">urn:md5:d638f5d4b7128e1b962935f0341a6e58</guid>
    <pubDate>Wed, 03 Oct 2007 11:31:00 +0200</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Dev</category>
        <category>ajax</category><category>bestpractices</category><category>javascript</category><category>jquery</category><category>php</category><category>symfony</category>    
    <description>    &lt;p&gt;Pour un projet, je suis en train d'utiliser la librairie javascript &lt;a href=&quot;http://jquery.com/&quot; hreflang=&quot;en&quot;&gt;jQuery&lt;/a&gt; dans &lt;a href=&quot;http://www.symfony-project.com/&quot; hreflang=&quot;en&quot;&gt;Symfony&lt;/a&gt;, en lieu et place du couple &lt;a href=&quot;http://www.prototypejs.org/&quot; hreflang=&quot;en&quot;&gt;prototype&lt;/a&gt; et &lt;a href=&quot;http://script.aculo.us/&quot; hreflang=&quot;en&quot;&gt;scripaculous&lt;/a&gt; dont je vous avait &lt;a href=&quot;http://prendreuncafe.com/blog/post/2006/03/19/410-effets-javascript-avec-prototype-et-scriptaculous&quot; hreflang=&quot;fr&quot;&gt;déjà parlé&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;L'idée est ici de ne pas avoir à utiliser les &lt;a href=&quot;http://www.symfony-project.com/book/1_0/11-Ajax-Integration&quot; hreflang=&quot;en&quot;&gt;helpers&lt;/a&gt; fournis par Symfony (qui mettent en oeuvre exclusivement Scriptaculous) et ainsi d'éviter d'utiliser les deux librairies simultanément sur le projet, mais aussi de décoreller le code javascript des templates et de favoriser une meilleure dégradabilité de ce dernier.&lt;/p&gt;


&lt;p&gt;Par exemple, au lieu d'utiliser la fonction &lt;code&gt;link_to_remote()&lt;/code&gt; dans notre template, on peut tout à fait imaginer d'employer un bon vieux &lt;code&gt;link_to()&lt;/code&gt; des familles et de lui appliquer une classe css qu'on va pouvoir cibler depuis jQuery afin d'effectuer un appel AJAX pointant vers l'url présente dans l'attribut &lt;code&gt;href&lt;/code&gt; du lien. Avec un exemple, c'est un peu plus clair :&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; link_to&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'Mon lien'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'@maroute?monparam=mavaleur'&lt;/span&gt;, &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'class'&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'ajax_link'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;Dans un fichier javascript (jQuery doit bien entendu être chargé) :&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;$&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;document&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;ready&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
  $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'a.ajax_link'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;click&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
      $.&lt;span style=&quot;color: #006600;&quot;&gt;ajax&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
          type: &lt;span style=&quot;color: #3366CC;&quot;&gt;'post'&lt;/span&gt;,
          url: $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;attr&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'href'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;,
          success: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;msg&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
          &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #000066;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&amp;quot;Résultat: &amp;quot;&lt;/span&gt; + msg&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
          &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
      &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Avantage supplémentaire, vous continuez à bénéficier du système de routing Symfony (pas d'urls en dur dans les fichiers javascripts externalisés.)&lt;/p&gt;


&lt;p&gt;Là où Symfony va également nous aider, c'est au travers de sa gestion native de la décoration d'une vue en fonction du type d'appel HTTP : le framework va detecter si l'action a été appelée ou non depuis une requête XmlHttpRequest et, si c'est le cas, décorer la vue avec le layout global de l'application et donc présenter à vos utilisateur le résultat escompté, qu'ils aient activé javascript ou non pour surfer sur votre site.&lt;/p&gt;


&lt;p&gt;Si vous désirez mettre à jour un élément de l'arbre DOM avec le contenu reçu d'une requête Ajax, voici une autre petite astuce ; on va utiliser une ancre dans l'url et s'en servir comme argument décrivant l'id DOM qu'on veut mettre à jour :&lt;/p&gt;

&lt;pre class=&quot;php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; link_to&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'Mon lien'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'@maroute?monparam=mavaleur#mon_div'&lt;/span&gt;, &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'class'&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'ajax_link'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;lt;div id=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;mon_div&amp;quot;&lt;/span&gt; style=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;display:none&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;


&lt;p&gt;Et en javascript :&lt;/p&gt;

&lt;pre class=&quot;javascript&quot;&gt;$&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;document&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;ready&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
  $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'a.ajax_link'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;click&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; href = $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;attr&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'href'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
      &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; target = href.&lt;span style=&quot;color: #006600;&quot;&gt;substring&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;href.&lt;span style=&quot;color: #006600;&quot;&gt;lastIndexOf&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, href.&lt;span style=&quot;color: #006600;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
      $.&lt;span style=&quot;color: #006600;&quot;&gt;ajax&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
          type: &lt;span style=&quot;color: #3366CC;&quot;&gt;'post'&lt;/span&gt;,
          url: href,
          success: &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;msg&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
          &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;$&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;target&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;
              $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;target&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;msg&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;show&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;'slow'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
          &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
      &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;false&lt;/span&gt;;
    &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;


&lt;p&gt;Note : on aurait pu aussi détourner l'attribut &lt;code&gt;target&lt;/code&gt; à cette fin mais ce dernier n'est pas valide en XHTML strict.&lt;/p&gt;


&lt;p&gt;Bien entendu, ceci n'est qu'un microscopique aperçu de l'étendu des possibilités de jQuery et de son intégration possible avec Symfony (ou d'autre frameworks et langages, bien entendu.)&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Google Gears : vous pouvez vous deconnecter</title>
    <link>http://prendreuncafe.com/blog/post/2007/05/31/Google-Gears-vous-pouvez-vous-deconnecter</link>
    <guid isPermaLink="false">urn:md5:ac5a53359110f2725f7454d3c1ab4973</guid>
    <pubDate>Thu, 31 May 2007 17:38:00 +0200</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Divers</category>
        <category>bestpractices</category><category>dojo</category><category>framework</category><category>gears</category><category>google</category><category>javascript</category><category>offline</category>    
    <description>    &lt;p&gt;&lt;strong&gt;Note : ce billet est une reprise de l'article que j'ai publié sur le &lt;a href=&quot;http://www.clever-age.com/veille/blog/&quot; hreflang=&quot;fr&quot;&gt;blog de Clever-Age&lt;/a&gt;, &lt;a href=&quot;http://www.clever-age.com/veille/blog/google-gears-vous-pouvez-vous-deconnecter.html&quot;&gt;Google Gears : vous pouvez vous déconnecter&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit :&lt;/strong&gt; Article &lt;a href=&quot;http://www.zdnet.fr/blogs/2007/06/01/google-gears-vous-pouvez-vous-deconnecter/&quot; hreflang=&quot;fr&quot;&gt;publié sur ZDNet&lt;/a&gt;, la gloire ^^&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.google.com/&quot;&gt;Google&lt;/a&gt; a annoncé aujourd’hui à l’occasion du Google Developer Day le lancement de sa &lt;a href=&quot;http://googlereader.blogspot.com/2007/05/oh-sam-i-am-can-i-read-it-on-tram.html&quot;&gt;réponse technique concrète&lt;/a&gt; aux problèmes de la consultation et de la synchronisation de données web en mode déconnecté : &lt;a href=&quot;http://gears.google.com/&quot;&gt;Google Gears&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cette réponse prend la forme d’une extension pour navigateur web (&lt;a href=&quot;http://getfirefox.com/&quot;&gt;Firefox&lt;/a&gt; sur Windows, Mac et Linux, Internet Exporer sur Windows &lt;sup&gt;[&lt;a id=&quot;nh1&quot; href=&quot;http://prendreuncafe.com/blog/post/2007/05/31/#nb1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;) comprenant un &lt;strong&gt;serveur local&lt;/strong&gt;, une &lt;strong&gt;base de données&lt;/strong&gt; et &lt;strong&gt;un gestionnaire de transactions&lt;/strong&gt; permettant de transformer le navigateur en solution client-serveur local afin de régler l’épineux problème du travail en mode déconnecté avec les applications web modernes.&lt;/p&gt;

&lt;p&gt;En effet, si les applications en ligne se sont considérablement enrichies et sophistiquées ces dernières années, au point de devenir de plus en plus indispensables à certains d’entre nous, elles subissent cependant pour la plupart d’entre elles d’une limitation importante : la &lt;strong&gt;nécessité d’être en permanence connecté à internet&lt;/strong&gt; pour fonctionner. Nombreux sont les cas d’impossibilité de se connecter au réseau des réseaux : zone de couverture, problèmes matériels, d’infrastructure, etc.&lt;/p&gt;

&lt;p&gt;Bien sûr, certains se sont déjà - et parfois depuis longtemps - penchés sur la question. C’est le cas de &lt;a href=&quot;http://www.mozilla.com/&quot;&gt;Mozilla&lt;/a&gt; avec l’ajout dans la version 2 de &lt;a href=&quot;http://www.mozilla-europe.org/fr/products/firefox/&quot;&gt;Firefox&lt;/a&gt; d’une base de données &lt;a href=&quot;http://sqlite.org/&quot;&gt;SQLite&lt;/a&gt; ou du &lt;a href=&quot;http://www.zimbra.com/blog/archives/2006/11/taking_zimbra_offline.html&quot;&gt;projet Zimbra&lt;/a&gt; permettant la sauvegarde de ressources locales. Mais l’une des solutions les plus avancées semblait se situer du côté du &lt;a href=&quot;http://www.sitepen.com/blog/2007/01/02/the-dojo-offline-toolkit/&quot;&gt;Dojo Offline Toolkit&lt;/a&gt;, un projet open source proposant des fonctionnalités de &lt;strong&gt;stockage d’interfaces, de données et d’applications en local&lt;/strong&gt; et des fonctionnalités de &lt;strong&gt;synchronisation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Google Gears se base sur cette dernière solution, embarquant le Dojo Offline Toolkit et une base de données SQLite au sein même de son extension. &lt;strong&gt;L’extension est open source&lt;/strong&gt; (sous licence new BSD) et peut à ce titre être &lt;a href=&quot;http://code.google.com/support/bin/answer.py?answer=69203&amp;amp;topic=11629&quot;&gt;redistribuée&lt;/a&gt; dans une application embarquant le runtime ou utiliser une installation existante de l’extension. La disponibilité du code est également une bonne garantie quand à la transparence, au taux d’adoption, à la sécurité et l’évolutivité du produit &lt;sup&gt;[&lt;a id=&quot;nh2&quot; href=&quot;http://prendreuncafe.com/blog/post/2007/05/31/#nb2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;Une des premières mises en oeuvre intéressantes de Gears se situe depuis ce matin dans &lt;a href=&quot;http://www.google.com/reader/&quot;&gt;Google Reader&lt;/a&gt;, l’agrégateur en ligne de Google : les utilisateurs ont pu remarquer la présence d’un nouveau bouton permettant de récupérer en local les 2000 derniers éléments non-lus afin de pouvoir les consulter hors-ligne.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.clever-age.com/local/cache-vignettes/L245xH94/png_Image_2.png&quot; alt=&quot;Synchronisation de données en local dans Google Reader&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Évidemment, ceci n’est qu’un début et Google ajoutera progressivement ce type de fonctionnalités à ses applications en ligne phares comme &lt;a href=&quot;http://www.gmail.com/&quot;&gt;GMail&lt;/a&gt;, &lt;a href=&quot;http://calendar.google.com/&quot;&gt;Calendar&lt;/a&gt;, &lt;a href=&quot;http://docs.google.com/&quot;&gt;Docs&lt;/a&gt;, etc...&lt;/p&gt;

&lt;p&gt;Google Gears ne sera cependant pas limité au monde de Google, mais sera utilisable par tout éditeur de site Web concerné par ce type de problématiques. Imaginons par exemple l’application d’un constructeur automobile permettant de configurer son véhicule : l’utilisateur télécharge alors de façon transparente le catalogue des éléments disponibles et peut ensuite prendre tranquillement l’avion, utiliser l’application pendant le vol en configurant sa future voiture. Une fois rendu à destination, il synchronise sa simulation une fois reconnecté à internet et envoie les données au serveur web du constructeur.&lt;/p&gt;

&lt;p&gt;Plus directement utile ? Le téléchargement en local des données cartographiques et des points d’intérêt de votre futur périple au bout du monde, hors-zone de couverture internet ? Vous y êtes ?&lt;/p&gt;

&lt;p&gt;Alors, tout est au mieux dans le meilleur des mondes ? &lt;strong&gt;Peut-être pas&lt;/strong&gt;, si l’on considère cette initiative de Google &lt;strong&gt;sous l’angle de la standardisation&lt;/strong&gt; : en effet, Google et les équipes de développement &lt;a href=&quot;http://dojotoolkit.org/&quot;&gt;Dojo&lt;/a&gt; proposent aujourd’hui une solution qui est basée sur un effort de réflexion qui a été initié auprès d’un nombre restreint de participants ; quid si demain Microsoft publie sa propre interprétation du problème ? Allons-nous à nouveau assister à un affrontement des deux géants, avec tout ce que cela implique en terme de problèmes d’interopérabilité ? Le fait qu’&lt;a href=&quot;http://shebanation.com/2007/05/30/google-gears/&quot;&gt;Adobe semble vouloir intégrer Gears dans Appolo&lt;/a&gt; et que Mozilla et Opéra soient de la partie risque de complexifier encore un peu plus le problème pour l’éditeur de Redmond.&lt;/p&gt;

&lt;p&gt;Reste que &lt;strong&gt;le sujet est à surveiller de près&lt;/strong&gt;, car les enjeux sont énormes à l’heure où les applications web tendent à empiéter de plus en plus sur le territoire des applications client-lourd traditionnelles.&lt;/p&gt;

&lt;p&gt;[&lt;a href=&quot;http://prendreuncafe.com/blog/post/2007/05/31/#nh1&quot; name=&quot;nb1&quot; title=&quot;Notes 1&quot; rev=&quot;footnote&quot; id=&quot;nb1&quot;&gt;1&lt;/a&gt;] Le &lt;a href=&quot;http://scobleizer.com/2007/05/30/google-brings-developers-offline-with-gears-new-offline-reader/&quot;&gt;support de Safari et d’Opéra&lt;/a&gt; est d’ores et déjà annoncé.&lt;/p&gt;

&lt;p&gt;[&lt;a href=&quot;http://prendreuncafe.com/blog/post/2007/05/31/#nh2&quot; name=&quot;nb2&quot; title=&quot;Notes 2&quot; rev=&quot;footnote&quot; id=&quot;nb2&quot;&gt;2&lt;/a&gt;] Déjà une mise à jour depuis le lancement ce matin même !&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Over. Geek.</title>
    <link>http://prendreuncafe.com/blog/post/2007/05/30/Over-Geek</link>
    <guid isPermaLink="false">urn:md5:77abc0897cae98fcc8c51a1f2b6a5cb1</guid>
    <pubDate>Wed, 30 May 2007 12:22:00 +0200</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Divers</category>
        <category>editor</category><category>geek</category><category>javascript</category><category>vim</category>    
    <description>    &lt;p&gt;Marre des éditeurs &lt;a href=&quot;http://fr.wikipedia.org/wiki/Wysiwyg&quot; hreflang=&quot;en&quot;&gt;wysiwyg&lt;/a&gt; foireux ? Accro à &lt;a href=&quot;http://www.vim.org/&quot; hreflang=&quot;en&quot;&gt;Vim&lt;/a&gt; ? &lt;a href=&quot;http://gpl.internetconnection.net/vi/&quot; hreflang=&quot;en&quot;&gt;jsvi&lt;/a&gt; est fait pour vous &lt;img src=&quot;/blog/themes/PuC4/smilies/smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>CMS, bonhomme en mousse, Rollex et tout ce qui s'en suit</title>
    <link>http://prendreuncafe.com/blog/post/2006/10/07/Zapping-3</link>
    <guid isPermaLink="false">urn:md5:1a3414b261e73cbba32f575c449fe45d</guid>
    <pubDate>Tue, 10 Oct 2006 08:14:00 +0200</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Divers</category>
        <category>cms</category><category>flash</category><category>framework</category><category>google</category><category>haha</category><category>javascript</category><category>linux</category><category>video</category>    
    <description>    &lt;ul&gt;
&lt;li&gt;Yooggle, Gootube, bref, je ne vais pas revenir sur &lt;a href=&quot;http://fr.techcrunch.com/2006/10/09/google-acquiert-youtube/&quot; hreflang=&quot;fr&quot;&gt;l'acquisition de l'année&lt;/a&gt;. La question qu'on peut raisonnablement se poser reste &lt;strong&gt;POURQUOI FAIRE BORDEL ?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://callmepep.org/blog/post/2006/10/07/Content-Management-ne-veut-pas-dire-CMS&quot; hreflang=&quot;fr&quot;&gt;Pep nous signale&lt;/a&gt; un excellent article sur &lt;a href=&quot;http://www.thinkvitamin.com&quot; hreflang=&quot;en&quot;&gt;Vitamin&lt;/a&gt; concernant le &lt;a href=&quot;http://www.thinkvitamin.com/features/blogs/redefining-content-management&quot; hreflang=&quot;en&quot;&gt;mythe du CMS&lt;/a&gt; ; cet article résume très bien ce que je pense depuis pas mal de temps, à savoir qu'aucun &lt;em&gt;système de gestion de contenu&lt;/em&gt; (&lt;acronym title=&quot;Content Management System&quot;&gt;CMS&lt;/acronym&gt;) ne saura jamais gérer entièrement la complexité de vos contenus (ou ceux de vos clients), et que l'y pousser est AMHA totalement contre-productif en regard de l'utilisation d'outils plus bas niveau comme les frameworks, associés aux méthodes de développement agiles.&lt;/li&gt;
&lt;li&gt;Cette &lt;a href=&quot;http://www.media.ebaumsworld.com/supercoolpic.swf&quot; hreflang=&quot;swf&quot;&gt;image sans fin&lt;/a&gt; est de toute beauté (Flash.)&lt;/li&gt;
&lt;li&gt;Le &lt;a href=&quot;http://www.scoopeo.com/humour/le-petit-hardos-en-mousse&quot; hreflang=&quot;fr&quot;&gt;petit hardos en mousse&lt;/a&gt;, déjà dans les bacs (Via &lt;a href=&quot;http://www.scoopeo.com/humour/le-petit-hardos-en-mousse&quot; hreflang=&quot;fr&quot;&gt;ScoopekNo'&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Une recherche d'images sur Google pour les mots-clé &lt;q&gt;&lt;a href=&quot;http://images.google.com/images?q=rolex%20watches&amp;amp;hl=en&amp;amp;btnG=Search%20Images&quot; hreflang=&quot;fr&quot;&gt;Rollex watches&lt;/a&gt;&lt;/q&gt; renvoie des résultats surprenants.&lt;/li&gt;
&lt;li&gt;Heureusement pendant ce temps-là, la science progresse et &lt;a href=&quot;http://dev.tufuncion.com/bigger-penises-linux&quot; hreflang=&quot;en&quot;&gt;assène des évidences&lt;/a&gt; qui n'avaient échappé à personne &lt;img src=&quot;/blog/themes/PuC4/smilies/biggrin.gif&quot; alt=&quot;:D&quot; class=&quot;smiley&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Sinon sans transition, entrez cette petite ligne de javascript dans la barre d'adresse de votre navigateur sur n'importe quel site, pour voir  (&lt;a href=&quot;http://www.slackpack.net/?q=node/374&quot; hreflang=&quot;ru&quot;&gt;via&lt;/a&gt;) :&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i&amp;lt;DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Quelques extensions Firefox pratiques</title>
    <link>http://prendreuncafe.com/blog/post/2006/05/01/446-quelques-extensions-firefox-pratiques</link>
    <guid isPermaLink="false">urn:md5:f62028c8db839a36efd534f6c3615ae8</guid>
    <pubDate>Mon, 01 May 2006 12:10:46 +0000</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Libritudes</category>
        <category>browsers</category><category>css</category><category>dev</category><category>extensions</category><category>firefox</category><category>google</category><category>javascript</category><category>web</category>    
    <description>    &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/firefox/2076/&quot; hreflang=&quot;en&quot;&gt;JSView&lt;/a&gt; (&lt;a href=&quot;http://releases.mozilla.org/pub/mozilla.org/extensions/jsview/jsview-1.0.7-fx.xpi&quot;&gt;XPI&lt;/a&gt;)&lt;br /&gt;Permet de voir la source des fichiers javascript appellés par une page [&lt;a href=&quot;http://www.unelectronlibre.info/index.php/2006/05/01/253-ne-carv-semaine-18&quot; hreflang=&quot;fr&quot;&gt;via&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/firefox/2390/&quot; hreflang=&quot;en&quot;&gt;VideoDownloader&lt;/a&gt; (&lt;a href=&quot;http://releases.mozilla.org/pub/mozilla.org/extensions/videodownloader/videodownloader-1.0-fx.xpi&quot;&gt;XPI&lt;/a&gt;)&lt;br /&gt;Permet de télécharger les fichiers vidéos depuis une soixantaine de services existant (dont &lt;a href=&quot;http://video.google.com&quot; hreflang=&quot;en&quot;&gt;Google Video&lt;/a&gt;, &lt;a href=&quot;http://youtube.com&quot; hreflang=&quot;en&quot;&gt;Youtube&lt;/a&gt;, etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.menjatallarins.com/extensions/#gbb&quot; hreflang=&quot;en&quot;&gt;Google Bookmarks Button&lt;/a&gt; (&lt;a href=&quot;http://www.menjatallarins.com/extensions/google-bookmarks-button-0.1.5-fx.xpi&quot;&gt;XPI&lt;/a&gt;)&lt;br /&gt;Pour celles et ceux qui utilisent &lt;a href=&quot;http://www.google.fr/bookmarks&quot; hreflang=&quot;en&quot;&gt;Google Bookmarks&lt;/a&gt;, cette extension est incontournable.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://addons.mozilla.org/extensions/moreinfo.php?id=2104&amp;amp;application=firefox&quot; hreflang=&quot;en&quot;&gt;CSS Viewer&lt;/a&gt; (&lt;a href=&quot;http://releases.mozilla.org/pub/mozilla.org/extensions/cssviewer/cssviewer-1.0.1-fx.xpi&quot;&gt;XPI&lt;/a&gt;)&lt;br /&gt;Permet de visualiser en rollover toutes les propriétés &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt; des éléments d'une page &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt;, notament typographiques.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pearlcrescent.com/products/pagesaver/&quot; hreflang=&quot;en&quot;&gt;Pear Crescent Page Saver&lt;/a&gt; (&lt;a href=&quot;http://pearlcrescent.com/products/pagesaver/pagesaver-1.0.xpi&quot;&gt;XPI&lt;/a&gt;)&lt;br /&gt;Permet de sauvegarder directement une page &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; en fichier image au format &lt;acronym title=&quot;Portable Network Graphics&quot;&gt;PNG&lt;/acronym&gt; (capture d'écran).&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Vracations</title>
    <link>http://prendreuncafe.com/blog/post/2006/04/28/445-vracations</link>
    <guid isPermaLink="false">urn:md5:ed279eafde37de389b8977c704dd871d</guid>
    <pubDate>Fri, 28 Apr 2006 18:35:07 +0000</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Divers</category>
        <category>dotclear</category><category>grumph</category><category>haha</category><category>javascript</category><category>plugins</category><category>spam</category><category>video</category>    
    <description>    &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Quentin_Tarentino&quot; hreflang=&quot;en&quot;&gt;Quentin Tarentino&lt;/a&gt; va faire un film sur la vie de &lt;a href=&quot;http://en.wikipedia.org/wiki/Jimi_Hendrix&quot; hreflang=&quot;en&quot;&gt;Jimi Hendrix&lt;/a&gt; [&lt;a href=&quot;http://www.scoopeo.com/cinema/tarantino-honore-jimi-hendrix&quot; hreflang=&quot;fr&quot;&gt;via&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;Un &lt;a href=&quot;http://www.scoopeo.com/scoop/redir/8628&quot; hreflang=&quot;fr&quot;&gt;effet miroir en javascript avec scriptaculous&lt;/a&gt; [&lt;a href=&quot;http://www.scoopeo.com/design/un-effet-de-reflexion-tres-classe-en-javascript&quot; hreflang=&quot;fr&quot;&gt;via&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;La couturière &lt;a href=&quot;http://fr.news.yahoo.com/27042006/5/la-couturiere-milka-perd-en-appel-contre-le-geant-kraft.html&quot; hreflang=&quot;fr&quot;&gt;Milka perd en appel contre Kraft Foods&lt;/a&gt;. Mort aux vaches, même les violettes&amp;nbsp;! [&lt;a href=&quot;http://jehaisleprintemps.net/detail.php?id=1388&amp;amp;lang=fr&quot; hreflang=&quot;fr&quot;&gt;via&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;&lt;del&gt;&lt;a href=&quot;http://www.dotclear.net/forum/viewtopic.php?id=16270&quot; hreflang=&quot;fr&quot;&gt;SpamClear&lt;/a&gt;, un nouveau plugin pour Dotclear destiné à lutter contre le spam en utilisant un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Inf%C3%A9rence_bay%C3%A9sienne&quot; hreflang=&quot;fr&quot;&gt;filtre Bayésien&lt;/a&gt;, est est en test sur ce blog [&lt;a href=&quot;http://www.dyingculture.net/blog/2006/04/26/533-lutte-contre-le-spam&quot; hreflang=&quot;fr&quot;&gt;via&lt;/a&gt;]&lt;/del&gt;&lt;br /&gt;&lt;strong&gt;Edit :&lt;/strong&gt; &lt;code&gt;rm -rf ./spamclear&lt;/code&gt;. 10 requêtes par seconde, c'est trop.&lt;/li&gt;
&lt;li&gt;Sinon, un fil de discussion des &lt;a href=&quot;http://www.dotclear.net/forum/viewtopic.php?id=17303&quot; hreflang=&quot;fr&quot;&gt;mots spam à la mode&lt;/a&gt; existe aussi pour Spamplemousse.&lt;/li&gt;
&lt;li&gt;Sans transition, un petit &lt;a href=&quot;http://video.google.com/videoplay?docid=-8000409016826512649&quot;&gt;concerto pour appartement et six percussionistes&lt;/a&gt; (merci Thomas)&lt;/li&gt;
&lt;li&gt;Les réseaux wifi ont-ils une &lt;a href=&quot;http://www.pcinpact.com/actu/news/28381-WiFi-des-consequences-sur-la-sante-des-utili.htm&quot; hreflang=&quot;fr&quot;&gt;influence sur la santé&lt;/a&gt;&amp;nbsp;? Je me suis toujours posé la question...&lt;/li&gt;
&lt;li&gt;On a retrouvé le &lt;a href=&quot;http://www.youtube.com/watch?v=3Ak3GDXVYmk&quot; hreflang=&quot;en&quot;&gt;fils caché de Sean Paul et de Rabbi Jacob&lt;/a&gt; (merci Julien)&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>