<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://fashion.hosmoz.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Digital Fashion - Geekeries</title>
  <link>http://fashion.hosmoz.net/</link>
  <description>Rien de grand ne se fit jamais sans enthousiasme.</description>
  <language>en</language>
  <pubDate>Fri, 04 Jul 2008 12:26:10 +0200</pubDate>
  <copyright>2003-2007 &amp;copy; Geoffrey Bachelet</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Apache and mod_rewrite to subdirectories</title>
    <link>http://fashion.hosmoz.net/post/2008/06/26/Apache-and-mod_rewrite-to-subdirectories</link>
    <guid isPermaLink="false">urn:md5:e1fd6a0a067fd54399d7439b28f06814</guid>
    <pubDate>Thu, 26 Jun 2008 18:17:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>apache</category><category>mod_rewrite</category><category>naneau</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://naneau.nl&quot;&gt;Naneau&lt;/a&gt; just poke me with a little problem he had with &lt;a href=&quot;http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html&quot;&gt;mod_rewrite&lt;/a&gt; when trying to rewrite to a subdirectory. Imagine you've got the following setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apache's document root is /document_root/&lt;/li&gt;
&lt;li&gt;You application's bootstrap is /document_root/public/index.php&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could come to the following rewrite rules quite easily:&lt;/p&gt;

&lt;pre&gt;
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/index.php/$1 [L]
&lt;/pre&gt;


&lt;p&gt;And you'd be horribly wrong.&lt;/p&gt;


&lt;p&gt;The problem here is that when you hit &lt;code&gt;/&lt;/code&gt; on your server, mod_rewrite will populate &lt;code&gt;%{REQUEST_FILENAME}&lt;/code&gt; it to &lt;code&gt;/document_root/&lt;/code&gt;, which obviously fails the &lt;code&gt;!-d&lt;/code&gt; rewrite condition. By the magic of &lt;code&gt;DirectoryIndex&lt;/code&gt;, you'll eventually hit &lt;code&gt;/index.html&lt;/code&gt; (or whatever your directory index is set to), and there we go for another rewrite magic. At this point, things get a little messy, and if you're like naneau, you'll end up crying while rolling on the floor and calling for help on irc (that's quite a set of hard things to achieve at the same time).&lt;/p&gt;


&lt;p&gt;The solution is not that simple, and actually, I've not found a fully satisfying solution yet (although naneau is satisfied with the partial solution). The quick hack is to simpy remove the &lt;code&gt;!-d&lt;/code&gt; condition. The obvious drawback is that any existing directory &lt;strong&gt;will&lt;/strong&gt; get rewritten, but you'll be able to access the files inside it. I'm still working on a more complete solution, but as it's not my main concerne for the moment, it'll wait a bit (unless someone posts a solution in the comments).&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2008/06/26/Apache-and-mod_rewrite-to-subdirectories#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2008/06/26/Apache-and-mod_rewrite-to-subdirectories#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/1107</wfw:commentRss>
      </item>
    
  <item>
    <title>Symfonians, un site pour les maestros en herbe</title>
    <link>http://fashion.hosmoz.net/post/2008/01/21/Symfonians-un-site-pour-les-maestros-en-herbe</link>
    <guid isPermaLink="false">urn:md5:0affcf89b7f27a2ea360dbc68f206e4d</guid>
    <pubDate>Mon, 21 Jan 2008 11:06:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>communauté</category><category>prendreuncafe</category><category>pub</category><category>symfonians</category><category>symfony</category>    
    <description>    &lt;p&gt;Les utilisateurs du framework &lt;a href=&quot;http://www.symfony-project.org/&quot;&gt;symfony&lt;/a&gt; ont désormais leur cafet' dédiée pour aller prendre un ptit café ! Pour résumer, &lt;a href=&quot;http://www.symfonians.net/&quot;&gt;symfonians&lt;/a&gt; se propose de réunir la petite communauté symfony autour de fonctionnalités aussi conviviales qu'utiles, telles que la création d'un profile développeur symfony, des offres d'emploi, ce genre de choses quoi. Le projet est chapoté par &lt;a href=&quot;http://www.prendreuncafe.com/&quot;&gt;NiKo&lt;/a&gt;, ce qui au moins est un gage de bonne qualité.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2008/01/21/Symfonians-un-site-pour-les-maestros-en-herbe#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2008/01/21/Symfonians-un-site-pour-les-maestros-en-herbe#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/1082</wfw:commentRss>
      </item>
    
  <item>
    <title>Zend Framework 1.0.3 PEAR package</title>
    <link>http://fashion.hosmoz.net/post/2008/01/02/Zend-Framework-103-PEAR-package</link>
    <guid isPermaLink="false">urn:md5:89dd71f9a10d4805182d561de4012180</guid>
    <pubDate>Wed, 02 Jan 2008 23:50:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>package</category><category>pear</category><category>phpmafia</category><category>zend framework</category>    
    <description>    &lt;p&gt;Just to say I packaged the 1.0.3 version of the zend framework on the phpmafia pear channel. It's a bit late I know, but at least it's here. Please note that I already have been notified of a problem regarding the Zend Locale's xml datafiles and that I hope to have worked out a solution for the next release (1.5 if all goes well).&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2008/01/02/Zend-Framework-103-PEAR-package#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2008/01/02/Zend-Framework-103-PEAR-package#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/1080</wfw:commentRss>
      </item>
    
  <item>
    <title>Ubuntu est chez Dell</title>
    <link>http://fashion.hosmoz.net/post/2007/09/21/Ubuntu-est-chez-Dell</link>
    <guid isPermaLink="false">urn:md5:af8dad27b814b1313254fef74b8ec7df</guid>
    <pubDate>Fri, 21 Sep 2007 12:21:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>dell</category><category>linux</category><category>matériel</category><category>sympa</category><category>ubuntu</category>    
    <description>    &lt;p&gt;Je ne sais pas si c'est récent ou non, mais toujours est-il qu'hier j'ai remarqué sur  &lt;a href=&quot;http://www.dell.fr/&quot;&gt;le site de dell france&lt;/a&gt; la &lt;a href=&quot;http://www.dell.fr/ubuntu&quot;&gt;posibilité d'acheter un ordinateur dell équipé d'Ubuntu Linux&lt;/a&gt;. L'initiative est vraiment sympa, d'autant plus que le matériel proposé me semble tout à fait abordable: on arrive à une configuration desktop équipée d'un core duo et d'1 Go de ram plus un écran 19 pouces pour moins de 600 euros (livraison comprise). J'achète.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/09/21/Ubuntu-est-chez-Dell#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/09/21/Ubuntu-est-chez-Dell#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/1037</wfw:commentRss>
      </item>
    
  <item>
    <title>Quand ssh est mou</title>
    <link>http://fashion.hosmoz.net/post/2007/09/07/Quand-ssh-est-mou</link>
    <guid isPermaLink="false">urn:md5:f585d294c259143640f57fe5925ce786</guid>
    <pubDate>Fri, 07 Sep 2007 11:58:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>feisty</category><category>lent</category><category>mou</category><category>slow</category><category>ssh</category><category>ubuntu</category>    
    <description>    &lt;p&gt;Juste pour mémoire: &lt;a href=&quot;http://www.refreshinglyblue.com/2007/5/18/long-delay-before-ssh-authentication&quot; title=&quot;http://www.refreshinglyblue.com/2007/5/18/long-delay-before-ssh-authentication&quot;&gt;http://www.refreshinglyblue.com/200...&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/09/07/Quand-ssh-est-mou#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/09/07/Quand-ssh-est-mou#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/1016</wfw:commentRss>
      </item>
    
  <item>
    <title>Quick php5 pre-migration check</title>
    <link>http://fashion.hosmoz.net/post/2007/08/30/Quick-php5-pre-migration-check</link>
    <guid isPermaLink="false">urn:md5:2e44d92a67a44664619078b9766c1b5f</guid>
    <pubDate>Thu, 30 Aug 2007 11:57:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>migration</category><category>php</category><category>php5</category><category>quick</category><category>syntax check</category><category>tips</category>    
    <description>    &lt;p&gt;If you're wondering how much of a hassle it would be to migrate your app / codebase to php5, try the following command line (after having installed the php5-cli package of course):&lt;/p&gt;


