<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Article</title>
  <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/taxonomy/term/1097"/>
  <link rel="self" type="application/atom+xml" href="http://artisan.karma-lab.net/taxonomy/term/1097/atom/feed"/>
  <id>http://artisan.karma-lab.net/taxonomy/term/1097/atom/feed</id>
  <updated>2008-07-21T15:45:28+02:00</updated>
  <entry>
    <title>Drupal 6.4 - Mise à jour de sécurité </title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1616" />
    <id>http://artisan.karma-lab.net/node/1616</id>
    <published>2008-08-14T23:08:53+02:00</published>
    <updated>2008-08-14T23:09:14+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Drupal" />
    <category term="drupalfr.org" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
  Une belle série de joyeusetés a été colmatée dans cette version. Cela commence par du classique 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=Cross Site Scripting'>
  Cross Site Scripting
  </a> à l'évidence via le module <kbd>upload</kbd> (avec une série d'autres vulnérabilités dans le module). Ensuite au menu nous avons de l'exécution de code via le module <kbd>BlogAPI</kbd>. Et pour le dessert un plus exotique 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=cross site request forgeries'>
  cross site request forgeries
  </a> par l'API Forms. Et cela toute version confondues (5.X et 6.X). 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Une belle série de joyeusetés a été colmatée dans cette version. Cela commence par du classique 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=Cross Site Scripting'>
  Cross Site Scripting
  </a> à l'évidence via le module <kbd>upload</kbd> (avec une série d'autres vulnérabilités dans le module). Ensuite au menu nous avons de l'exécution de code via le module <kbd>BlogAPI</kbd>. Et pour le dessert un plus exotique 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=cross site request forgeries'>
  cross site request forgeries
  </a> par l'API Forms. Et cela toute version confondues (5.X et 6.X). 
</p>
<!--break-->
<p>
  Donc autant dire qu'il est pertinent de colmater cela au plus vite en <a class='external' target='_blank' href='/node/1240' >mettant à jour</a>. 
</p>
<p>
  Description du patch (en anglais) : <a class='external' target='_blank' href='http://drupal.org/node/295053' >http://drupal.org/node/295053</a>.
</p>    ]]></content>
  </entry>
  <entry>
    <title>Premier tour de piste avec Epiphany/Webkit</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1614" />
    <id>http://artisan.karma-lab.net/node/1614</id>
    <published>2008-08-13T02:50:48+02:00</published>
    <updated>2008-08-13T02:53:06+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="FireFox" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
   Cela n'a échappé à personne, les prochaines version d'<a class='external' target='_blank' href='http://www.gnome.org/projects/epiphany/' >Epiphany</a>, le navigateur officiel de Gnome, sera prochainement propulsé par <a class='external' target='_blank' href='http://webkit.org/' >WebKit</a>, le même moteur que Konqueror et Safari. Et ce "prochainement" est suffisamment proche pour le moteur soit activé par défaut dans la version de développement du navigateur. Alors j'avais envie d'aller voir où en était l'avancement...
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   Cela n'a échappé à personne, les prochaines version d'<a class='external' target='_blank' href='http://www.gnome.org/projects/epiphany/' >Epiphany</a>, le navigateur officiel de Gnome, sera prochainement propulsé par <a class='external' target='_blank' href='http://webkit.org/' >WebKit</a>, le même moteur que Konqueror et Safari. Et ce "prochainement" est suffisamment proche pour le moteur soit activé par défaut dans la version de développement du navigateur. Alors j'avais envie d'aller voir où en était l'avancement...
</p>
<!--break-->
<h2>Compilation</h2>
<p>
   Pour ce qui est de la librairie GTK/WebKit, j'ai bien tenté de la compiler à la main mais il semble que le trunk soit méchamment cassé pour l'instant. Je me suis donc rabattu sur la version en dépôt <kbd>testing</kbd> de mandriva. 
</p>
<p>
    Ensuite, récupération des dernières sources d'Epiphany :
<div class='code-container-area'><div class='code-container'><div class="code">svn <span class="kw2">co</span> http:<span class="sy0">//</span>svn.gnome.org<span class="sy0">/</span>svn<span class="sy0">/</span>epiphany<span class="sy0">/</span>trunk<span class="sy0">/</span> epiphany</div></div></div>
</p>
<p>
  et enfin un bien classique <kbd>./autogen --prefix=/opt ; make ; sudo make install</kbd>.
</p>
<p>
   L'utilisation du <kbd>/opt</kbd> m'évite de torpiller l'installation existante d'Epiphany.
</p>

<h2>Petits tests</h2>
<p>
  Côté tests, rien de bien violent. Juste un petit chrono à la main pour tester le temps de démarrage à froid et à vide (page de démarrage vide et tout cache système vidé), à chaud et à vide (second démarrage), à froid avec une page à affiche au démarrage (la page de garde d'artistan). 
<table>
<tr><th>Type</th><th>Epiphany/WebKit</th><th>Epiphany/Gecko</th><th>FireFox2</th><th>FireFox3</tH></tr>
<tr><td>à froid</td><td>3</td><td>6.5</td><td>5.6</td><td>6.5</td></tr>
<tr><td>à chaud</td><td>1.1</td><td>2.5</td><td>1.38</td><td>1.65</td></tr>
<tr><td>page</td><td>5.1</td><td>8.87</td><td>7.2</td><td>7.3</td></tr>
<tr><td><a class='external' target='_blank' href='http://celtickane.com/webdesign/jsspeed.php' >dhtml</a></td><td>60</td><td>609</td><td>658</td><td>257</td></tr>
<tr><td><a class='external' target='_blank' href='http://www.howtocreate.co.uk/csstest.html' >javascript</a></td><td>9</td><td>64</td><td>64</td><td>50</td></tr>
</table>
</p>
<p>
  A noter que j'ai désactivé toutes les extensions de FireFox pour ces tests. 
</p>
<h2>Conclusion</h2>
<p>
   Lorsque l'on utilise cette mouture d'Epiphany, la vitesse ressentie est très proche de ce que je connaissais avec Konqueror. Les chiffres le confirment pour tous les domaines testés. Les résultats de rendu de page, JavaScript et DHTML sont juste étonnant de vélocité et confirme que la vitesse de WebKit n'est pas une légende.</p>
<p>
 A noter la proximité logique des résultats Epiphany/Gecko et FireFox2 qui utilisent la même infrastructure et les nets progrès de FireFox3 qui surpassent Epiphany/Geck sur tous les tableaux.  
</p>
<p>
  Maintenant cette version n'est pas encore très sèche. Les pages "clignotent" aux transitions, certains rendus de contrôles sont bizarres et le correcteur orthographique est non fonctionnel (et non activable vu que about:config ne fonctionne pas). Mais dans l'ensemble, c'est très prometteur. 
</p>    ]]></content>
  </entry>
  <entry>
    <title>Mise en oeuvre d&#039;un serveur MPD</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1603" />
    <id>http://artisan.karma-lab.net/node/1603</id>
    <published>2008-08-09T16:49:41+02:00</published>
    <updated>2008-08-09T16:52:21+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Serveurs" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
   MPD est finalement assez peu connu et pourtant, dans le cadre d'une <a class='external' target='_blank' href='/node/1310' >architecture domestique</a>, il répond au besoin récurrent des mélomanes qui aiment à donner une ambiance musicale différente à chacune de leurs pièces. L'objectif de ce tutoriel est de vous proposer une simple "mise en scelle", le monde MPD étant juste une vaste trop pour le couvrir d'une seul passe...</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   MPD est finalement assez peu connu et pourtant, dans le cadre d'une <a class='external' target='_blank' href='/node/1310' >architecture domestique</a>, il répond au besoin récurrent des mélomanes qui aiment à donner une ambiance musicale différente à chacune de leurs pièces. L'objectif de ce tutoriel est de vous proposer une simple "mise en scelle", le monde MPD étant juste une vaste trop pour le couvrir d'une seul passe...</p>
<!--break-->
<h2>Qu'est-ce que MPD ?</h2>
<image file="overview.png"/>
<p>
    MPD (<a class='external' target='_blank' href='http://www.musicpd.org' >Music Player Daemon</a>) c'est :
    <ul>
       <li>Un lecteur audio multi-formats entièrement contrôlable à travers le réseau.</li>
       <li>Un explorateur d'audiothèques capable de stocker les étiquettes (ID3 &amp; co.) de vos morceaux dans une base de donéne et d'y effectuer des recherches.</li>
       <li>Un gestionnaire de liste de lecture (playlist).</li>
     </ul>
</p> 
<p>
   A l'inverse, 
   <ul>
   	<li>MPD n'est pas un lecteur de vidéo, diapos &amp; co.</li>
   	<li>MPD ne dispose pas d'une belle interface.</li>
   	<li>MPD n'embarque pas de serveur WEB/AJAX.</li>
   	<li>MPD n'est absolument pas sexy et n'impressionnera jamais vos amis.</li>
   </ul>
