<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10frenchfull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="fr-ca" xml:base="http://remiprevost.com/foo">
<title>Effair (remiprevost.com) — tous les billets</title>
<subtitle>Les derniers billets postés sur remiprevost.com</subtitle>
<generator version="3.0">Effair (remiprevost.com)</generator>
<rights>Copyright © 2005-2008, Rémi Prévost</rights>
<id>http://remiprevost.com/atom</id>
<author>
	<name>Rémi Prévost</name>
	<email>remi@exomel.com</email>
</author>

<link rel="alternate" href="http://remiprevost.com" type="text/html" />

<updated>2008-05-09T21:04:58-04:00</updated>
	<geo:lat>46.7683</geo:lat><geo:long>-70.9489</geo:long><link rel="self" href="http://feeds.feedburner.com/effair" type="application/atom+xml" /><entry>
		<title>Pierre-Luc est de retour!</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/287207818/pierre-luc-et-de-retour" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/05/pierre-luc-et-de-retour</id>
		<category term="php" label="php" />
		<published>2008-05-09T21:04:58-04:00</published>
				<updated>2008-05-09T21:04:58-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Le blogue de mon ami <a href="http://www.plbabin.com/">Pierre-Luc Babin</a> est de retour en force, cette fois-ci en portant son focus beaucoup plus sur <a href="http://php.net"><acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym></a>, la spécialité — selon moi — de Pierre-Luc.</p>

<p>Et je lui ai gentiment permis d’utiliser mon schéma de couleur pour ses exemples de code <acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym> :)</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/287207818" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/05/pierre-luc-et-de-retour</feedburner:origLink></entry>


	<entry>
		<title>Mes logiciels sous Ubuntu</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/283585289/mes-logiciels-sous-ubuntu" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/05/mes-logiciels-sous-ubuntu</id>
		<category term="aptana" label="aptana" />
		<category term="evolution" label="evolution" />
		<category term="filezilla" label="filezilla" />
		<category term="firefox" label="firefox" />
		<category term="gnome" label="gnome" />
		<category term="linux" label="linux" />
		<category term="pidgin" label="pidgin" />
		<category term="rhythmbox" label="rhythmbox" />
		<category term="ubuntu" label="ubuntu" />
		<published>2008-05-04T19:39:16-04:00</published>
				<updated>2008-05-04T21:16:10-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Cela fait presque un mois qu’<a href="http://ubuntu.com">Ubuntu</a> est devenu mon système d’opération à la maison et chaque jour, je l’apprécie encore plus que la journée précédente!</p>

<p>Et comme j’ai déjà écrit <a href="http://remiprevost.com/weblog/2006/10/14/votre-choix-de-logiciels-10-mois-plus-tard/">des</a> <a href="http://http://remiprevost.com/weblog/2005/12/01/votre-choix-de-logiciels/">billets</a> présentant les logiciels que j’utilisais sous Windows XP, je me dois de faire la même chose avec ceux que j’utilise sous Ubuntu.</p>

<ul>
<li><strong>Navigateur</strong> : <a href="http://getfirefox.com">Mozilla Firefox</a></li>
<li><strong>Courriels</strong> : <a href="http://www.gnome.org/projects/evolution/">Evolution</a></li>
<li><strong><acronym title="Instant Messaging">IM</acronym></strong> : <a href="http://pidgin.im">Pidgin</a></li>
<li><strong>Notes</strong> : <a href="http://www.gnome.org/projects/gedit/">gEdit</a></li>
<li><strong>Programmation</strong> : <a href="http://aptana.com">Aptana Studio</a></li>
<li><strong>Audio</strong> : <a href="http://www.gnome.org/projects/rhythmbox/">Rhythmbox</a></li>
<li><strong>Vidéo</strong> : <a href="http://videolan.org">VLC</a></li>
<li><strong>Autres</strong> : <a href="http://www.xchat.org/">XChat</a>, <a href="http://filezilla.sourceforge.net">FileZilla</a>, <a href="http://do.davebsd.com/">GNOME Do</a>, <a href="http://www.wireshark.org/">Wireshark</a> et plusieurs autres!</li>
</ul>

<p>Ce sont les indispensables mais j’en utilise des dizaines d’autres ― et ce serait trop long de tous les nommer!</p>

<p>Et vous, chers utilisateurs de Linux (s’il y en a!), quels logiciels sont vos indispensables?</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/283585289" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/05/mes-logiciels-sous-ubuntu</feedburner:origLink></entry>


	<entry>
		<title>jQuery.alt et jQuery.iif</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/280816448/jquery-alt-et-jquery-iif" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/04/jquery-alt-et-jquery-iif</id>
		<category term="javascript" label="javascript" />
		<category term="jquery" label="jquery" />
		<published>2008-04-30T10:09:38-04:00</published>
				<updated>2008-04-30T09:04:38-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Voici un micro-plugin pour <a href="http://jquery.com">jQuery</a> qui me sauve un temps fou :</p>

<pre><code class="javascript">jQuery.fn.extend({
    'alt' : function(bool, fn_true, fn_false) {
        (bool) ? fn_true() : fn_false();
        return this;
    },
    'iif' : function(bool) {
        return (bool) ? this : jQuery('');
    }
});
</code></pre>

<p>En gros, cela évite d’avoir à écrire une structure de <code>if</code> et <code>else</code>. Voici comment l’utiliser :</p>

<pre><code class="javascript">$('body ul li').alt(
    $.browser.msie,
    function() {
        $(this).css('border', '10px solid red');
    },
    function() {
        $(this).css('border', '1px solid blue');
    }
);
</code></pre>

<p>Si le premier argument est d’une valeur booléenne égale à <code>true</code>, la fonction passée en deuxième argument est exécutée. Si la première valeur est égale à <code>false</code>, c’est le troisième argument qui est exécuté.</p>

<p>Pour ce qui est de <code>$.iif</code>, voici comment je l’utilise — en comparaison à comment je procèderais habituellement :</p>

<pre><code class="javascript">// Syntaxe originale
if ($.browser.msie) {
    $('body ul li').css('border', '10px solid red');
}

// En utilisant $.iif
$('body ul li').iif($.browser.msie).css('border', '10px solid red');
</code></pre>

<p>Si l’argument est égal à <code>true</code>, la chaine est continuée. Sinon, <code>$.iif</code> retourne un objet <code>jQuery</code> vide et donc les méthodes suivantes sont ignorées.</p>

<p>Voilà! Oh, et vous pouvez utiliser ce code comme bon vous semble!</p>

