# articles

feed_id: https://blog.genma.fr/?Quelques-trucs-sympa-avec-SSH
title: genma : Quelques trucs sympa avec SSH
uri: genma-Quelques-trucs-sympa-avec-SSH
url: https://blog.genma.fr/?Quelques-trucs-sympa-avec-SSH
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2679.jpg?1502291748" width="150" height="79"><div><p><strong>Le fichier config</strong></p>
<p>Pour éviter les attaques par défaut sur le port 22 pour SSH, il est courant de changer de port. Du coup, il faut lancer ssh avec l'option -p. Exemple</p>
<div dir="ltr"><code>ssh -p 1234 moi@monserveur.org</code></div>
<p>De plus, l'utilisateur que l'on veut utiliser peut être un utilisateur différent de la session courante. On peut aussi vouloir renommer le nom du serveur pour simplifier</p>
<p>Pour simpifier tout ça, il y a le fichier config qui se trouve /.ssh/config</p>
<div dir="ltr"><code>Extrait du fichie ~/.ssh/config<br><br>
###################################<br>
# PERSO #<br>
###################################<br>
host cloud<br> User moi<br> hostname cloud.monserveur.org<br> Port 1234<br> IdentityFile /home/genma/.ssh/SSHKey</code></div>
<p>Et du coup la commande ci-dessus</p>
<div dir="ltr"><code>ssh -p 1234 moi@monserveur.org</code></div>
<p>deviendra</p>
<div dir="ltr"><code>ssh moi@cloud</code></div>
<p><strong>Avoir une bannière personnalisé à la connexion ssh</strong></p>
<p>Quand je suis connecté, j'aime bien avoir une petite personnalisation du genre :</p>
<div dir="ltr"><code>genma@PC~$ ssh genma@cloud.monserveur.org<br> .____________.<br> MM. .MM | |<br> "MM._______.MM" | Le cloud |<br> / \\ | de Genma |<br> / dMMb dMMb \\ | |<br> / dM"""Mb dM"""Mb \\ |____________|<br> | MMMMM"/O\\"MMMMM | ||o<br> | "MMM"/ \\"MMM" | .dMMM 8<br> | dMMMMMMMM<br> \\ \\ / dMMMMMMMP<br> AMMMMMMMMM\\_____/MMMMMMMMMMMM"<br>
Enter passphrase for key '/home/genma/.ssh/SSHKey': </code></div>
<p>Pour celà, j'ai créé (repris en l'adaptant un peu) un dessin en ASCII art. Il faut ensuite créer un fichier</p>
<div dir="ltr"><code>/etc/banner </code></div>
<p>qui contient l'ASCII art dedans. Et aux connexions SSH suivantes, ce dessin apparaîtra.</p>
<p><strong>Recevoir un SMS - Freemobile à la connexion SSH</strong></p>
<p>J'avais rédigé un tutoriel <a href="https://blog.genma.fr/?SSH-Notification-par-SMS-Freemobile-a-la-connexion" title="SSH Notification par SMS Freemobile à la connexion">SSH Notification par SMS Freemobile à la connexion</a> expliquant d'être notifié par sms lors de toutes initialisation d'une connexion sftp ou ssh quand on est un utilisateur Freemobile. Je vous renvoie donc <a href="https://blog.genma.fr/?SSH-Notification-par-SMS-Freemobile-a-la-connexion" title="SSH Notification par SMS Freemobile à la connexion">vers cette astuce</a>.</p>
<p><strong>Avoir un prompt coloré</strong></p>
<p>Pour avoir un prompt (invite de commande) coloré et savoir de suite, visuellement, sans avoir à lire sur quel machine je suis (je met du vert, du bleu, du violet) ou si je suis en root (je met alors du rouge), j'utilise la technique du prompt coloré que j'avais décrite ici : <a href="https://blog.genma.fr/?Prompt-colore-pour-son-shell-2547" title="Prompt coloré pour son shell">Prompt coloré pour son shell</a></p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Quelques-trucs-sympa-avec-SSH" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://www.system-linux.eu/index.php?post/2017/10/24/Petit-test-simpliste-de-Ani-Shell.php
title: System Linux : Petit test simpliste de Ani-Shell.php
uri: System-Linux-Petit-test-simpliste-de-Ani-Shell-php
url: https://www.system-linux.eu/index.php?post/2017/10/24/Petit-test-simpliste-de-Ani-Shell.php
content:
<p><img src="media/e5bb918c.ani-shell.jpg" data-original-source="https://www.system-linux.eu/public/images/ani-shell.jpg" alt="ani-shell.jpg" title="ani-shell.jpg, oct. 2017"></p>


<p>Charmant fichier php...</p>    <p>Pour tester la "chose" il vous faut un apache et php sur votre bécane :</p>

<pre>
# apt-get update &amp;&amp; apt install apache2
</pre>

<pre>
# apt install php7.0 libapache2-mod-php7.0
</pre>

<pre>
# service apache2 restart
</pre>


<p>Vérifier que ça fonctionne :</p>

<pre>
# vi /var/www/html/phpinfo.php
</pre>


<p>Copier ceci dedans :</p>

<pre>
<?php phpinfo(); ?>
</pre>


<p>Télécharger la "chose" :</p>


<p>Cette bestiole est détecté en malware alors faites gaffe... :</p>


<p><a href="https://sourceforge.net/projects/ani-shell/files/?source=navbar">https://sourceforge.net/projects/ani-shell/files/?source=navbar</a></p>

<pre>
# mv Ani-Shell.php /var/www/html/
</pre>


<p>Allons voir :</p>


<p><a href="http://localhost/Ani-Shell.php">http://localhost/Ani-Shell.php</a></p>

<pre>
Username : lionaneesh
Password : lionaneesh
</pre>


<p>Il a des copains aussi :</p>

<pre>
git clone https://github.com/JohnTroony/php-webshells.git
</pre>


<p>Amusez vous bien <img src="media/28b0cec9.smile.png" data-original-source="https://www.system-linux.eu/themes/default/smilies/smile.png" alt=":)"></p>
<p><img src="media/ff41ece7.4238771a81824a8b9dc3850d6a8e9d26" data-original-source="http://cdn.libravatar.org/avatar/4238771a81824a8b9dc3850d6a8e9d26" alt="Gravatar de System Linux" class="gravatar" /><br/><i>Original post of <a href="https://www.system-linux.eu/index.php?post/2017/10/24/Petit-test-simpliste-de-Ani-Shell.php" title="Visit the source">System Linux</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Guillaume Kulakowski : <a href="">Remi + Borsalino = php5.2 + MySQL 5 mis &agrave; jour</a> (20/01/2008)</li><li>Hyla project : <a href="">Les applications Php de gestion de fichiers</a> (02/09/2008)</li><li>Blogmotion : <a href="">Test du nouveau modem routeur Netgear de Numericable</a> (18/07/2011)</li></ul></div></p>


feed_id: https://blog.remirepo.net/post/2017/10/28/Astuces-de-configuration-de-PHP
title: Remi Collet : Astuces de configuration de PHP
uri: Remi-Collet-Astuces-de-configuration-de-PHP
url: https://blog.remirepo.net/post/2017/10/28/Astuces-de-configuration-de-PHP
content:
<p>Traduction de l'article <a href="https://developers.redhat.com/blog/2017/10/25/php-configuration-tips/">PHP Configuration Tips</a>.</p>

<p>Cet article regroupe les informations actualisées qui ont été publiées ici au cours des dernières années.</p>    <p><strong>RHEL 7</strong> fournit le serveur HTTP Apache  version 2.4 et PHP version 5.4.</p>

<p>Le configuration la plus commune pour Apache et PHP utilise mod_php, mais présente quelques limites et inconvénients :</p>

<ul><li>une seule versions de mod_php peut être utilisée</li>
	<li>mod_php tourne dans le processus httpd, sans isolation</li>
	<li>mod_php n'est supporté que pour le MPM <em>prefork</em></li>
</ul><p>Cet article explique comment déléguer l'exécution des scripts PHP à un service d'arrière plan utilisant le protocole  <strong>FastCGI</strong>, comment utiliser une <strong>version récente de PHP</strong>, comment utiliser <strong>plusieurs versions de PHP</strong>, et comment améliorer les <strong>performances</strong> d'Apache..</p>

<p>Le paquet du serveur HTTP d'apache disponible dans RHEL fournit l'ensemble des fonctionnalités nécessaires pour une telle configuration.</p>

<h2>1. Basculer vers php-fpm</h2>

<h3>1.1. Supprimer mod_php</h3>

<p>Il est conseillé de supprimer ou de désactiver mod_php afin de réduire la consommation mémoire de chaque processus httpd.</p>

<p>Vous pouvez soit déinstaller le paquet <strong>php</strong>, qui ne contient que ce module</p>

<pre>
yum remove php</pre>

<p>ou simplement le désactiver en commentant la directive <em>LoadModule</em> directive dans le fichier /etc/httpd/conf.modules.d/10-php.conf.</p>

<pre>
# disabled # LoadModule php5_module modules/libphp5.so</pre>

<h3>1.2. Installer php-fpm</h3>

<p>Vous pouvez maintenant installer php-fpm et activer son service</p>

<pre>
yum install php-fpm
systemctl start php-fpm
systemctl enable php-fpm</pre>

<p>Remarque: le paquet <strong>php-fpm</strong> est disponible dans le canal <strong>optional</strong>, qui doit être activé.</p>

<p>Pour configurer l'exécution des scripts PHP, modifiez ou créez le fichier de configuration /etc/httpd/conf.d/php.conf :</p>

<p>Les lignes suivantes interdise l'accès aux fichiers .user.ini depuis les clients Web!</p>

<pre>
  <Files ".user.ini">
    Require all denied
  </Files></pre>

<p>Activation de la gestion du <em>Multiviews</em> par php:</p>

<pre>
  AddType text/html .php</pre>

<p>Ajouter index.php à la liste des fichiers utilisés pour fournir le contenu d'un dossier :</p>

<pre>
  DirectoryIndex index.php</pre>

<p>La ligne suivante active les entêtes d'autorisation :</p>

<pre>
  SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=</pre>

<p>Rediriger l'exécution des scripts PHP vers le service FPM</p>

<pre>
  <FilesMatch \\.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9000"
  </FilesMatch></pre>

<p>Si des directives <strong>php_value</strong> sont présentes dans ce fichier, vous devez les supprimer, elles ne concernent que mod_php.</p>

<p>Vous pouvez maintenant redémarrer le serveur web et, avec une simple page de test</p>

<pre>
<?php phpinfo();</pre>

<p>vérifier qui PHP est désormais exécuté à par le service FastCGI:</p>

<pre>
  PHP Version 5.4.16
  Server API= FPM/FastCGI</pre>

<h3>1.3. Réglages de PHP</h3>

<p>Le fichier de configuration principal est /etc/php-fpm.conf, qui contient beaucoup de commentaires expliquant chaque option.</p>

<p>FPM pour exécuter plusieurs services (<em>pool</em>), chacun exécutant les scripts PHP avec des options pouvant être différentes, le fichier de configuration du service par défaut (www) est /etc/php-fpm.d/www.conf, qui contient aussi de nombreux commentaires.</p>

<h4>1.3.1. php_value, php-flag</h4>

<p>Les options de PHP peuvent être configurées en utilisant les directives <em>php_value, php_admin_value,</em> <em>php_flag</em> et <em>php_admin_flag</em> :</p>

<ul><li>avec mod_php,  dans les fichiers de configuration d'Apache</li>
	<li>avec FPM, dans les fichiers de configuration de chaque service (<em>pool</em>)</li>
</ul><h4>1.3.2. .htaccess</h4>

<p>Les options peuvent, en plus, être définies pour un dossier spécifique :</p>

<ul><li>avec mod_php, en utilisant un fichier <strong>.htaccess</strong></li>
	<li>avec FPM, en utulisation un fichier <strong>.user.ini</strong> (les mot clés php_* ne sont pas nécessaires).</li>
</ul><h4>1.3.3. Réglages des processus</h4>

<p>FPM fonctionne en service et lance plusieurs processus pour gérer les différentes requêtes en parallèle, il existe plusieurs modes :</p>

<ul><li>pm = ondemand, un processus est lancé uniquement lors d'une nouvelle connexion, et arrêté lorsqu'il n'y a pas d'activité, ce mode est  adapté pour les environnements de développement</li>
	<li>pm = dynamic, un groupe de processus est toujours en fonctionnement, plus de processus seront démarrés en cas de besoin, ce mode adapté à la production</li>
	<li>pm = static, un nombre fixe de processus est toujours présent, ce mode est adapté à la production et peut améliorer les performances</li>
</ul><h3>1.4. Réglages du Serveur HTTP Apache</h3>

<h4>1.4.1. Mode <em>threadé</em></h4>

<p>Par défaut, le serveur HTTP apache utilise un ensemble de processus pour gérer les requêtes entrantes (MPM <em>prefork</em>).</p>

<p>Comme nous n'utilisons plus mod_php, nous pouvons basculer sur un MPM <em>threadé</em> (<em>worker</em> or <em>event</em>), et c'est un ensemble de threads qui gérera les requêtes, réduisant le nombre de processus, la consommation mémoire, et améliorant les performances, en particulier lorsqu'il s'agit de servir de nombreux fichiers statiques.</p>

<p>Changer leMPM utilisé dans le fichier de configuration /etc/httpd/conf.modules.d/00-mpm.conf :</p>

<pre>
  # disabled # LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
  # disabled # LoadModule mpm_worker_module modules/mod_mpm_worker.so
  LoadModule mpm_event_module modules/mod_mpm_event.so</pre>

<h4>1.4.2. Unix Domain Socket</h4>

<p>Par défaut, FPM écoute sur un socket réseau, mais il peut aussi utiliser un socket local (UDS), ce qui peut améliorer sensiblement les performances :</p>

<p>Dans la configuration du service (<em>pool</em>) <strong>FPM</strong> :</p>

<pre>
  listen = /run/php-fpm/www.sock
  listen.owner = apache
  listen.mode = 0660</pre>

<p>Dans la configuration du serveur <strong>Apache</strong> :</p>

<pre>
  SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"</pre>

<h4>1.4.2. Séparation du frontal et des serveurs applicatifs</h4>

<p>Par défaut, FPM écoute les requêtes entrantes sur un socket réseau local, il est évidement possible d'utiliser un serveur séparé, une machine virtuelle ou un containeur (une instance docker)</p>

<p>Dans le configuration du service (<em>pool</em>) <strong>FPM</strong> :</p>

<pre>
  listen = 10.0.0.2:9000
  listen.allowed_clients = 10.0.0.1</pre>

<p>Dans la configuration du serveur <strong>Apache </strong>:</p>

<pre>
  SetHandler "proxy:fcgi://10.0.0.2:9000"</pre>

<h4>1.4.3 Plusieurs serveurs applicatifs</h4>

<p>Pour traiter plus de requêtes simultanément, vous pouvez désirer répartir la charger entre plusieurs serveurs PHP, ce qui est très facile.</p>

<p>Exemple de configuration du serveur <strong>Apache</strong> avec 3 serveurs applicatifs :</p>

<pre>
  # Création du répartiteur de charge
  <Proxy balancer://phpfpmlb>
    BalancerMember fcgi://10.0.0.2:9000
    BalancerMember fcgi://10.0.0.3:9000
    BalancerMember fcgi://10.0.0.4:9000
  </Proxy>
  # Redirection de l'exécution des scripts PHP
  <FilesMatch \\.php$>
    SetHandler "proxy:balancer://phpfpmlb"
 </FilesMatch></pre>

<h2>2. Utilisation d'une version récente de PHP</h2>

<p>RHEL fournit PHP version <strong>5.4</strong>, qui était la version courante lors de la publication de RHEL-7, mais qui peut être trop ancienne pour des projets récents.</p>

<p>PHP version <strong>5.6</strong>, <strong>7.0</strong> et <strong>7.1</strong> sont maintenant supportés sur RHEL, fournit dans le produit Red Hat Software Collections (<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/2/html/2.4_Release_Notes/index.html">RHSCL</a>).</p>

<p>Dans l'example ci-dessous, nous utiliserons la version 7.0, mais s'applique à l'identique pour les autres versions.</p>

<h3><strong>2.1. Installation</strong></h3>

<p>Installation de la  <em>Software Collection</em>, après avoir activé le canal RHSCL:</p>

<pre>
  yum install rh-php70</pre>

<p>Installation du service FPM service pour cette version:</p>

<pre>
  yum install rh-php70-php-fpm</pre>

<p>Installation des extensions supplémentaires nécessaires :</p>

<pre>
  yum install rh-php70-php-mbstring rh-php70-php-pgsql rh-php70-php-opcache</pre>

<p><strong>Astuce</strong> : comparer la liste des extensions disponibles, pour s'assurer que tout ce qui est nécessaire est présent.</p>

<pre>
  php --modules | tee /tmp/54
  scl enable rh-php70 'php --modules' | tee /tmp/70
  diff /tmp/54 /tmp/70</pre>

<p><strong>Astuce </strong>: ne jamais se fier au nom des paquets, mais préférer le nom des extensions (e.g. php-mysqli ou rh-php70-php-simplexml), en effet la découpage des paquets peut changer entre les versions.</p>

<h3>2.2. Utiliser une nouvelle version de PHP</h3>

<p>Lorsqu'on utilise FPM, c'est aussi simple que d’arrêter l'ancien service et de démarrer le nouveau:</p>

<pre>
  systemctl stop  php-fpm
  systemctl start rh-php70-php-fpm</pre>

<h3>2.3. Paquet additionnels</h3>

<p>Les <em>Software Collections</em> fournissent les même extensions que les paquets standard de RHEL.</p>

<p>Les utilisateurs sont habitués à trouver des extensions supplémentaires dans le dépôt <a href="https://fedoraproject.org/wiki/EPEL">EPEL</a>, de la même manière, des extensions sont disponibles dans le dépôt communautaire <strong>centos-sclo-sclo</strong>, pour plus d'information, cherchez <strong>sclo-php</strong> sur le site <a href="https://www.softwarecollections.org/en/scls/?search=sclo-php">https://www.softwarecollections.org/</a>.</p>

<h2>3. Utiliser plusieurs versions de PHP</h2>

<p>Puisque l'exécution de PHP est redirigée version le service FastCGI service par la directive <strong>SetHandler</strong>, elle peut être définie pour chaque hôte virtuel, chaque projet ou chaque dossier.</p>

<p>Dans l'exemple ci-dessous, nous utiliserons PHP version 5.4 du système de base (pour des applications anciennes, qui a été configuré précédement)  et PHP version 7.1 simultanément.</p>

<h3>3.1. Installation</h3>

<p>Installation de la <em>Software Collection</em>, après avoir activé le canal RHSCL:</p>

<pre>
  yum install rh-php71 rh-php71-php-fpm rh-php71-php-mbstring rh-php71-php-opcache ...</pre>

<p>Configuration de FPM pour écouter sur un port différent de celui utilisé par le service php-fpm service par défaut, dans le fichier /etc/opt/rh/rh-php71/php-fpm.d/www.conf.</p>

<pre>
  listen = 127.0.0.1:9071</pre>

<p>Configurer SELinux pour ne pas bloquer ce port :</p>

<pre>
  semanage port -a -t http_port_t -p tcp 9071</pre>

<p>Démarrer le service :</p>

<pre>
  systemctl start rh-php71-php-fpm</pre>

<p>Il est désormais possible de choisir la version de PHP utilisée pour chaque dossier dans le fichier de configuration du serveur Apache :</p>

<p>Exemple:</p>

<pre>
  # Utiliser PHP 7.1 par défaut
  <FilesMatch \\.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9071"
  </FilesMatch>
  # Utiliser PHP 5.4 pour une ancienne application
  <Directory /var/www/html/old>
    <FilesMatch \\.php$>
      SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
  </Directory></pre>

<h2>4. Conclusion</h2>

<p>J'espère que ce petit article a illustré les nombreux bénéfices de basculer sur FPM pour vos applications PHP:</p>

<ul><li>isolation des processus entre le frontal web (httpd) et les serveurs applicatifs (fpm)</li>
	<li>amélioration des performances</li>
	<li>utilisation des versions modernes de PHP</li>
	<li>utilisation de plusieurs versions de PHP</li>
</ul>
<p><img src="media/3d2d1a35.2665280f5ed66efe5e772da3f0403a2c" data-original-source="http://cdn.libravatar.org/avatar/2665280f5ed66efe5e772da3f0403a2c" alt="Gravatar de Remi Collet" class="gravatar" /><br/><i>Original post of <a href="https://blog.remirepo.net/post/2017/10/28/Astuces-de-configuration-de-PHP" title="Visit the source">Remi Collet</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Remi Collet : <a href="">Red Hat va fournir PHP 7.0 pour RHEL</a> (07/11/2016)</li><li>Remi Collet : <a href="">Red Hat va fournir PHP 7.1 pour RHEL (et CentOS)</a> (05/10/2017)</li><li>Remi Collet : <a href="">Red Hat fournit PHP 5.6 pour RHEL (et CentOS)</a> (23/06/2015)</li><li>Remi Collet : <a href="">Paquets PHP supl&eacute;mentaires pour RHSCL</a> (23/02/2017)</li><li>Remi Collet : <a href="">Apache HTTP Server et r&eacute;partiteur de charge vers PHP FPM</a> (17/09/2015)</li></ul></div></p>


feed_id: https://blog.bandinelli.net/index.php?post/2017/10/28/Tomato-by-Shibby-est-mort-Vive-LEDE-%21
title: Pierre-Alain Bandinelli : Tomato by Shibby est mort ? Vive LEDE !
uri: Pierre-Alain-Bandinelli-Tomato-by-Shibby-est-mort-Vive-LEDE
url: https://blog.bandinelli.net/index.php?post/2017/10/28/Tomato-by-Shibby-est-mort-Vive-LEDE-%21
content:
<p>Si j'en crois Wikipedia, l'histoire du micrologiciel Tomato remonte au vénérable Linksys WRT54G et au projet HyperWRT qui avait été développé pour ce routeur. HyperWRT a été supporté par les bénévoles de 2004 à 2008 et en 2008 un fork aura lieu et mènera à Tomato qui sera développé jusqu'en version 1.28. Et là, nouvel abandon, et nouveaux forks, celui de Shibby (un développeur polonais) acquiert une certaine renommée. En 2017, deux vulnérabilités majeures sont publiées :</p>
<ul><li>l'une concerne le logiciel dnsmasq (un petit serveur DNS/DHCP) : elle est publiée le 2 octobre 2017 sous le numéro CVE-2017-14491. Brièvement, une faille est détectée qui permet l'exécution de code distant sur une machine propulsant dnsmasq</li>
<li>la seconde est KRACK, la découverte par un chercheur belge d'une faille dans le protocole WPA2</li>
</ul><p>Deux très bonnes raisons de mise à jour !</p>


<p>Tous les utilisateurs de firmware de routeurs &amp; points d'accès se sont alors tournés vers les fournisseurs de ceux-ci, et les utilisateurs de Tomato by Shibby ont attendu avec impatience la sortie d'une nouvelle version. Malheureusement, deux semaines après ces annonces, aucun signe de vie et le site qui hébergeait les données de Tomato by Shibby n'est plus accessible au moment où j'écris ces lignes.</p>


<p>Il y a de nombreuses distributions basées sur Tomato by Shibby et d'autres forks de Tomato (cf. la page de Wikipedia sur Tomato, cependant si celle-ci est un jour, aucun des forks n'a été mis à jour post-annonce de KRACK ce qui n'augure rien de bon). Le code source étant disponible, de bonnes âmes expertes sauront peut-être faire renaître la tomate de ses cendres.</p>


<p>Pas de panique, il semble que LEDE soit une bonne alternative à Tomato dans la plupart des cas. Supporté par une communauté qui semble un peu plus large (Tomato by Shibby était, ne semble-t-il, soutenu que par un seul homme), LEDE est un fork d'OpenWRT. La dernière version 17.01.4 est très stable, très pratique et a été patchée pour KRACK !</p>


<p>Il est délicat de comparer LEDE et Tomato : là où Tomato se borne (bornait ?) à propulser routeurs et autres périphériques réseau, LEDE (Linux Embedded Development Environment) veut aller plus loin et propose une véritable micro-distribution avec gestion de paquets (avec l'utilitaire opkg). L'interface graphique LuCI de LEDE est très agréable, elle comporte moins de fonctionnalités que Tomato et il est probable qu'il faille recourir plus fréquemment à la ligne de commande de LEDE pour les paramétrages complexes possibles dans Tomato (par ex. la QoS, la gestion avancée des VLAN etc...). Mais dans les situations simples, LEDE peut-être un remplacement immédiat à Tomato. Pour les cas complexes, la migration est à évaluer, surtout si personne ne reprend le flambeau de Shibby !</p>


<p>Pour découvrir LEDE, c'est <a href="https://lede-project.org/">ici</a>.</p>
<p><img src="media/046c52ed.f0dc90a616e4df8216da2ee2b645f9c7" data-original-source="http://cdn.libravatar.org/avatar/f0dc90a616e4df8216da2ee2b645f9c7" alt="Gravatar de Pierre-Alain Bandinelli" class="gravatar" /><br/><i>Original post of <a href="https://blog.bandinelli.net/index.php?post/2017/10/28/Tomato-by-Shibby-est-mort-Vive-LEDE-%21" title="Visit the source">Pierre-Alain Bandinelli</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


title: Pierre-Alain Bandinelli : Comment LEDE a sauvé mes "vieux" points d'accès Wifi
uri: Pierre-Alain-Bandinelli-Comment-LEDE-a-sauvé-mes-vieux-points-d-a
feed_id:
https://blog.bandinelli.net/index.php?post/2017/10/28/Comment-LEDE-a-sauv%C3%A9-mes-vieux-points-d-acc%C3%A8s-Wifi

url:
https://blog.bandinelli.net/index.php?post/2017/10/28/Comment-LEDE-a-sauv%C3%A9-mes-vieux-points-d-acc%C3%A8s-Wifi

content:
<p>J'avais acheté il y a peut-être 2-3 ans des petits points d'accès Wifi d'une marque chinoise. Lors de la divulgation de KRACK, je vérifiais le site du fabricant mais je constatais qu'aucune mise à jour n'était publiée pour ces appareils.</p>


<p>Je me tournais alors vers <a href="https://lede-project.org/">LEDE</a>, le fork open source d'OpenWRT. En quelques minutes, j'identifiais le matériel dans la <a href="https://lede-project.org/toh/start">liste des matériels supportés</a>, je téléchargeais la version 17.01.4 publiée le 18 octobre avec les corrections nécessaires pour KRACK.</p>


<p>L'installation de LEDE sur les points d'accès fut très facile :</p>
<ol><li>réinitialiser les points d'accès à l'aide du bouton RESET</li>
<li>se connecter à l'interface du constructeur chinois, et se rendre dans la section "Firmware upgrade"</li>
<li>téléverser le fichier de micrologiciel de LEDE</li>
<li>... patienter pendant le processus et le redémarrage</li>
<li>se connecter sur http://192.168.1.1 pour trouver LuCI, l'interface graphique de LEDE</li>
</ol><p>Deux enseignements :</p>
<ul><li>si vous ne connaissez pas LEDE, c'est une très belle distribution pour les routeurs/points d'accès et autres petits périphériques du genre ; une bien pratique suite à OpenWRT</li>
<li>le llbre est une bonne solution à l'obsolescence et peut apporter une pérennité d'usage de matériels délaissés par les fabricants</li>
</ul>
<p><img src="media/046c52ed.f0dc90a616e4df8216da2ee2b645f9c7" data-original-source="http://cdn.libravatar.org/avatar/f0dc90a616e4df8216da2ee2b645f9c7" alt="Gravatar de Pierre-Alain Bandinelli" class="gravatar" /><br/><i>Original post of <a href="https://blog.bandinelli.net/index.php?post/2017/10/28/Comment-LEDE-a-sauv%C3%A9-mes-vieux-points-d-acc%C3%A8s-Wifi" title="Visit the source">Pierre-Alain Bandinelli</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: http://debian-facile.org/viewtopic.php?id=19634
title: debian-facile.org : Présentation du Manuel de référence Debian
uri: debian-facile-org-Présentation-du-Manuel-de-référence-Debian
url: http://debian-facile.org/viewtopic.php?id=19634
content:
<span><strong>Le guide de référence Debian<br></strong></span><br><strong>Le guide de référence Debian est destiné à procurer un large aperçu du système Debian en tant que guide de l?utilisateur d?un système installé. Il couvre de nombreux aspects de l?administration du système à l?aide d?exemples de commandes de l?interpréteur pour les non-développeurs.<br></strong><br><span>Le but de ce document:</span><br><br>    fournir un aperçu et passer les cas marginaux (vue d?ensemble) ;<br>    le garder court et simple ;<br>    ne pas réinventer la roue (utiliser des liens pointant vers les références existantes) ;<br>    mettre l?accent sur les outils n?ayant pas d?interface graphique ou en mode console (utiliser des exemples en ligne de commande) ;<br><br><br><span>On y trouvera:</span><br><br><em> Toutes les bases pour comprendre et administrer un système type Unix.</em><br><br>    L'administration des utilisateurs ;<br>    le compte administrateur ;<br>    la gestion des permissions ;<br>    le système de fichiers ;<br><br><em>Toutes les bases de la gestion des paquets<br></em><br>    Les mises à jour ;<br>    les opérations de base pour la gestion des paquets ;<br>    aptitude ;<br>    apt-get ;<br>    apt-cache ;<br>    les archives Debian ;<br>    création d?une petite archive publique de paquets ;<br><br><em>Des explications sur l'initialisation du système</em><br><br>Les différentes étapes du processus d?amorçage du système ;<br>    l'Initialisation des modules du noyau ;<br><br><em>Des notions sur l'authentification</em><br><br>    Les fichiers de configuration importants ;<br>    gestion des informations des comptes et des mots de passes ;<br>    avoir un mot de passe de qualité ;<br>    sudo ;<br>    mot de passe sûr avec internet ;<br>    sécuriser le mot de passe de l?administrateur ;<br><br><em>Des explications sur la configuration réseau</em><br><br>    La gestion du périphérique réseau ;<br>    La configuration du réseau ;<br>    Le pare-feu ;<br><br><em>Des présentations sur les applications réseau</em><br><br>    Le navigateur web ;<br>    le courrier électronique ; <br>    leur configuration ;<br>    les serveurs POP3/IMAP4 ;<br>    Le serveur et les utilitaires d'impression ;<br>    Les serveurs d'accès à distance comme SSH ;<br><br><em>Tout savoir sur votre interface graphique (X Window)</em><br><br>    Configurer votre environnement de bureau ;<br>    Le serveur X ;<br>    Démarrer le système X Window ;<br>    les applications de bureautique ;<br>    les applications utilitaires pour X ;<br><br><em>Comprendre les paramètres linguistiques</em><br><br>    Le clavier ;<br>    l'affichage de sortie ;<br>    la reconfiguration des paramètres linguistiques ;<br><br><em>On trouvera aussi un chapitre astuces</em><br><br>    Commandes colorisées ;<br>    afficher les fichier ouverts par un processus ;<br>    tracer l?activité d?un programme;<br>    astuces de maintenance du système ;<br>    astuces relatives au stockage des données ;<br>    gestion de l'espace disque ;<br>    créer le fichier image du disque ;<br>    le noyau Linux ;<br>    La virtualisation ;<br><br><em>On apprendra à synchroniser, archiver, sauvegarder</em><br><br>    Partager, copier et archiver ;<br>    sauvegarder et restaurer ;<br>    et plus encore ;<br><br><em>Il est aussi proposer un chapitre sur la conversion de données </em><br><br>    Imprimer convenablement une page de manuel ;<br>    créer une page de manuel ;<br>    fusionner deux fichiers PS ou PDF ;<br>    extraire des données XML<br>    etc...<br><br><br><span><strong>Ce document est parcemé de petites choses qui facilitent sa compréhension, on y verra</strong>:</span><br><span><br>Des mises en garde</span><br><br><em>Attention<br>"En utilisant une source d?archive mixte, vous devez vous assurer par vous-même de la compatibilité des paquets car Debian ne la garantit pas.<br>S?il existe des incompatibilités de paquets, vous pouvez casser votre système. Vous devrez être capable d?apprécier ces exigences techniques.<br>L?utilisation de sources mixtes d?archives aléatoires est une opération entièrement facultative et son utilisation est quelque chose que je ne vous encourage pas à faire."</em><br><br><span>Des avertissements</span><br><br><em>Avertissement<br>"Ne jouez pas avec les chargeurs d?amorçage sans avoir un support de secours amorçable (CD ou disquette) créé à partir des images du paquet grub-rescue-pc.<br>Il vous permettra de démarrer votre système sans même avoir de chargeur initial fonctionnel sur le disque dur."<br></em><br><br><span>Des astuces</span><br><br><em>Astuce<br>Les n?uds de périphériques n?ont pas besoin d?être statiques pour les règles de montage se trouvant dans « /etc/fstab ».<br>Vous pouvez utiliser UUID à la place de leur nom de périphérique tel que« /dev/sda » pour monter les périphériques.<br>Consultez Section 9.5.3, « Accès à une partition en utilisant l?UUID ».</em><br><br><span>Des Tableaux <br></span><br><em>    Tableau 4.7. Liste des services et ports sûrs et non sûrs;<br>    Tableau 6.1. Liste de navigateurs web;<br>    Tableau 6.2. Liste des paquets de greffons pour les navigateurs;<br>    ETC...<br></em><br><br><span>Des notes</span><br><br><em>Note<br>Une fois que quelqu?un a accès à l?interpréteur de commandes de l?administrateur, il peut accéder à l?ensemble du système et en réinitialiser tous les mots de passe. <br>De plus, il peut compromettre le mot de passe de n?importe quel utilisateur en utilisant des outils de cassage de mots de passe par force brute tels que les paquets john et crack<br>(consultez Section 9.4.11, « Vérification de la sécurité et de l?intégrité du système »).<br>Ces mots de passes cassés peuvent permettre de compromettre d?autres systèmes.<br></em><br><br><em>Note<br>L?installation de logiciels tels que scribus (KDE) sous l?environnement de bureau GNOME est acceptable puisqu?il n?existe pas de fonctionnalité équivalente sous l?environnement de bureau de GNOME.<br>Cependant, l?installation de nombreux paquets ayant les mêmes fonctionnalités pollue votre menu.<br></em><br><br><span>Des exemple de fichiers</span><br><br><em>Script d?exemple pour la sauvegarde du système</em><br><br><div><font><pre><div><span>#!/bin/sh -e</span><br><span># Copyright (C) 2007-2008 Osamu Aoki <osamu@debian.org>, Public Domain</span><br><span>BUUID</span>=<span>1000</span>; <span>USER</span>=osamu <span># UID and name of a user who accesses backup files</span><br><span>BUDIR</span>=<span>"/var/backups"</span><br><span>XDIR0</span>=<span>".+/Mail|.+/Desktop"</span><br><span>XDIR1</span>=<span>".+/\\.thumbnails|.+/\\.?Trash|.+/\\.?[cC]ache|.+/\\.gvfs|.+/sessions"</span><br><span>XDIR2</span>=<span>".+/CVS|.+/\\.git|.+/\\.svn|.+/Downloads|.+/Archive|.+/Checkout|.+/tmp"</span><br><span>XSFX</span>=<span>".+\\.iso|.+\\.tgz|.+\\.tar\\.gz|.+\\.tar\\.bz2|.+\\.cpio|.+\\.tmp|.+\\.swp|.+~"</span><br><span>SIZE</span>=<span>"+99M"</span><br><span>DATE</span>=$<span>(</span><span>date</span> <span>--utc</span> +<span>"%Y%m%d-%H%M"</span><span>)</span><br><span>[</span> <span>-d</span> <span>"<span>$BUDIR</span>"</span> <span>]</span> <span>||</span> <span>mkdir</span> <span>-p</span> <span>"BUDIR"</span><br><span>umask</span> 077<br><span>dpkg</span> <span>--get-selections</span> \\<span>*</span> <span>></span> <span>/</span>var<span>/</span>lib<span>/</span>dpkg<span>/</span>dpkg-selections.list<br>
debconf-get-selections <span>></span> <span>/</span>var<span>/</span>cache<span>/</span>debconf<span>/</span>debconf-selections<br><br><span>{</span><br><span>find</span> <span>/</span>etc <span>/</span>usr<span>/</span><span>local</span> <span>/</span>opt <span>/</span>var<span>/</span>lib<span>/</span>dpkg<span>/</span>dpkg-selections.list \\<br>
     <span>/</span>var<span>/</span>cache<span>/</span>debconf<span>/</span>debconf-selections <span>-xdev</span> <span>-print0</span><br><span>find</span> <span>/</span>home<span>/</span><span>$USER</span> <span>/</span>root <span>-xdev</span> <span>-regextype</span> posix-extended \\<br>
  <span>-type</span> d <span>-regex</span> <span>"<span>$XDIR0</span>|<span>$XDIR1</span>"</span> <span>-prune</span> <span>-o</span> <span>-type</span> f <span>-regex</span> <span>"<span>$XSFX</span>"</span> <span>-prune</span> <span>-o</span> \\<br>
  <span>-type</span> f <span>-size</span>  <span>"<span>$SIZE</span>"</span> <span>-prune</span> <span>-o</span> <span>-print0</span><br><span>find</span> <span>/</span>home<span>/</span><span>$USER</span><span>/</span>Mail<span>/</span>Inbox <span>/</span>home<span>/</span><span>$USER</span><span>/</span>Mail<span>/</span>Outbox <span>-print0</span><br><span>find</span> <span>/</span>home<span>/</span><span>$USER</span><span>/</span>Desktop  <span>-xdev</span> <span>-regextype</span> posix-extended \\<br>
  <span>-type</span> d <span>-regex</span> <span>"<span>$XDIR2</span>"</span> <span>-prune</span> <span>-o</span> <span>-type</span> f <span>-regex</span> <span>"<span>$XSFX</span>"</span> <span>-prune</span> <span>-o</span> \\<br>
  <span>-type</span> f <span>-size</span>  <span>"<span>$SIZE</span>"</span> <span>-prune</span> <span>-o</span> <span>-print0</span><br><span>}</span> <span>|</span> <span>cpio</span> <span>-ov</span> <span>--null</span> <span>-O</span> <span>$BUDIR</span><span>/</span>BU<span>$DATE</span>.cpio<br><span>chown</span> <span>$BUUID</span> <span>$BUDIR</span><span>/</span>BU<span>$DATE</span>.cpio<br><span>touch</span> <span>$BUDIR</span><span>/</span>backup.stamp</div></pre></font></div><p><br><br><br><strong>Comme on le voit ce document peut être votre livre de chevet ou alors il peut se picorer à l'envie selon le problème que l'on recontre.<br></strong><br><br><br><a href="https://www.debian.org/doc/manuals/debian-reference/index.fr.html" rel="nofollow">https://www.debian.org/doc/manuals/debi ? ex.fr.html</a></p>
<p><img src="media/3bc69a9e.3df72092984f99e34111c0a7e3ebd7c0" data-original-source="http://cdn.libravatar.org/avatar/3df72092984f99e34111c0a7e3ebd7c0" alt="Gravatar de debian-facile.org" class="gravatar" /><br/><i>Original post of <a href="http://debian-facile.org/viewtopic.php?id=19634" title="Visit the source">debian-facile.org</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://marienfressinaud.fr/lessy-versions-et-iterations.html
title: Marien Fressinaud : Lessy : versions et itérations
uri: Marien-Fressinaud-Lessy-versions-et-itérations
url: https://marienfressinaud.fr/lessy-versions-et-iterations.html
content:
<p>Je me suis intéressé ces derniers jours au système de sortie des nouvelles
versions de <a href="https://github.com/marienfressinaud/lessy">Lessy</a>. Cela peut
paraître étonnant, mais décider d’un tel système est parfois compliqué et pose
plusieurs problèmes.</p>
<p>Pour commencer, on peut se poser la question « pourquoi versionner ? ».
J’y vois personnellement quatre intérets en particulier :</p>
<ul><li>montre que le projet vit (<strong>marketing</strong>) ;</li>
<li>donne une indication sur le niveau de modifications au sein du logiciel
  depuis la version précédente (<strong>dépendances</strong>) ;</li>
<li>permet de revenir à une version plus ancienne en cas de soucis avec la
  nouvelle (<strong>sécurité</strong>) ;</li>
<li>donne l’occasion de célébrer quelque chose au sein de la communauté
  (<strong>motivation</strong>).</li>
</ul><p>Lorsque je travaillais encore sur <a href="https://freshrss.org/">FreshRSS</a>, nous nous
étions souciés de la question de la visibilité. Nous avions alors trois
versions distinctes : une stable, sortant à intervalles plutôt longs, la
bêta qui sortait tous les… hum… deux mois (?) et la version de développement.
Nous avions décidé de mettre en avant la version bêta qui était alors moins
testé que la version stable mais qui avait l’avantage de garder les
utilisateurs accrochés à « l’actualité » de FreshRSS. Ce système
avait toutefois <strong>le désavantage d’être lourd à maintenir</strong>. Je souhaitais par
conséquent un système plus simple pour Lessy tout en continuant de mettre en
avant le travail quotidien effectué.</p>
<p>Concernant le deuxième point, à savoir que le versionnage donne une indication
sur le niveau de modifications depuis la version précédente, je pense
évidemment au système « <a href="http://semver.org/">semantic version</a> ». Si
ce système possède <strong>un intéret évident dans le cas de dépendances</strong> (ex. le
logiciel A dépend du logiciel B dans sa version X), je ne le vois pas dans le
cas d’un logiciel en « bout de chaine » tel que Lessy. C’est pourquoi
je suis parti sur un système de nommage totalement différent.</p>
<p>La raison consistant à donner des numéros de version pour permettre de revenir
en arrière en cas de soucis me paraît évidemment légitime bien que le cas se
présente à mon avis de façon assez rare.</p>
<p>Enfin, sortir une nouvelle version est loin d’être uniquement une tâche
technique. Il s’agit avant tout de <strong>fêter une nouvelle étape franchie dans le
développement</strong> et de marquer d’une pierre blanche l’avancement pour pouvoir
constater plus tard tout le chemin parcouru. Célébrer une nouvelle version,
<strong>ça motive énormément</strong> !</p>
<p>Concrêtement, comment cela va-t-il se passer pour Lessy ?</p>
<p>L’ensemble des tâches à effectuer (fonctionnalités, tâches techniques,
corrections de bugs, etc.) sont listées en vrac dans <a href="https://github.com/marienfressinaud/lessy/projects"><strong>les tickets GitHub</strong></a>,
ce qui me sert par conséquent de boite d’entrée. Ces tâches sont ensuite triées
par petits groupes <strong>au sein d’itérations</strong> représentées par <a href="https://github.com/marienfressinaud/lessy/projects">les projets
GitHub</a>. Les tâches d’une
itération forment un ensemble de fonctionnalités ou tâches techniques
<strong>similaires</strong> et leur temps de développement total effectif ne doit pas être
excessif (je me fixe 2 ou 3 semaines comme maximum). Ces itérations permettent
ainsi de dessiner une pseudo-<em>roadmap</em> du projet. Et comme chacune d’entre
elles est nommée (<a href="https://fr.wikipedia.org/wiki/Liste_des_constellations">d’après les constellations astronomiques</a>),
<strong>la fin d’une itération donne son nom à une nouvelle version de Lessy</strong>.</p>
<p>Ainsi, des quatre points que je listais plus haut, seul la problématique des
dépendances n’est pas du tout adressé. Pour les trois autres :</p>
<ul><li>marketing : des versions sortent régulièrement et leurs noms sont plus
  sympas qu’un simple nombre ;</li>
<li>sécurité : revenir à une version antérieure est évidemment toujours
  possible, renforcé par le fait que chaque « commit » dans
  « master » peut être considéré comme stable ;</li>
<li>motivation : savoir qu’une itération est courte par principe permet de
  savoir qu’à la fin du mois je pourrais éventuellement passer à autre chose.
  De plus sortir une version est un processus relativement simple.</li>
</ul><p>Pour terminer, si j’ai choisi de nommer les versions de Lessy par les noms des
constellations astronomiques, c’est avant tout parce que je cherchais un
système de nommage original permettant de penser à autre chose qu’à seulement
du code. Comme lever le nez du clavier ne suffit pas toujours à se changer les
idées, je me disais que le lever vers le ciel serait une bonne idée.</p>
<p><img src="media/aa8c2751.ea7e8807d513b71b5779dcee35c8e611" data-original-source="http://cdn.libravatar.org/avatar/ea7e8807d513b71b5779dcee35c8e611" alt="Gravatar de Marien Fressinaud" class="gravatar" /><br/><i>Original post of <a href="https://marienfressinaud.fr/lessy-versions-et-iterations.html" title="Visit the source">Marien Fressinaud</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


title: Journal du hacker : Liens intéressants Journal du hacker semaine #43
uri: 2017-10-30-Journal-du-hacker-Liens-intéressants-Journal-du-hacker-semaine-43
feed_id:
https://blog.journalduhacker.net/index.php?article131/liens-interessants-journal-du-hacker-semaine-43-2017

url:
https://blog.journalduhacker.net/index.php?article131/liens-interessants-journal-du-hacker-semaine-43-2017

content:
<p>Pour la 43ème semaine de 2017, voici <strong>10 liens</strong> intéressants que vous avez peut-être ratés, relayés par <a href="https://www.journalduhacker.net/">le Journal du hacker</a>, votre source d’informations pour le Logiciel Libre francophone !</p>

<a href="https://www.journalduhacker.net/"><img src="media/01f45034.logo-journal-du-hacker.png" data-original-source="https://blog.journalduhacker.net/data/medias/logo-journal-du-hacker.png"></a>

<ul><li><a href="https://www.journalduhacker.net/s/38cipq/guide_ultime_du_serveur_dns_v1">Guide ultime du serveur DNS v1</a></li>
<li><a href="https://www.journalduhacker.net/s/0dy1bh/bonjour_je_suis">Bonjour, je suis</a></li>
<li><a href="https://www.journalduhacker.net/s/qzgqmm/openpgp_exporter_les_clefs_secr_tes_sur">OpenPGP - Exporter les clefs secrètes sur une Yubikey</a></li>
<li><a href="https://www.journalduhacker.net/s/oesadk/tig_la_console_pour_git">Tig, la console pour Git</a></li>
<li><a href="https://www.journalduhacker.net/s/goczxl/qui_est_derri_re_linux_en_2017">Qui est derrière Linux en 2017 ?</a></li>
<li><a href="https://www.journalduhacker.net/s/j5aiid/ubuntu_18_04_lts_sera_appel_bionic_beaver">Ubuntu 18.04 LTS sera appelé Bionic Beaver et est prévue pour le 26 avril 2018</a></li>
<li><a href="https://www.journalduhacker.net/s/0z3mqa/le_r_seau_tor_re_oit_laide_financi_re_de_la">Le réseau Tor reçoit l'aide financière de la fondation Mozilla</a></li>
<li><a href="https://www.journalduhacker.net/s/7owrr4/comment_cr_er_son_datacenter_maison">Comment créer son datacenter maison (homelab) ?</a></li>
<li><a href="https://www.journalduhacker.net/s/rywouc/attention_aux_messages_priv_s_avec">Attention aux messages privés avec Mastodon</a></li>
<li><a href="https://www.journalduhacker.net/s/9f181i/environnement_de_travail_et_outils_de_d">Environnement de travail et outils de développement</a></li>
</ul><p>Pour ne plus rater aucun article de la communauté francophone, voici :</p>

<ul><li><a href="https://www.journalduhacker.net/rss">Le flux RSS du Journal du hacker</a></li>
<li><a href="https://twitter.com/journalduhacker">Le compte Twitter du Journal du hacker</a></li>
<li><a href="https://framasphere.org/u/journalduhacker">Le compte Diaspora* du Journal du hacker</a></li>
<li><a href="https://framapiaf.org/@journalduhacker">Le compte Mastodon du Journal du hacker</a></li>
</ul><p>De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !</p>

<p>Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. <a href="https://www.journalduhacker.net/invitations/request">Rejoignez-nous</a> pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !</p>

<p><strong>Et vous ? Qu’avez-vous pensé de ces articles ?</strong> N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)</p>
<p><img src="media/ffe97a17.7916ee3cafa0bc3e9583bedad876dcd5" data-original-source="http://cdn.libravatar.org/avatar/7916ee3cafa0bc3e9583bedad876dcd5" alt="Gravatar de Journal du hacker" class="gravatar" /><br/><i>Original post of <a href="https://blog.journalduhacker.net/index.php?article131/liens-interessants-journal-du-hacker-semaine-43-2017" title="Visit the source">Journal du hacker</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Carl Chenet : <a href="">Liens int&eacute;ressants Journal du hacker semaine #43</a> (22/10/2015)</li><li>Journal du hacker : <a href="">Liens int&eacute;ressants Journal du hacker semaine #43</a> (31/10/2016)</li></ul></div></p>


feed_id: http://formation-logiciel-libre.com/culture-logiciels-libres-biens-communs/
title: Dimitri Robert : Culture et logiciels libres sont-ils des biens communs ?
uri: Dimitri-Robert-Culture-et-logiciels-libres-sont-ils-des-biens-commun
url: http://formation-logiciel-libre.com/culture-logiciels-libres-biens-communs/
content:
<p>Le 18 septembre dernier le <a href="http://mouvementutopia.org/site/">mouvement Utopia</a> organisait une soirée sur les biens communs intitulée « Communs pour tous et tous pour les communs ? ». Aux côtés de <a href="https://sites.google.com/site/pierrecretois/cv">Pierre Crétois</a>, docteur en philosophie et <a href="https://fr.wikipedia.org/wiki/Isabelle_Attard">Isabelle Attard</a>, ancienne députée qui s’est notamment battue pour une <a href="http://www.assemblee-nationale.fr/14/dossiers/perimetre_integrite_domaine_public.asp">reconnaissance du domaine public</a>, j’ai été invité à parler des logiciels libres, en quoi ce sont des biens communs.</p>
<p>Isabelle et moi-même avons largement évoqué la culture, la culture libre, le domaine public et les dérives du droit d’auteur (et des pistes pour le hacker), les atteintes d’entreprises et de l’État envers le domaine public.</p>
<p><iframe frameborder="0" width="1170" height="658" src="https://www.dailymotion.com/embed/video/x63uh7s" allowfullscreen></iframe></p>
<p><em>L’intervention d’Isabelle Attard débute à 41:35 et celle de Dimitri Robert à 1:03:35.</em></p>
<p>Cet article <a rel="nofollow" href="http://formation-logiciel-libre.com/culture-logiciels-libres-biens-communs/">Culture et logiciels libres sont-ils des biens communs ?</a> est publié sous licence CC By-SA 4.0 par <a rel="nofollow" href="http://formation-logiciel-libre.com/author/dimitri/">Dimitri Robert</a> sur <a rel="nofollow" href="http://formation-logiciel-libre.com/">Formation logiciel libre - Reprenez le contrôle de votre informatique !</a>.</p>
<p><img src="media/a723311b.bc7f2e519b76bc86af82809d62e1ca0a" data-original-source="http://cdn.libravatar.org/avatar/bc7f2e519b76bc86af82809d62e1ca0a" alt="Gravatar de Dimitri Robert" class="gravatar" /><br/><i>Original post of <a href="http://formation-logiciel-libre.com/culture-logiciels-libres-biens-communs/" title="Visit the source">Dimitri Robert</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Tuxicoman : <a href="">Eva joly contre HADOPI et pour les logiciels libres</a> (22/12/2011)</li></ul></div></p>


feed_id: https://blog.niqnutn.com/index.php?article93/copier-un-article-pour-le-partager-sur-un-wiki
title: nIQnutn : Copier un article pour le partager sur un wiki
uri: nIQnutn-Copier-un-article-pour-le-partager-sur-un-wiki
url: https://blog.niqnutn.com/index.php?article93/copier-un-article-pour-le-partager-sur-un-wiki
content:
<p>Je reviens à la charge encore une fois sur le sujet de la <strong>contribution pour le logiciel libre</strong>.
Il y a moins d'un an, j'avais déjà écrit sur le sujet: <a href="https://blog.niqnutn.com/index.php?article60/contribuer-a-un-wiki">Contribuer à un Wiki </a>.
Je pense que la documentation est une partie importante et indispensable pour que le logiciel libre soit <strong>accessible</strong> au plus grand nombre (débutants et experts) et surtout continuer de découvrir des choses. On va voir ce qu'il est possible de faire et comment. </p>

<div><img src="media/804c910a.fax-1889062_1280.tb.jpg" data-original-source="https://blog.niqnutn.com/data/medias/0093/fax-1889062_1280.tb.jpg" alt=""></div>

<p>Aussi bien pour de la documentation, un tuto ou un article, on tombe régulièrement sur du contenu intéressant et utile à partager. 
En règle générale, il n'est disponible que sur le site où l'auteur l'a posté.
On en retrouve sur les <em>forums, réseaux sociaux, blogs, wikis, ...</em>
<strong>Pour aider la communauté et ajouter sa pierre à l'édifice</strong>, je vous propose de repartager toutes ces connaissances et les intégrer dans un wiki. Pas un simple copier/coller mais une méthode rapide pour garder l'ensemble de la mise en forme (titres, gras, italique, balise de code, ...).
Par exemple, pour copier l'article <a href="https://blog.niqnutn.com/index.php?article69/commandes-en-vrac">Commandes en vrac</a>
et l'intégrer au <a href="https://debian-facile.org/wiki">wiki Debian-Facile</a>. Cela nous permettra de centraliser la connaissance autour de Debian. 
</p>

<p>Vous l'aurez compris,  <strong>je vous ai préparé un tuto pour faire des tutos</strong> ou comment repartager un article sur un wiki.</p><p>Cette méthode permet de gagner du temps et surtout ne pas s’embêter avec les différents formats et syntaxes qui peuvent exister. Le wiki Debian-Facile utilise la syntaxe <em>dokuwiki</em> et je n'ai toujours pas l'habitude de l'utiliser, donc ça m'arrange.
</p>

<p>
C'est valable pour tous les formats qui seront convertibles avec <em>pandoc</em> et vous pouvez contribuer pour n'importe quel wiki ou site. 
Vous pouvez également vous créer votre propre wiki et garder sous la main tous les trucs qui vous sont utiles. 
L'objectif est d'enrichir mutuellement ces documentations pour les compléter et les actualiser le plus facilement possible.</p>

<p>Aujourd'hui, on aura simplement besoin de <strong>Firefox</strong> et <strong>pandoc</strong>.</p>

<div>
<span><i></i></span>
Debian 9.2 (stretch)<br>
Firefox 52.4   <br>
pandoc 1.17.2
</div>


<h2>Récupérer l'article orignal</h2>

<p>
Une fois que vous avez repéré un article intéressant à partager, il faut le récupérer.
On va donc extraire le texte qui nous intéresse au format <strong>HTML</strong> (on ne prendra que ce qui nous intéresse, pas la totalité de la page).</p>


<p>Pour ça, on va utiliser l'<em>Inspecteur de Firefox</em>. Il permet de repérer facilement les blocs qui contiennent le texte qui nous est utile pour le copier.
<br>
Pour lancer l'inspecteur: <kbd>Ctrl+Maj+C</kbd> ou clic-droit puis <em>Examiner l'élément</em> en se positionnant sur le début du texte à copier.
</p>

<p>
Dans l'inspecteur on identifie le bloc à récupérer, il apparaît en surbrillance sur la page.

 On fait un clic-droit puis <em>Copier</em> > <em>L'extérieur du HTML</em>.
<br>
On enregistre le tout dans un fichier texte, par exemple: <em>commandes-en-vrac.html</em>
</p>

<video poster="" controls="" width="640"><source src="media/d95321a2.recuperer-article.mp4" data-original-source="https://blog.niqnutn.com/data/medias/0093/recuperer-article.mp4" type="video/mp4">
Votre navigateur ne supporte pas la balise vidéo ! Mettez-vous à jour !
</source></video><p>Pour ceux qui ne connaissent pas HTML, il faut tâtonner en survolant les éléments qui seront identifiés en surbrillance.
<br>
Il est aussi possible d'afficher directement le code source de la page, avec un clic-droit: <em>Code source de la page</em> ou <kbd>Ctrl+U</kbd>.</p>

<h2>Convertir l'article</h2>

<p>
On va utiliser l'utilitaire <strong>pandoc</strong> pour transformer l'article enregistré au format <strong>HTML</strong> vers le format <strong>dokuwiki</strong> utilisé par le wiki Debian-Facile.</p>


<p> On commence par installer le paquet:</p>
<div>
<div><i></i><br><span>#root</span></div>
<div><pre><code>apt install pandoc</code></pre></div>
</div>


<p>
Ensuite on lance la commande qui va bien en prenant soin de modifier les chemins des fichiers et autres paramètres si besoin:</p>

<div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>pandoc -s -r html /tmp/commandes-en-vrac.html -w dokuwiki -o /tmp/commandes-en-vrac.dokuwiki</code></pre></div></div>


<ul><li>-r html : le format du fichier d'entrée</li>
<li>/tmp/commandes-en-vrac.html : le chemin du fichier d'entrée</li>
<li>-w  dokuwiki: le format du fichier de sortie</li>
<li>-o /tmp/commandes-en-vrac.dokuwiki : le chemin du fichier de sortie</li>
</ul><p>Pour consulter la documentation sur pandoc et les formats supportés:</p>

<div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>pandoc --help
man pandoc</code></pre></div></div>

<h2>Copier l'article dans le wiki</h2>

<p>
On a donc notre article au format <em>dokuwiki</em> dans le fichier <em>commandes-en-vrac.dokuwiki</em> . 
Il nous reste la partie facile et rapide à faire. On copie le contenu du fichier <em>commandes-en-vrac.dokuwiki</em> puis on le colle dans la page du wiki qui correspond.</p>

<p>
On prend quand même le temps de vérifier que la mise en forme est correcte. 
Il faut vérifier les liens qui peuvent ne plus pointer au bon endroit.
S'il y a des images ou des vidéos, il faudra peut-être penser à les ajouter au wiki (au cas la source disparaisse ou soit déplacée). 

Si on a un peu de temps et pour faire les choses bien, on peut vérifier et compléter certains points.</p>

<h3>Quelques conseils pour la rédaction</h3>

<p>
En règle générale, copier un article ne suffit pas, il faut parfois effectuer quelques modifications.
Quelques éléments à vérifier:</p>

<ul><li>Indiquer la date de rédaction,</li>
<li>Indiquer la version des logiciels utilisés,</li>
<li>Indiquer les fichiers importants: les fichiers de configuration et les données pour les sauvegardes,</li>
<li>Citer les sources et autres liens utiles,</li>
<li>Respecter le respect des licences,</li>
<li>Vérifier l'orthographe: j'utilise LibreOffice Writer avec Grammalecte,
</li><li>...</li>
</ul><h2>Pourquoi ?</h2>

<p>
C'est vrai que c'est un peu idiot de se poser la question à la fin sur l'utilité de dupliquer du contenu. Voici quelques raisons:</p>


<ul><li>Repartager les contenus intéressants: certains articles sont oubliés parce que le site n'est pas connu.</li>
<li>Améliorer la visibilité du libre: plus il y aura d'articles plus ils seront faciles à trouver sur internet.</li>
<li>Le contenu peut disparaître: de nombreux sites disparaissent tous les jours embarquant en même temps des connaissances importantes. </li>
<li>Adapter un contenu: en modifiant seulement les commandes qui peuvent différer d'une distribution à l'autre.</li>
<li>Compléter une documentation existante.</li>
<li>...</li>
</ul><p>Par ailleurs, c'est dans l'esprit du logiciel libre de partager et de réutiliser. Pourquoi devrait-on s’embêter à refaire de la documentation quand certains ont déjà fait un superbe travail ? 
Je peux vous assurer qu'écrire un article de qualité c'est pas évident et surtout c'est chronophage. Autant se concentrer sur l'écriture du contenu nouveau ou adapter l'existant plutôt que de repartir de zéro. </p>


<p>C'est une des nombreuses manières de contribuer pour le développement et la promotion du logiciel libre. Vous pouvez également:

</p><ul><li>Repartager des articles via les réseaux sociaux, le Journal du Hacker ou votre Shaarli,</li>
<li>Participer au développement d'un logiciel,</li>
<li>Remonter les bugs,</li>
<li>Rédiger de la documentation et des tutos pour la communauté, </li>
<li>Faire de l'entraide sur les forums et chats, </li>
<li>Organiser et participer à des évènements du libre,</li>
<li>Financer des auteurs et des projets,</li>
<li>...</li>
</ul><p>Pas d'excuses, nous avons tous la possibilité de contribuer, même si cela peut sembler modeste. Tout ce que vous pourrez faire sera utile.</p>


<h2>Ressources</h2>

<ul><li><a href="https://developer.mozilla.org/fr/docs/Outils/Inspecteur">Firefox</a></li>
<li><a href="http://pandoc.org/">pandoc</a></li>
</ul><hr>
nIQnutn CC-BY
<p><img src="media/a91347c8.5c27127d0dc6fdd370e85d336aa73f8c" data-original-source="http://cdn.libravatar.org/avatar/5c27127d0dc6fdd370e85d336aa73f8c" alt="Gravatar de nIQnutn" class="gravatar" /><br/><i>Original post of <a href="https://blog.niqnutn.com/index.php?article93/copier-un-article-pour-le-partager-sur-un-wiki" title="Visit the source">nIQnutn</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://yeuxdelibad.net/Blog/?d=2017/10/29/20/31/16-publication-disotop-021
title: Thuban : Publication d'isotop-0.2.1
uri: Thuban-Publication-d-isotop-0-2-1
url: https://yeuxdelibad.net/Blog/?d=2017/10/29/20/31/16-publication-disotop-021
content:
<p>Première mise à jour pour <a href="https://3hg.fr/isotop">isotop</a>, l'OpenBSD personnalisée et préparée pour une utilisation bureau.</p>

<p>Parmi les changements effectués, vous remarquerez que :</p>

<ul><li> Le tkmenu comprte des entrées vers les outils relatifs à isotop : mise à jour, gestion des paquets...</li>
<li> L'outil <a href="http://https://yeuxdelibad.net/Blog//Blog/?d=2017/10/22/17/19/42-opama-openbsd-package-manager">OPaMa</a> pour gérer les paquets est inclus</li>
<li> Les divers outils livrés avec xfce sont triés sur le volet. Cela entraîne le remplacement de mpd/xfmpc par deadbeef, parole a disparu.</li>
<li> Un lecteur PDF plus "commun" que mupdf est intégré.</li>
<li> La gestion des traductions est prêt et plus pratique à modifier pour ajouter d'autres langues (seulement le français et l'anglais sont gérés pour l'instant).</li>
<li> Lorsqu'une imprimante est branchée, elle peut être configurée par simple utilisateur (le module ulpt est désactivé au premier démarrage, cela nécessite un redémarrage. Si vous voulez installer une imprimante, redémarrez le pc juste après l'installation ;) )</li>
<li> Quelques jeux ont été ajoutés. La ludothèque d'OpenBSD est très fournie oO .</li>
<li> Compression des images au format xz pour limiter le temps de transfert.</li></ul><p>Tous les liens sont sur la page officielle, je recopie ici uniquement les magnets à ouvrir avec un client bittorrent (avec trackers publics)</p>

<pre><code>magnet:?xt=urn:btih:45e36d480c6e813e822fbd36f454799a0bde686d&amp;dn=isotop-0.2.1-amd64-full.fs.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:8d86b6c82bec186da5ce800c6497ec04d9d42f59&amp;dn=isotop-0.2.1-amd64-full.iso.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:6523d3c7a9923ec0b78d12501afffe05c6960e95&amp;dn=isotop-0.2.1-amd64-netinst.fs.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:81d3582a2988699746ea896b96b2a596d99ddb08&amp;dn=isotop-0.2.1-amd64-netinst.iso.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:42f765c3d53ee04b2a85b694fa9b0a5994885d91&amp;dn=isotop-0.2.1-i386-full.fs.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:f28fad02eb0bcf4d155930f6374243674c857418&amp;dn=isotop-0.2.1-i386-full.iso.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:27c53186b29bd785ebbf6ff48563191f2a2014a9&amp;dn=isotop-0.2.1-i386-netinst.fs.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337

magnet:?xt=urn:btih:fc9fc6b8f57cf9773071eb8deda187eb59cdbd8d&amp;dn=isotop-0.2.1-i386-netinst.iso.xz&amp;tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&amp;tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&amp;tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&amp;tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&amp;tr=http%3A%2F%2Fopensharing.org%3A2710%2Fannounce&amp;tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&amp;tr=udp%3A%2F%2Fzer0day.ch%3A1337
</code></pre>

<p>Pour finir, je laisse ici une petite vidéo d'une installation filmée, en 15 minutes 34 secondes chrono, pour fred' ;)</p>

<p><iframe src="https://player.vimeo.com/video/240382193" width="640" height="410" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/10/29/20/31/16-publication-disotop-021" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Thuban : <a href="">Publication d&#039;isotop-0.2</a> (19/10/2017)</li><li>Thuban : <a href="">Publication de la 2nd &amp;eacute;dition de &quot;l&#039;auto-h&amp;eacute;bergement facile avec OpenBSD&quot;</a> (10/11/2016)</li><li>Thuban : <a href="">Publication de la 3e &amp;eacute;dition de &quot;s&#039;auto-h&amp;eacute;berger avec OpenBSD&quot;</a> (08/05/2017)</li></ul></div></p>


feed_id: https://max-koder.fr/2017/10/30/exploiter-du-json-en-bash-avec-php/
title: Max Koder : Exploiter du JSON en Bash avec PHP
uri: Max-Koder-Exploiter-du-JSON-en-Bash-avec-PHP
url: https://max-koder.fr/2017/10/30/exploiter-du-json-en-bash-avec-php/
content:
<div>
	<a href="https://max-koder.fr/2017/10/30/exploiter-du-json-en-bash-avec-php/"><img title="Du JSON en Bash avec PHP" src="media/23b6e3f8.bash-json-png-271x300.png" data-original-source="https://max-koder.fr/wp-content/uploads/2017/10/bash-json-png-271x300.png" alt="Du JSON en Bash avec PHP" width="271" height="300"></a>
	</div>
	<p><a href="https://max-koder.fr/2017/02/05/gerez-vos-fichiers-json-avec-php/" target="_blank" rel="noopener">Faire du JSON avec PHP</a> ou tout autre langage orienté web, c’est trivial. Mais lorsqu’il faut commencer à se le coltiner en Bash, c’est déjà plus galère..<br>
Pour un besoin personnel, je dois justement lire du JSON dans un shell. Le cahier des charges est simple : J’ai PHP et Python sur la bécane (un serveur), et dans l’optique de partager ce code plus tard, je ne souhaite pas avoir de dépendances. Exit donc <a href="https://stedolan.github.io/jq/" target="_blank" rel="noopener">jq</a>, qui est une librairie permettant de combler largement mon besoin. En plus, je ne connais pas grand chose à Python, et j’ai franchement pas le temps de m’y mettre.<br>
Dans ce billet, je vous montre <strong>comment exploiter du JSON en Bash avec PHP</strong>. Je tiens tout de même à préciser que cet article n’a pas vocation à vous apprendre ces 2 langages, mais suppose que vous en connaissiez déjà les bases.</p>
<p>Je vous préviens, c’est long, mais c’est également l’occasion de voir quelques astuces Bash (notamment sur les tableaux) que peut-être vous ne connaissiez pas </p>
<h1>Petit aparté</h1>
<p>J’avais dit vouloir prendre un peu de recul par rapport à ce blog, et me recentrer. Je continue donc le site dont je vous avais parlé, mais il est difficile pour moi de ne pas écrire ici dès lors que j’ai le clavier sous la main, dès que quelque chose me trotte dans la tête.<br>
Aujourd’hui, reprise du boulot, je lâche ma tasse de café pour rédiger quelques lignes ici. On ne se refait pas. Et puis, je ne m’étais jamais imposé de rythme, alors autant continuer comme ça.<br>
Oui, je change d’avis comme de chemise. Ou plutôt, je fais comme bon me semble, comme j’ai toujours fait. Si demain je n’ai pas envie de continuer cet article, qui ira me dire quelque chose ?</p>
<p>Je crois que je ne sais pas comment évoluera mon temps passé sur le PC. Il y a fort à parier qu’à terme les extras ne se fassent plus. Je consultais de temps à autre Mastodon, mais il ne s’agit pour la plupart que de geeks / libristes qui exposent leurs articles, des liens vers un tweet, une humeur à partager. Je n’ai pas besoin de ça.<br>
Au contraire, je pense qu’en fait ce blog est devenu le centre de mon activité sur Internet, et que le reste ne fait que graviter autour. L’avenir nous le dira.</p>
<h1>Utiliser PHP en Bash</h1>
<p>Pour revenir à nos moutons, nous souhaitions <strong>exploiter du JSON en Bash avec PHP.</strong> On va tenter d’y aller étape par étape. Il s’agit tout d’abord d’<strong>exécuter un script PHP depuis un script Bash</strong> ou directement depuis un shell.</p>
<p>Nous partirons sur 2 fichiers : un script Bash, l’autre un PHP, tous 2 dans le même dossier.</p>
<p>Voilà le contenu du fichier ‘disk.php’, qui ne fera que retourner une valeur au script Bash :</p><pre><?php
echo 5;</pre><p>À présent, le fichier ‘test.sh’, le fichier Bash :</p><pre>#!/bin/bash
echo "Nombre de disques : " $(php -f $(dirname $0)'/disks.php')</pre><p>Si vous lancez à présent le script test.sh, que vous aurez rendu exécutable auparavant, vous aurez ceci :</p><pre>Nombre de disques :  5</pre><p>J’explique :</p>
<p>Pour lancer un script PHP depuis Bash, il suffit de faire </p><pre>php -f chemin/du/script.php</pre>  :
<ul><li><pre>php</pre>  est la commande permettant de lancer la fonction PHP, que vous aurez installé bien sûr…</li>
<li>L’option <pre>-f</pre>  indique qu’on souhaite exécuter un fichier et non pas une commande</li>
<li>Le dernier argument est le chemin et le nom du script à traiter.</li>
</ul><p>Au cas où : </p><pre>dirname $0</pre>  permet de récupérer le chemin absolu du script courant.
<p>Enfin, il est bon de savoir que tout ce qui sortira du script PHP (les echo, print etc), ne seront pas affichés. Ils seront simplement retournés au script Bash.<br>
On pourrait ainsi réécrire la partie Bash comme ceci, sans toucher au PHP :</p><pre>#!/bin/bash
nbDisks=$(php -f $(dirname $0)'/disks.php')
echo "Nombre de disques : $nbDisks"

# Nombre de disques : 5</pre><p>Ça ne changerait rien, PHP n’affiche rien. La valeur 5 serait simplement affectée à la variable </p><pre>$nbDisks</pre> , qu’on afficherait ensuite.
<h1>Arguments</h1>
<p>Tout ça c’est bien, mais c’est trop scolaire. À quoi sert d’appeler un script si on ne peut pas lui passer d’arguments ? Pas grand chose, en effet.<br>
Il y a 2 méthodes pour passer des arguments à PHP depuis Bash, que nous allons voir.</p>
<h2>Des arguments simples</h2>
<p>Il s’agit de passer un seul argument, une seule valeur au script à exécuter.</p>
<p>Dans l’exemple qui va suivre, je souhaite récupérer en Bash le nombres d’élèves de certaines classes. Si le nom d’un professeur est renseigné, on va chercher le nombre d’élèves de sa classe (on peut imaginer une requête SQL depuis PHP par exemple). Si aucun professeur n’est trouvé, on indique une erreur.<br>
Enfin, si aucun nom n’est indiqué, on retourne le nombre d’élèves de toutes les classes.</p>
<p>Script PHP :</p><pre><?php

if ($argc === 1) {
    // Aucun argument n'est donné, on donne tous les élèves
    echo '62';
} else {
    if ($argv[1] === 'michu') {
        // Classe de Mme Michu
        echo '28';
    } elseif ($argv[1] === 'foo') {
        // Classe de Foo
        echo '34';
    } else {
        echo 'Pas de classe avec ce professeur';
    }
}</pre><p>2 points tout de même :</p>
<ul><li><pre>$argv</pre>  est un tableau contenant les arguments passés au script lorsque PHP est utilisé en CLI. Quelque soit le nombre d’arguments, <pre>$argv[0]</pre>  contient le chemin et le nom du script en cours.</li>
<li><pre>$argc</pre>  contient le nombre d’arguments passés au script. <strong>Lorsque aucun argument n’est donné, cette variable est égale à 1</strong>.</li>
</ul><p>Passons au script Bash :</p><pre>#!/bin/bash

echo "Nombre d'élèves dans la classe de Mme Michu : "$(php -f $(dirname $0)'/students.php' 'michu')
echo "Nombre d'élèves dans la classe de Foo : "$(php -f $(dirname $0)'/students.php' 'foo')
echo "Nombre d'élèves total : "$(php -f $(dirname $0)'/students.php')
echo "Nombre d'élèves chez Bar : "$(php -f $(dirname $0)'/students.php' 'bar')</pre><p>Le résultat :</p><pre>Nombre d'élèves dans la classe de Mme Michu : 28
Nombre d'élèves dans la classe de Foo : 34
Nombre d'élèves total : 62
Nombre d'élèves chez Bar : Pas de classe avec ce professeur</pre><p>À noter qu’<strong>il est possible de passer plusieurs arguments</strong> avec cette méthode, simplement en les espaçant :</p><pre>echo $(php -f $(dirname $0)'/students.php' 'michu' 'plop' 55 'baz')</pre><p>Cette méthode permet de passer plusieurs valeurs simplement, mais elle ne couvre pas tous les besoins.</p>
<p>Bon à savoir : <strong>Chaque argument est envoyé comme une chaîne de caractères</strong>, qu’il soit entouré de guillemets ou pas.<br>
Aussi, dans l’exemple précèdent, le ’55’ passé au script sera de type string lorsqu’il sera utilisé par PHP.</p>
<h1>Arguments associatifs</h1>
<p>Il existe une astuce que j’ai découvert il y a peu, c’est de pouvoir passer des paramètres avec un nom et une valeur à un tel script. Quelle utilité à vrai dire ?<br>
Dans l’exemple précèdent, avec les classes et le nombre d’élèves, comment passer au script que la classe de Mme Michu possède maintenant 30 élèves ?</p>
<p>Et bien il suffit de passer les paramètres précédés d’un double tiret </p><pre>--</pre>  et de les assigner comme suit :<pre>#!/bin/bash

echo "$(php -f $(dirname $0)'/disks.php' -- 'nom=Mme Michu' eleves=30)"</pre><p>Coté PHP, nous allons toujours utiliser les variables $argc et $argv. Cependant, pour pouvoir les utiliser correctement, il va falloir faire une petite manipulation :</p><pre><?php

print_r($argv);

if ($argc === 1) {
    // No argument
} else {
    $args = [];
    for ($i = 1; $i <= $argc - 1; $i++) {
        // Each args
        $strArgs = explode('=', $argv[$i]);
        $args[$strArgs[0]] = $strArgs[1];
    }
}

if (isset($args)) {
    echo $args['nom'] . ' a dans sa classe ' . $args['eleves'] . ' élèves';
}</pre><p>Une fois le script Bash lancé, le résultat sera celui-ci :</p><pre>Array
(
    [0] => /home/maxk/bin/students.php
    [1] => nom=Mme Michu
    [2] => eleves=30
)
Mme Michu a dans sa classe 30 élèves</pre><p>Je n’explique pas le print_r($argv), je pense que vous comprendrez. En revanche, on voit clairement que <strong>pour exploiter les arguments, il va falloir séparer le nom de l’argument (nom et eleves) de leurs valeurs (Mme Michu et 30)</strong>.</p>
<p>C’est ce que fait le script ensuite : Il explose chaque argument s’il y en a avec le signe ‘=’, et on se retrouve avec un tableau ($args) qui contient les arguments exploitables. Pas beau ça ?</p>
<h1>Variables globales</h1>
<p>Avant d’attaquer les choses sérieuses, je voulais vous parler d’un petit truc qui m’est bien utile.<br>
Dans mes scripts, j’ai régulièrement besoin de passer des variables de Bash à PHP. Je peux utiliser les arguments décrits ci-dessus bien sûr, mais il existe des cas où cela devient redondant.<br>
C’est le cas par exemple lorsqu’il s’agit de passer encore et toujours la même valeur, la même variable.</p>
<h2>En Bash</h2>
<p>Il est possible de passer, en Bash, des variables en globales, c’est à dire que cette variable sera connue de tous les scripts qui seront exécutés.</p>
<p>Vous connaissiez cette façon pour assigner une valeur à une variable :</p><pre>foo='je suis locale'</pre><p>Et bien, il y a une autre façon de déclarer une variable pour qu’elle soit globale, qu’elle puisse être utilisée dans tous les scripts lancés depuis le processus :</p><pre>export bar='je suis globale'</pre><p>La variable </p><pre>bar</pre>  est ici accessible depuis n’importe quel script ! Essayons cela.<br>
Créez un fichier qui va déclarer 2 variables, une locale et une globale, et qui lancera un autre script Bash :<pre>#!/bin/bash

foo='je suis locale'
export bar='je suis globale'

$(dirname $0)'/export.sh'</pre><p>Puis créez le second fichier, <strong>export.sh</strong>, qui sera appelé depuis le premier script, et qui aura pour simple fonction d’afficher le contenu de ces 2 variables :</p><pre>#!/bin/bash

echo $foo
echo $bar</pre><p>Lançons le premier script (test.sh) et observons le résultat :</p><pre>je suis globale</pre><p>Seul le résultat de $bar est affiché, car </p><pre>$foo</pre>  n’est pas connu du script <strong>export.sh</strong>. En revanche, <strong>Bash ne lève aucune erreur si une variable n’existe pas</strong>, elle sera simplement considérée comme une chaîne de caractères vide.
<h2>En PHP</h2>
<p>À présent, voyons comment récupérer une variable globale déclarée en Bash depuis PHP.<br>
Cela est possible grâce à la fonction <a href="http://php.net/manual/fr/function.getenv.php" target="_blank" rel="noopener">getenv()</a>, qui permet de récupérer une variable de l’environnement.</p>
<p>Comme tout à l’heure, nous allons déclarer une variable globale dans notre script, et appeler un script PHP, qui devra l’afficher :</p><pre>#!/bin/bash

foo='je suis locale'
export bar='je suis globale'

echo $(php -f $(dirname $0)'/disks.php')</pre><p>Et le script PHP :</p><pre><?php

$varFoo = getenv('foo');
$varBar = getenv('bar');

echo "Foo : $varFoo\\r";
echo "Bar : $varBar\\r";</pre><p>Lançons le script Bash, et voyons le résultat :</p><pre>Foo : 
Bar : je suis globale</pre><p>Il est possible de récupérer les variables de Bash en PHP. Génial non ?<br>
À savoir qu’une fois la variable déclarée avec </p><pre>export</pre> , il est possible de la modifier à souhait en Bash, sans la précéder de <pre>export</pre> , elle sera toujours globale.
<h1>Du JSON en Bash avec PHP</h1>
<p>Maintenant que nous avons vu qu’utiliser PHP avec Bash n’était pas bien difficile, il est l’heure de nous intéresser au sujet important :<strong> Exploiter du JSON en Bash avec PHP</strong>.</p>
<p>Dans les exemples qui vont suivre, pour éviter les répétitions, nous partirons du principe que <strong>notre fichier JSON system.json contient ceci</strong> :</p><pre>{
    "host": "Debian 8.9",
    "kernel": "3.16.0-4-586",
    "packages": {
        "yunohost": "2.6.4",
        "yunohost-admin": "2.6.1",
        "moulinette": "2.6.1",
        "ssowat": "2.6.8"
    },
    "system": {
        "disks": {
            "sda7": "Mounted on /tmp, 360.0MiB (358.0MiB free)",
            "sda5": "Mounted on /var, 2.7GiB (1.7GiB free)",
            "sda8": "Mounted on /home, 131.3GiB (130.8GiB free)",
            "sda1": "Mounted on /, 8.1GiB (6.7GiB free)"
        },
        "memory": {
            "ram": "2.0GiB (1.5GiB free)",
            "swap": "4.0GiB (4.0GiB free)"
        }
    },
    "apps": {
        "installed": "Firefox",
        "installed": "Netbeans",
        "installed": "VLC"
    }
}</pre><p></p>
<h2>Récupérer une valeur</h2>
<p>Le plus simple pour démarrer, c’est de demander à PHP de nous retourner une simple valeur contenue dans ce fichier JSON.<br>
Pour cela, il nous faudra en Bash fournir un argument : La clé que nous souhaitons récupérer. Le script PHP s’occupera de nous retourner le résultat.</p>
<p>Je vous donne le code complet du script PHP (je l’ai appelé system.php). Je me suis aidé des trucs que l’on a vu plus haut, et je vous explique le reste ensuite :</p><pre><?php

// Récupération du chemin du fichier JSON
$path = getenv('ROOT_PATH');
$jsonFile = $path . '/system.json';

// Explosion des arguments
if ($argc === 1) {
    // Pas d'argument
} else {
    $args = [];
    for ($i = 1; $i <= $argc - 1; $i++) {
        // Pour chaque argument, on explose son nom et sa valeur
        $strArgs = explode('=', $argv[$i]);
        $args[$strArgs[0]] = $strArgs[1];
    }
}

// Récupération et décodage du fichier en un objet json
$system = json_decode(file_get_contents($jsonFile));

// Si une clé est spécifiée, on tente d'y accèder
if (isset($args['key'])) {
    $parts = explode("->", $args['key']);
    foreach ($parts as $part) {
        if (isset($system->$part)) {
            $system = $system->$part;
        }
    }
}

// On retourne le résultat
echo $system;</pre><p>Au début, on voit que je fais appel à la variable </p><pre>ROOT_PATH</pre>  qui sera définie dans le script Bash. Elle nous servira en PHP à aller récupérer le chemin du fichier JSON.<br>
Puis on définit le chemin du fichier JSON à utiliser.
<p>La partie suivante est expliquée en haut, jusqu’à la récupération du fichier JSON, <strong>que l’on décode en un objet JSON</strong>. Si vous n’êtes pas à l’aise avec l’utilisation de JSON en PHP, je ne peux que vous conseiller cet <a href="https://max-koder.fr/2017/02/05/gerez-vos-fichiers-json-avec-php/" target="_blank" rel="noopener">excellent article sur le sujet</a> </p>
<p>Enfin, nous allons ‘découper’ chaque partie de la clé si elle est fournie, en cherchant les éventuels </p><pre>-></pre>  présents, et tenter de récupérer la valeur correspondante dans le JSON. Par exemple en fournissant la clé ‘system->memory->ram’, le script va découper celle-ci en 3 parties et tenter d’accéder successivement à :<br><pre>$system->system</pre> , puis <pre>$system->system->memory</pre> , et enfin <pre>$system->system->memory->ram</pre> .<br>
Si celle-ci existe, sa valeur est retournée, sinon, on retourne la dernière valeur trouvée.
<p>L’utilisation de ce script avec Bash est donc toute aisée, puisqu’il suffit de définir le dossier courant du script, la variable globale </p><pre>ROOT_PATH</pre> , et la clé de la valeur à récupérer avec le nom ‘key’ :<pre>#!/bin/bash

export ROOT_PATH=$(dirname $0)
echo "Version du kernel : " $(php -f $ROOT_PATH'/system.php' 'key=kernel')
echo "RAM : " $(php -f $ROOT_PATH'/system.php' 'key=system->memory->ram')</pre><p>Résultat :</p><pre>Version du kernel :  3.16.0-4-586
RAM :  2.0GiB (1.5GiB free)</pre><p>Pas bien ça ? Si, c’est bien, mais pas tant que ça.<br>
Imaginez que vous souhaitez récupérer tous les packages contenus dans le fichier JSON. Si vous ne les connaissez pas à l’avance, c’est impossible avec cette méthode.<br>
C’est ce que nous allons voir tout de suite.</p>
<h2>Récupérer un tableau</h2>
<p>Si à première vue il est assez facile de passer un tableau de PHP à Bash, en réalité c’est tout autre. Comme vous le savez (ou le découvrez), PHP ne peut retourner que du texte à Bash. Il va donc falloir ruser pour récupérer un tel tableau.</p>
<h3>Tableau indexé</h3>
<p>Il s’agit simplement de récupérer une liste, sans notion d’association, de valeurs. On souhaite par exemple récupérer les applications installées dans notre fichier JSON, à savoir Firefox, Netbeans et VLC.</p>
<p>Comme dit juste au dessus, le problème est que le retour de PHP à Bash ne se fait que par une chaîne de caractères. <strong>Pour en extraire un tableau, il va donc falloir trouver un délimiteur, un truc qui va séparer chaque valeur</strong>.<br>
Ce séparateur peut être plein de choses, comme un espace, un retour à la ligne, une lettre, …Dans tous les cas, <strong>il faut être certain de ne pas croiser ce caractère dans les données JSON à traiter</strong>.<br>
Pour ma part, comme je sais que j’aurai éventuellement des espaces, des tabulations et des sauts de ligne, j’ai choisi d’utiliser un symbole que je ne croiserai certainement pas : ¶</p>
<p>Si l’on est sûr que les valeurs du tableau ne contiennent pas ce caractère spécial, on peut donc l’utiliser pour en séparer les valeurs.</p>
<p>On va modifier un peu notre script PHP pour que, si la clé demandée contient un tableau (objet StdClass de notre JSON), il nous retourne le tableau sous forme de chaîne de caractère, en séparant les valeurs par le caractère choisi plus haut :</p><pre><?php

// Récupération du chemin du fichier JSON
$path = getenv('ROOT_PATH');
$jsonFile = $path . '/system.json';

// Explosion des arguments
if ($argc === 1) {
    // Pas d'argument
} else {
    $args = [];
    for ($i = 1; $i <= $argc - 1; $i++) {
        // Pour chaque argument, on explose son nom et sa valeur
        $strArgs = explode('=', $argv[$i]);
        $args[$strArgs[0]] = $strArgs[1];
    }
}

// Récupération et décodage du fichier
$system = json_decode(file_get_contents($jsonFile));

// Si une clé est spécifiée, on tente d'y accèder
if (isset($args['key'])) {
    $parts = explode("->", $args['key']);
    foreach ($parts as $part) {
        if (isset($system->$part)) {
            $system = $system->$part;
        }
    }
}

if (is_object($system)) {
    // La clé contient plusieurs valeurs
    $str = ""; // On initialise une chaîne vide
    foreach ($system as $key => $value) {
        $str .= $value . '¶';
        // On colle chaque valeur dans la chaîne et un séparateur
    }
    $system = $str;
    // On attribue cette chaîne à notre variable qui sera retournée au script Bash
}

// On retourne le résultat
echo $system;</pre><p>J’ai mis en bleu les lignes que j’ai rajouté par rapport au script précédent. <strong>C’est ce bout de code qui va permettre de retourner toutes les valeurs si la clé passée ne contient pas qu’une seule valeur mais plusieurs</strong>.</p>
<p>Rien de compliqué là-dedans, vous devriez vous en sortir avec les commentaires. Passons au Bash :</p><pre>#!/bin/bash

export ROOT_PATH=$(dirname $0)

declare -a apps

IFS='¶' read -a apps <<<$(php -f $ROOT_PATH'/system.php' 'key=apps')

for app in "${apps[@]}"
do
    echo $app
done

echo "Mon préféré est ${apps[1]}"</pre><p>Plusieurs choses à noter ici :</p>
<ul><li><pre>declare -a apps</pre>  : On déclare la variable apps comme un tableau indexé.</li>
<li><pre>IFS</pre>  : <strong>C’est une variable du Shell, qui définit le séparateur</strong>. Par défaut, elle contient un espace, une tabulation (\\t)et un retour à la ligne (\\n). Chaque caractère qu’elle contient est un séparateur à lui-seul, il n’est pas possible d’utiliser une suite de caractères.<br>
En le faisant suivre d’une autre instruction, le séparateur est modifié uniquement pour cette instruction.</li>
<li><pre>read</pre>  : Attend une réponse de l’utilisateur, comme un prompt</li>
<li><pre>-a apps</pre>  : Détermine le nom de la variable dans laquelle le résultat de read sera stockée.</li>
<li><pre><<<</pre>  : Permet de ne pas attendre que l’utilisateur tape quelque chose, mais va envoyer la résultat du script PHP à l’instruction read, comme si l’utilisateur l’avait tapé lui-même dans le Shell.</li>
<li>On lance le script PHP system.php en donnant la clé ‘apps’, pour récupérer les applications de notre fichier JSON.</li>
</ul><p>À l’issue de la commande </p><pre>read</pre> …, la variable <pre>$apps</pre>  contient un tableau indexé avec les valeurs Firefox, Netbeans et VLC.
<p>Puis on parcours simplement le tableau et on affiche chaque valeur.<br>
Enfin, on affiche uniquement l’élément du tableau qui a pour index 1. <strong>Pour mémoire, les index commencent à 0</strong>.</p>
<p>Si on lance le script, voilà le résultat :</p><pre>Firefox
Netbeans
VLC
Mon préféré est Netbeans</pre><p></p>
<h3>Tableaux associatifs</h3>
<p>On touche au but, mais également la partie la plus chiante.<br>
Toujours dans notre fichier JSON de départ, comment pourriez-vous associer les disques (sda7, sda5 etc) à leurs mémoires respectives ?<br><strong>Depuis Bash 4, il est possible d’utiliser des tableaux associatifs</strong>. Et vous allez voir que ça vaut le coup de se faire chier un peu, car on va commencer à pouvoir profiter pleinement de notre fichier JSON.</p>
<p>Mais le problème rencontré à la création d’un simple tableau est double. Il va maintenant falloir séparer chaque entité du tableau, mais également séparer la clé de sa valeur. Pour cela j’ai utilisé une solution toute simple : <strong>J’ai pris un second caractère spécial</strong> : þ . Ainsi dans le script que PHP doit me retourner, un tableau va ressembler à ça :</p><pre>clé1þvaleur1¶clé2þvaleur2¶...</pre><p>Et Bash s’occupera de découper cela.<br>
Mais il y a un autre soucis : Comment faire savoir à PHP que l’on souhaite récupérer un tableau associatif, et non pas un tableau indexé ?<br>
Et bien nous allons encore une fois utiliser <strong>un argument, que l’on nommera ‘assoc’. Si celui-ci est passé à 1, alors PHP devra retourner un tableau associatif</strong>, sinon un tableau indexé.</p>
<p>Vous y êtes ? C’est parti !</p><pre><?php

// Récupération du chemin du fichier JSON
$path = getenv('ROOT_PATH');
$jsonFile = $path . '/system.json';

// Explosion des arguments
if ($argc === 1) {
    // Pas d'argument
} else {
    $args = [];
    for ($i = 1; $i <= $argc - 1; $i++) {
        // Pour chaque argument, on explose son nom et sa valeur
        $strArgs = explode('=', $argv[$i]);
        $args[$strArgs[0]] = $strArgs[1];
    }
}

// Récupération et décodage du fichier
$system = json_decode(file_get_contents($jsonFile));

// Si une clé est spécifiée, on tente d'y accèder
if (isset($args['key'])) {
    $parts = explode("->", $args['key']);
    foreach ($parts as $part) {
        if (isset($system->$part)) {
            $system = $system->$part;
        }
    }
}

if (is_object($system)) {
    // La clé contient plusieurs valeurs
    $str = ""; // On initialise une chaîne vide
    foreach ($system as $key => $value) {
        if (isset($args['assoc']) &amp;&amp; $args['assoc'] === '1') {
            // Tableau associatif
            // On colle chaque clé et valeur dans la chaîne
            // La clé est séparée de sa valeur
            $str .= $key . 'þ' . $value . '¶';
        } else {
            // Tableau indexé
            $str .= $value . '¶';
            // On colle chaque valeur dans la chaîne et un séparateur
        }
    }
    $system = $str;
    // On attribue cette chaîne à notre variable qui sera retournée au script Bash
}

// On retourne le résultat
echo $system;</pre><p>Encore une fois j’ai mis les lignes ajoutées en évidence.<br>
En gros si l’argument ‘assoc’ est passé à 1, on insère dans la chaîne de retour la clé et la valeur, avec les séparateurs choisis. Sinon, on n’insère que la valeur.</p>
<p>Passons au Bash à présent, ça risque d’être un peu long…</p><pre>#!/bin/bash

export ROOT_PATH=$(dirname $0)

# On déclare le tableau indexé tmp
declare -a tmp

# On récupère les disques et on demande au script PHP un tableau associatif
IFS='¶' read -a tmp <<<$(php -f $ROOT_PATH'/system.php' 'key=system->disks' 'assoc=1')

# Déclaration du tableau associatif disks
declare -A disks

# On parcourt les disques stockés dans la variable $tmp
for disk in "${tmp[@]}"
do
    # On explose la clé de sa valeur à l'aide du second séparateur
    IFS='þ' read -a arr <<<$disk
    # On associe la clé et la valeur dans le tableau associatif
    # disks[cle]=valeur
    disks[${arr[0]}]=${arr[1]}
done

for K in "${!disks[@]}"
do
    echo $K --- ${disks[$K]}
done

# Déclaration d'un tableau pour les clés
declare -a keys
# On récupère toutes les clés des disques
keys=(${!disks[@]})

echo "Ma partition /var se nomme ${keys[2]} et est ${disks[${keys[2]}]}"

echo "Mais je peux utiliser ça aussi : ${disks['sda7']}"</pre><p>Pratiquement tout a été modifié depuis l’étape plus haut.<br>
J’ai modifié la variable </p><pre>$apps</pre>  en en <pre>$tmp</pre> , car ce tableau n’est maintenant que temporaire : Une fois le script PHP exécuté, c’est un tableau contenant les clés et les valeurs sous cette forme :<pre>clé1þvaleur1
clé2þvaleur2</pre><p>Remarquez qu’on déclare ensuite le tableau </p><pre>$disks</pre> . Ce n’est pas une faute de frappe, j’ai volontairement mis un A majuscule, à l’instar de <pre>$tmp</pre> . Et oui, <strong>un tableau associatif sous Bash se déclare de telle façon</strong> :<pre>declare -A montableau</pre><p>Puis on parcourt les disques (la variable </p><pre>$tmp</pre> ), <strong>dont on va extraire la clé et la valeur</strong>.<br>
Pour cela, on utilise encore la méthode du <pre>read <<<</pre> , avec un autre séparateur, le second (ici þ ). La clé et la valeur sont donc stockées dans un autre tableau temporaire, <pre>$arr</pre> , puis on stocke ces 2 informations dans notre tableau associatif <pre>$disks</pre> .<br>
Vous suivez encore ?
<p>Une fois la boucle </p><pre>for disk in ...</pre>  terminée, le tableau <pre>$disks</pre>  est rempli. Nous pouvons donc le parcourir afin d’y afficher son contenu. C’est ce que fait la boucle <pre>for K ...</pre>  qui suit.
<p><strong>Pour info, le ‘!’ dans l’instruction <pre>${!disks[@]</pre>  signifie que l’on souhaite regarder dans les clés du tableau associatif. Le « @ » est utilisé pour récupérer toutes les données.</strong><br>
On peut donc traduire vulgairement :</p><pre>for K in "${!disks[@]}"</pre><p>Par :</p>
<p>« Pour toutes les clés appelées K trouvées dans le tableau $disks »</p>
<p>Mais… À ce stade, il est impossible d’afficher un seul élément du tableau, ni la clé ni sa valeur (à moins de connaître la clé). Si vous pensiez pouvoir faire ceci :</p><pre>echo "${!disks[1]}" # Incorrect</pre><p>Et bien ça ne fonctionne pas. En fait, il n’y a pas moyen de récupérer la clé d’un tableau associatif en Bash.<br>
C’est pour cela que le code suivant est fait :</p><pre># Déclaration d'un tableau pour les clés
declare -a keys
# On récupère toutes les clés des disques
keys=(${!disks[@]})</pre><p>On va de nouveau créer un tableau indexé </p><pre>$keys</pre> , et on va récupérer dans celui-ci toutes les clés de notre tableau <pre>$disks</pre> .<br>
À partir de ce moment là, on pourra récupérer la clé et la valeur de chaque élément indépendamment :<pre>echo "Ma partition /var se nomme ${keys[2]} et est ${disks[${keys[2]}]}"

echo "Mais je peux utiliser ça aussi : ${disks['sda7']}"</pre><p>Et le résultat de ce script :</p><pre>sda1 --- Mounted on /, 8.1GiB (6.7GiB free)
sda7 --- Mounted on /tmp, 360.0MiB (358.0MiB free)
sda5 --- Mounted on /var, 2.7GiB (1.7GiB free)
sda8 --- Mounted on /home, 131.3GiB (130.8GiB free)
Ma partition /var se nomme sda5 et est Mounted on /var, 2.7GiB (1.7GiB free)
Mais je peux utiliser ça aussi : Mounted on /tmp, 360.0MiB (358.0MiB free)</pre><p>On dit merci qui ?</p>
<h3>En bonus</h3>
<p>Comme je suis un mec bien, je vais vous donner une autre petite astuce sur les tableaux : Il est possible de connaître le nombre d’éléments que possède un tableau :</p><pre>echo "Le tableau possède ${#disks[@]} éléments"
# Le tableau possède 4 éléments</pre><p>Enjoy !</p><p>L’article <a rel="nofollow" href="https://max-koder.fr/2017/10/30/exploiter-du-json-en-bash-avec-php/">Exploiter du JSON en Bash avec PHP</a> est apparu en premier sur <a rel="nofollow" href="https://max-koder.fr/">Max-Koder</a>.</p>
<p><img src="media/273eda46.029e2460333ecc745b37c2886d09c175" data-original-source="http://cdn.libravatar.org/avatar/029e2460333ecc745b37c2886d09c175" alt="Gravatar de Max Koder" class="gravatar" /><br/><i>Original post of <a href="https://max-koder.fr/2017/10/30/exploiter-du-json-en-bash-avec-php/" title="Visit the source">Max Koder</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Max Koder : <a href="">cURL : Dialogue avec une API en PHP</a> (05/05/2017)</li><li>Jaussoin Timothée : <a href="">Jouons un peu avec l&#039;API interne de Google+</a> (04/12/2014)</li><li>Simon Vieille : <a href="">D&eacute;velopper un site web en php sans installer Apache, Nginx ou Lighttpd</a> (30/03/2013)</li><li>Remi Collet : <a href="">Support de JSON dans PHP</a> (24/08/2013)</li><li>Remi Collet : <a href="">Acc&egrave;s aux fichiers Windows en PHP depuis Linux</a> (09/09/2015)</li></ul></div></p>


feed_id: https://blog.genma.fr/?Lifehacking-Mes-astuces-pour-faire-ma-veille-ciblee
title: genma : Lifehacking - Mes astuces pour faire ma veille ciblée
uri: genma-Lifehacking-Mes-astuces-pour-faire-ma-veille-ciblée
url: https://blog.genma.fr/?Lifehacking-Mes-astuces-pour-faire-ma-veille-ciblee
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2701.jpg?1509382553" width="150" height="79"><div><p>Dans le présent billet, je voudrais présenter deux astuces pour faire ma veille ciblée. Un autre billet, en cours de rédaction, abordera plus en détail le cas des fils RSS et l'usage d'un agrégateur. Un précédent billet <a href="https://blog.genma.fr/?Le-combo-gagnant-pour-optimiser-sa-veille" title="Le combo gagnant pour optimiser sa veille">Le combo gagnant pour optimiser sa veille</a> présentait mon cycle de veille quotidienne : lecture en direct (au sein de l'agrégateur) ou lecture plus tard (via Wallabag), conservation du lien (Shaarli). Cette veille recoupe un tous les domaines qui ont un intérêt pour moi.</p>
<p>Le présent billet se focalise sur une veille ciblée. Par veille ciblée j'entends le fait de faire une recherche sur une thématique donnée, pour avoir un état des lieux ou un état de l'art à un instant t. Cela m'est utile dans le cadre de la préparation de mes projets professionnels, pour me remettre à jour ou au contraire découvrir un nouveau domaine.</p>
<p>Rq : chacune de ces astuces est complémentaire des autres.<br>
Rq2 : ces conseils marchent très bien pour faire une veille ciblée sur un sujet technologique ou un logiciel libre particulier, mais sont probablement efficace dans d'autres cas.</p>
<p><strong>Moteurs de recherche</strong></p>
<p>Je n'évoquerai que brièvement la recherche par mot clef judicieusement choisi au sein de différents moteurs de recherche, avec classement par date pour trouver les publications les plus récentes. Cela semble une évidence. C'est ainsi que font la plupart des personnes qui affirment faire de la veille (et auxquelles je pose la question suivante lors des entretiens de recrutement : "faites vous de la veille et si oui, comment ?".</p>
<p><strong>Journal du Hacker</strong></p>
<p>Je suis abonné via le fil RSS <a href="https://www.journalduhacker.net/" title="Journal du Hacker">au Journal du Hacker</a> (pas encore à la newsletter - <a href="https://carlchenet.com/le-courrier-du-hacker-le-point-apres-deja-5-numeros-et-les-lecons-retenues/" title="Le Courrier du hacker : le point après (déjà) 5 numéros et les leçons retenues">Le Courrier du hacker : le point après (déjà) 5 numéros et les leçons retenues</a>).</p>
<p>Là encore, je profite de la fonctionnalité de moteur de recherche incluse sur le site et je fais une recherche par mots clefs, que je trie par date. Cela me permet de retrouver des liens vers différents billets de blog au sein desquels le sujet d'intérêt a été abordé. Et je profite donc du présent billet pour remercier tous les membres de la communauté qui prennent le temps de saisir des articles d'intérêt et d'ajouter des tags pertinents.</p>
<p>Attention toutefois : le Journal du Hacker ne référencie (par choix éditorial, cf <a href="https://www.journalduhacker.net/about" title="https://www.journalduhacker.net/about">https://www.journalduhacker.net/about</a>) que des articles en langue française, et exclue donc de facto toute la richesse du monde anglophone (dont on pourra profiter via les moteurs de recherche).</p>
<p>Rq : les articles les plus pertinents des gros blogs et sites comme Linuxfr.org sont généralement ajoutés dans le journal du Hacker, cela me fait gagner un temps certain en n'ayant pas à chercher sur ces sites (vu que si un article correspond à ma thématique d'intérêt, il ressortira dans le résultat de recherche du Journal du Hacker).</p>
<p><strong>Slideshare</strong></p>
<p>Slideshare est le site où l'on retrouve bon nombre de supports divers et variés de présentation, de conférences... Là encore, le site dispose d'un moteur de recherche interne, je fais une recherche par mots clefs. Et je peux ainsi retrouver des supports qui me permettent d'avoir des retour d'expériences, des états des lieux, des introductions sur différents sujets d'intérêts.</p>
<p>Là encore, la date est importante, ainsi que le numéro de version pour les logiciels présentés (il faut bien avoir en tête quelle est la dernière version d'un logiciel avant d'étudier 80 slides sur une API d'un logiciel qui est désormais dépréciée avec la dernière version en date...)</p>
<p><strong>Youtube</strong></p>
<p>Complémentaire de Slideshare, YouTube permet d'avoir les conférences et le discours autour du support mais aussi de trouver des tutoriels, des vidéos de démonstration et de fonctionnement des logiciels. YouTube étant le site incontournable pour la vidéo, la mode étant à ne plus faire de l'écrit mais des vidéos, YouTube peut être une bonne source pour avoir un aperçu d'un sujet (par chance les logiciels sont un sujet moins polémique et moins soumis à controverse que d'autres, mais il ne faut toutefois pas en oublier son esprit critique).</p>
<p><strong>Les réseaux sociaux</strong></p>
<p>Il m'arrive également de poser une question précise et ciblée, généralement en anglais pour faciliter la visibilité (les personnes susceptibles de répondre techniquement sachant l'anglais, même dans le cercle francophone). Là encore, je regarde qui me répond (est-ce une personne que je connais, de confiance ou un expert du sujet qui intervient suite à la diffusion au sein du réseau social de mon message).</p>
<p><strong>Faire appel à sa mémoire</strong></p>
<p>Je fais également appel à mémoire. J'essaie de me rappeler si je n'ai pas récemment lu ou passé tel ou tel sujet sur tel ou tel site que je suis (et je recherche dans mon Shaarli), si je ne connais pas une personne spécialiste de la dite technologie et avec laquelle je serai en relation via les réseaux sociaux (je lui demande alors quelques conseils et ressources pour bien démarrer sur le sujet).</p>
<p><strong>Autres</strong></p>
<p>Je pourrais également chercher sur des sites comme Medium ou autre, mais je pars du principe que si l'information se trouve sur ces derniers et est accessible librement, elle aura été référencée et donc trouvée via l'astuce du moteur de recherche.</p>
<p><strong>Conclusion</strong></p>
<p>N'hésitez pas vous aussi à partager en commentaire vos astuces pour faire votre veille sur le logiciel libre, je suis preneur d'autres astuces qui pourraient m'aider à être encore plus efficace sur le sujet, lifehacking oblige.</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Lifehacking-Mes-astuces-pour-faire-ma-veille-ciblee" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://yeuxdelibad.net/Blog/?d=2017/10/31/09/50/39-comment-creer-une-iso-dopenbsd-personnalisee
title: Thuban : Comment créer une iso d'OpenBSD personnalisée?
uri: Thuban-Comment-créer-une-iso-d-OpenBSD-personnalisée
url: https://yeuxdelibad.net/Blog/?d=2017/10/31/09/50/39-comment-creer-une-iso-dopenbsd-personnalisee
content:
<p>Depuis la publication d'<a href="https://3hg.fr/isotop">isotop</a>, je me dis que ça serait intéressant d'expliquer un peu comment cette "non-distribution" est faîte. Vous allez, voir, c'est enfantin.<br>
Je vais décrire la procédure en détaillant les commandes utilisées, sachant qu'en réalité tout ceci est mis dans des scripts pour se simplifier la vie.</p>

<p>Isotop n'est qu'une OpenBSD personnalisée. Pour ça, on récupère d'abord une image d'installation iso depuis un miroir.</p>

<pre><code>ftp -o install6.2.iso https://ftp.fr.openbsd.org/pub/OpenBSD/6.2/amd64/install62.iso</code></pre>

<p>Ensuite, on décompresse cette iso pour pouvoir modifier son contenu :</p>

<pre><code>    mkdir -p loopdir
    mkdir -p ./install6.2
    if [ "$(uname)" = "OpenBSD" ]; then
        vnconfig vnd0 install6.2.iso
        mount -t cd9660 /dev/vnd0c loopdir/
        cp -r loopdir/* ./install6.2
        umount loopdir/
        vnconfig -u vnd0
    else
        mount -o loop install6.2.iso loopdir
        cp -r loopdir/* ./install6.2
        umount loopdir/
    fi
    rm -r loopdir/
</code></pre>

<p>Selon si on est sous OpenBSD ou Linux, la procédure n'est pas tout à fait la même. Ces commandes n'ont rien de magique, on trouve facilement sur le web comment extraire une iso.</p>

<p>Nous voilà donc avec un dossier install6.2 qui contient tout le nécessaire pour installer OpenBSD. C'est maintenant que la personnalisation commence. On peut configurer l'installation grâce à 3 mécanismes :</p>

<ul><li> Intégrer une archive siteXX.tgz (remplacez XX par le numéro de version, ici 62) qui sera décompressée à l'installation sur la racine /. Cela permet d'intégrer les configurations voulues. Par exemple, le fichier /etc/doas.conf personnalisé, ou encore un dossier /etc/skel qui contient tout ce qui sera copié dans le dossier personnel d'un nouvel utilisateur (langue, profil firefox...)).</li>
<li> Ajouter un script "install.site" dans cette archive. ce dernier sera exécuté juste à la fin de l'installation. On peut y mettre un miroir pour récupérer les paquets, activer par défaut certains services comme le résolveur unbound...</li>
<li> Ajouter un script "etc/rc.firsttime" qui sera lancé au premier démarrage de la machine. Ce dernier me sert principalement à installer les paquets de logiciels.</li></ul><p>C'est parti, on crée un dossier "site" dans lequel on va mettre tout notre bazar :</p>

<pre><code>mkdir site</code></pre>

<p>Allez, pour l'exemple, je vais ajouter un set d'icônes dedans :</p>

<pre><code>mkdir -p site/usr/local/share/icons
cp -r /usr/local/share/icons/Arc site/usr/local/share/icons</code></pre>

<p>J'y met aussi un script "install.site" qui va activer la gestion d'énergie juste après l'installation :</p>

<pre><code>echo "rcctl enable apmd" >> site/install.site
echo "rcctl set apmd status on" >> site/install.site
echo "rcctl set apmd flags -A">> site/install.site
chmod +x site/install.site
</code></pre>

<p>Enfin, je mets dans le script lancé au premier démarrage de quoi installer un environnement de bureau :</p>

<pre><code>echo "pkg_add xfce" >> site/etc/rc.firsttime
chmod +x site/etc/rc.firsttime
</code></pre>

<p>Allez zou, on met ces configurations dans une archive comme prévu :</p>

<pre><code>cd site
tar cvzf ../site62.tgz *
</code></pre>

<p>Ne reste plus qu'à copier cette archive dans l'iso extraite :</p>

<pre><code>cp site62.tgz install6.2/6.2/amd64/site62.tgz </code></pre>

<p>Lors de l'installation, il sera proposé d'installer le set site62 afin de profiter de cette configuration.</p>

<p>Enfin, on reconstruit l'iso. Remplacez genisoimage par mkisofs selon ce qui est disponible sur votre système :</p>

<pre><code>genisoimage -r -no-emul-boot -b 6.2/amd64/cdbr -c boot.catalog -o ./CustomOBSD.iso install6.2 </code></pre>

<p>Et voilà ;)<br>
Fastoche non ?</p>

<div><img src="media/824df31d.doigts_nez_luffy.gif" data-original-source="https://yeuxdelibad.net/Images/gifs/doigts_nez_luffy.gif" alt=""></div>

<p>Pour plus de détails ou d'idées, je vous invite à aller regarder le <a href="https://framagit.org/3hg/isotop/">code source d'isotop</a>, en particulier <a href="https://framagit.org/3hg/isotop/tree/master/bin">les scripts</a> qui servent à la génération des images. Ces derniers permettent notamment de générer une iso personnalisée d'OpenBSD même à partir d'un sysètme Linux.</p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/10/31/09/50/39-comment-creer-une-iso-dopenbsd-personnalisee" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Thuban : <a href="">Publication d&#039;isotop-0.2</a> (19/10/2017)</li><li>Thuban : <a href="">Publication d&#039;isotop-0.2.1</a> (30/10/2017)</li><li>Thuban : <a href="">&Ecirc;tre averti des mises &agrave; jours de -current disponibles.</a> (07/03/2017)</li></ul></div></p>


feed_id: https://marienfressinaud.fr/lessy-antlia.html
title: Marien Fressinaud : Lessy Antlia
uri: Marien-Fressinaud-Lessy-Antlia
url: https://marienfressinaud.fr/lessy-antlia.html
content:
<p>J’expliquais dans <a href="https://marienfressinaud.fr/project-zero-devient-lessy.html">mon article du 8 octobre</a>
que je souhaitais que Lessy soit un projet s’adressant à une large portion de
la population non-geek. Pour cela, je voulais le rendre plus accueillant et
plus communautaire. C’est pourquoi je suis très fier d’annoncer la sortie de
Lessy Antlia (le nom de cette nouvelle version). Au menu, énormément de
documentation.</p>
<p>J’ai passé les dernières semaines à travailler les valeurs que je voulais
défendre avec Lessy. Après avoir dessiné, trié et organisé toutes les idées que
j’avais en tête, j’ai abouti à une première version de la vision de Lessy (en
anglais) :</p>
<blockquote>
<p>Lessy is a time manager application built upon strong principles. It is
designed to be as <strong>intuitive and inclusive</strong> as possible. Its goal is to
return people their <strong>power to manage time</strong>, instil <strong>self-confidence</strong> and
challenge their <strong>capacity to question themselves</strong>. It is built by a
<strong>diverse and welcoming community</strong>.</p>
</blockquote>
<p>On peut traduire cela par :</p>
<blockquote>
<p>Lessy est un gestionnaire de temps basé sur des principes forts. Il est
conçu pour être aussi <strong>intuitif et inclusif</strong> que possible. Son objectif est
de redonner à ses utilisateurs et utilisatrices <strong>leur capacité à gérer leur
temps</strong>, <strong>leur confiance en eux</strong> et <strong>leur capacité à se remettre en
question</strong>. Il est développé par <strong>une communauté accueillante et
diversifiée</strong>.</p>
</blockquote>
<p>Cette vision est donnée en préambule <a href="https://github.com/marienfressinaud/lessy/blob/master/README.md">du fichier <code>README</code> de Lessy</a>
et est immédiatement suivi d’une précision : toute fonctionnalité
développée, toute discussion que nous avons au sein de la communauté, toute
décision que nous prenons doit aller dans le sens de cette vision.</p>
<p>Voilà donc pour la mise en bouche. Je regrette souvent le manque de direction
dans les projets communautaires qui mène bien souvent à des logiciels qui font
beaucoup de choses mais qui manquent de personnalité. Avec Lessy, je veux
donner un cap au logiciel et mes engagements personnels transparaissent dans
cette vision. Lorsque j’ai commencé à développer cette application, c’était
pour me redonner la main sur le temps qui m’échappait, alors pourquoi ne pas
complètement l’assumer jusque dans l’ADN de Lessy ?</p>
<p>On m’a demandé l’autre jour en quoi Lessy est-il éthique. J’étendrais la
question à en quoi Lessy correspond aujourd’hui à la vision que je viens
de donner. Et c’est vrai qu’en utilisant Lessy on voit difficilement une
application éthique, inclusive, redonnant un peu de pouvoir à ses utilisateurs
et utilisatrices ; tout au plus une todo-list un peu originale. Et c’est
effectivement le défi que je me donne pour les mois à venir : faire
transparaître la vision dans l’interface. Cependant, je ne pense pas être
capable de faire cela à moi seul et c’est pourquoi je voulais rapidement me
concentrer sur la documentation communautaire. Cette documentation contient
donc désormais :</p>
<ul><li><a href="https://github.com/marienfressinaud/lessy/blob/master/README.md">le README</a>,
  véritable porte d’entrée du projet ;</li>
<li><a href="https://github.com/marienfressinaud/lessy/blob/master/CONTRIBUTING.md">un fichier de contribution</a>
  expliquant comment participer à Lessy, j’ai pris le soin de lister une
  majorité d’activités ne nécessitant pas de connaissances en développement
  informatique ;</li>
<li><a href="https://github.com/marienfressinaud/lessy/blob/master/CODE_OF_CONDUCT.md">un code de bonne conduite</a>
  pour assurer qu’aucun comportement déplacé ne sera <strong>jamais accepté</strong> au sein
  de cette communauté ;</li>
<li><a href="https://github.com/marienfressinaud/lessy/blob/master/CONTRIBUTORS.md">une liste des contributeurs</a>
  pour remercier celles et ceux ayant contribué de près ou de loin au projet.</li>
</ul><p><a href="https://github.com/marienfressinaud/lessy/blob/master/docs/index.md">La documentation technique</a>
a elle aussi été largement revue pour aborder plus de sujets différents.</p>
<p>J’espère que tous ces documents sauront attirer une population hétérogène de
contributeurs et contributrices, bien que je ne me fasse pas d’illusion :
il faut désormais que je me bouge pour rendre l’application réellement
attrayante.</p>
<p>Tout cela m’a pris beaucoup de temps à rédiger, surtout que tout a été fait en
anglais alors que ce n’est pas ma langue de prédilection. J’ai fait ce choix
volontairement en me disant qu’il serait plus facile de trouver des personnes
souhaitant contribuer en visant large qu’en visant un public uniquement
francophone. De plus, j’ai le sentiment que les Français·e·s sont de plus en
plus à l’aise avec l’anglais. Seul l’avenir me le dira !</p>
<p><img src="media/aa8c2751.ea7e8807d513b71b5779dcee35c8e611" data-original-source="http://cdn.libravatar.org/avatar/ea7e8807d513b71b5779dcee35c8e611" alt="Gravatar de Marien Fressinaud" class="gravatar" /><br/><i>Original post of <a href="https://marienfressinaud.fr/lessy-antlia.html" title="Visit the source">Marien Fressinaud</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: http://www.fullcirclemag.fr/?post/2017/11/02/Annonce-importante-%3A-Ubuntu-Party
title: Full Circle Magazine FR : Annonce importante : Ubuntu Party
uri: Full-Circle-Magazine-FR-Annonce-importante-Ubuntu-Party
url: http://www.fullcirclemag.fr/?post/2017/11/02/Annonce-importante-%3A-Ubuntu-Party
content:
<p>L'association Ubuntu-fr organise la vingt-cinquième Ubuntu Party
parisienne qui se déroulera le week-end des 25 et 26 novembre 2017. Nous
aimerions vous y voir.</p>


<p>La formule de l'événement n'a pas changé et il y aura des conférences,
des ateliers, des démonstrations, des cours, l'install-party et les
stands associatifs. Le programme complet n'est pas encore disponible,
mais sera sur http://www.ubuntu-paris.org/ très bientôt, nous venons à
peine de clôturer les suggestions.</p>


<p>Elle aura lieu comme d'habitude au Carrefour Numérique de la Cité des
sciences et de l'industrie de La Villette au 30, avenue Corentin-Cariou
dans le 19ème arrondissement. Pour plus de détails
http://www.cite-sciences.fr/fr/infos-pratiques/acces/ . Bien entendu,
l'accès est libre et gratuit.</p>


<p>Clache, bénévole pour l'Ubuntu Party</p>
<p><img src="media/163a60d9.dd0e1a508d7347d53e0da0678bfd7aff" data-original-source="http://cdn.libravatar.org/avatar/dd0e1a508d7347d53e0da0678bfd7aff" alt="Gravatar de Full Circle Magazine FR" class="gravatar" /><br/><i>Original post of <a href="http://www.fullcirclemag.fr/?post/2017/11/02/Annonce-importante-%3A-Ubuntu-Party" title="Visit the source">Full Circle Magazine FR</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Gilir : <a href="">Lubuntu, premi&egrave;re&nbsp;!</a> (04/05/2010)</li><li>Gilir : <a href="">Sortie de Lubuntu 11.10</a> (14/10/2011)</li><li>Gilir : <a href="">Ubuntu Developer Summit (UDS) J-2</a> (30/10/2011)</li><li>Gilir : <a href="">UDS Jour 1</a> (01/11/2011)</li><li>Gilir : <a href="">UDS Jour 2</a> (02/11/2011)</li></ul></div></p>


feed_id: https://blog.genma.fr/?Lifehacking-TinyTask
title: genma : Lifehacking - TinyTask
uri: genma-Lifehacking-TinyTask
url: https://blog.genma.fr/?Lifehacking-TinyTask
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2674.png?1502284049" width="145" height="150"><div><p><span>
<img src="https://blog.genma.fr/local/cache-vignettes/L359xH372/tinytask-0c48b.png?1509696574" width="359" height="372" alt=""></span></p>
<p>Ayant à automatiser un certain nombres de tâches faite de façon graphique (des clics divers et variés au sein de différents logiciels en environement Windows), j'ai donc cherché un logiciel qui me permettrait de faire 500 fois la même chose. Et j'ai trouvé. Ce logiciel, c'est TinyTask. Disponible ici gratuitement ici (graticiel, logiciel non libre) <a href="https://www.vtaskstudio.com/tinytask.php" title="tinytask par vtaskstudio">https://www.vtaskstudio.com/tinytask.php</a></p>
<p>Remarque : la tâche nécessitait des actions en mode graphique au sein de différents logiciels, rien qui ne pouvait être automatisé par un script quelconque.</p>
<p>On l'installe, c'est léger. On le lance. On clique sur enregistrer. On exécute la séquence d'action que l'on souhaitera faire de manière répétitive. Cette séquence pouvant être au sein de différentes fenêtres. Et ça enregistre une macro qu'il est possible de rejouer un certain nombre de fois.</p>
<p><strong>Quelques astuces :</strong>
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> Ça marche bien dans une machine virtuelle (dans laquelle on a un Windows) ce qui permet de continuer à travailler à côté de ça sur la machine hôte. Sans cette astuce, on ne peut pas utiliser sa machine le temps que la tache se déroule. Une VM à lancer sur un second ou troisième écran pour garder un œil dessus. Car...
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> Le logiciel plante parfois, donc on lance les répétitions par lot de 20 en gardant un œil dessus.
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> Il faut penser à revenir sur la bonne fenêtre de départ à la fin de la séquence (en remettant le focus dessus). Car il semblerait que le logiciel enregistre les clics, la position de la souris et les saisies claviers, mais si on est sur la fenêtre d'un logiciel sans que l'on est le focus dessus, le clic se fait dans le vide et ça décale alors toute la séquence de la macro enregistrée.</p>
<p>Ce logiciel m'ayant bien dépannée (la tâche répétée 500 fois durait une minute à chaque fois une fois la séquence bien optimisée pour être sûre qu'elle marche comme je veux).</p>
<p>Je suis preneur d'un logiciel équivalent et aussi simple sous GNU/Linux Ubuntu. Par aussi simple, je ne veux pas d'un logiciel pour lequel il faut créer un script dans un langage dédié. Je voudrais un logiciel qui fasse la même chose que TinyTask.</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Lifehacking-TinyTask" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://carlchenet.com/deja-500-abonnes-a-la-newsletter-hebdomadaire-du-logiciel-libre/
title: Carl Chenet : Déjà 500 abonnés à la newsletter hebdomadaire du Logiciel Libre
uri: Carl-Chenet-Déjà-500-abonnés-à-la-newsletter-hebdomadaire-du-Log
url: https://carlchenet.com/deja-500-abonnes-a-la-newsletter-hebdomadaire-du-logiciel-libre/
content:
<p>Peu après la publication la semaine dernière du numéro 7 du <a href="https://lecourrierduhacker.com/">Courrier du hacker</a>, la newsletter hebdomadaire résumant l’actualité francophone du Logiciel Libre, nous avons passé le cap symbolique des 500 abonnés.</p>
<hr><p><img src="media/848ce166.courrierduhacker-logo.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo.png" alt="" width="818" height="168" srcset="https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo.png 818w, https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo-300x62.png 300w, https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo-768x158.png 768w" sizes="(max-width: 818px) 100vw, 818px"></p>

	<section><form method="POST" data-attr-form-id="1">

													<label for="EMAIL">

										<!-- dictate label visibility -->
																					<span>
												E-mail											</span>
										
										<!-- Description Above -->
										
										<input name="EMAIL" placeholder="" required="required" type="email" value=""><!-- Description Below --></label>
									
				<!-- Honeypot Trap -->
				<input type="hidden" name="yikes-mailchimp-honeypot" value=""><!-- List ID --><input type="hidden" name="yikes-mailchimp-associated-list-id" value="22e5c06162"><!-- The form that is being submitted! Used to display error/success messages above the correct form --><input type="hidden" name="yikes-mailchimp-submitted-form" value="1"><!-- Submit Button --><button type="submit"> <span>S'abonner</span></button>				<!-- Nonce Security Check -->
				<input type="hidden" name="yikes_easy_mc_new_subscriber" value="1c720659e7"><input type="hidden" name="_wp_http_referer" value="/category/planet-libre/feed/"></form>
			<!-- MailChimp Form generated by Easy Forms for MailChimp v6.3.24 (https://wordpress.org/plugins/yikes-inc-easy-mailchimp-extender/) -->

			</section><hr><p>Plus précisément le dernier numéro a été envoyé à 501 abonnés. Mais comme je n’étais pas sûr de passer le cap avant le numéro, j’ai choisi de l’annoncer un peu plus tard. Avec 516 abonnés au moment de la rédaction de ce billet, la palier est désormais bien franchi.</p>
<p><img src="media/e174316f.lecourrierduhacker-audience-1024x551.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-audience-1024x551.png" alt="" width="700" height="377" srcset="https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-audience-1024x551.png 1024w, https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-audience-300x161.png 300w, https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-audience-768x413.png 768w, https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-audience.png 1268w" sizes="(max-width: 700px) 100vw, 700px"></p>
<p>J’avais <a href="https://carlchenet.com/le-courrier-du-hacker-le-point-apres-deja-5-numeros-et-les-lecons-retenues/">dans le précédent billet</a> tiré plusieurs enseignements de la publication des 5 premiers numéros et les tendances que j’avais identifiées se sont confirmées. Nous n’en sommes qu’au tout début de la vie du projet et beaucoup de choses restent à faire. Continuer à informer le potentiel public de l’existence du Courrier du hacker et surtout être régulier dans la publication des numéros, un exercice moins trivial qu’il n’y paraît, la vie de tous les jours nous imposant sans cesse des contraintes.</p>
<p><strong>Idée à retenir :</strong> un bon début de projet ne doit pas rendre trop optimiste, cela se joue toujours dans la durée.</p>
<p>Afin de faire évoluer la newsletter, je m’appuie sur les épaules d’illustres prédécesseurs, publiant sans faillir leurs newsletters depuis des années, comme <a href="http://www.hackernewsletter.com/">la Hacker News Letter</a> (375 numéros en … 7 ans) ou encore côté Python <a href="http://www.pycoders.com/">la Pycoders Weekly</a> (290 numéros). Avec un peu de recherche on peut trouver des élément sur comment ces newsletters se sont développées et c’est autant de temps gagner à profiter de ces expériences.</p>
<p><a href="http://www.pycoders.com/"><img src="media/8add3187.pycoders.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/pycoders.png" alt="" width="994" height="215" srcset="https://carlchenet.com/wp-content/uploads/2017/11/pycoders.png 994w, https://carlchenet.com/wp-content/uploads/2017/11/pycoders-300x65.png 300w, https://carlchenet.com/wp-content/uploads/2017/11/pycoders-768x166.png 768w" sizes="(max-width: 994px) 100vw, 994px"></a></p>
<p><strong>Idée à retenir :</strong> gagner du temps en n’imaginant pas être le premier à faire ce qu’on fait et profiter de l’expérience de ces prédécesseurs.</p>
<p>Le numéro 8 publié ce vendredi offrira pour les plus rapides/chanceux un petit cadeau, pour remercier du soutien les premiers à s’être abonné à la newsletter <img src="media/2e2f464a.1f609.png" data-original-source="https://s.w.org/images/core/emoji/2.3/72x72/1f609.png" alt="😉"></p>
<h2>Me suivre sur les réseaux sociaux</h2>
<p>N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :</p>
<ul><li><strong>Mastodon</strong> : <a href="https://mastodon.social/@carlchenet">@carlchenet</a></li>
<li><strong>Diaspora</strong> :  <a href="https://framasphere.org/u/carlchenet">@carlchenet</a></li>
<li><strong>Twitter</strong> : <a href="https://twitter.com/carl_chenet">@carl_chenet</a></li>
</ul>
<p><img src="media/46f73009.e1f1addc890668ce2561431b7be810bc" data-original-source="http://cdn.libravatar.org/avatar/e1f1addc890668ce2561431b7be810bc" alt="Gravatar de Carl Chenet" class="gravatar" /><br/><i>Original post of <a href="https://carlchenet.com/deja-500-abonnes-a-la-newsletter-hebdomadaire-du-logiciel-libre/" title="Visit the source">Carl Chenet</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Carl Chenet : <a href="">Pourquoi j&rsquo;ai lanc&eacute; le Courrier du hacker, newsletter sur le Logiciel Libre et Open Source</a> (27/09/2017)</li><li>Carl Chenet : <a href="">D&eacute;j&agrave; 100 abonn&eacute;s au Courrier du hacker une semaine apr&egrave;s son lancement</a> (20/09/2017)</li><li>Carl Chenet : <a href="">Le Courrier du hacker : le point apr&egrave;s (d&eacute;j&agrave;) 5 num&eacute;ros et les le&ccedil;ons retenues</a> (16/10/2017)</li><li>Carl Chenet : <a href="">Le Journal Du Pirate, nouveau m&eacute;dia propuls&eacute; par un Logiciel Libre qui trouve sa place</a> (23/12/2014)</li><li>Carl Chenet : <a href="">Le Journal Du Pirate : votre source d&rsquo;informations pour le Logiciel Libre francophone</a> (12/03/2015)</li></ul></div></p>


uri: System-Linux-nagios-Error-Could-not-open-check-result-queue-direct
feed_id:
https://www.system-linux.eu/index.php?post/2017/11/03/nagios%3A-Error%3A-Could-not-open-check-result-queue-directory-/var/log/nagios/spool/checkresults

title:
System Linux : nagios: Error: Could not open check result queue directory '/var/log/nagios/spool/checkresults'

url:
https://www.system-linux.eu/index.php?post/2017/11/03/nagios%3A-Error%3A-Could-not-open-check-result-queue-directory-/var/log/nagios/spool/checkresults

content:
<p><img src="media/58cce7d2.nagios-livre.jpg" data-original-source="https://www.system-linux.eu/public/images/nagios-livre.jpg" alt="nagios livre jpg" title="nagios livre jpg, fév. 2010"></p>


<p>Rapide à solutionner.</p>    <p>Le souci c'est que checkresults est un fichier au lieu d’être un dossier.</p>

<pre>
# rm -rf /var/log/nagios/spool/checkresults
# mkdir -p /var/log/nagios/spool/checkresults
# chown nagios: /var/log/nagios/spool/checkresults -R 
</pre>


<p>Votre :</p>

<pre>
tail -f messages
</pre>


<p>sera plus agréable à lire.</p>
<p><img src="media/ff41ece7.4238771a81824a8b9dc3850d6a8e9d26" data-original-source="http://cdn.libravatar.org/avatar/4238771a81824a8b9dc3850d6a8e9d26" alt="Gravatar de System Linux" class="gravatar" /><br/><i>Original post of <a href="https://www.system-linux.eu/index.php?post/2017/11/03/nagios%3A-Error%3A-Could-not-open-check-result-queue-directory-/var/log/nagios/spool/checkresults" title="Visit the source">System Linux</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Nicolargo : <a href="">Nagios 4: R&eacute;soudre l&rsquo;erreur &ldquo;Can&rsquo;t open /etc/rc.d/init.d/functions&rdquo;</a> (25/10/2013)</li><li>System Linux : <a href="">Erreur 144 avec mysqldump</a> (14/03/2017)</li><li>System Linux : <a href="">D&eacute;criptif alerte Nagios processes with STATE = RSZDT</a> (14/04/2016)</li></ul></div></p>


title: Journal du hacker : Liens intéressants Journal du hacker semaine #44
uri: 2017-11-06-Journal-du-hacker-Liens-intéressants-Journal-du-hacker-semaine-44
feed_id:
https://blog.journalduhacker.net/index.php?article132/liens-interessants-journal-du-hacker-semaine-44-2017

url:
https://blog.journalduhacker.net/index.php?article132/liens-interessants-journal-du-hacker-semaine-44-2017

content:
<p>Pour la 44ème semaine de 2017, voici <strong>10 liens</strong> intéressants que vous avez peut-être ratés, relayés par <a href="https://www.journalduhacker.net/">le Journal du hacker</a>, votre source d’informations pour le Logiciel Libre francophone !</p>

<a href="https://www.journalduhacker.net/"><img src="media/01f45034.logo-journal-du-hacker.png" data-original-source="https://blog.journalduhacker.net/data/medias/logo-journal-du-hacker.png"></a>

<ul><li><a href="https://www.journalduhacker.net/s/xvevvk/les_trucs_qui_me_font_d_tester_votre_site">Les trucs qui me font détester votre site web en 2017</a></li>
<li><a href="https://www.journalduhacker.net/s/eii7zn/firefox_58_ne_permettra_pas_le_pistage_des">Firefox 58 ne permettra pas le pistage des internautes grâce à l'élément HTML Canvas, le navigateur demandera d'abord la permission de l'utilisateur</a></li>
<li><a href="https://www.journalduhacker.net/s/bessdl/zfs_larchitecte_en_chef_de_la_technologie">ZFS : l'architecte en chef de la technologie souhaite son retour à l'open source</a></li>
<li><a href="https://www.journalduhacker.net/s/srpssj/f_droid_1_0_est_sorti">F-Droid 1.0 est sorti</a></li>
<li><a href="https://www.journalduhacker.net/s/ewja8c/exploiter_du_json_en_bash_avec_php">Exploiter du JSON en Bash avec PHP</a></li>
<li><a href="https://www.journalduhacker.net/s/9u7cqo/am_liorer_la_gestion_d_nergie_de_votre">Améliorer la gestion d'énergie de votre laptop avec TLP</a></li>
<li><a href="https://www.journalduhacker.net/s/sorhfl/publication_de_notre_workshop_les">Publication de notre workshop : Les nouveautés de PostgreSQL 10</a></li>
<li><a href="https://www.journalduhacker.net/s/ak9w5u/howto_openssh">Howto OpenSSH</a></li>
<li><a href="https://www.journalduhacker.net/s/qedymn/jean_baptiste_kempf_vlc_la_success_story">Jean-Baptiste Kempf : VLC, la success-story d'un entrepreneur français</a></li>
<li><a href="https://www.journalduhacker.net/s/jnhqbv/comment_s_curiser_wordpress_en_13_tapes">Comment sécuriser Wordpress en 13 étapes</a></li>
</ul><p>Pour ne plus rater aucun article de la communauté francophone, voici :</p>

<ul><li><a href="https://www.journalduhacker.net/rss">Le flux RSS du Journal du hacker</a></li>
<li><a href="https://twitter.com/journalduhacker">Le compte Twitter du Journal du hacker</a></li>
<li><a href="https://framasphere.org/u/journalduhacker">Le compte Diaspora* du Journal du hacker</a></li>
<li><a href="https://framapiaf.org/@journalduhacker">Le compte Mastodon du Journal du hacker</a></li>
</ul><p>De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !</p>

<p>Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. <a href="https://www.journalduhacker.net/invitations/request">Rejoignez-nous</a> pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !</p>

<p><strong>Et vous ? Qu’avez-vous pensé de ces articles ?</strong> N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)</p>
<p><img src="media/ffe97a17.7916ee3cafa0bc3e9583bedad876dcd5" data-original-source="http://cdn.libravatar.org/avatar/7916ee3cafa0bc3e9583bedad876dcd5" alt="Gravatar de Journal du hacker" class="gravatar" /><br/><i>Original post of <a href="https://blog.journalduhacker.net/index.php?article132/liens-interessants-journal-du-hacker-semaine-44-2017" title="Visit the source">Journal du hacker</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Carl Chenet : <a href="">Liens int&eacute;ressants Journal du hacker semaine #44</a> (29/10/2015)</li><li>Journal du hacker : <a href="">Liens int&eacute;ressants Journal du hacker semaine #44</a> (07/11/2016)</li></ul></div></p>


feed_id: https://www.system-linux.eu/index.php?post/2017/11/06/Monitoring-Elasticsearch
title: System Linux : Monitoring Elasticsearch
uri: System-Linux-Monitoring-Elasticsearch
url: https://www.system-linux.eu/index.php?post/2017/11/06/Monitoring-Elasticsearch
content:
<p><img src="media/080e93c6.elastic.png" data-original-source="https://www.system-linux.eu/public/images/elastic.png" alt="elastic.png" title="elastic.png, nov. 2017"></p>


<p>Simple mais efficace.</p>    <p>Un check simple basé sur la commande d’état d'elasticsearch :</p>

<pre>
$ curl http://172.23.4.5:9200/_cat/health
1509719614 15:33:34 elasticsearch_prod green 2 2 5772 2886 0 0 0 0 - 100.0%
</pre>


<p>Avec check_http :</p>

<pre>
$ ./check_http -I SRV-BDD-01 -u /_cat/health?h=st -p 9200 -r 'red' --invert-regex
HTTP OK: HTTP/1.0 200 OK - 86 octets en 0,004 secondes de temps de réponse |time=0,004206s;;;0,000000 size=86B;;;0
</pre>

<pre>
$ ./check_http -I SRV-BDD-01 -u /_cat/health?h=st -p 9200 -r 'green'
HTTP OK: HTTP/1.0 200 OK - expression trouvée - 86 octets en 0,020 secondes de temps de réponse |time=0,019805s;;;0,000000 size=86B;;;0
</pre>
<p><img src="media/ff41ece7.4238771a81824a8b9dc3850d6a8e9d26" data-original-source="http://cdn.libravatar.org/avatar/4238771a81824a8b9dc3850d6a8e9d26" alt="Gravatar de System Linux" class="gravatar" /><br/><i>Original post of <a href="https://www.system-linux.eu/index.php?post/2017/11/06/Monitoring-Elasticsearch" title="Visit the source">System Linux</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Monitoring-FR : <a href="">ELK : Trio de charme ElasticSearch, Logstash &amp;amp; Kibana</a> (07/05/2014)</li><li>System Linux : <a href="">Agr&eacute;ablement surpris par Netdata (monitoring)</a> (24/07/2017)</li></ul></div></p>


feed_id: https://blog.genma.fr/?Yunohost-Virtualbox-Interfaces-reseaux
title: genma : Yunohost, Virtualbox, Interfaces réseaux
uri: genma-Yunohost-Virtualbox-Interfaces-réseaux
url: https://blog.genma.fr/?Yunohost-Virtualbox-Interfaces-reseaux
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2686.jpg?1502371545" width="150" height="79"><div><p>J'avais publié rapidement un billet <a href="https://blog.genma.fr/?Yunohost-Clonezilla-et-Virtualbox" title="Yunohost, Clonezilla et Virtualbox">Yunohost, Clonezilla et Virtualbox</a> expliquant que j'avais fait un clone via Clonezilla de ma machine Yunohost et cloner celle-ci au sein d'une machine virtuelle dans VirtualBox. Dans ce billet, je voudrais aller un peu plus loin et aborder l'aspect configuration et paramétrage réseau.</p>
<p>Remarque : <br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> Par YunohostProd, je désignerai la machine / serveur sur laquelle j'ai mon Yunohost que j'utilise tous les jours ;
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> Par YunohostTest, je désignerai le clone / la machine virtuelle dans VirtualBox.</p>
<p><strong>Mon besoin</strong></p>
<p>Mon besoin est donc d'avoir une machine de test, aussi proche que possible de ma machie de production. L'avantage de la machine virtuelle est de pouvoir jouer avec et faire des tests, revenir en arrière très facilement via les snapshots.</p>
<p><strong>VirtualBox - Quelles cartes réseaux ?</strong></p>
<p>Cet environement de test est testé essentiellement sur deux types de réseaux : chez moi, derrière une Freebox. Et sur un réseau d'entreprise.</p>
<p>Sur chacun des machines virtuelles (que j'utilise dans VirtualBox, indépendamment du fait que ce soit une instance Yunohost), je crée à minima deux cartes réseaux :
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>une carte eth0 en mode NAT</strong> : l'accès Internet de la machine hôte est alors partagé, je peux faire des mises à jour etc. La machine virtuelle voit Internet mais n'est pas vu du réseau local (elle est derrière un NAT qui est géré par VirtualBox).
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>une carte eth1 en mode Réseau Privé hôte</strong> sur vbonet0 : la machine est visible et voit la machine hôte et réciproquement. Cette interface réseau me sert pour me connecter en SSH depuis ma machine hôte sur la machine virtuelle.</p>
<p>A ces deux interfaces réseaux, j'en ajoute une troisième : <br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>une carte eth2 en mode Accès par pont (Bridge)</strong>. Cette interface est uniquement valable dans le cas où le réseau permet à la machine virtuelle d'avoir une IP dédiée (fixe ou via le DHCP). En entreprise (par exemple), là où les IP sont souvent associées aux adresses MAC, il n'est pas possible d'avoir une IP dédiée pour les machines virtuelles de test ; je désactive donc cette interface. De chez moi, quand je suis connecté sur le réseau de la Freebox, j'active cette carte eth2, ma machine virtuelle a donc une IP dédiée sur le réseau local.<br>
Remarque : vu que via cette interface, la machine hôte voit également la machine virtuelle étant donné qu'elles sont sur le même réseau local, je pourrais désactiver l'interface eth1 quand je peux activer eth2.</p>
<p><strong>Qui voit quoi ?</strong>
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> via la carte en NAT : la VM a accès à Internet pour les mises à jour derrière un NAT. Elle est invisible du réseau local et de la machine hôte, à moins de faire des redirections de port ;
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> via la carte Réseau privé : accès à la machine hôte et réciproquement ; la VM est également visible des autres machines virtuelles situées dans le même réseau privé.
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> via la carte Réseau Accès par Pont : comme la machine virtuelle a accès au réseau local et sa propre IP sur le réseau, elle est visible des machines du réseau local en accès direct.</p>
<p><strong>Configuration réseau - DHCP par défaut</strong> Pour chacune des interfaces réseaux de ma machine virtuelle, je reste en DHCP par défaut. Je pourrais lui affecter des IP fixes, mais je peux savoir facilement (c'est indiqué au lancement de Yunohost) les différentes adresses IP associées aux différentes interfaces réseaux ; le bail DHCP étant assez long - la machine garde toujours les mêmes IP pour les différentes interfaces.</p>
<p><strong>Connexions à la VM Yunohost</strong></p>
<p>Les connexions Yunohost se font de deux façons : <br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> par un navigateur pour l'accès aux différentes applications dans Yunohost ;
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> par SSH</p>
<p>Sur ma machine hôte (un Linux), pour me simplifier la tâche et Yunohost utilisant les noms de domaines qu'ont lui a associé plutôt que les IP, quand je lance ma machine virtuelle, je pense à modifier le fichier /etc/host</p>
<div dir="ltr"><code>monyunohost.fr 192.168.0.100</code></div>
<p>avec : <br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> monyunohost.fr : mon domaine yunohost
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> 192.168.0.100 : l'IP du réseau privé affecté par VirtualBox à la machine virtuelle (interface eth1).</p>
<p>Et ainsi, en allant sur <a href="https://monyunohost.fr/" rel="nofollow external">https://monyunohost.fr</a>, <i>je peux faire ce que j'ai à faire</i>.</p>
<p><strong>Reste à faire</strong></p>
<p><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>Du routage avancé</strong> Tout le trafic passe par défaut - est routé via l'interface eth0, celle qui est donc Naté. Cela ne pose pas de soucis pour tout ce qui sort. Mais pour ce qui entre, il est nécessaire de passer par la carte eth1. <br>
=> Il faut que je vois les possibilités de ce côté.</p>
<p><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>Mise en place d'une synchronisation Prod vers Recette</strong> Je peux très facilement cloner la machine virtuelle YunohostTest pour avoir une machine pour les tests et une machine "Sauvegarde". <br>
J'aurai donc une seconde machine virtuelle, YunoBackup, qui aura une interface eth2 avec une IP du réseau sur lequel se trouve la machine YunohostProd. Les deux machines se voient. Mon idée est de mettre en place un système (un script) qui au démarrage de la machine virtuelle de Sauvegarde (YunoBackup) va se connecter en SSH à ma machine de production, et se synchroniser (à base de Rsync) pour récupérer les principaux changements.<br>
Autre possibilité : récupérer les sauvegardes et les restaurer au sein de cette machine YunoBackup (un bon moyen de valider la procédure de sauvegarde / restoration). Toujours via un script. <br>
=> Je note ça dans ma todo liste de projets personnels. A suivre.</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Yunohost-Virtualbox-Interfaces-reseaux" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>genma : <a href="">Yunohost dans Virtualbox</a> (07/03/2016)</li><li>genma : <a href="">Yunohost, Clonezilla et Virtualbox</a> (06/05/2016)</li><li>genma : <a href="">Yunohost - Astuces pour se cr&eacute;er une instance de test ou demo</a> (29/09/2016)</li></ul></div></p>


feed_id: https://hashtagueule.fr/2017/11/07/lets-encrypt-sur-haproxy-partie-1/
title: raspbeguy : Let’s Encrypt sur HAProxy (Partie 1)
uri: raspbeguy-Let-s-Encrypt-sur-HAProxy-(Partie-1)
url: https://hashtagueule.fr/2017/11/07/lets-encrypt-sur-haproxy-partie-1/
content:
<p>Vous vous en souvenez peut-être, nous avions effectué <a href="https://hashtagueule.fr/2016/01/03/securiser-ses-sites-web-avec-lets-encrypt/">un tutoriel Let’s Encrypt</a> quelques jours après sa mise en bêta publique. D’ailleurs, il mériterait un petit relooking, vu que quelques détails ont un peu changé, et que d’autres clients ACME ont vu le jour. Par exemple on a honteusement passé sous silence l’excellent <a href="https://github.com/Neilpang/acme.sh" target="_blank" rel="noopener">acme.sh</a> qui a le mérite de ne pas demander une ribambelle de dépendance en temps que simple script Bash. De plus, le client principal (dont le nom est désormais Certbot) a désormais implémenté des extensions Apache et Nginx qui fonctionnent (presque) comme on le souhaite, à savoir modifier tout seul les configurations des sites pour fonctionner avec Let’s Encrypt. Cependant je reste plus enclin à utiliser la méthode manuelle.</p>
<p>À l’époque, je vous parlais d’une infrastructure simple, à savoir un unique serveur frontal : c’est lui qui interceptait les requêtes et qui les traitait, point barre. L’infra d’un site avec une audience restreinte, car tout doit être traité par une unique machine. Bonjour l’indispo surprise.</p>
<p>Parlons à présent d’une architecture un peu plus ambitieuse, le genre de topologie qu’on peut trouver en production pour des sociétés importantes (et les technophiles enthousiastes). Cette première partie sera dédiée à l’explication de cette mystérieuse architecture et à la présentation d’une manière de la mettre en œuvre. Dans une seconde partie, on apprendra à y déployer ses certificats Let’s Encrypt.</p>
<p><span></span></p>
<p>Souvent donc, on ne se contente pas d’un unique frontal, mais de plusieurs frontaux, sous la coupe d’un répartiteur de charge, (<em>load-balancer</em> en anglais) qui se chargera de réceptionner les requêtes des utilisateurs et de les distribuer aux frontaux, selon une stratégie définie. Cette architecture a quatre avantages :</p>
<ul><li>On gagne en charge maximale supportée, donc en nombre de visiteurs.</li>
<li>Multiplier les frontaux amoindrit fortement les risques de crash du site, car en cas de panne d’un frontal, les autres frontaux se partagent le trafic.</li>
<li>La mise en production d’une nouvelle version d’un site web peut se faire sans aucune interruption de service : il suffit de déployer sur un frontal à la fois.</li>
<li>Les frontaux sont sur un réseau privés et non directement accessible sur le réseau global, donc la sécurité du site est renforcée.</li>
</ul><p><a href="media/77463cb0.front.png" data-original-source="https://hashtagueule.fr/wp-content/uploads/2017/11/front.png"><img src="media/77463cb0.front.png" data-original-source="https://hashtagueule.fr/wp-content/uploads/2017/11/front.png" alt="load-balancer" width="541" height="563"></a></p>
<p>On constate que le répartiteur de charge est un potentiel goulot d’étranglement et il nous faut donc un programme optimisé pour la haute disponibilité afin que le flux des requêtes ne soit pas le facteur limitant.</p>
<p>Disons maintenant que l’on souhaite apposer un certificat sur cette architecture. Question à dix sesterces : qui parmi ces serveurs doit porter ce certificat ?</p>
<p>Si on choisit de faire porter le certificat par les frontaux, cela signifie qu’il faut que tous les frontaux doivent le porter, et qu’il faudra déployer le certificat sur toutes ces machine à chaque renouvellement. Mais surtout, cela signifie que, le trafic étant chiffré jusqu’aux frontaux, le répartiteur de charge ne pourra pas prendre en compte le contenu de la requête dans sa stratégie de répartition, ce qui est fort pénalisant. En effet, il est coutume de configurer le répartiteur de charge pour distribuer certaines URL sur un pool de frontaux différent du pool normal, par exemple le <em>back-office</em> (la page d’administration et de saisie de contenu du site). Enfin dernier point, si vous vous souvenez du fonctionnement du protocole ACME comme décrit dans <a href="https://hashtagueule.fr/2016/01/03/securiser-ses-sites-web-avec-lets-encrypt/">notre tutoriel</a>, vous saurez que le certificat doit être généré sur la machine qui en fait la demande et qui répondra au challenge ACME. Ceci implique qu’un des frontaux doit être désigné pour la génération des certificat, et donc que le répartiteur de charge doit rediriger toutes les requêtes de type ACME vers ce frontal, ce qui est à la fois moche et justement impossible car notre répartiteur de charge ne peut pas comprendre ce qu’il redirige à cause du chiffrement.</p>
<p>La solution la plus sensée, qui maintient également le plus l’isométrie des frontaux, est de faire porter le certificat par le répartiteur de charge.</p>
<p>Zoomons alors sur cette fameuse machine, le répartiteur de charge. On va partir d’un socle OpenBSD. Pourquoi pas un Linux ? Parce qu’on utilise souvent la même machine pour la répartition de charge et pour le pare-feu, et qu’OpenBSD est le système de prédilection pour faire un routeur libre. Et en plus j’aime bien cet OS, ça change un peu les idées.</p>
<p>Sur ce socle, on va utiliser le répartiteur de charge HAProxy. Les seules tâches de HAProxy sont de porter le certificat du ou des sites (on parle de <em>SSL-offloading</em>) et d’aiguiller le trafic web sur les frontaux. Il ne peut pas générer de flux web par lui-même, il peut seulement relayer une requête à un autre service. Et d’ailleurs il est très bon pour ça.</p>
<p>HAProxy est organisé en <em>frontends</em> et en <em>backends</em> : un <em>frontend</em> est la façade présentée au monde extérieur qui va recevoir les requêtes des internautes. Un <em>backend</em> est un pool de serveurs frontaux qui va traiter la requête. HAProxy doit donc choisir sur quel <em>backend</em> envoyer une requête, mais il doit également gérer le pool de frontaux que représente ce <em>backend</em>.</p>
<p>Prenons un exemple de configuration simple. On passera les directives globales HAProxy qui ne sont pas intéressantes et présentent peu de valeur ajoutée. Et bien entendu, on part du principe que vos frontaux sont configurés, écoutent sur des adresses locales et tout le toutim.</p><pre>frontend mon_super_site
    bind *:80
    mode http

    acl url-back-office path_dir /admin

    use_backend back-office if url-back-office
    default_backend mes-frontaux

backend back-office
    server backoffice 192.168.0.14:80

backend mes-frontaux
    balance roundrobin
    server backoffice 192.168.0.11:80
    server backoffice 192.168.0.12:80
    server backoffice 192.168.0.13:80</pre><p>Dans cette configuration, le <em>frontend</em> écoute sur toutes les adresses IP attribuées au serveur, sur le port 80 (donc pour le moment, uniquement du trafic en clair). Le mode HTTP signifie qu’on utilise ce <em>frontend</em> pour répartir du flux web, et non pas comme le mode TCP ou l’on redirige un flux TCP intouché.</p>
<p>On a écrit une ACL, autrement dit une condition. <strong>Retenez cette notion car les ACL sont au cœur du principe de HAProxy.</strong> Ici notre ACL est vraie si le chemin de l’URL commence par <code>/admin</code> et fausse sinon. On utilisera donc le <em>backend</em> <code>back-office</code> si l’ACL est vraie et sinon, on utilisera le <em>backend</em> par défaut <code>mes-frontaux</code>.</p>
<p>Le <em>backend</em> <code>back-office</code> est très simple car il ne comporte qu’un serveur. Le <em>backend</em> <code>mes-frontaux</code> comporte trois serveurs répartis en <a href="https://fr.wikipedia.org/wiki/Round-robin_(informatique)" target="_blank" rel="noopener"><em>round-robin</em></a>.</p>
<p>Et voilà, vous avez un répartiteur de charge. Si vous avez un certificat SSL, vous pouvez ajouter une ligne au <em>frontend</em> :</p><pre>bind *:443 ssl cert /chemin/vers/mon/certificat.pem</pre><p>Sauf que ça ne marchera pas. En tout cas pas tant que vous aurez mis votre certificat sous la forme attendue par HAProxy, à savoir la clef privée et le certificat dans le même fichier. Nous verrons cela dans la seconde partie, qui vous expliquera également (et finalement) comment diable utiliser Let’s Encrypt avec ce bidule. En tout cas, si vous êtes perspicace, vous vous doutez que ça tournera en partie autour des ACL, car il y a bien une raison pour laquelle c’est le seul élément en gras de l’article.</p>
<p>(Source de l’image d’en-tête : <a href="https://schiraki.deviantart.com/art/Great-A-tuin-177412743" target="_blank" rel="noopener">Great A’tuin</a> par <a href="https://schiraki.deviantart.com/" target="_blank" rel="noopener">Schiraki</a>)</p>
<p><img src="media/5d5f33cd.8c070c66b21754e12e285200ce535c2b" data-original-source="http://cdn.libravatar.org/avatar/8c070c66b21754e12e285200ce535c2b" alt="Gravatar de raspbeguy" class="gravatar" /><br/><i>Original post of <a href="https://hashtagueule.fr/2017/11/07/lets-encrypt-sur-haproxy-partie-1/" title="Visit the source">raspbeguy</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Angristan : <a href="">Seedbox : installer le client torrent Transmission sous Debian et Ubuntu</a> (21/10/2016)</li><li>Angristan : <a href="">Seedbox : installer le client torrent Flood sous Debian&nbsp;8</a> (24/10/2016)</li><li>Angristan : <a href="">Seedbox : installer le client ruTorrent sous Debian 9</a> (11/09/2017)</li><li>raspbeguy : <a href="">&Ccedil;a va devenir RAID dans votre serveur</a> (22/08/2017)</li><li>Angristan : <a href="">Installer le serveur web Nginx depuis le d&eacute;p&ocirc;t officiel sous Debian, Ubuntu et CentOS</a> (12/06/2016)</li></ul></div></p>


feed_id: https://blog.niqnutn.com/index.php?article96/creer-un-torrent-sur-yggtorrent
title: nIQnutn : Créer un torrent sur yggtorrent
uri: nIQnutn-Créer-un-torrent-sur-yggtorrent
url: https://blog.niqnutn.com/index.php?article96/creer-un-torrent-sur-yggtorrent
content:
<p>Comme vous le savez, T411 a fermé ses portes. 
Évidemment, il n'est pas question de s’arrêter là et certains ont décidé de continuer ailleurs. Si on peut honnêtement considérer le partage d’œuvres comme préjudiciable pour certains auteurs et artistes cela ne peut remettre en question l’intérêt du partage d’œuvres.
</p>

<div><img src="media/0fc645df.white-male-1816220_1280.tb.jpg" data-original-source="https://blog.niqnutn.com/data/medias/0096/white-male-1816220_1280.tb.jpg" alt=""></div>

<p>
Je ne vais pas parler du piratage et de votre karma. 
Vous êtes libre de télécharger et partager ce que vous voulez, à vous de décider si vous prenez le risque de partager des œuvres protégés et peut être vous faire attraper.</p>


<p>On va simplement voir comment créer et partager un torrent sur yggtorrent.</p><div>
<span><i></i></span>
Debian 9.2 (stretch)<br>
mktorrent 1.0<br>
MediaInfo 0.7.91
</div>


<p>On commence par se placer dans le bon dossier:</p>
<div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>cd /home/niqnutn/torrent/</code></pre></div></div>

<h2>Créer le fichier .torrent</h2>


<p>On aura besoin d'installer l'utilitaire mktorrent:</p>

<div>
<div><i></i><br><span>#root</span></div>
<div><pre><code>apt install mktorrent</code></pre></div>
</div>


<p>Pour créer le fichier .torrent  :</p>

<div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>mktorrent -v -l 20 -p -a "http://jack.yggtorrent.com:8080/840497339eca7bc748a788a223f75411/announce"  "MonFichierPartagé.mp4" -o "mon-fichier-partage.torrent"</code></pre></div></div>


<ul><li><strong>-l 20</strong> : taille des pièces du torrent (à modifier en fonction de la taille du torrent)

<ul><li>19 pour un torrent de 512 MiB à 1024 MiB</li>
<li>20 pour un torrent de 1 GiB à 2 GiB</li>
<li>21 pour un torrent de 2 GiB à 4 GiB</li>
<li>22 pour un torrent de 4 GiB à 8 GiB</li>
<li>23 pour un torrent de 8 GiB à 16 GiB</li>
<li>23 pour un torrent de 16 GiB à 512 GiB</li>
</ul></li>
<li><strong>-p</strong> : pour définir qu'il s'agit d'un tracker privé</li>
<li><strong>-a http://tracker.com</strong> : le lien du tracker (différent pour chaque utilisateur, vous le trouverez dans la page d'upload)</li>
<li><strong>MonFichierPartagé.mp4</strong> : le nom du fichier ou du dossier à partager</li>
<li><strong>-o mon-fichier-partage.torrent</strong> : le nom du fichier .torrent (facultatif)</li>
</ul><h2>Créer le fichier .nfo</h2>


<p>Il faut générer un fichier .nfo pour obtenir les informations techniques d'un fichier audio, vidéo et image.</p>

<p>Pour ça, on va utiliser mediainfo. Pour l'installer:</p>

<div>
<div><i></i><br><span>#root</span></div>
<div><pre><code>apt install mediainfo</code></pre></div>
</div>


<p>Il suffit de lancer mediainfo et de créer le fichier .nfo:</p>

<div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>mediainfo -i MonFichierPartagé.mp4 > mon-fichier-partage.torrent</code></pre></div></div>


<p>Il ne reste plus qu'à finir la présentation et seeder votre torrent.</p>

<p>Pour ceux qui préfère utiliser une interface graphique, ll est également possible de faire tout ça avec Deluge.</p>



<p><em>N'oubliez pas que le droit d'auteur ne devrait pas être la norme, c'est juste une anomalie.</em><em></em><em></em></p>


<h2>Ressources</h2>


<ul><li><a href="https://torrentfreak.com/">Torrent Freak</a></li>
</ul><div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>man mktorrent</code></pre></div></div>


<div>
<div><i></i><br><span>$user</span></div>
<div><pre><code>man mediainfo</code></pre></div></div><hr>
nIQnutn CC-BY
<p><img src="media/a91347c8.5c27127d0dc6fdd370e85d336aa73f8c" data-original-source="http://cdn.libravatar.org/avatar/5c27127d0dc6fdd370e85d336aa73f8c" alt="Gravatar de nIQnutn" class="gravatar" /><br/><i>Original post of <a href="https://blog.niqnutn.com/index.php?article96/creer-un-torrent-sur-yggtorrent" title="Visit the source">nIQnutn</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://www.system-linux.eu/index.php?post/2017/11/03/La-commande-iostat-paquet-sysstat
title: System Linux : La commande iostat paquet sysstat
uri: System-Linux-La-commande-iostat-paquet-sysstat
url: https://www.system-linux.eu/index.php?post/2017/11/03/La-commande-iostat-paquet-sysstat
content:
<p><img src="media/47f315b1.iostat1.png" data-original-source="https://www.system-linux.eu/public/iostat1.png" alt="iostat1.png" title="iostat1.png, nov. 2017"></p>


<p>Pratique pour : "y a des lenteurs..."</p>    <p><strong>La commande iostat se trouve dans le paquet sysstat :</strong></p>

<pre>
# apt install sysstat
</pre>


<p><strong>Ensuite taper :</strong></p>

<pre>
# iostat -x 2
</pre>


<p><img src="media/b0ce4898..iostat_m.jpg" data-original-source="https://www.system-linux.eu/public/.iostat_m.jpg" alt="iostat.jpg" title="iostat.jpg, nov. 2017"></p>


<p><strong>Monitoring dans Centreon/Nagios :</strong></p>

<pre>
# ./check_diskio.pl -H $HOSTADDRESS$ -d sda -C Snmpcom -w 4 -c 6 
</pre>
<p><img src="media/ff41ece7.4238771a81824a8b9dc3850d6a8e9d26" data-original-source="http://cdn.libravatar.org/avatar/4238771a81824a8b9dc3850d6a8e9d26" alt="Gravatar de System Linux" class="gravatar" /><br/><i>Original post of <a href="https://www.system-linux.eu/index.php?post/2017/11/03/La-commande-iostat-paquet-sysstat" title="Visit the source">System Linux</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Monitoring-FR : <a href="">Overmon : la supervision coupl&eacute;e &agrave; l&rsquo;inventaire</a> (03/09/2012)</li><li>Monitoring-FR : <a href="">F.A.N : Sortie de la version 2.4</a> (17/03/2013)</li><li>Monitoring-FR : <a href="">Eyes Of Network : Sortie de la version 4.0</a> (25/07/2013)</li><li>Monitoring-FR : <a href="">Un cocktail de rentr&eacute;e pour bien superviser votre site web</a> (27/08/2014)</li><li>System Linux : <a href="">Commande rpm</a> (21/04/2016)</li></ul></div></p>


feed_id: https://yeuxdelibad.net/Blog/?d=2017/10/11/10/43/43-utiliser-duniter-sous-openbsd
title: Thuban : Utiliser duniter sous OpenBSD
uri: Thuban-Utiliser-duniter-sous-OpenBSD
url: https://yeuxdelibad.net/Blog/?d=2017/10/11/10/43/43-utiliser-duniter-sous-openbsd
content:
<p>Curieux de cette cryptomonnaie, je voulais tester duniter sous OpenBSD. Voici la marche à suivre :</p>

<p>Récupérez une archive de duniter sur github : <a href="https://github.com/duniter/duniter/releases/tag/v1.5.9">https://github.com/duniter/duniter/releases/tag/v1.5.9</a></p>

<p>Ensuite, suivez la procédure suivante ("#" veut dire que c'est à lancer avec les droits super utilisateur, "$" en user normal) :</p>

<pre><code># pkg_add node
# npm install --global yarn
# ln -s /usr/local/bin/python2.7 /usr/local/bin/python
$ ftp -o duniter.tar.gz https://github.com/duniter/duniter/archive/v1.5.9.tar.gz
$ tar xvzf duniter.tar.gz
$ cd duniter*
$ yarn</code></pre>

<p>On peut maintenant l'utiliser en suivant les recommandations situées <a href="https://duniter.org/en/wiki/duniter/commands/">ici</a>.</p>

<pre><code>./bin/duniter wizard key
./bin/duniter wizard network
./bin/duniter sync
</code></pre>

<p>Et ça tourne...</p>

<div><img src="media/cd0a2269.duniter.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/f0/duniter.png" alt=""></div>

<p>Vos clés sont dans le fichier ~/.config/duniter/duniter_default/keyring.yml</p>

<p>Je n'arrive cependant pas à avoir l'interface web comme indiqué dans la doc, comme si elle n'existait plus. En fait, la documentation est soit incomplète soit peu à jour, soit sous forme de vidéo ce qui est très peu pratique à mon avis. Il faudra peut-être améliorer ces points pour que duniter soit plus utilisée. La prochaine étape serait de se faire certifier par d'autres utilisateurs, mais là aussi je bloque : où est-ce que ça se passe?</p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/10/11/10/43/43-utiliser-duniter-sous-openbsd" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://blog.genma.fr/?Virtualbox-comme-outil-dans-le-cadre-de-formations
title: genma : Virtualbox comme outil dans le cadre de formations
uri: genma-Virtualbox-comme-outil-dans-le-cadre-de-formations
url: https://blog.genma.fr/?Virtualbox-comme-outil-dans-le-cadre-de-formations
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2702.jpg?1509969446" width="150" height="79"><div><p>Etant amenés à faire des formations à des client sur différents logiciels, je souhaiterai partager ici plusieurs astuces que nous avons mis en place au sein de mon équipe et que nous réutilisons dans le cadre de formation professionnelle que nous sommes amenés à préparer et donner à des clients. Je profiterai de ce retour d'expérience pour partager des astuces, des conseils, des pratiques qui ont été testées et validées en situation <i>sur le terrain hostile</i> des réseaux d'entreprises...</p>
<p>Nous utilisons également ces VM (VM = Virtual Machines ou Machines virtuelles, soit les machines virtualisées, les systèmes invités dans Virtualbox, le système hôte étant la machine physique qui fait tourner le le logiciel Virtualbox) pour nos différents projets dans le cadre de l'appropriation d'une nouvelle technologie (on ne peut pas tout savoir), de veille ou de la réalisation de P.O.C. (Proof of Concept) rapide.</p>
<p>Dans ce billet, quelques éléments / retour d'expérience. Je ne détaille pas, des connaissances sur le fonctionnement de Virtualbox (ou d'un environnement de virtualisation en général) sont un prérequis.</p>
<p><strong>Pourquoi choisir Virtualbox ?</strong></p>
<p>Nous utilisons Virtualbox et ce pour plusieurs raisons :
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>Les machines virtuelles sont portables</strong> : nous travaillons sous des distributions Linux différentes selon les collaborateurs, les clients sont sous des OS Microsoft (Windows 7 ou 10). Et le transfert d'une VM d'un environnement à un autre se fait sans soucis (juste le temps de la copie). Les VM sont parfaitement compatibles (si les versions de Virtualbox sont bien les mêmes).
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>facilité de transfert et de sauvegarde</strong> : les VM sont des gros fichiers qui viennent avec des fichiers de configurations XML. Facile à copier d'une machine à l'autre et donc à sauvegarder (on copie tout le fichier).
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"><strong>parce que je maîtrise cet outil</strong>. Oui je connais KVM (et le fait qu'il y ait une interface graphique si besoin etc. mais je reste fidèle à la facilité de Virtualbox ;)</p>
<p><strong>Prérequis à une formation</strong></p>
<p>Avant d'intervenir en formation en présentielle chez un client, nous demandons comme pré-requis :
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> que l'on nous mette à disposition des machines disposant d'un processeur Intel coreiX (X étant un nombre de 3 à 7, l'intérêt est d'avoir un processeur 64 bits, supportant les instructions de virtualisation et donc d'avoir une machine virtuelle performante). Intel ou équivalent chez AMD (que j'avoue ne pas connaître).
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> qu'idéalement la machine est un SSD : des machines virtuelles de formation ont des petits jeux de données et ne font que quelques gigas (elles tiennent sur des clefs USB), ce n'est pas ça qui va prendre de la place sur le disque. Et comme un SSD c'est toujours plus rapide et plus de confort pour la virtualisation...<br><strong>L'astuce de Genma</strong> : copier les machines virtuelles de formation sur plusieurs clefs USB. Pour qu'on puisse lancer plusieurs copies le jour J.
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> à minima 8 go de RAM : j'ai déjà eu des PC de formation sous Windows 7 64 bits avec 4 giga de RAM, même avec une machine virtuelle à laquelle on affecte que 512 Go à 1 Go de RAM (pour un serveur nginx / php / MySQL), c'est lent. 8 giga de RAM permettent d'être confortable (et de faire tourner 2 VM auxquelles on affecte 2 Giga de RAM chacune), 16 Go c'est idéal.</p>
<p><strong>Configuration réseau</strong></p>
<p>Pour la configuration réseau sous Virtualbox, j'ai fait un billet dédié abordant ce sujet <a href="https://blog.genma.fr/?Yunohost-Virtualbox-Interfaces-reseaux" title="Yunohost, Virtualbox, Interfaces réseaux">Yunohost, Virtualbox, Interfaces réseaux</a>. Le fait que ce soit Yunohost ne change rien à la philosophie, les explications de mon billet restent et sont valables pour n'importe quel système en tant qu'invité.</p>
<p><strong>L'astuce de Genma</strong> : attention à bien penser à faire des reset des adresses MAC à l'installation des VM sur chacun des postes de formation pour éviter des soucis d'IP. En effet, dans le cas d'une connexion réseau par pont sur un réseau fournissant une adresse en DHCP, si la carte réseau virtuelle garde la même adresse MAC (cas d'une copie d'une même machine virtuelle invitée sur plusieurs PC hôte), on se retrouve très vite avec des conflits réseaux...</p>
<p>Il faut anticiper le maximum de problème (on aura toujours des imprévus) d'où une seconde astuce :</p>
<p><strong>L'astuce de Genma</strong> : penser à faire valider avant par le client la mise à disposition d'une connexion à Internet et la <i>qualité</i> du réseau (pas de proxy nécessitant une authentification, pas de filtrage par adresse MAC ou autre etc.) Et prendre en compte les informations pour adapter la connexion réseau de la machine virtuelle en conséquence.</p>
<p><strong>Utiliser des points de restauration snapshot</strong></p>
<p>Cela permet que si la personne n'a pas réussi l'exercice, qu'elle puisse repartir d'une machine ayant le résultat et de continuer. Si il y a une mauvaise manipulation, on peut repartir d'une version qui était fonctionnelle. De plus, ces points de restauration / snapshot s'exportent très bien à l'export de la VM (pour sa copie sur clef USB puis sur les PC de formation).</p>
<p><strong>L'astuce de Genma</strong> : penser à nommer les points de restauration.</p>
<p>Le luxe étant d'avoir une machine virtuelle par grande phase / partie de la formation (qu'on lance et éteint à chaque fin de grande partie). Mais cela fait autant de machine à maintenir...</p>
<p><strong>Les comptes utilisateurs</strong></p>
<p>Avoir un compte utilisateur et un compte administrateur. Mettre des mots de passe simple (le même pour les deux). L'objectif n'est pas d'avoir de la sécurité mais d'avoir des comptes facile à utiliser</p>
<p><strong>L'astuce de Genma</strong> : dans le cas de machine Linux, activer un serveur SSH. Si la machine virtuelle a une IP publique (ou sa machine hôte et qu'on a activé la redirection de port sur la configuration NAT de la machine virtuelle), on peut ainsi facilement accéder à n'importe quel VM via SSH (vu que les comptes sont connus) et aider / débloquer un des participants depuis son propre PC.</p>
<p><strong>Avoir une VM template et maintenir sa VM à jour</strong>}</p>
<p>J'ai une VM coquille vide de référence : une installation de Debian minimale de laquelle je peux repartir en la clonant pour répondre à des besoins de formation pour lesquels je n'ai pas encore de VM. Je ne repars pas de zéro comme ça. Et je fais le maintiens / mise à jour de cette VM (tout comme celles plus avancées dans lesquelles il y a un ou plusieurs logiciels dédiés aux formations). Comme ça, je suis les évolutions et montées en version.</p>
<p><strong>Aller plus loin ?</strong></p>
<p>J'avais écrit un billet <a href="https://blog.genma.fr/?Jouons-avec-Ansible-et-Virtualbox" title="Jouons avec Ansible et Virtualbox">Jouons avec Ansible et Virtualbox</a> dans lequel, comme le nom l'indique,</p>
<p>On peut imaginer d'automatiser certaines choses avec Ansible et un script. En effet, comme Virtualbox est également accessible en ligne de commandes, on peut imaginer un script qui :
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> lance une VM via les commandes Virtualbox
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> fait un snapshot /point de restauration de la machine virtuelle
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> fait une mise à jour de la VM via Ansible (pour éviter la saisie de mot de passe)
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> fait un snapshot /point de restauration de la machine virtuelle (pour conserver la version mise à jour)
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> éteindre la machine et passe à la suivante</p>
<p>On lance ça un midi ou un soir et on a toutes ses VM maintenues à jour...</p>
<p><strong>Sauvegardes</strong></p>
<p>Bien évidemment, il faut penser à avoir des sauvegardes de toutes ces machines virtuelles vu tout le travail qu'on aura fait pour les mettre en place. <strong>Mais les sauvegardes c'est une évidence, non ?</strong>.</p>
<p><strong>Conclusion</strong></p>
<p>Que ce soit pour des VM pour des sessions de formation, pour des POC ou pour des projets, Virtualbox répond parfaitement à mes attentes. Le côté rigueur imposé (comptes connus, mises à jour etc.) permet l'interopérabilité et le transfert rapide à d'autres personnes (collaborateurs ou apprenants de la formation) et permet du gain de temps conséquent. Et vous, un avis, d'autres pratiques ou usages, ou des conseils ?</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Virtualbox-comme-outil-dans-le-cadre-de-formations" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://www.cypouz.com/article/171109/test-ordinateur-portable-ldlc-aurore-tk3d
title: Cyprien Pouzenc : Test de l&#039;ordinateur portable LDLC Aurore TK3D
uri: Cyprien-Pouzenc-Test-de-l-ordinateur-portable-LDLC-Aurore-TK3D
url: https://www.cypouz.com/article/171109/test-ordinateur-portable-ldlc-aurore-tk3d
content:
<p><a href="https://www.cypouz.com/article/171109/test-ordinateur-portable-ldlc-aurore-tk3d"><img typeof="foaf:Image" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6519.jpg?itok=EbOV0TM9" width="200" height="133" alt="Ordinateur LDLC Aurore TK3D" title="Ordinateur LDLC Aurore TK3D"></a></p>


<p>Après avoir effectué <a href="https://www.cypouz.com/article/160331/test-ordinateur-portable-ldlc-saturne-sk1-i3">une revue de l'ordinateur portable LDLC Saturne SK1-i3</a> — et suite à sa disparition du catalogue LDLC ainsi que de celui de tout autre site marchand — je n'étais parvenu à identifier aucun réel remplaçant tant la qualité du châssis et de la configuration proposée étaient bonnes ; sans même parler du tarif alors très compétitif. Slimbook commercialise des ordinateurs portables au châssis très proche — si ce n'est identique — que je n'ai pas encore eu l'occasion de tester (ce qui devrait changer, car je vais bientôt pouvoir essayer le modèle Katana i5... affaire à suivre !).</p>

<p>C'est alors qu'est apparu le châssis <strong>Clevo N130BU</strong>. Vendu par LDLC dans la gamme des Aurore TK, il est également disponible chez Slimbook dans <a href="https://slimbook.es/en/pro-ultrabook-13-aluminium">la gamme Pro</a> et chez System76 dans <a href="https://system76.com/laptops/galago">la gamme Galago Pro</a>. <em>Ce châssis est auréolé de mystère.</em> La fiche LDLC n'indique rien quant au matériau qui le compose. Il est vendu partout ailleurs comme étant en aluminium. Après d'insistants échanges, le service technique LDLC confirme que, d'après eux, il est en plastique. Pour finalement reconnaître qu'il est bien en aluminium...</p>

<p>Dans les mains, en tout cas, cela ressemble fortement à un châssis aluminium. Ce que semble également penser mon multimètre.</p>

<p>Passons en revue les autres caractéristiques de cet ordinateur portable <strong>Aurore TK3D</strong> — car c'est de lui qu'il s'agit :</p>

<ul><li>Processeur Intel Core i3 récent (Kabi Lake 7100U, double cœur à 2,4 GHz et 3 Mo de cache) ;</li>
	<li>4 Go de mémoire vive DDR4 (un slot utilisé sur les deux disponibles, pour un maximum de 32 Go) ;</li>
	<li>Disque SSD M.2 SATA de 120 Go ;</li>
	<li>Emplacement libre supplémentaire pour un disque 2,5" SATA de 7 mm ;</li>
	<li>Dalle LED mate de 13,3 pouces en résolution HD+ 900p ;</li>
	<li>Chipset graphique Intel HD Graphics 620 ;</li>
	<li>Châssis aluminium ;</li>
	<li>Clavier <em>chiclet</em> ;</li>
	<li>Un connecteur HDMI et un connecteur Mini DisplayPort ;</li>
	<li>Un port USB 3.0 réversible type C et deux ports USB 3.0 classiques ;</li>
	<li>Wi-Fi AC et Bluetooth 4.0 ;</li>
	<li>Une prise ethernet gigabit RJ45 ;</li>
	<li>Un lecteur de cartes mémoires SD et MMC ;</li>
	<li>Deux haut-parleurs stéréo ;</li>
	<li>Une prise entrée micro et une autre sortie casque ;</li>
	<li>Webcam 1 Mpx et micro intégrés ;</li>
	<li>Poids de 1,3 kg.</li>
</ul><p>Fiche produit LDLC : <a href="https://www.ldlc.com/fiche/PB00229763.html">https://www.ldlc.com/fiche/PB00229763.html</a></p>

<div>
	<figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6519.jpg?itok=h5u_vGtu" title="Ordinateur LDLC Aurore TK3D"><img alt="Ordinateur LDLC Aurore TK3D" height="133" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6519.jpg?itok=EbOV0TM9" title="Ordinateur LDLC Aurore TK3D" width="200"></a>

		<figcaption>Ordinateur LDLC Aurore TK3D</figcaption></figure><figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6522.jpg?itok=yLrSCjtz" title="Châssis aluminium"><img alt="Châssis aluminium" height="133" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6522.jpg?itok=7RXZVjFZ" title="Châssis aluminium" width="200"></a>

		<figcaption>Châssis aluminium</figcaption></figure></div>

<p>Je ne reviens pas sur l'emballage du colis, qui est exemplaire, tout comme pour <a href="https://www.cypouz.com/article/160331/test-ordinateur-portable-ldlc-saturne-sk1-i3">le test du Saturne SK1-i3</a>. Moi qui m'attendais à un châssis en plastique, je suis bien surpris de la qualité de ce dernier. Et pour cause, il est en aluminium. L'ordinateur présente donc bien, avec des teintes bronzes plutôt réussies. Néanmoins, il ne fait pas aussi bonne impression que le châssis du Saturne, qui est vraiment magnifique. Par ailleurs, il a tendance à attraper les traces de doigts alors que le Saturne restait parfaitement propre. Le clavier est également en retrait. Il s'agit du modèle Clevo standard, sans rétro-éclairage. Les touches <em>chiclets</em> font le travail mais, visuellement, rien d'extraordinaire. À noter, en revanche, que les touches des flèches directionnelles sont entières, contrairement au Saturne pour lequel deux d'entre-elles étaient réduites de moitié. Également, de vraies touches sont présentes pour Début, Fin, Page suivante et Page précédente ; contre des raccourcis clavier pour le Saturne. Tout comme ce dernier, il n'y a pas de diode indiquant l'état de la touche <em>Caps Lock</em>. L'ensemble des touches de fonction sont opérationnelles. Le bouton de mise sous tension se trouve quant à lui sur le coté du châssis.</p>

<div>
	<figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6523.jpg?itok=07sLBziX" title="Clavier chiclet"><img alt="Clavier chiclet" height="133" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6523.jpg?itok=iy7DTvA5" title="Clavier chiclet" width="200"></a>

		<figcaption>Clavier chiclet</figcaption></figure><figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6541.jpg?itok=OpoIh86z" title="Écran lumineux et contrasté"><img alt="Écran lumineux et contrasté" height="133" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6541.jpg?itok=NOUtkhtQ" title="Écran lumineux et contrasté" width="200"></a>

		<figcaption>Écran lumineux et contrasté</figcaption></figure></div>

<p>Le pavé tactile multipoint est très agréable et, contrairement au Saturne pour lequel le bas du pavé pouvait être pressé, il est accompagné d'une touche distincte pour cliquer. L'écran mat est de très bonne qualité, mais d'une résolution inférieure au Saturne. Cela dit, pour un 13,3", c'est idéal. La qualité audio, elle aussi, est en retrait. En revanche, la présence d'une prise ethernet gigabit est une excellente surprise. Dotée d'un astucieux clapet, elle s'inscrit parfaitement dans la fine tranche du châssis. Le bloc d'alimentation — de dimensions 2,5 × 3,5 × 9 cm — est plutôt menu ; ce qui est une bonne chose.</p>

<p>Évidemment, la réactivité est bien au rendez-vous. Le processeur est d'une génération plus récente que celui du Saturne, tout comme la mémoire vive et la puce graphique. Le SSD fait ici parfaitement son office. L'ordinateur est généralement silencieux, sauf lorsqu'on le sollicite un peu plus et que le ventilateur se met en route. Audible, mais pas gênant.</p>

<p>L'avantage du châssis Clevo est qu'il est entièrement démontable, avec une documentation très détaillée. Un excellent point pour l'entretien du matériel.</p>

<div>
	<figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6530.jpg?itok=_JXGQiOp" title="Teinté de bronze"><img alt="Teinté de bronze" height="133" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6530.jpg?itok=QOYNeVd8" title="Teinté de bronze" width="200"></a>

		<figcaption>Teinté de bronze</figcaption></figure><figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6546.jpg?itok=P9NKZQl1" title="Connectique coté droit"><img alt="Connectique coté droit" height="133" src="https://www.cypouz.com/sites/default/files/styles/medium/public/article/img_6546.jpg?itok=vY6PLBPa" title="Connectique coté droit" width="200"></a>

		<figcaption>Connectique coté droit</figcaption></figure></div>

<p>Acheté sans système d'exploitation, c'est bien-sûr Debian GNU/Linux 9 « Stretch » qui propulse désormais la machine. Le <em>Secure Boot</em> était déjà désactivé dans le BIOS. L'installation de Debian en mode UEFI n'a posé aucun problème. Tout comme avec le Saturne, il a néanmoins fallu disposer le paquet de pilotes non-libres <span>firmware-iwlwifi</span> de la puce wifi sur une clef USB pour procéder à l'installation par le réseau. Une fois l'installation réalisée, j'ai également installé les paquets de pilotes non-libres <span>firmware-realtek</span> et <span>firmware-linux-nonfree</span> afin de profiter de toutes les fonctionnalités du matériel.</p>

<p>En résumé, nous avons là un ordinateur dont la qualité du châssis est certes moindre que celui du précédent Saturne, mais somme toute très sympa avec de bons composants sous le capot et une excellente compatibilité avec GNU/Linux. Le Saturne s'approchait grandement du sans faute ; l'Aurore fait quant à lui quelques concessions.</p>

<div>
	<figure><a data-colorbox-gallery="gallery-all" href="https://www.cypouz.com/sites/default/files/styles/large/public/article/img_6548.jpg?itok=Q_6aq7aV" title="Une allure plutôt sympa !"><img alt="Une allure plutôt sympa !" height="400" src="https://www.cypouz.com/sites/default/files/styles/photo/public/article/img_6548.jpg?itok=dx9vsp5f" title="Une allure plutôt sympa !" width="600"></a>

		<figcaption>Une allure plutôt sympa !</figcaption></figure></div>
<p><img src="media/674deadd.c9ce61d8f23444d5de73ae2ed346c61d" data-original-source="http://cdn.libravatar.org/avatar/c9ce61d8f23444d5de73ae2ed346c61d" alt="Gravatar de Cyprien Pouzenc" class="gravatar" /><br/><i>Original post of <a href="https://www.cypouz.com/article/171109/test-ordinateur-portable-ldlc-aurore-tk3d" title="Visit the source">Cyprien Pouzenc</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Cyprien Pouzenc : <a href="">Test de l&amp;amp;#039;ordinateur portable LDLC Saturne SK1-i3</a> (31/03/2016)</li><li>Simon Vieille : <a href="">Free et Youtube, la preuve que c&amp;amp;#039;est une question d&amp;amp;#039;argent</a> (11/11/2012)</li><li>Simon Vieille : <a href="">L&amp;amp;#039;histoire des hackers</a> (30/12/2012)</li><li>Simon Vieille : <a href="">i3wm - menu d&amp;#039;applications</a> (07/08/2012)</li><li>Etenil : <a href="">Movim, c&amp;amp;#039;est fini</a> (29/01/2013)</li></ul></div></p>


feed_id: https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud
title: Thuban : Débuter avec duniter (Ğ1) puis héberger un nœud
uri: Thuban-Débuter-avec-duniter-(Ğ1)-puis-héberger-un-nœud
url: https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud
content:
<p>J'avais déjà parlé des <a href="https://yeuxdelibad.net/Blog/?d=2017/10/09/16/42/45-les-cryptomonnaies-expliquees-a-ma-fille">cryptomonnaies</a> et je terminais par <a href="https://duniter.org/fr/">duniter</a>. Cette dernière est pensée autour d'une philosophie captivante qui correspond davantage à mes valeurs que les autres. Cependant, et je me demande encore pourquoi, je me fourvoyais complètement sur la façon de l'utiliser, c'est pourquoi j'ai envie d'écrire ce petit guide. Entre la version desktop, la version server, le logiciel à utiliser pour échanger des sous, puis les inscriptions à faire alors que je croyais avoir un portefeuille... Bref, il est temps de poser ça à plat comme on dit. :)</p>

<div><img src="media/5d6f0e09.duniter-logo.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/73/duniter-logo.png" alt=""></div>

<p><em>Notez que je vais décrire la procédure sous OpenBSD. Avant de vous lancer dans les compilations, vérifiez si un binaire n'existe pas déjà.</em></p>

<p><b><u>1. Avant tout, il faut bien comprendre...</u></b><br>
Contrairement aux autres cryptomonnaies, il y a une différence entre le logiciel et la monnaie. <br>
"<em>duniter</em>", c'est le logiciel libre qui permet les transactions. <br>
"<em>Ğ1</em>" est une monnaie disponible via duniter. Il est possible d'utiliser d'autres monnaies, mais c'est cette dernière qui est actuellement la plus utilisée. De plus, c'est libre ! :)<br>
Un troisième logiciel est nécessaire pour échanger de la monnaie. Ce dernier est spécifique à la monnaie utilisée. Ce sera dans l'exemple cesium, mais il en existe d'autres.</p>

<p>Cela peut paraître excessif, mais c'est en réalité toute la force du logiciel libre. Pour résumer :</p>

<ul><li> Un démon/protocole : duniter</li>
<li> Plusieurs monnaies : on s'intéressera à Ğ1</li>
<li> Une interface pour échanger des sous : cesium</li></ul><p><b><u>2. Échanger des Ğ1</u></b><br>
Téléchargez et décompressez l'archive de <a href="https://github.com/duniter/cesium/releases">cesium</a> qui est un logiciel nous permettant d'échanger de la monnaie. Je vous conseille la version "-web" qui ne nécessite qu'un navigateur pour s'en servir.</p>

<p>Décompressez l'archive .zip, puis ouvrez le fichier index.html dans un navigateur (Firefox ;) ).</p>

<p>Je vous conseille de suivre la visite guidée très bien faite pour découvrir cesium.</p>

<p>Lors du premier lancement, on vous propose de créer un compte. C'est nécessaire pour être inscrit dans le registre public du Ğ1. Cela vous crée un portefeuille. Si vous n'avez pas de compte, créez un compte "membre" pour pouvoir plus tard participer au dividende universel. <br>
Si on ne vous propose rien, cliquez sur le lien "créer un compte"</p>

<div><img src="media/0198cdde.duniter2.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/92/duniter2.png" alt=""></div>

<p>Notez bien votre mot de passe, récupérez le certificat de révocation (on ne sait jamais), puis cliquez sur "mon compte" à gauche pour noter votre clé publique et modifier les informations vous concernant.</p>

<div><img src="media/abe29ae8.duniter1.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/8b/duniter1.png" alt=""></div>

<p>Vous voilà prêts à échanger des Ğ1 en cliquant sur le bouton "Virement" à gauche :</p>

<div><img src="media/6ec11638.duniter4.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/0a/duniter4.png" alt=""></div>

<p>(bon, il faudra en recevoir avant... ;P )</p>

<p>Voir aussi l'excellent tutoriel suivant : <a href="http://www.le-sou.org/inscription-tuto/">http://www.le-sou.org/inscription-tuto/</a></p>

<p><b><u>3. Participer à l'utilisation des Ğ1 en étant un nœud </u></b></p>

<p>Vous pouvez héberger un noeud et participer aux calculs nécessaires aux échanges de Ğ1. Je reprends ici les explications pour OpenBSD (oh le fainéant). Tant qu'à faire, je vous propose une méthode pour, autant que possible, séparer les permissions et faire les choses proprement.<br>
Je vais créer un utilisateur "_duniter" dont le seul rôle sera de faire tourner duniter, afin d'éviter de faire tourner le démon en tant que root.<br>
Ensuite on installe node.<br>
On s'identifie comme _duniter, puis on télécharge et compile duniter.</p>

<pre><code>useradd -m -d /var/duniter
pkg_add node
npm install --global yarn
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
su _duniter
cd /var/duniter
ftp -o duniter.tar.gz https://github.com/duniter/duniter/archive/v1.5.9.tar.gz
tar xvzf duniter.tar.gz
mv duniter-* duniter
cd duniter
yarn</code></pre>

<p>On peut maintenant l'utiliser en suivant les recommandations situées <a href="https://duniter.org/en/wiki/duniter/commands/">ici</a>.</p>

<p>On indique quelle clé utiliser : je me sert de la même clé que pour mon inscription précédente sous cesium par facilité.</p>

<pre><code>./bin/duniter wizard key
? Modify you keypair? (y/N) y   
? Key's salt ********************************************   (clé publique précédente)
? Key's password *************************************************   (mot de passe du compte précédent)</code></pre>

<p>Configurez ensuite le réseau. Dans le doute, laissez par défaut.</p>

<pre><code>./bin/duniter wizard network
? IPv4 interface trunk0 192.168.1.64  (interface réseau à utiliser)
? IPv6 interface None
? Port 10901
? Remote IPv4 Enter new one
? Remote IPv4 109.190.193.124 (ici, c'est votre [IP publique|http://ipecho.net])
? Remote port 10901
? Does this server has a DNS name? n (répondez "y" si vous voulez héberger le noeud sur un serveur disponible avec un nom de domaine)
</code></pre>

<p>Enfin, lancez la synchronisation :</p>

<pre><code>./bin/duniter sync g1.duniter.org 443</code></pre>

<p>Vous pouvez maintenant lancer duniter et participer aux calculs :</p>

<pre><code>./bin/duniter direct_start</code></pre>

<p>ou pour qu'il tourne en arrière plan :</p>

<pre><code>./bin/duniter start</code></pre>

<p>Si vous faîtes tourner ce noeud sur un serveur, veillez à bien ouvrir les ports 10901. De plus, créer un CNAME pour un nom de domaine dédié à duniter sera sans doute pratique.</p>

<p>Afin d'avoir un service à lancer au démarrage sous OpenBSD, vous pouvez créer le fichier /etc/rc.d/duniter_daemon pour gérer le démon avec rcctl.</p>

<pre><code>#!/bin/sh
#
# $OpenBSD: duniter.rc,v 1.0 2017/11/08 17:58:46 Thuban$

daemon="/var/duniter/duniter/bin/duniter"
daemon_user="_duniter"

. /etc/rc.d/rc.subr

rc_start() {
        ${rcexec} "${daemon} ${daemon_flags} start"
}

rc_stop() {
        ${rcexec} "${daemon} ${daemon_flags} stop"
}


pexp="node: duniter.*"
rc_reload=NO

rc_cmd $1

</code></pre>

<p>La suite, c'est comme n'importe quel service sous OpenBSD :</p>

<ul><li> Activer le service : "rcctl enable duniter_daemon"</li>
<li> Démarrer le noeud : "rcctl start duniter_daemon"</li>
<li> Arrêter le noeud : "rcctl stop duniter_daemon"</li></ul><p>Pour avoir des infos sur duniter, vous pouvez lancer :</p>

<pre><code>su -l _duniter -c "/var/duniter/duniter/bin/duniter logs"</code></pre>

<p>N'est-ce point merveilleux ? :</p>

<pre><code>2017-11-09T19:00:19+01:00 - info: Pulling blocks from the network...
2017-11-09T19:00:22+01:00 - info: Block resolution: 0 potential blocks after current#67928...
2017-11-09T19:00:22+01:00 - info: Will pull blocks from the network in 0 min 20 sec
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: ✔ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: POST Peer LFoG1wupku#67905
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - info: ✘ PEER LFoG1wup
2017-11-09T19:00:26+01:00 - error:  httpCode=400, ucode=2023, message=Peer document already known
2017-11-09T19:00:26+01:00 - warn: Could not reach duniter.fiat-tux.fr:10901
2017-11-09T19:00:26+01:00 - info: ⬇ PEER LFoG1wup
2017-11-09T19:00:27+01:00 - info: ✘ PEER LFoG1wup
</code></pre>

<p>Voir aussi la <a href="https://duniter.org/fr/wiki/duniter/installer/#version-serveur">documentation d'installation</a></p>

<p>Vous pouvez activer l'interface web ainsi.</p>

<pre><code>./bin/duniter plug duniter-ui@1.4.x 
sed -i "s/duniter\\//..\\/..\\/..\\/..\\//g" node_modules/duniter-ui/server/controller/webmin.js</code></pre>

<p>Cependant, j'ai tenté de modifier le fichier /etc/rc.d/duniter_daemon pour mettre "webstart" au lieu de "start", mais il ne semble pas trouver le module duniter-ui dans ce cas, donc ça ne fonctionne pas. Une histoire de chemin d'accès je suppose :/<br>
Mais vous pouvez toujours lancer le noeud duniter et son interface web après vous être connecté avec le compte _duniter.<br>
Si vous avez activé l'interface web, au lieu d'ouvrir et rediriger des ports sur votre serveur, créez un tunnel ssh ainsi à partir de votre ordinateur de bureau :</p>

<pre><code>ssh -L 9999:127.0.0.1:9220 utilisateur@votreserveur.com</code></pre>

<p>Ensuite, sur votre ordinateur, ouvrez un navigateur à l'adresse <a href="http://localhost:9999/">http://localhost:9999</a> pour voir l'interface de duniter :</p>

<div><img src="media/787410df.duniter5.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/29/duniter5.png" alt=""></div>

<p>Une fois le serveur configuré, je vous conseille de désactiver les connexions vers le compte _duniter</p>

<pre><code># usermod -s /sbin/nologin _duniter</code></pre>

<p><b><u>Conclusion</u></b><br>
Plus je m'y intéresse, plus je trouve cette alternative intéressante. Le seul, (mais vraiment le seul) point sur lequel je m'interroge, c'est le côté public de toutes les transactions. Je n'ai pas envie de savoir ce que vous achetez, ni de publier publiquement à qui je donne des sous. Par contre, côté vitesse de calcul, rendement énergétique et toute la théorie du Dividende Universel, je suis conquis. Et vous? :)</p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Thuban : <a href="">Utiliser duniter sous OpenBSD</a> (08/11/2017)</li></ul></div></p>


feed_id: https://www.citizenz.info/proposez-vous-des-mentions-legales-sur-votre-site-web
title: citizenz7 : Proposez-vous des mentions légales sur votre site web ?
uri: citizenz7-Proposez-vous-des-mentions-légales-sur-votre-site-web
url: https://www.citizenz.info/proposez-vous-des-mentions-legales-sur-votre-site-web
content:
<img src="media/a7e43236.cc-by-nc-sa.png" data-original-source="https://www.citizenz.info/data/medias/cc-by-nc-sa.png">Suite <a href="http://linuxfr.org/news/seconde-mise-en-demeure-pour-l-association-linuxfr" title="aux déboires de l'association linuxfr">aux déboires de l'association linuxfr</a>, je me suis re-penché sur la question des mentions légales à faire figurer sur un site web et qui plus est, sur un blog.<br><div><a href="https://www.notuxedo.com/rediger-ses-mentions-legales-sur-un-blog/" title="Sur cette page">Sur cette page</a> (<a href="https://www.notuxedo.com/" title="https://www.notuxedo.com">https://www.notuxedo.com</a> <b>)</b>, on peut trouver son bonheur à propos de ce thème, avec nombre de détails et d'explications très claires (jargon juridique traduit) et des réponses aux questions les plus courantes :</div><div>- qui doit afficher des mentions légales ?</div><div>- quelles informations indiquer ?</div><div>- personne physique, personne morale, professionnel, amateur,...</div><div>- propriété intellectuelle</div><div>- données personnelles</div><div>- limitation de responsabilité</div><div>- commentaires sur un blog ?</div><div>- où faire figurer les mentions légales</div><div>- ...</div><div>Je ne vous ferai pas l'affront d'aller plus loin dans le détail n'ayant aucune compétence en la matière.</div><div><br></div><div>Après réflexion, je me suis rendu compte que je n'étais pas du tout dans les règles avec ce présent blog.</div><div>En cherchant un peu, je suis tombé sur un lien qui m'a "sauvé la vie" : un <a href="http://www.subdelirium.com/generateur-de-mentions-legales/#generateur" title="générateur de mentions légales">générateur de mentions légales</a>, précis, complet.</div><div>Il suffit d'entrer ses informations : noms, adresse, adresse de l'hébergeur, etc. Vous recevrez gratuitement par e-mail votre texte (formaté en HTML avec titres et paragraphes).</div><div><br></div><div>Cela est fait pour moi depuis ce matin et <a href="https://www.citizenz.info/mentions-legales" title="en ligne sur ce site">en ligne sur ce site</a> . Plutôt pratique.</div><div><br></div><div>Au final, cela m'a aussi permis une petite réflexion sur la licence d'utilisation du site et j'ai choisi de placer citizenz.info sous licence <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr" title="C.C. By-NC-SA 4.0">C.C. By-NC-SA 4.0</a>  pour le site (sauf mentions contraires).</div>
<p><img src="media/81133586.d3d22ade032c891f4b97588788975fc6" data-original-source="http://cdn.libravatar.org/avatar/d3d22ade032c891f4b97588788975fc6" alt="Gravatar de citizenz7" class="gravatar" /><br/><i>Original post of <a href="https://www.citizenz.info/proposez-vous-des-mentions-legales-sur-votre-site-web" title="Visit the source">citizenz7</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://www.citizenz.info/webdav-nginx-et-xfce-acceder-a-ses-medias-facilement
title: citizenz7 : WebDAV, Nginx et XFCE : accéder à ses médias en ligne facilement
uri: citizenz7-WebDAV-Nginx-et-XFCE-accéder-à-ses-médias-en-ligne-f
url: https://www.citizenz.info/webdav-nginx-et-xfce-acceder-a-ses-medias-facilement
content:
<div>

<p>WebDAV c'est quoi ? Laissons faire les présentations par le <a href="https://doc.ubuntu-fr.org/webdav" title="Wiki Ubuntu">Wiki Ubuntu</a>  : <br></p><em><img src="media/86635f9d.webdav.png" data-original-source="https://www.citizenz.info/data/medias/webdav.png" width="229" height="122">WebDAV, en entier : Web-based Distributed Authoring and Versioning, est un protocole déjà ancien (1996) et curieusement peu connu.
Il permet pourtant une chose essentielle : <strong>écrire</strong> <em>sur le Web</em>, au lieu de seulement surfer (c'est-à-dire seulement lire).<br>C'est un <strong>protocole ouvert</strong>, le <abbr title="World Wide Web Consortium">W3C</abbr> (organisme qui "normalise le web") en a confié le développement à l'IETF qui avait déjà normalisé HTTP.<br>Pour résumer, WebDAV est une extension du HTTP. Au delà des GET et POST 
bien connus, WebDAV rajoute les verbes PUT, DELETE, COPY, PROPFIND, etc.
Pour les curieux, la norme est là : <a href="http://tools.ietf.org/html/rfc2518" title="http://tools.ietf.org/html/rfc2518" rel="nofollow">http://tools.ietf.org/html/rfc2518</a>. Étant une simple extension au protocole HTTP, WebDAV fonctionne dans à 
peu près toutes les situations où la navigation n'est pas bloquée. </em><br><p>Ceci étant dit, j'avais besoin de configurer un accès web pour les fichiers vidéos situés sur mon serveur. Il existe pléthore de solutions de streaming etc. mais ça n'est pas ce que je souhaitais. L'idéal ? Ouvrir tous mes médias directement depuis mon "Explorateur de fichiers", Thunar en l’occurrence puisque je suis sous XFCE.</p><p>Je n'ai pas été chercher bien loin et je me suis souvenu de WebDAV, que j'avais déjà utilisé "rapidement" il y a quelques temps.</p><p>Objectifs ? Configurer Nginx avec WebDAV et pouvoir accéder tranquillement à mes fichiers depuis mon bureau. C'est parti.</p><p><b>NGINX</b></p><p>Pour configurer Nginx rien de bien compliqué. Il vous faut néanmoins et avant tout installer un nouveau paquet sur votre serveur afin d'utiliser WebDAV:</p><pre>$ sudo apt install nginx-extras</pre><p>Puis il faut créer l'hôte virtuel Nginx. J'ai choisi d'utiliser un domaine du type media.mondomaine.fr pour l'exemple. On va donc créer un fichier comme suit :<br></p><pre>$ sudo vim /etc/nginx/conf.d/media.mondomaine.fr.conf</pre><p>Dans ce fichier, nous allons placer les éléments suivants :</p><pre>server {<br>        listen 80;<br>        server_name media.mondomaine.fr;<br>        root /CHEMIN/MONREPERTOIRE/FICHIERS; # ----> A CHANGER avec le bon chemin de votre répertoire<br>        index index.php index.html index.htm;<br>        access_log /var/log/media-access.log combined;<br>        error_log /var/log/media-error.log error;<br><br>        location / {<br>                try_files $uri $uri/ /index.html;<br>                client_body_temp_path   /temp;<br>                dav_methods             PUT DELETE MKCOL COPY MOVE;<br>                dav_ext_methods         PROPFIND OPTIONS;<br>                create_full_put_path    on;<br>                dav_access              user:rw group:rw all:rw;<br>                autoindex               on;<br>                auth_basic "Mot de passe :";<br>                auth_basic_user_file "/etc/nginx/passwd/media_pass";<br>         }<br><br>        # PARTIE HTTPS<br>        listen 443 ssl http2; # managed by Certbot<br>        ssl_certificate /etc/letsencrypt/live/media.mondomaine.fr/fullchain.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER<br>        ssl_certificate_key /etc/letsencrypt/live/media.mondomaine.fr/privkey.pem; # managed by Certbot ---> MONDOMAINE.FR A CHANGER<br>        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot<br>        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot<br><br>        if ($scheme != "https") {<br>                return 301 https://$host$request_uri;<br>        } # managed by Certbot<br><br>}</pre><p>La première partie du fichier est "traditionnelle...</p><p>La deuxième partie Location / est plus spécifique. On peut y voir la configuration propre à WebDAV : dav_methods, dav_ext_methods, dav_access , ... <br></p><p>J'ai de plus protégé l'accès à mon répertoire avec un accès restreint, tout simple et très traditionnel, en créant premièrement un nouveau répertoire /et/nginx/passwd :</p><pre>$ sudo mkdir -p /etc/nginx/passwd<br></pre><p>... puis :</p><pre>$ sudo htpasswd -c /etc/nginx/passwd/media_pass mumbly</pre><p>Il n'y a plus qu'à rentrer le mot de passe associé à l'utilisateur mumbly. Si httpasswd ne fonctionne pas, installer le paquet suivant :<br></p><pre>$ sudo apt install apache2-utils</pre><p>Puis j'ai configuré une partie HTTPS avec certbot et le plugin --nginx. Je vous renvoie à <a href="https://www.citizenz.info/let-s-encrypt-et-nginx-config-rapide-sous-ubuntu" title="mon post à ce sujet">mon post à ce sujet</a> .</p><p>Une fois fait, on teste d'abord la config de Nginx avec :</p><pre>$ nginx -t</pre>Si tout est ok, on redémarre Nginx : <br><pre>$ sudo /etc/init.d/nginx restart</pre><p>Reste la partie "Bureau" sous XFCE et Thunar et ici rien de difficile. J'ai configuré cet accès sur un PC équipé de Xubuntu. Peut-être y aura t-il une "autre config" sous un autre système, je n'ai pas testé ailleurs.</p><p>Avec Thunar, on peut rentrer directement - dans la barre d'adresse - l'adresse de notre répertoire WebDAV de la manière suivante :</p><pre>davs://mumbly@media.mondomaine.fr/FICHIERS # à adapter avec votre VRAI chemin ...</pre><p>Voila ce que ça donne en "réel" sur mon PC :</p><img src="media/43170d38.davs-mumbly-xfce.png" data-original-source="https://www.citizenz.info/data/medias/davs-mumbly-xfce.png"></div>
<p><img src="media/81133586.d3d22ade032c891f4b97588788975fc6" data-original-source="http://cdn.libravatar.org/avatar/d3d22ade032c891f4b97588788975fc6" alt="Gravatar de citizenz7" class="gravatar" /><br/><i>Original post of <a href="https://www.citizenz.info/webdav-nginx-et-xfce-acceder-a-ses-medias-facilement" title="Visit the source">citizenz7</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://hashtagueule.fr/2017/11/12/lets-encrypt-sur-haproxy-partie-2/
title: raspbeguy : Let’s Encrypt sur HAProxy (Partie 2)
uri: raspbeguy-Let-s-Encrypt-sur-HAProxy-(Partie-2)
url: https://hashtagueule.fr/2017/11/12/lets-encrypt-sur-haproxy-partie-2/
content:
<p>Le fonctionnement de la Terre, avant qu’un certain Galilée y mette son grain de sel, a toujours déchaîné les passions des Hommes et a consommé beaucoup d’encre. Parmi les théories les plus folles, Terry Pratchett nous enseigne dans sa série de livres du <em>Disque Monde</em> que le monde repose sur le dos de quatre gigantesques éléphants, eux-même reposant sur la carapace d’une tortue encore plus gigantesque appelée A’Tuin. Les quatre éléphants (<span>Bérilia, Tubul, Ti-Phon l’<wbr></wbr>Immense et Jérakine</span>) se répartissent la charge que représente le poids du disque terrestre grâce à la rotation quotidienne de ce dernier. Si maintenant vous ne voyez pas le rapport entre une cosmologie impliquant des animaux au moins aussi grands que des continents capable de tenir en apnée pendant des milliards d’années et le sujet d’aujourd’hui, alors je ne sais plus quoi faire.</p>
<p><span></span></p>
<p>Nous avons vu <a href="https://hashtagueule.fr/2017/11/07/lets-encrypt-sur-haproxy-partie-1/">il y a quelques jours</a> les principes de base d’un répartiteur de charge et exposé brièvement les concepts fondamentaux de HAProxy. Nous avons également mené une réflexion sur la manière de gérer un certificat sur une architecture avec répartiteur de charge et la voix du bon sens nous a susurré que le certificat devait être porté par HAProxy. Bon, mettons ça en pratique.</p>
<p>Rangez vos affaires, sortez une feuille, interro surprise. Rappelez-moi ce qu’est le principe de base du protocole ACME. Et comme vous suivez bien et que vous buvez les paroles de l’instituteur comme un breton boit du cidre, vous saurez donc me répondre que l’agent de certification crée un challenge ACME en générant des fichiers de test auxquels le serveur ACME devra pouvoir accéder via HTTP, ces fichiers étant soit servis par l’agent via un serveur web intégré, soit mis à disposition du serveur de notre choix qui servira ces fichiers en statique. C’est en pratique presque toujours la deuxième solution qui est utilisée, sachant que justement, un serveur web tourne déjà sur les ports web standard (80 et 443). On ne veut pas d’interruption de service, non mais.</p>
<h1>Serveur statique</h1>
<p>Nous avons un petit problème ici. Les ports HTTP sont utilisés par HAProxy, qui n’est pas un serveur web, mais un répartiteur de charge. Souvenez-vous, il ne peut pas générer de lui même un flux web, pas même servir des fichiers statiques, il se contente de relayer des flux web créés par d’autres serveurs. Conclusion : il nous faut un serveur web tournant sur la machine hébergeant HAProxy capable de servir des fichiers statiques. L’idée, c’est qu’on va faire écouter ce serveur uniquement en local, et HAProxy se chargera de le propulser sur le réseau publique.</p>
<p>On n’a que l’embarras du choix pour trouver un serveur web sachant servir du bon vieux statique. On pourrait choisir Nginx ou Lighttpd par exemple, mais comme nous sommes sur OpenBSD, le choix se portera sur le serveur web déjà préinstallé, communément appelé openhttpd.</p>
<p>Première étape, il faut dire à OpenBSD d’activer le service.</p><pre>echo 'httpd_flags=""' >> /etc/rc.conf.local</pre><p>Ainsi on pourra démarrer le service, et il sera démarré à chaque démarrage de l’OS.</p>
<p>Ensuite, il va nous falloir créer un dossier qui va accueillir les fichiers du challenge ACME. Comme le processus httpd est chrooté dans <code>/var/www</code> (sur OpenBSD, on appelle ça un <em>jail</em>), ce dossier sera donc <code>/var/www/htdocs/webroot</code>.</p>
<p>La configuration de notre httpd sera on ne peut plus simple :</p><pre>server "default" { 
    listen on 127.0.0.1 port 1375 #ça fait "let's" en l33t
    root "/htdocs/webroot"
}</pre><p>Démarrons le service :</p><pre>/etc/rc.d/httpd start</pre><p>Notre serveur statique est prêt.</p>
<h1>Configuration HAProxy</h1>
<p>Il faut dire à HAProxy de rediriger les requêtes ACME vers notre serveur statique fraîchement configuré.</p>
<p>Pour ça, on va définir un <em>backend</em> dédié à Let’s Encrypt, vers lequel seront redirigés tous les flux ACME reçus sur les <em>frontends</em> qui nous intéressent.</p><pre>backend letsencrypt-backend
        server letsencrypt 127.0.0.1:1375</pre><p>Propre. Syntaxe explicite, pas besoin d’expliquer je pense. Je fais juste remarquer qu’en plus de nommer le <em>backend</em> globalement, je donne un nom au serveur du <em>backend</em> même si ici il n’a aucune forme d’importance, il ne sera jamais appelé ailleurs dans le fichier, c’est néanmoins obligatoire sur HAProxy. Enfin, un nom clair est toujours profitable, car il est éventuellement utilisé dans ses logs, ses statistiques et il rend la lecture du fichier de conf plus facile.</p>
<p>Le <em>backend</em> est prêt, c’est excellent, mais encore faut-il l’utiliser. Pour être exact, on ne va l’utiliser que si l’URL demandée correspond au chemin classique demandé par le validateur ACME, à savoir <code>/.well-known/acme-challenge/</code>. Reprenons l’exemple de la dernière fois, modifions-le de la sorte :</p><pre>frontend mon_super_site
    bind *:80
    mode http

    acl url-back-office path_dir /admin
    acl letsencrypt-acl path_beg /.well-known/acme-challenge/

    use_backend back-office if url-back-office
    use_backend letsencrypt-backend if letsencrypt-acl
    default_backend mes-frontaux

backend back-office
    server backoffice 192.168.0.14:80

backend mes-frontaux
    balance roundrobin
    server backoffice1 192.168.0.11:80
    server backoffice2 192.168.0.12:80
    server backoffice3 192.168.0.13:80

backend letsencrypt-backend
    server letsencrypt 127.0.0.1:1375</pre><p>On a ajouté une ACL et une directive <code>use_backend</code>. Rappelez-vous, une ACL est tout simplement une condition, ici elle porte sur le chemin de l’URL. Rien de nouveau, on a déjà expliqué le concept.</p>
<p>On recharge le schmilblick :</p><pre>/etc/rc.d/haproxy reload</pre><p>On est prêt à générer notre premier certificat. Mais on ne va pas le faire tout de suite. Comme vous vous en souvenez, HAProxy veut ses certificats sous une forme un peu spécifique, il nous faut donc traiter le certificat dès qu’il a été généré, et pour ça on va faire un peu de scripting. On pourrait déjà générer le certificat sans le script de post-traitement, mais si on faisait ça, on devrait ensuite éditer la configuration d’acme.sh et c’est un peu barbant, sachant que la commande qui génère le premier certificat génère également par magie la configuration associée pour les renouvellements. Donc ce serait stupide.</p>
<h1>Script de post traitement</h1>
<p>Rien de bien compliqué, je vous rassure. Le principe est simple : HAProxy n’accepte des certificats que sous la forme d’un fichier contenant la chaîne complète de certification et la clef privée, dans cet ordre.</p>
<p>Le script est très simple. Vous pouvez bien entendu le mettre où bon bous semble, pour ma part j’ai décidé de le mettre dans <code>/etc/haproxy/generate-ssl.sh</code>.</p><pre>#!/bin/sh

SITE=$1
LE_CERT_LOCATION=/root/.acme.sh/$SITE
HA_CERT_LOCATION=/etc/haproxy/ssl

cat $LE_CERT_LOCATION/fullchain.cer $LE_CERT_LOCATION/$SITE.key > $HA_CERT_LOCATION/$SITE.haproxy.pem

/etc/rc.d/haproxy reload</pre><p><code>LE_CERT_LOCATION</code> représente l’endroit où seront générés les certificats par acme.sh (il s’agit ici de l’emplacement par défaut, mais vous pouvez changer ce chemin à condition d’utiliser l’option adéquate lors de la génération du premier certificat).</p>
<p><code>HA_CERT_LOCATION</code> est l’emplacement où seront créés les certificats au format HAProxy. D’ailleurs, n’oubliez pas de créer le dossier en question.</p>
<p>Le script devra être appelé avec en paramètre le domaine complet principal du certificat. N’oubliez pas de le rendre exécutable.</p>
<h1>Génération du premier certificat</h1>
<p>On y est, maintenant on va enfin pouvoir générer ce satané certificat. Partons du principe que vous avez correctement installé acme.sh, le <a href="https://github.com/Neilpang/acme.sh/blob/master/README.md" target="_blank" rel="noopener">README</a> du projet est très simple à suivre.</p><pre>acme.sh --issue -d mon-super-site.com -w /var/www/htdocs/webroot/ --renew-hook "/etc/haproxy/generate-ssl.sh mon-super-site.com" --debug</pre><p>Remarquez que vous pouvez générer un certificat couvrant plusieurs domaines à la fois, il suffit d’ajouter <code>-d mon-domaine-secondaire.com</code> entre le domaine principal et l’option <code>-w</code>. Remarquez l’option <code>--renew-hook</code>, elle permet d’appeler le script qu’on vient de définir à chaque fois qu’un renouvellement est effectué.</p>
<p>Une fois la commande effectuée avec succès (ça peut prendre une minute ou deux), votre certificat est généré, il vous faut encore ajouter le certificat dans la configuration du <em>frontend</em> comme il suit :</p><pre>bind *:443 ssl cert /etc/haproxy/ssl/mon-super-site.com.haproxy.pem</pre><p>Comme il s’agit de la première génération et non d’un renouvellement, il est nécessaire d’appliquer le script à la main.</p><pre>/etc/haproxy/generate-ssl.sh mon-super-site.com</pre><p>Vérifiez, et pleurez de joie. Votre certificat est déployé et fonctionnel. C’est magnifique.</p>
<h1>Automatisation du renouvellement</h1>
<p>Ultime étape, celle qui fait prendre tout son sens à la révolution Let’s Encrypt, celle qui fait qu’on peut oublier sans scrupule que tel ou tel site a un certificat proche de l’expiration, il s’agit du renouvellement automatique. Pas de subtilités, une simple ligne dans la crontab fait l’affaire. Et en plus, si je ne dis pas de bêtises, acme.sh s’occupe tout seul d’ajouter cette ligne.</p><pre>26 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null</pre><p>La commande sera lancée tous les jours à minuit vingt-six, libre à vous de changer cet horaire. acme.sh sera assez intelligent pour savoir si votre certificat a besoin d’un coup de jeune ou non, donc rassurez vous, il n’y aura pas un renouvellement par jour.</p>
<h1>Conclusion</h1>
<p>Le protocole ACME peut s’appliquer à toutes les architectures web pour peu qu’on puisse traiter les requêtes du challenge correctement. À moins de disposer d’un stockage partagé (NSF, iSCSI, Samba…), il est indispensable que le challenge ACME soit créé par la machine capable de le traiter.</p>
<p>Illustration : <em>The Great A’Tuin</em> par Paul Kidby</p>
<p><img src="media/5d5f33cd.8c070c66b21754e12e285200ce535c2b" data-original-source="http://cdn.libravatar.org/avatar/8c070c66b21754e12e285200ce535c2b" alt="Gravatar de raspbeguy" class="gravatar" /><br/><i>Original post of <a href="https://hashtagueule.fr/2017/11/12/lets-encrypt-sur-haproxy-partie-2/" title="Visit the source">raspbeguy</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>raspbeguy : <a href="">Let&rsquo;s Encrypt sur HAProxy (Partie 1)</a> (07/11/2017)</li><li>Angristan : <a href="">Seedbox : installer le client torrent Transmission sous Debian et Ubuntu</a> (21/10/2016)</li><li>Angristan : <a href="">Seedbox : installer le client torrent Flood sous Debian&nbsp;8</a> (24/10/2016)</li><li>Angristan : <a href="">Seedbox : installer le client ruTorrent sous Debian 9</a> (11/09/2017)</li><li>Angristan : <a href="">G&eacute;n&eacute;rer un certificat auto-sign&eacute; robuste : RSA et DH 4096 bits et SHA-2 512 bits</a> (26/09/2015)</li></ul></div></p>


feed_id: https://www.citizenz.info/tuto-auto-heberger-un-noeud-duniter-sous-debian-ubuntu
title: citizenz7 : [TUTO] Auto-héberger un noeud DUNITER sous Debian/Ubuntu
uri: citizenz7-TUTO-Auto-héberger-un-noeud-DUNITER-sous-Debian-Ubuntu
url: https://www.citizenz.info/tuto-auto-heberger-un-noeud-duniter-sous-debian-ubuntu
content:
<img src="media/200c26af.duniter-logo.png" data-original-source="https://www.citizenz.info/data/medias/duniter-logo.png" width="145" height="145">Reprenons ce que nous dis <a href="https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud" title="https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud">https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud</a>  :<br><code>Pour rappel : Duniter est un logiciel. Son but est de permettre la production d'une nouvelle valeur numérique (ou électronique) ayant toutes les caractéristiques d'une « monnaie libre ». Nom de code de cette nouvelle valeur : la Ğ1 (prononcez « June », \\ʒɥn\\). La Ğ1 est désormais bien réel : les toutes premières unités ont été créées le 8 mars 2017, et de nouvelles sont produites chaque jour par ses membres.</code><br><br>Le petit tuto ci-dessous reste exhaustif voir même "simpliste" et n'aborde pas l'idée, le projet ou la philosophie de Duniter, de la Ğ1, etc. Il rappelle simplement les différentes étapes d'installation d'un "nœud" Duniter qui permettra de participer aux calculs nécessaires aux échanges de Ğ1.<br><br>J'utilise un PC sous Ubuntu 16.04 64 bits à la maison (auto-hébergé).<br>Connexion ADSL2 : Freebox V6 (+/- 7 MB/s)<br>PC : Intel i5, RAM 8 GB, SSD 120 GB<br><br>C'est parti :<br><br>a - On télécharge le paquet Debian (Debian/Ubuntu, ...) dernière version en date :<br><pre><code>$ wget https://github.com/duniter/duniter/releases/download/1.6.12/duniter-server-v1.6.12-linux-x64.deb</code></pre><br>b - On installe le serveur Duniter :<br><pre><code>$ sudo dpkg -i duniter-server-v1.6.12-linux-x64.deb</code></pre><br>c - On génère la clé :<br><pre><code>$ duniter wizard key</code></pre><br>Réponse aux questions :<br>------Modify you keypair? (y/N) y <br>------Key's salt : mettez ici un mot de passe, une phrase, ce que vous voulez...<br>------Key's password : mettez ici un mot de passe<br><br>d - On configure le réseau :<br><pre><code>$ duniter wizard network</code></pre><br>Réponse aux questions :<br>---IPv4 interface : déplacez-vous, le cas échéant avec les flèche du clavier pour choisir la bonne adresse Interne (Privée) et validez. Sur mon réseau local (MAISON), je suis connecté sur ma Freebox V6 en DHCP fixe. En l'occurrence, mon adresse IP internet est : 192.168.0.75<br>---IPv6 interface : déplacez-vous dans la liste avec les flèches du clavier pour choisir l'adresse et validez. Choisissez "none" si vous n'avez pas d'IPv6.<br>---Port : 10901<br>---Remote IPv4 : ici, on vous demande votre adresse IP publique (avec ma Freebox, c'est du type 82.xxx.xxx.xxx)<br>---Remote port : 10901<br>---Does this server has a DNS name? y ou n (répondez "y" si vous voulez héberger le nœud sur un serveur possédant un nom de domaine. Exemple : g1.spacejerk.fr)<br><br>e - On lance la synchronisation :<br><pre><code>$ duniter sync g1.duniter.org 443</code></pre>Prenez votre mal en patience, ça peut être assez long (20 minutes ou +..., selon votre connexion et votre matériel)<br><br>f - On lance le serveur :<br>Moi, je lance le serveur avec l'interface web, plus pratique :<br><pre><code>$ duniter webstart --webmhost 192.168.0.75</code></pre>Remarquez ici que je rajoute un argument à la commande duniter webstart : "--webmhost" me permet de spécifier l'adresse IP privée de mon réseau interne Freebox<br>Vous aurez alors accès à votre "interface web" à cette adresse : http://MON-DOMAINE:9220 ou bien http://MON-IP:9220<br><br>g - N'oubliez pas d'ouvrir les ports suivants dans votre firewall (si vous en avez un) :<br>10901/tcp = serveur<br>9220/tcp = interface web<br><br>g bis - Si comme moi votre Freebox est confgurée en mode "routeur", il faut faire une redirection de ports vers votre IP privée (10901 et 9220)<br><br>h - S'inscrire sur CESIUM<br>Cesium est une application vous permettant de gérer votre compte en monnaie libre Ğ1.<br>URL : https://g1.duniter.fr<br>Il va falloir créer un compte. C'est nécessaire pour être inscrit dans le registre public du Ğ1. Vous créerez en même un "porte-feuille".<br>Remplissez complètement les infos demandées dans votre compte.<br>Retenez bien votre identifiant secret et votre mot de passe, essentiels pour vous connecter.<br>Vous devez créez un compte "membre" pour pouvoir plus tard participer au dividende universel....<br><br>Pour toute info et complément, je vous renvoie vers plusieurs liens : <br><ul><li>Tout est excellemment expliqué ici (mais pour OpenBSD) : <a href="https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud" title="https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud">https://yeuxdelibad.net/Blog/?d=2017/11/08/16/00/51-debuter-avec-duniter-1-puis-heberger-un-noeud</a> </li><li>Tuto complet pour l'inscription : <a href="http://www.le-sou.org/inscription-tuto/" title="http://www.le-sou.org/inscription-tuto/">http://www.le-sou.org/inscription-tuto/</a> </li><li>Comprendre Duniter : <a href="https://duniter.org/fr/comprendre/" title="https://duniter.org/fr/comprendre/">https://duniter.org/fr/comprendre/</a> </li><li>Duniter sur Yunohost derrière une box privatrice (type livebox) : <a href="https://forum.duniter.org/t/duniter-sur-yunohost-derriere-une-box-privatrice-type-livebox/2169" title="https://forum.duniter.org/t/duniter-sur-yunohost-derriere-une-box-privatrice-type-livebox/2169">https://forum.duniter.org/t/duniter-sur-yunohost-derriere-une-box-privatrice-type-livebox/2169</a> </li><li>Duniter sur Raspberry Pi 3 derrière une Freebox v5 avec Yunohost : <a href="https://duniter.org/fr/wiki/duniter/install-duniter-freebox_v5-yunohost" title="https://duniter.org/fr/wiki/duniter/install-duniter-freebox_v5-yunohost">https://duniter.org/fr/wiki/duniter/install-duniter-freebox_v5-yunohost</a> </li><li>Chat Duniter : <a href="https://chat.duniter.org/" title="https://chat.duniter.org/">https://chat.duniter.org/</a> </li><li>Forums Duniter : <a href="https://forum.duniter.org/" title="https://forum.duniter.org/">https://forum.duniter.org/</a> </li><li>Licence Ğ1 : <a href="https://duniter.org/fr/wiki/licence-g1/" title="https://duniter.org/fr/wiki/licence-g1/">https://duniter.org/fr/wiki/licence-g1/</a> </li></ul>
<p><img src="media/81133586.d3d22ade032c891f4b97588788975fc6" data-original-source="http://cdn.libravatar.org/avatar/d3d22ade032c891f4b97588788975fc6" alt="Gravatar de citizenz7" class="gravatar" /><br/><i>Original post of <a href="https://www.citizenz.info/tuto-auto-heberger-un-noeud-duniter-sous-debian-ubuntu" title="Visit the source">citizenz7</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://miamondo.org/2017/11/12/jai-ete-mordu-par-une-viperr/
title: Miamondo : J’ai été mordu par une Viperr.
uri: Miamondo-J-ai-été-mordu-par-une-Viperr
url: https://miamondo.org/2017/11/12/jai-ete-mordu-par-une-viperr/
content:
<p><span>Bonjour,</span></p>
<p><span>Je possède un vieil Acer Aspire 5611 de 2006 qui n’a pas une vie facile puisque je m’en sers pour tester les distributions les plus farfelues. J’ignore combien de fois j’ai pu formater son disque dur. Je pourrais très bien le faire dans une machine virtuelle me direz-vous, au lieu de m’acharner sur ce pauvre bougre qui ne demande qu’à partir à la casse mais je suis un sadique et tant que cet ordinateur possédera ne serait-ce qu’un bit de conscience-machine, je continuerai mes expériences.</span></p>
<p><span><img data-attachment-id="6368" data-permalink="https://miamondo.org/2017/01/08/archlinux-une-installation-pleine-de-surprises/aceraspire/" data-orig-file="https://ordinosor.files.wordpress.com/2017/01/aceraspire.png?w=840" data-orig-size="509,352" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="aceraspire" data-image-description="" data-medium-file="https://ordinosor.files.wordpress.com/2017/01/aceraspire.png?w=840?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/01/aceraspire.png?w=840?w=509" src="https://ordinosor.files.wordpress.com/2017/01/aceraspire.png?w=840" alt="aceraspire" srcset="https://ordinosor.files.wordpress.com/2017/01/aceraspire.png 509w, https://ordinosor.files.wordpress.com/2017/01/aceraspire.png?w=150 150w, https://ordinosor.files.wordpress.com/2017/01/aceraspire.png?w=300 300w" sizes="(max-width: 509px) 85vw, 509px"></span></p>
<p><span>Donc, après m’en être servi pour tester l’<a href="http://emmabuntus.sourceforge.net/blog/emmade-2-la-version-stretch/" target="_blank" rel="noopener">Emmabuntüs DE 2</a>, je me suis dit que ce serait une bonne idée de le transformer en vivarium. Pour ce faire, j’ai jeté mon dévolu sur un remix de la distribution Fedora : <a href="https://viperr.org/site/index.html">la V</a><a href="https://viperr.org/site/indexfr.html" target="_blank" rel="noopener">iperr 09 (Vipera Dragon)</a>. Et franchement, rien que pour la beauté des fonds d’écran, ça vaut son pesant de venin. C’est une distribution très esthétique.</span></p>
<p> </p>
<a href="https://miamondo.org/2017/11/12/jai-ete-mordu-par-une-viperr/#gallery-18770-1-slideshow">Cliquer pour visualiser le diaporama.</a>
<p><span>L’installation ne présente aucune difficulté. Il suffit de télécharger l’image iso qui pèse 1,3 Go. Vous trouverez cette dernière sur <a href="https://viperr.org/site/indexfr.html" target="_blank" rel="noopener">le site de Viperr</a>. Cocorico! C’est en français. Ensuite, vous créez une clé usb bootable avec la commande magique <strong>dd</strong> :</span></p>
<p><strong><span>sudo dd bs=4M if=/</span><span>chemin_de_l’image.iso</span> <span>of=/dev/</span><span>emplacement_clé_USB</span> <span>status=progress &amp;&amp; sync</span></strong></p>
<p><span>Et dans le bios de votre ordinateur, vous modifiez l’ordre de boot afin qu’il démarre sur la clé USB. Vous allez vous retrouver sur la version live qui va vous proposer d’installer la vipère sur le disque dur. Le tour est joué.</span></p>
<p><span>En matière de logiciels, Viperr installe le strict minimum mais il vous propose une post-installation qui va vous permettre d’installer par exemple LibreOffice et bien d’autres softwares. Cela dit, c’est à vous de personnaliser votre vivarium. J’ai par exemple choisi d’installer <strong>Retext, Gedit</strong> et le navigateur <strong>Vivaldi</strong>.</span></p>
<p><span>Le gestionnaire de paquets s’appelle <a href="https://fr.wikipedia.org/wiki/Dandified_Yum" target="_blank" rel="noopener">Dandified Yum</a> ou <a href="https://fr.wikipedia.org/wiki/Dandified_Yum" target="_blank" rel="noopener">DNF</a>. Si le logiciel est présent dans les dépôts comme c’est le cas par exemple pour <a href="https://fr.wikipedia.org/wiki/Gedit">Gedit</a>, rien de plus simple! Il suffit d’entrer dans un terminal la commande suivante :</span></p>
<p><span><strong>dnf install gedit</strong></span></p>
<p><span>Pour le navigateur Vivaldi qui n’est pas présent dans les dépôts, il m’a suffi de télécharger <a href="https://vivaldi.com/download/" target="_blank" rel="noopener">sur cette page</a> la version 32 bit RPM et de rentrer la commande ci-dessous. En quelques minutes, j’avais installé mon navigateur favori!  </span></p>
<p><strong><span>sudo rpm -ivh</span> <span>/home/ordinosor/Téléchargements/vivaldi-stable-1.12.955.48-1.i386.rpm </span></strong></p>
<p><span>(Remplacez la partie en rouge par votre chemin personnel. )</span></p>
<p><span>C’est peu de dire que j’ai été séduit par cette distribution légère, réactive et très esthétique. Elle m’a permis également de découvrir Fedora. Ce n’est peut-être pas la distribution idéale pour les débutants. Dans ce domaine, je crois qu’Ubuntu ne souffre d’aucune concurrence. Je dirais que <strong>Viperr</strong> est une distribution intermédiaire.</span></p>
<p><span>Petit bémol, les applications que j’ai moi-même installées se retrouvent toutes rassemblées sous l’onglet <strong>Accessoires > Liste d’applications</strong>. Or, j’ai l’habitude de placer des icônes sur le bureau. Avec les autres distributions, il suffit de faire un clic droit ou un glisser-deposer… Mais avec <strong>Viperr</strong>, je n’ai toujours pas compris comment il fallait procéder. </span></p>
<p><span>Cela dit, si j’ai un dernier conseil à vous donner… Laissez-vous mordre par cette Viperr bleue. Le venin est un vrai nectar!</span></p>
<p> </p><br><a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ordinosor.wordpress.com/18770/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ordinosor.wordpress.com/18770/"></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=miamondo.org&amp;blog=88640341&amp;post=18770&amp;subd=ordinosor&amp;ref=&amp;feed=1" width="1" height="1">
<p><img src="media/848c13f4.27be241458674ac3359b0353fdc37c4a" data-original-source="http://cdn.libravatar.org/avatar/27be241458674ac3359b0353fdc37c4a" alt="Gravatar de Miamondo" class="gravatar" /><br/><i>Original post of <a href="https://miamondo.org/2017/11/12/jai-ete-mordu-par-une-viperr/" title="Visit the source">Miamondo</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Miamondo : <a href="">Installer une distribution Linux sur un smartphone Android</a> (26/05/2017)</li><li>Miamondo : <a href="">Comment je suis devenu un biffin du num&eacute;rique gr&acirc;ce &agrave; Emmabunt&uuml;s</a> (12/08/2017)</li><li>Miamondo : <a href="">Le logiciel libre, k&eacute;sako?</a> (19/09/2017)</li><li>Cyrille BORNE : <a href="">M&ecirc;me quand Ubuntu fait mal, Ubuntu fait bien, quel incroyable talent !</a> (28/05/2011)</li><li>Cyrille BORNE : <a href="">Du d&eacute;veloppement photographique sous Linux*</a> (19/08/2012)</li></ul></div></p>


title: Journal du hacker : Liens intéressants Journal du hacker semaine #45
uri: 2017-11-13-Journal-du-hacker-Liens-intéressants-Journal-du-hacker-semaine-45
feed_id:
https://blog.journalduhacker.net/index.php?article133/liens-interessants-journal-du-hacker-semaine-45-2017

url:
https://blog.journalduhacker.net/index.php?article133/liens-interessants-journal-du-hacker-semaine-45-2017

content:
<p>Pour la 45ème semaine de 2017, voici <strong>12 liens</strong> intéressants que vous avez peut-être ratés, relayés par <a href="https://www.journalduhacker.net/">le Journal du hacker</a>, votre source d’informations pour le Logiciel Libre francophone !</p>

<a href="https://www.journalduhacker.net/"><img src="media/01f45034.logo-journal-du-hacker.png" data-original-source="https://blog.journalduhacker.net/data/medias/logo-journal-du-hacker.png"></a>

<ul><li><a href="https://www.journalduhacker.net/s/cgaxbw/bon_anniversaire_journal_du_hacker">Bon anniversaire Journal du Hacker !</a></li>
<li><a href="https://www.journalduhacker.net/s/vkxetu/installation_dune_alternative_open">Installation d'une alternative open-source à Disqus</a></li>
<li><a href="https://www.journalduhacker.net/s/geys13/seconde_mise_en_demeure_pour">Seconde mise en demeure pour l'association LinuxFr</a></li>
<li><a href="https://www.journalduhacker.net/s/pca7pk/qu_est_ce_que_cagette_net_le_logiciel_libre">Qu’est-ce que cagette.net, le logiciel libre qui favorise les circuits courts ?</a></li>
<li><a href="https://www.journalduhacker.net/s/hhh0f4/comprendre_les_unit_s_de_mesure">Comprendre les unités de mesure informatique</a></li>
<li><a href="https://www.journalduhacker.net/s/bdatvh/cours_dinformatique_en_cole_primaire">Cours d'informatique en école primaire</a></li>
<li><a href="https://www.journalduhacker.net/s/hog9u4/wikim_dia_france_et_la_quadrature_du_net_d">Wikimédia France et La Quadrature du Net défendent le domaine public devant le Conseil constitutionnel</a></li>
<li><a href="https://www.journalduhacker.net/s/u3cgrq/gogs_mettre_en_place_un_miroir_vers_github">Gogs : mettre en place un miroir vers GitHub</a></li>
<li><a href="https://www.journalduhacker.net/s/07xs7w/un_bon_mot_de_passe_c_est_quoi">Un « bon » mot de passe, c’est quoi ?</a></li>
<li><a href="https://www.journalduhacker.net/s/3t9zcc/let_s_encrypt_sur_haproxy_partie_1">Let’s Encrypt sur HAProxy (Partie 1)</a></li>
<li><a href="https://www.journalduhacker.net/s/imkz2n/proposez_vous_des_mentions_l_gales_sur">Proposez-vous des mentions légales sur votre site web ?</a></li>
<li><a href="https://www.journalduhacker.net/s/wcqle2/sysadmin_days_7">Sysadmin Days #7</a></li>
</ul><p>Pour ne plus rater aucun article de la communauté francophone, voici :</p>

<ul><li><a href="https://www.journalduhacker.net/rss">Le flux RSS du Journal du hacker</a></li>
<li><a href="https://twitter.com/journalduhacker">Le compte Twitter du Journal du hacker</a></li>
<li><a href="https://framasphere.org/u/journalduhacker">Le compte Diaspora* du Journal du hacker</a></li>
<li><a href="https://framapiaf.org/@journalduhacker">Le compte Mastodon du Journal du hacker</a></li>
</ul><p>De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !</p>

<p>Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. <a href="https://www.journalduhacker.net/invitations/request">Rejoignez-nous</a> pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !</p>

<p><strong>Et vous ? Qu’avez-vous pensé de ces articles ?</strong> N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)</p>
<p><img src="media/ffe97a17.7916ee3cafa0bc3e9583bedad876dcd5" data-original-source="http://cdn.libravatar.org/avatar/7916ee3cafa0bc3e9583bedad876dcd5" alt="Gravatar de Journal du hacker" class="gravatar" /><br/><i>Original post of <a href="https://blog.journalduhacker.net/index.php?article133/liens-interessants-journal-du-hacker-semaine-45-2017" title="Visit the source">Journal du hacker</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Carl Chenet : <a href="">Liens int&eacute;ressants Journal du hacker semaine #45</a> (09/11/2015)</li><li>Journal du hacker : <a href="">Liens int&eacute;ressants Journal du hacker semaine #45</a> (14/11/2016)</li></ul></div></p>


feed_id: https://linuxevolution.wordpress.com/2017/11/13/sortie-d-openshot-qt-2-4-1/
title: Cenwen : Sortie d’ OpenShot Qt 2.4.1
uri: Cenwen-Sortie-d-OpenShot-Qt-2-4-1
url: https://linuxevolution.wordpress.com/2017/11/13/sortie-d-openshot-qt-2-4-1/
content:
<p><a href="https://linuxevolution.wordpress.com/2016/01/12/openshot-qt-2-0-beta/aboutlogo/" rel="attachment wp-att-2570"><img data-attachment-id="2570" data-permalink="https://linuxevolution.wordpress.com/2016/01/12/openshot-qt-2-0-beta/aboutlogo/" data-orig-file="https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png" data-orig-size="500,214" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="AboutLogo" data-image-description="" data-medium-file="https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png?w=300&amp;h=128" data-large-file="https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png?w=500" src="https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png?w=300&amp;h=128" alt="" width="300" height="128" srcset="https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png?w=300&amp;h=128 300w, https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png?w=150&amp;h=64 150w, https://linuxevolution.files.wordpress.com/2016/01/aboutlogo.png 500w" sizes="(max-width: 300px) 100vw, 300px"></a>Avec un temps à rester derrière son ordinateur, j’ai le plaisir de vous annoncer la sortie d’ OpenShot 2.4.1. Au menu, pas de grosses nouveautés. Celles-ci devraient venir avec la 2.5.0. Enfin, j’espère. Toutefois, nous avons un bon lot d’amélioration. Jetons-y un œil.</p>
<p> </p>
<p><iframe type="text/html" width="593" height="364" src="https://www.youtube.com/embed/1k-ISfd-YBE?version=3&amp;rel=1&amp;fs=1&amp;autohide=2&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" allowfullscreen="true"></iframe></p>
<p><span></span></p>
<h3>Amélioration de la qualité d’images</h3>
<p>La pipeline de traitement d’image dans OpenShot a été améliorée. Le résultat est un meilleur piqué de l’ image et une légère amélioration des performances.</p>
<p> </p>
<h3>Amélioration de la fluidité de la lecture</h3>
<p>La prévisualisation des vidéos dans le lecteur a été aussi amélioré pour gérer les framerates supérieurs (50, 60, 120 fps). Le résultat est une lecture sensiblement plus fluide et moins de freeze et de sauts avec certains profils.</p>
<p> </p>
<h3>Amélioration de la stabilité (surtout avec Windows</h3>
<p>De grands changements sur Libopenshot ont été fait pour obtenir un meilleur support sur Windows. Cela a permis de résoudre pas mal de bogues pour Windows tel que des problèmes de désync/synchronisation, vidéos s’arrêtant à 30 minutes, arrêt prématuré des fichiers audios, ….</p>
<p>A chaque version, dés que nous sommes capables de reproduire le crash, de nombreux correctifs sont ajoutés afin d’ améliorer sa stabilité. Avec pour résultat, une diminution par 10 sur les 12 derniers mois. Et nous continuerons à travailler dans ce sens avec acharnement.</p>
<p> </p>
<h3>Nouveaux tutoriels vidéos</h3>
<p>Voici le premier tutoriel vidéo officiel d’ OpenShot (ci-dessus). D’autres sont en cours (de 5 à 10 minutes) et viendront s’ajouter à ceux existants. Ils couvriront toutes les fonctionnalités, secrets,…</p>
<p> </p>
<h3>Site web disponible dans plusieurs langues</h3>
<p>Un effort important de la communauté des traducteurs du projet a été fourni afin de disposer d’un site officiel dans différentes langues dont le Français. Si votre langue natale n’y est pas, contacter Jonathan afin qu’il vous explique la marche à suivre. Voici les liens des versions traduites du site en Français, Hollandais, Finnois, Islandais, Norvégien, Turc et Ukrainien.</p>
<ul><li><a href="http://fr.openshot.org/">http://fr.openshot.org/</a> (France)</li>
<li><a href="http://fi.openshot.org/">http://fi.openshot.org/</a> (Finlande)</li>
<li><a href="http://nl.openshot.org/">http://nl.openshot.org/</a> (Pays-Bas)</li>
<li><a href="http://is.openshot.org/">http://is.openshot.org/</a> (Islande)</li>
<li><a href="http://nb.openshot.org/">http://nb.openshot.org/</a> (Norvège)</li>
<li><a href="http://tr.openshot.org/">http://tr.openshot.org/</a> (Turquie)</li>
<li><a href="http://uk.openshot.org/">http://uk.openshot.org/</a> (Ukraine)</li>
<li><a href="https://translations.launchpad.net/openshot/website/+translations">Aidez-nous avec votre langue</a></li>
</ul><p>Voici tout ce qui concerne cette petite version. Pour ceux et celles qui veulent en savoir plus, cliquez sur c<a href="http://www.openshotvideo.com/2017/11/openshot-241-released-improved-playback.html">e lien</a>. Attention, c’est en anglais. Bonne lecture et bon tests.</p><br>Classé dans:<a href="https://linuxevolution.wordpress.com/category/edition-video/">Edition Vidéo</a>, <a href="https://linuxevolution.wordpress.com/category/framework-2/">framework</a>, <a href="https://linuxevolution.wordpress.com/category/logiciels/">Logiciels</a>, <a href="https://linuxevolution.wordpress.com/category/multimedia/">Multimédia</a>, <a href="https://linuxevolution.wordpress.com/category/news/">News</a>, <a href="https://linuxevolution.wordpress.com/category/openshot/">OpenShot</a>, <a href="https://linuxevolution.wordpress.com/category/planet-libre/">Planet-Libre</a> Tagged: <a href="https://linuxevolution.wordpress.com/tag/edition-video/">Edition Vidéo</a>, <a href="https://linuxevolution.wordpress.com/tag/libre/">Libre</a>, <a href="https://linuxevolution.wordpress.com/tag/linux/">Linux</a>, <a href="https://linuxevolution.wordpress.com/tag/logiciels/">Logiciels</a>, <a href="https://linuxevolution.wordpress.com/tag/multimedia/">Multimédia</a>, <a href="https://linuxevolution.wordpress.com/tag/news/">News</a>, <a href="https://linuxevolution.wordpress.com/tag/openshot/">OpenShot</a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=linuxevolution.wordpress.com&amp;blog=10190078&amp;post=2953&amp;subd=linuxevolution&amp;ref=&amp;feed=1" width="1" height="1">
<p><img src="media/9ad38962.b4deaa84d80933a525c375c1cef1b842" data-original-source="http://cdn.libravatar.org/avatar/b4deaa84d80933a525c375c1cef1b842" alt="Gravatar de Cenwen" class="gravatar" /><br/><i>Original post of <a href="https://linuxevolution.wordpress.com/2017/11/13/sortie-d-openshot-qt-2-4-1/" title="Visit the source">Cenwen</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Cenwen : <a href="">Sortie d&rsquo; Openshot QT 2.4.0</a> (08/09/2017)</li><li>Cenwen : <a href="">Apr&egrave;s KickStarter!!!!!!!!!!!</a> (27/04/2013)</li><li>Cenwen : <a href="">Libopenshot est sortie et plus encore&hellip;</a> (14/04/2014)</li><li>Cenwen : <a href="">OpenShot Qt 2.0 Beta</a> (12/01/2016)</li><li>Cenwen : <a href="">Nouvelle version Openshot QT 2.3.3</a> (19/05/2017)</li></ul></div></p>


feed_id: https://blog.fedora-fr.org/renault/post/Publication-de-Fedora-27-%21
title: Renault : Publication de Fedora 27 !
uri: Renault-Publication-de-Fedora-27
url: https://blog.fedora-fr.org/renault/post/Publication-de-Fedora-27-%21
content:
<p>En ce mardi 14 novembre 2017, le projet Fedora est fier d’annoncer la sortie
de la distribution GNU/Linux Fedora 27.</p>
<p>Cette version de Fedora s'est surtout concentrée sur trois axes : couche
graphique, gestion du matériel et Fedora.next.</p>
<p>À noter que pour gagner du temps et des ressources, c'est la première
version de Fedora n'ayant pas eu de version Alpha. Cela a été rendu possible
grâce à l'amélioration des procédures de qualité pour les versions en
développements.</p>
<p><a href="media/1240ed8d.GNOME-Bureau.png" data-original-source="https://blog.fedora-fr.org/public/renault/F27/GNOME-Bureau.png" title="GNOME-Bureau.png"><img src="media/638ea6fc..GNOME-Bureau_m.png" data-original-source="https://blog.fedora-fr.org/public/renault/F27/.GNOME-Bureau_m.png" alt="GNOME-Bureau.png" title="GNOME-Bureau.png, oct. 2017"></a></p>
<h3>Couche graphique</h3>
<p><strong>GNOME est toujours à l'honneur avec sa version 3.26.</strong> C'est
une version essentiellement de polissage et de stabilité avec :</p>
<ul><li>La barre principale qui devient transparente, si aucune fenêtre n'est
maximisée ;</li>
<li>De nouvelles animations, plus fluides, en cas de redimensionnement ou de
mouvement des fenêtres ;</li>
<li>La recherche globale fonctionne sur des actions du système (comme
<em>Éteindre</em>) et affiche plus de résultats à la fois ;</li>
<li>Les paramètres du système bénéficient d'une refonte complète de l'interface
;</li>
<li>Le logiciel <em>Disques</em> peut enfin redimensionner les partitions,
<em>Agenda</em> prenant en charge les évènements récurrents et <em>Web</em>
acceptant la synchronisation depuis Firefox Sync ;</li>
<li>Le logiciel de virtualisation <em>Machines</em> peut <a href="https://debarshiray.wordpress.com/2017/10/20/fedora-meets-rhel/" hreflang="en">télécharger et lancer automatiquement une RHEL gratuite</a> ;</li>
<li>Amélioration des performances pour quelques applications ou GNOME en
général.</li>
</ul><p><strong>Remplacement de l'interface graphique de gestion de paquets Yumex
par dnfdragora</strong> qui propose une interface Qt, GTK+ et ncurses. Le
développement de Yumex s'est arrêté il y a un an, qui met fin à une application
ayant accompli dix ans de bons et loyaux services et a même su migrer de
<em>yum</em> vers <em>dnf</em>. dnfdragora présente la particularité de reposer
sur rpmdragora, qui vient de Mageia.</p>
<p><a href="media/3400da5d.dnfdragora.png" data-original-source="https://blog.fedora-fr.org/public/renault/F27/dnfdragora.png" title="dnfdragora.png"><img src="media/4359331d..dnfdragora_m.png" data-original-source="https://blog.fedora-fr.org/public/renault/F27/.dnfdragora_m.png" alt="dnfdragora.png" title="dnfdragora.png, oct. 2017"></a></p>
<h3>Gestion du matériel</h3>
<p><strong>Fedora propose une image unique pour l'architecture AARCH64 (ARM 64
bits)</strong> ce qui rejoint la solution proposée pour les cartes disposant
d'un ARMv7. Pour l'instant cette image prendra en charge les cartes suivantes
:</p>
<ul><li>Pine64 (et ses variantes)</li>
<li>Raspberry Pi 3 (64 bit mode)</li>
<li>96boards HiKey</li>
<li>96boards Dragonboard 410c</li>
<li>ARM Juno</li>
</ul><p>L'offre des cartes prises en charge s'étoffera dans le temps, de même que la
mise à disposition des versions personnalisées de Fedora.</p>
<p>Toujours à propos du matériel, <strong>Fedora a travaillé pour avoir une
meilleure gestion des SoC Intel Bay Trail et Cherry Trail</strong>
(essentiellement des puces Pentium, Celeron et Atom sur portables et
tablettes). Le travail a consisté en l'amélioration de la surveillance de la
batterie (consommation actuelle, temps restant sur batterie, savoir si la
machine est en charge ou non) et de la gestion de l'audio. Les écrans tactiles
et les accéléromètres seront également mieux détectés et donc exploitables par
le système et les applications.</p>
<p><strong>Fedora 27 peut enfin tourner sur les ordinateurs ayant un UEFI 32
bits tout en ayant un CPU 64 bits.</strong> Cela consiste en l'installation
d'un GRUB 32 bits (chargé par l'UEFI lui même) qui lui même charge un noyau et
l'espace utilisateur en 64 bits. Cette configuration, assez atypique, a
nécessité un travail sur GRUB, Anaconda et les utilitaires EFI pour les prendre
en charge. Fedora sera ainsi installable sur ces configurations comme l'Asus
Transformer T100TA, le HP Stream 7, le Dell Venue 8 Pro 5830 et les premiers
Macintosh Intel d'Apple.</p>
<p><a href="media/731a0729.GNOME-Paametres.png" data-original-source="https://blog.fedora-fr.org/public/renault/F27/GNOME-Paametres.png" title="GNOME-Paametres.png"><img src="media/54ebb177..GNOME-Paametres_m.png" data-original-source="https://blog.fedora-fr.org/public/renault/F27/.GNOME-Paametres_m.png" alt="GNOME-Paametres.png" title="GNOME-Paametres.png, oct. 2017"></a></p>
<h3>Fedora.next</h3>
<p><strong>Séparation du <em>Base Runtime</em> en <em>Plateforme</em> et
<em>Hôte</em></strong>, le premier prenant en charge l'espace utilisateur et la
base du système quand le second s'occupe uniquement de la gestion du matériel.
En somme, la seconde partie contient le noyau, le chargeur de démarrage, les
firmwares et quelques pilotes. Dans le cadre de la modularité, le but de ce
changement est de découpler la gestion du matériel du reste du système pour
proposer des cycles de vie différents et autonomes. L'utilisateur pourra ainsi
bénéficier de plus de souplesse, comme avoir la dernière version du support du
matériel avec le reste de Fedora un peu plus ancien et inversement. À terme, on
pourrait avoir une sorte de gestion de matériel fournie par Fedora 27 avec un
espace utilisateur fourni par Fedora 28. Ou inversement selon le cas
d'usage.</p>
<p><strong>L'édition Fedora Server reçoit les premiers travaux officiels pour
gérer la modularité</strong>, alors qu'elle a été testée par l'édition spéciale
Boltron lors de Fedora 26. L'objectif est de mettre en place la modularité dans
une image officielle de Fedora et non annexe comme l'a été Boltron. Cela
permettra aux administrateurs systèmes de prendre en main le projet de manière
plus large pour bénéficier d'un maximum de retours. Il sera également possible
de voir le comportement de la modularité durant le cycle de vie complet de
Fedora 27.</p>
<p>Comme pour Fedora 26, je vous invite à consulter la <a href="https://docs.pagure.org/modularity/" hreflang="en">documentation de la
modularité</a> et leur <a href="https://www.youtube.com/channel/UC4O8G9SZwqtkIAuKcT8-JpQ" hreflang="en">chaine
Youtube</a> pour en apprendre plus à ce sujet. À cause de ce changement
important, l'édition Server sera disponible un mois après les autres
éditions.</p>
<p>Et comme d'habitude, Fedora 27 réserve bien <a href="https://fedoraproject.org/wiki/User:Renault/Promotion/Fedora_27" hreflang="fr">d'autres surprises à découvrir</a>.</p>
<h3>La communauté francophone</h3>
<h3>L'association</h3>
<p><img src="media/7baee07e.Logo.png" data-original-source="https://blog.fedora-fr.org/public/renault/Illustrations/Logo.png" alt="Logo.png" title="Logo.png, oct. 2017"></p>
<p><a href="https://www.borsalinux-fr.org/" hreflang="fr">Borsalinux-fr</a> est
l'association qui gère la promotion de Fedora dans l'espace francophone. Nous
constatons depuis quelques années une baisse progressive des membres à jour de
cotisation et de volontaires pour prendre en main les activités dévolues à
l'association.</p>
<p>Nous lançons donc un appel à nous rejoindre afin de nous aider.</p>
<p>L'association est en effet propriétaire du <a href="https://www.fedora-fr.org/" hreflang="fr">site officiel de la communauté
francophone de Fedora</a>, organise des évènements promotionnels comme les
Rencontres Fedora régulièrement et participe à l'ensemble des évènements
majeurs concernant le libre à travers la France principalement.</p>
<p>Si vous aimez Fedora, et que vous souhaitez que notre action perdure, vous
pouvez :</p>
<ul><li><a href="https://www.borsalinux-fr.org/pages/Adh%C3%A9rer" hreflang="fr">Adhérer à l'association</a> : les cotisations nous aident à produire des
goodies, à nous déplacer pour les évènements, à payer le matériel ;</li>
<li>Participer sur le forum, les listes de diffusion, à la réfection de la
documentation, représenter l'association sur différents évènements francophones
;</li>
<li>Concevoir des goodies ;</li>
<li>Organiser des évènements type Rencontres Fedora dans votre ville.</li>
</ul><p>Nous serions ravis de vous accueillir et de vous aider dans vos démarches.
Toute contribution, même minime, est appréciée.</p>
<p>Si vous souhaitez avoir un aperçu de notre activité, vous pouvez participer
à nos réunions hebdomadaires chaque lundi soir à 20h30 (heure de Paris) sur IRC
(canal #fedora-meeting-1 sur Freenode).</p>
<h3>La documentation</h3>
<p>Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la
documentation francophone de Fedora, pour rattraper les 5 années de retard
accumulées sur le sujet.</p>
<p>Le moindre que l'on puisse dire, c'est que le travail abattu est important :
près d'une cinquantaine d'articles corrigés et remis au goût du jour. Un grand
merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège et les
autres contributeurs et relecteurs pour leurs contributions.</p>
<p>L'équipe se réunit tous les lundis soir après 21h (heure de Paris) sur IRC
(canal #fedora-doc-fr sur Freenode) pour faire progresser la documentation par
un travail collaboratif. Le reste de la semaine cela se passe sur les listes de
diffusion.</p>
<p>Si vous avez des idées d'articles ou de corrections à effectuer, que vous
avez une compétence technique à retransmettre, n'hésitez pas à participer.</p>
<h3>Liens</h3>
<ul><li><a href="https://getfedora.org/" hreflang="fr">Site officiel du Projet
Fedora</a></li>
<li><a href="http://www.fedora-fr.org/" hreflang="fr">Site de la communauté
francophone de Fedora</a></li>
<li><a href="https://docs.fedoraproject.org/fr-FR/index.html" hreflang="fr">Notes de version de Fedora 27</a></li>
<li><a href="https://torrent.fedoraproject.org/" hreflang="fr">Images Torrents
officielles</a></li>
<li><a href="https://doc.fedora-fr.org/wiki/Mise_%C3%A0_niveau_de_Fedora" hreflang="fr">Procédure de mise à niveau</a></li>
</ul>
<p><img src="media/d143d7a6.f792a7629fb4a46c01613eb1976730ef" data-original-source="http://cdn.libravatar.org/avatar/f792a7629fb4a46c01613eb1976730ef" alt="Gravatar de Renault" class="gravatar" /><br/><i>Original post of <a href="https://blog.fedora-fr.org/renault/post/Publication-de-Fedora-27-%21" title="Visit the source">Renault</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Renault : <a href="">Fedora 27 Beta est disponible !</a> (03/10/2017)</li><li>TitaX : <a href="">Fedora 11 et les rencontres Fedora parisiennes du 27 et 28 juin 2009</a> (24/06/2009)</li><li>opossum1er : <a href="">NetworkManager &amp;ndash; Sortie d&#039;une mise en veille et/ou hibernation.</a> (30/01/2009)</li><li>Paquet Fedora du Jour : <a href="">Fedora 14 est sortie !</a> (05/11/2010)</li><li>C-quad : <a href="">Fedora 16 est sortie le 08/11/2011</a> (09/11/2011)</li></ul></div></p>


feed_id: https://blog.genma.fr/?Lifehacking-Trois-ecrans-reel-confort-luxe-ou-superflu
title: genma : Lifehacking - Trois écrans : réel confort, luxe ou superflu ?
uri: genma-Lifehacking-Trois-écrans-réel-confort-luxe-ou-superflu
url: https://blog.genma.fr/?Lifehacking-Trois-ecrans-reel-confort-luxe-ou-superflu
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2704.jpg?1509970794" width="150" height="79"><div><p>Il y a quelques temps j'écrivais un billet <a href="https://blog.genma.fr/?Ubuntu-et-trois-ecrans-Oui-c-est-possible" title="Ubuntu et trois écrans ? Oui c'est possible">Ubuntu et trois écrans ? Oui c'est possible</a> dans lequel j'abordais le cas d'un ordinateur portable sur lequel il y avait une carte graphique Intel intégrée au processeur (de la gamme Intel Core i5), deux sorties (une VGA et une HDMI) et le fait que l'on pouvait avoir au final 3 écrans pour une seule et même machine.</p>
<p>Dans l'entreprise dans laquelle je suis, nous avons une place dédiée à un bureau, mais il nous arrive de travailler en mobilité (en réunion, mais pas que. Nous pouvons travailler debout, affalé dans un canapé...). A mon bureau, j'ai deux écrans de grande taille (23 pouces). Et avec le temps, je l'avoue, j'ai pris goût à ce confort d'avoir 3 écrans. Il y a le fait que les écrans sont sur-élevés et donc à hauteur d'yeux (ce qui est mieux quand, comme moi, on passe de nombreuses heures devant un écran).</p>
<p>Chez moi, j'ai aménagé mon environnement de travail / bureau personnel afin d'avoir la place et j'ai également deux écrans (de taille plus modeste, 21"), que je peux brancher à mon ordinateur professionnel pour les fois où j'ai besoin de travailler en dehors des heures de bureau. Je retrouve ainsi le confort que j'ai pour mon post de travail.</p>
<p><strong> Avoir 3 écrans pourrait sembler à l'encontre du lifehacking vu qu'en multipliant les écrans on ajoute des sources de distraction potentielles. Dans mon cas, c'est au contraire une augmentation de ma productivité.</strong> Et qui dit productivité dit Lifehacking, d'où le titre et le classement de ce billet.</p>
<p>J'ai le confort d'avoir 3 écrans et donc de pouvoir disposer mon espace de travail numérique comme bon il me semble. Par conséquence Ces 3 écrans me permettent : d'avoir mon fichier de suivi / todo ouvert en permanence dans un coin, et de le remplir / de saisir mon suivi des pomodoros. (cf <a href="https://blog.genma.fr/?+-Lifehacking-+" title="mes différents billets sur le Lifehacking">mes différents billets sur le sujet</a>) Ou quand je dois travailler à une présentation, sur différents documents en parallèle, j'abuse des deux grand écrans avec la fonction de Unity qui permet de découper un écran en deux part égale... J'utilise Unity avec Ubuntu, je ne suis pas passé comme certains de mes collègues sous des Window Manager plus austère et plus complexe comme i3 par exemple.</p>
<p>Sur la fenêtre de l'écran du portable, la plus petite, j'ai un explorateur de fichiers (Nautilus) dans lequel j'utilise les onglets. En arrière plan, j'ai mon navigateur Firefox qui tourne en tâche de fond : accessible en basculant dessus via la combinaison de touches ALT+TAB, pour faire une recherche, caché pour ne pas me distraire. Quand j'ai besoin d'avoir une page (par exemple un tutoriel) affiché en permanence, Firefox bascule du petit écran sur un des grands écrans en face de moi.</p>
<p>D'avoir éventuellement Thunderbird ouvert et visible en permanence, ce qui me permet de voir les mails arrivés. Et je ne traite pas les mails de suite, mais je les dépile / regarde :
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> soit il y a une urgence, et je repanifie donc la tâche du prochain pomodoro pour traiter cette urgence, répondre à ce mail (par exemple).
<br><img src="https://blog.genma.fr/local/cache-vignettes/L8xH11/puce-32883.gif?1494182300" width="8" height="11" alt="-"> soit il corresponde à une information fournie, à un projet ou autre et c'est dans une phase de "gestion / mise à jour de la todo et classement des mails", au cours d'un pomodoro dédié, que ce mail sera traité. <br>
Sur le sujet de Thunderbird, voir <a href="https://blog.genma.fr/?Lifehacking-et-la-gestion-des-mails" title="Lifehacking et la gestion des mails">Lifehacking et la gestion des mails</a></p>
<p>Bref, tout ça pour dire qu'une fois l'organisation de son environnement de bureau sur 3 écrans faites, avec ses petites habitudes, on gagne vite en réactivité et productivité. Et c'est un peu ça <a href="https://blog.genma.fr/?+-Lifehacking-+" title="mes différents billets sur le Lifehacking">le lifehacking : s'organiser pour gagner du temps</a>.</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Lifehacking-Trois-ecrans-reel-confort-luxe-ou-superflu" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


title: Thuban : Gestionnaire de fenêtre qui aide à se concentrer : cwm
uri: Thuban-Gestionnaire-de-fenêtre-qui-aide-à-se-concentrer-cwm
feed_id:
https://yeuxdelibad.net/Blog/?d=2017/11/14/22/17/01-gestionnaire-de-fenetre-qui-aide-a-se-concentrer-cwm

url:
https://yeuxdelibad.net/Blog/?d=2017/11/14/22/17/01-gestionnaire-de-fenetre-qui-aide-a-se-concentrer-cwm

content:
<p>Fervent utilisateur de <a href="http://dwm.suckless.org/">dwm</a> depuis longtemps, j'ai toujours eu du mal à passer à autre chose. Les habitudes sont ancrées, tout est à portée de main, c'est simple... C'est une retrouvaille avec un vieux copain du forum debian-fr sur <a href="https://obsd4a.net/">obsd4a</a> (coucou eol ;) ) qui m'a donné envie de consacrer un peu de temps à un gestionnaire inclus par défaut dans OpenBSD : <b>calm window manager</b> ou <b>cwm</b>.<br>
Il me semble qu'il s'agit là d'une belle réussite très bien pensée. L'équilibre entre fonctionnalités, ergonomie et part de configuration laissée à l'utilisateur est trouvé. Pour ma part, ça m'aide à être efficace et plus concentré.</p>

<div><img src="media/02bfe2a8.cwm.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/b6/cwm.png" alt=""></div>

<p>Par contre, on ne va pas se mentir, quand on vient de gnome, ça peut être déroutant au début. Cela dit, si ça vous tente, je vous propose de faire un petit tour de ce gestionnaire de fenêtre (disponible aussi sur les distributions GNU/Linux) pour découvrir sa façon d'être. On tentera d'utiliser autant que possible les composants livrés avec OpenBSD par défaut.</p>

<p><b><u><span>Découverte et configuration</span></u></b></p>

<p>Sous OpenBSD, pour lancer une session cwm, je n'ai qu'à mettre dans le fichier ~/.xsession la ligne suivante :</p>

<pre><code>cwm</code></pre>

<p>Une fois la session démarrée, vous avez devant vous un écran tout gris. Beurk. C'est normal cela dit, puisque ce n'est pas au gestionnaire de fenêtres de gérer le fond d'écran. On va y remédier, ne vous en faîtes pas.</p>

<p>Tout d'abord, on va ouvrir un terminal. Pour ça, deux choix s'offrent à vous :</p>

<ul><li> Ctrl-Alt-Entrée : pouf, xterm s'ouvre.</li>
<li> Alt-? : un menu pour écrire la commande s'affiche, vous pouvez alors écrire le nom de votre terminal favori.</li></ul><p>Pour déplacer la fenêtre, un glisser-déposer avec la souris tout en appuyant sur Alt fera votre bonheur.<br>
Pour redimensionner la fenêtre, là aussi plusieurs possibilités :</p>

<ul><li> Ctrl-Alt-m : maximise la fenêtre</li>
<li> Ctrl-Alt-Shift-[hjkl] : selon la lettre choisie, vous redimensionnez la fenêtre</li>
<li> Alt-clic milieu : redimensionnement par glissé déposer.</li></ul><p>Pour fermer une fenêtre, appuyez sur Ctrl-Alt-x.</p>

<p>Pour changer de fenêtre, vous avez toujours Alt-Tab, ou bien vous cliquez sur le bureau pour avoir un menu de sélection de fenêtre. On ne s'encombre pas avec une barre d'état, on reste concentré sur son travail :) Vous pouvez aussi appuyer sur Ctrl-/ puis taper le nom de la fenêtre. Si vous ne vous souvenez plus de son nom, appuyez sur Ctrl-a.</p>

<p>Ça semble faire beaucoup de raccourcis, mais ils ont tous une certaine logique et on s'y retrouve vite. Si vous n'aimez pas les raccourcis clavier, sachez que :</p>

<ul><li> Un clic-gauche sur le bureau fait apparaître la liste des fenêtres</li>
<li> Un clic-droit fait apparaitre la liste des applications définies dans la configuration (vide par défaut)</li>
<li> Un clic-milieu fait apparaître la liste des groupes.</li></ul><p>Dans la suite, j'écrirai "C" pour "Ctrl", "M" pour "Alt", "S" pour "Shift" et "4" pour la touche "Super" ou "Windows" qui ne sert à rien habituellement. Ces lettres sont celles utilisées dans la configuration.</p>

<p>Une des particularités de cwm est de permettre de :</p>

<ul><li> Pouvoir étiqueter une fenêtre (ajout d'un label) afin de la retrouver facilement ensuite (Ctrl-Alt-n).</li>
<li> Placer les fenêtres dans des groupes. Ça ressemble aux espaces de travail auxquels vous êtes habitués, ainsi qu'aux tag de dwm.</li></ul><p>À partir de ce moment-là, vous voudrez certainement éditer le fichier de configuration ~/.cwmrc afin d'y régler 2-3 choses.<br>
Si vous souhaitez savoir ce que vous pouvez configurer, les pages "man cwm" et "man cwmrc" vous en diront plus.</p>

<p>Via ce lien, vous trouverez <a href="https://dev.yeuxdelibad.net/coolrepo/dotfiles/cwmrc">mon fichier de configuration</a> si vous voulez regarder ce qui est possible. Rien de très étonnant dans ce que j'ai mis hein.<br>
J'attire juste votre attention sur les éléments de configuration suivants :</p>

<p><u>Menu clic-droit</u></p>

<pre><code>command "   Web   " firefox
command "   Mail  " 'xterm -class "mutt" -fa "Hack:size=10:antialias=true" mutt'
command "  Files  " pcmanfm
command " > next  " "mpc next"
command " < prev  " "mpc prev"
command "|> toggle" "mpc toggle"
command "   top   " "xterm top"</code></pre>

<p><u>Avec Alt-Tab, je passe d'un groupe à l'autre rapidement</u></p>

<pre><code>bind-key M-Tab group-cycle
bind-key MS-Tab group-rcycle</code></pre>

<p><u>Tiling rapide</u><br>
Pour un arrangement rapide en mode "tiling" des fenêtres, j'utilise Alt-t ou Alt-Return comme dans dwm. M-S-t permet un arrangement vertical. Et ça, ça claque des fesses ! :D</p>

<pre><code>bind-key M-t window-vtile
bind-key M-Return window-vtile
bind-key MS-t window-htile
</code></pre>

<p><u>à la dwm</u><br>
Puisque je parle de dwm, j'utilise les mêmes raccourcis pour passer d'un groupe à l'autre et assigner les fenêtres à des groupes facilement. Si vous cherchez les noms des touches, tapes "xev" dans un terminal puis appuyez sur la touche, vous verrez alors son petit nom.</p>

<pre><code>bind-key M-ampersand        group-only-1
bind-key M-eacute           group-only-2
bind-key M-quotedbl         group-only-3
bind-key M-apostrophe       group-only-4
bind-key M-parenleft        group-only-5
bind-key M-minus            group-only-6
bind-key M-egrave           group-only-7
bind-key M-underscore       group-only-8
bind-key M-ccedilla         group-only-9
bind-key M-agrave           group-toggle-all

# Déplacer les fenêtres dans un groupe
bind-key MS-ampersand        window-movetogroup-1
bind-key MS-eacute           window-movetogroup-2
bind-key MS-quotedbl         window-movetogroup-3
bind-key MS-apostrophe       window-movetogroup-4
bind-key MS-parenleft        window-movetogroup-5
bind-key MS-minus            window-movetogroup-6
bind-key MS-egrave           window-movetogroup-7
bind-key MS-underscore       window-movetogroup-8
bind-key MS-ccedilla         window-movetogroup-9
</code></pre>

<p><b><u><span>Et tout autour?</span></u></b><br>
Si vous avez bien regardé la capture d'écran au début, vous avez peut-être remarqué une barre tout en haut et des couleurs "solarized". C'est la partie rigolote où je vous montre mes scripts :P</p>

<p><u>Le fond d'écran</u><br>
Le fond d'écran est chargé avec qiv au démarrage. En fait, ça tourne entre plusieurs fonds d'écran.<br>
Si vous voulez rester simple, vous pouvez mettre une couleur pleine avec xsetroot (pas besoin d'installer quoi que ce soit) :</p>

<pre><code>xsetroot -solid steelblue</code></pre>

<p><u>La barre</u><br>
La barre est un simple conky, dont la configuration est là : <a href="https://dev.yeuxdelibad.net/coolrepo/dotfiles/conkyrc">conkyrc</a>. Il m'affiche la chanson jouée dans mpd, le nombre de nouveaux mails dans mes boîtes et la date et l'heure.<br>
Mais ce n'est pas tout, tout à gauche, j'ai aussi les numéros des groupes utilisés par des fenêtres. Ça m'évite de les chercher, bien que je pourrais m'en passer.<br>
Pour ça, je fais appel au script suivant :</p>

<pre><code>#!/bin/sh

CURGROUP=$(xprop -root -notype _NET_CURRENT_DESKTOP | cut -d'=' -f2)

USEDGROUPS=$(
for ID in $(xprop -root -notype _NET_CLIENT_LIST | cut -d'#' -f 2); do
	#echo $(xprop -id "$ID" -notype _NET_WM_DESKTOP WM_NAME)
	echo $(xprop -id "$ID" -notype _NET_WM_DESKTOP |cut -d'=' -f 2)
done | sort -u
)

for G in $USEDGROUPS; do
	if [ $G -lt 10 ]; then
		if [ $G -eq $CURGROUP ]; then
			echo -n "\\${color3}$G\\${color} "
		else
			echo -n "$G "
		fi
	fi
done
</code></pre>

<p>Ce n'est plus très utile quand on tourne entre les groupes avec Alt-Tab comme configuré plus haut.</p>

<p><u>Le terminal</u><br>
J'ai décidé d'utiliser les outils livrés par défaut avec OpenBSD. Donc xterm au lieu de st. Ici, vous trouverez <a href="https://dev.yeuxdelibad.net/coolrepo/dotfiles/Xdefaults">le fichier de configuration pour les couleurs</a>, faire du copier/coller dans le terminal...<br>
Ce fichier doit être chargé au démarrage avec la commande</p>

<pre><code>xrdb -load ~/.Xdefaults</code></pre>

<p><u>Le démarrage de session</u><br>
Pour prendre en compte tous ces petits ajouts à chaque démarrage, modifiez le script ~/.xsession ainsi :</p>

<pre><code>
#!/bin/sh
.  ~/.profile
# Fond d'écran
# ou qiv -z /chemin/vers/fond/decran
xsetroot -solid steelblue &amp;
# Chargement des options pour xterm
xrdb -load ~/.Xdefaults &amp;
# Verouillage automatique avec xlock
xautolock -time 10 -locker xlock &amp;
conky &amp;

cwm
</code></pre>

<p>Les "&amp;" à la fin sont importants. Ajoutez dans ce fichier tous les outils que vous souhaitez lancer au démarrage de session.</p>

<p><u>Trouver une fenêtre parmi des centaines</u><br>
En général je n'ai pas plus de 5 ou 6 fenêtres ouvertes en même temps. Cela dit, si un jour de folie j'en ouvrais des tas, je pourrais facilement les retrouver avec le raccourci M-/. C'est pratique quand on se souvient à peu près de l'application que l'on veut ouvrir. Sauf que quand beaucoup de fenêtres sont ouvertes, on ne se souvient peut-être plus du nom de celle souhaitée. Après avoir appuyé sur M-/, vous pouvez toutes les afficher avec C-a.<br>
C'est chiant.<br>
À la place, j'ai fait un script à base de dmenu :</p>

<pre><code>#!/bin/sh
# script to choose a window from list
# only use 'xprop' coming with X server and xdotool

. ~/.dmenurc

P="Fenêtre:"
OPTION="$COLORS -l 10 -p $P "
W=$(
(for ID in $(xprop -root -notype _NET_CLIENT_LIST | cut -d'#' -f2); do
	echo $(xprop -id "$ID" -notype WM_NAME | cut -d'=' -f 2) "::"  $(xprop -id "$ID" -notype WM_CLASS | cut -d'"' -f2) "|"    $ID
done) | dmenu $OPTION | awk 'END {print $NF}')

if [ -n "$W" ]; then
	xdotool windowactivate $W
fi
exit 0</code></pre>

<div><img src="media/0df9182d.cwmfocus.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/1e/cwmfocus.png" alt=""></div>

<p><u>Et après ?</u><br>
Les <a href="https://tools.suckless.org/">outils suckless</a> sont très agréable à utiliser avec cwm si vous aimez la simplicité. Par exemple, je n'aime pas trop xlock que je remplace avec slock. Et sans dmenu, je serai perdu. Tous <a href="https://dev.yeuxdelibad.net/coolrepo/Scripts/dmenu/">ces scripts</a> sans doute pas très propres me rendent bien service ! :)<br>
Sinon, j'utilise des outils simples : mutt/fdm/msmtp pour les mails, Firefox pour la navigation (eh oui, <a href="http://surf.suckless.org/">surf</a> aurait bien besoin d'être mis à jour), pcmanfm, qiv...</p>

<p>Ce gestionnaire de fenêtres porte bien son nom : avec, je me sens plus caaaaalme :)<br>
Je suppose qu'un certain PengouinBSD va me tanner pour faire une page de wiki après cet article, et le pire, c'est qu'il a raison le bougre ;P</p>

<p>Si vous testez cwm, je serais ravi de voir vos astuces/idées/configurations en commentaies ;)</p>

<p>✌</p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/11/14/22/17/01-gestionnaire-de-fenetre-qui-aide-a-se-concentrer-cwm" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: http://feedproxy.google.com/~r/QuestCeQuonSeFaitCh/~3/ZWMEPQFn66E/
title: Littlewing : Installation de la Debian 9 sur un LENOVO Thinkcentre m700.
uri: Littlewing-Installation-de-la-Debian-9-sur-un-LENOVO-Thinkcentre-m70
url: http://feedproxy.google.com/~r/QuestCeQuonSeFaitCh/~3/ZWMEPQFn66E/
content:
<p>Après avoir eu une alerte sur mon <a href="http://blog.touret.info/blog/2017/03/17/installation-de-gnulinux-sur-un-lenovo-thinkcentre-m700/?utm_source=rss&amp;utm_medium=rss">PC équipé d’Ubuntu</a> que ma partition / était presque pleine, je me suis mis dans l’idée de redimensionner les partitions avec GPARTED.</p>
<p>Bon ça a échoué … Heureusement j’avais fait quelques backups :). Pour faire simple, j’ai tout réinstallé.<a href="http://blog.touret.info/wp-content/uploads/debian-logo.png?utm_source=rss&amp;utm_medium=rss"><img data-attachment-id="949" data-permalink="http://blog.touret.info/blog/2017/11/15/installation-de-la-debian-9-sur-un-lenovo-thinkcentre-m700/debian-logo/?utm_source=rss&amp;utm_medium=rss" data-orig-file="http://blog.touret.info/wp-content/uploads/debian-logo.png?utm_source=rss&amp;utm_medium=rss" data-orig-size="566,566" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="debian-logo" data-image-description="" data-medium-file="http://blog.touret.info/wp-content/uploads/debian-logo-300x300.png?utm_source=rss&amp;utm_medium=rss" data-large-file="http://blog.touret.info/wp-content/uploads/debian-logo.png?utm_source=rss&amp;utm_medium=rss" src="http://blog.touret.info/wp-content/uploads/debian-logo.png?utm_source=rss&amp;utm_medium=rss" alt="" width="189" height="189" srcset="http://blog.touret.info/wp-content/uploads/debian-logo.png?utm_source=rss&amp;utm_medium=rss 566w, http://blog.touret.info/wp-content/uploads/debian-logo-150x150.png?utm_source=rss&amp;utm_medium=rss 150w, http://blog.touret.info/wp-content/uploads/debian-logo-300x300.png?utm_source=rss&amp;utm_medium=rss 300w, http://blog.touret.info/wp-content/uploads/debian-logo-60x60.png?utm_source=rss&amp;utm_medium=rss 60w" sizes="(max-width: 189px) 100vw, 189px"></a><br>
J’en ai profité pour revenir à mes premières amours : Debian ! Je n’ai pas pu l’installer avant la version 9 car la version du noyau était trop ancienne pour l’architecture de mon PC LENOVO Thinkcentre m700.</p>
<p> </p>
<p>La procédure d’installation est décrite <a href="https://www.debian.org/releases/stable/i386/index.html.fr?utm_source=rss&amp;utm_medium=rss">ici</a>.</p>
<p><strong>Tout fonctionne bien ( <a href="http://blog.touret.info/blog/2017/03/17/installation-de-gnulinux-sur-un-lenovo-thinkcentre-m700/?utm_source=rss&amp;utm_medium=rss">carte son</a>, vidéo, réseau, …)</strong> . Pour le support du WIFI, il faut ajouter les firmwares propriétaires ( voir ci-dessous).</p>
<p>Voici ce que j’ai fait post installation :</p>
<h1>Localisation</h1>
<p>J’ai eu un problème. Le clavier était en QWERTY alors que j’ai bien spécifié AZERTY pendant l’installation.</p>
<p>La documentation Debian est disponible <a href="https://wiki.debian.org/fr/Keyboard?utm_source=rss&amp;utm_medium=rss">ici</a>.</p>
<p>Voila ce que j’ai fait</p>
<div> <pre data-start="1" data-line-offset="0"><code># apt-get install console-data
# loadkeys fr-pc
# dpkg-reconfigure console-data
# dpkg-reconfigure keyboard-configuration
# service keyboard-setup restart
# udevadm trigger --subsystem-match=input --action=change</code></pre> <div> </div> </div>
<h1>Divers</h1>
<p>Voici une liste de paquets / logiciels que j’installe régulièrement:</p>
<div> <pre data-start="1" data-line-offset="0"><code># apt-get install ttf-mscorefonts-installer easytag tuxguitar-jsa htop frescobaldi gparted grsync ntfs-config chromium autofs openjdk-8-jdk openjdk-8-jre</code></pre> <div> </div> </div>
<h1>Lilypond</h1>
<p><a href="https://linuxfr.org/forums/linux-debian-ubuntu/posts/debian-9-et-lilypond?utm_source=rss&amp;utm_medium=rss">Lilypond n’est pas dans Stretch</a>. J’ai donc utilisé <a href="http://lilypond.org/unix.html?utm_source=rss&amp;utm_medium=rss">l’installeur pour l’installer</a>.</p>
<div> <pre data-start="1" data-line-offset="0"><code># sh lilypond-2.18.2-1.linux-64.sh</code></pre> <div> </div> </div>
<h1>Spotify</h1>
<p>Il faut télécharger au préalable <a href="https://packages.debian.org/jessie/amd64/libssl1.0.0/download?utm_source=rss&amp;utm_medium=rss">le package libssl1 et l’installer.</a></p>
<div> <pre data-start="1" data-line-offset="0"><code># dpkg -i libssl1.0.0_1.0.1t-1+deb8u7_amd64.deb</code></pre> <div> </div> </div>
<p>Et lancer les commandes :</p>
<div> <pre data-start="1" data-line-offset="0"><code># echo deb http://repository.spotify.com?utm_source=rss&amp;utm_medium=rss stable non-free | tee /etc/apt/sources.list.d/spotify.list
# apt-get update
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
# apt-get update
# apt-get install spotify-client</code></pre> <div> </div> </div>
<h1>Atom</h1>
<p>J’ai téléchargé le paquet depuis le site d’atom et lancé la commande</p>
<div> <pre data-start="1" data-line-offset="0"><code># dpkg -i atom.deb</code></pre> <div> </div> </div>
<h1>Firefox 57</h1>
<p>Les dernières versions de firefox ne sont pas dans <a href="https://mozilla.debian.net/?utm_source=rss&amp;utm_medium=rss">le repository alternatif</a></p>
<div> <pre data-start="1" data-line-offset="0"><code># cp ~/Téléchargements/firefox-57.0.tar.bz2 /usr/local
# cd /usr/local
# tar -jxf firefox-57.0.tar.bz2
# ls
# rm firefox-57.0.tar.bz2
# chown -R :users firefox
# chmod a+x firefox/firefox
# mv /usr/lib/firefox-esr/firefox-esr /usr/lib/firefox-esr/firefox-esr_orig
# ln -s /usr/local/firefox/firefox /usr/lib/firefox-esr/firefox-esr</code></pre> <div> </div> </div>
<h1>Droits utilisateur</h1>
<p>J’ai ajouté les droits cdrom floppy users bluetooth à tous les utilisateurs</p>
<h1>Autofs</h1>
<p>J’utilise <a href="https://wiki.debian.org/AutoFs?utm_source=rss&amp;utm_medium=rss">autofs </a>pour les connexions nfs et cifs. La documentation <a href="http://blog.touret.info/blog/2013/06/25/20130625parametrage-d-autofs-sur-debian-wheezy-2/?utm_source=rss&amp;utm_medium=rss">est décrite dans cet article</a>.</p>
<h1>Firmware WIFI</h1>
<p>Pour faire fonctionner le wifi. Il faut ajouter les firmwares non libre ( il faut ajouter le repo non-free).</p>
<div> <pre data-start="1" data-line-offset="0"><code># apt-get install firmware-iwlwifi</code></pre> <div> </div> </div>
<h1>VirtualBox</h1>
<p> </p>
<div> <pre data-start="1" data-line-offset="0"><code># vi /etc/apt/sources.list.d/virtualbox.list</code></pre> <div> </div> </div>
<p>Ajout du repository</p>
<div> <pre data-start="1" data-line-offset="0"><code>deb http://download.virtualbox.org/virtualbox/debian?utm_source=rss&amp;utm_medium=rss stretch contrib</code></pre> <div> </div> </div>
<p>Et lancer les commandes</p>
<div> <pre data-start="1" data-line-offset="0"><code># wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc?utm_source=rss&amp;utm_medium=rss -O- | apt-key add -
# apt-get udpate
# apt-get install virtualbox-5.2</code></pre> <div> </div> </div>
<p> </p>
<img src="http://feeds.feedburner.com/~r/QuestCeQuonSeFaitCh/~4/ZWMEPQFn66E" height="1" width="1" alt="">
<p><img src="media/1f2fb0ec.e9cfa2c2c1ea2abd510c6053457286f0" data-original-source="http://cdn.libravatar.org/avatar/e9cfa2c2c1ea2abd510c6053457286f0" alt="Gravatar de Littlewing" class="gravatar" /><br/><i>Original post of <a href="http://feedproxy.google.com/~r/QuestCeQuonSeFaitCh/~3/ZWMEPQFn66E/" title="Visit the source">Littlewing</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Littlewing : <a href="">Installation d&rsquo;un disque SSD sur mon PC &eacute;quip&eacute; de Debian Jessie</a> (13/01/2016)</li><li>Littlewing : <a href="">Installation de GNU/LINUX sur un lenovo thinkcentre m700</a> (17/03/2017)</li><li>J&eacute;r&eacute;my Verda : <a href="">Installation d&rsquo;une Debian sur l&rsquo;EeePC 1005HA-H</a> (14/11/2009)</li><li>Littlewing : <a href="">Installation minimale d&#039;une debian pour h&eacute;berger un syst&egrave;me de fichier hadoop</a> (14/06/2012)</li><li>Littlewing : <a href="">Installation du driver propri&eacute;taire nvidia sur une debian wheezy</a> (27/06/2013)</li></ul></div></p>


title: Thuban : Gestionnaire de fenêtres qui aide à se concentrer : cwm
uri: Thuban-Gestionnaire-de-fenêtres-qui-aide-à-se-concentrer-cwm
feed_id:
https://yeuxdelibad.net/Blog/?d=2017/11/14/22/17/01-gestionnaire-de-fenetres-qui-aide-a-se-concentrer-cwm

url:
https://yeuxdelibad.net/Blog/?d=2017/11/14/22/17/01-gestionnaire-de-fenetres-qui-aide-a-se-concentrer-cwm

content:
<p>Fervent utilisateur de <a href="http://dwm.suckless.org/">dwm</a> depuis longtemps, j'ai toujours eu du mal à passer à autre chose. Les habitudes sont ancrées, tout est à portée de main, c'est simple... C'est une retrouvaille avec un vieux copain du forum debian-fr sur <a href="https://obsd4a.net/">obsd4a</a> (coucou eol ;) ) qui m'a donné envie de consacrer un peu de temps à un gestionnaire inclus par défaut dans OpenBSD : <b>calm window manager</b> ou <b>cwm</b>.<br>
Il me semble qu'il s'agit là d'une belle réussite très bien pensée. L'équilibre entre fonctionnalités, ergonomie et part de configuration laissée à l'utilisateur est trouvé. Pour ma part, ça m'aide à être efficace et plus concentré.</p>

<div><img src="media/02bfe2a8.cwm.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/b6/cwm.png" alt=""></div>

<p>Par contre, on ne va pas se mentir, quand on vient de gnome, ça peut être déroutant au début. Cela dit, si ça vous tente, je vous propose de faire un petit tour de ce gestionnaire de fenêtre (disponible aussi sur les distributions GNU/Linux) pour découvrir sa façon d'être. On tentera d'utiliser autant que possible les composants livrés avec OpenBSD par défaut.</p>

<p><b><u><span>Découverte et configuration</span></u></b></p>

<p>Sous OpenBSD, pour lancer une session cwm, je n'ai qu'à mettre dans le fichier ~/.xsession la ligne suivante :</p>

<pre><code>cwm</code></pre>

<p>Une fois la session démarrée, vous avez devant vous un écran tout gris. Beurk. C'est normal cela dit, puisque ce n'est pas au gestionnaire de fenêtres de gérer le fond d'écran. On va y remédier, ne vous en faîtes pas.</p>

<p>Tout d'abord, on va ouvrir un terminal. Pour ça, deux choix s'offrent à vous :</p>

<ul><li> Ctrl-Alt-Entrée : pouf, xterm s'ouvre.</li>
<li> Alt-? : un menu pour écrire la commande s'affiche, vous pouvez alors écrire le nom de votre terminal favori.</li></ul><p>Pour déplacer la fenêtre, un glisser-déposer avec la souris tout en appuyant sur Alt fera votre bonheur.<br>
Pour redimensionner la fenêtre, là aussi plusieurs possibilités :</p>

<ul><li> Ctrl-Alt-m : maximise la fenêtre</li>
<li> Ctrl-Alt-Shift-[hjkl] : selon la lettre choisie, vous redimensionnez la fenêtre</li>
<li> Alt-clic milieu : redimensionnement par glissé déposer.</li></ul><p>Pour fermer une fenêtre, appuyez sur Ctrl-Alt-x.</p>

<p>Pour changer de fenêtre, vous avez toujours Alt-Tab, ou bien vous cliquez sur le bureau pour avoir un menu de sélection de fenêtre. On ne s'encombre pas avec une barre d'état, on reste concentré sur son travail :) Vous pouvez aussi appuyer sur Ctrl-/ puis taper le nom de la fenêtre. Si vous ne vous souvenez plus de son nom, appuyez sur Ctrl-a.</p>

<p>Ça semble faire beaucoup de raccourcis, mais ils ont tous une certaine logique et on s'y retrouve vite. Si vous n'aimez pas les raccourcis clavier, sachez que :</p>

<ul><li> Un clic-gauche sur le bureau fait apparaître la liste des fenêtres</li>
<li> Un clic-droit fait apparaitre la liste des applications définies dans la configuration (vide par défaut)</li>
<li> Un clic-milieu fait apparaître la liste des groupes.</li></ul><p>Dans la suite, j'écrirai "C" pour "Ctrl", "M" pour "Alt", "S" pour "Shift" et "4" pour la touche "Super" ou "Windows" qui ne sert à rien habituellement. Ces lettres sont celles utilisées dans la configuration.</p>

<p>Une des particularités de cwm est de permettre de :</p>

<ul><li> Pouvoir étiqueter une fenêtre (ajout d'un label) afin de la retrouver facilement ensuite (Ctrl-Alt-n).</li>
<li> Placer les fenêtres dans des groupes. Ça ressemble aux espaces de travail auxquels vous êtes habitués, ainsi qu'aux tag de dwm.</li></ul><p>À partir de ce moment-là, vous voudrez certainement éditer le fichier de configuration ~/.cwmrc afin d'y régler 2-3 choses.<br>
Si vous souhaitez savoir ce que vous pouvez configurer, les pages "man cwm" et "man cwmrc" vous en diront plus.</p>

<p>Via ce lien, vous trouverez <a href="https://dev.yeuxdelibad.net/coolrepo/dotfiles/cwmrc">mon fichier de configuration</a> si vous voulez regarder ce qui est possible. Rien de très étonnant dans ce que j'ai mis hein.<br>
J'attire juste votre attention sur les éléments de configuration suivants :</p>

<p><u>Menu clic-droit</u></p>

<pre><code>command "   Web   " firefox
command "   Mail  " 'xterm -class "mutt" -fa "Hack:size=10:antialias=true" mutt'
command "  Files  " pcmanfm
command " > next  " "mpc next"
command " < prev  " "mpc prev"
command "|> toggle" "mpc toggle"
command "   top   " "xterm top"</code></pre>

<p><u>Avec Alt-Tab, je passe d'un groupe à l'autre rapidement</u></p>

<pre><code>bind-key M-Tab group-cycle
bind-key MS-Tab group-rcycle</code></pre>

<p><u>Tiling rapide</u><br>
Pour un arrangement rapide en mode "tiling" des fenêtres, j'utilise Alt-t ou Alt-Return comme dans dwm. M-S-t permet un arrangement vertical. Et ça, ça claque des fesses ! :D</p>

<pre><code>bind-key M-t window-vtile
bind-key M-Return window-vtile
bind-key MS-t window-htile
</code></pre>

<p><u>à la dwm</u><br>
Puisque je parle de dwm, j'utilise les mêmes raccourcis pour passer d'un groupe à l'autre et assigner les fenêtres à des groupes facilement. Si vous cherchez les noms des touches, tapes "xev" dans un terminal puis appuyez sur la touche, vous verrez alors son petit nom.</p>

<pre><code>bind-key M-ampersand        group-only-1
bind-key M-eacute           group-only-2
bind-key M-quotedbl         group-only-3
bind-key M-apostrophe       group-only-4
bind-key M-parenleft        group-only-5
bind-key M-minus            group-only-6
bind-key M-egrave           group-only-7
bind-key M-underscore       group-only-8
bind-key M-ccedilla         group-only-9
bind-key M-agrave           group-toggle-all

# Déplacer les fenêtres dans un groupe
bind-key MS-ampersand        window-movetogroup-1
bind-key MS-eacute           window-movetogroup-2
bind-key MS-quotedbl         window-movetogroup-3
bind-key MS-apostrophe       window-movetogroup-4
bind-key MS-parenleft        window-movetogroup-5
bind-key MS-minus            window-movetogroup-6
bind-key MS-egrave           window-movetogroup-7
bind-key MS-underscore       window-movetogroup-8
bind-key MS-ccedilla         window-movetogroup-9
</code></pre>

<p><b><u><span>Et tout autour?</span></u></b><br>
Si vous avez bien regardé la capture d'écran au début, vous avez peut-être remarqué une barre tout en haut et des couleurs "solarized". C'est la partie rigolote où je vous montre mes scripts :P</p>

<p><u>Le fond d'écran</u><br>
Le fond d'écran est chargé avec qiv au démarrage. En fait, ça tourne entre plusieurs fonds d'écran.<br>
Si vous voulez rester simple, vous pouvez mettre une couleur pleine avec xsetroot (pas besoin d'installer quoi que ce soit) :</p>

<pre><code>xsetroot -solid steelblue</code></pre>

<p><u>La barre</u><br>
La barre est un simple conky, dont la configuration est là : <a href="https://dev.yeuxdelibad.net/coolrepo/dotfiles/conkyrc">conkyrc</a>. Il m'affiche la chanson jouée dans mpd, le nombre de nouveaux mails dans mes boîtes et la date et l'heure.<br>
Mais ce n'est pas tout, tout à gauche, j'ai aussi les numéros des groupes utilisés par des fenêtres. Ça m'évite de les chercher, bien que je pourrais m'en passer.<br>
Pour ça, je fais appel au script suivant :</p>

<pre><code>#!/bin/sh

CURGROUP=$(xprop -root -notype _NET_CURRENT_DESKTOP | cut -d'=' -f2)

USEDGROUPS=$(
for ID in $(xprop -root -notype _NET_CLIENT_LIST | cut -d'#' -f 2); do
	#echo $(xprop -id "$ID" -notype _NET_WM_DESKTOP WM_NAME)
	echo $(xprop -id "$ID" -notype _NET_WM_DESKTOP |cut -d'=' -f 2)
done | sort -u
)

for G in $USEDGROUPS; do
	if [ $G -lt 10 ]; then
		if [ $G -eq $CURGROUP ]; then
			echo -n "\\${color3}$G\\${color} "
		else
			echo -n "$G "
		fi
	fi
done
</code></pre>

<p>Ce n'est plus très utile quand on tourne entre les groupes avec Alt-Tab comme configuré plus haut.</p>

<p><u>Le terminal</u><br>
J'ai décidé d'utiliser les outils livrés par défaut avec OpenBSD. Donc xterm au lieu de st. Ici, vous trouverez <a href="https://dev.yeuxdelibad.net/coolrepo/dotfiles/Xdefaults">le fichier de configuration pour les couleurs</a>, faire du copier/coller dans le terminal...<br>
Ce fichier doit être chargé au démarrage avec la commande</p>

<pre><code>xrdb -load ~/.Xdefaults</code></pre>

<p><u>Le démarrage de session</u><br>
Pour prendre en compte tous ces petits ajouts à chaque démarrage, modifiez le script ~/.xsession ainsi :</p>

<pre><code>
#!/bin/sh
.  ~/.profile
# Fond d'écran
# ou qiv -z /chemin/vers/fond/decran
xsetroot -solid steelblue &amp;
# Chargement des options pour xterm
xrdb -load ~/.Xdefaults &amp;
# Verouillage automatique avec xlock
xautolock -time 10 -locker xlock &amp;
conky &amp;

cwm
</code></pre>

<p>Les "&amp;" à la fin sont importants. Ajoutez dans ce fichier tous les outils que vous souhaitez lancer au démarrage de session.</p>

<p><u>Trouver une fenêtre parmi des centaines</u><br>
En général je n'ai pas plus de 5 ou 6 fenêtres ouvertes en même temps. Cela dit, si un jour de folie j'en ouvrais des tas, je pourrais facilement les retrouver avec le raccourci M-/. C'est pratique quand on se souvient à peu près de l'application que l'on veut ouvrir. Sauf que quand beaucoup de fenêtres sont ouvertes, on ne se souvient peut-être plus du nom de celle souhaitée. Après avoir appuyé sur M-/, vous pouvez toutes les afficher avec C-a.<br>
C'est chiant.<br>
À la place, j'ai fait un script à base de dmenu :</p>

<pre><code>#!/bin/sh
# script to choose a window from list
# only use 'xprop' coming with X server and xdotool

. ~/.dmenurc

P="Fenêtre:"
OPTION="$COLORS -l 10 -p $P "
W=$(
(for ID in $(xprop -root -notype _NET_CLIENT_LIST | cut -d'#' -f2); do
	echo $(xprop -id "$ID" -notype WM_NAME | cut -d'=' -f 2) "::"  $(xprop -id "$ID" -notype WM_CLASS | cut -d'"' -f2) "|"    $ID
done) | dmenu $OPTION | awk 'END {print $NF}')

if [ -n "$W" ]; then
	xdotool windowactivate $W
fi
exit 0</code></pre>

<div><img src="media/0df9182d.cwmfocus.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/1e/cwmfocus.png" alt=""></div>

<p><u>Et après ?</u><br>
Les <a href="https://tools.suckless.org/">outils suckless</a> sont très agréable à utiliser avec cwm si vous aimez la simplicité. Par exemple, je n'aime pas trop xlock que je remplace avec slock. Et sans dmenu, je serai perdu. Tous <a href="https://dev.yeuxdelibad.net/coolrepo/Scripts/dmenu/">ces scripts</a> sans doute pas très propres me rendent bien service ! :)<br>
Sinon, j'utilise des outils simples : mutt/fdm/msmtp pour les mails, Firefox pour la navigation (eh oui, <a href="http://surf.suckless.org/">surf</a> aurait bien besoin d'être mis à jour), pcmanfm, qiv...</p>

<p>Ce gestionnaire de fenêtres porte bien son nom : avec, je me sens plus caaaaalme :)<br>
Je suppose qu'un certain PengouinBSD va me tanner pour faire une page de wiki après cet article, et le pire, c'est qu'il a raison le bougre ;P</p>

<p>Si vous testez cwm, je serais ravi de voir vos astuces/idées/configurations en commentaies ;)</p>

<p>✌</p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/11/14/22/17/01-gestionnaire-de-fenetres-qui-aide-a-se-concentrer-cwm" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Thuban : <a href="">Gestionnaire de fen&ecirc;tre qui aide &agrave; se concentrer : cwm</a> (15/11/2017)</li></ul></div></p>


feed_id: https://blog.genma.fr/?Yunohost-Pourquoi-les-ports-80-et-25-sont-ils-toujours-utilises
title: genma : Yunohost - Pourquoi les ports 80 et 25 sont ils toujours utilisés ?
uri: genma-Yunohost-Pourquoi-les-ports-80-et-25-sont-ils-toujours-utili
url: https://blog.genma.fr/?Yunohost-Pourquoi-les-ports-80-et-25-sont-ils-toujours-utilises
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2706.jpg?1510662676" width="150" height="79"><div><p>Telle est la question que l'on trouve, <a href="https://forum.yunohost.org/t/why-are-port-25-and-80-still-used-in-yunohost/3792/" title="Forum YunoHost - Why are port 25 and 80 still used in Yunohost?">en anglais, sur le forum de YunoHost</a>.</p>
<p>La question est légitime car ces deux ports, ne présentent pas, par défaut, de connexion sécurisé. Pour avoir une connexion avec du chiffrement, il faudra passer par une connexion en httpS (et le port 443), ou en ImapS (et le port 993).</p>
<p>Une explication est donnée en anglais, par ljf, Groupe Core Dev (développeur du projet). Je la cite et je la traduit ci-dessous, la diffusion de l'information en langue française pouvant être utile au non anglophone.</p>
<p><i>Port 25 is necessary to send email to other unsecured smtp (if we close this port, some mails couldn't be delivered.</i></p>
<p><i><br>
Port 80 is needed by let's encrypt for the ACME challenge, by some YunoHost setup without internet connexion ( in Africa or Asia) which users need to be able to access page without warning, by some website which users are under the "TLS intermediate config" (not so old android device, XP...). In general application packagers make choice or not to redirect port 80 to HTTPS. Sometime just one part of the app (web administration) force https.</i></p>
<p><i>A new settings system has been introduce to be able to let more option to the yunohost administrator, but for now, there are no settings developped to let the admin to be able to configure it.</i></p>
<p><strong>Traduction libre</strong></p>
<p>Le port 25 est nécessaire pour envoyer un courriel à d'autres serveurs smtp qui eux ne sont pas sécurisés (si ce port est fermé, cela aura pour conséquence que certains mails ne puissent être livrés.</p>
<p>Le port 80 est nécessaire pour le challenge ACME de Let's Encrypt, et pour des cas d'installation YunoHost sans connexion internet (en Afrique ou en Asie) pour lesquelles les utilisateurs ont besoin d'accéder à la page de connexion sans avoir un avertissement, pour des mises à dispositions d'applications pour des utilisateurs qui n'ont pas accès au niveau de configuration nécessaire pour une connexion TLS (vieux appareil Android, XP ...). En général, les packageurs d'applications choisissent ou non de rediriger le port 80 vers HTTPS. Par défaut, une seule partie de l'application YunoHost (la partie administration Web) force une redirection vers https.</p>
<p>Un nouveau système de paramétrage a été introduit pour être en mesure de laisser plus de latitude à un administrateur yunohost, mais pour l'instant, il n'y a pas d'interface de développer permettant à l'administrateur d'être en mesure de le configurer.</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Yunohost-Pourquoi-les-ports-80-et-25-sont-ils-toujours-utilises" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://blog.remirepo.net/post/2017/11/17/Fedora-27-Changements-dans-httpd-et-php
title: Remi Collet : Fedora 27: changements dans httpd et php
uri: Remi-Collet-Fedora-27-changements-dans-httpd-et-php
url: https://blog.remirepo.net/post/2017/11/17/Fedora-27-Changements-dans-httpd-et-php
content:
<p>La configuration du serveur HTTP Apache et de PHP a été modifiée dans <strong>Fedora 27</strong>, voici quelques explications.</p>    <h2>1. Bascule du serveur HTTP en mode <em>event</em></h2>

<p>Depuis l'origine de la distribution, le serveur utilise le <a href="http://httpd.apache.org/docs/2.4/mpm.html">MPM</a> <em>prefork</em>.</p>

<p>Pour des raisons évidentes de performance, il a été décidé de suivre les recommandations du projet et d'utiliser <em>event</em> par défaut.</p>

<p>Ce changement est aussi nécessaire pour bénéficier du support complet du protocole <a href="https://en.wikipedia.org/wiki/HTTP/2">HTTP/2</a> via <a href="http://httpd.apache.org/docs/2.4/mod/mod_http2.html">mod_http2</a>.</p>

<h2>2. Le problème de mod_php</h2>

<p>Le module <em>mod_php</em> est uniquement supporté quand le MPM <em>prefork</em> est utilisé.</p>

<p>Dans la <a href="http://php.net/manual/fr/install.unix.apache2.php">documentation PHP</a> on peut lire :</p>

<blockquote>
<p><strong>Avertissement</strong><strong> : </strong>Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2.</p>
</blockquote>

<p>Et effectivement, quelques rapports de bugs signalent des plantages dans cette configuration.</p>

<p>Il n'était donc pas raisonnable de conserver <em>mod_php</em> par défaut.</p>

<p>De plus ce module a d'autres limitations ennuyeuses :</p>

<ul><li>intégré au serveur web, il partage son espace mémoire, pouvant entrainer des problèmes de sécurité</li>
	<li>une seule version peut être chargée</li>
</ul><h2>3. Utilisation de FastCGI</h2>

<p>Depuis plusieurs années nous avons travaillé à rendre l'exécution de PHP aussi flexible que possible, dans différentes configurations, fonctionnant sans changement de configuration :</p>

<ul><li>httpd + mod_php</li>
	<li>httpd + php-fpm (lorsque mod_php est désactivé ou absent et que le serveur php-fpm fonctionne)</li>
	<li>nginx + php-fpm</li>
</ul><p>L'utilisation de <a href="http://php.net/fpm">FPM</a> est devenu la configuration par défaut recommandée pour une exécution propre de PHP :</p>

<ul><li>support de multiples serveurs web (apache httpd, nginx, lighttpd)</li>
	<li>isolation du frontal pour la sécurité</li>
	<li>dorsaux multiples</li>
	<li>architecture micro-services</li>
	<li>fonctionnement en container (docker)</li>
	<li>multiples versions de PHP</li>
</ul><h2>4. FPM par défaut</h2>

<p>Depuis <strong>Fedora 27</strong>, <em>mod_php</em> ZTS (multi-thread) est toujours fournit, mais n'est plus activé, c'est donc FastCGI qui sera utilisé par défaut.</p>

<p>Pour ne pas casser les configurations existantes lors de la mise à jour, ou obtenir un serveur opérationnel dès l'installation, nous avons choisi de mettre en place quelques solutions, probablement de manière temporaire</p>

<ul><li>Le paquet <strong>php</strong> a une dépendance optionnelle sur <strong>php-fpm</strong> qui permet son installation par défaut</li>
	<li>le service <strong>httpd</strong> a une dépendance sur le service <strong>php-fpm</strong> qui permet son démarrage automatique</li>
</ul><h2>5. Problèmes connus</h2>

<h3>5.1. Modification de la configuration</h3>

<p>Lors d'une modification de la configuration, ou de l'installation d'une nouvelle extension il est désormais nécessaire de redémarrer le service <strong>php-fpm</strong>.</p>

<h3>5.2. Fichiers de configuration</h3>

<p>Avec <em>mod_php</em>, il est habituel d'utiliser les directives <em>php_value</em> ou <em>php_flag</em> dans la configuration du serveur Apache ou dans un fichier <em>.htaccess</em>.</p>

<p>Il est désormais nécessaire soit d'utiliser les directives <em>php_value</em> ou <em>php_flag</em> dans la configuration de du pool FPM, soit d'utiliser un fichier <em><a href="http://php.net/manual/fr/configuration.file.per-user.php">.user.ini</a></em> dans le dossier de l'application.</p>

<h2>6. Revenir sur mod_php</h2>

<p>Si vraiment vous souhaitez rester (temporairement) sur <em>mod_php</em>, cela reste possible :</p>

<ul><li>Revenir en MPM <em>prefork</em> dans le fichier /etc/httpd/conf.modules.d/00-mpm.conf.</li>
</ul><pre>
 LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
 #LoadModule mpm_worker_module modules/mod_mpm_worker.so
 #LoadModule mpm_event_module modules/mod_mpm_event.so
</pre>

<ul><li>Activer le chargement du module dans le fichier /etc/httpd/conf.modules.d/15-php.conf. <strong>Attention</strong>, les rapports de bug dans cette configuration ne seront pas acceptés.</li>
</ul><pre>
 # ZTS module is not supported, so FPM is preferred
 LoadModule php7_module modules/libphp7-zts.so</pre>

<p>Dans ce cas, le paquet php-fpm pourra être désinstallé.</p>

<h2>7. Conclusion</h2>

<p><strong>Fedora 27</strong> utilise désormais une configuration moderne et conforme aux recommandations des projets. La sécurité et les performances sont améliorées.</p>

<p>Tout changement provoque inévitablement quelques petits problèmes et quelques grincement de dents, mais nous essaierons de prendre en compte les difficultés et d'améliorer ce qui doit l'être dans les prochaines mises à jour et dans les prochaines versions de Fedora.</p>

<p>Je prévois de mettre à jour ce billet en fonction des retours.</p>
<p><img src="media/3d2d1a35.2665280f5ed66efe5e772da3f0403a2c" data-original-source="http://cdn.libravatar.org/avatar/2665280f5ed66efe5e772da3f0403a2c" alt="Gravatar de Remi Collet" class="gravatar" /><br/><i>Original post of <a href="https://blog.remirepo.net/post/2017/11/17/Fedora-27-Changements-dans-httpd-et-php" title="Visit the source">Remi Collet</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Remi Collet : <a href="">PHP Tour 2016 Clermont-Ferrand</a> (27/05/2016)</li><li>Remi Collet : <a href="">PHP version 7.0 dans Fedora 25</a> (28/06/2016)</li><li>Slobberbone : <a href="">Les plan&egrave;tes su Syst&egrave;me Libre</a> (17/08/2011)</li><li>MERCIER Jonathan : <a href="">D&eacute;ployer Dotclear sur votre Fedora</a> (04/08/2012)</li><li>Remi Collet : <a href="">Apache httpd server 2.4.10 et PHP-FPM 5.6 dans Fedora 21</a> (01/08/2014)</li></ul></div></p>


feed_id: http://yeknan.free.fr/dc2/index.php?post/2017/11/17/GNU-nano
title: yeKcim : GNU nano
uri: yeKcim-GNU-nano
url: http://yeknan.free.fr/dc2/index.php?post/2017/11/17/GNU-nano
content:
<p><a href="https://www.nano-editor.org/">nano</a> est un éditeur de texte ncurses facile à prendre en main (les raccourcis les plus utiles sont affichés), il fait moins peur que <a href="http://www.vim.org/" title="WTF! Ce site est ULTRA laid !">vim</a> ou <a href="https://www.gnu.org/software/emacs/">emacs</a> lorsque l’on débute. Ces derniers sont puissants et très pratiques une fois configurés et/ou pris en main. Mais il arrive que l’on soit sur une machine qui n’a pas emacs, qui n’a pas notre config de vim,… il est alors très intéressant de connaître la base de nano. Voici les raccourcis dont j’ai personnellement besoin.</p>


<h2>Raccourcis</h2>


<h3>Base</h3>
<ul><li><strong>F1</strong> pour afficher l’aide</li>
<li><strong>ctrl+x</strong> Quitter</li>
<li><strong>ctrl+o</strong> Enregistrer</li>
<li><strong>ctrl+k</strong> Couper la ligne courante vers le presse-papiers</li>
<li><strong>alt+t</strong> Couper tout ce qui est après le curseur (jusqu’à la fin du document)</li>
<li><strong>alt+6</strong> Copier la ligne courante dans le presse-papiers (penser à maintenir maj). Ce raccourci étant innaccessibe, ma config ajoute <strong>alt+'</strong> pour copier</li>
<li><strong>ctrl+u</strong> Coller le presse-papiers</li>
<li><strong>alt+u</strong> Annuler la dernière opération</li>
<li><strong>alt+e</strong> Refaire la dernière opération annulée</li>
</ul><h3>Recherche</h3>
<ul><li><strong>ctrl+w</strong> Rechercher une chaîne ou une expression rationnelle</li>
<li><strong>alt+w</strong> Recommencer la dernière recherche</li>
<li><strong>alt+↑</strong> / <strong>alt+↓</strong> Rechercher la prochaine occurrence en avant/arrière</li>
<li><strong>alt+r</strong> Remplacer une chaîne ou une expression rationnelle</li>
<li><strong>alt+g</strong> Aller à la ligne et à la colonne indiquées</li>
</ul><h3>Navigation</h3>
<ul><li><strong>alt+]</strong> Aller à ([{ correspondant</li>
<li><strong>ctrl+espace</strong> ⇔ ctrl+→</li>
<li><strong>alt+espace</strong> ⇔ ctrl+←</li>
<li><strong>ctrl+a</strong> ⇔ home</li>
<li><strong>ctrl+e</strong> ⇔ end</li>
<li><strong> alt+\\ </strong> ⇔ ctrl+home</li>
<li><strong>alt+/</strong> ⇔ ctrl+end</li>
<li><strong>ctrl+y</strong> Monter d'un écran</li>
<li><strong>ctrl+v</strong> Descendre d'un écran</li>
<li><strong>alt+(</strong> Aller au début du paragraphe</li>
<li><strong>alt+)</strong> Aller à la fin du paragraphe</li>
</ul><h3>Utile</h3>
<ul><li><strong>alt+a</strong> Marquer le texte depuis la position du curseur (maj+←↑→↓ fonctionne aussi directement)</li>
<li><strong>alt+3</strong> Commenter/décommenter la ligne courante ou les lignes marquées (penser à maintenir maj). Ce raccourci étant innaccessibe, ma config ajoute <strong>alt+*</strong> pour commenter</li>
<li><strong>ctrl+c</strong> Indiquer la position du curseur</li>
<li><strong>alt+d</strong> Statistiques du document</li>
<li><strong>alt+→</strong> / <strong>alt+←</strong> Passer d’un fichier à l’autre (si plusieurs fichiers ouverts)</li>
<li><strong>alt+b</strong> Sauvegarde automatique (on/off)</li>
</ul><h3>Indentation</h3>
<ul><li><strong>alt+}</strong> / <strong>alt+{</strong> Indenter/Désindenter la ligne courante ou les lignes marquées</li>
<li><strong>alt+i</strong> Activer/Désactiver l’indentation automatique</li>
<li><strong>alt+q</strong> La touche tabulation ajoute des espaces au lieu de \\t (on/off)</li>
</ul><h3>Interface</h3>
<ul><li><strong>alt+h</strong> Activer/Désactiver la Touche « Début » intelligente</li>
<li><strong>alt+o</strong> Utiliser 1 ligne de plus pour l'édition (commutateur)</li>
<li><strong>alt+s</strong> Défilement progressif/par bloc</li>
<li><strong>ctrl+alt+$</strong> Affichage automatique sur plusieurs lignes (on/off)</li>
<li><strong>ctrl+alt+#</strong> Afficher/Cacher les numéros de lignes</li>
<li><strong>alt+x</strong> Afficher/Cacher les raccourcis principaux</li>
<li><strong>alt+c</strong> Afficher/Cacher la position du curseur</li>
</ul><h3>Texte</h3>
<ul><li><strong>alt+p</strong> Afficher/Cacher les blancs (espace, tabulation)</li>
<li><strong>alt+y</strong> Activer/Désactiver la coloration syntaxique</li>
</ul><h2>Configuration</h2>


<p>Sur un nano non configuré, il me "suffit" alors de faire : <strong>alt+h</strong>, <strong>alt+i</strong>, <strong>alt+s</strong>, <strong>ctrl+alt+$</strong> pour obtenir la configuration qui me convient. Pour activer cela directement, mon fichier de configuration <em>~/.nanorc</em> (généré à partir d’un
<em>cp /etc/nanorc ~/.nanorc</em>) :</p>

<pre>
set smarthome                 # équivaut à alt+h
# set morespace                 # équivaut à alt+o
set autoindent                # équivaut à alt+i
set smooth                    # équivaut à alt+s
set softwrap                  # équivaut à ctrl+alt+$
# set casesensitive             # recherche sensible à la casse quel raccourci clavier ?
# set linenumbers               # équivaut à ctrl+alt+#
set matchbrackets "(<[{)>]}"  # plus d’utilités pour alt+]
set tabsize 4                 # tabulation de 4 au lieu de 8
set tabstospaces              # espaces au lieu de tabulation

bind ^S savefile main         # ctrl+s sauvegarde
bind M-B cutwordleft main     # alt+b supprime le mot précédent le curseur
bind M-N cutwordright main    # alt+n supprime le mot suivant le curseur
bind ^Q exit main             # ctrl+q quitte
bind M-* comment main         # les alt+num ne sont pas pratiques alt+* pour commenter
bind M-' copytext main       # les alt+num ne sont pas pratiques alt+' pour copier

## To include all existing syntax definitions, you can do:
include "/usr/share/nano/*.nanorc"
## Paint the interface elements of nano.
 set titlecolor brightwhite,blue
 set statuscolor brightwhite,green
 set numbercolor cyan
 set keycolor cyan
 set functioncolor green
## In root's .nanorc you might want to use:
# set titlecolor brightwhite,red
# set statuscolor brightwhite,red
# set numbercolor magenta
# set keycolor brightmagenta
# set functioncolor magenta
</pre>


<h2>Dans Tilix, nano pose quelques difficultés</h2>

<p>alt+(↑←↓→0123456789) permettent de basculer d’un terminal à l’autre (pavage), il est donc impossible d’utiliser les raccourcis correspondants de nano :</p>
<ul><li><strong>alt+→</strong> / <strong>alt+←</strong> Passer d’un fichier à l’autre (si plusieurs fichiers ouverts)</li>
<li><strong>alt+↑</strong> / <strong>alt+↓</strong> Rechercher la prochaine occurrence en avant/arrière</li>
</ul><p>Pour les raccourcis alt+num, il est possible d’activer capslock mais ce n’est pas idéal, surtout que ceux-ci sont vraiment utiles :</p>
<ul><li><strong>alt+6</strong> Copier la ligne courante dans le presse-papiers</li>
<li><strong>alt+3</strong> Commenter/décommenter la ligne courante ou les lignes marquées</li>
</ul><p>Pour résoudre ce désagrément, une solution simple consiste à ajouter la touche super à ces raccourcis clavier de Tilix : Remplacer alt+(0123456789↑←↓→) par alt+super+(0123456789↑←↓→)</p>


<h2>Conclusion</h2>

<p>Deux points m’énervent dans nano :</p>
<ol><li>La coloration syntaxique : lorsqu’il y a des \\" parmi des ", c’est vite illisible et il n’y a pas de couleur pour les espaces et tabulations (je pourrais regarder comment améliorer cela avec <a href="https://github.com/nanorc/nanorc">https://github.com/nanorc/nanorc</a> peut-être).</li>
<li>les raccourcis claviers sont "originaux" sans que je ne puisse comprendre la logique.</li>
</ol><p>Si un gros fichier de configuration est nécessaire et que je dois apprendre de nouveaux raccourcis clavier, autant apprendre vim et ainsi jouir d’un logiciel puissant dont l’ergonomie est maximale (au détriment de l’intuitivité). Il est peut-être temps pour moi de commencer l’apprentissage…</p>
<p><img src="media/65f43998.8b70e267df0d5c51c47866aa89a16ffc" data-original-source="http://cdn.libravatar.org/avatar/8b70e267df0d5c51c47866aa89a16ffc" alt="Gravatar de yeKcim" class="gravatar" /><br/><i>Original post of <a href="http://yeknan.free.fr/dc2/index.php?post/2017/11/17/GNU-nano" title="Visit the source">yeKcim</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: http://alterlibriste.free.fr/index.php?post/2017/11/16/Installation-de-Android-x86-sur-laptop
title: alterlibriste : Installation de Android-x86 sur laptop
uri: alterlibriste-Installation-de-Android-x86-sur-laptop
url: http://alterlibriste.free.fr/index.php?post/2017/11/16/Installation-de-Android-x86-sur-laptop
content:
<p><img src="media/a86f05d5.Android-x86.png" data-original-source="https://upload.wikimedia.org/wikipedia/commons/2/2a/Android-x86.png" alt=""></p>


<p>On s’amuse comme on peut.</p> <p>Le besoin est venu du fait que mon fils avait un jeu sur sa tablette et ça l’énervait quand son frêre ou moi nous y jouions et débloquions des niveaux. Alors, je me suis dit qu’il devait bien y avoir moyen d’installer des apk sur PC.</p>


<p>Ca n’a pas été si facile que cela en fait. La plupart des émulateurs sont pour Windows. Il existe quelques projets pour Linux comme Anbox ou Slashlik mais certains à base de snap pour Ubuntu et je n’ai rien réussi à faire tourner sous Debian. Le projet le plus intéressant et le plus vivant restait <a href="http://www.android-x86.org/download">Android-x86</a> sachant que RemixOS qui devait faire passer tous les PC sous Android s’est arrêté il y a un an. J’ai donc opté pour la 7.1rc2 disponible.</p>


<p>Android-x86 fonctionne comme une distribution, on l’installe sur une clé et on peut tester en live, ça déménage, mais la partition en principe persistante n’a pas fonctionné chez moi donc ne voulant pas installer dans un premier temps, je suis parti sur la virtualisation et là c’est beaucoup moins fluide. Une fois que je suis (difficilement) parvenu à installer le jeu souhaité (un truc qui a plus de 5 ans sans 3D), c’était injouable tellement ça saccadait.</p>


<p>Sur mon laptop, il y avait une partition de libre (pour rappel, je prévois toujours deux partitions pour une distribution afin de pouvoir tester ou mettre en place avant une bascule) donc je me lance. Ca tourne sauf qu’au redémarrage, pas d’Android dans le Grub et les <code>update-grub</code> n’y font rien. En cherchant un peu, il faut se taper le paramétrage du grub à la main. La <a href="http://www.webupd8.org/2012/03/how-to-dual-boot-android-x86-and-ubuntu.html">doc</a> datant de la version 4.4, je la recopie avec les mises à jour nécessaires car certains paramètres manquaient et empêchaient le démarrage.</p>


<p>Editer en root le fichier /etc/grub.d/40_custom<br>
Et pour mon laptop asus, j’y ai collé ceci (pour la partition sda3):<br><code>menuentry "Android-x86" {</code><br><code>set root='(hd0,3)'</code><br><code>linux /android-7.1-rc2/kernel quiet root=/dev/ram0 androidboot_hardware=asus_laptop androidboot.selinux=permissive  acpi_sleep=s3_bios,s3_mode SRC=/android-7.1-rc2</code><br><code>initrd /android-7.1-rc2/initrd.img}</code></p>


<p>Autre problème, le clavier est en qwerty, un peu casse-pied même si Android n’est pas un outil de productivité, il me permet malgré tout de taper ce billet de blog. Idem, voici donc la doc honteusement repompée de <a href="http://alterlibriste.free.fr/index.php?post/2017/11/16/ce%20site" title="ce site">ce site</a> :<br></p>


<blockquote><p>Par défaut le clavier est QWERTY, pour le passer en AZERTY français il faut télécharger les fichiers ici : http://code.google.com/p/eee-qwertz/ et renommer azerty_internal.idc en AT_Translated_Set_2_keyboard.idc copier les fichiers du zip dans : <br>
/system/usr/idc/AT_Translated_Set_2_keyboard.idc <br>
/system/usr/keychars/azerty.fr_FR.kcm <br>
/system/usr/keylayout/azerty.fr_FR.kl <br></p></blockquote>


<p>Alors, après avoir fait mumuse quelques temps sur ce système, qu’en dire ? Pleins de jeux ne fonctionnent pas, ils crashent ou ne bootent pas ; c’est probablement un problème de compatibilité matérielle. Malgré tout, cela permet de tester des applications que l’on souhaite utiliser sur sa tablette ou son futur smartphone. Aussi incroyable que cela puisse paraître, je suis toujours sur FirefoxOS mais le jour où le marketplace qui devait fermer en avril sera vraiment fermé, il faudra songer à changer. De toutes façons, je devrai changer un jour et actuellement, il n’y a plus que deux alternatives et même les systèmes dérivés (LineageOS, ResurectionRemix)  ou communautaires (UBports, Replicant, rires dans la salle) ne sont disponibles que sur un nombre très restreint de téléphones généralement plus en vente.</p>


<p>Je ne peux pas dire que je sois totalament fan d’Android ; ça tourne plutôt bien et c’est assez bien foutu mais il y a Google dans tous les coins que l’on passe son temps à désactiver et toujours la sensation qu’il nous regarde par dessus l’épaule pour pomper tout ce qu’il peut. Après, il y a énormément d’appli mais il faut faire un sérieux tri entre le Premium, le gratuit truffé de pubs et le bon vieux propriétaire. F-Droid fait le job pour s’approvisionner en applis libres mais l’offre n’est pas beaucoup plus étoffée que sur FirefoxOS. Aptoid permet d’éviter le GooglePlay mais il y a à boire et à manger.</p>


<p>La seule lueur à l’horizon, c’est Librem qui a réussi son pari de financer un téléphone libre pour 2019 mais à un prix un peu rebutant. A part ça, on peut dire que jusque là, le libre n’a pas encore réussi à trouver sa place dans les appareils mobiles qui sont pourtant les plus sensibles au niveaux des données personnelles qu’ils contiennent et dont on devrait vraiment avoir le contrôle.</p>
<p><img src="media/2a099e18.9ff6af75660c788842bdb4e186b8909f" data-original-source="http://cdn.libravatar.org/avatar/9ff6af75660c788842bdb4e186b8909f" alt="Gravatar de alterlibriste" class="gravatar" /><br/><i>Original post of <a href="http://alterlibriste.free.fr/index.php?post/2017/11/16/Installation-de-Android-x86-sur-laptop" title="Visit the source">alterlibriste</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Jeyg : <a href="">Installation et premiers pas avec le gestionnaire de configurations Chef</a> (08/09/2011)</li><li>agatzebluz : <a href="">Test rapide de Linux Mint LXDE</a> (21/03/2011)</li><li>Openwebtech : <a href="">Installation de LodgeIt! depuis les sources</a> (05/09/2011)</li><li>Frédéric Bertolus : <a href="">Tutoriel : Installation automatique de debian</a> (19/08/2011)</li><li>alterlibriste : <a href="">Depuis une semaine sous Firefox OS 2.2</a> (13/10/2014)</li></ul></div></p>


feed_id: https://yeuxdelibad.net/Blog/?d=2017/11/17/21/29/15-mes-extensions-sous-firefox-57
title: Thuban : Mes extensions sous Firefox 57
uri: Thuban-Mes-extensions-sous-Firefox-57
url: https://yeuxdelibad.net/Blog/?d=2017/11/17/21/29/15-mes-extensions-sous-firefox-57
content:
<p>Avec la sortie de l'excellent <a href="https://www.mozilla.org/fr-FR/firefox/new/">Firefox 57</a>, et puisque certains semblent manquer de certains addons, je peux me vanter de disposer de tous les addons dont j'ai besoin. En voici la liste :</p><div><noscript><img src="media/8efc060b.ffxaddons.png" data-original-source="http://https//yeuxdelibad.net/Blog//Blog/img/9c/ffxaddons.png" alt=""></noscript><img src="https://yeuxdelibad.net/Blog/data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" data-echo="/Blog/img/9c/ffxaddons.png"></div><ul><li> <a href="https://github.com/Cookie-AutoDelete/Cookie-AutoDelete">Cookie AutoDelete</a> : supprime les cookies qui ne sont plus utilisés.</li>
<li> <a href="https://decentraleyes.org/">Decentraleyes</a> : Télécharge en local les scripts javascript ou les polices hébergés utilisés sur certains sites, et souvent hébergés "gentiement" par google comme autre moyen de pister les visiteurs. C'est en local, plus besoin de dire à google qu'on est sur tel ou tel site.</li>
<li> <a href="https://getfoxyproxy.org/">FoxyProxy Basic</a> : parce que au boulot il y a un proxy.</li>
<li> <a href="https://grammalecte.net/">Grammalecte</a> : car je fais des fautes.</li>
<li> <a href="https://mybrowseraddon.com/smart-https.html">Smart HTTPS</a> : pour passer sur du https si possible</li>
<li> <a href="https://addons.mozilla.org/fr/firefox/addon/ublock-origin/?src=api">uBlock Origin</a> : bloque les ressources externes aux sites, bloque les pubs, indispensable ! </li>
<li> <a href="https://github.com/ueokande/vim-vixen">Vim Vixen</a> : ajoute des raccourcis claviers à la vim : je ne peux pas m'en passer.</li></ul><p>Vous avez d'autres suggestions ?</p>
<p><img src="media/0d200000.a17c14dbfc42f0936cee56ed7a9b3b31" data-original-source="http://cdn.libravatar.org/avatar/a17c14dbfc42f0936cee56ed7a9b3b31" alt="Gravatar de Thuban" class="gravatar" /><br/><i>Original post of <a href="https://yeuxdelibad.net/Blog/?d=2017/11/17/21/29/15-mes-extensions-sous-firefox-57" title="Visit the source">Thuban</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: https://blogduyax.madyanne.fr/2017/un-blog-plus-statique/
title: Yannic Arnoux : Un blog plus statique
uri: Yannic-Arnoux-Un-blog-plus-statique
url: https://blogduyax.madyanne.fr/2017/un-blog-plus-statique/
content:
<p>Un échange avec <a href="http://bruno.adele.im/">Bruno Adelé</a>, qui fut l’initiateur du
projet CaCause à une époque (déjà 5 ans) où les blogs statiques n’avaient pas
d’autre alternative que Disqus, a titillé mon intellect. Bruno envisage de
migrer son blog vers <a href="https://gohugo.io/">Hugo</a> et d’utiliser le gestionnaire
de commentaires <a href="https://staticman.net/">staticman</a> dont la particularité est
de soumettre les commentaires par des pull-request GIT.</p>

<p>Cela m’a rappelé <a href="https://blogduyax.madyanne.fr/2014%0A/pecosys-les-commentaires-avec-pelican">le projet Pecosys</a> qui avait une approche similaire : les
commentaires étaient partie intégrante du blog, publiés dans GIT sous forme de
fichiers au format Markdown et convertis en HTML par le moteur de blog
Pelican. La complexité de mise en oeuvre de Pecosys (un dépôt GIT privé, un
e-mail dédié, un plugin spécifique pour Pelican) ont eu raison du projet. Deux
ans plus tard, je codais Stacosys en simplifiant un peu les pré-requis
système. Entre temps, des alternatives crédibles à Disqus avaient vu le jour
comme <a href="https://posativ.org/isso">Isso</a> notamment. Stacosys est donc resté un
projet personnel et depuis, il gère les commentaires de ce blog.</p>

<p>Dans Stacosys, les commentaires ne font plus partie des sources du blog. le
navigateur Web du lecteur communique directement avec Stacosys via une API
REST et une instance de Stacosys peut être partagée entre plusieurs sites par
<a href="https://fr.wikipedia.org/wiki/Cross-%0Aorigin_resource_sharing">des requêtes CORS</a>. Stacosys stocke les commentaires dans sa base de
données et il ne fait plus de GIT. Contrairement à Pecosys (PElican COmment
SYStem), Stacosys n’est pas lié à un moteur de blog particulier, il est
facilement intégrable dans une page HTML par un peu de JavaScript.</p>

<p><img src="media/cdc70008.schema-stacosys-avant.jpg" data-original-source="https://blogduyax.madyanne.fr/images/2017/schema-stacosys-avant.jpg" alt="Architecture actuelle Stacosys"></p>

<p>Au vu de mon utilisation mono-site de Stacosys je me suis demandé si je ne
pourrais pas revenir à une génération des commentaires en pages statiques.
Cela apporte plusieurs avantages :</p>

<ul><li>une plus grande rapidité de navigation : au lieu d’ajouter les commentaires à la page en asynchrone par JavaScript, ils font partie de la page</li>
<li>la capacité à supporter plus d’utilisateurs simultanés car le serveur HTTP ne sert que des ressources statiques</li>
<li>plus de sécurité sur mon serveur grâce une surface d’attaque réduite : plus besoin d’une application HTTP REST accessible sur Internet</li>
</ul><p>L’idée n’est pas réécrire Stacosys mais de pouvoir l’utiliser dans les deux cas
de figure : mono-site et multi-site.</p>

<p>Le moteur de blog Hugo fournit une solution technique élégante à travers <a href="https://gohugo.io/templates/data-templates">les
data templates</a>. Il s’agit de
récupérer de l’information pendant la construction du blog pour enrichir les
pages avec une information dynamique (qui peut changer à chaque build). On
peut lire des fichiers JSON sur disque, ou mieux, faire des requêtes HTTP pour
récupérer du JSON.</p>

<p>Ca tombe bien, Stacosys fournit une API REST qui renvoie du JSON :-) Ni une ni
deux, j’ai adapté mes modèles pour que Hugo interroge Stacosys pendant sa
phase de build et génère les articles en incluant les commentaires en fin de
page.</p>

<p>Voici le <em>template</em> Hugo des commentaires qui utilise la fonction <strong>getJSON</strong> pour récupérer les commentaires
de la page en cours :</p>

<div><pre><span></span>    <<span>div</span> <span>id</span><span>=</span><span>"stacosys-comments"</span>>
      {{ $restParam := (printf "/comments?token=%v<span>&amp;</span>url=%v" .Site.Params.widgets.stacosys_token .URL) }}
      {{ $resp := getJSON .Site.Params.widgets.stacosys_url $restParam }}
      {{ range $resp.data }}    
      <<span>hr</span>>
      <<span>div</span> <span>class</span><span>=</span><span>"inline"</span>>
        {{ if isset . "site" }}
          <<span>a</span> <span>href</span><span>=</span><span>"{{ .site }}"</span>>
        {{ end }}
        <<span>img</span> <span>src</span><span>=</span><span>"http://www.gravatar.com/avatar/{{ .avatar }}.jpg"</span> <span>style</span><span>=</span><span>"float:left; margin-right:10px"</span> <span>height</span><span>=</span><span>"32"</span> <span>width</span><span>=</span><span>"32"</span>>
        {{ if isset . "site" }}
          </<span>a</span>>
        {{ end }}
          <<span>span</span> <span>class</span><span>=</span><span>"title"</span>>{{ .author }}</<span>span</span>>
          <<span>span</span>> - {{ .date }}</<span>span</span>>
      </<span>div</span>>
      <<span>p</span>>
      {{ .content | markdownify }}
      </<span>p</span>>
      {{ end }}
    </<span>div</span>> 
</pre></div>


<p>et un exemple de données renvoyée par Stacosys :</p>

<div><pre><span></span>    {
      <span>"data"</span>: [
        {
          <span>"author"</span>: <span>"Bruno"</span>,
          <span>"avatar"</span>: <span>"b97a3605714350fdad083394c974a9b4"</span>,
          <span>"content"</span>: <span>"Ça donne effectivement envie de se laisser convaincre par un Librem. Le seul problème c'est que c'est déjà limite si j'ai un téléphone mobile et payer un tel prix alors que je pourrais pratiquement avoir un nouvel ordinateur au même montant, ça ne donne pas trop envie. Quand mon téléphone actuel cessera de fonctionner, peut-être que je choisirai plutôt de ne pas en racheter."</span>,
          <span>"date"</span>: <span>"2017-10-01 20:03:46"</span>
        },
        {
          <span>"author"</span>: <span>"Yax"</span>,
          <span>"avatar"</span>: <span>"308a3596152a79231f3feedc49afa4ef"</span>,
          <span>"content"</span>: <span>"Je comprends c'est pas mon budget téléphone non plus. Une alternative acceptable c'est le reconditionné de téléphones éprouvés et connus pour être bien supportés par les ROMs communautaires. Ça fait un peu d'écologie en prime."</span>,
          <span>"date"</span>: <span>"2017-10-01 22:20:37"</span>
        }
      ]
    }
</pre></div>


<p>Il reste une interaction entre le serveur HTTP et Stacosys pour poster des
commentaires via le formulaire mais on n’a plus besoin que Stacosys ait son nom
FQDN propre et soit exposé sur Internet.</p>

<p>Le nouveau système ressemble à ceci :</p>

<p><img src="media/93fb940c.schema-stacosys-apres.jpg" data-original-source="https://blogduyax.madyanne.fr/images/2017/schema-stacosys-apres.jpg" alt="Nouvelle architecture Stacosys"></p>

<p>Les sources complets sont sur <a href="https://github.com/kianby">mon Github</a>.</p>

<p>C’est en place depuis le début de la semaine et je suis ravi du résultat.
Combiné avec un Firefox Quantum pour la navigation ça roxe du poney !</p>
<p><img src="media/79716ccf.308a3596152a79231f3feedc49afa4ef" data-original-source="http://cdn.libravatar.org/avatar/308a3596152a79231f3feedc49afa4ef" alt="Gravatar de Yannic Arnoux" class="gravatar" /><br/><i>Original post of <a href="https://blogduyax.madyanne.fr/2017/un-blog-plus-statique/" title="Visit the source">Yannic Arnoux</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>pc-kc : <a href="">elle hics des euh &hellip; pas un gnome (lxde plus gnome)</a> (31/05/2009)</li><li>pc-kc : <a href="">Opencvtheque plus que 6 jours</a> (09/10/2010)</li><li>System Linux : <a href="">La mort d&#039;internet se confirme un peu plus &agrave; Bruxelles</a> (21/07/2011)</li><li>jesuislibre : <a href="">Cr&eacute;er son blog statique avec rstblog</a> (06/03/2013)</li><li>Mathieu Ignacio : <a href="">Je passe sur un blog statique !</a> (13/05/2017)</li></ul></div></p>


feed_id: https://mozillazine-fr.org/belle-reaction-a-la-sortie-de-firefox-quantum/
title: mozillaZine-fr : Belle réaction à la sortie de Firefox Quantum
uri: mozillaZine-fr-Belle-réaction-à-la-sortie-de-Firefox-Quantum
url: https://mozillazine-fr.org/belle-reaction-a-la-sortie-de-firefox-quantum/
content:
<p>Cette sortie a suscité beaucoup de réactions dans les médias <em>geek</em> et même dans les médias généralistes. Beaucoup ont reconnu que Firefox est enfin redevenu rapide. On peut se douter que certains médias généralistes n’ont pas fait d’essai comparatif poussé mais ils ont au moins manifesté un bel intérêt pour l’exploit réalisé par Mozilla et ses contributeurs. Pour fêter ça, signalons cette belle réaction d’un utilisateur de Twitter qui déclare :</p>
<blockquote><p>C’est incroyable : en quelques années, Mozilla a inventé un langage de programmation et réinventé un navigateur moderne avec ce langage, et apparemment ça a <strong>réussi</strong>. Développer du logiciel à partir de rien, c’est une chose. Mais ce qu’ils ont fait avec Firefox, c’est sans précédent.</p></blockquote>
<blockquote data-width="500">
<p lang="en" dir="ltr">it's incredible that in the span of a few yrs mozilla invented a PL and re-invented a modern browser with it, and apparently *succeeded*. hacking greenfield is one thing, but what they did with firefox is unprecedented</p>
<p>— Alan (@alandipert) <a href="https://twitter.com/alandipert/status/931192980869857280?ref_src=twsrc%5Etfw">November 16, 2017</a></p></blockquote>
<p></p>
<p>Ceci n’est qu’une réaction. Le plus important reste à observer : la courbe des parts de marché. On peut déjà constater que Firefox est légèrement repassé au-dessus de la barre des 6 % sur <a href="http://gs.statcounter.com/browser-market-share#monthly-201610-201711">StatCounter</a>. Ce n’est pas rien compte tenu de la <a href="https://dascritch.net/post/2017/01/12/Firefox%2C-l-invisible">difficulté de compter les utilisateurs de Firefox</a>. Pour la première fois <strong>depuis des années</strong>, cette fichue courbe remonte ! Parions que ce frémissement est annonciateur d’une belle remontée.</p>
<p><img src="media/31cea72e.39fcff259ddeccfa69dcb537c22fa1ad" data-original-source="http://cdn.libravatar.org/avatar/39fcff259ddeccfa69dcb537c22fa1ad" alt="Gravatar de mozillaZine-fr" class="gravatar" /><br/><i>Original post of <a href="https://mozillazine-fr.org/belle-reaction-a-la-sortie-de-firefox-quantum/" title="Visit the source">mozillaZine-fr</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>mozillaZine-fr : <a href="">Le nouveau visage de Firefox est arriv&amp;eacute; dans Nightly</a> (19/11/2013)</li><li>mozillaZine-fr : <a href="">Quand Chrome s&amp;rsquo;inspire de Firefox</a> (05/12/2013)</li><li>mozillaZine-fr : <a href="">Comment faire en sorte que Firefox OS soit mieux mis &amp;agrave; jour qu&amp;rsquo;Android ?</a> (07/06/2014)</li><li>mozillaZine-fr : <a href="">Un article pr&amp;eacute;sente Firefox 32 sur LinuxFr</a> (04/09/2014)</li><li>mozillaZine-fr : <a href="">Revivez la soir&amp;eacute;e de lancement de Firefox OS en France</a> (23/09/2014)</li></ul></div></p>


feed_id: https://www.blog-libre.org/2017/11/18/cheminement-dun-power-user-de-windows-a-gnu-linux/
title: blog-libre : Cheminement d’un power user : De Windows à GNU/Linux
uri: blog-libre-Cheminement-d-un-power-user-De-Windows-à-GNU-Linux
url: https://www.blog-libre.org/2017/11/18/cheminement-dun-power-user-de-windows-a-gnu-linux/
content:
<p>La première fois que j’ai croisé le mot power user, c’était chez <a href="http://sebsauvage.net/logiciels/poweruser.html" rel="noopener" target="_blank">Sebsauvage</a> il y a plus de 10 ans.</p>
<p>La définition en Français « <a href="https://fr.wikipedia.org/wiki/Utilisateur_intensif" rel="noopener" target="_blank">Utilisateur intensif</a> » étant trop pauvre, je vais citer la version Anglaise de <a href="https://en.wikipedia.org/wiki/Power_user" rel="noopener" target="_blank">Power user</a> : « A power user or experienced user is a computer user who uses advanced features of computer hardware, operating systems, programs, or web sites which are not used by the average user. A power user may not have extensive technical knowledge of the systems they use and is not capable of computer programming or system administration, but is rather characterised by the competence or desire to make the most intensive use of computer programs or systems ».</p>
<p>« Un power user peut ne pas avoir une connaissance technique approfondie des systèmes qu’il utilise et n’est pas en mesure de programmer ou d’administrer des systèmes informatiques, mais se caractérise plutôt par la compétence ou le désir d’utiliser le plus intensivement possible les programmes ou systèmes informatiques ». J’aime beaucoup cette définition car elle renvoie moins au <strong>niveau</strong> de l’utilisateur (débutant, expérimenté, etc.) qu’à <strong>son désir, son but</strong> : Utiliser le plus intensivement possible les programmes ou systèmes informatiques.</p>
<p>Cela me caractérise bien dans mon usage de l’informatique, bien mieux que sysadmin ou ingénieur ou administrateur systèmes et réseaux. Je ne me définis pas par un niveau mais par un désir, rechercher la manière la plus efficace d’utiliser les outils à ma disposition.</p>
<h2>Frustration et impuissance</h2>
<p>J’avais expliqué dans <a href="https://www.blog-libre.org/2016/11/16/la-quete/" rel="noopener" target="_blank">La quête</a> mon parcours de Windows à GNU/Linux. L’élément déclencheur a été une terrible frustration : Être sysadmin, passer sa journée sur Windows Seven et ne pas pouvoir paramétrer ses outils exactement comme on le désire. J’étais au final impuissant devant ce système d’exploitation qui me limitait énormément.</p>
<p>Windows a beau proposer la plus large logithèque de tous les systèmes d’exploitation, on est limité et on n’y peut rien. Le système est conçu et vendu pour être utilisé par des centaines de millions de personnes, il n’est pas possible d’assurer un support, de proposer une expérience commune et cohérente si on laisse trop de possibilités et de choix aux utilisateurs.</p>
<p>Windows offre une base commune et solide aux débutants, professionnels, particuliers, etc. Microsoft en faisant cela s’adresse à une majorité écrasante d’utilisateurs mais se coupe totalement des usages différents ou plus pointus : Power users, curieux, bidouilleurs, hackers, « alter ».</p>
<h2>Écosystème et culture</h2>
<p>J’ai appris et compris que les mots à utiliser pour caractériser Windows et GNU/Linux n’étaient pas les mêmes. Windows amène une <strong>base commune et cohérente</strong>, GNU/Linux propose de <strong>faire des choix</strong> : systèmes d’exploitation (Debian, Ubuntu, ArchLinux, Fedora…) et bureaux (Gnome, KDE, XFCE, Mate…) entre autres.</p>
<p>Windows est finalement <strong>grand public</strong> même si il est relativement souple, GNU/Linux est <strong>exigeant</strong> car il impose à l’utilisateur de faire ses propres choix, de réfléchir à son usage, à ce qu’il veut, de comprendre et apprivoiser son système d’exploitation, de prendre ses responsabilités.</p>
<p>Windows est un <strong>système d’exploitation</strong> composé d’un seul bloc développé par Microsoft, GNU/Linux est un <strong>écosystème</strong> d’outils, de projets, de développeurs. systemd est majoritairement développé par Red Hat, Debian par le projet Debian, Gnome par le projet et la fondation Gnome, OpenSSH par quelques développeurs de OpenBSD.</p>
<p>Le support sur Windows sera assuré par Microsoft, par le technicien/sysadmin à votre boulot, par le voisin qui s’y connaît un peu. Sur GNU/Linux peu de distributions proposent du support autre que sur IRC, dans la documentation, dans les forums, avec d’autres personnes plus expérimentées. C’est une <strong>culture différente</strong>, on est bien moins assisté sur GNU/Linux que sur Windows, on est bien plus les mains dans le cambouis et à la recherche d’aide sur GNU/Linux. On est davantage sensible à l’entraide, aux tutos, aux gens qui développent sur leur temps libre, aux gens qui informent, qui dépannent. Aux gens qui sont là et qui font tout simplement.</p>
<p>La confiance est une question centrale qui nous habite car quand on enlève la relation commerciale et pécuniaire, il ne reste que les hommes, leur savoir faire, leur savoir être.</p>
<h2>Compétences et responsabilités</h2>
<p>Je suis chez moi à présent sur GNU/Linux. J’ai sculpté de toute pièce mon environnement informatique, celui qui me correspond au mieux, un système à mon image. Linux respecte l’utilisateur parce qu’il lui redonne le choix et les clés de son informatique. Windows se contente de masquer la complexité et de faire « les bons choix » à la place de l’utilisateur : « Pour tout résoudre, cliquez ici ». </p>
<p>Le problème demeure humain. Si l’utilisateur ne veut pas faire l’effort de comprendre et apprivoiser l’informatique alors il se rendra dépendant d’un tiers comme Microsoft qui entretiendra cette dépendance et en tirera ces revenus.</p>
<p>Dit autrement Windows est une béquille pour la majorité de ses utilisateurs, Linux est une prothèse bionique pour ceux qui se donnent la peine de l’apprivoiser et c’est définitivement l’utilisateur qui choisit entre dépendance ou pouvoir. Évidemment un grand pouvoir implique de grandes responsabilités… et pas mal de compétences.</p>
<p><img src="media/25c7216e.1ea6f31074367d57d77721240d30fda9" data-original-source="http://cdn.libravatar.org/avatar/1ea6f31074367d57d77721240d30fda9" alt="Gravatar de blog-libre" class="gravatar" /><br/><i>Original post of <a href="https://www.blog-libre.org/2017/11/18/cheminement-dun-power-user-de-windows-a-gnu-linux/" title="Visit the source">blog-libre</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Asher256 : <a href="">Ne Gueulez pas Contre Linux quand votre Mat&eacute;riel n&rsquo;est pas Compatible</a> (06/01/2009)</li><li>Asher256 : <a href="">Le Podcast Factory marche sous GNU/Linux</a> (14/02/2008)</li><li>Asher256 : <a href="">Discutez avec vos Amis Facebook avec Pidgin</a> (12/01/2009)</li><li>Dhoko : <a href="">Partager des dossiers de son OS &agrave; sa machine virtuelle avec Virtualbox pour GNU/Linux et Windows</a> (29/09/2010)</li><li>Manu Absolacom : <a href="">Pourquoi GNU/Linux est il meilleur ?</a> (20/10/2010)</li></ul></div></p>


feed_id: http://www.tomzone.fr/installation-dun-serveur-debian-9/
title: Tom : Installation d’un serveur Debian 9
uri: Tom-Installation-d-un-serveur-Debian-9
url: http://www.tomzone.fr/installation-dun-serveur-debian-9/
content:
<p>Salut les amis.</p>
<p>Hier, j’ai réussi à avoir un serveur Kimsufi avec 2 To de HDD pour le prix d’un serveur avec 1 To. à 10€ par mois je ne vais pas regarder trop les performances pures et dures du serveur, sachant que ce serveur sera là pour remplacer mon vieillissant Kimsufi, qui n’a qu’un disque de 512 Go (que je pense reconvertir en serveur de Backup) … Ce nouveau serveur servira de serveur web, serveur de cloud privé, <del>seedbox</del>, serveur GIT, de test pour docker … enfin un peu tout.</p>
<p>Plutôt que de simplement migrer facilement mon serveur Debian 8 vers le nouveau, je vais réécrire ici les procédures d’installation <em>from scratch</em>, mais je pense que ceci aboutira à l’utilisation d’un script post-install … Oui car on est flemmard ou on ne l’est pas !</p>
<h1>Partitionnement</h1>
<p>La grande question du partitionnement</p>
<p>Alors pour expliquer rapidement.</p>
<p>Un / de 20 Go, suffisant.</p>
<p>/home qui fait pour l’instant 1 To, je vais stocker les fichiers de ma seedbox <img src="media/f5694d4a.1f600.png" data-original-source="https://s.w.org/images/core/emoji/2.3/72x72/1f600.png" alt="😀"></p>
<p>/var/log qui fait 5 Go (oui j’ai eu une fois une appli verbeuse, qui m’a généré tellement de log que j’en ai perdu mon serveur … Je préfère donc toujours mettre mon dossier de log dans une partition à part et qu’elle reste isolée du reste du système … Les logs ça grossi vite <img src="media/180db26c.1f642.png" data-original-source="https://s.w.org/images/core/emoji/2.3/72x72/1f642.png" alt="🙂"></p>
<p>Et le reste ?? Et bien le reste je vais voir. Est ce que j’agrandis mon /home ? est ce que je dédie une partition à autre chose ? Je ne sais pas … de toute façon c’est du LVM donc je verrai avec le temps ! <img src="media/2e2f464a.1f609.png" data-original-source="https://s.w.org/images/core/emoji/2.3/72x72/1f609.png" alt="😉"></p>
<h1>Premier Démarrage</h1>
<h2>Création d’un compte utilisateur</h2>
<p>Pour commencer, si vous n’avez pas de compte perso, ajoutez en un, si vous en avez un passez cette étape</p>
<p>Je vais donc me créer un compte sur le serveur et définir son mot de passe.</p><pre>useradd -m -G sudo tom
passwd tom</pre><p>Maintenant il va falloir personnaliser mon environnement de travail (logiciel, bashrc …)</p>
<p>Pour commencer, c’est personnel, je vais importer mon bashrc et mon env shell. Pour cela j’héberge sur GitHub les fichiers nécessaires</p><pre>cd /tmp
# On installe git si pas encore installé
sudo apt install git
git clone https://www.github.com/SckyzO/bashrc
cd bashrc
# Copie dans le home directory de l'utilisateur
cp .bashrc .dircolors $HOME
# Copie dans le home directory de root
sudo cp .bashrc .dircolors /root
# On delete :)
rm /tmp/bashrc</pre><p></p>
<h2>Mise en place des dépôts</h2>
<p>Nous allons ajouter les dépôts « contrib » et « non-free » ainsi que le rétro-portage Backports</p><pre>vi /etc/apt/sources.list</pre><p></p><pre># Les dépôts officiels Debian Jessie :
deb http://httpredir.debian.org/debian/ stretch main contrib non-free
#deb-src http://httpredir.debian.org/debian/ stretch main contrib non-free

# Debian Jessie, mises-à-jour de sécurité :
deb http://security.debian.org/ stretch/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free

# Debian Jessie, mises-à-jour "volatiles" :
deb http://httpredir.debian.org/debian/ stretch-updates main contrib non-free
#deb-src http://httpredir.debian.org/debian/ stretch-updates main contrib non-free

# Debian Jessie, dépôt de rétro-portages ("backports") :
deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
#deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free</pre><p></p>
<h2>Mise à jour système</h2>
<p></p><pre>apt-get update &amp;&amp; apt-get upgrade &amp;&amp; apt-get dist-upgrade</pre><p></p>
<h2>Installation des programmes</h2>
<h3>Divers</h3>
<p></p><pre>apt-get install man manpages-fr manpages-fr-extra manpages-fr-dev bash-completion curl locales fortunes nano python-pip wget zip unzip bzip2 linux-kernel-headers screen ca-certificates fortune-mod lsof strace sudo tree coreutils htop ccze vim-runtime vim-common vim-nox vim vim-syntastic vim-addon-manager vim-runtime build-essential subversion autoconf screen g++ gcc ntp curl git unrar unzip mediainfo ffmpeg</pre><p>Je ne vais pas rentrer dans les détails des programmes installés. C’est mon environnement</p>
<h3>Ajout de mon MOTD Dynamique</h3>
<p>Pour ceux qui ne savent pas, je vous renvoie vers le lien suivant :</p>
<div>
<blockquote data-secret="tozIxGzfO2"><p><a href="http://www.tomzone.fr/creation-dun-motd-dynamique/">Création d’un MOTD dynamique : dynmotd</a></p></blockquote>
<p><iframe sandbox="allow-scripts" security="restricted" src="http://www.tomzone.fr/creation-dun-motd-dynamique/embed/#?secret=tozIxGzfO2" data-secret="tozIxGzfO2" width="600" height="338" title="« Création d’un MOTD dynamique : dynmotd » — TomZone . Fr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p></div>
<p> </p>
<h1>Un peu de Sécurité</h1>
<p>Sécuriser son serveur SSH, c’est quand même la base. Par défaut la configuration est bien pour une utilisation locale. Mais sur internet, mieux vaut prendre quelques précautions.</p>
<p>Perso, je change le port de connexion par défaut, cela évitera quelques petits soucis (mes amis les bots …), et je n’autorise pas la connexion SSH à l’utilisateur root (non sans déconner !!)</p>
<p>Il vous faudra éditer le fichier <em>/etc/ssh/sshd_config</em></p>
<p>Changer le port par défaut (évitez de mettre un port compris en 1 et 1024 …)</p><pre>[ . . . ]
Port 1234 # (mettez le port que vous souhaitez)
[ . . . ]
Protocol 2
[ . . . ]
PermitRootLogin no
[ . . . ]
# Cette variable permet uniquement aux utilisateurs listés après la variable AllowUsers de pouvoir se connecter en ssh (Fonctionne aussi avec AllowGroups)
AllowUsers username1 username2
AllowGroups groupe1 groupe2</pre><p>Voila le principal est fait. J’écrirai un autre article à destination de la sécurité sur un serveur Linux (ssh, fail2ban, port-knocking …)</p>
<h1>Et Ensuite ?</h1>
<p>Et bien ensuite va s’en suivre plusieurs articles, pour l’installation et la configuration de plusieurs softs. Je pense à terme faire pas mal de docker. Je reviendrai dessus dans les jours prochains.<br>
Pour l’instant on va s’installer « normalement » une petite seedbox sur le serveur. Je vous présenterai cela par la suite.</p>
<p> </p>
<p>Et vous vous installez aussi votre Debian comme ceci ?</p>
<p><img src="media/50bead6f.4cb7a6eb5c5c5b740244e59020d13849" data-original-source="http://cdn.libravatar.org/avatar/4cb7a6eb5c5c5b740244e59020d13849" alt="Gravatar de Tom" class="gravatar" /><br/><i>Original post of <a href="http://www.tomzone.fr/installation-dun-serveur-debian-9/" title="Visit the source">Tom</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Nicolargo : <a href="">Installation d&rsquo;un serveur de temps sur votre r&eacute;seau</a> (16/11/2011)</li><li>Thomas Tourlourat : <a href="">CentOS &ndash; Installer le module h264 streaming pour Lighttpd</a> (12/06/2012)</li><li>Geek de France : <a href="">[TUTO] Installation d&rsquo;un serveur OwnCloud sous Debian 7</a> (03/03/2014)</li><li>Aternatik : <a href="">Installation Asterisk sur debian</a> (08/08/2008)</li><li>Micka&euml;l : <a href="">Installation et configuration de son serveur Git avec Gitosis sous Debian 5</a> (06/03/2010)</li></ul></div></p>


feed_id: https://www.ilphrin.com/planet/2017/11/18/fetch-api-symfony-3.html
title: Ilphrin : Utiliser la Fetch API en JS avec du Symfony 3
uri: Ilphrin-Utiliser-la-Fetch-API-en-JS-avec-du-Symfony-3
url: https://www.ilphrin.com/planet/2017/11/18/fetch-api-symfony-3.html
content:
<p>Ça faisait longtemps n’est-ce pas? ;)</p>

<p>Après cette absence de deux mois sans article, et encore plus sans sujet un peu technique, je reviens pour vous parler un petit peu du projet sur lequel je travaille. Dans ce projet j’ai eu à utiliser la Fetch API de JavaScript pour faire des requêtes AJAX dans un fichier JavaScript servi par un serveur en Symfony 3. C’était pas facile, mais j’y suis arrivé!</p>

<!--break-->

<h2>Le projet</h2>

<p>Tout d’abord un peu de contexte. Dans le cadre de mes études, je dois réaliser un projet d’une durée de 2 ans avec un groupe de 6 étudiants (moi compris). Nous avons carte blanche sur le sujet du projet, mais celui-ci doit être validé par une série de présentation devant des jurys afin de vérifier la possibilité de transformer ce projet en startup.</p>

<p>Notre projet s’appelle <strong>Playficient</strong>. Nous avons constaté et rendu compte grâce à des statistiques que <strong>20% du temps de travail</strong> (en moyenne) est perdu à cause de diverses raisons. L’une des raisons principales, et le fait de passer d’un outil informatique à un autre. De nombreux logiciels ont été crée dans le but de <strong>réduire</strong> le nombre d’outils utilisés au travail (le principe de synchronisation avec une API, ou de “Connecter” son compte Facebook, ou encore utiliser IFTTT).</p>

<p>Nous pensons créer un outil similaire, orienté pour les entreprises (PME/TPE et Startups précisément), qui ont un <strong>contact fort</strong> avec l’environnement informatique. Mais nous voulons aussi aller <strong>plus loin</strong>, notamment en intégrant les principes de la <a href="https://en.wikipedia.org/wiki/Gamification"><strong>Gamification</strong></a> avec de motiver les travailleurs, mais aussi de <strong>conseils intelligent</strong> avec une IA afin de permettre aux utilisateurs de s’améliorer chaque jour sur leurs processus de travail. Pour rentre tout ça un peu plus corsé, nous voulions ce projet <strong>personnalisable</strong>, avec un système de <strong>module</strong> qui peuvent s’ajouter ou se supprimer selon le bon vouloir des utilisateurs, comme des extensions d’un site Wordpress ou le navigateur Firefox (Texte subliminal: passez à la version 57!)</p>

<p>(Lien du site vitrine à venir si vous voulez jeter un oeil, ou même nous faire des retours, ce qui serait vraiment gentil! =D)</p>

<h2>Hey, tu parlais pas d’un article technique?</h2>

<p>Effectivement il serait temps que j’en parle. Pour facilement gérer un système de module, nous sommes partis sur un développement serveur en PHP <a href="http://symfony.com/">Symfony 3</a> avec son fonctionnement en <strong>Bundle</strong>, dont 2 personnes s’occupent principalement. Toute la partie “Front-End” est gérée par Symfony sous forme de <strong>Templates</strong> et d’<strong>Assets</strong>:</p>

<ul><li>Un <strong>Template</strong> est une page HTML avec une syntaxe <a href="https://twig.symfony.com/">Twig</a> qui est réutilisable, et customisable par des remplacements de variables et diverses fonctionnalités telles que des boucles ou des conditions</li>
  <li>Un <strong>Asset</strong> est un fichier qui sert à fournir un supplément à un template, comme du code JavaScript, une image, du CSS, etc.</li>
</ul><p>Un Template sert donc pour créer une base de page à <strong>réutiliser</strong>, ou pour créer une page <strong>spécifique</strong> à une <a href="https://symfony.com/doc/current/routing.html">Route</a> bien définie. Mais on ne trouvera dans un Template que le <strong>code HTML</strong> et des balises <strong>Twig</strong>(si on est un minimum propre). Donc les Templates ne nous intéressent pas si on veut faire du JavaScript.</p>

<p>À l’inverse les Assets sont bien plus intéressants, puisque c’est grâce à eux que nous allons pouvoir donner au client son fichier JavaScript. Sauf qu’on a un problème: On ne <strong>dispose pas</strong> de la syntaxe Twig des Templates pour remplacer des valeurs cotées serveur dans le <strong>JavaScript</strong>.</p>

<p>Et cela pose problème notamment lorsque l’on a besoin de récuprer <strong>l’URL d’une Route</strong>.</p>

<h2>FOSJSBundle à la rescousse</h2>

<p>Comme je le disais précédemment, Symfony fonctionne pas système de Bundle, un peu comme les packages en JavaScript, ou les Gem en Ruby. Ces bundles servent de dépendances à un projet, et on peut en trouver des <strong>centaines</strong> déjà existants grâce à la communauté florissante de Symfony.</p>

<p><a href="https://symfony.com/doc/master/bundles/FOSJsRoutingBundle/index.html">FOSJSBundle</a> est un Bundle qui va mettre à disposition de notre code Javascript, une librairie appelée <code>Routing</code> pour récupérer l’URL d’un Route.</p>

<p>Voici comment on s’en sert:</p>

<div><pre><code>
<span>const</span> <span>url</span> <span>=</span> <span>Routing</span><span>.</span><span>generate</span><span>(</span><span>'route_name'</span><span>,</span> <span>{</span><span>vos</span> <span>parametres</span><span>},</span> <span>urlAbsolueBool</span><span>);</span>

</code></pre>
</div>

<p>La fonction va nous <strong>retourner l’url</strong> correspondant à une route donnée en paramètre, exactement ce qu’il nous fallait!</p>

<p>Maintenant il reste à gérer la requête en elle-même. Prenons un cas d’utilisation (au hasard, ce sur quoi j’ai travaillé aujourd’hui). Nous sommes l’utilisateur X, <strong>connecté</strong> sur Playficient et possédent le module <strong>Gestionnaire de tâches</strong>. Nous avons une liste de boites, chacune correspond à une <strong>tâche</strong> et peut contenir un nombre indéfini de <strong>sous-tâches</strong>. Nous aimerions pouvoir faire un “drag’n drop” d’une sous-tâche, pour la changer de boite. Lorsque nous faisons cela, nous avons besoin de dire au serveur que nous voulons <strong>supprimer</strong> la tâche de son ancienne position, et la <strong>rajouter</strong> dans sa nouvelle position.</p>

<p>Pour cela, nous allons du côté de JavaScript faire une requête <strong>AJAX</strong>. Il existe plusieurs méthodes, la plus récente est l’utilisation de la <a href="https://developer.mozilla.org/fr/docs/Web/API/Fetch_API/Using_Fetch">Fetch API</a> dont nous allons nous servir ici. La Fetch API fonctionne avec deux objets et une méthode:</p>

<ul><li><a href="https://developer.mozilla.org/fr/docs/Web/API/Request"><strong>Request</strong></a>: C’est l’objet qui définit la requête. On va y définir l’URL, les paramètres, la méthode, si nous sommes en CORS, etc.</li>
  <li><a href="https://developer.mozilla.org/fr/docs/Web/API/Response"><strong>Response</strong></a>: C’est l’objet qui définir la réponse. On reçoit cet objet à la résolution de la Promise d’une requête.</li>
  <li><a href="https://developer.mozilla.org/fr/docs/Web/API/GlobalFetch/fetch"><strong>fetch()</strong></a>: Cette fonction prend en paramètre un objet Request, et d’autres paramètres pour la résolution de la requête. Cette fonction renvoie une <a href="https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise">Promise</a></li>
</ul><p>Maintenant que vous en savez un peu plus, on va voir le code correspondant à une requête pour supprimer la sous-tâche de la boite dont elle faisait partie:</p>

<div><pre><code>
<span>const</span> <span>url</span> <span>=</span> <span>Routing</span><span>.</span><span>generate</span><span>(</span><span>'task_remove'</span><span>,</span> <span>{</span>
  <span>taskId</span><span>:</span> <span>1</span><span>,</span>
  <span>parentId</span><span>:</span> <span>2</span><span>,</span>
<span>});</span>
<span>const</span> <span>request</span> <span>=</span> <span>new</span> <span>Request</span><span>(</span><span>url</span><span>,</span> <span>{</span> <span>method</span><span>:</span> <span>"GET"</span> <span>});</span>

<span>fetch</span><span>(</span><span>request</span><span>)</span>
  <span>.</span><span>then</span><span>((</span><span>response</span><span>)</span> <span>=></span> <span>{</span>
    <span>console</span><span>.</span><span>log</span><span>(</span><span>"Nous avons supprimé la tâche!"</span><span>);</span>
  <span>})</span>
  <span>.</span><span>catch</span><span>((</span><span>error</span><span>)</span> <span>=></span> <span>{</span>
    <span>console</span><span>.</span><span>error</span><span>(</span><span>`</span><span>Erreur</span> <span>lors</span> <span>de</span> <span>la</span> <span>suppression</span><span>:</span> <span>$</span><span>{</span><span>error</span><span>}</span><span>`</span><span>);</span>
  <span>});</span>

</code></pre>
</div>

<p>OK? Tout est bon? Lançons le serveur et faisons la manipulation… Voici ce que la console Firefox nous ressort:</p>

<div><pre><code>GET  http://localhost/task/2/1/remove       302 Found
GET  http://localhost/login                 200 OK
"Nous avons supprimé la tâche!"

</code></pre>
</div>

<p>Et malheur, lorsque nous rechargeons la page la tâche est <strong>toujours présente</strong>!</p>

<p>Rapidement, on se rend compte que <strong>deux requêtes</strong> ont été faites: Une pour effectivement supprimer la tâche, et un autre sur la page de connexion…étrange. Je ne vais pas passer par quatre chemin et expliquer très rapidement pourquoi on a été rédirigé et pourquoi la vraie requête ne s’est pas faite.</p>

<p>Nous sommes toujours l’utilisateur X, et connecté en tant que tel, le serveur à besoin de savoir au <strong>nom de qui</strong> nous faisons la requête. C’est à cette fin que sont utilisés des <a href="https://en.wikipedia.org/wiki/HTTP_cookie">cookies</a> dans Symfony. D’une page à une autre, l’utilisateur se <strong>balade avec un cookie</strong> qui lui permet de rester connecté tant qu’il ne clique pas sur “Déconnecter”.</p>

<p>Nous avons donc besoin dans notre requête de <strong>récupérer ce cookie</strong> et de l’envoyer, mais comment faire? En fait, c’est très simple avec l’API Fetch et Symfony, c’est un simple <strong>paramètre à l’objet Request</strong>, pour envoyer ce que l’on appelle les “Credentials”:</p>

<div><pre><code>
<span>const</span> <span>request</span> <span>=</span> <span>new</span> <span>Request</span><span>(</span><span>url</span><span>,</span> <span>{</span> <span>method</span><span>:</span> <span>"GET"</span><span>,</span> <span>credentials</span><span>:</span> <span>"same-origin"</span> <span>});</span>

</code></pre>
</div>

<p>Relançons la requête:</p>

<div><pre><code>GET  http://localhost/task/2/1/remove       200 OK
"Nous avons supprimé la tâche!"
</code></pre>
</div>

<p>Et voilà le tour est joué!</p>

<p>Utiliser la Fetch API, et du JavaScript en Symfony, est assez facile mais seulement quand on a compris comment le faire. (J’ai passé 3 jours à chercher comment avoir les routes en JavaScript, et à comprendre cette erreur de credentials pourtant assez simple)!</p>

<p>Je travaillerais à la traduction de cet article en anglais pour un peu plus de diversité (et pour travailler mon Anglais!). Je vais probablement profiter de mon séjour à <a href="https://www.flickr.com/photos/159186107@N06/">Québec</a> et de mon projet de fin d’études pour écrire un peu plus d’articles techniques. D’ailleurs, en ce moment j’essaie de créer un plugin pour <a href="https://coralproject.net/products/talk.html">Talk</a> du <a href="https://coralproject.net/">CoralProject</a>, quand ce sera fait j’aurais surement un article à écrire sur le sujet ;)</p>

<p>D’ici là bonne continuation à chacun et chacune</p>
<p><img src="media/9292dabf.235511b5004cfd4af8c43a8b06c9e121" data-original-source="http://cdn.libravatar.org/avatar/235511b5004cfd4af8c43a8b06c9e121" alt="Gravatar de Ilphrin" class="gravatar" /><br/><i>Original post of <a href="https://www.ilphrin.com/planet/2017/11/18/fetch-api-symfony-3.html" title="Visit the source">Ilphrin</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


feed_id: http://www.numopen.fr/blog/integration-dun-poste-gnu-linux-domaine-windows/
title: NumOpen : Intégration d’un poste GNU/Linux dans un domaine Windows
uri: NumOpen-Intégration-d-un-poste-GNU-Linux-dans-un-domaine-Windows
url: http://www.numopen.fr/blog/integration-dun-poste-gnu-linux-domaine-windows/
content:
<div>
<p>Il y a quelques années, j’avais administré un petit parc de 100 postes dans une PME industrielle. Pour être tranquille avec les virus, ne plus avoir à ré-installer 1 à 2 postes Windows par mois et ne plus avoir la moitié des fichiers vérolés par des vers dans les dossiers partagés en réseau, j’avais remplacé 80% des postes Windows par des postes GNU/Linux.</p>
<p>C’était facile, tous ces postes utilisaient <a href="https://www.mozilla.org/fr/firefox/">Mozilla Firefox</a>, <a href="https://www.mozilla.org/fr/thunderbird/">Mozilla Thunderbird</a>, <a href="https://fr.libreoffice.org/">LibreOffice</a> et se connectaient à un serveur Windows TSE pour accéder aux logiciels de gestion. Rien d’autre de particulier. Par précaution, j’avais ré-installé tous les postes Windows restants : CAO, anciennes applications DOS/Windows sans contrat de support que j’avais virtualisées avec VirtualBox, logiciels d’acquisition/transmission de données et de pilotage d’appareils industriels. J’en avais profité pour faire le ménage dans les pourriciels et pour rappeler les consignes de sécurité (clé USB, pièces jointes, téléchargement…).<br>
Les droits d’accès étant gérés par un serveur Windows 2003, je ne m’étais pas cassé la tête à intégrer les postes GNU/Linux dans le domaine, j’avais juste mémorisé sur chaque poste les accès aux dossiers partagés et créé localement sur chaque poste un utilisateur/mot de passe identiques à ceux enregistrés dans l’annuaire Active Directory.<br>
C’était moche mais ça marchait et comme c’était trop complexe à l’époque pour intégrer un poste GNU/Linux dans un domaine Windows, je ne m’étais pas plus cassé la tête.<br>
J’ai de suite eu un gain de temps disponible considérable, plus aucun utilisateur planté ou ralenti, plus de redémarrages des postes nécessaires, plus d’ordinateurs à ré-installer régulièrement. J’ai gagné facilement 2 jours de temps libre par semaine et j’ai pu tranquillement travailler sur l’intégration des logiciels de gestion et sur l’amélioration de la sécurité et du parc informatique.<br>
Au passage, la connexion au serveur Windows TSE depuis un poste GNU/Linux marchait très bien avec <a href="https://doc.ubuntu-fr.org/remmina">Remmina</a>, on perdait juste la possibilité d’écrire des caractères spéciaux (par exemple diamètre ∅) avec la combinaison de touches ALT+xxx. Mais c’est maintenant possible de faire cela avec un logiciel libre tel que <a href="https://linuxfr.org/news/sortie-de-wincompose-0-7-5">WinCompose</a>.<br>
En lisant par hasard un article sur l’outil realm pour intégrer facilement un poste GNU/Linux dans un royaume Kerberos, j’ai eu l’envie de tester cela, ce que je n’avais pas fait à l’époque.<br>
J’ai installé Linux Mint MATE et un serveur Windows 2008 dans 2 machines virtuelles avec VirtualBox et j’ai commencé à tester cela. Avec l’aide d’un membre de l’association <a href="http://www.graoulug.org/wordpress/">Graoulug</a>, nous avons intégré la machine GNU/Linux dans le domaine Windows et nous avons monté automatiquement un dossier Windows partagé lorsque l’utilisateur GNU/Linux ouvre une session.</p>
<p>Si vous souhaitez faire des essais, <a href="http://www.numopen.fr/Integrer-un-ordinateur-avec-Linux-Mint-MATE-dans-un-domaine-Windows">une documentation détaillée est disponible</a>, elle a déjà été testée par une autre personne avec un serveur Windows 2012 et avec un NAS Synology.<br>
N’hésitez pas à apporter vos commentaires, critiques, suggestions, corrections etc.</p>
</div>
<p><img src="media/a625a344.97685ec60cbe5b330f431f9c4b8da633" data-original-source="http://cdn.libravatar.org/avatar/97685ec60cbe5b330f431f9c4b8da633" alt="Gravatar de NumOpen" class="gravatar" /><br/><i>Original post of <a href="http://www.numopen.fr/blog/integration-dun-poste-gnu-linux-domaine-windows/" title="Visit the source">NumOpen</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>La vache libre : <a href="">Firewall Builder &ndash; Une interface graphique pour configurer vos r&egrave;gles iptables, OpenBSD PF, ipfilter, ipfw, Cisco PIX</a> (05/03/2014)</li></ul></div></p>


feed_id: https://blog.genma.fr/?Conference-Du-pseudonymat-au-pseudonyme
title: genma : Conférence Du pseudonymat au pseudonyme
uri: genma-Conférence-Du-pseudonymat-au-pseudonyme
url: https://blog.genma.fr/?Conference-Du-pseudonymat-au-pseudonyme
content:
<img alt="" src="https://blog.genma.fr/IMG/arton2707.jpg?1511088550" width="150" height="79"><div><p>le samedi 18 novembre, j'ai donc donné une conférence au <a href="https://2017.capitoledulibre.org/" title="Site du Capitole du libre">le Capitole du libre à ENSEEIHT de Toulouse</a>.</p>
<p> Le titre : "Du pseudonymat au pseudonyme..." <i>Pendant près de 15 ans, depuis mes débuts sur Internet, j'ai toujours fait de la gestion de mon identité numérique, séparant mon identité civile, Jérôme, de mon identité numérique, Genma, sous laquelle je tiens un blog. Ce pseudonymat a été maintenu malgré une activité publique plus importante au travers de différentes participations à des événements et des conférences, même si l'étanchéité entre ces deux identités était assez poreuse... Avec mon nouvel emploi, le choix d'outer ce pseudonymat et de passer au pseudonyme a été fait ? Pourquoi ? Dans quel but ? Quelles conséquences sur ma vie professionnelle, le fait que mon employeur sache que je suis Genma ? Le tout sur fond de retour d'expérience avec des réponses à des questions tells que quels sont les pièges rencontrés et à éviter dans le cadre du pseudonymat ? Ou encore en quoi le pseudonymat est-il différent de l'anonymat et du pseudonyme ?</i></p>
<p>J'avais fait un billet résumé précurseur de cette conférence (Voir à ce sujet <a href="https://blog.genma.fr/?Du-pseudonymat-au-pseudonyme" title="Du pseudonymat au pseudonyme">Du pseudonymat au pseudonyme</a>, où je m'explique en détail sur ce choix, les conséquences... )</p>
<p>Le support de la conférence est accessible en ligne :</p>
<!--[if !IE]><!--><iframe src="spip.php?page=pdfjs&amp;id_document=2518" width="600" height="400" name="pdf_2518" allowfullscreen></iframe><!--<![endif]--> <!--[if IE]><iframe src="media/b55dfbab.genma_pseudonymat_au_pseudonyme.pdf" data-original-source="https://blog.genma.fr/IMG/pdf/genma_pseudonymat_au_pseudonyme.pdf" width="600" height="400" class="lecteurpdf lecteufpdf-2518spip_documents" name="pdf_2518" allowfullscreen></iframe><![endif]-->
<p>Pour voir le support en plein écran, <a href="https://blog.genma.fr/spip.php?page=pdfjs&amp;id_document=2518" le support de conf en plein>cliquez ici</a>.</p></div>
<p><img src="media/42493842.dd4318d0d3a7d2ffb13756f63b76d85d" data-original-source="http://cdn.libravatar.org/avatar/dd4318d0d3a7d2ffb13756f63b76d85d" alt="Gravatar de genma" class="gravatar" /><br/><i>Original post of <a href="https://blog.genma.fr/?Conference-Du-pseudonymat-au-pseudonyme" title="Visit the source">genma</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>


title: Journal du hacker : Liens intéressants Journal du hacker semaine #46
uri: 2017-11-20-Journal-du-hacker-Liens-intéressants-Journal-du-hacker-semaine-46
feed_id:
https://blog.journalduhacker.net/index.php?article134/liens-interessants-journal-du-hacker-semaine-46-2017

url:
https://blog.journalduhacker.net/index.php?article134/liens-interessants-journal-du-hacker-semaine-46-2017

content:
<p>Pour la 46ème semaine de 2017, voici <strong>10 liens</strong> intéressants que vous avez peut-être ratés, relayés par <a href="https://www.journalduhacker.net/">le Journal du hacker</a>, votre source d’informations pour le Logiciel Libre francophone !</p>

<a href="https://www.journalduhacker.net/"><img src="media/01f45034.logo-journal-du-hacker.png" data-original-source="https://blog.journalduhacker.net/data/medias/logo-journal-du-hacker.png"></a>

<ul><li><a href="https://www.journalduhacker.net/s/jopsgn/9_9_9_9_quad9_un_r_solveur_dns_public_et_avec_s">9.9.9.9 - Quad9, un résolveur DNS public, et avec sécurité</a></li>
<li><a href="https://www.journalduhacker.net/s/zugg7d/firefox_quantum_est_d_sormais_disponible">Firefox Quantum est désormais disponible pour tous les utilisateurs sur Windows, Linux, macOS, Android et iOS</a></li>
<li><a href="https://www.journalduhacker.net/s/hobsnu/mozilla_firefox_57_derri_re_des">Mozilla Firefox 57 : derrière des performances en hausse, le bal des pleureuses commence…</a></li>
<li><a href="https://www.journalduhacker.net/s/knmrck/dun_kernel_panic_un_patch">D'un kernel panic à un patch…</a></li>
<li><a href="https://www.journalduhacker.net/s/tlkrtn/le_noyau_linux_disponible_en_version_4_14">Le noyau Linux disponible en version 4.14</a></li>
<li><a href="https://www.journalduhacker.net/s/nevdn7/question_jdh_les_meilleurs_plugins_vim_du">[question jdh] Les meilleurs plugins Vim du quotidien</a></li>
<li><a href="https://www.journalduhacker.net/s/z8e5fb/limux_le_directeur_de_la_fsfe_revient_sur">LiMux : le directeur de la FSFE revient sur les problèmes du passage de Munich vers Linux</a></li>
<li><a href="https://www.journalduhacker.net/s/mpl9ng/caliopen_la_messagerie_libre_sur_la_rampe">Caliopen, la messagerie libre sur la rampe de lancement</a></li>
<li><a href="https://www.journalduhacker.net/s/bjslpd/parution_de_fedora_27">Parution de Fedora 27</a></li>
<li><a href="https://www.journalduhacker.net/s/dgnuzp/howto_openvpn">Howto OpenVPN</a></li>
</ul><p>Pour ne plus rater aucun article de la communauté francophone, voici :</p>

<ul><li><a href="https://www.journalduhacker.net/rss">Le flux RSS du Journal du hacker</a></li>
<li><a href="https://twitter.com/journalduhacker">Le compte Twitter du Journal du hacker</a></li>
<li><a href="https://framasphere.org/u/journalduhacker">Le compte Diaspora* du Journal du hacker</a></li>
<li><a href="https://framapiaf.org/@journalduhacker">Le compte Mastodon du Journal du hacker</a></li>
</ul><p>De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !</p>

<p>Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. <a href="https://www.journalduhacker.net/invitations/request">Rejoignez-nous</a> pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !</p>

<p><strong>Et vous ? Qu’avez-vous pensé de ces articles ?</strong> N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)</p>
<p><img src="media/ffe97a17.7916ee3cafa0bc3e9583bedad876dcd5" data-original-source="http://cdn.libravatar.org/avatar/7916ee3cafa0bc3e9583bedad876dcd5" alt="Gravatar de Journal du hacker" class="gravatar" /><br/><i>Original post of <a href="https://blog.journalduhacker.net/index.php?article134/liens-interessants-journal-du-hacker-semaine-46-2017" title="Visit the source">Journal du hacker</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Carl Chenet : <a href="">Liens int&eacute;ressants Journal du hacker semaine #46</a> (13/11/2015)</li><li>Journal du hacker : <a href="">Liens int&eacute;ressants Journal du hacker semaine #46</a> (21/11/2016)</li></ul></div></p>


feed_id: https://angristan.fr/auto-heberger-polices-google-fonts-wordpress/
title: Angristan : Auto-héberger les polices Google Fonts sur WordPress
uri: Angristan-Auto-héberger-les-polices-Google-Fonts-sur-WordPress
url: https://angristan.fr/auto-heberger-polices-google-fonts-wordpress/
content:
<p><img width="405" height="270" src="media/f59038d9.no-google-fonts-405x270.jpg" data-original-source="https://angristan.fr/wp-content/uploads/2017/11/no-google-fonts-405x270.jpg" alt="Auto-héberger les polices Google Fonts sur WordPress" srcset="https://angristan.fr/wp-content/uploads/2017/11/no-google-fonts-405x270.jpg 405w, https://angristan.fr/wp-content/uploads/2017/11/no-google-fonts-300x200.jpg 300w, https://angristan.fr/wp-content/uploads/2017/11/no-google-fonts-864x576.jpg 864w, https://angristan.fr/wp-content/uploads/2017/11/no-google-fonts.jpg 1200w" sizes="(max-width: 405px) 100vw, 405px"></p>Je m'étais promis de le faire avec <a href="https://angristan.fr/edito-aout-2017/">mon changement de thème cet été</a>, et c'est désormais le cas : les polices de ce site ne sont plus servies par Google Fonts.<span></span>
<h2>Pourquoi ne pas utiliser Google Fonts ?</h2>
C'est simple : d'une part le gain en performance n'est pas intéressant : je n'ai pas un serveur en mousse, il est tout à fait capable de servir des fichiers de quelques KB, et avec HTTP/2 et le multiplexage des requêtes HTTP, ça n'a aucun impact sur les performances de servir ça depuis le même domaine.

Mais c'est surtout l'aspect vie privée, qu'il est difficile de ne pas évoquer dès que l'on touche à un service Google, puisque chaque visiteur va devoir télécharger quelques fichiers depuis les serveurs de Google. Et donc on a presque un service similaire  : avec votre adresse IP et votre <a href="https://amiunique.org/fp">user-agent</a>, Google va pouvoir vous suivre sur tous les sites qui utilisent Google Fonts et donc exploiter ces données à des fins commerciales par exemple. Bref ça pue, ça apporte pas grand-chose, alors ça dégage.

Je vous invite donc à éviter ce genre de CDN, et à lire cet article de Pepper &amp; Carrot : "<a href="https://peppercarrot.com/article390/my-fight-against-cdn-libraries">My fight against CDN libraries" .</a>

Lorsque j'avais hébergé mes polices en local il y a environ 2 ans pour mon précédent thème, j'avais tout téléchargé et modifié le CSS à la main... Une plaie, d'où le fait que j'ai procrastiné à faire ce changement depuis août :D
<h2>google-webfonts-helper</h2>
Grâce à <a href="https://mstdn.io/@angristan/99010995840197547">Mastodon</a>, j'ai redécouvert un service : <a href="https://github.com/majodev/google-webfonts-helper">google-webfonts-helper.</a> Hyper pratique, il facilite grandement la vie lorsque l'on souhaite migrer de Google Fonts vers un hébergement local, mais en ayant exactement les mêmes fonctionnalités et sans se prendre la tête. Il se présente sous la forme <a href="https://google-webfonts-helper.herokuapp.com/fonts">d'un site web</a>, où on retrouve les polices présentes sur Google Fonts.

Ensuite, on peut télécharger et installer la police en 4 étapes :
<ul><li>On sélectionne le charset</li>
 	<li>On sélectionne le ou les styles</li>
 	<li>On copie le CSS avec les font-face</li>
 	<li>On télécharge un fichier ZIP contenant les polices.</li>
</ul>
Le CSS est adapté aux fichiers présents dans l'archive, si bien que vous n'aurez probablement rien à changer. Si besoin on peut quand même changer le chemin des polices dans le CSS dynamiquement directement sur le site afin de gagner du temps.

<a href="media/bb1e08c8.google-webfonts-helper-2.png" data-original-source="https://angristan.fr/wp-content/uploads/2017/11/google-webfonts-helper-2.png"><img src="media/bb1e08c8.google-webfonts-helper-2.png" data-original-source="https://angristan.fr/wp-content/uploads/2017/11/google-webfonts-helper-2.png" alt="Auto-héberger les polices Google Fonts sur WordPress" width="1429" height="778"></a>

<img src="media/7714594a.google-webfonts-helper-1.png" data-original-source="https://angristan.fr/wp-content/uploads/2017/11/google-webfonts-helper-1.png" alt="Auto-héberger les polices Google Fonts sur WordPress" width="1405" height="719"><h2>Utilisation avec WordPress</h2>
Pour info vous pouvez utiliser google-webfonts-helper avec n'importe quel site web, mais je vais expliquer ici la démarche à suivre dans le cas d'un site WordPress.
<h3>Quelles polices sont utilisées par le thème ?</h3>
Un petit tour dans les sources d'une page utilisant Google Fonts et c'est joué.

Dans mon cas, le CSS Google Fonts était celui-ci :
<pre>https://fonts.googleapis.com/css?family=Lato:400,300italic,700|Source+Sans+Pro:400,400italic</pre>
J'ai donc ici 2 polices avec leurs styles. Le CSS est généré dynamiquement via les paramètres passés dans l'URL.
<h3>Récupération des polices sur google-webfonts-helper</h3>
Ensuite, allez sur <a href="https://github.com/majodev/google-webfonts-helper">google-webfonts-helper</a>, et récupérez le CSS et les polices pour chacune des polices.

Les styles correspondent aux paramètres de l'URL, sachant que 400 c'est regular. Aussi, si vous avez des doutes, vous pouvez tout sélectionner, au final les polices vraiment utilisées sont définies dans du code CSS différent, et un font-face non utilisé ne sera pas téléchargé par le client.
<h3>Création d'un thème enfant</h3>
Pour la suite, vous allez avoir besoin d'un thème enfant. Je ne vous fais pas un tuto, il en existe des pelletées sur Internet.
<h3>Ajout des polices sur le serveur</h3>
Créer un dossier dans votre dossier de thème enfant, et mettez dedans tous les fichiers de police ainsi que le fichier CSS contenant toutes les @font-face pour toutes vos polices
<h3>Désactivation des polices Google Fonts du thème parent</h3>
Avant d'ajouter nos polices locales, il va falloir désactiver l'ajout des polices Google Fonts dans le thème parent.

Pour cela, recherchez la fonction PHP correspondante dans le fichier functions.php de votre thème parent.

Chez moi, elle ressemble à ça :
<pre>/**
 * Load google fonts.
 */
function nisarg_google_fonts() {
 $query_args = array(
 'family' => 'Lato:400,300italic,700|Source+Sans+Pro:400,400italic',
 );
 wp_register_style( 'nisarggooglefonts', add_query_arg( $query_args, '//fonts.googleapis.com/css' ), array(), null );
 wp_enqueue_style( 'nisarggooglefonts' );
}
add_action( 'wp_enqueue_scripts', 'nisarg_google_fonts' );</pre>
Ce qui m'intéresse ici c'est cette ligne :
<pre>wp_enqueue_style( 'nisarggooglefonts' );</pre>
C'est le nom de notre CSS dans le système de style WordPress.

Ensuite, dans votre functions.php de votre thème enfant, ajouter une fonction comme celle-ci, en mettant bien le nom du style pour wp_deregister_style().
<pre>// Remove Google Fonts
function remove_google_fonts() {
 wp_deregister_style( 'nisarggooglefonts' );
}
add_action('wp_print_styles', 'remove_google_fonts' );</pre>
Ensuite on ajoute notre style à nous, content les font-face de Google Fonts, mais pointant sur nos fichiers locals dans le dossier fonts du dossier de notre thème enfant :
<pre>wp_register_style( 'angristan-fonts', get_stylesheet_directory_uri().'/fonts/fonts.css' );
wp_enqueue_style( 'angristan-fonts' );</pre>
Et voilà !

Ca peut paraître un peu complexe à première vue, mais en fait c'est très logique et très simple, surtout si vous êtes habitué à WordPress.

Nous voilà avec un site un peu plus propre :)

[caption id="attachment_5294" align="aligncenter" width="640"]<a href="media/84e7ca8f.privacy_badger_angristan.png" data-original-source="https://angristan.fr/wp-content/uploads/2017/11/privacy_badger_angristan.png"><img src="media/0fe80913.privacy_badger_angristan-1038x298.png" data-original-source="https://angristan.fr/wp-content/uploads/2017/11/privacy_badger_angristan-1038x298.png" alt="" width="640" height="184"></a> Aucune requête externe sur la page d'accueil :)[/caption]<p>L'article <a rel="nofollow" href="https://angristan.fr/auto-heberger-polices-google-fonts-wordpress/">Auto-héberger les polices Google Fonts sur WordPress</a> a été publié sur <a rel="nofollow" href="https://angristan.fr/">Angristan</a></p>
<p><img src="media/40491783.6296566c96741c84fec8de9da966d261" data-original-source="http://cdn.libravatar.org/avatar/6296566c96741c84fec8de9da966d261" alt="Gravatar de Angristan" class="gravatar" /><br/><i>Original post of <a href="https://angristan.fr/auto-heberger-polices-google-fonts-wordpress/" title="Visit the source">Angristan</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Angristan : <a href="">Compiler et installer Nginx avec le module PageSpeed sous Debian 8</a> (10/04/2016)</li><li>Antonin Moulart : <a href="">A vos microblog&hellip; Pr&ecirc;t ? Lib&eacute;rez !</a> (11/05/2010)</li><li>Bardamu : <a href="">Sc&eacute;narios de retour en force des WebApps pour un web plus libre</a> (09/08/2011)</li><li>dada : <a href="">2 - Comment se faire son environnement Google ?</a> (05/09/2011)</li><li>crowd42 : <a href="">Comment ne pas d&eacute;pendre exclusivement de google gr&acirc;ce &agrave; des alternatives libres</a> (20/02/2012)</li></ul></div></p>


feed_id: https://carlchenet.com/gmail-linsideuse-censure/
title: Carl Chenet : Gmail : l’insideuse censure
uri: Carl-Chenet-Gmail-l-insideuse-censure
url: https://carlchenet.com/gmail-linsideuse-censure/
content:
<p>Cet article expose comment gérer une newsletter et l’étude de son traitement par Gmail m’a permis de constater une insidieuse censure effectuée par ce service en ligne.</p>
<p><span></span></p>
<h2>Contexte</h2>
<p>Les lecteurs réguliers de ce blog le savent, je suis l’auteur du <a href="https://lecourrierduhacker.com/">Courrier du hacker</a>, une newsletter hebdomadaire résumant l’actualité francophone du Logiciel Libre et Open Source.</p>
<hr><p><a href="https://lecourrierduhacker.com/"><img src="media/848ce166.courrierduhacker-logo.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo.png" alt="" width="818" height="168" srcset="https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo.png 818w, https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo-300x62.png 300w, https://carlchenet.com/wp-content/uploads/2017/09/courrierduhacker-logo-768x158.png 768w" sizes="(max-width: 818px) 100vw, 818px"></a></p>

	<section><form method="POST" data-attr-form-id="1">

													<label for="EMAIL">

										<!-- dictate label visibility -->
																					<span>
												E-mail											</span>
										
										<!-- Description Above -->
										
										<input name="EMAIL" placeholder="" required="required" type="email" value=""><!-- Description Below --></label>
									
				<!-- Honeypot Trap -->
				<input type="hidden" name="yikes-mailchimp-honeypot" value=""><!-- List ID --><input type="hidden" name="yikes-mailchimp-associated-list-id" value="22e5c06162"><!-- The form that is being submitted! Used to display error/success messages above the correct form --><input type="hidden" name="yikes-mailchimp-submitted-form" value="1"><!-- Submit Button --><button type="submit"> <span>Submit</span></button>				<!-- Nonce Security Check -->
				<input type="hidden" name="yikes_easy_mc_new_subscriber" value="a3c920200d"><input type="hidden" name="_wp_http_referer" value="/category/planet-libre/feed/"></form>
			<!-- MailChimp Form generated by Easy Forms for MailChimp v6.3.24 (https://wordpress.org/plugins/yikes-inc-easy-mailchimp-extender/) -->

			</section><hr><p>J’ai récemment lu beaucoup d’articles sur les newsletters, afin de savoir davantage dans quoi je m’engageais en créant la mienne. Un thème récurrent de ces articles est les interactions avec <a href="https://gmail.com/">Gmail</a>, le service web – gratuit (tiens donc) pour le grand public – offert (haha) par Google pour envoyer, recevoir et gérer « ses » courriels.</p>
<div><a href="https://gmail.com/"><img src="media/6fc86f6f.gmail.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/gmail.png" alt="" width="151" height="114" srcset="https://carlchenet.com/wp-content/uploads/2017/11/gmail.png 151w, https://carlchenet.com/wp-content/uploads/2017/11/gmail-150x114.png 150w" sizes="(max-width: 151px) 100vw, 151px"></a><p>Gmail, le service de courriels de Google</p></div>
<p>J’ai fini par m’interroger de la récurrence de ce thème dans les articles parlant des newsletters que je lisais et j’ai poussé l’investigation, jusqu’à tomber sur la statistique ci-dessous.</p>
<p> </p>
<div><img src="media/22e8c11e.lecourrierduhacker-top-email-clients.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-top-email-clients.png" alt="" width="638" height="364" srcset="https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-top-email-clients.png 638w, https://carlchenet.com/wp-content/uploads/2017/11/lecourrierduhacker-top-email-clients-300x171.png 300w" sizes="(max-width: 638px) 100vw, 638px"><p>Pourcentage des utilisateurs de Gmail dans les abonnés au Courrier du hacker</p></div>
<p>J’ai dû la lire plusieurs fois pour y croire. 43% des abonnés du Courrier du hacker sont des utilisateurs de Gmail. Et il s’agit d’un public libriste. Je vous laisse imaginer la même statistique sur un ensemble de clients de messagerie plus « grand public ».</p>
<h2>Pourquoi Google vous offre Gmail</h2>
<p>Petit rappel de comment se rémunère Google : Gmail lit les courriels de ses utilisateurs (de la correspondance privée donc, que les conditions d’utilisation des services Google signées entre l’utilisateur et Google rend caduque), les analyse, enregistre et catégorise tout ce qu’il peut de ses utilisateurs jusqu’à l’intime (santé, orientation sexuelle, origine ethnique, croyances religieuses) afin de fournir plus tard de la publicité ciblée aux annonceurs et partenaires et tenir au passage toutes ces informations à la disposition du gouvernement américain sur toutes les personnes ayant un compte Google dans le monde).</p>
<div><a href="https://www.google.com/intl/fr/policies/privacy/key-terms/#toc-terms-sensitive-info"><img src="media/06a98e76.google-donnees-personnelles-sensibles.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/google-donnees-personnelles-sensibles.png" alt="" width="729" height="100" srcset="https://carlchenet.com/wp-content/uploads/2017/11/google-donnees-personnelles-sensibles.png 729w, https://carlchenet.com/wp-content/uploads/2017/11/google-donnees-personnelles-sensibles-300x41.png 300w" sizes="(max-width: 729px) 100vw, 729px"></a><p>Extrait des condition d’utilisation de Google. Il reconnaît donc bien utiliser des informations sensibles de ses utilisateurs. Pourquoi sinon les stocker ?</p></div>
<p>Ce « deal » n’est clairement énoncé nul part. Pourtant l’enjeu est une part gigantesque de la vie privée, par exemple le droit à ne pas voir sa correspondance privée étudiée par les ingénieurs de Google et avoir sa vie privée revendue au plus offrant en pièces détachées.</p>
<div><a href="https://www.sites.univ-rennes2.fr/cabinet-livre-artiste/genres/tract/dans-le-cochon-tout-est-bon"><img src="media/4a83a8ed.dans-le-cochon-218x300.jpg" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/dans-le-cochon-218x300.jpg" alt="" width="218" height="300" srcset="https://carlchenet.com/wp-content/uploads/2017/11/dans-le-cochon-218x300.jpg 218w, https://carlchenet.com/wp-content/uploads/2017/11/dans-le-cochon.jpg 581w" sizes="(max-width: 218px) 100vw, 218px"></a><p>Si c’est gratuit, c’est vous le produit</p></div>
<h2>Le problème</h2>
<p>Concernant la newsletter, j’ai également appris en lisant ces articles que les e-mails des nouvelles newsletters tombaient en général les premiers temps (nous verrons cela) <strong>dans l’onglet Promotions de l’interface web de Gmail</strong>. Pardon ? Quelle promotion ? Si vous ne la connaissez pas, en voici un exemple.</p>
<p><a href="http:s//gmail.com"><img src="media/c7acb50b.interface-gmail.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/interface-gmail.png" alt="" width="994" height="298" srcset="https://carlchenet.com/wp-content/uploads/2017/11/interface-gmail.png 994w, https://carlchenet.com/wp-content/uploads/2017/11/interface-gmail-300x90.png 300w, https://carlchenet.com/wp-content/uploads/2017/11/interface-gmail-768x230.png 768w" sizes="(max-width: 994px) 100vw, 994px"></a></p>
<p>Les 3 onglets sont visibles. Par défaut l’onglet présenté est l’onglet nommé « Principale ».</p>
<p>Vous devinez la suite : en tant que rédacteur d’une newseletter, c’est une catastrophe de voir son courriel arriver dans un autre onglet que « Principale », les deux autres n’étant que très rarement consultés, voire considérés comme contenant du spam.</p>
<p>Mon premier réflexe a bien sûr été de guider <a href="https://lecourrierduhacker.com/">via un petite guide</a> les nouveaux abonnées à ma newsletter pour qu’ils puissent accéder au contenu auquel ils ont souscrit. Mais j’aurais de la chance si 1% des nouveaux abonnés suivent ce guide.</p>
<p>Pour information et par curiosité, regardons ce que contient l’onglet « Promotions ».</p>
<p><a href="https://gmail.com/"><img src="media/cfa590eb.gmail-promotions.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/gmail-promotions.png" alt="" width="1051" height="174" srcset="https://carlchenet.com/wp-content/uploads/2017/11/gmail-promotions.png 1051w, https://carlchenet.com/wp-content/uploads/2017/11/gmail-promotions-300x50.png 300w, https://carlchenet.com/wp-content/uploads/2017/11/gmail-promotions-768x127.png 768w, https://carlchenet.com/wp-content/uploads/2017/11/gmail-promotions-1024x170.png 1024w" sizes="(max-width: 1051px) 100vw, 1051px"></a></p>
<p>Ouais, on voit le genre, et donc c’est dans cet onglet qu’arrive ma newsletter à laquelle la personne s’est pourtant abonnée d’elle-même… Merci Google.</p>
<p> </p>
<h2>La censure de Gmail</h2>
<p>Voilà donc ce que j’ai appris à cette occasion, c’est que Gmail ne fait pas que vous échangez un service minime contre votre vie privée. Il s’enfonce encore davantage dans la honte en pratiquant la censure.</p>
<p>Pourquoi cette censure ? Ma newsletter n’est envoyée qu’à de personnes qui ont fait la démarche de s’abonner. Les gens peuvent se désabonner immédiatement. Les courriels envoyés représentent donc un trafic garanti sans spam transmis avec l’autorisation explicite des abonnés.</p>
<p>Mais Gmail n’est pas d’accord, ça n’est pas suffisant pour lui, en opposition avec plus de 35 ans d’utilisation de pratiques communes des utilisateurs de l’e-mail. Au lieu d’acheminer simplement les courriels jusqu’aux différents destinataires,  il applique des filtres à sa discrétion pour pratiquer une pure et simple restriction directe à ses utilisateurs de la liberté de communiquer.</p>
<p>Ajoutons que l’abonné à la newsletter ne recevant pas son e-mail, son premier réflexe va être de maudire non pas Google… mais le rédacteur de la newsletter.</p>
<div><a href="https://en.wikipedia.org/wiki/Ray_Tomlinson"><img src="media/ac95e3b1.Ray_Tomlinson.jpg" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/Ray_Tomlinson.jpg" alt="" width="318" height="474" srcset="https://carlchenet.com/wp-content/uploads/2017/11/Ray_Tomlinson.jpg 318w, https://carlchenet.com/wp-content/uploads/2017/11/Ray_Tomlinson-201x300.jpg 201w" sizes="(max-width: 318px) 100vw, 318px"></a><p>Ray Tomlinson, considéré comme l’inventeur et précurseur de l’utilisation de l’e-mail, décédé en 2016. Source Wikipedia</p></div>
<p>Quelle raison peut invoquer Google pour cette censure ? Réduire le spam pour ces utilisateurs ? Réduire le risque d’hameçonnage ou de propagation de virus informatiques ? Tout cela en censurant des correspondances légitimes ?</p>
<p>Messieurs les fondateurs de Google sont déjà dans le futur, dans <a href="https://fr.wikipedia.org/wiki/Transhumanisme">le transhumanisme</a>, tout ça, mais la solution technique au spam est de supprimer une partie du trafic légitime ? Franchement, pas besoin <a href="https://fr.wikipedia.org/wiki/Intelligence_artificielle">d’intelligence artificielle</a>, <a href="https://fr.wikipedia.org/wiki/Apprentissage_automatique">d’apprentissage automatique</a> (machine learning) et autres technologies vendues comme incroyables pour en arriver à ce résultat, pour le moins décevant. Ou peut-être que l’incapacité technique n’est pas vraiment en cause ?</p>
<div><img src="media/39f04025.serguei-brin.jpg" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/serguei-brin.jpg" alt="" width="500" height="500" srcset="https://carlchenet.com/wp-content/uploads/2017/11/serguei-brin.jpg 500w, https://carlchenet.com/wp-content/uploads/2017/11/serguei-brin-150x150.jpg 150w, https://carlchenet.com/wp-content/uploads/2017/11/serguei-brin-300x300.jpg 300w" sizes="(max-width: 500px) 100vw, 500px"><p>Transhumanisme, intelligence artificielle… mais le spam reste un problème ?</p></div>
<p>Ou peut-être que le grand public n’a pas besoin des newsletters, que c’est pour notre bien et pour éviter les conséquences du spam que ce trafic est stoppé, pour le bien de l’utilisateur de Gmail.</p>
<p>Attendez, restriction de liberté, de la liberté de communiquer contre davantage de sécurité, ça me rappelle quelque chose que nous connaissons à bien connaître en France. Cette infantilisation intéressée, un néo-paternalisme qui visent à échanger les libertés peu à peu contre un faux sentiment de sécurité.</p>
<h2>Les Google Groups, les newsletters à la sauce Google</h2>
<p>En rédigeant cet article m’est revenu en tête l’existence de ce service moche et restreint que sont les Google Groups, une newsletter à la sauce Google, à la mode il y a quelques années. Avec un peu réflexion, on peut imaginer un lien obscur entre la promotion de ce service par Google et la pénalisation des newsletters traditionnelles par leur outil Gmail.</p>
<div><img src="media/88145379.google-groups.png" data-original-source="https://carlchenet.com/wp-content/uploads/2017/11/google-groups.png" alt="" width="866" height="482" srcset="https://carlchenet.com/wp-content/uploads/2017/11/google-groups.png 866w, https://carlchenet.com/wp-content/uploads/2017/11/google-groups-300x167.png 300w, https://carlchenet.com/wp-content/uploads/2017/11/google-groups-768x427.png 768w" sizes="(max-width: 866px) 100vw, 866px"><p>Les Google Groups, l’échange d’e-mails de groupes à la sauce Google</p></div>
<p>Il s’agit donc aussi d’une censure intéressée bassement mercantile, du placement de produit au forceps par la restriction de libertés utilisées quotidiennement par les échanges d’e-mails sous forme de newsletters depuis 35 ans.</p>
<h2>Quelles alternatives ?</h2>
<p>Devant tant de cynisme et d’utilisation de méthodes liberticides, vers quelles alternatives se tourner ?</p>
<ul><li><a href="http://www.hebergeurslibres.net/wakka.php?wiki=listehebergeurs">une liste d’hébergeurs associatifs</a></li>
<li>le projet <a href="https://protonmail.com/">ProtonMail</a>, offrant du stockage chiffrée de vos données, inaccessibles à l’opérateur du service</li>
<li>tous les fournisseurs de services de courriel dont les conditions générales n’incluent pas l’exploitation de vos données personnelles ni de restrictions d’accès aux courriels de certains de vos correspondants légitimes</li>
</ul><h2>Conclusion</h2>
<p>Comme nous l’avons vu, Gmail est un service faussement gratuit, à éviter absolument, une machine à débiter votre vie privée en tranches revendues au plus offrant et – c’est l’objet de cet article – censurant au passage vos correspondances afin de s’assurer de votre emprisonnement au sein du système de services interconnectés que Google a mis en place.</p>
<h2>Me suivre sur les réseaux sociaux</h2>
<p>N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :</p>
<ul><li><strong>Mastodon</strong> : <a href="https://mastodon.social/@carlchenet">@carlchenet</a></li>
<li><strong>Diaspora</strong> :  <a href="https://framasphere.org/u/carlchenet">@carlchenet</a></li>
<li><strong>Twitter</strong> : <a href="https://twitter.com/carl_chenet">@carl_chenet</a></li>
</ul>
<p><img src="media/46f73009.e1f1addc890668ce2561431b7be810bc" data-original-source="http://cdn.libravatar.org/avatar/e1f1addc890668ce2561431b7be810bc" alt="Gravatar de Carl Chenet" class="gravatar" /><br/><i>Original post of <a href="https://carlchenet.com/gmail-linsideuse-censure/" title="Visit the source">Carl Chenet</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>Carl Chenet : <a href="">Migration de Feed2tweet de la 1.0 vers la 1.1</a> (25/04/2017)</li><li>Carl Chenet : <a href="">De l&rsquo;importance de bien choisir son instance Mastodon</a> (15/05/2017)</li><li>Carl Chenet : <a href="">Booster automatiquement les toots int&eacute;ressants de Mastodon avec le bot Boost</a> (17/05/2017)</li><li>Carl Chenet : <a href="">&Eacute;dito de juillet 2017</a> (13/07/2017)</li><li>Carl Chenet : <a href="">Sur Mastodon, cr&eacute;er son compte de secours&hellip; ou tout perdre</a> (25/07/2017)</li></ul></div></p>


feed_id: https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/
title: Miamondo : Openbox : minimalisme et légèreté.
uri: Miamondo-Openbox-minimalisme-et-légèreté
url: https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/
content:
<p><span>Bonjour</span></p>
<p><span>C’est <a href="https://miamondo.org/2017/11/12/jai-ete-mordu-par-une-viperr/" target="_blank" rel="noopener">en installant Vipper</a> sur mon vieil ordinateur portable que j’ai véritablement découvert <a href="https://fr.wikipedia.org/wiki/Openbox" target="_blank" rel="noopener">Openbox</a>. Certes, j’en avais entendu parler mais sans m’y intéresser plus que ça. Contrairement à <a href="https://fr.wikipedia.org/wiki/Xfce" target="_blank" rel="noopener">Xfce</a>, <a href="https://fr.wikipedia.org/wiki/MATE" target="_blank" rel="noopener">MATE</a>, <a href="https://fr.wikipedia.org/wiki/GNOME" target="_blank" rel="noopener">GNOME</a> et Consorts, Openbox n’est pas un environnement de bureau mais un simple gestionnaire de fenêtres ce qui explique son extrême légèreté. Sur les conseils d’un posteur, j’ai commencé à éditer le fichier <strong>~/.config/openbox/menu.xml</strong> pour créer un menu principal à ma sauce (en bas à gauche).</span></p>
<p><a href="media/ba4e3153.viperr_menu.png" data-original-source="https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png" target="_blank" rel="noopener"><img data-attachment-id="18915" data-permalink="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/viperr_menu/" data-orig-file="https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=632&amp;h=395" data-orig-size="1280,800" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="viperr_menu" data-image-description="" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=632&amp;h=395?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=632&amp;h=395?w=840" src="https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=632&amp;h=395" alt="viperr_menu" width="632" height="395" srcset="https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=632&amp;h=395 632w, https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=1264&amp;h=790 1264w, https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=150&amp;h=94 150w, https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=300&amp;h=188 300w, https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=768&amp;h=480 768w, https://ordinosor.files.wordpress.com/2017/11/viperr_menu.png?w=1024&amp;h=640 1024w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px"></a></p>
<p><span>Je l’ai traduit en allemand et je n’ai gardé que les fonctionnalités que j’utilise réellement. Je dois reconnaître que j’ai pris plaisir à modifier la configuration d’Openbox. J’ai eu le sentiment de me coucher moins con. Du coup, je me suis dit :</span></p>
<blockquote><p><span>« Mais Ordinosor… Pourquoi n’essaierais-tu pas d’installer Openbox sur Volgor, ton fidèle ordinateur de bureau, en lieu et place de l’environnement Xfce? »</span></p></blockquote>
<p><span>À <a href="https://fr.wikipedia.org/wiki/Core" target="_blank" rel="noopener">core</a> vaillant, rien d’impossible, je me suis lancé dans ce nouveau chantier en installant au préalable le gestionnaire de fenêtres susnommé:</span></p>
<p><span><strong>sudo aptitude install openbox</strong></span></p>
<p><span>Puis en supprimant tout ce qui ressemblait à Xfce :</span></p>
<p><span><strong>sudo apt-get purge xfce*</strong></span></p>
<p><span>Petit reboot et le résultat magique de cette manipulation radikale s’est affiché devant mes yeux de grand enfant toujours prompt à s’émerveiller à la moindre nouveauté :</span></p>
<figure data-shortcode="caption"><img data-attachment-id="18908" data-permalink="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/auswahl_031/" data-orig-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&amp;h=408" data-orig-size="1242,770" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="Auswahl_031" data-image-description="<p>Capture d&amp;#39;écran de mon nouveau bureau</p>
" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&amp;h=408?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&amp;h=408?w=840" src="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&amp;h=408" alt="Capture d'écran de mon nouveau bureau" width="657" height="408" srcset="https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=657&amp;h=408 657w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=150&amp;h=93 150w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=300&amp;h=186 300w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=768&amp;h=476 768w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png?w=1024&amp;h=635 1024w, https://ordinosor.files.wordpress.com/2017/11/auswahl_031.png 1242w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px"><figcaption><span>Capture d’écran de mon nouveau bureau</span></figcaption></figure><p><span>Un écran tout gris… Ah ben oui, je vous avais prévenu! Openbox est un gestionnaire de fenêtres minimaliste, pour ne pas dire austère, voire même ascétique! Cela dit, <em>Keine Panik!</em> En effectuant un clic droit sur ce bureau déprimant, on accède à un embryon de menu qui va nous permettre de continuer notre progression. Ce menu principal correspond très exactement au fichier : <strong>~/.config/openbox/menu.xml</strong></span></p>
<p><span><strong>.config</strong> est un dossier caché dans votre répertoire personnel (le point signifie « caché »). On accède aux dossiers cachés en pressant les touches <strong>Ctrl+h</strong>. Vous pouvez faire le choix de modifier directement à la main ce <strong>menu.xml</strong> (Ce n’est pas bien compliqué) ou bien d’installer <strong>obmenu</strong> qui est l’interface graphique vous permettant d’effectuer cette opération de modification. Profitez-en également pour installer <strong>obconf</strong> qui est le gestionnaire de configuration des fenêtres.</span></p>
<p><span><strong>sudo aptitude install obmenu</strong></span></p>
<p><span><strong>sudo aptitude install obconf</strong></span></p>
<p><span>Voici donc mon menu dans la langue de Jérôme Boateng :</span></p>
<p><span><img data-attachment-id="18910" data-permalink="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/menu_035/" data-orig-file="https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png?w=840" data-orig-size="345,482" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="Menü_035" data-image-description="" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png?w=840?w=215" data-large-file="https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png?w=840?w=345" src="https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png?w=840" alt="Menü_035" srcset="https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png 345w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png?w=107 107w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_035.png?w=215 215w" sizes="(max-width: 345px) 85vw, 345px"></span></p>
<p><span>À ce stade, nous avons donc :</span></p>
<ul><li><span>un fond d’écran tout gris,</span></li>
<li><span>la possibilité d’ouvrir un menu en effectuant un clic droit,</span></li>
<li><span>la possiblité de modifier ce menu grâce à <strong>obmenu</strong> ou bien manuellement.</span></li>
<li><span>la possiblité de configuer les fenêtres grâce à <strong>obconf</strong>, en entrant simplement la commande <strong>obconf</strong> dans un terminal.</span></li>
</ul><p><span>C’est un peu spartiate… Installons donc <strong>nitrogen</strong>, un outil fort simple d’utilisation qui va nous permettre d’offrir à ce bureau tristounet un magnifique fond d’écran.</span></p>
<p><span><strong>sudo aptitude install nitrogen</strong></span></p>
<p><span><img data-attachment-id="18911" data-permalink="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/auswahl_036/" data-orig-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=607&amp;h=417" data-orig-size="951,653" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="Auswahl_036" data-image-description="" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=607&amp;h=417?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=607&amp;h=417?w=840" src="https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=607&amp;h=417" alt="Auswahl_036" width="607" height="417" srcset="https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=607&amp;h=417 607w, https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=150&amp;h=103 150w, https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=300&amp;h=206 300w, https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png?w=768&amp;h=527 768w, https://ordinosor.files.wordpress.com/2017/11/auswahl_036.png 951w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px"></span></p>
<p><span>C’est déjà mieux mais il manque une barre de tâches. Pour cela, nous allons installer l’outil <strong>tint2</strong> : </span></p>
<p><span><strong>sudo aptitude install tint2</strong>. </span></p>
<p><span>Là encore, vous pouvez le configurer à la main en éditant le fichier <strong>~/.config/tint2/tint2rc</strong> ou bien vous pouvez le configurer grâce à une interface graphique qui apparait en entrant dans un terminal la commande <strong>tint2conf</strong>. La configuration de la barre de tâches est l’opération qui m’a demandé le plus d’énergie. j’ai galéré un peu, notamment pour « accrocher » le menu principal à la barre de tâches (en bas à gauche, avec l’icône me représentant). Le menu se déroule grâce à un outil un peu spécial qui s’appelle <strong>xdotool</strong> et qui simule des événements du clavier et de la souris. Dans ce cas précis, il simule l’événement clavier <strong>super + space</strong> (touche window + barre d’espacement).</span></p>
<p><span>Au final, voici ce que ça donne (j’ai finalement opté pour un fond d’écran Debian…) :</span></p>
<p><span><a href="media/7e156eda.menc3bc_037.png" data-original-source="https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png" target="_blank" rel="noopener"><img data-attachment-id="18917" data-permalink="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/menu_037/" data-orig-file="https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png" data-orig-size="1920,1080" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="Menü_037" data-image-description="" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=840" src="https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=643" alt="Menü_037.png" width="643" height="362" srcset="https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=643 643w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=1286 1286w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=150 150w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=300 300w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=768 768w, https://ordinosor.files.wordpress.com/2017/11/menc3bc_037.png?w=1024 1024w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px"></a></span></p>
<p><span>Pour que la barre de tâches apparaisse à chaque démarrage, il convient d’entrer cette commande dans le fichier <strong>~/.config/openbox/autostart</strong> : </span></p>
<p><span><strong>tint2 &amp;</strong></span></p>
<p><span>Si vous souhaitez lancer d’autres applications au démarrage, il suffit d’entrer les commandes correspondantes toujours suivies de l’esperluette <strong>&amp;</strong>. Voici le contenu de mon fichier <strong>autostart</strong> qui lance la barre de tâches, le fond d’écran et mon agenda personnel que j’avais programmé en python l’année dernière.</span></p>
<p><span># These things are run when an Openbox X Session is started.</span><br><span> # You may place a similar script in $HOME/.config/openbox/autostart</span><br><span> # to run user-specific things.</span></p>
<p><span># Lance tint2</span><br><span> tint2 &amp;</span></p>
<p><span># Lance le fond d’écran</span><br><span> nitrogen –restore &amp;</span></p>
<p><span># Lance mon agenda personnel et ouvre ce dernier au jour courant</span><br><span> /home/ordinosor/Documents/agendrier/agenda.py &amp;</span></p>
<p><a href="media/a760f7c1.desktop-1_039.png" data-original-source="https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png" target="_blank" rel="noopener"><img data-attachment-id="18918" data-permalink="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/desktop-1_039/" data-orig-file="https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=653&amp;h=368" data-orig-size="1920,1080" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="desktop 1_039" data-image-description="" data-medium-file="https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=653&amp;h=368?w=300" data-large-file="https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=653&amp;h=368?w=840" src="https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=653&amp;h=368" alt="desktop 1_039.png" width="653" height="368" srcset="https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=653&amp;h=368 653w, https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=1306&amp;h=736 1306w, https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=150&amp;h=84 150w, https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=300&amp;h=169 300w, https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=768&amp;h=432 768w, https://ordinosor.files.wordpress.com/2017/11/desktop-1_039.png?w=1024&amp;h=576 1024w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px"></a></p>
<p><span>En guise de conclusion, je dirais qu’on peut très bien se contenter d’un simple gestionnaire de fenêtres et se passer d’un environnement de bureau. Outre la légèreté, vous prendrez plaisir à configurer votre bureau et à le voir prendre forme petit à petit.</span></p>
<p><span>Tschüss!</span></p><br><a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ordinosor.wordpress.com/18906/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ordinosor.wordpress.com/18906/"></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=miamondo.org&amp;blog=88640341&amp;post=18906&amp;subd=ordinosor&amp;ref=&amp;feed=1" width="1" height="1">
<p><img src="media/848c13f4.27be241458674ac3359b0353fdc37c4a" data-original-source="http://cdn.libravatar.org/avatar/27be241458674ac3359b0353fdc37c4a" alt="Gravatar de Miamondo" class="gravatar" /><br/><i>Original post of <a href="https://miamondo.org/2017/11/20/openbox-minimalisme-et-legerete/" title="Visit the source">Miamondo</a>.Votez pour ce billet sur <a href="http://www.planet-libre.org" title="Aller sur le planet">Planet Libre</a>.</i></p>
<p><div class="similar-block"><h3>Articles similaires</h3><ul><li>theClimber : <a href="">La bible traduit pour les geek</a> (22/06/2009)</li><li>Miamondo : <a href="">T-UI launcher, un bel outil destin&eacute; aux geeks</a> (19/05/2017)</li><li>Miamondo : <a href="">Installer une distribution Linux sur un smartphone Android</a> (26/05/2017)</li><li>Miamondo : <a href="">Cr&eacute;er une cl&eacute; USB persistante avec Archlinux.</a> (12/09/2017)</li><li>Miamondo : <a href="">Archlinux : Finalisation de mon installation</a> (11/01/2017)</li></ul></div></p>


