# articles

feed_id: http://blog.idleman.fr/?p=2383
title: Petite initiation aux moteurs de templates : Quoi, Pourquoi et Comment
uri: Petite-initiation-aux-moteurs-de-templates-Quoi-Pourquoi-et-Comment
url: http://blog.idleman.fr/?p=2383
content:
<p>Voila plusieurs années que je me promets de toucher un mot au sujet des moteurs de Template et de leurs applications, je profite de votre air éveillé et taquin de ce début de soirée pour placer le sujet (ce sera chose faite).</p>
<p><span id="more-2383"></span></p>
<h2>Une grossière présentation</h2>
<p>Pour faire simple, un moteur de Template est une technique de programmation populaire qui permet de séparer distinctement<strong> l&rsquo;interface graphique</strong> du reste de votre application.</p>
<p>Notez que par interface graphique j&rsquo;entends <span style="text-decoration: underline;">toute la partie visuelle</span>, la GUI, l&rsquo;Interface, l&rsquo;IHM, le skin, le visage, la moumoute, appelez ça comme vous voulez, ça n&rsquo;en restera pas moins la partie qui constitue la communication visuelle avec l&rsquo;utilisateur on ne parle donc pas uniquement du design mais aussi de la structure, de l&rsquo;ergonomie, des animations etc&#8230;</p>
<p>Typiquement, un Template de projet web contiendra tous les fichiers html (structure),css et images (style/design) et JavaScript (animations).</p>
<p>Ainsi dans un projet web par exemple, le moteur de Template vous permettra d&rsquo;avoir un fichier purement html/css/javascript d&rsquo;un coté, et un fichier purement php/asp/java/&#8230; de l&rsquo;autre vous dissociez donc d&rsquo;un coté la vue (l&rsquo;aspect visuel html/css etc..) des contrôleurs (le traitement pur des données via php/asp/java/ etc..)</p>
<h2>Pourquoi?</h2>
<p>Pourquoi utiliser cette technique me direz vous ? Ça peut de prime abord paraitre contraignant, inutile de dupliquer des fichiers pour rien.</p>
<ul>
<li>Si il est vrai que la gestion des Template multiplie légèrement le nombres de fichiers de votre application, ce n&rsquo;est rien face aux avantages résultants :</li>
<li>Vous pouvez changer d&rsquo;interface graphique pour votre application sans avoir à retoucher au code et en un clic</li>
<li>Si vous travaillez en équipe, les designers/intégrateurs peuvent travailler en toute sécurité sur les vues (design,ergonomie) pendant que vous bossez sur les contrôleurs (traitement)</li>
<li>Vos utilisateurs peuvent proposer/échanger/personnaliser des interfaces graphiques pour votre application sans connaitre autre chose que du simple html et sans modifier à tord et à travers le noyau de votre application</li>
<li>Votre structure projet devient plus carrée, le code plus simple à distinguer, voir plus élégant,</li>
<li>vous retrouverez plus vite les endroits ou modifier ce qui concerne la présentation, ou le traitement</li>
<li>Si vous utilisez le même moteur Template pour plusieurs projets, vous pourrez alors tous les rassembler quand bon vous semblera sous une interface unique et ce, très simplement</li>
</ul>
<p>Vous l&rsquo;aurez compris de très nombreux avantages s&rsquo;offre à vous avec ce modèle de développement.</p>
<p><strong><em>Mais, ça fonctionne comment au juste ?</em></strong></p>
<p>Eh bien typiquement ça dépend un peu du moteur de Template utilisé, mais généralement ça reste très simple :</p>
<p>Au lieu de créer une page index.php contenant tout votre code, vous allez placer votre code php dans une page index.php et votre html dans une page index.html<br />
Puis à la fin du php vous signalerez que vous souhaitez lier cette page de traitement à la vue index.html <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<p><strong><em>Attends, attends !! Mais il va forcement y avoir un problème là : comment je vais faire pour afficher mes variables dans l&rsquo;index.html?</em></strong></p>
<p>Encore une fois, cela dépendra du moteur de Template utilisé, mais en gros, les variables seront toutes disponibles dans l&rsquo;index.html via des balises &laquo;&nbsp;spéciales&nbsp;&raquo;.</p>
<p><strong><em>Oulah, ça m&rsquo;a l&rsquo;air compliqué ton truc !!</em></strong></p>
<p>Meuhnaaann ! Tu vas voir ça gère la cacahuète, le meilleur reste encore de mettre la main à la pâte pour comprendre les enjeux et les gains du Template, alors allons y gaiement bande de moules ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> </p>
<p><strong><em>Alors quel moteur de template choisir ?</em></strong></p>
<p>En réalité je ne vais pas être très objectif là-dessus ^^, bien que le plus populaire (du fait de son grand âge surtout) soit le moteur de template <a href="http://www.smarty.net/">Smarty</a>, nous utiliseront ici le moteur <a href="http://www.raintpl.com/">RainTPL</a>.</p>
<p><img style="display: inline;" title="image" alt="image" src="media/b071c69f.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb1.png" width="184" height="59" /></p>
<p><strong><em>Vas falloir t&rsquo;expliquer Idle, tu t&rsquo;en sortiras pas comme ça <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' />  !!</em></strong></p>
<p>Bon okay okay, vous l&rsquo;aurez voulu, zallez vous taper une autre liste pour la peine :</p>
<ul>
<li><strong>RainTpl</strong> est constitué de &#8230; 1 fichier, quand smarty en possède plus d&rsquo;une centaine, RainTpl fout donc moins le bordel dans votre architecture</li>
<li><strong>RainTpl</strong> est plus léger (34ko tout mouillé contre 1,01Mo pour smarty)</li>
<li><strong>RainTpl</strong> est plus simple à utiliser, il suffit de connaitre 4 balises pour se débrouiller dans 99.9% des cas, la où smarty demande de constantes recherches dans la doc et sur les forums</li>
<li><strong>RainTpl</strong> est plus performant/rapide et moins gourmand (<a href="http://www.raintpl.com/PHP-Template-Engines-Speed-Test/">une petite courbe</a>  vaut un long discours)</li>
<li><strong>RainTpl</strong> est fichtrement stable : en deux ans d&rsquo;utilisation sur plus de 30 projets perso et pro, je n&rsquo;ai jamais eu le moindre soucis lié à son utilisation</li>
<li><strong>RainTpl</strong> est plus logique, la ou smarty s&rsquo;amuse à renommer ses vues avec une extension pourrie type &laquo;&nbsp;.tpl&nbsp;&raquo; non reconnue par la plupart des colorateurs syntaxiques, voir non ouvert par certains IDE, rainTPL conserve ces bon vieux .html, les balises sont aussi plus courtes et plus suggestives, j’aime quand on ne réinvente pas la roue pour rien</li>
<li><strong>RainTPL</strong> possède <a href="http://www.raintpl.com/Documentation/">une doc claire simple et concise</a> la ou smarty vous propose 12 pages et 60 clics entre vous et le bonheur (le tout sur un wiki qui ressemble au papier peint de ma grand mère)</li>
<li></li>
<li><strong>RainTpl</strong> est évidemment gratuit (smarty aussi hein !! :p) et sous licence GNU/GPL</li>
</ul>
<p>Je ne pense pas me tromper en affirmant qu&rsquo;il va vite devenir la référence du Template, pour moi c&rsquo;est déjà le cas, et je ne suis pas le seul à le clamer haut et fort.</p>
<p>(voila pour la p&rsquo;tite explication :p)</p>
<p>Notez que parmi les développeurs, il y à quelques aigris qui critiquent vivement les systèmes de templates, si on ôte à ceux-ci ceux qui cachent leur ignorance derrière le dédain, on<br />
peux retrouver quelques raisons fallacieuses type :</p>
<blockquote><p>&lsquo;Moi je n&rsquo;utilise pas de Template parce que c&rsquo;est moins rapide que du php pur et dur&rsquo;.</p></blockquote>
<p>&#8230; (j&rsquo;ai sortis mes petits point désapprobateurs, je vais me fâcher tout rouge !!)</p>
<p>C&rsquo;est complètement faux, en effet RainTPL <span style="text-decoration: underline;">à l’instar de 99% des moteurs de Template</span> utilise un <strong>système de cache</strong> en générant les php finaux sous formes de fichiers php générés, donc au final c&rsquo;est du php simple, sauf que c&rsquo;est totalement invisible pour nous (et tant mieux)</p>
<p>Bon arrêtons la papote et mettons les mains dans l&rsquo;cambouis !</p>
<p>Téléchargeons rainTpl sur le site officiel : <a title="http://www.raintpl.com/Download/" href="http://www.raintpl.com/Download/">http://www.raintpl.com/Download/</a></p>
<p>On va créer un ptit projet de test avec une <strong>page index.php</strong> pour le traitement, et une <strong>page index.html</strong> pour la vue.</p>
<p>Dans l’archive de rainTPL, seul le fichier inc/rain.tpl.class.php nous intéresse, c’est la librairie en elle même, le reste sont des fioritures (on jette <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/0cfb985d.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout.png" />), dans mon exemple je met donc ce fichier que j’ai renommé rainTpl.php au même niveau que l’index.php et l’index.html</p>
<p>Voila le code de chacune:</p>
<p><strong>index.php</strong></p>
<p><a href="media/4bb38727.image2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image2.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/71efec4f.image_thumb2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb2.png" width="558" height="235" border="0" /></a></p>
<p><strong>index.html</strong></p>
<p><a href="media/c79e4360.image3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image3.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/e2f8090a.image_thumb3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb3.png" width="567" height="229" border="0" /></a></p>
<p>(oui j’ai mis un peu de style, le time new roman me file des crises d’épilepsie)</p>
<p>Si pour une raison <span style="text-decoration: underline;"><strong>vraiment étrange</strong></span> votre copier coller ne fonctionne pas sur les screenshots (:D), vous pouvez trouver <a href="http://www.idleman.fr/blog/wp-content/uploads/2013/04/rainTpl.zip">les sources directe ICI</a> (bande de fainéants).</p>
<p>Toujours est il que vous obtenez un, ô combien magnifique, premier Template fonctionnel :</p>
<p><a href="media/2cabb5d5.image4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image4.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/37d20277.image_thumb4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb4.png" width="429" height="165" border="0" /></a></p>
<h2>A retenir</h2>
<p>Vous noterez donc <span style="text-decoration: underline;">deux</span> fonctions (méthodes) importantes pour la partie traitement(index.php) :</p>
<p><strong>assign(nom variable, valeur variable) :</strong> permet de déclarer une variable qui sera utilisable dans la vue, on peut lui fournir n&rsquo;importe quoi : un objet, un tableau, un entier, une chaine, un furet, il en fera de l’or&#8230;</p>
<p><strong>draw(nom de la vue) :</strong> permet de définir la vue qui sera attachée au traitement, de cette manière on peut par exemple attacher une vue erreur en cas d&rsquo;erreur ou la vue index quand tout se passe bien (ok ok je vous embrouille, dites vous juste que ça permet de donner le html à afficher).</p>
<p>Coté vue (index.html) les balises “spéciales” dont je vous parlais et qui sont à connaitre sont au nombre de 4 :</p>
<p><strong>{$variable} :</strong> affiche une variable (comme si vous aviez fait un &lsquo;echo $variable&rsquo;)</p>
<p><strong>{if=&nbsp;&raquo;condition&nbsp;&raquo;}{/if}</strong> : affiche selon une condition (équivalent de if(condition){consequence} en php)</p>
<p><strong>{loop=&nbsp;&raquo;array&nbsp;&raquo;}{/loop}</strong> : permet de parcourir un tableau (équivalent de foreach($array){ } en php)</p>
<p><strong>{include=&nbsp;&raquo;template&nbsp;&raquo;}</strong> : permet d&rsquo;inclure une vue dans une autre (pratique pour inclure les header et footer que l&rsquo;on retrouve partout dans l&rsquo;application).</p>
<p>Vous ave évidemment  d&rsquo;autres balises à dispo avec un ptit exemple <a href="http://www.raintpl.com/Documentation/">pour chacune dans la doc.</a></p>
<h2>Quelques conseils pour avoir une structure correcte</h2>
<p>RainTPL est assez permissif par rapport à la structure de votre projet, il suffit de lui indiquer des chemins, ce qui bon et mauvais à la fois car si il autorise une plus grande souplesse et n&rsquo;interfère pas avec l&rsquo;architecture projet, il n&rsquo;incite pas non plus à instaurer une bonne structure.</p>
<p>Dans ce domaine, je pense que <strong><span style="text-decoration: underline;">personne</span></strong> n&rsquo;a le droit d&rsquo;imposer une structure en argüant comme je l’ai maintes fois entendu que “c&rsquo;est ce qu&rsquo;il faut faire&nbsp;&raquo;, mais puisque qu&rsquo;ici c&rsquo;est moi le patron (<img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/0cfb985d.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout.png" />) je vais au moins me permettre de vous proposer une structure de projet avec rainTPL, que j&rsquo;utilise pour <a href="http://projet.idleman.fr/leed">Leed</a>, <a href="http://projet.idleman.fr/Dropcenter">DropCenter</a> et bien d&rsquo;autres projets pro/perso :</p>
<p><a href="media/6c7f857b.image5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image5.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/8f9e4436.image_thumb5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb5.png" width="523" height="339" border="0" /></a></p>
<p>J&rsquo;ai profité de la structure pour vous mettre deux templates que vous pouvez switcher en modifiant la constante <strong>DEFAULT_THEME</strong> dans le fichier configuration.php quelques exemple de lecture de variables, de tableau d&rsquo;objets, d&rsquo;utilisation de condition etc.. avec RainTPL<br />
Vous pouvez télécharger <a href="http://www.idleman.fr/blog/wp-content/uploads/2013/04/structure.zip">cette structure et les exemples RainTPL qu&rsquo;elle contient ICI</a>.</p>
<p>On a bien deux Templates (légèrement fait à l’arrache) pour les mêmes traitements / control de données, il est donc possible d’en switcher sans toucher à quoique ce soit d’autre que la constante <strong>DEFAULT_THEME.</strong></p>
<p><a href="media/a7cac514.image6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image6.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/c11b8916.image_thumb6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb6.png" width="244" height="235" border="0" /></a><a href="media/8da262a1.image7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image7.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/e6a3578c.image_thumb7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb7.png" width="274" height="238" border="0" /></a></p>
<h2></h2>
<h2>Et sinon, dois je utiliser les templates tout le temps et pour n&rsquo;importe quel projet ?</h2>
<p>Bien sûr que non, il est évident qu&rsquo;un petit script de deux pages contenant chacune trois lignes n&rsquo;a pas réellement besoin d&rsquo;un gestionnaire de Template,<br />
cela dit pour les moyen et gros projets je vous encourage vivement a partir d&rsquo;instinct sur un moteur Template.</p>
<p>Si vous n&rsquo;en voyez pas l&rsquo;utilité sur le moment,vous la verrez certainement par la suite, votre projet sera toujours plus simple à maintenir, évoluer, fusionner, embellir par la suite.</p>
<p>De plus cela vous obligera à tendre vers l&rsquo;architecture MVC donc la redoutable efficacité n&rsquo;est plus à prouver (<em>bien qu&rsquo;il y ai aussi des contestataires à ce sujet, mais bon on trouve de tous les avis sur le web il faut faire avec</em>) et rainTPL est si discret que ça n&rsquo;en alourdira pas votre projet pour autant.</p>
<p>Je sais que le sujet est entendu pour la plupart des développeurs de ce blog, mais si je suis parvenu à convertir un nouveau lecteur au “templarisme” et surtout à l’excellent <strong>RainTPL</strong>, je m’en satisferais !</p>
<p>Templatement votre,</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=2396
title: Le bordel de l’info #26
uri: Le-bordel-de-l-info-26
url: http://blog.idleman.fr/?p=2396
content:
<p>Salut bande de pneus low cost non équilibrés ! Vous en avez d’la chance !!  l’heure ou je suis juste complément bourré et ou je tape frénétiquement n’importe <a href="media/1523fe8e.iwT2bDouoG6u5.gif" data-original-source="http://i.minus.com/iwT2bDouoG6u5.gif">quoi sur ce blog</a>, vous êtes peinards, dans votre lapin nain ou sous un sumo allemand à vous payer un 52em demi de bordel de l’info (ben oui… 26*2…laissez tomber T_T)</p>
<p><em id="__mceDel"><span id="more-2396"></span></em></p>
<ol>
<li>Une <a href="http://korben.info/retron-5.html">nouvelle console</a> qui accepte les anciennes cartouches NES, SNES, Genesis, Famicon et game boy advance…<img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/4ac4aaa9.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-openmouthedsmile.png" /></li>
<li><a href="http://lorempixel.com/">LoremPixel</a> permet l’inclusion facile d’images d’exemples à la taille que vous souhaitez, en couleur ou en noir et blanc, et respectant un certain style, avec le simple code &lt;img src=&nbsp;&raquo;<a href="http://lorempixel.com/400/200&quot;">http://lorempixel.com/400/200&Prime;</a> /&gt;, partiques pour les maquettes <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/5a80f4e1.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile.png" /> (via le <a href="http://www.warriordudimanche.net/article131/auto-pix-le-lorempixel-com-allege-et-perso">warrior</a>)</li>
<li>Un <a href="http://www.nikopik.com/2013/03/un-court-metrage-pour-prendre-un-peu-de-recul-sur-les-donnees-numeriques.html">court métrage sympa</a> qui donne envie de balancer son androphone par la fenêtre, notez que la série black mirror (3 épisodes seulement, casting, époque et histoire toujours différente mais thème orienté bienfait/méfaits de la technologie sur l’homme) sur le même thème est à voir d’urgence si vous aimez ce genre d’anticipations technologiques dramatique.</li>
<li>Mais à quand le <a href="http://www.blog-nouvelles-technologies.fr/archives/26890/google-semble-vouloir-travailler-sur-une-smartwatch-lobsession-dinonder-le-monde-entier">PQ Watch</a> histoire qu’on en finisse une fois pour toute avec les derniers moment d’intimité qu’on partageait avec la réalité <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/4ac4aaa9.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-openmouthedsmile.png" /> !! J’ai parfois l’impression que la technologie n’évolue pas dans le bon sens…</li>
<li>Ubuntu for mobile, Jolla, Tizen, Firefox Os, BlackBerry 10, les <a href="http://www.blog-nouvelles-technologies.fr/archives/26935/guerre-dans-votre-poche-5-nouveaux-os-mobiles-pour-combattre-android-et-ios-en-2013/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+design-folio+%28Web%2C+Technologies%2C+Interop%C3%A9rabilit%C3%A9%29">Os pour mobiles se multiplient</a> en 2014, faites votre choix, j’ai déjà fait le mien <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/f6907021.wlEmoticon-smilewithtongueout1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout1.png" /></li>
<li>“Le Google qui me passionnait était une société high tech qui poussait ses employés à innover. Le Google que j’ai quitté était une société publicitaire concentrée uniquement sur l’aspect financier.”  &#8211; <a href="http://www.framablog.org/index.php/post/2013/03/20/quitter-google">James Whittaker (Développeur Google)</a></li>
<li>Tiens en parlant de google, un petit article sur <a href="http://www.dsfc.net/internet/rss-internet/pourquoi-google-veut-tuer-le-rss/">ses raisons économiques</a> de vouloir tuer le RSS, continuez comme ça les gars, ça me permet d’écouler plus f<a href="http://projet.idleman.fr/leed">acilement mon petit agrégateur RSS gratuit Leed</a> <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/f6907021.wlEmoticon-smilewithtongueout1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout1.png" /></li>
<li>Seb souhaite <a href="http://sebsauvage.net/links/?Nv_qZA">envoyer ses fonds de placard</a> sur github, j’ai envie de dire +1 : et si on partageait tous un grand placard pour ce genre de projets ? <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/f6907021.wlEmoticon-smilewithtongueout1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout1.png" /></li>
<li>Les utilisateurs anglais de Greader se tournent vers <a href="http://www.webappers.com/2013/03/25/feedly-the-best-alternative-of-google-reader/">“la meilleur alternative”</a> à celui ci : Feedly… donc la meilleur alternative à un service qui les a foutus dans la merde est … un autre service T_T, pire ! Ce service demande pour se connecter (au moment ou je vous écrit c’est toujours vrai ) : un compte google !! Je ne sais plus si je dois rire ou pleurer devant la bêtise et le manque de jugeote des Mouternautes (mix moutons/internautes, j’improvise), c’est à vous faire perdre définitivement l’espoir d’un futur web totalement libre.</li>
<li><a href="http://www.funinformatique.com/comment-hacker-un-distributeur-de-canette/">Pirater un distributeur de canettes</a> avec un mètre ruban, fallait y penser mais franchement ça n’a pas l’air simple ^^, perso je préfère <a href="http://www.nikopik.com/2013/03/un-robot-pour-pirater-les-distributeurs.html">construire mon robot pour faire le boulot</a> <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/5a80f4e1.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile.png" /></li>
<li>J’ignorais qu’il était si simple de modifier <a href="http://www.funinformatique.com/changer-le-mot-de-passe-de-session-windows-sans-le-connaitre/">un mot de passe d’un utilisateur</a> sans le connaitre sous Windows… et après les pros Windows viennent me bassiner avec le linux qui serait trop permissif, jvous jure <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/f6907021.wlEmoticon-smilewithtongueout1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout1.png" /> (bon je suis assez neutre avec les Os (sauf un avis bien tranché sur macOs), mais on trouve toujours des gens qui veulent quand même lancer le débat).</li>
<li>Hé hé hé, super sympa le site sur les <a href="http://www.paper-toy.fr/">papertoys</a>, c’est fou le nombre de couilloneries qu’on peut faire avec une simple feuille A4 et une imprimante correcte (via korben)</li>
<li>Un <a href="http://robobunny.com/projects/asciiquarium/html/">aquarium vivant en ASCII</a> (via seb)</li>
<li>Si quelqu’un sait ou je peux trouver un <a href="media/87ac53d1.wqpnC4R.jpg" data-original-source="http://i.imgur.com/wqpnC4R.jpg">autocollant comme ça</a> je suis preneur <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/4ac4aaa9.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-openmouthedsmile.png" /> (via seb, again)</li>
<li>Plus ils sont fluides, <a href="http://www.gurumed.org/2013/04/06/le-robot-petman-plus-effrayant-que-jamais/">plus ils me font flipper</a>…heureusement qu’il a un nom ridicule ce robot <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> </li>
<li>Il y a vraiment <a href="http://www.semageek.com/diy-une-horloge-word-clock-chinoise-a-base-arduino/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+semageek+%28www.semageek.com%29">de belles choses à faire</a> avec un arduino, un peu de carton et beaucoup de patience.</li>
<li>Un petit utilitaire de plus pour <a href="http://www.funinformatique.com/trouver-le-mot-de-passe-dun-fichier-rar/">cracker le mot de passe d’un .rar</a> en bruteforce ou par dictionnaire</li>
<li>Vous avez loupé les gags d’avril de la blogosphères ? Pas de soucis, le warrior du dimanche vous <a href="http://www.warriordudimanche.net/article135/revue-des-calembredaines-d-avril">à fait un ptit récap</a> !! J’ai loupé le premier avril cette année, je me rattraperais l’an prochain promis <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/5a80f4e1.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile.png" /></li>
<li>Le hollandais volant ouvre un blog dédié <a href="http://rss.idleman.fr/plugins/leedBrowser//browser.php?event=9406&amp;link=http://lehollandaisvolant.net/?d=2013/04/06/12/09/54-ouverture-dun-blog-dedie-a-mes-articles-scientifiques">à ses articles scientifiques</a>, ça promet <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
<li>Un petit <a href="http://rss.idleman.fr/plugins/leedBrowser//browser.php?event=9329&amp;link=http://mindmup.github.io/bootstrap-wysiwyg/">éditeur de texte WYSIWYG</a> adapté pour l&rsquo;excellent librairie CSS/JS Boostrap, à tester rapidement <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
<li><a href="http://medoo.in/">Medoo :</a> un framework PHP d&rsquo;un seul fichier permettant de gérer des bases MySQL, MSSQL, PostgreSQL, SQLite et plus en toute simplicité <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
<li>Ça fait quelques mois que <a href="http://www.sebsauvage.net">seb</a> nous en rebat les oreilles, le <a href="http://www.warriordudimanche.net/">warrior</a> s’y est mis aussi j’ai donc pris le temps de parcourir le tumblr : <a href="http://lesjoiesducode.tumblr.com">les joies du code</a>… et c’est simplement: une tuerie, bien qu’il faille être dév à mon sens pour apprécier ces gifs comme il se doit</li>
</ol>
<p><span style="font-size: 16px;">Tiens d’ailleurs en parlant de Seb !! Bon anniversaire vieux machin !! (ok j’ai 3 jours de retard mais pour moi c’est une performance), tous mes veux de bonheur et de longévité </span><a style="font-size: 16px;" href="http://sebsauvage.net/">à ce dinosaure du web</a><span style="font-size: 16px;"> qui à inspiré, dépatouillé voir sauvé les âmes de milliers d’internautes et de blogueurs à travers le web (moi compris évidemment) </span><img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/5a80f4e1.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile.png" /><span style="font-size: 16px;"> et sans lequel ce blog ne serait resté qu&rsquo;un bloc note personnel :)</span></p>
<p><a href="media/1e14a119.seb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/seb1.png"><img class="aligncenter size-full wp-image-2403" alt="seb" src="media/1e14a119.seb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/seb1.png" width="343" height="433" /></a></p>


feed_id: http://blog.idleman.fr/?p=2488
title: Raspberry PI ~ 19 : Optimisation, trucs & Astuces
uri: Raspberry-PI-19-Optimisation-trucs-Astuces
url: http://blog.idleman.fr/?p=2488
content:
<p>Ce post est le dix-neuvième d&rsquo;une liste de tutoriels sur le raspberry PI,<a href="http://blog.idleman.fr/?page_id=2166"> cliquez ici</a> pour accéder au sommaire ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> </p>
<p>Amis de l’électronique, passez votre chemin, nous ne parlerons cette fois ci que de pure informatique, et pas de haut niveau en plus <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/80dcd5bf.wlEmoticon-smilewithtongueout2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout2.png" />,<span id="more-2488"></span> cela dit ça peux intéresser plus d’un idlenaute donc je vous conseille de gratter un peu cet article quitte à vous taper une lecture en diagonale de ce véritable &laquo;&nbsp;pavé du dimanche&nbsp;&raquo;.</p>
<p>Je me suis rendu compte que j’ai oublié de préciser pleins de trucs et astuces “génériques” applicables au raspberry parce que ça me paraissait évident, mais au fil des commentaires et des mails qui m’ont été adressés je me suis dit que ça valait peut être la peine de faire un ptit billet pour éclaircir quelques points <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" /></p>
<p>(et puis ça me laisse un peu de temps pour bidouiller d’autres prototypes).</p>
<p><strong>Les points abordés :</strong></p>
<ol>
<li>Accéder à la console du RPI sans écran/clavier branché à celui ci</li>
<li>Déporter le bureau virtuel du raspberry PI sur votre ordinateur (toujours sans écran)</li>
<li>Optimiser le serveur http en remplaçant Apache2 par lighttpd</li>
<li>Transformer le raspberry PI en seedbox (serveur multimédia avec client torrent intégré, le tout accessible sur le réseau et stocké sur un disque dur externe si il vous plait)</li>
<li>Quelques manip pour personnaliser un peu la tronche du raspberry PI (nom, message d’arrivée etc…)</li>
</ol>
<h2>Accéder à la console du raspberry PI sans écran</h2>
<p>Depuis le début des tuto, vous aurez peut être constaté que j’utilise uniquement le mode console et non le bureau graphique, en effet je n’ai pas d’écran pour le raspberry et j’y accède depuis mon ordinateur portable ce qui me permet de trimballer le RPI et d’y accéder depuis n’importe quel PC sans trainer un écran 19 pouces, un clavier, et une souris derrière moi <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/94f93849.wlEmoticon-openmouthedsmile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-openmouthedsmile1.png" />.</p>
<p>Ceci est possible grâce à la communication SSH, pour faire court et grossier : votre raspberry pi comprend un serveur nommé : SSH, auquel vous pouvez vous connecter depuis un client SSH depuis n’importe quel PC, une fois connecté, vous aurez accès au terminal comme si vous étiez sur le rapsberry PI</p>
<p><a href="media/4d11eae5.image8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image8.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/64f6065f.image_thumb8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb8.png" width="555" height="392" border="0" /></a></p>
<p>Pour vous connecter a cette console, il vous suffit de télécharger et d’installer le programme gratuit Putty, puis de rentrer l’ip locale de votre raspberry PI et cliquer sur “Open”</p>
<p><a href="media/fc89c144.image9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image9.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/33cfb5d7.image_thumb9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb9.png" width="490" height="437" border="0" /></a></p>
<p>Pour obtenir l’ip réseaux du raspberry PI, vous pouvez regarder sur le panel de votre box (les pc qui y sont connecté), ou brancher temporairement un écran au raspberry pi et taper la commande ifconfig, l’ip suis le libellé “inet addr”</p>
<p><a href="media/cef86bf9.image10.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image10.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/cd959c8a.image_thumb10.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb10.png" width="486" height="309" border="0" /></a></p>
<p>Notez que cette IP peux changer (bien que votre box essaye généralement de conserver des ip “favorites” par machines), vous pouvez donc la fixer une bonne fois pour toute avec la manip suivante qui permet de passer d’une ip dite “dynamique” à une ip “statique” :</p>
<p>&nbsp;</p>
<p>Tapez dans la console :</p>
<pre>sudo nano /etc/network/interfaces</pre>
<p>Et remplacez</p>
<pre>iface eth0 inet dhcp</pre>
<p>par</p>
<pre>iface eth0 inet static
    address 192.168.1.x
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1</pre>
<p>Il vous faudra remplacer le libellé de “adress” par votre ip réseaux actuelle ainsi que</p>
<p><strong>netmask</strong> : Vous pouvez le trouver dans la valeur “Mask” du ifconfig</p>
<p><strong>broadcast</strong> : Vous pouvez le trouver dans la valeur “Bcast” du ifconfig</p>
<p><strong>gateway</strong> : C’est l’ip de votre routeur/box, vous pouvez la trouver dans le panel admin de votre box sous le libellé (serveur DHCP le plus souvent)</p>
<p>Enregistrez et redémarrez, votre ip sera fixe et toujours accessible depuis Putty.</p>
<p>Attention !! Notez bien que lorsque vous fixez cette ip, elle ne peux plus s’adapter dynamiquement à un autre réseau, aussi si vous trimballez votre rpi autre part, pensez à remettre l’ip en dynamique.</p>
<h2>Déporter le bureau virtuel du raspberry PI sur votre ordinateur (toujours sans écran)</h2>
<p>Si vous n’aimez pas trop la ligne de commande ou que vous souhaitez faire une manip sur le bureau virtuel du raspberry pi sans avoir d’écran, vous pouvez installer un serveur dit “VNC” qui permet de déporter l’affichage du raspberry Pi, sur un autre pc, vous avez donc un écran dans un autre ^^ :</p>
<p><a href="media/e1984d49.image11.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image11.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/470e3b9f.image_thumb11.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb11.png" width="511" height="404" border="0" /></a></p>
<p>Il existe de nombreux serveurs VNC disponibles, mais le moins contraignant à installer est tightvncserver.</p>
<p>Pour l’installer, tapez la ligne de commande</p>
<pre>sudo apt-get install tightvncserver</pre>
<p>Il vous faudra alors lancer le serveur avec la commande</p>
<pre>tightvncserver</pre>
<p>Et ce à chaque fois que vous voudrez l’utiliser, vous pouvez bien entendu vous débrouiller pour lancer cette commande au démarrage via un service ou un cron ou autre…</p>
<p>Au premier lancement il vas vous demander un mot de passe pour se connecter au bureau distant, si vous n’êtes pas trop dingue, vous mettrez le même que celui de votre compte raspberry PI <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" /></p>
<p>Lorsqu’il demande si vous voulez de la lecture seule, répondez n (non)</p>
<pre>Would you like to enter a view-only password (y/n)?</pre>
<p>Le serveur est lancé et configuré :</p>
<p><a href="media/1c96d723.image12.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image12.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/7c207c84.image_thumb12.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb12.png" width="554" height="155" border="0" /></a></p>
<p>&nbsp;</p>
<p>Notez que le serveur est lancé par défaut sur le port “2” qu’il faudra retenir, ainsi que l’adresse ip de votre raspberry (cf partie connexion à la ligne de commande)</p>
<p>Il vous faut maintenant un client de connexion VNC sur la machine ou vous souhaitez déporter l’affichage du raspberry PI, realVNC est gratuit, simple, performant et dispo pour linux, mac , et windows: <a title="http://www.realvnc.com/download/viewer/" href="http://www.realvnc.com/download/viewer/">http://www.realvnc.com/download/viewer/</a></p>
<p>installez et lancez realVnc puis entrez l’adresse ip réseau de votre rapsberry PI, suivis de votre port (par défaut 2) les deux séparés par “:”</p>
<p><a href="media/b3191c2b.image13.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image13.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/37bc5f8d.image_thumb13.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb13.png" width="430" height="247" border="0" /></a></p>
<p>Et cliquez sur “connect”</p>
<p>nb : de mémoire, un warning vas vous avertir que la connexion n’est pas sécurisée, cliquez sur le bouton continue (à moins que ça vous froisse que ca ne soit pas sécurisé évidemment <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/80dcd5bf.wlEmoticon-smilewithtongueout2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout2.png" />, chez vous ça ne change pas grand chose, mais évitez de vous connecter depuis un lieu public ou du boulot)</p>
<p>le client vous demande alors le mot de passe que vous avez donné au serveur VNC lors de son installation :</p>
<p><a href="media/373896a7.image14.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image14.png"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/c97a0917.image_thumb14.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb14.png" width="418" height="216" border="0" /></a></p>
<p>Vous arrivez ensuite sur votre bureau distant et pouvez interagir avec comme vous le souhaitez <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" /></p>
<p>&nbsp;</p>
<h2>Optimiser le serveur http en remplaçant apache par lighthttpd</h2>
<p>On a vu dans le tuto <a href="http://blog.idleman.fr/?p=1506">~ 04 : Configurer en serveur</a> comment mettre en place un serveur dit “http” pouvant héberger des sites web sur le rapsberry PI.</p>
<p>Nous avions choisis le serveur Apache qui et le plus populaire, mais aussi le plus vieux et le plus lourd de ce qui se fait en ce moment.</p>
<p>Apache fait beaucoup d’entrées fichiers ce qui peut à long terme abimer la carte SD de votre raspberry PI, il est donc plus intéressant de se tourner vers des serveurs plus léger comme <a href="http://nginx.org/">Nginx</a> ou <a href="http://www.lighttpd.net/">lighttpd</a></p>
<p>Les deux sont très rapides, légers et peu gourmands en ressources, et n’en déplaisent aux fanatiques de l’un ou de l’autre : ils sont relativement équivalent.</p>
<p>Parce qu’il faut faire un choix, et parce qu’il s’est avéré moins chiant à installer, j’ai choisis lighttpd * les pro-nginx vous pouvez huer *.</p>
<p>lighttpd à surtout un gros avantage pour moi : il est beaucoup plus simple de le relier à PHP que nginx (c’est du vécu, j’ai fait 4/5 tutos sur nginx, aucun n’était d’accord avec l’autre, et certains parlaient même d’installer lighttpd en premier puis de le désinstaller afin d’avoir les prérequis pour nginx… bref)</p>
<p>Donc si vous avez apache, commencez par le désinstaller correctement sinon il fera interférence avec lighttpd par la suite. Attention cependant apache peut être très chiant a désinstaller, le mieux reste encore de repartir d’un raspian vierge si vous le pouvez, sinon je vous laisse vous amuser comme je l’ai fait à tester tout plein de manip pour vous débarasser de l’outrecuidant correctement.</p>
<p>Installez ensuite lighttpd</p>
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:86dbdb27-6077-4ce5-b906-232d8932b9b8" style="margin: 0px; display: inline; float: none; padding: 0px;">
<pre class="brush: bash;">sudo apt-get install lighttpd</pre>
</div>
<p>Puis les pré-requis pour avoir php5 er le relier a lighhtpd</p>
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:49fd26e8-9516-472c-b972-ff62f10b12bd" style="margin: 0px; display: inline; float: none; padding: 0px;">
<pre class="brush: bash;">sudo apt-get install php5-common php5-cgi php5
sudo lighty-enable-mod fastcgi-php</pre>
</div>
<p>Redémarrez le serveur http</p>
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:df2e99bb-e943-4d3a-a522-6b20079433d9" style="margin: 0px; display: inline; float: none; padding: 0px;">
<pre class="brush: bash;">sudo service lighttpd force-reload</pre>
</div>
<p>A ce moment la si vous avez des erreurs types “port 80 busy” un truc du style, c’est que vous avez mal désinstallé apache et qu’il tourne encore, ou qu’un autre serveur http est déjà en place.</p>
<p>Et enfin réattribuez les bons droits sur les bons dossiers pour que lighttpd puisse faire son boulot</p>
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:305ac917-2a4d-4a1d-b7eb-3ee1c126426a" style="margin: 0px; display: inline; float: none; padding: 0px;">
<pre class="brush: bash;">sudo chown www-data:www-data /var/www
sudo usermod -a -G www-data pi</pre>
</div>
<p>Si tout s’est bien passé vous devriez pouvoir vous connecter via un navigateur à l’ip de votre rapsberry PI et voir la page d’accueil par défaut de lighttpd</p>
<p><a href="media/908d28fe.image15.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image15.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/3ee3bc50.image_thumb15.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb15.png" width="244" height="185" border="0" /></a></p>
<p>&nbsp;</p>
<p>Pour ce qui est de la base de données, je vous conseille également de désinstaller MySQL (si vous n’avez installé aucune appli qui tourne avec évidemment) et de le remplacer par SQLite qui est un peu moins gourmand et épargnera votre raspberry PI également :</p>
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:ae99822b-7a4c-429b-9b45-2020f35b4698" style="margin: 0px; display: inline; float: none; padding: 0px;">
<pre class="brush: bash;">sudo apt-get install sqlite3
sudo apt-get install libsqlite3-0 libsqlite3-dev
sudo apt-get install php5-sqlite</pre>
</div>
<h2>Utiliser le raspberry PI comme une seedbox</h2>
<p>Une seedbox est un serveur dédié au téléchargement <span style="text-decoration: line-through;">illégal</span> de fichiers vidéos/audio/multimédia etc…</p>
<p>Il est très simple de transformer le raspberry pi en seedbox afin de pouvoir faire les choses suivantes :</p>
<ul>
<li>Avoir un client torrent disponible via une interface web sécurisée</li>
<li>Pouvoir lancer des torrents à télécharger de n’importe où et en partager non stop tant que le raspberry est allumé (donc tout le temps vu le peu que ça consomme)</li>
<li>Enregistrer automatiquement les films (légaux bien entendu) téléchargés sur un disque dur externe (bah oui votre carte SD risque de faire la gueule sinon)</li>
<li>Accéder aux films de la seedbox depuis n’importe quel PC de votre réseauOn vas commencer par monter un disque dur (le plus gros possible) de manière permanente sur le raspberry PI, puis installer un serveur de partage de fichiers afin de pouvoir rendre accessibles nos fichiers depuis tous les pc de notre réseau, puis on installera un client de torrent permettant le téléchargement et l’envois de fichiers multimédia, enfin on configurera tout ça pour lier les éléments ensembles.</li>
<li><strong>Monter le disque dur:</strong> des bidouilles de commandes, aucun programme</li>
<li><strong>Installer le serveur de partage de fichiers :</strong> on choisira Samba, qui permet le partage avec des pc linux, windows et mac (mais pas sans douleur)</li>
<li><strong>Installer un client torrent :</strong> on choisira Transmission, le célèbre client torrent natif d’Ubuntu, à mon sens le meilleur qui existe, simple, ultra fonctionnel, beau, peut être utilisé en ligne de commande, en fenêtre depuis le bureau ou carrément via une interface web (ce qui nous intéresse le plus).</li>
</ul>
<p>Prêt à manger du beurre par les trous de nez? Envoyons le Pathé !</p>
<p>Premièrement on update parce que ça ne fait jamais de mal avant une installation :</p>
<blockquote><p>sudo apt-get update</p></blockquote>
<p>puis on installe un paquet qui nous sera indispensable par la suite :</p>
<blockquote><p>sudo apt-get install ntfs-3g</p></blockquote>
<p>Puis, on trouve un disque dur assez balèze (genre 2To) et on le branche au port USB du raspberry PI. La rapidité de transmission est un plus, mais ce qu’il vous faut c’est surtout :</p>
<ul>
<li>Un disque dur grosse capacité</li>
<li>Un disque dur avec une alim externe (le rpi étant très mauvais avec les périphériques alimentés par USB).</li>
<li>Un disque dur formaté en NTFS (vous pouvez le mettre en FAT mais il vous faudra modifier quelques paramètres de ce tuto)</li>
<li>Placez au moins un fichier test.txt sur le disque dur pour faire des tests d’ouverture de disque plus loin dans le tuto</li>
</ul>
<p>on vas créer une sorte de “lecteur permanent” dans le dossier “media” sur lequel on pointera notre client de torrents.</p>
<blockquote><p>sudo mkdir -p /media/disque2To</p></blockquote>
<p>On configure les droits pour que le client torrent puisse écrire dans ce lecteur</p>
<blockquote><p>sudo chmod -R 777 /media/disque2To</p></blockquote>
<p>Attendez quelques secondes le temps que le rpi détecte le disque dur puis tapez</p>
<blockquote><p>sudo blkid</p></blockquote>
<p>Une liste de périphériques s’affichent, retenez le champs UUID pour le périphérique ayant le LABEL qui correspond à votre disque dur (mon disque dur 2To s’appelle IdleBox)</p>
<p><a href="media/f232cb5c.image16.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image16.png"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/6ec0ded1.image_thumb16.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb16.png" width="554" height="77" border="0" /></a></p>
<p>Maintenant qu’on connais l’identifiant unique de notre disque dur, on vas spécifier au rpi de lier à chaques démarrage cette id au dossier qu’on à créé spécialement pour lui (/media/disque2To).</p>
<p>On édite pour ça le fichier /etc/fstab</p>
<blockquote><p>sudo nano /etc/fstab</p></blockquote>
<p>et on y ajoute la ligne</p>
<blockquote><p>UUID=<strong><span style="color: #c0504d;">F21843B31843759F</span></strong>       /media/disque2To ntfs-3g   defaults       0       2</p></blockquote>
<p>Evidemment l’UUID doit être modifié en fonction de votre UUID à vous.</p>
<p><a href="media/a06d07e9.image17.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image17.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/552fc18c.image_thumb17.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb17.png" width="564" height="53" border="0" /></a></p>
<p>Puis on sauvegarde et on reboot</p>
<blockquote><p>sudo reboot</p></blockquote>
<p>A ce stade la normalement le contenu de votre disque dur est monté et est disponible via le dossier /media/disque2To, vous pouvez vérifier qu’il contient bien votre fichier test.txt avec la commande.</p>
<blockquote><p>cd /media/disque2To &amp;&amp; ls</p></blockquote>
<p><a href="media/6bc62648.image18.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image18.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/2a9b4de0.image_thumb18.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb18.png" width="561" height="50" border="0" /></a></p>
<p>(oui moi j’ai un peu plus de bordel qu’un simple fichier test.txt mais le principe reste la <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/80dcd5bf.wlEmoticon-smilewithtongueout2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout2.png" />)</p>
<p>Cette phase est très délicate, le système ou le disque dur font souvent la sourde oreille, vérifiez donc bien que vous avez vos fichiers dans /media/disque2To sans quoi la suite du tuto ne fonctionnera pas.</p>
<p>En cas d’erreur vérifiez bien :</p>
<ul>
<li>Que votre disque dur est bien connecté au port usb du raspberry PI, démarré et alimenté lors du démarrage du raspberry PI</li>
<li>Que votre disque dur est bien formaté au format NTFS</li>
<li>Que votre disque dur est bien alimenté par une source autre que le raspberry PI</li>
<li>Que l’UUID entrée dans le /etc/fstab correspond bien à l’UUID de votre disque dur</li>
</ul>
<p>Si l’erreur persiste, essayez de trouver l’erreur au démarrage du rapsberry PI, généralement il vous indique d’ou viens la couille avec un gros “FAILED” rouge.</p>
<p>Bien !! Le plus dur est fait !! <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/94f93849.wlEmoticon-openmouthedsmile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-openmouthedsmile1.png" /></p>
<p>Maintenant on vas faire en sorte que le disque dur (accessible depuis le dossier /media/disque2To si vous avez bien suivis) soit également disponible en partage, c’est à dire que les autres PC de votre réseau local puissent y accéder !</p>
<p>Pour cela, il vous faudra installer un serveur de partage sur votre rapsberry PI, le plus connus (et le seul que je connais d’ailleurs) est samba !</p>
<p>On installe donc samba (et avec le sourire siouplé !)</p>
<blockquote><p>sudo apt-get install samba</p></blockquote>
<p>Il est possible qu’il soit déjà installé, chez moi il l’était mais c’est peut être parce que j’avais fait la manip précédemment, dans tous les cas la commande ne vous fera pas de mal <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" />.</p>
<p>maintenant que samba est installé il vas falloir partager le dossier /media/disque2To sur le réseau.</p>
<p>Pour ça, on commence par editer le fichier de configuration de samba :</p>
<blockquote><p>sudo nano /etc/samba/smb.conf</p></blockquote>
<p>Cherchez la ligne</p>
<blockquote><p># security = user</p></blockquote>
<p>et placez en dessous :</p>
<blockquote><p>security = share</p></blockquote>
<p><a href="media/9b0605e6.image19.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image19.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/6fb57d94.image_thumb19.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb19.png" width="506" height="127" border="0" /></a></p>
<p>De cette manière vous ouvrez un peu votre serveur de partage aux utilisateurs autres que les utilisateurs interne du rpi</p>
<p>Puis cherchez le bloc [print$] …</p>
<p>Et placez en dessous le bloc :</p>
<blockquote><p>[disque2To]<br />
comment = Disque multimedia<br />
path = /media/disque2To<br />
browseable = yes<br />
guest ok = yes<br />
writeable = yes<br />
public = yes<br />
create mask = 0777<br />
directory mask = 0777</p></blockquote>
<p><a href="media/7bd7eaeb.image20.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image20.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/ffc8e43a.image_thumb20.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb20.png" width="517" height="299" border="0" /></a></p>
<p>Enfin redémarrez samba</p>
<blockquote><p>sudo service samba restart</p></blockquote>
<p>Et remettez un ptit coup de permission sur votre dossier partagé pour être sûr.</p>
<blockquote><p>chmod 777 –R /media/disque2To</p></blockquote>
<p>Vous devriez maintenant voir le partage depuis vos autres PC, par exemple depuis mon windows Seven :</p>
<p><a href="media/181b8d01.image21.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image21.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/ee8af6b4.image_thumb21.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb21.png" width="522" height="293" border="0" /></a></p>
<p>Vérifiez bien que vous avez la permission d’entrer et d’écrire dans le disque.</p>
<p><strong>nb :</strong> Il est possible que ce sale bataw de windows vous demande un login/mot de passe alors que nous avons tout fait pour justement ne rien avoir à mettre.</p>
<p>il vous faudra alors taper:</p>
<p><strong>login :</strong> WORKGROUP\votre login windows</p>
<p><strong>mdp :</strong> votre mot de passe windows</p>
<p>Cochez la case ‘se souvenir’ histoire de ne plus être emmerdé par la suite.</p>
<p>Bien !! Maintenant que nous avons un disque dur monté et partagé sur le réseau !! Il vas falloir le remplir avec vos films de vacances légalement téléchargés via un logiciel de torrent !</p>
<p>Le must pour moi en matière de logiciel de torrent c’est transmission : léger, simple, ergonomique, dispose d’une jolie interface web et facilement configurable</p>
<blockquote><p>sudo apt-get install transmission-daemon</p></blockquote>
<p>Transmission vas utiliser deux dossier sur votre disque dur, un dossier pour stocker les fichiers temporaires de téléchargements, et un dossier pour stocker les fichiers finaux, on vas donc créer ces deux dossiers</p>
<blockquote><p>sudo mkdir /media/disque2To/downloaded /media/disque2To/pending</p></blockquote>
<p><strong>downloaded :</strong> dossier qui contiendra vos films de vacances terminés<br />
<strong>pending :</strong> dossier qui contiendra vos films de vacances en cours de téléchargement</p>
<p>On place ensuite l’utilisateur “pi” dans le groupe de transmission</p>
<blockquote><p>sudo usermod -a -G debian-transmission pi</p></blockquote>
<p><span>Et on place les deux dossiers précédemment créé dans ce groupe aussi (c’est la fête du slip pour gérer les permissions)</span></p>
<blockquote><p>chgrp debian-transmission /media/disque2To/downloaded /media/disque2To/pending</p></blockquote>
<p>Enfin (et c’est la dernière manip concernant les permissions) on donne un droit 770 sur les deux dossiers</p>
<blockquote><p>chmod -R 770 /media/disque2To/downloaded /media/disque2To/pending</p></blockquote>
<p>On édite le fichier de configuration de transmission pour lui filer nos deux dossiers et régler quelques autres configs rigolotes :</p>
<blockquote><p>sudo nano /etc/transmission-daemon/settings.json</p></blockquote>
<p>Trouvez les lignes qui correspondent à ça :</p>
<blockquote><p>&laquo;&nbsp;download-dir&nbsp;&raquo;:&nbsp;&raquo; /un/chemin/pourri&nbsp;&raquo; ,<br />
&laquo;&nbsp;incomplete-dir&nbsp;&raquo;:&nbsp;&raquo; /un/autre/chemin/pourri&nbsp;&raquo; ,<br />
&laquo;&nbsp;incomplete-dir-enabled&nbsp;&raquo;: false,<br />
&laquo;&nbsp;rpc-password&nbsp;&raquo;: &laquo;&nbsp;un mot de passe crypté super long type {EBIBEIUBSIBSIBSIUB…&nbsp;&raquo;,<br />
&laquo;&nbsp;rpc-username&nbsp;&raquo;:&nbsp;&raquo;transmission&nbsp;&raquo;,<br />
&laquo;&nbsp;rpc-whitelist &laquo;&nbsp;: &laquo;&nbsp;127.0.0.1&Prime;,</p></blockquote>
<p>et remplissez les avec les bonnes valeurs</p>
<blockquote><p>&laquo;&nbsp;download-dir&nbsp;&raquo;:&nbsp;&raquo; /media/disque2To/downloaded&nbsp;&raquo; ,<br />
&laquo;&nbsp;incomplete-dir&nbsp;&raquo;:&nbsp;&raquo; /media/disque2To/pending&nbsp;&raquo; ,<br />
&laquo;&nbsp;incomplete-dir-enabled&nbsp;&raquo;: true,<br />
&laquo;&nbsp;rpc-password&nbsp;&raquo;: &laquo;&nbsp;mon mot de passe&nbsp;&raquo;,<br />
&laquo;&nbsp;rpc-username&nbsp;&raquo;:&nbsp;&raquo;mon pseudo&nbsp;&raquo;,<br />
&laquo;&nbsp;rpc-whitelist &laquo;&nbsp;: &laquo;&nbsp;127.0.0.1,*.*.*.*&nbsp;&raquo;,</p></blockquote>
<p>Evidemment les lignes ne sont pas toutes collées les unes sous les autres, il vous faudra les chercher <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" /> (je vous avais pas dit que je vous vendrais du bonheur ?)</p>
<p><strong>nb :</strong> Notez que j&rsquo;ai placé la clause *.*.*.* dans rpc-whitelist, celle ci indique que toutes les adresses ip ont le droit de se connecter à votre seedbox (si elles connaissent le user/mot de passe bien entendu), ceci vous permet de vous connecter de partout dans le monde à votre seedbox (il faudra penser à débloquer le port 9091 de votre routeur/box si vous souhaitez y acceder de l’extérieur quand même mais bon&#8230;) si vous voulez que transmission n&rsquo;accepte que les ip réseau locale, vous pouvez mettre 192.168.*.* à la place.<span style="font-style: italic;"><br />
</span></p>
<p>Enregistrez le bouzin et relancez le service</p>
<blockquote><p>sudo service transmission-daemon reload</p></blockquote>
<p>Votre Seedbox est fin prête !!</p>
<p>Pour télécharger de nouveaux films de vacances via des fichiers torrents vous n’avez plus qu’a vous connecter via un navigateur à votre seedbox à l’adresse :</p>
<p>http://<span style="color: #0000ff;"><strong>ip.du.raspberry.pi</strong></span>:<strong><span style="color: #9b00d3;">9091</span></strong></p>
<h2><span style="color: #0000ff;">ip.du.raspberry.pi :</span><span> L’ip réseau de votre raspberry PI (ou son ip WEb si vous y accédez depuis un autre endroit que votre réseau locale)</span></h2>
<p><strong><span style="color: #9b00d3;">9091:</span></strong> port par défaut de transmission (vous pouvez le modifier dans le setting.json, moi j’ai mis 666 pour le fun <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/80dcd5bf.wlEmoticon-smilewithtongueout2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smilewithtongueout2.png" />)</p>
<p>A la connexion transmission vous demandera les login et mot de passe entré dans le settings.json:</p>
<p><a href="media/d29ffbb6.image22.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image22.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="image" alt="image" src="media/856d98ed.image_thumb22.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb22.png" width="508" height="432" border="0" /></a></p>
<p>Et paf vous atterrissez sur votre client torrent :</p>
<p>Vos fichiers une fois téléchargés apparaitront dans le dossier downloaded de votre disque dur, lui même disponible en partagé depuis tout votre réseau locale.</p>
<p><a href="media/4e2d2b63.test.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/test.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="test" alt="test" src="media/c936b0df.test_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/test_thumb.png" width="529" height="443" border="0" /></a></p>
<p>Merci à <a href="http://tomcanac.com/">Tom Canac</a> qui à généreusement partagé ses pistes avec moi afin que nous arrivions à quelque chose de concret sur ce point <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" /></p>
<p>&nbsp;</p>
<h2>[Bonus] Personnaliser un peu le raspberry PI</h2>
<p>&nbsp;</p>
<h2>Changer le nom du raspberry PI</h2>
<p>Par défaut le rpi s’appelle raspberrypi ce qui est laid nous en conviendront on à donc cette ligne qui précède toutes nos commande:</p>
<p><a href="mailto:pi@raspberrypi">pi@raspberrypi</a>: ~#</p>
<p>Pour changer ce nom il faut éditer les fichiers /etc/hostname et /etc/hosts, dans ces deux fichiers, remplacez le nom raspberrypi par le nom que vous souhaitez, puis sauvegardez, fermez et redémarrez le raspberry PI, j’ai appelé le mien pib0x &lsquo;(je sais… mais j’avais pas d’idées, ne me jugez pas T_T)</p>
<p><a href="media/a28b64f2.image23.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image23.png"><img style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/eafaf9d9.image_thumb23.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb23.png" width="244" height="22" border="0" /></a></p>
<h2>Mettre un message d’accueil</h2>
<p>Lors de l’ouverture d’une console sur votre rpi, vous avez un message par défaut de toute beauté qui s’affiche :</p>
<p>The programs included with the Debian GNU/Linux system are free software;<br />
the exact distribution terms for each program are described in the<br />
individual files in /usr/share/doc/*/copyright.</p>
<p>Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent<br />
permitted by applicable law.</p>
<p>Type &lsquo;startx&rsquo; to launch a graphical session</p>
<p>On vas changer ça par quelque chose d’un peu plus yorkmouth !!</p>
<p>Pour cela il faut éditer le fichier /etc/motd et remplacer le message par ce que vous souhaitez puis sauvegarder et rebooter (encore et toujours)!! Personnellement je vous conseille un message en ascii ça claque toujours</p>
<p><a href="media/5609f79e.image24.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image24.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" alt="image" src="media/2b88fbd4.image_thumb24.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/image_thumb24.png" width="464" height="343" border="0" /></a></p>
<p>Pas besoin de vous prendre la tête des jours à faire l’ascii vous même, des services existent pour ça, <a href="http://patorjk.com/software/taag/#p=display&amp;h=3&amp;v=3&amp;f=Small&amp;t=Please%20Pay%20me%20a%20Beer%2C%20I%20need%20a%20Beer%20%28Idle%29">suivez le guide</a></p>
<p>Je repasserais certainement sur ce tuto pour ajouter de petites astuces de temps en temps, aussi pensez à venir lorgner quand vous avez une minute <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b1572486.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/wlEmoticon-smile1.png" /></p>
<p>Bien à vous mes bichons baltais!</p>
<p>Idle</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=2437
title: [Billet invité] Un petit pense bête pour le hacking du raspi
uri: Billet-invité-Un-petit-pense-bête-pour-le-hacking-du-raspi
url: http://blog.idleman.fr/?p=2437
content:
<p>Article rédigé par le lecteur Sébastien DELPORTE</p>
<p>Voici un document de deux images pense bête pour ceux qui veulent faire des montages électroniques avec le RaspberryPi :</p>
<p><span id="more-2437"></span></p>
<ul>
<li>Rappel du calcul de la valeur des résistance pour les led</li>
<li>rappel du schéma mnémonique des composants</li>
<li>valeur des résistances</li>
<li>commande majeure du linux os</li>
<li>&#8230;.</li>
</ul>
<p><a href="media/73fd8803.viewer.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/viewer.png"><br />
<img class="size-medium wp-image-2577 aligncenter" alt="Pense bête raspberry PI 01" src="media/e1c51683.viewer-212x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/viewer-212x300.png" width="212" height="300" /><br />
</a></p>
<p><a href="media/63ea9d88.viewer2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/viewer2.png"><br />
<img class="aligncenter size-medium wp-image-2578" alt="Pense bête raspberry PI 02" src="media/cdb3591e.viewer2-231x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/viewer2-231x300.png" width="231" height="300" /><br />
</a></p>
<p>Source :</p>
<p><a href="https://docs.google.com/file/d/0B23BvTk93HRYQU1NYTBENTNvTXM/edit">https://docs.google.com/file/d/0B23BvTk93HRYQU1NYTBENTNvTXM/edit</a></p>
<p>Bonne lecture</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=2626
uri: Raspberry-PI-20-Créer-un-tableau-de-bord-connecté-au-net-(ou-com
url: http://blog.idleman.fr/?p=2626
title:
Raspberry PI ~ 20 : Créer un tableau de bord connecté au net (ou comment augmenter le nombre de GPIO)

content:
<p>Ce post est le vingtième d&#8217;une liste de tutoriels sur le raspberry PI,<a href="http://blog.idleman.fr/?page_id=2166"> cliquez ici</a> pour accéder au sommaire ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> </p>
<p>Yop bande de trous d&#8217;nez !! (je m&#8217;en lasse pas de celle la !)</p>
<p><span id="more-2626"></span></p>
<p>Ca fait un moment qu&#8217;on a rien bricolé d&#8217;inutile concernant le raspberry PI !!</p>
<p>C&#8217;est ma faute: je glande sur une thèse aussi useless que chronophage et que personne ne lira (et tant mieux aux vues de son contenu <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> ) et puis accessoirement je roupille au soleil (voila pour la petite vie d&#8217;idle).</p>
<p>Pour passer le temps je vous propose tout de même un petit exercice de style :</p>
<p>On vas allumer et éteindre des diodes avec le rpi !</p>
<p><strong><em>&#8220;Hé Idle tu nous prendrais pas pour des billes ?! On l&#8217;a déjà fait </em></strong><a href="http://blog.idleman.fr/?p=1587"><strong><em>en tuto 6</em></strong></a><strong><em> !!”</em></strong></p>
<p>C&#8217;est complètement vrai !! (c&#8217;était pour voir si vous suiviez) mais cette fois ci ce sera un peu différent <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' />  …</p>
<p>Nous allons construire un petit <strong>&#8220;tableau de bord&#8221; lumineux</strong> qui vas nous avertir de l&#8217;état de nos divers serveur, blog, site web, machines connectées au réseau (imprimantes,téléphone,fax etc..) en temps réel ! Chez moi ça donne ça :</p>
<p><img class="aligncenter" style="display: block; float: none; margin-left: auto; margin-right: auto;" title="image" alt="image" src="media/219392d8.image_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/image_thumb.png" width="508" height="400" /></p>
<p>L&#8217;objectif est donc de relier plusieurs diodes au rpi et de créer un système de &#8220;ping&#8221; (pour que la génération facebook me comprenne : c&#8217;est comme un &#8220;poke&#8221; mais pour les machines :p) régulier qui vas aller interroger certaines ip et allumer les led:</p>
<ul>
<li>En rouge si l&#8217;ip ne répond pas</li>
<li>En vert si elle répond.</li>
</ul>
<p><strong><em>&#8220;Mais l&#8217;exercice est très simple, nous savons déjà le faire! C&#8217;est quoi l&#8217;intérêt?&#8221;</em></strong></p>
<p>Hé bien premièrement un collègue m&#8217;a un peu taquiné sur le sujet, donc mon intérêt direct et de lui prouver qu&#8217;un <strong>IdleNaute</strong> n&#8217;est pas une trompette ! <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/adc3071a.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-openmouthedsmile.png" /> (ok ça vous avance à rien mais j&#8217;ai ma fierté merde ^^)</p>
<p>Et deuxièmement ça vas introduire la venue de deux nouveaux éléments électroniques intéressants !</p>
<p>Mais d&#8217;abord le petit quart d’heure de honte traditionnel :</p>
<p><iframe src="http://player.vimeo.com/video/65248277" height="375" width="500" allowfullscreen="" frameborder="0"></iframe></p>
<p>(Vous noterez ma toute nouvelle maîtrise de montage vidéo, c&#8217;est quasi rien mais chuis super fier de moi <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> , quand on regarde la première vidéo de cette série de tuto on se dit que je suis partis de loin)</p>
<p>Vous l&#8217;aurez peut être remarqué, nous utilisons ici des LED qui ont la particularité de pouvoir afficher deux couleurs :<strong><span style="color: #99cc00;"> vert </span></strong>et <strong><span style="color: #ff0000;">rouge</span></strong>.</p>
<p>Ce petit composant est assez intéressant en plus d&#8217;être très simple à utiliser, 3 pattes :</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="led" alt="led" src="media/482738af.led_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/led_thumb.jpg" width="133" height="244" border="0" /></p>
<ul>
<li>La patte du milieu doit être relié a la masse comme pour une LED normale</li>
<li>La patte de droite (patte extérieure la plus courte) si elle est alimentée allumera la diode en rouge</li>
<li>La patte de gauche(patte extérieure la plus longue) si elle est alimentée allumera la diode en vert</li>
<li>Si les deux pattes (gauche et droite) sont alimentées, la diode sera à la fois rouge et vert et donnera une &#8220;lueur jaunâtre&#8221;</li>
</ul>
<p>Ce composant est donc très intéressant et enfantin à utiliser, notez qu&#8217;il existe aussi des diodes dites RVB qui vous permettront<br />
d&#8217;utiliser trois vrais couleurs : vert, rouge et bleu.</p>
<p>Nous nous contentons ici des RV (rouge vert) parce que c&#8217;est un peu <span style="text-decoration: underline;">moins cher</span>, plus <span style="text-decoration: underline;">simple</span> à utiliser et que ça suffit aux  besoins de l&#8217;exercice, nous reparlerons des RVB dans un prochain tuto de toute manière <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<p>Mais je digresse !! revenons à nos diodes RV !!</p>
<p>Celles ci sont donc formidouble (doublement formidables) mais ont tout de même quelques inconvénients:</p>
<ul>
<li>Elles sont assez chères (1,03€ les 10, ok c’est pas la ruine mais pour des LED c’est cher)<br />
Elle ont trois pattes chacune, donc beaucoup de choses à relier quand vous avez 8 LED comme ça à brancher<br />
Si on compte le nombre de pattes à relier au RPI pour 8 led, ça nous fait<strong> 2*8 = 16 GPIO</strong> de pris (plus la masse qu&#8217;ont relie à toutes les pattes centrales des diodes).</li>
</ul>
<p>Pour le premier problème, il y a ebay, pour le second : l&#8217;huile de coude et pour le troisième : les shift registers !</p>
<p><strong><em>&#8220;Nié ! shift what?&#8221;</em></strong></p>
<p>C&#8217;est le second élément nouveau dont je vous parlais (le premier étant la diode RV évidemment).</p>
<p>Pour faire simple, un shift register est un composant électronique tout plein de papattes qui permet de multiplier vos sorties GPIO et ce, quasiment à l&#8217;infinis.</p>
<p><a href="media/6e246ba4.74hc595n-dscn3898.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/74hc595n-dscn3898.jpg"><img style="display: block; float: none; margin-left: auto; margin-right: auto;" title="74hc595n-dscn3898" alt="74hc595n-dscn3898" src="media/feb1162f.74hc595n-dscn3898_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/74hc595n-dscn3898_thumb.jpg" width="240" height="180" /></a></p>
<p>Avec le shift register que nous allons utiliser par exemple, nous n&#8217;auront besoin que de trois sorties GPIO du rapsberry PI pour simuler les 16 GPIO dont nous allons avoir besoin avec les LED.</p>
<p>Inutile donc de vous spécifier que dans le cadre de notre projet domotique qui pompe pas mal de GPIO, c&#8217;est un gros plus !</p>
<ul>
<li><strong>Avantage de notre shift register :</strong><br />
C&#8217;est pas cher<br />
C&#8217;est pas gros<br />
C&#8217;est assez simple d&#8217;utilisation<br />
Ça peut s&#8217;additionner pour multiplier le nombre de sorties indéfiniment ou presque(je vous expliquerais)<br />
Ça ne prends que 3 GPIO max</li>
<li><strong>Les inconvénients :</strong><br />
Ça prend tout de même 3 GPIO !!<br />
Ça complique légèrement le code (mais c&#8217;est pas dramatique)<br />
Ça ne fonctionne que pour les GPIO en sortie (donc pour les entrées il faudra prendre un autre type de shift register un peu plus complexe)</li>
</ul>
<p>Assez déblatéré comme un chauve à lunette de la fac ! Il est temps de mettre les patounes dans l&#8217;cambouis !!</p>
<h2>Le matériel :</h2>
<ul>
<li>Notre fidèle raspberry PI<br />
2 shift registers 74HC595 (je les ai <a href="http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&amp;item=260843227719&amp;ssPageName=STRK:MEWAX:IT&amp;_trksid=p3984.m1423.l2649#ht_1566wt_1054">commandé ici pour 3,48 les 20</a>, vu l’utilité yen aura jamais trop)<br />
8 LED RV (<a href="http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&amp;item=140847991266&amp;ssPageName=STRK:MEWNX:IT&amp;_trksid=p3984.m1497.l2649#ht_2716wt_920">1.03€ les 10 ici</a>)<br />
Quelques fils, éventuellement une breadboard (planche à trou pour éviter les soudures) pour nous simplifier le travail, et un peu de bon sens</li>
</ul>
<p>&nbsp;</p>
<h2>Le schéma de branchement</h2>
<p>Je tiens à préciser que j’ai honteusement pompé puis mutilé un fabuleux schéma de <a href="http://zem.fr">zem.fr</a> pour l’adapter au rpi et vous l&#8217;afficher ci dessous, merci à lui pour ses explications sur le shift register (au passage si vous aimez l’arduino allez visiter le blog il rox du pathé comme on dis chez moi) <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" />.</p>
<p>&nbsp;</p>
<p><a href="media/0d08c5c8.03.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/03.png"><img style="display: block; float: none; margin-left: auto; margin-right: auto;" title="03" alt="03" src="media/22964221.03_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/03_thumb.png" width="514" height="490" /></a></p>
<p>L&#8217;explication sur le shift register se trouvent en fin de tuto (je ne veux pas vous embrouillez tout de suite :p, mais j&#8217;vous ai prévu un mega dessin z&#8217;allez voir ! )</p>
<h2>Code et Installation</h2>
<p>Vous devez déjà avoir un serveur http (apache ou lighttpd peu importe) et PHP installé (si ce n&#8217;est pas le cas suivez <a href="http://blog.idleman.fr/?p=1506">le tuto 4</a><a href="http://blog.idleman.fr/?p=1506)">)</a><br />
Vous devez déjà avoir installé la librairie wiring PI (si ce n&#8217;est pas le cas suivez <a href="http://blog.idleman.fr/?p=1587">le tuto 6</a> <a href="http://blog.idleman.fr/?p=1587)">)</a></p>
<ul>
<ul>
<li>Récupérez <a href="http://domotique.idleman.fr/data/ping/ping.rar">le code PHP ici</a> et placez le dans le répertoire de votre serveur http (<strong>/var/www</strong> par défaut) ce qui doit vous donner une arborescence comme : <strong>/var/www/ping/ping.php</strong></li>
<li>Ouvrez le fichier <strong>ping.php</strong> et ajoutez les IP que vous souhaitez surveiller dans le tableau $servers en début de code, vous pouvez spécifier une IP réseau (ex : 192.168.0.10), une IP web (ex : 55.75.32.203) ou une adresse (ex : <a href="http://google.fr">http://google.fr</a>)</li>
<li>Ajoutez un CRON (tâche planifiée) qui vas exécuter cette page PHP toutes les minutes, pour cela tapez la commande :</li>
</ul>
</ul>
<blockquote><p>sudo crontab -e</p></blockquote>
<p>Et ajoutez la ligne :</p>
<blockquote><p>*/1 * * * * php /var/www/ping/ping.php</p></blockquote>
<p>Les diodes devraient se mettre à jour toutes les minutes en fonction des IP configurées, n&#8217;hésitez pas à lancer le script manuellement depuis votre navigateur (http://adresse.du.rpi/ping/ping.php) dans le cas ou ça ne fonctionne pas avec le cron <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<h2>L&#8217;explication</h2>
<p>La tâche planifiée (le cron) qu&#8217;on à mis en place vas exécuter toutes les minutes le fichier php contenant notre code.</p>
<p>Le fichier php vas, interroger chaque IP que nous avons renseignées pour savoir si elles &#8220;répondent&#8221;.</p>
<p>On part alors du principe qu&#8217;une LED vas représenter la réponse d&#8217;un IP :</p>
<p><strong>Si l&#8217;ip répond</strong>:  PHP vas mettre un port GPIO du shift register à 1 qui correspond à la couleur verte de la led liée.</p>
<p><strong>Si l&#8217;ip ne répond pas:</strong>  PHP vas mettre un port GPIO du shift register à 1 qui correspond à la couleur rouge de la led liée.</p>
<p><strong><em>“Tout ça c’est bien beau mais on ne comprends toujours pas comment manipuler un shift register !!”</em></strong></p>
<p>Tu as raison jeune trublion !! <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/adc3071a.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-openmouthedsmile.png" /> J’ai gardé le meilleur pour la fin !! <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/ee606692.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smilewithtongueout.png" /></p>
<p>Comme c’est un concept (pourtant simple) qui ne cadre pas avec mon cerveau étriqué, j’ai fait un petit dessin pour que mes semblables trépanés du bulbe et moi on se comprenne, mémorisez bien la petite histoire suivante :</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border: 0px;" title="02" alt="02" src="media/e55f144b.02_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/02_thumb.png" width="537" height="435" border="0" /></p>
<p>&nbsp;</p>
<p>J’espère que vous avez adoré l’histoire (je sort une BD en 2014, je crois que j’ai de l’avenir dans cette branche XD) et que vous n’avez pas trop vomi <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" />.</p>
<p>Outre la qualité affligeante de cette image (sur laquelle j’ai pourtant bien passé 20 minutes) on notera qu’elle représente le fonctionnement exacte du shift register (du moin tel que je l&#8217;ai compris ^^), je m’explique :</p>
<p>Le <strong>shift register</strong> (la table) a <strong>8 GPIO</strong> (8 Verres) qui peuvent être à <strong>0</strong> (vide) ou a <strong>1</strong> (plein).</p>
<p>On a pas le droit de toucher aux verres sur la table, pour modifier l’état d’un verre, on ne peux qu’en rajouter un nouveau (le fameux todd) en lui définissant une valeur (vide ou plein).</p>
<p>Sauf qu’en rajoutant Todd le verre, on pousse les autres et le dernier se fait éjecter de la table (die stupid glass ! die !!).</p>
<p>Il vas nous falloir trois “bouton” pour effectuer cette action : un bouton pour remplir ou laisser vide le verre, un bouton pour ajouter le nouveau verre sur la table (et donc pousser les autres) et un dernier bouton pour “valider” la nouvelle configuration de la table <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" /></p>
<p>3 bouton = 3 pattes du shift register branché au raspberry PI, il ne nous en faudra pas plus pour ouvrir/fermer les 8 GPIO du shift register de cette façon <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" />.</p>
<p>Maintenant voyons un ptit schéma simplifié du composant :</p>
<p><a href="media/9dcace51.01.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/01.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="01" alt="01" src="media/66fa1880.01_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/01_thumb.png" width="371" height="365" border="0" /></a></p>
<p>Si vous êtes comme moi vous allez vous demander en premier quel esprit démoniaque a pu penser que mettre tout les gpio d’un coté SAUF UN était pertinent… faut vraiment être le fil de personne pour imaginer des puces comme ça oO !  M’enfin <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' />  !</p>
<p>Donc à ce stade je ne vous ferait pas l’affront de vous expliquer à quoi correspondent les GPIO, la MASSE et L’ALIM (si vous ne savez pas, retour au tuto 1 <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/ee606692.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smilewithtongueout.png" />).</p>
<p>Les trois boutons dont nous parlions sont :</p>
<p>“<strong>VALEUR</strong>” (en réalité nommé SER) qui vas remplir ou non le nouveau verre.<br />
”<strong>SUIVANT</strong>” (nommé en réalité RCLK) qui vas ajouter le nouveau verre sur la table et pousser les autres<br />
<strong>VALIDATEUR</strong> (en réalité <strong>S</strong>RCLK) qui vas prendre en compte la nouvelle configuration <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" /></p>
<p><strong><em>“Et “CONNECTEUR” alors ? Il sert à quoi?”</em></strong></p>
<p>Il vas nous permettre de brancher d’autres shift register au premier, ce qui donnera l’équivalent d’un gros shift register de 16 GPIO avec deux shift de 8 par exemple <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" />.</p>
<p><strong>CONNECTEUR</strong> devras être branché au <strong>VALEUR</strong> du shift register ajouté, il est possible de rajouter autant de shift les un sur les autre que vous le souhaitez, évidemment au bout d&#8217;un moment vous risquez d&#8217;avoir quelques problèmes de lenteur et d&#8217;alimentation si vous ne savez pas vous arrêter ^^ (<em>je vais tapisser mes murs avec des shift register et dominer le mmooonde niark niark niark!!!</em>).</p>
<p><em><strong>“Et les papattes dont tu ne nous à pas parlé ?”</strong></em></p>
<p>Dans notre contexte,elles sont un peu useless, disons qu&#8217;elles ont une fonction utile, mais que prendre un précieux gpio de plus sur le rasp pour ça c’est pas forcement nécessaire,voila le schéma avec les vrai nom des pattes :</p>
<p><strong><em><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="74HC595-Shift-Register" alt="74HC595-Shift-Register" src="media/e9ca7387.74HC595-Shift-Register_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/74HC595-Shift-Register_thumb.png" width="234" height="244" border="0" /></em></strong></p>
<p>&nbsp;</p>
<p>(ça calme tout de suite hein ? <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> )</p>
<p><strong>SRCLR</strong> dont nous n’avons pas parlé, peut être passé en High puis low afin de remettre toute les pin du shift registrer à 0 (ce qui peut aussi être fait manuellement avec les 3 pin dont nous disposons déjà, d’ou le “un peu useless”)</p>
<p><strong>OE</strong> quand à lui permet d’activer la sortie lorsqu&#8217;il est sur la masse (GND) et la désactive lorsqu’il est en High, on le laisse donc toujours branché à la masse.</p>
<p>C’est tout pour aujourd&#8217;hui ! <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" /> Vous l’aurez compris, le principal intérêt de ce tuto est d’abord la notion de shift register qui vas nous permettre de jouer avec plus de GPIO sans trop d’efforts <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/ee606692.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smilewithtongueout.png" />.</p>
<p>Notez qu’il existe plein de type de shift register, certains ont beaucoup plus de sorties, d’autres peuvent se comporter en entrée et en sortie (relativement pratique) etc etc..</p>
<p>Je vous conseille de vous en trouver un qui soit simultanément en entrée et en sortie et qui puisse se “stacker” à d&#8217;autre de ses confrères comme celui que nous avons vu, puis de vous créer une ptite carte à brancher sur le raspberry PI pour multiplier définitivement ses entrées sorties par “x” <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/b4b6033e.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/wlEmoticon-smile.png" /></p>
<p>Bien à vous,</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=2422
title: [Billet invité] Construire un serveur de donnée pour préparer l’arrivée de DropCenter
uri: Billet-invité-Construire-un-serveur-de-donnée-pour-préparer-l-a
url: http://blog.idleman.fr/?p=2422
content:
<p style="text-align: center;">Article rédigé par le lecteur <b>Sébastien DELPORTE</b></p>
<p>Hello à tous,</p>
<p>Voici mon second post cet excellent blog que je suis depuis un petit moment.<br />
Afin de nous préparer dignement à l&rsquo;arrivé de <a href="http://projet.idleman.fr/dropcenter/">DropCenter</a>, je vous propose de nous installer un serveur de donnée sécurisé.<br />
L&rsquo;objectif est donc de recycler un vieux PC pour en faire un serveur de donnée. J&rsquo;entends par là que celui-ci doit pouvoir supporter un crash disque sans perte de donnée, qu&rsquo;il possède un PHP,MySQL &#8230;. enfin comme c&rsquo;est un serveur il n&rsquo;y aura ni clavier, souris et écran donc l&rsquo;administration se fera à distance et les services enverrons des mails en cas de problème.</p>
<p>Personnellement j&rsquo;ai un vieux pentium 2 core avec 4gb de ram qui suffira amplement pour cette utilisation mais n&rsquo;importe quel PC fera l&rsquo;affaire.<br />
Puis j&rsquo;ai récupéré tous mes vieux disques qui trainaient partout.</p>
<h1>Un peu de théorique (juste 30s)</h1>
<p>Pour sécuriser des données rien de mieux que de monter un RAID&#8230;</p>
<p>Non non ici pas de gendarmes, mais simplement une redondance de données et un calcul de parité entre les disques pour sécuriser les données :</p>
<h2>Raid 1 : Les données sont écrites à l&rsquo;identique sur 2 disques donc si il y en a un qui tombe en panne tout va bien</h2>
<p><a href="media/99d55ca1.tuto-nas-1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-1.png"><img class="alignnone size-medium wp-image-2498 aligncenter" alt="tuto nas 1" src="media/68be85e8.tuto-nas-1-199x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-1-199x300.png" width="199" height="300" /></a></p>
<p>Ce raid protège donc les données et à l&rsquo;avantage d&rsquo;accroitre la vitesse en lecture ( la tête est lue sur 1 disque et le reste du corps sur l&rsquo;autre)</p>
<ul>
<li>Perte de 50% du volume utile ( si j&rsquo;ai deux disques de 1To donc 2To au total seul 1To est utilisable pour les données)</li>
</ul>
<h2>Raid 5 : Les données sont réparties sur l&rsquo;ensemble des disques et une partie parité est créée pour sécuriser la grappe en cas de panne d’un des disques</h2>
<p><a href="media/0523f3f1.tuto-nas-2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-2.png"><img class="alignnone size-medium wp-image-2499 aligncenter" alt="tuto nas 2" src="media/cb32787e.tuto-nas-2-202x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-2-202x300.png" width="202" height="300" /></a></p>
<ul>
<li>Dans le cas du raid logiciel ou semi matériel ( la majorité des contrôleurs grand public), la consommation de ressource est plus importante</li>
<li>En cas de crash, il faut remette un disque et reconstruire la grappe (ce qui peut prendre du temps). Sinon les données sont toujours accessibles mais avec temps d&rsquo;accès très dégradé.</li>
<li>La formule du calcul de l&rsquo;espace utile (là vous stockez vos données) est (X-1)*C où X est le nombre de disque et C la capacité des disques. Bon ok un exemple dans le cas de 3 disques de 1to on a 2to utile donc 66% d&rsquo;espace utile (au lieu de 50%)</li>
</ul>
<p>Pour ceux qui aime le détail : <a href="http://fr.wikipedia.org/wiki/RAID_(informatique)#Les_diff.C3.A9rents_types_de_syst.C3.A8mes_RAID">http://fr.wikipedia.org/wiki/RAID_(informatique)#Les_diff.C3.A9rents_types_de_syst.C3.A8mes_RAID</a></p>
<h2>Pour les paranoïaques : le Spare</h2>
<p>Cela consiste à mettre un disque en réserve dans la grappe du raid, si un disque crash le disque en <strong>spare</strong> prend automatiquement sa place.</p>
<h1>Les choix :</h1>
<p>L&rsquo;objectif étant de récupérer le matériel, j&rsquo;ai choisi linux pour OS (Ubntu server), le contrôleur de ma carte mère ne gérant pas le RAID j&rsquo;ai choisi de faire <strong>un raid logiciel</strong>.</p>
<p>(En fait dans tous les cas j&rsquo;aurais choisi un raid logiciel pour m&rsquo;affranchir de la partie matériel car les contrôleurs ne sont pas forcément compatibles entre eux)</p>
<h1>La pratique :</h1>
<h2>J&rsquo;ai plein de disque mais sont-ils tous bon ?</h2>
<p>Ben oui et non &#8230; nous devons connaître leur état de santé pour savoir le niveau de risque pris.</p>
<p>La majorité des disques durs sont équipés de la technologie dites<strong> &laquo;&nbsp;smart&nbsp;&raquo;</strong> qui permet de connaitre leur état de santé.<br />
Mon poste de travail étant sous Windows voici la manip pour tester vos disques. Je les insèrent dans mon Dock Usb.</p>
<p>Puis j&rsquo;utilise le soft suivant : <a href="http://crystalmark.info/download/index-e.html#CrystalDiskInfo">Chirtal diskinfo</a><br />
Lancez le soft (diskinfo.exe) puis regardez l&rsquo;état de santé de votre disque :</p>
<p><a href="media/65ec421d.tuto-nas-3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-3.png"><img class="alignnone size-medium wp-image-2501" alt="tuto nas 3" src="media/cd9d3355.tuto-nas-3-300x295.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-3-300x295.png" width="300" height="295" /></a></p>
<p>Dans la copie d&rsquo;écran on voit que mon disque a bien vécu, donc personnellement je vais le mettre dans la grappe raid mais les autres disques devront être en bonne santé.</p>
<p><a href="media/24eac64e.tuto-nas-4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-4.png"><img class="alignnone size-medium wp-image-2502" alt="tuto nas 4" src="media/bba8afa5.tuto-nas-4-300x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-4-300x300.png" width="300" height="300" /></a></p>
<p>Voila résultat des courses:  je recycle 2 320go, 2 disques de 1 to et 3 disque de 80 go.</p>
<p><strong>Donc je vais installer:</strong></p>
<ul>
<ol>1. L&rsquo;os sur le 320 go</ol>
<ol>2. un disque de 320 go pour les données non sécurisé</ol>
<ol>3. un raid 5 sur les 80go pour les documents</ol>
<ol>4. un raid 1 sur les 1to pour les photos et vidéos ( je pourrais l&rsquo;étendre plus tard en raid 5 si je décide d&rsquo;acheter un nouveau disque)</ol>
</ul>
<p>Pour le billet j&rsquo;ai simplifié les explications avec un disque OS de 320go Hitachi et 1 raid 1 sur 2 disques de 1to western digital</p>
<h2>Préparer l&rsquo;installation du serveur :</h2>
<p>Au delà du montage dans la tour, il faut préparer l&rsquo;os.<br />
J&rsquo;ai pris le Ubuntu serveur car je n&rsquo;ai pas besoins d&rsquo;interface graphique sur le serveur de toute façon il n&rsquo;aura pas d&rsquo;écran ni de clavier à part pour phase d&rsquo;installation de l&rsquo;os.<br />
Mais je vous vois pâlir : il va falloir tout faire en ligne de commande &#8230;.</p>
<p>Meuhnon jdéconne !! Bon ok pas tant que ça, il vas falloir vous flaggeller un peu au début et puis on vas utiliser une interface d&rsquo;administration via un navigateur (ouf !).</p>
<p><strong>Pour préparer l&rsquo;installation de l&rsquo;OS:</strong></p>
<ul>
<ol>1. téléchargez la version de Ubuntu server (personnellement vu que la 13 arrive j&rsquo;ai pris la 12.10 et pas un long term support)</ol>
<ol>2. téléchargez UnetBootIn usb creator : http://www.clubic.com/telecharger-fiche282172-unetbootin.html</ol>
<ol>3. insérez votre clès USB,lancer linux live.</p>
<ul>
<ol>1. Etape 1 : sélectionnez votre clès</ol>
<ol>2. Etape 2 : cliquez sur &laquo;&nbsp;&#8230;&nbsp;&raquo; puis sélectionner le download de Ubuntu server</ol>
<ol>3. Etape 5 : cliquez sur ok</ol>
</ul>
</ol>
</ul>
<p><a href="media/94d9ed15.tuto-nas-5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-5.png"><img class="alignnone size-medium wp-image-2503" alt="tuto nas 5" src="media/75a8a6c0.tuto-nas-5-300x223.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-5-300x223.png" width="300" height="223" /></a><a href="media/8b240191.tuto-nas-6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-6.png"><img class="alignnone size-medium wp-image-2504" alt="tuto nas 6" src="media/32e1d052.tuto-nas-6-300x221.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-6-300x221.png" width="300" height="221" /></a></p>
<p>une fois que l&rsquo;installation sur la clès USB est fini, il n y a plus qu&rsquo;a commencer en l&rsquo;insérant dans le server et en bootant dessus.</p>
<h2>L&rsquo;installation du serveur</h2>
<p class="MsoNormal">Même si l&rsquo;installation est relativement simple je vous ais pris les étapes cruciales en copie d&rsquo;écran.Au-delà de du clavier, de l’écran connectez votre serveur à internet, c’est crucial pour les mises à jour. La 1ere étape comme disait ma grand-mère est la principale quand on rencontre une nouvelle fille &nbsp;&raquo; donc on se trompe pas et on boote sur la <strong>clès</strong>.<br />
<a href="media/17fc73ce.tuto-nas-7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-7.png"><img class="alignnone size-medium wp-image-2505" alt="tuto nas 7" src="media/bbfe99e1.tuto-nas-7-300x234.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-7-300x234.png" width="300" height="234" /></a><br />
la clés boot, comme nous sommes là pour installer ubuntu server, on choisi &laquo;&nbsp;installer ubuntu server&nbsp;&raquo;<br />
<a href="media/9ffd6d56.tuto-nas-8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-8.png"><img class="alignnone size-medium wp-image-2506" alt="tuto nas 8" src="media/3d00e820.tuto-nas-8-300x191.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-8-300x191.png" width="300" height="191" /></a><br />
L&rsquo;installation démarre, on choisi la langue et les setting regionals<br />
<a href="media/ee2557d5.tuto-nas-9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-9.png"><img class="alignnone size-medium wp-image-2507" alt="tuto nas 9" src="media/8ae9d8b4.tuto-nas-9-300x189.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-9-300x189.png" width="300" height="189" /></a><a href="media/91f340fd.tuto-nas-10.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-10.png"><img class="alignnone size-medium wp-image-2508" alt="tuto nas 10" src="media/0f14e95c.tuto-nas-10-300x111.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-10-300x111.png" width="300" height="111" /></a><br />
Puis arrive un truc excellent la détection de clavier &#8230; j&rsquo;étais bleuffé  bon ok c&rsquo;est simple mais super pratique<br />
<a href="media/9b64c3a6.tuto-nas-11.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-11.png"><img class="alignnone size-medium wp-image-2510" alt="tuto nas 11" src="media/69902af4.tuto-nas-11-300x78.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-11-300x78.png" width="300" height="78" /></a><br />
la distribution charge les modules<br />
<a href="media/fb6218bb.tuto-nas-12.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-12.png"><img class="alignnone size-medium wp-image-2511" alt="tuto nas 12" src="media/0ed5e889.tuto-nas-12-300x55.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-12-300x55.png" width="300" height="55" /></a><br />
l’installation se poursuit par :</p>
<ul type="disc">
<li class="MsoNormal" style="color: black;">le nom de la machine. Dans l&rsquo;exemple &laquo;&nbsp;thor&nbsp;&raquo; (l&rsquo;ensemble des machines de mon réseau porte un nom de personnage de Marvel).</li>
<li class="MsoNormal" style="color: black;">Le nom de l&rsquo;utilisateur qui sera créé et son mot de passe.</li>
<li class="MsoNormal" style="color: black;">Sur le chiffrement du dossier personnel, j&rsquo;ai répondu non car les fichiers ne seront pas stockés dans ce dossier de plus mes fichiers ne seront pas chiffrés, je ne suis pas la NASA.</li>
</ul>
<p class="MsoNormal" style="margin-left: 40.5pt; text-indent: -18.0pt;"><a href="media/1bae048e.tuto-nas-13.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-13.png"><img class="alignnone size-medium wp-image-2512" alt="tuto nas 13" src="media/d9cd3146.tuto-nas-13-300x96.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-13-300x96.png" width="300" height="96" /></a><a href="media/1ee6b8d8.tuto-nas-14.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-14.png"><img class="alignnone size-medium wp-image-2513" alt="tuto nas 14" src="media/1888a758.tuto-nas-14-300x94.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-14-300x94.png" width="300" height="94" /></a><a href="media/da7f786e.tuto-nas-15.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-15.png"><img class="alignnone size-medium wp-image-2514" alt="tuto nas 15" src="media/93193779.tuto-nas-15-300x86.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-15-300x86.png" width="300" height="86" /></a></p>
<p>On arrive à un moment important, le choix du partitionnement du disque.<br />
L’objectif est de créer un disque système et des disques de donnée en raid. Je consacre donc un disque entier au système d&rsquo;exploitation. Puis je choisis donc le disque de 320go pour le système, si jamais vous avez peur de vous tromper dans vos disques ne branchez que votre disque système. Les autres disques ne seront pas utilisés pendant l&rsquo;installation.</p>
<p><a href="media/6f4d3b80.tuto-nas-16.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-16.png"><img class="alignnone size-medium wp-image-2515" alt="tuto nas 16" src="media/ebf3d113.tuto-nas-16-300x132.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-16-300x132.png" width="300" height="132" /></a><a href="media/dc010881.tuto-nas-17.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-17.png"><img class="alignnone size-medium wp-image-2516" alt="tuto nas 17" src="media/8cfc00d0.tuto-nas-17-300x100.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-17-300x100.png" width="300" height="100" /></a><br />
le système vous montre les partitions crées sur le disque. Elles sont aux nombres de deux :</p>
<ul>
<li>la partition qui recevra les fichiers</li>
<li>et une partition de swap qui recevra les fichiers d&rsquo;échanges avec la RAM (nous n&rsquo;y auront pas accès après l&rsquo;installation).</li>
</ul>
<p class="MsoNormal"><a href="media/42bdf83d.tuto-nas-18.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-18.png"><img class="alignnone size-medium wp-image-2518" alt="tuto nas 18" src="media/2d2e703a.tuto-nas-18-300x103.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-18-300x103.png" width="300" height="103" /></a>=</p>
<p class="MsoNormal">L&rsquo;installation va maintenant se poursuivre avec l&rsquo;installation et la mise à jour des paquets. Si vous avez un proxy indiquez-le, ce qui n&rsquo;est pas mon cas</p>
<p class="MsoNormal"><a href="media/84db6e1a.tuto-nas-19.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-19.png"><img class="alignnone size-medium wp-image-2519" alt="tuto nas 19" src="media/a350e605.tuto-nas-19-300x86.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-19-300x86.png" width="300" height="86" /></a></p>
<p><a href="media/8c521623.tuto-nas-20.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-20.png"><img class="alignnone size-medium wp-image-2517" alt="tuto nas 20" src="media/b23f9a04.tuto-nas-20-300x62.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-20-300x62.png" width="300" height="62" /></a></p>
<p>Pour plus de sécurité, je vous conseil d&rsquo;installer automatiquement les mises à jour de sécurité, l&rsquo;objectif étant d&rsquo;avoir le moins d&rsquo;administration à faire.</p>
<p><a href="media/a7705eca.tuto-nas-21.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-21.png"><img class="alignnone size-medium wp-image-2520" alt="tuto nas 21" src="media/1fe59b53.tuto-nas-21-300x105.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-21-300x105.png" width="300" height="105" /></a></p>
<p>On va maintenant choisir les fonctions de notre serveur :</p>
<p><a href="media/f25a265a.tuto-nas-22.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-22.png"><img class="alignnone size-medium wp-image-2521" alt="tuto nas 22" src="media/58bc5642.tuto-nas-22-300x130.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-22-300x130.png" width="300" height="130" /></a></p>
<p>Il nous faut un PHP,MySQL,Apache pour l&rsquo;outil d&rsquo;admin en mode web et pour l&rsquo;installation de notre futur dropcenter</p>
<ul>
<li> Un serveur OpenSSH, afin d&rsquo;avoir un accès à distance au serveur pour ne pas avoir un clavier et un écran connectés en permanence à celui-ci</li>
<li>  Un mail server, qui nous servira de relais SMTP pour que le serveur puisse nous pousser des mail d&rsquo;alerte sur son état</li>
<li>  Un serveur Samba car en attendant Drop box, je vais créer des répertoires partagés et synchronisés vers mes PC sous windows.</li>
</ul>
<p>En fonction de vos besoins vous pouvez cocher d&rsquo;autre case, mais l&rsquo;idée est de cocher que le strict nécessaire pour ne pas saturer les serveur pour rien (ne vous inquiétez pas via la commande <code>sudo tasksel</code> vous pouvez avoir de retour accès à cet écran ou d&rsquo;autre moyen seront détaillés plus loin pour installer les softs dont on a besoin).</p>
<p><a href="media/c7524661.tuto-nas-23.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-23.png"><img class="alignnone size-medium wp-image-2522" alt="tuto nas 23" src="media/ddfcce6d.tuto-nas-23-300x96.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-23-300x96.png" width="300" height="96" /></a></p>
<p>Voila on arrive à la fin de l&rsquo;installation, il ne nous reste plus qu&rsquo;à installer l&rsquo;outil de boot Grub. Si vous n&rsquo;avez jamais installé de linux et que vous n&rsquo;avez rien d&rsquo;autre sur le disque (c&rsquo;est le cas si vous avez suivit le tuto ) répondez oui.</p>
<p><a href="media/204c7fb4.tuto-nas-24.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-24.png"><img class="alignnone size-medium wp-image-2524" alt="tuto nas 24" src="media/9f4f1d58.tuto-nas-24-300x103.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-24-300x103.png" width="300" height="103" /></a></p>
<h2>La connexion SSH, redémarrage, mis à jour de 1ere installation</h2>
<p>Bien, je suis toujours avec mon serveur connecté avec un écran et un clavier, nous allons vérifier la connexion à distance pour pouvoir libérer notre serveur.<br />
Le serveur SSH permet d&rsquo;ouvrir une console à distance sur un serveur unix/linux. Il y a donc une partie server que nous avons installé et une partie cliente. Pour la partie cliente, celle-ci dépend de votre OS donc voici des clients pour les différents type de machine :</p>
<ul>
<li>Windows : putty</li>
<li>Android : Juice</li>
<li>Linux : intégrée dans toutes les distributions</li>
</ul>
<p>Voici un exemple de connexion avec putty :</p>
<p><a href="media/5ac177d1.tuto-nas-25.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-25.png"><img class="alignnone size-medium wp-image-2526" alt="tuto nas 25" src="media/a96ca5fd.tuto-nas-25-300x289.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-25-300x289.png" width="300" height="289" /></a> <a href="media/b9a273a7.tuto-nas-26.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-26.png"><img class="alignnone size-medium wp-image-2527" alt="tuto nas 26" src="media/15604311.tuto-nas-26-300x290.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-26-300x290.png" width="300" height="290" /></a> <a href="media/46d253ca.tuto-nas-27.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-27.png"><img class="alignnone size-medium wp-image-2528" alt="tuto nas 27" src="media/8dd96ef9.tuto-nas-27-300x290.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-27-300x290.png" width="300" height="290" /></a></p>
<p>Acceptez le certificat et votre fenêtre de loggin s&rsquo;ouvre, connectez vous.</p>
<p><a href="media/c1860330.tuto-nas-28.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-28.png"><img class="alignnone size-medium wp-image-2529" alt="tuto nas 28" src="media/7a00080c.tuto-nas-28-300x189.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-28-300x189.png" width="300" height="189" /></a></p>
<p>Ayant sélectionné la mise à jour automatique des paquets en cas de patch sécurité. On voit dans la copie d&rsquo;écran ci-dessus que les paquets se sont mis à jour et que donc je dois redémarrer le serveur.<br />
Cela tombe bien je vous propose de mettre à jour un fichier de ressource pour nous faciliter la vie, cette étape est facultative mais rend les manips plus simple<br />
Copier collez cette suite dans votre fichier .bashrc : <code>nano .bashrc</code><br />
<code>export EDITOR='nano'<br />
/## Couleurs pour le prompt<br />
DEFAULT="\[33[00m\]"<br />
BLACK="\[33[30m\]"<br />
RED="\[33[31m\]"<br />
GREEN="\[33[32m\]"<br />
ORANGE="\[33[33m\]"<br />
BLUE="\[33[34m\]"<br />
MAGENTA="\[33[35m\]"<br />
CYAN="\[33[36m\]"<br />
WHITE="\[33[37m\]"<br />
## Effets de texte (défaut, gras, souligné)<br />
export DEF="33[0;0m"<br />
export BOLD="33[1m"<br />
export UNDER="33[4m"<br />
#commande pour redemarer ou eteindre<br />
alias restart='sudo shutdown 0 -r -t0'<br />
alias arret='sudo shutdown 0 -h -P -t 0'<br />
#alias pour mettre en forme et en couleur<br />
alias dir='dir --color=auto'<br />
alias egrep='egrep --color=auto'<br />
alias fgrep='fgrep --color=auto'<br />
alias grep='grep --color=auto'<br />
alias ls='ls -l --color=auto'<br />
alias vdir='vdir --color=auto'<br />
alias cp='cp -v -i'<br />
alias df='df -h -T'<br />
alias du='du -h'<br />
alias find='find -L'<br />
alias mv='mv -v -i'<br />
alias rm='rm -v'<br />
alias ll='ls -F -l -h'<br />
alias l='ls -F -C'<br />
alias md='mkdir -p -v'<br />
alias e='$EDITOR'<br />
alias se='sudo $EDITOR'<br />
alias ss='sudo su'<br />
alias s='sudo'<br />
## Afficher le prompt de root et $USER de manières différentes<br />
if [ `whoami` = root ]; then<br />
PS1="$GREEN\u@\h$CYAN:\W$RED\$ $DEFAULT"<br />
else<br />
PS1="$GREEN\u@\h$CYAN:\W$ORANGE\$ $DEFAULT"<br />
fi<br />
alias inpkg='sudo apt-get install'<br />
alias rmpkg='sudo apt-get autoremove --purge'<br />
alias sepkg='apt-cache search'<br />
alias lstar='tar -tf'<br />
alias mktar='tar -cvf archive.tar'<br />
alias untar='tar -xvf'<br />
function me {<br />
sudo chown -R $USER $@<br />
sudo chgrp -R $USER $@<br />
}<br />
function root {<br />
sudo chown -R root $@<br />
sudo chgrp -R root $@<br />
}<br />
function up {<br />
echo -e "${BOLD}Mises à jour de la base de donnée ...$DEF"<br />
sudo updatedb<br />
echo -e "${BOLD}Mises à jour des paquets ...$DEF"<br />
sudo dpkg --configure -a<br />
sudo apt-get install -f<br />
sudo apt-get check -qq<br />
sudo apt-get update -qq<br />
sudo apt-get upgrade<br />
sudo apt-get autoremove --purge<br />
sudo apt-get clean -qq<br />
sudo apt-get autoclean -qq<br />
}</code></p>
<p>Sauvez en tapant <code>ctrl-o</code> puis quittez <code>ctrl-x</code>, taper <code>. .bashrc</code> (n’oublier pas le premier .) pour prendre ne compte le nouveau fichier.</p>
<p>Tapez la commande pour redémarrer : <code>restart</code> (ou <code>shutdown 0 –r –t0</code> si vous n’avez pas mis votre bashrc à jour).<br />
On fini par mettre à jour la distribution avec les derniers patch :<br />
si vous avez mis votre bashrc à jour tapez <code>up</code> ou sinon :<br />
<code>sudo apt-get update &amp;&amp; sudo apt-get upgrade</code><br />
La commande update met à jour la liste des paquets.<br />
La commande upgrade permet d&rsquo;installer les versions les plus récentes de tous les paquets de la version d&rsquo;Ubuntu en cours.</p>
<h2>L&rsquo;installation webmin :</h2>
<p>Bien nous allons installer webmin qui permet d’administrer le serveur via une interface web pour minimiser les lignes de commande.<br />
Le site web de webmin : http://www.webmin.com/<br />
la documentation Ubuntu liée : http://doc.ubuntu-fr.org/webmin qui contient ce que nous allons faire en beaucoup plus détaillé car elle traite tous les cas</p>
<p>Première étape vérifier que l&rsquo;installation de Apache c&rsquo;est bien passé, dans un bowser accédez à l&rsquo;URL suivante : http://<i>thor</i> &#8211; remplacer thor par le nom de votre machine (voir étape de l&rsquo;installation)<br />
<a href="media/69f5619e.tuto-nas-29.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-29.png"><img class="alignnone size-medium wp-image-2534" alt="tuto nas 29" src="media/a7e64cf5.tuto-nas-29-300x88.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-29-300x88.png" width="300" height="88" /></a></p>
<p>Si ce n&rsquo;est pas le cas lancer le script de restart de apache : <code> /etc/init.d/apache2 restart</code></p>
<p>Bien webmin n&rsquo;est pas dans le dépôt logiciel de Ubuntu,il faut d&rsquo;abord installer le lien vers le dépôt de webmin :</p>
<ul>
<li>Ajouter la clé GPG du dépôt à votre système en saisissant dans le terminal SSH<br />
<code>sudo wget -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add – </code>(attention n’oubliez pas le tiret à la fin de la comande)</li>
<li>modifier votre fichier de référence de vos pour y ajouter le dépôt suivant:<br />
Accèder au fichier <code>/etc/apt/sources.list</code> en tapant :<br />
<code>sudo nano /etc/apt/sources.list</code> (<code>se /etc/apt/sources.list</code>)<br />
à la fin du fichier ajouter le dépot :<br />
<code> #ajout du dépot de webmin<br />
deb http://download.webmin.com/download/repository sarge contrib</code><br />
puis <code>ctrl-O</code> et <code>ctrl-x</code> pour sauver et sortir</li>
<li>On recharge les paquets et on installe<br />
<code>sudo apt-get update</code><br />
<code>sudo apt-get install webmin</code><br />
ou <code>inpkg webmin</code> (si vous avez mis le bashrc à jour)</li>
<li>On change le mot passe root de webmin<br />
sudo /usr/share/webmin/changepass.pl /etc/webmin root &lt;&lt;votre_mot_de_passe&gt;&gt;</li>
</ul>
<p>Et voila un petit test de connexion avec <em>https://thor:10000 </em>(remplacer thor par le nom de votre machine, ignorer l&rsquo;avertissement du certificat Https) :<br />
<a href="media/991d59de.tuto-nas-30.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-30.png"><img class="alignnone size-medium wp-image-2535" alt="tuto nas 30" src="media/90cee4d0.tuto-nas-30-300x192.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-30-300x192.png" width="300" height="192" /></a></p>
<h2>Installation du serveur mail satellite :</h2>
<p>Vous pouvez passer cette étape mais elle apporte un confort non négligeable au serveur.<br />
Bien l&rsquo;idée maintenant est : un serveur doit être surveillé. Il ne doit pas être nécessaire de ce connecter à celui ci pour savoir qu’il a un problème.</p>
<p>Tous les mails internes du serveur doivent être re-dirigés vers une messagerie internet, ce qui permet pour les services critiques de recevoir les alertes de fonctionnement.</p>
<p>Pour envoyer des emails nous utilisons le serveur Postfix qui sera configuré en relais SMTP appelé serveur satellite.</p>
<p>On lance la configuration de base : <code>sudo dpkg-reconfigure postfix</code><br />
1. La première question correspond justement au type d&rsquo;installation de Postfix que vous souhaitez effectuer, ici Système Satellite.<br />
<a href="media/529e83ac.tuto-nas-31.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-31.png"><img class="alignnone size-medium wp-image-2536" alt="tuto nas 31" src="media/9b061da6.tuto-nas-31-300x176.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-31-300x176.png" width="300" height="176" /></a></p>
<p>2. La question suivante permet de choisir le nom suivant le symbole @ pour les expéditeurs de vos courriels. Choisissez donc ici le nom de votre machine par exemple (qualifié, c&rsquo;est-à-dire machine.nomdomaine.org par exemple). Dans mon cas cela donne thor.marvel.com<br />
<a href="media/a2d9f34a.tuto-nas-32.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-32.png"><img class="alignnone size-medium wp-image-2537" alt="tuto nas 32" src="media/5cee82b6.tuto-nas-32-300x176.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-32-300x176.png" width="300" height="176" /></a><br />
3. Ensuite, cette question est le point clé de l&rsquo;assistant, elle permet de saisir le SMTP de votre FAI. Donc, mettez l&rsquo;adresse du serveur smtp. Si vous devez préciser un port différent du port 25, ajouter : puis le numéro du port. Par exemple, si je dois utiliser le port 1234 je doit mettre smtp.serveur.org:1234. J&rsquo;utilise pour ma part j&rsquo;utilise le serveur STMP de google : smtp.gmail.com: 587.<br />
4. Le courrier de root doit être envoyé en alias sur un autre utilisateur, saisissez donc ce nom d&rsquo;utilisateur à la question suivante (au quotidien, lorsque l&rsquo;utilisateur root du système enverra un mail, il sera transféré sous le nom de l&rsquo;utilisateur choisi ici). Donc mettez votre compte pour que les emails de root soit directement renvoyer vers votre boite mail, ou expédiés par votre boite mail.<br />
<a href="media/632cd3be.tuto-nas-33.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-33.png"><img class="alignnone size-medium wp-image-2538" alt="tuto nas 33" src="media/562f0caa.tuto-nas-33-300x175.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-33-300x175.png" width="300" height="175" /></a><br />
5. Ensuite, choisissez les noms d&rsquo;hôtes qui seront acceptés lorsqu&rsquo;un utilisateur local souhaitera envoyer un courrier (le nom de votre machine devrait suffire ici).<br />
<a href="media/b0e43feb.tuto-nas-34.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-34.png"><img class="alignnone size-medium wp-image-2539" alt="tuto nas 34" src="media/7fb20ef0.tuto-nas-34-300x175.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-34-300x175.png" width="300" height="175" /></a><br />
6. Répondez Oui à la question &laquo;&nbsp;Forcer des mises à jour synchronisées de la file d&rsquo;attente des courriels ?&nbsp;&raquo;<br />
7. Il est fortement recommander de n&rsquo;accepter les envois de courrier que sur la boucle locale, à savoir &laquo;&nbsp;127.0.0.0/8&Prime; pour la question suivante.</p>
<p>8. La taille maximale des boites aux lettres peut être mise à 0, si vous êtes sûr des utilisateurs de votre machine.</p>
<p>9. Le caractère &laquo;&nbsp;+&nbsp;&raquo; est très bien pour signifier une adresse locale, laissez donc ce champ à la question suivante</p>
<p>10. Enfin, tous les protocoles Internet méritent d&rsquo;être activés, choisissez donc &laquo;&nbsp;tous&nbsp;&raquo; à la question suivante.</p>
<p>Bien maintenant que la configuration de base est effectuée, il ne reste plus que quelques fichiers à modifier : Dans <code>/etc/postfix/main.cf</code> (pour mémoire la commande d&rsquo;édition : <code>sudo nano /etc/postfix/main.cf</code> ou se <code>/etc/postfix/main</code>) ajouter en fin de fichier les lignes suivantes :<br />
<code>smtp_sasl_auth_enable = yes<br />
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd<br />
smtp_sasl_security_options = noanonymous<br />
smtp_use_tls = yes<br />
smtp_enforce_tls = yes<br />
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt<br />
smtp_generic_maps = hash:/etc/postfix/generic</code></p>
<p>Voila ce que cela donne, pensez aussi à vérifier, la ligne relayhost.<a href="media/7c78efef.tuto-nas-35.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-35.png"><img class="alignnone size-medium wp-image-2541" alt="tuto nas 35" src="media/e3d7f495.tuto-nas-35-300x192.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-35-300x192.png" width="300" height="192" /></a><br />
Maintenant nous créons le fichier qui contiendra le password pour le server STMP, créer le fichier <code>/etc/postfix/sasl/sasl_passwd</code> ( <code>sudo nano /etc/postfix/sasl/sasl_passwd</code>) et ajouter : <code>smtp.serveur.org nom_utilisateur:mot_de_passe</code> (example dans mon cas smtp.google.com toto@gmail.com:toto)</p>
<p>Créons le fichier de mapping utilisateur adresse email externe: <code>/etc/postfix/generic</code> (<code>sudo nano /etc/postfix/generic</code>)<br />
<code>sebastien toto@gmail.com</code></p>
<p>Maintenant il ne reste plus à faire prendre en compte à Postfix la nouvelle configuration :</p>
<ul>
<li>1. Mettons à jour les certifcats :<br />
<code>sudo update-ca-certificates<br />
sudo c_rehash /etc/ssl/certs/</code></li>
<li>2. Prenons en compte le mot de passe STMP et le mapping des utilisateurs :<br />
<code>sudo postmap /etc/postfix/sasl/sasl_passwd<br />
sudo postmap /etc/postfix/generic</code></li>
<li>3. On redémarre le service :<br />
<code>sudo /etc/init.d/postfix restart</code></li>
<li>4. Un petit test d&rsquo;email pour être sur :<br />
<code>echo "test" | mail -s "Sujet Test" toto@gmail.com</code></li>
</ul>
<h2>Installation du RAID :</h2>
<p>Nous voici à la partie coeur du tutorial, enfin vous me direz &#8230;. mais regardez le chemin accompli, vous avez un serveur prêt et propre à faire fonctionner tous les services dont vous avez besoins. Maintenant nous allons le sécuriser.<br />
Le Logiciel MDADM permet de monter un raid logiciel sous linux et au miracle il existe un module webmin pour le paramètrer en avant donc pour créer notre RAID 1 sur 2 disques de 1to :</p>
<ul>
<li>1. installation de MDADM et refresh de webmin<br />
on installe : <code>sudo apt-get install mdadm</code> (ou <code>inpkg mdadm</code>) puis aller dans webmin rafraichir les modules utilisés (rafraichissez la page après l’opération)<br />
<a href="media/6efd48dd.tuto-nas-36.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-36.png"><img class="alignnone size-medium wp-image-2543" alt="tuto nas 36" src="media/e33960ca.tuto-nas-36-300x121.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-36-300x121.png" width="300" height="121" /></a></li>
<li>2. Création des partitions sur les disques dans webmin avec le type linux raid On s&rsquo;occupera de Disque B et C qui serviront pour notre raid 1 de To, mais la manipulation est la même pour un Raid 5 sur 3 disques. Sur chaque disque il faut créer une partition de type linux raid.<br />
<a href="media/2dc34e07.tuto-nas-37.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-37.png"><img class="alignnone size-medium wp-image-2544" alt="tuto nas 37" src="media/d87a45f8.tuto-nas-37-300x68.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-37-300x68.png" width="300" height="68" /></a> <a href="media/0e0eda9e.tuto-nas-38.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-38.png"><img class="alignnone size-medium wp-image-2545" alt="tuto nas 38" src="media/e045f533.tuto-nas-38-300x77.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-38-300x77.png" width="300" height="77" /></a><br />
<a href="media/8c3d1051.tuto-nas-40.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-40.png"><img class="alignnone size-medium wp-image-2547" alt="tuto nas 40" src="media/eb07b98c.tuto-nas-40-300x66.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-40-300x66.png" width="300" height="66" /></a></li>
<li>Voila faites de même pour le 2eme disque.</li>
<li>3. création du raid dans webmin<br />
Cela va se passer dans Webmin, sous l&rsquo;entrée Matériel-&gt;linux raid.<br />
Puis Sélectionnez votre type de raid et créer le. A noter que les notifications sont envoyées à root, si vous avez fait la configuration du serveur mail les notifications vont vous arriver sur votre mail internet.<br />
<a href="media/55114917.tuto-nas-41.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-41.png"><img class="alignnone size-medium wp-image-2548" alt="tuto nas 41" src="media/1009df45.tuto-nas-41-300x125.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-41-300x125.png" width="300" height="125" /></a><br />
Puis sur l&rsquo;écran suivant, noter le nom du dispositif, ici <code>/dev/md0</code> (il nous servira plus tard). Sélectionnez les partitions du raid (carré rouge) et si besoins une partition de spare (carrè bleu), ici j&rsquo;ai mis mes deux partitions de 1to précédemment créer en linux raid.<br />
<a href="media/14fc6e5a.tuto-nas-42.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-42.png"><img class="alignnone size-medium wp-image-2549" alt="tuto nas 42" src="media/42729502.tuto-nas-42-300x235.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-42-300x235.png" width="300" height="235" /></a></li>
<li>Voici le résultat :<br />
<a href="media/268876a6.tuto-nas-43.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-43.png"><img class="alignnone size-medium wp-image-2554" alt="tuto nas 43" src="media/806084ed.tuto-nas-43-300x54.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-43-300x54.png" width="300" height="54" /></a></li>
<li>4. formatage du disque et création du point de montage :<br />
Dans un terminal, il faut formater le disque md0 ( ou le nom du disipostif raid) : <code>sudo mkfs -t ext4 /dev/md0 </code>Maintenant créons le point de montage automatique. En premier lieu le répertoire de montage :<code> sudo mkdir /mnt/data</code> (ici je nomme data le répertoire qui correspondra à mon raid). Puis allez dans dans webmin Système-&gt;Montages disques et réseaux, sélectionnez le type de file system ext4 puis cliquez sur ajouter montage<br />
<a href="media/52d5bd69.tuto-nas-44.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-44.png"><img class="alignnone size-medium wp-image-2550" alt="tuto nas 44" src="media/0c493e89.tuto-nas-44-300x93.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-44-300x93.png" width="300" height="93" /></a><br />
<a href="media/9405a386.tuto-nas-45.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-45.png"><img class="alignnone size-medium wp-image-2551" alt="tuto nas 45" src="media/710e7d83.tuto-nas-45-300x222.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-45-300x222.png" width="300" height="222" /></a></li>
<li>5. mise à jour des autorisations sur Data,l&rsquo;idée est de créer un groupe Data qui aura les droits en lecture/écriture sur le répertoire data. Afin que l’ensemble des utilisateurs de la famille puissent y déposer leurs fichiers.Dans webmin aller dans système-&gt;utilisateur et groupe, puis ajoutez le groupe data<a href="media/330450a7.tuto-nas-46.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-46.png"><img class="alignnone size-medium wp-image-2552" alt="tuto nas 46" src="media/3c484a17.tuto-nas-46-300x175.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-46-300x175.png" width="300" height="175" /></a><br />
Indiquez le nom du groupe et mettez votre utilisateur dedans<a href="media/438af35b.tuto-nas-47.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-47.png"><img class="alignnone size-medium wp-image-2553" alt="tuto nas 47" src="media/0ff4128f.tuto-nas-47-300x157.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-47-300x157.png" width="300" height="157" /></a><br />
Puis sur un terminal : <code>chgrp data /mnt/data</code>, puis <code>chmod +775 /mnt/data.</code><br />
Voila tous ceux qui sont dans le groupe data auront accès à votre raid, oui mais bon faut il y avoir accès &#8230;.</li>
</ul>
<h2>Samba</h2>
<p>Allons danser avec Samba pour avoir accès depuis notre fenêtre préférée. Houlà je fatigue &#8230; nous allons donnée accès à un répertoire de notre raid depuis windows. Dans webmin, Cliquez dans le menu sur serveur-&gt;Partage de fichiers Windows avec Samba puis sur l&rsquo;icône &laquo;&nbsp;réseau windows&nbsp;&raquo;<br />
<img class="alignnone size-full wp-image-2560" alt="tuto nas 48" src="media/7a97165c.tuto-nas-48.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-48.png" width="158" height="102" /><br />
Mettez votre groupe de travail windows pour ma part MARVEL (si vous ne savez pas ce que c’est laissez WORKGROUP) et sauvez<br />
<a href="media/a33f3d96.tuto-nas-49.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-49.png"><img class="alignnone size-medium wp-image-2561" alt="tuto nas 49" src="media/e5d7da20.tuto-nas-49-300x167.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-49-300x167.png" width="300" height="167" /></a><br />
Cliquez maintenant sur <a href="media/c6328862.tuto-nas-50.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-50.png"><img class="alignnone size-full wp-image-2562" alt="tuto nas 50" src="media/c6328862.tuto-nas-50.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-50.png" width="251" height="94" /></a><br />
Pour synchroniser vos comptes unix avec vos comptes samba comme cela quand je crée le compte de mon épouse (avec le groupe data), elle aura automatiquement les accès au répertoire partagé.<br />
<a href="media/89cd12e6.tuto-nas-51.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-51.png"><img class="alignnone size-medium wp-image-2563" alt="tuto nas 51" src="media/988d5e82.tuto-nas-51-300x73.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-51-300x73.png" width="300" height="73" /></a></p>
<p>Sauvegardez puis cliquez sur créer un nouveau fichier partagé : Entrez le nom du partage, le répertoire à créer physiquement, j&rsquo;ai mis le groupe data avec des permissions à 775 comme précédemment comme cela tous les membres de data pourront avoir accès au répertoire.<a href="media/5fd5bd7f.tuto-nas-52.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-52.png"><img class="alignnone size-medium wp-image-2564" alt="tuto nas 52" src="media/24c0cef5.tuto-nas-52-300x138.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-52-300x138.png" width="300" height="138" /></a><br />
Puis dans le partage document cliquez sur Droit et accès de fichier: <a href="media/311762f1.tuto-nas-53.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-53.png"><img class="alignnone size-medium wp-image-2565" alt="tuto nas 53" src="media/097621df.tuto-nas-53-300x102.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-53-300x102.png" width="300" height="102" /></a><br />
Forcer le groupe data et les autorisations à 775 afin que tous les nouveaux fichiers et répertoires soient créés pour tous les utilisateurs de data<br />
<a href="media/5b197132.tuto-nas-54.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-54.png"><img class="alignnone size-medium wp-image-2557" alt="tuto nas 54" src="media/d37d7c08.tuto-nas-54-300x128.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-54-300x128.png" width="300" height="128" /></a><br />
Sauvegarder puis enfin dans<br />
<a href="media/88f1de95.tuto-nas-55.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-55.png"><img class="alignnone size-full wp-image-2558" alt="tuto nas 55" src="media/88f1de95.tuto-nas-55.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-55.png" width="218" height="100" /></a><br />
Cochez à oui inscriptible<br />
<a href="media/53e245c9.tuto-nas-56.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-56.png"><img class="alignnone size-medium wp-image-2559" alt="tuto nas 56" src="media/099945ab.tuto-nas-56-300x195.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-56-300x195.png" width="300" height="195" /></a></p>
<h2>S.M.A.R.T on linux</h2>
<p>Facultatif : Aller encore une petite étape pour renforcer la sécurité des disques du serveur. Vous vous souvenez au début du tuto je vous fais vérifier les disques avec smart. Nous allons l&rsquo;installer et nous faire envoyer des alertes sur les disques par mail afin d’anticiper tous problèmes.</p>
<p>Installer le paquet : apt-get install smartmontools<br />
Rafraichissez les modules de webmin puis la page webmin<br />
Aller dans Matériel==&gt;SMART Drive Status : vous pouvez voir l&rsquo;état de vos disques<br />
Maintenant pour que le service démarre automatiquement, éditez le fichier /etc/default/smartmontools (se /etc/default/smartmontools) et décommenter start_smartd=yes (enlevé le # au début de la ligne). Puis démarrer le service en tapant : sudo /etc/init.d/smartmontools start</p>
<p>Le service est configuré pour faire des tests régulièrement et en cas de warning envoyer un email à root, si vous avez configuré le serveur mail dans le tuto vous recevrez un email sur votre compte.</p>
<h2>the end</h2>
<p>Et voila je m&rsquo;arrête, si vous être preneur la prochaine fois je monte le FTP avec accès sur le web (donc j&rsquo;ajoute de la sécurité sur le serveur) et je monte un serveur DLNA pour mater des films un truc plus fun enfin !!!!.</p>
 ...


feed_id: http://blog.idleman.fr/?p=2636
title: Travis Weston, je te hais !!
uri: Travis-Weston-je-te-hais
url: http://blog.idleman.fr/travis-weston-je-te-hais/
content:
<p>Je dois bien l&#8217;admettre, jusqu’à aujourd&#8217;hui, je n&#8217;avais rien contre Travis Weston&#8230;</p>
<p>En toute sincérité, je ne connaissais même pas ce cher monsieur Weston avant ce soir 00h11 lorsque, ayant changé de thème et souhaitant ajouter un &#8220;lire plus&#8221; WordPress automatiquement <span id="more-2636"></span>afin que mes articles s&#8217;affichent en résumé sur la home, je me suis tourné vers le premier plugin disponible via Google : <strong>Auto More Tag </strong>de ce cher monsieur <strong>Weston.</strong></p>
<p>Sauf que voila, à trop faire confiance à de totals inconnus, on finit par se faire (passez-moi l&#8217;expression) <span style="text-decoration: underline;">lubrifier transversalement le rectum</span> par un néophyte inconscient qui fait absolument n&#8217;importe quoi avec son code&#8230;</p>
<p>Le plugin en question, non content de toucher à ma base de données en écriture sans m&#8217;avertir de quoique ce soit (sachant qu&#8217;il n&#8217;avait aucun besoin de faire ça pour ce que je lui demandais), m&#8217;a supprimé tous mes articles en une fois et ne m&#8217;a conservé que les 200 premiers caractères de chacun en base&#8230;</p>
<p>Pas de sauvegarde de la base faite au préalable par le plugin donc aucun moyen de retour possible&#8230;</p>
<p><a href="media/7dcfe7b3.scrat-age-de-glace.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/scrat-age-de-glace.jpg"><img class="aligncenter size-medium wp-image-2640" alt="scrat-age-de-glace" src="media/603603c1.scrat-age-de-glace-300x200.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/scrat-age-de-glace-300x200.jpg" width="300" height="200" /></a></p>
<p>&nbsp;</p>
<h2 style="text-align: center;">gggghhh&#8230;hhh..ggHHGYYYYAAAAHHHHHHHHHH !!!!!!!! FUUUUUUU!!!</h2>
<p>Fort heureusement j&#8217;avais une sauvegarde du blog datant du 5 mai, que j&#8217;ai pu restaurer en 1h30 (parce que 214 articles, 4116 commentaires et autres ptites infos annexes c&#8217;est pas simple à faire avaler à phpmyadmin en une fois) mais j&#8217;ai tout de même perdu tous les articles et commentaires du 5 Mai à aujourd&#8217;hui.</p>
<p>Parce qu&#8217;il faut bien que je décharge ma haine sur quelqu&#8217;un, aujourd&#8217;hui Monsieur Weston, c&#8217;est toi qui va prendre, aussi j’ose croire que tu ne me tiendras pas rigueur des quelques sobriquets suivants :</p>
<p>Vile scolopendre !!</p>
<p>Mirmillon de petits vers insignifiants !!</p>
<p>Suceur de cacahuètes 0%!</p>
<p>Développeur à la petite semaine!</p>
<p>Face de truite au soleil et vieux lacet défait !</p>
<p>Je vomis sur tes pantoufles en crocodile et mixe ton chat avec un ouvre boite rouillé de chez Lidl!!</p>
<p style="text-align: center;"><em>*ça défoule*</em></p>
<p>Évidemment je peux également m&#8217;en prendre à moi, pour avoir installé les yeux fermé un plugin sans faire de backup avant par exemple, pour me soulager la vessie (au figuré) sur ce gentil (mais néanmoins inconscient j&#8217;insiste) développeur bénévole de Travis Weston,  mais je m&#8217;aime beaucoup trop pour ça, aussi je laisse le soin à ceux qui avait un commentaire ou un article en cours de validation (et donc qui sont perdus) de m&#8217;insulter copieusement dans les commentaires.</p>
<p>Bien à vous.</p>
<p>Idle</p>
<p>Ps: Comment trouvez-vous mon nouveau thème très violemment pompé du thème par défaut wordpress ? <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> </p>


feed_id: http://blog.idleman.fr/?p=2682
title: [Billet invité] Construire un serveur de donnée pour préparer l’arrivée de DropCenter
uri: 2013-05-31-Billet-invité-Construire-un-serveur-de-donnée-pour-préparer-l-a
url:
http://blog.idleman.fr/billet-invite-construire-un-serveur-de-donnee-pour-preparer-larrivee-de-dropcenter/

content:
<p style="text-align: center;">Article rédigé par le lecteur <b>Sébastien DELPORTE</b></p>
<p>Hello à tous,</p>
<p>Voici mon second post cet excellent blog que je suis depuis un petit moment.</p>
<p><span id="more-2682"></span></p>
<p>Afin de nous préparer dignement à l’arrivé de <a href="http://projet.idleman.fr/dropcenter/">DropCenter</a>, je vous propose de nous installer un serveur de donnée sécurisé.</p>
<p>L’objectif est donc de recycler un vieux PC pour en faire un serveur de donnée. J’entends par là que celui-ci doit pouvoir supporter un crash disque sans perte de donnée, qu’il possède un PHP,MySQL …. enfin comme c’est un serveur il n’y aura ni clavier, souris et écran donc l’administration se fera à distance et les services enverrons des mails en cas de problème.</p>
<p>Personnellement j’ai un vieux pentium 2 core avec 4gb de ram qui suffira amplement pour cette utilisation mais n’importe quel PC fera l’affaire.</p>
<p>Puis j’ai récupéré tous mes vieux disques qui trainaient partout.</p>
<h1>Un peu de théorique (juste 30s)</h1>
<p>Pour sécuriser des données rien de mieux que de monter un RAID…</p>
<p>Non non ici pas de gendarmes, mais simplement une redondance de données et un calcul de parité entre les disques pour sécuriser les données :</p>
<h2>Raid 1 : Les données sont écrites à l’identique sur 2 disques donc si il y en a un qui tombe en panne tout va bien</h2>
<p><a href="media/99d55ca1.tuto-nas-1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-1.png"><img class="alignnone size-medium wp-image-2498 aligncenter" alt="tuto nas 1" src="media/68be85e8.tuto-nas-1-199x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-1-199x300.png" width="199" height="300" /></a></p>
<p>Ce raid protège donc les données et à l’avantage d’accroitre la vitesse en lecture ( la tête est lue sur 1 disque et le reste du corps sur l’autre)</p>
<ul>
<li>Perte de 50% du volume utile ( si j’ai deux disques de 1To donc 2To au total seul 1To est utilisable pour les données)</li>
</ul>
<h2>Raid 5 : Les données sont réparties sur l’ensemble des disques et une partie parité est créée pour sécuriser la grappe en cas de panne d’un des disques</h2>
<p><a href="media/0523f3f1.tuto-nas-2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-2.png"><img class="alignnone size-medium wp-image-2499 aligncenter" alt="tuto nas 2" src="media/cb32787e.tuto-nas-2-202x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-2-202x300.png" width="202" height="300" /></a></p>
<ul>
<li>Dans le cas du raid logiciel ou semi matériel ( la majorité des contrôleurs grand public), la consommation de ressource est plus importante</li>
<li>En cas de crash, il faut remette un disque et reconstruire la grappe (ce qui peut prendre du temps). Sinon les données sont toujours accessibles mais avec temps d’accès très dégradé.</li>
<li>La formule du calcul de l’espace utile (là vous stockez vos données) est (X-1)*C où X est le nombre de disque et C la capacité des disques. Bon ok un exemple dans le cas de 3 disques de 1to on a 2to utile donc 66% d’espace utile (au lieu de 50%)</li>
</ul>
<p>Pour ceux qui aime le détail : <a href="http://fr.wikipedia.org/wiki/RAID_(informatique)#Les_diff.C3.A9rents_types_de_syst.C3.A8mes_RAID">http://fr.wikipedia.org/wiki/RAID_(informatique)#Les_diff.C3.A9rents_types_de_syst.C3.A8mes_RAID</a></p>
<h2>Pour les paranoïaques : le Spare</h2>
<p>Cela consiste à mettre un disque en réserve dans la grappe du raid, si un disque crash le disque en <strong>spare</strong> prend automatiquement sa place.</p>
<h1>Les choix :</h1>
<p>L’objectif étant de récupérer le matériel, j’ai choisi linux pour OS (Ubntu server), le contrôleur de ma carte mère ne gérant pas le RAID j’ai choisi de faire <strong>un raid logiciel</strong>.</p>
<p>(En fait dans tous les cas j’aurais choisi un raid logiciel pour m’affranchir de la partie matériel car les contrôleurs ne sont pas forcément compatibles entre eux)</p>
<h1>La pratique :</h1>
<h2>J’ai plein de disque mais sont-ils tous bon ?</h2>
<p>Ben oui et non … nous devons connaître leur état de santé pour savoir le niveau de risque pris.</p>
<p>La majorité des disques durs sont équipés de la technologie dites<strong> « smart »</strong> qui permet de connaitre leur état de santé.</p>
<p>Mon poste de travail étant sous Windows voici la manip pour tester vos disques. Je les insèrent dans mon Dock Usb.</p>
<p>Puis j’utilise le soft suivant : <a href="http://crystalmark.info/download/index-e.html#CrystalDiskInfo">Chirtal diskinfo</a></p>
<p>Lancez le soft (diskinfo.exe) puis regardez l’état de santé de votre disque :</p>
<p><a href="media/65ec421d.tuto-nas-3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-3.png"><img class="alignnone size-medium wp-image-2501" alt="tuto nas 3" src="media/cd9d3355.tuto-nas-3-300x295.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-3-300x295.png" width="300" height="295" /></a></p>
<p>Dans la copie d’écran on voit que mon disque a bien vécu, donc personnellement je vais le mettre dans la grappe raid mais les autres disques devront être en bonne santé.</p>
<p><a href="media/24eac64e.tuto-nas-4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-4.png"><img class="alignnone size-medium wp-image-2502" alt="tuto nas 4" src="media/bba8afa5.tuto-nas-4-300x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-4-300x300.png" width="300" height="300" /></a></p>
<p>Voila résultat des courses:  je recycle 2 320go, 2 disques de 1 to et 3 disque de 80 go.</p>
<p><strong>Donc je vais installer:</strong></p>
<ul>
<ol>1. L’os sur le 320 go</ol>
<ol>2. un disque de 320 go pour les données non sécurisé</ol>
<ol>3. un raid 5 sur les 80go pour les documents</ol>
<ol>4. un raid 1 sur les 1to pour les photos et vidéos ( je pourrais l’étendre plus tard en raid 5 si je décide d’acheter un nouveau disque)</ol>
</ul>
<p>Pour le billet j’ai simplifié les explications avec un disque OS de 320go Hitachi et 1 raid 1 sur 2 disques de 1to western digital</p>
<h2>Préparer l’installation du serveur :</h2>
<p>Au delà du montage dans la tour, il faut préparer l’os.</p>
<p>J’ai pris le Ubuntu serveur car je n’ai pas besoins d’interface graphique sur le serveur de toute façon il n’aura pas d’écran ni de clavier à part pour phase d’installation de l’os.</p>
<p>Mais je vous vois pâlir : il va falloir tout faire en ligne de commande ….</p>
<p>Meuhnon jdéconne !! Bon ok pas tant que ça, il vas falloir vous flaggeller un peu au début et puis on vas utiliser une interface d’administration via un navigateur (ouf !).</p>
<p><strong>Pour préparer l’installation de l’OS:</strong></p>
<ul>
<ol>1. téléchargez la version de Ubuntu server (personnellement vu que la 13 arrive j’ai pris la 12.10 et pas un long term support)</ol>
<ol>2. téléchargez UnetBootIn usb creator : http://www.clubic.com/telecharger-fiche282172-unetbootin.html</ol>
<ol>3. insérez votre clès USB,lancer linux live.</p>
<ul>
<ol>1. Etape 1 : sélectionnez votre clès</ol>
<ol>2. Etape 2 : cliquez sur « … » puis sélectionner le download de Ubuntu server</ol>
<ol>3. Etape 5 : cliquez sur ok</ol>
</ul>
</ol>
</ul>
<p><a href="media/94d9ed15.tuto-nas-5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-5.png"><img class="alignnone size-medium wp-image-2503" alt="tuto nas 5" src="media/75a8a6c0.tuto-nas-5-300x223.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-5-300x223.png" width="300" height="223" /></a><a href="media/8b240191.tuto-nas-6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-6.png"><img class="alignnone size-medium wp-image-2504" alt="tuto nas 6" src="media/32e1d052.tuto-nas-6-300x221.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-6-300x221.png" width="300" height="221" /></a></p>
<p>une fois que l’installation sur la clès USB est fini, il n y a plus qu’a commencer en l’insérant dans le server et en bootant dessus.</p>
<h2>L’installation du serveur</h2>
<p class="MsoNormal">Même si l’installation est relativement simple je vous ais pris les étapes cruciales en copie d’écran.Au-delà de du clavier, de l’écran connectez votre serveur à internet, c’est crucial pour les mises à jour. La 1ere étape comme disait ma grand-mère est la principale quand on rencontre une nouvelle fille  » donc on se trompe pas et on boote sur la <strong>clès</strong>.</p>
<p><a href="media/17fc73ce.tuto-nas-7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-7.png"><img class="alignnone size-medium wp-image-2505" alt="tuto nas 7" src="media/bbfe99e1.tuto-nas-7-300x234.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-7-300x234.png" width="300" height="234" /></a></p>
<p>la clés boot, comme nous sommes là pour installer ubuntu server, on choisi « installer ubuntu server »</p>
<p><a href="media/9ffd6d56.tuto-nas-8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-8.png"><img class="alignnone size-medium wp-image-2506" alt="tuto nas 8" src="media/3d00e820.tuto-nas-8-300x191.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-8-300x191.png" width="300" height="191" /></a></p>
<p>L’installation démarre, on choisi la langue et les setting regionals</p>
<p><a href="media/ee2557d5.tuto-nas-9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-9.png"><img class="alignnone size-medium wp-image-2507" alt="tuto nas 9" src="media/8ae9d8b4.tuto-nas-9-300x189.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-9-300x189.png" width="300" height="189" /></a><a href="media/91f340fd.tuto-nas-10.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-10.png"><img class="alignnone size-medium wp-image-2508" alt="tuto nas 10" src="media/0f14e95c.tuto-nas-10-300x111.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-10-300x111.png" width="300" height="111" /></a></p>
<p>Puis arrive un truc excellent la détection de clavier … j’étais bleuffé  bon ok c’est simple mais super pratique</p>
<p><a href="media/9b64c3a6.tuto-nas-11.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-11.png"><img class="alignnone size-medium wp-image-2510" alt="tuto nas 11" src="media/69902af4.tuto-nas-11-300x78.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-11-300x78.png" width="300" height="78" /></a></p>
<p>la distribution charge les modules</p>
<p><a href="media/fb6218bb.tuto-nas-12.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-12.png"><img class="alignnone size-medium wp-image-2511" alt="tuto nas 12" src="media/0ed5e889.tuto-nas-12-300x55.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-12-300x55.png" width="300" height="55" /></a></p>
<p>l’installation se poursuit par :</p>
<ul type="disc">
<li class="MsoNormal" style="color: black;">le nom de la machine. Dans l’exemple « thor » (l’ensemble des machines de mon réseau porte un nom de personnage de Marvel).</li>
<li class="MsoNormal" style="color: black;">Le nom de l’utilisateur qui sera créé et son mot de passe.</li>
<li class="MsoNormal" style="color: black;">Sur le chiffrement du dossier personnel, j’ai répondu non car les fichiers ne seront pas stockés dans ce dossier de plus mes fichiers ne seront pas chiffrés, je ne suis pas la NASA.</li>
</ul>
<p class="MsoNormal" style="margin-left: 40.5pt; text-indent: -18.0pt;"><a href="media/1bae048e.tuto-nas-13.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-13.png"><img class="alignnone size-medium wp-image-2512" alt="tuto nas 13" src="media/d9cd3146.tuto-nas-13-300x96.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-13-300x96.png" width="300" height="96" /></a><a href="media/1ee6b8d8.tuto-nas-14.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-14.png"><img class="alignnone size-medium wp-image-2513" alt="tuto nas 14" src="media/1888a758.tuto-nas-14-300x94.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-14-300x94.png" width="300" height="94" /></a><a href="media/da7f786e.tuto-nas-15.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-15.png"><img class="alignnone size-medium wp-image-2514" alt="tuto nas 15" src="media/93193779.tuto-nas-15-300x86.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-15-300x86.png" width="300" height="86" /></a></p>
<p>On arrive à un moment important, le choix du partitionnement du disque.</p>
<p>L’objectif est de créer un disque système et des disques de donnée en raid. Je consacre donc un disque entier au système d’exploitation. Puis je choisis donc le disque de 320go pour le système, si jamais vous avez peur de vous tromper dans vos disques ne branchez que votre disque système. Les autres disques ne seront pas utilisés pendant l’installation.</p>
<p><a href="media/6f4d3b80.tuto-nas-16.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-16.png"><img class="alignnone size-medium wp-image-2515" alt="tuto nas 16" src="media/ebf3d113.tuto-nas-16-300x132.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-16-300x132.png" width="300" height="132" /></a><a href="media/dc010881.tuto-nas-17.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-17.png"><img class="alignnone size-medium wp-image-2516" alt="tuto nas 17" src="media/8cfc00d0.tuto-nas-17-300x100.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-17-300x100.png" width="300" height="100" /></a></p>
<p>le système vous montre les partitions crées sur le disque. Elles sont aux nombres de deux :</p>
<ul>
<li>la partition qui recevra les fichiers</li>
<li>et une partition de swap qui recevra les fichiers d’échanges avec la RAM (nous n’y auront pas accès après l’installation).</li>
</ul>
<p class="MsoNormal"><a href="media/42bdf83d.tuto-nas-18.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-18.png"><img class="alignnone size-medium wp-image-2518" alt="tuto nas 18" src="media/2d2e703a.tuto-nas-18-300x103.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-18-300x103.png" width="300" height="103" /></a>=</p>
<p class="MsoNormal">L’installation va maintenant se poursuivre avec l’installation et la mise à jour des paquets. Si vous avez un proxy indiquez-le, ce qui n’est pas mon cas</p>
<p class="MsoNormal"><a href="media/84db6e1a.tuto-nas-19.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-19.png"><img class="alignnone size-medium wp-image-2519" alt="tuto nas 19" src="media/a350e605.tuto-nas-19-300x86.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-19-300x86.png" width="300" height="86" /></a></p>
<p><a href="media/8c521623.tuto-nas-20.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-20.png"><img class="alignnone size-medium wp-image-2517" alt="tuto nas 20" src="media/b23f9a04.tuto-nas-20-300x62.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-20-300x62.png" width="300" height="62" /></a></p>
<p>Pour plus de sécurité, je vous conseil d’installer automatiquement les mises à jour de sécurité, l’objectif étant d’avoir le moins d’administration à faire.</p>
<p><a href="media/a7705eca.tuto-nas-21.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-21.png"><img class="alignnone size-medium wp-image-2520" alt="tuto nas 21" src="media/1fe59b53.tuto-nas-21-300x105.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-21-300x105.png" width="300" height="105" /></a></p>
<p>On va maintenant choisir les fonctions de notre serveur :</p>
<p><a href="media/f25a265a.tuto-nas-22.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-22.png"><img class="alignnone size-medium wp-image-2521" alt="tuto nas 22" src="media/58bc5642.tuto-nas-22-300x130.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-22-300x130.png" width="300" height="130" /></a></p>
<p>Il nous faut un PHP,MySQL,Apache pour l’outil d’admin en mode web et pour l’installation de notre futur dropcenter</p>
<ul>
<li> Un serveur OpenSSH, afin d’avoir un accès à distance au serveur pour ne pas avoir un clavier et un écran connectés en permanence à celui-ci</li>
<li>  Un mail server, qui nous servira de relais SMTP pour que le serveur puisse nous pousser des mail d’alerte sur son état</li>
<li>  Un serveur Samba car en attendant Drop box, je vais créer des répertoires partagés et synchronisés vers mes PC sous windows.</li>
</ul>
<p>En fonction de vos besoins vous pouvez cocher d’autre case, mais l’idée est de cocher que le strict nécessaire pour ne pas saturer les serveur pour rien (ne vous inquiétez pas via la commande <code>sudo tasksel</code> vous pouvez avoir de retour accès à cet écran ou d’autre moyen seront détaillés plus loin pour installer les softs dont on a besoin).</p>
<p><a href="media/c7524661.tuto-nas-23.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-23.png"><img class="alignnone size-medium wp-image-2522" alt="tuto nas 23" src="media/ddfcce6d.tuto-nas-23-300x96.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-23-300x96.png" width="300" height="96" /></a></p>
<p>Voila on arrive à la fin de l’installation, il ne nous reste plus qu’à installer l’outil de boot Grub. Si vous n’avez jamais installé de linux et que vous n’avez rien d’autre sur le disque (c’est le cas si vous avez suivit le tuto ) répondez oui.</p>
<p><a href="media/204c7fb4.tuto-nas-24.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-24.png"><img class="alignnone size-medium wp-image-2524" alt="tuto nas 24" src="media/9f4f1d58.tuto-nas-24-300x103.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-24-300x103.png" width="300" height="103" /></a></p>
<h2>La connexion SSH, redémarrage, mis à jour de 1ere installation</h2>
<p>Bien, je suis toujours avec mon serveur connecté avec un écran et un clavier, nous allons vérifier la connexion à distance pour pouvoir libérer notre serveur.</p>
<p>Le serveur SSH permet d’ouvrir une console à distance sur un serveur unix/linux. Il y a donc une partie server que nous avons installé et une partie cliente. Pour la partie cliente, celle-ci dépend de votre OS donc voici des clients pour les différents type de machine :</p>
<ul>
<li>Windows : putty</li>
<li>Android : Juice</li>
<li>Linux : intégrée dans toutes les distributions</li>
</ul>
<p>Voici un exemple de connexion avec putty :</p>
<p><a href="media/5ac177d1.tuto-nas-25.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-25.png"><img class="alignnone size-medium wp-image-2526" alt="tuto nas 25" src="media/a96ca5fd.tuto-nas-25-300x289.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-25-300x289.png" width="300" height="289" /></a> <a href="media/b9a273a7.tuto-nas-26.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-26.png"><img class="alignnone size-medium wp-image-2527" alt="tuto nas 26" src="media/15604311.tuto-nas-26-300x290.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-26-300x290.png" width="300" height="290" /></a> <a href="media/46d253ca.tuto-nas-27.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-27.png"><img class="alignnone size-medium wp-image-2528" alt="tuto nas 27" src="media/8dd96ef9.tuto-nas-27-300x290.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-27-300x290.png" width="300" height="290" /></a></p>
<p>Acceptez le certificat et votre fenêtre de loggin s’ouvre, connectez vous.</p>
<p><a href="media/c1860330.tuto-nas-28.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-28.png"><img class="alignnone size-medium wp-image-2529" alt="tuto nas 28" src="media/7a00080c.tuto-nas-28-300x189.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-28-300x189.png" width="300" height="189" /></a></p>
<p>Ayant sélectionné la mise à jour automatique des paquets en cas de patch sécurité. On voit dans la copie d’écran ci-dessus que les paquets se sont mis à jour et que donc je dois redémarrer le serveur.</p>
<p>Cela tombe bien je vous propose de mettre à jour un fichier de ressource pour nous faciliter la vie, cette étape est facultative mais rend les manips plus simple</p>
<p>Copier collez cette suite dans votre fichier .bashrc : <code>nano .bashrc</code></p>
<p><code>export EDITOR='nano'</code></p>
<p>/## Couleurs pour le prompt</p>
<p>DEFAULT=&#8221;\[33[00m\]&#8221;</p>
<p>BLACK=&#8221;\[33[30m\]&#8221;</p>
<p>RED=&#8221;\[33[31m\]&#8221;</p>
<p>GREEN=&#8221;\[33[32m\]&#8221;</p>
<p>ORANGE=&#8221;\[33[33m\]&#8221;</p>
<p>BLUE=&#8221;\[33[34m\]&#8221;</p>
<p>MAGENTA=&#8221;\[33[35m\]&#8221;</p>
<p>CYAN=&#8221;\[33[36m\]&#8221;</p>
<p>WHITE=&#8221;\[33[37m\]&#8221;</p>
<p>## Effets de texte (défaut, gras, souligné)</p>
<p>export DEF=&#8221;33[0;0m"</p>
<p>export BOLD="33[1m"</p>
<p>export UNDER="33[4m"</p>
<p>#commande pour redemarer ou eteindre</p>
<p>alias restart='sudo shutdown 0 -r -t0'</p>
<p>alias arret='sudo shutdown 0 -h -P -t 0'</p>
<p>#alias pour mettre en forme et en couleur</p>
<p>alias dir='dir --color=auto'</p>
<p>alias egrep='egrep --color=auto'</p>
<p>alias fgrep='fgrep --color=auto'</p>
<p>alias grep='grep --color=auto'</p>
<p>alias ls='ls -l --color=auto'</p>
<p>alias vdir='vdir --color=auto'</p>
<p>alias cp='cp -v -i'</p>
<p>alias df='df -h -T'</p>
<p>alias du='du -h'</p>
<p>alias find='find -L'</p>
<p>alias mv='mv -v -i'</p>
<p>alias rm='rm -v'</p>
<p>alias ll='ls -F -l -h'</p>
<p>alias l='ls -F -C'</p>
<p>alias md='mkdir -p -v'</p>
<p>alias e='$EDITOR'</p>
<p>alias se='sudo $EDITOR'</p>
<p>alias ss='sudo su'</p>
<p>alias s='sudo'</p>
<p>## Afficher le prompt de root et $USER de manières différentes</p>
<p>if [ `whoami` = root ]; then</p>
<p>PS1=&#8221;$GREEN\u@\h$CYAN:\W$RED\$ $DEFAULT&#8221;</p>
<p>else</p>
<p>PS1=&#8221;$GREEN\u@\h$CYAN:\W$ORANGE\$ $DEFAULT&#8221;</p>
<p>fi</p>
<p>alias inpkg=&#8217;sudo apt-get install&#8217;</p>
<p>alias rmpkg=&#8217;sudo apt-get autoremove &#8211;purge&#8217;</p>
<p>alias sepkg=&#8217;apt-cache search&#8217;</p>
<p>alias lstar=&#8217;tar -tf&#8217;</p>
<p>alias mktar=&#8217;tar -cvf archive.tar&#8217;</p>
<p>alias untar=&#8217;tar -xvf&#8217;</p>
<p>function me {</p>
<p>sudo chown -R $USER $@</p>
<p>sudo chgrp -R $USER $@</p>
<p>}</p>
<p>function root {</p>
<p>sudo chown -R root $@</p>
<p>sudo chgrp -R root $@</p>
<p>}</p>
<p>function up {</p>
<p>echo -e &#8220;${BOLD}Mises à jour de la base de donnée &#8230;$DEF&#8221;</p>
<p>sudo updatedb</p>
<p>echo -e &#8220;${BOLD}Mises à jour des paquets &#8230;$DEF&#8221;</p>
<p>sudo dpkg &#8211;configure -a</p>
<p>sudo apt-get install -f</p>
<p>sudo apt-get check -qq</p>
<p>sudo apt-get update -qq</p>
<p>sudo apt-get upgrade</p>
<p>sudo apt-get autoremove &#8211;purge</p>
<p>sudo apt-get clean -qq</p>
<p>sudo apt-get autoclean -qq</p>
<p>}</p>
<p>Sauvez en tapant <code>ctrl-o</code> puis quittez <code>ctrl-x</code>, taper <code>. .bashrc</code> (n’oublier pas le premier .) pour prendre ne compte le nouveau fichier.</p>
<p>Tapez la commande pour redémarrer : <code>restart</code> (ou <code>shutdown 0 –r –t0</code> si vous n’avez pas mis votre bashrc à jour).</p>
<p>On fini par mettre à jour la distribution avec les derniers patch :</p>
<p>si vous avez mis votre bashrc à jour tapez <code>up</code> ou sinon :</p>
<p><code>sudo apt-get update &amp;&amp; sudo apt-get upgrade</code></p>
<p>La commande update met à jour la liste des paquets.</p>
<p>La commande upgrade permet d’installer les versions les plus récentes de tous les paquets de la version d’Ubuntu en cours.</p>
<h2>L’installation webmin :</h2>
<p>Bien nous allons installer webmin qui permet d’administrer le serveur via une interface web pour minimiser les lignes de commande.</p>
<p>Le site web de webmin : http://www.webmin.com/</p>
<p>la documentation Ubuntu liée : http://doc.ubuntu-fr.org/webmin qui contient ce que nous allons faire en beaucoup plus détaillé car elle traite tous les cas</p>
<p>Première étape vérifier que l’installation de Apache c’est bien passé, dans un bowser accédez à l’URL suivante : http://<i>thor</i> – remplacer thor par le nom de votre machine (voir étape de l’installation)</p>
<p><a href="media/69f5619e.tuto-nas-29.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-29.png"><img class="alignnone size-medium wp-image-2534" alt="tuto nas 29" src="media/a7e64cf5.tuto-nas-29-300x88.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-29-300x88.png" width="300" height="88" /></a></p>
<p>Si ce n’est pas le cas lancer le script de restart de apache : <code> /etc/init.d/apache2 restart</code></p>
<p>Bien webmin n’est pas dans le dépôt logiciel de Ubuntu,il faut d’abord installer le lien vers le dépôt de webmin :</p>
<ul>
<li>Ajouter la clé GPG du dépôt à votre système en saisissant dans le terminal SSH<code>sudo wget -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add – </code>(attention n’oubliez pas le tiret à la fin de la comande)</li>
<li>modifier votre fichier de référence de vos pour y ajouter le dépôt suivant:Accèder au fichier <code>/etc/apt/sources.list</code> en tapant :
<p><code>sudo nano /etc/apt/sources.list</code> (<code>se /etc/apt/sources.list</code>)</p>
<p>à la fin du fichier ajouter le dépot :</p>
<p><code> #ajout du dépot de webmin</code></p>
<p>deb http://download.webmin.com/download/repository sarge contrib</p>
<p>puis <code>ctrl-O</code> et <code>ctrl-x</code> pour sauver et sortir</li>
<li>On recharge les paquets et on installe<code>sudo apt-get update</code>
<p><code>sudo apt-get install webmin</code></p>
<p>ou <code>inpkg webmin</code> (si vous avez mis le bashrc à jour)</li>
<li>On change le mot passe root de webminsudo /usr/share/webmin/changepass.pl /etc/webmin root &lt;&lt;votre_mot_de_passe&gt;&gt;</li>
</ul>
<p>Et voila un petit test de connexion avec <em>https://thor:10000 </em>(remplacer thor par le nom de votre machine, ignorer l’avertissement du certificat Https) :</p>
<p><a href="media/991d59de.tuto-nas-30.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-30.png"><img class="alignnone size-medium wp-image-2535" alt="tuto nas 30" src="media/90cee4d0.tuto-nas-30-300x192.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-30-300x192.png" width="300" height="192" /></a></p>
<h2>Installation du serveur mail satellite :</h2>
<p>Vous pouvez passer cette étape mais elle apporte un confort non négligeable au serveur.</p>
<p>Bien l’idée maintenant est : un serveur doit être surveillé. Il ne doit pas être nécessaire de ce connecter à celui ci pour savoir qu’il a un problème.</p>
<p>Tous les mails internes du serveur doivent être re-dirigés vers une messagerie internet, ce qui permet pour les services critiques de recevoir les alertes de fonctionnement.</p>
<p>Pour envoyer des emails nous utilisons le serveur Postfix qui sera configuré en relais SMTP appelé serveur satellite.</p>
<p>On lance la configuration de base : <code>sudo dpkg-reconfigure postfix</code></p>
<p>1. La première question correspond justement au type d’installation de Postfix que vous souhaitez effectuer, ici Système Satellite.</p>
<p><a href="media/529e83ac.tuto-nas-31.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-31.png"><img class="alignnone size-medium wp-image-2536" alt="tuto nas 31" src="media/9b061da6.tuto-nas-31-300x176.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-31-300x176.png" width="300" height="176" /></a></p>
<p>2. La question suivante permet de choisir le nom suivant le symbole @ pour les expéditeurs de vos courriels. Choisissez donc ici le nom de votre machine par exemple (qualifié, c’est-à-dire machine.nomdomaine.org par exemple). Dans mon cas cela donne thor.marvel.com</p>
<p><a href="media/a2d9f34a.tuto-nas-32.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-32.png"><img class="alignnone size-medium wp-image-2537" alt="tuto nas 32" src="media/5cee82b6.tuto-nas-32-300x176.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-32-300x176.png" width="300" height="176" /></a></p>
<p>3. Ensuite, cette question est le point clé de l’assistant, elle permet de saisir le SMTP de votre FAI. Donc, mettez l’adresse du serveur smtp. Si vous devez préciser un port différent du port 25, ajouter : puis le numéro du port. Par exemple, si je dois utiliser le port 1234 je doit mettre smtp.serveur.org:1234. J’utilise pour ma part j’utilise le serveur STMP de google : smtp.gmail.com: 587.</p>
<p>4. Le courrier de root doit être envoyé en alias sur un autre utilisateur, saisissez donc ce nom d’utilisateur à la question suivante (au quotidien, lorsque l’utilisateur root du système enverra un mail, il sera transféré sous le nom de l’utilisateur choisi ici). Donc mettez votre compte pour que les emails de root soit directement renvoyer vers votre boite mail, ou expédiés par votre boite mail.</p>
<p><a href="media/632cd3be.tuto-nas-33.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-33.png"><img class="alignnone size-medium wp-image-2538" alt="tuto nas 33" src="media/562f0caa.tuto-nas-33-300x175.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-33-300x175.png" width="300" height="175" /></a></p>
<p>5. Ensuite, choisissez les noms d’hôtes qui seront acceptés lorsqu’un utilisateur local souhaitera envoyer un courrier (le nom de votre machine devrait suffire ici).</p>
<p><a href="media/b0e43feb.tuto-nas-34.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-34.png"><img class="alignnone size-medium wp-image-2539" alt="tuto nas 34" src="media/7fb20ef0.tuto-nas-34-300x175.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-34-300x175.png" width="300" height="175" /></a></p>
<p>6. Répondez Oui à la question « Forcer des mises à jour synchronisées de la file d’attente des courriels ? »</p>
<p>7. Il est fortement recommander de n’accepter les envois de courrier que sur la boucle locale, à savoir « 127.0.0.0/8″ pour la question suivante.</p>
<p>8. La taille maximale des boites aux lettres peut être mise à 0, si vous êtes sûr des utilisateurs de votre machine.</p>
<p>9. Le caractère « + » est très bien pour signifier une adresse locale, laissez donc ce champ à la question suivante</p>
<p>10. Enfin, tous les protocoles Internet méritent d’être activés, choisissez donc « tous » à la question suivante.</p>
<p>Bien maintenant que la configuration de base est effectuée, il ne reste plus que quelques fichiers à modifier : Dans <code>/etc/postfix/main.cf</code> (pour mémoire la commande d’édition : <code>sudo nano /etc/postfix/main.cf</code> ou se <code>/etc/postfix/main</code>) ajouter en fin de fichier les lignes suivantes :</p>
<p><code>smtp_sasl_auth_enable = yes</code></p>
<p>smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd</p>
<p>smtp_sasl_security_options = noanonymous</p>
<p>smtp_use_tls = yes</p>
<p>smtp_enforce_tls = yes</p>
<p>smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt</p>
<p>smtp_generic_maps = hash:/etc/postfix/generic</p>
<p>Voila ce que cela donne, pensez aussi à vérifier, la ligne relayhost.<a href="media/7c78efef.tuto-nas-35.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-35.png"><img class="alignnone size-medium wp-image-2541" alt="tuto nas 35" src="media/e3d7f495.tuto-nas-35-300x192.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-35-300x192.png" width="300" height="192" /></a></p>
<p>Maintenant nous créons le fichier qui contiendra le password pour le server STMP, créer le fichier <code>/etc/postfix/sasl/sasl_passwd</code> ( <code>sudo nano /etc/postfix/sasl/sasl_passwd</code>) et ajouter : <code>smtp.serveur.org nom_utilisateur:mot_de_passe</code> (example dans mon cas smtp.google.com toto@gmail.com:toto)</p>
<p>Créons le fichier de mapping utilisateur adresse email externe: <code>/etc/postfix/generic</code> (<code>sudo nano /etc/postfix/generic</code>)</p>
<p><code>sebastien toto@gmail.com</code></p>
<p>Maintenant il ne reste plus à faire prendre en compte à Postfix la nouvelle configuration :</p>
<ul>
<li>1. Mettons à jour les certifcats :<code>sudo update-ca-certificates</code>
<p>sudo c_rehash /etc/ssl/certs/</li>
<li>2. Prenons en compte le mot de passe STMP et le mapping des utilisateurs :<code>sudo postmap /etc/postfix/sasl/sasl_passwd</code>
<p>sudo postmap /etc/postfix/generic</li>
<li>3. On redémarre le service :<code>sudo /etc/init.d/postfix restart</code></li>
<li>4. Un petit test d’email pour être sur :<code>echo "test" | mail -s "Sujet Test" toto@gmail.com</code></li>
</ul>
<h2>Installation du RAID :</h2>
<p>Nous voici à la partie coeur du tutorial, enfin vous me direz …. mais regardez le chemin accompli, vous avez un serveur prêt et propre à faire fonctionner tous les services dont vous avez besoins. Maintenant nous allons le sécuriser.</p>
<p>Le Logiciel MDADM permet de monter un raid logiciel sous linux et au miracle il existe un module webmin pour le paramètrer en avant donc pour créer notre RAID 1 sur 2 disques de 1to :</p>
<ul>
<li>1. installation de MDADM et refresh de webminon installe : <code>sudo apt-get install mdadm</code> (ou <code>inpkg mdadm</code>) puis aller dans webmin rafraichir les modules utilisés (rafraichissez la page après l’opération)
<p><a href="media/6efd48dd.tuto-nas-36.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-36.png"><img class="alignnone size-medium wp-image-2543" alt="tuto nas 36" src="media/e33960ca.tuto-nas-36-300x121.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-36-300x121.png" width="300" height="121" /></a></li>
<li>2. Création des partitions sur les disques dans webmin avec le type linux raid On s’occupera de Disque B et C qui serviront pour notre raid 1 de To, mais la manipulation est la même pour un Raid 5 sur 3 disques. Sur chaque disque il faut créer une partition de type linux raid.<a href="media/2dc34e07.tuto-nas-37.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-37.png"><img class="alignnone size-medium wp-image-2544" alt="tuto nas 37" src="media/d87a45f8.tuto-nas-37-300x68.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-37-300x68.png" width="300" height="68" /></a> <a href="media/0e0eda9e.tuto-nas-38.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-38.png"><img class="alignnone size-medium wp-image-2545" alt="tuto nas 38" src="media/e045f533.tuto-nas-38-300x77.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-38-300x77.png" width="300" height="77" /></a>
<p><a href="media/8c3d1051.tuto-nas-40.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-40.png"><img class="alignnone size-medium wp-image-2547" alt="tuto nas 40" src="media/eb07b98c.tuto-nas-40-300x66.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-40-300x66.png" width="300" height="66" /></a></li>
<li>Voila faites de même pour le 2eme disque.</li>
<li>3. création du raid dans webminCela va se passer dans Webmin, sous l’entrée Matériel-&gt;linux raid.
<p>Puis Sélectionnez votre type de raid et créer le. A noter que les notifications sont envoyées à root, si vous avez fait la configuration du serveur mail les notifications vont vous arriver sur votre mail internet.</p>
<p><a href="media/55114917.tuto-nas-41.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-41.png"><img class="alignnone size-medium wp-image-2548" alt="tuto nas 41" src="media/1009df45.tuto-nas-41-300x125.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-41-300x125.png" width="300" height="125" /></a></p>
<p>Puis sur l’écran suivant, noter le nom du dispositif, ici <code>/dev/md0</code> (il nous servira plus tard). Sélectionnez les partitions du raid (carré rouge) et si besoins une partition de spare (carrè bleu), ici j’ai mis mes deux partitions de 1to précédemment créer en linux raid.</p>
<p><a href="media/14fc6e5a.tuto-nas-42.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-42.png"><img class="alignnone size-medium wp-image-2549" alt="tuto nas 42" src="media/42729502.tuto-nas-42-300x235.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-42-300x235.png" width="300" height="235" /></a></li>
<li>Voici le résultat :<a href="media/268876a6.tuto-nas-43.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-43.png"><img class="alignnone size-medium wp-image-2554" alt="tuto nas 43" src="media/806084ed.tuto-nas-43-300x54.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-43-300x54.png" width="300" height="54" /></a></li>
<li>4. formatage du disque et création du point de montage <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> ans un terminal, il faut formater le disque md0 ( ou le nom du disipostif raid) : <code>sudo mkfs -t ext4 /dev/md0 </code>Maintenant créons le point de montage automatique. En premier lieu le répertoire de montage :<code> sudo mkdir /mnt/data</code> (ici je nomme data le répertoire qui correspondra à mon raid). Puis allez dans dans webmin Système-&gt;Montages disques et réseaux, sélectionnez le type de file system ext4 puis cliquez sur ajouter montage
<p><a href="media/52d5bd69.tuto-nas-44.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-44.png"><img class="alignnone size-medium wp-image-2550" alt="tuto nas 44" src="media/0c493e89.tuto-nas-44-300x93.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-44-300x93.png" width="300" height="93" /></a></p>
<p><a href="media/9405a386.tuto-nas-45.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-45.png"><img class="alignnone size-medium wp-image-2551" alt="tuto nas 45" src="media/710e7d83.tuto-nas-45-300x222.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-45-300x222.png" width="300" height="222" /></a></li>
<li>5. mise à jour des autorisations sur Data,l’idée est de créer un groupe Data qui aura les droits en lecture/écriture sur le répertoire data. Afin que l’ensemble des utilisateurs de la famille puissent y déposer leurs fichiers.Dans webmin aller dans système-&gt;utilisateur et groupe, puis ajoutez le groupe data<a href="media/330450a7.tuto-nas-46.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-46.png"><img class="alignnone size-medium wp-image-2552" alt="tuto nas 46" src="media/3c484a17.tuto-nas-46-300x175.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-46-300x175.png" width="300" height="175" /></a>Indiquez le nom du groupe et mettez votre utilisateur dedans<a href="media/438af35b.tuto-nas-47.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-47.png"><img class="alignnone size-medium wp-image-2553" alt="tuto nas 47" src="media/0ff4128f.tuto-nas-47-300x157.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-47-300x157.png" width="300" height="157" /></a>
<p>Puis sur un terminal : <code>chgrp data /mnt/data</code>, puis <code>chmod +775 /mnt/data.</code></p>
<p>Voila tous ceux qui sont dans le groupe data auront accès à votre raid, oui mais bon faut il y avoir accès ….</li>
</ul>
<h2>Samba</h2>
<p>Allons danser avec Samba pour avoir accès depuis notre fenêtre préférée. Houlà je fatigue … nous allons donnée accès à un répertoire de notre raid depuis windows. Dans webmin, Cliquez dans le menu sur serveur-&gt;Partage de fichiers Windows avec Samba puis sur l’icône « réseau windows »</p>
<p><img class="alignnone size-full wp-image-2560" alt="tuto nas 48" src="media/7a97165c.tuto-nas-48.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-48.png" width="158" height="102" /></p>
<p>Mettez votre groupe de travail windows pour ma part MARVEL (si vous ne savez pas ce que c’est laissez WORKGROUP) et sauvez</p>
<p><a href="media/a33f3d96.tuto-nas-49.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-49.png"><img class="alignnone size-medium wp-image-2561" alt="tuto nas 49" src="media/e5d7da20.tuto-nas-49-300x167.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-49-300x167.png" width="300" height="167" /></a></p>
<p>Cliquez maintenant sur <a href="media/c6328862.tuto-nas-50.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-50.png"><img class="alignnone size-full wp-image-2562" alt="tuto nas 50" src="media/c6328862.tuto-nas-50.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-50.png" width="251" height="94" /></a></p>
<p>Pour synchroniser vos comptes unix avec vos comptes samba comme cela quand je crée le compte de mon épouse (avec le groupe data), elle aura automatiquement les accès au répertoire partagé.</p>
<p><a href="media/89cd12e6.tuto-nas-51.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-51.png"><img class="alignnone size-medium wp-image-2563" alt="tuto nas 51" src="media/988d5e82.tuto-nas-51-300x73.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-51-300x73.png" width="300" height="73" /></a></p>
<p>Sauvegardez puis cliquez sur créer un nouveau fichier partagé : Entrez le nom du partage, le répertoire à créer physiquement, j’ai mis le groupe data avec des permissions à 775 comme précédemment comme cela tous les membres de data pourront avoir accès au répertoire.<a href="media/5fd5bd7f.tuto-nas-52.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-52.png"><img class="alignnone size-medium wp-image-2564" alt="tuto nas 52" src="media/24c0cef5.tuto-nas-52-300x138.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-52-300x138.png" width="300" height="138" /></a></p>
<p>Puis dans le partage document cliquez sur Droit et accès de fichier: <a href="media/311762f1.tuto-nas-53.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-53.png"><img class="alignnone size-medium wp-image-2565" alt="tuto nas 53" src="media/097621df.tuto-nas-53-300x102.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-53-300x102.png" width="300" height="102" /></a></p>
<p>Forcer le groupe data et les autorisations à 775 afin que tous les nouveaux fichiers et répertoires soient créés pour tous les utilisateurs de data</p>
<p><a href="media/5b197132.tuto-nas-54.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-54.png"><img class="alignnone size-medium wp-image-2557" alt="tuto nas 54" src="media/d37d7c08.tuto-nas-54-300x128.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-54-300x128.png" width="300" height="128" /></a></p>
<p>Sauvegarder puis enfin dans</p>
<p><a href="media/88f1de95.tuto-nas-55.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-55.png"><img class="alignnone size-full wp-image-2558" alt="tuto nas 55" src="media/88f1de95.tuto-nas-55.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-55.png" width="218" height="100" /></a></p>
<p>Cochez à oui inscriptible</p>
<p><a href="media/53e245c9.tuto-nas-56.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-56.png"><img class="alignnone size-medium wp-image-2559" alt="tuto nas 56" src="media/099945ab.tuto-nas-56-300x195.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/tuto-nas-56-300x195.png" width="300" height="195" /></a></p>
<h2>S.M.A.R.T on linux</h2>
<p>Facultatif : Aller encore une petite étape pour renforcer la sécurité des disques du serveur. Vous vous souvenez au début du tuto je vous fais vérifier les disques avec smart. Nous allons l’installer et nous faire envoyer des alertes sur les disques par mail afin d’anticiper tous problèmes.</p>
<p>Installer le paquet : apt-get install smartmontools</p>
<p>Rafraichissez les modules de webmin puis la page webmin</p>
<p>Aller dans Matériel==&gt;SMART Drive Status : vous pouvez voir l’état de vos disques</p>
<p>Maintenant pour que le service démarre automatiquement, éditez le fichier /etc/default/smartmontools (se /etc/default/smartmontools) et décommenter start_smartd=yes (enlevé le # au début de la ligne). Puis démarrer le service en tapant : sudo /etc/init.d/smartmontools start</p>
<p>Le service est configuré pour faire des tests régulièrement et en cas de warning envoyer un email à root, si vous avez configuré le serveur mail dans le tuto vous recevrez un email sur votre compte.</p>
<h2>the end</h2>
<p>Et voila je m’arrête, si vous être preneur la prochaine fois je monte le FTP avec accès sur le web (donc j’ajoute de la sécurité sur le serveur) et je monte un serveur DLNA pour mater des films un truc plus fun enfin !!!!.</p>


feed_id: http://blog.idleman.fr/?p=2693
title: Ouverture de la Taverne
uri: Ouverture-de-la-Taverne
url: http://blog.idleman.fr/ouverture-de-la-taverne/
content:
<p>On m’a fait la remarque à plusieurs reprises que les commentaires n’étaient peut-être pas l’endroit idéal pour discuter de certains posts comme la série sur le raspberry PI.<span id="more-2693"></span></p>
<p>Il est vrai que la recherche d’information est assez désespérante et pousse à la redondance cyclique de l’expression du besoin pourtant maintes fois évoqué (pardon, je m’entraine à faire des phrases pipeau pour ma thèse).</p>
<p><strong>Soit…</strong></p>
<p>Parce que ça ne coûte pas grand chose d’essayer et parce que ça pourrait donner lieu à des échanges intéressants (ou mourir dans une totale indifférence <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' />  ) j’ai ouvert un ptit forum gracieusement nommé : <strong><a href="http://forum.idleman.fr/">La Taverne</a></strong>.</p>
<p><a href="http://forum.idleman.fr/"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/fe5b7cd7.image.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/06/image.png" width="497" height="234" border="0" /></a></p>
<p>J’ai appelé le forum comme ça pour <del>une</del> deux simples raisons :</p>
<p><strong>Premièrement</strong> c’est historique (la taverne existe depuis <del>des millénaires</del> quelques années et fut un temps utilisée par mes potes et moi même, oui, je sais: <a href="http://fr.wiktionary.org/wiki/OSEF">osef</a>)</p>
<p><strong>Deuxièmement</strong> (et c’est le plus important) parce que j’aimerais que ce soit un peu plus convivial qu’un simple forum où l’on pose sa question et où l’on se barre impitoyablement sans jamais rendre la pareille.</p>
<p>Si vous êtes sur la même longueur d’onde que moi n’hésitez pas à vous inscrire, le but du forum étant de répondre en partie aux questions que l’on peut se poser mais aussi présenter ses projets, en planifier avec d’autres poivrots (ah oui, un user de la taverne a le rang <strong>poivrot…</strong> je vous avais dit que je vous ferais rêver).</p>
<p>De plus n’hésitez pas a postuler en tant que videurs (modérateurs), ce rang n’ayant pas pour but d’abattre les trolls (ils évitent généralement le blog) mais pour répondre aux questions des lecteurs un peu perdus dans les tutos.</p>
<p>Le forum est dispo à cette adresse : <a href="http://forum.idleman.fr/">forum.idleman.fr</a> (oui, j’ai fait dans l’originalité <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/aa232670.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/06/wlEmoticon-openmouthedsmile.png" />) un bouton devrait apparaître sur le blog sous peu.</p>


feed_id: http://blog.idleman.fr/?p=2685
title: PortablePack : Le sac à dos du développeur
uri: PortablePack-Le-sac-à-dos-du-développeur
url: http://blog.idleman.fr/portablepack-le-sac-a-dos-du-developpeur/
content:
<p><em>Lecteur dans la pénombre</em> &#8211; <strong>&#8220;He is alive !! &#8220;</strong></p>
<p>Roahh ça vas hein !! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' />  Okay j&#8217;ai un peu la tête sous l&#8217;eau en ce moment, mais j&#8217;vous promets que ça vas s&#8217;arranger.<span id="more-2685"></span></p>
<p>Une fois cette #$&amp;^@~! de thèse terminée, je vous promets du bonheur en Tupperware!</p>
<p>En attendant et pour m&#8217;excuser, voila un petit pack de programme gratuits et portables<br />
triés sur le volet, et &#8220;Commentés&#8221; histoire d&#8217;être compréhensible.</p>
<p>Pour le petit rappel un programme portable ne nécessite pas d&#8217;installation, et peut s&#8217;installer et s’exécuter directement depuis une clé USB ou autre périphérique.</p>
<p>Ces programmes sont gratuits et légaux, et peuvent vous tirer de plus d&#8217;une situation embarrassante pour un geek comme la fois ou vous êtes allé dépanner votre grand mère et que vous avez été obligé d&#8217;<strong>utiliser honteusement Internet Explorer</strong> pour aller télécharger le plus vite possible un Firefox ou un Chrome !! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> </p>
<p>Plus de problèmes avec ce ptit pack puisqu&#8217;il contient une version de Firefox exécutable de votre clé que vous pourrez emmener partout avec vous <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> , le pack contient également les programmes suivants :</p>
<p>Bref tous les ptits utilitaire que ça fait chier d&#8217;installer parce que ne les utilise pas assez souvent mais qui taraudent gravement votre conscience de geeks quand vous ne les avez pas sous la main à l&#8217;instant propice :</p>
<ul>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Comparateur de clé de registre Avant &#8211; Après  &#8211; Regshot</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Booteur clé USB avec Linux &#8211; LiliUsbCreator</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Booteur clé USB Linux &#8211; UNetbootin</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Bureau virtuel &#8211; VirtualWin</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Clavier virtuel &#8211; ClavicomNG</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Client FTP &#8211; FileZilla</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Client SCP-FTP &#8211; Winscp</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Client SSH &#8211; Putty</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Convertisseur audio vidéo &#8211; WinFF</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Création son &#8211; Audacity</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Dézippeur &#8211; 7-zip</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">Diagrammes Visio &#8211; Dia</span></li>
<li>Verrouilleur de dossier &#8211; FreeOTFE</li>
<li>Éditeur de texte &#8211; LibreOffice</li>
<li>Éditeur HTML WYSIWYG &#8211; KompoZer</li>
<li>Fusion PDF &#8211; PDFSAM</li>
<li>Graveur &#8211; InfraRecorder</li>
<li>Lecteur PDF &#8211; SumatraPDF</li>
<li>Lecteur vidéo &#8211; VLC</li>
<li>Messagerie email &#8211; Framabird</li>
<li>Navigateur &#8211; Framafox</li>
<li>Nettoyeur &#8211; BleachBit</li>
<li>Récupérateur de clé programmes &#8211; ProductKeyExplorer</li>
<li>Serveur de mail (SMTP) &#8211; minirelay</li>
<li>Serveur FTP &#8211; FtpCerver3lite</li>
<li>Serveur Web &#8211; ZMWS</li>
<li>Sniffeur de paquets réseau &#8211; smsniff</li>
</ul>
<p>Vous pouvez télécharger <a href="http://hades.idleman.fr/ressources/portablepack.7z">ce pack en cliquant ICI</a>, le dossier fait en tout 597 Mo qu&#8217;il vous faudra prévoir sur votre clé (pour 27 programmes ce n&#8217;est pas cher payé), du coup j&#8217;ai compressé ça en .7z (que vous pouvez décompresser par exemple avec l&#8217;utilitaire gratuit 7zip) histoire d&#8217;épargner ma bande passante <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<p>Notez que ces programmes sont exécutables sous Windows exclusivement, cependant si vous êtes Linuxiens vous pouvez utiliser Wine sur la majorité d&#8217;entre eux <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .<a href="media/be328efd.photo_la_plume_blanche__39928_zoom.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/05/photo_la_plume_blanche__39928_zoom.jpg"><br />
</a></p>
<p>Ces applications sont issues des excellents sites Framablog et PortablesApps que je vous conseille vivement de parcourir si vous avez votre soirée de libre.</p>
<p>Bien à vous mes ptits poulets.</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=2413
title: [Billet invité] Comment transformer un trackpad de mayrde en touchpad qui va bien
uri: Billet-invité-Comment-transformer-un-trackpad-de-mayrde-en-touchpad
url:
http://blog.idleman.fr/billet-invite-comment-transformer-un-trackpad-de-mayrde-en-touchpad-qui-va-bien/

content:
<p>Article écrit par le lecteur Florent aka floolf</p>
<p><em>touchpad = bien</em><br />
<em>trackpad = pas bien<span id="more-2413"></span></em></p>
<h2>Problématique</h2>
<p>La mode est aux trackpads, pas seulement sur les ultrabooks mais aussi sur les notebooks et netbooks. Le problème : c&#8217;est très chiant voire même <strong>impossible à utiliser</strong> pour un &#8220;utilisateur avancé&#8221;. En effet, ces périphériques de pointage semblent conçus pour les personnes qui déplacent le curseur à un doigt, le placent sur l&#8217;endroit de l&#8217;écran où ils voudraient cliquer, réfléchissent un peu, retirent le doigt, puis cliquent doucement sur le clic gauche. Or, les boutons de clic sont <strong>tactiles</strong>, ce qui rend impossible l&#8217;utilisation fort pratique et rapide qui consiste à <strong>garder son pouce</strong> (ou l&#8217;index de l&#8217;autre main) <strong>sur les boutons de clic</strong> et déplacer la souris avec l&#8217;index ou le majeur. Si on pose son pouce sur la zone cliquable d&#8217;un trackpad et qu&#8217;on déplace le pointeur en même temps, il croit qu&#8217;on essaye de faire du multitouch et donc le pointeur ne bouge plus, et on obtient souvent des actions non désirées. De plus, la plupart des trackpads équipant les machines d&#8217;entrée ou milieu de gamme sont mal conçus et trop sensibles, ce qui fait que pendant le clic le moindre mouvement de doigt sera interprété comme une volonté de déplacer le pointeur en même temps. Je vous laisse envisager tous les comportements foireux de drag-and-drop que ça implique.</p>
<h2>Que faire ?</h2>
<p>Comme d&#8217;hab, on est bien emmerdés par les constructeurs qui n&#8217;en font qu&#8217;à leur tête et on doit subir. Alors en attendant de monter votre propre bureau d&#8217;étude avec des fonds obtenus illégalement, la seule solution est de &#8220;hacker&#8221; le biniou, à savoir de le bricoler pour obtenir un comportement qui se rapproche de ce qu&#8217;on aimerait avoir (et qu&#8217;on avait d&#8217;ailleurs avant <strong>et ça fonctionnait très bien</strong>).</p>
<h2>Exemple : Acer Travelomate B113</h2>
<p>Voilà ce qu&#8217;on veut obtenir :</p>
<p><a href="media/92062319.schma_01.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/schéma_01.jpg"><img class="alignnone size-medium wp-image-2595 aligncenter" alt="schéma_01" src="media/027a6f3e.schma_01-300x242.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/schéma_01-300x242.jpg" width="300" height="242" /></a></p>
<p>Cette machine est plutôt correcte, 12 pouces, mais <strong>le trackpad est une horreur</strong>. Sous Linux, même en affinant les réglages logiciels, l&#8217;utilisation en est plus qu&#8217;horripilante, donnant envie comme disent les gens qui appellent les hotlines de &#8220;le jeter par la fenêtre&#8221;.</p>
<h2>Pimp my laptop</h2>
<p>Ce qu&#8217;il vous faut :</p>
<ul>
<li>du ruban adhésif type chatterton (du scotch de couleur quoi)</li>
<li>du papier aluminium</li>
<li>un cutter</li>
<li>un cerveau et des mains fonctionnels</li>
</ul>
<p>Positionnez une première bande de scotch sur la partie basse du trackpad, en dépassant largement sur le corps de l&#8217;ordinateur. Ensuite, découpez doucement le scotch à l&#8217;aide du cutter en suivant le creux entre le corps et le trackpad.<br />
Frottez doucement le scotch sur toute sa surface avec un doigt ou un ongle afin d&#8217;obtenir une adhérence maximale.</p>
<p>Découpez une bande de papier d&#8217;aluminium légèrement plus petite que la bande de scotch obtenue. La différence de surface servira à ce que la deuxième couche de scotch puisse accrocher sur la première.</p>
<p>MAIS, MAIS, MAIS : ces bâtards de constructeurs de merde, probablement pour faire des économies de bouts de ficelles, utilisent <strong>UN SEUL BOUTON POUR LES DEUX CLICS</strong>. Donc pour distinguer si on veut cliquer du gauche ou du droit, ils utilisent la détection tactile&#8230; C&#8217;est pas débile sérieusement ? Du coup, ça fout en l&#8217;air notre bidouille qui ne peut plus faire que des clics gauches (le système interprète par défaut un clic gauche si la zone tactile ne détecte rien). Dans le cul le clic droit. Mais bon c&#8217;est pas grave hein, le clic droit c&#8217;est un truc de geeks, de hackers ! Bon admettons qu&#8217;on veuille quand même cliquer du droit, alors il faut découper environ un tiers de notre papier alu pour pouvoir capter la présence de notre doigt quand on fait un clic droit.</p>
<p>On a donc les deux tiers gauches de notre premier scotch cachés par la feuille d&#8217;alu (moins la petite surface réservée autour pour l&#8217;adhérence du deuxième scotch.</p>
<p>Maintenant apposez une deuxième bande de scotch en utilisant la même méthode que pour la première.</p>
<p>Voilà, vous avez un truc qui fonctionne à peu près comme un touchpad &#8220;old school&#8221;, car <strong>le papier aluminium bloquera la détection du système tactile mais évidemment permettra le clic sur le bouton physique</strong>.</p>
<p><a href="media/48dbeae4.schma_02.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/schéma_02.jpg"><img class="alignnone size-medium wp-image-2602 aligncenter" alt="schéma_02" src="media/d6d230b3.schma_02-300x168.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/04/schéma_02-300x168.jpg" width="300" height="168" /></a></p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=2710
title: Leed v1.5 stable
uri: Leed-v1-5-stable
url: http://blog.idleman.fr/leed-v1-5/
content:
<p>Good news every one !</p>
<p>Leed, le petit agrégateur de RSS est devenu grand&#8230; et stable ! Puisque nous avons sorti la v1.5 stable (première stable du nom) ! Aujourd&#8217;hui notre petit concurrent à GReader, Netvibes &amp; Co dispose de nombreuses fonctions natives mais aussi de 18 plugins <span style="line-height: 1.714285714; font-size: 1rem;">disponibles sur le </span><a style="line-height: 1.714285714; font-size: 1rem;" href="https://github.com/ldleman/Leed-market" target="_blank">Leed market</a><span style="line-height: 1.714285714; font-size: 1rem;"> (oui on a choisi un nom &#8220;corporate&#8221; mais promis c&#8217;est tout gratuit :p)</span></p>
<p><span id="more-2710"></span></p>
<p>Voila la liste et l&#8217;utilité de ces plugins proposés par la communauté et/ou l&#8217;équipe leed :</p>
<ul>
<li><strong>cacheListFeed</strong> &#8211; cacher la liste des flux afin de lire les articles en plein écran.</li>
<li><strong>DeleteTheCache</strong> &#8211; suppression physique des fichiers mis en cache par <a href="http://dizplay.idleman.fr/projet-18" target="_blank">Leed</a></li>
<li><strong>favicon_IOS</strong> &#8211; ajoute une jolie icone sur IOS</li>
<li><strong>fleaditlater</strong> &#8211; ajoute un bouton permettant de marquer un événement comme &#8220;à lire plus tard&#8221;</li>
<li><strong>fleedicon</strong>_content &#8211; ajoute un favicon à gauche de chaque item lors de la lecture</li>
<li><strong>fleexed</strong> &#8211; repositionne les menus en position fixed</li>
<li><strong>instapaper</strong> &#8211; affiche les événements directement sur instapaper lors du clic sur le titre d&#8217;un événement</li>
<li><strong>leedBrowser</strong> &#8211; Lors du clic sur un lien d&#8217;événement, le site est ouvert dans un navigateur discret avec des boutons : marquer comme lu, favoriser&#8230;</li>
<li><strong>leedLogSync</strong> &#8211; Affichage du dernier fichier de Log généré par la tache planifiée de synchronisation</li>
<li><strong>leedUpdateSource</strong> &#8211; Leed toujours à jour.</li>
<li><strong>oneSync</strong> &#8211; ajoute un bouton à coté de chaque flux afin de synchroniser uniquement ce flux</li>
<li><strong>rssmaker</strong> &#8211; Créer un flux rss par dossier de flux. Permet de créer de nouveaux flux pour une consultation plus synthétique</li>
<li><strong>search</strong> &#8211; effectuer une recherche sur les articles de Leed. Ne perdez plus aucune information !</li>
<li><strong>shaarleed</strong> &#8211; partage un lien d&#8217;événements directement sur son script shaarli</li>
<li><strong>social</strong> &#8211; partage les articles avec son réseau social préféré (Facebook / Tweeter / Google+)</li>
<li><strong>squelette</strong> &#8211; plugin d&#8217;exemple pour les créateurs de nouveaux plugins Leed</li>
<li><strong>themeswitcher</strong> &#8211; changer de thème via la page de gestion</li>
<li><strong>z_cssLeedMaker</strong> &#8211; Ce plugin permet de construire son propre thème en ajoutant du css.</li>
</ul>
<p>Le moteur Template intégré permet également la personnalisation du thème de leed, aussi 5 thèmes vous sont proposés par la communauté<br />
ici : <a href="http://projet.idleman.fr/leed/?page=Th%C3%A8mes">http://projet.idleman.fr/leed/?page=Th%C3%A8mes</a> .</p>
<p>N&#8217;hésitez pas à nous envoyer vos thèmes et plugins vous aussi pour les partager avec la communauté <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<p>Un grand merci à ceux qui utilisent leed au quotidien, qui nous soutiennent ou qui nous envoient les propositions/remarques sur github <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> , et<br />
aux petits et aux grands qui relayent comme le Linux essentiel magazine, Znet, et <a href="http://standblog.org/blog/post/2013/03/14/En-vrac-du-jeudi" target="_blank">Tristan nitot</a> de mozilla ça file la larmichette<br />
tellement c&#8217;est beau <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </p>
<p>Et surtout une grosse papouille à notre équipe de dev bénévole de choc constituée de <strong>SbGodin</strong>, <strong>Cobalt74</strong> et <strong>Simounet</strong> sans lesquels le projet n&#8217;aurait pas avancé<br />
d&#8217;un pouce étant donné le peu de temps que me laisse ma thèse et mes autres projets.</p>
<p>Grosses features prévues dans la version 2:</p>
<ul>
<li>Mise en place du lazy loading qui va remplacer le système de pagination ( les nouveaux événements se chargeront au fur et à mesure du scroll comme sur Google image)</li>
<li>Déploiement progressif des articles en titre/ titre + description courte / article complet</li>
<li>Cookie d&#8217;identification (case &#8220;se souvenir de moi&#8221;)</li>
<li>Gestion multi utilisateurs ( j&#8217;ai craqué, alea jacta est)</li>
<li>Module Internationalisation (idem, la &#8216;<em>pression utilisateur m&#8217;a tue</em>r&#8217; (non non ce n&#8217;est pas une faute :p) )</li>
<li>Authentification par cookies</li>
<li>Sécurisation, optimisation et autres bidouilles <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
</ul>
<p>N&#8217;hésitez pas à venir tester leed et à nous faire vos retours <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<p><strong>Dernière version stable :</strong> <a href="https://github.com/ldleman/Leed/archive/master.zip">https://github.com/ldleman/Leed/archive/master.zip</a><br />
<strong>Dernière version en développement :</strong> <a href="https://github.com/ldleman/Leed/archive/dev.zip">https://github.com/ldleman/Leed/archive/dev.zip</a><br />
<strong>Dépôt GIT:</strong> <a href="https://github.com/ldleman/Leed.git">https://github.com/ldleman/Leed.git</a><br />
<strong>Déclarer un bug:</strong> <a href="https://github.com/ldleman/Leed/issues">https://github.com/ldleman/Leed/issues</a><br />
<strong> Rss des versions:</strong> <a href="https://github.com/ldleman/Leed/commits/master.atom">https://github.com/ldleman/Leed/commits/master.atom</a><br />
<strong>Dernière version archivée des plugins:</strong> <a href="https://github.com/Idleman/Leed-market/archive/master.zip">https://github.com/Idleman/Leed-market/archive/master.zip</a><br />
<strong>Page des Thèmes :</strong> <a href="http://projet.idleman.fr/leed/?page=Th%C3%A8mes">http://projet.idleman.fr/leed/?page=Th%C3%A8mes</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=2718
title: DropNews, un client de synchronisation pour dropcenter
uri: DropNews-un-client-de-synchronisation-pour-dropcenter
url: http://blog.idleman.fr/dropnews-un-client-de-synchronisation-pour-dropcenter/
content:
<p>Jusqu’ici dropnews était un petit client bureautique permettant d’être notifié lorsqu’un changement survenait sur le dropcenter.</p>
<p>Seulement voila j’avais bien envie d’en faire à terme un petit client type dropbox synchronisant de manière bilatérale les fichiers du serveur et ceux de mes pc.</p>
<p><span id="more-2718"></span></p>
<h5><span style="font-weight: normal;">Étant donné que le besoin devenait pressant et que je n’avais pas de temps pour dev quelque chose de correct je me suis tourné vers l’adaptation d’un binaire existant : “unisson”.</span></h5>
<p>Unisson fonctionne parfaitement mais n’est pas très utilisé du grand public car il fonctionne en ligne de commande et qu’il faut faire appel à cette commande manuellement pour synchroniser des dossiers.</p>
<p>J’ai donc adapté mon dropnews pour qu’il appelle périodiquement unisson.exe avec la commande qui vas bien, qu’il synchronise le résultat et qu’il fournisse des configs et une interface un peu plus user friendly.</p>
<p>De cette manière on arrive à un équivalent de dropbox, évidemment avec quelques options en moins (genre versioning inexistant) mais qui me satisfait pas mal pour mon utilisation perso à savoir faire des backups auto d’un dossier du le serveur et les synchroniser automatiquement d’un pc à l’autre.</p>
<p>La version actuelle ne fonctionne que sur Windows mais dropnews étant développé avec Qt et unisson proposant une version par Os il n’est pas difficile d’adapter ça à Linux voir Mac.</p>
<p>SI j’ai le temps un jour et SI ça intéresse suffisamment de monde, je m’emploierai à la version Linux (pour mac faut pas déconner, et puis je n&#8217;ai pas de mac pour tester de toute façon ^^, cela dis je partagerais les sources si les pro-mac veulent adapter ça pour le trognon d’pom).</p>
<h5><a name="_Qu_est_ce_que_DropNews_nbsp__"></a>Qu&#8217;est-ce que DropNews ?</h5>
<p>DropNews est un petit programme bureautique qui agit en complément de dropcenter et qui permet de synchroniser un dossier local de votre bureau avec votre dropcenter de manière régulière et sans intervention de votre part.</p>
<p>Le but de ce programme est d&#8217;agir comme une alternative libre aux services de cloud type dropbox.</p>
<p>&nbsp;</p>
<h6><a name="_Discr__tion"></a>Discrétion</h6>
<p>Le logiciel démarre avec l&#8217;ordinateur et reste en tâche de fond afin de ne pas vous gêner, seule une icône d&#8217;état est disponible dans la barre des tâches.</p>
<p><img alt="data/dropnews/dropnews1.png" src="media/2f6329cc.dropnews1.png" data-original-source="http://projet.idleman.fr/dropcenter/data/dropnews/dropnews1.png" /></p>
<p>&nbsp;</p>
<h6><a name="Notifications"></a>Notifications</h6>
<p>Vous pouvez être prévenu à chaque changement effectué dans votre dossier dropcenter, notez que vous pouvez utiliser les notifications système par défaut ou les notifications personnalisées de dropnews.</p>
<p><strong>Notification système</strong></p>
<p><img alt="data/dropnews/dropnews2.png" src="media/b7d45076.dropnews2.png" data-original-source="http://projet.idleman.fr/dropcenter/data/dropnews/dropnews2.png" /></p>
<p><strong>Notification personnalisée</strong></p>
<p><img alt="data/dropnews/dropnews3.png" src="media/c4134cb0.dropnews3.png" data-original-source="http://projet.idleman.fr/dropcenter/data/dropnews/dropnews3.png" /></p>
<h6></h6>
<h6><a name="Configuration"></a>Configuration</h6>
<p>Plusieurs options sont disponibles à travers le menu au clic droit sur l&#8217;icône d’état, vous pouvez accéder à votre dossier synchronisé, accéder directement à votre dropcenter en ligne ou ouvrir le panneau des configurations.</p>
<p><img alt="data/dropnews/dropnews4.png" src="media/74cdcbcc.dropnews4.png" data-original-source="http://projet.idleman.fr/dropcenter/data/dropnews/dropnews4.png" /></p>
<p>Celui-ci vous proposera un certain nombre de préférences ainsi que les configurations essentielles au bon fonctionnement de l&#8217;application.</p>
<h6></h6>
<h6><a name="Historique"></a>Historique</h6>
<p>Il vous est possible à tout moment de consulter la section &#8220;debug&#8221; qui contient l&#8217;historique de toutes les actions du programme, de cette manière vous serez plus à même de comprendre les réactions de celui-ci.</p>
<p><img alt="data/dropnews/dropnews5.png" src="media/d84ee68a.dropnews5.png" data-original-source="http://projet.idleman.fr/dropcenter/data/dropnews/dropnews5.png" /></p>
<p>Le logiciel est actuellement en Alpha test et n’évoluera pas beaucoup étant donné le peu de temps dont je dispose en ce moment, cependant il est fonctionnel (je l’utilise pour la synchro de ma thèse c’est vous dire ^^) donc si ça vous tente de l’essayer :</p>
<p>Vous pouvez  trouver l&#8217;exécutable sur <a href="http://projet.idleman.fr/dropcenter/data/dropnews/DropNews_setup.exe">http://projet.idleman.fr/dropcenter/data/dropnews/DropNews_setup.exe</a></p>
<p>L&#8217;installation est décrite ici : <a href="http://projet.idleman.fr/dropcenter/?page=Installation%20de%20DropNews">http://projet.idleman.fr/dropcenter/?page=Installation%20de%20DropNews</a></p>
<p><strong>NB :</strong> Il existe pas mal de client de ce genre, par exemple <a href="http://owncloud.org/">owncloud</a> desktop ou <a href="http://sparkleshare.org/">sparkleshare</a>, mais pour les avoir testé tous les deux je suis revenu sur ma solution (qui est plus bricolo mais qui curieusement semble plus stable sur le long terme) cela dit je vous conseille de faire le tour avant d’adopter l’un ou l’autre, ce n’est que sur une utilisation prolongée qu’on peut se faire une idée correcte.</p>


feed_id: http://blog.idleman.fr/?p=2725
title: Quelques petites astuces PHP
uri: Quelques-petites-astuces-PHP
url: http://blog.idleman.fr/quelques-petites-astuces-php/
content:
<p>Je me suis rendu compte l’autre jour qu’il y avait foule de petites techniques PHP que j’utilisais au quotidien pour me simplifier la vie et le code, et que la plupart ne m’avait jamais été apprise à l&#8217;école.</p>
<p><span id="more-2725"></span></p>
<p>Il ne s’agit pas forcement d’exclusivités, ni de meilleures façons de coder mais si vous pouvez en  trouver une ou deux utiles alors ce post n’aura pas servi à rien <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/9e742bf5.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/07/wlEmoticon-smile.png" /></p>
<p>N’hésitez pas à partager vos petites astuces dans les commentaires, je les placerai ici (si je les trouve justifiées évidemment)</p>
<p><strong>Saviez-vous que, pour lire les fichiers d’un répertoire, vous pouviez utiliser directement la fonction scandir au lieu de opendir+readdir ? Scandir permet de plus un tri alphabétique ascendant ou descendant</strong></p>
<p><em>ex : </em></p>
<p><pre class="crayon-plain-tag">var_dump(scandir('mon/repertoire/'));</pre></p>
<p><em>résultat :</em></p><pre class="crayon-plain-tag">Array
(
    [0] =&gt; .
    [1] =&gt; ..
    [2] =&gt; bar.php
    [3] =&gt; foo.txt
    [4] =&gt; somedir
)</pre><p>&nbsp;</p>
<hr />
<p><strong>Saviez-vous que vous pouviez récupérer le contenu d’un explode directement dans des variables avec la fonction list() ?</strong></p>
<p><em>ex : </em></p>
<p><pre class="crayon-plain-tag">list($age,$prenom,$pseudo) = explode('|',25|valentin|idleman');</pre></p>
<hr />
<p><strong>Saviez-vous que vous pouviez récupérer et sécuriser toutes vos variables POST et GET en une seule ligne dans un seul tableau de variables?</strong></p>
<p><em>ex :</em></p>
<p><pre class="crayon-plain-tag">$_ = array_map('htmlentities',array_merge($_POST,$_GET));</pre></p>
<hr />
<p><strong>Saviez-vous que vous pouviez utiliser la fonction file_get_contents au lieu de fopen+fread, fgets etc.. pour récupérer directement le contenu d’un fichier ? </strong></p>
<p><strong>nb : La fonction file() fait la même chose en vous retournant un tableau de lignes</strong></p>
<p><em>ex : </em></p>
<p><pre class="crayon-plain-tag">$donnees_fichiers = file_get_contents('fichier.ext');</pre></p>
<p>Ajout de <strong>Timo</strong> : La fonction <em>file_put_contents</em> permet quand à elle d&#8217;écrire simplement dans un fichier</p>
<p><pre class="crayon-plain-tag">file_put_contents('mon.fichier.txt','hello world');</pre></p>
<hr />
<p><strong>Saviez-vous que pour les conditions simples vous pouviez utiliser les conditions ternaires au lieu d’un if/else?</strong></p>
<p>ex:</p>
<p><pre class="crayon-plain-tag">$majeur = ($age&gt;=18?true:false);</pre></p>
<p>au lieu de</p><pre class="crayon-plain-tag">if($age&gt;=18){
    $majeur =true;
}else{
    $majeur =false;
}</pre><p>&nbsp;</p>
<p>Ajout de <strong>William P</strong> : vous pouvez également faire directement:</p><pre class="crayon-plain-tag">$majeur = $age &gt;= 18 ;</pre><p>&nbsp;</p>
<p>Ajout de <strong>Anon  </strong>il existe aussi l’opérateur Elvis</p>
<p><pre class="crayon-plain-tag">foo = foo ?: bar;</pre></p>
<p>Pourquoi Elvis ? =&gt; <a href="media/cc80ed74.hQlrp.png" data-original-source="http://i.stack.imgur.com/hQlrp.png" rel="nofollow">http://i.stack.imgur.com/hQlrp.png</a></p>
<p>Ajout de <strong>Walane</strong> : les parenthèses peuvent être placées uniquement sur la condition</p>
<p><pre class="crayon-plain-tag">($age &gt;= 18) ? true : false;</pre></p>
<p>&nbsp;</p>
<hr />
<p><strong>Saviez vous que vous pouviez créer des variables dynamiques avec la notation $$ ?</strong></p>
<p>ex :</p><pre class="crayon-plain-tag">$nomVariable = "idleman";
$$nomVariable = "is so lazy…";
echo $idleman
//résultat : "is so lazy…";</pre><p>&nbsp;</p>
<hr />
<p>Saviez vous que la fonction var_dump() était terriblement puissante avec le module xdebug activé?</p>
<hr />
<p><strong>Saviez vous que vous pouviez inclure automatiquement un fichier de classe simplement en l’instanciant ?</strong></p>
<p><em>ex :</em></p><pre class="crayon-plain-tag">function __autoload($class_name) {
    require_once $class_name . '.php';
}
$myUser = new User();</pre><p>&nbsp;</p>
<p>résultat : l’instruction require_once(‘User.php’); est implicitement incluse à votre code</p>
<hr />
<p><strong>Saviez-vous que vous pouviez faire appel à la méthode magique __call pour s’exécuter lorsqu’une fonction inconnue est située dans votre classe ?</strong></p>
<p><em>ex :</em></p><pre class="crayon-plain-tag">__call($method,$args){

    echo ‘j’ai le vague souvenir que ma méthode’.$method.’ s’est faite la malle…essaye encore (signé : ta classe)’;
}
fonction_bidon(‘coucou’);</pre><p>&nbsp;</p>
<hr />
<p><strong>Saviez-vous que vous pouviez utiliser la fonction glob() pour rechercher des types de chemins de fichier?</strong></p>
<p>ex :</p><pre class="crayon-plain-tag">foreach (glob("/*/*.txt") as $filename) {
echo "$filename \n";
}</pre><p>&nbsp;</p>
<p><em>résultat : affichera tous les fichiers textes situés 2 répertoires en aval du fichier PHP.</em></p>
<hr />
<p><strong>Saviez-vous que echo &#8216;hello world&#8217; bouffera moins de perf que echo &#8220;hello world&#8221; ?</strong></p>
<p><strong>En effet les &#8221; interprètent les variables contenues dans la chaine quand ‘ se contente d’afficher votre texte tel quel, ce qui économise quelques perfs.</strong></p>
<hr />
<p><strong>Saviez vous que vous pouviez écrire echo &#8216;hello&#8217;.'world&#8217; ou echo &#8216;hello&#8217;,'world&#8217; pour un même résultat?</strong></p>
<p>Ajout de<strong> Nasty Shade : </strong>utiliser la virgule apporte un gain de rapidité exécution</p>
<p>Ajout de<strong> Thierry</strong> : Il serait bon de préciser que cette syntaxe ne fonctionne que pour echo. Echo accepte un nombre infini de paramètres et elle les affiche tous dans l’ordre où ils sont passés. De plus, echo n’étant pas véritablement une fonction mais une structure de langage, les parenthèses sont optionnelles</p>
<hr />
<p><strong>Saviez vous que vous pouviez utiliser les fonctions gzinflate, gzdeflate pour compresser les données que vous envoyez ou stockez ?</strong></p>
<hr />
<p>Saviez vous que, dans les boucles “for” vous pouviez utiliser l’expression : i%2==0 pour les délimiteur et les alternances de couleurs?</p>
<p><em>Ex :</em></p><pre class="crayon-plain-tag">echo '&lt;table&gt;';
for($i=0;$i&lt;10;$i++){
    echo '&lt;tr style="background-color:'.($i%2==0?'lime':'blue').'"&gt;&lt;td&gt;Hello&lt;/td&gt;&lt;/tr&gt;'’;

}
echo '&lt;/table&gt;';</pre><p>&nbsp;</p>
<hr />
<p><strong>Saviez vous que la fonction empty($var) retournera FALSE si $var existe et est non-vide, et dont la valeur n&#8217;est pas zéro?</strong></p>
<p><pre class="crayon-plain-tag">if(empty($string))</pre></p>
<p><strong>peut donc être utilisé en lieu de place de </strong></p>
<p><pre class="crayon-plain-tag">if($string!='' &amp;&amp; $string!=null)</pre></p>
<p>&nbsp;</p>
<hr />
<p>Ajout de<strong> Elo : </strong>Vous pouvez automatiquement vous mailer toutes les erreurs de votre script en temps réel avec l&#8217;expression :</p><pre class="crayon-plain-tag">set_error_handler(‘gestionErreur’);
function gestionErreur( $errno, $errstr, $errfile, $errline, $errcontext)
{
   //Fonction mail ici
}</pre><p></p>
<hr />
<p>Ajout de<strong> Kevin : </strong>vous pouvez vous simplifier la vie en utilisant UNE seule instruction pour stocker du contenu sous forme compressée :<br />
<pre class="crayon-plain-tag">file_put_contents("compress.zlib://$filename", $content);</pre></p>
<p>Ensuite, pour lire ce fichier compressé, UNE instruction également :</p>
<p><pre class="crayon-plain-tag">$content = file_get_contents("compress.zlib://$filename");</pre></p>


feed_id: http://blog.idleman.fr/?p=2753
title: Raspberry PI ~ 21 : Yana, un nouveau cœur domotique
uri: Raspberry-PI-21-Yana-un-nouveau-coeur-domotique
url: http://blog.idleman.fr/raspberry-pi-21-yana-un-nouveau-cur-domotique/
content:
<p>Ce post est le vingt et unième d’une liste de tutoriels sur le raspberry PI,<a href="http://blog.idleman.fr/?page_id=2166"> cliquez ici</a> pour accéder au sommaire ! <img alt=":D" src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" /></p>
<p>Aujourd&#8217;hui pas d&#8217;électronique, seulement de la bidouille logicielle pour &#8220;proprifier&#8221; un peu notre domotique.</p>
<p>Pour faire court, j&#8217;ai travaillé sans relâche ces derniers jours (et novares aussi en parallèle sur Android) sur un nouveau système de gestion de notre domotique qui devrait plaire aux développeurs en tout genre ainsi qu’aux utilisateurs.</p>
<p><span id="more-2753"></span></p>
<p>Pour rappel, jusqu&#8217;ici nous utilisions deux &#8220;programmes&#8221;:</p>
<ol>
<li>l&#8217;interface web HCC (développée à l&#8217;arrache par votre serviteur himself un soir d&#8217;apéro) l&#8217;interface vocale YURI dérivée du programme <a href="http://encausse.wordpress.com/s-a-r-a-h/">SARAH</a> de JP Encausse.</li>
</ol>
<p>Seulement voila mon installation était un peu dégueulasse, je suis donc reparti d&#8217;une base saine : <strong>YANA</strong>.</p>
<p>YANA est un groupe de logiciels qui comprend :</p>
<p><strong>Yana Server:</strong></p>
<p><a href="media/2bb1347a.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/07/image1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/e3ef9675.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/07/image_thumb1.png" width="552" height="289" border="0" /></a></p>
<p>Cœur de l&#8217;application domotique qui comprend une interface web (une sorte de hcc 3.0)</p>
<p><strong>Yana for Windows:</strong></p>
<p><a href="media/50c01e0e.BNYlIALCAAEq122.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/07/BNYlIALCAAEq122.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="BNYlIALCAAEq122" alt="BNYlIALCAAEq122" src="media/4258679a.BNYlIALCAAEq122_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/07/BNYlIALCAAEq122_thumb.jpg" width="556" height="400" border="0" /></a></p>
<p>Remplaçante de YURI, que j&#8217;ai entièrement redéveloppé de manière à m&#8217;approprier un peu plus le code et pouvoir en faire ce que je souhaite</p>
<p><strong>Yana for Android:</strong> Similaire à YANA for Windows mais pour les androphones, en cours de développement par novares.</p>
<p>&nbsp;</p>
<p>Avant d&#8217;aller plus loin une petite démo vidéo:</p>
<p><iframe width="500" height="366" src="http://player.vimeo.com/video/70729782" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe></p>
<p><strong> Pourquoi avoir remplacé YURI?</strong></p>
<p>YURI, qui n&#8217;était autre que le logiciel <a href="http://encausse.wordpress.com/s-a-r-a-h/">SARAH</a> de JP Encausse fonctionnait très bien, j&#8217;insiste sur le fait que c&#8217;est un excellent programme qui fonctionne parfaitement bien, cependant ne l&#8217;ayant pas développé je n&#8217;étais pas en mesure de répondre aux questions des utilisateurs sur certains bugs ou encore d&#8217;ajouter des petites fonctionnalités manquantes pour adapter le programme à notre domotique.</p>
<p>Le fait de l&#8217;avoir redéveloppé m&#8217;a par ailleurs permis d&#8217;y ajouter quelques fonctionnalités :</p>
<ul>
<li>Une interface un peu plus graphique type &#8220;chat&#8221;</li>
<li>La configuration des commandes est simplifiée : on ne passe plus par des xml, tout est récupéré directement en json depuis yana-server (le json étant moins verbeux, plus léger et plus simple à parser via php que le xml)<br />
Il est possible de jouer des sons</li>
<li>Certains sont disponibles en natif tel que les rires, pleurs, et autres expressions sonores de yana</li>
<li>Yana peut parler, jouer un son ou exécuter une commande système (ex : ouvrir un programme)</li>
<li>Yana peut effectuer plusieurs actions successivement (système de queue)</li>
<li>Yana est capable de parler lorsqu&#8217;un évènement se produit sans qu&#8217;il y ai de commande vocale au préalable (ex : signaler une intrusion)</li>
<li>Yana peut se lancer automatiquement avec windows</li>
<li>Yana fonctionne en mode visible ou invisible</li>
<li>Yana peut utiliser plusieurs ton de paroles (encore en réglage, pas très convaincant pour le moment)</li>
</ul>
<p><span style="line-height: 24px;"> </span></p>
<p><strong style="line-height: 1.714285714; font-size: 1rem;">Qu&#8217;est-ce qu&#8217;on gagne avec ce nouveau système?</strong><span style="line-height: 1.714285714; font-size: 1rem;"> </span></p>
<p style="font-size: 1rem;">Le gros avantage de cette nouvelle combinaison yana-server  + yana Windows, c&#8217;est que yana-server est un CMS auquel ont peut ajouter <strong><span style="text-decoration: underline;">toute sorte de plugins</span></strong>, ceci permet de rajouter des commandes et des actions simplement en installant un plugin, les commandes seront alors répercutées sur le client yana qui les prendra en compte à son redémarrage.</p>
<p><span style="font-size: 1rem; line-height: 1.714285714;">Les développeurs sont bien entendu invités à proposer leurs plugins. Le second point important c&#8217;est l&#8217;ajout d&#8217;un écouteur </span>d’événements<span style="font-size: 1rem; line-height: 1.714285714;"> qui permet à yana de parler, jouer un son ou </span>exécuter<span style="font-size: 1rem; line-height: 1.714285714;"> une </span>commande<span style="font-size: 1rem; line-height: 1.714285714;"> toute seule sans qu&#8217;il n&#8217;y ait besoin de </span>l’interpeller<span style="font-size: 1rem; line-height: 1.714285714;">.</span></p>
<p><span style="font-size: 1rem; line-height: 1.714285714;">Ceci permet l&#8217;écoute </span>d’événements<span style="font-size: 1rem; line-height: 1.714285714;"> autres qu&#8217;un ordre vocal comme un </span>événement<span style="font-size: 1rem; line-height: 1.714285714;"> déclenché par l&#8217;heure ou la date (&#8220;</span><em style="line-height: 1.714285714; font-size: 1rem;">C&#8217;est l&#8217;anniversaire de votre mère</em><span style="font-size: 1rem; line-height: 1.714285714;">&#8220;) ou encore un </span>événement<span style="font-size: 1rem; line-height: 1.714285714;"> déclenché par une porte ouverte (&#8220;</span><em style="line-height: 1.714285714; font-size: 1rem;">Intrusion dans le salon, alerte</em><span style="line-height: 1.714285714; font-size: 1rem;">!&#8221;) etc&#8230; etc..</span></p>
<p><strong style="line-height: 1.714285714; font-size: 1rem;">Comment télécharger tout ça</strong><span style="line-height: 1.714285714; font-size: 1rem;">?</span></p>
<p style="font-size: 1rem;">Tout est sur github, je vous conseille de télécharger via git plutôt que via l&#8217;archive, ça vous permettra de mettre à jour plus simplement.</p>
<p style="font-size: 1rem;">Notez que vous devez obligatoirement installer yana server sur votre raspberry PI pour faire fonctionner les clients vocaux.</p>
<p style="font-size: 1rem;"><strong>Dépôts Github :</strong></p>
<ul>
<li>Yana Server (Interface web + Coeur domotique) : <a href="https://github.com/ldleman/yana-server">https://github.com/ldleman/yana-server</a></li>
<li>Yana for Windows (Interface vocale pour windows) : <a href="https://github.com/ldleman/yana-windows">https://github.com/ldleman/yana-windows</a></li>
<li>Yana for android (Interface vocale pour android) : <a href="https://github.com/Etsuni/YANA">https://github.com/Etsuni/YANA</a> petite vidéo de présentation de novares sur l&#8217;appli android :<iframe width="420" height="315" src="//www.youtube.com/embed/_pSoPsJqGQI" frameborder="0" allowfullscreen=""></iframe></li>
<li>Merci à novares qui travaille actuellement pour son interface vocale android et qui à fait la proposition de skin graphique actuellement implantée</li>
</ul>
<p><span style="line-height: 1.714285714; font-size: 1rem;">.</span><strong style="line-height: 1.714285714; font-size: 1rem;">Comment installer et  utiliser tout ça</strong><strong style="line-height: 1.714285714; font-size: 1rem;">?</strong></p>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Pour chaque dépôt, suivez les instructions du fichier README.md associé</span></p>
<p>Notez bien que tous les prochains tutos seront basés sur ce nouveau système, et que les anciens seront également convertis petit à petit quand j&#8217;aurais deux minutes (vivement la retraite).</p>
<p>Bien que YURI (qui découle de SARAH) soit un excellent programme je ne maintiendrais plus aucune sorte de support sur celui ci (n&#8217;ayant pas la paternité et les connaissances de son code suffisantes pour cela).</p>
<p>Pour ceux qui souhaiteraient continuer à l&#8217;utiliser ,je vous invite à vous adresser directement à son auteur, JP Encausse, aussi sympa que compétent <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<p>N&#8217;hésitez pas à poser vos questions dans les commentaires ou sur le <a href="http://forum.idleman.fr">fofo</a>.</p>


feed_id: http://blog.idleman.fr/?p=2814
title: Le bordel de l’info #27
uri: 2013-08-08-Le-bordel-de-l-info-26
url: http://blog.idleman.fr/le-bordel-de-linfo-26-2/
content:
<p>Salut bande de pili-pili faisandés, vous en avez d’la chance !! A l’heure de la revanche des <a href="http://www.gizmodo.fr/2013/07/29/pistolets-chaussures-talons.html" target="_blank">talons hauts</a> (tattaaa!!), à l’heure où les machines à café font <a href="http://www.gizmodo.fr/2013/07/29/machine-cafe.html" target="_blank">preuve de compassion</a>, bref à l’heure <a href="http://www.gizmodo.fr/2013/07/29/inde-drone-jupiter-venus.html" target="_blank">du WTF total</a>, vous êtes peinards dans votre garage souterrain, les pieds dans votre inondation, cernés par les étrons de votre pompe à relevage sous dimensionnée (je deviens limite lyrique), à vous savourer un 27ème morceau du bordel de l’info !</p>
<p><span id="more-2814"></span></p>
<p>Diantre! Cela fait une éternité que je n’ai divagué dans cette section ! Du coup : du neuf et du moins neuf pour cette 27em édition (mais que du pur bordel je vous le garantis):</p>
<ul>
<li><a href="http://www.warriordudimanche.net/article178/feed2array-obtenir-un-flux-rss-atom-sous-forme-de-tableau" target="_blank">Deux</a> petites <a href="http://www.warriordudimanche.net/article179/array2feed-produire-un-flux-valide-a-partir-d-un-tableau" target="_blank">fonctions</a> PHP proposées par le warrior du dimanche pour parser un flux rss en tableau (et réciproquement), merci bronco <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
<li>Une <a href="http://git.aaronlumsden.com/tidytime.js/#demo" target="_blank">librairie</a> pour afficher l’heure de façon amicale…ça sert à rien&#8230; ça devient grave la librariatitude la…</li>
<li>Un <a href="http://www.casebox.org/" target="_blank">CMS open source permettant</a> de gérer vos fichiers, vos tâches et vos enregistrements, pas encore testé mais ça a l’air relativement propre <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
<li>Voila un <a href="http://typewonder.com" target="_blank">site web qui permet</a> de visualiser un autre site web avec la police que vous souhaitez… à quoi ça sert ? Hé bien… c’est simple..heu…hum *Se jette dans la cage d’ascenseur*</li>
<li>Anchor CMS est un <a href="http://anchorcms.com/" target="_blank">blog minimaliste</a> open source, mais minimaliste sans avoir une GUI qui donne envie de vomir, j’ai cherché ça très longtemps !! Malheureusement après test on sent vite fait que ce n’est pas très fini… à suivre…</li>
<li>Un <a href="http://www.memepasmal.ch/2013/07/11/soldat-minou/" target="_blank">chat vient d’être nommé</a> brigadier de la caserne qu’il squatte depuis près de 10 ans… les soins et l’entretient du chat militaire seront maintenant pris en charge par le gouvernement suisse… *Eeettt la palme de la connerie est décernée à …*</li>
<li>Ya pas a dire <a href="http://www.blog-nouvelles-technologies.fr/archives/33084/voici-une-imprimante-3d-realisee-quasiment-entierement-en-lego/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+design-folio+%28Web%2C+Nouvelles+technologies%2C+Mobile%2C+D%C3%A9veloppement+%E2%80%A6%29" target="_blank">c’est formidable les lego</a>, dommage que ça soit devenu aussi cher…</li>
<li><a href="http://www.zamzar.com/" target="_blank">Zamzar est un service</a> en ligne qui vous permet de convertir n’importe quoi en… n’importe quoi <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> , c’est vraiment bluffant le nombre de formats vidéo, audio, images archives etc… proposés, un service utile à garder dans ses mainfavs m’est avis ! (Dans le même genre en un peu moins moche : <a href="https://cloudconvert.org/" target="_blank">CloudConvert</a> )</li>
<li>Votre client FTP vous gonfle? Vous ne l’avez jamais sous la main ? <a href="http://www.monstaftp.com/" target="_blank">Essayez Monsta FTP</a>, un client ftp online open source.</li>
<li>Un type qui construit <a href="http://www.raspberrypi.org/archives/4358" target="_blank">un micro onde</a> à base de raspberry PI… et moi qui pensait avoir de l’imagination T_T</li>
<li>Marre de votre corps tout mou ? Faites <a href="http://korben.info/greffe-tete-corps.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+KorbensBlog-UpgradeYourMind+%28Korben%27s+Blog+-+Upgrade+Your+Mind%29" target="_blank">greffer votre tête</a> ! (ouai ben qui s’approche pas de moi avec son scalpel l’aut’ maboul !!)</li>
<li>Hé hé hé, le robot le <a href="http://www.semageek.com/diy-une-machine-lala-plus-inutile-du-monde-vraiment-speciale/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+semageek+%28www.semageek.com%29" target="_blank">plus inutile du monde</a> évolue de plus en plus, je suis admiratif devant tant d’ingéniosité au service du grand n’importe quoi…</li>
<li><a href="http://www.trackingjs.com/" target="_blank">Tracking.js</a> est une petite librairie Javascript qui utilise votre webcam pour faire du tracking de couleurs, c’est assez bien foutu et vous pourriez presque regretter l’achat de votre kinect/leapmotion ^^</li>
<li>D’ailleurs en parlant de ça, un concept vraiment intéressant dans le même filon : <a href="https://www.thalmic.com/myo/" target="_blank">myo</a> de la société Thalmic est un bracelet qui “écoute” les impulsions musculaire de votre bras pour en faire une “manette” sans fil. L’avantage par rapport à la kinect/leapmotion et autres ? Pas besoin de placer un capteur dans la pièce, une meilleure réactivité/fiabilité (car aucun besoin d’interpréter un geste, les commandes sont récupérées encore plus en amont), vous pouvez vous en servir d’une pièce à l’autre, c’est visiblement sans fil et peu encombrant, et ça coute dans les 110€, l’inconvénient ? C’est disponible uniquement en pré commande pour le moment, cela dit si la vidéo n’est pas complètement cheatée ça m’a l’air d’être une tuerie <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> </li>
<li>Quelques petits snippets pour jquery de la part <a href="http://www.catswhocode.com/blog/useful-jquery-code-snippets" target="_blank">du chat qui code</a>, je l’aime bien moi ce type !!</li>
<li><a href="http://geekpauvre.com/fences-le-service-dordre-de-vos-icones-de-bureau/" target="_blank">Fence</a> est un petit service ultra pratique (mais malheureusement payant) pour grouper vos icônes et organiser votre bureau, je sais il en existe des tas d’applications comme ça mais sur celle ci ils ont poussé loin l’ergonomie, c’est vraiment instinctif et on en devient vite accro, je vous recommande un petit test.</li>
<li>C’est officiel : <strong>MA THESE EST ENFIN TERMINEE !!</strong> <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' />  Adieu insomnies, Word bogué et PowerPoint à l’arrache ! Bonjour apéros, nuit de geekages intense et projets farfelus !! Yé chuis liiibbbreeeuhh ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /><br />
Je vais essayer de profiter de mon temps libre pour me consacrer pleinement à mes trois bébés : leed, dropcenter et yana durant les mois qui viennent, j’aimerais sortir une version finale de leed qui gère la patate, exterminer les bugs restants de la partie web de dropcenter (et pourquoi pas créer un vrai client de synchro multi OS à base de git) et développer un peu la tite yana avec tout un tas de plugins/tutos(porte domotique in progress).</li>
</ul>
<p>&nbsp;</p>
<p>C’est tout pour ce jeudi soir, faudrait pas que je me couche trop tard après j’ai la tête dans le cul et je grille des raspberry pi (ah oui : j’ai grillé mon raspberry PI T_T rest in peace brave framboise, franchement elle l’a pas volée son repos éternel celle la ^^, mais bon du coup ça risque de ralentir un peu les tutos le temps que j’économise mes 30€ pour m’en racheter un (c’est la crise mon pov monsieur !! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /> )</p>


feed_id: http://blog.idleman.fr/?p=2771
title: [Billet invité] Créer un nas avec le Raspberry Pi
uri: Billet-invité-Créer-un-nas-avec-le-Raspberry-Pi
url: http://blog.idleman.fr/billet-invite-creer-un-nas-avec-le-raspberry-pi/
content:
<p>Article rédigé par le lecteur Geoffrey ENJOLRAS</p>
<p>Salut à tous,</p>
<p>Autant être franc, je suis loin d&#8217;être un fin connaisseur en informatique (ah la la mon seul défaut&#8230;). Mais je pense aux noobs de mon genre qui seront ravis d&#8217;éviter des journées de recherches pour créer leur propre NAS, voire pour les plus braves et aventureux : leur propre SEEDBOX <span style="text-decoration: underline;"><strong><em>sécurisée</em></strong></span>!</p>
<p><span id="more-2771"></span> Les deux tutos qui vont suivre sont le fruit de nombreuses recherches sur le net, <a href="media/a1596e00.thumbs-aloft.gif" data-original-source="http://www.reactiongifs.com/wp-content/uploads/2013/03/thumbs-aloft.gif" target="_blank">fructueuses</a> ou <a href="media/660b5b56.mad-at-theinternet.gif" data-original-source="http://www.reactiongifs.com/wp-content/uploads/2013/06/mad-at-theinternet.gif" target="_blank">pas</a>. Et donc d&#8217;un pompage intensif de plusieurs sites que je citerai bien évidemment à la fin de l&#8217;article. Ce tuto ressemble un peu au <a href="http://blog.idleman.fr/raspberry-pi-19-optimisation-trucs-astuces/" target="_blank">tuto 19</a> qui permet de faire une SeedBox. Cependant il n&#8217;est pas très explicite, certains points sont obscurs voire bizarroïdes, puis certains sont faits d&#8217;une manière assez compliquée pour pas grand chose!</p>
<h1 style="text-align: center;"><strong>Bon c&#8217;est bien, tu nous as vendu ton tuto, mais concrètement ça sert à quoi ton truc?<br />
</strong></h1>
<p>En voilà une question qu&#8217;elle est bonne!<br />
Pour les incultes comme moi, un NAS (Network Attached Storage) est une sorte de gros disque dur connecté à votre réseau. Il est donc accessible à partir de n&#8217;importe quel ordinateur connecté à votre box (par wifi/Ethernet). En gros, tous les ordis de la maison ont accès aux musiques, films, photos, sans avoir besoin de balader un disque dur de l&#8217;un à l&#8217;autre. Même votre Mediacenter pour regarder directement vos films sur la télé!<br />
Petite image rigolote trouvée sur le net valant mieux qu&#8217;un grand discours :</p>
<div class="crayon-line" id="crayon-521121ede2390983138437-1"><span class="crayon-e"> </span></div>
<p><a href="media/1b22142e.network-attached-storage-chart.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/network-attached-storage-chart.jpg"><img class="aligncenter  wp-image-2958" alt="network-attached-storage-chart" src="media/1b22142e.network-attached-storage-chart.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/network-attached-storage-chart.jpg" width="531" height="338" /></a><br />
Faire ça avec une rasp, déjà c&#8217;est cool! Mais surtout c&#8217;est pas cher (prix de la rasp et des disques durs) et surtout très peu gourmand en énergie! Faut penser que le NAS reste allumé jour et nuit, la faible consommation de la Rasp est donc un atout pour notre portefeuille (surtout si on ne bosse pas chez EDF&#8230;). Pour faire plus concret, rien qu&#8217;en électricité, vous pouvez économiser jusqu&#8217;à 150€/an comparé à un vrai NAS.</p>
<h1 style="text-align: center;"><strong>Bon allez, tu nous soûles, il nous faut quoi pour faire ton NAS?<br />
</strong></h1>
<p>Pour cela, il vous faut passer par la case &#8220;pognon&#8221; et vous procurer:</p>
<ul>
<li style="text-align: left;">Une Raspberry Pi + SD  (Class 10 de préférence) avec la dernière version de Wheezy<br />
Une SD de 2 Go passe pour le NAS mais on est limite. Je vous conseille 4 Go si vous envisagez de suivre le prochain tuto pour en faire une SEEDBOX. Voire même, pour être ultra safe : 8 Go (car j&#8217;envisage d&#8217;optimiser cette SEEDBOX). J&#8217;ai acheté <a href="http://www.amazon.fr/Kingston-SD10G2-Carte-m%C3%A9moire-SD/dp/B004TS1IFU/ref=sr_1_6?ie=UTF8&amp;qid=1376858257&amp;sr=8-6&amp;keywords=sd+classe+10+kingston" target="_blank">celle là</a> dans un magasin LDLC à Lyon et elle fait très bien l&#8217;affaire et nous laisse une bonne marge d&#8217;applications à installer.</li>
<li>Une alimentation de 5V 2,1A (Il va vous falloir la bidouiller un peu, regardez un peu plus loin)</li>
<li>Deux disques durs de 1To<br />
J&#8217;ai pris<a href="http://www.amazon.com/dp/B00829THO6/?tag=hotoge-20" target="_blank"> ceux-là</a> ils sont rapides, silencieux, petits&#8230; Parfait pour ce qu&#8217;on veut faire!</li>
<li>Un câble Ethernet</li>
<li>Une box</li>
<li>Un PC pour pouvoir accéder à distance à notre NAS</li>
</ul>
<p style="text-align: center;">
<p style="text-align: center;"><a href="media/ee5cd709.montage.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/montage.jpg"><img class="aligncenter  wp-image-2943" alt="montage" src="media/ee5cd709.montage.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/montage.jpg" width="755" height="498" /></a></p>
<p> Conseils: Les deux disques durs sont alimentés par un seul câble USB chacun pour se dispenser du HUB, de câbles d&#8217;alimentation en plus etc &#8230; Bref de tout <a href="media/20898236.NasDerriereFauteuil.jpg" data-original-source="https://dl.dropboxusercontent.com/u/17434243/Idleblog/NasDerriereFauteuil.jpg" target="_blank">un merdier inutile derrière mon fauteuil</a> <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /><br />
Ils sont formatés en EXT3 car c&#8217;est avec ce format que j&#8217;ai eu les meilleures vitesses en lecture/écriture avec la rasp.<br />
Mon alimentation est atypique. Elle passe par les PINS 5V et MASSE du GPIO. Je vous expliquerai plus bas pourquoi. Elle n&#8217;est pas encore nécessaire pour la suite du tuto mais seulement pour la partie Sauvegarde journalière. <strong>Surtout, ne le faites pas seul avant que je vous l&#8217;explique ou vous risqueriez de cramer votre Rasp!!!!</strong></p>
<h1 style="text-align: center;"><strong>T&#8217;expliques comment on met en place les dossiers et les disques s&#8217;te plaît ?</strong></h1>
<p>Branchez vos disques à la rasp puis mettez-la sous tension. Connectez-vous y avec Putty ou par console (vous pouvez suivre les astuces du <a href="http://blog.idleman.fr/raspberry-pi-19-optimisation-trucs-astuces/" target="_blank">tuto 19</a> pour vous aider), pour ma part avec Ubuntu:</p><pre class="crayon-plain-tag">ssh pi@192.168.1.2</pre><p>&nbsp;</p>
<p>Avant toute chose, la petite mise à jour qui va bien et qui évitera pas mal de soucis: (Si c&#8217;est la première que vous faites, allez prendre un petit café pendant 5-10 min)</p><pre class="crayon-plain-tag">sudo apt-get update &amp;&amp; sudo apt-get upgrade</pre><p><a href="media/1cf97bbd.Screenshot-from-2013-08-09-162515.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-162515.png"><img class="size-medium wp-image-2897 aligncenter" alt="ssh et update" src="media/50ea30dc.Screenshot-from-2013-08-09-162515-300x198.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-162515-300x198.png" width="300" height="198" /></a></p>
<p>Nous allons créer les dossiers où nous allons monter nos disques durs:</p><pre class="crayon-plain-tag">sudo mkdir /media/USBHDD1
sudo mkdir /media/USBHDD2</pre><p>&nbsp;</p>
<p>Pour monter nos disques, il faut d&#8217;abord connaître leur localisation, pour cela:</p><pre class="crayon-plain-tag">sudo fdisk -l</pre><p></p>
<p style="text-align: center;"><a href="media/3e49bebe.Screenshot-from-2013-08-09-003348.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-003348.png"><img class="alignnone size-medium wp-image-2876" alt="Localisation DDE" src="media/5671f185.Screenshot-from-2013-08-09-003348-300x198.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-003348-300x198.png" width="300" height="198" /></a></p>
<p>Maintenant que l&#8217;on sait où ils sont, on les monte dans nos dossiers. Le disque 1 dans le dossier USBHDD1 et le 2 dans USBHDD2:</p><pre class="crayon-plain-tag">sudo mount -t auto /dev/sda1 /media/USBHDD1
sudo mount -t auto /dev/sdb1 /media/USBHDD2</pre><p>&nbsp;</p>
<p>Et tant qu&#8217;on y est, on va créer un montage automatique au démarrage de la Rasp!<br />
Comme ça, les disques seront montés dans les bons dossiers dès la mise sous tension. D&#8217;abord:</p><pre class="crayon-plain-tag">sudo nano /etc/fstab</pre><p>Puis on ajoute les lignes suivantes:</p><pre class="crayon-plain-tag">/dev/sda1 /media/USBHDD1 auto noatime 0 0
/dev/sdb1 /media/USBHDD2 auto noatime 0 0</pre><p>Pour sauvegarder le fichier &#8220;Ctrl + O&#8221;, et pour le quitter &#8220;Ctrl + X&#8221;.</p>
<blockquote><p><strong>Bon alors jusque-là, si j&#8217;ai tout compris, dès qu&#8217;on branche la rasp, ce qu&#8217;on veut mettre dans le premier disque dur se trouve dans USBHDD1 et ce qu&#8217;on veut mettre sur l&#8217;autre c&#8217;est dans USBHDD2</strong>.</p>
<p>C&#8217;est tout à fait ça. USBHDD1 servira aux données, et USBHDD2 servira à sauvegarder ces données tous les jours (on est jamais à l’abri d&#8217;<a title="Une panne sur votre DDE?" href="http://www.doctissimo.fr/html/dossiers/troubles_erectiles/probleme_erection.htm" target="_blank"><strong>une panne</strong></a>!).<a href="media/65732a84.Screenshot-from-2013-08-09-162906.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-162906.png"><img class="alignnone size-medium wp-image-2900 aligncenter" alt="Deux dossiers de montage" src="media/2401b425.Screenshot-from-2013-08-09-162906-300x198.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-162906-300x198.png" width="300" height="198" /></a></p></blockquote>
<p>&nbsp;</p>
<h1 style="text-align: center;"><strong>Et comment on fait pour voir tout ça sur le réseau?</strong></h1>
<p>C&#8217;était la partie facile, nous allons à présent installer SAMBA qui va nous permettre de créer facilement un réseau à la Windows! Nos disques en EXT3 ne poseront donc aucune difficulté pour la lecture et l&#8217;écriture.</p><pre class="crayon-plain-tag">sudo apt-get install samba samba-common-bin</pre><p>Je vous propose pour ce tuto de faire 3 type de dossiers pour notre NAS. Son nom de guerre pour le réseau sera &#8220;SERVEURIX2000&#8243;. Il va contenir:</p>
<ul>
<li><span style="text-decoration: underline;">un dossier &#8220;Public&#8221;</span> : accessible par tous ceux qui sont connectés à votre box en lecture et en écriture. Pour s&#8217;envoyer des données d&#8217;ordi à ordi par exemple.</li>
<li><span style="text-decoration: underline;">un dossier &#8220;Music&#8221;</span> : accessible seulement en lecture. Tout le monde pourra écouter la musique dans ce dossier, mais pas la modifier, la supprimer etc &#8230; Ça permet de protéger nos chansons.</li>
<li><span style="text-decoration: underline;">un dossier &#8220;Private&#8221;</span>: Il ne sera pas visible sur le réseau et demandera un login et un mdp pour y accéder. Un endroit parfait pour stocker nos photos de famille, nos documents top secret, <del>nos films X&#8230;</del></li>
</ul>
<p><del> </del>Bien-sur, vous pouvez en créer autant que vous voulez, Movies, Series etc &#8230;</p><pre class="crayon-plain-tag">sudo mkdir /media/USBHDD1/SERVEURIX2000
sudo mkdir /media/USBHDD1/SERVEURIX2000/Public
sudo mkdir /media/USBHDD1/SERVEURIX2000/Music
sudo mkdir /media/USBHDD1/SERVEURIX2000/Private
sudo chmod 777 -R /media/USBHDD1
sudo chmod 777 -R /media/USBHDD2</pre><p><a href="media/3e7aa312.Screenshot-from-2013-08-09-165129.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-165129.png"><img class="size-medium wp-image-2903 aligncenter" alt="Screenshot from 2013-08-09 16:51:29" src="media/47756b2a.Screenshot-from-2013-08-09-165129-300x198.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-165129-300x198.png" width="300" height="198" /></a></p>
<p>Maintenant, pour que ces dossier soient visibles sur le réseau, nous allons modifier le fichier de configuration de SAMBA:</p><pre class="crayon-plain-tag">sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old
sudo nano /etc/samba/smb.conf</pre><p>&nbsp;</p>
<p>Avec les commandes précédentes, vous avez fait une copie du fichier d&#8217;origine (au cas où) et vous en écrivez un nouveau. Voilà le fichier que j&#8217;utilise:</p><pre class="crayon-plain-tag">[global]
   workgroup = WORKGROUP
   server string = %h server
   netbios name = SERVEURIX2000
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true 
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes

[Public]
   path =/media/USBHDD1/SERVEURIX2000/Public
   read only = no
   locking = no
   guest ok = yes
   force user = pi

[Music]
   path =/media/USBHDD1/SERVEURIX2000/Music
   read only = yes
   locking = no
   guest ok = yes
   force user = pi

[Private]
   browseable = no
   path = /media/USBHDD1/SERVEURIX2000/Private
   writable = yes
   username = JeanLouis
   only user = yes
   create mode = 0600
   directory mask = 0700</pre><p></p>
<p style="text-align: left;">Vous pouvez sauvegarder et fermer le fichier. Si vous voulez ajouter d&#8217;autres dossiers à partager, ce sera celui-ci. Maintenant, nous allons créer un compte SAMBA qui va nous permettre d&#8217;avoir un login et un mdp pour le dossier Private. Tout d&#8217;abord, on crée un compte utilisateur sur Wheezy:</p>
<p></p><pre class="crayon-plain-tag">sudo useradd JeanLouis -m -G users
sudo passwd JeanLouis</pre><p>Puis on l&#8217;utilise pour SAMBA:</p><pre class="crayon-plain-tag">sudo smbpasswd -a JeanLouis</pre><p>Ensuite on donne à cet user l&#8217;accès au dossier Private:</p><pre class="crayon-plain-tag">sudo chown JeanLouis:JeanLouis /media/USBHDD1/SERVEURIX2000/Private/</pre><p>Enfin, on redémarre tout ce boxon:</p><pre class="crayon-plain-tag">sudo /etc/init.d/samba restart</pre><p></p>
<p style="text-align: left;">Et voilà, vous avez maintenant accès à vos dossiers sur les disques durs depuis le réseau:<br />
(Il vous faudra sûrement redémarrer l&#8217;ordi avec lequel vous faites vos tests pour pouvoir voir votre NAS sur le réseau)<br />
<a href="media/1b906b8b.SERVEURIX2000.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/SERVEURIX2000.png"><img class="aligncenter  wp-image-3042" alt="SERVEURIX2000" src="media/1b906b8b.SERVEURIX2000.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/SERVEURIX2000.png" width="717" height="403" /></a></p>
<blockquote>
<p style="text-align: center;">
<p style="text-align: center;">
<p style="text-align: center;"><strong>Mais, le dossier NSFW est dans Private! Pourtant ce dossier est invisible&#8230; Comment t&#8217;as fait pour l&#8217;ouvrir?</strong></p>
</blockquote>
<p>C&#8217;est tout l’intérêt! En plus d&#8217;être protégé, il n&#8217;est en plus pas visible&#8230; Pour s&#8217;y connecter, ouvrez par exemple le dossier Public. Dans la barre du path, changez &#8220;Public&#8221; par &#8220;Private&#8221;. Et là, une fenêtre s&#8217;ouvrira en vous demandant le login et le mdp que nous avons enregistré dans samba:</p>
<p style="text-align: center;"><a href="media/3e0ebdff.SERVEURIX2000Private.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/SERVEURIX2000Private.png"><img class="aligncenter  wp-image-3047" alt="SERVEURIX2000Private" src="media/3e0ebdff.SERVEURIX2000Private.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/SERVEURIX2000Private.png" width="756" height="426" /></a></p>
<p style="text-align: left;">Merci à <a href="http://forum.idleman.fr/profile/57/khira" target="_blank">khira</a> et son pote du boulot <a href="http://forum.idleman.fr/profile/171/soulfire82" target="_blank">soulfire82</a> pour leur aide et leur lumière <del>enfin surtout d&#8217;en avoir chié avec moi</del></p>
<p style="text-align: center;">
<h1 style="text-align: center;"><strong>Tu nous avais pas parlé d&#8217;une sorte de sauvegarde journalière?<br />
</strong></h1>
<p>On va utiliser rsync qui est normalement déjà installé, mais dans le doute:</p><pre class="crayon-plain-tag">sudo apt-get install rsync</pre><p>Il suffit à présent de modifier un petit fichier qui va nous permettre de faire une sauvegarde journalière à 3h30 précises:</p><pre class="crayon-plain-tag">crontab -e</pre><p>&nbsp;</p>
<p>Puis à la fin du fichier:</p><pre class="crayon-plain-tag">30 03 * * * rsync -av --delete /media/USBHDD1/SERVEURIX2000 /media/USBHDD2</pre><p></p>
<p style="text-align: center;"><a href="media/a7c2c5b2.Screenshot-from-2013-08-09-171820.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-171820.png"><img class="alignnone size-medium wp-image-2906" alt="Sauvegarde Journalière" src="media/8778849b.Screenshot-from-2013-08-09-171820-300x198.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/Screenshot-from-2013-08-09-171820-300x198.png" width="300" height="198" /></a></p>
<p style="text-align: center;">
<blockquote>
<p style="text-align: left;">
<p style="text-align: left;"><strong>Donc là, à 3h30, le dossier SERVEURIX2000 qui est sur USBHDD1 va être sauvegardé avec tout ce qu&#8217;il y a dedans sur USBHDD2. Mais moi, ton truc ça me va pas, si je veux le faire tous les 10 du mois à 13h48?</strong></p>
<p><strong> </strong><strong></strong>Qu&#8217;à cela ne tienne! Il vous suffit de configurer le fichier en fonction de ce tableau:</p></blockquote>
<p></p><pre class="crayon-plain-tag">*     *     *     *     *  commande temporelle (* = indifférent)
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- jour de la semaine (0 - 6) (Lundi=0)
|     |     |     +------- mois (1 - 12)
|     |     +--------- jour du mois (1 - 31)
|     +----------- heure (0 - 23)
+------------- minute (0 - 59)</pre><p></p>
<p style="text-align: left;"> Donc tous les 10 du mois à 13h48, ça sera:</p>
<p></p><pre class="crayon-plain-tag">48 13 10 * * -av --delete /media/USBHDD1/SERVEURIX2000 /media/USBHDD2</pre><p>&nbsp;</p>
<p>&nbsp;</p>
<h1 style="text-align: center;">Attends, attends &#8230; Tu nous avais pas dit qu&#8217;ici, il fallait trafiquer l&#8217;alim?</h1>
<p>Bien vu l&#8217;aveugle. <del>dit le muet au sourd, &#8220;le chauve était de mèche!&#8221;<br />
</del>Et oui, une alim de 1A pour la rasp c&#8217;est bien, une de 2,1A ça change rien&#8230; Car le µUSB bride le courant à 700mA.<br />
Si vous utilisez cette commande directement dans le terminal:</p><pre class="crayon-plain-tag">rsync -av --delete --stats --progress  /media/USBHDD1/SERVEURIX2000 /media/USBHDD2</pre><p>Pour tester si la copie du premier disque sur le second fonctionne, et bien vous risquez d&#8217;avoir une jolie erreur au bout d&#8217;un moment du genre &#8220;I/O error&#8221;.<br />
C&#8217;est parce qu&#8217;avec ce bridage de 700mA, la rasp n&#8217;est pas capable de fournir suffisamment de courant pour le fonctionnement de deux disques simultanément. Et du coup, il y en a un qui s&#8217;éteint une fraction de seconde et qui fait foirer la copie (voire tout le montage du disque). Pour passer ce bridage, je passe donc par le GPIO.</p>
<p style="text-align: left;"><a href="media/8d94d25b.gpio_closeup.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/gpio_closeup.jpg"><img class="aligncenter  wp-image-2970" alt="gpio_closeup" src="media/8d94d25b.gpio_closeup.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/gpio_closeup.jpg" width="720" height="320" /></a><br />
Cette solution ne présente aucun risque pour votre Raspberry puisque le surplus de courant est dirigé vers les ports USB et pas à travers toute la rasp. J&#8217;utilise cette méthode sans aucun problème depuis presque 2 mois 24h/24 7j/7.<br />
<strong><span style="color: #ff0000;">Si vous optez pour cette solution, surtout surtout SURTOUT n&#8217;alimentez pas en même temps LE GPIO ET LE PORT µUSB. J&#8217;insiste, soit l&#8217;un soit l&#8217;autre, mais JAMAIS LES DEUX SIMULTANÉMENT !!!</span></strong> Vous risqueriez de cramer toute la rasp en imposant deux sources de tension&#8230;. Pigé???</p>
<p style="text-align: center;"><a href="media/8fcf94bc.daft-punk.gif" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/daft-punk.gif"><img class=" wp-image-3011 aligncenter" alt="daft-punk" src="media/8fcf94bc.daft-punk.gif" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/08/daft-punk.gif" width="450" height="236" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Voilà, à présent vous devriez avoir un NAS fonctionnel sur votre réseau. La prochaine étape sera de customiser ce NAS pour en faire une SEEDBOX.  Elle vous permettra comme toute SEEDBOX de télécharger et partager vos torrents, mais surtout de faire ça d&#8217;une manière sécurisée en passant par un VPN!<br />
Si quelque chose ne vous parait pas clair, n&#8217;hésitez pas à poster un topique sur le forum dédié au questions de tous genres : <a href="http://forum.idleman.fr/" target="_blank">Taverne d&#8217;Idle et de poivrots </a></p>
<p>Bon aller! J&#8217;ai un <del><a href="media/15b459c6.emma-tease.gif" data-original-source="http://www.reactiongifs.com/wp-content/uploads/2013/03/emma-tease.gif" target="_blank">dossier NSFW</a> à mater moi ! </del> tuto sur une seedbox à faire !</p>
<p>&nbsp;</p>
<p>Liens riches en inspiration:</p>
<p>http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/</p>
<p>http://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/connect-the-lead</p>
<p>http://www.pihomeserver.fr/2012/12/09/raspberry-pi-home-server-etape-10-installer-samba/</p>


feed_id: http://blog.idleman.fr/?p=3159
title: Des nouvelles des projets Leed RSS, Dropcenter et Yana
uri: Des-nouvelles-des-projets-Leed-RSS-Dropcenter-et-Yana
url: http://blog.idleman.fr/des-nouvelles-des-projets-leed-rss-dropcenter-et-yana/
content:
<p>Voilà une belle semaine météorologiquement bien pourrie et donc idéale pour faire de la revue projet ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' /><br />
Voyons un peu comment se portent nos trois projets phares : DropCenter, Leed, et Yana !!</p>
<p><span id="more-3159"></span></p>
<h3>DropCenter</h3>
<p>Ma plateforme gratuite d&#8217;échange/stockage de fichiers en ligne DropCenter a subi quelques modifications ces derniers temps.</p>
<p><a href="media/b453e2b6.image.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/image.png"><img width="599" height="348" title="image" style="border: 0px currentColor; display: inline;" alt="image" src="media/10f968c7.image_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/image_thumb.png" border="0"></a></p>
<p><strong>Un grand nombre de fixes pour la sécurité :</strong> ajout de token sur les formulaires sensibles, correction de failles xss, masquage des infos utilisateur pour les non connectés etc.</p>
<p><strong>Une meilleure stabilité :</strong>&nbsp; concernant les fichiers avec accents (plus de soucis de renommage/ouverture/déplacement de fichiers ou dossiers)</p>
<p><strong>Interface épurée et moins &#8220;clignotante&#8221; :</strong> le design&nbsp;a été revu de manière&nbsp;à la rendre plus simple et plus élégante, le rafraîchissement de la page ne clignote plus, les barres de chargement et de préloader ne sont plus décalées.</p>
<p><strong>Correction de régressions récentes :</strong> l&#8217;avatar s&#8217;affiche de nouveau dans les mails de notification, le nombre de fichiers modifiés dans les événements n&#8217;est plus à 0, l&#8217;utilisateur ne voit pas ses préférences &#8230;</p>
<h3>Leed</h3>
<p><a href="media/07570201.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/image1.png"><img width="599" height="324" title="image" style="border: 0px currentColor; display: inline;" alt="image" src="media/79f84bfb.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/image_thumb1.png" border="0"></a></p>
<p>Leed RSS bouge également sur la branche de développement ! Le système de pagination Ajax est terminé, et le module d&#8217;internationalisation également (n&#8217;hésitez pas à tester sur la branche dev et à nous fournir vos fichiers langues, actuellement seul le fichier français est proposé).</p>
<h3>Yana-Server</h3>
<p><strong>Une nouvelle fonctionnalité&nbsp;a vu le jour :</strong> le gestionnaire d&#8217;événements, ainsi qu&#8217;un plugin permettant de l&#8217;utiliser.<br />
Le gestionnaire d&#8217;événements permet de déclencher une action (parole, son ou commande) à un instant précis, il fonctionne en mode tâche planifiée (à la manière des CRON Linux ou des tâches planifiées Windows), pratique pour rappeler un anniversaire vocalement ou ouvrir vos stores et allumer vos lumières tous les matin à 6h00 et vous réveiller<br />
avec la jolie voix de Yana <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=':D' class='wp-smiley' />  !!</p>
<p><strong>Note pour les concepteurs de plugins Yana :</strong> il est possible d&#8217;utiliser les événements pour déclencher une action lorsqu&#8217;un capteur est activé ou en fonction de n&#8217;importe quel paramètre autre que le temps <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p>
<h3>Yana-Windows</h3>
<p><a href="media/0ef85822.image2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/image2.png"><img width="594" height="384" title="image" style="border: 0px currentColor; display: inline;" alt="image" src="media/80878477.image_thumb2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/image_thumb2.png" border="0"></a></p>
<p>Le client Yana pour Windows&nbsp;a subi très peu de modifications ces temps-ci, par manque de temps essentiellement.<br />
Cependant j&#8217;ai eu le temps d&#8217;ajouter une fonctionnalité permettant d&#8217;exécuter une action directement après la reconnaissance d&#8217;une phrase, sans avoir à interroger ou&nbsp;à attendre la réponse du serveur.</p>
<p>Cette fonctionnalité est pratique pour toutes les actions ayant besoin d&#8217;être &#8220;instantanées&#8221; et ne nécessitant<br />
pas une requête vers Yana-Server, comme par exemple &#8220;Yana, lance mon éditeur de texte&#8221;.<br />
Un exemple d&#8217;utilisation verra bientôt le jour dans le plugin vocalinfo de Yana-Server.</p>
<p>Enfin, un dépôt GitHub&nbsp;a été créé pour les développeurs qui veulent accéder aux sources de Yana-Windows (jusqu&#8217;ici privées),<br />
j&#8217;aurais aimé organiser un peu plus le code avant de le partager mais je manque de temps <img src="media/4482e42c.icon_smile.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> , n&#8217;hésitez pas a faire<br />
des pull request sur le dépôt si vous souhaitez participer à l&#8217;amélioration du programme.</p>
<p><strong>Dépôt git des sources :</strong> <a href="https://github.com/ldleman/yana-windows-sources">https://github.com/ldleman/yana-windows-sources</a> <em>(“alea jacta est”)</em></p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3164
title: Snippet #23 ~ PHP: Trouver les jours fériés (fixes et mouvants)
uri: Snippet-23-PHP-Trouver-les-jours-fériés-(fixes-et-mouvants)
url: http://blog.idleman.fr/snippet-23-php-trouver-les-jours-feries-fixes-et-mouvants/
content:
<p>Voila une petite fonction PHP permettant de définir si la date fournie en paramètre (au format timestamp) est un jour férié ou non.</p>
<p><span id="more-3164"></span></p>
<p>Cette fonction retourne <strong>true</strong> si le jour est férié, <strong>false</strong> dans le cas contraire</p><pre class="crayon-plain-tag">?php	
/**
	* Cette fonction retourne un tableau de timestamp correspondant
	* aux jours fériés en France pour une année donnée.
	*/
	function isNotWorkable($date)
	{

	  	if ($date === null)
	  	{
	    	$date = time();
	  	}

	 	$date = strtotime(date('m/d/Y',$date));

	 	$year = date('Y',$date);

		$easterDate  = easter_date($year);
		$easterDay   = date('j', $easterDate);
		$easterMonth = date('n', $easterDate);
		$easterYear   = date('Y', $easterDate);

		$holidays = array(
	    // Dates fixes
	    mktime(0, 0, 0, 1,  1,  $year),  // 1er janvier
	    mktime(0, 0, 0, 5,  1,  $year),  // Fête du travail
	    mktime(0, 0, 0, 5,  8,  $year),  // Victoire des alliés
	    mktime(0, 0, 0, 7,  14, $year),  // Fête nationale
	    mktime(0, 0, 0, 8,  15, $year),  // Assomption
	    mktime(0, 0, 0, 11, 1,  $year),  // Toussaint
	    mktime(0, 0, 0, 11, 11, $year),  // Armistice
	    mktime(0, 0, 0, 12, 25, $year),  // Noel

	    // Dates variables
	    mktime(0, 0, 0, $easterMonth, $easterDay + 1,  $easterYear),
	    mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear),
	    mktime(0, 0, 0, $easterMonth, $easterDay + 50, $easterYear),
		);

  	return in_array($date, $holidays);
	}
?&gt;</pre><p>Petit exemple d&#8217;utilisation :</p><pre class="crayon-plain-tag">&lt;?php
    if(isNotWorkable(time())){
	echo 'Nous sommes un jour férié !! Apéro !!';
    }else{
	echo 'Nous sommes un jour normal, au boulot :p';
    }
?&gt;</pre><p></p>


feed_id: http://blog.idleman.fr/?p=2819
title: [Billet invité] Créer une SeedBox sécurisée avec le Raspberry Pi
uri: Billet-invité-Créer-une-SeedBox-sécurisée-avec-le-Raspberry-Pi
url: http://blog.idleman.fr/billet-invite-creer-une-seedbox-securisee-avec-le-raspberry-pi/
content:
<p style="text-align: justify;">Article écrit par le lecteur <strong>Geoffrey ENJOLRAS</strong></p>
<p style="text-align: justify;">Salut à tous !</p>
<p style="text-align: justify;">Je me disais bien que vous étiez de braves, fiers et courageux noobs ! Afin d&#8217;étancher votre soif d&#8217;aventures et de prises de tête, nous allons transformer notre &#8220;Naspberry&#8221; en Seedbox !<br />
On est obligé d&#8217;en passer par là : je vous fais partager mon savoir ancestral&#8230; Par contre, nous ne sommes pas responsables de ce que vous ferez avec celui-ci. Je ne vous incite pas, je vous déconseille même d&#8217;en faire quelque chose d&#8217;illégal !<br />
Ça c&#8217;est fait, passons aux choses sérieuses&#8230;.</p>
<p style="text-align: justify;"><span id="more-2819"></span></p>
<h1 style="text-align: center;"><strong>Holaaaaa !!! Doucement hein ! Explique-nous d&#8217;abord ce que c&#8217;est qu&#8217;une SeedBox et pourquoi elle a besoin d&#8217;être sécurisée ? Allez, magne !</strong></h1>
<p style="text-align: justify;"><a href="media/a5ffd757.transmission.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/transmission.png"><img class="wp-image-3175 alignleft" alt="transmission" src="media/a5ffd757.transmission.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/transmission.png" width="184" height="184" /></a>Demandé si gentiment&#8230;</p>
<p style="text-align: justify;">Une SeedBox est une sorte de NAS qui va être capable de télécharger des torrents (automatiquement ou non) mais surtout, de les partager jour et nuit ! Pour cela, nous allons utiliser comme client torrent : <a href="http://www.transmissionbt.com/" target="_blank">Transmission</a>.</p>
<p style="text-align: justify;">Seulement voilà&#8230; Vous n&#8217;avez peut-être pas envie que vos téléchargements soient visibles et associés à votre IP.</p>
<p style="text-align: justify;">Nous allons passer par un VPN (Virtual Private Network). Ça fait peur, hein ?<br />
Nous utiliserons <a href="http://openvpn.net/" target="_blank">OpenVPN</a> (je vous expliquerai tout ça plus bas).</p>
<p style="text-align: justify;">Voilà ce qu&#8217;il se passe quand vous téléchargez sans VPN :</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><a href="media/7b928278.VPN_yeux_2.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/VPN_yeux_2.jpg"><img class="aligncenter  wp-image-3179" alt="VPN_yeux_2" src="media/7b928278.VPN_yeux_2.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/VPN_yeux_2.jpg" width="715" height="380" /></a><strong>&#8220;Big Brother&#8221;</strong> voit que <strong>vous</strong> téléchargez <strong>le torrent &#8220;Mes vacances&#8221;.</strong></p>
<p style="text-align: justify;">Mais avec un VPN :</p>
<p style="text-align: justify;"><a href="media/77109a2d.VPN_yeux_3.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/VPN_yeux_3.jpg"><img class="aligncenter  wp-image-3180" alt="VPN_yeux_3" src="media/77109a2d.VPN_yeux_3.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/VPN_yeux_3.jpg" width="759" height="347" /></a>Big Brother s’alcoolise et voit double&#8230;<br />
<strong>BB</strong> voit que <strong>vous</strong> vous connectez à <strong>un serveur</strong> en <strong>données cryptées</strong> (BB ne sait pas ce que vous y faites).<br />
<strong>BB</strong> voit que <strong>le serveur</strong> télécharge <strong>&#8220;Mes vacances&#8221;</strong>.</p>
<p style="text-align: justify;">En résumé, le serveur peut télécharger car le téléchargement (P2P) est autorisé dans le pays où il se situe. Chez vous, on ne sait pas ce que vous faites. Vous êtes donc peinard !</p>
<h1 style="text-align: center;"><strong>Recommence pas à nous tenir la jambe 3h&#8230; Pour le NAS, tu nous as fait banquer, faut qu&#8217;on débourse combien pour ton truc ? Il nous faut quoi ?</strong></h1>
<p style="text-align: justify;">Pas de panique ! Le matériel, vous l&#8217;avez déjà !<br />
Ce tuto, ce sera surtout du téléchargement de logiciels, et de la configuration compliquée !</p>
<ul style="text-align: justify;">
<li>Il vous faudra donc avoir suivi le tuto : &#8220;<a href="http://blog.idleman.fr/billet-invite-creer-un-nas-avec-le-raspberry-pi/" target="_blank">Créer un nas avec le Raspberry Pi</a>&#8221; (de préférence, mais on peut le faire sans en modifier les dossiers),</li>
<li>Des fichiers de configuration pour votre VPN.</li>
</ul>
<p style="text-align: justify;"><a href="media/87a5d0b7.Freedom-IP-150x150.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Freedom-IP-150x150.png"><img class="alignleft size-full wp-image-3215" alt="Freedom-IP-150x150" src="media/87a5d0b7.Freedom-IP-150x150.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Freedom-IP-150x150.png" width="150" height="150" /></a>A ce sujet, pour ma part, j&#8217;utilise les services de <a href="https://freedom-ip.com/">Freedom-IP</a>. Déjà, atout non négligeable, ils sont gratuits !<br />
Pourquoi eux ? Ils vous offrent des serveurs localisés aux Pays-Bas (ce que nous voulons pour ce tuto). Pour déposer un candidature d&#8217;inscription, c&#8217;est &#8220;<a href="https://freedom-ip.com/inscription.php" target="_blank">ici</a>&#8220;.<br />
Bien sûr, vous pouvez suivre ce tuto avec n&#8217;importe quels autres fichiers de configuration venant d&#8217;ailleurs. Pour ceux qui aurait du mal à obtenir un compte sur freedom-ip, <a href="http://www.topito.com/top-vpn-gratuit-mac-windows-linux" target="_blank">voici une petite liste des VPN gratuits du net</a>. (rien ne vous empêche d&#8217;en prendre un payant aussi ;) )</p>
<h1 style="text-align: center;"> <strong>Propagande, quand tu nous tiens&#8230; Bon alors, comment on installe Transmission ?</strong></h1>
<p style="text-align: justify;">Alors déjà, pour pouvoir utiliser Transmission, il faut ??  <a href="https://www.youtube.com/watch?feature=player_detailpage&amp;v=EbUW_-waPsM#t=364" target="_blank">Je vous le donne Émile</a> : Transmission !</p>
<p></p><pre class="crayon-plain-tag">sudo apt-get update &amp;&amp; sudo apt-get install transmission-daemon</pre><p></p>
<p style="text-align: justify;">Nous allons, au passage, créer un dossier pour stocker les torrents en cours de téléchargement :</p>
<p></p><pre class="crayon-plain-tag">sudo mkdir /media/USBHDD1/SERVEURIX2000/Torrents
sudo chmod -R 777 /media/USBHDD1/SERVEURIX2000/Torrents</pre><p></p>
<p style="text-align: justify;">Rentrons dans le vif du sujet !  Nous allons paramétrer Transmission :</p>
<p></p><pre class="crayon-plain-tag">sudo service transmission-daemon stop
sudo nano /etc/transmission-daemon/settings.json</pre><p></p>
<p style="text-align: justify;">Vous devriez avoir un fichier qui ressemble à ça :<br />
<a href="media/6fd54d89.Screenshot-from-2013-09-16-164535.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-164535.png"><img class="aligncenter  wp-image-3281" alt="Screenshot from 2013-09-16 16:45:35" src="media/6fd54d89.Screenshot-from-2013-09-16-164535.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-164535.png" width="653" height="430" /></a></p>
<p style="text-align: justify;">Voilà ce qu&#8217;il faut modifier dedans (la première ligne est l&#8217;originale, vous devez la modifier pour obtenir la même que la deuxième):</p>
<p></p><pre class="crayon-plain-tag">"download-dir": "/var/lib/transmission-daemon/downloads",
"download-dir": "/media/USBHDD1/SERVEURIX2000/Music",

"incomplete-dir": "/root/Downloads",
"incomplete-dir": "/media/USBHDD1/SERVEURIX2000/Torrents",

"incomplete-dir-enabled": false,
"incomplete-dir-enabled": true,

"rpc-password": "{d6363549906260841491d21e030db8e83e997b7dNb00ZBQE",
"rpc-password": "psswdeJeanLouis",

"rpc-username": "transmission",
"rpc-username": "JeanLouis",

"rpc-whitelist-enabled": true,
"rpc-whitelist-enabled": false,</pre><p></p>
<p style="text-align: justify;">Qu&#8217;est-ce qu&#8217;on vient de faire ?</p>
<ul style="text-align: justify;">
<li>
<div id="crayon-523719cd1b9ac912537860-2"><strong>&#8220;download-dir&#8221;: &#8220;/media/USBHDD1/SERVEURIX2000/Music&#8221;,</strong> signifie que nous allons stocker les torrents terminés dans &#8220;Music&#8221; (vous pouvez créer un autre dossier pour y mettre où vous voulez),</div>
</li>
<li>
<div id="crayon-523719cd1b9ac912537860-5"><strong>&#8220;incomplete-dir&#8221;: &#8220;/media/USBHDD1/SERVEURIX2000/Torrents&#8221;,<br />
</strong><strong>&#8220;incomplete-dir-enabled&#8221;: true,</strong> signifie que les torrents en cours seront stockés dans &#8220;Torrents&#8221;<strong></strong></div>
</li>
<li>
<div id="crayon-523719cd1b9ac912537860-11"><strong>&#8220;rpc-password&#8221;: &#8220;psswdeJeanLouis&#8221;,</strong><br />
<strong> &#8220;rpc-username&#8221;: &#8220;JeanLouis&#8221;,</strong> sont votre identifiant et votre mot de passe pour Transmission (Log: JeanLouis, Mdp: psswdeJeanLouis),</div>
</li>
<li>
<div id="crayon-523719cd1b9ac912537860-11">
<p><strong>&#8220;rpc-whitelist-enabled&#8221;: false,</strong> vous autorise à vous connecter à Transmission avec n&#8217;importe quelle IP (on désactive le filtrage IP en fait, ça évite de se casser la tête à savoir quelle est l&#8217;IP de tous les ordis que l&#8217;on veut utiliser).</p>
<div></div>
</div>
</li>
</ul>
<p style="text-align: justify;">On relance Transmission:</p>
<p></p><pre class="crayon-plain-tag">sudo service transmission-daemon start</pre><p></p>
<p style="text-align: justify;">Maintenant, ouvrez votre navigateur web préféré et tapez:</p>
<p></p><pre class="crayon-plain-tag">addresse.ip.locale.de.votre.nas:9091</pre><p></p>
<p style="text-align: justify;">Une fenêtre va poper, vous demandant votre login et votre mdp que vous venez de rentrer plus haut. J&#8217;entre &#8220;JeanLouis&#8221;, mdp &#8220;psswdeJeanLouis&#8221; et tadaaaaaa !! L&#8217;interface web de Transmission apparaît comme par magie devant vos yeux !<br />
<a href="media/820ebe82.Screenshot-from-2013-09-14-194326.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-14-194326.png"><img class="aligncenter  wp-image-3222" alt="Screenshot from 2013-09-14 19:43:26" src="media/820ebe82.Screenshot-from-2013-09-14-194326.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-14-194326.png" width="492" height="277" /></a><br />
C&#8217;est beau hein ! Mais questions sécurité et vie privée (Big Brother), on est moyen. Ce serait utilisable en l&#8217;état, mais je préfère vous faire sécuriser cette seedbox <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=':)' class='wp-smiley' /> </p>
<h1 style="text-align: center;">Oui oui, on a compris pour la sécurité. Explique-nous comment faire fonctionner tout ça avec OpenVPN.</h1>
<h4 style="text-align: justify;"><strong>Pour installer et configurer OpenVPN, rien de plus simple :</strong></h4>
<p></p><pre class="crayon-plain-tag">sudo apt-get install openvpn</pre><p></p>
<p style="text-align: justify;">Avec un autre PC,  téléchargez vos fichiers de configuration Freedom-IP et placez-les dans le dossier &#8220;Public&#8221; du NAS (autant s&#8217;en servir <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=':D' class='wp-smiley' /> ). Normalement, c&#8217;est un fichier zip au nom explicite de &#8220;freedomip_full.zip&#8221;. On va le dézipper :</p>
<p></p><pre class="crayon-plain-tag">sudo unzip /media/USBHDD1/SERVEURIX2000/Public/freedomip_full.zip -d /etc/openvpn/freedomip</pre><p></p>
<p style="text-align: justify;">Et virer tous les fichiers qui ne nous serviront pas :</p>
<p></p><pre class="crayon-plain-tag">cd /etc/openvpn/freedomip/
sudo rm FR* openvpn-2.3.2-install-freedom-ip.exe UK* DE* ES* README</pre><p></p>
<p style="text-align: justify;"><a href="media/f10d28d2.Screenshot-from-2013-09-14-201613.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-14-201613.png"><img class=" wp-image-3232 aligncenter" alt="Screenshot from 2013-09-14 20:16:13" src="media/f10d28d2.Screenshot-from-2013-09-14-201613.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-14-201613.png" width="595" height="390" /></a></p>
<p style="text-align: justify;">On va maintenant en choisir un des trois pour OpenVPN (prenons le 3). Comme le soft n&#8217;aime pas trop les parenthèses, on va en profiter pour renommer le fichier :</p>
<p></p><pre class="crayon-plain-tag">sudo mv NL3-\(Pays-Bas\).ovpn NL3.ovpn</pre><p></p>
<p style="text-align: justify;">On va le modifier un poil :</p>
<p></p><pre class="crayon-plain-tag">sudo nano /etc/openvpn/freedomip/NL3.ovpn</pre><p></p>
<p style="text-align: justify;">On vire ces deux lignes :</p>
<p></p><pre class="crayon-plain-tag">route-method exe
route-delay 2</pre><p></p>
<p style="text-align: justify;">Et on ajoute pass.txt à celle &#8220;auth-user-pass&#8221; :</p>
<p></p><pre class="crayon-plain-tag">auth-user-pass pass.txt</pre><p></p>
<p style="text-align: justify;">On sauvegarde et crée un fichier pass.txt. Sur la première ligne, on met le login que l&#8217;on a sur Freedom-IP, et sur la deuxième, le mot de passe :</p>
<p></p><pre class="crayon-plain-tag">sudo nano /etc/openvpn/freedomip/pass.txt</pre><p></p>
<p style="text-align: justify;">Et dans le fichier :</p>
<p></p><pre class="crayon-plain-tag">fip_06v7H***********
*********mdp*********</pre><p></p>
<p style="text-align: justify;">Cette petite manip permet de garder les identifiants en mémoire. Pas besoin de les entrer à chaque fois !</p>
<h4 style="text-align: justify;"><strong>Maintenant, nous allons mettre en place le lancement d&#8217;OpenVPN dès la mise sous tension :<br />
</strong></h4>
<p style="text-align: justify;">On va créer un script qui lance OpenVPN dès le démarrage de Wheezy :</p>
<p></p><pre class="crayon-plain-tag">sudo touch /etc/init.d/startSB.sh
sudo chmod +x /etc/init.d/startSB.sh
sudo nano /etc/init.d/startSB.sh</pre><p></p>
<p style="text-align: justify;">Copiez le script suivant à l&#8217;intérieur du fichier :</p>
<p></p><pre class="crayon-plain-tag">#!/bin/sh

cd /etc/openvpn/freedomip/
sudo openvpn --config NL3.ovpn --script-security 2</pre><p></p>
<p style="text-align: justify;">On sauvegarde, et on rend tout ça amorçable au reboot :</p>
<p></p><pre class="crayon-plain-tag">sudo update-rc.d startSB.sh defaults</pre><p></p>
<p style="text-align: justify;"><strong>Petit test !</strong></p>
<p style="text-align: justify;">A ce moment-là, si vous faites un :</p>
<p></p><pre class="crayon-plain-tag">curl ifconfig.me/ip</pre><p></p>
<p style="text-align: justify;">Vous allez voir apparaitre votre IP :<a href="media/e8cb73f9.Screenshot-from-2013-09-16-171906.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-171906.png"><img class="aligncenter  wp-image-3290" alt="Screenshot from 2013-09-16 17:19:06" src="media/e8cb73f9.Screenshot-from-2013-09-16-171906.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-171906.png" width="559" height="96" /></a></p>
<p style="text-align: justify;">Maintenant, redémarrez votre Pi :</p>
<p></p><pre class="crayon-plain-tag">sudo reboot -f</pre><p></p>
<p style="text-align: justify;">Et refaites-le, vous allez voir sans grande surprise que vous possédez une adresse IP des Pays-Bas :<a href="media/f7d72beb.Screenshot-from-2013-09-14-210728.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-14-210728.png"><img class="aligncenter  wp-image-3240" alt="Screenshot from 2013-09-14 21:07:28" src="media/f7d72beb.Screenshot-from-2013-09-14-210728.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-14-210728.png" width="572" height="96" /></a></p>
<h1 style="text-align: center;"><strong>Merci pour la complexité du truc ! Mais comment être sûr que Transmission s&#8217;arrête si le VPN se déconnecte ?</strong></h1>
<p style="text-align: justify;">Vous êtes devenus de vrais PGM !!!!</p>
<p style="text-align: justify;"><a href="media/cc602585.pgm.gif" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/pgm.gif"><img class="aligncenter  wp-image-3314" alt="pgm" src="media/cc602585.pgm.gif" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/pgm.gif" width="450" height="270" /></a></p>
<p style="text-align: justify;">Effectivement ! Si le VPN se déconnecte, Transmission va utiliser votre IP pour les torrents&#8230;<br />
Tout d&#8217;abord, contrairement à OpenVPN, on va empêcher Transmission de démarrer tout seul :</p>
<p></p><pre class="crayon-plain-tag">sudo update-rc.d -f transmission-daemon remove</pre><p></p>
<p style="text-align: justify;">Maintenant, nous allons créer un template du fichier de configuration de Transmission. Il nous servira à mettre à jour l&#8217;adresse IPV4 du VPN (la seule adresse à travers laquelle Transmission peut et doit passer) :</p>
<p></p><pre class="crayon-plain-tag">sudo cp /etc/transmission-daemon/settings.json /etc/transmission-daemon/settings_template.json
sudo nano /etc/transmission-daemon/settings_template.json</pre><p></p>
<p style="text-align: justify;">Et changez cette ligne :</p>
<p></p><pre class="crayon-plain-tag">"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv4": "IP_ADDRESS",</pre><p></p>
<p style="text-align: justify;"><a href="media/0667c737.Screenshot-from-2013-09-15-213632.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-15-213632.png"><img class="aligncenter  wp-image-3259" alt="Screenshot from 2013-09-15 21:36:32" src="media/0667c737.Screenshot-from-2013-09-15-213632.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-15-213632.png" width="310" height="32" /></a></p>
<p style="text-align: justify;">Maintenant, nous allons créer un petit script, qui va nous permettre de remplacer la variable IP_ADDRESS, par l&#8217;adresse IP du VPN. Comme ça, on sera sûr que Transmission n&#8217;utilise que cette IP :</p>
<p></p><pre class="crayon-plain-tag">sudo touch /etc/openvpn/up.sh
sudo chmod +x /etc/openvpn/up.sh
sudo nano /etc/openvpn/up.sh</pre><p></p>
<p style="text-align: justify;">Faites un copier/coller de ce script dans le fichier :</p>
<p></p><pre class="crayon-plain-tag">#!/bin/sh

/etc/init.d/transmission-daemon stop
sed s/IP_ADDRESS/$4/ /etc/transmission-daemon/settings_template.json &gt; /etc/transmission-daemon/settings.json
/etc/init.d/transmission-daemon start</pre><p></p>
<p style="text-align: justify;">Et maintenant, il ne nous reste plus qu&#8217;à lancer ce script une fois qu&#8217;OpenVPN a démarré.<br />
Il suffit de rajouter &#8220;&#8211;up /etc/openvpn/up.sh&#8221; à notre script &#8220;startSB.sh&#8221; :</p>
<p></p><pre class="crayon-plain-tag">sudo nano /etc/init.d/startSB.sh</pre><p></p>
<p style="text-align: justify;">Et on complète le script :</p>
<p></p><pre class="crayon-plain-tag">#!/bin/sh

cd /etc/openvpn/freedomip/
sudo openvpn --config NL3.ovpn --script-security 2 --up /etc/openvpn/up.sh</pre><p></p>
<p style="text-align: justify;">Et voilà, vous pouvez utiliser sereinement Transmission !</p>
<h1 style="text-align: center;"><strong>Essaye pas de nous enfler ! C&#8217;est bien beau tout ça, mais comment vérifier que ta protection fonctionne bien ?</strong></h1>
<p style="text-align: justify;">Vous ne me faites même pas confiance ? Ralala, les tartes qui se perdent !</p>
<p style="text-align: justify;"><a href="media/d7774cd8.tarte.gif" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/tarte.gif"><img class="aligncenter  wp-image-3294" alt="tarte" src="media/d7774cd8.tarte.gif" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/tarte.gif" width="336" height="243" /></a></p>
<p style="text-align: justify;">Bon allez, comme ce tuto est long et un peu compliqué à suivre, je vais vous montrer comment utiliser <a href="http://checkmytorrentip.com/" target="_blank">Check my Torrent IP</a> (petit utilitaire en ligne qui permet de vérifier avec quelle IP on partage ou télécharge un torrent). <del>Mais après, je me casse parce que je commence à en avoir marre d&#8217;écrire !</del></p>
<p style="text-align: justify;">Allez sur <a href="http://checkmytorrentip.com/" target="_blank">Check my Torrent IP</a> et cliquez sur &#8220;Generate Tracking Torrent&#8221;. Sauvegardez le fichier.</p>
<p style="text-align: justify;"><a href="media/7dbf6484.Screenshot-from-2013-09-16-173940.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-173940.png"><img class="aligncenter  wp-image-3299" alt="Screenshot from 2013-09-16 17:39:40" src="media/7dbf6484.Screenshot-from-2013-09-16-173940.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-173940.png" width="1440" height="810" /></a></p>
<p style="text-align: justify;">Allez ensuite sur l&#8217;interface de transmission. Faites &#8220;Ouvrir&#8221;, sélectionnez le fichier de Check my Torrent IP, uploadez-le. Il devrait apparaître dans vos téléchargements en cours<br />
(au passage, c&#8217;est comme cela que l&#8217;on fait pour télécharger n&#8217;importe quel torrent).</p>
<p style="text-align: justify;"><a href="media/dc9fb3c8.Screenshot-from-2013-09-16-181034.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-181034.png"><img class="aligncenter  wp-image-3300" alt="Screenshot from 2013-09-16 18:10:34" src="media/dc9fb3c8.Screenshot-from-2013-09-16-181034.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-181034.png" width="810" height="486" /></a></p>
<p style="text-align: justify;">Revenez sur Check my Torrent IP et cliquez sur &#8220;Refresh&#8221;. On peut voir que vous téléchargez avec une adresse IP des Pays-Bas (même si leur base de données foire et la trouve au UK&#8230;). Vous pouvez constater qu&#8217;elle est bien différente de la vôtre (celle du navigateur).</p>
<p style="text-align: justify;"><a href="media/e0e4064a.Screenshot-from-2013-09-16-175122.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-175122.png"><img class="aligncenter  wp-image-3301" alt="Screenshot from 2013-09-16 17:51:22" src="media/e0e4064a.Screenshot-from-2013-09-16-175122.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/Screenshot-from-2013-09-16-175122.png" width="799" height="410" /></a><br />
Voilà, rassuré ?!</p>
<p style="text-align: justify;">Je suis conscient que ce tuto est casse <del>coui&#8230;</del> pieds !<br />
Mais il faut en passer par là pour avoir un truc qui tient à peu près la route. Puis comme dit l&#8217;un de mes profs d&#8217;électronique : &#8220;Bon allez, si on veut que ça fonctionne, va falloir se sortir le bras du fondement rapidement !&#8221;<br />
Le prochain tuto sera certainement plus simple et <a href="https://www.youtube.com/watch?feature=player_detailpage&amp;v=jrdYgY-UiCM#t=129" target="_blank">plus court </a>! (améliorer l&#8217;interface de Transmission à la µTorrent, téléchargement automatique via RSS, script de reconnexion automatique au VPN etc&#8230; Je suis pas encore très sûr de ce que je mettrai dedans ;))<br />
Sur ce, je vous laisse, j&#8217;ai aquaponey !</p>
<p style="text-align: justify;"><a href="media/5665f02d.ublicit-aqua-poney-piscine-wtf-nouveauts-agence-saatchi-duke.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/llllitl-toyota-publicité-aqua-poney-piscine-wtf-nouveautés-agence-saatchi-duke.png"><img class="aligncenter  wp-image-3306" alt="llllitl-toyota-publicité-aqua-poney-piscine-wtf-nouveautés-agence-saatchi-duke" src="media/5665f02d.ublicit-aqua-poney-piscine-wtf-nouveauts-agence-saatchi-duke.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/09/llllitl-toyota-publicité-aqua-poney-piscine-wtf-nouveautés-agence-saatchi-duke.png" width="859" height="480" /></a></p>


feed_id: http://blog.idleman.fr/?p=3358
title: Les ondes radio en métaphore filée
uri: Les-ondes-radio-en-métaphore-filée
url: http://blog.idleman.fr/les-ondes-radio-en-metaphore-filee/
content:
<p>Mes derniers posts parlent beaucoup de domotique, notamment à l&#8217;aide du Raspberry PI, le tout relié par des signaux radios.</p>
<p>Au cours des questions qui m&#8217;ont été posées ces derniers mois sur le tuto, je me suis rendu compte que le concept de la radio semblait encore un peu flou pour certains.</p>
<p>Notamment j&#8217;ai vu beaucoup de confusions entre les termes de fréquence, de protocole, de canal, etc.<br />
<span id="more-3358"></span><br />
Aussi ai-je pensé à appuyer un peu plus sur ce sujet de manière profane voir purement métaphorique et tout ceci à l&#8217;aide de moindres connaissances afin de vous proposer ce billet de qualité médiocre (ça c&#8217;est de l&#8217;intro qui tue ! :D)</p>
<p>Si vous êtes versés sur ce sujet et que vous avez des antécédents cardiaques, je vous conseille de ne pas trop vous attarder sur les prochaines lignes, cependant vous êtes toujours libre de m&#8217;insulter dans les commentaires si je dis trop d&#8217;énormités <img src="media/0ca6ff4c.icon_razz.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_razz.png" alt=":p" class="wp-smiley" /> </p>
<h2>Commençons&#8230;</h2>
<p><span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">Deux types papotent dans un appart de deux pièces, l&#8217;un s&#8217;appelle Raspbery PI, l&#8217;autre Arduino (Oui ya des parents qui n&#8217;aiment pas leurs enfants&#8230;, cela dit on trouvera toujours </span><a style="line-height: 1.7142; font-size: 1rem;" href="http://www.atlantico.fr/atlantico-light/prenoms-insolites-256911.html">plus con que soit</a><span style="line-height: 1.7142; font-size: 1rem;">, mais je digresse)…</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;</span></p>
<ul>
<li><span style="line-height: 1.7142; font-size: 1rem;">Si Pi et Ardui ne sont pas dans la même </span><strong style="line-height: 1.7142; font-size: 1rem;">pièce</strong><span style="line-height: 1.7142; font-size: 1rem;">, ils ne s&#8217;entendront pas, ils ne seront pas sur la même </span><strong style="line-height: 1.7142; font-size: 1rem;">fréquence</strong><span style="line-height: 1.7142; font-size: 1rem;">.</span></li>
<li><span style="line-height: 1.7142; font-size: 1rem;">Si Pi parle allemand et Ardui anglais, ils </span><strong style="line-height: 1.7142; font-size: 1rem;">s&#8217;entendront</strong><span style="line-height: 1.7142; font-size: 1rem;"> mais ne se </span><strong style="line-height: 1.7142; font-size: 1rem;">comprendront</strong><span style="line-height: 1.7142; font-size: 1rem;"> pas, ils n&#8217;utiliseront pas le même </span><strong style="line-height: 1.7142; font-size: 1rem;">protocole</strong><span style="line-height: 1.7142; font-size: 1rem;"> de communication.</span></li>
<li><span style="line-height: 1.7142; font-size: 1rem;">Si Pi et Ardui parlent la même langue dans la même pièce mais qu&#8217;ils sont </span><strong style="line-height: 1.7142; font-size: 1rem;">trop loin</strong><span style="line-height: 1.7142; font-size: 1rem;"> l&#8217;un de l&#8217;autre, ils s&#8217;entendront mais ne comprendront qu&#8217;un mot sur deux, à cause de la trop grande </span><strong style="line-height: 1.7142; font-size: 1rem;">portée</strong><span style="line-height: 1.7142; font-size: 1rem;">.</span></li>
</ul>
<p><span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">Notez bien qu&#8217;il s&#8217;agit d&#8217;une métaphore, surtout en ce qui concerne la fréquence qui n&#8217;a en réalité rien&nbsp;à voir avec l&#8217;aspect géographique, mais c&#8217;est plus simple à comprendre comme ça je pense.</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<span style="line-height: 24px;"><b><br />
</b></span><strong style="line-height: 1.6; font-size: 1.28rem;">Revenons maintenant à notre bricolage :</strong><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<strong style="line-height: 1.7142; font-size: 1rem;">Pour tous mes tutos, il faut se trouver dans la chambre n°433</strong><span style="line-height: 1.7142; font-size: 1rem;"> : sur la fréquence 433mHz, un type ne peut pas changer de pièce, une fois achetée avec une pièce définie il y reste, sauf si vous dépensez suffisamment pour acheter des émetteurs/récepteurs capables de changer de fréquences (mais c&#8217;est généralement plus cher).</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">Si je vous dis ça c&#8217;est pour vous faire comprendre que c&#8217;est la fréquence qui est la plus compliquée à adapter car c’est purement matériel, alors que le protocole peut toujours être adapté grâce&nbsp;à un peu de code.</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<strong style="line-height: 1.7142; font-size: 1rem;">Tous mes périphériques de tutos parlent la même langue (protocole) : </strong><span style="line-height: 1.7142; font-size: 1rem;">le </span><em style="line-height: 1.7142; font-size: 1rem;">home easy</em><span style="line-height: 1.7142; font-size: 1rem;">, aussi utilisé par la marque Chacon. Lorsque vous achetez un émetteur, il ne suffit donc pas qu&#8217;il soit dans la chambre n°433, il faut aussi qu&#8217;il comprenne le home easy.</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">Dans certains de mes tutos (notamment celui de la sonde de température), le protocole est plutôt une sorte d&#8217;argo dérivé du home easy.</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">Enfin si vous avez bien deux périphériques qui fonctionnent sur la même fréquence (chambre 433) et qui parlent le même langage (</span><em style="line-height: 1.7142; font-size: 1rem;">home easy</em><span style="line-height: 1.7142; font-size: 1rem;">) mais qui se comprennent mal, vous avez certainement un problème de portée, à partir de là, deux solutions pour améliorer la portée :</span><br />
<span style="line-height: 24px;"><br />
</span><span style="line-height: 1.7142; font-size: 1rem;">l&#8217;antenne (qui agit comme un mégaphone sur nos deux types) et une bonne alimentation (nos types seront plus en forme et donc gueuleront plus fort et par conséquent s&#8217;entendront mieux :p).</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<strong style="line-height: 1.7142; font-size: 1rem;">Vous pouvez également avoir un problème dit de parasites :</strong><span style="line-height: 1.7142; font-size: 1rem;"> si nos deux types sont dans la même pièce, parlent la même langue et sont&nbsp;à portée l&#8217;un de l&#8217;autre mais que la pièce en question est un bar bondé de supporters de foot enragés après un match victorieux, les parasites (supporters) vont empêcher nos deux types de se comprendre (et les parasites radio, au même titre que les supporters, sont très difficiles à éliminer).</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">&nbsp; &nbsp;&nbsp;</span><br />
<span style="line-height: 1.7142; font-size: 1rem;">Que faire alors pour se comprendre tout de même dans cette cacophonie ? Se répéter bien sûr ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </span></p>
<p style="font-size: 1rem;">
<p><span style="line-height: 1.7142; font-size: 1rem;">Mais pas n&#8217;importe comment ! C&#8217;est la qu&#8217;intervient l&#8217;encodage de Manchester utilisé dans&nbsp;</span><em id="__mceDel" style="line-height: 1.7142; font-size: 1rem;"><span style="line-height: 1.7142; font-size: 1rem;">plusieurs protocoles radio :&nbsp;</span></em></p>
<p><span style="line-height: 1.7142; font-size: 1rem;"> si tout le monde parlait en binaire (donc, en gros, un choix de mot limité à 0 ou 1 ^^) l&#8217;ambiance du bar donnerait un truc du genre 0111011010111011111111100000000&#8230; une belle suite chaotique de 0 et de 1, pour se comprendre, nos deux types vont répéter certaines suites de 0 et de 1 afin de placer une phrase &#8220;ordonnée&#8221; dans ce bordel ce qui va leur permettre de n&#8217;écouter que les phrases ordonnées du bar, faisant fi des supporters.</span></p>
<p>Pour plus d&#8217;infos sur l&#8217;encodage de Manchester, n&#8217;hésitez pas&nbsp;à re-parcourir mes tutos sur la radio il y en&nbsp;a un (je ne me souviens plus lequel) qui rentre un peu plus dans les détails là-dessus.<br style="line-height: 1.7142; font-size: 1rem;"><span style="line-height: 1.7142; font-size: 1rem;">&nbsp;&nbsp;&nbsp; </span><br style="line-height: 1.7142; font-size: 1rem;"><span style="line-height: 1.7142; font-size: 1rem;"><strong>Enfin dernier problème (et pas des moindres) :</strong> si la radio permet de franchir certains obstacles, un mur trop épais ou une surface métallique peuvent sacrément atténuer, voire annihiler le signal d&#8217;un point A à un point B, aussi pour votre santé pensez à enrouler votre tête dans du papier alu <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </span></p>
<p><strong>Notez que peu de pièces (fréquences) sont accessible aux amateurs :</strong> en effet la fréquence de 433 mHz est l&#8217;une des trois fréquences autorisées sans licence en France, c&#8217;est l&#8217;une des raisons pour lesquelles on la retrouve dans beaucoup de matériels domotiques vendus dans le commerce (portails, stores, prises, etc&#8230;)</p>
<p><strong>Un rapport de portée et de pièce :</strong> La pièce (fréquence) peut influer sur la portée de la communication, prenez la chambre 433, elle résonne beaucoup, du coup nos deux types peuvent se mettre assez loin l&#8217;un de l&#8217;autre dans cette pièce pour communiquer. D&#8217;une manière générale<br />
on peut affirmer que plus la fréquence est basse (plus le numéro de la chambre est petit :p) plus ça résonne et donc plus la portée peut être grande.</p>
<p>Mais ça ne veut pas dire pour autant que les basses fréquences soient toujours avantageuses. En effet les fréquences plus hautes auront moins de portée mais permettront de transmettre plus d&#8217;informations sur un même laps de temps, bref tout dépend de votre projet mais choisissez votre fréquence avec soin avant de commencer vos expériences <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </p>
<p><br style="line-height: 1.7142; font-size: 1rem;"><span style="line-height: 1.7142; font-size: 1rem;">&nbsp;&nbsp;&nbsp; </span><br style="line-height: 1.7142; font-size: 1rem;"><span style="line-height: 1.7142; font-size: 1rem;">Bisous mes poulets et bon vikand ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </span></p>


feed_id: http://blog.idleman.fr/?p=3378
title: RainLoop, messagerie web open source et stylée
uri: RainLoop-messagerie-web-open-source-et-stylée
url: http://blog.idleman.fr/rainloop-messagerie-web-open-source-et-stylee/
content:
<p>J’avais déjà bafouillé récemment sur le <a href="http://blog.idleman.fr/installer-un-webmail-sur-son-serveur/">projet roundcube</a>: une messagerie accessible depuis le web et installable sur votre propre serveur/hébergement.</p>
<p>Dans la même veine je suis tombé récemment sur <a href="http://rainloop.net/">RainLoop</a> qui se défend également sacrément bien malgré quelques inconvénients dont nous reparlerons.</p>
<p><span id="more-3378"></span></p>
<h2>Présentation</h2>
<p><a href="media/da830fa0.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" alt="image" src="media/260442f8.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb1.png" width="569" height="358" border="0" /></a></p>
<p>Je ne vais pas vous refaire le laïus sur l’utilité d’une interface mail unique, gratuite, indépendant de tout service, accessible de partout et capable de grouper plusieurs comptes mails, c’est exactement la même chose que rouncube, l’outil regroupe les fonctionnalités “de base” et il est possible d’y intégrer quelques plugins et de configurer deux trois trucs genre le thème, la langue, les comptes etc.</p>
<p>Une gestion des contacts relativement “<a href="http://blog.idleman.fr/?p=1259" target="_blank">KISS</a>”</p>
<p><a href="media/256f1a30.image2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image2.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/3b558432.image_thumb2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb2.png" width="586" height="425" border="0" /></a></p>
<p>Le gros point fort, c’est certainement la box d’envois de message qui est bourré de ptits gadgets d’auto complétion, d’envois en drag &amp; drop de fichiers et autres.</p>
<p><a href="media/a703ed4c.image3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image3.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/a72003df.image_thumb3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb3.png" width="602" height="520" border="0" /></a></p>
<p>Evidemment des possibilités de personnaliser ses préférences avec quelques options sympa notamment une kyrielle de thèmes (bon..ok.. c’est juste le background qui change mais ça reste sympa ^^)</p>
<p><a href="media/462b5171.image4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image4.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/87fb46cf.image_thumb4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb4.png" width="606" height="440" border="0" /></a></p>
<p>Un panel admin permettant l’ajout de plugins mais aussi un ptit coté “social” permettant d’ajouter des comptes google, facebook, twitter et dropbox (pas testé de mon côté je suppose que c’est intégré en tant que mails…).</p>
<p><a href="media/7a4f07a5.image5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image5.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/d6c12953.image_thumb5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb5.png" width="614" height="487" border="0" /></a></p>
<p>Bref pleins de trucs rigolos que je vous invite à tester, moi je viens de découvrir ça et j’aime assez l’aspect léché et je “juste ce qu’il faut” d’ajax donnant une impression de rapidité et de modernisme.</p>
<p><strong>Petit point pas tip top</strong> : la langue par défaut est le russe ^^, c’est un peu déstabilisant à la première connexion, heureusement il est possible de changer la langue dans le panel Admin.</p>
<h2>Installation</h2>
<p>La page d’installation officielle est, pour une fois, relativement claire, je vous invite donc à la suivre : <a href="http://rainloop.net/docs/installation/">http://rainloop.net/docs/installation/</a></p>
<p>Pensez bien, cependant, à placer les permissions une fois le script téléchargé et dé-zippé dans votre dossier http (ici on prend par défaut /var/www)</p><pre class="crayon-plain-tag">cd /var/www/rainloop/
find . -type d -exec chmod 777 {} \;
find . -type f -exec chmod 666 {} \;
chown -R www-data:www-data .</pre><p>La première chose a faire une fois l’installation terminée est d’attaquer l’adresse du script+ “?admin” ex : <a href="http://mon.server.fr/rainloop/?admin">http://mon.server.fr/rainloop/?admin</a></p>
<p>Les identifiants par défaut sont :</p>
<p><strong>login :</strong> admin</p>
<p><strong>password:</strong> 12345</p>
<p>Dans l’onglet général, vous pouvez changer le russe en anglais (ouf), puis précipitez vous sur l’onglet “Domains” afin d’ajouter d’autre domaines que les deux par défaut (google et yahoo) si comme moi vous avez d’autres boites.</p>
<p>L’ajout de domaine se fait de manière classique, les habitués de la configuration smtp/imap s’y retrouverons <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/a293f4cb.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-smile.png" />, par exemple pour ajouter ma boite ovh en @idleman.fr :</p>
<p><a href="media/278dd632.image6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image6.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/bb199e8f.image_thumb6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb6.png" width="615" height="450" border="0" /></a></p>
<p>C’est tout pour la parti admin, vous pouvez maintenant retourner à la racine du script histoire de vous identifier et de profiter de votre boite <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/6afdc22a.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-openmouthedsmile.png" />.</p>


feed_id: http://blog.idleman.fr/?p=3420
title: Ghost, le blog self hosted du futur?
uri: Ghost-le-blog-self-hosted-du-futur
url: http://blog.idleman.fr/ghost-le-blog-self-hosted-du-futur/
content:
<p>Ghost est une plateforme de blog fichtrement prometteuse !</p>
<p>Vous en avez peut-être déjà entendu parler, ça fait un moment que l’équipe communique autour du projet à travers sa page kick starter, jusqu’ici on avait le droit qu’à quelques vidéos, or je me méfie de ces saloperie de présentations cheatées d’ou le fait que je n’en ai encore jamais parlé.</p>
<p><span id="more-3420"></span></p>
<p>Mais visiblement ils ont sorti une première version alpha pour les plus pressés, et il faut reconnaître que c’est plutôt de la baloche <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/78091444.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-smile1.png" /></p>
<h2>Mais Ghost c’est quoi?</h2>
<p>Ghost, c’est une plateforme de blog au même titre que WordPress, Drupal, etc… mais qui, contrairement à ces derniers, s’est donné pour but ultime de rester une simple plateforme de blog.</p>
<p>En effet, les concepteurs de Ghost pensent (à juste titre selon moi) que les blogs type WordPress sont devenus de véritables CMS et se sont trop éloignés du but d’origine à savoir : blogger.</p>
<p align="left">Ghost est donc une alternative sous <a href="http://en.wikipedia.org/wiki/MIT_License">licence MIT</a> qui pousse le bouchon fichtrement loin sur la facilité d’édition : markdown syntax, upload en drag and drop directement sur l’article, prévisualisation en temps réel, full ajax, responsive et sexy avec tout ça ^^.</p>
<p>Bon, ne nous emballons pas non plus, ça reste un blog…</p>
<p><a href="media/339399bc.Capture4.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture4.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture4" alt="Capture4" src="media/7c5228de.Capture4_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture4_thumb.jpg" width="604" height="432" border="0" /></a></p>
<p>Mais un blog remis au gout du jour, utilisant des technos connues pour leurs légèretés et leurs rapidités (nodejs + sqlite), ce qui me frappe c’est surtout que chaque écran est fichtrement chiadé tout en restant relativement simple à comprendre, l’écran le plus chargé est encore la dashboard.</p>
<p><a href="media/259b39b2.image7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image7.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/6afd37e4.image_thumb7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb7.png" width="604" height="401" border="0" /></a></p>
<p>Un gros points positif : l’édition est super agréable, tout est fait pour donner envie de blogguer : pas de boutons et de chichi partout, une syntaxe en markdown super simple avec aide intégrée et raccourcis touches, le rendu final en temps réel…</p>
<p><a href="media/629f450d.Capture5.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture5.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture5" alt="Capture5" src="media/c00c1666.Capture5_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture5_thumb.jpg" width="604" height="353" border="0" /></a></p>
<p>La gestion des images est vraiment mieux foutue que sur les autres blogs : tapez ![] et vous aurez un bloc image “vide” comme ci dessous.</p>
<p><a href="media/c9aecb8e.Capture6.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture6.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture6" alt="Capture6" src="media/394dcc72.Capture6_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture6_thumb.jpg" width="604" height="204" border="0" /></a></p>
<p>Vous pourrez alors faire glisser une image de votre bureau direct dessus (et hop, image uploadée et intégrée sans popup dans tous les sens ou ralentissements à la WordPress), vous pouvez également aller chercher une url d’image en cliquant sur le ptit 8 en bas à droite du bloc image.</p>
<p><a href="media/1edb131f.Capture7.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture7.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture7" alt="Capture7" src="media/23c8dc78.Capture7_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture7_thumb.jpg" width="604" height="256" border="0" /></a></p>
<p>Perso je suis plus fan du drag &amp; drop, ça fait un moment que je cherche un truc dans cette veine, WordPress intègre cette techno mais nous fait passer par une horrible popup ultra lente, on perd tout l’intérêt du d&amp;d.</p>
<p><a href="media/4bafdfd2.Capture8.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture8.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture8" alt="Capture8" src="media/c03ac7fc.Capture8_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture8_thumb.jpg" width="604" height="266" border="0" /></a></p>
<p>Également la possibilité de faire quelques ptits trucs avancés genre intégrer du html, je trouve ça un peu risqué et sacrément inutile pour le coup.</p>
<p>&nbsp;</p>
<p><a href="media/36bdfa53.Capture9.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture9.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture9" alt="Capture9" src="media/841c96a2.Capture9_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture9_thumb.jpg" width="604" height="142" border="0" /></a></p>
<p>La gestion des tags également est super agréable : un clic dans la barre inférieure, et vous pouvez ajouter ce que vous souhaitez, avec auto complétion, une virgule créant un nouveau tag.</p>
<p>&nbsp;</p>
<p><a href="media/b90594a4.image8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image8.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/45817703.image_thumb8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb8.png" width="448" height="250" border="0" /></a></p>
<p>Egalement tout un tas d’options proposées par les boutons situés sur les bords de l’écran</p>
<p><a href="media/dc126cbb.image9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image9.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/bcc1a206.image_thumb9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb9.png" width="439" height="260" border="0" /></a></p>
<p>Pas à l’aise avec le markdown syntax ? Un clic sur “?” vous propose une aide relativement claire <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/78091444.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-smile1.png" /></p>
<p><a href="media/9fec86c4.image10.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image10.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/c32b0a48.image_thumb10.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb10.png" width="604" height="384" border="0" /></a></p>
<p>Même la page de profil utilisateur est chiadée, j’ai l’impression d’être sur Facebook ( ok ça c’est pas forcement un point positif ^^) on peut même faire des trucs totalement inutiles comme mettre sa chéwie en fond (toujours en drag and drop) ou circulariser sa trombine (encore et toujours en dra….)</p>
<p><a href="media/7f185571.image11.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image11.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/96b9bdc3.image_thumb11.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb11.png" width="604" height="422" border="0" /></a></p>
<p>Ok c’est kitsh et inutile mais tout reste fluide et simple donc si les auteurs veulent se faire plaisir sur certains trucs on les pardonne <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/78091444.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-smile1.png" /></p>
<p>Evidemment, le tout est responsive, sur smartphone comme sur tablette c’est plutôt bien pensé</p>
<p>mais je vous laisse tester <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/78091444.wlEmoticon-smile1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-smile1.png" /></p>
<p><a href="media/2e75315d.image12.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image12.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/b3d5eab9.image_thumb12.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/image_thumb12.png" width="604" height="795" border="0" /></a></p>
<h2>Pour résumer</h2>
<p>Le projet est encore un peu jeune pour remplacer tout de suite mon bon vieux WordPress, certaines fonctionnalités manquent à l’appel comme la possibilité de planifier un article ou encore les commentaires (mais qu’ont donc les nouveaux bloggeurs à bouder les commentaires ? De mon coté, les articles sont souvent moins intéressants que les commentaires qui les accompagnent).</p>
<p>De plus, les forces du blog sont aussi ses faiblesses : si sqlite et nodejs permettent de gagner en rapidité/perf, il sont moins simples à intégrer à nos ptits abonnements OVH persos bref on ne peut pas vraiment y couper : pour utiliser Ghost en production, il nous faut un serveur dédié.</p>
<p>Enfin encore quelques petits bugs sur cette alpha (mais bon on pardonne) notamment ce put##$$ de raccourcis touche qui empêche de faire le “[“ pourtant nécessaire à l’intégration d’images.</p>
<p>Bon cela dit, ça reste hyper prometteur, encore quelques efforts de la part des développeurs et je migre tout la dessus (mais d’abord va me falloir un dédié plus fiable que mon vieux serveur maison).</p>
<h2>Comment tester ça ?</h2>
<p>Bon après vous avoir fait un peu baver (du moins je l’espère), je vais pas vous quitter comme ça <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/c5fb0976.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/wlEmoticon-smilewithtongueout.png" />, voyons un peu comment tester le bouzin !!</p>
<p>Je pars du principe que vous n’avez pas installé nodejs sur votre pc, histoire de ne pas larguer tout le monde dès le départ.</p>
<p>Désolé je reste un grand utilisateur de Windows au quotidien, pour les linuxiens c’est la même manip mais en chopant le binaire pour Linux.</p>
<p><strong>Premièrement, installer nodejs</strong> : go sur le site de <a href="http://nodejs.org/">nodejs</a> &gt; cliquez sur install et installez le .msi téléchargé.</p>
<p>Une fois nodejs installé, ouvrez une ligne de commande Windows  et tapez “node”, si vous n’avez pas d’erreur, c’est que nodejs est bien installé.</p>
<p>Téléchargez ensuite Ghost sur la page <a title="http://ghost.org/download" href="http://ghost.org/download">http://ghost.org/download</a> et décompressez l’archive quelque part sur votre pc, je considère que vous l’avez décompressé dans C:\ghost,  ouvrez alors la fenêtre de commande Windows puis placez-vous dans le répertoire de Ghost à l’aide de la commande “cd” :</p><pre class="crayon-plain-tag">cd c:\ghost</pre><p>Puis tapez la commande suivante :</p><pre class="crayon-plain-tag">npm install –production</pre><p>Cette commande va installer tous les prérequis pour Ghost (notamment sqlite)</p>
<p><a href="media/3c16fbd6.Capture1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture1.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture1" alt="Capture1" src="media/d3bf9f78.Capture1_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture1_thumb.jpg" width="604" height="724" border="0" /></a></p>
<p>Une fois que la console arrête de s’affoler, tapez</p><pre class="crayon-plain-tag">npm start</pre><p>Pour lancer Ghost (nb: laissez la fenêtre Windows ouverte, il faudra taper ctrl+c pour l’arrêter).  L’installation est terminée, vous pouvez maintenant naviguer sur votre Ghost en ouvrant un navigateur et en tapant l’adresse :</p>
<p><a href="http://127.0.0.1:2368">http://127.0.0.1:2368</a></p>
<p><a href="media/80e23cbb.Capture3.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture3.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture3" alt="Capture3" src="media/86883e29.Capture3_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture3_thumb.jpg" width="604" height="402" border="0" /></a></p>
<p>Pour accéder à la partie admin (la plus intéressante), tapez</p>
<p><a title="http://127.0.0.1:2368/ghost/signup/" href="http://127.0.0.1:2368/ghost/signup/">http://127.0.0.1:2368/ghost/signup/</a></p>
<p>Une fois la première inscription faite, vous pourrez accéder à toutes les fonctionnalités du bouzin.</p>
<p><a href="media/66e3db44.Capture2.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture2.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="Capture2" alt="Capture2" src="media/87797fff.Capture2_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/10/Capture2_thumb.jpg" width="604" height="482" border="0" /></a></p>
<p>&nbsp;</p>
<p>Bon week end mes poulets !</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3435
title: Fusionnez vos flux simplement avec tightpipe
uri: Fusionnez-vos-flux-simplement-avec-tightpipe
url: http://blog.idleman.fr/fusionnez-vos-flux-simplement-avec-tightpipe/
content:
<p>&nbsp;</p>
<p>Salut les gorets !! <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/42245d50.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/wlEmoticon-openmouthedsmile.png"> Alors ce we de 3 jours il dépote ou bien ? Moi j’en profite pour déterrer deux trois scripts archaïques qui prennent la poussière depuis trop longtemps.</p>
<p>Commençons par <strong>Tightpipe</strong>.</p>
<p><span id="more-3435"></span></p>
<p>Il peut arriver que vous souhaitiez créer un flux rss unique à partir de plusieurs flux RSS divers, par exemple pour regrouper des blogs par centres d&#8217;intérêts et les proposer<br />
de manière simple et efficace.</p>
<p>Bons nombres d&#8217;outils existent déjà comme le fameux yahoo pipe ou même leed<br />
(qui permet de le faire via son plugin rss maker), mais il faut admettre que<br />
ce n&#8217;est pas l&#8217;idéal lorsqu&#8217;on cherche un code léger à intégrer à son site web<br />
sans devoir dépendre d&#8217;un service ou d&#8217;un code qui n&#8217;a rien à voir, de plus peu d’alternatives s’offrent en PHP, on trouve en revanche quelques perles du coté de python (mais je digresse).</p>
<p>C&#8217;est dans ce but que j&#8217;ai grappillé quelques miettes de leed afin de vous proposer<br />
<strong>Tightpipe</strong>.</p>
<p><a href="media/1bc496c7.image.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/92341320.image_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb.png" width="455" height="265" border="0"></a></p>
<p>Tightpipe est un script mono-fichier sans base de données qui permet simplement de grouper<br />
plusieurs flux en un seul en quelques clics.</p>
<p><a href="media/dfce3703.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image1.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/0a9ca84a.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb1.png" width="464" height="362" border="0"></a></p>
<p>Tightpipe a l&#8217;avantage de contenir la librairie simplePie qui parse de nombreux<br />
formats de flux RSS plus ou moins catholiques, Tightpipe inclut également un double<br />
système de cache de manière à proposer rapidement le flux global et ce sans trop mettre le serveur sur les rotules.</p>
<p>L&#8217;installation, l&#8217;utilisation et le <a href="https://github.com/ldleman/tightpipe">téléchargement sont dispo sur la page github de Tightpipe</a>.</p>
<p>Bonne fin de week end les glandeurs ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3444
title: Plume, mon nouveau wiki expérimental
uri: Plume-mon-nouveau-wiki-expérimental
url: http://blog.idleman.fr/plume-mon-nouveau-wiki-exprimental/
content:
<p>Après présentation de <a href="http://blog.idleman.fr/ghost-le-blog-self-hosted-du-futur/">ghost</a> ça fait un peu redondant (voire petit joueur) mais je voulais partager ici ma modeste contribution au monde du wiki.</p>
<p><span id="more-3444"></span></p>
<p>En effet, après plusieurs années d&#8217;utilisation de <a href="https://github.com/ldleman/blazekiss">Blazekiss</a>, j&#8217;ai souhaité tenter un wiki <em>from scratch</em> dans la même veine que&nbsp;<a href="http://blog.idleman.fr/?p=1259">KISS</a> mais remis au gout du jour à l&#8217;aide de techno CSS3 et HTML5 ainsi que quelques concepts &#8220;à la mode&#8221; parfois bien pratiques (okay pour certains, c’est gadget mais faut bien que je me fasse plaisir de temps en temps).</p>
<p><a href="media/be094da7.image3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image3.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/425748bb.image_thumb3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb3.png" width="555" height="511" border="0"></a></p>
<p><strong>On peut notamment y trouver les principes suivants :</strong></p>
<ul>
<li>Free distraction mode (panneau latéral d&#8217;option masqué et boutons d&#8217;options effacés)<br />
Markdown compatible github (tiré du célèbre daring fireball markdown qui devient un standard dans le genre)<br />
Ajout d&#8217;images simplifié en drag &amp; drop et auto classification par date<br />
Raccourcis touches<br />
Barre d&#8217;aide à l&#8217;édition markdown<br />
Interface ultra minimaliste<br />
Quelques pincées d&#8217;Ajax histoire de rendre ça un peu fluide<br />
Installation rapide (pas de base, juste à copier-coller le dossier et à régler les permissions d&#8217;écritures)<br />
Presque responsive ^^ (encore un ptit effort à faire du côté du menu).<br />
Un flux RSS à disposition<br />
Syntaxe highlighting (pour le code js uniquement pour le moment)</li>
</ul>
<p>Le script est en revanche mono utilisateur et uniquement compatible sur les navigateurs dignes de ce nom (firefox, chrome …), j&#8217;aimerais l&#8217;utiliser surtout comme un outil de recherche, afin d&#8217;y publier mes pistes et mes bidouilles simplement.</p>
<p><a href="media/8c5f3c17.image4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image4.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/a264cb5f.image_thumb4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb4.png" width="515" height="447" border="0"></a></p>
<p>Je pense pousser l&#8217;aspect stockage et publication de documents multimédias (images, vidéos, sons, codes, PDF&#8230;) qui sont trop peu évolués à mon sens sur les scripts existants (processus d&#8217;upload lourd et publication limitée souvent à une simple proposition de téléchargement). &nbsp;J&#8217;aimerais aussi proposer un système de partage de mots clés permettant aux wikis Plume traitants de sujets de recherche similaires de se rapprocher, c&#8217;est encore au stade d&#8217;idée mais je pense qu&#8217;il y a moyen de faire des connexions entre les &#8220;chercheurs&#8221;, histoire de créer naturellement des groupes de recherche, ce serait une sorte de &#8220;<strong>matchmaker</strong>&#8221; de plume, mais je me tâte (et c’est assez agréable) sur le bien-fondé de cette idée, qu&#8217;en pensez-vous ? <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </p>
<p>L&#8217;installation, l&#8217;utilisation et le téléchargement de la béta <a href="https://github.com/ldleman/plume">sont dispos sur la page github de Plume.</a></p>
<p>Ce projet est évidemment secondaire, je&nbsp; ne compte pas me mettre en mode hamster dessus, mes priorités restant <a href="http://projet.idleman.fr/leed">leed</a>, yana et <a href="http://projet.idleman.fr/dropcenter">dropcenter</a>, mais si vous souhaitez donner un coup de patte dessus, histoire de faire avancer d&#8217;avantage le projet, n&#8217;hésitez pas à faire vos pull request sur le dépôt.</p>
<p>Bien à vous.</p>
<p>I.</p>


feed_id: http://blog.idleman.fr/?p=3459
title: NodeJs ~ 1,5 : Installation sous windows
uri: NodeJs-1-5-Installation-sous-windows
url: http://blog.idleman.fr/nodejs-15-installation-sous-windows/
content:
<p>Ce tutoriel fait partie d’une série, <a href="http://blog.idleman.fr/sommaire-nodejs/">cliquez ici</a> pour accéder au sommaire.</p>
<p>Avant d&#8217;aller plus loin dans le tutos nodejs, il me semble pertinent de glisser un mini tuto concernant son installation sur Windows.</p>
<p><span id="more-3459"></span></p>
<p>Notez que n&#8217;ayant rien contre Windows, je suis encore régulièrement dessus et donc que les prochains screen de tutos  seront en conséquences sous Windows, cependant la console NodeJs est identique sous tous les systèmes d&#8217;exploitation pour les linuxiens qui suivent ces tutos.</p>
<p><strong>Nb</strong> : L’installation sous linux est <a href="http://blog.idleman.fr/nodejs-presentation-de-node-et-creation-dun-site-web/">disponible en tuto 1</a></p>
<h2>Installons</h2>
<p>Premièrement, installer le serveur Nodejs, pour cela, filez sur sur <a href="http://nodejs.org/">le site de nodejs</a> puis cliquez sur le gros bouton install :</p>
<p><a href="media/755e97a7.image6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image6.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/e9c9c954.image_thumb6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb6.png" width="523" height="324" border="0" /></a></p>
<p>Si vous êtes bien sur Windows, un .msi devrait être téléchargé, cliquez sur celui ci pour lancer l’installation.</p>
<p>Une fois NodeJs installé, ouvrez une ligne de commande Windows  et tapez “node”, si vous n’avez pas d’erreur, c’est que NodeJs est bien installé.</p>
<p><a href="media/83dda9ab.image7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image7.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/c89da429.image_thumb7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb7.png" width="530" height="87" border="0" /></a></p>
<h2>Erreur de PATH</h2>
<p>Si vous avez une erreurs de type “<em>node&#8217; n’est pas reconnu en tant que commande interne”</em> c&#8217;est que le msi à mal installé la variable d&#8217;environnement<br />
NodeJs , pas de panique c&#8217;est très simple à faire manuellement :</p>
<p>Récupérez le chemin vers votre installation de NodeJs : chez moi c&#8217;est <em>C:\Program Files\nodejs\</em></p>
<p>Puis cliquez sur</p>
<p>Menu démarrer –&gt; clic droit sur ordinateur –&gt; propriété –&gt; paramètres systèmes avancé –&gt; variables d&#8217;environnements</p>
<p>Dans la Variable Path, ajoutez le chemin vers le dossier d&#8217;installation NodeJs (pour moi C:\Program Files\nodejs\) pensez au ‘<strong>;’</strong> pour séparer le chemin NodeJs des autres chemins déjà dans la variable PATH.</p>
<p>C&#8217;est tout ! C&#8217;était rapide et sans douleur n&#8217;est ce pas ? Ne vous inquiétez pas vous allez d&#8217;avantage souffrir dans les prochains tutos (c&#8217;est une promesse, vous pisserez du sang par les narines, mais c&#8217;est pour votre bien :p).</p>
<p>Notez que l&#8217;installateur de NodeJs, dans sa grande sagesse, vous a également installé &#8220;<strong>npm</strong>&#8221; aussi nommé &#8220;<strong>node package manager</strong>&#8221; qui comme son nom l&#8217;indique est un gestionnaire de paquets pour node que nous allons  utiliser tout au long des prochains tutos.</p>


feed_id: http://blog.idleman.fr/?p=3450
title: Snippet #24 ~ PHP: Allégez vos classes avec des get/set automatiques
uri: Snippet-24-PHP-Allégez-vos-classes-avec-des-get-set-automatiques
url: http://blog.idleman.fr/snippet-24-php-allegez-vos-classes-avec-des-getset-automatiques/
content:
<p>Lorsque l&#8217;on programme en orienté objet sous php, il est courant d&#8217;utiliser des objets comme simple &#8220;conteneur&#8221; d&#8217;information, ce qu&#8217;en java on appel les POJO (<strong>P</strong>lain <strong>O</strong>ld <strong>J</strong>ava <strong>O</strong>bject) mais que je me refuse à appeler POPO en PHP pour des raisons plus qu’évidentes <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" />  !</p>
<p><span id="more-3450"></span></p>
<p>Bref, ces objets ont donc une tripotée d&#8217;attributs (souvent privés) auxquels nous avons besoin d&#8217;accéder<br />
via des méthodes comme getAttribut1(), setAttribut1(), getAttribut2&#8230;</p>
<p>Créer ces méthodes peut être très contraignants et alourdir le code de la classe pour pas grand chose.</p>
<p>Prenons pour exemple une classe utilisateur avec une tripotée d&#8217;attribut :</p><pre class="crayon-plain-tag">Class User{

private $name,$firstname,$town,$phone,$sex,$hobbies,$avatar,$login,$password,$rank,$state,$fax,$cellphone,$mail;

}</pre><p>&nbsp;</p>
<p>Afin d&#8217;accéder à ces attributs privés, il vas falloir créer les méthodes get et set pour chacune d&#8217;elles soit 2 méthodes par attribut<br />
d&#8217;environ 3 lignes pour 14 attributs vous vous retrouvez déjà avec<strong> 84 lignes dans la vue</strong> simplement pour accéder à vos attributs.</p>
<p>Aussi voiçi un petit snippet permettant de générer dynamiquement ces méthodes (souvent appelées &#8220;<strong>accesseurs</strong>&#8221; ou &#8220;<strong>getter</strong> et <strong>setter</strong>&#8220;)<br />
avec une seule méthode de 3 lignes utilisant la fonction magique de php : <strong> __call()</strong></p><pre class="crayon-plain-tag">Class User{

private $name,$firstname,$town,$phone,$sex,$hobbies,$avatar,$login,$password,$rank,$state,$fax,$cellphone,$mail;

    function __call($m,$p) {
            $v = strtolower(substr($m,3));
            if (!strncasecmp($m,'get',3))return $this-&gt;$v;
            if (!strncasecmp($m,'set',3)) $this-&gt;$v = $p[0];
    }
}</pre><p>Vous pourrez alors appeler et définir vos attributs comme si vous aviez tapé les 84 lignes d&#8217;accesseurs :</p><pre class="crayon-plain-tag">$user = new User();
$user-&gt;setName('CARRUESCO'); // Définis  $name = CARRUESCO
echo $user-&gt;getName(); // Affiche $name donc affiche CARRUESCO</pre><p>L&#8217;avantage étant que ce snippet ne s&#8217;active que si la méthode n&#8217;existe pas déjà, aussi<br />
si vous souhaitez créer une méthode getName dans votre classe qui effectue des opérations sur le nom<br />
avant de le retourner :</p><pre class="crayon-plain-tag">public function getName(){
    return strtoupper($this-&gt;name);
}</pre><p>Cette fonction sera prise en priorité par la classe.</p>
<p><strong>Le revers de la médaille</strong></p>
<p>Et oui, le petit soucis avec ces snippet, c&#8217;est que vos attributs ne sont plus vraiment privés,<br />
puisqu&#8217;il sont automatiquement accessibles depuis le snippet, dans certains cas<br />
ça peut être chiant, aussi je vous conseille d&#8217;ajouter une petite clause pour définir<br />
les attributs qui ne pourront pas être appelés de cette façon:</p><pre class="crayon-plain-tag">Class User{

private $name,$firstname,$town,$phone,$sex,$hobbies,$avatar,$login,$password,$rank,$state,$fax,$cellphone,$mail;
private $private = array('private','rank','avatar');

    function __call($m,$p) {
            $v = strtolower(substr($m,3));
            if (!strncasecmp($m,'get',3) &amp;&amp; !in_array($v,$this-&gt;private))return $this-&gt;$v;
            if (!strncasecmp($m,'set',3) &amp;&amp; !in_array($v,$this-&gt;private)) $this-&gt;$v = $p[0];
    }
}</pre><p>Dans ce code, tous les attributs seront accessibles en get/set, exceptés $private,$rank et $avatar</p>
<p>Si vous aussi vous avez des ptites techniques pour réduire la taille des classes, lâchez vous dans les commentaires <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </p>
<p>&nbsp;<br />
<strong>Edit:</strong> Je profite des débats lancés dans les commentaires pour donner mon point de vue <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" />  (c&#8217;est qu&#8217;ils<br />
ont l&#8217;esprit critiques mes idlenautes :p)</p>
<p><strong>Pourquoi ne pas utiliser les fonction __get et __set ?</strong></p>
<p>Pourquoi utiliser deux fonctions d&#8217;accession de 4 lignes chacune quand une seule fonction <em>__call</em> suffit ? <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </p>
<p>Mais sans même tenir compte de la taille, <em>__get</em> et <em>__set</em> ont, selon mon opinion, un gros inconvénients : il n&#8217;est pas possible<br />
de définir la forme d&#8217;appel. En effet <em>__get</em> et <em>__set</em> appelleront les attributs uniquement sous la forme</p><pre class="crayon-plain-tag">$object-&gt;attribut = 'toto'</pre><p>&nbsp;</p>
<p>Quand la fonction __call permettra (entre autres) de créer les appels sous forme de méthode :</p><pre class="crayon-plain-tag">$object-&gt;setAttribut('toto');</pre><p>&nbsp;</p>
<p>Outre le fait que certains développeurs (dont je fait partie) puissent trouver ça plus harmonieux, c&#8217;est aussi plus utile,<br />
l&#8217;appel au format méthode permet :</p>
<p>De dissocier un appel d&#8217;attribut potentiellement traité d&#8217;un appel d&#8217;attribut &#8220;brut&#8221;<br />
De ne pas croire que l&#8217;attribut est public (la forme $object-&gt;attribut = &#8216;toto&#8217; pouvant porter à confusion).<br />
Et plus important : de changer l&#8217;accessibilité ou le mode de traitement de l&#8217;attribut du jour au lendemain sans voir à faire de modifications sur le reste du code</p>
<p><strong>Pourquoi ne pas tous simplement placer tous les attributs en public ?</strong></p>
<p>Cela revient à demander &#8220;quel est l’intérêt de mettre les attributs en privés ?&#8221;, effectivement il est tout à fait possible de mettre<br />
les attributs en public, cela peut même paraître plus judicieux de prime abord, mais peut causer de gros problèmes lors de la maintenance et<br />
de l&#8217;évolutivité du code.</p>
<p>Prenons comme exemple notre classe utilisateur, à l&#8217;origine l&#8217;attribut<br />
$ville est un string, on effectue aucun traitement dessus, donc on décide de le mettre en public pour y accéder de la manière suivante:</p><pre class="crayon-plain-tag">echo $object-&gt;ville; //Affiche 'Gradignan';</pre><p>&nbsp;</p>
<p>Cela fonctionne parfaitement sans avoir besoin d&#8217;accesseur jusqu&#8217;au jour ou l&#8217;on décide que $ville sera plutot un id faisant référence à une table de ville.</p><pre class="crayon-plain-tag">echo $object-&gt;ville; //Affiche 8;</pre><p>&nbsp;</p>
<p>On souhaite donc effectuer un traitement sur la donnée $ville avant affichage pour obtenir son nom et non son id ce qui permettrait de ne pas avoir à modifier<br />
tous les appels sous la forme $object-&gt;ville de l&#8217;application, et zut ! Ce n&#8217;est plus possible ! Car l&#8217;attribut est appelé<br />
directement, aucun traitement n&#8217;est possible. On est donc obligé de modifier toutes les formes d&#8217;appel de l&#8217;application pour passer par une méthode, ce qui revient à taper tout les<br />
accesseurs, ou à utiliser des fonctions magiques comme <em>__call</em>, <em>__get</em> et <em>__set</em>.</p>
<p>En résumé, l&#8217;utilisation d&#8217;accesseurs en temps que &#8220;wrapper&#8221; sur des attributs privés devrait à mon sens TOUJOURS être utilisée même dans<br />
le cas ou ce wrapper ne fait à l&#8217;origine du projet que retourner l&#8217;attribut ou le setter sans traitement préalable, wrapper les attributs<br />
permet une meilleure maintenance évolutive sur ces derniers car il est possible d&#8217;effectuer un traitement sur la donnée (ce qui n&#8217;est pas<br />
le cas sur un appel d&#8217;attribut public) sans avoir à modifier l&#8217;ensemble du script, d&#8217;ou l&#8217;utilité des accesseurs en lieu et place des accès direct d&#8217;attributs.</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3492
title: NodeJs ~ 03 : Construction d’un mini projet (partie 1)
uri: NodeJs-03-Construction-d-un-mini-projet-(partie-1)
url: http://blog.idleman.fr/nodejs-03-construction-dun-mini-projet-partie-1/
content:
<p>Je voulais me lancer sur un seul tuto expliquant comment créer un petit projet mais plus j&#8217;avançais plus il y en avait à dire, aussi ai je scindé mon tuto en trois partie histoire de rendre la rédaction, comme la lecture, plus digeste.</p>
<p>Dans cette partie, nous allons apprendre à créer un serveur http &#8220;fonctionnel&#8221; avec nodejs et à publier un dossier web à travers ce serveur.</p>
<p><span id="more-3492"></span></p>
<p>Si je précise &#8220;fonctionnel&#8221; c&#8217;est que, bien que notre serveur soit bien plus aboutis que les tutos de découverte<br />
précédents, il lui manquera encore beaucoup de notions déjà existante dans les serveurs http existants.</p>
<p>En effet le but n&#8217;est pas de recréer un serveur http pour nodejs (nous verrons plus tard qu&#8217;il en existe déjà des tout fait parfaitement convenables comme express) mais de comprendre la logique de fonctionnement &#8220;basique&#8221; d&#8217;un serveur http tout en s&#8217;initiant à la technologie nodejs.<br />
Notre fil conducteur sera un petit projet web qui permettra &#8220;d&#8217;échanger&#8221; du texte, des fichiers, des liens etc&#8230; entre membres d&#8217;un même groupe de travail.</p>
<p>Comme je suis un type sympa, je fournirais toute la partie ennuyeuse qui ne nous intéresse pas, à savoir la création et l&#8217;intégration de l&#8217;interface graphique.</p>
<p>Vous pouvez trouver cette interface <a href="http://blog.idleman.fr/wp-content/uploads/2013/11/www-hi.zip">ICI</a>.</p>
<p>Bien, nous avons notre dossier web, créons maintenant un serveur qui tiens la route !! <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </p>
<p><strong>La structure du projet</strong></p>
<p>Commençons par créer notre dossier projet :</p>
<p>Notre projet vas s’appeler <strong>hi!</strong> (c’est plus court que hello world) et vas se diviser en deux parties : le serveur http à proprement parler et le dossier de publication www dans lequel vas se trouver notre site web</p>
<p><a href="media/f74d9967.image9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image9.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" alt="image" src="media/c3652ab0.image_thumb9.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/image_thumb9.png" width="197" height="390" border="0" /></a></p>
<p>Tout le code serveur sera donc placé dans server.js, conf.json permettra de stocker les constantes de configuration de ce dernier, 404.html sera un exemple d’erreur http, et le contenu du dossier www sera notre projet web (que je vous ai fournis ci dessus).</p>
<p>On retrouve les dossiers habituel d’un site web : css qui contiendra les fichiers de styles css, font qui contiendra les polices (ben oui on vas pas bosser en arial on a quand même plus de classe que ça) un dossier img pour (taddaaaa) les images !! Un dossier js pour le javascript. blablablah!!</p>
<p>Je ne m&#8217;étendrais pas sur le squelette en question, je part du principe que vous avez déjà des notions de javascript/css/html/ajax bref le b.a.-ba du site web, le but étant ici de nous concentrer sur nodejs.</p>
<p><strong>La création du serveur</strong></p>
<p>Nous allons créer un &#8220;équivalent&#8221; d’apache/lighttpd/nginx ou autre en plus light évidemment) que nous avons évoqué en <a href="http://blog.idleman.fr/nodejs-presentation-de-node-et-creation-dun-site-web/">tuto #1</a> (d’ailleurs j&#8217;en profiterais pour donner la réponse à l’énigme de l’image in-affichable <img alt="Tire la langue" src="media/22b6648b.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/wlEmoticon-smilewithtongueout.png" />)</p>
<p>On vas commencer par le serveur, ouvrons la page server.js et créons notre serveur http comme nous l’avons vu en tuto 1 avec tout de même quelques améliorations</p>
<p>Inclusion de la librairie http permettant de créer un serveur web</p><pre class="crayon-plain-tag">http = require('http');</pre><p>Récupération de la librairie url qui facilite l&#8217;analyse de l&#8217;url des requêtes reçues</p><pre class="crayon-plain-tag">url = require('url');</pre><p>Récupération de la librairie fs qui permet la gestion de fichiers (écriture, lecture&#8230;)</p><pre class="crayon-plain-tag">fs = require('fs');</pre><p>Création d&#8217;un serveur http sur un port<strong> pris totalement au hasard</strong>, le 69.</p><pre class="crayon-plain-tag">var httpServer = http.createServer(onRequest);
httpServer.listen(69);</pre><p>On ne prends pas le port 80 pour une raison pratique : il est souvent déjà pris pas un wamp, un apache ou n’importe quoi d’autre qui tourne sur votre machine.</p>
<p>Dès qu&#8217;une requête est reçu sur 127.0.0.1:69, la fonction onRequest (que nous allons écrire) est exécutée et prends pour paramètres un objet requête (ce qui est reçu) et un objet réponse (ce que le serveur vas retourner).</p>
<p>Écrivons maintenant la fonction onRequest qui vas faire tout le boulot de traitement du serveur :</p><pre class="crayon-plain-tag">function onRequest(request, response) {</pre><p>On récupère l&#8217;url requise et on la parse pour n&#8217;avoir que la partie qui nous intéresse</p><pre class="crayon-plain-tag">var pathname = url.parse(request.url).pathname;</pre><p>On récupère l&#8217;extension du fichier requis (html,css,js,jpg&#8230;)</p><pre class="crayon-plain-tag">var extension = pathname.split('.').pop();</pre><p>Si l&#8217;utilisateur ne spécifie pas de page dans la barre d&#8217;adresse, on prend l&#8217;index par défaut :&#8217;index.html&#8217;</p><pre class="crayon-plain-tag">if(pathname=='/') pathname = &quot;index.html&quot;;</pre><p>On définis l’entête de réponse au code 200 signifiant : &#8220;succès de la requête&#8221; et on vas également définir le<strong> type mime du fichier de retour</strong> (image/jpg pour un jpg, text/css pour un css etc..)</p>
<p>En effet c&#8217;est pour cette raison que notre image ne s&#8217;affichait pas en tutos 1, car nous tentions de la retourner au format text/hml, chaque fichier publié par notre serveur doit impérativement signaler<br />
son type de contenu au client (le navigateur) sans quoi celui ci sera mal interprété.</p>
<p>On vas donc créer un petit tableau json contenant quelques types mimes que nous allons utiliser :<em><em><br />
</em></em></p><pre class="crayon-plain-tag">var mime = {
&quot;css&quot; : &quot;text/css&quot;,
&quot;gif&quot; : &quot;image/gif&quot;,
&quot;jpg&quot; : &quot;image/jpeg&quot;,
&quot;jpeg&quot;: &quot;image/jpeg&quot;,
&quot;js&quot; : &quot;application/javascript&quot;,
&quot;ttf&quot; : &quot;font/ttf&quot;,
&quot;png&quot; : &quot;image/png&quot;
}</pre><p>On retournera donc le bon type mime en fonction de l’extension du fichier, ainsi qu&#8217;un code d&#8217;en-tête &#8220;200&#8243; signifiant que la requête s&#8217;est déroulée sans erreur :).</p><pre class="crayon-plain-tag">response.writeHead(200, {'Content-Type': mime[extension]});
try {</pre><p>On tente de lire le contenu du fichier demandé (en ajoutant la racine du dossier client : &#8220;www&#8221; ) et on le retourne à l&#8217;utilisateur</p><pre class="crayon-plain-tag">response.end(fs.readFileSync(&quot;./www/&quot; + pathname));
}catch(e){</pre><p><em><em>Si la lecture du fichier à échouée on renvoie un code d&#8217;erreur 404</em></em></p><pre class="crayon-plain-tag">response.writeHead(404, {'Content-Type': 'text/html'});</pre><p><em><em>on affiche le contenu de la page 404.html</em></em></p><pre class="crayon-plain-tag">response.end(fs.readFileSync('404.html'));
}
}</pre><p>Notre serveur est terminé, nous pouvons dès à présent le lancer!!</p>
<p><strong>Hey mais t&#8217;oublis la ptite page 404 que tu appelle en cas d&#8217;erreur!! </strong></p>
<p>C&#8217;était pour voir si vous suiviez ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>Donc on vas se créer une petite page 404.html au même niveau que le fichier server.js (inutile de la mettre dans le dossier www, c&#8217;est une page utilisée par le serveur) :</p>
<p><strong>404.html</strong></p><pre class="crayon-plain-tag">&amp;lt;h1&amp;gt;Erreur 404 - Fichier non trouv&eacute;&amp;lt;/h1&amp;gt;
&amp;lt;p&amp;gt;Pas de bol, r&eacute;essayez sans les moufles :D&amp;lt;/p&amp;gt;</pre><p>On fait sobre sur ce coup la, parce qu&#8217;on s&#8217;en fou un peu de la 404 et qu&#8217;on veux tester notre serveur :p.</p>
<p>Nous voila enfin avec un serveur opérationnel !</p>
<p><strong>Attends la tu ne vas pas nous laisser avec toutes ces constantes dégueulasses en dur dans le code ?!!!</strong></p>
<p>Okay okay, on vas faire un ptit fichier de config pour stoker tout ça :p, mais c&#8217;est vraiment parce que c&#8217;est vous (et parce que c&#8217;est hyper simple à faire en node :p)</p>
<p>On créé un fichier conf.json au même niveau que &#8220;server.js&#8221;, dans ce fichier on vas mettre les constantes (numéro de port du serveur, types mimes etc&#8230;) au format json :</p>
<p><strong>conf.json</strong></p><pre class="crayon-plain-tag">{
"http" :  {
"index": "index.html",
"port": 69,
"www": "./www/",
"mime": {
"css" : "text/css",
"gif" : "image/gif",
"jpg" : "image/jpeg",
"jpeg": "image/jpeg",
"js"  : "application/javascript",
"ttf"  : "font/ttf",
"png" : "image/png"
},
"error" : {
"404" : "404.html"
}
}
}</pre><p>Et maintenant on vas inclure ce fichier de conf dans notre server.js le plus simplement du monde :</p><pre class="crayon-plain-tag">conf = require('./conf.json');</pre><p>on peut alors se servir de notre objet json de conf dans l&#8217;ensemble du serveur :</p><pre class="crayon-plain-tag">//Récupération de nos configuration personnalisées
conf = require('./conf.json');
//Inclusion de la librairie http permettant de créer un serveur web
http = require('http');
//Récupération de la librairie url qui facilite l'analyse de l'url des requêtes reçues
url = require('url');
//Récupération de la librairie fs qui permet la gestion de fichiers (écriture, lecture...)
fs = require('fs');

//Création d'un serveur http sur le port spécifié dans conf.json (section http)
//Dès qu'une requête est reçu sur 127.0.0.1:port, la fonction onRequest est exécutée
//et prends pour paramètre un objet requête (ce qui est reçu) et un objet réponse (ce que le serveur vas retourner)
var httpServer = http.createServer(onRequest).listen(conf.http.port);

//Fonction onRequest est exécutée à chaque requête sur le serveur
function onRequest(request, response) {
//On récupère l'url requise et on la parse pour n'avoir que la partie qui nous intéresse
var pathname = url.parse(request.url).pathname;
//On récupère l'extension du fichier requis (html,css,js,jpg...)
var extension = pathname.split('.').pop();
//Si l'utilisateur ne spécifie pas de page, on prend l'index par défaut 'index.html' (spécifié dans conf.json)
if(pathname=='/') pathname = conf.http.index;
//On définis l’entête de réponse au code 200 signifiant : "succès de la requete" et
//on définit le type mime du fichier de retour (image/jpg pour un jpg, text/css pour un css etc..)
//Les types mimes sont définit dans le fichier json conf.
response.writeHead(200, {'Content-Type': conf.http.mime[extension]});
try {
//On lit le contenu du fichier demandé (en ajoutant la racine www spécifiée dans conf.json)
//et on le retour a l'utilisateur
response.end(fs.readFileSync(conf.http.www + pathname));
}catch(e){
//Si la lecture du fichier à échouée on renvoie un code d'erreur 404
response.writeHead(404, {'Content-Type': 'text/html'});
//on affiche le contenu de la page 404.html (chemin spécifiée dans conf.json)
response.end(e+fs.readFileSync(conf.http.error['404']));
}
}</pre><p><strong>Les tests</strong></p>
<p>On peut enfin tester notre serveur, ouvrons une console de commande et tapons :</p><pre class="crayon-plain-tag">cd /chemin/vers/notre/dossier/hi
node server.js</pre><p>(<strong>nb:</strong> sous windows vous devrez d&#8217;abord taper la lettre du lecteur ou se trouve votre dossier hi, si votre dossier se trouve sur <strong>d:\dev\hi!</strong> il vous faudra taper &#8220;<strong>d:</strong>&#8221; puis <strong>cd d:\dev\hi</strong>! et enfin <strong>node server.js</strong>).</p>
<p><strong>nb2:</strong> Si vous avez un pare-feu, il est possible que celui ci vous demande si vous voulez débloquer le serveur que vous venez de lancer, vous devez évidemment répondre oui.</p>
<p>Si tout se passe bien la console ne devrait pas être très bavarde, elle se contentera de faire un saut de ligne mais votre serveur sera bien actif, ouvrez un navigateur et tapez l&#8217;adresse :</p><pre class="crayon-plain-tag">http://127.0.0.1:69</pre><p>Et tattaaa! Vous arrivez sur notre magnifique squelette de site web avec le css et les images correctement chargées.</p>
<p><a href="media/d95e2e7e.Captured.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/Captured.jpg"><img class="aligncenter size-full wp-image-3498" alt="Captured" src="media/d95e2e7e.Captured.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/11/Captured.jpg" width="832" height="624" /></a></p>
<p>&nbsp;</p>
<p>Pour stopper le serveur vous pouvez fermer la console ou appuyer sur ctrl+C deux fois (du moins sous Windows, sous linux je ne sais pas).</p>
<p>Pour ceux qui ont loupés un épisode voila les sources complètes <a href="http://blog.idleman.fr/wp-content/uploads/2013/11/hi-tuto3.zip">ICI</a></p>
<p><strong>Les améliorations</strong></p>
<p>C&#8217;en est finit pour ce tuto, notez bien que nous n&#8217;avons fait que parcourir la surface du fonctionnement d&#8217;un serveur web, il manque de nombreuses améliorations à apporter, notamment des notions de sécurité et de nombreuses fonctionnalités “classiques” :</p>
<ul>
<li>Gestion des htaccess</li>
<li>Gestion de toutes les erreurs http (500,403&#8230;, ici nous renvoyons la 404 pour tous type d&#8217;erreur ce qui est incorrect)</li>
<li>Gestion de l&#8217;url rewritting</li>
<li>Gestion des virtual host</li>
</ul>
<p>Etc..etc&#8230; et le plus important : gestion des préprocesseurs, en effet nous retournons la sources de chaque fichier sans la traiter auparavant, ce qui rend impossible l&#8217;inclusion de code exécuter coté serveur directement sur nos pages du dossier www.</p>
<p>Ce qui pour le coup nous oblige à mélanger du code applicatif et du code serveur dans le même fichier, ce n&#8217;est évidemment pas l&#8217;idéal.</p>
<p>Nous pourrions développer cette partie, il suffit de créer une fonction qui traite la source avant de la retourner et qui utilise les expression régulière pour exécuter le code entre &lt;?js et ?&gt; coté serveur par exemple :),  mais ça prendrais un temps monstrueux pour très<br />
peu d&#8217;intérêt, d&#8217;autant qu&#8217;il existe déjà de nombreuses librairies qui s&#8217;en chargent, pour cette série de tutos nous nous cantonnerons donc à notre serveur de fortune :), pour les vrai site de production, on verra ensemble comment installer express et deux trois autres librairies indispensables.</p>


feed_id: http://blog.idleman.fr/?p=3510
title: In medio stat virtus
uri: In-medio-stat-virtus
url: http://blog.idleman.fr/in-medio-stat-virtus/
content:
<p>Honnêtement je ne me rappelle d’où ça vient, peut être Aristote? Socrate ? Justin Bieber ?</p>
<p>On s&#8217;en branle, ils sont tous morts (ou du moins on aimerait), mais la maxime reste tellement vrai que j&#8217;hésite sérieusement à me la faire tatouer sur la fesse gauche.</p>
<p><span id="more-3510"></span></p>
<p>Traduit littéralement ça doit donner un truc du genre : &#8220;la vertu est au milieu&#8221; à comprendre dans le sens :<br />
&#8220;Le bon sens est situé aux antipodes des extrêmes&#8221;. (okay ça pète vachement plus en latin&#8230;)</p>
<p>C&#8217;est applicable dans tous les domaines à tout instant de votre vie et quand on y réfléchit un peu on tombe raccord avec le principe dans 99% des évènements qui se présentent.</p>
<p><strong>Social :</strong> Trop gentil ? On vous marchera sur les pieds ? Trop méchant, vous finirez tous seul.<br />
<strong>Argent :</strong> Trop radin? Votre argent ne vous profitera jamais, trop dépensier ? Vous serez sans cesse sur la brèche.<br />
<strong>Amour :</strong> Trop présent ? Vous l&#8217;étoufferez ? Trop distant ? Elle passera a autre chose<br />
<strong>Politique :</strong> Trop de droite ? Vous négligerez l&#8217;aspect humain, trop de gauche ? L&#8217;assisto-cratie paralysera votre économie et encouragera les citoyens à dépendre de l’état.<br />
<strong>Religion :</strong> Trop croyant ? Vous risquez d&#8217;être ancré dans le passé, dépendant d&#8217;une doctrine, fanatique, prêchi-prêcha, mais ça sera pire si vous ne croyez en rien ni personne: plus d&#8217;ancre à laquelle s&#8217;accrocher (même inconsciemment) seul avec vous même dans les moments difficiles.<br />
<strong>Gastronomie :</strong> Trop gourmand ? Vous devenez obèse, problèmes de santé, difficultés relationnelles&#8230; Pas assez? Vous passez a côté de l&#8217;un des plus grands plaisirs de la vie.<br />
<strong>Personnalité :</strong> Trop timide ? Vous loupez des occasions de vous faire des amis, des amours, des jobs, des expériences&#8230; Trop confiant ? Vous n&#8217;écoutez plus que vous, ne vous remettez jamais en questions, devenez arrogant, exubérant voir horripilant.</p>
<p>Etc.. etc..</p>
<p>Sérieusement on peut l&#8217;appliquer a plein de cas même ridicules : tu recherches trop de performance sur ton application ? Ton code vas devenir hyper chiant à maintenir (et réciproquement), tu veux qu&#8217;il soit trop portable ? Tu pourras y ajouter moins de fonctionnalités, tu veux trop de fonctionnalités ? Tu vas niquer ta performance&#8230;</p>
<p>Tu écris des billets trop court sur ton blog, personne ne te comprends, tu en écrit des trop longs..</p>
<p>heuh..ben tu saoule tout le monde avec ta philosophie de comptoir&#8230;</p>
<p>bon&#8230;<br />
ben bon week end alors&#8230; <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/c5c367c6.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2013/12/wlEmoticon-openmouthedsmile.png" /></p>
<p>Bien à vous<br />
Idle</p>


feed_id: http://blog.idleman.fr/?p=3521
title: Le bordel de l’info #28
uri: Le-bordel-de-l-info-28
url: http://blog.idleman.fr/le-bordel-de-linfo-28/
content:
<p>Salut bande de rennes spasmophiles!! Vous en avez d’la chance!! A l’heure ou votre serviteur déménage un 40m² plein de bordel dans une Nissan Pixo, à l’heure ou les gratte-papiers manquent <a href="http://graphism.fr/le-guide-de-survie-antidrone/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+geoffreydorne+%28Graphisme+%26+interactivit%C3%A9+par+Geoffrey+Dorne%29">cruellement</a> d’inspiration, à l’heure ou la paranoïa des geeks devient <a href="http://graphism.fr/une-paulire-antisurveillance">source de créativité</a>, bref à <a href="http://korben.info/une-veritable-voiture-100-en-lego.html">l’heure du WTF</a> total vous êtes pépères, devant votre cheminé en train de vomir le fois gras poêlé de belle maman ! Vous ne consulterez que plus tard ce 28em  bordel de l’info et c’est bien dommage parce que nous avons déjà pas mal de bouzin en retard ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p><span id="more-3521"></span></p>
<ul>
<li>Savoir si l’un de vos compte associé à un <a href="https://www.haveibeenpwned.com/">email à été piraté</a> avec <em>Have i been pwned,</em> marrant, mon compte adobe est visiblement piraté (mais j’ignorais que j’en avais un alors c’est moins grave…)</li>
<li>On entends sans arrêt parler de spray ou de <a href="http://www.nikopik.com/2013/12/silic-lincroyable-t-shirt-intachable.html?utm_source=rss">t-shirt hydrophobes</a>, mais aucun lien ne permet d’acheter, tester le produit, je commence à me demander si ce n’est pas une grosse blague, quelqu’un à un lien sérieux sur le sujet (par sérieux j’entends “ou je peux dépenser inutilement l’argent que je n’ai pas”) ?</li>
<li><a href="http://dropplets.com/">Dropplets</a> est un système de blog gratuit kiss et self hosted qui fonctionne uniquement via l’envoie de fichiers écrits en markdown, joli intuitif et original dans la gestion, à tester rapidement.</li>
<li>La société <a href="http://moo.com">moo.com</a> m’a gentiment offert un carnet de stickers personnalisables <strong>SANS</strong> me demander de billets/liens sponsorisés en retour, donc par esprit de contradiction et parce que j’ai beaucoup aimé leurs démarche je me permet de glisser un ptit mot pour eux ici. Moo est un juste milieu entre Vistaprint (bas prix, qualité dégueulasse) et Easy flyer (qualité mais qui coute un rein) de plus leur gestionnaire de fabrication de cartes/stickers est pas mal foutu (pour du flash…) on peut seulement regretter l’aspect tristoune du site web quand le nom évoquait quelque chose de funky (je m’attendais a voir des vaches partout moi…).Je ferais p’tetre un ptit concours pour distribuer les stickers <strong>“Attention I.A méchante”</strong> (avec logo de yana) ou les mad pandas de l’idleblog si je ne les ai pas tous collés sur mon frigo d’ici le prochain post.</li>
<li>Encore un ptit <a href="http://www.warriordudimanche.net/article217/tipiak-recuperer-les-ressources-d-une-page-web">script made in warriorland</a> qui permet de choper simplement tous un tas de ressources sur une page précise, merci bronco <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </li>
<li><a href="http://tobiasahlin.com/spinkit/">Spinkit</a> propose quelques pré loader full css mode “flat design”, perso je reste sur mes gifs de <a href="http://preloader.net">preloader.net,</a> mais ça peut en intéresser quelques uns <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </li>
<li>Avis aux terroristes de bac à sable: un <a href="http://korben.info/mycryptochat-discutez-labri-des-yeux-indiscrets.html">tchat open source crypté</a> en AES 256 bits chez l’ami korben.</li>
<li><a href="http://www.65bits.com/online/epic-le-navigateur-qui-vous-rends-vraiment-anonyme.html">Epic</a> est un navigateur basé sur chromium (version open de chrome) qui multiplie les fonctionnalités pour conserver votre vie privée, transmission des requêtes cryptées https (vos recherches ne peuvent plus être pistées par vos FAI, passage automatique par un proxy (votre ip est remplacé par une ip étrangère), aucune données conservée par le navigateur etc..etc..</li>
<li>Grand jour !! Je viens <a href="http://lehollandaisvolant.net/?d=2013/12/11/14/17/55-non-bruler-un-billet-de-banque-nest-pas-illegal">d’apprendre un truc</a> !! Me reste plus qu’a trouver des billets… Merci le hollandais ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </li>
<li>Plus de ronds pour votre réception de nowel !! <a href="http://monsieurecup.blogspot.fr/2013/12/centre-de-table-pour-noel.html">Recyclez vos PQ</a> !! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </li>
<li>Quelques petites astuce pour <a href="http://www.funinformatique.com/augmenter-vitesse-connexion-internet-sur-windows/">booster votre adsl asthmatique</a> (sous windows)</li>
<li><a href="http://www.catswhocode.com/blog/7-little-known-but-super-useful-php-functions">7 fonctions super utiles mais inconnue de PHP</a> présentées par le chat.</li>
<li>Comment <a href="http://rss.idleman.fr/plugins/leedBrowser/browser.php?event=16582&amp;link=http://feedproxy.google.com/~r/semageek/~3/pa6ZW_Wa4EQ/">créer un starter rfid</a>  (badge radio passif comme à la cantine ou au bas de votre immeuble) pour voiture avec un arduino et une grosse paire de couilles (ben oui moi je prends pas le risque de démonter ma nissan pixo ^^)</li>
<li>Je n’aime pas trop relayer korben (généralement parce que tout le monde l’a déjà lu) mais j’ai testé <a href="http://korben.info/q10-un-editeur-de-texte-leger-et-en-plein-ecran.html">et approuvé Q10</a>, si j’arrive un jour à me mettre à l’écriture de mon roman SF, je pense me lancer la dessus.</li>
<li>Une <a href="http://www.nikopik.com/2013/11/le-meilleur-moyen-de-savoir-si-quelquun-espionne-vos-messages-ou-facebook-sur-votre-telephone.html">application smartphone</a> pour choper votre copine en train d’essayer de vous choper vous même à choper sa propre copine à elle (et BIM ! dans ton neurone !! :D).</li>
<li>Je ne connaissais que le brainfuck mais visiblement il existe au moins <a href="http://tutorialzine.com/2013/12/the-10-weirdest-programming-languages/">10 langages de développement</a> plus cons les uns que les autres, c’est beau l’informatique…</li>
<li>POURQUOI !!? Pourquoi en 5 ans d’informatique écolière je ne suis jamais tombé <a href="http://www.funinformatique.com/la-hackeuse-la-plus-sexy-de-la-planete/">sur ça</a> !</li>
<li><a href="https://www.fusioninvoice.com/">Fusion Invoice</a> est un gestionnaire de factures/clients open source en PHP, utile si vous vous lancer dans l’auto-entreprenariat et que vous n’avez pas le temps de vos coder votre propre erp.</li>
<li><a href="http://modeln.github.io/sDashboard/">Un petit framework javascript</a> de création/gestion de dashboard, utile à garder sous le coude il n’y en à pas tant, dommage que le css soit un peu vieillot (mais ça se soigne très bien à grands coup d’intégrateur).</li>
<li>Ma chérie m’a envoyé un coffre de polo dans la tronche, si je ne meurt pas d’un traumatisme cérébral d’ici quelques jours, je peux au moins vous promettre que j’ai perdu quelques centaines de milliers de neurones, les prochains post seront en conséquence encore plus cons et mal écrits, merci pour votre incompréhensible fidélité passée et pour votre compréhension future concernant la qualité narrative du blog.</li>
</ul>
<p>C’est tout pour cette fois, je vous laisse je vais chez le médecin voir si j’ai pas un hématome sous dural ( Oui, j’apprends des mots et c’est même pas en regardant le docteur house !! La méthode de l’IdleGirl est beaucoup plus frappante (hurk hurk hurk okay je sort).</p>
<p>Bises sur vos raies (hé oé! Application du <a href="http://blog.idleman.fr/in-medio-stat-virtus">medio stat virtus</a> oblige)</p>


feed_id: http://blog.idleman.fr/?p=3540
title: Raspberry PI ~ 22 : Créer une porte domotique (Partie 1)
uri: Raspberry-PI-22-Créer-une-porte-domotique-(Partie-1)
url: http://blog.idleman.fr/raspberry-pi-22-creer-une-porte-domotique-partie-1/
content:
<p>Ce post est le vingt deuxième d’une liste de tutoriels sur le raspberry PI,<a href="http://blog.idleman.fr/?page_id=2166"> cliquez ici</a> pour accéder au sommaire ! <img alt=":D" src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" /></p>
<p>Salut les poilus !! Vous faites quoi ce week end ?</p>
<p><em>* public en délire hurlant une réponse assourdissant et a peine audible *</em></p>
<p><strong>De la domotiiiquueeuhh !</strong></p>
<p><span id="more-3540"></span></p>
<p>Et ça tombe bien que vous soyez aussi enthousiastes parce que j&#8217;ai fait mes fonds de placard<br />
le week end dernier afin d&#8217;y déterrer ma porte domotique ! :).</p>
<p><a href="media/c44aaa69.DSC00332.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/DSC00332.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="" alt="" src="media/6092f3ab.DSC00332_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/DSC00332_thumb.jpg" width="505" height="422" border="0" /></a></p>
<p>Dans ce tuto nous allons voir comment créer de A à Z une porte domotique sans connaissances poussées de code, d&#8217;électronique etc.. et pour environ 35€ (alimentation comprise)  :) (bon ok il vous faudra quand même une porte classique et c&#8217;est ce qui risque de vous coûter le plus cher. Sérieusement vous avez vu le prix de l&#8217;aggloméré chez Leroy merlin? On croirait acheter du teck ou du marbre !! Mais je digresse.)</p>
<p><strong>Concrètement que va faire cette porte ?</strong></p>
<ul>
<li>Elle va se déverrouiller / verrouiller depuis l&#8217;interface web YANA</li>
<li>Elle va se déverrouiller / verrouiller depuis un bouton poussoir (situé du coté intérieur évidemment)</li>
<li>Elle va se déverrouiller / verrouiller en Bluetooth dès qu&#8217;elle détecte votre téléphone portable (sécurisé par code évidemment)</li>
<li>Elle va tenir un historique précis des personnes qui ont déverrouillées la porte, cet historique sera consultable sur l&#8217;interface yana</li>
</ul>
<p><a href="media/e28c95d7.DSC00313.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/DSC00313.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="" alt="" src="media/c073aa9a.DSC00313_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/DSC00313_thumb.jpg" width="528" height="351" border="0" /></a></p>
<p>Le système de code Bluetooth vous permettra non seulement d&#8217;ouvrir votre porte en gardant les mains libres et sans chercher vos clés mais aussi de créer des codes temporaires limités dans le temps ou dans le nombre d&#8217;utilisations pour votre entourage :</p>
<ul>
<li>La femme de ménage ne pourra rentrer que le mardi entre 14h et 14h30</li>
<li>Votre voisin ne pourra entrer qu&#8217;une fois par semaine pour nourrir le chat</li>
<li>Votre chérie ne pourra rentrer que si elle a sortis les poubelles</li>
<li>etc. etc&#8230;</li>
</ul>
<p><strong>Assez tergiversé, c&#8217;est l&#8217;heure du quart d&#8217;heure de honte <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </strong></p>
<p>Si vous n&#8217;arrivez pas a voir la vidéo, c&#8217;est que votre navigateur ne supporte pas la balise vidéo html5, vous pouvez donc sois télécharger<br />
un navigateur récent et gratuit (chrome, firefox etc..) sois <a href="http://blog.idleman.fr/wp-content/uploads/2014/02/Séquence-01_1.flv">télécharger la vidéo</a> et la lire en locale.<br />
<div style="width: 625px; max-width: 100%;" class="wp-video"><!--[if lt IE 9]><script>document.createElement('video');</script><![endif]-->
<video class="wp-video-shortcode" id="video-3540-1" width="625" height="360" preload="metadata" controls="controls"><source type="video/x-flv" src="http://blog.idleman.fr/wp-content/uploads/2014/02/Séquence-01_1.flv" /><a href="http://blog.idleman.fr/wp-content/uploads/2014/02/Séquence-01_1.flv">http://blog.idleman.fr/wp-content/uploads/2014/02/Séquence-01_1.flv</a></video></div></p>
<p>Si cette vidéo consternante ne vous a pas fait faire un <a href="http://fr.wikipedia.org/wiki/Accident_vasculaire_c%C3%A9r%C3%A9bral">AVC</a>, c&#8217;est que je n&#8217;ai pas encore tout à fait touché le fond et je m&#8217;en excuse (si seulement j&#8217;arrivais à coincer un monteur vidéo compatissant sur bordeaux on n&#8217;en serait pas là :p)</p>
<p>Ya pas à dire le montage vidéo, c&#8217;est un métier&#8230; mais revenons à nos boutons, il est temps<br />
de mettre les papattes au cambouis.</p>
<p><strong>Comment que ça fonctionne ?</strong></p>
<ol>
<li>La carte Bluetooth, une fois alimentée, vas émettre toute seule en Bluetooth, son nom aux quatre vents et hurler à tue tête</li>
<li>qu&#8217;elle est &#8220;open&#8221; (la ptite coquine ! :D)</li>
<li>Le téléphone vas, grâce à l&#8217;application android, rechercher le nom de la carte Bluetooth</li>
<li>du montage dans le périmètre et s&#8217;y connecter (en électronique, pas de préliminaires)</li>
<li>Le téléphone vas envoyer un code de 4 caractères (mot de passe alphanumérique préalablement configuré dans l&#8217;appli Android et dans l&#8217;arduino)</li>
<li>La carte Bluetooth reçois le code, le transmet à l&#8217;atmega qui contient le code</li>
<li>L&#8217;atmega compare le code reçu au code valide (stocké en dur dans l&#8217;atmega), si le code est bon, l&#8217;atmega envoie &#8220;1&#8243; sur son pin relié à la carte relais pendant 5 secondes</li>
<li>La carte relais, une fois activée par l&#8217;atmega, vas ouvrir le circuit (donc couper) d&#8217;alimentation 12V de la gâche électrique</li>
<li>La gâche électrique, une fois qu&#8217;elle n&#8217;est plus alimentée vas se déverrouiller, la porte pourra donc s&#8217;ouvrir</li>
<li>Une fois les 5sc passée, l&#8217;atmega envois de nouveau 0 à  la carte relais, qui ferme le circuit de la gâche, celle ci, de nouveau alimentée, verrouille la porte.</li>
<li>Un appuis sur le bouton du montage aura le même effet qu&#8217;un code Bluetooth valide.</li>
</ol>
<p><strong>Quelques détail sur les composants</strong></p>
<p>Nous noterons l’arrivée de trois nouveaux composants dans notre circuit habituel : la carte bluetooth, le régulateur de tension 220V/5V et la gâche électrique.</p>
<p>Ces trois composants méritent donc une (courte) explication quant à leurs utilités et leurs fonctionnement.</p>
<p><span style="text-decoration: underline;">La gâche :</span> Est ce que vous pouvez trouver de plus proche d’une serrure électrique, c’est un simple composant qui fonctionne ici en 12V avec deux simples bornes + et -, si vous l’alimentez, la gâche vas se “bloquer” et la petite partie métallique dans laquelle est coincée le loquet de la serrure ne peux plus s’échapper. Si vous cessez de l’alimenter, la gâche se déverrouille et la porte est libérée.</p>
<p>Notez que je vous ai décrit là le fonctionnement d’une gâche en mode “safe”, il existe un second mode (le mode “secure”) qui vas faire exactement l’inverse, à savoir qu’elle se verrouillera lorsqu’elle cessera d’être alimenté et se libérera lorsque vous l’alimenterez. (cf : la vidéo sur le pour et le contre des deux modes), dans ce tuto nous utilisons le “safe”.</p>
<p><span style="text-decoration: underline;">La carte Bluetooth :</span> Carte qui vas permettre de mettre et de recevoir des infos en Bluetooth, elle est alimenté généralement en 5v et propose la plupart du temps 4 bornes :</p>
<ol>
<li>Une borne + (5v)</li>
<li>Une borne – (la masse)</li>
<li>Une borne tx (permet de transmettre des information d’un porte série vers le Bluetooth)</li>
<li>Une borne rx (permet de recevoir une information Bluetooth et de la retourner en série).</li>
</ol>
<p>Vous l’aurez compris, dès qu’on voudra envoyer des infos on utilisera la borne tx, lorsqu’on en recevra ce sera la borne rx qui sera mise à contribution <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/71c02151.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/wlEmoticon-smile.png" />.</p>
<p><span style="text-decoration: underline;">Le régulateur de tension :</span> L’idée est simple, ce composant vas prendre une tension en entrée, et l’abaisser ou la relever en sortie.</p>
<p>L’avantage étant que le composant accepte une “<strong>plage</strong>’&#8217;” de tension en entrée, pour le notre, qu’on lui envoie du 7V ou du 35V  il sortira toujours du 5V (la plage de tension max/min est spécifiée sur la fiche technique ici vous l&#8217;aurez compris une valeur de 7v à 35v donc avec notre 12v on est dans les clous).</p>
<p>On vas s’en servir ici pour transformer le 12V de l’alim en 5V de manière à alimenter tous les composants qui ne supportent que du 5V (c’est à dire tous sauf la gâche, les lopettes !).</p>
<p>Les régulateurs ressemblent généralement à des transistors (boite noire à trois pattes) trois pattes donc :</p>
<p><a href="media/dce81630.regulateur.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/regulateur.jpg"><img class="aligncenter size-full wp-image-3544" alt="regulateur" src="media/dce81630.regulateur.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/regulateur.jpg" width="312" height="224" /></a></p>
<ul>
<li>Une patte pour le + 12V (patte 1, vous pouvez y envoyer n&#8217;importe quelle valeur entre 7V et 35V)</li>
<li>Une patte pour la masse (patte 2)</li>
<li>Une patte (patte3) qui ressortira du 5V.</li>
</ul>
<p>il faudra donc relier le + et le – de  l’alim 12 v à deux des pattes, on se servira ensuite de la patte  - et de la patte qui reste pour avoir notre + 5v.</p>
<p>Alors qu&#8217;est ce qu&#8217;il nous faut comme matos pour bidouiller tout ça ?</p>
<p><strong>Le matériel</strong></p>
<p>Comme ebay change constamment ses [<em>placez une insulte ici</em>] de liens des fiches de composants dans l&#8217;unique but de me rendre fou (oui je suis un peu ego-centré mais je vous empapaoute:p) , je vous donne des résultats de recherches, prenez au plus proche des mots clés évoqués, vous n&#8217;êtes pas obligé de prendre exactement le même matos que moi faites juste attention aux caractéristiques (tensions de sortie, tension d&#8217;entrée, type du composant&#8230;).</p>
<p>N&#8217;oubliez pas de recherches avec les filtres &#8220;dans le monde entier&#8221; et &#8220;par prix + livraison les moins cher&#8221; histoire d&#8217;avoir les rabais des chinois.</p>
<ul>
<li><span style="line-height: 1.714285714; font-size: 1rem;">1x transformateur 220V/12VAC  (mots clé :<a href="http://www.ebay.fr/sch/i.html?_nkw=+220V%2F12VAC+220V+TO+DC+12V+5A+60W+Power+Supply+AC+adaptor+L&amp;_in_kw=1&amp;_ex_kw=&amp;_sacat=0&amp;_okw=&amp;_oexkw=&amp;_adv=1&amp;_udlo=&amp;_udhi=&amp;LH_BIN=1&amp;_ftrt=901&amp;_ftrv=1&amp;_sabdlo=&amp;_sabdhi=&amp;_samilow=&amp;_samihi=&amp;_sadis=200&amp;_fpos=&amp;LH_SubLocation=1&amp;_fsradio2=%26LH_PrefLoc%3D1&amp;_sargn=-1%26saslc%3D2&amp;_salic=71&amp;_saact=71&amp;LH_SALE_CURRENCY=0&amp;_sop=15&amp;_dmd=1&amp;_ipg=50">220V TO DC 12V 5A 60W Power Supply AC adapto</a>r) j&#8217;en ai topé un à ~9€</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">1x <a href="http://www.ebay.fr/sch/i.html?_odkw=r%C3%A9gulateur+l7805&amp;_ftrv=1&amp;_sadis=200&amp;_ipg=50&amp;_adv=1&amp;LH_BIN=1&amp;_sop=15&amp;LH_SALE_CURRENCY=0&amp;_osacat=0&amp;LH_PrefLoc=2&amp;_dmd=1&amp;_ftrt=901&amp;_trksid=p2045573.m570.l1313.TR0.TRC0.Xl7805&amp;_nkw=l7805&amp;_sacat=0&amp;_from=R40">régulateur l7805 </a>(ou un autre qui sort du 5V avec du 12V en entrée) 1,7€</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">1x carte Bluetooth (<a href="http://www.ebay.fr/sch/i.html?_sadis=200&amp;_ipg=50&amp;LH_BIN=1&amp;LH_SALE_CURRENCY=0&amp;_from=R40&amp;_ftrt=901&amp;_ftrv=1&amp;_adv=1&amp;_sop=15&amp;_dmd=1&amp;_sacat=0&amp;_nkw=TTL+Bluetooth+Module+%2B+adapter+board+work+for+arduino&amp;LH_PrefLoc=2&amp;_nkwusc=TTL+Bluetooth+Module+%2B+adapter+board+work+for+Arduin&amp;_rdc=1">TTL Bluetooth Module + adapter board work for Arduino</a>) ~ 7€</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">1x LED quelconque (facultatif) </span></li>
<li>1x résistance quelconque pour protéger la led du dessus (facultatif)</li>
<li>1x <a href="http://www.ebay.fr/sch/i.html?_odkw=ztt+16&amp;_sadis=200&amp;_ipg=50&amp;LH_BIN=1&amp;LH_SALE_CURRENCY=0&amp;_from=R40&amp;_ftrt=901&amp;_ftrv=1&amp;_adv=1&amp;_sop=15&amp;_osacat=0&amp;LH_PrefLoc=2&amp;_dmd=1&amp;_trksid=p2045573.m570.l1313.TR0.TRC0.Xceramic+resonator+ztt+16&amp;_nkw=ceramic+resonator+ztt+16&amp;_sacat=0">résonateur céramique 16 mhz</a> ~3€ les 5 (les 4 restants seront utilisable sur les autres tutos)</li>
<li>1x<a href="http://www.ebay.fr/sch/i.html?_odkw=ceramic+resonator+ztt+16&amp;_sadis=200&amp;_ipg=50&amp;LH_BIN=1&amp;LH_SALE_CURRENCY=0&amp;_from=R40&amp;_ftrt=901&amp;_ftrv=1&amp;_adv=1&amp;_sop=15&amp;_osacat=0&amp;LH_PrefLoc=2&amp;_dmd=1&amp;_trksid=p2045573.m570.l1313.TR3.TRC0.A0.Xatmega+328+with+bootloader&amp;_nkw=atmega+328+with+bootloader&amp;_sacat=0"> atmega 328 (avec bootloader arduino</a>) ~3€</li>
<li>1x <a href="http://www.ebay.fr/sch/i.html?_odkw=atmega+328+with+bootloader&amp;_sadis=200&amp;_ipg=50&amp;LH_BIN=1&amp;LH_SALE_CURRENCY=0&amp;_from=R40&amp;_ftrt=901&amp;_ftrv=1&amp;_adv=1&amp;_sop=15&amp;_osacat=0&amp;LH_PrefLoc=2&amp;_dmd=1&amp;_trksid=p2045573.m570.l1313.TR0.TRC0.Xpush+button&amp;_nkw=push+button&amp;_sacat=0">bouton poussoir </a>(n&#8217;achetez pas au dessus de 1€)</li>
<li>1x <a href="http://www.ebay.fr/sch/i.html?_odkw=5v+relay&amp;_sadis=200&amp;_ipg=50&amp;LH_BIN=1&amp;LH_SALE_CURRENCY=0&amp;_from=R40&amp;_ftrt=901&amp;_ftrv=1&amp;_adv=1&amp;_sop=15&amp;_osacat=0&amp;LH_PrefLoc=2&amp;_dmd=1&amp;_trksid=p2045573.m570.l1313.TR0.TRC0.X5v+relay+module&amp;_nkw=5v+relay+module&amp;_sacat=0">carte module relais 5V</a> ~1.20€</li>
<li>1x gâche électrique (<a href="http://www.ebay.fr/sch/i.html?_odkw=5v+relay+module&amp;_sadis=200&amp;_ipg=50&amp;LH_BIN=1&amp;LH_SALE_CURRENCY=0&amp;_from=R40&amp;_ftrt=901&amp;_ftrv=1&amp;_adv=1&amp;_sop=15&amp;_osacat=0&amp;LH_PrefLoc=2&amp;_dmd=1&amp;_trksid=p2045573.m570.l1313.TR0.TRC0.Xelectric+door+strike+12v&amp;_nkw=electric+door+strike+12v&amp;_sacat=0">electric door strike</a>) ~20€ (j&#8217;ai réussi à en trouver une à 12 mais j&#8217;en ai chié)</li>
<li>Quelques fils, une porte et un peu de bon sens <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </li>
</ul>
<p>Si vous n&#8217;avez pas de plateforme arduino pour programmer l&#8217;atmega référez vous au tuto 15, sinon suivez<br />
bêtement le guide.</p>
<p><strong>Les branchements</strong></p>
<p>Voila un schéma relativement correct du branchement complet incluant<br />
le régulateur et l&#8217;atmega seul (ce qui n&#8217;est pas le cas dans la vidéo de démo<br />
ou j&#8217;étais encore en développement du prototype, ne vous inquiétez donc pas si vous voyiez quelques différences).</p>
<p><a href="media/4412c5dd.montage1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/montage1.jpg"><img class="aligncenter size-full wp-image-3639" alt="montage" src="media/4412c5dd.montage1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/montage1.jpg" width="1111" height="807" /></a></p>
<p>&nbsp;</p>
<p>Quelques remarques en vrac :</p>
<ul>
<li>Le code étant encore un peu &#8220;jeune&#8221; coté arduino, le bouton est hyper sensible, la moindre variation d&#8217;une micro seconde peu faire s&#8217;activer le bouton sans raison, si vous avez ce soucis n&#8217;hésitez pas a dégager le bouton dans un premier temps pour vos tests bluetooth.</li>
<li>Sur le dessin on vois une prises jack pour l&#8217;alimentation 12V, mais vous pouvez simplement brancher votre adaptateur 220/12v à la place sans passer par un jack (c&#8217;est juste pour faire plus propre)</li>
<li>Faites bien attention au sens de l&#8217;atmega (petite encoche vers le haut) et du régulateur</li>
<li>Le code couleur de la résistance à été pris au hasard ne vous y fiez pas, il vous faut une valeur de résistance suffisante pour que votre led ne grille pas, si vous ne savez pas la calculer vous pouvez acheter une led qui se branche directement sur du 5v ou de pas mettre de led du tout.</li>
<li>Mon logiciel de dessin ne propose pas tous les composants existants, il est donc possible que votre composant n&#8217;ai pas exactement la même tronche, aussi fiez vous aux inscription du schéma (gnd, vcc, tx, rx etc&#8230;).</li>
<li>Vous noterez que l&#8217;atmega à deux vcc et deux gnd (qui sont en fait relié en interne) on alimente donc uniquement un des deux coté et on peut se servir des deux cotés pour des raisons pratiques.</li>
</ul>
<p><strong>Le code (coté arduino</strong>)</p>
<p>Vous pouvez trouver le <a href="http://idleman.fr/ressources/ARDUINO/tuto_22_porte_bluetooth.ino">fichier .ino ICI.</a><br />
- Ouvrez le avec l&#8217;arduino IDE (il vous demandera certainement de créer un dossier du même nom, dites oui)<br />
- Branchez l&#8217;atmega de la future porte sur votre plateforme arduino<br />
- Branchez votre plateforme arduino en usb à votre PC<br />
- Cliquez sur <strong>téléverser</strong> (dieu que ce terme est moche en français&#8230;)<br />
- Décrochez l&#8217;atmega de la plateforme et replacez le dans le circuit de la porte</p>
<p>Notez que le mot de passe correcte est pour le moment &#8220;en dur&#8221; dans le code, si vous voulez<br />
le changer (et c&#8217;est vivement conseillé) modifiez &#8220;<strong>idle</strong>&#8221; avec le mot de passe qui vous plait, MAIS <strong>CONSERVEZ UN MOT DE PASSE A 4 CARACTÈRES</strong>, le programme étant pour le moment fait pour ne prendre que 4 caractères en compte (je vais améliorer ça).</p>
<p><strong>Le code (coté téléphone)</strong></p>
<p>Vous pouvez télécharger<a href="http://idleman.fr/ressources/ANDROID/YanaBluetooth.apk"> l&#8217;application android ICI.</a><br />
Comme je n&#8217;ai pas de compte développeur android pour la proposer sur le market (il faut payer pour proposer des applications gratuites, c&#8217;est le monde à l&#8217;envers :p) il vous faudra décocher la case  &#8220;Ne faire confiance qu&#8217;aux appli provenant du market&#8221;.</p>
<p>Je placerais les sources de l&#8217;appli android sous mon github dès que j&#8217;ai une minute, n&#8217;hésitez pas à faire vos pull request si vous avez des améliorations sous la patte (et il y a de quoi améliorer&#8230;).</p>
<p><strong>Utilisation</strong></p>
<ol>
<li>Branchez votre circuit au 220v (faites attentions a vos fesses quand vous branchez pour la première fois, on est jamais assez prudent avec le 220v)</li>
<li>Sur votre téléphone, allez dans paramètre de config sans fil &#8211;&gt; Bluetooth &#8211;&gt; scannez les périphériques et appairez celui qui porte le nom &#8220;BOLUTEK&#8221;. Si vous prenez une carte Bluetooth autre que la mienne, le nom sera différent, généralement c&#8217;est la marque de la carte.</li>
<li>Le code d&#8217;appairage est &#8220;1234&#8243; (idem sur la pluparts des cartes d&#8217;autres marques, sinon c&#8217;est 0000).</li>
<li>Lancez l&#8217;application android et cliquez sur le bouton de config.</li>
<li>Renseignez le nom de l&#8217;appareil &#8220;BOLUTEK&#8221; et le code secret de 4 chiffres stocké dans le code de l&#8217;arduino (par défaut: &#8220;idle&#8221;)</li>
<li>Relancez l&#8217;application, normalement ça devrait fonctionner, si ça plante, n&#8217;hésitez pas à redémarrer votre téléphone).</li>
</ol>
<p><strong>Les points à améliorer</strong></p>
<p>Ce circuit est évidemment sujet à améliorations, voici les points  d’optimisation que j&#8217;ai pu relever:</p>
<ul>
<li>Utilisation d&#8217;une batterie de secours et d&#8217;une gâche en &#8220;normally secure&#8221; au lieu du normally safe</li>
<li>Utilisation du capteur à effet de hall pour savoir si la porte est ouverte ou fermée</li>
<li>Utilisation d&#8217;un piston électro mécanique pour ouvrir/fermer le battant automatiquement</li>
<li>Gestion des codes dynamiques depuis l&#8217;interface yana (codes limités dans le temps, le nombre d&#8217;utilisation ou autres) avec historique des entrées/sorties (partie 2 du tuto)</li>
<li>Optimisation du code en général</li>
<li>Application android : recherche automatique de la porte toutes les minutes (avec  gestion intelligente</li>
<li>du Bluetooth pour économiser l&#8217;énergie).</li>
<li>Utiliser un attiny85 au lieu d&#8217;un atmega (plus petit, un peu moins cher et moins &#8220;surdimensionné&#8221; en règle générale)</li>
<li>Utiliser l&#8217;horloge interne (8mhz) de l&#8217;atmega au lieu du résonateur (16 mhz)</li>
</ul>
<p>C&#8217;est tout pour cette fois (ça vous fait déjà un petit peu à digérer) dans la seconde<br />
partie du tuto, on essaiera de relier notre porte à notre rpi (et ça croyez moi c&#8217;est pas<br />
du gâteau :p) de manière à intégrer d&#8217;avantage notre porte à notre domotique</p>
<p>Bien à vous,</p>
<p>Idle</p>
<p>&nbsp;</p>


