<?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>Renoir Boulanger</title>
	<atom:link href="http://renoirboulanger.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://renoirboulanger.com</link>
	<description>Un geek social et Linuxien de nature</description>
	<lastBuildDate>Tue, 17 Aug 2010 22:57:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installer une Machine Virtuelle Linux roulant dans VMware Fusion sous Mac OS X</title>
		<link>http://renoirboulanger.com/blog/2010/07/installer-une-machine-virtuelle-linux-roulant-dans-vmware-fusion-sous-mac-os-x/</link>
		<comments>http://renoirboulanger.com/blog/2010/07/installer-une-machine-virtuelle-linux-roulant-dans-vmware-fusion-sous-mac-os-x/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 14:34:31 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Tranche de vie]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2298</guid>
		<description><![CDATA[
A force de travailler sur plusieurs environnement de projets il est venu le réflexe d&#8217;utiliser des Machines Virtuelles (VM) pour contenir mes espaces de travail. Avec ce type d&#8217;installation je peut partager avec mes collègues au bureau la même installation mais qui roule sur chacun de nos postes de travail.
J&#8217;en ai parlé plusieurs fois (dont [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://renoirboulanger.com/wp-content/uploads/2010/07/3_resultat.png" rel="lightbox[2298]"><img class="size-medium wp-image-2306 alignright" style="border: none !important;" title="Bureau Mac OS X avec applications provenant de la Machine Virtuelle roulant a l'intérieur de la Machine Virtuelle" src="http://renoirboulanger.com/wp-content/uploads/2010/07/3_resultat-300x242.png" border="0" alt="" width="240" height="194" /></a></p>
<p>A force de travailler sur plusieurs environnement de projets il est venu le réflexe d&#8217;utiliser des Machines Virtuelles (VM) pour contenir mes espaces de travail. Avec ce type d&#8217;installation je peut partager avec mes collègues au bureau la même installation mais qui roule sur chacun de nos postes de travail.</p>
<p>J&#8217;en ai parlé plusieurs fois (dont <a href="http://renoirboulanger.com/blog/2009/09/une-vm-linux-qui-sert-au-developpement-php-5-3-avec-eclipse-partie-i/">ici</a>, <a href="http://renoirboulanger.com/blog/2009/09/une-vm-linux-qui-sert-au-developpement-php-5-3-avec-eclipse-partie-ii/">ici</a>. <a href="http://renoirboulanger.com/blog/2007/11/mon-espace-de-travail/">Je le fait depuis 2007 même</a>). L&#8217;idée de cet article est de vous montrer comment j&#8217;ai fait pour mon poste de travail Mac OS X.</p>
<p>Les particularités de cette procédure est que:</p>
<ol>
<li>J&#8217;utilise la fonction de partage de dossier de VMware Fusion sur Mac OS X<br />
(Qui me permet d&#8217;avoir UN dossier dans le Mac et que la VM agit comme si c&#8217;était un dossier local)</li>
<li>J&#8217;ai essayé Netbeans pour développer en PHP (<a href="http://netbeans.org/downloads/start.html?platform=linux&amp;lang=en&amp;option=php">lien de téléchargement</a>)<br />
(au lieu d&#8217;Eclipse&#8230; mais en fait, les programmes utilisés dans la VM n&#8217;ont pas d&#8217;importance)</li>
<li>J&#8217;utilise VMware Fusion (sur la même machine de travail) plutôt que VMware Server ou d&#8217;utiliser un serveur distant de VM (<a href="http://www.vmware.com/products/server/">VMware server</a> et/ou <a href="http://www.vmware.com/products/esxi/">VMware ESXi</a>).</li>
<li>(Pas illustré comment faire) Les dossiers que j&#8217;ai mis un label mauve (voir captures d&#8217;écran) sont des dossiers qui ne sont pas synchronisés dans le Timecapsule. Car ça sert a rien d&#8217;archiver des dossiers de travail qui sont déjà sauvegardés dans un gestionnaire de source (Subversion, eh oui, encore!)</li>
</ol>
<p>Les avantages de cette installation:</p>
<ol>
<li>Plus besoin de faire SCP, ni NFS, et sans <a href="http://fuse.sourceforge.net/">FUSE</a> (un <em>mount</em> (<a href="http://en.wikipedia.org/wiki/Mount_(Unix)">Wikipedia</a>) mais, en SSH) pour partager entre les deux machines les dossiers</li>
<li>On peut l&#8217;installer sur un ordinateur portable et ne pas avoir a attendre d&#8217;être sur le réseau pour travailler</li>
<li>On peut sauver de l&#8217;espace disque en réduisant la taille des disques de la VM. Car l&#8217;espace de stockage des fichiers de travail sera dans les dossiers locaux du Mac.</li>
</ol>
<p><span id="more-2298"></span></p>
<h3><a name="VMLinuxsousVMwareFusionsousMacOSX-Objectifs"></a>Objectifs</h3>
<ul>
<li>Pouvoir <strong>utiliser l&#8217;espace de stockage du Mac natif</strong> pour les fichiers de travail plutot que d&#8217;utiliser l&#8217;espace disque de la machine virtuelle.</li>
</ul>
<h3><a name="VMLinuxsousVMwareFusionsousMacOSX-Cequ%27ilfaut"></a>Ce qu&#8217;il faut</h3>
<ul>
<li>Avoir installé une VM sous Linux quelconque</li>
<li>La VM doit être locale au Mac</li>
<li>Une VM avec 10Go d&#8217;espace et moins est suffisant</li>
<li>Réseau en mode «<strong>Bridged</strong>»</li>
<li>Faire après une procédure similaire a NFS et d&#8217;avoir le meme uid et guid que le serveur</li>
</ul>
<h3><a name="VMLinuxsousVMwareFusionsousMacOSX-Proc%C3%A9dure"></a>Procédure</h3>
<h4><a name="VMLinuxsousVMwareFusionsousMacOSX-Changerle%7B%7Buid%7D%7Det%7B%7Bguid%7D%7Ddel%27utilisateurcourrant"></a>Changer le <tt>uid</tt> et <tt>guid</tt> de l&#8217;utilisateur courrant</h4>
<ol>
<li>Vérifier quel uid et guid, sous Mac, dans <strong>Applications</strong> &gt; <strong>Terminal</strong>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">id</span>
<span style="color: #007800;">uid</span>=<span style="color: #000000;">20001</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #007800;">gid</span>=<span style="color: #000000;">20</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>staff<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">groups</span></span>=<span style="color: #000000;">20</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>staff<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">404</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>com.apple.sharepoint.group.3<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">204</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>_developer<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">100</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>_lpoperator<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">98</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>_lpadmin<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">81</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>_appserveradm<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">80</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>admin<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">79</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>_appserverusr<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">61</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>localaccounts<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">12</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>everyone<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">401</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>com.apple.access_screensharing<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">403</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>com.apple.sharepoint.group.2<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">402</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>com.apple.sharepoint.group.1<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">406</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>com.apple.sharepoint.group.5<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p><strong>Note</strong> sur le Mac, c&#8217;est <strong>20001</strong></li>
<li>Se connecter a la VM locale, et y créer un compte backup pour effectuer les opérations

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> 192.168.0.100
<span style="color: #c20cb9; font-weight: bold;">sudo</span> -
adduser patateuser
...
usermod <span style="color: #660033;">-a</span> <span style="color: #660033;">-G</span> admin patateuser</pre></td></tr></table></div>

</li>
</ol>
<ol>
<li>s&#8217;y déconnecter et se reconnecter

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">exit</span>
<span style="color: #c20cb9; font-weight: bold;">ssh</span> patateuser<span style="color: #000000; font-weight: bold;">@</span>192.168.0.100</pre></td></tr></table></div>

</li>
<li>Savoir son user id sur la machine Linux

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">id</span>
<span style="color: #007800;">uid</span>=<span style="color: #000000;">1000</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #007800;">gid</span>=<span style="color: #000000;">1000</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">groups</span></span>=<span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>adm<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">20</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>dialout<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">24</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>cdrom<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">46</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>plugdev<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">105</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>lpadmin<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">119</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>admin<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">122</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>sambashare<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">1000</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p><strong>Note</strong> sur la VM, c&#8217;est <strong>1000</strong></li>
<li>Changer les permissions du dossier user <strong>vigr</strong> et <strong>vipw</strong><br />
<em>Commandes a faire en root, puis en <tt>vim</tt> pour modifier le uid d&#8217;un usager</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-s</span>
vipw
~
:<span style="color: #000000; font-weight: bold;">%</span>s<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">1000</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">20001</span><span style="color: #000000; font-weight: bold;">/</span>g
:wq</pre></td></tr></table></div>

</li>
<li>Changer les permissions du <tt>/home/PATATEUSER</tt>
<div style="background: #ececec; margin: 5px 0px; padding: 18px 8px 8px 50px; border: 1px solid #333;">Avant de faire le <tt>chown</tt> il faut s&#8217;assurer en regardant a l&#8217;intérieur du homedir cible à la VM si il n&#8217;y a pas un alias vers autre chose. Question de ne pas changer les permissions de d&#8217;autres fichiers dans l&#8217;arborescence et affecter ailleurs que dans le système</div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>home
<span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> renoirb:renoirb renoirb<span style="color: #000000; font-weight: bold;">/</span></pre></td></tr></table></div>

<p><strong>Attendre &#8230;</strong></li>
<li>Tenter de se reconnecter <strong>DANS UN AUTRE SESSION SSH</strong>
<div style="background: #ececec; margin: 5px 0px; padding: 18px 8px 8px 50px; border: 1px solid #333;">
<h4 style="color: #777; margin-bottom: 10px;">Pourquoi?</h4>
<p>Parceque si quelque chose de malencontreux se serait produit durant le chown, le login ne pourrait pas marcher</p>
</div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> renoirb<span style="color: #000000; font-weight: bold;">@</span>192.168.0.100</pre></td></tr></table></div>

</li>
<li>Croiser les doigts</li>
<li>Tester si le ID est changé

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">id</span>
<span style="color: #007800;">uid</span>=<span style="color: #000000;">20001</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #007800;">gid</span>=<span style="color: #000000;">20001</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">groups</span></span>=<span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>adm<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">20</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>dialout<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">24</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>cdrom<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">46</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>plugdev<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">105</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>lpadmin<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">119</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>admin<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">122</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>sambashare<span style="color: #7a0874; font-weight: bold;">&#41;</span>,<span style="color: #000000;">20001</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>renoirb<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p><strong>Good!</strong></li>
</ol>
<h4><a name="VMLinuxsousVMwareFusionsousMacOSX-PartagedossiersentreleMacetlaVMLinux"></a>Partage dossiers entre le Mac et la VM Linux</h4>
<p>Idéal pour utiliser l&#8217;espace disque Mac pour y stocker des documents de travail utilisés a l&#8217;intérieur de la VM.</p>
<div style="background: #ececec; margin: 5px 0px; padding: 18px 8px 8px 50px; border: 1px solid #333;">
<h4 style="color: #777; margin-bottom: 10px;">Avantage de faire ça</h4>
<p>Ce qui est bien de tout ça c&#8217;est que l&#8217;espace disque de la VM peut rester petit et contenir les outils de travail (Apache, PHP, Eclipse/netbeans) et avoir le gros des dossiers de travail (workspace) dans la machine native.</p>
</div>
<ol>
<li>Lancer <strong>VMWare Fusion</strong>
<p><div id="attachment_2304" class="wp-caption alignnone" style="width: 226px"><a href="http://renoirboulanger.com/wp-content/uploads/2010/07/0_settings.png" rel="lightbox[2298]"><img class="size-medium wp-image-2304 " title="Panneau de paramètres VMware Fusion pour Mac OS X" src="http://renoirboulanger.com/wp-content/uploads/2010/07/0_settings-300x261.png" alt="" width="216" height="188" /></a><p class="wp-caption-text">Panneau de paramètres VMware Fusion pour Mac OS X</p></div></li>
<li>Aller dans <strong>Settings</strong> &gt; <strong>Sharing</strong> (Partage)
<p><div id="attachment_2305" class="wp-caption alignnone" style="width: 310px"><a href="http://renoirboulanger.com/wp-content/uploads/2010/07/1_sharing.png" rel="lightbox[2298]"><img class="size-medium wp-image-2305" title="Panneau paramètres VMware Fusion pour Mac OS X écran Partage" src="http://renoirboulanger.com/wp-content/uploads/2010/07/1_sharing-300x228.png" alt="" width="300" height="228" /></a><p class="wp-caption-text">Panneau paramètres VMware Fusion pour Mac OS X écran Partage</p></div></li>
<li>Ajouter le partage désiré (le petit +)
<div style="background: #ececec; margin: 5px 0px; padding: 18px 8px 8px 50px; border: 1px solid #333;">
<h4 style="color: #777; margin-bottom: 10px;">Recommendation</h4>
<p>Pour éviter tout risque de souçis de chemins entre les deux machines. Ne pas utiliser un dossier avec des espaces.</p>
</div>
</li>
<li>Aller dans la VM
<div style="background: #ececec; margin: 5px 0px; padding: 18px 8px 8px 50px; border: 1px solid #333;">
<h4 style="color: #777; margin-bottom: 10px;">Tunnel X11</h4>
<p>L&#8217;idée du Tunnel X est pour permettre de rouler une application locale (a la VM) a l&#8217;extérieur (donc afficher sur le Mac).</p>
</div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-X</span> renoirb<span style="color: #000000; font-weight: bold;">@</span>192.168.0.100</pre></td></tr></table></div>

</li>
<li>Lier le dossier partagé du Mac a un dossier local a la VM (workspace)&#8230; <strong>Sur la VM</strong>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-s</span>
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>hgfs<span style="color: #000000; font-weight: bold;">/</span>workspace<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>renoirb<span style="color: #000000; font-weight: bold;">/</span>workspace</pre></td></tr></table></div>

</li>
<li>Exécuter le programme distant

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">netbeans <span style="color: #000000; font-weight: bold;">&amp;</span>amp;</pre></td></tr></table></div>

<p><strong>Note</strong> Le «amperstand» (&amp; ou perluet) sert a préciser que le programme roulera en arrière-plan.</li>
<li>Configurer l&#8217;outil de développement pour qu&#8217;il puise ses fichiers de travail DANS <tt>/home/renoirb/workspace</tt>
<div style="background: #ececec; margin: 5px 0px; padding: 18px 8px 8px 50px; border: 1px solid #333;">
<h4 style="color: #777; margin-bottom: 10px;">Note</h4>
<p>Netbeans n&#8217;utilise pas le meme type de chemin et c&#8217;est différent d&#8217;un outil de développement a l&#8217;autre.</p>
</div>
</li>
<li>Résultat<br />
<a href="http://renoirboulanger.com/wp-content/uploads/2010/07/3_resultat.png" rel="lightbox[2298]"><img class="alignnone size-medium wp-image-2306" style="border: none !important;" title="Bureau Mac OS X avec applications provenant de la Machine Virtuelle roulant a l'intérieur de la Machine Virtuelle" src="http://renoirboulanger.com/wp-content/uploads/2010/07/3_resultat-300x242.png" alt="" width="300" height="242" /></a></li>
</ol>
<h3><a name="VMLinuxsousVMwareFusionsousMacOSX-R%C3%A9f%C3%A9rences"></a>Références</h3>
<ul>
<li><a href="http://laurentbois.com/2008/04/26/install-ubuntu-804-using-vmware-fusion-on-mac-os-x/">http://laurentbois.com/2008/04/26/install-ubuntu-804-using-vmware-fusion-on-mac-os-x/</a></li>
<li><a href="http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/">http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/07/installer-une-machine-virtuelle-linux-roulant-dans-vmware-fusion-sous-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug trouvé et corrigé sur un thème WordPress rtTheme</title>
		<link>http://renoirboulanger.com/blog/2010/07/bug-trouve-et-corrige-sur-un-theme-wordpress-rttheme/</link>
		<comments>http://renoirboulanger.com/blog/2010/07/bug-trouve-et-corrige-sur-un-theme-wordpress-rttheme/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 20:21:19 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Debug]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2217</guid>
		<description><![CDATA[Depuis que nous avons fondé EVOCATIO Solutions technologiques nous avons pris une position d&#8217;experts dans le domaine des acrobaties techniques. C&#8217;est ce qu&#8217;on faisait dans nos journées de tout les jours avant.
Ce que j&#8217;avait pas pensé c&#8217;est que je trouverait de la demande pour des tâches pointues et qu&#8217;on devait  «faire marcher». L&#8217;une d&#8217;elles a [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis que nous avons fondé <a href="http://evo.cat.io/">EVOCATIO Solutions technologiques</a> nous avons pris une position d&#8217;experts dans le domaine des acrobaties techniques. C&#8217;est ce qu&#8217;on faisait dans nos journées de tout les jours <em>avant</em>.</p>
<p>Ce que j&#8217;avait pas pensé c&#8217;est que je trouverait de la demande pour des tâches pointues et qu&#8217;on devait  «faire marcher». L&#8217;une d&#8217;elles a été fait, justement, pour un ami que je respecte beaucoup: <a href="http://geoffroigaron.com/">Geoffroi Garon</a>.</p>
<p>Avec sa permission je publie ici comment j&#8217;ai réglé un petit bug Javascript. Rien d&#8217;extraordinaire mais quand même bête lorsqu&#8217;on s&#8217;attend a ce que de quoi fonctionne qu&#8217;on a acheté et qu&#8217;il ne fonctionne pas. <ins>Finalement, tout juste avant de publier ce billet, j&#8217;ai réalisé que, l&#8217;auteur (<a href="http://twitter.com/ftolgacan">@ftolgacan</a>) a réparé le code. Comme quoi j&#8217;ai pris trop de temps avant de le publier.</ins></p>
<p>Il s&#8217;agit d&#8217;un thème adapté qui a été acheté sur <a href="http://themeforest.net/">ThemeForest</a> pour un site fait en <a href="http://www.wordpress.org">WordPress</a>. Étant donné que le thème fourni n&#8217;a pas vraiment d&#8217;endroit ou proposer les correctifs j&#8217;ai décidé de publier sur mon blogue.</p>
<p>Je contribue en français mais ferai une courte explication de ma correction en anglais sur l&#8217;<a href="http://themeforest.net/item/rttheme-6-bussiness-theme-5-in-1-for-wordpress/83648">item précis sur le site officiel</a>.</p>
<div>Pour voir le démo du thème, allez dans la section &#8220;Preview&#8221; puis dans la section &#8220;products&#8221; du site qui est illustré.</div>
</p>
<p><span id="more-2217"></span></p>
<h3>Explication du problème</h3>
<p>Lorsqu&#8217;on achète un thème on s&#8217;attend a ce que tout fonctionne&#8230; même avec les choses qu&#8217;on peut configurer dans le paneau d&#8217;administration. D&#8217;un point de vue fonctionnel&#8230; ça fait du sens.</p>
<p>Dans le cas ici ce n&#8217;était PAS le cas.</p>
<p><img class="alignright size-medium wp-image-2268" title="Les «Tabs» illustrant un produit provenant d'une liste" src="http://renoirboulanger.com/wp-content/uploads/2010/07/mathetmots_tabs-300x141.png" alt="Les «Tabs» illustrant un produit provenant d'une liste" width="300" height="141" /> Le problème était le suivant. Une fois avoir modifié une liste d&#8217;items dans le catalogue utilisant le panneau de contrôle de WordPress. Un mini javascript permettant d&#8217;avoir une liste avec Tabs (a droite).</p>
<p>Mais les autres «tab» ne fonctionnaient pas et on ne comprenait pas pourquoi.</p>
<p>C&#8217;est là que j&#8217;ai intervenu.</p>
<h3>Explication de la problématique</h3>
<p>Le problème consistait a la génération des attributs id=&#8221;" une liste UL avec un thème et où le thème allait chercher ses valeurs du <em>id</em>. Ci-bas on voit comment Firebug voit le code généré.</p>
<p><center><div id="attachment_2267" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-2267 " title="Markup HTML débug avec Firebug" src="http://renoirboulanger.com/wp-content/uploads/2010/07/mathetmots_bug_markup.png" alt="Les deux listes avec les ID générés" width="480" height="211" /><p class="wp-caption-text">Les elements de la liste (LI) avec l&#39;attribut id (exemple: id=&quot;technical_details&quot;) est générée à partir d&#39;une variable qui utilise le input d&#39;un usager (dans le panneau de contrôle WordPress) qui n&#39;a aucune idée de l&#39;incidence possible de son entrée (espaces, accents, etc).</p></div></center></p>
<p>Cet exemple de code (ci-haut) est fonctionnel. Mais dans le cas du client, les <tt>&lt;div id="" /&gt;</tt>  de la liste <tt>&lt;div id="content" /&gt;</tt> avaient des noms qui provenaient du <strong>nom</strong> de l&#8217;item (je ne peut illustrer où ils prenaient la valeur&#8230; je n&#8217;ai plus accès pour faire une capture d&#8217;écran).</p>
<h3>La solution au problème</h3>
<p>Au lieu d&#8217;utiliser un input de l&#8217;usager comme id d&#8217;une liste. Utiliser le fait qu&#8217;on sait que le <tt>&lt;div <strong>id="tabs"</strong> /&gt;</tt> a deux <em>enfants</em>&#8230; <tt>&lt;div <strong>class="product_tabs" /&gt;</strong></tt> (avec une liste ordonnée&#8230; pour les boutons qui seront transformés en «tab») et <tt>&lt;div <strong>id="content" /&gt;</strong></tt> (qui a une liste dans le même ordre que &#8220;product_tabs&#8221;). J&#8217;ai donc utilisé ce concept.</p>
<h3>Le code</h3>
<p>Comme c&#8217;est étrange. J&#8217;ai écrit ce billet que j&#8217;ai commencé en Mai lorsque j&#8217;ai eu a faire le petit travail. Depuis le temps, le développeur a réglé le problème. Ce que vous voyez de commenté (précédé par <tt>//</tt> et en vert) dans &#8220;Le code original&#8221; est ce qui était utilisé en <a href="http://jquery.com">jQuery</a>.</p>
<p>J&#8217;ai donc trop pris de temps avant de publier ma solution <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Le code original</h4>
<p>Près de la <strong>ligne 107</strong> dans <a href="http://www.mathetmots.com/wp-content/themes/rttheme6/js/script.js">ce fichier</a>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//product tabs</span>
	$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> tabs<span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs ul li&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> content <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs #content&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> kids <span style="color: #339933;">=</span> content.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			kids.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:none;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs #content div:first&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:block;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			tabs.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
				<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #006600; font-style: italic;">//					var show=$(this).attr(&quot;title&quot;);</span>
					<span style="color: #003366; font-weight: bold;">var</span> show<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs ul li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
					<span style="color: #006600; font-style: italic;">//change clicked tab class</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs ul li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;active&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;active&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #006600; font-style: italic;">//view clicked tab content</span>
					kids.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:none;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					content.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						content.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//						$(&quot;#&quot;+show+&quot;&quot;).attr(&quot;style&quot;,&quot;display:block;&quot;);</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs #content div:eq(&quot;</span><span style="color: #339933;">+</span>show<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:block;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						content.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Le code tel qu&#8217;il est aujourd&#8217;hui a la <strong>ligne 10</strong> et <strong>ligne 21</strong> (qui est commenté mais qui n&#8217;était pas comme ça avant) illustre qu&#8217;il utilisait l&#8217;attribut <strong>title</strong>.</p>
<h4>Le code remplacé par</h4>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//product tabs</span>
	$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> tabs<span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs ul li&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> content <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs #content&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> kids <span style="color: #339933;">=</span> content.<span style="color: #660066;">children</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			kids.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:none;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs #content div:first&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:block;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			tabs.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>
				<span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					<span style="color: #003366; font-weight: bold;">var</span> show<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs ul li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">index</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
					<span style="color: #006600; font-style: italic;">//change clicked tab class</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs ul li&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;active&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;active&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #006600; font-style: italic;">//view clicked tab content</span>
					kids.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:none;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					content.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						content.<span style="color: #660066;">slideUp</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#tabs #content div:eq(&quot;</span><span style="color: #339933;">+</span>show<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;)&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;style&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;display:block;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						content.<span style="color: #660066;">slideDown</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Ici c&#8217;est le code que j&#8217;avait donné a <a href="http://www.geoffroigaron.com">Geoffroi</a> le 31 mai dernier. </p>
<h3>Finalement</h3>
<p>J&#8217;ai pris trop de temps pour publier mon billet de solution et il a été corrigé. Tant mieux!</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/07/bug-trouve-et-corrige-sur-un-theme-wordpress-rttheme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retour sur la semaine des logiciels Libres MonDev et de la conférence Make Web Not War 2010</title>
		<link>http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/</link>
		<comments>http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 16:42:35 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Tranche de vie]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2187</guid>
		<description><![CDATA[Ça y est. Ça fait plusieurs semaines que la semaine du Make Web Not War et MonDev est passée. Ce fut une semaine très occupée.
Nous travaillons (m&#8217;incluant avec devLAB Montréal) avec digibomb (Brendan) pour la planification de ces deux événements et j&#8217;aimerai contribuer ce que j&#8217;ai appris de l&#8217;expérience.
J&#8217;en profite pour traduire en partie le [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Des gens de PHP Québec et devLAB Montréal sur la même table" src="http://renoirboulanger.com/wp-content/uploads/2010/05/Codefest.jpg" alt="Des gens de PHP Québec et devLAB Montréal sur la même table" width="320" height="165" />Ça y est. Ça fait plusieurs semaines que la semaine du <a href="http://webnotwar.ca">Make Web Not War</a> et <a href="http://mondev.org">MonDev</a> est passée. Ce fut une semaine très occupée.</p>
<p>Nous travaillons (m&#8217;incluant avec <a href="http://devlabmtl.org">devLAB Montréal</a>) avec <a href="http://dropthedigibomb.com">digibomb</a> (Brendan) pour la planification de ces deux événements et j&#8217;aimerai contribuer ce que j&#8217;ai appris de l&#8217;expérience.</p>
<p>J&#8217;en profite pour traduire en <a href="http://dropthedigibomb.com/2010/mondev-and-web-not-war-recap/">partie le billet de Brendan</a> (en ajoutant mes notes personnelles) car il l&#8217;a tellement bien décrit <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>MonDev</h2>
<p>L&#8217;idée était simple. Faisons-voir les membres de la communauté des logiciels libres pour une semaine d&#8217;événements et savoir où aller. Nous n&#8217;avions pas beaucoup de temps ni de budget.</p>
<p><strong>Note de Renoir: </strong>C&#8217;est vrai qu&#8217;on avait pas de budget. Le besoin de «Get Togethers» lors de semaines d&#8217;événements semble être de quoi d&#8217;ignoré. Je crois que nous avons atteint l&#8217;objectif primaire: diriger les visiteurs et les locaux qui veulent avoir du fun avec nous.à</p>
<p><span id="more-2187"></span></p>
<h2>Ce qui est arrivé cette semaine là</h2>
<p>Une liste très codensée de ce qui s&#8217;est passé durant la semaine.</p>
<ul>
<li><strong><a href="http://www.webnotwar.ca/blog/blog/features/mwnw-features-videos/all-aboard-toronto-make-web-on-the-way/">#DEVTrain</a></strong> (aussi connu sous le nom de #nerdtrain) – des gens de Toronto qui venaient passer la semaine à Montréal dans une cabine de VIA Rail réservée pour eux seuls. C&#8217;était une initiative de Microsoft. Ils avaient même un tracker GPS, des XBox pour jouer et tout ce qu&#8217;un train de Geek peut imaginer!</li>
<li><strong>YulBiz Spécial WebCom</strong> – (mon ajout personnel) – YulBiz est une communauté d&#8217;entrepreneurs blogeurs francophone de Montréal. J&#8217;y vais depuis plus d&#8217;un an et j&#8217;y ai rencontré beaucoup de gens passionnés et intéressants. Le soir du «MonDev Open Source Demo Camp» il y avait <em>ausi</em> une rencontre. J&#8217;ai donc passé dire bonjour a plusieurs YulBiz-ers mais je n&#8217;ai pas pu rester longtemps <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
<li><strong>WebCom Montréal</strong> – Une conférence sur le Web 2.0 et l&#8217;entreprise organisé par quelques YulBiz-eurs. Une journée vraiment le fun ou l&#8217;on mélange réseautage, entrepreneurship, et vulgarisation. Je trouve personnellement l&#8217;équipe de WebCom généreuse car ils ont offert 100 entrées gratuites pour les participants au WebCamp.</li>
<li><strong>«<a href="http://mondev.org/general/schedule/" target="_blank">MonDev Open Source Demo Camp</a>»</strong> – Une soirée <a href="http://en.wikipedia.org/wiki/Ignite_(event)">à-la-Ignite</a> où nous parlions de nos projets! Nous avons même joué a un jeu de <a href="http://en.wikipedia.org/wiki/Powerpoint-Karaoke">PowerPointKaraoké</a> un jeu qui consiste a improviser une présentation avec une série aléatoire de pages de présentations.</li>
<li><strong><a href="http://www.facebook.com/event.php?eid=118951614801137&amp;ref=mf" target="_blank">WebCamp</a></strong> – une forme d&#8217;anti-conférence non-formelle avec des gens du web a Montréal, des passionnés et vivent du web pour discuter ouvertement. (pour en savoir plus sur le format, voir <a href="http://fr.wikipedia.org/wiki/BarCamp">la page Wikipedia</a>)</li>
<li><strong>«<a href="http://www.startupdrinks.ca/index.php/montreal/" target="_blank">StartUpDrinks Montreal</a>»</strong> – C&#8217;est une rencontre mensuelle de réseautage libre organisé par la communauté anglophone d&#8217;entrepreneurs Montréalais.</li>
<li><strong>«<a href="http://www.webnotwar.ca/blog/schedule/">Make Web Not War</a>»</strong> – La première conférence Canadienne sur l&#8217;inter-opérabilité multiple-plateforme. Une conférence ou on pouvait y voir des techniques de travail et des technologies et illustrer autant le point de vue de la communauté des logiciels libres que de Microsoft.</li>
<li><strong>Le «<a href="http://devlabfest.eventbrite.com/">CodeFest</a>»</strong> – Organisé par (nous) <a href="http://devlabmtl.org/"><strong>devLAB Montréal</strong></a>, et <a href="http://www.phpquebec.net/"><strong>PHPQuebec</strong></a> sponsorisé par <strong><a href="http://www.microsoft.com/windowsazure/">Windows Azure</a>. </strong>Nous avions accès a plusieurs licences WindowsAzure et nous avons joué avec la technologie.</li>
<li><strong>«<a href="http://www.webnotwar.ca/blog/blog/features/mwnw-features-videos/pick-your-winner/">FTW! Coding Competition</a>» </strong>– showdown featuring #findahome, #tholus, #taxicity</li>
<li><strong>Twitter Wall</strong> – Une application qui avait été utilisée durant le Make Web Not War pour afficher dynamiquement les Tweets. Produit par  <a href="http://www.jetcooper.com/">Jet Cooper</a></li>
<li><a href="http://www.jetcooper.com/"></a><strong>TruceParty (après Make Web Not War)</strong> au <a href="http://jellomartinilounge.com/">Jello Martini Bar &amp; Lounge</a> – il y avait même un repas fourni par Schwartz. Tout pour faire découvrir aut Torontois les merveilles de Montréal.</li>
</ul>
<p>Tout ceci s&#8217;est déroulé en quatre jours (!!).</p>
<h2>Des découvertes</h2>
<p>J&#8217;ai personnellement eu l&#8217;honneur de rencontrer des gens très intéressants que j&#8217;ai envie de vous présenter ici:</p>
<h3><a href="http://www.nvisolutions.com/">NVI Solutions</a></h3>
<p>Une gang qui a d&#8217;lair bien agréable et compétente qui a produit le site de Make Web Not War.</p>
<h3>La communauté <a href="http://port25.ca/">Port25.ca</a></h3>
<p>Une équipe dédiée chez Microsoft Canada qui se donne comme mission d&#8217;écouter la communauté des logiciels libres pour comprendre le marché et améliorer sa position. J&#8217;ai su, grâce a eux qu&#8217;ils offrent plusieurs de leurs outils gratuitement aux entrepreneurs avec BizSpark et WebsiteSpark.</p>
<h3><a href="http://youphonics.com/">YouPhonics</a></h3>
<p>J&#8217;ai rencontré Aidan Nulman qui m&#8217;a parlé de son démo de Mix en-ligne basé en flash appelé</p>
<h3><a href="http://phpquebec.org/"> PHP Québec</a></h3>
<p>Je connais Yan Larrivée et Anna Filina que depuis un an et j&#8217;admire le travail qu&#8217;ils ont effectués toutes ces années avec les conférences PHPQuébec et le nouveau <a href="http://www.confoo.ca">Confoo</a>. C&#8217;est un groupe a suivre!</p>
<h3><a href="http://www.guelphcoffeeandcode.org/">Guelph Coffee and Code</a></h3>
<p>Un groupe que je compte suivre de près. Ils rassemblent des passionnés des logiciels libres dans la région de Guelph en Ontario. J&#8217;ai en rencontré <a href="http://blog.syntaxc4.net/">Cory Fowler</a>: «we have to catch up and do some more stuff»  ;)</p>
<h2>Les volontaires qui nous ont aidés</h2>
<li><a href="http://www.brendanserashriar.com/"><strong>Brendan Sera Shriar</strong></a><strong> </strong>- Instigateur original <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li><strong><a href="http://stephanchampagne.com">Stéphan Champagne</a></strong> et moi même – devLAB Montréal</li>
<li><strong><a href="http://twitter.com/phponwindows" target="_blank">Arun Kirupa</a> – </strong>Microsoft Canada et Web Not War</li>
<li><a href="http://twitter.com/ylarrivee" target="_blank">Yann Larivee</a> – PHP Québec</li>
<li><a href="http://twitter.com/jennahoff" target="_blank">Jenna Hoff</a> – Web Not War<strong><br />
</strong></li>
<li><strong><a href="http://twitter.com/angielim" target="_blank">Angie Lim</a> – </strong>Web Not War</li>
<li><strong><a href="http://www.twitter.com/tikiwikisearch" target="_blank">Marc Laporte</a> – </strong>TikiWiki</li>
<li><strong><a href="http://twitter.com/startupdrinksca" target="_blank">Robin Ahn</a> – </strong>StartUpDrinks Montreal</li>
<li><strong><a href="http://twitter.com/jeremywright" target="_blank">Jeremy Wright</a></strong></li>
<li><a href="http://twitter.com/vanilla" target="_blank"><strong>The Vanilla Crew</strong></a></li>
<li><strong>L&#8217;équipe <a href="http://twitter.com/webnotwar" target="_blank">Web Not War</a></strong></li>
<h2></h2>
<h2>Le prochain MonDev</h2>
<p>Je vous tiendrai au courrant du prochain événement.</p>
<h2></h2>
<h2>Quelques photos</h2>
<p>Aussi, voir <a href="http://www.flickr.com/groups/webnotwar">celles sur Flickr</a>! Ici quelques unes de mes favorites</p>

<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/codefest/' title='Des gens de PHP Québec et devLAB Montréal sur la même table'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/Codefest-150x150.jpg" class="attachment-thumbnail" alt="" title="Des gens de PHP Québec et devLAB Montréal sur la même table" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/4640567658_766dffd752_b/' title='La bannière des contributeurs au Make Web Not War'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/4640567658_766dffd752_b-150x150.jpg" class="attachment-thumbnail" alt="" title="La bannière des contributeurs au Make Web Not War" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/4644424467_447bc3a010_b/' title='Des participants dans l&#039;audience'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/4644424467_447bc3a010_b-150x150.jpg" class="attachment-thumbnail" alt="" title="Des participants dans l&#039;audience" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/4645057689_98b296e129_b/' title='Lee Dale de YouSayYeah.com durant une discussion'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/4645057689_98b296e129_b-150x150.jpg" class="attachment-thumbnail" alt="" title="Lee Dale de YouSayYeah.com durant une discussion" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/4645069355_85e8cb9267_b/' title='Louis-Philippe qui travaille sur TikiWiki'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/4645069355_85e8cb9267_b-150x150.jpg" class="attachment-thumbnail" alt="" title="Louis-Philippe qui travaille sur TikiWiki" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/4645645892_40da4954fc_b/' title='Les gens de TikiWiki et de Testatoo'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/4645645892_40da4954fc_b-150x150.jpg" class="attachment-thumbnail" alt="" title="Les gens de TikiWiki et de Testatoo" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/4645705062_c31305465e_b/' title='@afilina de PHPQuébec'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/4645705062_c31305465e_b-150x150.jpg" class="attachment-thumbnail" alt="" title="@afilina de PHPQuébec" /></a>
<a href='http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/mwnw-sponsor-banner1-2/' title='Bannières de commanditaires'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/05/MWNW-sponsor-banner11-150x150.jpg" class="attachment-thumbnail" alt="" title="Bannières de commanditaires" /></a>

]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/06/retour-sur-la-semaine-des-logiciels-libres-mondev-et-de-la-conference-make-web-not-war-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment remplacer les caract√®res bizzares dans WordPress lorsqu&#8217;on a mal fait la conversion</title>
		<link>http://renoirboulanger.com/blog/2010/06/comment-remplacer-les-caracteres-bizzares-dans-wordpress-lorsqu-on-a-mal-fait-la-conversion/</link>
		<comments>http://renoirboulanger.com/blog/2010/06/comment-remplacer-les-caracteres-bizzares-dans-wordpress-lorsqu-on-a-mal-fait-la-conversion/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 01:07:40 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[p52]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sc]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2232</guid>
		<description><![CDATA[Accrocheur mon titre n&#8217;est-ce pas? Je trouve ça tellement pas drôle lorsque ça m&#8217;arrive ce genre de situation avec les caractères accentués. Le problème n&#8217;arrive pas tout le temps qu&#8217;avec WordPress. 
Voici, enfin, une suite a mon billet Pourquoi tout ces caractères bizzares.  Je devais travailler sur un problème de conversion de caractères pour [...]]]></description>
			<content:encoded><![CDATA[<p>Accrocheur mon titre n&#8217;est-ce pas? Je trouve ça tellement pas drôle lorsque ça m&#8217;arrive ce genre de situation avec les caractères accentués. Le problème n&#8217;arrive pas tout le temps qu&#8217;avec WordPress. </p>
<p>Voici, enfin, une suite a mon billet <a href="http://renoirboulanger.com/blog/2009/09/pourquoi-tout-ces-caracteres-bizzares/">Pourquoi tout ces caractères bizzares</a>.  Je devais travailler sur un problème de conversion de caractères pour un client dus a une conversion non réussie et/ou terminée entre <tt>latin1</tt> et <tt>utf-8</tt> puis je me suis remis a penser a ce problème. Pourquoi ne pas le régler, et documenter! </p>
<p>Voilà pourquoi ce billet <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>La situation</h3>
<p>Mon cas était bien simple. J&#8217;avait mal fait ma sauvegarde lors d&#8217;un transfert et j&#8217;avait tout mes commentaires, billets, et autres données qui avait des accents &#8220;<tt>transform√©s comme √áa</tt>&#8221; (transformés comme ça).</p>
<p>Ce genre de problème arrive pour toutes sortes de raisons. Mais le symptôme est le même. Si vous avez des<br />
Je partage avec vous mon bout de code a «copier-coller» dans <tt>phpmyadmin</tt> pour votre blogue WordPress si vous avez ces problèmes (oubliez-pas de faire des sauvegardes là(!)).</p>
<p>Plusieurs tutoriels existent pour régler la situation mais mon cas était assez unique. J&#8217;ai conservé le problème puis j&#8217;ai publié plusieurs billets (qui sortent bien) et laissé ceux &#8220;<tt>ab√Æm√©s</tt>&#8221; là. <strong>Il n&#8217;était plus question d&#8217;extraire, convertir et ré-importer</strong>.</p>
<h3>Pourquoi?!</h3>
<p>C&#8217;est une réponse assez complexe. L&#8217;article <a href="http://tikiwiki.org/UTF-8"><strong>UTF-8</strong> sur TikiWiki.org</a> l&#8217;explique en détail.</p>
<blockquote><p>In short, UTF-8 is a character encoding that uses 1 to 3 bytes for each character.<br />
It is one of the existing character encodings of the UCS (Universal Character Set), that contains nearly a hundred thousand abstract characters (including ASCII characters).</p>
<p>UTF-8 greatly simplifies the task of internationalization by replacing multiple alternative encodings (such as ISO8859-15 Latin-9, which encodes those English, French, German, Spanish and Portuguese characters not available in ASCII).</p></blockquote>
<p>En simple, le UTF-8 est un format d&#8217;encodage qui utilise 1 a 3 bytes pour chaque caractère. C&#8217;est un format d&#8217;encodage qui comprend près de plusieurs centaines de milliers de caractères (Incluant ceux du ASCII).</p>
<p>UTF-8 est fait pour contenir tout les caractères existants pour simplifier l&#8217;internationalisation. </p>
<p>C&#8217;est un standard qui est pas nécessairement jeune mais qui n&#8217;était pas non plus supporté partout.</p>
<p>MySQL a commencé a le supporter qu&#8217;a partir de la version 4.1.</p>
<p>Ce qui arrive c&#8217;est qu&#8217;avec le temps, les gens prennent de plus en plus soin de rendre accessible pour toutes les langues leur applications. Ainsi un russe pourrait écrire en cyrillic et un Japonais en Kanji dans la même base de donnée. Le coup est difficile! Surtout que les versions de MySQL et PHP et Java offrent maintenant le choix par défaut en UTF-8&#8230; lorsqu&#8217;on fait pas attention: on se fait coincer!</p>
<p><span id="more-2232"></span></p>
<h3>Comment j&#8217;ai opéré</h3>
<p>Comme il n&#8217;y a pas que WordPress qui peut avoir ce type de problème j&#8217;ai fait un petit script qui génère pour chaque table et colone affectée. J&#8217;ai passé dans chaque table et colone où je voyait des choses bizzares et j&#8217;ai représenté dans un array a deux dimensions. Avec cette méthode on peut faire la même chose avec n&#8217;importequel schéma de base de donnée.</p>
<h4>Exemple: Représenter les tables et les colones</h4>
<p>Avec ce format, en exemple, j&#8217;ai représenté les tables (<tt>wp_posts</tt>, etc&#8230;) et chaque array représente une colone où des caractères accentués sont mal convertis.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$tables</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">'wp_posts'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'post_content'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post_title'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post_excerpt'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">,</span><span style="color: #0000ff;">'wp_usermeta'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'meta_value'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">,</span><span style="color: #0000ff;">'wp_term_taxonomy'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'description'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">,</span><span style="color: #0000ff;">'wp_comments'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_content'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h3>Utiliser le script</h3>
<p>Le script a été utilisé pratiquement tel quel sur ma base de donnée WordPress de ce site. </p>
<p>Seuls ajustements a faire. </p>
<ul>
<li>Remplacer les &#8220;&lt;&nbsp;pre&nbsp;&gt;&#8221; par &#8220;&lt;pre&gt;&#8221;. Vous comprenez le principe <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Afficher le contenu généré via un serveur Web avec PHP installé</li>
<li>Aller dans <tt>phpmyadmin</tt>, <strong>faire une copie de la base de donnée à affecter</strong> (Voir dans onglet &#8220;<tt>Opérations</tt>&#8221; et &#8220;<tt>Copier la base de données vers:  </tt>&#8220;)</li>
<li>Aller dans cette base de donnée là dans phpmyadmin (!!)</li>
<li>Exécuter le code généré (copier-coller) dans la fenêtre <tt>SQL</tt> de la base de donnée de tests</li>
<li>Faire pareil avec la vraie si vous êtes satisfaits du résultat</li>
</ul>
<h4>Le code</h4>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-type:text/html;charset=utf8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tables</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">'wp_posts'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'post_content'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post_title'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'post_excerpt'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">,</span><span style="color: #0000ff;">'wp_usermeta'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'meta_value'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">,</span><span style="color: #0000ff;">'wp_term_taxonomy'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'description'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #339933;">,</span><span style="color: #0000ff;">'wp_comments'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_content'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$chars</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√Ä'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|À'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√¥'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|ô'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√Ç'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|â'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√á'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|ç'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√©'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|é'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√â'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|É'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√†'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|à'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√®'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|è'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√™'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|ê'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√¢'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|â'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'‚Äô'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|‘'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'¬´'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|«'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'¬ª'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|»'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√ß'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|ç'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√π'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|ù'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√ª'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|û'</span><span style="color: #339933;">,</span>
 <span style="color: #990000;">bin2hex</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'√Æ'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'|î'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tables</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$table</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$elements</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$elements</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$col</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$chars</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$char</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$elc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|'</span><span style="color: #339933;">,</span><span style="color: #000088;">$char</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$update_line</span><span style="color: #339933;">.=</span> <span style="color: #0000ff;">'update '</span><span style="color: #339933;">.</span><span style="color: #000088;">$table</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' set '</span><span style="color: #339933;">.</span><span style="color: #000088;">$col</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' = REPLACE('</span><span style="color: #339933;">.</span><span style="color: #000088;">$col</span><span style="color: #339933;">.</span><span style="color: #0000ff;">', UNHEX(\''</span><span style="color: #339933;">.</span><span style="color: #000088;">$elc</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: #0000ff;">'\'), \''</span><span style="color: #339933;">.</span><span style="color: #000088;">$elc</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'\') ;'</span><span style="color: #339933;">.</span>PHP_EOL<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt; pre &gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$update_line</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt; / pre &gt;'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/06/comment-remplacer-les-caracteres-bizzares-dans-wordpress-lorsqu-on-a-mal-fait-la-conversion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Traduction libre de l&#8217;article «Why the @&amp;*# is Microsoft doing all this??»</title>
		<link>http://renoirboulanger.com/blog/2010/05/traduction-libre-de-larticle-%c2%abwhy-the-is-microsoft-doing-all-this%c2%bb/</link>
		<comments>http://renoirboulanger.com/blog/2010/05/traduction-libre-de-larticle-%c2%abwhy-the-is-microsoft-doing-all-this%c2%bb/#comments</comments>
		<pubDate>Sun, 30 May 2010 18:08:42 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Tranche de vie]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2192</guid>
		<description><![CDATA[1]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2191 alignright" title="Make Web Not War bannière de commanditaires" src="http://renoirboulanger.com/wp-content/uploads/2010/05/MWNW-sponsor-banner1.jpg" alt="" width="227" height="430" /></p>
<p>Ceci est une traduction libre du <a href="http://port25.ca/archive/2010/05/27/why-the-amp-is-microsoft-doing-this.aspx">billet originalement écrit en anglais</a>, par <a href="http://twitter.com/Nik_G">Nik G.</a> de Microsoft Canada sur le <a href="http://port25.ca/">blogue Port25<strong>.ca</strong></a> et j&#8217;ai eu envie de le traduire pour la postérité.</p>
<p>Je le traduis car Microsoft tente de faire un changement radical vis a vis son approche avec la compétition et le Logiciel Libre et je pense que ça vaut la peine d&#8217;en parler.</p>
<p>Étant premièrement un francophone et que Microsoft ne traduit pas nécessairement tout ses billets, je désire traduire et vous afficher mon point de vue. Ce mouvement est si radical que je pense qu&#8217;ils pourraient profiter de mon opinion; le point de vue d&#8217;un partisan du Logiciel Libre. tout ceci dans le but qu&#8217;ils puissent, éventuellement, mieux nous comprendre.</p>
<p>Je n&#8217;ai tiré aucun bénéfice financier de la part de Microsoft pour faire cette traduction et de parler de leur stratégie.</p>
<p>Cette intervention fait suite au <a href="http://www.webnotwar.ca/">Make Web Not War</a> ma rencontre avec une équipe passionnée et a l&#8217;écoute qui semble déterminée a comprendre notre différence et pouvoir appliquer chez Microsoft. Seul l&#8217;histoire nous dira s&#8217;ils réussiront leur tentative.</p>
<h3>A propos de la traduction</h3>
<p>J&#8217;aimerai rappeler que je ne suis pas un traducteur professionnel; d&#8217;où la mention de &#8220;traduction libre&#8221;. Je me suis donné comme mission sur mon blogue de contribuer qu&#8217;en Français pour faire profiter mes pairs francophones qui ne comprennent pas l&#8217;anglais. Si j&#8217;y ai fait des fautes, vous pouvez me le faire savoir dans les commentaires, j&#8217;ajusterai <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><!-- more --></p>
<h3>Article traduit</h3>
<p>Microsoft <a href="http://www.microsoft.com/opensource/project-highlights.aspx" target="_blank">qui contribue a des projets de Logiciels Libres</a>? Distribuer des <a href="http://www.microsoft.com/web/gallery/Categories.aspx?sorting=alphabetical" target="_blank">applications PHP</a> avec sa propre plateforme? Supporter <a href="http://php.iis.net/" target="_blank">PHP sous Windows</a>? Permettre de déployer <a href="http://wordpress.visitmix.com/" target="_blank">WordPress sur Azure</a>? Organiser <a href="http://webnotwar.ca" target="_blank">Make Web Not War</a> et à la <a href="http://mondev.org/" target="_blank">la semaine du Logiciel Libre MonDev</a>?</p>
<p>Est-ce que l&#8217;«empire» s&#8217;adoucit? Est-ce un plan diabolique de conquérir le monde.</p>
<p>Alors C&#8217;est quoi le vrai objectif de Microsoft de faire tout ceci.</p>
<p>Quelques uns disent que c&#8217;est pour l&#8217;amour de la technologie, pour aider les programmeurs et les designers web (<acronym title="Note de la Traduction">N.D.L.T</acronym>: parlant de <a href="http://www.microsoft.com/bizspark/">BizSpark</a>).  D&#8217;autres pensent que <a href="http://vanillaforums.org/blog/make-web-not-war-ftw-competition/#comments" target="_blank">Microsoft est <em>désespéré</em></a>, et qu&#8217;ils sont forcé sur le chemin du Logiciel Libre. D&#8217;autres comme les gens de la communauté des Logiciels Libre comme ceux avec qui Microsoft Canada contribue: <a href="http://www.phpquebec.org/" target="_blank">PHP Quebec</a>, <a href="http://impresscms.org/" target="_blank">Impress CMS</a>, <a href="http://tikiwiki.org" target="_blank">TikiWiki</a>, <a href="http://vanillaforums.org/" target="_blank">Vanilla Forums</a>, <a href="http://status.net/" target="_blank">Status.net</a>, <a href="http://phug.ca" target="_blank">PHUG</a> et plusieurs autres, disent que c&#8217;est bon pour leur projets et leur permet un nouveau spectre d&#8217;exposition. Particulièrement dans les boîtes pro-Microsoft.</p>
<p>Tout ceci fait que du bon sens d&#8217;un point de vue Affaires. On ne peut contredire son bienfait.</p>
<p>La réalité d&#8217;aujourd&#8217;hui avec les environnements informatique hétérogènes et les consommateurs qui désirent avoir la meilleure expérience possible. Les gens veulent pouvoir trouver, déployer et gérer leur logiciels a leur façon, rapidement et facilement. Les Logiciels Libres prônent principalement le partage, la collaboration, et le travail d&#8217;équipe en regard du bénéfice de l&#8217;usager final. C&#8217;est pour cela que Microsoft désire participer en collaborant sur les projets comme d&#8217;autres organisations et compagnies le font déjà. Ça ajoute simplement de la valeur à la plateforme, rend les consommateurs heureux, et crée de liens avec des partenaires intéressants. Tout le monde gagne.</p>
<p>C&#8217;est aussi pour ça que Microsoft a libéré certains de ses produits sour la bannière BizSpark. Pour aider a faire grandir les communautés de développement et permettre de pouvoir faire plus d&#8217;affaires pour les développeurs qui gagnent leur vie avec le développement et l&#8217;usage de logiciels libres.  (<acronym title="Note de la Rédaction (auteur)">N.D.L.R</acronym>: dire, personnellement, que j&#8217;utiliserait tout leur produits pour développer serait pousser loin. Mais j&#8217;aime qu&#8217;ils en fassent l&#8217;effort).</p>
<p>C&#8217;est pour toutes ces raisons que Microsoft Canada a formé une <a href="http://port25.ca/archive/2010/04/05/port-25-canada-contributors.aspx" target="_blank">petite équipe mais &#8220;Agile&#8221;</a> qui travaille à construire des relations avec les développeurs de Logiciels Libres et leur communautée. L&#8217;idée est d&#8217;apprendre et de compléter l&#8217;offre de chacun. Tout ceci dans le but d&#8217;améliorer l&#8217;expérience utilisateur et de permettre l&#8217;Inter-opérabilité entre les plateformes.</p>
<p>&#8220;Ouvert&#8221; signifie aussi d&#8217;être ouverts aux commentaires provenant de la communauté et Microsoft s&#8217;engage a être honnête et franc avec leur réponse.</p>
<p>(&#8230;) (<acronym title="Note de la Traduction">N.D.L.T</acronym>: Le reste de l&#8217;article est ciblé aux gens qui étaient présents durant le <a href="http://webnotwar.ca">Make Web Not War</a> pour discuter en personne avec eux et sur Twitter. J&#8217;ai moi même discuté avec eux et apprécié les échanges.)</p>
<h3>Mon commentaire sur leur blogue</h3>
<p>J&#8217;ai répondu a leur demande de commentaire <a href="http://port25.ca/archive/2010/05/27/why-the-amp-is-microsoft-doing-this.aspx">sur leur blogue public</a> de la façon qui suit:</p>
<blockquote>
<p>Publié sur <a href="http://port25.ca/archive/2010/05/27/why-the-amp-is-microsoft-doing-this.aspx#Renoir%20Boulanger">port25<strong>.ca</strong></a> le 27 Mai 2010, par moi même.</p>
<p>Soyons franc dès le départ. J&#8217;utilise Linux dans ma vie de tout les jours depuis 2003. Pour moi, mes machines sous Windows (virtuelles ou physiques) ont majoritairement été fermés et non utilisés (mis a part pour les tests de navigateurs). J&#8217;ai fait ce choixcar j&#8217;aime que mon ordinateur agisse (assume) que je suis intelligent, par défaut.</p>
<p>Mis à part de cela, j&#8217;ai fait une quantité considérable de sites web et j&#8217;ai eu beaucoup de difficulté et perdu beaucoup de temps a faire des conditions spécifiques pour les navigateurs Microsoft. Tout ceci pour des raisons historiques et déplorables.</p>
<p>Je ne suis pas le seul qui a passé a travers cet enfer.</p>
<p>Je pense que ça illustre la relation sentimentale que j&#8217;ai envers les produits Microsoft.</p>
<p>Je pense que Microsoft fait, enfin (!), cette initiative pour nous écouter, nous, ces gens qui savent comment utiliser les ordinateurs. Mes expériences du passé et mon opinion (comme celle de plusieurs autres partisans du logiciel libre) pourrait faire grandement bénéficier Microsoft.</p>
<p>Parceque le logiciel libre c&#8217;est justement a propos du partage.</p>
<p>Les industries et les grands noms ont avantage d&#8217;écouter la communauté parceque c&#8217;est elle qui permet de créer les standards pour pousser l&#8217;innovation et faire fonctionner toutes sortes de choses ensemble.</p>
<p>Sans ça&#8230;</p>
<p>Les trains n&#8217;auraient pas pu traverser les pays.</p>
<p>Le web n&#8217;aurait pas existé sous cette forme&#8230; Si il aurait été propriétaire, la communauté en aurait développé un équivalent libre de toute façon (!).</p>
<p>&#8230; Je crois que vous comprenez mon idée.</p>
<p>Nous nous devons de &#8220;Faire marcher les choses ensemble&#8221; pour atteindre un plus grand objectif qui dépasse le bénéfice d&#8217;une seule entitée. Ça permet un accès harmonisé des données, crée une compétition qui pousse a l&#8217;amélioration, et ainsi de suite.</p>
<p>Alors, je pense que l&#8217;initiative de Port25 et Make Web not War de Microsoft est d&#8217;atteindre tout ceci. (Enfin, je l&#8217;espère)</p>
<p>Alors, santé! et faison la paix <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/05/traduction-libre-de-larticle-%c2%abwhy-the-is-microsoft-doing-all-this%c2%bb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mise à jour de l&#8217;horaire de la semaine des logiciels libres MonDev du 24-28 Mai prochain</title>
		<link>http://renoirboulanger.com/blog/2010/05/mise-a-jour-de-lhoraire-de-la-semaine-des-logiciels-libres-mondev-du-24-28-mai-prochain/</link>
		<comments>http://renoirboulanger.com/blog/2010/05/mise-a-jour-de-lhoraire-de-la-semaine-des-logiciels-libres-mondev-du-24-28-mai-prochain/#comments</comments>
		<pubDate>Mon, 17 May 2010 15:32:29 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Tranche de vie]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2183</guid>
		<description><![CDATA[Durant la semaine du 24 au 28 Mai 2010 aura lieu la semaine des logiciels libres MonDev. L&#8217;idée du MonDev est de lister les événements et de créer une liste de tous les événements qui pourraient intéresser les visiteurs qui viendront pour le Make Web Not War/FTW! et/ou le WebCom et/ou le WebCamp puissent savoir [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2094" class="wp-caption alignright" style="width: 280px"><img class="size-full wp-image-2094 " title="MonDev" src="http://renoirboulanger.com/wp-content/uploads/2010/03/mondev_logo.png" alt="MonDev" width="270" height="159" /><p class="wp-caption-text">Montreal Open Source Week - La semaine des Logiciels Libres de Montréal MonDev</p></div>
<p>Durant la semaine du 24 au 28 Mai 2010 aura lieu la semaine des logiciels libres <a href="http://mondev.org">MonDev</a>. L&#8217;idée du MonDev est de lister les événements et de créer une liste de tous les événements qui pourraient intéresser les visiteurs qui viendront pour le <a href="http://webnotwar.ca/">Make Web Not War</a>/FTW! et/ou le <a href="http://webcom-montreal.com/">WebCom</a> et/ou le <a href="http://webcampmontreal.org/">WebCamp</a> puissent savoir où aller d&#8217;autre durant les autres jours lors de leur séjour à Montréal.</p>
<h2>Horraire mis à jour</h2>
<p>L&#8217;<a href="http://mondev.org/general/schedule/">horraire de la semaine</a> a été mis à jour ce-matin. Il s&#8217;agit de la version originale anglaise.</p>
<h2>À propos de la langue</h2>
<p>Ça peut sembler étrange mais l&#8217;événement est voulu comme étant bilingue à la base. Autant au Make Web Not War (ils publient des billets dans leur blogue dans les deux langues), que le MonDev.</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/05/mise-a-jour-de-lhoraire-de-la-semaine-des-logiciels-libres-mondev-du-24-28-mai-prochain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Procédure pour créer un serveur FTP sécurisé SSL forcé avec usager virtuels sous Ubuntu Linux avec vsFTPd</title>
		<link>http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd/</link>
		<comments>http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 19:12:12 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[p52]]></category>
		<category><![CDATA[Sécurite]]></category>
		<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2162</guid>
		<description><![CDATA[Je ne sais pas si vous êtes comme moi mais je n&#8217;aime pas laisser non crypté l&#8217;accès a un service qui me demande un mot de passe. Je devait monter un serveur cette semaine qui doit avoir les accès FTP.
J&#8217;ai pris l&#8217;initiative de sécuriser la machine avec du SSL car je crois qu&#8217;aujourd&#8217;hui c&#8217;est notre [...]]]></description>
			<content:encoded><![CDATA[<p>Je ne sais pas si vous êtes comme moi mais je n&#8217;aime pas laisser non crypté l&#8217;accès a un service qui me demande un mot de passe. Je devait monter un serveur cette semaine qui doit avoir les accès FTP.</p>
<p>J&#8217;ai pris l&#8217;initiative de sécuriser la machine avec du SSL car je crois qu&#8217;aujourd&#8217;hui c&#8217;est notre devoir de faire ce genre de chose. Ce n&#8217;est pas la première fois que je configure un serveur FTP over SSL mais je n&#8217;avait jamais pris de notes vraiment à ce jour. Je l&#8217;ai fait cette fois-ci!</p>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Cequecetteproc%C3%A9durefait..."></a>Ce que cette procédure fait&#8230;</h3>
<ol>
<li>Pouvoir créer des comptes FTP sans avoir a créer un utilisateur local (donc pas accès shell (SSH)).</li>
<li>Permet les connections FTP over SSL de façon EXPLICITE sur un port non standard  (cet exemple utilisera le port <tt>6123</tt>)</li>
<li>Ne permet pas d&#8217;utilisateur ni de connexions anonymes</li>
<li>Bannit les hôtes qui tentent de se connecter (LOGIN FAILED)	via <strong>fail2ban</strong></li>
<li>Utilise le system PAM interne pour l&#8217;authentification</li>
<li>Ne requiert pas d&#8217;usager local (pas de risque de tentative de connection SSH, usager séparés)</li>
<li>Le serveur FTP roule sur son propre usager</li>
</ol>
<p><span id="more-2162"></span></p>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Proc%C3%A9dure"></a>Procédure</h3>
<ol>
<li>Vérifier quelle version de serveur FTP est installé

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># dpkg --list | grep ftp</span>
~
ii  <span style="color: #c20cb9; font-weight: bold;">ftp</span>                               <span style="color: #000000;">0.17</span>-<span style="color: #000000;">19</span>                      The FTP client
ii  lftp                              3.7.15-1ubuntu2              Sophisticated command-line FTP<span style="color: #000000; font-weight: bold;">/</span>HTTP client p
ii  vsftpd                            2.2.0-1ubuntu1               lightweight, efficient FTP server written fo</pre></td></tr></table></div>

<p><strong>Note</strong> vsftpd est ce qu&#8217;on veut. Dans ce cas-ci il est déjà installé (ii).</li>
<li>Assurer que les prérequis sont installés

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># aptitude install vsftpd libpam-pwdfile openssl</span></pre></td></tr></table></div>

</li>
<li>Modifier le fichier de config <strong>vsftpd.conf</strong>.<br />
<strong>Note</strong> Modifiez pour ces valeurs (ci-bas) et conservez les autres valeurs par défaut.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># vi /etc/vsftpd.conf</span>
~
<span style="color: #007800;">anonymous_enable</span>=NO
<span style="color: #007800;">local_enable</span>=YES
<span style="color: #007800;">write_enable</span>=YES
<span style="color: #007800;">local_umask</span>=022
<span style="color: #007800;">chroot_local_user</span>=YES
<span style="color: #007800;">ftpd_banner</span>=Un nom Quelconque FTP
<span style="color: #007800;">nopriv_user</span>=vsftpd
&nbsp;
<span style="color: #666666; font-style: italic;"># renoirboulanger.com 2010-04-29 we will force usage on an other port</span>
<span style="color: #666666; font-style: italic;">#connect_from_port_20=YES</span></pre></td></tr></table></div>

</li>
<li>Ajouter ou corriger (étaient pas présents lorsque j&#8217;ai crée la procédure)

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># 2010-04-28 accès usager</span>
<span style="color: #007800;">virtual_use_local_privs</span>=YES
<span style="color: #007800;">guest_enable</span>=YES
<span style="color: #007800;">user_sub_token</span>=<span style="color: #007800;">$USER</span>
<span style="color: #007800;">local_root</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ibottin<span style="color: #000000; font-weight: bold;">/</span>FTP<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$USER</span>
<span style="color: #007800;">hide_ids</span>=YES</pre></td></tr></table></div>

<p><strong>Note</strong> Ajuster le <tt>local_root</tt> a l&#8217;endroit	ou envoyer les fichiers.</li>
<li>Activer le SSL
<ol>
<li>Créer le certificat

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># cd /etc/ssl</span>
<span style="color: #666666; font-style: italic;"># /usr/bin/openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem</span></pre></td></tr></table></div>

</li>
<li>Ajouter au <tt>/etc/vsftpd.conf</tt>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># vi /etc/vsftpd.conf</span>
~
<span style="color: #666666; font-style: italic;"># renoirboulanger.com 2010-04-30 SSL configuration</span>
<span style="color: #007800;">listen_port</span>=<span style="color: #000000;">6123</span>
<span style="color: #007800;">ftp_data_port</span>=<span style="color: #000000;">6122</span>
<span style="color: #007800;">pasv_min_port</span>=<span style="color: #000000;">6000</span>
<span style="color: #007800;">pasv_max_port</span>=<span style="color: #000000;">6100</span>
&nbsp;
<span style="color: #007800;">ssl_enable</span>=YES
<span style="color: #666666; font-style: italic;"># Allow anonymous users to use secured SSL connections</span>
<span style="color: #007800;">allow_anon_ssl</span>=YES
<span style="color: #666666; font-style: italic;"># All non-anonymous logins are forced to use a secure SSL connection in order to</span>
<span style="color: #666666; font-style: italic;"># send and receive data on data connections.</span>
<span style="color: #007800;">force_local_data_ssl</span>=NO
<span style="color: #666666; font-style: italic;"># All non-anonymous logins are forced to use a secure SSL connection in order to send the password.</span>
<span style="color: #007800;">force_local_logins_ssl</span>=YES
<span style="color: #007800;">ssl_tlsv1</span>=YES
<span style="color: #007800;">ssl_sslv2</span>=YES
<span style="color: #007800;">ssl_sslv3</span>=YES
<span style="color: #007800;">rsa_cert_file</span>=<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ssl<span style="color: #000000; font-weight: bold;">/</span>vsftpd.pem</pre></td></tr></table></div>

</li>
</ol>
</li>
<li><strong>Remplacer</strong> le contenu du fichier <tt>pam.d/vsftpd</tt>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># vi /etc/pam.d/vsftpd</span>
~
auth required pam_pwdfile.so pwdfile <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>vsftpd.passwd
account required pam_permit.so</pre></td></tr></table></div>

<p><strong>Note</strong> Il est important de remplacer le reste du fichier par ce contenu ci-haut.</li>
<li>Modifier permissions sur le fichier .pem

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># chown vsftpd /etc/ssl/vsftpd.pem</span></pre></td></tr></table></div>

</li>
<li>Redémarrer vsftpd

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># /etc/init.d/vsftpd restart</span></pre></td></tr></table></div>

</li>
<li>Créer le unix user qui va rouler le démon

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># adduser --system --no-create-home --disabled-login -s /usr/sbin/nologin --home /var/ftp vsftpd</span></pre></td></tr></table></div>

</li>
<li>Modifier les permissions pour l&#8217;utilisateur qui roule vsftpd (ajuster)

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># chown -R ftp:ftp /var/ftp/</span>
<span style="color: #666666; font-style: italic;"># chmod -R 740 /var/ftp</span></pre></td></tr></table></div>

</li>
<li><strong><a href="http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd#ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-AjouterunutilisateurFTP">Ajouter un utilisateur FTP</a></strong></li>
<li>Ajuster <tt>fail2ban</tt>
<div class="code panel" style="border-width: 1px;">
<div class="codeHeader panelHeader" style="border-bottom-width: 1px;"><strong>Ajuster le bloc [vsftpd]</strong></div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># vi /etc/fail2ban/jail.conf</span>
~
<span style="color: #7a0874; font-weight: bold;">&#91;</span>vsftpd<span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
enabled  = <span style="color: #c20cb9; font-weight: bold;">true</span></pre></td></tr></table></div>

<p><strong>Note</strong> par defaut <tt>enabled</tt> est a false&#8230;	il faut l&#8217;activer.</p>
</div>
</li>
<li>Redémarrer vsftpd

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># /etc/init.d/vsftpd restart</span>
 <span style="color: #000000; font-weight: bold;">*</span> Stopping FTP server: vsftpd
   ...done.
 <span style="color: #000000; font-weight: bold;">*</span> Starting FTP server: vsftpd
   ...done.
<span style="color: #666666; font-style: italic;"># ps aux|grep vsftpd</span>
vsftpd   <span style="color: #000000;">18771</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">28904</span>  <span style="color: #000000;">1300</span> ?        Ss   <span style="color: #000000;">17</span>:09   <span style="color: #000000;">0</span>:00 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>vsftpd
vsftpd   <span style="color: #000000;">18772</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">29100</span>  <span style="color: #000000;">1608</span> ?        S    <span style="color: #000000;">17</span>:09   <span style="color: #000000;">0</span>:00 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>vsftpd
<span style="color: #c20cb9; font-weight: bold;">ftp</span>      <span style="color: #000000;">18773</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">28928</span>   <span style="color: #000000;">924</span> ?        S    <span style="color: #000000;">17</span>:09   <span style="color: #000000;">0</span>:00 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>vsftpd
root     <span style="color: #000000;">18795</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">0.0</span>  <span style="color: #000000;">22628</span>  <span style="color: #000000;">1712</span> ?        S    <span style="color: #000000;">17</span>:<span style="color: #000000;">14</span>   <span style="color: #000000;">0</span>:00 <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>vsftpd
...</pre></td></tr></table></div>

<p><strong>Note</strong> les deux premiers <tt>vsftpd</tt> est le résultat attendu</li>
<li>Nous allons forcer le FTP over SSL sur le port <strong>6122</strong>, pour ça il faut autoriser le Firewall

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># iptables -A INPUT -m state --state ESTABLISHED,RELATED</span>
<span style="color: #666666; font-style: italic;"># iptables -A INPUT -m tcp -p tcp --dport 6122 -j ACCEPT</span>
<span style="color: #666666; font-style: italic;"># iptables -A INPUT -m state --state NEW,ESTABLISHED</span>
<span style="color: #666666; font-style: italic;"># iptables -A INPUT -m tcp -p tcp --dport 6123 -j ACCEPT</span>
<span style="color: #666666; font-style: italic;"># iptables -A INPUT -p tcp --dport 6000:6100 -j ACCEPT</span></pre></td></tr></table></div>

<p><strong>Source</strong>: <a href="http://my.afterdawn.com/ketola/blog_entry.cfm/1262/vsftpd_ssl_and_iptables">vsftpd SSL and iptables</a></li>
<li>Sauvegarder le Firewall

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># iptables-save &amp;gt; /etc/iptables.rules</span></pre></td></tr></table></div>

</li>
<li>Tester de l&#8217;extérieur avec un client FTP (Filezilla, etc)
<p>Voir les options suivantes a la connection</p>
<ol>
<li>port: 6123</li>
<li>Forcer le SSL</li>
</ol>
</li>
</ol>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-AjouterunutilisateurFTP"></a>Ajouter un utilisateur FTP</h3>
<p>On utilise le truc simple de htpasswd pour l&#8217;authentification. Pas de gossage <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Cr%C3%A9erunnouveaucompte"></a>Créer un nouveau compte</h3>
<ol>
<li>Créer le <em>premier compte</em>, sinon, <strong>passer	a la directive suivante</strong>! ou Utiliser mon script <a href="http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd#ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Scriptpourcr%C3%A9eruncompteutilisateur">Script pour créer un compte utilisateur</a>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># htpasswd -c /etc/vsftpd.passwd ftpuser</span>
New password:
Re-type new password:
Adding password <span style="color: #000000; font-weight: bold;">for</span> user ftpuser</pre></td></tr></table></div>

<p><strong>Note</strong> l&#8217;option <strong><tt>-c</tt></strong> est	pour créer le fichier la première fois.</li>
<li>Voir les directives de *<a href="http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd#ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Scriptpourcr%C3%A9eruncompteutilisateur">Script pour créer un compte utilisateur</a></li>
</ol>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Ajouteroumodifierunutilisateur"></a><strong>Ajouter ou modifier un utilisateur</strong></h3>
<ol>
<li>Utiliser le script <strong><tt>evo-vsftpd-user</tt></strong>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> evo-vsftpd-user foo
Création d<span style="color: #ff0000;">'un nouvel usager dans /etc/vsftpd.passwd ...
New password:
Re-type new password:
Adding password for user foo
 ... OK
 * Création du dossier /home/ibottin/FTP/foo ...  OK
 * Changement des permissions du dossier ...  OK
Terminé!</span></pre></td></tr></table></div>

<p>Voir les directives de <strong><a href="http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd#ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Scriptpourcr%C3%A9eruncompteutilisateur">Script pour créer un compte utilisateur</a></strong></li>
</ol>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Scriptpourcr%C3%A9eruncompteutilisateur"></a>Script pour créer un compte utilisateur</h3>
<ol>
<li>Créer le fichier

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># vi /usr/sbin/evo-vsftpd-user</span></pre></td></tr></table></div>

</li>
<li>Coller le contenu

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> $<span style="color: #000000;">1</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Aucun argument usager fourni&quot;</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;usage: sudo evo-vsftpd-user foo&quot;</span>
  <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$(whoami)</span>&quot;</span> <span style="color: #000000; font-weight: bold;">!</span>= <span style="color: #ff0000;">'root'</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Vous n'avez pas les permisions utilisateur requises.&quot;</span>
  <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>;
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Création d'un nouvel usager dans /etc/vsftpd.passwd ... &quot;</span>
htpasswd <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>vsftpd.passwd $<span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; ... OK &quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot; * Création du dossier /home/ibottin/FTP/$1 ... &quot;</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ibottin<span style="color: #000000; font-weight: bold;">/</span>FTP<span style="color: #000000; font-weight: bold;">/</span>$<span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; OK&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #660033;">-n</span> <span style="color: #ff0000;">&quot; * Changement des permissions du dossier ... &quot;</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> <span style="color: #c20cb9; font-weight: bold;">ftp</span>:<span style="color: #c20cb9; font-weight: bold;">ftp</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ibottin<span style="color: #000000; font-weight: bold;">/</span>FTP<span style="color: #000000; font-weight: bold;">/</span>$<span style="color: #000000;">1</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #660033;">-R</span> <span style="color: #000000;">740</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ibottin<span style="color: #000000; font-weight: bold;">/</span>FTP<span style="color: #000000; font-weight: bold;">/</span>$<span style="color: #000000;">1</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; OK&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Terminé!&quot;</span></pre></td></tr></table></div>

</li>
<li>Rendre exécutable

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># chmod +x /usr/sbin/evo-vsftpd-user</span></pre></td></tr></table></div>

</li>
</ol>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Tester"></a>Tester</h3>
<ol>
<li>Installer le paquet pour tester
<div class="code panel" style="border-width: 1px;">
<div class="codeContent panelContent">

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># aptitude install ftp-ssl</span></pre></td></tr></table></div>

</div>
</div>
</li>
<li>Tester

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># ftp-ssl someserver.net 6123</span>
Connected to someserver.net.
<span style="color: #000000;">220</span> Un nom Quelconque FTP
Name <span style="color: #7a0874; font-weight: bold;">&#40;</span>someserver.net:renoirboulanger<span style="color: #7a0874; font-weight: bold;">&#41;</span>: ftpuser
<span style="color: #000000;">234</span> Proceed with negotiation.
<span style="color: #7a0874; font-weight: bold;">&#91;</span>SSL Cipher DES-XXXX-SHA<span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000;">331</span> Please specify the password.
Password:
<span style="color: #000000;">230</span> Login successful.
Remote system <span style="color: #7a0874; font-weight: bold;">type</span> is UNIX.
Using binary mode to transfer files.
<span style="color: #c20cb9; font-weight: bold;">ftp</span><span style="color: #000000; font-weight: bold;">&amp;</span>gt;</pre></td></tr></table></div>

<p><strong>Note</strong> [SSL Cipher DES-XXXX-SHA] est ce qu&#8217;on attend <img src='http://renoirboulanger.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ol>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Pourd%C3%A9boguer"></a>Pour déboguer</h3>
<p>Le feedback est assez difficile a avoir de la part de vsftpd, mais pour en voir plus:</p>
<ol>
<li>Pour le debug

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># vi /etc/vsftpd.conf</span>
~
<span style="color: #666666; font-style: italic;"># for debuging</span>
<span style="color: #007800;">log_ftp_protocol</span>=YES</pre></td></tr></table></div>

</li>
</ol>
<h3><a name="ComptesFTPvirtuel%28sansutilisateurlocal%29sousUbuntuavecvsFTPdetcryptoSSL-Ressources"></a>Ressources</h3>
<ul>
<li><a href="http://wjholden.com/vsftpd-help.html">vsftpd help</a></li>
<li><a href="http://vsftpd.beasts.org/vsftpd_conf.html">vsftpd.conf manpages</a></li>
<li><a href="http://my.afterdawn.com/ketola/blog_entry.cfm/1262/vsftpd_ssl_and_iptables">vsftpd SSL and iptables</a></li>
<li><a href="http://www.ubuntututorials.net/installing-vsftpd-using-text-file-for-virtual-users/">Installing vsftpd using text file for virtual users</a></li>
<li><a href="http://www.cyberciti.biz/tips/configure-vsfptd-secure-connections-via-ssl-tls.html">Vsftpd SSL / TLS FTP Server Configuration</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/04/procedure-pour-creer-un-serveur-ftp-securise-ssl-force-avec-usager-virtuels-sous-ubuntu-linux-avec-vsftpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Réalisation du Micro-site de l&#8217;Initiative Environnementale de la Ville de Sherbrooke [2006]</title>
		<link>http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/</link>
		<comments>http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 13:34:31 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[inexis]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2151</guid>
		<description><![CDATA[
Ce micro-site était une manière d&#8217;afficher aux citoyens de la Ville de Sherbrooke les ressources disponibles (en 2006) pour participer aux précautions relatives aux matières résiduelles domestiques et commerciales du territoire. Le site actuel est maintenant partie intégrante  du portail officiel.
Le travail avait été donné a Tatou communication visuelle de s&#8217;occuper du projet et [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1517" title="Environnement * Ville de Sherbrooke : Accueil" src="http://renoirboulanger.com/wp-content/uploads/2009/12/ENV_home2_Exemple.jpg" alt="Environnement * Ville de Sherbrooke : Accueil" width="690" height="360" /></p>
<p>Ce micro-site était une manière d&#8217;afficher aux citoyens de la <a href="http://www.ville.sherbrooke.qc.ca/">Ville de Sherbrooke</a> les ressources disponibles (en 2006) pour participer aux précautions relatives aux matières résiduelles domestiques et commerciales du territoire. Le site actuel est maintenant <a href="http://www.ville.sherbrooke.qc.ca/webconcepteur/web/VilledeSherbrooke/fr/ext/nav/Environnement.html">partie intégrante  du portail officiel</a>.</p>
<p>Le travail avait été donné a <a href="http://www.tatou.ca/">Tatou communication visuelle</a> de s&#8217;occuper du projet et <a href="http://renoirboulanger.com/blog/tag/inexis/">Inexis Solution Web Inc</a> était l&#8217;exécutant qui devait intégrer les maquettes graphiques pour les transformer en documents HTML.</p>
<p><span id="more-2151"></span></p>
<p><strong>A propos du projet</strong></p>
<p>Le but de ce site était de faire une version web du dépliant qui a circulé dans la ville pour faire savoir aux citoyens les mesures rendues disponibles par la ville.</p>
<p>Le site n&#8217;a pas duré très longtemps car un an et demi plus tard, environ, la ville a fait sa mise a jour majeure pour la version actuelle et a inclus tout ses micro-sites.</p>
<h3>Captures d&#8217;écrans</h3>

<a href='http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/env_nav_exemple1/' title='ENV_nav_Exemple1'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/04/ENV_nav_Exemple1-150x150.jpg" class="attachment-thumbnail" alt="" title="ENV_nav_Exemple1" /></a>
<a href='http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/scr_environement_1-2/' title='scr_environement_1'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/04/scr_environement_1-150x150.png" class="attachment-thumbnail" alt="" title="scr_environement_1" /></a>
<a href='http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/env_home2_exemple-2/' title='ENV_home2_Exemple'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/04/ENV_home2_Exemple-150x150.jpg" class="attachment-thumbnail" alt="" title="ENV_home2_Exemple" /></a>
<a href='http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/env_nav_exemple1-2/' title='Environnement Sherbrooke * Page intérieure avec menus CSS'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/04/ENV_nav_Exemple11-150x150.jpg" class="attachment-thumbnail" alt="" title="Environnement Sherbrooke * Page intérieure avec menus CSS" /></a>
<a href='http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/scr_environement_2-2/' title='Environnement Sherbrooke * Page intérieure'><img width="150" height="150" src="http://renoirboulanger.com/wp-content/uploads/2010/04/scr_environement_2-150x150.png" class="attachment-thumbnail" alt="" title="Environnement Sherbrooke * Page intérieure" /></a>

]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/04/realisation-du-micro-site-de-linitiative-environnementale-de-la-ville-de-sherbrooke-2006-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quelques options de configuration récurentes pour Apache, MySQL et PHP</title>
		<link>http://renoirboulanger.com/blog/2010/04/quelques-options-de-configuration-recurentes-pour-apache-mysql-et-php/</link>
		<comments>http://renoirboulanger.com/blog/2010/04/quelques-options-de-configuration-recurentes-pour-apache-mysql-et-php/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 19:12:47 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2138</guid>
		<description><![CDATA[J&#8217;était en train de configurer pour la ènième fois un des serveurs avec lequel je travaille et je réalise que je passe mon temps pour chercher comment configurer.
J&#8217;ai pensé vous fournir mes switch préférés.
Sortir les options du .htaccess
Il est recommandé d&#8217;utiliser un pannel pour les configurations. Question de sécurité, permettre a tout le monde de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-2143" style="border: none; float: right;" title="Apache Logo" src="http://renoirboulanger.com/wp-content/uploads/2010/04/apache_logo.png" alt="Apache" width="200" height="178" />J&#8217;était en train de configurer pour la ènième fois un des serveurs avec lequel je travaille et je réalise que je passe mon temps pour chercher comment configurer.</p>
<p>J&#8217;ai pensé vous fournir mes switch préférés.</p>
<h3>Sortir les options du <tt>.htaccess</tt></h3>
<p>Il est recommandé d&#8217;utiliser un pannel pour les configurations. Question de sécurité, permettre a tout le monde de modifier le serveur apache par un .htaccess, c&#8217;est dangeureux. Alors, j&#8217;ai mis la syntaxe pour l&#8217;ajouter au bloc du <tt>&lt;VirtualHost/&gt;</tt> directement.</p>
<p>Sous <strong>ISPConfig</strong> Simplement aller dans &#8220;Sites&#8221;, choisir un domaine, puis &#8220;Options&#8221;.<br />
<span id="more-2138"></span></p>
<h3>Configurations</h3>
<h4>Redirect de tout les domaines</h4>
<p>Ça permet d&#8217;éviter d&#8217;avoir l&#8217;indexation sur n&#8217;importequel domaine que celui voulu. Personnellement je n&#8217;aime pas les domaines www.truc.com car ça rallonge. Mais beaucoup de monde utilise encore cette syntaxe&#8230; alors j&#8217;utilise un bloc <tt>mod_rewrite</tt></p>
<p><tt></tt></p>
<p><tt></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="virtualhost" style="font-family:monospace;">RewriteEngine On
RewriteCond %{HTTP_HOST} !^renoirboulanger\.com
RewriteRule ^/(.*)         http://renoirboulanger.com/$1 [R=301]</pre></td></tr></table></div>

<h4>Encoding UTF-8 pour tous!!</h4>
<p>Vous savez les "é" et "√ä" caractères nuisibles, souvent dus au fait que soit; la base de donnée communique <em>pas</em> dans le même <em>Character Encoding</em> que ce que Apache donne comme document... et le document-type du html. Trois sources d'erreur. Plein de combinaisons possibles!</p>
<h5>Apache</h5>
<p></tt></p>
<p><tt>Ajouter au bloc </tt>&lt;VirtualHost/&gt; du site.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="virtualhost" style="font-family:monospace;">AddDefaultCharset utf-8</pre></td></tr></table></div>

<h5>MySQL</h5>
<p>Généralement (Debian et Ubuntu) dans &#8220;<tt>/etc/mysql/my.cnf</tt>&#8221;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>mysqld<span style="color: #7a0874; font-weight: bold;">&#93;</span>
default-character-set=utf8
~
<span style="color: #7a0874; font-weight: bold;">&#91;</span>mysql<span style="color: #7a0874; font-weight: bold;">&#93;</span>
default-character-set=utf8</pre></td></tr></table></div>

<h4>Augumenter la mémoire PHP</h4>
<p>Parceque WordPress semble partir des fois en balloune&#8230; j&#8217;aime mieux le configurer dans le bloc <tt>&lt;VirtualHost/&gt;</tt> par site qui vit ce problème.<br />
{code:title=Dans ISPConfig, Sites, sitename, Options}<br />
php_value memory_limit 56M<br />
{code}</p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/04/quelques-options-de-configuration-recurentes-pour-apache-mysql-et-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment dire à Apache le mime-type d&#8217;un document Office 2007</title>
		<link>http://renoirboulanger.com/blog/2010/04/comment-dire-a-apache-le-mime-type-dun-document-office-2007/</link>
		<comments>http://renoirboulanger.com/blog/2010/04/comment-dire-a-apache-le-mime-type-dun-document-office-2007/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:22:49 +0000</pubDate>
		<dc:creator>Renoir Boulanger</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sécurite]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://renoirboulanger.com/?p=2078</guid>
		<description><![CDATA[J&#8217;ai entendu parler de certains Problèmes avec les documents .docx qui son considérés comme étant des fichiers zip. J&#8217;ai pensé partager avec vous comment j&#8217;ai réparé la situation.
Il est possible que le serveur apache ne considère pas les fichiers doc sur le serveur comme étant des fichiers office. Normalement un navigateur téléchargera le fichier et [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai entendu parler de certains Problèmes avec les documents <strong>.docx</strong> qui son considérés comme étant des fichiers zip. J&#8217;ai pensé partager avec vous comment j&#8217;ai réparé la situation.</p>
<p>Il est possible que le serveur apache ne considère pas les fichiers doc sur le serveur comme étant des fichiers office. Normalement un navigateur téléchargera le fichier et ouvrira avec le programme qu&#8217;il considère comme étant le bon.</p>
<p>A moins que l&#8217;ordinateur du visiteur ait pas de bonne association de fichier, dans ce cas, on peut rien y faire.</p>
<p>Pour aider, on peut annoncer au serveur web les associations MIME.</p>
<p>Le problème avec cette méthode qui ne sert presque a rien, c&#8217;est que ça ne changera rien si</p>
<ol>
<li>Le visiteur n&#8217;a pas de bonne association sur son système d&#8217;exploitation</li>
<li>Le visiteur n&#8217;a pas Microsoft Office 2007 ou Open Office</li>
</ol>
<p><span id="more-2078"></span></p>
<h3>Procédure</h3>
<p>Copier-coller ce bloc dans un ou encore dans l&#8217;un ou l&#8217;autre:</p>
<ul>
<li>le <tt>.htaccess</tt> du site qui contient les fichiers a télécharger, exemple: <tt>public_html/</tt></li>
<li>le <tt>&lt;VirtualHost/&gt;</tt> dans le <tt>&lt;Directory&gt;</tt> associé.</li>
</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="htaccess" style="font-family:monospace;">AddType application/vnd.ms-word.document.macroEnabled.12 .docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-powerpoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx</pre></td></tr></table></div>

<p><strong>source:</strong><a href="http://www.webdeveloper.com/forum/showthread.php?t=162526">Webdeveloper.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://renoirboulanger.com/blog/2010/04/comment-dire-a-apache-le-mime-type-dun-document-office-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