<p><strong>P.S.</strong> : En passant, si vous vous demandez pourquoi la méthode ne s’appelle pas <code>$.if</code> au lieu de <code>$.iif</code>, c’est parce que <strong><code>if</code></strong> est un <a href="http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Reserved_Words">mot réservé</a> en Javascript (en ECMAScript, en fait).</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/280816448" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/04/jquery-alt-et-jquery-iif</feedburner:origLink></entry>


	<entry>
		<title>Ubuntu</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/269465911/ubuntu" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/04/ubuntu</id>
		<category term="linux" label="linux" />
		<category term="ubuntu" label="ubuntu" />
		<published>2008-04-13T10:27:09-04:00</published>
				<updated>2008-04-13T10:27:09-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Les lecteurs de longue date de ce blogue se souviendront peut-être de mes mésaventures avec <a href="http://ubuntu.com">Ubuntu</a> (<a href="http://remiprevost.com/weblog/2006/08/13/jabandonne/">ici</a> et <a href="http://remiprevost.com/weblog/2006/09/04/encore-un-billet-sur-ubuntu/">là</a>). Et bien, croyez-le ou non : j’ai réussi à installer Ubuntu sur mon Dell Inspiron 6000.</p>

<p>En fait, j’aurais été capable de le faire depuis le début, mais je tenais à garder une partition avec Windows XP — sauf que là, j’en ai eu assez de Windows et j’ai complètement formatté sa partition.</p>

<p>Bref, tout fonctionne à merveille. J’ai même upgradé à la version <a href="https://wiki.ubuntu.com/HardyHeron/Beta">beta de Hardy Heron</a>. J’ai réussi à faire fonctionner mon moniteur externe tout en gardant l’écran de mon portable éteint. Je voulais faire <em>plein</em> de captures d’écran, mais je n’en ai pris que deux :</p>

<p><a href="http://flickr.com/photos/remiprev/2408692968/"><img src="http://farm4.static.flickr.com/3295/2408692968_337278bd69.jpg" alt="Ubuntu" /></a></p>

<p><a href="http://flickr.com/photos/remiprev/2408692972/"><img src="http://farm4.static.flickr.com/3001/2408692972_ff2995d459.jpg" alt="Ubuntu, avec fenêtres" /></a></p>

<p>À venir sur ce blogue : la liste de mes logiciels préférés sous Linux!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/269465911" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/04/ubuntu</feedburner:origLink></entry>


	<entry>
		<title>Des emplois dans le domaine du Web à Québec, chez iXmédia</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/268453192/des-emplois-dans-le-domaine-du-web-a-quebec-chez-ixmedia" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/04/des-emplois-dans-le-domaine-du-web-a-quebec-chez-ixmedia</id>
		<category term="ixmedia" label="ixmedia" />
		<category term="quebec" label="quebec" />
		<published>2008-04-11T11:30:32-04:00</published>
				<updated>2008-04-11T11:30:32-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Nous étions <a href="/2008/01/on-embauche-chez-ixmedia">à la recherche</a> d’un intégrateur Web en janvier dernier chez <a href="http://ixmedia.com">iXmédia</a>. Nous en avons trouvé un qui est excellent!</p>

<p>Une autre preuve qu’iXmédia est en pleine expansion? Nous sommes présentement à la recherche de deux nouvelles personnes — avec des profils tout à fait différents :</p>

<ul>
<li><a href="http://www.ixmedia.com/nouvelles/ixmedia-recherche-programmeur-web-specialiste-technique-33.html">Un(e) programmeur(euse)</a> capable d’écrire du code et aussi, peut-être, qui s’y connait en administration de serveur et/ou support technique.</li>
<li><a href="http://www.ixmedia.com/nouvelles/ixmedia-recherche-concepteur-trice-graphique-web-32.html">Un(e) designer Web</a> plein(e) de créativité et de dynamisme!</li>
</ul>

<p>N’hésitez pas à nous faire parvenir votre <acronym title="Curriculum vitæ">CV</acronym> (pas à moi, mais à <a href="mailto:cv@ixmedia.com">cv@ixmedia.com</a>!) si vous pensez que vous êtes une des personnes que l’on recherche!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/268453192" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/04/des-emplois-dans-le-domaine-du-web-a-quebec-chez-ixmedia</feedburner:origLink></entry>


	<entry>
		<title>CSS Naked Day 2008</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/263666881/css-naked-day-2008" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/04/css-naked-day-2008</id>
		<category term="css" label="css" />
		<published>2008-04-03T20:50:30-04:00</published>
				<updated>2008-04-03T20:50:30-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Pour la troisième année consécutive, le <a href="http://naked.dustindiaz.com/"><acronym title="Cascading Style Sheets">CSS</acronym> Naked Day</a> aura lieu au début du mois d’avril — le <strong>9 avril</strong> cette année. J’y participerai pour la troisième fois de suite!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/263666881" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/04/css-naked-day-2008</feedburner:origLink></entry>


	<entry>
		<title>PHP-CGI et mod_rewrite</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/262611321/php-cgi-et-mod-rewrite" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/04/php-cgi-et-mod-rewrite</id>
		<category term="apache" label="apache" />
		<category term="cgi" label="cgi" />
		<category term="mod-rewrite" label="mod-rewrite" />
		<category term="php" label="php" />
		<published>2008-04-02T07:45:04-04:00</published>
				<updated>2008-04-02T07:45:04-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>J’ai voulu faire rouler <a href="http://php.net"><acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym></a> en tant que <acronym title="Common Gateway Interface">CGI</acronym> (pour utiliser mon propre fichier <code>php.ini</code>), et en suivant les <a href="http://wiki.dreamhost.com/Custom_PHP.ini">instructions de Dreamhost</a>, j’ai du ajouter ceci dans mon fichier <code>.htaccess</code> :</p>

<pre><code>Options ExecCGI
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php.cgi
</code></pre>

<p>Cependant, cela entrait en conflit avec mes instructions pour <code>mod_rewrite</code> — j’obtenais une erreur <code>403</code> sur presque tout. Grâce à <a href="http://www.elharo.com/blog/software-development/web-development/2006/01/02/two-tips-for-fixing-apache-problems/">Elliotte Rusty Harold</a>, j’ai pu résoudre le problème en ajoutant cette option <strong>tout juste avant</strong> l’instruction <code>RewriteEngine On</code> :</p>

<pre><code>Options +FollowSymLinks
RewriteEngine On
...
</code></pre>