&lt;pre&gt;find . -name &amp;quot;*.php&amp;quot; -exec /usr/bin/php5 -l {} \; | grep -v 'No syntax errors'&lt;/pre&gt;


&lt;p&gt;It'll show you all the files with syntax errors in it.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/08/30/Quick-php5-pre-migration-check#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/08/30/Quick-php5-pre-migration-check#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/1006</wfw:commentRss>
      </item>
    
  <item>
    <title>Mon nouveau keupin Diboug</title>
    <link>http://fashion.hosmoz.net/post/2007/06/30/Mon-nouveau-keupin-Diboug</link>
    <guid isPermaLink="false">urn:md5:40326b71e17449ebe91d0d331d0f44ee</guid>
    <pubDate>Sat, 30 Jun 2007 13:58:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>diboug</category><category>geek</category><category>indispensable</category><category>inutile</category><category>nabaztag</category>    
    <description>    &lt;p&gt;Hier j'ai acheté un &lt;a href=&quot;http://www.nabaztag.com/&quot;&gt;nabaztag/tag&lt;/a&gt; hier, il s'appelle Diboug, et vu qu'il existe une &lt;acronym&gt;API&lt;/acronym&gt; a peu près potable pour le programmer, je prédis tout un tas de fun dans les jours qui viennent :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/06/30/Mon-nouveau-keupin-Diboug#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/06/30/Mon-nouveau-keupin-Diboug#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/871</wfw:commentRss>
      </item>
    
  <item>
    <title>Google Gears</title>
    <link>http://fashion.hosmoz.net/post/2007/05/31/Google-Gears</link>
    <guid isPermaLink="false">urn:md5:99f7c521434927fe2c3749b689ccd233</guid>
    <pubDate>Thu, 31 May 2007 10:09:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>ajax</category><category>firefox</category><category>google</category><category>google gears</category><category>javascript</category><category>offline</category><category>roxitude</category><category>sqlite</category>    
    <description>    &lt;p&gt;La dernière petite roxitude de google: &lt;a href=&quot;http://gears.google.com/&quot;&gt;Google Gears&lt;/a&gt;, une extension firefox qui embarque une base SQLite pour faciliter le développement d'applications offline.&lt;/p&gt;


&lt;p&gt;on en parle &lt;a href=&quot;http://ajaxian.com/archives/audible-ajax-episode-21-dojo-offline-on-google-gears&quot;&gt;là&lt;/a&gt;, &lt;a href=&quot;http://www.sitepoint.com/blogs/2007/05/31/gdd07-google-gears-%e2%80%93-bringing-server-client-even-closer/&quot;&gt;là&lt;/a&gt; et puis aussi &lt;a href=&quot;http://www.theage.com.au/news/biztech/gears-puts-google-in-the-drivers-seat/2007/05/31/1180205350391.html&quot;&gt;là&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/05/31/Google-Gears#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/05/31/Google-Gears#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/825</wfw:commentRss>
      </item>
    
  <item>
    <title>Are you no the list ?</title>
    <link>http://fashion.hosmoz.net/post/2007/04/26/Are-you-no-the-list</link>
    <guid isPermaLink="false">urn:md5:9813c37b8c085ae235c1594ae0171937</guid>
    <pubDate>Thu, 26 Apr 2007 14:51:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>baf</category><category>bookmarks</category><category>geek</category><category>heroes</category><category>liens</category><category>planhq</category><category>tendance</category><category>transformers</category>    
    <description>    &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.nbcuniversalstore.com/index.php?v=nbunbcnowherall&quot;&gt;La boutique officielle de Heroes&lt;/a&gt;, pour les gros drogués.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bouleafacettes.blogspot.com/&quot;&gt;Boule à facettes&lt;/a&gt;, pour les gens tendance.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.planhq.com/home/&quot;&gt;PlanHQ&lt;/a&gt;, pour les apprentis businessmen.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.engadget.com/2007/04/25/takara-tomys-transformers-earphones/&quot;&gt;Transformers earphones&lt;/a&gt;, pour les nostalgeeks.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/04/26/Are-you-no-the-list#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/04/26/Are-you-no-the-list#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/776</wfw:commentRss>
      </item>
    
  <item>
    <title>SVN: MKACTIVITY Could not parse response status line.</title>
    <link>http://fashion.hosmoz.net/post/2007/04/15/SVN%3A-MKACTIVITY-Could-not-parse-response-status-line</link>
    <guid isPermaLink="false">urn:md5:1012a9135b8196acf0158d277f4f6e09</guid>
    <pubDate>Sun, 15 Apr 2007 21:59:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>bug</category><category>mkactivity</category><category>proxy</category><category>squid</category><category>svn</category>    
    <description>    &lt;p&gt;Un petit billet pour un problème qui ne bénéficie que d'une faible visibilité sur google. Si votre client &lt;acronym&gt;SVN&lt;/acronym&gt; vous jette avec un message du genre:&lt;/p&gt;