</p>
<p>
   En somme, MPD n'a (à mon sens) d'intérêt que dans trois cas de figure :
   <ul>
   <li>Lorsque l'on a chargé une machine sans écran, ni clavier de la sonorisation d'un espace.</li>
   <li>Lorsque plusieurs personnes sont amenées à prendre la main sur la musique diffusée, chacune avec un outil différent.</li>
   <li>Lorsque l'on désire diffuser de l'audio en mode "shoutcast", via <a class='external' target='_blank' href='http://www.icecast.org/' >Icecast</a> (ce n'est pas le sujet de ce tutoriel cependant).  
</ul>
</p>


<h2>Mise en oeuvre</h2>
<h3>Installation</h3>
<p>
   Là, rien de très sorcier. MPD est sans aucun doute déjà dans votre distribution. Un coup d'<kbd>urpmi mpd</kbd> ou d'<kbd>apt-get install mpd</kbd> devrait suffire à installer le serveur. Ensuite tout ce passe dans le fichier <kbd>/etc/mpd.conf</kbd>.
</p>

<h2>Les fichiers audio</h2>
<p>
   Pour que MPD puisse fonctionner, il lui faut... de la musique et peu importe, ou presque, le format. MPD peut lire les fichier mp3, mp2, ogg, flac, wav, au, aiff, aif, mpc, amf, dsm, far, gdm, imf, it, med, mod, mtm, s3m, stm, stx, ult, uni et xm. Il existe même une version plus "underground" lisant les AAC (dispo sur le dépôt PLF pour les mandriva il me semble).</p>
<p>
  Les fichiers audio doivent être accessible en local par MPD. Si vous avez plusieurs instances, vous la placerez donc dans un dossier partagé, par exemple NFS. Dans la suite du tutoriel, nous partirons du principe que vos morceaux se trouver dans le dossier <kbd>/musique</kbd>. 
</p>
<p>
  Dans le fichier <kbd>/etc/mpd.conf</kbd>, il vous faut repérer un bloc ressemblant à cela 
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">music_directory &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;~/music&quot;</span></div></li>
<li class="li1"><div class="de1">playlist_directory &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;~/playlists&quot;</span></div></li>
<li class="li1"><div class="de1">db_file &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;/var/lib/mpd/mpd.db&quot;</span></div></li></ol></div></div></div>
</p>
<p>
  Il s'agit de tous les chemins dont a absolument besoin MPD pour fonctionner. La première ligne correspond à la source de fichier audio, nous remplaçons donc comme suit :
    <div class='code-container-area'><div class='code-container'><div class="code">music_directory &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;/musique&quot;</span></div></div></div>
</p>
<p>
 La seconde ligne correspond au dossier dans lequel MPD lit et écrit les listes de lectures (fichiers .m3u au format WinAmp). Comme il est sympa de pouvoir partager ces listes entre tous les serveurs MPD, le plus simple est de créer un sous-dossier <kbd>/musique/mdp</kbd>  :
  <div class='code-container-area'><div class='code-container'><div class="code">playlist_directory &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;/musique/mdp&quot;</span></div></div></div>
</p>
<p>
   Ensuite vient la base de donnée qui  contiendra les chemins, les étiquettes, bref, tout ce que MPD découvrira dans le dossier <kbd>/musique</kbd>. Là aussi, il est pratique qu'elle soit partagé car ainsi la création et la mis à jour de cette base sur une machine, sera effective sur toutes les autres :
  <div class='code-container-area'><div class='code-container'><div class="code">db_file &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;/musique/mdp&quot;</span></div></div></div></p>
  
  <h3>Petit cas de droit</h3>
<p>
   Maintenant la partie un peu funky. Un peu plus loin dans le fichier vous devez trouvez quelque chose comme cela :
   <div class='code-container-area'><div class='code-container'><div class="code">user &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;mpd&quot;</span></div></div></div>
</p>
<p>
  L'idée est que lancer MPD en tant que root, c'est comme croiser les flux, c'est mal. Donc à l'installation du paquet, un gentil utilisateur <kbd>mpd</kbd> bien inoffensif a été créé. Et en toute logique cette utilisateur là n'a aucun droit de lecture, et encore moins d'écriture dans votre dossier <kbd>/musique</kbd>. 
</p>
<p>
   Je ne vais pas rentrer plus avant dans la manière de régler ce "problème" car chacun a son approche. Personnellement j'ai opté pour la création d'un groupe "acces-audio" qui a le même ID sur toutes mes machines. L'utilisateur <kbd>MPD</kbd> appartient à ce groupe. Et tout le dossier musique appartient lui aussi à ce groupe en lecture, et en écriture sur le dossier <kbd>/musique/mpd</kbd>.</p>
<p>
   Vous pouvez aussi prendre la posture barbare du <kbd>chmod g+rwX /musique</kbd> mais à ce moment là, autant dire à MPD d'utiliser "root" comme utilisateur...</p>
<p>
  Enfin, vous pouvez utiliser le fait que l'utilisateur <kbd>mpd</kbd> appartient généralement au groupe <kbd>audio</kbd> et du coup attribuer ce groupe au dossier <kbd>/musique</kbd> comme je le fait pour mon <kbd>acces-audio</kbd>.</p>

<p>
   Bref, c'est ici une histoire de goût et le point important est que l'utilisateur qui lance MPD puisse lire dans <kbd>/musique</kbd> et écrire dans <kbd>/musique/mpd</kbd>, et ce sur toutes les machines où il doit être lancé. 
</p>

<h3>Sorties Audio</h3>
<p>
  MPD est conçu de sorte à pouvoir gérer en simultané plusieurs sorties audio. Il est donc possible avec plusieurs cartes audio de distribuer la même musique sur plusieurs pièces à partir d'un seul serveur. La majorité des clients MPD permettent d'activer ou de désactiver telle ou telle sortie à distance. 
</p>
<p>
  Une sortie MPD peut utiliser les pilotes ALSA ou OSS, les serveurs audio Jack ou Pulse, ou encore un serveur de type ShoutCast. Et si cela ne suffit pas, vous pouvez passer par <a class='external' target='_blank' href='http://xiph.org/ao/' >libao</a> qui permet d'attraper un serveur ESD par exemple. 
</p>

<p>
  Dans notre cas, faisons simple. Déjà si vous avez Pulse d'installé, personnellement je le virerait... Cela se fait très facilement sur une Mandriva en passant par Drakconf. Pulse est bien sympa sur l'idée mais je ne vois pas bien son intérêt en local. </p>

<p>Nous allons donc utiliser une toute classique périphérique audio en utilisant ALSA.  Pour cela il faut aller jeter un oeil un peu plus loin dans le fichier de configuration et chercher les sections nommées <kbd>audio_output</kbd>. Si vous en avez aucune ou si elles sont toutes commentées, ajoutez ce qui suit, sinon vérifiez que ça ressemble un peu à cela :
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">&nbsp;audio_output <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">type</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;alsa&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;Sortie vers Chambre&quot;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></div></div></div>
</p>
<p>
  Si je vous avez une deuxième carte audio, vous pouvez donc ajouter une seconde sortie : 
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">audio_output <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw3">type</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;alsa&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;Sortie vers Buanderie&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; device &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;hw:0,1&quot;</span> </div></li>
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li></ol></div></div></div>
</p>
<p>
   Notez le paramètre <kbD>device</kbd> qui indique que le tape sur le deuxième périphérique ALSA (le premier étant sous entendu dans la première sortie comme étant hw:0,0). 
</p>

<p>
   A ce stade certain peuvent se demander pourquoi ne pas utiliser plutôt un ou plusieurs serveurs, de type ESD ou Pulse sur les machines qui diffuse physiquement l'audio. Si c'est faisable, la réponse est "est-ce rentable ?". Car enfet, cela revient à transbahuter un signal PCM sûrement un peu compressé sur mon réseau. Avec MPD, j'utilise un partage (NFS, CIFS, etc.) qui transporte des fichiers compressés en OGG ou en MP3... D'un point de vue occupation de bande passante je suis clairement gagnant dans le second cas. Pulse & co ont sûrement un usage, mais je ne pense pas que ce soit celui-là. Et c'est à peu prés la même chose pour diffuser du shoutcast. C'est sûrement très bien pour des utilisations de votre musique en extérieur (genre ce que permet <a class='external' target='_blank' href='http://ampache.org/' >Ampache</a>), mais pour des amplis fixes, je ne vois pas bien l'intérêt...
</p>

<p>
  Dernier aspect, le contrôle du volume. Comme pour les sorties audio, vérifiez que les lignes suivantes existent, ne sont pas commentées et concordent bien :
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">&nbsp; mixer_type &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;alsa&quot;</span></div></li>
<li class="li1"><div class="de1">mixer_device &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;default&quot;</span></div></li>
<li class="li1"><div class="de1">mixer_control &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Master&quot;</span></div></li></ol></div></div></div>
</p>
<p>
   On utilise ici la table de mixage ALSA du périphérique par défaut (hw:0,0) dont on utilise le canal <kbd>Master</kbd>.
</p>

<h3>Paramétrage réseau</h3>
<p>
   Dernière chose à faire : rendre notre serveur visible sur notre réseau local. Imaginons pour cela que notre machine ait pour adresse IP <kbd>10.0.0.10</kbd>, nous modifierons donc la configuration dans ce sens :
   <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">&nbsp; &nbsp;bind_to_address &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;10.0.0.10&quot;</span></div></li>
<li class="li1"><div class="de1">port &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;6600&quot;</span></div></li></ol></div></div></div>
</p>
<div class='inline-box note'>
  Si vous êtes de grands paranoïaques ou si vous comptez "publier" MPD sur le réseau publique (pas une idée terrible ceci dit), il est aussi possible d'ajouter un mot de passe et des droits associés. Voir pour cela le paramètre <kbd>password</kbd>.
</div>

<p>
  Reste maintenant à démarrer notre serveur par un <kbd>/etc/init.d/mpd start</kbd>. 
</p>

<h3>Base de donnée</h3>
<p>
  MPD est capable de lire tous les attributs contenus dans les fichiers audio (ID3, vorbis, etc) de sorte constituer une base de donnée de recherche de morceaux qui sera utilisée lors de la navigation. A la première utilisation, il nous faut donc initialiser cette base de donnée. Pour cela, lancez la commande suivante :
  <div class='code-container-area'><div class='code-container'><div class="code">mpd --create-db</div></div></div>
</p>
<p>
 MPD doit alors cracher un flot continu de texte listant les fichiers audio qu'il est en train de disséquer. Tout dépends de votre audiothèque, chez moi cette opération prend prés de 5 minutes. C'est une des raisons qui m'a amené à partager la base de données entre les différentes serveurs...
</p>
<p>
  Notez cependant que cette opération n'est à réaliser qu'une seule fois. Par la suite il suffira d'une simple mise à jour de la base. 
</p>

<h2>Les clients</h2>
<p>
     Maintenant que notre serveur est en route, il est temps de lui envoyer des commandes. Pour cela, il nous faut un client et là, le choix est <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Clients' >vaste</a>. Mais avant de commencer à en explorer quelques un, regardons de plus prés comment le serveur MPD cause avec ses clients. 
</p>

<h3>Le protocole MPD</h3>
<p>
   MPD est un simple serveur Telnet... Pour s'en convaincre, essayez ceci :
   
  <div class='code-container-area'>
  <div class='code-container'>
  <div class='traces'>
  <ul>
  <li class='prompt'><span class='prompt'>root #</span>telnet mon_serveur_mpd <span class="nu0">6600</span></li><li class='result'>Trying 10.0.0.10...</li><li class='result'>Connected to mon_serveur_mpd (10.0.0.10).</li><li class='result'>Escape character is '^]'.</li><li class='result'>OK MPD 0.13.0</li><li class='result'>ping</li><li class='result'>OK</li><li class='result'>list album</li><li class='result'>Album: #51</li><li class='result'>Album: 7th Ave. Stroll</li><li class='result'>Album: A Clockwork Orange</li><li class='result'>Album: A Day Without Rain</li><li class='result'>...</li><li class='result'>OK</li><li class='result'>close</li><li class='result'>Connection closed by foreign host.</li>
  </ul>
  </div>
  </div>
  </div>
</p>
<p>
  Avec un protocole aussi trivial, on comprend mieux qu'il existe une librairie MPD pour à peu prés tout les langages. Pour ceux que cela intéresse le protocole est complètement documenté <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Protocol_Reference' >ici</a>.
</p>

<h3>Ligne de commande</h3>
<p>
<image file="ncmpc.png"/>
   Pour les fanatiques de la console et du scripting, nous avons <a class='external' target='_blank' href='http://musicpd.org/mpc.shtml' >mpc</a> qui est un client en ligne de commande. Cet outil est fabuleux pour écrire de nouvelles fonctionnalités. Par exemple, imaginons que vous entendiez une musique bien sympathique remonter de la chambre. Vous, dans le salon,  vous vous dites <q>Hum, sympa, ce qu'elle écoute, je vais le mettre ici</q> :
</p>
<p style="clear:left">
   <div class='code-container-area'><div class='code-container-caption'>/usr/bin/synchronize-mpd.sh</div><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co0">#! /bin/sh</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co0"># on définit le nom de la machine où tourne le serveur source</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw3">export</span> <span class="re2">MPD_HOST=</span>$<span class="nu0">1</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co0"># on récupère la piste en cours de lecture</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re2">track=</span>$<span class="br0">&#40;</span>mpc <span class="sy0">|</span> <span class="kw2">grep</span> playing <span class="sy0">|</span> <span class="kw2">awk</span> <span class="st0">'{print $2}'</span> <span class="sy0">|</span> <span class="kw2">cut</span> -d<span class="st0">&quot;/&quot;</span> -f <span class="nu0">1</span> <span class="sy0">|</span> <span class="kw2">tr</span> <span class="st0">&quot;#&quot;</span> <span class="st0">&quot; &quot;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co0"># on récupère la position dans la piste</span></div></li>
<li class="li2"><div class="de2">&nbsp; <span class="re2">position=</span>$<span class="br0">&#40;</span>mpc <span class="sy0">|</span> <span class="kw2">grep</span> playing &nbsp;<span class="sy0">|</span> <span class="kw2">awk</span> <span class="st0">'{print $3}'</span> <span class="sy0">|</span> <span class="kw2">cut</span> -d <span class="st0">&quot;/&quot;</span> -f1<span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co0"># on vire une éventuelle liste de lecture &quot;tmp&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; mpc <span class="kw2">rm</span> tmp</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; <span class="co0"># on sauve la liste de lecture en cours dans &quot;tmp&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; mpc save tmp</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co0"># on se place maintenant sur le serveur cible</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="kw3">export</span> <span class="re2">MPD_HOST=</span>$<span class="nu0">2</span></div></li>
<li class="li2"><div class="de2">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co0"># on vire la liste de lecture en cours</span></div></li>
<li class="li1"><div class="de1">&nbsp; mpc <span class="kw2">clear</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co0"># on charge la liste &quot;tmp&quot; créée plus haut</span></div></li>
<li class="li2"><div class="de2">&nbsp; mpc load tmp</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co0"># on sélectionne le morceau </span></div></li>
<li class="li1"><div class="de1">&nbsp; mpc play <span class="re1">$track</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li2"><div class="de2">&nbsp; <span class="co0"># et on se déplace sur la position, la lecture démarre...</span></div></li>
<li class="li1"><div class="de1">&nbsp; mpc seek <span class="nu0">00</span>:<span class="re1">$position</span></div></li></ol></div></div></div> 
</p>
<p>
    Et voilà, il suffit alors de lancer
    <div class='code-container-area'><div class='code-container'><div class="code">&nbsp; synchronize-mpd.<span class="kw2">sh</span> serveur_chambre serveur_salon</div></div></div>
</p>
<p>
  Et hop, les deux serveurs sont synchorisés sur la même liste, lisent le même morceau à la même position.  Des petits délires de ce genre, vous pouvez en trouver des tonnes <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Hacks' >ici</a>. 
</p>
<p>Pour une version plus graphique, il existe aussi un client nCurse (cf. photo)</p>

<h3>Clients graphiques</h3>
<p>
<image file="sonata7.png"/>
	Autant j'aime bien la ligne de commande, autant pour éditer une playlist on a trouvé tout de même mieux depuis. Il existe de nombreux clients graphique mais j'affectionne particulière <a class='external' target='_blank' href='http://sonata.berlios.de/' >Sonata</a> conçu pour Gnome/GTK2 et qui est dispo en standard sur toute distribution un peu étoffée.  
</p>
<p>
   Avec Sonata, mais c'est vrai pour la majorité des clients, toutes les opérations MPD sont disponibles, de l'exploration des morceaux à la constitution de la liste de lecture courrante, son stockage sur le disque, etc. Sonata rivalise avec Rythmbox en téléchargeant les paroles, les pochettes, etc. 
</p>
<p>
  La première chose à faire pour utiliser Sonata, et c'est le cas pour tous les clients qui suivent, est de se connecter au serveur MPD. Pour cela, il suffit de faire sur l'interface un <kbd>click-droit/préférences...</kbd> pour, dans l'onglet <kbd>serveurs</kbd>, ajouter vos différents noms de machines hébergeant une instance de MPD. Ceci fait, il suffit de refaire un <kbd>click-droit/connexion</kbd> et de sélectionner le serveur que l'on cherche à contrôler. Le reste est suffisament proche d'un lecteur audio classique pour que vous vous en sortiez sans problèmes. 
</p>
<p>Pour plus de clients graphiques, allez <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Clients#Graphical_Clients' >ici</a>...</p>


<h3>Les extensions</h3>
<p>
<image file="musicpm.jpg"/>
   Il existe aussi de nombreuses extensions d'applications (xmms, KDE Kicker, E18, xfce, MythTC, Freevo, etc..) permettant de leur ajouter la compatibilié avec MPD. Les KDEistes apprécieront surement <a class='external' target='_blank' href='http://www.kde-apps.org/content/show.php?content=51577' >ce plugin pour Amarok</a>. </p>
  <p>Une extension que j'aime particulièrement est celle pour <a class='external' target='_blank' href='http://code.google.com/p/musicpm/' >FireFox</a>. Il permet ainsi, sans serveur WEB, de contrôler plusieurs serveurs MPD en utilisant une interface assez propre. La dernière Alpha fonctionne sur FireFox3. Un fois l'extension installée et firefox redémarré,  regardez dans les icônes de la barre de status, en bas à droite. 
</p>
<p>Pour plus d'extensions, allez <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Clients#Plugin_Clients' >ici</a>...</p>

<h3>Les clients WEB</h3>
<p>
<image file="iphone.jpg" style="border:none"/>
<p>
  Tout d'abord il y a l'excellente application PHP/AJAX, <a class='external' target='_blank' href='http://pitchfork.remiss.org/' >pitchfork</a>. Elle fonctionne parfaitement dés lors que l'on dispose d'un écran de bonne taille. Pour de plus petits apareils comme l'iPhone, il existe aussi <a class='external' target='_blank' href='http://www.itrium.de/ipodmp/ipodmp.tgz' >ipodmp.tgz</a>. 
</p>
<p>
   Dans tous les cas, il vous faudra bien évidement un serveur apache, le module mod-php qui va bien et un peu de paramétrage pour que tout cela fonctionne. Le seul inconvénient de ces deux applications WEB, c'est qu'elles ne disposent que d'une seule configuration. Il faut donc dupliquer le contrôle de chaque serveur MPD sur une URL différente. 
</p>
<p>Pour plus d'applications WEB, allez <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Clients#Web_Clients&gt;ici&lt;/external&gt;&lt;/p&gt;

&lt;h3&gt;Clients de contrôle&lt;/h3&gt;
&lt;p&gt;
  Ensuite il y a les clients qui ont pour but d&#039;écouter l&#039;activité d&#039;un serveur et ainsi renseigner des services comme &lt;external href=&#039;http://www.audioscrobbler.com/' >audioscrobbler</a> ou <a class='external' target='_blank' href='http://last.fm/' >last.fm</a>. Pour une liste complète de ce type de clients, allez <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Clients#Logging_Clients' >ici</a>.</p>
<p>
  Nous avons aussi les clients qui permettent de contrôler MPD par joystick ou une télécommande IR. D'écrire sur un <a class='external' target='_blank' href='http://lcdproc.spacedout.nl/' >afficheur LCD</a> ou de contrôler le système par une unité <external href="http://remuco.sourceforge.net"/>Bluetooth ou WIFI</external>. Pour une liste complète de ce type de clients, allez <a class='external' target='_blank' href='http://mpd.wikia.com/wiki/Clients#Input_Device_Clients' >ici</a>. 
</p>

<h2>Les WebRadios</h2>
<p>
   Il est possible avec MPD d'ajouter des fichiers qui ne sont pas sur le serveur local mais sur un serveur HTTP. C'est typiquement le cas des listes de lecture et flux des webRadios. Prenons l'exemple de <a class='external' target='_blank' href='http://www.radiobfm.com/' >BFM radio</a> dont l'URL est <kbd>http://cache.yacast.fr/V4/bfm/bfm.m3u</kbd>.</p>
   <p>Pour l'utiliser, soit vous l'ajoutez dans l'onglet <kbd>flux</kbd> de Sonata, soit vous allez dans votre dossier <kbd>/musiques/mpd</kbd> qui contient les liste de lecture et vous la téléchargez :
   <div class='code-container-area'><div class='code-container'><div class="code"><span class="kw2">wget</span> http:<span class="sy0">//</span>cache.yacast.fr<span class="sy0">/</span>V4<span class="sy0">/</span>bfm<span class="sy0">/</span>bfm.m3u</div></div></div>
</p>
<p>
  Ensuite il ne vous reste plus qu'à vous connecter sur le serveur avec Sonata et à double-clicker sur la liste Pour accéder à la radion.</p>
  <p>Et avec mpc, vous feriez comme ceci :
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="kw3">export</span> <span class="re2">MPD_HOST=</span>mon_serveur_mpd</div></li>
<li class="li1"><div class="de1">mpc clean</div></li>
<li class="li1"><div class="de1">mpc load bfm</div></li>
<li class="li1"><div class="de1">mpc play</div></li></ol></div></div></div>
</p>
<p>
  Notez au passage que <a class='external' target='_blank' href='http://www.france-info.com/' >France Intox</a> c'est grandement amélioré par rapport à la dernière fois où j'avais testé cette <a class='external' target='_blank' href='/node/1078' >radio publique sur un système libre</a>. Maintenant toute les radios de Radio France, sont disponible en <extenral href="http://www.radiofrance.fr/services/aide/difflive.php#mp3">MP3 diffusé sur HTTP</extenral>. 
</p>
<p>
   Il est donc possible de diffuser une webRadio sans problème avec MPD tant qu'il s'agit d'un flux compatible avec ce que connait le démon (MP3/OGG) et que cela passe par du HTTP. Du coup, je n'ai pas trouvé de moyen sans passer par une usine à Gaz de transcodage, d'utiliser les flux RTSP/MPeg2 des radios de la FreeBox en multi-poste. 
</p>

<h2>MPC et FreeBox HD</h2>
<p>
   A propose de FreeBox, l'idée vient assez vite de diffuser l'audio d'un serveur MPD sur le <a class='external' target='_blank' href='/node/1602' >Boîtier HD</a>. J'avais déjà réussi à faire cela <a class='external' target='_blank' href='/node/1604' >avec la vidéo</a> mais était resté coincé sur l'audio.  
</p>
<p>
   Il y a peu je suis tombé sur un note dans la documentation de MPD parlant d'un nouveau type de sorti nommé <kbd>FIFO</kbd>. Un Fifo sous unix est aussi appelé un tube nommé, c'est à dire un fichier très spécial sur lequel une application peut écrire et qu'une autre application peut lire sans que cela soit transite réellement par le disque. 
</p>
<p>
  Aprés avoir discuté avec un des développeur de MPD (merci Jat), j'ai pu utiliser cette sortie pour alimenter une instance de VLC qui, comme pour la vidéo, transcode tout ce qui sort de MPD en flux MPEG2 à destination de la freebox.  
</p>
<p>
  Alors c'est plus un <q>Proof of concept</q> qu'autre chose pour l'instant et pour mettre ceci en oeuvre vous devez utiliser la toute dernière version compilée main de MPD. Ceci fait, il faut vérifier que vous avez bien la sortie FIFO en faisant un <kbd>mpd --version</kbd>. Si c'est le cas, allez dans la configuration et ajoutez une nouvelle sortie
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">&nbsp;audio_output <span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw3">type</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;fifo&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;My FIFO&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;path &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;/tmp/mpd.fifo&quot;</span></div></li>
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; format &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;44100:16:2&quot;</span></div></li>
<li class="li1"><div class="de1">&nbsp;<span class="br0">&#125;</span></div></li></ol></div></div></div>
</p>
<p>
  Relancez le serveur puis tapez la ligne de commande suivante :
  <div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1"><span class="kw2">sox</span> -t raw -r <span class="nu0">44100</span> -s -w -c2 <span class="sy0">/</span>tmp<span class="sy0">/</span>mpd.fifo -t wav - <span class="sy0">|</span> \</div></li>
<li class="li1"><div class="de1">vlc --sout-standard-<span class="re2">access=</span>udp --sout-standard-<span class="re2">mux=</span>ts --sout-standard-<span class="re2">dst=</span><span class="nu0">212.27</span><span class="nu0">.38</span><span class="nu0">.253</span>:<span class="nu0">1234</span> \</div></li>
<li class="li1"><div class="de1">--sout-ts-pid-<span class="re2">video=</span><span class="nu0">68</span> --sout-ts-pid-<span class="re2">audio=</span><span class="nu0">69</span> --sout-ts-<span class="re2">pcr=</span><span class="nu0">80</span> --sout-ts-dts-<span class="re2">delay=</span><span class="nu0">400</span> --color \</div></li>
<li class="li1"><div class="de1">--<span class="re2">sout=</span><span class="st0">&quot;#transcode:std&quot;</span> --sout-transcode-<span class="re2">vcodec=</span>mp2v --sout-transcode-<span class="re2">vb=</span><span class="nu0">4096</span> --sout-transcode-<span class="re2">ab=</span><span class="nu0">512</span> \</div></li>
<li class="li2"><div class="de2">&nbsp;--sout-transcode-<span class="re2">channels=</span><span class="nu0">6</span> --sout-transcode-<span class="re2">acodec=</span>a52 --sout-transcode-<span class="re2">samplerate=</span><span class="nu0">44100</span> \</div></li>
<li class="li1"><div class="de1">&nbsp;--sout-transcode-<span class="re2">fps=</span><span class="nu0">25.0</span> --file-<span class="re2">caching=</span><span class="nu0">1000</span> --sout-transcode-soverlay \</div></li>
<li class="li1"><div class="de1">&nbsp;--<span class="re2">open=</span>file:<span class="sy0">/</span>dev<span class="sy0">/</span>stdin</div></li></ol></div></div></div>
</p>
<p>
  Oui je sais, c'est assez barbare mais ça fonctionne. Maintenant la lecture d'un morceau est diffusé en live sur la FreeBox HD. La commande sox est là car je n'ai pas réussi à faire manger ce flux raw/PCM directement à VLC. 
</p>
<h2>Conclusion</h2>
<p>
  Partant d'une définition très simple de "serveur musicale contrôlable à distance", MPD a permis le développement d'un écosystème d'une rare richesse. Et tant que l'on reste dans le cadre de ce pour quoi ce serveur est fait, il est difficile de ne pas trouver client à son pied, ou de ne pouvoir le scripter pour un comportement particulier. C'est bien simple, aujourd'hui MPD est tellement rentré dans notre quotidien qu'ici, personne ici ne pourrait plus s'en passer. 
</p>    ]]></content>
  </entry>
  <entry>
    <title>FireFox sous Qt</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1613" />
    <id>http://artisan.karma-lab.net/node/1613</id>
    <published>2008-08-07T15:18:59+02:00</published>
    <updated>2008-08-09T12:28:43+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="FireFox" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
   <a class='external' target='_blank' href='http://linuxfr.org/2008/01/29/23621.html' >Rachat de Troltech</a> aidant, les équipes de Mozilla et de Nokia ont conjointement bossé sur le portage de <q>la magnifique plate-forme Mozilla</q> (Hein, Sonny <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> ) sous Qt4.4. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   <a class='external' target='_blank' href='http://linuxfr.org/2008/01/29/23621.html' >Rachat de Troltech</a> aidant, les équipes de Mozilla et de Nokia ont conjointement bossé sur le portage de <q>la magnifique plate-forme Mozilla</q> (Hein, Sonny <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> ) sous Qt4.4. 