<p>C’est très important de placer l’option directement avant le début des instructions pour mod_rewrite. Pourquoi? Je ne le sais pas.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/262611321" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/04/php-cgi-et-mod-rewrite</feedburner:origLink></entry>


	<entry>
		<title>Afficher ses « tweets » en PHP</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/262022025/afficher-ses-tweets-en-php" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/04/afficher-ses-tweets-en-php</id>
		<category term="php" label="php" />
		<category term="twitter" label="twitter" />
		<published>2008-04-01T11:06:30-04:00</published>
				<updated>2008-04-01T11:06:30-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>J’ai récemment ajouté mes derniers « tweets » (via <a href="http://twitter.com">Twitter</a>) dans la sidebar de mon blogue. Je voulais partager mon code avec vous. Il vous faudra ceci :</p>

<ul>
<li>L’extension <a href="http://php.net/simplexml">SimpleXML</a> (compilée par défaut dans <acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym> 5.0)</li>
<li><a href="http://pear.php.net/package/Cache_Lite">Cache_Lite</a></li>
<li><a href="http://michelf.com/projects/php-markdown/"><acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym> Markdown</a></li>
<li><a href="http://michelf.com/projects/php-smartypants/"><acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym> Smartypants</a></li>
</ul>

<p>Voici donc le code :</p>

<pre><code class="php">$file = 'http://twitter.com/statuses/user_timeline/14153719.xml?count=10';
$user = 'remiprev';
$cache_id = "twitter";
$cache_options = array(
    'cacheDir' =&gt; dirname(__FILE__).'/cache/',
    'lifeTime' =&gt; 300
);

require_once('Cache/Lite.php');
require_once('Markdown.php');
require_once('Smartypants.php');

$Cache_Lite = new Cache_Lite($cache_options);

if ($data = $Cache_Lite-&gt;get($cache_id)) {
    print '&lt;!-- Le contenu provient de la cache --&gt;';
    print $data;
} else {

    $xml = simplexml_load_file($xml);

    print '&lt;!-- Le contenu ne provient pas de la cache --&gt;';
    $output = "";

    $statuses = $xml-&gt;status;
    $compteur=1;

    foreach ($statuses as $status) {
        $permalink = 'http://twitter.com/'.$user.'/statuses/'.$status-&gt;id;
        $via = $status-&gt;source;
        $date = date('j F à G:i', strtotime($status-&gt;created_at));
        $contenu = $status-&gt;text;

        // on ajoute des liens automatiques
        $contenu = preg_replace('/(http:\/\/[^\s]+)/','&lt;a href="\\1"&gt;\\1&lt;/a&gt;', $contenu);

        // on le passe au Markdown-inator!
        $contenu = Smartypants($contenu);
        $contenu = Markdown($contenu);
        $contenu = str_replace('&lt;p&gt;','', $contenu); // on ne veut pas paragraphes!
        $contenu = str_replace('&lt;/p&gt;','', $contenu);

        // on ajoute des liens sur les @replies
        $contenu = preg_replace('/\@([^\s\:\.\;\-]+)/','@&lt;a href="http://twitter.com/\\1"&gt;\\1&lt;/a&gt;', $contenu);

        $output .= '&lt;div class="else post'.(($compteur==1)?' premier':'').'"&gt;&lt;p&gt;&lt;a href="'.$permalink.'"&gt;&lt;span class="date"&gt;'.$date.'&lt;/span&gt;&lt;/a&gt;&lt;span class="content"&gt; '.($contenu).'&lt;em class="from"&gt; via '.$via.'&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;'."\n";
        $compteur++;
    }

    $Cache_Lite-&gt;save($output);

    print $output;

}
</code></pre>

<p>Vous pouvez le copier, le modifier et l’utiliser — gratuitement!</p>

<p>P.S. - De grâce, modifier le code <acronym title="HyperText Markup Language">HTML</acronym> généré! J’utilise un <code>DIV</code> car je voulais obtenir le même style que mes billets, mais je devrais utiliser une <code>UL</code> ou une <code>DL</code>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/262022025" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/04/afficher-ses-tweets-en-php</feedburner:origLink></entry>


	<entry>
		<title>CCNQ</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/258959613/ccnq" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/ccnq</id>
		<category term="ccnq" label="ccnq" />
		<category term="ixmedia" label="ixmedia" />
		<published>2008-03-27T08:08:33-04:00</published>
				<updated>2008-03-27T08:08:33-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Ce n’est pas dans mon habitude de « ploguer » les sites que nous lançons chez <a href="http://ixmedia.com">iXmédia</a>, mais je pense que celui-ci vaut la peine d’être mentionné. Si vous voulez être informé de chaque site que j’ajoute à mon portfolio, il existe un <a href="http://exomel.com/atom/">fil Atom</a> qui fait tout ça.</p>

<p><a href="http://www.capitale.gouv.qc.ca"><img src="/images/ccnq.jpg" alt="CCNQ" /></a></p>

<p>Nous avons mis en ligne mardi matin le nouveau site Web de la <a href="http://www.capitale.gouv.qc.ca">Commission de la capitale nationale du Québec</a>. Le site fait usage de quelques technologies qui font leur début au sein des sites gouvernementaux, notamment les <acronym title="Application Programming Interface">API</acronym> de <a href="http://flickr.com/services/api/">Flickr</a> et <a href="http://code.google.com/apis/maps/">Google Maps</a> ainsi que les <a href="http://microformats.org">microformats</a> (pas énormément, mais c’est un début!).</p>

<p>C’est moi qui a réalisé l’intégration du site (<acronym title="eXtensible HyperText Markup Language">XHTML</acronym>, <acronym title="Cascading Style Sheets">CSS</acronym> et Javascript) ainsi que quelques petits bouts de <acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/258959613" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/ccnq</feedburner:origLink></entry>


	<entry>
		<title>markItUp!</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/258346520/markitup" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/markitup</id>
		<category term="jquery" label="jquery" />
		<category term="markdown" label="markdown" />
		<published>2008-03-26T10:03:55-04:00</published>
				<updated>2008-03-26T10:03:55-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Un nouveau plugin pour <a href="http://jquery.com">jQuery</a> vient de faire son apparition : <a href="http://markitup.jaysalvat.com/home/"><em>markItUp!</em></a>, qui ajoute une barre de formatage (comme celle dans le formulaire de commentaire) aux éléments <code>TEXTAREA</code> désirés, compatible avec n’importe quel langage — il suffit de créer un fichier de configuration (en JSON) définissant les éléments, leur raccourci clavier, et bien d’autres choses.</p>

