<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Julien Appert</title>
	
	<link>http://julienappert.com</link>
	<description>Développeur / intégrateur web indépendant</description>
	<lastBuildDate>Fri, 19 Feb 2010 12:28:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JulienAppert" /><feedburner:info uri="julienappert" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>JulienAppert</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Redéfinir les listes HTML générées par WordPress</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/3ZQHDYFi73k/redefinir-les-listes-html-generees-par-wordpress.html</link>
		<comments>http://julienappert.com/redefinir-les-listes-html-generees-par-wordpress.html#comments</comments>
		<pubDate>Fri, 19 Feb 2010 12:26:21 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Trucs et astuces]]></category>
		<category><![CDATA[développeur]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=329</guid>
		<description><![CDATA[WordPress dispose de fonctions très pratiques pour afficher le contenu. Pour afficher la liste des pages disponibles de manière hiérarchique, il suffit d&#8217;utiliser la fonction wp_list_pages(), qui va générer toute seule le code HTML nécessaire, avec les listes imbriquées.
Seulement voilà, parfois, on a besoin de personnaliser un peu ce code HTML. Par exemple, moi, j&#8217;avais [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="shadow aligncenter" title="wordpress-wp-list-pages" src="http://julienappert.com/wordpress/wp-content/uploads/2010/02/wordpress-wp-list-pages.jpg" alt="" width="600" height="266" /><br />
WordPress dispose de fonctions très pratiques pour afficher le contenu. Pour afficher la liste des pages disponibles de manière hiérarchique, il suffit d&#8217;utiliser la fonction <code>wp_list_pages()</code>, qui va générer toute seule le code HTML nécessaire, avec les listes imbriquées.</p>
<p>Seulement voilà, <strong>parfois, on a besoin de personnaliser un peu ce code HTML</strong>. Par exemple, moi, j&#8217;avais besoin d&#8217;ajouter une classe sur les liens, ce qui n&#8217;a pas été prévu par WordPress. Qu&#8217;à cela ne tienne, me direz-vous, il suffit de réécrire la fonction ! Pas si simple, car celle-ci utilise <strong>un système très efficace mais relativement compliqué appelé <code>Walker</code></strong> (que vous trouverez dans le fichier <code>wp-includes/classes.php</code>). Et croyez-moi, vous n&#8217;avez pas envie de réécrire tout ça !</p>
<p>Le léger hack suivant va permettre de nous en sortir facilement.</p>
<p>Tout d&#8217;abord, il faut repérer la classe qui génère le contenu HTML. Dans le cas de la fonction <code>wp_list_pages()</code>, il s&#8217;agit de la classe <code>Walker_Page</code> (qui se trouve aussi dans le fichier précédemment cité). Copiez la dans votre plugin ou dans le fichier <code>functions.php</code> de votre thème, en prenant soin d&#8217;en modifier le nom. Par exemple :</p>
<pre class="brush: php;">class Walker_Page_modified extends Walker { ... }</pre>
<p>Profitez en pour adapter le code HTML à vos besoins. Maintenant, voyons comment dire à WordPress d&#8217;utiliser votre classe personnalisée. Tout se passe dans les paramètres de la fonction <code>wp_list_pages()</code> :</p>
<pre class="brush: php;">wp_list_pages(  array( 'walker' =&gt; new Walker_Page_modified() )  );</pre>
<p>Et voilà, c&#8217;est aussi simple que ça ! Vous avez réussi à plier WordPress à vos besoins, et non le contraire.</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/3ZQHDYFi73k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/redefinir-les-listes-html-generees-par-wordpress.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://julienappert.com/redefinir-les-listes-html-generees-par-wordpress.html</feedburner:origLink></item>
		<item>
		<title>Google Buzz, un produit hybride, prometteur mais encore lacunaire</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/aRs8Fst5ew4/google-buzz-un-produit-hybride-prometteur-mais-encore-lacunaire.html</link>
		<comments>http://julienappert.com/google-buzz-un-produit-hybride-prometteur-mais-encore-lacunaire.html#comments</comments>
		<pubDate>Thu, 11 Feb 2010 12:43:33 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Services Web]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=318</guid>
		<description><![CDATA[Avec son Google Buzz, Google cède à la mode des statuts et s&#8217;attaque directement au fond de commerce de Twitter et Facebook. En intégrant directement son service dans l&#8217;interface de Gmail, il commence de fait avec un potentiel énorme d&#8217;utilisateurs, à savoir tous les utilisateurs actuels du webmail. Voilà qui devrait faire de Google Buzz [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://julienappert.com/wordpress/wp-content/uploads/2010/02/google-buzz.jpg"><img class="shadow aligncenter" title="google-buzz" src="http://julienappert.com/wordpress/wp-content/uploads/2010/02/google-buzz.jpg" alt="" width="620" height="249" /></a><br />
Avec son Google Buzz, Google cède à la mode des statuts et s&#8217;attaque directement au fond de commerce de Twitter et Facebook. En intégrant directement son service dans l&#8217;interface de Gmail, il commence de fait avec un potentiel énorme d&#8217;utilisateurs, à savoir tous les utilisateurs actuels du webmail. Voilà qui devrait faire de Google Buzz un produit moins élitiste que Twitter, et donc très utile pour la promotion de vos sites web&#8230;</p>
<h2>Similarités avec la concurrence</h2>
<p><strong>Buzz est une sorte d&#8217;hybride de ses principaux concurrents, il a su en tirer le meilleur.</strong></p>
<p><strong>Comme Twitter :</strong></p>
<ul>
<li>le système de following/followers : on peut se connecter à des flux buzz sans réciprocité (contrairement à Facebook),</li>
<li>on peut s&#8217;adresser directement à quelqu&#8217;un en utilisant la syntaxe @nomducompte,</li>
<li>le flux d&#8217;activité est public par défaut.</li>
</ul>
<p><strong>Comme Facebook :</strong></p>
<ul>
<li>De Facebook, Buzz a surtout retenu les possibilités d&#8217;interaction. Il est en effet possible de commenter et d&#8217;apprécier chaque buzz, ce qui facilite les conversations,</li>
<li>Le nombre de caractères pour chaque buzz n&#8217;est pas limité (ça peut être considéré comme un point faible pour ceux qui apprécient la concision des tweets, mais croyez moi, c&#8217;est souvent un calvaire d&#8217;exprimer correctement sa pensée en 140 caractères&#8230;),</li>
<li>Il est possible de cibler chaque buzz pour qu&#8217;il soit visible uniquement par un ou plusieurs groupes d&#8217;utilisateurs.</li>
</ul>
<h2>Innovations intéressantes</h2>
<p>Mais Buzz est plus qu&#8217;un simple patchwork de fonctionnalités des concurrents. <strong>Son point fort, c&#8217;est l&#8217;intégration intelligente de ses autres services</strong>.</p>
<ul>
<li>La page de votre profil buzz est en fait votre page de profil google.</li>
<li>Il est également capable de récupérer les flux de vos sites via votre compte Feedburner, si vous en avez un. Il n&#8217;est donc plus nécessaire de configurer des services externes pour publier vos articles dans votre flux d&#8217;activité : Buzz le fait pour vous.</li>
<li>De la même manière, il peut intégrer vos publications publiques issues de ses services Picasa, Google Reader, Youtube&#8230;</li>
<li>Inclus dans Gmail, Buzz intègre fort logiquement la possibilité de partager un buzz par email.</li>
</ul>
<h2>Sérieuses lacunes</h2>
<p>Google Buzz a beau compiler le meilleur de ses concurrents, <strong>il a encore de sérieuses lacunes</strong> :</p>
<ul>
<li><strong>pas d&#8217;option de configuration avancée</strong> : la page de profil gagnerait par exemple à être plus personnalisable, en terme de look comme de contenu.</li>
<li><strong>pas de personnalisation pour la publication des flux RSS</strong>. Actuellement, Buzz affiche entièrement les articles dans le flux, ce qui ne serait pas très dérangeant s&#8217;il n&#8217;y avait cette possibilité de commenter. Au final, les buzzeurs liront vos articles et surtout les commenteront sans jamais se rendre sur votre site, ce qui déclenchera un inévitable éparpillement des conversations.</li>
<li><strong>pas d&#8217;API pour la gestion externe des contenus</strong>. Choix délibéré ou simple carence de jeunesse ? Probablement la seconde solution, car l&#8217;API est en partie ce qui fait la force de ses concurrents Twitter et Facebook. Il serait notamment possible de récupérer les commentaires pour les centraliser et ainsi corriger l&#8217;éparpillement des conversations&#8230; MAJ : <a href="http://code.google.com/intl/fr/apis/buzz/">Google Buzz a bien une API</a> en cours de développement)</li>
<li><strong>pas de fonction rebuzzing</strong> : la grande force de Twitter, c&#8217;est la possibilité (inventée par les utilisateurs) de retweeter une information, c&#8217;est à dire la publier à son tour, en mentionnant l&#8217;auteur original. L&#8217;option est absolument nécessaire pour diffuser le plus largement possible.</li>
<li><strong>pas de lien externe pour buzzer</strong> : sur de plus en plus de sites, on trouve des liens pour diffuser facilement une information sur Facebook, Twitter ou autres services. Après une rapide recherche, ce genre de lien n&#8217;a pas l&#8217;air possible avec Google Buzz.</li>
</ul>
<h2>Conclusion</h2>
<p>Google Buzz semble un nouveau service très prometteur, comme souvent avec Google. A mi-chemin entre l&#8217;efficace simplicité de Twitter et la grande diffusion de Facebook, il pourrait rapidement devenir un outil incontournable, à condition de corriger les quelques erreurs de jeunesse qui seront, sinon, de sérieux freins à l&#8217;adoption massive du service.</p>
<p>PS : ne perdez pas une seconde, <strong>testez le service en vous abonnant à mes buzz</strong> à partir de <a href="http://www.google.com/profiles/appertj">mon profil public</a>.</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/aRs8Fst5ew4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/google-buzz-un-produit-hybride-prometteur-mais-encore-lacunaire.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://julienappert.com/google-buzz-un-produit-hybride-prometteur-mais-encore-lacunaire.html</feedburner:origLink></item>
		<item>
		<title>Bientôt du neuf dans mes plugins WordPress</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/Qh9hVPZTnWU/bientot-du-neuf-dans-mes-plugins-wordpress.html</link>
		<comments>http://julienappert.com/bientot-du-neuf-dans-mes-plugins-wordpress.html#comments</comments>
		<pubDate>Mon, 08 Feb 2010 17:23:57 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Le blog]]></category>
		<category><![CDATA[commentaire]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=309</guid>
		<description><![CDATA[Pas beaucoup d&#8217;articles, en ce moment, sur le blog. Il faut dire que j&#8217;ai un peu la tête dans le guidon, ce qui est plutôt une bonne chose, au final. 
Cela dit, si tout se passe comme prévu, il devrait y avoir du neuf d&#8217;ici à la fin de la semaine. Je suis notamment en [...]]]></description>
			<content:encoded><![CDATA[<p>Pas beaucoup d&#8217;articles, en ce moment, sur le blog. Il faut dire que j&#8217;ai un peu la tête dans le guidon, ce qui est plutôt une bonne chose, au final. </p>
<p>Cela dit, si tout se passe comme prévu, il devrait y avoir du neuf d&#8217;ici à la fin de la semaine. Je suis notamment en train de <strong>peaufiner un nouveau plugin WordPress</strong>. Après <a href="http://julienappert.com/realisations/plugin-editable-comments" title="Plugin Editable Comments">Editable Comments</a> pour l&#8217;édition des commentaires, je m&#8217;attaque à <strong>la connexion externe</strong> (Facebook, Twitter&#8230;), dans le genre de ce que fait WP Facebook Connect, mais en mieux (en tout cas, à mes yeux, j&#8217;espère que ce sera également votre cas).</p>
<p>Vous pouvez d&#8217;ores et déjà <strong>le tester sur ce blog</strong>, où je viens d&#8217;activer une version alpha <img src='http://julienappert.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Restez connectés !</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/Qh9hVPZTnWU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/bientot-du-neuf-dans-mes-plugins-wordpress.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://julienappert.com/bientot-du-neuf-dans-mes-plugins-wordpress.html</feedburner:origLink></item>
		<item>
		<title>Wordpress n’est pas fait pour les développeurs !</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/1AeZXk5KO58/wordpress-nest-pas-fait-pour-les-developpeurs.html</link>
		<comments>http://julienappert.com/wordpress-nest-pas-fait-pour-les-developpeurs.html#comments</comments>
		<pubDate>Sat, 23 Jan 2010 12:44:31 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Métiers du Web]]></category>
		<category><![CDATA[développeur]]></category>
		<category><![CDATA[intégrateur]]></category>
		<category><![CDATA[polémique]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=294</guid>
		<description><![CDATA[Avant-hier, Palleas a lancé un coup de gueule contre les &#8220;développeurs wordpress&#8221; et contre wordpress en général (&#8220;wordpress, c’est de la merde&#8221;). Si vous n&#8217;avez pas lu l&#8217;article, je vous conseille d&#8217;aller y jeter un œil avant de continuer la lecture de celui-ci.
Ma réponse ne tiendrait pas dans un commentaire, alors je vais le faire [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://julienappert.com/wordpress/wp-content/uploads/2010/01/wordpress.png"><img src="http://julienappert.com/wordpress/wp-content/uploads/2010/01/wordpress.png" alt="" title="wordpress" width="250" height="250" class="alignleft size-full wp-image-301" /></a>Avant-hier, <a href="http://twitter.com/palleas">Palleas</a> a lancé un coup de gueule contre les &#8220;développeurs wordpress&#8221; et contre wordpress en général (<strong>&#8220;wordpress, c’est de la merde&#8221;</strong>). Si vous n&#8217;avez pas lu l&#8217;article, je vous conseille d&#8217;aller y <a href="http://palleas.com/je-suis-developpeur-wordpress/">jeter un œil</a> avant de continuer la lecture de celui-ci.</p>
<p>Ma réponse ne tiendrait pas dans un commentaire, alors je vais le faire ici.</p>
<h2>Qu&#8217;est-ce qu&#8217;un développeur wordpress ?</h2>
<p>Commençons par le début : <strong>un développeur wordpress, ça n&#8217;existe pas</strong>. Wordpress est un outil, pas une technologie. Développeur wordpress est donc un raccourci maladroit signifiant : je suis développeur web spécialisé dans l&#8217;utilisation de Wordpress. Comme les raccourcis, même maladroits, ont le mérite d&#8217;être courts, je vais continuer l&#8217;article en parlant de développeur wordpress, mais gardons à l&#8217;esprit la véritable définition.</p>
<h2>Que signifie développer pour wordpress ?</h2>
<p><strong>Ajouter des fonctions php issues du <a href="http://codex.wordpress.org">codex</a> dans les fichiers d&#8217;un thème, ce n&#8217;est pas être développeur</strong>. C&#8217;est être, disons, un intégrateur aux compétences élargies, c&#8217;est à dire capable de lire une documentation et d&#8217;en tirer le code dont il a besoin.</p>
<p>Alors à partir de quand peut-on se dire développeur wordpress ? <strong>C&#8217;est simple : quand on crée son propre code</strong>. Là, il y a deux manières. Soit vous comblez un besoin ponctuel en créant une fonction dans le fichier prévu à cet effet dans votre dossier de thème (functions.php), soit vous répondez à un besoin plus général en créant un plugin. C&#8217;est votre cas ? Bravo, vous êtes développeur wordpress !</p>
<p>Passons à la seconde partie, à savoir le coup de gueule contre wordpress en général. </p>
<h2>Wordpress, une merde bien faite</h2>
<p>C&#8217;est vrai, wordpress n&#8217;est pas superbement codé. Il n&#8217;a pas été totalement réécrit depuis&#8230; depuis&#8230; l&#8217;a-t-il déjà été ? En conséquence de quoi, il est plein de codes dépassés. Diantre, du PHP 4 ! En dehors de ça, wordpress a quelques avantages non négligeables par rapport à des concurrents mieux codés :</p>
<ul>
<li><strong>Son extensibilité</strong> : je ne connais pas de CMS aussi extensible que WordPress. Quand j&#8217;ai besoin de réaliser quelque chose que WordPress ne sait pas faire, ou fait mal à mon goût, je trouve quasiment toujours un moyen d&#8217;y parvenir sans toucher au coeur de la bête, simplement en utilisant les nombreux filtres et actions prévus pour ça.</li>
<li><strong>Son interface d&#8217;administration</strong> : comparée à certaines dont je ne citerai pas le nom cent fois maudit, l&#8217;administration de wordpress est simple, très simple. Tout en restant efficace. C&#8217;est une qualité indéniable, déterminante quand on sait que les clients finaux, pour la grande majorité, n&#8217;ont jamais utilisé d&#8217;interface d&#8217;administration auparavant. Le seul hic, c&#8217;est que cette interface est difficilement modifiable sans toucher directement aux fichiers.</li>
<li><strong>Son intégration</strong> : les thèmes pour wordpress sont très simples à créer, et les fonctions permettant d&#8217;accéder aux données sont en général bien faites ou, sinon, aisément contournables. Ce n&#8217;est pas le cas de bien des CMS&#8230;
</ul>
<h2>Le meilleur compromis</h2>
<p>Alors certes, Wordpress, par la qualité de son code, ne serait peut-être pas le premier choix d&#8217;un développeur. Mais <strong>c&#8217;est le meilleur compromis que je connaisse entre les différents intérêts du développeur, de l&#8217;intégrateur et du client final</strong>. Une merde, peut-être, mais une merde rudement efficace !</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/1AeZXk5KO58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/wordpress-nest-pas-fait-pour-les-developpeurs.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://julienappert.com/wordpress-nest-pas-fait-pour-les-developpeurs.html</feedburner:origLink></item>
		<item>
		<title>Créer des éléments HTML avec jQuery 1.4</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/rKFugkJu4hw/creer-des-elements-html-avec-jquery-1-4.html</link>
		<comments>http://julienappert.com/creer-des-elements-html-avec-jquery-1-4.html#comments</comments>
		<pubDate>Fri, 15 Jan 2010 14:37:49 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Trucs et astuces]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=289</guid>
		<description><![CDATA[Si vous avez déjà essayé d&#8217;ajouter des éléments HTML avec javascript, vous le savez : c&#8217;est la croix et la bannière !  Pour faciliter cette action, la dernière version de jQuery (1.4) propose une nouvelle syntaxe appelée : Quick Element Construction. C&#8217;est d&#8217;une simplicité déconcertante :
jQuery(&#34;&#60;div&#62;&#34;, {
 id: &#34;foo&#34;,
    css: {
  [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez déjà essayé d&#8217;ajouter des éléments HTML avec javascript, vous le savez : c&#8217;est la croix et la bannière !  Pour faciliter cette action, la dernière version de jQuery (1.4) propose une nouvelle syntaxe appelée : <a href="http://api.jquery.com/jQuery/#jQuery2">Quick Element Construction</a>. C&#8217;est d&#8217;une simplicité déconcertante :</p>
<pre class="brush: jscript;">jQuery(&quot;&lt;div&gt;&quot;, {
 id: &quot;foo&quot;,
    css: {
        height: &quot;50px&quot;,
        width: &quot;50px&quot;,
        color: &quot;blue&quot;,
        backgroundColor: &quot;#ccc&quot;
    },
    click: function() {
       $(this).css(&quot;backgroundColor&quot;, &quot;red&quot;);
    }
}).appendTo(&quot;body&quot;);</pre>
<p>Je suis déjà fan. La liste des fonctionnalités ajoutées à jQuery 1.4 est disponible sur le site <a href="http://jquery14.com/day-01/jquery-14">jquery14.com</a>.</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/rKFugkJu4hw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/creer-des-elements-html-avec-jquery-1-4.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://julienappert.com/creer-des-elements-html-avec-jquery-1-4.html</feedburner:origLink></item>
		<item>
		<title>Qui perd la guerre des navigateurs ?</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/hVpSDaQz5r0/qui-perd-la-guerre-des-navigateurs.html</link>
		<comments>http://julienappert.com/qui-perd-la-guerre-des-navigateurs.html#comments</comments>
		<pubDate>Sat, 09 Jan 2010 07:40:14 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Métiers du Web]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[développeur]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[intégrateur]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[navigateur]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=276</guid>
		<description><![CDATA[Cet article est une réaction à un tweet de @davidwalshblog (relayé par @geekarlier) :
Who loses the browser wars? Developers.
&#8220;Qui perd la guerre des navigateurs ? Les développeurs.&#8221; J&#8217;ai trouvé la réflexion intéressante et sujette à discussion.

Qu&#8217;est-ce que la guerre des navigateurs ?
Petit rappel des faits. Il y a environ dix ans, après une âpre concurrence [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est une réaction à un tweet de <a href="http://twitter.com/davidwalshblog/status/7522516329">@davidwalshblog</a> (relayé par <a href="http://twitter.com/geekarlier/status/7523069751">@geekarlier</a>) :</p>
<blockquote><p>Who loses the browser wars? Developers.</p></blockquote>
<p><strong>&#8220;Qui perd la guerre des navigateurs ? Les développeurs.&#8221;</strong> J&#8217;ai trouvé la réflexion intéressante et sujette à discussion.</p>
<p><img class="aligncenter size-full wp-image-281" title="guerre-des-navigateurs" src="http://julienappert.com/wordpress/wp-content/uploads/2010/01/guerre-des-navigateurs.jpg" alt="" width="324" height="216" /></p>
<h2>Qu&#8217;est-ce que la guerre des navigateurs ?</h2>
<p>Petit rappel des faits. Il y a environ dix ans, après une âpre concurrence avec le navigateur Netscape, <strong>Internet Explorer est devenu LE navigateur incontournable</strong>, en suprématie totale sur le marché grâce à l&#8217;immense force de frappe de Microsoft et surtout à la forte imbrication du navigateur avec son système d&#8217;exploitation Windows.</p>
<p>EN 2001, Microsoft sort la version 6 d&#8217;Internet Explorer et décide d&#8217;arrêter là, stoppant net l&#8217;innovation du secteur après le K.O. de son principal concurrent. Mais <strong>en 2004 sort Firefox 1.0</strong>, un navigateur innovant (il est le premier à utiliser les onglets) créé par la fondation Mozilla à partir du code source complètement revu et corrigé de l&#8217;ancien Netscape. Face au succès de ce petit nouveau, <strong>Microsoft décide de remettre au travail son équipe de développement et sort IE7 fin 2006</strong>, provoquant par la même occasion une nouvelle course à l&#8217;innovation dans le secteur des navigateurs web.</p>
<p><strong>En 2008, c&#8217;est au tour de Google</strong>. Le géant des moteurs de recherche sort Google Chrome, un navigateur simple et épuré basé sur le code source de Safari<sup>1</sup>, le navigateur d&#8217;Apple (<span style="text-decoration: line-through;">alors disponible uniquement sur Mac</span> disponible pour Windows quelques mois avant Chrome). Son succès est jusqu&#8217;ici assez mitigé mais ses parts de marché pourraient augmenter considérablement, Google ayant dernièrement mis en place une <a href="http://standblog.org/blog/post/2010/01/08/Publicites-Google">campagne de publicité impressionnante</a> (affiches dans la rue et le métro, pleines pages dans des journaux papier, encarts sur des sites web à forts trafics, etc).</p>
<p>La guerre des navigateurs, c&#8217;est donc cela : une course aux parts de marché, basée sur <strong>une innovation et une promotion permanente</strong> de la part des différents protagonistes.</p>
<h2>Qui y gagne ?</h2>
<p><strong>Les utilisateurs, assurément</strong>. Ils sont la cible à convaincre, les concurrents mettent donc tout en place pour améliorer leur ergonomie et proposer des outils toujours plus performants.</p>
<h2>Qui y perd ?</h2>
<p>D&#8217;après @davidwalshblog, les développeurs. Bien. J&#8217;imagine qu&#8217;il inclut dans ce terme les intégrateurs, bien que ce soit deux métiers différents. <strong>Je comprends son point de vue, mais je ne le partage pas complètement</strong>. Pourquoi ? Une conséquence de cette guerre d&#8217;innovations est que les navigateurs proposent des fonctionnalités différentes (ou des manières différentes de les aborder) et sortent parfois du carcan des standards pour marquer leur différence. Le problème, pour un professionnel du web, c&#8217;est que ses réalisations doivent fonctionner pareillement au moins sur les supports les plus répandus. En tant qu&#8217;intégrateur (pour l&#8217;affichage) et développeur (pour les fonctionnalités dynamiques en javascript), je n&#8217;ai pas le choix : je dois vérifier mon travail sur Firefox, Internet Explorer et Chrome. Pire, comme je l&#8217;ai déjà évoqué maintes fois dans mes articles, je dois prendre en compte les différentes versions ! Car une autre conséquence de la guerre des navigateurs est une mise à jour rapide et régulière de ces logiciels. Si tout le monde utilisait un navigateur à jour, ce ne serait pas un problème. Malheureusement, c&#8217;est loin d&#8217;être le cas.</p>
<p>A titre d&#8217;exemple, voici un aperçu de l&#8217;équipement des lecteurs d&#8217;apperisphere.com, le mois dernier :</p>
<p><img class="aligncenter size-full wp-image-280" title="navigateurs-versions" src="http://julienappert.com/wordpress/wp-content/uploads/2010/01/navigateurs-versions.png" alt="" width="553" height="236" /><br />
Vous le voyez, ça fait beaucoup de configurations différentes à prendre en compte si l&#8217;on veut que tous puissent avoir un rendu correct.  En cela, c&#8217;est exact, les développeurs et intégrateurs perdent un temps considérable à ménager la chèvre et le chou.</p>
<h2>Un mal nécessaire pour un progrès de civilisation</h2>
<p>Mais pour moi, cela n&#8217;est qu&#8217;un dommage collatéral ; tout travail induit forcément une certaine pénibilité, des contraintes. Ce n&#8217;est pas pour autant que nous sommes perdants. Car, <strong>au fond, qui voudrait sérieusement revenir au web d&#8217;avant Firefox ?</strong> Quel métier terne aurions-nous ! L&#8217;innovation technologique est une des données qui fait de nos métiers des métiers de passionnés. Le web est en perpétuelle évolution. Personne ne sait précisément où il va, il n&#8217;y a personne pour diriger la barque, mais tout le monde peut participer à construire son avenir.</p>
<p><strong>Depuis la voiture et le téléphone, Internet est, à mes yeux, la seule évolution technologique importante induisant un véritable progrès de notre civilisation</strong><sup>2</sup>. Et la guerre des navigateurs en est une composante essentielle. Alors certes, les développeurs blasés y perdent peut-être, au final, mais les passionnés comme moi y gagnent beaucoup !</p>
<ol class="footnotes"><li id="footnote_0_276" class="footnote"> comme le fait fort justement remarquer <a rel="nofollow" href="http://julienappert.com/qui-perd-la-guerre-des-navigateurs.html#comment-92">Florent</a>, il utilise en réalité le moteur de rendu de Safari, à savoir Webkit </li><li id="footnote_1_276" class="footnote"> en plus de l&#8217;invention du Kinder Bueno </li></ol><img src="http://feeds.feedburner.com/~r/JulienAppert/~4/hVpSDaQz5r0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/qui-perd-la-guerre-des-navigateurs.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://julienappert.com/qui-perd-la-guerre-des-navigateurs.html</feedburner:origLink></item>
		<item>
		<title>Lunascape, le navigateur qui inclut Firefox, Chrome et Windows Explorer</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/1i7PY5ILMXo/lunascape-le-navigateur-qui-inclut-firefox-chrome-et-windows-explorer.html</link>
		<comments>http://julienappert.com/lunascape-le-navigateur-qui-inclut-firefox-chrome-et-windows-explorer.html#comments</comments>
		<pubDate>Mon, 04 Jan 2010 15:52:52 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Trucs et astuces]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[intégrateur]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[navigateur]]></category>
		<category><![CDATA[outils]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=269</guid>
		<description><![CDATA[Mon titre n&#8217;est pas tout à fait exact : le navigateur Lunascape, développé par des japonais, inclut Gecko, Webkit et Trident, qui sont les moteurs de rendu respectifs des navigateurs sus-cités. Le principe est intéressant pour les intégrateurs. Grâce à Lunascape, on peut facilement (via une unique interface) vérifier le rendu final de notre travail [...]]]></description>
			<content:encoded><![CDATA[<p><img class="shadow aligncenter size-full wp-image-270" title="lunascape" src="http://julienappert.com/wordpress/wp-content/uploads/2010/01/lunascape.jpg" alt="" width="550" height="165" /></p>
<p>Mon titre n&#8217;est pas tout à fait exact : le navigateur <a href="http://www.lunascape.tv/">Lunascape</a>, développé par des japonais, inclut <strong>Gecko, Webkit et Trident</strong>, qui sont les moteurs de rendu respectifs des navigateurs sus-cités. Le principe est intéressant pour les intégrateurs. Grâce à Lunascape, on peut facilement (via une unique interface) <strong>vérifier le rendu final de notre travail sur les plus importants navigateurs du marché</strong>. Le logiciel intègre d&#8217;ailleurs des outils de deboguage assez utiles. Il est également possible de l&#8217;étendre avec des modules complémentaires&#8230; enfin, si vous comprenez le Japonais, car malheureusement, <a href="http://plugin.lunascape.jp/">le site hébergeant les plugins</a> est accessible uniquement dans cette langue.</p>
<p><img class="shadow aligncenter size-full wp-image-271" title="lunascape-plugin-center" src="http://julienappert.com/wordpress/wp-content/uploads/2010/01/lunascape-plugin-center.jpg" alt="" width="550" height="150" /></p>
<p>Bref, <strong>Lunascape pourrait devenir l&#8217;outil ultime pour les intégrateurs de tous pays&#8230; s&#8217;il gérait les versions</strong>. Car le gros problème des intégrateurs, ce n&#8217;est pas vraiment d&#8217;afficher correctement leur travail sur les différents navigateurs. Globalement, les dernières versions respectent suffisamment les standards pour que leur rendu soit similaire. Non, le gros problème, c&#8217;est que leur travail s&#8217;affiche correctement <strong>Y COMPRIS</strong> dans les versions précédentes ! C&#8217;est-à dire au moins Firefox 2, Firefox 3, IE 6 et IE7. Et là, Lunascape n&#8217;ait d&#8217;aucune utilité puisqu&#8217;il n&#8217;inclut que les dernières versions des moteurs de rendu.</p>
<p>Dans l&#8217;état actuel des choses, Lunascape n&#8217;est qu&#8217;<strong>une curieuse nouveauté prometteuse</strong>. Pour la production, je reste donc fidèle à <a href="http://www.my-debugbar.com/wiki/IETester/HomePage">IETester</a> et à mes <a href="http://julienappert.com/ouvrir-plusieurs-instances-de-firefox.html" title="Ouvrir plusieurs instances de Firefox">différentes instances de Firefox</a>.</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/1i7PY5ILMXo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/lunascape-le-navigateur-qui-inclut-firefox-chrome-et-windows-explorer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://julienappert.com/lunascape-le-navigateur-qui-inclut-firefox-chrome-et-windows-explorer.html</feedburner:origLink></item>
		<item>
		<title>Wordpress : Editez vos commentaires avec le plugin Editable Comments</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/1beMQIHJrS4/wordpress-editez-vos-commentaires-avec-le-plugin-editable-comments.html</link>
		<comments>http://julienappert.com/wordpress-editez-vos-commentaires-avec-le-plugin-editable-comments.html#comments</comments>
		<pubDate>Mon, 28 Dec 2009 11:03:57 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Plugins wordpress]]></category>
		<category><![CDATA[commentaire]]></category>
		<category><![CDATA[édition]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=250</guid>
		<description><![CDATA[Il existe plusieurs plugins WordPress pour l&#8217;édition de commentaires par leur auteur. Malheureusement, à mes yeux, aucun ne convient réellement. Les deux principaux ont chacun une force et une faiblesse :

&#8220;Edit comment&#8221; permet de choisir avec précision comment afficher le lien de modification mais nécessite de fastidieuses adaptations de la page comments.php du thème,
&#8220;WP Ajax [...]]]></description>
			<content:encoded><![CDATA[<p>Il existe plusieurs plugins WordPress pour l&#8217;<strong>édition de commentaires par leur auteur</strong>. Malheureusement, à mes yeux, aucun ne convient réellement. Les deux principaux ont chacun une force et une faiblesse :</p>
<ul>
<li>&#8220;<strong>Edit comment</strong>&#8221; permet de choisir avec précision comment afficher le lien de modification mais <strong>nécessite de fastidieuses adaptations de la page </strong>comments.php du thème,</li>
<li>&#8220;<strong>WP Ajax Edit Comments</strong>&#8221; est très complet et ne nécessite aucune modification de thème, malheureusement <strong>le lien de modification est généré automatiquement sans possibilité de personnalisation</strong>.</li>
</ul>
<p>Comme on n&#8217;est jamais mieux servi que par soi-même, j&#8217;ai donc décidé de créer mon propre outil, <strong>personnalisable et accessible</strong> : <strong>le plugin Editable Comments</strong>. Vous trouverez plus d&#8217;informations sur son fonctionnement sur la <a href="http://julienappert.com/realisations/plugin-editable-comments" title="Plugin Editable Comments">page dédiée</a>, mais sachez déjà qu&#8217;il permet de gérer l&#8217;affichage du lien grâce à l&#8217;appel d&#8217;une fonction et que le formulaire de modification est affiché soit via une fenêtre modale javascript, soit sur une page distincte. Par défaut, la fenêtre modale est activée, mais le plugin fonctionnera automatiquement en mode &#8220;page distincte&#8221; si le javascript est désactivé sur le navigateur du commentateur.</p>
<p style="text-align: center;"><img class="shadow aligncenter" title="editable-comments-form" src="http://julienappert.com/wordpress/wp-content/uploads/2009/12/editable-comments-form.jpg" alt="editable-comments-form" width="549" height="181" /></p>
<p>L&#8217;administration du plugin vous permet de gérer le mode d&#8217;affichage du formulaire ainsi que la durée limite pendant laquelle l&#8217;auteur d&#8217;un commentaire peut le modifier.</p>
<p>Voilà, on va dire que c&#8217;était mon cadeau de noël pour la communauté WordPress. Bonne utilisation !</p>
<a href="http://julienappert.com/realisations/plugin-editable-comments" title="Plugin Editable Comments">Télécharger le plugin Editable Comments</a>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/1beMQIHJrS4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/wordpress-editez-vos-commentaires-avec-le-plugin-editable-comments.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://julienappert.com/wordpress-editez-vos-commentaires-avec-le-plugin-editable-comments.html</feedburner:origLink></item>
		<item>
		<title>Paris Web 2009 : les difficiles relations entre graphistes web et intégrateurs</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/BxRSmSd6_RM/paris-web-2009-les-difficiles-relations-entre-graphistes-web-et-integrateurs.html</link>
		<comments>http://julienappert.com/paris-web-2009-les-difficiles-relations-entre-graphistes-web-et-integrateurs.html#comments</comments>
		<pubDate>Tue, 15 Dec 2009 13:47:01 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Métiers du Web]]></category>
		<category><![CDATA[graphiste web]]></category>
		<category><![CDATA[intégrateur]]></category>
		<category><![CDATA[parisweb]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=245</guid>
		<description><![CDATA[Je n&#8217;ai pas pu aller à Paris Web cette année, heureusement les conférences  sont disponibles en vidéo sur Dailymotion. On y trouve notamment la très intéressante conférence de Gilles Vauvarin : &#8220;Webdesigner, l&#8217;homme qui murmurait aux oreilles des intégrateurs&#8220;.
Les relations entre graphistes web et intégrateurs ne sont pas toujours roses bien que leur travail soit [...]]]></description>
			<content:encoded><![CDATA[<p>Je n&#8217;ai pas pu aller à Paris Web cette année, heureusement les <a href="http://www.dailymotion.com/playlist/x15sk9_parisweb_paris-web-2009">conférences  sont disponibles en vidéo</a> sur Dailymotion. On y trouve notamment la très intéressante conférence de <a href="http://pixenjoy.com">Gilles Vauvarin</a> : &#8220;<strong>Webdesigner, l&#8217;homme qui murmurait aux oreilles des intégrateurs</strong>&#8220;.</p>
<p>Les relations entre graphistes web et intégrateurs ne sont pas toujours roses bien que leur travail soit totalement interdépendant. Idéalement, ces deux corps de métier devraient échanger régulièrement (et même en dehors des projets web) afin de <strong>mieux comprendre leurs préoccupations respectives</strong> et ainsi <strong>apprendre à respecter les choix et le travail</strong> de l&#8217;autre.</p>
<p style="text-align: center;"><p><a href="http://julienappert.com/paris-web-2009-les-difficiles-relations-entre-graphistes-web-et-integrateurs.html"><em>Cliquer ici pour voir la vidéo.</em></a></p></p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/BxRSmSd6_RM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/paris-web-2009-les-difficiles-relations-entre-graphistes-web-et-integrateurs.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://julienappert.com/paris-web-2009-les-difficiles-relations-entre-graphistes-web-et-integrateurs.html</feedburner:origLink></item>
		<item>
		<title>Plugin WordPress : External Files Optimizer</title>
		<link>http://feedproxy.google.com/~r/JulienAppert/~3/Djunfp8a1gI/plugin-wordpress-external-files-optimizer.html</link>
		<comments>http://julienappert.com/plugin-wordpress-external-files-optimizer.html#comments</comments>
		<pubDate>Mon, 07 Dec 2009 18:21:26 +0000</pubDate>
		<dc:creator>Julien Appert</dc:creator>
				<category><![CDATA[Plugins wordpress]]></category>
		<category><![CDATA[optimisation]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://julienappert.com/?p=217</guid>
		<description><![CDATA[Vous le savez, pour optimiser la vitesse d&#8217;affichage d&#8217;un site Web, une des astuces consiste à réduire le nombre d&#8217;appels de fichiers externes et, si possible, de les compresser. Cela concerne notamment les feuilles de styles et les fichiers JavaScript.
Le hic, avec un site WordPress, c&#8217;est que les différents plugins installés génèrent bien souvent leurs [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter shadow size-full wp-image-226" title="wordpress-optimizer" src="http://julienappert.com/wordpress/wp-content/uploads/2009/12/wordpress-optimizer.png" alt="wordpress-optimizer" width="600" height="100" />Vous le savez, pour optimiser la vitesse d&#8217;affichage d&#8217;un site Web, une des astuces consiste à <strong>réduire le nombre d&#8217;appels de fichiers externes</strong> et, si possible, de les compresser. Cela concerne notamment les feuilles de styles et les fichiers JavaScript.</p>
<p>Le hic, avec un site WordPress, c&#8217;est que les différents plugins installés génèrent bien souvent leurs propres appels de fichiers externes. Résultat, on se retrouve très rapidement avec <strong>des dizaines de fichiers supplémentaires dans l&#8217;entête de nos pages</strong>.</p>
<p>Pour remédier à ce problème, deux solutions. La première est fastidieuse. Elle consiste à récupérer tous les fichiers ajoutés par ces plugins et à les combiner soi-même dans un fichier unique. Il faut ensuite modifier chacun de ces plugins pour annuler les appels&#8230; et c&#8217;est là que ça se gâte, car si vous mettez un jour l&#8217;un de ces plugins, il faut recommencer toute la manipulation !</p>
<p>La deuxième solution : <strong>utiliser le plugin External Files Optimizer</strong>, qui s&#8217;occupe de tout ça pour vous. Le principe est simple. Il analyse le résultat des fonctions wp_head() et wp_footer() pour en extraire tous les appels de fichiers css et js, puis il récupère leur contenu et le combine dans un fichier unique pour chacun des deux types. Enfin il compresse le tout via gzip pour diminuer le poids final.</p>
<p>Grâce à External Files Optimizer, vous <strong>optimisez de manière automatique</strong> la vitesse d&#8217;affichage de votre site WordPress. Prenez ce site par exemple. Grâce à l&#8217;outil <a href="http://code.google.com/intl/fr/speed/page-speed/">Page Speed</a> développé par Google, on peut très simplement analyser les performances d&#8217;une page. Sans l&#8217;optimiseur, ma page d&#8217;accueil fait appel à 59 ressources dont le transfert total représente 394,7kB. Une fois le plugin activé, elle passe à 44 ressources pour 189,2kB. Mieux non ?</p>
<p>Pour télécharger le plugin, rendez-vous sur la page <a href="http://julienappert.com/realisations/plugin-external-files-optimizer" title="Plugin External Files Optimizer">External Files Optimizer</a>.</p>
<img src="http://feeds.feedburner.com/~r/JulienAppert/~4/Djunfp8a1gI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://julienappert.com/plugin-wordpress-external-files-optimizer.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://julienappert.com/plugin-wordpress-external-files-optimizer.html</feedburner:origLink></item>
	</channel>
</rss>