</p>
<!--break-->
<p>
<image id="1"/>
  Et le résultat est d'ores et <a class='external' target='_blank' href='http://browser.garage.maemo.org/news/10/' >déjà fonctionnel</a> pour ceux que cela intéresse et qui devrait, vu le poids des acteurs, finir rapidement dans la branche principale de FireFox. 
</p>
<p>
  Alors peut-être que ceux qui sont sous KDE vont enfin pouvoir bénéficier d'un 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=kpart'>
  kpart
  </a> Gecko pour Konqueror. En tout cas c'est une idée <a class='external' target='_blank' href='http://dot.kde.org/1094924433/' >pas toute jeune</a> qui risque cette fois de finir par voir le jour. 
</p>
<p>
Maintenant je ne suis pas bien sur que Gecko apporte grand chose par rapport à WebKit/KHTML. Ceci dit, les meilleurs performances de Qt par rapport à Gtk peuvent éventuellement compenser les résultats de Gecko par rapport à KHTML-WebKit, permettant ainsi à ceux qui utilisent KDE et FireFox d'avoir quelque chose de peut-être aussi rapide que Konqueror, qui sait...
</p>

<p>
  Quant à moi, il va falloir sérieusement que je pense à écrire un Scrapbook pour Epiphany...
</p>    ]]></content>
  </entry>
  <entry>
    <title>Architecture domestique, troisième édition</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1310" />
    <id>http://artisan.karma-lab.net/node/1310</id>
    <published>2008-08-07T14:39:38+02:00</published>
    <updated>2008-08-09T16:56:44+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Domotique" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
  Vu le nombre de question que j'ai reçu en PM ou commentaires, j'ai décidé de prendre un peu de temps pour mieux décrire cette "troisième mouture". Cependant il ne m'est pas possible d'écrire un tutoriel expliquant de A à Z comment réaliser une architecture domestique pour la simple et bonne raisons que chacune est unique, adaptée à vos besoins.    ]]></summary>
    <content type="html"><![CDATA[<p>
  Vu le nombre de question que j'ai reçu en PM ou commentaires, j'ai décidé de prendre un peu de temps pour mieux décrire cette "troisième mouture". Cependant il ne m'est pas possible d'écrire un tutoriel expliquant de A à Z comment réaliser une architecture domestique pour la simple et bonne raisons que chacune est unique, adaptée à vos besoins. La notre (car ma moitié n'est n'est pas en reste d'idées) n'est qu'un exemple dont vous pouvez tirer des briques mais sûrement pas une copie conforme. </p>
  <p>
  Ceci dit, cette version présente au moins l'avantage de l'utilisabilité. Nous vivons avec depuis des années, améliorant tel ou tel aspect, en optimisons d'autres, pour que finalement l'ensemble finisse par réellement se fondre dans le bâtiment et dans nos usages. Aujourd'hui les serveurs sont invisibles, mon poste de travail est en passe de le devenir, tout se miniaturise et ne reste guère plus que les écrans et un clavier de visible dans tout cela. Et sur la facture électrique, le processus est à peu prés le même...
</p>

<h2>Vision globale</h2>
<p>
	Voilà donc déjà ce que cela donne en image :
  <image file="network.jpg" width="600px"/>
  </p>
  
<h2>Architecture matérielle</h2>
<p>
    Lorsque j'ai monté ma toute <a class='external' target='_blank' href='/node/12' >première architecture domestique</a>, il y a "quelques" années, il me fallait 3 cartes mères pour gérer l'ensemble des services. Aujourd'hui la monté en puissance de machines de très faible volume combiné aux services fournis par les FAI modernes, me permettent d'obtenir le même résultat avec une seule machine tournant 24h sur 24. Pour rire, j'ai gardé les anciens noms même si ce ne sont plus que de simples "boîtes". 
</p>	 

<h3>Unité <q>Moya</q></h3>
<p>
   A l'ére Noos, Moya était une "vraie" machine (i486), puis c'est devenu un WAG54G, puis un WAG354G, bref un routeur ADSL-WIFI configuré en NAT. Aujourd'hui c'est la FreeBox qui fait tout cela avec des fonctions et une consommation électrique à peu prés équivalente (9W contre 5W) et la téléphonie en plus.  
</p>


<H3>Unité <q>Nehia</q></H3>
<p>
    Ce serveur était à l'origine le coeur de notre 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=DMZ'>
  DMZ
  </a>. Il s'agissait d'un antique Pentium II avec deux cartes réseaux en firewall et un modem pour la téléphone. Il gérait tout ce qui était publique (WEB, SMTP, etc) et filtrait le flux entrant et sortant via IPTables/Privoxy. Aujourd'hui j'ai remplacé cela par la location d'une <a class='external' target='_blank' href='http://dedibox.com' >Dédibox</a>. Il s'agit d'une machine équipée de 2Go de RAM, d'un VIA C7, d'un disque de 200Go et d'une connexion 100mo. Le fait qu'Artisan ne s'arrête plus de fonctionner quant la femme de ménage décidait de passer l'aspirateur dans la tour à serveurs, en fût une des très significatives avancée <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>

<h3>Unité <q>Nephilia</q></h3>
<p>
   La rescapée en quelque sorte. A l'origine elle faisait office de serveur de fichier, intranet, serveur musical, serveur vidéo, etc. C'était un AMD Thunderbird Mobile underclocké à 800Mhz pour minimiser l'impact énergétique. Cela ne l'empêchait pas de pomper allègrement ces 70W 24h/24...  Aujourd'hui c'est un VIA C7 en mini-ITX ne consommant plus que 26W  :
	 <ul>
	   <li>Une mobo <a class='external' target='_blank' href='http://www.jetwaycomputer.com/spec/J7F4-Series.pdf' >Jetway J7F4K</a> équipée d'un VIA C7 ULV 1.GGhz. Voir <a class='external' target='_blank' href='/node/1327' >cet article</a> pour un test de cette carte.</li>
	   <li>1go de DDR2</li>
		<li>Disque Seagate Baracuda 7200.8 PATA de 500Go.</li>
		<li>Un second disque sur un adaptateur USB pour le mirroring.</li>
		<li>Un picoPSU de 80W.</li>
		<li>Un alimentation AC/DC 12v de 80W, rendement 82%.</li>
		</ul>
</p>	 
<p>

<H3>Unité <q>Leira</q></H3>
<p>
   Une nouvelle venue (je laisse les spécialistes trouver l'origine du nom <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> qui prend à sa charge l'aspect Vidéo et sonorisation originellement dans le domaine de Nephilia. Pour l'heure, ce rôle est à peu prés repris par la FreeBox HD pour 15W de consommation. Elle est physiquement éteinte la plupart du temps (on doit l'allumer disons 2-3h par semaines). L'utilisation de la Fbx HD pour cette usage est en test car l'aspect très fermé de cette boîte m'empêche par exemple d'y coller un lecteur de DVD ou de lire un flux de format quelconque de manière directe. Dans un cas comme dans l'autre, cela doit passer par une machine externe qui injecte le flux vidéo avec un transcodage en MPEG2. Un peu con de ne consommer que 15W mais d'avoir besoin d'une autre machine pour fonctionner... En plus je n'ai trouvé aucun moyen de lire de l'audio de manière satisfaisante avec cette machine. </p>
<p>
   La seule chose qui poserait problème à la virer est la TV qui ne passe pas en Multiposte (TF1 & co) et la VOD. Mais vu la pauvreté pathétique de ce repaire de séries Z qu'est la VOD sur ce boîtier, je ne suis pas bien sur qu'elle ne finisse pas un jour au sous-sol remplacé par une mini-ITX maison avec une carte TNT et le sourrire de la vidéothèque d'à côté en prime... 
</p>
<p>
  Côté visualisation l'option choisie est celle du vidéo-projecteur sans téléviseur que l'on trouve visuellement trop moche. L'avantage du projecteur est de pouvoir le ranger après usage. Et avec un grand mur blanc et un bon film, c'est du vrai bonheur <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>
</p>

<H3>Unité <q>Antinea</q></H3>
<p>
  Il s'agit officiellement de ma machine de bureau mais comme c'est la dernière machine qui reste à l'étage et que la FbxHD est in-fichue de lire directement les fichiers audio, elle devient le serveur musicale de l'étage. Histoire d'en réduire la consommation j'ai basculé d'AMD à Intel Core2 Quatro bien plus efficace. J'ai aussi viré un écran sur trois gagnant près de 60W (Carte vidéo + écran). Cette machine permettra donc la lecture/transcodage des vidéos (DVD et fichiers) et l'ambiance musicale du Salon faute de ne pouvoir le faire sur le FreeBox HD.  
	 <ul>
	   <li>Mobo Gigabit + Intel Core2 Quadro (Q6600)</li>
		<li>4Go de RAM</li>
		<li>SATA II seagate 500Go</li>
		</ul>
</p>


<h2>Câblage</h2>

 <h3>Accès à Internet</h3>
<p>
  En ADSL, comme tout le monde. Rien de plus à signaler ici sauf quelques heures à nétoyer les prises FT de ces maudits condensateurs. 
</p>

<h3>Réseau Ethernet</h3>
<p>
   L'ensemble des machines est relié (ou plutot finira par l'être) par des cables RJ45 (Grade 6) à un Switch Gigabit. Après avoir testé <a class='external' target='_blank' href='/node/1594' >divers solutions qui ne demandaient pas de trouer les murs</a> (CPL notamment), j'en suis arrivé à un constat simple : le câble, c'est bien. Pas de pollution électromagnétique, débit optimum, latence très faible et surtout ça ne pourrit pas l'audio.  
</p>

<h3>Réseau WIFI</h3>
<p>
Le réseau WIFI, assuré à l'origine par un <kbd>WAG354G</kbd> est maintenant confié à la FreeBox. Bien évidemment le minimum syndical de sécurisation est paramétré avec une clef WPA la plus longues et la plus incompréhensible possible. Sachez qu'une clef WPA choisie dans le dictionnaire offre moins de sécurité qu'une clef WEP...
</p>

<h3>TNT</h3>
<p>
  Pour l'instant rien n'est fait à ce sujet car nous n'avons pas d'antenne dans notre nouveau logis. C'est peut-être quelque chose qui va changer dans l'avenir avec un "Leira" maison et un décodeur TNT (voir architecture materielle plus loin).
</p>

<h3>Câblage Audio</h3>
<p>
   L'audio est séparé en deux ensembles correspondant aux deux étages. A l'étage supérieur la FbxHD et la station de travaille partagent le même ampli pour les projections et la sonorisation (musique). A l'étage inférieur, la sonorisation de la chambre est assurée par Nephilia et pour éviter de l'entendre ronfler, le signal transite par du câble à travers les murs. Le serveurs est donc colé dans la buanderie où il peut grignoter son disque tranquille, peinard. 
</p>  

<h3>Câblage Vidéo</h3>
<p>
   Après pas mal d'essais, vu la distance entre le rétroprojecteur et la FbxHD, l'option choisie est simplement un câble de 10m en S-Vidéo. L'image est propre, sans parasites. 
</p>

<h3>Téléphonie</h3>
<p>
    Pour la téléphonie l'option choisie est l'utilisation du DeCT qui rajoute certes son paquet de pollution EM mais qui reste bien pratique, comme le WIFI. La base Siemens GigaSet (ce que j'ai trouvé de mieux dans le domaine) communique avec 2 combinés pour l'instant.</p>
    <p>
    Dans l'avenir je compte explorer la piste de la téléphonie sur IP par WIFI pour les combinés ayant vocation à bouger ou par un iPhone, mais aussi par Ethernet pour avoir dans la chambre un téléphone qui ne rayonne pas. 
</p>

<h3>USB</h3>
<p>
  Imprimantes et scanner sont connectés à Nephilia via USB. Ca présente l'avantage de pouvoir cacher ce gros machin autre part que dans le salon (buanderie) et l'inconvénient d'avoir à se déplacer pour aller chercher les impressions. 
</p>
<p>
  Dans le même esprit je prévois lorsque ce sera nécessaire d'augmenter le nombre de sorties audio en ajoutant des modules USB sur Nephilia. 
</p>

<h3>Domotique</h3>
<p>
   Là c'est encore un sujet en étude comprenant des capteurs (température, humidité, intrusion, etc), vidéo-surveillance, contrôle de prise, etc. J'avais commencé à explorer la voie 1-Wire mais je ne suis pas encore allé très loin.
</p>

<h2>Architecture logiciel</h2>
  <p>
    En terme de répartition des services, la dédibox prends à sa charge tout ce qui est publique (web, mail, etc.), la FreeBox prends le routage NAT, WIFI et la téléphonie, la FbxHD prends la diffusion vidéo sur le projecteur (TV, VOD, FreePlayer), la station de travail prends la diffusion musicale de l'étage supérieure et le serveur prends... tout le reste <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/> 
  </p>
  <p>
    Côté système d'exploitation c'est une <a class='external' target='_blank' href='http://mandriva.con' >Mandriva 2008.1</a> pour tous les postes sauf un portable sous Windows. Pour minimiser la bande passante lors des mise à jour, les dépôts de la distribution sont dupliqués chaque nuits sur Nephilia.  
  </p>
  <p>
    Pour en simplifier l'administration les machines sont reliées les unes aux autres par des clefs SSH. L'idée est d'autoriser l'accès root sur une machine UNIQUEMENT avec la clef source correctement déclarée sur la machine cible. Pour les machines publiques il faut aussi changer les ports pour éviter les choses standards de sorte à feinter l80% des attaques faites par des scriptes-à-neuneus. Pour plus d'informations, aller voir <a class='external' target='_blank' href='/node/82' >ce tutoriel</a>. 
  </p>
<h3>Serveurs WEB</h3>
  <p>
      Outre l'intranet, nos sites (artisan & co.) sont servis par un serveur <a class='external' target='_blank' href='http://apache.org' >Apache</a> utilisant le CMS <a class='external' target='_blank' href='http://drupal.org' >Drupal</a> et la base de données <a class='external' target='_blank' href='http://postgresql.org' >Postgresql</a>. Le paramétrage est classique et déjà fortement documenté sur le net.  
  </p>
  <p>
    Pour l'intranet hébergé sur Nephilia, c'est exactement la même architecture. Outre notre Drupal personnel, ce serveur nous permet d'accéder à distance à nos fichiers et calendriers 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=WebCAL'>
  WebCAL
  </a> (utilisable par 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=SunBird'>
  SunBird
  </a>) via 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=webDAV'>
  webDAV
  </a>. Bien entendu ces fichiers sont accessible uniquement via HTTPS et authentification. 
  </p>
  
<h3>Serveur de courrier</h3>
  <p>
    Là c'est un <a class='external' target='_blank' href='http://postfix.org' >Postfix</a> qui s'y colle allié comme il se doit à l'indispensable <a class='external' target='_blank' href='http://spamassassin.apache.org/' >SpamAssassin</a> (voir <a class='external' target='_blank' href='/node/79' >ce tutoriel</a>. Le courrier en lui-même n'est pas conservé sur la dédibox pour d'évidente raison de sécurité et m'est forwardé sur un serveur postfix hébergé sur <kbd>Nehia</kbd> en temps réel. Dans le même domaine, un démon <a class='external' target='_blank' href='http://fetchmail.berlios.de/' >fetchmail</a> est là pour récupèrer le courrier sur les comptes 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=POP3'>
  POP3
  </a> et les injecter dans postfix. 
  </p>
  <p>
    Une fois pris en charge par le serveur PostFix sur Nephilia, le courrier est stocké dans une base IMAP maintenue par <a class='external' target='_blank' href='http://cyrusimap.web.cmu.edu/' >Cyrus</a> (voir <a class='external' target='_blank' href='/node/1149' >ce tutoriel</a>). Ceci dit, Cyrus-Imapd a de fortes chances de disparaître lorsque <a class='external' target='_blank' href='http://www.dovecot.org/' >DoveCot</a> sera assez fonctionnel à mon goût. 
  </p>
  <p>
    L'avantage d'un serveur IMAP dans ce genre d'architecture est que tout notre courrier est centralisé dans une seule base de donnée. Il est donc accessible de partout avec Evolution, KMail ou Outlook via imapS lorsqu'il s'agit du monde extérieur, ou <a class='external' target='_blank' href='http://www.squirrelmail.org/' >SquirrelMail</a> pour un accès WEB. Nous pouvons donc via l'Intranet lire notre courrier à l'autre boût du monde ce qui est très, mais alors très pratique.  
  </p>
  
<h3>Nommage des machines</h3>
<p>
	Ici j'utilise simplement 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=Bind9'>
  Bind9
  </a> qui me permet de nommer les machines du réseau assez simplement un fois qu'on a compris comment ça fonctionnait. Il est configuré de sorte à ce que toutes les adresses qu'il ne connait pas soient redirigées vers le DNS du notre FAI. J'ai un temps utilisé NIS/yp mais lorsque l'on a des machines Windows qui débarquent, c'est pas très pratique. 
	</p>
	
	
<h3>Attibution d'adresses IP</h3>
    <p>Le DHCP de la FreeBox est déconnecté pour laisser la place à celui hébergé sur Nephilia. L'ensemble des machines connues sont sur IP Fixe automatiquement attribuée via l'adresse MAC. Il y a malgré tout une petite plage de 2 machines en IP dynamique qui est surveillée en permanence. Une petite sécurité supplémentaire. DHCP distribue comme il se doit l'IP, mais aussi l'adresse de la passerelle et du DNS qui sont toutes les deux celle de Nephilia. En effet, cette machine est configurée comme relais Internet de sorte à pouvoir y placer du filtrage, notamment pour le WEB. Nous avons donc sur Nephilia le triplet IPTables/TProxy/Privoxy qui tourne (voir <a class='external' target='_blank' href='/node/1204' >ce tutoriel</a>).</p>
    
   <h3>Comptes, contacts et calendriers</h3> 
    <p>Un annuaire <kbd>OpenLDAP</kbd> centralise les comptes, les groupes, les mots de passe, etc. Le tout s'installe et se configure assez simplement avec <a class='external' target='_blank' href='http://phpldapadmin.sourceforge.net/' >PhpLDAPAdmin</a>. Le LDAP est aussi utilisé pour l'authentification IMAP et WEB (voir ce <a class='external' target='_blank' href='/node/22' >tutoriel</a>).</p>
    <p>
    Un dernier domaine d'utilisation bien pratique de LDAP est le stockage des carnets de contacts de toute la tribu qui fonctionne très bien en lecture et en écriture avec Evolution (pas encore testé sous Outlook). 
    </p> 

<h3>Partages de fichiers</h3>
<p>
    C'est un aspect important, surtout si l'on commence à avoir des interférences entre domicile et vie professionnelle, et encore plus lorsque l'on est indépendant (TNS comme dit l'administration <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>. Dés que l'on fait des recherches, que l'on prend des photos, que l'on écrit des documents, nous sommes amenés à générer des fichiers dont il semble malin de centraliser le stockage pour en faciliter la gestion et la sauvegarde.
</p>
<p>
   La règle d'Or sur ce point est que l'on ne sait JAMAIS quant on peut avoir besoin d'un fichier, ni où. Il nous est par exemple arrivé de récupérer au fin fond de de l'himalaya une copie scannée de passeport qui nous a été des plus utile... 
</p>
<p>
  Outre l'accès externe via HTTPS (HTML et WebDav), en interne le stockage est accessible par 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=NFS'>
  NFS
  </a> pour les machines Linux et 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=CIFS'>
  CIFS
  </a> pour les Windows. La partie CIFS est assurée par <a class='external' target='_blank' href='/samba.org' >Samba</a> (voir <a class='external' target='_blank' href='/node/8' >ce tutoriel</a>).
</p>
<p>
  Outre les données classiques (documents, photos, vidéos, etc.) se trouvent aussi partagées notre audiothèque en OGG. 
</p>

<h3>Ambiance musicale</h3>
<p>
   Il y a 8 ans que j'ai commencé à mettre toute mon audiothèque en MP3. A l'époque cela semblait totalement saugrenu à mon entourrage (ne niez pas !! <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>. <q>Tout cet espace disque "gâché" alors que j'avais déjà le support</q>. Sans compter que je doublais cela d'un sacrilège : la destruction de toutes les boîtes trops encombrantes à mon goût pour ne stocker que l'essentiel (mes backups <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> dans un classeur. Le culte pas si lointaine du 33 tours me faisait passer pour un véritable barbare. 
</p>
<p>
   Beaucoup plus tard j'ai recommencé cette fastidieuse opération d'encodage, mais cette fois en OGG (meilleur qualité, meilleur compacité). J'en ai alors profité pour étendre le concept à mes DVD... Autant le dire, cette idée là était beaucoup moins intelligente que la première pour la simple et bonne raison qu'un album s'écoute des dizaines (des centaines ?) de fois, tandis qu'un film... rares sont les privilégiés qui ont dépassés le second visionnage. Outre la prise de conscience au 20ième encodage de la stupide perte de temps que cela impliquait, je me suis aussi rendu compte qu'il était un peu crétin de mixer ces deux "sphères d'activité" . L'audio a un mode d'utilisation et un usage très particulier qui ne s'accommode pas de la manière de visionner un film. Du coup j'ai lâché l'idée de "media center" à la mode MythTV, sorte de boîte à tout faire qui finalement ne fait rien de bien.    
</p>
<p>
   Le besoin musical s'est donc "réduit" à l'exploitation de mon stock d'albums digitalisés qui doit être distribué sur plusieurs sorties audio, une par étage pour être exacte. Il n'est donc pas question de centraliser l'interface sur une machine (genre avec Amarok ou Rythmbox) mais d'utiliser un serveur musical pouvant être commandé à distance par divers outils (iphone, portable, interface WEB, 
   Application dédiée). Le choix c'est donc porté très logiquement sur <a class='external' target='_blank' href='http://www.musicpd.org/' >MPD</a> qui permet 
   <ul>
   <li>D'utiliser la même base de donnée partagé entre plusieurs instances gérant chacune une sortie audio.</li>
   <li>Partager via NFS les playlists.</li>
   <li>De commander l'ensemble de n'importe quel ordinateur via des applications en dur (Sonata) ou des interfaces WEB (pitchform), et ce même avec un iPhone qui joue du coup le rôle de télécommande de luxe.</li>
   </ul>
</p>
<p>
  Pour un tutoriel sur l'installation de MPD, il faut aller par <a class='external' target='_blank' href='/node/1603' >ici</a>. 
</p>


<h3>Vidéo</h3>
<p>
   La Télévision et la VOD sont déjà pris en charge par le FbxHD. Reste la lecture de fichiers vidéo (dv, avi, etc.) et des DVD. En utilisant <a class='external' target='_blank' href='/node/1604' >cette technique</a>, j'utilise la FbxHD comme terminal vidéo me permettant de lire fichiers et DVD avec simplement VLC. Les DVD sont lus sur la station de travail Antinea qui est la seule à disposer d'un support optique. Autre solution sinon, passer par un portable.    
</p>
<p>
  Mais comme je le disais plus haut, je doute qu'à terme cette solution soit vivable. 
</p>

<h3>Téléphonie</h3>
<p>
   Là c'est du grand classique consistant principalement à gérer la messagerie vocal et distribuer les nouveaux messages sur une adresse courriel. A l'origine je jouais avec Asterix et un modem Vocal avec plus ou moins de bonheur. Aujourd'hui la FreeBox gère cela très bien donc autant la laisser faire. 
</p>

<h3>Impression et numérisation</h3>
<p>
   Pour le serveur d'impression le choix logique (unique ?) est <a class='external' target='_blank' href='http://www.cups.org/' >CUPS</a> qui permet de rendre accessible une imprimante à travers le réseau pour une machine Unix (voir <a class='external' target='_blank' href='/node/1336' >ce tutoriel</a>) ou à travers Samba, pour une machine Windows (voir <a class='external' target='_blank' href='/node/8' >ce tutoriel</a>).
</p>
<p>
  La même chose est possible pour un serveur de numérisation avec <a class='external' target='_blank' href='http://www.sane-project.org/' >SANE</a> (voir <a class='external' target='_blank' href='/node/1159' >ce tutoriel</a>). Mais dans mon cas, l'éloignement rend la chose un peu stupide. Pour l'instant je lui préfère une simbe carte mémoire au format SD en utilisant les fonctions de numérisation intégrées. La RX640 que j'utilise a en effet le bon goût de rendre ce lecteur visible sur le port USB et il est donc montable sur le serveur. 
</p>

<h3>Sauvegardes</h3>
<p>
    Je ne vais pas revenir sur ce point, je m'y suis très longement étendu <a class='external' target='_blank' href='/node/1606' >ici</a>.
</p>
<h3>Supervision</h3>
<p>
   A l'origine j'utilisais Nagios pour superviser tout ce beau monde et me prévenir quant quelque chose partait en croche. Vous pouvez lire <a class='external' target='_blank' href='/node/1157' >ce tutoriel</a> qui explique comment faire
</p>
<p>
  Cependant, Nagios et moi sommes fachés depuis la version 3. Car après avoir passé deux journées à configurer tout cela aux petits oignons, j'ai assez mal digéré que tout parte en vrille moins d'un an plus tard au changement de version. Du coup j'ai viré ce vilain je pense définitivement. 
</p>
<p>
  En remplacement je pense de plus en plus à utiliser un script maison sur le principe de celui qui effectue les sauvegardes, et qui me demandera autant d'effort que de ré-écrire une configuration Nagios. L'idée de base est d'utiliser <a class='external' target='_blank' href='http://oss.oetiker.ch/rrdtool/' >rrdtool</a> pour le stockage, des scripts dans CRON pour l'allimentation et <a class='external' target='_blank' href='http://www.cacti.net' >Cacti</a> pour la visualisation. Tout cela n'est pas encore bien sec mais l'idée est là. 
</p>
<h3>Compilation</h3>
<p>
  Ca, c'est une besoin qui m'est propre, je vous l'accorde. Peu dans la maisonnet ont besoin de lancer de lourde compilations <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> Mais ce besoin existant malgrès tout, et disposant de machines puissante n'ayant rien d'autre à faire, il aurait été bête de ne pas installer sur chacune d'entre elles un serveur 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=distcc'>
  distcc
  </a>. Cela me permet de repartir la compilation sur autant de machine m'offrant un gain très appréciable de temps lors de compilation d'un kernel par exemple. Pour plus d'informations sur distcc, c'est <a class='external' target='_blank' href='/1170/edit' >par ici</a>.
</p>

<h2>Conclusion</h2>
<p>
  Voilà, je pense que ma description est pour le coup assez exhaustive pour que chacun y trouve son compte. l'ensemble peu paraître un impressionnant mis bout à bout mais la qualité d'une distribution comme la Mandriva permet de faire tout cela avec relativement peu de configuration, en espérant que les tutoriels que j'ai ajouté un peu partout dans cet article permette de faire le reste du chemin. 
</p>    ]]></content>
  </entry>
  <entry>
    <title>Mise à jour : Gravatar, Syntaxe Highlighter &amp; co.</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1607" />
    <id>http://artisan.karma-lab.net/node/1607</id>
    <published>2008-08-05T13:30:23+02:00</published>
    <updated>2008-08-05T13:30:23+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Informations sur le site" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
   Un post rapide pour vous dire que j'ai essayé de régler deux trois problèmes avec le site. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   Un post rapide pour vous dire que j'ai essayé de régler deux trois problèmes avec le site. 
</p>
<!--break-->
<p>
  Le premier concernait pas mal de 404 sur des images d'anciens articles qui en ralentissait le chargement, normalement réglé. 
</p>
<p>
  Ensuite le soucis avec le temps de chargement de gravatar. Avant de virer cette option, j'ai tenté une méthode douce. Les gravatars ne sont plus chargé par votre navigateur mais par le serveur qui les mets en cache. Du coup, hormis le temps induit de téléchargement de l'image par le serveur la première fois, la suite se passe en local donc. Inconvénient de la méthode, si vous changez vos gravatar, l'image ici restera la même. J'ai donc mis une limite au cache qui forcera le rafraîchissement 1 fois par semaine. Ca me parrait raisonnable. 
</p>

<p>
  Le dernier point concerne l'illuminateur de syntaxe que j'ai mis à jour avec la dernière version de Geshi. J'en ai profité pour refaire une feuille de styles propre et normalement les scripts bash devraient être un peu moins vilains. J'en ai profité pour regarder ce qui coinçait avec FF3 et le mode "texte simple". C'est normalement réglé mais n'hésitez pas à me dire si ça continue de poser problème. 
</p>

<p>
   Enfin j'ai viré le module "Smileys" qui augmente inutilement les temps de chargement et casse les mises en page. Si je trouve une meilleur option ou un jeu de smileys plus compatible avec le flot du texte, je le remettrais. 
</p>

<p>Voili, voilà, &lt;EOT&gt;</p>    ]]></content>
  </entry>
  <entry>
    <title>Réflexions sur une architecture plus verte</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1303" />
    <id>http://artisan.karma-lab.net/node/1303</id>
    <published>2008-08-01T11:59:39+02:00</published>
    <updated>2008-08-02T18:56:17+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Green Computing" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>  
  Si <a class='external' target='_blank' href='http://artisan.karma-lab.net/node/1172' >serveur domestique</a> nous a donnée pleine et entière satisfaction fonctionnelle pendant un peu plus de quatre ans (toutes version confondues), c'est sur le terrain écologique que la bête s'est révélée être une vraie plaie. Il était donc grand temps d'appliquer à l'engin le même régime qu'au reste du logis. 
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>  
  Si <a class='external' target='_blank' href='http://artisan.karma-lab.net/node/1172' >serveur domestique</a> nous a donnée pleine et entière satisfaction fonctionnelle pendant un peu plus de quatre ans (toutes version confondues), c'est sur le terrain écologique que la bête s'est révélée être une vraie plaie. Il était donc grand temps d'appliquer à l'engin le même régime qu'au reste du logis. 
