<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2frenchfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>La Case de l'Oncle Tom</title>
	
	<link>http://case.oncle-tom.net</link>
	<description>Développement Web, bonnes pratiques et performances</description>
	<pubDate>Thu, 04 Jun 2009 09:07:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<image><link>http://creativecommons.org/licenses/by-nc-nd/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://case.oncle-tom.net/feed/" type="application/rss+xml" /><feedburner:emailServiceId>LaCaseDeLoncTom</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://case.oncle-tom.net/feed/" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=fr&amp;url=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/bn/intatm_fr_1.gif">Subscribe with Mon Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Fcase.oncle-tom.net%2Ffeed%2F" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Facebook | Engineering : Hammering Usernames [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/wAITQOFVdtc/note.php</link><category>engineering facebook performance scaling memcached clevermarks</category><dc:creator>oncletom</dc:creator><pubDate>Thu, 02 Jul 2009 05:15:30 PDT</pubDate><guid isPermaLink="false">http://www.facebook.com/note.php?note_id=96390263919</guid><description>Explications sur la mise en production des URL personnalisées chez Facebook. L&amp;#039;URL qui valait un Tera-octets de serveur Memcached.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/wAITQOFVdtc" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/engineering" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/facebook" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/performance" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/scaling" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/memcached" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/clevermarks" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://www.facebook.com/note.php?note_id=96390263919</feedburner:origLink></item><item><title>ack -- better than grep, a power search tool for programmers [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/yFyTDLnNvxk/</link><category>clevermarks grep regexp tool free opensource perl cpan ack cli windows mac linux</category><dc:creator>oncletom</dc:creator><pubDate>Mon, 15 Jun 2009 14:53:52 PDT</pubDate><guid isPermaLink="false">http://betterthangrep.com/</guid><description>Sympathique programme d&amp;#039;identification par expressions régulières ... mais simplifié. Il est aussi capable d&amp;#039;effectuer des filtres sur les types de fichier sans complications.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/yFyTDLnNvxk" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/clevermarks" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/grep" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/regexp" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/tool" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/free" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/opensource" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/perl" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/cpan" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/ack" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/cli" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/windows" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/mac" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/linux" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://betterthangrep.com/</feedburner:origLink></item><item>
		<title>Créer une vignette d’un PDF avec Image Magick</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/IrkV_GuKOr0/</link>
		<comments>http://case.oncle-tom.net/2009/06/03/thumbnail-pdf-image-magick/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 05:00:24 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[image]]></category>

		<category><![CDATA[image magick]]></category>

		<category><![CDATA[imagick]]></category>

		<category><![CDATA[pdf]]></category>

		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1374</guid>
		<description>Les PDF c&amp;#8217;est chouette pour transmettre des documents non-modifiables. Mais parfois, c&amp;#8217;est aussi pratique de pouvoir en suggérer leur contenu. C&amp;#8217;est d&amp;#8217;autant plus pertinent si vous en proposez à télécharger et que la couverture alléchante dispose d&amp;#8217;un fort pouvoir de conviction.