&lt;pre&gt;svn: MKACTIVITY de '/pwnd/!svn/act/a4eec923-2c2e-0410-a786-c01cbd856e8f': Could not parse response status line. (http://svn.phpmafia.net)&lt;/pre&gt;


&lt;p&gt;Vérifiez que vous n'êtes pas derrière un proxy, ça peut venir de là.&lt;/p&gt;


&lt;p&gt;cf: &lt;a href=&quot;http://devjavu.jellybb.com/viewtopic.php?id=60&quot;&gt;DevjaVu Forums&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/04/15/SVN%3A-MKACTIVITY-Could-not-parse-response-status-line#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/04/15/SVN%3A-MKACTIVITY-Could-not-parse-response-status-line#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/759</wfw:commentRss>
      </item>
    
  <item>
    <title>Mini Howto: Serveur et Packages PEAR</title>
    <link>http://fashion.hosmoz.net/post/2007/03/02/Mini-Howto%3A-Serveur-et-Packages-PEAR</link>
    <guid isPermaLink="false">urn:md5:a4af0a22fcb4f4e307699e4207bc6406</guid>
    <pubDate>Fri, 02 Mar 2007 12:11:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>chiara</category><category>doc</category><category>howto</category><category>package</category><category>pear</category><category>php</category>    
    <description>    &lt;p&gt;Pour installer le serveur &lt;acronym&gt;PEAR&lt;/acronym&gt;, c'est simple:&lt;/p&gt;


&lt;pre&gt;pear channel-discover pear.chiaraquartet.net
pear install chiara/Chiara_PEAR_Server
pear run-scripts Chiara_PEAR_Server&lt;/pre&gt;


&lt;p&gt;Ensuite on répond aux question, et c'est automagique.&lt;/p&gt;


&lt;p&gt;Après, pour créer des packages, ça se corse. Tout d'abord, on a besoin de &lt;code&gt;PEAR_PackageFileManager&lt;/code&gt;:&lt;/p&gt;


&lt;pre&gt;pear install PEAR_PackageFileManager&lt;/pre&gt;


&lt;p&gt;Ensuite, le but est de générer les &lt;code&gt;package.xml&lt;/code&gt; qui vont bien. Voilà comment j'ai procédé pour le package &lt;code&gt;Zend&lt;/code&gt;:&lt;/p&gt;


&lt;pre&gt;mkdir -p ~/pear/zend/src &amp;amp;&amp;amp; cd ~/pear/zend
wget http://framework.zend.com/download/tgz -O - | tar xzC ~
mv ~/ZendFramework-0.8.0/library/Zend* src/
php ./mkpkg.php make
cd src &amp;amp;&amp;amp; pear package&lt;/pre&gt;


&lt;p&gt;Ceux qui ont bien suivi auront noté que &lt;code&gt;mkpkg.php&lt;/code&gt; est sorti un peu de l'espace :-) Vous trouverez son contenu à la fin du billet.&lt;/p&gt;


&lt;p&gt;Pour résumer, on créé un répertoire de travail (&lt;code&gt;~/pear/zend/&lt;/code&gt;), dans lequel on créé un répertoire &lt;code&gt;src&lt;/code&gt;, qui contiendra tous les fichiers du package, puis le script &lt;code&gt;mkpkg.php&lt;/code&gt; se charge 1) d'analyser le contenu de &lt;code&gt;src&lt;/code&gt;, et 2) de créer le &lt;code&gt;package.xml&lt;/code&gt; qui va bien, selon les instructions qui lui sont fournies.&lt;/p&gt;


&lt;p&gt;Nous disposons désormais  d'un package &lt;code&gt;Zend-0.8.0.tgz&lt;/code&gt; dans &lt;code&gt;~/pear/zend/src&lt;/code&gt;, que nous n'avons plus qu'a uploader via l'interface d'administration du serveur &lt;acronym&gt;PEAR&lt;/acronym&gt; précédemment installé :-)&lt;/p&gt;


&lt;p&gt;Le fichier &lt;code&gt;mkpkg.php&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;
&amp;lt;?php

require_once('PEAR/PackageFileManager2.php');

PEAR::setErrorHandling(PEAR_ERROR_DIE);

$packagexml = new PEAR_PackageFileManager2;

$e = $packagexml-&amp;gt;setOptions(array(
    'baseinstalldir' =&amp;gt; '/',
    'packagedirectory' =&amp;gt; dirname(__FILE__).'/src',
));

$packagexml-&amp;gt;setPackage('Zend');
$packagexml-&amp;gt;setSummary('Zend Framework');
$packagexml-&amp;gt;setDescription('The Zend\'s PHP Framework');
$packagexml-&amp;gt;setChannel('pear.phpmafia.net');
$packagexml-&amp;gt;setAPIVersion('0.8.0');
$packagexml-&amp;gt;setReleaseVersion('0.8.0');
$packagexml-&amp;gt;setReleaseStability('devel');
$packagexml-&amp;gt;setAPIStability('devel');
$packagexml-&amp;gt;setNotes(&amp;quot;Still a preview release&amp;quot;);
$packagexml-&amp;gt;setPackageType('php'); // this is a PEAR-style php script package
$packagexml-&amp;gt;addRelease(); // set up a release section
$packagexml-&amp;gt;setPhpDep('5.1.2');
$packagexml-&amp;gt;setPearinstallerDep('1.4.0a12');
$packagexml-&amp;gt;addMaintainer('lead', 'ash', 'Geoffrey Bachelet', 'geoffrey+pear@zubrowka.org');
$packagexml-&amp;gt;setLicense('New BSD License', 'http://framework.zend.com/license/new-bsd');
$packagexml-&amp;gt;generateContents(); // create the &amp;lt;contents&amp;gt; tag