</p>
<!--break-->
<h2>Une question énergétique</h2>
<style>
  .regles {
    background-color:white;
    border-top:1px solid #6b8730;
    border-bottom:1px solid #6b8730;
    padding:5px 15px 0px 60px;
    margin-left:20px;
    background-image:url("../files/artisan/1303/green-key.jpg");
    background-repeat:no-repeat;
    background-position:0px 5px;
  }
</style>
<image file="centrale.jpg" width="150"/><p>
  Cela fait pourtant des années que je me casse les pieds à changer nos ampoules pour des « basse consommation », à choisir un électroménager qui va bien, installer des interrupteurs généraux pour éviter les mises en veille, réduire le volume d'eau engloutie dans douche et toilettes, ou encore nourrir les plantes avec l'eau du riz et autres épluchures de crevettes (ceci dit, elles adorent ça <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>. Et il m'a pourtant fallut prés de trois ans, et deux générations de Golgoths, pour me décider à sortir enfin mon compteur électrique du placard et regarder ce que consomment réellement mes machines. Allez comprendre, on est sûrement moins critique avec ce que l'on a conçu soi-même...
</p>
<p>
  En tout cas, l'atterrissage fût rude lorsque le monstre construit de mes mains s'est révélé sous le jour d'un véritable gouffre à électrons chiffrant <strong>de 250 Watts à vide à 308 Watts en charge</strong>. Ce qui correspond en gros <strong>65%</strong> de notre consommation électrique domestique... Ca laisse songeur, non ? Ce ne sont <i>que</i> deux machines comme celle que vous avez sûrement...
</p>
<p>
  Alors j'entend déjà certaines bonnes âmes, bercées par notre "grand" serpent à sornettes, me dire que c'est n'est pas grave, que je me bile pour rien, qu'en France on a bien de la chance car on a le nucléaire. Et que <q>ce qu'est bien avec un sèche cheveux nucléaire, c'est que ça pollue po car, c'est bien connu, car ça fait po de CO<sub>2</sub> le nucléaire !</q>  
</p>
<p>
  En France, 80% de l'énergie domestique est nucléaire, et contrairement aux idées reçues, travaillées en souterrains par les médias et autres lobbies, le nucléaire pollue. Alors c'est sur, il ne produit pas de CO<sub>2</sub>, mais depuis quant la pollution se limite t-elle aux gaz à effet de serre ? </p>
  <p>Le nucléaire réchauffe les cours d'eau. Le nucléaire pollue par des rejets dans la nature qui ne se font pas uniquement lorsqu'un obscur réacteur russe part en sucette. Le nucléaire pollue parce qu'une bonne part du "retraitement" consiste, in fine, à vitrifier les déchets pour les coller dans un trou (pudiquement baptisé "laboratoire"). Le nucléaire pollue aussi parce que produire <b>UNE tonne d'uranium fissible</b> génère mécaniquement <b>5.5 tonnes d'uranium "déchet"</b>, qualifié poétiquement d'<em>Appauvri</em>, même s'il est tout aussi radioactif que son frèrot. Des déchets stockés en France comme des <q>matière première</q> dans des centres de stockage au niveau de sécurité proche de celui d'un hangar à betteraves... Des déchets dont les <q>nations civilisées</q> se débarrassent lors des divers conflits modernes, comme les 800 tonnes officielles larguées sur l'Irak de papa Bush... 
</p>

<p>
  Bref, l'ambition réel de ce nouveau golgoth est donc, fabriquer une machine la plus <q>verte</q> possible :
  <ul class="regles">
    <li>Limiter au maximum la consommation électrique.</li>
    <li>Utiliser des solutions d'alimentation pouvant être alternative au solaire/éolien.</li>
    <li>Norme 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=RoHS'>
  RoHS
  </a> (de toute façon obligatoire sur le marché CEE).</li>
    <li>Préférences aux normes d'efficacité énergétiques (
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=Energy Star'>
  Energy Star
  </a>, <a class='external' target='_blank' href='http://www.80plus.org' >80Plus</a>, etc.).</li>
    <li>Stocker mon ancien materiel ou trouver un site de retraitement 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=DEEE'>
  DEEE
  </a> fiable, pour éviter que tout finisse un jour <a class='external' target='_blank' href='http://rigas.ouvaton.org/article.php3?id_article=236' >ici</a>.</li>
 </ul>