<p>Une autre des fonctionnalités de <em>markItUp!</em> est le support des <em>callbacks</em>, ce qui permet d’exécuter une fonction personnalisée sur une chaine de texte sélectionnée dans un <code>TEXTAREA</code> (<a href="http://markitup.jaysalvat.com/examples/advanced/">exemple</a>).</p>

<p>L’<a href="http://markitup.jaysalvat.com/examples/markdown/">exemple</a> utilisant <a href="http://daringfireball.net/projects/markdown">Markdown</a> illustre très bien le concept général du plugin. J’ajoute ce plugin dans ma liste de choses à intégrer à ce blogue!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/258346520" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/markitup</feedburner:origLink></entry>


	<entry>
		<title>21</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/253820818/21" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/21</id>
		<category term="personnel" label="personnel" />
		<category term="wordpress" label="wordpress" />
		<published>2008-03-18T15:06:23-04:00</published>
				<updated>2008-03-18T15:06:23-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Je ne peux m’empêcher de <a href="http://old.exomel.com/weblog/2005/03/18/18">poursuivre</a> <a href="http://remiprevost.com/weblog/2006/03/18/19/">la</a> <a href="http://remiprevost.com/weblog/2007/03/18/20/">tradition</a>. C’est fou comme le temps passe vite — dire qu’il y a un an, j’avais encore un blogue <a href="http://wordpress.org">WordPress</a>!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/253820818" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/21</feedburner:origLink></entry>


	<entry>
		<title>Back on Twitter</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/253629916/back-on-twitter" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/back-on-twitter</id>
		<category term="twitter" label="twitter" />
		<category term="web2.0" label="web2.0" />
		<published>2008-03-18T09:19:52-04:00</published>
				<updated>2008-03-18T09:19:52-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Après <a href="http://remiprevost.com/2007/06/twitter-no-more">avoir supprimé</a> mon compte <a href="http://twitter.com">Twitter</a> en <strong>juin 2007</strong>, j’ai décidé de m’en créer <a href="http://twitter.com/remiprev">un nouveau</a>.</p>

<p>Prochaine étape : afficher mes « <em>status</em> » sur ce blogue via l’<a href="http://groups.google.com/group/twitter-development-talk/web/api-documentation"><acronym title="Application Programming Interface">API</acronym> de Twitter</a>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/253629916" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/back-on-twitter</feedburner:origLink></entry>


	<entry>
		<title>Helvetica, ce soir</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/250143532/helvetica-ce-soir" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/helvetica-ce-soir</id>
		<category term="helvetica" label="helvetica" />
		<category term="ixmedia" label="ixmedia" />
		<category term="quebec" label="quebec" />
		<published>2008-03-12T09:55:57-04:00</published>
				<updated>2008-03-12T09:55:57-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Un petit rappel à ceux qui se sont inscrits à la représentation du <a href="http://helveticafilm.com/">documentaire Helvetica</a> au <a href="http://www.clap.qc.ca">Clap</a> — c’est ce soir, 19h!</p>

<p>Et <a href="http://radaron.com">Mathieu</a> d’<a href="http://ixmedia.com">iXmédia</a> me signale qu’en raison du report de la représentation la semaine dernière, certaines personnes ne peuvent être présentes ce soir. Il reste donc une vingtaine (<strong>20</strong>) de places. Écrivez à <a href="mailto:helvetica@ixmedia.com">helvetica@ixmedia.com</a> pour mettre la main sur la votre si ce n’est pas encore fait!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/250143532" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/helvetica-ce-soir</feedburner:origLink></entry>


	<entry>
		<title>Les secrets des librairies Javascript</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/250111882/les-secrets-des-librairies-javascript" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/les-secrets-des-librairies-javascript</id>
		<category term="dojo" label="dojo" />
		<category term="javascript" label="javascript" />
		<category term="jquery" label="jquery" />
		<category term="prototype" label="prototype" />
		<published>2008-03-12T08:44:51-04:00</published>
				<updated>2008-03-12T08:44:51-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p><a href="http://ejohn.org">John Resig</a>, le créateur de <a href="http://jquery.com">jQuery</a>, a mis en ligne <a href="http://www.slideshare.net/jeresig/secrets-of-javascript-libraries">les slides</a> du panel auquel il a participé avec les créateurs de <a href="http://prototypejs.org">Prototype</a> et <a href="http://dojotoolkit.org">Dojo</a> sur les « secrets des librairies Javascript ».</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/250111882" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/les-secrets-des-librairies-javascript</feedburner:origLink></entry>


	<entry>
		<title>Taffy DB</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/249841028/taffy-db" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/taffy-db</id>
		<category term="base-de-donnees" label="base-de-donnees" />
		<category term="javascript" label="javascript" />
		<published>2008-03-11T21:16:03-04:00</published>
				<updated>2008-03-11T21:16:03-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p><a href="http://taffydb.com/">Taffy DB</a> est script Javascript qui permet de créer une base de données en Javascript. La base de données réside sous la forme d’un objet qui possède des méthodes comme <code>find</code>, <code>update</code> et <code>insert</code>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/249841028" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/taffy-db</feedburner:origLink></entry>


	<entry>
		<title>25% des Québécois sur Facebook?</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/249469104/25-pourcent-des-quebecois-sur-facebook" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/25-pourcent-des-quebecois-sur-facebook</id>
		<category term="facebook" label="facebook" />
		<published>2008-03-11T08:06:43-04:00</published>
				<updated>2008-03-11T08:06:43-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>C’est ce que <a href="http://techno.branchez-vous.com/actualite/2008/03/facebook_au_quebec_un_quebecoi.html">nous révèle</a> un sondage <a href="http://ipsos.ca/fr/">Ipsos</a>/<a href="http://branchez-vous.com">Branchez-vous.com</a>. Vraiment? Si on <a href="http://www.michaelcarpentier.com/index.php/auditoire-de-facebook-au-quebec-mon-oeil/">creuse un peu plus</a>, on se rend compte que ça ne fonctionne pas…</p>

<p>D’après-vous, quel est le meilleur moyen de déterminer combien de Québécois ont un compte sur Facebook?</p>

<ol>
<li><a href="http://intercommunication.blogspot.com/2008/03/comment-trouver-des-statistiques-sur.html">Utiliser les donnée provenant directement de Facebook</a> lui-même?</li>
<li><a href="http://blog.fagstein.com/2008/03/10/branchez-vous-facebook-survey/">Faire passer un sondage <strong>en ligne</strong></a> à 1257 Québécois?</li>
</ol>

<p>Cette citation de Michael Carpentier répond bien à cette question :</p>

