<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>episode 2 &#187; Web</title>
	<atom:link href="http://blog.episode-2.com/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.episode-2.com</link>
	<description>dev, tech &#38; more - par Ludovic André</description>
	<lastBuildDate>Fri, 21 May 2010 12:35:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Les liens du vendredi!</title>
		<link>http://blog.episode-2.com/2009/10/09/les-liens-du-vendredi/</link>
		<comments>http://blog.episode-2.com/2009/10/09/les-liens-du-vendredi/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 07:34:24 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=621</guid>
		<description><![CDATA[En attendant l&#8217;arrivée du week-end, quelques liens intéressants glanés durant la semaine: PHP - Fabien Potencier: Pourquoi PHP n&#8217;est pas un bon langage de templates (EDIT: il a ensuite publié un follow-up suite aux 70+ commentaires reçus sur l&#8217;article original) - Federico Cargnelutti propose une idée de database replication adapter pour Zend Framework pour gérer [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-9929265657086306";
/* 468x60, created 12/24/08 */
google_ad_slot = "5317816517";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p><p>En attendant l&#8217;arrivée du week-end, quelques liens intéressants glanés durant la semaine:</p>
<p><strong>PHP</strong></p>
<p>- Fabien Potencier: <a href="http://fabien.potencier.org/article/34/templating-engines-in-php" target="_blank">Pourquoi PHP n&#8217;est pas un bon langage de templates</a> (EDIT: il a ensuite publié un <a href="http://fabien.potencier.org/article/35/templating-engines-in-php-follow-up" target="_blank">follow-up</a> suite aux 70+ commentaires reçus sur l&#8217;article original)<br />
- Federico Cargnelutti propose une idée de <a href="http://blog.fedecarg.com/2009/10/02/database-replication-adapter-for-zend-framework-applications/" target="_blank">database replication adapter</a> pour Zend Framework pour gérer les connexions à vos DB dans le cas de réplications single-master ou multi-master<br />
- Petite série de <a href="http://giorgiosironi.blogspot.com/2009/09/practical-testing-in-php-part-1-phpunit.html" target="_blank">7 articles d&#8217;introduction au unit testing</a>, et surtout à PHPUnit<br />
- Arrivée de l&#8217;<a href="http://devzone.zend.com/article/11024-Announcing-the-Apache-Solr-extension-in-PHP" target="_blank">extension Solr en 0.9.0</a> pour PHP<br />
- <a href="http://www.joobsbox.com/" target="_blank">Joobsbox</a>, un Job Board opensource développé avec Zend Framework, toujours intéressant de voir comment les autres s&#8217;en servent</p>
<p><strong>Android</strong></p>
<p>- Nouvelle <a href="http://android-developers.blogspot.com/2009/10/gestures-on-android-16.html" target="_blank">API de gestion des gestures</a>, dans la version 1.6 d&#8217;Android</p>
<p>Et pour le fun: <a href="http://www.labandepasdessinee.com/bpd/268-technique" target="_blank">La Bande Pas Dessinée</a>, le remède à votre productivité <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2009/10/09/les-liens-du-vendredi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &#171;&#160;Missed Schedule&#160;&#187;</title>
		<link>http://blog.episode-2.com/2009/09/30/wordpress-missed-schedule/</link>
		<comments>http://blog.episode-2.com/2009/09/30/wordpress-missed-schedule/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 08:11:21 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=614</guid>
		<description><![CDATA[Une solution à tenter si Wordpress vous retourne "Missed schedule" lorsque vous tentez d'utiliser la fonction de scheduling de posts.]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-9929265657086306";
/* 468x60, created 12/24/08 */
google_ad_slot = "5317816517";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p><p>Si vous avez essayé d&#8217;utiliser la fonction de <strong>scheduling de post</strong> dans WordPress 2.8, peut-être vous êtes vous aussi heurté au seul message d&#8217;erreur de WordPress vous signalant &laquo;&nbsp;missed schedule&nbsp;&raquo;, et du coup, pas de post publié.<br />
Après avoir fouillé leur forum, trouvé moulte utilisateurs à la recherche d&#8217;un correctif éventuel (apparemment cela fait déjà plusieurs versions que ce &laquo;&nbsp;bug&nbsp;&raquo; subsisterait), passé en revue plusieurs hacks en tout genre, je suis finalement tombé <a href="http://wordpress.org/support/topic/296236#post-1175405" target="_blank">sur un message plutôt clair</a> qui dit que le problème n&#8217;est pas du côté WordPress, mais bien du côté serveur.</p>
<p>Pour faire court, la solution à tenter, si vous êtes victime de ce &laquo;&nbsp;Missed schedule&nbsp;&raquo;, est la suivante:<br />
editez votre fichier <strong>wp-config.php</strong>, et ajoutez-y</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ALTERNATE_WP_CRON&quot;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><a href="http://wordpress.org/support/topic/296236#post-1175405" target="_blank">Le commentaire original à ce sujet est fait par Otto32 sur le forum WordPress, </a> pour ceux qui voudraient en lire plus sur le problème.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2009/09/30/wordpress-missed-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework, Lucene et les recherches numériques</title>
		<link>http://blog.episode-2.com/2008/08/12/zend-framework-lucene-et-les-recherches-numeriques/</link>
		<comments>http://blog.episode-2.com/2008/08/12/zend-framework-lucene-et-les-recherches-numeriques/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 18:38:55 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=269</guid>
		<description><![CDATA[Bon à savoir: par défaut, le moteur de recherche Lucene fournit avec Zend Framework ne traite pas les valeurs numériques comme valeurs à indexer / rechercher. Afin de pouvoir indexer ces valeurs, et effectuer des recherches les prenant en compte, changez simplement l&#8217;analyzer (la classe en charge de traiter chaque terme à indexer) par défaut, [...]]]></description>
			<content:encoded><![CDATA[<p>Bon à savoir: par défaut, le moteur de recherche Lucene fournit avec Zend Framework ne traite pas les valeurs numériques comme valeurs à indexer / rechercher.</p>
<p>Afin de pouvoir indexer ces valeurs, et effectuer des recherches les prenant en compte, changez simplement l&#8217;analyzer (la classe en charge de traiter chaque terme à indexer) par défaut, qui ne traite que les caractères &#8216;lettres&#8217;, par un analyzer qui traite également les valeurs numériques.  Par exemple, en insérant dans votre bootstrap:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">Zend_Search_Lucene_Analysis_Analyzer<span style="color: #339933;">::</span><span style="color: #004000;">setDefault</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Il est important que cette opération soit faite AVANT toute indexation ET AVANT toute recherche.</p>
<p>Plus d&#8217;infos dans la <a href="http://framework.zend.com/manual/en/zend.search.lucene.extending.html" target="_blank">doc du framework</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/08/12/zend-framework-lucene-et-les-recherches-numeriques/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les quelques liens du week-end</title>
		<link>http://blog.episode-2.com/2008/08/08/les-quelques-liens-du-week-end/</link>
		<comments>http://blog.episode-2.com/2008/08/08/les-quelques-liens-du-week-end/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 06:35:25 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Actu]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=262</guid>
		<description><![CDATA[- FPDF, l&#8217;excellente lib PHP pour générer des PDF, sort en version 1.6 (si si, c&#8217;est possible! La version 1.53 datait de décembre 2004 ) - PHP 4 est mort! L&#8217;ultime release de la branche 4.4, la 4.4.9, est sortie hier.  Faut se mettre au 5 les gars, le 6 arrive bientôt - Facebook présente [...]]]></description>
			<content:encoded><![CDATA[<p>- <a href="http://www.fpdf.org" target="_blank">FPDF, l&#8217;excellente lib PHP pour générer des PDF</a>, sort en version 1.6 (si si, c&#8217;est possible! <a href="http://www.fpdf.org/fr/histo.php" target="_blank">La version 1.53 datait de décembre 2004</a> <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )<br />
- <a href="http://www.php.net/archive/2008.php#id2008-08-07-1" target="_blank">PHP 4 est mort</a>! L&#8217;ultime release de la branche 4.4, <a href="http://www.php.net/archive/2008.php#id2008-08-07-1" target="_blank">la 4.4.9</a>, est sortie hier.  Faut se mettre au 5 les gars, le 6 arrive bientôt <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
- Facebook présente <a href="http://www.scribd.com/doc/4069180/Caching-Performance-Lessons-from-Facebook" target="_blank">au travers de quelques slides</a> une petite partie de leur backend, et comment ils gèrent le load (caching &amp; performance / memcached) dû au traffic faisant de leur site le 4ème le plus visité au monde (<a href="http://www.webmonkey.com/blog/Facebook_Presents_Scalability_Secret%3A_Memcached" target="_blank">via</a>)<br />
- Un article amusant (anglais) sur <a href="http://phpimpact.wordpress.com/2008/07/31/software-development-cycles/" target="_blank">le cycle de développement d&#8217;une application</a>. Et c&#8217;est tellement vrai.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/08/08/les-quelques-liens-du-week-end/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriel: MySQL et les COLLATE</title>
		<link>http://blog.episode-2.com/2008/07/25/tutoriel-mysql-et-les-collate/</link>
		<comments>http://blog.episode-2.com/2008/07/25/tutoriel-mysql-et-les-collate/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 17:12:04 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[collate]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=240</guid>
		<description><![CDATA[Voila un petit tutoriel MySQL qui vous permettra de comprendre, je l&#8217;espère, l&#8217;utilité du COLLATE lors de la création de vos tables. Problème Vous avez développé un moteur de recherche qui interroge une base de données MySQL.  Or, lorsque vous effectuez des requêtes avec des termes accentués, MySQL vous retourne également les résultats non-accentués.  Dans [...]]]></description>
			<content:encoded><![CDATA[<p>Voila un petit tutoriel MySQL qui vous permettra de comprendre, je l&#8217;espère, l&#8217;utilité du <strong>COLLATE</strong> lors de la création de vos tables.</p>
<p><span id="more-240"></span></p>
<p><strong>Problème</strong></p>
<p>Vous avez développé un moteur de recherche qui interroge une base de données MySQL.  Or, lorsque vous effectuez des requêtes avec des termes accentués, MySQL vous retourne également les résultats non-accentués.  Dans certains cas, ce peut-être très utile.  Ceci dit, quelle en est la raison?</p>
<p><strong>Collation = comparaison et regroupement</strong></p>
<p>MySQL (&gt;=4.1.3) se base sur le COLLATE du champ à comparer pour déterminer le type de comparaison qu&#8217;il va effectuer.   Une collation (COLLATE) détermine les caractères qui doivent être regroupés et considérés comme équivalents (ex: les caractères accentués &#8216;à&#8217; et &#8216;â&#8217; faisant partie du groupe &#8216;a&#8217;, ou encore les caractères &#8216;A&#8217; et &#8216;a&#8217;.).<br />
Vous déterminez la collation lors de la création de votre table, via le mot-clé COLLATE, ou lors de la création du champ dans cette table (si vous désirez un collation différente pour chacun des champs).</p>
<p><span style="text-decoration: underline;">Quelques exemples de COLLATION:</span><br />
<em>* Dans le charset latin1:</em><br />
- latin1_swedish_ci (probablement la plus utilisée au monde, étant la collation par défaut de MySQL dans le charset latin1)<br />
- latin1_bin<br />
<em>* Dans le charset utf-8:</em><br />
- utf8_bin<br />
- utf8_general_ci<br />
&#8230; et j&#8217;en passe.</p>
<p>Suivant la collation que vous aurez choisie, les comparaisons seront ainsi sensibles (ou non) à la casse et aux accents.<br />
Par exemple, <strong>latin1_bin</strong> sera <strong>sensible à la casse et aux accents</strong> tandis que <strong>latin1_general_ci</strong> ne le <strong>sera pas</strong>.</p>
<p><span style="text-decoration: underline;">Remarque:</span><br />
Il est à préciser que si vous créez votre table avec une certaine collation, et que vous la changez ensuite (sans utiliser le ALTER TABLE&#8230;CONVERT), la collation des champs déjà créés dans cette table ne changera pas, seuls les nouveaux éléments utiliseront la nouvelle collation.  Ce qui pourrait vous induire en erreur&#8230;</p>
<p><strong>Testons!</strong></p>
<p>Prenons la table suivante, tout ce qu&#8217;il y a de plus banal:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`contacts`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`lastname`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #ff0000;">''</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`firstname`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #ff0000;">''</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>latin1;
Query OK<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">0</span> rows affected <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.02</span> sec<span style="color: #66cc66;">&#41;</span>
&nbsp;
mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> contacts <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'andre'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'ludovic'</span><span style="color: #66cc66;">&#41;</span>;
Query OK<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> row affected <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span>
&nbsp;
mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> contacts <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Andre'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'Ludovic'</span><span style="color: #66cc66;">&#41;</span>;
Query OK<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span> row affected <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>=&gt; <strong>COLLATE non spécifié</strong>, les champs auront donc comme collation: <strong>latin1_swedish_ci</strong> (vu que nous sommes dans le charset latin1).</p>
<p>Pour s&#8217;en assurer:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">SHOW</span> <span style="color: #993333; font-weight: bold;">FULL</span> <span style="color: #993333; font-weight: bold;">COLUMNS</span> <span style="color: #993333; font-weight: bold;">FROM</span> contacts;
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+-------------------+------+-----+--------...</span>
<span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">FIELD</span>     <span style="color: #66cc66;">|</span> Type         <span style="color: #66cc66;">|</span> Collation         <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+-------------------+------+-----+--------...</span>
<span style="color: #66cc66;">|</span> lastname  <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">|</span> latin1_swedish_ci <span style="color: #66cc66;">|</span> YES  <span style="color: #66cc66;">|</span>     <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> firstname <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">|</span> latin1_swedish_ci <span style="color: #66cc66;">|</span> YES  <span style="color: #66cc66;">|</span>     <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+-------------------+------+-----+--------...</span>
<span style="color: #cc66cc;">2</span> rows <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.15</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Tentons notre recherche (les tests ci-dessous sont basés sur la problématique case-sensitive, mais sont tout aussi valables pour celle accents-sensitive):</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> contacts <span style="color: #993333; font-weight: bold;">WHERE</span> lastname <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'andre'</span>;
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------+</span>
<span style="color: #66cc66;">|</span> lastname <span style="color: #66cc66;">|</span> firstname <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------+</span>
<span style="color: #66cc66;">|</span> andre    <span style="color: #66cc66;">|</span> ludovic   <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> Andre    <span style="color: #66cc66;">|</span> Ludovic   <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------+</span>
<span style="color: #cc66cc;">2</span> rows <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Les résultats ne sont pas case-sensitive.  Tout à fait normal donc, car comme expliqué plus haut, la collation <strong>latin1_swedish_ci n&#8217;est pas case-sensitive</strong>.</p>
<p>Il est possible de forcer la collation d&#8217;un champ lors de la query, pour passer en mode case-sensitive sur un champ spécifique:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> contacts <span style="color: #993333; font-weight: bold;">WHERE</span> lastname COLLATE latin1_bin <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'andre'</span>;
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------+</span>
<span style="color: #66cc66;">|</span> lastname <span style="color: #66cc66;">|</span> firstname <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------+</span>
<span style="color: #66cc66;">|</span> andre    <span style="color: #66cc66;">|</span> ludovic   <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------+</span>
<span style="color: #cc66cc;">1</span> row <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Pour éviter de devoir le faire à chaque requête de comparaison, on peut évidemment <strong>modifier la collation du champ lastname</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> contacts <span style="color: #993333; font-weight: bold;">MODIFY</span> lastname VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> COLLATE latin1_bin;
Query OK<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">2</span> rows affected <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.01</span> sec<span style="color: #66cc66;">&#41;</span>
Records: <span style="color: #cc66cc;">2</span>  Duplicates: <span style="color: #cc66cc;">0</span>  Warnings: <span style="color: #cc66cc;">0</span>
&nbsp;
mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">SHOW</span> <span style="color: #993333; font-weight: bold;">FULL</span> <span style="color: #993333; font-weight: bold;">COLUMNS</span> <span style="color: #993333; font-weight: bold;">FROM</span> contacts;
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+-------------------+------+-----+--------...</span>
<span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">FIELD</span>     <span style="color: #66cc66;">|</span> Type         <span style="color: #66cc66;">|</span> Collation         <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+-------------------+------+-----+--------...</span>
<span style="color: #66cc66;">|</span> lastname  <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">|</span> latin1_bin        <span style="color: #66cc66;">|</span> YES  <span style="color: #66cc66;">|</span>     <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>
<span style="color: #66cc66;">|</span> firstname <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">|</span> latin1_swedish_ci <span style="color: #66cc66;">|</span> YES  <span style="color: #66cc66;">|</span>     <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+-------------------+------+-----+--------...</span>
<span style="color: #cc66cc;">2</span> rows <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>On peut également <strong>convertir tous les champs d&#8217;un seul coup, ainsi que la table elle-même</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> contacts CONVERT <span style="color: #993333; font-weight: bold;">TO</span> CHARSET latin1 COLLATE latin1_bin;
Query OK<span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">2</span> rows affected <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.03</span> sec<span style="color: #66cc66;">&#41;</span>
Records: <span style="color: #cc66cc;">2</span>  Duplicates: <span style="color: #cc66cc;">0</span>  Warnings: <span style="color: #cc66cc;">0</span>
&nbsp;
mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">SHOW</span> <span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> contacts;
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------------------------------------------------+</span>
<span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">TABLE</span>    <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span>                                                                                                            <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------------------------------------------------+</span>
<span style="color: #66cc66;">|</span> contacts <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`contacts`</span> <span style="color: #66cc66;">&#40;</span>
<span style="color: #ff0000;">`lastname`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> collate latin1_bin <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
<span style="color: #ff0000;">`firstname`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> collate latin1_bin <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #ff0000;">''</span>
<span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>latin1 COLLATE<span style="color: #66cc66;">=</span>latin1_bin <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">----------+-----------------------------------------------------+</span>
<span style="color: #cc66cc;">1</span> row <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span>
&nbsp;
mysql<span style="color: #66cc66;">&gt;</span> <span style="color: #993333; font-weight: bold;">SHOW</span> <span style="color: #993333; font-weight: bold;">FULL</span> <span style="color: #993333; font-weight: bold;">COLUMNS</span> <span style="color: #993333; font-weight: bold;">FROM</span> contacts;
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+------------+------+-----+--------...</span>
<span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">FIELD</span>     <span style="color: #66cc66;">|</span> Type         <span style="color: #66cc66;">|</span> Collation  <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+------------+------+-----+--------...</span>
<span style="color: #66cc66;">|</span> lastname  <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">|</span> latin1_bin <span style="color: #66cc66;">|</span> YES  <span style="color: #66cc66;">|</span>     <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">NULL</span>    <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span> firstname <span style="color: #66cc66;">|</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">|</span> latin1_bin <span style="color: #66cc66;">|</span> YES  <span style="color: #66cc66;">|</span>     <span style="color: #66cc66;">|</span>         <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">+</span><span style="color: #808080; font-style: italic;">-----------+--------------+------------+------+-----+--------...</span>
<span style="color: #cc66cc;">2</span> rows <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #993333; font-weight: bold;">SET</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.00</span> sec<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Comme mentionné dans l&#8217;introduction de cet article, il faut obligatoirement effectuer un <strong>ALTER TABLE&#8230;CONVERT</strong> pour que MySQL prenne en charge <strong>la modification du COLLATE des champs dans cette table</strong>. Sans quoi, via un ALTER TABLE CHARSET latin1 COLLATE latin1_bin, seul le COLLATE de la table sera modifié.</p>
<p>Voila, j&#8217;espère que vous y voyez un peu plus clair sur l&#8217;usage de ce COLLATE, bien que je ne sois pas rentré dans les détails très techniques, mais cela constitue une base suffisante pour en comprendre l&#8217;usage.  Je vous conseille également de <a href="http://antoun.developpez.com/mysql5/jeux-collations/Jeux_et_Collations.pdf" target="_blank">lire ce très bon PDF</a>, qui vous en apprendra encore d&#8217;avantage!</p>
<p>A partir de là, vous pourrez vous aventurer dans la problématique du CHARSET (jeu de caractères), encore plus vaste <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Ressources</strong></p>
<p>Quelques <a href="http://www.collation-charts.org/mysql60/" target="_blank">tableaux décrivants les regroupements de caractères pour certaines collations</a><br />
De la <a href="http://dev.mysql.com/doc/refman/5.0/fr/charset-defaults.html" target="_blank">doc MySQL sur les charset et les collations</a><br />
Un <a href="http://antoun.developpez.com/mysql5/jeux-collations/Jeux_et_Collations.pdf" target="_blank">tutoriel détaillé, en PDF, sur les charset et les collations</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/07/25/tutoriel-mysql-et-les-collate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby-on-Rails: uninitialized constant RubiGen</title>
		<link>http://blog.episode-2.com/2008/07/18/ruby-on-rails-uninitialized-constant-rubigen/</link>
		<comments>http://blog.episode-2.com/2008/07/18/ruby-on-rails-uninitialized-constant-rubigen/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 07:50:52 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[ruby-on-rails]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=195</guid>
		<description><![CDATA[Si vous avez le package Sproutcore installé, vous risquez de tomber sur l&#8217;erreur ci-dessous, lors de l&#8217;utilisation des scripts en ligne de commande du framework Ruby-on-Rails (ex: script/generate scaffold): [code] uninitialized constant RubiGen [/code] La version 0.9.9 de Sproutcore provoque apparement ce problème, mettez-la simplement à jour et tout rentrera dans l&#8217;ordre (0.9.13 à l&#8217;heure [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous avez le package Sproutcore installé, vous risquez de tomber sur l&#8217;erreur ci-dessous, lors de l&#8217;utilisation des scripts en ligne de commande du framework Ruby-on-Rails (ex: script/generate scaffold):</p>
<p>[code]<br />
<span><strong class="highlight">uninitialized</strong> <strong class="highlight">constant</strong> <strong class="highlight">RubiGen</strong><br />
[/code]</span></p>
<p>La version 0.9.9 de Sproutcore provoque apparement ce problème, mettez-la simplement à jour et tout rentrera dans l&#8217;ordre (0.9.13 à l&#8217;heure de cet article).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/07/18/ruby-on-rails-uninitialized-constant-rubigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;architecture LinkedIn</title>
		<link>http://blog.episode-2.com/2008/07/09/larchitecture-linkedin/</link>
		<comments>http://blog.episode-2.com/2008/07/09/larchitecture-linkedin/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 17:35:56 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=188</guid>
		<description><![CDATA[Lors de la conférence JavaOne 2008 qui s&#8217;est déroulée en mai, des employés LinkedIn on présenté quelques sides pour décrire l&#8217;architecture utilisée pour leur système (basé essentiellement sur des techno Java), ainsi que les évolutions et les apprentissages qu&#8217;ils ont pu faire depuis le lancement en 2003.  On y apprend notamment quelques grosses statistiques comme: [...]]]></description>
			<content:encoded><![CDATA[<p>Lors de la conférence JavaOne 2008 qui s&#8217;est déroulée en mai, des employés LinkedIn on présenté quelques sides pour décrire l&#8217;architecture utilisée pour leur système (basé essentiellement sur des techno Java), ainsi que les évolutions et les apprentissages qu&#8217;ils ont pu faire depuis le lancement en 2003.  On y apprend notamment quelques grosses statistiques comme:</p>
<ul>
<li>22 millions de membres</li>
<li>4+ millions de visiteurs uniques/mois</li>
<li>40 millions de pages vues/jour</li>
<li>2 millions de recherches/jour</li>
<li>250.000 invitations envoyées/jour</li>
<li>1 million de réponses envoyées</li>
<li>2 millions de messages email/jour</li>
</ul>
<p>mais aussi que l&#8217;entierté du network graph est stocké en RAM (22 millions de membres, ne l&#8217;oublions pas), et qu&#8217;il faut 8h pour recréer une instance en RAM (dans le Cloud) à partir des données sur disque&#8230;  Quelques astuces ont d&#8217;ailleurs été utilisées pour éviter de perdre du temps à recalculer toutes les relations d&#8217;un utilisateur, comme par exemple stocker en cache le résultat après le login, résultat qui ne se mettra à jour que si l&#8217;utilisateur-même apporte des modifs, pas ses relations.</p>
<p>Vous trouverez (en anglais) <a href="http://hurvitz.org/blog/2008/06/linkedin-architecture" target="_blank">un article sur blog d&#8217;Oren Hurvitz</a>, qui reprend les grandes lignes de la présentation.  Pour les slides de la conférence:</p>
<p>- <a onclick="javascript:pageTracker._trackPageview('/http://www.slideshare.net/linkedin/linkedins-communication-architecture');" href="http://www.slideshare.net/linkedin/linkedins-communication-architecture">LinkedIn &#8211; A Professional Social Network Built with Java™ Technologies and Agile Practices</a><br />
- <a onclick="javascript:pageTracker._trackPageview('/http://www.slideshare.net/linkedin/linked-in-javaone-2008-tech-session-comm');" href="http://www.slideshare.net/linkedin/linked-in-javaone-2008-tech-session-comm">LinkedIn Communication Architecture</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/07/09/larchitecture-linkedin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoogleTalk dispo pour l&#8217;iPhone</title>
		<link>http://blog.episode-2.com/2008/07/03/googletalk-dispo-pour-liphone/</link>
		<comments>http://blog.episode-2.com/2008/07/03/googletalk-dispo-pour-liphone/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 15:02:02 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Actu]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[googletalk]]></category>
		<category><![CDATA[im]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=186</guid>
		<description><![CDATA[Google vient de sortir une interface iPhone-friendly pour son client web-based GoogleTalk. Pour vous y connecter, prenez votre plus beau Safari Mobile, et rendez-vous sur http://www.google.com/talk D&#8217;autres alternatives pour iPhone existaient évidemment, comme Fringe niveau software (nécessitant un jailbreak de la version actuelle de l&#8217;iPhone), ou encore Meebo niveau web (présentant déjà son interface optimisée [...]]]></description>
			<content:encoded><![CDATA[<p>Google <a href="http://googlemobile.blogspot.com/2008/07/google-talk-for-iphone.html" target="_blank">vient de sortir</a> une interface iPhone-friendly pour son client web-based GoogleTalk.</p>
<p>Pour vous y connecter, prenez votre plus beau Safari Mobile, et rendez-vous sur <a href="http://www.google.com/talk" target="_blank">http://www.google.com/talk</a></p>
<p>D&#8217;autres alternatives pour iPhone existaient évidemment, comme Fringe niveau software (nécessitant un jailbreak de la version actuelle de l&#8217;iPhone), ou encore <a href="http://www.meebo.com" target="_blank">Meebo</a> niveau web (présentant déjà son interface optimisée pour le client mobile, mais pas très utf-8 friendly par contre <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).  Ceci dit, j&#8217;ai toujours eu un peu de mal avec ces clients qui, via une seule appli, vous connectent à tous vos comptes&#8230; C&#8217;est sûr, c&#8217;est très pratique, mais devoir leur communiquer tous mes identifiants me rebute toujours un peu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/07/03/googletalk-dispo-pour-liphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Studio for Eclipse, SVN et l&#8217;auto-complétion PHP</title>
		<link>http://blog.episode-2.com/2008/05/24/zend-studio-for-eclipse-svn-et-lauto-completion-php/</link>
		<comments>http://blog.episode-2.com/2008/05/24/zend-studio-for-eclipse-svn-et-lauto-completion-php/#comments</comments>
		<pubDate>Sat, 24 May 2008 14:23:21 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=178</guid>
		<description><![CDATA[Je suis tombé sur un truc assez louche après avoir installé l&#8217;IDE Zend Studio for Eclipse (version 6.0.0), et fait un checkout d&#8217;un projet PHP depuis SVN: plus d&#8217;auto-complétion PHP&#8230; Apparement, l&#8217;auto-complétion (ainsi que la liste des classes, functions, &#8230; de votre projet) ne fonctionne que si le projet est créé en tant que PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Je suis tombé sur un truc assez louche après avoir installé l&#8217;IDE Zend Studio for Eclipse (version 6.0.0), et fait un checkout d&#8217;un projet PHP depuis SVN: plus d&#8217;auto-complétion PHP&#8230; Apparement, l&#8217;auto-complétion (ainsi que la liste des classes, functions, &#8230; de votre projet) ne fonctionne que si le projet est créé en tant que PHP Project  (et donc pas depuis un checkout SVN) !  Pas top, d&#8217;utiliser un IDE, et de ne pas pouvoir de disposer de telles fonctionnalités&#8230; Un <a href="http://www.zend.com/forums/index.php?t=msg&amp;th=5699&amp;goto=16377#msg_16377" target="_blank">workaround</a> a été posté par un user <a href="http://www.zend.com/forums/index.php?t=msg&amp;th=5699&amp;goto=16377#msg_16377" target="_blank">sur le forum Zend</a> :</p>
<p>Après avoir fait votre checkout depuis l&#8217;IDE, allez dans le dossier du projet, éditez le fichier caché <em>.project</em> et remplacez le contenu des tags <em>buildSpec</em> et <em>natures</em> par :</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;buildSpec<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;buildCommand<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.eclipse.php.core.PhpIncrementalProjectBuilder<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arguments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/arguments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/buildCommand<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/buildSpec<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;natures<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;nature<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.eclipse.php.core.PHPNature<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/nature<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/natures<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Sauvegardez les changements, et faites un refresh de votre projet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/05/24/zend-studio-for-eclipse-svn-et-lauto-completion-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Google, we have a problem!</title>
		<link>http://blog.episode-2.com/2008/05/19/google-we-have-a-problem/</link>
		<comments>http://blog.episode-2.com/2008/05/19/google-we-have-a-problem/#comments</comments>
		<pubDate>Mon, 19 May 2008 18:41:03 +0000</pubDate>
		<dc:creator>bkill</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://blog.episode-2.com/?p=174</guid>
		<description><![CDATA[Bon, faudrait tout de même pas exagérer hein, mais on fait quoi nous pendant ce temps? Remarquez aussi le (c) 2005]]></description>
			<content:encoded><![CDATA[<p>Bon, faudrait tout de même pas exagérer hein, mais on fait quoi nous pendant ce temps? <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://blog.episode-2.com/wp-content/uploads/2008/05/gmail_error2.gif"><img class="alignnone size-full wp-image-177" title="Gmail error" src="http://blog.episode-2.com/wp-content/uploads/2008/05/gmail_error2.gif" alt="" width="436" height="280" /></a></p>
<p>Remarquez aussi le <strong>(c) 2005</strong> <img src='http://blog.episode-2.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.episode-2.com/2008/05/19/google-we-have-a-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