</p>

<h2>Eteindre la lumière</h2>
<a name="chapitre_1" ></a>
<image file="planeteavecrobinet.jpg" width="150"/><p>
   Les <q>chasses au gaspi</q> que j'ai pu mener dans d'autres domaines m'ont au moins appris une chose : les véritables économies d'énergie résident plus dans nos usages qu'en n'importe quelle révolution technologique. Pour prendre un exemple basique, éteindre la lumière en sortant d'une pièce sera toujours plus efficace que de laisser allumée une ampoule fluo compacte... Et il en va de même pour l'informatique : l'éteindre aussi souvent que possible sera plus efficace que de tout miser sur de nouveaux composants ultra sobres.  
</p>
<p>
<p>
  Lorsque l'on fait un peu la liste des fonctions que l'on désire voir implémentées sur une architecture domestique, on se retrouve rapidement avec trois lots distincts : celles qui ne peuvent être planifiées,  celles qu'il est très emmerdant de planifier et celles dont l'utilisation a clairement un début et une fin. Dans la première catégorie l'exemple typique est la réception du courrier, le service WEB, la supervision. Dans la seconde c'est typiquement l'accès aux données (NAS). Au fond rien ne nous empêche d'allumer la machine qui contient les fichiers partagés et de l'éteindre lorsque l'on a fini des les utiliser, mais c'est un peu... lourd disons. Enfin, pour la dernière catégorie, nous avons des choses comme "regarder un DVD". De toute façon il faut déjà allumer l'écran, insérer le disque, etc. Allumer en premier lieu une machine ne parrait pas être un effort dépassant l'entendement. 
</p>   
<p>
   Une bonne manière de gérer cela est d'utiliser des multi-prises avec interrupteur. Pour les plus joueurs, il est aussi possible d'utiliser une multi-prise <a class='external' target='_blank' href='http://www.ginjfo.com/Publics/Dossiers/GinjFo-Test-1-4-155-Divers.html' >commandée par USB</a>. L'idée est d'utilser la tension 5v d'un port USB du PC pour commander l'allimentation des périphériques. Lorsque le PC s'éteind, la tension disparait et la multiprise coupe le jus. Pour les bricolo, une version "fait main" de cet <a class='external' target='_blank' href='http://ludvol.free.fr/articles.php?lng=fr&amp;pg=232' >type de multiprise existe aussi</a>.
</p>
<p>
   Mais cela ne vous évitera pas de finir par éteindre le PC lui-même car il ne faut pas oublier qu'un PC éteint, ne l'est vraiement que si l'interrupteur à l'arrière est à Off, sinon, la carte mère continue à manger ses 5 à 10W...
</p>
<p>
  Enfin pour simplifier le redémarrage, vous pouvez modifier dans votre BIOS une option "Auto Power On" qui va permettre de lancer automatiquement le PC dés que l'interrupteur physique est sur On.  
</p>

<p>
   Dernière petite astuce, il n'est pas rare d'avoir sur une même multi-prise des machines pouvant être éteintes, et d'autres ne devant pas l'être. C'est typiquement le cas si vous avez dans le même meuble une FreeBox, une FreeBox HD pour la vidéo, une télévision et un ampli. Si vous n'avez aucun service utilisant en permanence Internet, vous pouvez tout éteindre en partant sans problème. Mais si vous avez par exemple un serveur WEB ou SMTP, il est pertinet de chaîne deux multiprises, l'une avec par exemple le téléphone et la FreeBox, chaînée à une seconde sur laquelle serait branchée l'ampli, la télévision, la FreeBox HD (qui consomme 13w en veille !!!). Du coup, vous pouvez éteindre sans risque une partie de l'installation en laissant l'autre allumée. 
</p>
<p>
   Ainsi une bonne partie des machines offrant ces fameux services "épisodiques" peuvent être éteinte lorsqu'elle ne sont pas utilisées et l'habitude viendra aussi naturellement qu'il ne vous viendrait pas à l'idée de partir en laissant la lumière allumée chez vous. Car n'oubliez pas que sur un système informatique standard, c'est de <a class='external' target='_blank' href='http://www.ginjfo.com/Publics/Dossiers/GinjFo-Test-0-4-155-Divers.html' >20 à 30W de consommé</a> lorsque tout est "en veille". 
</p>

<p>
Bonne pratiques induites :
<ul class='regles'>
<li>Eteindre physiquement tout ce qui n'a pas besoin de fonctionner en permanence. </li>
</ul>
</p>

<h2>Le stockage</h2>
<image file="mac-mini.jpg" width="150" style="border:none;"/>
<p>
   Le Mac mini, qui est un bon exemple de basse consommation (30W en charge), utilise des éléments normalement présents dans les ordinateurs portables, et notamment un disque dur de 2.5". Ces derniers présentent de nombreux avantages, à commencer par leur consommation de 5W maximum à comparer aux 15W d'un disque dur classique de 3.5". Ceci dit, il n'y a pas là de réelle magie car disque ne tourne pas à 7200 tours comme les grands, mais à 4200 tours. Il est donc exclu d'en utiliser pour un serveur de stockage mais cela reste possible pour booter un machine type <q>multimédia</q>. 
</p>
<p>
    Un disque dur 3.5" peut consommer jusqu'à 15W en charge. En comparaison, un disque dur de 2.5" réduit cela à 5W maximum. Il n'y a ceci dit pas là de réelle magie car disque ne tourne pas à 7200 tours comme les grands, mais à 4200 tours. Il est donc exclu d'en utiliser pour un serveur de fichiers mais reste très envisageable pour une machine ayant besoin de grands espaces sans y chercher une performance particulière (machine dédiée à un home cinéma par exemple).