$pkg = &amp;amp;$packagexml-&amp;gt;exportCompatiblePackageFile1(); // get a PEAR_PackageFile object

if (isset($_GET['make']) || (isset($_SERVER['argv']) &amp;amp;&amp;amp; @$_SERVER['argv'][1] == 'make')) {
    $pkg-&amp;gt;writePackageFile();
    $packagexml-&amp;gt;writePackageFile();
} else {
    $pkg-&amp;gt;debugPackageFile();
    $packagexml-&amp;gt;debugPackageFile();
}

?&amp;gt;
&lt;/pre&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/03/02/Mini-Howto%3A-Serveur-et-Packages-PEAR#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/03/02/Mini-Howto%3A-Serveur-et-Packages-PEAR#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/751</wfw:commentRss>
      </item>
    
  <item>
    <title>Channel PEAR PHPMafia, package Zend Framework</title>
    <link>http://fashion.hosmoz.net/post/2007/02/27/Channel-PEAR-PHPMafia-package-Zend-Framework</link>
    <guid isPermaLink="false">urn:md5:81eeb93540b56b9ad888c53344e17090</guid>
    <pubDate>Tue, 27 Feb 2007 00:02:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>pear</category><category>php</category><category>phpmafia</category><category>zend framework</category>    
    <description>    &lt;p&gt;Au lieu de partir faire du vélo ce soir, j'ai livré bataille avec &lt;a href=&quot;http://pear.php.net/&quot;&gt;PEAR&lt;/a&gt;. Livré bataille c'est le mot, vu le manque flagrant de documentation sur la création de serveur et packages &lt;acronym&gt;PEAR&lt;/acronym&gt;, mais j'ai finalement réussi, grâce &lt;del&gt;au &lt;a href=&quot;http://schlitt.info/applications/blog/index.php?/archives/308-Set-up-your-own-PEAR-channel.html&quot;&gt;tutorial de Tobias Schlitt&lt;/a&gt; (un peu modifié)&lt;/del&gt; à &lt;a href=&quot;http://www.limbourg.com/arnaud/blog/&quot;&gt;Arnaud Limbourg&lt;/a&gt;. Bref, j'ai le plaisir de vous annoncer la disponibilité immédiate du &lt;a href=&quot;http://pear.phpmafia.net/&quot;&gt;Channel PEAR PHPMafia&lt;/a&gt;, qui héberge pour l'instant un unique package: &lt;code&gt;Zend-0.8.0&lt;/code&gt;. Pour l'installer, vous devez d'abord &lt;em&gt;présenter&lt;/em&gt; le channel à votre installeur pear:&lt;/p&gt;


&lt;pre&gt;pear channel-discover pear.phpmafia.net&lt;/pre&gt;


&lt;p&gt;Puis vous devriez être en mesure d'installer le &lt;a href=&quot;http://framework.zend.com/&quot;&gt;Zend Framework&lt;/a&gt; via un &lt;code&gt;pear install&lt;/code&gt; classique:&lt;/p&gt;


&lt;pre&gt;pear install phpmafia/Zend-0.8.0&lt;/pre&gt;


&lt;p&gt;On spécifie la version vu que le package est en stabilité &lt;em&gt;devel&lt;/em&gt;, pour coller au status &lt;em&gt;preview&lt;/em&gt; du Zend Framework.&lt;/p&gt;


&lt;p&gt;Vu comment j'ai galéré pour en arriver là, j'ai certains doutes sur le caractère 100% &lt;em&gt;komifo&lt;/em&gt; de l'installation, donc j'apprécierais tout retour de bug et anomalies diverses que vous pourriez rencontrer à l'utilisation de ce channel, à pear@phpmafia.net par exemple, ou dans les commentaires de ce billet :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/02/27/Channel-PEAR-PHPMafia-package-Zend-Framework#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/02/27/Channel-PEAR-PHPMafia-package-Zend-Framework#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/748</wfw:commentRss>
      </item>
    
  <item>
    <title>PHPMafia et OPML</title>
    <link>http://fashion.hosmoz.net/post/2007/02/06/PHPMafia-et-OPML</link>
    <guid isPermaLink="false">urn:md5:304fd8ac8ecf6f8f5e9da5de215678c4</guid>
    <pubDate>Tue, 06 Feb 2007 14:20:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>dedibox</category><category>opml</category><category>php</category><category>phpmafia</category><category>rss</category><category>wishlist</category>    
    <description>    &lt;p&gt;Un petit billet pour dire deux chose: d'abord le site a été migré sur ma dedibox, d'où la coupure de service que certains ont pu constater. Deuxième chose, je suis à la recherche d'une appli de gestion d'&lt;acronym&gt;OPML&lt;/acronym&gt; qui gère l'attribut &lt;em&gt;htmlUrl&lt;/em&gt; (automatiquement à partir du noeud &lt;code&gt;/channel/link&lt;/code&gt; d'un &lt;acronym&gt;RSS&lt;/acronym&gt;). Voili voilou.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/02/06/PHPMafia-et-OPML#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/02/06/PHPMafia-et-OPML#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/743</wfw:commentRss>
      </item>
    
  <item>
    <title>Ergonomie d'un blog</title>
    <link>http://fashion.hosmoz.net/post/2007/02/06/Ergonomie-dun-blog</link>
    <guid isPermaLink="false">urn:md5:07236eaaf779b167e98bc746cc86d29f</guid>
    <pubDate>Tue, 06 Feb 2007 10:27:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>bonnes pratiques</category><category>clichés</category><category>concepts</category><category>ergonomie</category><category>interfaces utilisateurs</category><category>opinions</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://www.biologeek.com/journal/index.php/ergonomie-d-un-blog-analyse-des-reponses&quot;&gt;Petite étude rapide sur l'ergonomie des blogs&lt;/a&gt;, chez Biologeek. Le panel représentatif est peut-être un peu faible, mais l'analyse compense :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/02/06/Ergonomie-dun-blog#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/02/06/Ergonomie-dun-blog#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/742</wfw:commentRss>
      </item>
    
  <item>
    <title>Remplacer un caractère par un &quot;Carriage Return&quot; dans vim</title>
    <link>http://fashion.hosmoz.net/post/2007/01/03/Remplacer-un-caractere-par-un-Carriage-Return-dans-vim</link>
    <guid isPermaLink="false">urn:md5:262aed0ad72a0fbf7adfd05d63caefe3</guid>
    <pubDate>Wed, 03 Jan 2007 11:04:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>howto</category><category>substitute</category><category>vim</category>    
    <description>    &lt;p&gt;Par exemple, imaginons qu'on récupère une query string, et qu'on veuille
