<?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>Christophe Le Bot &#187; Exploiter</title>
	<atom:link href="http://blog.christophelebot.fr/category/exploiter/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.christophelebot.fr</link>
	<description>Pratique de la conception numérique</description>
	<lastBuildDate>Wed, 07 Sep 2011 19:28:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Sauvons MySQL !</title>
		<link>http://blog.christophelebot.fr/2010/01/05/sauvons-mysql/</link>
		<comments>http://blog.christophelebot.fr/2010/01/05/sauvons-mysql/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:09:08 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Bases de données]]></category>
		<category><![CDATA[Evénements]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[Veille économique]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/?p=612</guid>
		<description><![CDATA[En janvier 2008, le rachat de MySQL AB par Sun fut un événement majeur et plutôt bien accueilli. Mais l&#8217;ambience était tout autre après le rachat de Sun par Oracle. J&#8217;émettais de fortes réserves sur la survie de MySQL dans le giron de l&#8217;ambitieuse société californienne. Les craintes se sont confirmées et une grande bataille [...]]]></description>
			<content:encoded><![CDATA[<div class="asset-frame"><a title="Sauvez MySQL !" href="http://www.helpmysql.org/fr/theissue/customerspaythebill"><img class="alignnone size-full wp-image-626" title="Save MySQL" src="http://blog.christophelebot.fr/wp-content/uploads/2010/01/helpmysql_Banner_320x240_EN.png" alt="Save MySQL" width="320" height="240" /></a></div>
<p>En janvier 2008, le <a title="Sun acquiert MySQL AB" href="/2008/01/17/sun-acquiert-mysql/">rachat de MySQL AB par Sun</a> fut un événement majeur et plutôt bien accueilli. Mais l&#8217;ambience était tout autre après le <a title="Oracle acquiert Sun" href="/2009/04/20/oracle-acquiert-sun/">rachat de Sun par Oracle</a>. J&#8217;émettais de fortes réserves sur la survie de MySQL dans le giron de l&#8217;ambitieuse société californienne.</p>
<p>Les craintes se sont confirmées et une grande bataille se joue en ce moment pour sauver MySQL. <a title="Help saving MySQL" href="http://monty-says.blogspot.com/2009/12/help-saving-mysql.html">Michael &laquo;&nbsp;Monty&nbsp;&raquo; Widenius, le créateur de MySQL, a lui-même tiré la sonnette d&#8217;alarme</a> en décembre et a anticipé les problèmes que vont rencontrer les utilisateurs de MYSQL.</p>
<p>Sans réponses claires et pérennes d&#8217;Oracle, la communauté s&#8217;organise et une pétition a été lancée pour convaincre les pouvoirs publics et les autorités de régulation des marchés d&#8217;étudier le cas de la fusion Oracle-Sun-MySQL. Libre à vous de décider de l&#8217;avenir de MySQL, mais le danger est, à mon avis, bien réel. J&#8217;attends d&#8217;être convaincu du contraire&#8230;</p>
<p>Pour en savoir plus : <a title="Pétition Save MySQL !" href="http://www.helpmysql.org/fr/theissue/customerspaythebill">Save MySQL !</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2010/01/05/sauvons-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Barcamp PHP toulousain : la synthèse</title>
		<link>http://blog.christophelebot.fr/2009/11/05/barcamp-php-toulousain-la-synthese/</link>
		<comments>http://blog.christophelebot.fr/2009/11/05/barcamp-php-toulousain-la-synthese/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 23:22:29 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Bases de données]]></category>
		<category><![CDATA[Bonnes pratiques]]></category>
		<category><![CDATA[Développement web]]></category>
		<category><![CDATA[Evénements]]></category>
		<category><![CDATA[Génie logiciel]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Outils du développeur]]></category>
		<category><![CDATA[Programmation avancée]]></category>
		<category><![CDATA[Qualité]]></category>
		<category><![CDATA[Recherche et innovation]]></category>
		<category><![CDATA[Se former]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[AFUP]]></category>
		<category><![CDATA[Barcamp]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tests]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/?p=570</guid>
		<description><![CDATA[Jeudi dernier se tenait le Barcamp PHP Cheese &#38; Wine. Même si le vin et le fromage ont été très appréciés, nous n&#8217;étions pas venus (seulement) pour ça. Alors pour les absents qui ont eu tort de l&#8217;être, voici une petite synthèse de cette longue soirée. Un vrai barcamp Premier bon point : c&#8217;est un [...]]]></description>
			<content:encoded><![CDATA[<div class="asset-frame"><img class="alignnone size-medium wp-image-531" title="Bacrcamp PHP Toulouse" src="http://blog.christophelebot.fr/wp-content/uploads/2009/10/barcampPHP01-06629-420x251.jpg" alt="Bacrcamp PHP Toulouse" width="420" height="251" /></div>
<p>Jeudi dernier se tenait le <a title="Barcamp PHP à Toulouse le 29 octobre" href="/2009/10/06/barcamp-php-linagora-toulouse/">Barcamp PHP Cheese &amp; Wine</a>. Même si le vin et le fromage ont été très appréciés, nous n&#8217;étions pas venus (seulement) pour ça. Alors pour les absents qui ont eu tort de l&#8217;être, voici une petite synthèse de cette longue soirée.</p>
<h3>Un vrai barcamp</h3>
<p>Premier bon point : c&#8217;est un vrai barcamp où les participants se présentent et définissent le contenu des ateliers. Tous les barcamps ne respectent pas cette règle de base&#8230; Xavier Gorse, président de l&#8217;<a title="Site officiel de l'AFUP" href="http://www.afup.org/">AFUP</a>, a donc joué le rôle de &laquo;&nbsp;maître de cérémonie&nbsp;&raquo; pour établir le programme d&#8217;après les souhaits de chacun  :</p>
<ul>
<li>PHP et sécurité</li>
<li>PHP 5.3</li>
<li>Déploiement d&#8217;applications PHP</li>
<li>PHP et les bases de données &laquo;&nbsp;NoSQL&nbsp;&raquo;</li>
<li>Outillage PHP</li>
<li>PHP et testing</li>
<li>Frameworks PHP</li>
</ul>
<p>Pour ma part, j&#8217;ai participé aux ateliers :</p>
<ul>
<li>Déploiement d&#8217;applications PHP</li>
<li>PHP et les bases de données &laquo;&nbsp;NoSQL&nbsp;&raquo;</li>
<li>PHP et testing</li>
</ul>
<p>Je limite donc mon article à ces sujets, sachant que d&#8217;autres synthèses ont déjà été publiées :</p>
<ul>
<li><a title="Synthèse du Barcamp PHP toulousain" href="http://www.raphael-rougeron.com/post/2009/11/02/Synth%C3%A8se-du-Barcamp-PHP-toulousain">Synthèse du Barcamp PHP toulousain</a>, par Raphaël Rougeron</li>
<li><a title="Synthèse du Barcamp PHP toulousain" href="http://methylbro.titaxium.org/post/2009/11/04/synthese-du-barcamp-php-toulousain">Synthèse du Barcamp PHP toulousain</a>, par Thomas Gasc</li>
</ul>
<h3>Déploiement d&#8217;applications PHP</h3>
<p>Cet atelier a mis en évidence la <strong>difficulté de déployer des applications web</strong> en général (technologies nombreuses et environnement hétérogène). Tous les outils existants ont été passés en revue, du paquet Linux (.deb) aux outils spécifiques à PHP (<a title="Projet PEAR" href="http://pear.php.net/">PEAR</a>, <a title="Projet Phing" href="http://www.phing.info/">Phing</a>, <a title="Phar sur php.net" href="http://php.net/manual/fr/intro.phar.php">Phar</a>) en passant par des intermédiaires parfois plus adaptés (makefile, <a title="Puppet" href="http://reductivelabs.com/products/puppet/">Puppet</a>, <a title="Capistrano" href="http://www.capify.org/">Capistrano</a>, <a title="Projet Apache Ant" href="http://ant.apache.org/">Ant</a>). Deux groupes de participants étaient clairement représentés, avec des besoins très différents :</p>
<ul>
<li><strong>Déploiement d&#8217;une solution sur un parc important et hétérogène</strong> (cas des éditeurs de solutions, comme <a title="Linagora" href="http://www.linagora.com/">Linagora</a> avec <a title="Site officiel OBM" href="http://pro.obm.org/">OBM</a>)</li>
<li><strong>Déploiement d&#8217;un projet sur-mesure sur un ou quelques serveurs, mais très fréquemment et avec des contraintes d&#8217;intégration de contenus externes</strong> (cas des agences web, avec plusieurs déploiements par jour).</li>
</ul>
<p>Dans le premier cas, la difficulté est d&#8217;identifier la configuration des serveurs cibles et de préparer les paquets d&#8217;installation correspondants (.deb pour chaque distribution Linux, .msi pour chaque version de Windows, etc.), tout en assurant la compatibilité des données sans toujours les connaître (tests de régression).</p>
<p>Dans le second cas, il faut savoir intégrer pendant le déploiement les données du site en exploitation (base de données, templates gérés par un web designer externe, etc.), avec d&#8217;éventuelles transformations (ETL, Extract Transform Load).</p>
<p>J&#8217;ai ajouté qu&#8217;un déploiement ne se limite pas à la livraison de la partie applicative mais doit aussi <strong>savoir traiter la mise à jour des outils liés au projet</strong> (plate-forme de gestion de tickets, extranet, feuille de route, tests, sauvegardes, alertes, etc.).</p>
<p>En dehors de <a title="Projet PEAR" href="http://pear.php.net/">PEAR</a>, trés utilisé et qui est un outil de déploiement à l&#8217;origine, j&#8217;ai une préférence pour <a title="Projet Apache Ant" href="http://ant.apache.org/">Ant</a> + <a title="Projet Phing" href="http://www.phing.info/">Phing</a> et <a title="Capistrano" href="http://www.capify.org/">Capistrano</a>.</p>
<h3>Bases de données &laquo;&nbsp;NoSQL&nbsp;&raquo;</h3>
<p>Là, on entre dans une autre dimension. Les bases &laquo;&nbsp;NoSQL&nbsp;&raquo; sont des <strong>bases de données non relationnelles</strong>. En gros, on ne retrouve pas le schéma habituel &laquo;&nbsp;tables contenant des champs et étant reliées entre elles&nbsp;&raquo;. L&#8217;avantage est d&#8217;<strong>obtenir des performances exceptionnelles sur des entrepôts de données énormes</strong>. Parmi les acteurs majeurs qui développent et utilisent des bases &laquo;&nbsp;NoSQL&nbsp;&raquo;, on peut citer : Google (projet Big Table qui a inspiré le <a title="Projet Apache Cassandra" href="http://incubator.apache.org/cassandra/">projet Cassandra</a>), Facebook ou Linkedin.</p>
<p>Si on revient à la dure réalité d&#8217;un acteur de dimension modeste, on constate que ces technologies émergentes et prometteuses sont encore très spécifiques. Les bases relationnelles ont de beaux jours devant elles. La difficulté est notamment de <strong>réintégrer dans l&#8217;application PHP ce qui fait la force des systèmes SQL</strong> : sélection, jointures, intégrité référentielle, etc. Le volet <em>testing </em>des projets en prend un coup&#8230;</p>
<h3>PHP et testing</h3>
<p>Atelier en petit comité (6 personnes), en concurrence déloyale avec l&#8217;atelier Frameworks qui a fait le plein ! Nous avons tenté de lister les types de tests liés à une application web, en dépassant autant que possible la simple vue du développeur :</p>
<ul>
<li>Tests unitaires (PHP et Javascript)</li>
<li>Tests fonctionnels</li>
<li>Tests d&#8217;IHM (via <a title="Selenium Core" href="http://seleniumhq.org/projects/core/">Selenium Core</a>, <a title="Selenium Remote Control" href="http://seleniumhq.org/projects/remote-control/">Selenium RC</a> et <a title="Selenium IDE" href="http://seleniumhq.org/projects/ide/">Selenium IDE</a>)</li>
<li>Tests de recette</li>
<li>Tests de non régression</li>
<li>Tests de performance</li>
<li>Tests de charge</li>
<li>Tests de conformité (normes, W3C, accessibilité, etc.)</li>
<li>Tests ergonomiques (tri par cartes, paper prototyping, tests utilisateurs, etc.)</li>
<li>A/B testing</li>
</ul>
<p>Les échanges sur nos expériences ont été très instructifs. Nous étions tous d&#8217;accord pour insister sur la définition précise des cas d&#8217;utilisation qui facilite la gestion des tests pendant toute la durée du projet<strong> avec le client</strong>. D&#8217;où une phase de spécifications sérieuse qui conditionne la qualité du travail livré. Certains tests peuvent faire l&#8217;objet de validation contractuelle, comme les wireframes issus de tests ergonomiques qui servent ensuite de feuille de route aux intégrateurs et développeurs.</p>
<p>La difficulté avec les tests, c&#8217;est de savoir placer le curseur pour ne pas s&#8217;y noyer. <strong>Il n&#8217;est pas réaliste d&#8217;appliquer les tests de façon exhaustive</strong>. C&#8217;est un idéal en contradiction avec les budgets et les délais imposés en pratique. Il faut donc savoir réaliser les bons tests, au bon endroit et au bon moment. Par exemple, sur le calcul des prix d&#8217;un panier de site e-commerce, sur l&#8217;intégration des données lors d&#8217;un couplage entre deux systèmes, sur l&#8217;ergonomie d&#8217;une interface riche, etc.</p>
<h3>En résumé</h3>
<p>Une excellente soirée qui a largement dépassée les 5 heures prévues ! L&#8217;accueil de <a title="Linagora" href="http://www.linagora.com/">Linagora </a>et de l&#8217;<a title="Site officiel de l'AFUP" href="http://www.afup.org/">AFUP</a> était parfait, l&#8217;ambiance très sympathique et le niveau des échanges très pointu. Il y a des gens qui savent faire des choses avec PHP en Midi-Pyrénées ! Je pense qu&#8217;on remettra ça sous peu. Prochaine étape : le <a title="Bargento 3" href="http://www.bargento.fr/">Bargento, lundi 9 novembre à Paris</a>. Je serai présent avec l&#8217;équipe de l&#8217;AFUP pour organiser et animer cette journée qui s&#8217;annonce exceptionnelle. Et à la suite, le <a title="Forum PHP 2009" href="http://afup.org/pages/forumphp2009/">Forum PHP 2009</a>, tout aussi exceptionnel. Sur ce coup-là, je déclare forfait. Il faut bien travailler un peu !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2009/11/05/barcamp-php-toulousain-la-synthese/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle acquiert Sun</title>
		<link>http://blog.christophelebot.fr/2009/04/20/oracle-acquiert-sun/</link>
		<comments>http://blog.christophelebot.fr/2009/04/20/oracle-acquiert-sun/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 19:29:36 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Bases de données]]></category>
		<category><![CDATA[Développer]]></category>
		<category><![CDATA[Evénements]]></category>
		<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Savoir]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[Veille économique]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/?p=504</guid>
		<description><![CDATA[Le rachat de MySQL par Sun était déjà un événement pour moi l&#8217;an dernier. Alors je ne sais plus quels mots utiliser après le rachat de Sun par Oracle aujourd&#8217;hui&#8230; Sachant comment finissent les entreprises qui passent entre les mains d&#8217;Oracle, il reste une sacrée incertitude sur certains projets (Java et MySQL pour commencer).]]></description>
			<content:encoded><![CDATA[<div class="asset-frame"><img class="alignnone size-full wp-image-507" title="Oracle acquiert Sun" src="http://blog.christophelebot.fr/wp-content/uploads/2009/04/oracle-sun.png" alt="Oracle acquiert Sun" width="420" height="180" /></div>
<p>Le rachat de MySQL par Sun était déjà un <a title="Sun acquiert MySQL" href="http://blog.christophelebot.fr/2008/01/17/sun-acquiert-mysql/">événement pour moi</a> l&#8217;an dernier. Alors je ne sais plus quels mots utiliser après le <a title="Site officiel Sun" href="http://www.sun.com/">rachat de Sun par Oracle</a> aujourd&#8217;hui&#8230;</p>
<p>Sachant comment finissent les entreprises qui passent entre les mains d&#8217;Oracle, il reste une sacrée incertitude sur certains projets (Java et MySQL pour commencer).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2009/04/20/oracle-acquiert-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Panique sur les DNS !</title>
		<link>http://blog.christophelebot.fr/2008/07/10/panique-sur-les-dns/</link>
		<comments>http://blog.christophelebot.fr/2008/07/10/panique-sur-les-dns/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 21:52:02 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Noms de domaine]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/?p=142</guid>
		<description><![CDATA[Hier, c&#8217;était la panique chez tous les hébergeurs : une faille majeure a été découverte dans bind, l&#8217;application la plus utilisée dans le monde pour gérer les serveurs de noms de domaine. Une faille tellement critique qu&#8217;elle permet de prendre le contrôle des domaines et donc d&#8217;en rediriger le trafic vers des serveurs pas très [...]]]></description>
			<content:encoded><![CDATA[<p>Hier, c&#8217;était la panique chez tous les hébergeurs : <a title="Bulletin de sécurité de l'US-CERT" href="http://www.kb.cert.org/vuls/id/800113">une faille majeure a été découverte</a> dans <a title="Site officiel de bind" href="http://www.isc.org/index.pl?/sw/bind/index.php">bind</a>, l&#8217;application la plus utilisée dans le monde pour gérer les serveurs de noms de domaine. Une faille tellement critique qu&#8217;elle permet de prendre le contrôle des domaines et donc d&#8217;en rediriger le trafic vers des serveurs pas très honnêtes !</p>
<p>Même s&#8217;ils sont ultra-surveillés et protégés, les <a title="Root DNS servers" href="http://www.root-servers.org/">13 serveurs racines</a> qui gèrent tous les noms de domaine d&#8217;internet, étaient également potentiellement concernés.</p>
<p>Au fait, à quoi sert un serveur de noms de domaine ? Tout simplement à faire le lien entre un nom de domaine et une adresse IP (et inversement). Chaque machine branchée sur internet possède une adresse IP qui permet de la rendre unique sur le réseau mondial. Cependant, utiliser une adresse IP ne suffit pas. D&#8217;abord, elle n&#8217;est pas facile à retenir. Et puis, comment feraient les utilisateurs de Google qui exploitent 450.000 serveurs ? Il est plus simple de taper <a title="Site de Google" href="http://www.google.com/"><em>www.google.com</em></a> dans son navigateur que <a title="Site de Google" href="http://64.233.167.99/"><em>64.233.167.99</em></a>. Même si ça marche, évidemment (si, si, essayez !).</p>
<p>Le serveur de noms de domaine est donc un maillon indispensable d&#8217;internet. Quand il s&#8217;arrête, vos services internet aussi&#8230;</p>
<p>Bref, hier, tout le monde était sur le pont&#8230; et moi avec ! Si vous gérez un serveur DNS, n&#8217;attendez plus, <strong>mettez à jour votre installation, c&#8217;est vital !</strong> Le correctif est publié et disponible pour pratiquement tous les systèmes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2008/07/10/panique-sur-les-dns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La documentation de Magento 1.0 est en ligne</title>
		<link>http://blog.christophelebot.fr/2008/05/08/documentation-magento-en-ligne/</link>
		<comments>http://blog.christophelebot.fr/2008/05/08/documentation-magento-en-ligne/#comments</comments>
		<pubDate>Thu, 08 May 2008 19:37:12 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Documentation technique]]></category>
		<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Inspiration]]></category>
		<category><![CDATA[Recherche et innovation]]></category>
		<category><![CDATA[Se former]]></category>
		<category><![CDATA[Services en ligne]]></category>
		<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/?p=138</guid>
		<description><![CDATA[Depuis le lancement de la version 1.0 de Magento, tous ses utilisateurs attendaient (impatiemment !) sa documentation. Elle est désormais disponible sur le wiki officiel. C&#8217;est long, précis et bien écrit. Amplement suffisant pour comprendre le fonctionnement et les atouts extraordinaires de cette plate-forme e-commerce. Bonne lecture !]]></description>
			<content:encoded><![CDATA[<p>Depuis le <a title="Magento est là !" href="http://blog.christophelebot.fr/2008/03/31/magento-version-1/">lancement de la version 1.0 de Magento</a>, tous ses utilisateurs attendaient (impatiemment !) sa documentation. Elle est désormais <a title="Guide de l'utilisateur Magento" href="http://www.magentocommerce.com/wiki/welcome_to_the_magento_user_s_guide">disponible sur le wiki officiel</a>.</p>
<p>C&#8217;est long, précis et bien écrit. Amplement suffisant pour comprendre le fonctionnement et les atouts extraordinaires de cette plate-forme e-commerce.</p>
<p>Bonne lecture !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2008/05/08/documentation-magento-en-ligne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installer Drupal 6 sur un serveur mutualisé OVH</title>
		<link>http://blog.christophelebot.fr/2008/04/19/drupal-6-ovh/</link>
		<comments>http://blog.christophelebot.fr/2008/04/19/drupal-6-ovh/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 12:06:25 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/2008/04/19/drupal-6-ovh/</guid>
		<description><![CDATA[Les contraintes des serveurs mutualisés sont souvent agaçantes, mais rarement insurmontables. C&#8217;est le cas chez OVH quand on veut installer Drupal 6. Drupal ne s&#8217;installe pas si register_globals est activé, ce qui est le cas par défaut chez OVH (ce serait trop simple&#8230;). Mais il est permis de modifier le comportement du serveur, grâce à [...]]]></description>
			<content:encoded><![CDATA[<div class="asset-frame"><img src="http://blog.christophelebot.fr/wp-content/uploads/2008/04/drupal_ovh.png" alt="Drupal + OVH" /></div>
<p>Les contraintes des serveurs mutualisés sont souvent agaçantes, mais rarement insurmontables. C&#8217;est le cas chez <a href="http://www.ovh.com/">OVH</a> quand on veut installer <a href="http://www.drupal.org/">Drupal 6</a>.</p>
<p>Drupal ne s&#8217;installe pas si <code>register_globals</code> est activé, ce qui est le cas par défaut chez OVH (ce serait trop simple&#8230;). Mais il est permis de modifier le comportement du serveur, grâce à  quelques directives qu&#8217;il faut ajouter au début du fichier <code>.htaccess</code> inclus dans le package Drupal :</p>
<pre>SetEnv PHP_VER 5
SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1</pre>
<p>En gros, je passe en PHP5, je désactive <code>register_globals</code> et j&#8217;en profite pour obtenir les avantages de Zend Optimizer.</p>
<p>Il faut également décommenter la ligne <code>RewriteBase /</code> dans le même fichier pour que la réécriture des adresses par Apache fonctionne correctement :</p>
<pre># If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
<strong>RewriteBase /</strong>

# Rewrite URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]</pre>
<p>Et là, miracle, Drupal s&#8217;installe. Enfin, pas pour tout le monde : sur les anciens hébergements, MySQL est encore en version 4.0, incompatible avec Drupal. Pour s&#8217;en sortir, il faut <a title="Guide OVH de migration vers MySQL 5" href="http://guides.ovh.com/ConversionMysql5">migrer votre base de données vers un autre serveur SQL OVH</a>.</p>
<p>Attention, l&#8217;opération est très critique&#8230; et n&#8217;a pas fonctionné pour moi ! En fait, elle consiste à  détruire la base pour la reconstruire à  partir de vos sauvegardes. Donc premier point : vérifier que vos sauvegardes sont intègres. Ensuite, il faut suivre la procédure OVH.</p>
<p>Sauf que lorsque j&#8217;ai voulu reconstruire la base via le manager OVH, elle n&#8217;apparaissait plus dans la liste ! Résultat : plus de base de données ! C&#8217;est pratique&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2008/04/19/drupal-6-ovh/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Bug Labs crée les &#171;&#160;user generated devices&#160;&#187;</title>
		<link>http://blog.christophelebot.fr/2008/01/17/bug-labs-user-generated-device/</link>
		<comments>http://blog.christophelebot.fr/2008/01/17/bug-labs-user-generated-device/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 21:53:32 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Concevoir]]></category>
		<category><![CDATA[Design numérique]]></category>
		<category><![CDATA[Ergononie]]></category>
		<category><![CDATA[Evénements]]></category>
		<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Imaginer]]></category>
		<category><![CDATA[Recherche et innovation]]></category>
		<category><![CDATA[Savoir]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmation orientée objet]]></category>
		<category><![CDATA[Technologies mobiles]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/2008/01/17/bug-labs-user-generated-device/</guid>
		<description><![CDATA[BUG de Bugs Labs. Après l&#8217;ère du contenu généré par l&#8217;utilisateur (user generated content) et alors que nous commençons tout juste à avoir les outils pour créer facilement nos applications (user generated applications), Bug Labs commercialise des briques matérielles bien réelles pour créer ses propres appareils électroniques. Les user generated devices sont nés. La gamme [...]]]></description>
			<content:encoded><![CDATA[<div class="asset-frame"><a title="Gamme BUG de Bug Labs" href="http://buglabs.net/products"><img src="http://blog.christophelebot.fr/wp-content/uploads/2008/01/bug2.png" alt="BUG 2" /></a><br />
BUG de Bugs Labs.</div>
<p>Après l&#8217;ère du contenu généré par l&#8217;utilisateur (<em><strong>user generated content</strong></em>) et alors que nous commençons tout juste à avoir les <a title="User Generated Applications : utopie ou réalité ?" href="http://blog.christophelebot.fr/2007/04/02/user-generated-applications/">outils pour créer facilement nos applications</a> (<em><strong>user generated applications</strong></em>), <a title="Site web Bug Labs" href="http://buglabs.net/">Bug Labs</a> commercialise des briques matérielles bien réelles pour créer ses propres appareils électroniques. Les <em><strong>user generated devices</strong></em> sont nés.</p>
<p>La <a title="Gamme BUG de Bug Labs" href="http://buglabs.net/products">gamme BUG</a> se compose de BUGbase, la brique de base sur laquelle viennent se greffer les BUGmodules, tels qu&#8217;un capteur GPS, une caméra vidéo, un écran tactile, un capteur de mouvement, des touches, etc.</p>
<div class="asset-frame"><img src="http://blog.christophelebot.fr/wp-content/uploads/2008/01/bugbase.png" alt="BUGbase" /><br />
La BUGbase&#8230;</div>
<div class="asset-frame"><img src="http://blog.christophelebot.fr/wp-content/uploads/2008/01/bug_modules.png" alt="BUGmodules" /><br />
&#8230; et ses BUGmodules.</div>
<p>Même si <a title="Gamme Mindstorm de Lego" href="http://mindstorms.lego.com/default.aspx">Lego le fait depuis longtemps</a>, n&#8217;allez pas croire que BUG est un simple jouet ! Vous avez un potentiel créatif sans limite, servi par une excellente utilisation de la programmation orientée objet, l&#8217;objet ayant dans ce cas une réalité matérielle peu fréquente. Pour développer les fonctions de son appareil, le &laquo;&nbsp;créateur-concepteur-utilisateur&nbsp;&raquo; dispose d&#8217;un environnement de développement (BUG SDK, fonctionnant sous <a title="Site officiel Eclipse" href="http://www.eclipse.org/">Eclipse</a>) qui repose sur des technologies éprouvées (<a title="Site officiel Java - Sun Microsystems" href="http://java.com/">Java</a> + <a title="Site officiel OSGi" href="http://www.osgi.org/osgi_technology/">framework OSGi</a>).</p>
<div class="asset-frame"><img src="http://blog.christophelebot.fr/wp-content/uploads/2008/01/bugsdk.png" alt="BUG SDK" /><br />
Le BUG SDK en action.</div>
<p>C&#8217;est donc tout naturellement que Bug Labs vient de remporter un <a title="Résultats CES award 2008" href="http://ces.cnet.com/best-of-ces/">CES award 2008</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2008/01/17/bug-labs-user-generated-device/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Cryptage MD5 réversible ? Indirectement, oui !</title>
		<link>http://blog.christophelebot.fr/2007/11/27/md5-reversible/</link>
		<comments>http://blog.christophelebot.fr/2007/11/27/md5-reversible/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 21:44:21 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Bonnes pratiques]]></category>
		<category><![CDATA[Concevoir]]></category>
		<category><![CDATA[Développer]]></category>
		<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Génie logiciel]]></category>
		<category><![CDATA[Qualité]]></category>
		<category><![CDATA[Sécurité]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/2007/11/27/md5-reversible/</guid>
		<description><![CDATA[Le cryptage de mots de passe par MD5 est sans doute la mesure de sécurité la plus utilisée par les développeurs. Son intérêt&#160;: crypter une chaîne de caractères, sans avoir la possibilité mathématique de faire l&#8217;opération inverse. Enfin presque&#8230; Depuis 2004, on sait que MD5 n&#8217;est plus très sûr. Cependant, casser cet algorithme n&#8217;est pas [...]]]></description>
			<content:encoded><![CDATA[<p>Le cryptage de mots de passe par MD5 est sans doute la mesure de sécurité la plus utilisée par les développeurs. Son intérêt&nbsp;: crypter une chaîne de caractères, sans avoir la possibilité mathématique de faire l&#8217;opération inverse. Enfin presque&#8230;</p>
<p>Depuis 2004, on sait que <a href="http://fr.wikipedia.org/wiki/Md5" title="MD5 sur Wikipedia">MD5 n&#8217;est plus très sûr</a>. Cependant, casser cet algorithme n&#8217;est pas à la portée de tout le monde. Aucun risque pour vos bases de données utilisateurs&nbsp;? C&#8217;est sans compter sur les bases de hash MD5. Leur but&nbsp;: stocker des chaînes de caractères et leur hash. Comme les utilisateurs entrent souvent des mots communs ou connus, il est très simple d&#8217;interroger ces bases pour obtenir la liste des chaînes de caractères compatibles avec un hash MD5. <a href="http://gdataonline.com/" title="Site web GData">GData</a> en est un exemple particulièrement efficace et complet.</p>
<p>Vous voulez connaître le mot de passe caché derrière le hash MD5 <code>fe01ce2a7fbac8fafaed7c982a04e229</code>&nbsp;? Le voici en 1/10<sup>e</sup> de seconde&nbsp;: <code>demo</code>. Et celui-ci, assez fréquent dans les bases mal paramétrées&nbsp;: <code>21232f297a57a5a743894a0e4a801fc3</code>. C&#8217;est <code>admin</code>&nbsp;!</p>
<p>Il est temps de changer de méthode de cryptage&#8230;</p>
<p>Source : <a href="http://www.nexen.net/actualites/securite/17821-md5_nest_pas_suffisant.php" title="Article MD5 n'est pas suffisant - Nexen">Nexen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2007/11/27/md5-reversible/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>La barre des 4000 spams a été franchie !</title>
		<link>http://blog.christophelebot.fr/2007/10/05/4000-spams-askimet/</link>
		<comments>http://blog.christophelebot.fr/2007/10/05/4000-spams-askimet/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 11:33:51 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/2007/10/05/4000-spams-askimet/</guid>
		<description><![CDATA[4002. C&#8217;est, à cet instant, le nombre de spams que l&#8217;extension Askimet a éliminé de mon blog depuis que je l&#8217;ai installée (6 mois environ). Je trouve déjà le chiffre très élevé par rapport au trafic visiteurs (3000 visiteurs / mois). Ce qui m&#8217;étonne, c&#8217;est le taux de croissance de ce fléau, pire que celui [...]]]></description>
			<content:encoded><![CDATA[<p><strong>4002</strong>. C&#8217;est, à cet instant, le nombre de spams que l&#8217;extension <a href="http://akismet.com/" title="Site officiel Askimet">Askimet</a> a éliminé de mon blog depuis que je l&#8217;ai installée (6 mois environ). Je trouve déjà le chiffre très élevé par rapport au trafic visiteurs (3000 visiteurs / mois). Ce qui m&#8217;étonne, c&#8217;est le taux de croissance de ce fléau, pire que celui <a href="http://akismet.com/stats/" title="Statistiques globales Askimet">mesuré globalement par Askimet</a>, pourtant alarmant. J&#8217;ai atteint les 2000 en août et les 3000 il y a 2 semaines. A ce rythme, j&#8217;en serai à 10000 avant Noël&nbsp;!</p>
<p>Pas très réjouissant comme cadeau de fin d&#8217;année&#8230; L&#8217;essentiel est qu&#8217;Askimet ne croûle pas sous la charge&nbsp;! Mais, connaissant les critiques récurrentes sur la vulnérabilité de WordPress face aux spams, sauvé comme par miracle par l&#8217;extension Askimet&#8230; du même éditeur, c&#8217;est peut-être là qu&#8217;est le défi que souhaite relever quelques spammers.</p>
<p><strong>Qu&#8217;ils aillent jouer ailleurs&nbsp;!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2007/10/05/4000-spams-askimet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Piloter et sécuriser ses bases de données avec MySQL Proxy</title>
		<link>http://blog.christophelebot.fr/2007/08/15/mysql-proxy/</link>
		<comments>http://blog.christophelebot.fr/2007/08/15/mysql-proxy/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 10:06:46 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
				<category><![CDATA[Bases de données]]></category>
		<category><![CDATA[Développer]]></category>
		<category><![CDATA[Exploiter]]></category>
		<category><![CDATA[Outils du développeur]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Serveurs]]></category>
		<category><![CDATA[Services en ligne]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.christophelebot.fr/2007/08/15/mysql-proxy/</guid>
		<description><![CDATA[MySQL Proxy, proposé par MySQL AB, est le genre d&#8217;outils dont le rôle semble si évident qu&#8217;on se demande pourquoi il n&#8217;existait pas avant. Comme tout proxy, il récupère les requêtes destinées à la base de données, effectue des traitements et adresse une requête modifiée au serveur MySQL. Bien entendu, l&#8217;opération inverse est aussi gérée&#160;: [...]]]></description>
			<content:encoded><![CDATA[<div class="asset-frame">
<a href="http://forge.mysql.com/wiki/MySQL_Proxy" title="Site web MySQL Proxy"><img src='http://blog.christophelebot.fr/wp-content/uploads/2007/08/mysql-proxy.jpg' alt='MySQL Proxy' /></a>
</div>
<p><a href="http://forge.mysql.com/wiki/MySQL_Proxy" title="Site web MySQL Proxy">MySQL Proxy</a>, proposé par <a href="http://www.mysql.com/" title="Site web MySQL">MySQL AB</a>, est le genre d&#8217;outils dont le rôle semble si évident qu&#8217;on se demande pourquoi il n&#8217;existait pas avant. Comme tout proxy, il récupère les requêtes destinées à la base de données, effectue des traitements et adresse une requête modifiée au serveur MySQL. Bien entendu, l&#8217;opération inverse est aussi gérée&nbsp;: MySQL Proxy sait récupérer un résultat de requête et le transformer avant de l&#8217;adresser au client initial.</p>
<h3>Fonctionnalités</h3>
<p>Après cette petite présentation, on peut se demander pourquoi on aurait besoin d&#8217;un proxy, puisque les services applicatifs (s&#8217;ils sont correctement architecturés et codés&#8230;) devraient envoyer une requête optimisée au serveur MySQL. Une petite liste des fonctionnalités finit par convaincre de son intérêt&nbsp;:</p>
<ul>
<li>Analyse des requêtes</li>
<li>Filtrage et modification des requêtes et des résultats</li>
<li>Injection de requêtes</li>
<li>Load balancing</li>
<li>Exécution de scripts (basés sur le <a href="http://www.lua.org/" title="Site web Lua">langage LUA</a>)</li>
</ul>
<h3>Cas d&#8217;utilisation</h3>
<p>Dans la pratique, on peut imaginer les situations suivantes&nbsp;:</p>
<ul>
<li>Corriger les erreurs de syntaxe communes.</li>
<li>Garantir le fonctionnement d&#8217;anciennes applications utilisant des requêtes non supportées.</li>
<li>Supprimer du résultat un mot de passe demandé dans la requête.</li>
<li>Récupérer et fusionner avec le résultat des données externes à la base de données (fichiers, flux XML, RPC&#8230;)</li>
<li>Router les requêtes vers un autre serveur MySQL ou vers une autre base de données du même serveur.</li>
<li>Empiler un lot de requêtes et les contrôler avant de mettre à jour les tables.</li>
<li>Dupliquer les requêtes en temps réel sur deux bases différentes.</li>
<li>Exécuter un script shell avant ou après des modifications dans la base de données.</li>
<li>Interdire certains motifs de requêtes.</li>
<li>Verrouiller des tables selon le contexte.</li>
<li>Contrer les injections SQL non désirées.</li>
</ul>
<p>On le voit, les possibilités sont infinies et ne dépendent que des contextes de production et de l&#8217;imagination des développeurs. MySQL Proxy permet surtout d&#8217;éviter d&#8217;intégrer la gestion de l&#8217;exploitation des bases de données MySQL dans les services applicatifs. Voilà enfin une saine séparation du travail du développeur métier et de l&#8217;administrateur MySQL&nbsp;!</p>
<h3>Mise en oeuvre</h3>
<p>MySQL Proxy est encore en version alpha et son fonctionnement n&#8217;est garanti que pour les versions MySQL 5.0.x et ultérieures.</p>
<p>Pour découvrir ses possibilités, O&#8217;Reilly Network propose un didacticiel clair et très fourni&nbsp;: <a href="http://www.oreillynet.com/pub/a/databases/2007/07/12/getting-started-with-mysql-proxy.html" title="Lire l'article">Getting Started with MySQL Proxy</a>.</p>
<p>Source : <a href="http://linuxfr.org/2007/08/09/22813.html" title="Article MySQL Proxy sur Linuxfr.org">Linuxfr.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.christophelebot.fr/2007/08/15/mysql-proxy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