</p>
<p>
  Une autre option côté stockage consiste à utiliser de la mémoire Flash. La mémoire flash ne consomme quasiment rien, 0.5W tout au plus, soit 10 fois moins qu'un 2.5" et 30 fois moins qu'un 3.5". Alors il y a certes un problème de capacité si l'on veut rester dans un coût raisonnable. Mais pour quelques 40€, on trouve des cartes Compact Flash de 2GO x266, dual channel pour un débit de 40mo/s que l'on peut utiliser sur un simple port IDE grâce à un convertisseur qui ne coûte lui qu'une dizaine d'euros. 2GO cela peut sembler bien peu mais vu que l'on a bien défini les besoins sur deux machines physiques différentes, ce sont deux Linux très minimaliste qu'il va me falloir, et je n'ai aucun doute que cela tienne, sans aménagement et avec beaucoup d'aise dans cet espace. Maintenant ces valeurs ne valent que pour de pauvrettes CF, avec un SSD de grande capacité, les résultats sont <a class='external' target='_blank' href='http://www.tomshardware.com/reviews/ssd-hdd-battery,1955-8.html' >un peu plus mitigés</a>.
</p>
<p>
   
</p>
<p>
  Reste le cas du lecteur de DVD. Un bonne stratégie d'économie consiste ici aussi à faucher des pièces du monde des portables et utiliser un Combo graveur DVD au format "Slim". Un tel lecteur consomme 4 à 5 fois moins qu'un graveur de DVD pleine hauteur. Et là en revanche, aucune contre-indication, c'est aussi performant. Il suffit juste d'en trouver un qui soit motorisé pour plus de confort. Mais d'un point de vue général, tout PC moderne démarre très bien sur une clef mémoire en USB, ou mieux, sur un lecteur de CD doté d'un adaptateur IDE/USB (une dizaine d'euros). Il n'est plus nécessaire de coller à chaque machine un lecteur optique et encore moins un lecteur de disquettes. Supprimer ce genre d'élément, c'est autant d'énergie économisée. 
</p>


<p>
Bonne pratiques induites :
<ul class='regles'>
<li>Utiliser de la Flash n'ayant pas besoin de disque dur.</li>
<li>Préférer les disques 2.5" pour les machines ne faisant pas un usage intensif du systeème de fichier.</li>
<li>Ne mettre de lecteur optique QUE sur les machines en ayant besoin.</li>
<li>Remplacer les lecteurs/graveurs de DVD par leur équivalent "Slim".</li>
</ul>
</p>


<h2>Changer le format des cartes-mères</h2>
<image file="mini-itx-compare.jpg" width="150" style="border:none;"/>
<p>
     Plus c'est compact, plus c'est sobre. Cette régle un peu péromptoire mais comportant pourtant un bon fond de vérité. En effet, l'intégration diminue les pertes, mais surtout elle oblige à utiliser des puces peu gourmandes qui sont à l'origine dédiées au unités mobiles. Lorsqu'il s'agit d'un ordinateur de bureau, le choix d'une micro carte mère doit être bien pesé si l'on recherche avant tout la puissance et l'évolutivité. Les petite carte mères acceuillent souvent moins de mémoire, moins de cartes d'extensions, et des processeurs moins puissant, sans parler de la vidéo et de la 3D... Ceci dit, tout est relatif, et les micro-machines à base d'Intel Core2 Duo délivrent une puissance très acceptables pour un encombrement et une consommation très faible. 
</p>
<p>
   Maintenant s'agissant d'un serveur domestique, le piège à éviter est justement de chercher la puissance et se disant "c'est un serveur donc faut qu'ça boost". C'est très vrai en entreprise lorsque 400 personnes bourinne desssus en même temps, c'est complètement faux lorsqu'il s'agit d'une unité domestique qui n'a que très peu de chose à faire simultanément. On peut donc opter dans ce cas pour de très petites cartes mères qui prendra en charge sans broncher des tâches comme la réception du courrier, la gestion d'un serveur de fichiers, le filtrage du WEB, ou encore la distributions d'ambiance musicale. Et le tout pour une consommation très faible grâce à des chipsets peu gourmands.  
</p>
<p>     
  Après avoir testé pas mal de possibilités et de formats de cartes plus exotiques les uns que les autres, j'ai finalement retenu le quasi standard mini-ITX. Ce ne sont pas les plus petites cartes du marché mais elles ont été adoptées par un grand nombre de fabricants (EPIA, Jetway, Commell, AOpen, etc..), sont très compactes (17cm sur 17cm), et existent avec ou sans CPU intégré.
</p>
<p> 
  A noter qu'aujourd'hui de nombreux assembleurs (Dell, AOpen, etc.) fournissent de telles machines tout équipées à des prix souvent plus faibles que si vous achetiez chaque pièce une à une. Enfin, pour ceux que le manque d'extension (1 port PCI généralement) inquiète, il existe les  <a class='external' target='_blank' href='http://www.mini-itx.com/store/?c=8#p1902' >Riser</a> (info <b>pgas</b>) qui permettent de doubler le port mais aussi de positionner les cartes horizontalement. Certaines fabriquant proposent même des ports mini-PCI ou, comme les Jetways, des supports pour des cartes-filles spécifiques. 
</p>
<p>
  Enfin, si les possibilités d'extension vous semblent encore limitées, il ne faut pas oublier que l'USB est là pour quelque chose. C'est d'ailleurs une solution adoptée par nombre de constructeur de portables qui câblent en interne les cartes audio ou TV sur des contrôleurs USB.  
</p>
<p>
Tout ceci nous dicte les règles suivantes :
<ul class='regles'>
	<li>Privilégier les petits formats de carte lorsque c'est possible (MiniITX, MicroITX, MicroATX, etc...)</li>
</ul>
</p>

<h2>Choix du processeur</h2>
<image file="C3_Neh_EBGA-370_image_L_mini.jpg" width="150" style="float:right;border:none;"/>
<p>
  Pour les cartes mini-ITX, nous avons le choix entre les VIA (C3, C7, Nano), les AMD Geode (LX700 et LX800), Les Intel Atom, Pentium M, Intel Celeron et enfin Intel Core 2 Duo Mobile. Les VIA sont toujours inclus sur la carte-mère, de même que les géodes. Pour les Intel, à une exception près, il s'agit donc d'acheter le processeur en plus. 
</p>
<p>
  Arriver à comparer ces différents processeurs est un vrai casse-tête. Il ne faut pas trop compter sur les fabricants qui se livrent une guerre acharnée et les sites de matériel s'intéressent finalement assez peu aux aspect "consommation" pour porter leur gourmandise sur la puissance brute. Finalement, tel est notre monde, ce qui reste le plus simple à comparer, c'est le prix. 
</p>
<p>
  Les <strong>AMD Geode</strong> sont des processeurs peu puissants mais très sobres. A titre d'exemple, certaines solutions embarquant un LX700, 256Mb de RAM, un alimentation en 12v et deux Fast-Ethernet, consomment à peine 5W. J'aurais une solution réseau type firewall/routeur à fabriquer je n'hésiterais pas une seconde, elles sont faites pour cela. 
</p>  
<p>
  Les <strong>puces VIA C7 (Edhen)</strong> sont semble t-il les championnes de la faible consommation avec 20W pour la version 2Ghz (12W pour 1.5Ghz) pour un prix très bas (généralement inclus dans celui de la mobo). Autre avantages de la gamme Edhen, la présence d'une unité appelée PadLock, permettant le cryptage Hardware utilisé entre autre par OpenSSH. Maintenant, le "hic" de ces puces reste, comme pour l'ancien C3, leur coeur d'exécution "un peu" faiblasse, spécifiquement pour ce qui est de l'unité flottante et un C7 1.5Ghz se fait proprement ratatiner par un Pentium M 1.5 ou un Celeron M 1.3Ghz. Maintenant, tout est relatif et ces puces semblent assurer leurs fonctions multimédia sans broncher, pourvu que je ne leur demande pas d'encoder. 
</p>
<p>
  Les <strong>Pentium M et Celeron M</strong> sont de bons compromis puissance/consommation. Plus puissant qu'un VIA, un Celeron M 220 pour 8W supplémentaire, leur problème à eux, c'est le prix. Il faut en effet compter entre 80 et 200€ pour le processeur, et ce en plus de la mobo. La seule exception à cette règle est la carte mère "OVNI" Intel D201GLY2. 
</p>
<p>
  Les <strong>Intel Core 2 Duo</strong> sont les puissants pour une consommation électrique étonnante (c'est celui du Mac mini). Et il sont aussi chers, entre de 250 à 300€ pour un T7200. 
</p>

<p>
  La tableau suivant est une tentative de comparaison en présentant le modèle, la puissance consommée (Chiffres non vérifiés glanés à droite et à gauche), la valeur du bogomips linux (ce n'est pas un bench, juste une estimation de puissance), et le rapport entre les deux pour obtenir une idée de la "puissance par watt" de chacun.  
  <table>
  <caption>Petite comparaison des CPU</caption>
  <tr>
    <th>CPU</th>
    <th>Fréquence</th>
    <th>TDP</th>
    <th>bogomips</th>
    <th>P/W</th>
  </tr>
    <tr>
    <td>Geode LX800</td>
    <td>500</td>
    <td>5</td>
    <td>997</td>
    <td>199</td>
  </tr>
  <tr>
    <td>Via V7</td>
    <td>1.5</td>
    <td>12</td>
    <td>2996</td>
    <td>249</td>
  </tr>
  <tr>
    <td>Via V7</td>
    <td>2</td>
    <td>20</td>
    <td>3996</td>
    <td>199</td>
  </tr>  
  <tr>
    <td>Celeron M 220</td>
    <td>1.2</td>
    <td>35</td>
    <td>2400</td>
    <td>68</td>
  </tr>
  <tr>
    <td>Celeron M 215</td>
    <td>1.33</td>
    <td>35</td>
    <td>2668</td>
    <td>79</td>
  </tr>
  
  <tr>
    <td>T7200 2Ghz</td>
    <td>2</td>
    <td>45</td>
    <td>3990x2</td>
    <td>177</td>
  </tr>
  </table>
</p>

<p>
   Régl
   <ul class="regles">
	   <li>La puissance ne sert que si l'on s'en sert, sinon, cela ne fait que chauffer la pièce. Un Via C7 pour un serveur de fichier sera plus adapté d'un Core2 Duo. Et un LX700 pour faire un pare-feux c'est plus malin qu'un Via Nano.</li>
	 </ul>
</p>

<h2>Carte graphique</h2>
<p>
    Un gouffre énergétique insoupsonné (ou presque) est la carte graphique. La surenchère dans ce domaine est arrivée à un point ou ces modules sont aussi gourmand qu'un ordinateur complet. Et ce sans compter sur des joyeusetés comme mettre plusieurs cartes graphiques en batterie... 
</p>
<p>
   Pour se donner une idée, une carte 3D en PCI-Express 9600GT consomme 35W utilisée avec un traitement de texte... Ca laisse sonjeur lorsque l'on sait qu'un simple 6200 n'en utilise elle que 15W, et qu'une carte graphique PCI d'il y a 5 ans... 5W... Alors si vous n'utilisez votre machine QUE pour jouer, pourquoi pas. Mais dans le cas contraire à quoi cela sert t-il ?   
</p>
<p>
   Heureusement pour les cartes mères type miniITX, la vidéo est souvent intégrée avec un chipset peu gourmand. En revanche, si vous montez un serveur avec une carte ATX standard, cherchez plutôt une vielle carte AGP de base. Pour les configurations ne demandant pas de 3D du tout, il y a des pistes du côté des ATI FireMV mais elles sont chères. 
</p>

<p>
	Ce qui donne les règles d'alimentation suivantes :
   <ul class="regles">
	   <li>Si vous êtres un gros joueur, achetez vous une console de jeu, ou un PC dédié. Au moins vous pourrez l'éteindre lorsque vous ne vous en servez pas...</li>
	 </ul>
</p>
<h2>Alimentation 12v</h2>
<image file="picopsu.jpg" width="150" style="float:right;border:none;"/><p>
  Sans rentrer dans les arcanes techniques des alimentations, quelques points notables concernant une 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=alimentation à découpage'>
  alimentation à découpage
  </a> :
  <ul>
  <li>La <em>puissance Maximum</em> d'une alimentation n'implique pas qu'elle va consommer toute cette puissance mais juste qu'elle ne pourra fournir plus. Ce que consomme une alimentation sur la prise est fonction de ce que ce qui est branché dessus consomme. Par exemple une alimentation ayant une puissance Max de <strong>1000W</strong> (il parrait que ça existe...), branchée sur un système qui consomme <strong>70W</strong>, ne va <em>théoriquement</em> pomper sur la prise <strong>que 70W</strong>. Théoriquement car en réalité c'est une peu plus comme nous alons le voir. </li>
  <li>Pour fonctionner, une alimentation consomme du jus. Du coup on appelle <em>efficacité</em> (exprimé en %) le rapport entre le nombre de Watts qu'elle va fournir avec celui qu'elle a pris dans la prise. Donc si notre alimentation de 1000W a une efficacité de <strong>70%</strong>, et que ce qui est branché dessus consomme <strong>70W</strong>, l'alimentation va en réalité pomper <strong>100W</strong> (car 70% de 100W = 70W). Le courrant porté manquant est mangé par l'alimentation elle-même et transformé en chaleur. D'où le ventilateur.</li>
  <li>Plus la consommation de ce que l'on branche sur une alim s'éloigne de la puissance Maximum, plus l'efficacité diminue (ce n'est pas linéaire ceci dit). Du coup si l'on prend 70W à la sortie d'une alimentation de 1000W Max, on risque fort d'avoir une bien plus mauvaise efficacité que les 70% officiels. Par exemple, une bonne alimentation, certifiée <a class='external' target='_blank' href='http://www.80plus.org' >80Plus</a> a une efficacité de 80% si l'on utilise entre <strong>20 et 80%</strong> de sa puissance Max, c'est à dire dans notre exemple qu'il faut consommer entre 200 et 800W. Du coup si l'on ne consomme que 70W, il faudrait mieux prendre une alimentation de 150W.</li>
  <li>Une alimentation consomme même lorsque l'on ne s'en sert pas. C'est très variable d'une alimentation à l'autre et cela va de moins de un à une vingtaine de watts.</li>
  <li>D'un point de vue écologique, est considéré comme étant une <q>Vilaine pas belle</q>, une alimentation de 500 Watts Max, avec une efficacité de 40% pour un PC qui ne consomme que 80W. Riez pas, j'en ai une dans un placard !!</li>
  </ul>
</p>
<p>
  Fort de ce savoir, si l'on veut alimenter une unité de 60W en pointe et 20W en attente, il nous faut une alimentation certifiée 80Plus, ayant donc 80% ou plus d'efficacité et une puissance Max de disons 75W (utilisée à 80%) à 300W (utilisée à 20%). Autant dire des alimentations qui ne courent pas les rues en ATX.  
</p>
<p>
  Une solution serait de partager une grosse alimentation de qualité pour plusieurs unités, mais là ça se corse avec la norme ATX contrôlables par un et un seul PC. J'ai bien vu quelques fous du fer à souder jouer à cela pour deux cartes mais c'est assez "chaud". 
</p>
<p>  
  Une autre solution est de ne pas directement utiliser une alimentation ATX mais un <a class='external' target='_blank' href='http://www.mini-box.com/picoPSU-90' >convertisseur DC-ATX</a> qui prend un voltage continue en entrée et fournit en sortie les tensions au format ATX (+/-12v,+/-5v). L'efficacité de ces modules est assez bon, 96% officiellement. En prenant une <a class='external' target='_blank' href='http://www.edac.com.tw/products_open.asp?id=161' >alimentation AC/DC en sortie 12v pour 102W d'une efficacité de 82%</a>, cela forme une alimentation ATX d'une efficacité de 79%, ce qui n'est pas mal du tout pour un très petit volume et un bloc totalement silencieux. En effet, étant de faible puissance, il y a peu de chaleur à évacuer et donc pas de ventilateur. 
</p>

<p>
  Enfin, avantage ultime d'une alimentation en 12v est la possibilité de remplacer à terme les blocs à découpage par des solutions à base de solaire ou d'éolien. 
</p>

<p>
	Ce qui donne les règles d'alimentation suivantes :
   <ul class="regles">
	   <li>Toujours dimensionner une allimentation en fonction de l'usage réel. Une allimentation de 400W est un gros gaspillage si l'on a qu'un disque dur et que l'on ne joue pas.</li>
	   <li>Préférez les allimentation externe AC/DC et un convertisseur DC/DC, dés que la consommation interne est trop faible.</li>
	   <li>Vérifiez toujours le rendement d'une allimentation avant de l'acheter. Une allimentation plus chère peut donner un meilleur rendement, mais aussi griller moins vite et fournir une tension plus stable ce qui augmentera la durée de vie de l'ensemble.</li>
	 </ul>
</p>


<h2>Conclusion</h2> 
<p>
  En appliquant rigoureusement ces règles, mes deux serveurs ont été fusionnés en un seul (via C7) et je suis ainsi passé de 250W... à 35W. Et mon PC de bureau consomme prés de 70W de moins qu'auparavant (suppression des lecteurs optiques, disque de meilleur qualité, suppression d'un des 3 écrans, etc.) et ce avec une bien meilleur puissance (Intel Core2 Quadro). 70W qui ne sont consommés que lorsque je travaille dessus.  
</p>
<p>
  Quant à la machine dédiée à la télévision (carte TNT) et à la lecture de DVD et de vidéos qui consommait 120W, je l'ai tout simplement mis au placard et remplacé par le FreeBox HD qui n'en consomme plus que 13... 
</p>    ]]></content>
  </entry>
  <entry>
    <title>Test de la FreeBox HD</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1602" />
    <id>http://artisan.karma-lab.net/node/1602</id>
    <published>2008-07-29T13:13:39+02:00</published>
    <updated>2008-07-31T16:44:09+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Matériel" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
   Lorsque j'ai reçu ma freebox, avec son boîtier HD, je suis dit, mui bien !! je vais pouvoir utiliser ce bidule pour remplacer la machine qui me sert aujourd'hui de noeud multimédia. En effet, avec un disque dur, toutes la connectique audio/vidéo et réseau, une télécommande, la TNT, ça semblait parfait tout ça... Sauf que dans la vraie vie, du moins dans la mienne, tout ne se passe pas aussi bien que sur le dépliant....
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
   Lorsque j'ai reçu ma freebox, avec son boîtier HD, je suis dit, mui bien !! je vais pouvoir utiliser ce bidule pour remplacer la machine qui me sert aujourd'hui de noeud multimédia. En effet, avec un disque dur, toutes la connectique audio/vidéo et réseau, une télécommande, la TNT, ça semblait parfait tout ça... Sauf que dans la vraie vie, du moins dans la mienne, tout ne se passe pas aussi bien que sur le dépliant....