l'exploser sur plusieurs lignes, on peut faire:&lt;/p&gt;
&lt;pre&gt;
:s/&amp;amp;/\=&amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;/g
&lt;/pre&gt;
&lt;p&gt;le &lt;code&gt;\=&amp;quot;&amp;quot;&lt;/code&gt; annonce à &lt;acronym&gt;VIM&lt;/acronym&gt; que la chaine de
substitution sera une chaine a interpréter avant utilisation, et le
&lt;code&gt;\&amp;lt;CR&amp;gt;&lt;/code&gt; représente tout simplement le &lt;em&gt;Carriage
Return&lt;/em&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2007/01/03/Remplacer-un-caractere-par-un-Carriage-Return-dans-vim#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2007/01/03/Remplacer-un-caractere-par-un-Carriage-Return-dans-vim#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/736</wfw:commentRss>
      </item>
    
  <item>
    <title>Migrer un dépot subversion</title>
    <link>http://fashion.hosmoz.net/post/2006/11/09/Migrer-un-depot-subversion</link>
    <guid isPermaLink="false">urn:md5:84c41cd08be4b33fce92f3f42254d080</guid>
    <pubDate>Thu, 09 Nov 2006 17:25:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>doc</category><category>howto</category><category>svn</category><category>unix</category>    
    <description>    &lt;p&gt;Imaginons que vous souhaitiez déplacer votre dépôt subversion &lt;em&gt;myproject&lt;/em&gt; d'une machine &lt;em&gt;old-server&lt;/em&gt; à une machine &lt;em&gt;new-server&lt;/em&gt;. Vite fait, bien fait:&lt;/p&gt;


&lt;pre&gt;old-server# svnadmin dump /var/lib/subversion/myproject &amp;gt; ~/myproject.svndump
old-server# scp ~/myproject.svndump new-server:
new-server# svnadmin create /var/lib/subversion/myproject
new-server# svnadmin load /var/lib/subversion/myproject &amp;lt; ~/myproject.svndump&lt;/pre&gt;


&lt;p&gt;&lt;strong&gt;Attention&lt;/strong&gt;, il vous faut par contre migrer vos éventuelles &lt;em&gt;hooks&lt;/em&gt; à la main, ils ne sont effectivement pas gérés par &lt;code&gt;svndump&lt;/code&gt;. Une autre méthode, incluant les &lt;em&gt;hooks&lt;/em&gt; celle-ci, serait d'utiliser &lt;code&gt;svnadmin hotcopy&lt;/code&gt;, mais je n'ai pas testé.&lt;/p&gt;


&lt;p&gt;Plus d'infos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.ref.svnadmin.c.dump.html&quot;&gt;svnadmin help dump&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.ref.svnadmin.c.load.html&quot;&gt;svnadmin help load&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svnbook.red-bean.com/nightly/en/svn.ref.svnadmin.c.hotcopy.html&quot;&gt;svnadmin help hotcopy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2006/11/09/Migrer-un-depot-subversion#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2006/11/09/Migrer-un-depot-subversion#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/716</wfw:commentRss>
      </item>
    
  <item>
    <title>Incubated</title>
    <link>http://fashion.hosmoz.net/post/2006/11/01/Incubated</link>
    <guid isPermaLink="false">urn:md5:7a9cdfbfea0dc5e4f1cc96795fdb0db3</guid>
    <pubDate>Wed, 01 Nov 2006 16:10:00 +0100</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>bonnes pratiques</category><category>doc</category><category>google</category><category>librairie</category><category>microformats</category><category>optimisation</category><category>organisation</category><category>php</category><category>sso</category><category>svn</category><category>sécurité</category><category>ubuntu</category><category>unit testing</category><category>unix</category><category>way of life</category>    
    <description>&lt;p&gt;Les liens interressants (ou pas) de la semaine:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://microformats.org/&quot; title=&quot;http://microformats.org/&quot;&gt;http://microformats.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.georss.org/&quot; title=&quot;http://www.georss.org/&quot;&gt;http://www.georss.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.thinkvitamin.com/features/ajax/create-a-searchable-google-map&quot; title=&quot;http://www.thinkvitamin.com/features/ajax/create-a-searchable-google-map&quot;&gt;http://www.thinkvitamin.com/feature...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://features.launchpad.net/distros/ubuntu/+specs&quot; title=&quot;https://features.launchpad.net/distros/ubuntu/+specs&quot;&gt;https://features.launchpad.net/dist...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://iwantmyopenid.org/bounty&quot; title=&quot;http://iwantmyopenid.org/bounty&quot;&gt;http://iwantmyopenid.org/bounty&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://devzone.zend.com/node/view/id/1113&quot; title=&quot;http://devzone.zend.com/node/view/id/1113&quot;&gt;http://devzone.zend.com/node/view/i...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://weierophinney.net/matthew/uploads/php_development_best_practices.pdf&quot; title=&quot;http://weierophinney.net/matthew/uploads/php_development_best_practices.pdf&quot;&gt;http://weierophinney.net/matthew/up...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;    &lt;p&gt;J'ai pas mal entendu parler des microformats ces derniers temps, sans vraiment prendre le temps de me pencher dessus. &lt;a href=&quot;http://www.microformats.org/&quot;&gt;microformats.org&lt;/a&gt; présente l'occasion de se plonger dedans et de comprendre que finalement, les microformats peuvent être un facteur de développement non négligeable pour un site ou une application web. &lt;a href=&quot;http://www.georss.org/&quot;&gt;GeoRSS&lt;/a&gt; de son côté propose une implémentation &lt;em&gt;simple&lt;/em&gt; et &lt;em&gt;puissante&lt;/em&gt; (c'est eux qui le disent) du &lt;a href=&quot;http://en.wikipedia.org/wiki/Geotagging&quot;&gt;Geotagging&lt;/a&gt;. A voir si on ne peut pas coupler tout ça avec quelques pirouettes sur &lt;a href=&quot;http://fashion.hosmoz.net/post/2006/11/01/&quot;&gt;Google Maps&lt;/a&gt;...&lt;/p&gt;