<blockquote>
  <p>Le sondage de Ipsos repris en choeur par les médias est farfelu. Complètement. Quand les données existent et sont publiées, quel est le but de faire un sondage? Est-ce que Ipsos va bientôt faire un sondage pour nous dire quel est le prix du lait au lieu de le lire sur la pinte?</p>
</blockquote>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/249469104" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/25-pourcent-des-quebecois-sur-facebook</feedburner:origLink></entry>


	<entry>
		<title>Pourquoi Facebook est en français?</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/248885172/pourquoi-facebook-est-en-francais" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/pourquoi-facebook-est-en-francais</id>
		<category term="facebook" label="facebook" />
		<category term="i18n" label="i18n" />
		<published>2008-03-10T09:32:44-04:00</published>
				<updated>2008-03-10T09:32:44-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p><a href="http://techno.branchez-vous.com/actualite/2008/03/facebook_parle_francais_1.html">Branchez-vous rapportait</a> hier que <a href="http://facebook.com">Facebook</a> était maintenant offert en français. La raison? Mais voyons donc, c’est parce que un groupe réclamant la traduction de Facebook en français compte plus de 200,000 membres — c’est évident!</p>

<blockquote>
  <p>Près de 200 000 usagers se sont réunis dans le groupe «PETITION! POUR QUE FACEBOOK SOIT TRADUIT EN FRANCAIS!!INVITE ALL!» ou ralliés à la cause «Pour un FACEBOOK en français». <strong>Il n’en fallait pas plus</strong> pour que la société de Palo Alto, en Californie, réagisse […]</p>
</blockquote>

<p>Franchement, pensez-vous que c’est parce que <strong>les utilisateurs</strong> demandent que Facebook soit traduit en français que la compagnie s’empresse immédiatement de le traduire? Non, cela fait partie de leur stratégie marketing, pour attirer encore plus de gens! C’est pour ça que ce n’est pas qu’en français que l’application a été traduite, mais aussi en espagnol et en allemand!</p>

<p>Je sais que <a href="http://blog.facebook.com/blog.php?post=10056937130">Facebook dit</a> que c’est grâce aux demandes des utilisateurs,</p>

<blockquote>
  <p>Facebook in multiple languages has been a long-standing request from many of our users, and we’re quite happy to be able to take the first step.</p>
</blockquote>

<p>mais s’il vous plait, ne prenez pas tout le crédit de cette nouvelle fonctionnalité. Ce n’est pas à cause de <a href="http://www.facebook.com/group.php?gid=6652407105">votre groupe</a> de 130,000 membres que Facebook s’est dit « <em>Oooooh! Il y a des francophones sur notre site Web et il réclame de pouvoir l’utiliser dans leur langue — nous devons le traduire!</em> ».</p>

<p>C’est grâce aux demandes des utilisateurs certes, mais n’oubliez pas que tout ce que Facebook veut c’est d’élargir son nombre de membres pour accroitre sa valeur et sa part dans le marché des réseaux sociaux!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/248885172" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/pourquoi-facebook-est-en-francais</feedburner:origLink></entry>


	<entry>
		<title>Vous avez du temps libre? Lisez des specs!</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/246447373/vous-avez-du-temps-libre-lisez-des-specs" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/vous-avez-du-temps-libre-lisez-des-specs</id>
		<category term="atom" label="atom" />
		<category term="css" label="css" />
		<category term="html" label="html" />
		<category term="openid" label="openid" />
		<published>2008-03-05T19:31:03-04:00</published>
				<updated>2008-03-06T10:30:43-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Trop souvent, on apprend sur le tas. En copiant-collant du code trouvé un peu partout sur le Web. C’est comme ça que j’ai appris (en plus de ma formation collégiale) moi aussi.</p>

<p>Cependant, je me suis rendu compte qu’il est vraiment intéressant de lire les spécifications techniques des technologies qu’on utilise tous les jours? Vous serez surpris des trouvailles qu’on peut y faire — des choses qu’on comprend mieux après les avoir lu dans un contexte strict et détaillé.</p>

<ul>
<li>La spécification de <a href="http://www.w3.org/TR/html4/"><acronym title="HyperText Markup Language">HTML</acronym> 4</a> du <acronym title="World Wide Web Consortium">W3C</acronym></li>
<li>La spécification <a href="http://www.w3.org/TR/CSS21/"><acronym title="Cascading Style Sheets">CSS</acronym> 2.1</a> du <acronym title="World Wide Web Consortium">W3C</acronym></li>
</ul>

<p>Trop facile? Attaquez-vous à celle-ci!</p>

<ul>
<li>La spécification <a href="http://openid.net/specs/openid-authentication-2_0.html">OpenID Authentication 2.0</a> de la <a href="http://openid.net/specs/openid-authentication-2_0.html#anchor52">communauté OpenID</a></li>
<li>La spécification <a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php">Atom (syndication) 1.0</a> de l’<a href="http://www.ietf.org">IETF</a></li>
</ul>

<p>Je ne peux malheureusement pas prétendre que j’ai moi-même lu toutes ces spécifications — mais parfois j’en lis des bouts simplement parce que c’est intéressant.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/246447373" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/vous-avez-du-temps-libre-lisez-des-specs</feedburner:origLink></entry>


	<entry>
		<title>Invitations pour Aviary</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/246313588/invitations-pour-aviary" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/invitations-pour-aviary</id>
		<category term="aviary" label="aviary" />
		<published>2008-03-05T14:23:49-04:00</published>
				<updated>2008-03-06T08:37:01-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Ça fait un bout que j’ai reçu des invitations pour participer au beta test d’<a href="http://a.viary.com/">Aviary</a>, une gamme de <a href="http://a.viary.com/tools">logiciels</a> <em>web-based</em> reliés au domaine de l’infographie.</p>

<p>J’ai <del>5 invitations</del> <ins>épuisé mes invitations</ins> qui donnent droit à l’utilisation de <strong>Phoenix</strong>. Pour en reçevoir une, <strong>vous devez</strong> poster un commentaire en étant connecté <strong>avec un identifiant OpenID</strong>. Pas d’OpenID, pas d’invitation!</p>