</p>
<!--break-->
<h2>Consommation</h2>
<p>
   Avant de commence à chercher à utiliser la FB-HD en remplacement d'une machine standard, la première question à se poser est de savoir si c'est énergétiquement rentable. J'ai donc commencé par regarder ce que mangait une FreeBox déjà, et une Freebox HD ensuite. 
<table>
<tr><th>Element</th><th>Mode</th><th>Consommation</th></tr>
<tr><td>FreeBox</td><td>-</td><td>9.2w</td></tr>
<tr><td>FreeBox HD</td><td>Veille</td><td>13.6w</td></tr>
<tr><td>FreeBox HD</td><td>Veille</td><td>15.5w</td></tr>
<tr><td>FreePlug</td><td>à vide</td><td>2w</td></tr>
<tr><td>Boitier CPL</td><td>en transfert</td><td>0w</td></tr>
</table>
</p>
<p>
   Déjà une chose est sur, les Freebox HD consomme moins qu'un PC, même en mini ITX. Si la consommation fait partie des préoccupations, c'est donc une machine à utiliser. A noter cependant le résultat en veille qui est lui assez énorme. En gros la veille de la FB-HD consiste juste à éteindre le disque dur et l'afficheur. Pensez donc à éteindre réellement ce boitier lorsque vous ne l'utilisez pas car 13.6W 24/24, 7/7, ça fait un vraie consommation pour rien du tout à l'année. 
</p>
<p>
  La consommation de la FreeBox elle-même est plus élevée qu'un simple modem-routeur comme mon ancien Linksys WAG354G qui ne consommait lui que 5.5w. Mais cela reste raisonnable. Une surprise cependant, le boitier CPL ne pompe pas suffisament pour que mon testeur puisse affficher autre chose que 0. D'une autre côté le contraire serait inquiétant <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>
<h2>MultiPoste</h2>
<p>
   La première chose que j'ai testé avec la FreeBox est le multi-poste et cela passe sans problème par le réseau switché en lançant un simple <kbd>vlc http://mafreebox.freebox.fr/freeboxtv/playlist.m3u</kbd>. Toutes les chaînes  y sont, certaines même en HD, sauf M6, TF1 et W9 qui semblent ne pas vouloir que les <a class='external' target='_blank' href='/node/1601' >voleurs que nous sommes</a> puissent copier les flux... Vu la soupe que ces chaînes distribuent, le préjudice n'est pas énorme. Cependant ce qui intrigue c'est pourquoi se donner tant de peine pour les 2 ou 3 millions d'abonnés free qui représente finalement une faible proportion de français qui peuvent potentiellement coller une carte TNT dans leur bécane et enregistrer ce que bon leur semble... Bref, le multiposte sous Linux marche très bien, sauf pour les chaîne de m***e.  
</p>
<p>
  Pour l'aspect technique, la playlist en question contient une série de flux 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=RTSP'>
  RTSP
  </a> (port 554) du genre
  <div class='code-container-area'><div class='code-container'><div class="code">rtsp:<span class="sy0">//</span>mafreebox.freebox.fr<span class="sy0">/</span>freeboxtv<span class="sy0">/</span>stream?<span class="re2">id=</span><span class="nu0">201</span></div></div></div>
</p>
<p>
  Cette adresse est donc parfaitement utilisable avec n'importe quel lecteur comme <kbd>mplayer</kbd>.
</p>

<h2>Bazzar de connectique..</h2>
<p>
   Le première problème rencontré est que Mme HD est qu'elle conçue pour les gens qui possèdent... une télévision. Alors je me suis dit, pas de soucis, y'a du s-vidéo donc c'est utilisable avec le rétro-projecteur. Et en effet, ça fonctionne, sauf que le son est tout est en digitale (logique c'est une HD machin...) et moi pas avoir prise digitale son mon bel ampli que j'aime. Alors après avoir écumé un peu les forums, je me suis rendu compte qu'il me manquait juste un bout d'adaptateur Péritel/RCA. Après l'avoir commandé et reçu,  tout a correctement fonctionné... jusqu'à ce que la lampe du vidéo-projecteur sans doute malmenée par le déménagement, me lâche avec traîtrise... maudite la HD ?? 
</p>
<p>
   Heureusement, sur les conseils éclairés d'un ami, je me suis souvenu que j'avais acheté dans le temps un adaptateur HDMI/DVI. Techniquement il devait donc y avoir moyen de balancer le signal sur un de mes moniteurs. Et la bonne nouvelle est que cela fonctionne très bien. Je pouvais donc enfin voir les menus et passer à l'étape suivante... 
</p>

<h2>M. FB et Mme HD</h2>
<p>
  Ensuite vient le moment de tenter l'accouplement entre les deux zinzins. Officiellement il y a le choix entre relier par le RJ45 via les deux prises jaunes ou encore utiliser les <kbd>FreePlug</kbd>. En effet, et là on fait <q>Ohhh!</q>, les deux blocs d'alimentation peuvent causer entre-eux via un adaptateur 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=CPL'>
  CPL
  </a>/RJ45 intégré. J'en avais fait un petit test de performances <a class='external' target='_blank' href='/node/1594' >ici</a>. Au passage, M. FB v5 ne semble plus pouvoir causer avec sa copine en WIFI. D'ailleurs les boîtiers n'ont plus d'antennes du tout...  
</p>
<p>
   Bref, deux moyens de communiquer bien galère en soit car entre un câble de 50cm et le CPL qui a tendance à me pourrir les enceintes, le choix est pour le peu difficile. D'ailleurs à propos du CPL, un petit truc bien funky...
</p>
<p>
 Grand naïf que je suis et enthousiasmé par les bons résultats de mes tests, j'avais commandé en même temps que mon adaptateur péritel/Audio, deux modules CPL que je pensais "supplémentaires". En effet, avec un FreePlug sur le mini-routeur de la freebox, l'autre sur la HD, je me disais que je pourrais avoir en plus deux adaptateurs sur deux machines supplémentaires où je voulais sur le réseau électrique.. En ben non, pas possible, les adaptateurs blancs refusent de parler aux adaptateurs noirs, c'est l'apartheid numérique cette histoire.</p>
 <p>
 J'ai bien sur contacté le support de free en faisant mon étonné (très pratique d'ailleurs leur nouveau système de support par chat), et la réponse officielle est bien que les deux freeplugs n'adresseront jamais la parole aux modules CPL achetés dans la boutique Free... Sympa non ? 
</p>
<p>
   La raison de cette état de fait pour le peu agaçant est peut-être que les FreePlug utilisent le standard <kbd>HomePlug AV</kbd> et que les boîtiers noirs la <kbd>Home Plug Turbo</kbd>. Et même si je pensais que ces deux standards étaient conçus pour savoir causer, il semblerait que ce ne soit pas le cas. 
</p>
<div class='inline-box note'>
  Pour dé-associer les deux FreePlug, il semble que maintenir le boutons pressé plus de 10 secondes suffisent à tout réinitialiser. 
</div>
<p>
Alors en désespoir de cause, j'ai branché sans espoir aucun le boîtier HD sur mon switch... tout simplement, sans freeplug ni rien. Et là miracle, ça marche ! Tout les services y sont... Du coup je ne comprend plus bien l'intérêt de la manoeuvre... Il faudrait tester sur un hub pour voir si on arrive à choper les paquets avec <a class='external' target='_blank' href='http://www.wireshark.org/' >wireshark</a>. Dans tout les cas, je peux enfin mettre le boitier HD où je veux sur mon réseau et c'est déjà pas mal. Voyons maintenant comment l'utiliser comme module multimédia.
</p>

<h2>Passage par FTP</h2>
<p>
   Pour commencer, la version soft. La freebox est disponible l'adresse <kbd>212.27.38.253</kbd> (mafreebox.freebox.fr) et pour le boîtier hd c'est <kbd>212.27.40.254</kbd> (hd1.freebox.com). Ce sont les mêmes adresse pour tout le monde et ce quel que soit la topologie de votre réseau. 
 </p>
 <p>
   Pour attaquer le boîtier en mode FTP, il faut déjà aller sur l'interface TV (bouton <kbd>free</kbd> de la télécommande), dans <kbd>Paramètres</kbd> puis <kbd>Disque dur</kbd>, pour activer et formater la surface. Pourquoi n'est-ce pas fait en usine, mystère. Ensuite de nouveau dans <kbd>Paramètres</kbd>, il faut aller dans <kbd>FTP</kbd> pour activer le service (pas la peine de mettre un mot de passe). 
   </p>
<p>
   Ceci fait, on prend notre Nautilus préféré en on va à <kbd>ftp://freebox@hd1.freebox.com</kbd> et là devrait apparaître un dossier <kbd>Vidéo</kbd> et un dossier <kbd>Enregistrement</kbd>. Dans le dernier se trouve tout ce que vous avez enregistré avec la freebox sauf, car il faut être d'une crétinerie homogène dans la vie, tout ce qui vient de M6, TF1 et W9. On y survivra...
</p>
<p>
  Mais le but étant de lire des vidéos, mon premier test fût d'en coller une au hasard provenant d'un DVD que je possède et que j'ai encodé pour l'occasion en AVI/MP4. Alors le débit est pas terrible avec un petit 2.3mo/s mais ça fini par rentrer et la lecture elle, ne pose aucun problème. Dans l'autre sens, la récupération des programmes enregistrés se fait aussi sans problème au format mpeg/.ts, comme pour la TNT. Et le débit est le même en remontée. 
</p>
<p>
  A noter qu'il est possible de commencer à lire une vidéo avant qu'elle ne soit totalement déchargée sur le disque interne. Maintenant c'est bien sympa, mais comment je fais pour lire un DVD... 
</p>


<h2>Passage par l'USB</h2>
<p>
   Vu que la freebox est un GNU/Linux de base, il n'y avais pas de raison pour qu'un lecteur de DVD connecté à un convertisseur IDE/USB ne fonctionne pas. Et en effet, ça fonctionne... Ca rame grave, mais ça fonctionne... Après faut faire un petit tour dans le menu "Disque dur" et remonter d'un cran pour pouvoir naviguer... Sauf que cela nous donne accès à la structure du DVD (VIDEO_TS, AUDIO_TS, etc), pas de menus, pas d'accès aux .VOB, donc solution quelque peu limitée en utilité <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/> Un support pas très sec pour le DVD dirons nous...
</p>
<p>
  J'ai aussi tenté avec une clef mémoire et disque dur, et là aussi, ça passe. Mais c'est juste histoire de dire...  A noter que la sale bête ne lit pas les partitions EXT3, ce qui est assez culotté pour un système tournant sous GNU/Linux...
</p>
<div class='inline-box note'>
  Evidement, j'ai aussi testé de brancher un clavier et une souris, mais les bougres, ils y avaient pensé aussi <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/>
</div>

<h2>Passage par VLC</h2>
<p>
   Bon, c'est à ce stade que les véritables expérimentation vont pouvoir commencer. J'ai tout de même mis un peu de temps à comprendre ce qu'était cette histoire de <kbd>freeplayer</kbd>.  L'idée est d'avoir sur une machine du réseau local, un serveur VLC contrôlé par son serveur HTTP interne. Pour commencer, choisissez une machine et téléchargez y le <a class='external' target='_blank' href='ftp://ftp.proxad.net/pub/freeplayer' >freeplayer</a>. Décompressez le et installez le en tant que root en laçant la commande <kbd>./install.sh</kbd>.
</p>
<p> 
  Ceci fait, vous pouvez déjà lancer la commande <kbd>/usr/local/freeplayer/bin/vlc-fbx.sh</kbd> en passant en paramètre un fichier multimédia. VLC se lance et puis c'est tout <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/smile.gif" title="Smiling" alt="Smiling" class="smiley-content"/> Vous pouvez tester que le serveur HTTP fonctionne en allant sur un navigateur à l'URL <kbd>http://ma_machine_freeplayer:8080</kbd>. Cela affiche une erreur mais ça prouve que ça fonctionne...
</p>
<p>
   Deuxième étape, il faut aller sur le site de configuration de la FreeBox pour indiquer dans le paramétrage du routeur l'IP de la machine locale en question et redémarrer la FreeBox après. Ne suivez d'ailleurs pas les conseils disant qu'il faille modifier la configuration du NAT pour router le trafic venant d'internet sur le port 8080 de la machine cible, cela n'apporte rien et ouvre un trou de sécurité. 