&lt;p&gt;Pendant ce temps, chez Canonical, on établit déjà les &lt;a href=&quot;https://features.launchpad.net/distros/ubuntu/+specs&quot;&gt;specifications fonctionnelles de Feisty Fawn&lt;/a&gt;, et c'est assez prometteur :-)&lt;/p&gt;


&lt;p&gt;Enfin, dans le petit monde du &lt;acronym&gt;PHP&lt;/acronym&gt; et du webdev en général, il n'est jamais trop tard pour souligner l'existence de protocoles d'authentification centralisée libres comme &lt;a href=&quot;http://openid.net/&quot;&gt;OpenID&lt;/a&gt;, qui de plus à lancé un &lt;em&gt;concours&lt;/em&gt; d'implémentation sous forme de &lt;a href=&quot;http://iwantmyopenid.org/bounty&quot;&gt;bounties&lt;/a&gt; ! On notera également les débuts de &lt;a href=&quot;http://devzone.zend.com/node/view/id/1113&quot;&gt;l'extension d' input filtering pour PHP&lt;/a&gt;, qui promet de simplifier grandement la validation de données externes dans les applis &lt;acronym&gt;PHP&lt;/acronym&gt;. Enfin, &lt;a href=&quot;http://weierophinney.net/matthew/uploads/php_development_best_practices.pdf&quot;&gt;les slides de la conférences PHP Best Practices&lt;/a&gt; qui a eu lieu à la ZendCon, c'est vraiment rempli de bons conseils.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2006/11/01/Incubated#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2006/11/01/Incubated#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/711</wfw:commentRss>
      </item>
    
  <item>
    <title>Relayer un stream audio avec icecast2</title>
    <link>http://fashion.hosmoz.net/post/2006/10/20/Relayer-un-stream-audio-avec-icecast2</link>
    <guid isPermaLink="false">urn:md5:0df1adaf1cd213b3a277c6eb891f838d</guid>
    <pubDate>Fri, 20 Oct 2006 22:05:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>bidouille</category><category>configuration</category><category>doc</category><category>howto</category><category>optimisation</category><category>rigolo</category><category>ubuntu</category><category>unix</category><category>way of life</category><category>work</category>    
    <description>    &lt;p&gt;Pour économiser la bande passante au boulot, j'ai décidé de relayer le stream &lt;em&gt;Club !&lt;/em&gt; de &lt;a href=&quot;http://1.fm/&quot;&gt;1.fm&lt;/a&gt; sur le &lt;acronym&gt;LAN&lt;/acronym&gt;. Après avoir vainement tenté d'utiliser streamripper (on verra plus tard pourquoi vainement), j'ai sorti l'artillerie lourde: &lt;a href=&quot;http://www.icecast.org/&quot;&gt;icecast2&lt;/a&gt;:&lt;/p&gt;


&lt;pre&gt;sudo apt-get install icecast2&lt;/pre&gt;