Par chance, nous n&amp;#8217;avons pas besoin de faire le sale travail à la main. Du [...]</description>
			<content:encoded><![CDATA[<p>Les <acronym title="Portable Document Format">PDF</acronym> c&#8217;est chouette pour transmettre des documents non-modifiables. Mais parfois, c&#8217;est aussi pratique de pouvoir en suggérer leur contenu. C&#8217;est d&#8217;autant plus pertinent si vous en proposez à télécharger et que la couverture alléchante dispose d&#8217;un fort pouvoir de conviction.</p>
<img class="size-full wp-image-1376" title="Exemple de couverture PDF" src="http://case.oncle-tom.net/images/2009/06/pdf-sample-cover.png" alt="Exemple de couverture PDF" width="281" height="374" />
<p>Par chance, nous n&#8217;avons pas besoin de faire le sale travail à la main. Du genre prendre une capture d&#8217;écran de la première page du <acronym title="Portable Document Format">PDF</acronym> ou je ne sais quelle autre astuce impliquant travail et effort. <strong>Image Magick</strong> est là pour nous aider et à plus forte raison, <strong>Imagick</strong>. Il s&#8217;agit d&#8217;une librairie native à <acronym title="Pre-Hypertext Processing">PHP</acronym> se basant sur l&#8217;<acronym title="Application Programming Interface">API</acronym> d&#8217;Image Magick.</p>
<p>Vous me direz : oui mais Image Magick c&#8217;est fait pour manipuler des images. Certes mais <em>un <acronym title="Portable Document Format">PDF</acronym>, c&#8217;est un peu comme une image</em>.</p>
<p><span id="more-1374"></span></p>
<h3>Convertir un <acronym title="Portable Document Format">PDF</acronym> mono-page</h3>
<p>Partons d&#8217;un cas simple : votre <acronym title="Portable Document Format">PDF</acronym> ne contient qu&#8217;une page. Le code est d&#8217;une grande simplicité :</p>
<pre><code class="php">&lt;?php
$im = new Imagick('/chemin/vers/pdf-mono-page.pdf');
$im-&gt;writeImage('/chemin/vers/couverture.png');</code></pre>
<p>2 lignes ont suffit à créer notre prévisualisation. Cette manipulation enregistre une image au format <acronym title="Portable Network Graphics">PNG</acronym> sans aucune compression. Nous pourrions l&#8217;activer et régler le taux de compression avec 2 lignes supplémentaires :</p>
<pre><code class="php">$im-&gt;setCompression(Imagick::COMPRESSION_LZW);
$im-&gt;setCompressionQuality(90);</code></pre>
<p>LZW est un algorithme de compression sans perte utilisé entre autre par <acronym title="Portable Network Graphics">PNG</acronym> et <acronym title="Graphics Interchange Format">GIF</acronym>. On aurait pu choisir du <acronym title="Joint Photographics Experts Group">JPEG</acronym> sans perte ou une autre <a href="http://fr.php.net/manual/en/imagick.constants.php">constante de compression d&#8217;Image Magick</a>.</p>
<h3>Convertir un <acronym title="Portable Document Format">PDF</acronym> multi-pages</h3>
<p>Que se passerait-il si notre code précédent était utilisé sur un <acronym title="Portable Document Format">PDF</acronym> contenant plus d&#8217;une page ? Et bien seule la dernière page du document serait enregistrée. En fait, toutes les pages seraient enregistrées jusqu&#8217;à la dernière (pas terrible côté performances donc).<br />
L&#8217;<acronym title="Application Programming Interface">API</acronym> d&#8217;Image Magick nous permet toutefois de connaître le nombre d&#8217;images impliquées et d&#8217;en définir l&#8217;index. Depuis PHP5, Imagick fournit des méthodes propres aux interfaces Iterator et Traversable.</p>
<p>Notre code bouge &#8230; mais pas tant que ça. Disons que nous souhaitons prévisualiser la 6ème page du document (donc l&#8217;index 5) :</p>
<pre><code class="php">$im = new Imagick('/chemin/vers/pdf-multi-pages.pdf');
$im-&gt;setIteratorIndex(5);
$im-&gt;setCompression(Imagick::COMPRESSION_LZW);
$im-&gt;setCompressionQuality(90);
$im-&gt;writeImage('/chemin/vers/couverture.png');</code></pre>
<p>Une petite ligne de plus fait l&#8217;affaire. Pour compter le nombre d&#8217;images contenues dans le document ouvert, un appel à la méthode getNumberImages fera l&#8217;affaire.</p>
<h3>Convertir directement avec Image Magick : convert</h3>
<p>Pour les amateurs du shell ou les détracteurs de <acronym title="Pre-Hypertext Processing">PHP</acronym>, on peut arriver aux mêmes résultats en 1 ligne de commande. L&#8217;outil de conversion est fourni par <a href="http://www.imagemagick.org/script/convert.php">convert</a>. Sa documentation et ses options sont particulièrement riches. On peut tout faire &#8230; ou presque !</p>
<pre><code class="bash">convert /chemin/vers/pdf-mono-page.pdf /chemin/vers/couverture.png
convert /chemin/vers/pdf-multi-pages.pdf[5] /chemin/vers/couverture.png</code></pre>
<p>La seule différence réside dans les crochets suivant le nom du fichier d&#8217;entrée. Vous avez bien sûr deviné qu&#8217;il s&#8217;agit de l&#8217;index du document <acronym title="Portable Document Format">PDF</acronym> que l&#8217;on convertit. Si on ne précise rien, <strong>convert</strong> convertira toutes les pages du document mais cette fois, en les exportant dans des fichiers uniques (pas de réécriture qui tienne).</p>
<h3>Conclusion</h3>
<p><strong>Image Magick est vraiment une application sympathique</strong>. Les possibilités de manipulation offertes surpassent à mes yeux largement celles de la librairie GD (qui est toujours mieux que rien).</p>
<p>Cette manipulation permettrait aussi de décomposer les multiples images composant un <acronym title="Graphics Interchange Format">GIF</acronym> animé ou un APNG. Ou inversement, nous pourrions créer une animation à partir de plusieurs images. Ou encore créer une vignette carrée et centrée. Les possibilités ne manquent pas.</p>
<p>C&#8217;était également une autre façon de <em>teaser</em> le projet le plus chronophage qui m&#8217;ait été donné de connaître mais bon, en septembre c&#8217;est dans les bacs. Toujours pas d&#8217;idées sur le sujet couvert ? <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2008/12/23/wordpress-svn-external/" title="Wordpress en tant que dépendance SVN (23 décembre 2008)">Wordpress en tant que dépendance SVN</a> (7 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/06/18/livre-blanc-frameworks-php-presentation-et-explications/" title="Livre blanc sur les frameworks PHP : présentation et explications (18 juin 2008)">Livre blanc sur les frameworks PHP : présentation et explications</a> (10 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/07/23/conventions-de-programmation-necessaire-maturite/" title="Conventions de programmation : la nécessaire maturité (23 juillet 2008)">Conventions de programmation : la nécessaire maturité</a> (19 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/12/11/configuration-apache-mysql-php-symlinks/" title="Configuration d&#8217;Apache, MySQL et PHP à base de liens symboliques (11 décembre 2008)">Configuration d&#8217;Apache, MySQL et PHP à base de liens symboliques</a> (12 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=IrkV_GuKOr0:EitYVoZ9f6o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=IrkV_GuKOr0:EitYVoZ9f6o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?i=IrkV_GuKOr0:EitYVoZ9f6o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=IrkV_GuKOr0:EitYVoZ9f6o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/IrkV_GuKOr0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/06/03/thumbnail-pdf-image-magick/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/06/03/thumbnail-pdf-image-magick/</feedburner:origLink></item>
		<item><title>Google Gears 64-bit [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/lsNHmYYfXhg/</link><category>gears google linux firefox 64bit ubuntu javascript api</category><dc:creator>oncletom</dc:creator><pubDate>Sat, 30 May 2009 00:58:28 PDT</pubDate><guid isPermaLink="false">http://nielspeen.com/blog/2009/02/google-gears-64-bit/</guid><description>Paquets pour installer une version de Gears non-officielle mais fonctionnelle pour OS 64 bits. Genre Ubuntu.

On peut aussi le compiler facilement depuis le dépôt :
http://gears.googlecode.com/svn/trunk/gears/ + make MODE=OPT&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/lsNHmYYfXhg" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/gears" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/google" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/linux" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/firefox" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/64bit" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/ubuntu" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/javascript" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/api" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://nielspeen.com/blog/2009/02/google-gears-64-bit/</feedburner:origLink></item><item><title>ab - Apache HTTP server benchmarking tool - Apache HTTP Server [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/kYwL906S6DI/ab.html</link><category>apache benchmark performance testing http web cleverplanet</category><dc:creator>oncletom</dc:creator><pubDate>Tue, 26 May 2009 03:52:50 PDT</pubDate><guid isPermaLink="false">http://httpd.apache.org/docs/2.0/programs/ab.html</guid><description>Utilitaire permettant de benchmarker ses différents sites Web. Pratique pour voir combien de requêtes par seconde le serveur Web est capable d&amp;#039;encaisser sans broncher : plus y&amp;#039;en a, mieux c&amp;#039;est !&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/kYwL906S6DI" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/apache" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/benchmark" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/performance" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/testing" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/http" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/web" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://httpd.apache.org/docs/2.0/programs/ab.html</feedburner:origLink></item><item><title>CSS - Contents and compatibility - mobile [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/3jNY10NrY8U/css.html</link><category>web mobile css compatibility reference clevermarks</category><dc:creator>oncletom</dc:creator><pubDate>Tue, 19 May 2009 23:34:58 PDT</pubDate><guid isPermaLink="false">http://quirksmode.org/m/css.html</guid><description>Table de compatibilité des sélecteurs CSS pour les différentes navigateurs Web mobiles. Au menu : Opera, Safari pour iPhone, Safari pour Androïd, Netfront, Blackberry et IE Mobile.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/3jNY10NrY8U" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/web" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/mobile" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/css" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/compatibility" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/reference" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/clevermarks" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://quirksmode.org/m/css.html</feedburner:origLink></item><item><title>YUI 3: Design Goals and Architecture [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/Nd4I2qXgGh0/13406817</link><category>cleverplanet video yui javascript framework performances designpatterns</category><dc:creator>oncletom</dc:creator><pubDate>Sat, 16 May 2009 06:22:17 PDT</pubDate><guid isPermaLink="false">http://video.yahoo.com/watch/5044557/13406817</guid><description>Excellente présentation des changements techniques dans le framework JavaScript YUI 3 : dépendances automatiques, design pattern poussés, performances.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/Nd4I2qXgGh0" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/video" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/yui" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/javascript" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/framework" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/performances" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/designpatterns" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://video.yahoo.com/watch/5044557/13406817</feedburner:origLink></item><item><title>Typefaces we can all share : Open Font Library [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/Ko3WAaoB_U8/</link><category>cleverplanet ttf fonts opensource typeface webdesign css eot</category><dc:creator>oncletom</dc:creator><pubDate>Fri, 15 May 2009 14:10:49 PDT</pubDate><guid isPermaLink="false">http://openfontlibrary.fontly.org/</guid><description>Bibliothèque de fontes libres. À utiliser avec @font-face (supporté par les versions les plus récentes des navigateurs).&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/Ko3WAaoB_U8" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/ttf" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/fonts" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/opensource" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/typeface" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/webdesign" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/css" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/eot" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://openfontlibrary.fontly.org/</feedburner:origLink></item><item>
		<title>Affichage personnalisé de ses abonnés Feedburner</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/p0Axj5H_Az0/</link>
		<comments>http://case.oncle-tom.net/2009/05/14/affichage-personnalise-abonnes-feedburner/#comments</comments>
		<pubDate>Thu, 14 May 2009 05:00:23 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[awareness]]></category>

		<category><![CDATA[feedburner]]></category>

		<category><![CDATA[wp-cron]]></category>

		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1359</guid>
		<description>Comment intégrer un compteur d'abonnés Feedburner sous forme textuelle avec WordPress ? En quelques lignes, nous allons planifier une récupération quotidienne de notre compteur d'abonnés et l'intégrer dans le thème graphique. Au menu : WP-Cron, Feedburner Awareness et SimpleXML (PHP 5).</description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-thumbnail wp-image-1360" title="Compteur d'abonnés Feedburner au format texte" src="http://case.oncle-tom.net/images/2009/05/compteur-abonnes-feedburner-texte-138x76.png" alt="Compteur d'abonnés Feedburner au format texte" width="138" height="76" /></p>
<p>Qu&#8217;on se le dise : le compteur de lecteurs Feedburner par défaut est sympa mais <strong>s&#8217;intègre mal dans n&#8217;importe quel design de site Web</strong>. <a href="http://case.oncle-tom.net/2009/04/15/menage-printemps/">Lors de la refonte du thème graphique de ce blog</a>, j&#8217;ai eu envie de remettre mon compteur d&#8217;abonnés Feedburner mais sous forme de texte. Même si le chiffre indiqué peut se révéler inexact, j&#8217;estime que c&#8217;est un <strong>indicateur intéressant</strong> sur la consultation d&#8217;un flux. Je suis également convaincu qu&#8217;à partir d&#8217;un certain nombre de lecteurs, ça facilite la conversion : si le nombre est élevé, c&#8217;est que le site est bien  &#8230; donc je m&#8217;abonne.</p>
<p>Bref, j&#8217;ai voulu implémenter ça de <strong>manière propre et peu gourmande</strong> avec <a href="http://codex.wordpress.org/Category:WP-Cron_Functions"><acronym title="WordPress">WP</acronym>-Cron</a>, l&#8217;<acronym title="Application Programming Interface">API</acronym> <a href="http://code.google.com/intl/fr/apis/feedburner/awareness_api.html">Feedburner Awareness</a> et la classe <a href="http://fr.php.net/simplexml"><acronym title="Pre-Hypertext Processing">PHP</acronym> 5 SimpleXML</a>. Une poignée de lignes de code suffisent, pourquoi s&#8217;en priver ? <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><span id="more-1359"></span></p>
<h3>Le besoin</h3>
<p>La plupart des exemples que l&#8217;on trouve sur le Web attaquent directement l&#8217;<acronym title="Application Programming Interface">API</acronym> Feedburner Awareness. Autrement dit, votre page ne s&#8217;affichera pas tant que l&#8217;<acronym title="Application Programming Interface">API</acronym> n&#8217;aura pas été appelée et son résultat interprété. Étant donné que cette valeur change 1 fois par jour, il vaut mieux aborder la chose différemment. C&#8217;est pourquoi je voulais :</p>
<ul>
<li>récupérer 1 à 2 fois par jour la valeur courante du nombre de lecteurs ;</li>
<li>accéder à cette valeur simplement depuis mes templates (avec un appel à get_option() par exemple).</li>
</ul>
<p><strong>On y gagne sur tous les fronts</strong> : on ne ralentit pas l&#8217;affichage côté utilisateur, l&#8217;information est récupérée en arrière-plan, nos templates graphiques restent simples.</p>
<h3>Activation du service Feedburner Awareness</h3>
<p>La première chose à faire est d&#8217;<strong>activer l&#8217;<acronym title="Application Programming Interface">API</acronym> Awareness pour votre flux</strong>. Cette <acronym title="Application Programming Interface">API</acronym> permet de récupérer des statistiques sur un flux Feedburner au format <acronym title="eXtensible Markup Language">XML</acronym>. On y retrouve entre autre le nombre de lecteurs. On peut obtenir ces informations pour la date courante, la veille ou une plage de jours par exemple.</p>
<p>C&#8217;est vraiment simple à utiliser, la <a href="http://code.google.com/intl/fr/apis/feedburner/awareness_api.html">documentation Feedburner Awareness</a> est complète dans son genre.</p>
<div id="attachment_1361" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2009/05/feedburner-awareness-activation.png"><img class="size-medium wp-image-1361" title="Activation du service Feedburner Awareness" src="http://case.oncle-tom.net/images/2009/05/feedburner-awareness-activation-300x166.png" alt="Activation du service Feedburner Awareness" width="300" height="166" /></a><p class="wp-caption-text">Activation du service Feedburner Awareness</p></div>
<p><strong>Remarque</strong> : cette <acronym title="Application Programming Interface">API</acronym> s&#8217;active par flux Feedburner de manière individuelle et est désactivée par défaut.</p>
<h3>Extraction du nombre de lecteurs</h3>
<p>Dans un premier temps, on va <strong>récupérer le nombre de lecteurs pour son flux</strong>. On verra dans un second temps comment l&#8217;automatiser.</p>
<p>Le principe est simple : on appelle une <acronym title="Uniform Resource Identifier">URI</acronym> avec son identifiant de flux Feedburner (exemple dans mon cas : http://feeds.feedburner.com/LaCaseDeLoncTom). On lui spécifie 2 dates : la veille et l&#8217;avant-veille. Pourquoi ? Car les données de la veille ne sont pas toujours existantes : les compteurs sont actualisés à 11h heure française. L&#8217;idée est de pouvoir se mettre un nombre de lecteurs sous la dent.</p>
<pre><code class="php">define('FEEDBURNER_URI', 'LaCaseDeLoncTom');
function oncletom_update_feed_readers()
{
  $uri = sprintf('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=%s&amp;dates=%s,%s',
    FEEDBURNER_URI,
    date('Y-m-d', strtotime('-2 day')),
    date('Y-m-d', strtotime('-1 day'))
  );

  $http = new WP_Http();
  $readers = (int)get_option('feed_readers');
  $response = $http-&gt;get($uri);
  $xml = new SimpleXMLElement(WP_Http::chunkTransferDecode($response['body']));
  $feed = (array)$xml-&gt;feed;

  foreach (array_reverse($feed['entry']) as $entry)
  {
    if ((int)$entry['circulation'])
    {
      $readers = (int)$entry['circulation'];
      update_option('feed_readers', $readers);
      break;
    }
  }

  return $readers;
}</code></pre>
<p>Quelques remarques :</p>
<ul>
<li>j&#8217;ai utilisé la classe  <code>WP_http</code> qui fournit une abstraction d&#8217;appel à des ressources distantes. C&#8217;est le plus propre pour fonctionner sur la majorité des installations ;</li>
<li>j&#8217;inverse le tableau des résultats car ils sont triés par ordre chronologique <em>croissant</em> par défaut  ; nous voulons l&#8217;information la plus fraîche d&#8217;abord ;</li>
<li>on aurait pu utiliser un paramètre de fonction pour fournir l&#8217;<acronym title="Uniform Resource Identifier">URI</acronym> du flux <em>mais</em> dans l&#8217;étape d&#8217;après, il se trouve qu&#8217;on ne pourra lui en passer &#8230; dommage ;</li>
<li>on aurait également pu remplacer la constante par un appel à un <code>get_option()</code> et pourquoi pas, récupérer l&#8217;ID depuis un réglage du plugin Feedburner FeedSmith.</li>
</ul>
<h3>Programmation d&#8217;une tâche planifiée avec <acronym title="WordPress">WP</acronym>-Cron</h3>
<p>On en arrive à la partie sympa : programmer cette récupération du nombre d&#8217;abonnés pour qu&#8217;on n&#8217;ait pas de travail manuel à faire. L&#8217;idéal est de placer ceci dans un plugin. Personnellement je l&#8217;ai inséré dans le <em>hook</em> <code>switch_theme()</code> de mon thème pour économiser un fichier/plugin.</p>
<pre><code class="php">//dans un fichier wp-content/plugins/oncletom-awareness-cron.php
/*
Plugin Name: Simple Feedburner Awareness
Description: Asynchroneous feed readers collector scheduled twice a day.
Author: Oncle Tom
Version: 1.0
Author URI: http://case.oncle-tom.net/
Plugin URI: 

  This plugin is released under version 3 of the GPL:
  http://www.opensource.org/licenses/gpl-3.0.html
*/

register_activation_hook(__FILE__, 'oncletom_awareness_cron_activate');
register_deactivation_hook(__FILE__, 'oncletom_awareness_cron_deactivate');
add_action('oncletom_cron_twicedaily_hook', 'oncletom_update_feed_readers');

function oncletom_awareness_cron_activate()
{
  add_option('feed_readers', 0, '', 'yes');
  wp_schedule_event(time(), 'twicedaily', 'oncletom_cron_twicedaily_hook');
}

function oncletom_awareness_cron_deactivate()
{
  delete_option('feed_readers');
  wp_clear_scheduled_hook('oncletom_cron_twicedaily_hook');
}</code></pre>
<p>Vous vous souvenez encore de notre fonction <code>oncletom_update_feed_readers()</code> ? Et bien on pourrait la rajouter dans ce plugin pour tout avoir au même endroit. L&#8217;organisation de votre code vous appartient <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Quoiqu&#8217;il en soit, une fois le plugin activé, <strong>tout est prê</strong>t : il ne reste qu&#8217;à intégrer le compteur d&#8217;abonnés dans le thème. C&#8217;est notre prochaine étape.<br />
Juste une remarque : la fonction <code>wp_schedule_event()</code> prend comme dernier argument un nom de <em>hook</em> et non un nom de fonction.</p>
<h3>Intégration dans le thème</h3>
<p>C&#8217;est la partie la plus simple et pour cause, un simple appel à <code>get_option('feed_readers')</code> nous retourne le nombre d&#8217;abonnés. On ne pouvait pas faire plus rapide <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<pre><code class="php">&lt;p&gt;J'ai &lt;?php echo get_option('feed_readers') ?&gt; abonnés&lt;/p&gt;</code></pre>
<h3>Conclusion</h3>
<p><strong>WordPress fournit tous les mécanismes</strong> pour accéder aisément à des données de manière asynchrone. Il ne nous a pas coûté grand chose de collecter le flux <acronym title="eXtensible Markup Language">XML</acronym> et de l&#8217;enregistrer. En le faisant ainsi en arrière plan, on évite toute gêne pour l&#8217;utilisateur et tout traitement superflu exécuté en affichage.</p>
<p>Assez étonnamment, je n&#8217;ai croisé <a href="http://wordpress.org/extend/plugins/tags/awareness">aucune extension dans le catalogue WordPress</a>. J&#8217;espère que ça vous dépannera et que votre thème graphique appréciera !<br />
<strong>Mise à jour</strong> : aucun plugin n&#8217;était tagué <em>awareness</em> ; <a href="http://wordpress.org/extend/plugins/feedburnercount/">FeedBurnerCount</a>, <a href="http://wordpress.org/extend/plugins/feed-subscriber-stats/">Feed Subscriber Stats</a> et <a href="http://wordpress.org/extend/plugins/feedburner-text-counter-v10/">Feedburner Text Count</a> produisent très probablement le même résultat que le contenu de cet article.</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/03/17/migrer-un-flux-rss-vers-feedburner/" title="Migrer un flux RSS vers Feedburner (17 mars 2007)">Migrer un flux RSS vers Feedburner</a> (11 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/06/24/quand-jaiku-surpassera-twitter/" title="Quand Jaiku surpassera Twitter (24 juin 2008)">Quand Jaiku surpassera Twitter</a> (6 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2009/04/15/menage-printemps/" title="Ménage de printemps (15 avril 2009)">Ménage de printemps</a> (23 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2009/02/03/ajouter-tinymce-plugin-wordpress/" title="Ajouter TinyMCE dans un plugin WordPress (3 février 2009)">Ajouter TinyMCE dans un plugin WordPress</a> (9 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=p0Axj5H_Az0:QlVCa3H91p0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=p0Axj5H_Az0:QlVCa3H91p0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?i=p0Axj5H_Az0:QlVCa3H91p0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=p0Axj5H_Az0:QlVCa3H91p0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/p0Axj5H_Az0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/05/14/affichage-personnalise-abonnes-feedburner/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/05/14/affichage-personnalise-abonnes-feedburner/</feedburner:origLink></item>
		<item><title>Présentation Zen | Des livres pour changer de vie [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/7zfhHw40Og0/</link><category>cleverplanet livre presentation communication</category><dc:creator>oncletom</dc:creator><pubDate>Wed, 13 May 2009 05:39:02 PDT</pubDate><guid isPermaLink="false">http://www.des-livres-pour-changer-de-vie.fr/presentation-zen/</guid><description>Présentation de l&amp;#039;ouvrage didactique &amp;quot;Présentation Zen&amp;quot; de Garr Reynolds : comment bâtir des présentations percutantes, pertinentes et dynamiques.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/7zfhHw40Og0" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/livre" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/presentation" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/communication" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://www.des-livres-pour-changer-de-vie.fr/presentation-zen/</feedburner:origLink></item><item><title>Firediff [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/IDuzvK2cseM/</link><category>firebug firefox dom css extension tool webdev javascript clevermarks</category><dc:creator>oncletom</dc:creator><pubDate>Sat, 18 Apr 2009 08:10:53 PDT</pubDate><guid isPermaLink="false">http://www.incaseofstairs.com/firediff/</guid><description>Extension à Firebug pour constater les changements dans le DOM entre le moment où il est chargé puis modifié par JavaScript.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/IDuzvK2cseM" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/firebug" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/firefox" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/dom" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/css" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/extension" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/tool" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/webdev" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/javascript" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/clevermarks" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://www.incaseofstairs.com/firediff/</feedburner:origLink></item><item><title>How to debug a Shell Script under Linux or UNIX [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/O1qFglWA_Pc/debugging-shell-script.html</link><category>cleverplanet shell bash programming linux howto bestpractice</category><dc:creator>oncletom</dc:creator><pubDate>Thu, 16 Apr 2009 03:47:26 PDT</pubDate><guid isPermaLink="false">http://www.cyberciti.biz/tips/debugging-shell-script.html</guid><description>Ensemble de bonnes pratiques pour rendre ses scripts shell plus facilement déboguables et donc, maintenables. Facile à mettre en œuvre qui plus est.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/O1qFglWA_Pc" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/shell" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/bash" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/programming" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/linux" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/howto" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/bestpractice" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://www.cyberciti.biz/tips/debugging-shell-script.html</feedburner:origLink></item><item>
		<title>Ménage de printemps</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/Wlm_qGx5yCU/</link>
		<comments>http://case.oncle-tom.net/2009/04/15/menage-printemps/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 18:06:59 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Pour le plaisir]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[blueprint]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[css2]]></category>

		<category><![CDATA[css3]]></category>

		<category><![CDATA[feedburner]]></category>

		<category><![CDATA[html5]]></category>

		<category><![CDATA[performances]]></category>

		<category><![CDATA[png]]></category>

		<category><![CDATA[webdesign]]></category>

		<category><![CDATA[yslow]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1345</guid>
		<description>J'avais besoin de changer de thème graphique ! Découvrez les besoins, les critères d'exigence et de qualité. Je présente également la vie d'un intégrateur sans compatibilité avec Internet Explorer 6, mes déconvenues avec WP Cron et les manipulations de WordPress pour parvenir à mes fins.</description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-thumbnail wp-image-1347" title="WordPress Logo" src="http://case.oncle-tom.net/images/2009/04/wordpress-badge-138x138.png" alt="WordPress Logo" width="138" height="138" /></p>
<p>Je me décide à passer un coup de peinture sur ce blog quasiment 2 ans après le <a href="http://case.oncle-tom.net/2007/08/15/css-summer-refresh-2007/"><acronym title="Cascading Style Sheets">CSS</acronym> Summer Refresh</a> organisé par <a href="http://alsacreations.com/">Alsacréations</a>. À vrai dire, j&#8217;avais ce projet dans les cartons depuis septembre 2008 mais le plus difficile a été de trouver le talent graphique. C&#8217;était également l&#8217;occasion de dire au revoir aux navigateurs Web de seconde zone, à savoir Internet Explorer 7 et moins.</p>
<p><span id="more-1345"></span></p>
<h3>Le besoin</h3>
<p>Mon besoin était le suivant :</p>
<ul>
<li><strong>Thème graphique</strong>
<ul>
<li>durable et peu lassant</li>
<li>usage de transparence</li>
<li>toujours sur des tons marrons</li>
<li>inspire la modernité tout comme le côté rustique et soucieux de la nature</li>
<li>structure en grille pour intégrer avec <a href="http://blueprintcss.org/">Blueprint</a></li>
</ul>
</li>
<li><strong>Fonctionnalités</strong>
<ul>
<li>intégration d&#8217;un <em>lifestream</em> (intégré entre temps)</li>
<li>intégration de <a href="http://feedburner.com/">Feedburner</a> via son <a href="http://code.google.com/intl/fr/apis/feedburner/awareness_api.html"><acronym title="Application Programming Interface">API</acronym> Awareness</a></li>
<li>intégration d&#8217;un bandeau <a href="http://flickr.com/">Flickr</a> qui s&#8217;étend sur toute la largeur de l&#8217;écran, peu importe la résolution employée</li>
<li>utilisation du blog comme vitrine : suppression de ma dernière page <acronym title="HyperText Markup Language">HTML</acronym> manuelle (autrefois accessible sur <a href="http://oncle-tom.net/">oncle-tom.net</a>)</li>
</ul>
</li>
<li><strong>Compatibilité</strong>
<ul>
<li>navigateurs modernes &#8230; c&#8217;est à dire rien en dessous d&#8217;Internet Explorer 8</li>
<li>intégration avec <acronym title="HyperText Markup Language">HTML</acronym> 5</li>
<li>pas d&#8217;utilisation de <acronym title="Graphics Interchange Format">GIF</acronym> mais de <acronym title="Portable Network Graphics">PNG</acronym> 6 et <acronym title="Portable Network Graphics">PNG</acronym> 24</li>
</ul>
</li>
<li><strong>Autre</strong>
<ul>
<li>soucis de performance (peu d&#8217;éléments graphiques, utilisation des <em>sprites</em>)</li>
</ul>
</li>
</ul>
<p>Finalement c&#8217;est <a href="http://leslyg.com/">Lesly</a> qui s&#8217;est chargé de la création graphique. Vous pouvez d&#8217;ailleurs consulter la <a href="http://leslyg.com/work/blog-de-thomas-parisot-oncle-tom/">maquette graphique originale sur son portfolio</a>. Quant à moi, j&#8217;ai réalisé toute l&#8217;intégration <acronym title="Cascading Style Sheets">CSS</acronym>/<acronym title="HyperText Markup Language">HTML</acronym> dans WordPress.</p>
<h3>L&#8217;intégration</h3>
<p>Tout d&#8217;abord, qu&#8217;est ce qui a changé par rapport à la maquette ?</p>
<ul>
<li><strong>les polices de caractère</strong> : hormis le titre, seules des polices standards ont été employées. J&#8217;attendrai le support des polices personnalisées en <acronym title="Cascading Style Sheets">CSS</acronym> 3 à moins de partir sur une solution à base de <acronym title="Scalable Vector Graphics">SVG</acronym> (encore que j&#8217;ai des doutes sur l&#8217;accessibilité d&#8217;une telle méthode) ;</li>
<li><strong>moins d&#8217;éléments graphiques</strong> : les punaises, les effets papiers ont été supprimés. Rien que le papier et le scotch de la partie &#8220;À propos&#8221; pesaient plus de 60Ko ;</li>
<li><strong>abandon temporaire du <em>featured content</em></strong> : les solutions actuelles étaient trop lourdes et j&#8217;étais trop impatient pour passer quelques heures de plus &#8230; donc c&#8217;est temporaire <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>l&#8217;<strong>ajout des pages en lieu et place du fil d&#8217;ariane</strong> : j&#8217;en avais besoin pour présenter différents contenus statiques ;</li>
<li><strong>le pied de page</strong> : peu de widgets WordPress offrent un degré de personnalisation suffisant pour arriver à ce résultat. C&#8217;est donc temporisé là aussi en attendant de trouver chaussure à mon pied <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<div id="attachment_1346" class="wp-caption aligncenter" style="width: 160px"><a href="/images/2009/04/caseoncle-tomnet-oncletom-wood.png"><img class="size-medium wp-image-1346" title="caseoncle-tomnet-oncletom-wood" src="http://case.oncle-tom.net/images/2009/04/caseoncle-tomnet-oncletom-wood-150x300.png" alt="Aperçu pleine page" width="150" height="300" /></a><p class="wp-caption-text">Aperçu pleine page</p></div>
<p>Pour le reste je me suis fait plaisir avec notamment l&#8217;utilisation de coins arrondis (<em>border-radius</em>) basés sur les implémentations de Gecko et Webkit. Désolé pour les utilisateurs d&#8217;autres navigateurs car j&#8217;en ai usé et abusé afin d&#8217;éviter l&#8217;utilisation d&#8217;images.</p>
<p>J&#8217;ai également joué avec l&#8217;<strong><acronym title="Application Programming Interface">API</acronym> de WordPress</strong> pour générer les vignettes des articles. Je sais bien qu&#8217;on peut définir des tailles d&#8217;images mais ça ne vaut que pour les médias nouvellement mis en ligne. J&#8217;en ai profité pour n&#8217;afficher dans le listing que l&#8217;extrait du billet. Pas l&#8217;intro, seulement l&#8217;extrait (<em>excerpt</em>). J&#8217;ai lu récemment un article qui parlait de la chose et ça m&#8217;a paru plus approprié. Je peux désormais écrire le texte qui me convient pour attirer la lecture vers un article sans pour autant que ça ait de répercution sur son contenu une fois affiché en pleine page.</p>
<p>Je suis en revanche toujours dubitatif sur l&#8217;<acronym title="Application Programming Interface">API</acronym> de <acronym title="WordPress">WP</acronym> Cron : ma tâche a beau être enregistrée et planifiée, j&#8217;ai l&#8217;impression qu&#8217;elle ne s&#8217;exécute jamais &#8230; contrairement aux recherches de mises à jour de plugins &amp; cie. <span style="text-decoration: line-through;">Quelqu&#8217;un a déjà joué avec et rencontré pareil problème ?</span><br />
<strong>Mise à jour</strong> : j&#8217;ai résolu le problème et détaillé la marche à suivre dans l&#8217;article <a href="http://case.oncle-tom.net/2009/05/14/affichage-personnalise-abonnes-feedburner/">affichage personnalisé de ses lecteurs Feedburner</a>. Je planifiais une fonction et non un <em>hook</em>. Cela fonctionnait mais ne produisait fatalement pas de résultat <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Au final je n&#8217;ai même pas eu à placer la moindre ligne de JavaScript : tout est fait à partir de sélecteurs <acronym title="Cascading Style Sheets">CSS</acronym>. Mon seul regret : l&#8217;absence de sélecteur adjacent &#8230; &#8220;précédent&#8221;. Pour le menu du haut, je voulais pouvoir styler les éléments de menus ayant comme élément suivant une liste d&#8217;élément (<code>&lt;ul&gt;</code>).</p>
<h3>Au final</h3>
<p>J&#8217;ai mis à peu près 2 jours pour tout intégrer et optimiser. Je n&#8217;ai pas encore tenté l&#8217;optimisation à coup de <acronym title="Portable Network Graphics">PNG</acronym> 8 grâce aux quelques Ko gagnés avec <a href="http://pmt.sourceforge.net/pngcrush/">pngcrush</a>. Il faudrait également que je réunisse quelques images dans un seul et même sprite pour gagner encore quelques dizièmes de seconde en temps de chargement.</p>
<div id="attachment_1349" class="wp-caption aligncenter" style="width: 414px"><img class="size-full wp-image-1349" title="Rapport YSlow" src="http://case.oncle-tom.net/images/2009/04/caseoncle-tomnet-yslow.png" alt="Rapport YSlow" width="404" height="398" /><p class="wp-caption-text">Rapport YSlow</p></div>
<p>J&#8217;en ai profité pour tester l&#8217;utilisation de <em>mod_expires</em> et <em>mod_gzip</em> chez OVH en mutualisé (avant de tout migrer sur serveur dédié) : ça marche plutôt très bien. Si ça vous intéresse, je peux en faire un billet dédié. D&#8217;ici là, n&#8217;hésitez pas à bouquiner <a href="http://case.oncle-tom.net/2008/07/15/high-performance-web-sites/">High Performances Web Sites</a> qui reste une référence en la matière. J&#8217;attends d&#8217;ailleurs sa suite avec impatience : <em>Even Faster Web Sites: Essential Knowledge for Frontend Engineers</em>.</p>
<p>Quoiqu&#8217;il en soit, le fait d&#8217;avoir eu la pleine utilisation des sélecteurs <acronym title="Cascading Style Sheets">CSS</acronym> a été géniale : la vie est grandement facilitée. <em>inline-block</em> évite de nombreuses bidouilles à base de flottants. J&#8217;ai hâte qu&#8217;une version de <em>Blueprint</em> sorte en se basant uniquement sur les sélecteurs avancés et non des flottants pour disposer de mises en forme plus complexes tout en étant facile d&#8217;accès.</p>
<p>Si vous rencontrez des problèmes, surtout n&#8217;hésitez pas à les signaler, par le <a href="#respond">biais des commentaires</a> ou par <a href="/contact/">email</a> <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>En attendant, je retourne sur mon <a href="http://case.oncle-tom.net/2009/02/24/faire-part-de-naissance/">projet éprouvant du moment</a> !</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/12/25/bonnes-pratiques-firebug-developpement-web/" title="Firebug : bonnes pratiques pour le développement Web (25 décembre 2007)">Firebug : bonnes pratiques pour le développement Web</a> (9 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/" title="Transcender CSS : sublimez le design Web ! (11 décembre 2007)">Transcender CSS : sublimez le design Web !</a> (15 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2009/01/20/everything-you-know-about-css-is-wrong/" title="Everything You Know About CSS Is Wrong! (20 janvier 2009)">Everything You Know About CSS Is Wrong!</a> (11 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/04/22/emu-nova-21-coulisses-dune-refonte-ergonomique-et-visuelle/" title="Emu Nova 2.1 : coulisses d&#8217;une refonte ergonomique et visuelle (22 avril 2008)">Emu Nova 2.1 : coulisses d&#8217;une refonte ergonomique et visuelle</a> (5 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/11/25/developpement-efficace-frameworks-css/" title="Développement efficace avec les frameworks CSS (25 novembre 2008)">Développement efficace avec les frameworks CSS</a> (22 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=Wlm_qGx5yCU:_Zj1DeXr-p0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=Wlm_qGx5yCU:_Zj1DeXr-p0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?i=Wlm_qGx5yCU:_Zj1DeXr-p0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?a=Wlm_qGx5yCU:_Zj1DeXr-p0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LaCaseDeLoncTom?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/Wlm_qGx5yCU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/04/15/menage-printemps/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/04/15/menage-printemps/</feedburner:origLink></item>
		<item><title>High Performance Web Sites :: don’t use @import [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/LcdQ5Ha7fYY/</link><category>cleverplanet css performances browsers web browser:ie webdev optimization html bestpractice</category><dc:creator>oncletom</dc:creator><pubDate>Thu, 09 Apr 2009 15:01:11 PDT</pubDate><guid isPermaLink="false">http://www.stevesouders.com/blog/2009/04/09/dont-use-import/</guid><description>Une bonne pratique très simple : ne pas utiliser de règle @import pour favoriser le téléchargement en parallèle des ressources. En plus, ça évite des bugs sous IE.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/LcdQ5Ha7fYY" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/css" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/performances" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/browsers" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/web" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/browser%3Aie" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/webdev" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/optimization" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/html" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/bestpractice" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://www.stevesouders.com/blog/2009/04/09/dont-use-import/</feedburner:origLink></item><item><title>Sideline [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/VheheeZkdOg/</link><category>twitter yahoo sideline adobe:air tool monitor trend opportunity clevermarks</category><dc:creator>oncletom</dc:creator><pubDate>Sat, 04 Apr 2009 13:32:45 PDT</pubDate><guid isPermaLink="false">http://sideline.yahoo.com/</guid><description>Outil de veille sur des mots-clés basés sur les conversations de Twitter. Possibilité de créer des recherches avancées, de créer des groupes de mots et de veiller sur les tendances du moment.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/VheheeZkdOg" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/twitter" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/yahoo" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/sideline" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/adobe%3Aair" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/tool" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/monitor" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/trend" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/opportunity" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/clevermarks" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://sideline.yahoo.com/</feedburner:origLink></item><item><title>Building Fast Client-side Searches [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/J-AZjTt4DdE/</link><category>clevermarks webdev javascript optimization json regexp benchmark xml performances flickr</category><dc:creator>oncletom</dc:creator><pubDate>Wed, 18 Mar 2009 14:28:28 PDT</pubDate><guid isPermaLink="false">http://code.flickr.com/blog/2009/03/18/building-fast-client-side-searches/</guid><description>Cas concret de benchmark d&amp;#039;utilisation d&amp;#039;XML, JSON ou fichier texte pour le parser et générer un champ d&amp;#039;autocomplétion.

Bilan : les expressions régulières en JavaScript sont surpuissantes !&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/J-AZjTt4DdE" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/clevermarks" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/webdev" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/javascript" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/optimization" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/json" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/regexp" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/benchmark" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/xml" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/performances" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/flickr" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://code.flickr.com/blog/2009/03/18/building-fast-client-side-searches/</feedburner:origLink></item><item><title>Michel Edouard Leclerc [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/4Z6_7Mb5XOA/</link><category>blog business entreprise livre:reussirsonblogprofessionnel leclerc patron transparence</category><dc:creator>oncletom</dc:creator><pubDate>Sun, 08 Mar 2009 07:38:28 PDT</pubDate><guid isPermaLink="false">http://www.michel-edouard-leclerc.com/blog/</guid><description>Blog officiel de Michel Édouard Leclerc où il endosse sa casquette de patron, consommateur et de contre-parole de journaliste.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/4Z6_7Mb5XOA" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/blog" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/business" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/entreprise" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/livre%3Areussirsonblogprofessionnel" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/leclerc" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/patron" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/transparence" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://www.michel-edouard-leclerc.com/blog/</feedburner:origLink></item><item><title>JavaScript best practices [del.icio.us]</title><link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/Xumd5HA_YdI/</link><category>cleverplanet javascript bestpractice optimization</category><dc:creator>oncletom</dc:creator><pubDate>Fri, 06 Mar 2009 06:25:52 PST</pubDate><guid isPermaLink="false">http://dev.opera.com/articles/view/javascript-best-practices/</guid><description>Conseils et bonnes pratiques pour un JavaScript plus facilement maintenable, performant et fonctionnel.

Une bonne base pour faire mieux.&lt;img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/Xumd5HA_YdI" height="1" width="1"/&gt;</description><taxo:topics xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
      <rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
        <rdf:li rdf:resource="http://delicious.com/oncletom/cleverplanet" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/javascript" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/bestpractice" />
        <rdf:li rdf:resource="http://delicious.com/oncletom/optimization" />
      </rdf:Bag>
    </taxo:topics><cc:license xmlns:cc="http://web.resource.org/cc/" cc:license="http://creativecommons.org/licenses/by-nc-nd/2.5/" /><feedburner:origLink>http://dev.opera.com/articles/view/javascript-best-practices/</feedburner:origLink></item><item>
		<title>Faire-part de naissance</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/2HqhXNWHfw0/</link>
		<comments>http://case.oncle-tom.net/2009/02/24/faire-part-de-naissance/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 06:00:00 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Pour le plaisir]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[accès libre]]></category>

		<category><![CDATA[eyrolles]]></category>

		<category><![CDATA[livre]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1324</guid>
		<description>Comme je ne savais plus quoi faire de mes journées, j&amp;#8217;ai tenté le coup.
Le petit se porte bien et devrait voir le jour aux alentours du mois de juin 2009. Le prénom n&amp;#8217;est pas encore officiel, ça peut encore changer.
Un grand merci à celles et ceux qui subissent et vont subir mon autarcie jusqu&amp;#8217;à l&amp;#8217;accouchement [...]</description>
			<content:encoded><![CDATA[<p><a class="tt-flickr tt-flickr-Medium" title="Faire-part de naissance Eyrolles" href="http://www.flickr.com/photos/the-jedi/3303892997/"><img class="aligncenter" src="http://farm4.static.flickr.com/3098/3303892997_e5f52a6e84.jpg" alt="Faire-part de naissance Eyrolles" width="500" height="334" /></a></p>
<p><span id="more-1324"></span></p>
<p>Comme je ne savais plus quoi faire de mes journées, j&#8217;ai tenté le coup.<br />
Le petit se porte bien et devrait voir le jour aux alentours du mois de <em>juin 2009</em>. Le prénom n&#8217;est pas encore officiel, ça peut encore changer.</p>
<p>Un grand merci à celles et ceux qui subissent et vont subir mon autarcie jusqu&#8217;à l&#8217;accouchement <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><br />
C&#8217;est d&#8217;ailleurs pourquoi je vais légèrement ralentir la cadence sur le blog en passant à 1 billet toutes les 2 semaines maximum.</p>
<p>On se tient au courant pour les festivités.</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/" title="Transcender CSS : sublimez le design Web ! (11 décembre 2007)">Transcender CSS : sublimez le design Web !</a> (15 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/08/05/pourquoi-bloguer-dans-contexte-affaires/" title="Pourquoi bloguer dans un contexte d&#8217;affaires ? (5 août 2008)">Pourquoi bloguer dans un contexte d&#8217;affaires ?</a> (4 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/07/15/high-performance-web-sites/" title="High Performance Web Sites (15 juillet 2008)">High Performance Web Sites</a> (5 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2009/01/20/everything-you-know-about-css-is-wrong/" title="Everything You Know About CSS Is Wrong! (20 janvier 2009)">Everything You Know About CSS Is Wrong!</a> (11 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=Kmm8HCFd"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=wXib8Oo9"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=wXib8Oo9" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=Ys4BN0yV"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/2HqhXNWHfw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/02/24/faire-part-de-naissance/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/02/24/faire-part-de-naissance/</feedburner:origLink></item>
		<item>
		<title>Non à l’adoption de la loi Hadopi !</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/9bIjlcrr64I/</link>
		<comments>http://case.oncle-tom.net/2009/02/11/non-adoption-loi-hadopi/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 06:00:24 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[dadvsi]]></category>

		<category><![CDATA[drm]]></category>

		<category><![CDATA[hadopi]]></category>

		<category><![CDATA[loi]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1318</guid>
		<description>Sans verser dans la politique, j&amp;#8217;aimerais quand même attirer l&amp;#8217;attention du public sur le prochain vote de la loi Hadopi à l&amp;#8217;Assemblée Nationale. Son contenu est basé sur les recommandations de Denis Olivennes qui a été jusque très récemment le patron de la non moins connue FNAC.
Si on peut louer son combat contre les DRM, [...]</description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Sous les barreaux" src="http://case.oncle-tom.net/images/Actualite/Derriere-les-barreaux_Legend-of-the-bat.jpg" alt="" width="373" height="173" /></p>
<p>Sans verser dans la politique, j&#8217;aimerais quand même attirer l&#8217;attention du public sur le prochain vote de la loi Hadopi à l&#8217;Assemblée Nationale. Son contenu est basé sur les recommandations de Denis Olivennes qui a été jusque très récemment le patron de la non moins connue FNAC.</p>
<p>Si on peut louer son combat contre les DRM, je regrette en revanche la<strong> tournure répressive</strong> et cette volonté de prendre contrôle du plus grand espace créatif du monde : l&#8217;Internet.</p>
<p>Alors j&#8217;ai écris à mon député, <a href="http://www.noelmamere.fr/">Noël Mamère</a>, pour lui demander de <a href="http://fr.readwriteweb.com/2009/02/10/a-la-une/votez-pour-ou-contre-la-loi-hadopi/">voter contre cette loi</a>.</p>
<p><span id="more-1318"></span></p>
<h3>Hadopi et DADVSI, même combat</h3>
<p>Pour vous faire une autre idée d&#8217;Hadopi, loi Olivennes ou &#8220;Création et Internet&#8221;, voici davantage de ressources :</p>
<ul>
<li><a href="http://fr.wikipedia.org/wiki/Loi_Hadopi">loi Hadopi sur Wikipédia</a></li>
<li><a href="http://www.numerama.com/magazine/9872-Riposte-gradue-o-seront-les-preuves.html">Riposte graduée : où sont les preuves ?</a></li>
<li><a href="http://www.numerama.com/magazine/9854-10-bonnes-raisons-de-dire-NON-a-la-loi-Hadopi.html">10 bonnes raisons de dire NON à la loi Hadopi</a></li>
<li><a href="http://case.oncle-tom.net/tag/drm/">mes précédents articles sur les DRM et les verrous numériques</a></li>
</ul>
<p>Juste comme ça, même l&#8217;Europe est contre cette loi. Youpi !</p>
<h3>L&#8217;email adressé à mon député</h3>
<blockquote><p>Monsieur le Député,</p>
<p>Vous êtes le député de ma circonscription (Villenave d&#8217;Ornon) et c&#8217;est à ce titre que je vous écris.</p>
<p>Vous allez être appelé(e) à voter, au mois de mars prochain, une loi proposée par le gouvernement nommée &#8216;Création et Internet&#8217;, plus connue sous le nom de loi Hadopi. Je tiens par le présent email à vous signifier mon opposition à cette loi, qui non seulement bafoue plusieurs principes de base de notre démocratie, comme la présomption d&#8217;innocence (loi Française, elle même basée sur l&#8217;article 11 de la Déclaration des Droits de l&#8217;Homme), l&#8217;obligation de séparation des fonctions judiciaires et administratives (article 13 de la constitution Française voté en 1790), ainsi que bien d&#8217;autres irrégularités qui en font dès aujourd&#8217;hui une loi d&#8217;exception.Comme vous le savez par ailleurs, l&#8217;Europe s&#8217;est opposée à cette loi et ne manquera pas de le faire à nouveau, de même que la CNIL, l&#8217;AFA, l&#8217;ISOC, et de très nombreuses autorités reconnues sur le plan international.</p>
<p>Je tiens à vous rappeler par ailleurs qu&#8217;à ce jour, aucune étude scientifique n&#8217;a réussi à prouver que le partage de fichiers protégé par le droit d&#8217;auteur ai le moindre impact sur la vente de disques ou de DVDs, bien au contraire, de nombreuses études tendent à prouver le contraire. Quant à la rénumération des auteurs, d&#8217;autres études montrent, elles, la corrélation entre le partage de fichier et l&#8217;explosion récente des arts vivants, offrant une rénumération à un nombre bien plus large d&#8217;artistes que n&#8217;en offraient jadis les ventes de disques.</p>
<p>Cette loi, écrite pour les lobbys de l&#8217;industrie de la Culture, n&#8217;a pas d&#8217;autre but que de soutenir leurs modèles économiques vieillissants. En effet, les ventes records d&#8217;artistes tels que &#8216;Nine Inch Nails&#8217; ou &#8216;Radiohead&#8217;, qui offraient pourtant gratuitement leurs albums musicaux à télécharger, le succès massif de films tels que &#8216;Les Ch&#8217;tits&#8217; de Danny Boon ou &#8216;Taken&#8217; de Luc Besson, qui ont pourtant été parmi les plus piratés l&#8217;année dernière, montre, s&#8217;il en était besoin, qu&#8217;aucune corrélation ne peut être établie entre téléchargement illégal et baisse des ventes.</p>
<p>Le partage de fichier a par ailleurs considérablement démocratisé l&#8217;accès à la Culture, et suscité des appétits autrefois inimaginables, dont l&#8217;industrie de la Culture - même s&#8217;il ne s&#8217;agit plus des mêmes acteurs - continue largement de bénéficier.<br />
Je ne souhaite pas que l&#8217;on sacrifie nos libertés individuelles pour la Gloire de la croissance. Cette loi ne changera pas le comportement des gens mais au contraire, ne pourra qu&#8217;attiser la colère, dont la mienne.</p>
<p>En tant que citoyen, et plus encore en tant qu&#8217;électeur, je vous demande de ne pas voter en faveur de cette loi.</p>
<p>Je vous prie de croire, Monsieur le Député, à l&#8217;expression de mes sentiment respectueux.</p></blockquote>
<h3>Le mot de la fin</h3>
<p>Je vous encourage à vous exprimer vous aussi contre cette loi. S&#8217;il faut effectivement punir le piratage, il ne faut pas négliger l&#8217;apport de cet afflux de culture. Pourquoi ne pas réfléchir à une hybridation ou à un moyen de mettre à contribution l&#8217;Internet de manière intelligente pour que tout le monde y gagne : citoyens comme créateurs.</p>
<p>L&#8217;Internet est la nouvelle plate-forme de partage et cette loi n&#8217;y changera rien. Elle se plante complètement.<br />
Si on pouvait éviter un massacre de plus ça serait tellement bien &#8230;</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/01/24/un-drm-peut-en-cacher-un-autre/" title="Un DRM peut en cacher un autre (24 janvier 2007)">Un DRM peut en cacher un autre</a> (5 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/05/03/digg-prise-pouvoir-cle-dechiffrage-hd-dvd-blu-ray/" title="Prise de pouvoir sur Internet à cause d&#8217;une clé de déchiffrage des DVD Haute Définition (3 mai 2007)">Prise de pouvoir sur Internet à cause d&#8217;une clé de déchiffrage des DVD Haute Définition</a> (0 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2006/11/08/msn-music-mp3-drm-dtc/" title="MSN + MP3 + DRM = DTC (8 novembre 2006)">MSN + MP3 + DRM = DTC</a> (6 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/07/10/iphone-beaute-frustration/" title="iPhone : beauté et frustration au bout des doigts (10 juillet 2008)">iPhone : beauté et frustration au bout des doigts</a> (18 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/02/13/choix-liberte-windows-linux/" title="Du choix de la liberté (13 février 2007)">Du choix de la liberté</a> (7 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=488swRC6"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=UBILjyxm"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=UBILjyxm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=yCuFZjqJ"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/9bIjlcrr64I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/02/11/non-adoption-loi-hadopi/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/02/11/non-adoption-loi-hadopi/</feedburner:origLink></item>
		<item>
		<title>Pourquoi apprendre quand Google le sait ?</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/hXC3DzC_Sp0/</link>
		<comments>http://case.oncle-tom.net/2009/02/10/pourquoi-apprendre-quand-google-sait/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 06:00:26 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[aec]]></category>

		<category><![CDATA[bordeaux]]></category>

		<category><![CDATA[débat numérique]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[ijba]]></category>

		<category><![CDATA[le monde]]></category>

		<category><![CDATA[mémoire]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1308</guid>
		<description>Le débat numérique est un évènement bordelais que j&amp;#8217;affectionne et auquel j&amp;#8217;aime me rendre tous les trimestres. Il confronte un journaliste, un expert et le public sur une thématique choisie pendant 1h30 &amp;#8230; un débat en somme.
Ce mois-ci la thématique était liée à Google, la disposition du savoir et l&amp;#8217;influence que ça a sur notre [...]</description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1313" title="L'actualités d'AEC" src="http://case.oncle-tom.net/images/2009/02/aec-actualites.png" alt="L'actualités d'AEC" width="313" height="81" /></p>
<p>Le <a href="http://www.aecom.org/blog/rdv/labels/debat numerique.html">débat numérique</a> est un évènement bordelais que j&#8217;affectionne et auquel j&#8217;aime me rendre tous les trimestres. Il confronte un journaliste, un expert et le public sur une thématique choisie pendant 1h30 &#8230; un débat en somme.</p>
<p>Ce mois-ci la thématique était liée à <strong>Google, la disposition du savoir et l&#8217;influence</strong> que ça a sur notre acquisition du savoir. Ce débat illustrait l&#8217;article d&#8217;<em>Hervé Morin</em> intitulé &#8220;<a href="http://www.lemonde.fr/cgi-bin/ACHATS/acheter.cgi?offre=ARCHIVES&amp;type_item=ART_ARCH_30J&amp;objet_id=1017052">La mémoire court-circuitée</a>&#8220;.<br />
Un débat intéressant une fois de plus mais trop trempé dans le pessimisme si caractéristique de la France.</p>
<p><span id="more-1308"></span></p>
<h3>Apprendre ou reposer sur les connaissances entreposées sur le Web</h3>
<p>&#8220;<a href="http://www.aecom.org/blog/rdv/2009/01/le-dbat-numrique-pourquoi-apprendre.html">Pourquoi apprendre quand Google le sait ? La mémoire court-circuitée par le Net</a>&#8220;, un titre un brin provocateur mais qui reflète un certain état d&#8217;esprit. Nous cherchons et apprenons différemment depuis que l&#8217;Internet haut-débit et le développement de Google ont gagné la majorité des foyers des pays dits civilisés.</p>
<p>Cela sous-entendrait que nous apprendrions moins par simple facilité, parce que l&#8217;information est au bout du clic.<br />
Il ressort que grâce à l&#8217;immensité du savoir à disposition, <strong>nous priorisons différemment les connaissances à apprendre</strong> : nous apprenons désormais ce dont nous avons besoin et pas nécessairement avec comme objectif de le mémoriser pendant 20 ans.</p>
<p>Au final, le résumé de fin de séance le montrait bien, je trouve qu&#8217;on restait sur un <strong>sentiment de peur en occultant trop les avantages</strong> que l&#8217;on pouvait en tirer. En vrac, des idées qui m&#8217;ont marqué :</p>
<ul>
<li>uniformisation des sources d&#8217;information : on tape <em>Espagne</em> et que l&#8217;on se contente des premiers résultats pour rédiger un exposé</li>
<li>il n&#8217;y a pas de neutralité dans les résultats : Google est là pour gagner de l&#8217;argent et donc favoriser ceux qui lui en rapportent</li>
<li>les profs n&#8217;aiment pas Wikipédia</li>
<li>les élèves remettent en cause les connaissances des professeurs en allant chercher sur le Web</li>
<li>les patients vont voir le médecin en s&#8217;étant renseigné sur les symptômes et les traitements possibles</li>
<li>les personnes défavorisées restent défavorisées avec ou sans Google</li>
<li>on fait comment sans Google ?</li>
</ul>
<p>Alors certes c&#8217;est un débat, certains de ces points sont légitimes, d&#8217;autres moins. Au fond, <a href="http://case.oncle-tom.net/2008/03/11/google-ange-demon-vie-numerique/">faut-il confier notre vie numérique à Google ?</a></p>
<h3>Un vrai-faux débat : parlons éducation !</h3>
<p><img class="aligncenter size-full wp-image-1314" title="Logo Wikipédia - L'encyclopédie libre" src="http://case.oncle-tom.net/images/2009/02/wikipedia.png" alt="Logo Wikipédia - L'encyclopédie libre" width="135" height="155" /></p>
<p>J&#8217;ai souris en entendant cette histoire de personnes défavorisées. Aujourd&#8217;hui, le minimum requis pour accéder à la culture c&#8217;est un ordinateur, une connexion Internet et savoir lire. Ce n&#8217;est certes pas une école d&#8217;ingénieurs ou un institut de recherche mais c&#8217;est le Web est devenu la porte d&#8217;entrée vers le savoir. Tout le monde l&#8217;utilise à la hauteur de son besoin.</p>
<p>Vous savez quoi ? Tout ceci <strong>coûte beaucoup moins cher</strong> que la <a href="http://www.universalis.fr/boutique/Encyclopaedia_Universalis_en_30_volumes_Edition_2008.htm">collection intégrale de l&#8217;Encycloædia Universalis</a> (~3600€). Elle aura tous les mérites du monde, le Web restera toujours plus ouvert et malléable.</p>
<p>Le Web est un outil nouveau (enfin, plus tant que ça) et comme tout changement, soit on s&#8217;adapte, soit on est condamné à rester sur le carreau. Si des personnes choisissent de ne s&#8217;intéresser au Web que maintenant, elles ont un train de retard. C&#8217;est d&#8217;autant plus dommageable si ces personnes sont en salle des profs. Les élèves se renseignent sur les cours reçus pour compléter ou vérifier les connaissances des professeurs. C&#8217;est plus dur pour un prof mais c&#8217;est beaucoup plus enrichissant : il y a là un <strong>nouveau levier d&#8217;apprentissage</strong> et de construction du savoir.</p>
<p>De nombreux enseignants et chercheurs utilisent le Web, tels qu&#8217;<a href="http://www.arhv.lhivic.org/">André Gunthert</a> ou <a id="link_1" href="http://affordance.typepad.com/">Olivier Ertzscheid</a>. Si vous n&#8217;y participez pas, il faut au moins l&#8217;utiliser.</p>
<p>Pourquoi l&#8217;utiliser ? Pour le <strong>maîtriser et le dispenser à vos élèves</strong>. L&#8217;enseignant a pour vocation de structurer la pensée et aider à la construction de leur raisonnement. Comment chercher dans un moteur de recherche, savoir reconnaître un bon site d&#8217;un mauvais, identifier les publicités, l&#8217;intérêt des wiki, l&#8217;utilisation des blogs comme journaux personnels, la confidentialités des données sont autant de thèmes qui devraient être au moins évoqués en cours si ce n&#8217;est enseignés.</p>
<p>On avait droit à des cours d&#8217;éducation civique, pourquoi pas des <strong>cours d&#8217;éducation numérique</strong> ? Après tout, nous sommes tous citoyens de l&#8217;Internet.</p>
<p>Et si on en revient à notre hypothèse de départ, à savoir que la concentration du savoir sur le Web est dangereuse, on se rend compte qu&#8217;au final, c&#8217;est la mauvaise utilisation, la non-utilisation et le manque de recul vis à vis de l&#8217;information qui sont dangereux &#8230; pas l&#8217;étalage des connaissances.</p>
<h3>N&#8217;oublions pas la réalité : rien n&#8217;est éternel</h3>
<div id="attachment_1310" class="wp-caption aligncenter" style="width: 310px"><a href="http://soupsoup.tumblr.com/post/72097686/put-the-camera-down-and-enjoy-a-moment-for-once"><img class="size-medium wp-image-1310" title="Parterre de téléphones mobiles devant Barrack Obama" src="http://case.oncle-tom.net/images/2009/02/obama-parterre-photos-300x236.png" alt="Parterre de téléphones mobiles devant Barrack Obama" width="300" height="236" /></a><p class="wp-caption-text">Parterre de téléphones mobiles devant Barrack Obama</p></div>
<p>Ce qui m&#8217;amène à citer une fois de plus un article de <a href="http://www.readwriteweb.com">ReadWriteWeb</a> intitulé &#8220;<a href="http://www.readwriteweb.com/archives/technology_is_great_but_are_we_forgetting_to_live.php">Technology is Great, but Are We Forgetting to Live?</a>&#8220;. En bon français &#8220;La technologie c&#8217;est bien mais n&#8217;oublions-nous pas de vivre ?&#8221;.</p>
<p>Le rapport avec tout ça ? On pense peut-être un poil trop au <em>partage</em> et moins à l&#8217;assimilation. Nos souvenirs, c&#8217;est ce qui nous restera une fois les ordinateurs éteints et débranchés. C&#8217;est ce qu&#8217;on racontera à nos enfants. C&#8217;est <strong>tout</strong>.<br />
Il faut vivre avec le progrès, l&#8217;utiliser au mieux en ayant en tête que ce n&#8217;est pas un dû ni éternel. Une panne de courant, une tempête et nous revenons à l&#8217;âge de pierre.</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2008/09/16/la-generation-y-bouscule-le-monde-du-travail/" title="La génération Y bouscule le monde du travail (16 septembre 2008)">La génération Y bouscule le monde du travail</a> (7 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/06/24/quand-jaiku-surpassera-twitter/" title="Quand Jaiku surpassera Twitter (24 juin 2008)">Quand Jaiku surpassera Twitter</a> (6 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/08/05/pourquoi-bloguer-dans-contexte-affaires/" title="Pourquoi bloguer dans un contexte d&#8217;affaires ? (5 août 2008)">Pourquoi bloguer dans un contexte d&#8217;affaires ?</a> (4 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/02/23/opensearch-et-google-adsense/" title="OpenSearch et Google AdSense (23 février 2007)">OpenSearch et Google AdSense</a> (3 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/10/16/migration-google-apps/" title="Migration vers Google Apps (16 octobre 2007)">Migration vers Google Apps</a> (7 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=cVhQXgGF"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=zNPfbJbz"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=zNPfbJbz" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=UKwLqWTr"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/hXC3DzC_Sp0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/02/10/pourquoi-apprendre-quand-google-sait/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/02/10/pourquoi-apprendre-quand-google-sait/</feedburner:origLink></item>
		<item>
		<title>Ajouter TinyMCE dans un plugin WordPress</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/z1Oo-4jeqqg/</link>
		<comments>http://case.oncle-tom.net/2009/02/03/ajouter-tinymce-plugin-wordpress/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 06:00:39 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Emu Nova]]></category>

		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[firebug]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[tinymce]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1297</guid>
		<description>J&amp;#8217;ai eu besoin récemment d&amp;#8217;inclure un éditeur visuel dans un plugin Wordpress. Je pensais que c&amp;#8217;était une tâche aisée sans chercher sur Google : il n&amp;#8217;y avait qu&amp;#8217;à faire comme les développeurs de Wordpress !
J&amp;#8217;ai pensé à tort et ça m&amp;#8217;a confirmé une fois de plus que le code source de Wordpress était un joyeux [...]</description>
			<content:encoded><![CDATA[<p><a href="http://case.oncle-tom.net/images/2009/04/wordpress-badge.png"><img class="aligncenter size-thumbnail wp-image-1347" title="WordPress Logo" src="http://case.oncle-tom.net/images/2009/04/wordpress-badge-138x138.png" alt="WordPress Logo" width="138" height="138" /></a></p>
<p>J&#8217;ai eu besoin récemment d&#8217;inclure un éditeur visuel dans un plugin Wordpress. Je pensais que c&#8217;était une tâche aisée sans chercher sur Google : il n&#8217;y avait qu&#8217;à faire comme les développeurs de Wordpress !</p>
<p>J&#8217;ai pensé à tort et ça m&#8217;a confirmé une fois de plus que le code source de Wordpress était un joyeux bazar.<br />
<span id="more-1297"></span></p>
<h3>Le besoin</h3>
<p>Mon besoin était tout bête : sur une seule page de mon plugin, j&#8217;avais besoin de transformer un bête champ texte en éditeur avancé avec possibilité d&#8217;uploader des images et tout ça.</p>
<p>Avec ce simple besoin, j&#8217;ai cependant constaté :</p>
<ol>
<li>qu&#8217;il était <strong>pénible</strong> de remonter le cheminement logique de l&#8217;éditeur jusqu&#8217;à l&#8217;inclusion des scripts</li>
<li>qu&#8217;il n&#8217;y a <strong>pas de façon standard</strong> d&#8217;ajouter l&#8217;éditeur : il y a bien une fonction <code>wp_tiny_mce</code> mais elle ne fait pas tout &#8230; c&#8217;est à dire que sans inclure ses dépendances (non documentées), cette fonction n&#8217;est d&#8217;aucune utilité</li>
<li>qu&#8217;on trouve <strong>à boire et à manger</strong> dans le code de Wordpress. Pour le <cite>code is poetry</cite>, on est plutôt proche du SMS kikoololesque</li>
</ol>
<p>Après avoir trouvé ma solution, je suis cependant tombé sur un <a href="http://blog.zen-dreams.com/fr/2008/11/06/how-to-include-tinymce-in-your-wp-plugin/">article expliquant comment inclure TinyMCE dans Wordpress</a>. Elle est juste mais nous verrons que seule la moitié du chemin a été faite avec.</p>
<h3>La solution</h3>
<pre><code class="php">&lt;?php
add_action('admin_menu', 'include_tinymce');

function include_tinycme()
{
  add_action('admin_head', 'wp_tiny_mce');
  wp_enqueue_script('jquery-ui-core');
  wp_enqueue_script('jquery-ui-tabs');
  wp_enqueue_script('editor');
  wp_enqueue_script('media-upload');
  add_thickbox();
}</code></pre>
<p>Plusieurs remarques par rapport à ce code :</p>
<ul>
<li><strong>Le choix de l&#8217;action</strong><br />
Le mien s&#8217;est porté sur <em>admin_menu</em>. Vous pourriez en choisir une autre, du moment qu&#8217;elle s&#8217;exécute <em>avant</em> admin_head. J&#8217;ai choisi celle-là parce que c&#8217;est là que j&#8217;y construis les menus de l&#8217;administration : WordPress est initialisé et n&#8217;a pas encore été affiché.</li>
<li><strong>Le choix wp_enqueue_script</strong><br />
J&#8217;aurais pu caller cette fonction en tant que filtre de <code>admin_head</code> et utiliser la fonction <code>print_script</code> MAIS je soupçonne cette dernière fonction de ne pas vérifier si un autre script du même nom a été inclus.<br />
J&#8217;ai choisi de ne pas créer de conflit : <code>wp_enqueue_script</code> ne chargera qu&#8217;1 fois et 1 seule le script nommé. Pas de chichi.</li>
<li><strong>L&#8217;inclusion de l&#8217;éditeur</strong><br />
Pour afficher l&#8217;éditeur, il suffira d&#8217;appeler la fonction <code>the_editor()</code> en lieu et place de son <code>textarea</code>. Vous noterez toutefois que vous serez obligé(e)s de nommer l&#8217;éditeur <em>content</em> sous peine de devoir ajouter quelques filtres supplémentaires.</li>
</ul>
<p>Après à vous de vous débrouiller avec l&#8217;architecture de votre plugin. Personnellement j&#8217;ai tout basculé dans des classes depuis un bon moment pour éviter tout conflit de nom.</p>
<h3>La solution optimisée</h3>
<p>Cependant ne crions pas victoire si vite : avec ce qu&#8217;on a fait, nous avons juste réussi à inclure TinyMCE sur <em>toutes</em> les pages de l&#8217;admin WordPress. Ce n&#8217;est pas ce que je recommanderai pour deux raisons :</p>
<ol>
<li>le respect des performances utilisateurs : charger 150Ko de JavaScript pour rien sur une page sans TinyMCE, c&#8217;est du gâchis</li>
<li>on ne fait pas une généralité pour une exception</li>
</ol>
<p>Heureusement pour nous WordPress est <em>bien fichu</em> car il nous fournit 2 variables globales (*hm*) d&#8217;exception :</p>
<ul>
<li><strong>$plugin_page</strong><br />
Cette variable contient le nom de la page renseignée par les méthodes <code>add_management_page()</code> et <code>add_options_page()</code>. On aurait pu passer directement par <a href="http://codex.wordpress.org/Plugin_API/Action_Reference">admin_print_script*</a> mais il faisait flemme d&#8217;ajouter une fonction de plus.<br />
Exemple :</p>
<pre><code class="php">&lt;?php
add_management_page('Titre', 'Label', 8, 'test_management_page', 'mon_callback');
//$plugin_page vaudra 'test_management_page'</code></pre>
</li>
<li><strong>$pagenow</strong><br />
Cette variable contient le nom du fichier actuellement exécuté.<br />
Si vous vous trouvez sur <kbd>wp-admin/tools.php?page=test_management_page</kbd>, <code>$pagenow</code> vaudra <code>tools.php</code></li>
</ul>
<p>Avec ces deux variables, on est capable de charger ce qu&#8217;on veut, où on veut et quand on veut.</p>
<p>Au final, ça nous donnerait ceci :</p>
<pre><code class="php">&lt;?php
add_action('admin_menu', 'include_tinymce');

function include_tinycme()
{
  global $plugin_page;
  if ($plugin_page === 'test_management_page')
  {</code><code class="php">
    add_action('admin_head', 'wp_tiny_mce');
    wp_enqueue_script('jquery-ui-core');
    wp_enqueue_script('jquery-ui-tabs');
    wp_enqueue_script('editor');
    wp_enqueue_script('media-upload');
    add_thickbox();</code>
<code class="php">  }
}</code></pre>
<p>Là on a bien terminé le travail.</p>
<h3>Conclusion</h3>
<p>Il n&#8217;y a au final pas grand chose à chose à ajouter pour disposer de TinyMCE. Encore faut-il le savoir.</p>
<p>On peut cependant regretter le manque de flexibilité de cette manipulation :</p>
<ul>
<li>j&#8217;ai definé la liste des fichiers en cherchant les noms de fonctions JavaScript manquantes (merci Firebug et l&#8217;affichage des exceptions en console)</li>
<li>la liste des dépendances de <code>wp_enqueue_script</code> n&#8217;est absolument pas complète : <em>editor</em> devrait appeler <em>wp_tiny_mce</em> et <em>media-upload</em> (voire <em>jquery-ui-*</em>)</li>
</ul>
<p>Un jour WordPress nettoiera son code pour faciliter la maintenance &#8230;</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/06/26/tableau-auto-extensible-en-javascript/" title="Tableau auto-extensible en JavaScript (26 juin 2007)">Tableau auto-extensible en JavaScript</a> (17 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/09/23/plugin-wordpress-amazon-widgets-shortcodes/" title="Plugin Wordpress Amazon Widgets Shortcodes (23 septembre 2008)">Plugin Wordpress Amazon Widgets Shortcodes</a> (8 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/07/23/conventions-de-programmation-necessaire-maturite/" title="Conventions de programmation : la nécessaire maturité (23 juillet 2008)">Conventions de programmation : la nécessaire maturité</a> (19 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/12/23/wordpress-svn-external/" title="Wordpress en tant que dépendance SVN (23 décembre 2008)">Wordpress en tant que dépendance SVN</a> (7 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/08/20/widget-jaiku-netvibes-presentation-bilan-developpement/" title="Widget Jaiku pour Netvibes : présentation et bilan du développement (20 août 2008)">Widget Jaiku pour Netvibes : présentation et bilan du développement</a> (5 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=YuzNVZLQ"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=G6UcnLJu"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=G6UcnLJu" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=qN0nNLar"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/z1Oo-4jeqqg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/02/03/ajouter-tinymce-plugin-wordpress/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/02/03/ajouter-tinymce-plugin-wordpress/</feedburner:origLink></item>
		<item>
		<title>Everything You Know About CSS Is Wrong!</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/Kbl8ezaj3Ng/</link>
		<comments>http://case.oncle-tom.net/2009/01/20/everything-you-know-about-css-is-wrong/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 06:00:44 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Standards du Web]]></category>

		<category><![CDATA[critique]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[css3]]></category>

		<category><![CDATA[grilles]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[livre]]></category>

		<category><![CDATA[sitepoint]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1287</guid>
		<description>En bon français : &amp;#8220;tout ce que vous savez des CSS est faux !&amp;#8221;. L&amp;#8217;heure n&amp;#8217;est pas à la déprime mais à la lecture de cet ouvrage par le site SitePoint. Il est écrit en anglais par Rachel Andrew et Kevin Yank.

Ce titre fortement accrocheur à la limite de l&amp;#8217;injure annonce la couleur : l&amp;#8217;ouvrage [...]</description>
			<content:encoded><![CDATA[<p>En bon français : &#8220;<strong>tout ce que vous savez des <acronym title="Cascading Style Sheets">CSS</acronym> est faux</strong> !&#8221;. L&#8217;heure n&#8217;est pas à la déprime mais à la lecture de cet ouvrage par le site <a href="http://sitepoint.com">SitePoint</a>. Il est écrit en anglais par Rachel Andrew et Kevin Yank.</p>
<p><img class="aligncenter size-medium wp-image-1288" title="Everything You Know About CSS Is Wrong" src="http://case.oncle-tom.net/images/2009/01/everything-you-know-about-css-is-wrong-300x300.jpg" alt="Everything You Know About CSS Is Wrong" width="300" height="300" /></p>
<p>Ce titre fortement accrocheur à la limite de l&#8217;injure annonce la couleur : l&#8217;ouvrage est censé vous expliquer que les techniques employées aujourd&#8217;hui ne sont que du bricolage et qu&#8217;on peut faire la même chose en plus propre et plus simple.</p>
<p>En route pour cette saine lecture &#8230; ou pas.<br />
<span id="more-1287"></span></p>
<h3>Chapitrage</h3>
<p><a href="http://www.sitepoint.com/books/csswrong1/">Everything You Know About <acronym title="Cascading Style Sheets">CSS</acronym> Is Wrong!</a> est découpé en 5 chapitres. Cela représente un volume d&#8217;une petite centaine de pages. En voici la structure :</p>
<ol>
<li>The Problem with <acronym title="Cascading Style Sheets">CSS</acronym></li>
<li><acronym title="Cascading Style Sheets">CSS</acronym> Table Layout</li>
<li><acronym title="Cascading Style Sheets">CSS</acronym> Table Solutions</li>
<li>Considering Older Browsers</li>
<li>The Road Ahead</li>
</ol>
<p>Si vous commencez à flairer le mauvais plan, vous n&#8217;avez pas tout à fait tort.</p>
<h3>display: table-cell au lieu de float/clear/margin</h3>
<p>Tel serait le <em>credo</em> de l&#8217;ouvrage. C&#8217;est en teneur ce qui y est distillé, ni plus ni moins.</p>
<p>Quand on y repense, aujourd&#8217;hui <strong>on utilise vraiment des techniques à la noix</strong> pour positionner les flux, pour imiter des colonnes de taille égale. Tout ça pourquoi ? Parce que le navigateur dominant du marché s&#8217;appelle Internet Explorer 6/7 et ne permet pas d&#8217;utiliser l&#8217;attribut <acronym title="Cascading Style Sheets">CSS</acronym> display: table-cell.<br />
Son utilité ? Donner à l&#8217;élément concerné le comportement d&#8217;un tableau : des cellules de hauteur égale et des colonnes notamment.</p>
<p>Les 2 premiers chapitres sont à ce titre très démonstratifs puisque simplement, on apprend à construire un habillage classique à 2 colonnes avec cette technique. Mais, à mon avis, le chapitre 3 est entièrement à jeter.</p>
<p>Le livre commence en nous expliquant qu&#8217;on utilise des techniques de barbare pour le rendu. Sauf que celles proposées pour palier aux lacunes de cette mise en page en tableaux ne valent pas beaucoup mieux : pas de solution générique possible, simulation de colspan et rowspan laborieuse &#8230; si j&#8217;ai été convaincu par la présentation en grille, je l&#8217;ai en revanche moins été par ces solutions proposées.</p>
<p>Le chapitre 4 explique avec plein de sous-entendus qu&#8217;Internet Explorer 6 et 7 &#8230; ben il faut arrêter. En tous cas pour utiliser le display: table-cell. Je pense que même sans cette technique on avait déjà envie de les balancer mais bon. Ça sera un argument de plus pour prôner cette solution.</p>
<p>Le chapitre 5, <em>The Road Ahead</em>, propose une présentation maintes fois vue et revue de l&#8217;avenir avec CSS3. Ça fait office de piqûre de rappel concernant le module <em>templates</em> et  <em>grille</em> notamment.</p>
<div id="attachment_1289" class="wp-caption aligncenter" style="width: 459px"><a href="http://css.alsacreations.com/xmedia/exemples/display/txt-2cols.png"><img class="size-full wp-image-1289" title="Texte 2 colonnes avec display: table-cell" src="http://case.oncle-tom.net/images/2009/01/txt-2cols.png" alt="Texte 2 colonnes avec display: table-cell" width="449" height="251" /></a><p class="wp-caption-text">Texte 2 colonnes avec display: table-cell</p></div>
<h3>Pourquoi je ne vous recommande pas son achat ?</h3>
<p>Parce qu&#8217;au final on se trouve face à <em>gros article</em> doublé d&#8217;un titre bon pour écouler des exemplaires. Il aurait pu s&#8217;appeler &#8220;<em>comment présenter en grille sans tableaux et sans flottants</em>&#8221; par exemple.</p>
<p>Sans vouloir relancer le fumeux débat du  Web contre les livres, je pense qu&#8217;il y a des articles sur display: table-cell plus courts, moins chers et tout à fait valables (<a href="http://www.digital-web.com/articles/everything_you_know_about_CSS_Is_wrong/">y compris leur article de présentation</a>), notamment sur <a href="http://css.alsacreations.com/Faire-une-mise-en-page-sans-tableaux/Mise-en-page-CSS-avancee-grace-a-la-propriete-display">Alsacréations</a>.<br />
Pour moitié prix, le contenu aurait pu passer. À 30$, j&#8217;en attends davantage &#8230;</p>
<p>Je recommande avec beaucoup plus de ferveur l&#8217;indémodable <a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/">Transcender <acronym title="Cascading Style Sheets">CSS</acronym></a> d&#8217;Andy Clarke.</p>
<p>Un dernier point toutefois : je ne suis pas convaincu qu&#8217;un <strong>rendu à l&#8217;identique au pixel près</strong> soit une solution d&#8217;avenir. Il ne faut pas espérer avoir un rendu identique à la maquette ni identique sur tous les naivgateurs (notamment au niveau de la colorimétrie). Je crois davantage à un support de fonctionnalités et des solutions alternatives pour les navigateurs ne supportant pas ces dites-fonctionnalités. De même qu&#8217;on n&#8217;a pas le même rendu de couleurs pour les téléviseurs (y compris HD), il est utopique de vouloir la même chose d&#8217;un site.</p>
<p>Depuis quelques mois je ne recommande plus à mes clients de supporter <acronym title="Internet Explorer 6">IE6</acronym> et ce, malgré ses 20% de parts de marché. Je préfère largement proposer une solution dégradée, toujours fonctionnelle mais moins jolie.<br />
Cette année je refonds le thème de ce blog et je ne compte pas supporter ni <acronym title="Internet Explorer 6">IE6</acronym> ni IE7. Votre adoption d&#8217;autres navigateurs aide mais il faut montrer l&#8217;exemple.</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/" title="Transcender CSS : sublimez le design Web ! (11 décembre 2007)">Transcender CSS : sublimez le design Web !</a> (15 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/02/26/sites-web-les-bonnes-pratiques/" title="Sites Web : les bonnes pratiques (26 février 2007)">Sites Web : les bonnes pratiques</a> (12 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/09/10/modifier-html-non-intrusif/" title="Modifier du HTML à la volée de manière non intrusive (10 septembre 2007)">Modifier du HTML à la volée de manière non intrusive</a> (1 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/01/29/microformats-republier-donner-sens-aux-contenus/" title="Microformats : republier et donner du sens aux contenus (29 janvier 2008)">Microformats : republier et donner du sens aux contenus</a> (8 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2009/04/15/menage-printemps/" title="Ménage de printemps (15 avril 2009)">Ménage de printemps</a> (23 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=JQfP4Tv0"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=IuBw4dYa"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=IuBw4dYa" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=n9ARlw9L"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/Kbl8ezaj3Ng" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/01/20/everything-you-know-about-css-is-wrong/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/01/20/everything-you-know-about-css-is-wrong/</feedburner:origLink></item>
		<item>
		<title>Histoire de bien commencer 2009</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/OHfcPLq3zdo/</link>
		<comments>http://case.oncle-tom.net/2009/01/06/histoire-de-bien-commencer-2009/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 06:00:13 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Pour le plaisir]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[fait divers]]></category>

		<category><![CDATA[france]]></category>

		<category><![CDATA[honte]]></category>

		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1278</guid>
		<description>Pendant que le monde court à sa perte, commençons l&amp;#8217;année 2009 avec joie et gaieté &amp;#8230; un humour plutôt affligeant puisqu&amp;#8217;il concerne :

un futur secrétaire d&amp;#8217;état à l&amp;#8217;économie numérique
un tribunal de Grande Instance

Que du lourd mais j&amp;#8217;ai sacrément honte d&amp;#8217;avoir à vivre ça.

Qu&amp;#8217;est-ce que le Web 2.0 ?
J&amp;#8217;ai sauté au plafond quand j&amp;#8217;ai lu la [...]</description>
			<content:encoded><![CDATA[<p>Pendant que le monde court à sa perte, commençons l&#8217;année 2009 avec joie et gaieté &#8230; un humour plutôt affligeant puisqu&#8217;il concerne :</p>
<ul>
<li>un futur secrétaire d&#8217;état à l&#8217;économie numérique</li>
<li>un tribunal de Grande Instance</li>
</ul>
<p>Que du lourd mais j&#8217;ai sacrément honte d&#8217;avoir à vivre ça.<br />
<span id="more-1278"></span></p>
<h3>Qu&#8217;est-ce que le Web 2.0 ?</h3>
<p>J&#8217;ai sauté au plafond quand j&#8217;ai lu la <a href="http://fr.readwriteweb.com/2009/01/05/divers/frederic-lefebvre-quest-ce-que-le-web-20/comment-page-1/#comment-1202">définition du Web 2.0 sur ReadWriteWeb en version française</a>. Quand je pense que ce <a href="http://fr.readwriteweb.com/2008/12/30/divers/frederic-lefebvre-secretaire-etat-economie-numerique/">sinistre individu va tout faire pour réguler le Web</a>, j&#8217;en ai des frissons dans le dos.</p>
<p>En 2009 il serait temps d&#8217;envisager d&#8217;utiliser positivement Internet et de se mettre à jour. Je refuse de croire que je parcours le même Web que Frédéric Lefebvre. On ne parle pas de la même chose.</p>
<p>[youtube]http://fr.youtube.com/watch?v=xQF5BJMRQkw[/youtube]</p>
<p>Édifiant. Ça va faire le tour du Web  à coup sûr.</p>
<h3>Fichiers illégaux fournis par le tribunal</h3>
<p>Ces fichiers sont fournis &#8220;par&#8221; le <a href="http://www.tgi-bonneville.justice.fr/">TGI de Bonneville</a> entre guillemets. On peut penser à un piratage quand on voit le message de la page d&#8217;accueil.</p>
<p>C&#8217;est cependant tellement gros que je ne sais pas quoi en penser. Le domaine <em>justice.fr</em> appartient bien au Ministère de la Justice &#8230; un message d&#8217;erreur maladroit pour fausser les pistes ?</p>
<div id="attachment_1280" class="wp-caption aligncenter" style="width: 650px"><img class="size-full wp-image-1280" title="TGI Bonneville" src="http://case.oncle-tom.net/images/2009/01/tgi-bonneville-justice.png" alt="TGI Bonneville" width="640" height="429" /><p class="wp-caption-text">TGI Bonneville</p></div>
<p><strong>Mise à jour</strong> (6/01 à 10h) : le message sur la page d&#8217;accueil est désormais</p>
<blockquote><p>Bonjour,</p>
<p>l&#8217;adresse www.tgi-bonneville.justice.fr est redirigée contre ma volonté vers ce serveur.</p>
<p>J&#8217;invite le responsable de ce piratage à assumer pleinement ses actes et à me contacter via le forum ubuntu-fr : <a href="http://forum.ubuntu-fr.org/viewtopic.php?id=283553">http://forum.ubuntu-fr.org/viewtopic.php?id=283553</a>.</p>
<p>Je tente actuellement de contacter les autorités judiciaires concernées pour régler cette affaire au mieux.</p>
<p>Florian</p></blockquote>
<p>C&#8217;est pas encore très clair.</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/01/22/connexion-internet-de-secours/" title="Connexion Internet de secours (22 janvier 2007)">Connexion Internet de secours</a> (0 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/09/25/preparer-optimiser-recherche-emploi/" title="Comment j&#8217;ai préparé et optimisé ma recherche d&#8217;emploi (25 septembre 2007)">Comment j&#8217;ai préparé et optimisé ma recherche d&#8217;emploi</a> (13 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/03/04/blogcamp-bordeaux-3-le-dessous-des-cartes/" title="BlogCamp Bordeaux #3 : le dessous des cartes (4 mars 2008)">BlogCamp Bordeaux #3 : le dessous des cartes</a> (6 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=OivsZDUV"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=ruDKe4Ug"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=ruDKe4Ug" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=5JgZbHye"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/OHfcPLq3zdo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2009/01/06/histoire-de-bien-commencer-2009/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2009/01/06/histoire-de-bien-commencer-2009/</feedburner:origLink></item>
		<item>
		<title>Mon nouveau MacBook s’appelle Dell Studio</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/gML8VlyxH4c/</link>
		<comments>http://case.oncle-tom.net/2008/12/30/macbook-dell-studio/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 06:00:56 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[Pour le plaisir]]></category>

		<category><![CDATA[64bits]]></category>

		<category><![CDATA[acer]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[dell]]></category>

		<category><![CDATA[detaxe]]></category>

		<category><![CDATA[studio]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[vente liée]]></category>

		<category><![CDATA[windows]]></category>

		<category><![CDATA[windows vista]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1226</guid>
		<description>L&amp;#8217;utilisation intensive d&amp;#8217;OpenOffice et le Go de RAM de mon ancien ordinateur portable ACER aidant, je me suis rapidement motivé un dimanche après-midi à changer de machine. J&amp;#8217;ai un instant hésité à sombrer du côté obscur de la Force en optant pour un MacBook avec clavier rétro-éclairé mais non, la raison m&amp;#8217;a rattrapé.
J&amp;#8217;ai finalement opté [...]</description>
			<content:encoded><![CDATA[<p><a class="tt-flickr tt-flickr-Small" title="Dell Studio 17 Red" href="http://www.flickr.com/photos/the-jedi/3148614252/"><img class="aligncenter" src="http://farm4.static.flickr.com/3121/3148614252_7980e00e12_m.jpg" alt="Dell Studio 17 Red" width="240" height="161" /></a></p>
<p>L&#8217;utilisation intensive d&#8217;<a href="http://fr.openoffice.org">OpenOffice</a> et le Go de RAM de mon ancien ordinateur portable ACER aidant, je me suis rapidement motivé un dimanche après-midi à changer de machine. J&#8217;ai un instant hésité à sombrer du côté obscur de la Force en optant pour un <a href="http://www.apple.com/fr/macbook/">MacBook</a> avec clavier rétro-éclairé mais non, la raison m&#8217;a rattrapé.</p>
<p>J&#8217;ai <strong>finalement opté pour un <a href="http://www1.euro.dell.com/content/products/productdetails.aspx/laptop_studio_17">Dell Studio 17</a></strong> &#8230; et tenté de me faire rembourser Windows Vista !</p>
<p><span id="more-1226"></span></p>
<h3>Pourquoi pas de MacBook ?</h3>
<p><a class="tt-flickr tt-flickr-Small" title="Clavier rétro-éclairé du Dell Studio 17" href="http://www.flickr.com/photos/the-jedi/3148616128/"><img class="aligncenter" src="http://farm4.static.flickr.com/3224/3148616128_4487b7536a_m.jpg" alt="Clavier rétro-éclairé du Dell Studio 17" width="240" height="161" /></a></p>
<p>Le MacBook m&#8217;a tenté pour plusieurs raisons :</p>
<ul>
<li>petit et transportable</li>
<li>superbe écran LED</li>
<li>clavier rétro-éclairé</li>
<li>et soyons <em>honnête</em>, c&#8217;est joli</li>
</ul>
<p>Seulement voilà, payer 1500€ pour le rétro-éclairage du clavier, ne pas utiliser MacOS X et cautionner la <a href="http://linuxfr.org/2008/12/28/24828.html">politique d&#8217;enferment d&#8217;Apple</a> &#8230; non je ne pouvais pas.</p>
<p>Les Mac sont devenus un phénomène de mode voire de foire : quand je regarde ma classe d&#8217;étudiants, 80% des ordinateurs sont des Mac. C&#8217;est bien mais aujourd&#8217;hui je pense qu&#8217;Apple est plus nocif envers ses usagers que Microsoft. On s&#8217;en rend compte le jour où on veut en sortir.</p>
<p>Fin de la parenthèse <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Pourquoi un Dell Studio ?</h3>
<p style="text-align: center;"><a href="http://case.oncle-tom.net/images/2008/12/dell-studio-17-corner.jpg"><img class="aligncenter size-medium wp-image-1267" title="Entrée d'alimentation" src="http://case.oncle-tom.net/images/2008/12/dell-studio-17-corner-200x300.jpg" alt="Entrée d'alimentation" width="200" height="300" /></a></p>
<p>Après plus années passées sur des PC en tour construits à la main avec le plus grand amour, j&#8217;ai choisi le silence et le nomadisme avec un Acer Aspire 9410. Je n&#8217;ai pas souhaité renouer avec Acer pour plusieurs raisons :</p>
<ul>
<li>tromperie sur le Bluetooth : y&#8217;a un bouton Bluetooth mais pas la puce intégrée. J&#8217;ai eu beau <a href="http://case.oncle-tom.net/2007/11/07/installation-module-bluetooth-acer-aspire/">installer le Bluetooth sur mon Acer</a>, c&#8217;était trop gros</li>
<li>je n&#8217;ai jamais été satisfait de leur SAV</li>
<li>pas de support d&#8217;installation physique fourni : la partition constructeur de 5Go j&#8217;en veux pas !</li>
</ul>
<p>Bref, Dell était tout désigné pour me fournir mon prochain PC dans la mesure où là, j&#8217;ai toujours obtenu <strong>satisfaction et performance à prix tout à fait correct</strong>. Je travaille au quotidien avec Latitude D800 mais pour la maison, je ne souhaitais pas y mettre autant d&#8217;argent sans pour autant rogner sur les performances. La gamme des Studio me collait parfaitement :</p>
<ul>
<li>écran 17 pouces LED</li>
<li>clavier rétro-éclairé avec pavé numérique</li>
<li>processeur Centrino Core 2 Duo cadencé à chais-pas-combien-mais-ça-m&#8217;suffit</li>
<li>4Go de RAM</li>
<li>chais-plus-combien de disque dur (mais assez pour ne pas en tenir compte, au moins 300Go)</li>
<li>carte graphique ATI chais-pas-quoi HD (j&#8217;en retiens surtout la mémoire vidéo dédiée)</li>
<li>coque personnalisable</li>
</ul>
<p>En clair, je voulais de la RAM (merci Eclipse ;-)), de la puissance et un beau look. J&#8217;ai eu tout ça pour un prix qui reste à 3 chiffres.</p>
<p>Mais il y&#8217;avait Windows Vista.</p>
<h3>La parenthèse remboursement de Windows Vista</h3>
<div id="attachment_1269" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2008/12/windows-vista-cluf.jpg"><img class="size-medium wp-image-1269" title="CLUF Windows Vista / Dell" src="http://case.oncle-tom.net/images/2008/12/windows-vista-cluf-300x200.jpg" alt="CLUF Windows Vista / Dell" width="300" height="200" /></a><p class="wp-caption-text">CLUF Windows Vista / Dell</p></div>
<p>Pour la forme, j&#8217;ai tenté de titiller le service client afin de me faire <strong>rembourser Windows Vista</strong> parce que :</p>
<ul>
<li><a href="http://case.oncle-tom.net/2007/04/15/hasta-la-vista/">Windows Vista j&#8217;aime pas</a></li>
<li><a href="http://case.oncle-tom.net/2007/02/13/choix-liberte-windows-linux/">je n&#8217;utilise plus qu&#8217;un système d&#8217;exploitation sans numéro de série</a></li>
<li>je n&#8217;ai pas eu le choix de l&#8217;<acronym title="Operating System">OS</acronym> lors de la procédure d&#8217;achat : une case &#8220;rien&#8221; ou &#8220;Ubuntu&#8221; m&#8217;aurait bien convenu !</li>
<li><a href="http://www.racketiciel.info/">Dell fait la vente liée</a> voire forcée/déguisée</li>
</ul>
<p>Vous voyez la &#8220;capture&#8221; d&#8217;écran ci-dessus ? Si je n&#8217;accepte pas les conditions, je dois appeler le service client. J&#8217;étais dans les 7 jours d&#8217;achat, j&#8217;ai réceptionné l&#8217;ordinateur donc je me suis armé du numéro de téléphone du service client Dell.</p>
<p><strong>Service client Dell (acte 1)</strong> : j&#8217;explique que je veux me faire rembourser Windows Vista. On me demande la raison de manière très protocolaire. J&#8217;explique que j&#8217;utilise Linux et que je n&#8217;ai pas eu le choix du système d&#8217;exploitation lors de l&#8217;achat. On me donne le numéro de téléphone du service commercial.</p>
<p><strong>Service commercial Dell (acte 1)</strong> : le numéro indiqué ne répond pas. J&#8217;ai peut-être fait une boulette alors je rappelle le service client. Note au passage : le numéro de téléphone du service commercial est introuvable pour les particuliers.</p>
<p><strong>Service client Dell (acte 2)</strong> : je n&#8217;explique pas vraiment le problème et je demande à ce qu&#8217;on me transfère au service commercial de Dell pour un remboursement de système d&#8217;exploitation. Transfert effectué.</p>
<p><strong>Service commercial Dell (acte 2)</strong> : j&#8217;explique donc que je suis victime de vente liée puisque j&#8217;ai un Windows Vista que je n&#8217;ai pas voulu, que j&#8217;utilise Linux et que j&#8217;ai déjà vu des cas de personnes se faisant rembourser. On m&#8217;explique alors que le seul moyen est de renvoyer l&#8217;ordinateur complet (rien que ça) et qu&#8217;on reprenne commande du même modèle mais sans Windows. Oui enfin par téléphone, pas via le site Web. Je lui explique que j&#8217;ai pas spécialement envie de me retrouver sans PC pendant plusieurs jours/semaines et que j&#8217;ai déjà lu un <a href="http://www.digitalia.be/news/dell-me-rembourse-windows-vista">cas de remboursement de Windows plus souple</a>.<br />
On m&#8217;explique que ce n&#8217;est pas du ressort du service commercial mais du service client. Ah bon. On me remet en transfert. Il est 17h50, ça sent le sapin.</p>
<p><strong>Service client Dell (acte 3) : </strong>18h05, l&#8217;attente se termine par des bips continus dans le combiné. On vient de me raccrocher au nez. Le support téléphonique se termine à 18h00.</p>
<p><strong>Gros carton rouge pour Dell</strong> à ce niveau. La validation de l&#8217;achat implique l&#8217;acceptation de tout ce que souhaite Dell et c&#8217;est particulièrement malsain. Surtout dans la mesure où l&#8217;écran de Windows m&#8217;indique simplement de téléphoner au service client.</p>
<p>En clair, on a le droit de ne pas avoir d&#8217;ordinateur sans qu&#8217;on nous force la main du système d&#8217;exploitation mais on doit se battre et ramer pendant des mois pour ça. À côté de ça on nous rabat les oreilles de piratage, de pouvoir d&#8217;achat et de crise mais je me dis qu&#8217;au final, entuber les consommateurs ça rapporte quand même pas mal.</p>
<p><strong>Les lois DADVSI, Olivennes et cie ça gonfle</strong>. Pas étonnant que le <a href="http://fr.readwriteweb.com/2008/12/29/divers/parti-pirate-suede/">Parti Pirate triomphe en Suède</a>.</p>
<h3>Ubuntu «Intrepid Ibex» 64 bits</h3>
<div id="attachment_1268" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2008/12/dell-studio-17-keyboard.jpg"><img class="size-medium wp-image-1268" title="Clavier rétro-éclairé" src="http://case.oncle-tom.net/images/2008/12/dell-studio-17-keyboard-300x200.jpg" alt="Clavier rétro-éclairé" width="300" height="200" /></a><p class="wp-caption-text">Clavier rétro-éclairé</p></div>
<p>Ce nouveau PC était l&#8217;occasion de passer dans le monde des systèmes d&#8217;exploitation 64 bits. J&#8217;ai installé Ubuntu 8.10 dit <em>Intrepid Ibex</em> depuis le Live <acronym title="Compact Disc">CD</acronym> 64 bits et en toute honnêteté,<strong> je n&#8217;ai eu de problème à aucun moment</strong>. Tout a été très fluide &#8230; comme en version 32 bits.<br />
Vu l&#8217;augmentation de matériel, forcément tout répondait plus vite donc difficile de dire s&#8217;il y a des gains notables. J&#8217;imagine qu&#8217;oui et même si c&#8217;est pas le cas &#8230; je m&#8217;en fiche ?</p>
<p>La <a href="http://doc.ubuntu-fr.org/dell_studio_15">documentation francophone Ubuntu sur le Dell Studio</a> confirme ces dires : ça fonctionne au poil.<br />
J&#8217;ai cependant rencontré 2-3 problèmes <a href="http://blog.erwan.me/post/2008/11/08/Dell-studio-17-sous-Ubuntu-810">à l&#8217;instar d&#8217;un autre utilisateur</a> :</p>
<ul>
<li><a href="http://gears.google.com/">Gears</a> n&#8217;est pas supporté sous Linux en 64 bits (y&#8217;a bien un patch qui marche mais je considère que c&#8217;est toujours un problème)</li>
<li>sur batterie seulement, quand on joue avec la luminosité de l&#8217;écran, je ne peux plus saisir de caractères (mais les raccourcis clavier fonctionnent, eux)</li>
<li>avec les effets graphiques <em>compiz</em> activés, ça clignote de partout quand je regarde une vidéo avec VLC ou Totem ; faut désactiver les effets temporairement</li>
</ul>
<p>Rien de bien méchant d&#8217;autant plus que ça sera sûrement corrigé dans un futur plus ou moins proche.</p>
<h3>Conclusion</h3>
<p>Difficile de cacher ma satisfaction avec ce Dell Studio 17 : <strong>c&#8217;est un bon produit, rapide, performant et agréable à l&#8217;œil</strong>. Le clavier est très confortable et je prends davantage de plaisir à écrire des articles ou à tapoter sous Eclipse qu&#8217;avant. Forcément quand tout répond rapidement &#8230;</p>
<p>Je regrette juste l&#8217;épisode remboursement de Windows Vista même si je m&#8217;attendais au résultat. C&#8217;est le seul reproche que j&#8217;ai à faire à Dell sur ce produit. On pourrait le tenir à d&#8217;autres mais en l&#8217;occurence, c&#8217;est avec eux que je l&#8217;ai eu.</p>
<p>Je suis également satisfait du passage en 64 bits. Mis à part Gears, tous les autres logiciels que j&#8217;utilise fonctionnent du premier coup.<br />
À noter cependant que pour des paquets compilés pour des architectures 32 bits, il faudra obligatoirement passer par le Terminal. À quand la détection intégrée dans GDebi ?</p>
<p>À mon avis le <strong>Dell Studio remplit son rôle</strong> : c&#8217;est très bien pour du développeur, c&#8217;est très bien pour des amateurs de grand écran et le LED, c&#8217;est bon pour les yeux !</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/11/07/installation-module-bluetooth-acer-aspire/" title="Installation du module Bluetooth sur un portable Acer (7 novembre 2007)">Installation du module Bluetooth sur un portable Acer</a> (34 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/04/15/hasta-la-vista/" title="Hasta la Vista &#8230; (15 avril 2007)">Hasta la Vista &#8230;</a> (3 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/04/20/ubuntu-feisty-fawn-configurer-effets-graphiques/" title="Ubuntu 7.04 : configurer les effets graphiques (20 avril 2007)">Ubuntu 7.04 : configurer les effets graphiques</a> (4 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/05/27/sus-aux-disques-durs-sauvegarder-ses-donnees-avec-amazon-s3-et-jungledisk/" title="Sus aux disques durs : sauvegarder ses données avec Amazon S3 et JungleDisk (27 mai 2008)">Sus aux disques durs : sauvegarder ses données avec Amazon S3 et JungleDisk</a> (23 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/03/09/renouveau-reverse-engineer-nouveau/" title="REnouveau : Reverse Engineer nouveau (9 mars 2007)">REnouveau : Reverse Engineer nouveau</a> (6 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=suALPAfA"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=gLJFiumL"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=gLJFiumL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=qvWWqGUJ"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/gML8VlyxH4c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/12/30/macbook-dell-studio/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2008/12/30/macbook-dell-studio/</feedburner:origLink></item>
		<item>
		<title>Wordpress en tant que dépendance SVN</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/EIQR-aFyBX0/</link>
		<comments>http://case.oncle-tom.net/2008/12/23/wordpress-svn-external/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 06:00:59 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[bonne pratique]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[codex]]></category>

		<category><![CDATA[htaccess]]></category>

		<category><![CDATA[i18n]]></category>

		<category><![CDATA[optimisation]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[wordpress mu]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1237</guid>
		<description>Mettre à jour Wordpress était pénible jusqu&amp;#8217;à l&amp;#8217;arrivée de la version 2.7. On bénéficie désormais de la mise à jour automatique : un clic, ça télécharge et ça déploie.

Il existe cependant une méthode alternative reposant sur Subversion (SVN). C&amp;#8217;est la méthode idéale pour tout développeur Wordpress ou gestionnaire de blogs. C&amp;#8217;est celle que j&amp;#8217;emploie depuis [...]</description>
			<content:encoded><![CDATA[<p>Mettre à jour Wordpress était pénible jusqu&#8217;à l&#8217;arrivée de la version 2.7. On bénéficie désormais de la mise à jour automatique : un clic, ça télécharge et ça déploie.</p>
<p><img class="aligncenter size-full wp-image-912" title="Logo Wordpress" src="http://case.oncle-tom.net/images/2008/05/wordpress-logo.png" alt="" width="273" height="66" /></p>
<p>Il existe cependant une <strong>méthode alternative reposant sur Subversion</strong> (<acronym title="Subversion">SVN</acronym>). C&#8217;est la méthode idéale pour tout développeur Wordpress ou gestionnaire de blogs. C&#8217;est celle que j&#8217;emploie depuis la version 2.6 grâce notamment à la constante WP_CONTENT.</p>
<p>Explications et application concrète.</p>
<p><span id="more-1237"></span></p>
<p>Avant toute chose, sachez que <strong>ce tutorial est optimisé pour les personnes qui versionnent entièrement leur projet</strong>. Il n&#8217;est pas question ici d&#8217;avoir une arborescence libre et de procéder à des <em>checkout</em> un peu partout. C&#8217;est possible mais pas du plus grand intérêt.</p>
<p>L&#8217;avantage évident ici est de pouvoir déployer son blog n&#8217;importe où en un rien de temps.</p>
<h3>Structure des fichiers</h3>
<p>Installer Wordpress en tant que dépendance <acronym title="Subversion">SVN</acronym> revient à mélanger 2 techniques :</p>
<ul>
<li><a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">Installer Wordpress dans son propre répertoire<br />
</a></li>
<li><a href="http://codex.wordpress.org/Installing_WordPress_With_Clean_Subversion_Repositories">Installer Wordpress proprement depuis <acronym title="Subversion">SVN</acronym></a></li>
</ul>
<p>Je suis pénible donc je n&#8217;ai pas spécialement envie de modifier un fichier <em>core</em> ou autre chose que <em>wp-config.php</em>. Tout le contraire de ce qu&#8217;indique la première méthode.</p>
<p>La seconde explication m&#8217;a toutefois posé légèrement problème puisqu&#8217;un peu brutale et posant soucis chez OVH.</p>
<img class="size-full wp-image-1254" title="Arborescence fichier avec Wordpress SVN" src="http://case.oncle-tom.net/images/2008/12/wordpress-svn-basic-filetree.png" alt="Arborescence fichier avec Wordpress SVN" width="329" height="298" />
<p>Celles et ceux qui voient la capture d&#8217;écran ci-dessus peuvent constater que <em>tout Wordpress</em> a été déplacé dans un sous-répertoire <em>wordpress</em> au même niveau que wp-content.<br />
On ne garde à la racine que le fichier <em>.htaccess</em> et <em>wp-config.php</em>.</p>
<p>Sur le répertoire racine, j&#8217;ai appliqué ces propriétés pour Wordpress 2.7 :</p>
<ul>
<li><kbd>svn:ignore</kbd> :<kbd><br />
</kbd></p>
<pre><code class="svn">wp-config.php</code></pre>
</li>
<li><kbd>svn:externals</kbd> :<kbd><br />
</kbd></p>
<pre><code class="svn">wordpress http://svn.automattic.com/wordpress/branches/2.7</code></pre>
</li>
</ul>
<p>Je ne versionne volontairement pas le fichier wp-config.php car c&#8217;est le seul fichier susceptible de changer d&#8217;une instance à une autre. Je le récupère depuis wordpress/wp-config-sample.php et je le personnalise selon mes besoins.<br />
Et puis versionner des mots de passe &#8230; qui y tient ?</p>
<h3>Configuration</h3>
<p>Après cette restructuration, on aura toutefois besoin de configurer 2-3 bricoles. Vraiment rien de méchant promis.</p>
<h4>Le .htaccess</h4>
<p>Voici ma configuration. Elle peut être aisément déportée dans votre déclaration de <em>Virtual Host</em> pour des raisons de performance. Sur un serveur mutualisé vous n&#8217;avez en général pas accès à ce dernier type de configuration.</p>
<pre><code>&lt;IfModule mod_rewrite.c&gt;
Options -Multiviews -Indexes +FollowSymlinks
RewriteEngine On
RewriteBase /

# Moving to dependency
RewriteRule ^(index.php|wp-[a-z0-9-]+\.php|xmlrpc.php)?$ wordpress/$1 [L]
RewriteRule ^(wp-admin|wp-includes)/(.*)$ wordpress/$1/$2 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . wordpress/index.php [L]
&lt;/IfModule&gt;

# BEGIN WordPress
# END WordPress</code></pre>
<p>Ce fichier est très inspiré de la <a href="http://codex.wordpress.org/Installing_WordPress_With_Clean_Subversion_Repositories">configuration <acronym title="Subversion">SVN</acronym> proposée sur le Codex Wordpress</a>. Seulement voilà, cette renvoie tout sur <em>index.php</em> &#8230; et omet ainsi tous les accès aux fichiers situés à la racine, avec entre autre :</p>
<ul>
<li>wp-cron.php</li>
<li>wp-link-opml.php</li>
<li>wp-trackback.php</li>
<li>xmlrpc.php</li>
</ul>
<p>Je vous fais grâce des contrôleurs de flux (Atom, <acronym title="Really Simple Syndication">RSS</acronym> &amp; cie) et des appels en directs à <em>index.php</em> effectués par certains plugins.</p>
<p>Donc non on ne peut pas vraiment se passer de ces fichiers. D&#8217;où ces 2 règles :</p>
<ul>
<li>
<pre><code>RewriteRule ^(index.php|wp-[a-z0-9-]+\.php|xmlrpc.php)?$ wordpress/$1 [L]
</code></pre>
<p>On capte tous les fichiers <acronym title="Pre-Hypertext Processing">PHP</acronym> (les contrôleurs) originellement situés à la racine de Wordpress.</li>
<li>
<pre><code>RewriteRule ^(wp-admin|wp-includes)/(.*)$ wordpress/$1/$2 [QSA,L]</code></pre>
<p>Et là c&#8217;est pour le confort de conserver les adresses initiales &#8230; mais aussi pour éviter de modifier un bout de paramétrage dans l&#8217;admin. Le jour où vous décidez de rebasculer à l&#8217;ancien système, ça se fera sans douleur <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>Enfin, pourquoi avoir poussé les commentaires Wordpress vers le bas ? Tout simplement pour <strong>éviter que nos règles personnalisées soient écrasées par Wordpress</strong> lors d&#8217;une mise à jour des permaliens. Nos règles primeront toujours ainsi.</p>
<h4>Le fichier wp-config.php</h4>
<p>Dans le fichier <em>wp-config.php</em>, nous n&#8217;allons rien modifier. Nous allons juste ajouter forcer 2 paramètres. Ils indiqueront à Wordpress où se trouve le véritable répertoire <em>wp-content</em> (renommable mais je ne jouerai pas avec).</p>
<img class="size-full wp-image-1262" title="wp-config.php modifié pour Wordpress SVN" src="http://case.oncle-tom.net/images/2008/12/wordpress-svn-wpconfig.png" alt="wp-config.php modifié pour Wordpress SVN" width="600" height="266" />
<h4>Le blog</h4>
<p>Bon j&#8217;ai menti un peu toute à l&#8217;heure en indiquant qu&#8217;on ne toucherait qu&#8217;à <em>wp-config.php</em>. Cependant la modification est on ne peut plus mineure et ne concerne que l&#8217;upload de medias.</p>
<p>En effet si on ne touche pas à l&#8217;emplacement des fichiers envoyés, Wordpress considère qu&#8217;ils sont uploadés dans wordpress/wp-content/uploads. C&#8217;est fort gênant mais heureusement, en préfixant le chemin par ../ ou en tapant un chemin absolu tout rentrera dans l&#8217;ordre.</p>
<img class="size-full wp-image-1261" title="Correction de chemin pour Wordpress SVN" src="http://case.oncle-tom.net/images/2008/12/wordpress-svn-file-uploads-fix.png" alt="Correction de chemin pour Wordpress SVN" width="600" height="74" />
<p>À noter qu&#8217;il s&#8217;agit du <strong>seul paramétrage hors d&#8217;un fichier</strong>. Si j&#8217;avais pu m&#8217;en passer je l&#8217;aurais fait.</p>
<h3>Dépendance <acronym title="Subversion">SVN</acronym> pour la traduction</h3>
<p>C&#8217;est en tombant sur un autre <a href="http://sunfox.org/blog/2007/05/28/installation-svn-de-wordpress-et-de-ses-plugins/">article traitant de svn:externals pour Wordpress</a> que j&#8217;ai été interpelé sur la prise en charge des langues via <acronym title="Subversion">SVN</acronym> également.<br />
Le système n&#8217;est pas parfait puisqu&#8217;on ne peut gérer qu&#8217;une seule langue par ce biais là. Ça ne conviendra donc pas aux blogs multilingues.</p>
<img class="size-full wp-image-1260" title="Dépendance SVN pour les traductions Wordpress" src="http://case.oncle-tom.net/images/2008/12/wordpress-i18n-svn-external.png" alt="Dépendance SVN pour les traductions Wordpress" width="550" height="104" />
<p>La technique consiste à transformer <code>wp-content/languages</code> en <kbd>svn:externals</kbd>.<br />
Ça donnerait ceci pour la version française de Wordpress 2.7, au niveau du <kbd>svn:externals</kbd> du répertoire <code>wp-content</code> :</p>
<pre><code class="svn">languages http://svn.automattic.com/wordpress-<acronym title="internationalisation">i18n</acronym>/fr_FR/branches/2.7/messages/</code></pre>
<p><strong>Simple et efficace</strong> mais ça reste encore de la bricole.</p>
<h3>Cas particulier : plugins et <acronym title="internationalisation">i18n</acronym></h3>
<p>Je vous expose le problème mais malheureusement vous ne pourrez pas y faire grand chose. Par contre ami développeurs, pour rendre votre code de plugin 100% portable, merci de prendre note <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Le chargement des traductions s&#8217;effectue à l&#8217;aide de la fonction load_plugin_textdomain(). Elle prenait seulement 2 paramètres jusqu&#8217;à l&#8217;arrivée de Wordpress 2.6. Ça n&#8217;a pas été crié sur les toits mais elle prend désormais 3 &#8230; et c&#8217;est du 3ème argument qu&#8217;il faut utiliser désormais :</p>
<ol>
<li><code class="php">$domain</code> : l&#8217;espace de nom des traduction (inchangé)</li>
<li><code class="php">$abs_rel_path</code> : chemin relatif par rapport à l&#8217;emplacement de Wordpress (déprécié, on y mettait <code>PLUGINDIR.'/'.dirname(plugin_basename(__FILE__))</code> en général)</li>
<li><code class="php">$plugin_rel_path</code> :  chemin relatif par rapport à l&#8217;emplacement des plugins (c&#8217;est qui nous intéresse ; <code>dirname(plugin_basename(__FILE__))</code> nous suffira désormais)</li>
</ol>
<p>Vous trouverez un <a href="http://codex.wordpress.org/Writing_a_Plugin#Internationalizing_Your_Plugin">exemple sur le Codex, du côté de l&#8217;internationalisation des plugins</a>.<br />
Un exemple de code pérenne :</p>
<pre><code class="php">load_plugin_textdomain('votreplugin', dirname(plugin_basename(__FILE__)), dirname(plugin_basename(__FILE__)));</code></pre>
<p>Et si jamais vous utilisez votre plugin en lien symbolique ça ne fonctionnera pas &#8230; mais on s&#8217;éloigne du sujet <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Et pour Wordpress Mu ?</h3>
<p>Je ne m&#8217;attarderai pas dessus mais les manipulations sont sensiblement les mêmes. Je n&#8217;ai pas encore eu l&#8217;occasion d&#8217;essayer mais j&#8217;ose imaginer qu&#8217;il n&#8217;y a pas tant de différences que ça <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Conclusion</h3>
<p>Le jour où vous souhaitez migrer vers une autre version majeure de Wordpress, c&#8217;est simple :<strong> il suffit de changer les externals vers le tag adéquat</strong>.</p>
<p>Pourquoi ne pas utiliser le <em>trunk</em> directement me demanderez-vous ? Le trunk de Wordpress est plutôt instable puisque c&#8217;est là que se construit la prochaine version de manière systématique. L&#8217;utilisation des <strong>branches permet de bénéficier des correctifs</strong> sans avoir à modifier le moindre external.<br />
Si vous avez un grand besoin de stabilité, alors utilisez les <em>tags</em> qui sont en principe figés.</p>
<p>On remarquera aussi que malgré son âge, <strong>Wordpress commence à peine à proposer des solutions d&#8217;industrialisation</strong>.<br />
Les liens symboliques sont en effet très mal gérés. Tentez d&#8217;utiliser un seul répertoire source pour plusieurs blogs avec des liens symboliques et tout s&#8217;effondre.</p>
<p>La preuve en est aussi avec le <strong>manque de ressources disponibles sur le Web</strong> et traitant ce sujet. Ça m&#8217;étonnerait d&#8217;être le premier à vouloir déployer du Wordpress via <acronym title="Subversion">SVN</acronym>.<br />
Les choses s&#8217;améliorent mais pour le côté <cite>code is poetry</cite>, on en est encore loin.</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/07/13/utilisation-variables-mysql/" title="Utilisation de variables dans MySQL (13 juillet 2007)">Utilisation de variables dans MySQL</a> (9 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/06/26/tableau-auto-extensible-en-javascript/" title="Tableau auto-extensible en JavaScript (26 juin 2007)">Tableau auto-extensible en JavaScript</a> (17 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/06/18/livre-blanc-frameworks-php-presentation-et-explications/" title="Livre blanc sur les frameworks PHP : présentation et explications (18 juin 2008)">Livre blanc sur les frameworks PHP : présentation et explications</a> (10 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/07/23/conventions-de-programmation-necessaire-maturite/" title="Conventions de programmation : la nécessaire maturité (23 juillet 2008)">Conventions de programmation : la nécessaire maturité</a> (19 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/12/11/configuration-apache-mysql-php-symlinks/" title="Configuration d&#8217;Apache, MySQL et PHP à base de liens symboliques (11 décembre 2008)">Configuration d&#8217;Apache, MySQL et PHP à base de liens symboliques</a> (12 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=qvmcv9Pi"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=69dSMVZw"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=69dSMVZw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=OtE6DI5p"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/EIQR-aFyBX0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/12/23/wordpress-svn-external/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2008/12/23/wordpress-svn-external/</feedburner:origLink></item>
		<item>
		<title>Configuration d’Apache, MySQL et PHP à base de liens symboliques</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/bhWKReT62IA/</link>
		<comments>http://case.oncle-tom.net/2008/12/11/configuration-apache-mysql-php-symlinks/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 06:00:50 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[apparmor]]></category>

		<category><![CDATA[bonne pratique]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[symlink]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1198</guid>
		<description>J&amp;#8217;ai récemment passé mon poste de développement de Debian Testing vers Ubuntu 8.10. Comme toute installation from scratch, il faut passer par la case configuration.

J&amp;#8217;ai déjà expliqué comment modifier l&amp;#8217;emplacement des données d&amp;#8217;un serveur MySQL mais cette fois-ci on va aller encore plus loin :

on ne va pas toucher aux fichiers de configuration par défaut
on [...]</description>
			<content:encoded><![CDATA[<p>J&#8217;ai récemment passé mon poste de développement de Debian Testing vers Ubuntu 8.10. Comme toute installation <em>from scratch</em>, il faut passer par la case configuration.</p>
<p><img class="aligncenter size-full wp-image-1247" title="Configuration PHP personnalisée" src="http://case.oncle-tom.net/images/2008/12/php-custom.png" alt="" width="499" height="64" /></p>
<p>J&#8217;ai déjà expliqué comment <a href="http://case.oncle-tom.net/2008/05/04/modifier-emplacement-donnees-serveur-mysql/">modifier l&#8217;emplacement des données d&#8217;un serveur MySQL</a> mais cette fois-ci on va aller encore plus loin :</p>
<ul>
<li>on ne va pas toucher aux fichiers de configuration par défaut</li>
<li>on va pouvoir conserver toute notre configuration sur une partition séparée</li>
<li>on va être tranquille pour les éventuelles futures réinstallations</li>
</ul>
<p>C&#8217;est pas très compliqué à mettre en œuvre et au final, tout le monde y gagne !</p>
<p><span id="more-1198"></span></p>
<h3>Organisation du répertoire /home</h3>
<p>Le titre de l&#8217;article le suggère bien, cet article se consacre à la configuration des serveurs et programmes suivants :</p>
<ul>
<li>Apache 2</li>
<li><acronym title="Pre-Hypertext Processing">PHP</acronym> 5</li>
<li>MySQL 5</li>
<li>AppArmor (installé et activé par défaut depuis Ubuntu 8.04)</li>
</ul>
<p>Pour des raisons évidentes de facilité, j&#8217;ai donc créé un répertoire qui rassemble toutes mes configurations spécifiques. En voici son arborescence :</p>
<ul>
<li><strong>~/config</strong>
<ul>
<li>/<em>apache2</em>
<ul>
<li>sites-available
<ul>
<li>000-default-custom</li>
<li>local.monprojet.com</li>
<li>etc.</li>
</ul>
</li>
</ul>
</li>
<li>/<em>apparmor</em>
<ul>
<li>usr.sbin.mysqld-custom</li>
</ul>
</li>
<li>/<em>mysql</em>
<ul>
<li>my-custom.cnf</li>
</ul>
</li>
<li>/<em>php5</em>
<ul>
<li>php-custom.ini</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Nous écrirons dans ces fichiers uniquement les points de configuration que l&#8217;on souhaite adapter. C&#8217;est plus simple à maintenir. Qui plus est, si les fichiers de configuration sont mis à jour par leur serveur respectif, nos fichiers resteront à l&#8217;abri.</p>
<p>Un des <em>moto</em> de Debian c&#8217;est la <strong>configuration à base de fichiers</strong>. Vous trouverez régulièrement des répertoires ayant un nom suivant le motif <em>application.d</em>. Donc plutôt que d&#8217;avoir 1 seul fichier de configuration, on a 1 fichier initial plus des configurations additionnelles dans ces fameux répertoires &#8220;.d&#8221;.</p>
<h3>Configuration d&#8217;Apache</h3>
<p><img class="aligncenter size-full wp-image-1246" title="Logo Apache" src="http://case.oncle-tom.net/images/2008/12/apache-logo.gif" alt="" width="248" height="70" /></p>
<p>Pour Apache la démarche est la suivante :</p>
<ol>
<li>créer les <em>Virtual Host</em> dans son répertoire personnel</li>
<li>lier les fichiers dans <em>sites-available</em></li>
<li>activer les sites à l&#8217;aide de la commande <em>a2ensite</em></li>
<li>recharger Apache</li>
</ol>
<p>La seule étape par rapport à d&#8217;habitude c&#8217;est qu&#8217;on ne crée par les <em>Virtual Host</em> directement dans /etc/apache2/sites-available et qu&#8217;on les lie depuis notre répertoire personnel.<br />
Admettons que je souhaite créer un <em>Virtual Host</em> pour une instance locale de mon blog. Je vais procéder ainsi :</p>
<ol>
<li><kbd>gedit ~/conf/apache2/sites-available/local.case.oncle-tom.net</kbd><br />
J&#8217;y ai placé une configuration somme toute minimaliste :</p>
<pre><code class="text">&lt;VirtualHost *:80&gt;
ServerName local.case.oncle-tom.net
DocumentRoot /home/oncletom/workspace/case.oncle-tom.net
ErrorLog /var/log/apache2/error.case.oncle-tom.net.log
LogLevel warn
CustomLog /var/log/apache2/access.case.oncle-tom.net.log combined
ServerSignature On
&lt;/VirtualHost&gt;</code></pre>
</li>
<li><kbd>sudo ln -s ~/conf/apache2/sites-available/local.case.oncle-tom.net /etc/apache2/sites-available/local.case.oncle-tom.net</kbd></li>
<li><kbd>sudo a2ensite local.case.oncle-tom.net</kbd></li>
<li><kbd>sudo service apache2 reload</kbd></li>
</ol>
<p>On se fendra de l&#8217;ajout d&#8217;un hôte local dans le fichiers <em>hosts</em> pour coller au plus près à l&#8217;instance de production. Toutefois je ne connais pas d&#8217;autre moyen que de modifier le fichier d&#8217;origine :-/ Si vous avez une solution je suis preneur.</p>
<h3>Configuration de MySQL</h3>
<p><img class="aligncenter size-full wp-image-744" title="Logo MySQL" src="http://case.oncle-tom.net/images/2007/08/powered-by-mysql-167x86.png" alt="" width="167" height="86" /></p>
<p>Pour MySQL c&#8217;est un peu plus compliqué car on va également en profiter pour déplacer l&#8217;emplacement par défaut des données. Pourquoi ? Pour les placer sur une partition qui ne craindra pas les formattages et les réinstallation système.<br />
Si vous aviez déjà suivi ma <a href="http://case.oncle-tom.net/2008/05/04/modifier-emplacement-donnees-serveur-mysql/">procédure de déplacement des données MySQL</a> : oubliez là. Celle-ci est largement plus aboutie.</p>
<p>Avant de se jeter à corps perdu dans les manipulations, voici la démarche entreprise :</p>
<ol>
<li>créer le fichier de configuration MySQL</li>
<li>créer le répertoire qui accueillera les données MySQL</li>
<li>lier la base <em>mysql</em> d&#8217;origine</li>
<li>modifier la configuration d&#8217;AppArmor</li>
<li>recharger la configuration des serveurs AppArmor et MySQL</li>
</ol>
<p>C&#8217;est déjà un peu plus long mais là encore, il n&#8217;y a pas grand chose à faire en fin de compte :</p>
<ol>
<li><kbd>gedit ~/conf/mysql/my-custom.cnf</kbd><br />
On y indique le nouvel emplacement de ses données MySQL :</p>
<pre><code class="text">[mysqld]
datadir            = /home/oncletom/Apps/mysql</code></pre>
</li>
<li><kbd>mkdir /home/oncletom/Apps/mysql<br />
sudo chown mysql:mysql /home/oncletom/Apps/mysql</kbd></li>
<li><kbd>ln -s /var/lib/mysql/mysql /home/oncletom/Apps/mysql/mysql</kbd></li>
<li><kbd>sudo gedit /etc/apparmor.d/usr.bin.mysql</kbd><br />
J&#8217;y ai remplacé</p>
<pre><code class="text">/var/lib/mysql/ r,
/var/lib/mysql/** rwk,</code></pre>
<p>par l&#8217;ancien chemin + le nouvel emplacement des données MySQL</p>
<pre><code class="text">/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/home/oncletom/Apps/mysql/ r,
/home/oncletom/Apps/mysql/** rwk,</code></pre>
</li>
<li><kbd>sudo service apparmor reload &amp;&amp; sudo service mysql reload</kbd></li>
</ol>
<p>Si vous avez bien suivi toutes mes explications, vous vous demanderez pourquoi j&#8217;ai modifié le profil existant de MySQL dans AppArmor au lieu de lier un nouveau profil ?<br />
Je me suis rendu compte qu&#8217;au démarrage de l&#8217;<acronym title="Operating System">OS</acronym>, <strong>AppArmor ne chargeait pas le profil personnalisé</strong> et bloquait le démarrage de MySQL. J&#8217;ai créé un <a href="http://ubuntuforums.org/showthread.php?t=977830">sujet sur Ubuntu Forums</a> après une lecture de la <a href="https://help.ubuntu.com/community/AppArmor">documentation AppArmor</a> mais pas de nouvelles. Là aussi je suis preneur car en relançant les serveurs à la main, tout fonctionne.</p>
<p>Ensuite à vous de repeupler vos bases de données à partir d&#8217;un dump. Si vous procédez à un déplacement des répertoires, n&#8217;oubliez pas de tout préserver : propriétaire et permissions ! Ça se passe avec l&#8217;option <em>-a</em> de <em>cp</em> par exemple.</p>
<h3>Configuration de <acronym title="Pre-Hypertext Processing">PHP</acronym></h3>
<p><img class="aligncenter size-full wp-image-1245" title="Logo PHP" src="http://case.oncle-tom.net/images/2008/12/php.gif" alt="" width="120" height="67" /></p>
<p>Fort heureusement pour <acronym title="Pre-Hypertext Processing">PHP</acronym> c&#8217;est plus simple puisqu&#8217;il n&#8217;y a qu&#8217;un seul petit lien symbolique à faire.<br />
À noter que la configuration modifiée sera répercutée sur toutes les configurations de <acronym title="Pre-Hypertext Processing">PHP</acronym>, que ça soit pour Apache, en CLI ou <acronym title="Common Gateway Interface">CGI</acronym>.</p>
<ol>
<li><kbd>gedit ~/conf/php/my-custom.ini</kbd><br />
J&#8217;ai ai mis par exemple :</p>
<pre><code class="text">memory_limit = 64M</code></pre>
</li>
<li><kbd>sudo ln -s ~/conf/php/my-custom.ini /etc/php5/conf.d/my-custom.ini</kbd></li>
</ol>
<p>Et voilà c&#8217;est tout pour <acronym title="Pre-Hypertext Processing">PHP</acronym>. Il faut bien entendu recharger votre serveur Web (Apache ou Lighttpd par exemple) pour qu&#8217;ils prennent en compte la modification.</p>
<h3>Conclusion</h3>
<p>J&#8217;ai déjà appliqué cette méthode par 2 fois et que dire si ce n&#8217;est que tout va plus vite ainsi !<br />
Vos fichiers de configuration restent accessibles depuis votre gestionnaire de fichiers (pas besoin de passer en <em>sudo</em> pour sauvegarder les changements). Ils sont préservés de toute réinstallation impromptue.</p>
<p><strong>Vous ne touchez que de manière minimaliste aux fichiers de configuration d&#8217;origine</strong> :</p>
<ul>
<li>/etc/hosts pour ajouter un nom d&#8217;hôte (utile seulement si vous ne souhaitez pas utiliser <em>localhost</em>)</li>
<li>/etc/apparmor.d/usr.bin.mysql pour la raison évoquée plus haut &#8230; sinon on s&#8217;en serait passé</li>
</ul>
<p>J&#8217;ai cherché à faire pareil avec <em>phpmyadmin</em> mais il ne semble pas y avoir de mécanisme de ce type. Dommage.</p>
<p>J&#8217;imagine qu&#8217;il doit y avoir des moyens similaires avec d&#8217;autres serveurs et d&#8217;autres langages. Vous procédez à un reparamétrage systématique ou bien vous utilisez une technique de ce genre ?</p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2008/05/04/modifier-emplacement-donnees-serveur-mysql/" title="Modifier l&#8217;emplacement des données d&#8217;un serveur MySQL (4 mai 2008)">Modifier l&#8217;emplacement des données d&#8217;un serveur MySQL</a> (32 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/08/12/colorblind-applet-des-filtres-pour-daltonien-sous-linux/" title="colorblind-applet : des filtres pour daltonien sous Linux (12 août 2008)">colorblind-applet : des filtres pour daltonien sous Linux</a> (5 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/12/23/wordpress-svn-external/" title="Wordpress en tant que dépendance SVN (23 décembre 2008)">Wordpress en tant que dépendance SVN</a> (7 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/04/20/ubuntu-feisty-fawn-configurer-effets-graphiques/" title="Ubuntu 7.04 : configurer les effets graphiques (20 avril 2007)">Ubuntu 7.04 : configurer les effets graphiques</a> (4 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/03/09/renouveau-reverse-engineer-nouveau/" title="REnouveau : Reverse Engineer nouveau (9 mars 2007)">REnouveau : Reverse Engineer nouveau</a> (6 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=EMiGbCzZ"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=Ml5p5FX1"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=Ml5p5FX1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=5K0YxmR3"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/bhWKReT62IA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/12/11/configuration-apache-mysql-php-symlinks/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2008/12/11/configuration-apache-mysql-php-symlinks/</feedburner:origLink></item>
		<item>
		<title>Profil Viadeo supprimé, LinkedIn traduit en français</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/WjIojofFulM/</link>
		<comments>http://case.oncle-tom.net/2008/12/02/profil-viadeo-supprime-linkedin-francais/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 06:00:24 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[données personnelles]]></category>

		<category><![CDATA[linkedin]]></category>

		<category><![CDATA[reseaux sociaux]]></category>

		<category><![CDATA[viadeo]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1136</guid>
		<description>Viadeo est un réseau social pour professionnels. Il sert entre autre à organiser son réseau professionnel en ligne et à augmenter les opportunités de business.
Pourtant j&amp;#8217;ai supprimé mon profil Viadeo en septembre 2008 pour diverses raisons. Dont celle de la sécurité. Pourquoi ? Et comment remplacer Viadeo pour réseauter ?

Développer son identité professionnelle via les [...]</description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1231" title="Logo Viadeo" src="http://case.oncle-tom.net/images/2008/12/viadeo-logo.png" alt="" width="146" height="34" /></p>
<p><a href="http://www.viadeo.com">Viadeo</a> est un <strong>réseau social pour professionnels</strong>. Il sert entre autre à organiser son réseau professionnel en ligne et à augmenter les opportunités de <em>business</em>.</p>
<p>Pourtant <a href="http://twitter.com/oncletom/statuses/925864689">j&#8217;ai supprimé mon profil Viadeo en septembre 2008</a> pour diverses raisons. Dont celle de la sécurité. Pourquoi ? Et comment remplacer Viadeo pour réseauter ?</p>
<p><span id="more-1136"></span></p>
<h3>Développer son identité professionnelle via les réseaux sociaux</h3>
<p>Aujourd&#8217;hui il faut exister sur Internet, à plus forte raison quand on est un professionnel. Surtout du Web. Quand je suis contacté par une personne que je ne connais pas, mon réflexe est de chercher dans <a href="http://google.fr">Google</a>, <a href="http://facebook.com">Facebook</a>, <a href="http://linkedin.com">LinkedIn</a> et <a href="http://spock.com">Spock</a>.<br />
Ça me fait toujours drôle de ne pas trouver un seul résultat : la personne qui me contacte n&#8217;a vraiment aucune activité sur Internet ? J&#8217;ai peine à croire que non.</p>
<p>Si l&#8217;on ne dispose pas d&#8217;un blog ou d&#8217;une page personnelle exprimant nos idées, une présence sur un réseau social professionnel (ou pas) apporte au moins ça :</p>
<ul>
<li>une présence en ligne (on vous cherche &#8230; on vous trouve)</li>
<li>une vision élargie et une proximité de votre réseau</li>
<li>un accès aux &#8220;amis de vos amis&#8221; (excellente source de recrutement)</li>
<li>un potentiel d&#8217;affaires supplémentaire</li>
</ul>
<p>Mettre à jour un statut ça paraît bête mais vous <em>poussez</em> cette information à tout votre réseau. Ce même réseau le réceptionnera et sera capable de rebondir dessus, surtout s&#8217;il s&#8217;agit de recrutement. C&#8217;est du <em>statut à oreille</em> au lieu du classique bouche à oreille.<br />
<a href="http://case.oncle-tom.net/2007/06/01/twitter-gtwitter/">Twitter est excellent</a> de ce point de vue là, en plus d&#8217;être un excellent relais d&#8217;information.</p>
<div id="attachment_1233" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1233" title="Connaissances, partagées ou non" src="http://case.oncle-tom.net/images/2008/12/linkedin-shared-connections.png" alt="Connaissances, partagées ou non" width="500" height="315" /><p class="wp-caption-text">Connaissances, partagées ou non</p></div>
<h3>Les raisons d&#8217;une suppression</h3>
<p>Malgré toutes les qualités que pouvait avoir Viadeo, j&#8217;ai supprimé mon profil pour 2 raisons :</p>
<ul>
<li>le <strong>stockage des mots de passe en clair</strong> (merci à <a href="http://prendreuncafe.com">Nico</a> pour l&#8217;info d&#8217;ailleurs)</li>
<li>l&#8217;<strong>omniprésence des publicités</strong> incitant à devenir membre <em>premium</em></li>
<li>cette sensation de grand bazar et d&#8217;interface rigide</li>
</ul>
<p>L&#8217;envoi du mot de passe existant dans sa boîte mail n&#8217;est pas rassurant. Cela signifie qu&#8217;il n&#8217;est pas ou peu protégé : soit il est stocké en clair, soit il est chiffré mais quelque part se trouve la clé permettant d&#8217;inverser le processus. Un bien bel artifice.</p>
<p>Le problème ? Une fuite de données ou une intrusion chez Viadeo et ce sont des millions de mot de passe qui sont récupérés.<br />
Et combien de personnes utilisent le même email et le même mot de passe sur plusieurs services ? Beaucoup.</p>
<p>Si jamais vous doutiez de la possibilité d&#8217;une telle chose, je vous renvoie aux brillantes actualités de la <a href="http://fr.techcrunch.com/2006/08/07/aol-vient-de-mettre-en-ligne-des-donnees-privees-en-quantite/">fuite des données de recherche de 650 000 utilisateurs d&#8217;<acronym title="America Online">AOL</acronym></a> ou encore de la <a href="http://www.caydel.com/dreamhost-leaks-3500-ftp-passwords/">perte des 3500 mots de passes <acronym title="File Transfer Protocol">FTP</acronym> de l&#8217;hébergeur DreamHost</a>.<br />
Alors si intrusion il y a, tant qu&#8217;à faire, autant ne pas y perdre plus qu&#8217;un compte &#8230;</p>
<p>Je passe ensuite sur les 2 autres points puisque c&#8217;est purement subjectif. Toutefois quand on me force trop la main, pour peu que je n&#8217;y vois pas l&#8217;intérêt, j&#8217;inverse les vapeurs. Je m&#8217;en vais.</p>
<div id="attachment_1232" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1232" title="Statistiques géographiques de LinkedIn" src="http://case.oncle-tom.net/images/2008/12/linkedin-geostats.png" alt="Statistiques géographiques de LinkedIn" width="500" height="249" /><p class="wp-caption-text">Statistiques géographiques de LinkedIn</p></div>
<h3>La solution LinkedIn</h3>
<p>Je dispose d&#8217;un <a href="http://www.linkedin.com/in/thomasparisot">profil LinkedIn</a> depuis 1 an et demi. Je n&#8217;ai jamais rien eu à reprocher à LinkedIn :</p>
<ul>
<li>interface très propre</li>
<li>le côté <em>premium</em> pas envahissant pour 2 sous</li>
<li>ça respire la qualité</li>
</ul>
<p>Forcément ça fait plus &#8220;pro&#8221;. Ceci dit, je trouvais qu&#8217;il manquait une interface en français pour attirer des professionnels français &#8230; en dehors des éternels <em>early adopters</em>.<br />
J&#8217;ai décalé la sortie de ce billet d&#8217;une semaine et coïncidence, <a href="http://blog.linkedin.com/2008/11/25/linkedin-en-francais-is-now-a-fait-accompli/">LinkedIn annonce une version française</a>. Comme quoi &#8230;</p>
<p>Ils ont été très malins puisqu&#8217;en plus de la langue française, on peut <strong>afficher son profil en plusieurs langues </strong>! Idéal pour disposer d&#8217;un profil français ET anglais en même temps. Les personnes ayant des contacts en dehors de leur pays de résidence apprécieront cette fonctionnalité.</p>
<p>Les groupes sont moins fouillis, moins sujets à spam et plus faciles à naviguer. Ils font davantage recours à des échanges d&#8217;expertise que de l&#8217;autopromotion (Viadeo).</p>
<p>Je vais être dur mais je ne plus ce qui retient les gens sur Viadeo. Ça fera peut-être un effet Twitter : les gens restent malgré les pannes et le manque de fonctionnalité car c&#8217;est là où sont tous leurs contacts mais j&#8217;en doute fortement.</p>
<div id="attachment_1234" class="wp-caption aligncenter" style="width: 484px"><img class="size-full wp-image-1234" title="Groupe d'utilisateurs sur LinkedIn" src="http://case.oncle-tom.net/images/2008/12/linkedin-group.png" alt="Groupe d'utilisateurs sur LinkedIn" width="474" height="380" /><p class="wp-caption-text">Groupe d&#39;utilisateurs sur LinkedIn</p></div>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2007/09/25/preparer-optimiser-recherche-emploi/" title="Comment j&#8217;ai préparé et optimisé ma recherche d&#8217;emploi (25 septembre 2007)">Comment j&#8217;ai préparé et optimisé ma recherche d&#8217;emploi</a> (13 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/06/01/twitter-gtwitter/" title="Twitter, la mini-messagerie (1 juin 2007)">Twitter, la mini-messagerie</a> (6 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/01/17/second-life-avenir-desir/" title="Second Life + Avenir = Désir (17 janvier 2007)">Second Life + Avenir = Désir</a> (7 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/02/22/netvibes-ginger-bien-mais-pas-top/" title="Netvibes Ginger : bien mais pas top (22 février 2008)">Netvibes Ginger : bien mais pas top</a> (5 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/02/09/lastfm-social-music-revolution/" title="Last.fm, social music revolution (9 février 2007)">Last.fm, social music revolution</a> (0 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=csU1wUjg"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=2Oy0Wqi2"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=2Oy0Wqi2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=RFkoKMEW"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/WjIojofFulM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/12/02/profil-viadeo-supprime-linkedin-francais/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2008/12/02/profil-viadeo-supprime-linkedin-francais/</feedburner:origLink></item>
		<item>
		<title>Développement efficace avec les frameworks CSS</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/cYJxwzP7DcE/</link>
		<comments>http://case.oncle-tom.net/2008/11/25/developpement-efficace-frameworks-css/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:00:08 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[blueprint]]></category>

		<category><![CDATA[bonnes pratiques]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[frameworks]]></category>

		<category><![CDATA[parisweb]]></category>

		<category><![CDATA[rythme vertical]]></category>

		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1211</guid>
		<description>J&amp;#8217;ai eu peur il y a 2 semaines en arrivant à Paris-Web 2008 : en discutant avec plusieurs personnes, il se trouve que peu d&amp;#8217;entre elles connaissaient les frameworks CSS. Je craignais de n&amp;#8217;attirer personne avec ce sujet lors des ateliers du samedi.
Les frameworks CSS ont été mentionnés la première fois dans la conférence Working [...]</description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1214" title="Logo Blueprint" src="http://case.oncle-tom.net/images/2008/11/blueprint-logo.png" alt="" width="340" height="82" /></p>
<p>J&#8217;ai eu peur il y a 2 semaines en arrivant à <a href="http://case.oncle-tom.net/2008/11/20/paris-web-2008-webdesign-qualite-standards/">Paris-Web 2008</a> : en discutant avec plusieurs personnes, il se trouve que peu d&#8217;entre elles connaissaient les <em>frameworks</em> <acronym title="Cascading Style Sheets">CSS</acronym>. Je craignais de n&#8217;attirer personne avec ce sujet lors des <a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-">ateliers du samedi</a>.</p>
<p>Les <em>frameworks</em> <acronym title="Cascading Style Sheets">CSS</acronym> ont été mentionnés la première fois dans la conférence <a href="http://www.wait-till-i.com/2008/10/31/working-in-the-now/">Working in the Now</a> (<a title="Visualiser la présentation Working in the Now de Christian Heilmann" href="http://www.slideshare.net/cheilmann/working-in-the-now-presentation">visualiser la présentation</a>). Au final, on n&#8217;était pas loin de faire salle comble avec plus d&#8217;une vingtaine de participants à vue de nez.</p>
<p>Une petite scéance de rattrapage s&#8217;impose <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><span id="more-1211"></span></p>
<h3>Pourquoi avoir choisi ce sujet ?</h3>
<p>J&#8217;ai lu un article sur <a href="http://www.biologeek.com/ergonomie,informatique/l-importance-du-rythme-vertical-en-design-css/">l&#8217;importance du rythme vertical</a> l&#8217;an dernier sur <a href="http://www.biologeek.com">Biologeek</a> et ça m&#8217;a sensibilisé au fait qu&#8217;on pouvait rendre la lecture d&#8217;un site tout simplement en rendant prédictible la position du texte.</p>
<p>Entre temps j&#8217;ai également lu l&#8217;excellent <a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/">Transcender <acronym title="Cascading Style Sheets">CSS</acronym></a> d&#8217;<a href="http://www.stuffandnonsense.co.uk">Andy Clarke</a>. J&#8217;y ai été sublimé par des présentations de sites totalement en grille.</p>
<p>Depuis je suis devenu fan de <a href="http://www.blueprintcss.org/">Blueprint <acronym title="Cascading Style Sheets">CSS</acronym></a> (je crois que ça s&#8217;est remarqué lors de mon intervention ;-)). J&#8217;ai commencé à l&#8217;utiliser sur des projets personnels puis dans un cadre professionnel. J&#8217;utilisais déjà <a href="http://www.symfony-project.org">symfony</a> comme framework <acronym title="Pre-Hypertext Processing">PHP</acronym> et <a href="http://jquery.com">jQuery</a> comme framework JavaScript alors pourquoi pas Blueprint ?</p>
<p>Comme le suggérait très justement <a href="http://www.wait-till-i.com">Christian Heilmann</a> dans sa présentation, l&#8217;utilisation d&#8217;outils déjà existants est nécessaire pour réduire les coûts de production. C&#8217;était déjà un bon alibi mais je les apprécie aussi parce qu&#8217;on gagne un temps fou ! On se concentre sur le code métier, pas le reste.</p>
<h3>La présentation</h3>
<p>Je n&#8217;en dis pas plus, je vous laisse lire la présentation. Ayez toutefois en tête qu&#8217;en vrai elle dure facilement 1h.</p>
<div style="text-align:center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=pariswebdeveloppementefficaceframeworkscss-1226764594180788-9&amp;stripped_title=dveloppement-efficace-avec-les-frameworks-css-presentation" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=pariswebdeveloppementefficaceframeworkscss-1226764594180788-9&amp;stripped_title=dveloppement-efficace-avec-les-frameworks-css-presentation" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<h3>Ce qu&#8217;il faut en retenir</h3>
<p>J&#8217;ai rencontré 2 types de réactions lorsque j&#8217;ai parlé des frameworks : les enthousiastes et les réfractaires.</p>
<p>Je ne reviens pas sur les enthousiastes : il suffit de lire ma présentation. Les atouts les ont clairement séduit.<br />
Je m&#8217;intéresserai plutôt aux réfractaires. Assez paradoxalement, ce n&#8217;est pas dans la salle que je les ai eu mais en dehors. Les principaux arguments étaient :</p>
<ul>
<li>ça rajoute des kilo-octets superflus</li>
<li>on perd le contrôle de notre code</li>
<li>j&#8217;utilise déjà le mini-framework d&#8217;un collègue ou qui existait dans mon entreprise avant que j&#8217;arrive</li>
</ul>
<p>Ces arguments sont tout à fait acceptables &#8230; mais ça dépend dans quel contexte.</p>
<div id="attachment_1215" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-1215" title="Exemple de mise en forme en grille" src="http://case.oncle-tom.net/images/2008/11/blueprint-sample.png" alt="Exemple de mise en forme en grille" width="500" height="226" /><p class="wp-caption-text">Exemple de mise en forme en grille</p></div>
<p>Les sites à la recherche de performances exceptionnelles, ceux pour qui un Ko supprimé économise plusieurs Go de bande-passante par jour &#8230; oui ceux-là ont un grand intérêt à réfléchir à l&#8217;adoption d&#8217;un <em>framework</em>, aussi compressé qu&#8217;il soit.<br />
Je ne me fais pas de soucis pour eux : en général ils ont leur propre <em>framework</em>, totalement adapté à leur besoin. Cependant ça n&#8217;empêche pas d&#8217;aller prendre des idées ailleurs et de découvrir de nouveaux concepts. Puis de les intégrer.</p>
<p>Lorsqu&#8217;on adopte un outil de développement rapide (RAD), la conception ne se fait plus par rapport à nos habitudes mais par rapport à des <strong>principes établis</strong>. On ne fait plus forcément comme on veut mais les meilleurs <em>frameworks</em> disposent de fonctionnalités répondant à cette problématique. Le <a href="http://www.jdclayton.com/blueprints_compress_a_walkthrough.html"><em>compressor</em></a> de Blueprint en est un parfait exemple.<br />
Il permet de construire une version de Blueprint adaptée à son besoin, inclut des feuilles de notre choix et compresse le tout en un seul fichier prêt à la mise en production.</p>
<p>Maintenant l&#8217;avantage d&#8217;un <em>framework</em> c&#8217;est qu&#8217;une <strong>communauté</strong> ou un groupe de personnes compétentes en ont la gestion. Ces mainteneurs produisent une documentation, des spécifications et un code suffisamment compréhensible à lire. Ce n&#8217;est pas forcément le cas de Joe le développeur à qui on aura demandé 36 choses en même temps.<br />
Je fais davantage confiance à un outil éprouvé avec succès sur des milliers de projets qu&#8217;un outil développé sur un coin de bureau, malgré toute la bonne volonté de son concepteur.<br />
C&#8217;est également un risque certes mais un bon outil délaissé aura tout de même le mérite de fonctionner &#8230; et d&#8217;avoir davantage de chances de trouver un repreneur.</p>
<p>Une remarque intéressante a également émergé de l&#8217;atelier : faut-il utiliser un <em>framework</em> <acronym title="Cascading Style Sheets">CSS</acronym> avant ou après que la créa graphique ait été établie ?<br />
Je réitère ma réponse : <strong>l&#8217;idéal est que tout soit pris en charge le plus tôt possible</strong>. Autrement dit, intégrer les contraintes du <em>framework</em> dès la conception graphique est un gros atout. Le découpage de la maquette n&#8217;en sera que facilité et ça évitera tout bricolage.<br />
Certains outils l&#8217;ont d&#8217;ailleurs bien compris en proposant des supports pour graphistes au format PSD, Visio, Fireworks etc.</p>
<div id="attachment_1213" class="wp-caption aligncenter" style="width: 310px"><a href="http://case.oncle-tom.net/images/2008/11/960-sketch-sheets.png"><img class="size-medium wp-image-1213" title="Feuilles de dessin pour 960 Grid System" src="http://case.oncle-tom.net/images/2008/11/960-sketch-sheets-300x232.png" alt="Feuilles de dessin pour 960 Grid System" width="300" height="232" /></a><p class="wp-caption-text">Feuilles de dessin pour 960 Grid System</p></div>
<h3>Conclusion</h3>
<p>Quoiqu&#8217;il en soit, les <em>frameworks</em> <acronym title="Cascading Style Sheets">CSS</acronym> sont à mon avis promis à un bel avenir dès lors que les critères d&#8217;industrialisation auront débarqué au sein des agences Web.</p>
<p>Aujourd&#8217;hui une petite agence a tout à gagner à maîtriser de tels outils et à annoncer qu&#8217;elle développera mieux, plus vite et moins cher. Le prix ne fait pas tout : ce sont les <strong>outils et la qualité du développement</strong>. Tous les <em>frameworks</em> cités sont également des logiciels libres.</p>
<p>J&#8217;espère que cet aperçu rapide aura ouvert les yeux à certains d&#8217;entre vous. Je suis preneur de vos retours, surtout en entreprise. Ça vaut également pour celles et ceux qui ne sont toujours pas convaincu de l&#8217;intérêt des <em>frameworks</em> <acronym title="Cascading Style Sheets">CSS</acronym> <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><strong>Remarque</strong> : il y avait 2 ateliers complémentaires à Paris-Web :</p>
<ul>
<li><a href="http://css.mammouthland.net/parisweb/optimisation-css.php">Optimiser ses <acronym title="Cascading Style Sheets">CSS</acronym></a></li>
<li><a href="http://romy.tetue.net/spip.php?article555">Cascade et héritage : concevoir, organiser, optimiser et maintenir ses feuilles de style</a></li>
</ul>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2008/04/22/emu-nova-21-coulisses-dune-refonte-ergonomique-et-visuelle/" title="Emu Nova 2.1 : coulisses d&#8217;une refonte ergonomique et visuelle (22 avril 2008)">Emu Nova 2.1 : coulisses d&#8217;une refonte ergonomique et visuelle</a> (5 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/" title="Transcender CSS : sublimez le design Web ! (11 décembre 2007)">Transcender CSS : sublimez le design Web !</a> (15 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/05/25/mise-a-jour-automatique-css-navigateur-web/" title="Mise à jour automatique d&#8217;une feuille de style CSS dans le navigateur Web (25 mai 2007)">Mise à jour automatique d&#8217;une feuille de style CSS dans le navigateur Web</a> (0 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/04/03/microformats-comment-microformater-du-contenu-deja-existant/" title="Microformats : comment microformater du contenu déjà existant ? (3 avril 2008)">Microformats : comment microformater du contenu déjà existant ?</a> (2 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/07/23/conventions-de-programmation-necessaire-maturite/" title="Conventions de programmation : la nécessaire maturité (23 juillet 2008)">Conventions de programmation : la nécessaire maturité</a> (19 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=jGgxvpWX"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=PhzIUiyx"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=PhzIUiyx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=CfPzptd0"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/cYJxwzP7DcE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/11/25/developpement-efficace-frameworks-css/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2008/11/25/developpement-efficace-frameworks-css/</feedburner:origLink></item>
		<item>
		<title>Paris-Web 2008 : au nom du webdesign, de la qualité et des standards</title>
		<link>http://feedproxy.google.com/~r/LaCaseDeLoncTom/~3/TM9StDH5TLY/</link>
		<comments>http://case.oncle-tom.net/2008/11/20/paris-web-2008-webdesign-qualite-standards/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 06:00:13 +0000</pubDate>
		<dc:creator>Oncle Tom</dc:creator>
		
		<category><![CDATA[Accessibilité]]></category>

		<category><![CDATA[Développement Web]]></category>

		<category><![CDATA[Logiciels libres]]></category>

		<category><![CDATA[Standards du Web]]></category>

		<category><![CDATA[bonnes pratiques]]></category>

		<category><![CDATA[ergonomie]]></category>

		<category><![CDATA[paris]]></category>

		<category><![CDATA[parisweb]]></category>

		<category><![CDATA[performances]]></category>

		<category><![CDATA[pw2008]]></category>

		<category><![CDATA[qualité]]></category>

		<guid isPermaLink="false">http://case.oncle-tom.net/?p=1203</guid>
		<description>J&amp;#8217;ai enfin pu assister à mon premier Paris-Web à Paris du 13 au 15 novembres 2008 inclus. C&amp;#8217;était bien, très bien mais que dis-je : excellent ! J&amp;#8217;ai rarement eu aussi peu envie de rentrer chez moi après cette multitude de rencontres dans un état d&amp;#8217;esprit des plus respectueux.
Y&amp;#8217;a même pas de troll pendant la [...]</description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1204" title="Badge Paris-Web 2008" src="http://case.oncle-tom.net/images/2008/11/badge-paris-web-2008.jpg" alt="" width="327" height="500" /></p>
<p>J&#8217;ai <em>enfin</em> pu assister à mon premier <a href="http://www.paris-web.fr/">Paris-Web</a> à Paris du 13 au 15 novembres 2008 inclus. C&#8217;était bien, très bien mais que dis-je : excellent ! J&#8217;ai rarement eu aussi peu envie de rentrer chez moi après cette multitude de rencontres dans un état d&#8217;esprit des plus respectueux.</p>
<p>Y&#8217;a même pas de troll pendant la conférence <em>Internet Explorer 8</em>, c&#8217;est dire.</p>
<p><span id="more-1203"></span></p>
<h3>Les conférences en quelques mots</h3>
<p>Les <a href="http://www.paris-web.fr/2008/-programme-">conférences de Paris-Web 2008</a> étaient réparties du jeudi au vendredi. Je souhaitais intituler cette partie &#8220;mes conférences préférées&#8221; mais en faisant le décompte, j&#8217;en citerais au moins 75% :</p>
<ul>
<li><a href="http://www.slideshare.net/elirene/sp-parisweb2008-20081113-presentation/">Qualité et accessibilité Web : vers l’amélioration continue</a></li>
<li><a href="http://www.slideshare.net/cheilmann/working-in-the-now-presentation">Travailler dans le présent</a></li>
<li><strong>Accessibilité, des volontaires ?</strong></li>
<li>Internationalisation</li>
<li><strong>La mode se démode, le &lt;style&gt; jamais</strong></li>
<li>Identité 2.0 et Web sémantique</li>
<li>IE8 et les standards du Web</li>
<li><strong>Performances côté client</strong></li>
</ul>
<div class="wp-caption aligncenter" style="width: 344px"><a class="tt-flickr tt-flickr-Medium" title="Stéphane Deschamps" href="http://www.flickr.com/photos/the-jedi/3034676683/"><img src="http://farm4.static.flickr.com/3237/3034676683_5eedcfdbb4.jpg" alt="Stéphane Deschamps" width="334" height="500" /></a><p class="wp-caption-text">Stéphane Deschamps</p></div>
<p>Ce qu&#8217;il faut retenir c&#8217;est que désormais, nous sommes dans une époque où nombre d&#8217;outils sont à notre disposition. Il faut <strong>maximiser l&#8217;utilisation d&#8217;outils déjà existants</strong> et s&#8217;en servir pour bâtir nos applications, interfaces et présentations.</p>
<p>Il faut également qu&#8217;on en finisse avec notre approche trop technique et intégriste de travailleurs du Web : <strong>le client se fiche éperdument de la techno employée</strong> ou de la fonctionnalité en elle-même. Ce qui compte c&#8217;est ce qu&#8217;elle apporte ainsi que le résultat final.<br />
Bien entendu, si la solution employée tient compte des performances et est facile à mettre en œuvre, c&#8217;en n&#8217;est que mieux.</p>
<p>Élie me faisait la remarque : <strong>il faut vendre de la qualité et pas de l&#8217;accessibilité</strong>. Il faut vendre un site qui rassure et guide le client. Si le site n&#8217;est déjà pas adapté aux individus sans déficiences, à quoi bon s&#8217;acharner à le rendre accessible ?<br />
Mieux vaut beaucoup de sites accessibles à 60% qu&#8217;une infime proportion de sites accessibles à 99%.</p>
<p>Bon nombre de conseils sur l&#8217;optimisation des sites Web étaient déjà cités dans l&#8217;excellentissime <a href="http://case.oncle-tom.net/2008/07/15/high-performance-web-sites/">livre High Performances Websites</a>. L&#8217;équipe <em>Exceptional Performance</em> de Yahoo! s&#8217;est toutefois penchée à fond sur l&#8217;optimisation des images.<br />
J&#8217;y reviendrai d&#8217;ailleurs car j&#8217;ai découvert <em>pngnq</em> et <em>pngcrush</em>. Ces 2 programmes sont d&#8217;une utilité redoutable pour compresser et optimiser vos <acronym title="Portable Network Graphics">PNG</acronym>, notamment pour faciliter la transparence <acronym title="Internet Explorer 6">IE6</acronym> sans douleur.</p>
<div class="wp-caption aligncenter" style="width: 348px"><a class="tt-flickr tt-flickr-Medium" title="Chris Wilson" href="http://www.flickr.com/photos/the-jedi/3043455147/"><img src="http://farm4.static.flickr.com/3135/3043455147_016c2baa1d.jpg" alt="Chris Wilson" width="338" height="500" /></a><p class="wp-caption-text">Chris Wilson</p></div>
<p>On terminera également avec une perspective du futur.<br />
Daniel Glazman a fait un show exceptionnel sur les <strong>nouveautés de CSS3</strong> avec tout plein de bonnes choses. J&#8217;ai vraiment hâte qu&#8217;on puisse jouer avec &#8230; peut-être dans pas si longtemps que ça vu que les navigateurs intègrent ces nouveautés par anticipation.</p>
<p>De son côté, Chris Wilson (qui faisait déjà partie de l&#8217;équipe de développement de Mozaïc) a abordé les standards et Internet Explorer 8. En toute honnêteté, j&#8217;admire la bravoure de cet homme &#8220;seul&#8221; face à une assemblée pro-standards qui passe sa journée à jeter des cailloux sur Internet Explorer.<br />
Pour avoir un peu discuté avec lui après coup, il représente une chance exceptionnelle d&#8217;enfin avoir Internet Explorer au niveau des autres navigateurs.</p>
<p>Si fonctionnellement je me fiche éperdument du navigateur puisque je ne l&#8217;utiliserai plus, le monde a tout à gagner à avoir <strong>un navigateur de plus à respecter les standards</strong>.<br />
Bon courage à Chris car ça ne doit pas être évident tous les jours pour lui. Je n&#8217;ose pas imaginer les montages qu&#8217;il a dû déplacer pour imposer ce choix du respect.</p>
<h3>Du côté des ateliers</h3>
<p>Le samedi c&#8217;était ateliers : 2 sessions le matin et 2 l&#8217;après-midi. Je me suis d&#8217;ailleurs vite retrouvé avec des choix cornéliens puisque pour chaque horaire, il y avait 5 sujets qui se faisaient concurrence.</p>
<p>J&#8217;ai pour ma part assisté à :</p>
<ul>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-redaction_et_referencement_naturel">Rédaction Web et référencement naturel</a></li>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-validation_formulaires">Validation avancée des formulaires</a></li>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-frameworks_CSS">Développement efficace avec les <span lang="en">frameworks <acronym title="Cascading Style Sheet"><acronym title="Cascading Style Sheets">CSS</acronym></acronym></span></a></li>
<li><a href="http://www.paris-web.fr/2008/-samedi-15-novembre-technique-#hcalendar-Paris-Web_2008-15_novembre_2008-atelier-rdf_vs_microformats"><acronym title="Resource Description Framework" lang="en"><acronym title="Resource Description Framework">RDF</acronym></acronym>a <abbr class="discret" title="versus" lang="en">vs</abbr> Microformats</a></li>
</ul>
<p>La <strong>rédaction Web était intéressante</strong> même si je n&#8217;ai pas appris grand chose et j&#8217;en profitais pour terminer mes <em>slides</em>. Vous retrouverez tout le contenu de cette présentation dans le livre <a href="http://case.oncle-tom.net/2008/01/08/ecrit-web-traitement-information-sur-internet/">l&#8217;écrit Web</a>.</p>
<p>La <strong>validation avancée des formulaires partait d&#8217;un bon principe</strong> mais s&#8217;enfonçait inutilement dans certaines parties. À mon avis, expliquer chaque fonction (y compris celles du <acronym title="Document Object Model">DOM</acronym>) était une perte de temps.<br />
Conseil : charger ses slides ne rend pas pour autant l&#8217;information digeste. C&#8217;est pas un document Word.<br />
C&#8217;était néanmoins intéressant pour le raisonnement et la satisfaction de mettre en place son propre validateur. Toutefois en production autant utiliser de l&#8217;existant. Il y a des <em>plugins</em> pour tous les bons frameworks JavaScript qui se respectent.</p>
<p>Je passe sur l&#8217;atelier des <strong>frameworks <acronym title="Cascading Style Sheets">CSS</acronym></strong> puisque je l&#8217;animais. J&#8217;y reviendrai dans un prochain article pour appuyer ma présentation et fournir des explications à ceux qui n&#8217;ont pas pu y assister.<br />
J&#8217;étais en revanche étonné qu&#8217;ils soient si peu connus. J&#8217;ai par contre été enchanté de les voir cités à plusieurs reprises dans mes conférences préférées <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Rien à redire sur <strong>RDFa vs. Microformats</strong> même si on aurait pu éjecter les microformats rapidements et plonger encore plus loin dans la pratique de RDFa. Ça sera prétexte à une suite plus technique l&#8217;an prochain <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div class="wp-caption aligncenter" style="width: 510px"><a class="tt-flickr tt-flickr-Medium" title="Amélie Boucher" href="http://www.flickr.com/photos/the-jedi/3035518848/"><img src="http://farm4.static.flickr.com/3175/3035518848_5670eddbfa.jpg" alt="Amélie Boucher" width="500" height="334" /></a><p class="wp-caption-text">La sublime Amélie Boucher</p></div>
<h3>Sans oublier les gens !</h3>
<p>Paris-Web c&#8217;est aussi l&#8217;occasion de <a href="http://www.biologeek.com/2008/11/paris-web-2008-retours-chaud/">rencontrer la moitié de son aggrégateur</a> et de ses <em>followers</em> Twitter <img src='http://case.oncle-tom.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Et Dieu sait s&#8217;il y avait tout un tas de pointures du Web à notre disposition dans une ambiance exceptionnellement cordiale :</p>
<ul>
<li>Sophie Major, big boss du Yahoo! Developer Network</li>
<li><a href="http://www.stubbornella.org/">Nicole Sullivan</a>, de l&#8217;équipe Yahoo! <em>Exceptional Performance</em></li>
<li><a href="http://www.wait-till-i.com/">Christian Heilmann</a> et son incroyable bonne humeur pragmatique ; je suis fan !</li>
<li><a href="http://glazman.org">Daniel Glazman</a>, du <acronym title="Cascading Style Sheets">CSS</acronym> Working Group ; franc, direct et j&#8217;aime ça</li>
<li>Sans oublier pêle-mêle <a href="http://www.sutekidane.net/">Than</a>, <a href="http://www.tentatives-accessibles.eu">Sébastien Delorme</a>, <a href="http://blog.webatou.info/">Monique</a>, <a href="http://www.jeuxdemaux.com/">La Lène</a>, <a href="http://www.ergolab.net">Amélie Boucher</a>, <a href="http://redisdead.net">Hellgy</a>, <a href="http://goetter.fr">Raphaël Goetter</a>, <a href="http://openweb.eu.org/">Fabrice Bonny</a>, <a href="http://www.netvibes.com/znarf">François Hodierne</a>, <a href="http://xavier.borderie.net/blog/">Xavier Borderie</a> &#8230; et en oubliant très certainement plein d&#8217;autres :&#8217;(</li>
<li>Et d&#8217;excellentes découvertes : <a href="http://hanblog.info/blog/">Anthony Ricaud</a>, <a href="http://blog.virgule.info/">Mathieu Pillard</a> et toute l&#8217;<strong>équipe Paris-Web</strong> !</li>
</ul>
<div class="wp-caption aligncenter" style="width: 510px"><a class="tt-flickr tt-flickr-Medium" title="Table ronde du jeudi" href="http://www.flickr.com/photos/the-jedi/3034679191/"><img src="http://farm4.static.flickr.com/3270/3034679191_d551c06a85.jpg" alt="Table ronde du jeudi" width="500" height="334" /></a><p class="wp-caption-text">La brochette des meilleurs !</p></div>
<h3>Conclusion</h3>
<p>Bref, <strong>Paris-Web c&#8217;est bien</strong>. Tellement bien que l&#8217;attente de l&#8217;édition 2009 me paraît déjà insoutenable !</p>
<p>Je ne regrette au final qu&#8217;une chose : 3 jours ça paraît long mais ça passe teeeeeeeeeeeeellement vite en compagnie de personnes de qualité avec un programme chargé.<br />
J&#8217;ai essayé de discuter avec un maximum de personnes, que je connaissais ou pas, mais des fois c&#8217;est très insuffisant.</p>
<p>Les tables rondes étaient également exceptionnelles &#8230; désolé ça frise le billet sponsorisé mais il est difficile de ne pas déborder d&#8217;enthousiasme après un tel évènement.</p>
<p>C&#8217;est l&#8217;<strong>effet Paris-Web</strong>. Rendez-vous est pris.</p>
<p><a class="tt-flickr tt-flickr-Medium" title="François Yergeau nous parle d'internationalisation" href="http://www.flickr.com/photos/the-jedi/3039040472/"><img class="aligncenter" src="http://farm4.static.flickr.com/3020/3039040472_65bfdecfbd.jpg" alt="François Yergeau nous parle d'internationalisation" width="500" height="334" /></a></p>
	<h2>Articles relatifs</h2>
	<ul class="st-related-posts">
	<li><a href="http://case.oncle-tom.net/2008/10/03/rendez-vous-octobre-novembre-web2-paris-web/" title="Mes rendez-vous d&#8217;octobre/novembre : Web2, Paris-Web &#038; cie (3 octobre 2008)">Mes rendez-vous d&#8217;octobre/novembre : Web2, Paris-Web &#038; cie</a> (4 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/11/25/developpement-efficace-frameworks-css/" title="Développement efficace avec les frameworks CSS (25 novembre 2008)">Développement efficace avec les frameworks CSS</a> (22 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2008/10/14/webdeuxconnect-20-les-400-coups-du-reseau/" title="Webdeux.connect 2.0, les 400 coups du réseau (14 octobre 2008)">Webdeux.connect 2.0, les 400 coups du réseau</a> (8 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/12/11/critique-transcender-css-sublimez-design-web/" title="Transcender CSS : sublimez le design Web ! (11 décembre 2007)">Transcender CSS : sublimez le design Web !</a> (15 commentaires)</li>
	<li><a href="http://case.oncle-tom.net/2007/02/26/sites-web-les-bonnes-pratiques/" title="Sites Web : les bonnes pratiques (26 février 2007)">Sites Web : les bonnes pratiques</a> (12 commentaires)</li>
</ul>

<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=rndeRdPJ"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=ytjRDkfK"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?i=ytjRDkfK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?a=Y2rS4ESw"><img src="http://feeds.feedburner.com/~f/LaCaseDeLoncTom?d=50" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LaCaseDeLoncTom/~4/TM9StDH5TLY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://case.oncle-tom.net/2008/11/20/paris-web-2008-webdesign-qualite-standards/feed/</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><feedburner:origLink>http://case.oncle-tom.net/2008/11/20/paris-web-2008-webdesign-qualite-standards/</feedburner:origLink></item>
	<lastBuildDate>Thu, 02 Jul 2009 05:15:30 PDT</lastBuildDate></channel>
</rss>