<p><strong>Mise à jour</strong> : Ah j’oubliais, ça me prend votre adresse courriel :)</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/246313588" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/invitations-pour-aviary</feedburner:origLink></entry>


	<entry>
		<title>La tempête contre Helvetica</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/246130142/la-tempete-contre-helvetica" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/la-tempete-contre-helvetica</id>
		<category term="helvetica" label="helvetica" />
		<category term="quebec" label="quebec" />
		<published>2008-03-05T08:46:25-04:00</published>
				<updated>2008-03-05T08:46:25-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p><a href="http://remiprevost.com/2008/02/helvetica-le-film-a-quebec">La présentation</a> d’<a href="http://www.ixmedia.com/helvetica/">Helvetica</a>, le film, ce soir à Québec est <strong>reportée à mercredi prochain</strong>, en raison de la tempête (<a href="http://www.dafont.com/fr/storm.font"><em>storm</em></a>, en anglais) qui s’abat sur la vieille capitale aujourd’hui.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/246130142" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/la-tempete-contre-helvetica</feedburner:origLink></entry>


	<entry>
		<title>Grosse journée pour les développeurs Web</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/245237129/grosse-journee-pour-les-developpeurs-web" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/03/grosse-journee-pour-les-developpeurs-web</id>
		<category term="acid3" label="acid3" />
		<category term="ie8" label="ie8" />
		<published>2008-03-03T21:44:30-04:00</published>
				<updated>2008-03-03T21:44:30-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Premièrement, <a href="http://blogs.msdn.com/ie/archive/2008/03/03/microsoft-s-interoperability-principles-and-ie8.aspx">Microsoft annonce</a> que, par défaut, IE8 utilisera son moteur de rendu le plus avancé lorsqu’il affichera les pages Web n’avant pas la fameuse entête « <code>X-UA-Compatible</code> ».</p>

<p>Deuxièmement, le <a href="http://webstandards.org">Web Standards Project</a> <a href="http://www.webstandards.org/press/releases/20080303/">annonce</a> la sortie d’<a href="http://www.webstandards.org/action/acid3/">Acid3</a>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/245237129" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/03/grosse-journee-pour-les-developpeurs-web</feedburner:origLink></entry>


	<entry>
		<title>AJAX, IE et contenu texte</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/242777934/ajax-ie-et-contenu-texte" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/ajax-ie-et-contenu-texte</id>
		<category term="ajax" label="ajax" />
		<category term="ie" label="ie" />
		<category term="javascript" label="javascript" />
		<category term="jquery" label="jquery" />
		<category term="php" label="php" />
		<published>2008-02-28T10:26:32-04:00</published>
				<updated>2008-02-28T10:26:32-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Si vous avez un script Javascript qui, via AJAX, appelle un fichier qui retourne une simple chaîne de caractères, vous allez peut-être vous retrouver avec ce bogue sous Internet Explorer.</p>

<p>Exemple, un script <acronym title="Recursive: PHP Hypertext PreProcessing">PHP</acronym> (<code>fichier.php</code>) qui retourne la chaine :</p>

<pre><code class="php">&lt;?php
  print "Une chaine!";
?&gt;
</code></pre>

<p>Et, un script Javascript (utilisant <a href="http://jquery.com">jQuery</a>) :</p>

<pre><code class="javascript">$.ajax({
    url  : 'fichier.php',
    type : 'GET',
    dataType : 'text',
    success : function(data) {
        alert(data);
    }
})
</code></pre>

<p>Lors de l’exécution du script, une petite boîte contenant « <code>Une chaine!</code> » apparaitra, n’est-ce pas? Hé bien non, pas dans IE.</p>

<p>Même si on spécifie, lors de notre requête AJAX, que le contenu que l’on va recevoir est de type <code>text</code>, IE va tenter de le <em>parser</em> comme s’il s’agissait de code <acronym title="HyperText Markup Language">HTML</acronym>. Le message d’erreur retourné par l’objet <code>XMLHttpRequest</code> est <strong><code>parsererror</code></strong>.</p>

<p>La solution? Servir le fichier appelé via AJAX en tant que <code>text/plain</code> pour forcer IE à le traiter comme un fichier texte et empêcher de le <em>parser</em>.</p>

<pre><code class="php">&lt;?php
  header("Content-type: text/plain; charset=UTF-8");
  print "Une chaine!";
?&gt;
</code></pre>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/242777934" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/ajax-ie-et-contenu-texte</feedburner:origLink></entry>


	<entry>
		<title>Un petit mot sur Yadis</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/240447725/un-petit-mot-sur-yadis" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/un-petit-mot-sur-yadis</id>
		<category term="openid" label="openid" />
		<category term="yadis" label="yadis" />
		<published>2008-02-24T12:39:32-04:00</published>
				<updated>2008-02-24T12:25:32-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p><a href="http://yadis.org/wiki/Main_Page"><strong>Yadis</strong></a> est un protocole ouvert qui permet à une application de connaitre facilement quels sont les identifiants d’authentification (<a href="http://openid.net">OpenID</a>, ou autres <a href="http://en.wikipedia.org/wiki/Extensible_Resource_Identifier"><acronym title="eXtensible Resource Identifier">XRI</acronym></a>s) associés à un <acronym title="Uniform Resource Identifier">URI</acronym>. <a href="http://www.intertwingly.net/blog/">Sam Ruby</a> en fait <a href="http://www.intertwingly.net/blog/2007/01/03/OpenID-for-non-SuperUsers#yadis">un bon résumé</a> dans un de ses billets.</p>

<p>Un fichier Yadis n’est donc qu’un simple fichier <acronym title="eXtensible Markup Language">XML</acronym> qui liste plusieurs <acronym title="eXtensible Resource Identifier">XRI</acronym> associés à un <acronym title="Uniform Resource Identifier">URI</acronym>, lorsqu’on tente de s’identifier avec cet <acronym title="Uniform Resource Identifier">URI</acronym>. <a href="/public/yadis.xrdf">Le mien</a> ressemble à cela (j’ai enlevé des bouts de code pour le rendre plus lisible) :</p>

<pre><code class="html">&lt;xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"
      xmlns:openid="http://openid.net/xmlns/1.0"&gt;
  &lt;XRD&gt;

    &lt;!-- Si le consumer supporte OpenID 2.0 --&gt;
    &lt;Service priority="10"&gt;
      &lt;Type&gt;http://specs.openid.net/auth/2.0/signon&lt;/Type&gt;
      &lt;URI&gt;http://www.myopenid.com/server&lt;/URI&gt;
      &lt;LocalID&gt;http://remi.myopenid.com/&lt;/LocalID&gt;
    &lt;/Service&gt;

    &lt;!-- Si le consumer supporte OpenID 1.1 --&gt;
    &lt;Service priority="20"&gt;
      &lt;Type&gt;http://openid.net/signon/1.1&lt;/Type&gt;
      &lt;URI&gt;http://www.myopenid.com/server&lt;/URI&gt;
      &lt;openid:Delegate&gt;http://remi.myopenid.com/&lt;/openid:Delegate&gt;
    &lt;/Service&gt;

    &lt;!-- Sinon, on utilise OpenID 1.0 --&gt;
    &lt;Service priority="30"&gt;
      &lt;Type&gt;http://openid.net/signon/1.0&lt;/Type&gt;
      &lt;URI&gt;http://www.myopenid.com/server&lt;/URI&gt;
      &lt;openid:Delegate&gt;http://remi.myopenid.com/&lt;/openid:Delegate&gt;
    &lt;/Service&gt;

  &lt;/XRD&gt;