</p>
<p>
   Maintenant que VLC tourne, que le serveur HTTP est actif, que la freebox en connaît l'adresse IP, ne reste plus qu'à aller dans le menu <kbd>Freeplayer/Se connecter au Freeplayer</kbd> pour que la vilaine interface s'affiche sur l'écran du boîtier. Un coup de <kbd>Play</kbd> sur la télécommande et c'est parti. Techniquement ce play a été transmis à VLC par l'interface WEB et ce dernier a alors commencé à transcoder le fichier multimédia que vous lui avez donné en paramètre pour l'injecter sur le port 1234 de la freebox HD.      
</p>
 <p>
   Une fois VLC connecté, rien ne vous oblige à utiliser encore la télécommande. Vous pouvez parfaitement lancer d'autres sessions de VLC qui vont injecter directement sur le port 1234 :
  <div class='code-container-area'><div class='code-container'><div class="code">vlc --<span class="re2">sout=</span><span class="st0">&quot;#std&quot;</span> --sout-standard-<span class="re2">access=</span>udp --sout-standard-<span class="re2">mux=</span>ts --sout-standard-<span class="re2">dest=</span><span class="nu0">212.27</span><span class="nu0">.38</span><span class="nu0">.253</span>:<span class="nu0">1234</span> --sout-ts-pid-<span class="re2">video=</span><span class="nu0">68</span> --sout-ts-pid-<span class="re2">audio=</span><span class="nu0">69</span> --sout-ts-<span class="re2">pcr=</span><span class="nu0">80</span> --sout-ts-dts-<span class="re2">delay=</span><span class="nu0">400</span> --color --<span class="re2">open=</span>mon_fichier.mp3</div></div></div>
</p>
<p>
   Alors à ce stade, cela semble très utilisable au delta prés de devoir systématiquement passer par la télécommande pour connecter le mode FreePlayer ET de lancer VLC auparavant. Maintenant, le joie cesse assez rapidement dés que l'on tente de balancer toute sorte de formats à la machine. Par exemple si la lecture de MP3 passe sans problème, la tentative de lecture d'un format OGG donne quelque chose comme cela :
   <div class='code-container-area'><div class='code-container'><div class="code"><span class="br0">&#91;</span><span class="nu0">00000318</span><span class="br0">&#93;</span> main private error: cannot add this stream<br />
<span class="br0">&#91;</span><span class="nu0">00000324</span><span class="br0">&#93;</span> main packetizer error: cannot create packetizer output <span class="br0">&#40;</span>vorb<span class="br0">&#41;</span> &nbsp;</div></div></div> 
 </p>
</p>
  Même résultat lorsque je tente un DivX encodé avec ffmpeg, j'ai le son, mais pas l'image :
   <div class='code-container-area'><div class='code-container'><div class="code"><span class="br0">&#91;</span><span class="nu0">00000318</span><span class="br0">&#93;</span> main private error: cannot add this stream<br />
<span class="br0">&#91;</span><span class="nu0">00000324</span><span class="br0">&#93;</span> main packetizer error: cannot create packetizer output <span class="br0">&#40;</span>FMP4<span class="br0">&#41;</span> &nbsp;</div></div></div> 
</p>
<p>
   Tel quel donc, il y a encore quelque soucis que nous allons devoir régler pour lire tous les formats. 
</p>

<h2>Conclusion</h2>
<p>
  Ce boîtier est un monde de "presque ça" qui me rappelle fortement un squetch de Palmade (tu préfères quoi ? Des dents en bois ou des jambes en mousses...). Le FTP est sympa mais faut transférer. L'USB fonctionne jusqu'au moment de pouvoir en faire quelque chose, et le mode flux ne lit que le 1/4 des formats que j'utilise. Je pourrais me dire que je conserve ma machine multimédia et que je n'utilise la box que pour <del>TF1</del> <del>M6</del> <del>W9</del> la VOD. Mais ça va pas être très fun de garder tout se bazar de fil connectés pour cette seule utilisation.</p>
 <p>
    Pour ce qui est du CPL, hors de question que je remette la main au portefeuille pour deux adaptateurs de plus, sans compter sur le parasitage ultra-agaçant de l'ampli quelque soit l'endroit où je branche les modules.
 </p>
<p>
  En bref, j'avais un peu le sentiment que Free m'avait offert un magnifique presse-livres très geek et moi je vais plutôt investir dans une grosse mèche et une boite de fiches RJ45... Mais même si le second membre de la conclusion est pour moi définitif, la très faible consommation, la connectique complète, l'enregistrement des programmes TV et la VOD m'empêche de la mettre réellement au placard. En creusant, il doit y avoir moyen d'en faire quelque chose. A suivre donc...
</p>    ]]></content>
  </entry>
  <entry>
    <title>Mise à jour du site</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1597" />
    <id>http://artisan.karma-lab.net/node/1597</id>
    <published>2008-07-24T14:19:10+02:00</published>
    <updated>2008-07-24T14:19:10+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="Informations sur le site" />
    <category term="Aucun" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
   Petite mise à jour des fonctionnalités du site avec l'ajout des gravatars (comme cela certains seront contents <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>, le support d'IE7 (saleté de machin !), une connexion OpenID qui fonctionne (sans les avatars, désolé <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>. 
</p>
<p>
  En revanche pour ceux qui utilisent encore IE6, passé à autre chose, là, moi je peux rien faire à ce stade...
</p>    ]]></summary>
    <content type="html"><![CDATA[<p>
   Petite mise à jour des fonctionnalités du site avec l'ajout des gravatars (comme cela certains seront contents <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>, le support d'IE7 (saleté de machin !), une connexion OpenID qui fonctionne (sans les avatars, désolé <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>. 
</p>
<p>
  En revanche pour ceux qui utilisent encore IE6, passé à autre chose, là, moi je peux rien faire à ce stade...
</p>    ]]></content>
  </entry>
  <entry>
    <title>Tenter d&#039;améliorer les performances de FireFox</title>
    <link rel="alternate" type="text/html" href="http://artisan.karma-lab.net/node/1596" />
    <id>http://artisan.karma-lab.net/node/1596</id>
    <published>2008-07-21T14:34:50+02:00</published>
    <updated>2008-07-21T15:45:28+02:00</updated>
    <author>
      <name>Ulhume</name>
    </author>
    <category term="FireFox" />
    <category term="Planet Libre" />
    <category term="Article" />
    <summary type="html"><![CDATA[<p>
  Les performances c'est compliqué. La preuve, tout le monde s'égosille depuis quelques temps sur FireFox3PlusRapideDeLaTerre, alors que chez moi, il rame au défilement comme une vieille brouettes dés qu'il y a plus de 10 contrôles (édition d'un Post Drupal) ou une image de fond statique sur une page.  
</p>
<p>
  Pareillement, j'ai longtemps cherché à améliorer la vitesse de FireFox v2 pour retrouver un peu de la vélocité de Konqueror, avec plus où moins de succès. Ce billet n'est donc pas un appeau à Trolls, juste le fruit de mes petites recherches pour botter un peu les fesses du gros panda <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>
  Les performances c'est compliqué. La preuve, tout le monde s'égosille depuis quelques temps sur FireFox3PlusRapideDeLaTerre, alors que chez moi, il rame au défilement comme une vieille brouettes dés qu'il y a plus de 10 contrôles (édition d'un Post Drupal) ou une image de fond statique sur une page.  
</p>
<p>
  Pareillement, j'ai longtemps cherché à améliorer la vitesse de FireFox v2 pour retrouver un peu de la vélocité de Konqueror, avec plus où moins de succès. Ce billet n'est donc pas un appeau à Trolls, juste le fruit de mes petites recherches pour botter un peu les fesses du gros panda <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>
<!--break-->
<H2>Modifier les paramètres cachés de FireFox</H2>
<p>
	Cela va nous servir par la suite donc autant en parler tout de suite. Les options que nous allons activer sont disponible dans les paramètres internes de firefox, pas dans ses préférences. Pour y accéder il suffit de taper l'URL <kbd>about:config</kbd>. S'affiche alors une liste de noms/valeurs. En double cliquant sur une ligne, nous pouvons modifier cette valeur. En clickant droit, il est possible de la supprimer ou d'en créer une nouvelle. 
</p>
<p>
	Pour les nouvelle valeur crées, il faut choisir son type : chaîne (string), valeur booléenne (boolean) et valeur entière (integer). Ensuite il faut donne son nom, puis sa valeur. 
</p>
<P>
	Voilà, avec cela nous allons pouvoir jouer un peu <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>
</p>

<H2>Performances réseau</H2>
<p>
  Avouons que la vitesse de transfert est peu la base des performances d'un navigateur, avec celle du moteur de rendu. FireFox n'est pas pire qu'un autre navigateur de ce point de vue. Cependant, comme souvent, ses concepteurs ont des "stratégies" qui ne sont pas forcement heureuses.
</p>

<h3>Activation du pipelining</h3>
<p>
  C'est une chose étrange que le pipelining (téléchargement en parallèle des éléments) soit désactivé par défaut sur FireFox. Pour l'activer, il suffit simplement de modifier trois valeurs. Les deux premières active le pipeline en mode normal et avec les proxies. La dernière indique le nombre maximum de requête à traiter en parallèle. 
	<div class='code-container-area'><div class='code-container'><div class="code"><ol><li class="li1"><div class="de1">network.http.pipelining<span class="sy0">=</span><span class="re2">true</span></div></li>
<li class="li1"><div class="de1">network.http.proxy.pipelining<span class="sy0">=</span><span class="re2">true</span></div></li>
<li class="li1"><div class="de1">network.http.pipelining.maxrequests<span class="sy0">=</span><span class="re2"><span class="nu0">30</span></span></div></li></ol></div></div></div>
</p>

<p>
  La dernière valeur peut être modulée selon vos goûts mais un nombre trop important ne servirait à rien. A noter que selon mes tests, ce totoche de FireFox v2 refuse de charger les feuilles CSS et JS en parallèle, ce qui est proche de l'aberrant...
</p>

<h3>Supprimer la résolution IPV6</h3>
<p>
  Une autre modification qui peut améliorer les performances est donc de désactiver la résolution DNS pour l'IPV6 (sauf si vous avez un tel réseau <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>. Le but est d'éviter que FireFox ne s'amuse à résoudre un nom en IPV6 lorsque cela n'a aucune raison d'être :
	<div class='code-container-area'><div class='code-container'><div class="code">network.dns.disableIPv6 <span class="sy0">=</span><span class="re2"> true</span></div></div></div>
</p>

<h3>Pour aller plus loin...</h3>
<p>
	Enfin, comme l'indiquait FreeFlyer, un très bon plugin permet de paramétrer une partie de ces valeurs. Il s'agit de <a class='external' target='_blank' href='http://fasterfox.mozdev.org/' >FasterFox</a>. Ce plugin est très dense, il permet de régler le pipelining comme indiqué plus haut, mais permet aussi d'ajouter le téléchargement silencieux des liens d'une page, et pas mal d'autres goodies. A tester donc. 
</p>


<H2>Performances visuelles</H2>

<h3>XUL</h3>
<p>
  Là il s'agit de la lenteur de l'interface même de FireFox, pas du rendu des pages. C'est la latence que l'on constate par exemple pour afficher la page de préférences. 
</p>
<p>
Techniquement, l'interface graphique de FireFox est décrite par des fichiers 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=XML'>
  XML
  </a> (barres d'outils, menus, etc...) formant une sorte de langage de description d'interfaces, le XUL. Ces fichiers XML sont "animés" par des... scripts en javascript. En somme, FireFox est une fenêtre vide et tout ce qu'il y a à l'intérieur de cette fenêtre est du XUL. Pour s'en convaincre, collez <kbd>chrome://browser/content/browser.xul</kbd> dans la zone d'adresse de FireFox et validez.
</p>
<p>
  L'interface graphique de FireFox est donc totalement interprétée et sa vitesse est par conséquence limitée par l'utilisation de javascript qui est clairement plus lent qu'un équivalent compilé en C. Une bonne manière de s'en convaincre est de lancer 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=epiphany'>
  epiphany
  </a> qui pour un temps encore utilise le même moteur de rendu que Firefox : 
  <a target='_blank' href='http://fr.wikipedia.org/wiki/Special:Search?search=Gecko'>
  Gecko
  </a>. Mais dans le cas d'Epiphany, toute l'interface est codée en C, c'est beaucoup plus réactif, beaucoup moins gourmand en mémoire, mais aussi clairement moins puissant. 
</p>
<p>
   La aussi, pour ce prouver que ce n'est pas un délire subjectif, il suffit d'utiliser <kbd>oprofiler</kbd> pour auditer l'utilisation du processeur lorsque l'on affiche des boites de dialogues, des menus, le résultat est le suivante :
	<div class='code-container-area'><div class='code-container'><div class="code">12475 18.4517% libmozjs.so</div></div></div> 
<p>
<p>
  Le problème est qu'il n'y a pas grand moyen d'améliorer les choses sur cet aspect. Passons donc à la suite. 
</p>

<h3>X11</h3>
<p>
  Alors je sens que je vais faire débouller des armées de trolls colériques en disant cela, mais X11, c'est pas un scoop, c'est lent. Et c'est logique, car au même titre que le couple XUL/JS apporte une richesse payée par une certain lenteur, X11 et la transparence réseau permettent des montages impossibles ailleurs (genre des écrans déportés sur des machines distribuées), mais induisant des temps d'affichages supérieurs à d'autres environnement. Allez disons le, c'est plus lent que Windows. 
</p>
<p>
  Et pour s'en convaincre une fois de plus, ce n'est pas sorcier. Installez une VM avec Windows et les pilotes optimisés VMWare, installez y la même version de FireFox que sous Linux, et comparez les deux vitesses d'affichage d'une page. C'est le jour et la nuit et pourtant Windows est dans une VM...
</p>
<p>
 Alors peut-être n'est-ce pas lié qu'à X11, mais aussi à ce que la version Windows de FireFox a été un peu plus bossée, mais le résultat est là. Et là aussi, mis à part éviter de ralentir X11 en préférant les pilotes propriétaires (nVidia notamment), il n'y a pas de recettes miracles pour booster tout cela. 
</p>
<p>
  A noter que l'utilisation de <a class='external' target='_blank' href='/node/1209' >xrestop</a> nous montre que FireFox est un mangeur de ressources de tout premier ordre. Ce qui ne doit pas être sans conséquences sur les performances sous X11. 
</p>


<h3>Diminuer le temps d'attente avant rendu visuel d'une page</h3>
<p>
  Finalement, le seul point sur lequel nous pouvons jouer est l'aspect "psychologique" de la vitesse. Si une page met 10 secondes à se charger, le navigateur semblera plus "lent" s'il attends d'avoir toutes les informations pour l'afficher. Nous allons donc indiquer à firefox de lancer le rendu de la page le plus tôt possible. Cela est possible en créant une nouvelle "valeur entière" dans la paramétrage interne de FireFox (voir plus haut) et en fixant à 0ms le temps d'attente avant rendu visuel de la page. 
	<div class='code-container-area'><div class='code-container'><div class="code">nglayout.initialpaint.delay<span class="sy0">=</span><span class="re2"><span class="nu0">0</span></span></div></div></div>
</p>

<h2>Conclusion</h2>
<p>
  On ne peut pas dire qu'avec tout cela j'atteigne la vitesse de konqueror mais c'est mieux... On va se consoler avec cela <img src="http://artisan.karma-lab.net/sites/all/modules/contrib/smileys/packs/crystal/wink2.gif" title="Wink" alt="Wink" class="smiley-content"/>  
</p>    ]]></content>
  </entry>
</feed>