&lt;p&gt;Si on sait un peu lire, le script de post-configuration nous incite à aller fourrer notre nez dans &lt;code&gt;/etc/default/icecast2&lt;/code&gt;, où l'on apprend (vers la fin) que icecast est désactivé par défaut à cause de la directive &lt;code&gt;ENABLED=false&lt;/code&gt;. C'est en fait une feinte pour nous pousser à configurer le bousin (de toute façon si on le configure pas, il marchera pas). Direction &lt;code&gt;/etc/icecast2/icecast.xml&lt;/code&gt; donc, pour un brin de configuration (les explications qui suivent se basent sur le fichier par défaut d'une installation sur une ubuntu).&lt;/p&gt;


&lt;p&gt;La première partie qui nous interresse s'intitule &lt;code&gt;authentication&lt;/code&gt; (vers la ligne 23). Elle contient les informations d'authentification pour les clients qui se connectent en tant que source (&lt;code&gt;source-password&lt;/code&gt;), les serveurs qui se connectent en tant que slave (&lt;code&gt;relay-password&lt;/code&gt;, en fait je ne suis pas sur à 100%, c'est une déduction) et pour l'interface d'administration (&lt;code&gt;admin-user&lt;/code&gt; et &lt;code&gt;admin-password&lt;/code&gt;). Une fois ces informations modifiées, direction la directive &lt;code&gt;hostname&lt;/code&gt;, qu'on remplira avec au choix, le nom de la machine, son ip, etc. J'ai personellement mis l'ip privée de ma machine (&lt;code&gt;172.16.x.y&lt;/code&gt;), pour que ça correspondent à la prochaine directive qui nous interresse: &lt;code&gt;listen-socket&lt;/code&gt;. Ici on définit le port et l'ip sur laquelle icecast va écouter. En gros, si vous spécifier &lt;code&gt;127.0.0.1&lt;/code&gt;, votre serveur de streaming ne sera accessible qu'en local. On y met donc en général la même chose que dans &lt;code&gt;hostname&lt;/code&gt; (&lt;code&gt;172.16.x.y&lt;/code&gt; par exemple), avec un port qui va bien, libre de préférence (&lt;code&gt;8000&lt;/code&gt; par défaut).&lt;/p&gt;


&lt;p&gt;Maintenant on passe a la partie qui nous interresse vraiment, la section &lt;code&gt;relay&lt;/code&gt;. Rien de bien compliqué ici. Le stream que je souhaite relayer se trouve là: http://64.62.253.223:8060/, or icecast nous demande un &lt;code&gt;server&lt;/code&gt;, un &lt;code&gt;port&lt;/code&gt;, un &lt;em&gt;point de montage&lt;/em&gt; (&lt;code&gt;mount&lt;/code&gt;) et un &lt;em&gt;point de montage local&lt;/em&gt; (&lt;code&gt;local-mount&lt;/code&gt;). Vous avez déjà compris qu'on arrive a cette configuration:&lt;/p&gt;


&lt;pre&gt;   &amp;lt;relay&amp;gt;
       &amp;lt;server&amp;gt;64.62.253.223&amp;lt;/server&amp;gt;
       &amp;lt;port&amp;gt;8060&amp;lt;/port&amp;gt;
       &amp;lt;mount&amp;gt;/&amp;lt;/mount&amp;gt;
       &amp;lt;local-mount&amp;gt;/1.fm&amp;lt;/local-mount&amp;gt;
       &amp;lt;on-demand&amp;gt;0&amp;lt;/on-demand&amp;gt;
       &amp;lt;relay-shoutcast-metadata&amp;gt;1&amp;lt;/relay-shoutcast-metadata&amp;gt;
   &amp;lt;/relay&amp;gt;&lt;/pre&gt;


&lt;p&gt;Ainsi parés, il ne nous reste plus qu'a lancer modifier la directive &lt;code&gt;ENABLED=false&lt;/code&gt; en &lt;code&gt;ENABLED=true&lt;/code&gt; dans &lt;code&gt;/etc/default/icecast2&lt;/code&gt; et à lancer icecast:&lt;/p&gt;


&lt;pre&gt;sudo /etc/init.d/icecast2 start&lt;/pre&gt;


&lt;p&gt;Si vous avez bien tout fait, vous devriez pouvoir streamer depuis &lt;code&gt;http://172.16.x.y:8000/1.fm&lt;/code&gt;, et vos collègues également ! Vous pouvez avoir une vue d'ensemble du serveur ainsi que quelques options d'administration en vous rendant sur l'interface d'admin: http://172.16.x.y:8000/ et en utilisant &lt;code&gt;admin-user&lt;/code&gt; et &lt;code&gt;admin-password&lt;/code&gt; pour vous authentifier.&lt;/p&gt;


&lt;p&gt;A cela on peut ajouter un petit &lt;code&gt;streamripper&lt;/code&gt;:&lt;/p&gt;


&lt;pre&gt;streamripper http://172.16.x.y:8000/1.fm -d ~/streamripped&lt;/pre&gt;


&lt;p&gt;Pour enregistrer. En parlant de streamripper, j'avais tenté au début de relayer avec &lt;code&gt;streamripper -r&lt;/code&gt;, mais malgrès les apparences du &lt;code&gt;netstat -pl&lt;/code&gt; (&lt;code&gt;*:8000 LISTEN&lt;/code&gt;), il ne bind qu'en local, donc impossible d'en faire profiter les collègues :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2006/10/20/Relayer-un-stream-audio-avec-icecast2#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2006/10/20/Relayer-un-stream-audio-avec-icecast2#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/692</wfw:commentRss>
      </item>
    
  <item>
    <title>Vous prendrez bien un peu de ssh avec votre tunnel ?</title>
    <link>http://fashion.hosmoz.net/post/2006/10/20/Vous-prendrez-bien-un-peu-de-ssh-avec-votre-tunnel</link>
    <guid isPermaLink="false">urn:md5:0114979e945f69f9eb437f87337a6c0e</guid>
    <pubDate>Fri, 20 Oct 2006 20:06:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>howto</category><category>rigolo</category><category>ssh</category><category>sécurité</category><category>unix</category>    
    <description>    &lt;p&gt;Il arrive des fois où on aimerait pouvoir relier directment deux machines appartenant a deux réseaux distincts. C'est par exemple mon cas quand j'ai besoin (envie on va dire) d'accéder à ma machine du boulot depuis une machine non connectée au &lt;acronym&gt;VPN&lt;/acronym&gt;. Dans ce genre de cas, il existe en général une machine qui possède des interfaces susceptibles d'accéder à chacune des machines (le concentrateur &lt;acronym&gt;VPN&lt;/acronym&gt; par exemple). Nous appellerons cette machine &lt;code&gt;relay&lt;/code&gt;, car elle servira de relai au tunnel. Pour éviter les sempiternelles appellations &lt;code&gt;A&lt;/code&gt; et &lt;code&gt;B&lt;/code&gt; qui embrouillent plus qu'autre chose, les machines s'appelleront &lt;code&gt;startpoint&lt;/code&gt; pour la machine sur laquelle on a la main et &lt;code&gt;endpoint&lt;/code&gt; pour la machine à laquelle on souhaite accéder.&lt;/p&gt;


&lt;p&gt;Postulats de base:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;relay&lt;/code&gt; possède un serveur &lt;acronym&gt;SSH&lt;/acronym&gt; qui tourne&lt;/li&gt;
&lt;li&gt;&lt;code&gt;startpoint&lt;/code&gt; possède un client &lt;acronym&gt;SSH&lt;/acronym&gt; capable de créer un tunnel (&lt;code&gt;ssh&lt;/code&gt;, par exemple)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;relay&lt;/code&gt; est accessible depuis &lt;code&gt;startpoint&lt;/code&gt; et peut se connecter à &lt;code&gt;endpoint&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bien, allons y franchement, la commande, à executer depuis &lt;code&gt;startpoint&lt;/code&gt;, permettant de créer un tunnel &lt;acronym&gt;SSH&lt;/acronym&gt; entre &lt;code&gt;startpoint&lt;/code&gt; et &lt;code&gt;endpoint&lt;/code&gt; est la suivante:&lt;/p&gt;


&lt;pre&gt;ssh -L 2222:endpoint:22 relay&lt;/pre&gt;


&lt;p&gt;Qu'avons nous fait là ? L'option &lt;code&gt;-L&lt;/code&gt; de &lt;acronym&gt;SSH&lt;/acronym&gt; sert à &lt;em&gt;binder&lt;/em&gt; un port de la machine locale (&lt;code&gt;startpoint&lt;/code&gt; donc), à un autre port (ou le même) de la machine distante (&lt;code&gt;endpoint&lt;/code&gt;). Ici, on associe le port local 2222 (22 étant déjà pris par mon serveur &lt;acronym&gt;SSH&lt;/acronym&gt;, mais on pourrait utiliser le port 22 si aucun serveur ne tournait, à la différence près qu'il faudrait lancer la commande en root pour pouvoir &lt;em&gt;binder&lt;/em&gt; un port inférieur à 1024 (c'est comme ça)) au port 22 de &lt;code&gt;endpoint&lt;/code&gt;, c'est à dire le serveur &lt;acronym&gt;SSH&lt;/acronym&gt;. Il nous est dès lors possible d'ouvrir une connection &lt;acronym&gt;SSH&lt;/acronym&gt; sur &lt;code&gt;endpoint&lt;/code&gt; en se connectant au port 2222 de notre machine locale:&lt;/p&gt;


&lt;pre&gt;ssh -p 2222 localhost&lt;/pre&gt;


&lt;p&gt;Magique non ? Bien sur, il est possible de forwarder n'importe quel port au travers du tunnel:&lt;/p&gt;


&lt;pre&gt;ssh -L 8080:endpoint:80 relay&lt;/pre&gt;


&lt;p&gt;Faire pointer votre navigateur sur &lt;code&gt;http://localhost:8080/&lt;/code&gt; vous ammenera sur le serveur web de &lt;code&gt;endpoint&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Mais un tunnel ne se limite pas à joindre deux machines d'un réseau différents. On peut également imaginer un tunnel entre deux machines dans l'unique but de sécuriser une transmission, par exemple, des échanges de mails. Imaginons que votre serveur mail preferré, &lt;code&gt;pop.example.com&lt;/code&gt;, ne propose pas de connection &lt;acronym&gt;POP&lt;/acronym&gt; sécurisée. Vous pouvez remédier à ce manque flagrant de confidentialité en créant un tunnel &lt;acronym&gt;SSH&lt;/acronym&gt;:&lt;/p&gt;


&lt;pre&gt;ssh -L 1100:localhost:110 pop.example.com&lt;/pre&gt;


&lt;p&gt;Bien sur, ce cas de figure nécessite d'avoir un compte permettant une connexion &lt;acronym&gt;SSH&lt;/acronym&gt; sur &lt;code&gt;pop.example.com&lt;/code&gt;, ce qui n'est pas forcément le cas. Pour remédier a ceci, deux solutions: utiliser un relay qui possède un serveur &lt;acronym&gt;SSH&lt;/acronym&gt;, ou installer un serveur &lt;acronym&gt;SSH&lt;/acronym&gt; sur &lt;code&gt;startpoint&lt;/code&gt; pour s'en servir comme relai (&lt;code&gt;sudo apt-get install openssh-server&lt;/code&gt; sur toute distribution debian-like qui se respecte):&lt;/p&gt;


&lt;pre&gt;ssh -L 1100:pop.example.com:110 localhost&lt;/pre&gt;


&lt;p&gt;And voila, il n'y a plus qu'a indiquer à notre client mail que le pop se situe sur &lt;code&gt;localhost&lt;/code&gt; au port 1100, et le tour est joué :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2006/10/20/Vous-prendrez-bien-un-peu-de-ssh-avec-votre-tunnel#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2006/10/20/Vous-prendrez-bien-un-peu-de-ssh-avec-votre-tunnel#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/691</wfw:commentRss>
      </item>
    
  <item>
    <title>Un forum qu'il est bien: Invision Power Board</title>
    <link>http://fashion.hosmoz.net/post/2006/10/20/Un-forum-quil-est-bien%3A-Invision-Power-Board</link>
    <guid isPermaLink="false">urn:md5:2749882577f14d005c5bea0531e5a0f6</guid>
    <pubDate>Fri, 20 Oct 2006 14:13:00 +0200</pubDate>
    <dc:creator>Geoffrey</dc:creator>
        <category>Geekeries</category>
        <category>clichés</category><category>configuration</category><category>php</category><category>way of life</category><category>work</category>    
    <description>    &lt;p&gt;Alors au taf on va déployer des forums sur l'ensemble des sites du groupe, et donc après un rapide tour des forums disponibles (tant libres que commerciaux), on a choisi &lt;a href=&quot;http://www.invisionpower.com/&quot;&gt;Invision Power Board&lt;/a&gt;. Après une matinée de trifouillage, j'ai l'intime conviction que nous avons fait le bon choix. En effet, avec Invision Power Board, on peut mettre en place un &lt;acronym&gt;SSO&lt;/acronym&gt; en moins d'une heure tout en&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;buvant son café&lt;/li&gt;
&lt;li&gt;lisant ses &lt;acronym&gt;RSS&lt;/acronym&gt;&lt;/li&gt;
&lt;li&gt;discutant avec son chef&lt;/li&gt;
&lt;li&gt;glandant sur &lt;acronym&gt;IRC&lt;/acronym&gt;&lt;/li&gt;
&lt;li&gt;rigolant avec les collègues&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Et ça, c'est pas avec des forums libres que c'est possible.&lt;/p&gt;</description>
    
    
    
          <comments>http://fashion.hosmoz.net/post/2006/10/20/Un-forum-quil-est-bien%3A-Invision-Power-Board#comment-form</comments>
      <wfw:comment>http://fashion.hosmoz.net/post/2006/10/20/Un-forum-quil-est-bien%3A-Invision-Power-Board#comment-form</wfw:comment>
      <wfw:commentRss>http://fashion.hosmoz.net/feed/rss2/comments/690</wfw:commentRss>
      </item>
    
</channel>
</rss>