&lt;/xrds:XRDS&gt;
</code></pre>

<p>Lorsque je tente de m’identifier avec « <code>remiprevost.com</code> », l’application (en jargon OpenID, il s’agit d’un <em>consumer</em>), si elle supporte Yadis, va analyser et choisir quelle identité à utiliser selon ses capacités techniques. Par exemple, si une application ne supporte pas OpenID 2.0, elle ira à la prochaine identité en ordre de priorité.</p>

<p>Dans mon <a href="/2008/02/avoir-son-propre-uri-comme-identifiant-openid">billet précédent</a>, je mentionnais qu’il était possible, si votre fournisseur OpenID le permettait, de fournir un fichier Yadis aux applications qui tentait d’obtenir une authentification sur votre propre <acronym title="Uniform Resource Identifier">URI</acronym>. <a href="http://myopenid.com">myOpenID</a>, par exemple, génère automatiquement ce fichier. Le mien est <a href="http://www.myopenid.com/xrds?username=identifiant.myopenid.com">ici</a>.</p>

<p>Pour servir un fichier Yadis aux applications lors d’une tentative d’authentification, je vous renvoie <a href="http://www.intertwingly.net/blog/2007/01/03/OpenID-for-non-SuperUsers#yadis">au même billet de Sam Ruby</a> qui explique sa technique utilisant uniquement un fichier <code>.htaccess</code> d’Apache.</p>

<p>Comme le mentionne Ruby, même si le fichier Yadis remplace le code <acronym title="HyperText Markup Language">HTML</acronym> à insérer, il est tout de même préférable de laisse ce code <acronym title="HyperText Markup Language">HTML</acronym>, pour les applications qui ne supportent pas le protocole Yadis.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/240447725" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/un-petit-mot-sur-yadis</feedburner:origLink></entry>


	<entry>
		<title>Avoir son propre URI comme identifiant OpenID</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/238181802/avoir-son-propre-uri-comme-identifiant-openid" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/avoir-son-propre-uri-comme-identifiant-openid</id>
		<category term="openid" label="openid" />
		<category term="yadis" label="yadis" />
		<published>2008-02-20T08:22:53-04:00</published>
				<updated>2008-02-20T08:22:53-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Bon, vous êtes tanné d’être identifié en tant que <code>votrenom.myopenid.com</code> ? Vous possédez votre propre site Web? Vous voudriez être identifié en tant que cet <acronym title="Uniform Resource Identifier">URI</acronym>, sans avoir à installer un serveur <a href="http://openid.net">OpenID</a> sur ce dernier? Utilisez la délégation!</p>

<p>Vous n’avez qu’à ajouter ce code <acronym title="HyperText Markup Language">HTML</acronym> dans l’élément <code>HEAD</code> de la page correspondant à l’<acronym title="Uniform Resource Identifier">URI</acronym> que vous souhaitez utiliser comme identifiant OpenID :</p>

<pre><code class="html">&lt;link rel="openid.server" href="http://www.myopenid.com/server"&gt;
&lt;link rel="openid.delegate" href="http://identifiant.myopenid.com/"&gt;
</code></pre>

<p><strong>Bonus</strong>, si votre fournisseur OpenID supporte le protocole <a href="http://en.wikipedia.org/wiki/Yadis">Yadis</a>, vous pouvez également inclure ce code :</p>

<pre><code class="html">&lt;meta http-equiv="X-XRDS-Location" content="http://www.myopenid.com/xrds?username=identifiant.myopenid.com"&gt;
</code></pre>

<p>Évidemment, je me suis servi de <a href="http://myopenid.com">myOpenID</a> puisque c’est le fournisseur que j’utilise (et probablement un des plus populaires) mais le code peut être adapté pour convenir avec votre propre fournisseur. Seulement les 3 URIs doivent être modifiés.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/238181802" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/avoir-son-propre-uri-comme-identifiant-openid</feedburner:origLink></entry>


	<entry>
		<title>Parser la query string en Javascript 2</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/237704327/parser-la-querystring-en-javascript-2" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/parser-la-querystring-en-javascript-2</id>
		<category term="javascript" label="javascript" />
		<published>2008-02-19T12:47:23-04:00</published>
				<updated>2008-02-19T13:43:28-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Suite à <a href="/2008/02/parser-la-querystring-en-javascript#commentaire-615">un commentaire de David Duret</a> sur mon billet intitulé « <a href="/2008/02/parser-la-querystring-en-javascript">Parser la query string en Javascript</a> » :</p>

<blockquote>
  <p>Ce qui serait bien c’est d’améliorer cette fonction en ajoutant une sorte de cache de maniere à ne pas reparser l’url à chaque fois (si on a une dizaine de paramètres ou qu’on utilise beaucoup cette fonction dans une meme page, ca peut « ralentir » un peu son execution, encore que ca ne doit pas être bloquant non plus !)</p>
</blockquote>

<p>C’est tout à fait vrai! J’ai donc créer un objet nommé <code>window.querystring</code> :</p>

<pre><code class="javascript">window.querystring = {
    vars : null,
    parse : function() {
      var q = {};
      var query = window.location.search.substring(1); 
      var vars = query.split("&amp;"); 
      for (var i = 0; i &lt; vars.length; i++) { 
          var pair = vars[i].split("="); 
          q[pair[0]] = pair[1];
      }
      this.vars = q;
    }
}
</code></pre>

<p>On peut alors ensuite utiliser l’objet comme ceci :</p>

<pre><code class="javascript">querystring.parse(); // on initialise l'objet
alert(querystring.vars.foo); // index.php?foo=bar
</code></pre>

<p>Vous pouvez utiliser ce code librement, sans avoir à me donner de crédit.</p>

