<?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>Johan Beneval - mikiiBlog &#187; Le web</title>
	<atom:link href="http://www.mikii.fr/johan/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikii.fr/johan</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Mon, 10 May 2010 05:01:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Critique de site internet avec CritiqueTheSite.com</title>
		<link>http://www.mikii.fr/johan/2010/05/04/faire-critiquer-son-site-avec-critiquethesite-com/</link>
		<comments>http://www.mikii.fr/johan/2010/05/04/faire-critiquer-son-site-avec-critiquethesite-com/#comments</comments>
		<pubDate>Tue, 04 May 2010 06:18:51 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Le web]]></category>
		<category><![CDATA[site internet]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=553</guid>
		<description><![CDATA[


Un nouveau moyen d&#8217;obtenir des critiques de son site internet : CritiqueTheSite.com !

Plus simple tu meurs ! Une zone de commentaire sur la gauche, une iframe du site à critiquer sur la droite. Pas d&#8217;inscription, juste un login via Google, Twitter, FriendFeed, ou autres&#8230; Et si toutefois vous vouliez illustrer votre critique, ou envoyer un [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-589" style="margin-top: 20px; margin-bottom: 20px; border: 1px solid black;" title="critiqueTheSite" src="http://www.mikii.fr/johan/wp-content/uploads/2010/05/critiqueTheSite2.jpg" alt="critiqueTheSite" width="582" height="282" /></p>
<p>Un nouveau moyen d&#8217;obtenir des critiques de son site internet : <a href="http://www.critiquethesite.com" target="_blank">CritiqueTheSite.com</a> !</p>
<p><span id="more-553"></span></p>
<p>Plus simple tu meurs ! Une zone de commentaire sur la gauche, une iframe du site à critiquer sur la droite. Pas d&#8217;inscription, juste un login via Google, Twitter, FriendFeed, ou autres&#8230; Et si toutefois vous vouliez illustrer votre critique, ou envoyer un screenshot d&#8217;un bug précis, le site offre la possibilité d&#8217;uploader des images.</p>
<p>Dans la même idée il existe aussi un site francais : <a title="critique de site internet" href="http://www.sitetest.fr" target="_blank">sittest.fr</a>, qui vous propose de faire <a title="test site internet" href="http://www.sittest.fr" target="_blank">tester votre site internet</a> par un panel d&#8217;utilisateurs.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-582" style="margin-top: 20px; margin-bottom: 20px; border: 1px solid black;" title="sittest" src="http://www.mikii.fr/johan/wp-content/uploads/2010/05/sittest.jpg" alt="sittest" width="582" height="282" /></p>
<p>A la différence de Critique The Site, sur Sittest ce ne sont pas des avis qui sont donnés de manière ouverte, mais plutôt des tests qui sont faits par des internautes en fonction de critères établis au préalable.</p>
<p>Un petit bémol pour Critique The Site, si toutefois une folie critiqueuse vous prenait, et que vous aviez envie de critiquer une floppée de site internet les uns derrières les autres, et bien ce n&#8217;est pas possible ! Car sur Critique The Site on ne peut critiquer un site que si on connait son URL; Il n&#8217;existe pas (pour l&#8217;instant en tout cas) de &laquo;&nbsp;liste de site à critiquer&nbsp;&raquo;.</p>
<p>Du coup la seule utilité qu&#8217;on peut trouver à ce &laquo;&nbsp;Critique The Site&nbsp;&raquo;, c&#8217;est d&#8217;envoyer ces utilisateurs tester son site internet, et leur demander de donner leur avis. C&#8217;est donc ce que je vais faire en vous demandant d&#8217;aller critiquer le site internet de notre <a title="agence web" href="http://www.mikii.fr" target="_blank">agence web</a> : mikii.fr.</p>
<p>Il vous suffit de vous rendre sur cette page : <a href="http://critiquethesite.com/mikii.fr">http://critiquethesite.com/mikii.fr</a></p>
<p>Bonne critique !</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F05%2F04%2Ffaire-critiquer-son-site-avec-critiquethesite-com%2F&amp;linkname=Critique%20de%20site%20internet%20avec%20CritiqueTheSite.com"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/05/04/faire-critiquer-son-site-avec-critiquethesite-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DogLickingScreen.com, un chien qui lèche votre écran !</title>
		<link>http://www.mikii.fr/johan/2010/04/24/un-chien-qui-leche-votre-ecran/</link>
		<comments>http://www.mikii.fr/johan/2010/04/24/un-chien-qui-leche-votre-ecran/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 14:44:45 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Le web]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=555</guid>
		<description><![CDATA[
Et un site de plus à ajouter à ma liste de site inutile, un ! J&#8217;ai nommé : DogLickingScreen.com !
Celui-ci est particulièrement inutile, puisque ce n&#8217;est rien d&#8217;autre qu&#8217;une vidéo en plein écran d&#8217;un chien qui lèche votre écran.
Votre écran n&#8217;en sort pas plus propre, mais bon.. il est mignon ce petit chien non ?
Au [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-557" style="margin-top: 20px; margin-bottom: 20px; border: 1px solid black;" title="doglickingscreen" src="http://www.mikii.fr/johan/wp-content/uploads/2010/04/doglickingscreen.jpg" alt="doglickingscreen" width="582" height="282" /></p>
<p>Et un site de plus à ajouter à ma liste de site inutile, un ! J&#8217;ai nommé : <a title="Dog Licking Screen" href="http://www.doglickingscreen.com" target="_blank">DogLickingScreen.com</a> !</p>
<p>Celui-ci est particulièrement inutile, puisque ce n&#8217;est rien d&#8217;autre qu&#8217;une vidéo en plein écran d&#8217;un chien qui lèche votre écran.</p>
<p>Votre écran n&#8217;en sort pas plus propre, mais bon.. il est mignon ce petit chien non ?</p>
<p>Au passage, je ne sais pas ce qu&#8217;ils ont mis sur le plexi que lèche le chien, mais ça à l&#8217;air de vraiment lui plaire..</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F04%2F24%2Fun-chien-qui-leche-votre-ecran%2F&amp;linkname=DogLickingScreen.com%2C%20un%20chien%20qui%20l%C3%A8che%20votre%20%C3%A9cran%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/04/24/un-chien-qui-leche-votre-ecran/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google et la censure Chinoise !</title>
		<link>http://www.mikii.fr/johan/2010/03/23/google-et-la-censure-chinoise/</link>
		<comments>http://www.mikii.fr/johan/2010/03/23/google-et-la-censure-chinoise/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 10:33:10 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[Le web]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=517</guid>
		<description><![CDATA[Tout le monde ne parle que de ça depuis quelques temps : Google, la Chine, la Chine, Google ! C&#8217;est même passé sur &#171;&#160;Télé Matin&#160;&#187; ce matin (c&#8217;est pour dire !). Alors que ce passe t-il  ?

Comme tout le monde le sait : Chine rime avec censure ! Depuis de nombreuses années Google a donc [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="aligncenter size-full wp-image-520" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" title="google" src="http://www.mikii.fr/johan/wp-content/uploads/2010/03/google.jpg" alt="google" width="582" height="282" />Tout le monde ne parle que de ça depuis quelques temps : Google, la Chine, la Chine, Google ! C&#8217;est même passé sur &laquo;&nbsp;Télé Matin&nbsp;&raquo; ce matin (c&#8217;est pour dire !). Alors que ce passe t-il  ?<br />
<span id="more-517"></span><br />
Comme tout le monde le sait : Chine rime avec censure ! Depuis de nombreuses années Google a donc auto-censuré son contenu afin de respecter les lois Chinoises qui visent à interdire certains contenus qui historiquement &laquo;&nbsp;dérangent&nbsp;&raquo; ou qui pourraient &laquo;&nbsp;inciter à la révolution&nbsp;&raquo;.</p>
<p>Il était par exemple impossible aux Chinois de voir des images comme &laquo;&nbsp;L&#8217;homme au tank&nbsp;&raquo; (Tiananmen), d&#8217;accéder aux réseaux sociaux (Facebook, Twitter, ..), et à de nombreux services de Google auxquels le reste de la Terre à le droit. Inadmissible au 21éme siècle, et surtout difficile à concevoir lorsque l&#8217;on parle &laquo;&nbsp;d&#8217;Internet&nbsp;&raquo;, mais bon passons..</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-522" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" title="tiananmen" src="http://www.mikii.fr/johan/wp-content/uploads/2010/03/tiananmen.jpg" alt="tiananmen" width="582" height="388" /></p>
<p style="text-align: left;">Depuis hier, Google a décidé d&#8217;arrêter la censure de son moteur de recherche en redirigeant automatiquement les utilisateurs de <a href="http://www.google.cn" target="_blank">Google.cn</a> vers<a href="http://www.google.com.hk" target="_blank"> Google.com.hk</a> (Hong-Kong), une version non-censuré !</p>
<p style="text-align: left;">Cette décision a été prise suite à de multiples attaques lancées depuis la Chine vers plusieurs comptes Gmail qui appartiendraient à des militants des droits de l&#8217;Homme, mais aussi à de grandes entreprises du secteur des médias et des technologies.</p>
<p style="text-align: left;">Google se retire donc du marché de la Chine continentale pour laisser place à son concurrent local : <a href="http://www.baidu.com" target="_blank">Baidu</a>, qui détenait déja plus de 60% des parts de marché !</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-535" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" title="baidu" src="http://www.mikii.fr/johan/wp-content/uploads/2010/03/baidu.jpg" alt="baidu" width="582" height="282" /></p>
<p style="text-align: left;">La censure continu donc à gagner du terrain dans un pays où existe déjà le système de surveillance et de censure le plus abouti et le plus performant au monde&#8230;</p>
<p style="text-align: left;">
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F03%2F23%2Fgoogle-et-la-censure-chinoise%2F&amp;linkname=Google%20et%20la%20censure%20Chinoise%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/03/23/google-et-la-censure-chinoise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cinq minutes de dessin avec la palette d&#8217;Excel !</title>
		<link>http://www.mikii.fr/johan/2010/03/15/a-mort-photoshop-vive-ms-excel/</link>
		<comments>http://www.mikii.fr/johan/2010/03/15/a-mort-photoshop-vive-ms-excel/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 07:37:30 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Le web]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=494</guid>
		<description><![CDATA[Après avoir vu cette vidéo d&#8217;ExcelArt, c&#8217;est décidé chez mikii (création de site internet à Orléans) on abandonne Adobe Photoshop, pour laisser place à Microsoft Excel :)
Je ne suis pas particulièrement fan de ce genre de dessin, mais il faut bien reconnaitre que faire ça avec la palette d&#8217;outils Office mérite tout de même un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full  wp-image-503" style="border: 1px solid black; margin-top: 20px;  margin-bottom: 20px;" title="excelart" src="http://www.mikii.fr/johan/wp-content/uploads/2010/03/excelart.jpg" alt="excelart" width="582" height="282" />Après avoir vu cette vidéo d&#8217;<strong>ExcelArt</strong>, c&#8217;est décidé chez <a title="création de site internet a Orléans" href="http://www.mikii.fr/creation-site-internet.php" target="_blank">mikii (création de site internet à Orléans)</a> on abandonne Adobe Photoshop, pour laisser place à Microsoft Excel :)</p>
<p>Je ne suis pas particulièrement fan de ce genre de dessin, mais il faut bien reconnaitre que faire ça avec la palette d&#8217;outils Office mérite tout de même un grand respect !</p>
<p><span id="more-494"></span></p>
<p style="text-align: center;">
<p style="text-align: center; margin-top:20px;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/4YG_WWZYqUs&amp;hl=fr_FR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/4YG_WWZYqUs&amp;hl=fr_FR&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F03%2F15%2Fa-mort-photoshop-vive-ms-excel%2F&amp;linkname=Cinq%20minutes%20de%20dessin%20avec%20la%20palette%20d%26%238217%3BExcel%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/03/15/a-mort-photoshop-vive-ms-excel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tostitos, une pub qui sort de l&#8217;ordinaire !</title>
		<link>http://www.mikii.fr/johan/2010/03/01/tostitos-une-pub-qui-sort-de-lordinaire/</link>
		<comments>http://www.mikii.fr/johan/2010/03/01/tostitos-une-pub-qui-sort-de-lordinaire/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 06:57:15 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Le web]]></category>
		<category><![CDATA[publicité]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=483</guid>
		<description><![CDATA[
Rien de plus traditionnel qu&#8217;une vidéo publicitaire diffusé sur le web.. Seulement là !!! Ce n&#8217;est pas une publicité comme les autres. Pour vous vendre ses Tostitos, la marque Frito Lay a choisi de vous immerger&#8230;

.. Je ne vous en dit pas plus, allez voir par vous même vous allez comprendre :)
vu sur AccessoWeb
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-484" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" title="tostitos" src="http://www.mikii.fr/johan/wp-content/uploads/2010/03/tostitos.jpg" alt="tostitos" width="582" height="282" /></p>
<p>Rien de plus traditionnel qu&#8217;une <strong>vidéo publicitaire</strong> diffusé sur le web.. Seulement là !!! Ce n&#8217;est pas une publicité comme les autres. Pour vous vendre ses Tostitos, la marque Frito Lay a choisi de <strong>vous immerger</strong>&#8230;</p>
<p><span id="more-483"></span></p>
<p>.. Je ne vous en dit pas plus, <a href="http://www.vimeo.com/9194146" target="_blank">allez voir par vous même vous allez comprendre :)</a></p>
<h6 style="text-align: right;">vu sur <a href="http://www.accessoweb.com/" target="_blank">AccessoWeb</a></h6>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F03%2F01%2Ftostitos-une-pub-qui-sort-de-lordinaire%2F&amp;linkname=Tostitos%2C%20une%20pub%20qui%20sort%20de%20l%26%238217%3Bordinaire%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/03/01/tostitos-une-pub-qui-sort-de-lordinaire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Haïti filmé en 360° par Immersive Media</title>
		<link>http://www.mikii.fr/johan/2010/01/26/haiti-filme-en-360%c2%b0-par-immersive-media/</link>
		<comments>http://www.mikii.fr/johan/2010/01/26/haiti-filme-en-360%c2%b0-par-immersive-media/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 10:32:01 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[Le web]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=449</guid>
		<description><![CDATA[
Je viens de tomber sur ces vidéos d&#8217;Haïti filmées avec des caméras 360°. Impossible pour moi de ne pas les partager, tant elles sont intéressantes !

Ces vidéos ont été prises après le séisme qui a eut lieu à Haïti, à l&#8217;aide de caméra qui captent les images à 360°. Du coup, pendant la vidéo vous [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-451" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" title="haiti" src="http://www.mikii.fr/johan/wp-content/uploads/2010/01/haiti.jpg" alt="haiti" width="582" height="227" /></p>
<p>Je viens de tomber sur ces vidéos d&#8217;Haïti filmées avec des caméras 360°. Impossible pour moi de ne pas les partager, tant elles sont intéressantes !<br />
<span id="more-449"></span></p>
<p>Ces vidéos ont été prises après le séisme qui a eut lieu à Haïti, à l&#8217;aide de caméra qui captent les images à 360°. Du coup, pendant la vidéo vous pouvez tourner à droite ou à gauche, ou encore zoomer à l&#8217;aide de votre souris.</p>
<p>On avait déjà vu un procédé quasi similaire avec <a href="http://maps.google.fr/maps?f=q&amp;source=s_q&amp;hl=fr&amp;geocode=&amp;q=orleans+rue+de+la+r%C3%A9publique&amp;sll=48.859774,2.292151&amp;sspn=0.010658,0.033023&amp;ie=UTF8&amp;hq=&amp;hnear=Rue+de+la+R%C3%A9publique,+45000+Orl%C3%A9ans,+Loiret,+Centre&amp;ll=47.906263,1.906015&amp;spn=0.000305,0.002064&amp;t=h&amp;z=20&amp;layer=c&amp;cbll=47.906263,1.906015&amp;panoid=J625nMicqS8Kq6hpOXhJYg&amp;cbp=11,260.75,,0,-4.65" target="_blank">Google Street View</a>, mais j&#8217;avais jamais vu ca pour une &laquo;&nbsp;vidéo&nbsp;&raquo;. Le résultat n&#8217;est pas non plus époustouflant d&#8217;un point de vue qualité, mais ca reste toute de même une belle prouesse !</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="610" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="externalInterface=0&amp;video=http://www.immersivemedia.com/haiti/Video2/Video2.flv" /><param name="src" value="http://www.immersivemedia.com/haiti/Video2/IMPlayer.swf?config=http://www.immersivemedia.com/haiti/Video2/config.xml" /><param name="flashvars" value="externalInterface=0&amp;video=http://www.immersivemedia.com/haiti/Video2/Video2.flv" /><embed type="application/x-shockwave-flash" width="610" height="385" src="http://www.immersivemedia.com/haiti/Video2/IMPlayer.swf?config=http://www.immersivemedia.com/haiti/Video2/config.xml" flashvars="externalInterface=0&amp;video=http://www.immersivemedia.com/haiti/Video2/Video2.flv"></embed></object></p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="610" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="externalInterface=0&amp;video=http://www.immersivemedia.com/haiti/Video1/Video1.flv" /><param name="src" value="http://www.immersivemedia.com/haiti/Video1/IMPlayer.swf?config=http://www.immersivemedia.com/haiti/Video1/config.xml" /><param name="flashvars" value="externalInterface=0&amp;video=http://www.immersivemedia.com/haiti/Video1/Video1.flv" /><embed type="application/x-shockwave-flash" width="610" height="385" src="http://www.immersivemedia.com/haiti/Video1/IMPlayer.swf?config=http://www.immersivemedia.com/haiti/Video1/config.xml" flashvars="externalInterface=0&amp;video=http://www.immersivemedia.com/haiti/Video1/Video1.flv"></embed></object></p>
<p style="text-align: center;">
<p>Vous trouverez beaucoup d&#8217;autres vidéos (pas seulement d&#8217;Haïti) sur le site d&#8217;<a href="http://www.immersivemedia.com/" target="_blank">Immersive Media</a>, qui est à l&#8217;origine de cette technologie, et de ces images.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F01%2F26%2Fhaiti-filme-en-360%25c2%25b0-par-immersive-media%2F&amp;linkname=Ha%C3%AFti%20film%C3%A9%20en%20360%C2%B0%20par%20Immersive%20Media"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/01/26/haiti-filme-en-360%c2%b0-par-immersive-media/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3outube : télécharger simplement les vidéos Youtube !</title>
		<link>http://www.mikii.fr/johan/2010/01/20/telecharger-simplement-les-videos-youtube/</link>
		<comments>http://www.mikii.fr/johan/2010/01/20/telecharger-simplement-les-videos-youtube/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 06:50:29 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Le web]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=413</guid>
		<description><![CDATA[
Un nouveau web-service est née, il a été baptisé 3outube ! Bon le site n&#8217;est pas très beau, mais le service est bien au rendez-vous !
Il vous permet de télécharger les vidéos Youtube de manière très simple, et sous deux formats différents : MP4 et FLV.

La véritable nouveauté ne réside pas tellement dans le fait [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-438" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" title="youtube2" src="http://www.mikii.fr/johan/wp-content/uploads/2010/01/youtube2.jpg" alt="youtube2" width="582" height="288" /></p>
<p>Un nouveau web-service est née, il a été baptisé 3outube ! Bon le site n&#8217;est pas très beau, mais le service est bien au rendez-vous !</p>
<p>Il vous permet de <strong>télécharger les vidéos Youtube de manière très simple</strong>, et sous deux formats différents : MP4 et FLV.</p>
<p><span id="more-413"></span></p>
<p>La véritable nouveauté ne réside pas tellement dans le fait de pouvoir &laquo;&nbsp;télécharger&nbsp;&raquo; les vidéos, mais plutôt dans la simplicité d&#8217;utilisation. En effet, comme précisé sur le site internet de 3outube, le principe est vraiment simple, puisqu&#8217;il suffit de <span style="text-decoration: underline;"><strong>ces 3 étapes</strong></span> :</p>
<p style="padding-left: 30px;"><strong>1.</strong> Comme à votre habitude vous allez sur Youtube pour regarder vos vidéos. Une vidéo vous plait, vous souhaitez la télécharger !</p>
<p style="padding-left: 30px;"><strong>2.</strong> Dans la barre d&#8217;adresse de votre navigateur, vous remplacez le <strong>y</strong> de youtube par un <strong>3</strong>.</p>
<p style="padding-left: 60px;"><span style="text-decoration: underline;">Par exemple</span> :<a href="http://www.youtube.com/watch?v=jQ_ExkfcBao" target="_blank"><br />
http://www.<strong>y</strong>outube.com/watch?v=jQ_ExkfcBao</a><br />
donnera<a href="http://www.3outube.com/watch?v=jQ_ExkfcBao" target="_blank"><br />
http://www.<strong>3</strong>outube.com/watch?v=jQ_ExkfcBao</a></p>
<p style="padding-left: 30px;"><strong>3.</strong> Vous arrivez sur le site de 3outube, vous choisissez votre format pour la vidéo (MP4 ou flv), et c&#8217;est terminé !</p>
<p>Plus besoin d&#8217;aller sur des sites de copier-coller l&#8217;URL, de convertir, ou je ne sais quoi encore. Il ne suffit maintenant que de changer <strong>UNE </strong>lettre dans l&#8217;URL&#8230; Merci <a title="telecharger video youtube" href="http://www.3outube.com" target="_blank">3outube.com</a> !</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2010%2F01%2F20%2Ftelecharger-simplement-les-videos-youtube%2F&amp;linkname=3outube%20%3A%20t%C3%A9l%C3%A9charger%20simplement%20les%20vid%C3%A9os%20Youtube%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2010/01/20/telecharger-simplement-les-videos-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faire de la musique avec sa Jeep : &#171;&#160;Techno Jeep&#160;&#187;</title>
		<link>http://www.mikii.fr/johan/2009/12/21/la-jeep-musicale/</link>
		<comments>http://www.mikii.fr/johan/2009/12/21/la-jeep-musicale/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 08:23:17 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[Le web]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=397</guid>
		<description><![CDATA[Une petite vidéo originale pour bien commencer la semaine : &#171;&#160;Techno Jeep&#160;&#187; !
C&#8217;est tout simplement une vidéo de 2:20, où tous les sons ont été réalisé avec la Jeep elle même. Un pur plaisir :)



]]></description>
			<content:encoded><![CDATA[<p>Une petite vidéo originale pour bien commencer la semaine : &laquo;&nbsp;Techno Jeep&nbsp;&raquo; !</p>
<p>C&#8217;est tout simplement une vidéo de 2:20, où tous les sons ont été réalisé avec la Jeep elle même. Un pur plaisir :)</p>
<p style="text-align: center;">
<p><br/></p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/LFybwg4wadI&amp;hl=fr_FR&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/LFybwg4wadI&amp;hl=fr_FR&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2009%2F12%2F21%2Fla-jeep-musicale%2F&amp;linkname=Faire%20de%20la%20musique%20avec%20sa%20Jeep%20%3A%20%26laquo%3B%26nbsp%3BTechno%20Jeep%26nbsp%3B%26raquo%3B"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2009/12/21/la-jeep-musicale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Analytics : un nouveau tracking code !</title>
		<link>http://www.mikii.fr/johan/2009/12/09/google-analytics-un-nouveau-tracking-code/</link>
		<comments>http://www.mikii.fr/johan/2009/12/09/google-analytics-un-nouveau-tracking-code/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 06:17:42 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Actualité]]></category>
		<category><![CDATA[Le web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[referencement]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=316</guid>
		<description><![CDATA[
Google à annoncé récemment un nouveau code de tracking pour Google Analytics.
Plus performant, le nouveau code de tracking permet un chargement asynchrone, ce qui améliorera nettement le temps de chargement de nos pages web (sujet à la mode en ce moment..) !
Les avantages de ce nouveau code sont nombreux :
- Le code ne sera plus [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid black; margin-top: 20px; margin-bottom: 20px;" src="http://fr.readwriteweb.com/wp-content/uploads/2009/08/google-lego-logo.jpg" alt="" width="355" height="253" /></p>
<p><strong>Google </strong>à annoncé récemment un nouveau code de tracking pour <strong>Google Analytics</strong>.</p>
<p>Plus performant, le nouveau code de tracking permet un chargement <strong>asynchrone</strong>, ce qui améliorera nettement le temps de chargement de nos pages web (sujet à la mode en ce moment..) !</p>
<p><span id="more-316"></span><span style="text-decoration: underline;"><strong>Les avantages de ce nouveau code sont nombreux</strong></span> :</p>
<p>- Le code ne sera plus placé en fin de page juste avant la balise &lt;/body&gt;, mais plutôt dans le header (entre &lt;head&gt; et &lt;/head&gt;). Du coup plus d&#8217;erreur possible : même les visiteurs qui quitte la page avant la fin du chargement sont comptabilisé.</p>
<p>- Le code étant asynchrone, par définition il ne sera plus bloquant. Donc plus besoin d&#8217;attendre la fin de l&#8217;exécution du script de Google pour considérer sa page comme &laquo;&nbsp;chargé&nbsp;&raquo;.</p>
<p>- Le code a été amélioré il devrait être plus rapide a exécuter pour les navigateurs.</p>
<p>Pour plus d&#8217;informations, vous pouvez consulter <a title="Annonce officiel Google" href="http://analytics.blogspot.com/2009/12/google-analytics-launches-asynchronous.html" target="_blank">l&#8217;annonce officiel de Google</a>, et pour intégrer ce nouveau code voila <a href="http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html" target="_blank">le guide</a>.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2009%2F12%2F09%2Fgoogle-analytics-un-nouveau-tracking-code%2F&amp;linkname=Google%20Analytics%20%3A%20un%20nouveau%20tracking%20code%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2009/12/09/google-analytics-un-nouveau-tracking-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL : Top 20 des meilleures pratiques !</title>
		<link>http://www.mikii.fr/johan/2009/12/06/mysql-top-20-des-meilleurs-pratiques/</link>
		<comments>http://www.mikii.fr/johan/2009/12/06/mysql-top-20-des-meilleurs-pratiques/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 17:13:29 +0000</pubDate>
		<dc:creator>Johan Beneval</dc:creator>
				<category><![CDATA[Autres]]></category>
		<category><![CDATA[Le web]]></category>
		<category><![CDATA[developpement]]></category>

		<guid isPermaLink="false">http://www.mikii.fr/johan/?p=252</guid>
		<description><![CDATA[
A l&#8217;heure actuelle, les opérations sur les bases de données ont tendance à être le principal problème des applications web. Il n&#8217;est pas seulement du ressort des DBA (DataBase Administrator) que d&#8217;assurer le bon fonctionnement des bases de données; Les programmeurs ont aussi leur part de responsabilité ! Structurer correctement les tables, écrire des requêtes [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-592" title="mysql" src="http://www.mikii.fr/johan/wp-content/uploads/2009/12/mysql.gif" alt="mysql" width="425" height="283" /></p>
<p>A l&#8217;heure actuelle, les opérations sur les bases de données ont tendance à être le principal problème des applications web. Il n&#8217;est pas seulement du ressort des DBA (DataBase Administrator) que d&#8217;assurer le bon fonctionnement des bases de données; Les programmeurs ont aussi leur part de responsabilité ! Structurer correctement les tables, écrire des requêtes optimisées, écrire du code propre, font parti du travail des programmeurs ! <strong>Voici quelques techniques d&#8217;optimisations MySQL pour les programmeurs !</strong><br />
<span id="more-252"></span></p>
<h3>1. Optimisez vos requêtes pour le cache</h3>
<p>Il faut savoir que sur énormément de serveur MySQL la mise en cache de requête est activé ! Très bien gérer par le moteur de base de données, c&#8217;est l&#8217;une des méthodes les plus efficaces pour améliorer les performances. Lorsqu&#8217;une même requête est exécutée plusieurs fois, le résultat est récupéré dans le cache, ce qui est bien plus rapide !</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// La mise en cache ne fonctionne pas !</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT username FROM user WHERE insc_date &amp;gt;= CURDATE()&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Le cache fonctionne !</span>
<span style="color: #000088;">$today</span> <span style="color: #339933;">=</span> <span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Y-m-d&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT username FROM user WHERE insc_date &amp;gt;= '<span style="color: #006699; font-weight: bold;">$today</span>'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>A la première ligne, c&#8217;est l&#8217;utilisation de la fonction CURDATE() qui empêche la mise en cache de cette requête. Ceci s&#8217;applique à toutes les fonctions non-déterministes comme NOW() ou RAND(). En effet le résultat de ces fonctions pouvant changer, MySQL décide donc de ne pas mettre la requête en cache. Dans ce cas, il aurait suffit d&#8217;ajouter une simple ligne de code en PHP pour éviter que cela ce passe !</p>
<h3>2. Utilisez EXPLAIN sur vos SELECT</h3>
<p>L&#8217;utilisation du mot clé EXPLAIN peut vous renseigner sur ce que fait MySQL pour exécuter votre requête. Cela peut vous aider à localiser et à identifier des problèmes concernant vos requêtes ou vos tables.</p>
<p>Prenez une requête complexe (de préférence avec une jointure), et ajouter devant le mot clé &laquo;&nbsp;EXPLAIN&nbsp;&raquo;. Vous pouvez utiliser phpMyAdmin pour cela. Il vous affichera les résultats dans un tableau détaillé, vous indiquant la clé utilisée, le nombre de lignes traitées, et d&#8217;autres données qui vous aideront à optimiser vos requêtes.</p>
<h3>3. LIMIT 1 pour obtenir un résultat à ligne unique</h3>
<p>Parfois, lorsque vous interrogez votre base de données, vous savez déjà que le résultat de votre requête ne comportera qu&#8217;une seule ligne. Vous cherchez peut être un enregistrement unique, ou alors vous vérifiez l&#8217;existence d&#8217;une valeur qui satisfera votre clause WHERE.</p>
<p>Dans de tels cas, ajouter LIMIT 1 à votre requête peut réellement augmenter les performances. De cette façon le moteur de base de données peut arrêter de scanner les enregistrements dès l&#8217;instant où il en aura trouver un qui satisfera votre requête au lieu de traverser toute la table !</p>
<h3>4. Indexez les champs recherchés</h3>
<p>Les indexes ne sont pas réservées aux clés primaires et clés uniques. Si dans votre table il y a des colonnes qui vous servent dans vos recherches (ex : moteur de recherche, filtre, tri..), vous devriez quasiment tout le temps les indexer.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Executé en 0.25 sec</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT count(*) FROM users WHERE last_name LIKE 'a%'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// On indexe la colonne last_name</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ALTER TABLE users ADD INDEX ('last_name')&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Executé en 0.06 sec</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT count(*) FROM users WHERE last_name LIKE 'a%'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Comme vous pouvez le voir cette règle s&#8217;applique aussi sur une recherche de chaîne partielle. Lors d&#8217;une recherche  depuis le début d&#8217;une chaîne, MySQL est capable d&#8217;utiliser l&#8217;index sur cette colonne.</p>
<p>Néanmoins, cette règle n&#8217;est pas valable pour tous les types de recherche. Par exemple si vous cherchez un mot entier dans une chaîne, vous ne trouverez pas d&#8217;avantage particulier à utiliser une indexation dite &laquo;&nbsp;normal&nbsp;&raquo;. Utilisez plutôt la recherche en texte intégral, ou construisez votre propre solution d&#8217;indexation.</p>
<h3>5. Indexez et utilisez les mêmes types pour vos jointures</h3>
<p>Si votre application utilise de nombreuses requêtes avec jointures , vous devez vous assurer que les colonnes que vous tentez de joindre sont indexées dans les tables. Cela va influer sur la façon dont MySQL  optimisera l&#8217;opération de jointure interne.</p>
<p>Bien entendu les colonnes jointes doivent être du même type. Si vous tentez de joindre une colonne de type DECIMAL avec une colonne de type INT, MySQL ne sera même pas en mesure d&#8217;utiliser au moins un des deux indexes. Pour les colonnes de type chaînes, même les codages des caractères doivent être identiques.</p>
<h3>6. N&#8217;utilisez pas ORDER BY RAND();</h3>
<p>C&#8217;est l&#8217;une de ces astuces qui aux premiers abords paraissent plutôt cool, du coup les programmeurs tombent assez facilement dans ce piège. Vous ne réalisez pas quel d&#8217;atrocité vous mettez en place lorsque vous commencez à utiliser ce genre d&#8217;astuces dans vos requêtes !</p>
<p>Si vous avez réellement besoin d&#8217;ordonner vos résultats aléatoirement, il existe des moyens beaucoup plus efficaces pour le faire. Certes ces moyens prennent quelques lignes de code supplémentaires, mais elles vous permettent d&#8217;éviter d&#8217;utiliser ce genre d&#8217;astuces horribles qui fonctionnent de moins en moins bien à mesure que votre volume de donnée augmente.</p>
<p>Le problème avec cette astuce est que MySQL devra exécuter la fonction RAND() (qui utilise de la puissance de calcul) pour chaque ligne de votre table, avant de les trier, et de pouvoir vous retourner votre résultat.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Ce qu'il ne faut pas faire :</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT username FROM user ORDER BY RAND() LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
<span style="color: #666666; font-style: italic;">// Ce qu'il faut faire :</span>
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT count(*) FROM user&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rand</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mt_rand</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
<span style="color: #000088;">$req</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT username FROM user LIMIT <span style="color: #006699; font-weight: bold;">$rand</span>, 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Le but de cette manipulation est de choisir un nombre aléatoirement entre 0 et le nombre de résultat de votre requête, et d&#8217;utiliser ensuite ce nombre comme offset dans votre clause LIMIT.</p>
<h3>7. Evitez SELECT *</h3>
<p>Plus les données seront lues à partir des tables, plus les requêtes seront longues. Cela augmente le temps nécessaire aux opérations sur les disques. De plus lorsque le serveur web est distinct du serveur de base de données, vous enverrez plus de données que nécessaire sur le réseau, vous augmenterez donc les délais.</p>
<p>C&#8217;est une bonne habitude à prendre que de spécifier les colonnes dont vous avez besoin lorsque vous écrivez votre SELECT.</p>
<h3>8. Utilisez toujours une colonne id</h3>
<p>Dans toutes les tables il devra y avoir une colonne id, qui sera la clé primaire, en auto_increment, le plus souvent un INT, et de préférence UNSIGNED puisqu&#8217;un id ne peut être négatif.</p>
<p>Même si vous avez une table utilisateur qui a un champ &laquo;&nbsp;nom&nbsp;&raquo; unique, n&#8217;en faite pas votre clé primaire ! Les champs VARCHAR comme clé primaire sont beaucoup plus lents. De plus, vous aurez une meilleure structure dans votre code en faisant référence à un id plutôt qu&#8217;a un nom..</p>
<p>Il y a aussi les opérations faites par MySQL en interne, qui utilisent la clé primaire de vos tables.</p>
<p>Bien évidemment il y a des exceptions à cette règle. Par exemple les tables d&#8217;associations ne nécessitent pas un id, puisque normalement elle servent à relier deux tables en utilisant les ids de ces tables.</p>
<h3>9. Utilisez ENUM au lieu de simples VARCHAR</h3>
<p>Les colonnes de type ENUM sont très rapides, et très compactes puisqu&#8217;en interne ils sont stockés en tant que TINYINT.</p>
<p>Si vous avez un champ qui ne contient que quelques valeurs différentes, utilisez ENUM au lieu de VARCHAR. Par exemple si vous avez une colonne &laquo;&nbsp;etat&nbsp;&raquo; qui contient des valeurs comme : &laquo;&nbsp;actif&nbsp;&raquo;, &laquo;&nbsp;inactif&nbsp;&raquo;, &laquo;&nbsp;en cours&nbsp;&raquo;, etc.., il sera plus efficace d&#8217;utiliser un ENUM.</p>
<h3>10. Obtenez des suggestions avec PROCEDURE ANALYSE();</h3>
<p>PROCEDURE ANALYSE() permet à MySQL d&#8217;analyser la structures de vos tables, le type des colonnes, ainsi que les données présentes à ce moment là. Suite à cette analyse MySQL vous retournera quelques suggestions afin d&#8217;améliorer votre base de données. Cela n&#8217;est utile que si vous avez des données réelles dans votre table.</p>
<p>Par exemple, si vous avez créé un champ de type INT pour votre clé primaire, et que votre table ne contient que très peu de ligne, MySQL vous conseillera de passer ce INT en MEDIUM INT. Ou si vous utilisez un champ VARCHAR pour une colonne qui a toujours les mêmes résultats (ex : un etat), MySQL vous conseillera l&#8217;utilisation d&#8217;une ENUM.</p>
<p>Vous pouvez utiliser cette procédure via phpMyAdmin en cliquant sur le lien &laquo;&nbsp;Propose table structure&nbsp;&raquo;.</p>
<p>Gardez bien à l&#8217;esprit que ce ne sont que des suggestions, et que si par exemple votre table est amené à prendre du volume, toutes les suggestions ne sont peut être pas bonnes à prendre.</p>
<h3>11. Utilisez NOT NULL si possible</h3>
<p>Sauf si vous avez une raison très particulière d&#8217;utiliser une valeur NULL, vous devriez toujours positionner vos colonnes comme NOT NULL.</p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()">Tout d&#8217;abord, demandez-vous s&#8217;il ya une différence entre avoir une valeur de chaîne vide par rapport à une valeur NULL (pour les champs INT : 0 vs NULL).</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span style="direction: ltr; text-align: left;"> </span>S&#8217;il n&#8217;y a aucune raison d&#8217;avoir les deux, vous n&#8217;avez pas besoin d&#8217;un champ de valeur NULL.</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()">Saviez-vous que Oracle considère NULL et chaîne vide de la même manière ?</span></p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()">La documentation MySQL dit à ce sujet : </span></p>
<blockquote><p><span onmouseover="_tipon(this)" onmouseout="_tipoff()">&laquo;&nbsp;</span>NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.&nbsp;&raquo;</p></blockquote>
<h3>12. Utilisez les commandes préparées</h3>
<p>Il y a de multiples avantages à utiliser les commandes préparées, mais les deux principales restent : la performance, et la sécurité !</p>
<p>Par défaut, les commandes préparées vont filtrer les variables qui leur sont envoyées, ce qui est parfait pour protéger votre application des attaques par injections SQL. Vous pouvez bien sûr filtrer vos variables manuellement, mais ces méthodes sont sujets à l&#8217;erreur humaine, et l&#8217;oubli du programmeur !</p>
<p>Du coté des performances, les avantages sont nombreux. Notons tout de même que ces avantages sont d&#8217;autant plus visible lorsqu&#8217;il s&#8217;agit d&#8217;une requête qui est utilisé plusieurs fois dans votre application.</p>
<p>Les dernières version de MySQL transmettent les requêtes préparées sous une forme binaire native, qui sont bien plus efficaces et peuvent également contribuer à réduire les délais réseau.</p>
<p>Il fut un temps où les programmeurs éviter les requêtes préparées exprès, car elles empêchaient la mise en cache. Ce temps est passé ! Depuis MySQL 5.1 la mise en cache des requêtes préparées est supportée.</p>
<p>Pour utiliser les commandes préparées en PHP il vous faudra l&#8217;extension mysqli ou alors utiliser une couche d&#8217;abstraction de base de données comme PDO.</p>
<h3>13. Utilisez les requêtes non-bufferisées</h3>
<p>Normalement lorsque vous effectuez une requête à partir d&#8217;un script PHP, il va attendre que l&#8217;exécution de cette requête soit terminée pour pouvoir continuer. Vous pouvez changer cela en utilisant les &laquo;&nbsp;Unbuffered queries&nbsp;&raquo;.</p>
<p>La fonction correspondante est la suivante : mysql_unbufferd_query();</p>
<p>Cependant ce type de requête à quand même des limites. Après avoir utilisé cette fonction, vous devez lire toutes les lignes ou alors utiliser la fonction mysql_free_result(); avant de pouvoir exécuter une nouvelle requête. Par ailleurs, si vous utiliser une requête non bufferisée, vous ne pouvez utiliser les fonctions mysql_num_rows(); et mysql_data_seek();</p>
<h3>14. Stockez les IPs en UNSIGNED INT</h3>
<p>De nombreux programmeurs stockent des IPs en base en utilisant des VARCHAR(15) sans savoir qu&#8217;ils pourraient le faire avec un INT. Avec un INT vous descendez à seulement 4 bytes d&#8217;espace et bénéficiez d&#8217;une taille fixe.</p>
<p>Dans votre requête vous pouvez utiliser la fonction INET_ATON() pour convertir une IP en INT, et la fonction INET_NTOA() pour faire l&#8217;opération inverse.<br />
Il existe aussi des fonctions similaires en PHP, tels que : ip2long() et long2ip().</p>
<h3>15. Les tables de tailles fixes sont plus rapides</h3>
<p>Lorsque toutes les colonnes d&#8217;une tables sont de tailles fixes, c&#8217;est la table elle même qui est considéré comme statique.<br />
Parmi les types de taille non fixe vous trouverez : VARCHAR, BLOB, TEXT. Si vous incluez ne serait-ce qu&#8217;un seul de ces types, votre table ne sera plus considérée comme statique, et sera donc traitée différemment par MySQL.</p>
<p>Les tables de tailles fixes sont également plus faciles à mettre en cache, et plus faciles à récupérer en cas de crash. La contrepartie est qu&#8217;elles peuvent parfois prendre plus de place que nécessaire. Il faut donc parfois savoir s&#8217;arrêter et ne pas &laquo;&nbsp;trop&nbsp;&raquo; vouloir optimiser au risque de voir se produire l&#8217;effet inverse.</p>
<h3>16. Le partitionnement vertical</h3>
<p>Le partitionnement vertical c&#8217;est l&#8217;acte de diviser la structure de votre table de manière vertical, toujours pour des raisons d&#8217;optimisation.</p>
<p>Exemple : Vous avez une table d&#8217;utilisateur qui contient des adresses de domicile qui ne sont pas lues souvent. Vous pouvez donc choisir de scinder votre table et de stocker les informations liées à l&#8217;adresse de manière séparée. De cette manière votre principale &laquo;&nbsp;table utilisateur&nbsp;&raquo; diminuera en taille, ce qui augmentera les performances.</p>
<p>Vous devez par contre faire attention à ce que vous n&#8217;ayez pas constamment besoin de faire une jointure entre vos tables scindés, ce qui serait une fois de plus de la contre optimisation.</p>
<h3>17. Scindez les grosses requêtes DELETE ou INSERT</h3>
<p>Si vous avez besoin d&#8217;effectuer une grosse requête DELETE ou INSERT sur un site web en production, vous devez faire attention à ne pas perturber votre trafic web. Lorsque une grosse requête comme celle-ci est exécuté elle peut parfois mener à un LOCK de vos tables, ce qui pour un site en production n&#8217;est pas possible.</p>
<p>Si vous avez une sorte de script d&#8217;entretien qui a besoin de supprimer un grand nombre de lignes, il suffit d&#8217;utiliser la clause LIMIT pour supprimer par lot plus petit et éviter une congestion.</p>
<p>Exemple :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DELETE FROM logs WHERE log_date &amp;lt;= '2009-10-01' LIMIT 10000&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">mysql_affected_rows</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Tout a été effacé</span>
        <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;">// Il est possible de faire une petite pause</span>
    <span style="color: #990000;">usleep</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">50000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>18. Les plus petites colonnes sont les plus rapides</h3>
<p>Stocker les choses de la façon la plus compacte possible est généralement utile en termes de performances. Cela permet en effet de réduire le volume de transfert sur le disque.</p>
<p>Exemple : Si une table n&#8217;a que très peu de ligne, il n&#8217;y a aucune raison d&#8217;utiliser un INT en clé primaire. Il serait mieux d&#8217;utiliser un MEDIUMINT, un SMALLINT, ou encore un TINYINT dans certains cas.<br />
De la même manière si vous n&#8217;avez pas besoin de stocker l&#8217;heure, alors il n&#8217;y a aucun raison d&#8217;utiliser un DATETIME. Il vaudrait mieux privilégier l&#8217;utilisation d&#8217;un simple DATE.</p>
<p>Cependant, faites toujours attention à garder une certaine marge de sécurité.</p>
<h3>19. Utilisez le bon moteur de stockage</h3>
<p>Les deux principaux moteurs de stockage de MySQL sont MyISAM et InnoDB. Chacun ont leurs avantages et leurs inconvénients.</p>
<p>MyISAM est bon pour la lecture des données, mais il ne se place pas très bien quand il y a beaucoup d&#8217;écritures à effectuer. De plus lorsque vous mettez à jour un champ d&#8217;une ligne existante, toute la table est verrouillé, et aucun autre processus ne peut lire la table jusqu&#8217;à ce que cette requête ne soit terminée. Néanmoins MyISAM est très rapide à calculer les requêtes de type : SELECT COUNT (*).</p>
<p>InnoDB a tendance à être un moteur de stockage plus complexe et peut être plus lent que MyISAM pour la plupart des petites applications. Mais il supporte le verrouillage &laquo;&nbsp;row-based&nbsp;&raquo;, c&#8217;est à dire le verrouillage de la ligne concerné et non de toute la table comme MyISAM. Il supporte également quelques fonctionnalités avancées telles que les transactions.</p>
<h3>20. Soyez prudents avec les connexions persistantes</h3>
<p>Les connexions persistantes ont pour but de réduire la surcharge liée à la création des connexions au serveur MySQL. Lorsqu&#8217;une connexion persistante est créé, elle restera ouverte même après la fin de l&#8217;exécution du script.</p>
<p>La fonction PHP qui permet d&#8217;utiliser les connexions persistantes est : mysql_pconnect();</p>
<p>Tout dépend des cas mais la plus part du temps l&#8217;utilisation des connexions persistantes n&#8217;est pas utile. Lorsque vous utilisez les connexions persistantes Apache démarre énormément de processus parallèles, et crée de nombreux processus enfant. C&#8217;est la principale raison pour laquelle les connexions persistantes ne fonctionnent pas très bien dans cette environnement. Avant d&#8217;utiliser les connexions persistantes il est donc bon de consulter son Administrateur Système.</p>
<p>Et bien voila, normalement maintenant vous êtes prêts à développer des applications web sans tomber dans les pièges d&#8217;une base mal structurée ou des requêtes non-optimisées !</p>
<p>Bon développement !</p>
<p>Source : <a title="NetTuts+" href="http://net.tutsplus.com/" target="_blank">NetTuts+</a></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.mikii.fr%2Fjohan%2F2009%2F12%2F06%2Fmysql-top-20-des-meilleurs-pratiques%2F&amp;linkname=MySQL%20%3A%20Top%2020%20des%20meilleures%20pratiques%20%21"><img src="http://www.mikii.fr/johan/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.mikii.fr/johan/2009/12/06/mysql-top-20-des-meilleurs-pratiques/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