<p><strong>Mise à jour</strong> : Si vous utilisez <a href="http://jquery.com">jQuery</a>, le plugin <a href="http://plugins.jquery.com/project/query-object">Query String Object</a> est beaucoup plus complet. Il possède, entres autres, une meilleure gestion des types de données et une interface de création de <em>query string</em>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/237704327" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/parser-la-querystring-en-javascript-2</feedburner:origLink></entry>


	<entry>
		<title>Mozilla Messaging</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/237551644/mozilla-messaging" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/mozilla-messaging</id>
		<category term="firefox" label="firefox" />
		<category term="mozilla" label="mozilla" />
		<category term="thunderbird" label="thunderbird" />
		<published>2008-02-19T07:56:30-04:00</published>
				<updated>2008-02-19T07:56:30-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Ceux qui pensaient que la fin de <a href="http://getthunderbird.com">Mozilla Thunderbird</a> approchait seront confondus! Mozilla <a href="http://www.mozilla.com/en-US/press/mozilla-2008-02-19-faq.html">annonce</a> la création de <a href="http://www.mozillamessaging.com/">Mozilla Messaging</a> qui aura pour mission de développer Thunderbird 3 (<a href="http://standblog.org/blog/post/2008/02/19/Creation-de-Mozilla-Messaging-et-integration-de-lagenda-dans-Thunderbird-3">via</a>).</p>

<p>Tout cela dans le but ultime de mettre Thunderbird au même niveau que Firefox.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/237551644" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/mozilla-messaging</feedburner:origLink></entry>


	<entry>
		<title>Retour à Firefox 2.0.0.11</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/237126882/retour-a-firefox-20011" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/retour-a-firefox-20011</id>
		<category term="firebug" label="firebug" />
		<category term="firefox" label="firefox" />
		<published>2008-02-18T14:05:01-04:00</published>
				<updated>2008-02-18T14:05:01-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>À cause de <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=416896">ce bogue</a> qui empêche les éléments <code>A</code> d’être inspectés correctement avec <a href="http://getfirebug.com">Firebug</a>, je viens de <em>downgrader</em> vers la version précécente de <a href="http://getfirefox.com">Firefox</a>, 2.0.0.11.</p>

<p>C’est fou comme un simple petit bogue comme celui-ci peut nous ralentir considérablement dans notre travail!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/237126882" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/retour-a-firefox-20011</feedburner:origLink></entry>


	<entry>
		<title>Parser la query string en Javascript</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/236968802/parser-la-querystring-en-javascript" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/parser-la-querystring-en-javascript</id>
		<category term="javascript" label="javascript" />
		<published>2008-02-18T08:04:50-04:00</published>
				<updated>2008-02-18T11:02:42-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Une petite fonction bien pratique pour <em>parser</em> la query string de la page actuelle (<a href="http://www.zrinity.com/developers/code_samples/code.cfm/CodeID/59/JavaScript/Get_Query_String_variables_in_JavaScript">source</a>).</p>

<pre><code class="javascript">/**
 * Retourne la valeur d'un paramètre de la query string
 *
 * @param  string Le nom du paramètre
 * @return string La valeur du paramètre
 */
function getQueryVariable(variable){
  var query = window.location.search.substring(1);
  var vars = query.split("&amp;");
  for (var i = 0; i &lt; vars.length; i++) {
      var pair = vars[i].split("=");
      if (pair[0] == variable) {
        return pair[1];
      }
  }
  return null;
}
</code></pre>

<p>On peut ensuite utiliser la fonction comme cela :</p>

<pre><code class="javascript">// Dans cet exemple, la page actuelle est /index.php?section=10
alert('Nous sommes à la section : ' + getQueryVariable('section')); // 10
</code></pre>

<p>Alternaitvement, on peut accéder à la portion <em>hash</em> (ou <em>anchor</em>) d’un <acronym title="Uniform Resource Identifier">URI</acronym> (cela peut-être utilisé pour créer une navigation en AJAX qui permet d’utiliser les fonctions <strong>Page précédente</strong> et <strong>Page suivante</strong> du navigateur) avec la variable globale <code>window.location.hash</code>.</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/236968802" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/parser-la-querystring-en-javascript</feedburner:origLink></entry>


	<entry>
		<title>Helvetica, le film, à Québec</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/235552215/helvetica-le-film-a-quebec" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/helvetica-le-film-a-quebec</id>
		<category term="helvetica" label="helvetica" />
		<category term="ixmedia" label="ixmedia" />
		<category term="quebec" label="quebec" />
		<published>2008-02-15T08:00:33-04:00</published>
				<updated>2008-02-15T08:00:33-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Bon, plusieurs de mes collègues <a href="http://carnets.ixmedia.com/isabelle/2008/02/14/arial-na-qua-bien-se-tenir-helvetica-est-en-ville/">en</a> <a href="http://www.circacfd.com/?p=1746">ont</a> <a href="http://www.lesbonnesfrequentations.com/2008/02/14/helvetica-le-film/">déjà</a> <a href="http://www.michaelcarpentier.com/index.php/helvetica-le-film/">parlé</a> — la nouvelle a été lançé : <a href="http://ixmedia.com">iXmédia</a> présente <a href="http://helveticafilm.com"><em>Helvetica le film</em></a> au Clap, le 5 mars prochain.</p>

<p><a href="http://www.ixmedia.com/helvetica/"><img src="/images/helvetica.jpg" alt="Helvetica" /></a></p>

<p>C’est moi qui a codé <a href="http://www.ixmedia.com/helvetica/">la page d’informations</a>, et vous pourrez remarquer que j’y ai glissé un petit bout de <a href="http://microformats.org/wiki/hcalendar">hCalendar</a> au passage…</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/235552215" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/helvetica-le-film-a-quebec</feedburner:origLink></entry>


	<entry>
		<title>jQuery 1.2.2 API browser</title>
		<link href="http://feeds.feedburner.com/~r/effair/~3/234355900/jquery-122-api-browser" />
		<author>
			<name>Rémi Prévost</name>
		</author>
		<id>http://remiprevost.com/2008/02/jquery-122-api-browser</id>
		<category term="api" label="api" />
		<category term="jquery" label="jquery" />
		<published>2008-02-13T08:29:34-04:00</published>
				<updated>2008-02-13T08:29:34-04:00</updated>
		

		<content type="xhtml" xml:lang="fr-ca" xml:base="http://remiprevost.com/"><div xmlns="http://www.w3.org/1999/xhtml">
				<p>Une nouvelle version du <a href="http://remysharp.com/jquery-api/">navigateur de l’<acronym title="Application Programming Interface">API</acronym></a> de <a href="http://jquery.com">jQuery</a> — il était temps, la dernière version correspondait avec l’<acronym title="Application Programming Interface">API</acronym> de jQuery 1.1.3!</p>			<xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/effair/~4/234355900" height="1" width="1" /></div></content>
	<feedburner:origLink>http://remiprevost.com/2008/02/jquery-122-api-browser</feedburner:origLink></entry>


 </feed>
