# articles

feed_id: 4870529f-45ee-48e5-a088-815ae0120751
title: Supervisor tes nodes
uri: Supervisor-tes-nodes
url: http://postblue.info/supervisor-node/
content:
<p>Pour ce premier article écrit et publié avec <a href="https://ghost.org/">Ghost</a>, j'en profite pour expliciter un point de ma configuration qui m'a été <a href="http://www.belfalas.org/notice/1430962">suggéré par Loïc Guitaut</a>, suite à la lecture de <a href="https://blog.belfalas.eu/ghost-le-gentil-moteur-de-blog/">son article présentant Ghost</a>. Ce point est l'utilisation de <a href="http://supervisord.org/">Supervisor</a> pour lancer des services <a href="http://nodejs.org/">node.js</a> au démarrage ou quand ils plantent, sans pour autant m'emmerder à <a href="https://wiki.debian.org/LSBInitScripts">créer des <em>initscripts</em></a> ni jouer avec la commande <code>forever</code>.</p>

<h2 id="installation">Installation</h2>

<p>D'abord, installer le serveur <code>supervisor</code>, je vous renvoie à la <a href="http://supervisord.org/installing.html">documentation officielle</a> pour plus de précisions, sachez seulement que pour ma part j'ai fait une installation depuis les dépôts de <a href="http://www.debian.org/">Debian</a> avec le paquet <code>supervisor</code>.</p>

<pre><code>sudo apt-get install supervisor
</code></pre>

<h2 id="configuration">Configuration</h2>

<p>Ma configuration du <em>daemon</em> est pour le moins succincte. De fait, je n'ai touché à rien de la configuration par défaut. Il suffit de rajouter des fichiers de configuration dans <code>/etc/supervisord/conf.d</code> pour chaque node à gérer. Ce qui donne la configuration suivante, à éditer en fonction de sa propre configuration (chemins, utilisateurs, <em>etc</em>).</p>

<h3 id="etherpad">Etherpad</h3>

<pre><code>[program:etherpad]
command = node /path/to/etherpad/node_modules/ep_etherpad-lite/node/server.js
directory = /path/to/etherpad
user = etherpad
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/etherpad.log
stderr_logfile = /var/log/supervisor/etherpad_err.log
</code></pre>

<h3 id="pump">Pump</h3>

<pre><code>[program:pump]
command = node /path/to/pump/bin/pump
directory = /path/to/pump
user = pump
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/pump.log
stderr_logfile = /var/log/supervisor/pump_err.log
</code></pre>

<h3 id="haste">Haste</h3>

<pre><code>[program:haste]
command = node /path/to/haste/server.js
directory = /path/to/haste
user = haste
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/haste.log
stderr_logfile = /var/log/supervisor/haste_err.log
</code></pre>

<h3 id="ghost">Ghost</h3>

<pre><code>[program:ghost]
command = node /path/to/ghost/index.js
directory = /path/to/ghost
user = ghost
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/ghost.log
stderr_logfile = /var/log/supervisor/ghost_err.log
environment = NODE_ENV="production"
</code></pre>

<h3 id="mediagoblin">Mediagoblin</h3>

<h4 id="paster">Paster</h4>

<pre><code>[program:mediagoblin-paster]
command = /path/to/mediagoblin/bin/paster serve /var/www/mediagoblin/paste_local.ini --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543
directory = /path/to/mediagoblin
user = mediagoblin
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/mediagoblin-paster.log
stderr_logfile = /var/log/supervisor/mediagoblin-paster_err.log
environment = CELERY_ALWAYS_EAGER=false
</code></pre>

<h4 id="celery">Celery</h4>

<pre><code>[program:mediagoblin-celeryd]
command = /path/to/mediagoblin/bin/celeryd
directory = /path/to/mediagoblin
user = mediagoblin
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/mediagoblin-celeryd.log
stderr_logfile = /var/log/supervisor/mediagoblin-celeryd_err.log
environment = CELERY_CONFIG_MODULE="mediagoblin.init.celery.from_celery"
</code></pre>

<h3 id="isso">Isso</h3>

<pre><code>[program:isso]
command = /path/to/isso -c /path/to/isso/isso.conf run
directory = /path/to/isso
user = isso
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/isso.log
stderr_logfile = /var/log/supervisor/isso_err.log
environment = LANG="fr_FR.UTF-8"
</code></pre>

<h2 id="appliquer">Appliquer</h2>

<p>Ne m'en sortant pas, n'obtenant qu'un <code>ERROR (no such process)</code> en tentant d'appliquer ma configuration, <a href="http://www.belfalas.org/notice/1431007">Loïc revint à la rescousse</a> me délivrer la sainte commande.</p>

<pre><code>sudo supervisorctl update
</code></pre>

<p>Ensuite, il est possible de gérer les programmes rajoutés par <code>supervisorctl {start,stop,status} programme</code>, dont vous obtiendrez la liste avec <code>supervisorctl avail</code>.</p>


feed_id: e214e7af-f5ca-4653-927b-87b7a66a0d4f
title: Cassandre du logiciel libre
uri: 2014-03-29-Cassandre-du-logiciel-libre
url: http://postblue.info/logiciel-libre-cassandre/
content:
<p>Ça commence à me soûler cette nouvelle mode de la blogosphère francophone : le libre va mal, le libre se meurt, au secours, agitez le pavillon, sortez les mouchoirs, levez les bras en pleurant, seuls les plus valeureux s'en sortiront.</p>

<p>J'ai dit blogosphère francophone, je dirais même blogueurs français, en déballant le cliché que l'activité favorite du français consiste à se plaindre. Le niveau supérieur dudit cliché étant que le français le revendique et en est fier.</p>

<p>J'arrête de la ramener, c'est trop facile et même un peu mesquin. Désolé pour la boutade concernant l'état d'esprit français (les français ont des blagues sur les belges, qui eux aiment se foutre de la gueule des premiers).</p>

<p>Des noms, donc : Cyrille Borne (coucou) et Frederic Bezies (bisous) ont l'air de ne plus se sentir à ce sujet. Et oui, ils sont libres de pousser des cris d'orfraie quand leurs flux RSS se tarissent, à quoi cela sert-il d'avoir un blog sinon ?</p>

<p>Rappel des événements. Chez Cyrille :</p>

<ul>
<li><a href="http://cyrille-borne.com/post/2013/10/02/linux-octobre-2013-dans-le-vide-intergalactique-personne-ne-vous-entendra-troller">Dans le vide intergalactique, personne ne vous entendra troller</a></li>
<li><a href="http://cyrille-borne.com/index.php/post/2013/10/25/votre-liberte-de-forker-ma-liberte-de-constater-et-dinformer">Votre liberté de forker, ma liberté de constater et d'informer</a></li>
<li><a href="http://cyrille-borne.com/index.php/post/2013/10/25/note-de-service-au-fait-vous-etes-libres">Note de service : au fait vous êtes libres</a></li>
</ul>

<p>Chez Frederic :</p>

<ul>
<li><a href="http://frederic.bezies.free.fr/blog/?p=10486">La mort de SolusOS, première d’une longue liste de distributions GNU/Linux à disparaître ?</a></li>
<li><a href="http://frederic.bezies.free.fr/blog/?p=10488">Fermeture du blog jusqu'à nouvel ordre</a> (et c'est bien dommage)</li>
</ul>

<p>Ce qu'il faut retenir de ces articles, c'est que rien ne va plus. Malheur, le libre va mal parce que plus rien ne fait l'événement. Les outils se stabilisent, les programmes qui marchent sont maintenus, les distributions à forte communauté se perpétuent bref, tout roule. Ce qui s'en écarte, ce sont les mauvaises nouvelles qui, elles, parviennent à faire l'événement. Si quelque chose va bien en général, on n'en parle pas, et si on parle de quelque chose,  c'est qu'il y a un problème quelque part.</p>

<p>Bref, les choses se passent, mais sans faire de sortie à grand fracas, sans que chaque <em>bugfix</em> soit l'événement dont tout le monde parle (parce qu'en vrai, tout le monde s'en fout, non ?). L'actualité est morne, parce que les choses vont bien. Nous pouvons voir quelques changements, du côté <a href="http://linuxfr.org/news/wireshark-passe-a-qt">de Wireshark</a>, <a href="http://linuxfr.org/news/humble-bundle-7-pour-android-et-pc">du Humble Bundle</a> avec quelques premières sous GNU/Linux, par exemple, pas de quoi faire de multiples dépêches de blog à ce propos.</p>

<p>Règle générale : peu de nouvelles distributions, mais est-ce un mal ? Pas de nouvelles, bonnes nouvelles, Arch Linux et Debian continuent leur bonhomme de chemin, comme bien d'autres distributions plus ou moins <em>forkées</em> de quelque part, et ça me suffit. Peut-être que les <em>forkeurs</em> fous se sont calmés, voilà qui est apaisant.</p>

<p>Cela n'est pas sans me rappeler ce que j'avais écris lors de <a href="http://postblue.info/thunderbird-pas-de-nouveaute-pas-de-chocolat/">la fausse tempête Thunderbird</a> : <em>au-secours-ils-arrêtent-fuyons-et-achevons-les-au-passage</em>.</p>

<blockquote>
  <p>(...) voir la mort d’un projet à l’arrêt de sa course effrénée aux nouveautés, au profit d’une recherche plus poussée de stabilité et de sécurité est (...) <em>drôle</em> (...) en pensant à tant de (...) superficialité à l’égard du logiciel. Pas de nouveauté, pas de chocolat, c’est ça ?</p>
</blockquote>

<p>Je maintiens : quand il n'y a aucun événement notable, que les développement suivent leur cours (pas un jour ne passe sans qu'un paquet saute de version sur mon Arch Linux), il faut craindre le pire ; il ne se passe rien, donc c'est que tout va mal. Non pas que les blogueurs ne soient pas libres de s'exprimer sur le sujet, ça ressemble plutôt à un flan bourré d'air.</p>


feed_id: 2f87cf94-df96-48af-885d-4f3becdeb668
title: Pauvres petits écrans de netbook
uri: 2014-03-29-Pauvres-petits-écrans-de-netbook
url: http://postblue.info/pauvres-petits-ecrans-de-netbook/
content:
<p>Ceci n'est qu'un bref billet d'humeur dédié à me plaindre. En cause : la difficile cohabitation de l'écran de mon netbook et de mon environnement de bureau préféré, GNOME.</p>

<p>Le <a href='http://postblue.info/arch-linux-ssd-lvm-gpt/' >Samsung N210 Plus dont je suis l'heureux propriétaire</a> depuis quelques temps est un netbook et, à ce titre, a un écran d'une résolution de 1024 sur 600 pixels Certes ce n'est pas bien grand, mais c'est tout à fait suffisant pour mon utilisation : naviguer sur les Internets, éditer des documents (en LaTeX ou en texte brut), correspondre par email ou XMPP, maintenir mon serveur depuis SSH.</p>

<p>Un si petit écran est tout à fait nécessaire pour moi qui trimbale ma machine pour prendre des notes en cours. J'exclus la possibilité de me déplacer avec une plus grande machine, du moins une que j'aurais payée de ma poche, et qui pourrait avoir moins d'autonomie : j'avoisine les 8 heures d'autonomie avec mon Samsung.</p>

<p>Cependant, je m'aperçois à l'usage de GNOME de détails qui me donnent l'impression que l'environnement de bureau en question n'est pas pensé pour une si petite résolution. Voici une liste non-exhaustive des problèmes rencontrés avec version 3.10 sur Arch Linux.</p>

<p><img src="media/379eca75.Capture_d_cran_de_2013_10_13_192846.png" data-original-source="http://postblue.info/content/images/2013/Nov/Capture_d_cran_de_2013_10_13_192846.png"  alt="Capture d'écran de 2013-10-13 19:28:46" /></p>

<p>L'outil de sélection de l'arrière-plan « déborde » de l'écran : les trois boutons de sélection (Papiers peints, Images, Couleurs) sont invisibles et inatteignables.</p>

<p><img src="media/17a3bb9e.Capture_du_2013_10_13_193501.png" data-original-source="http://postblue.info/content/images/2013/Nov/Capture_du_2013_10_13_193501.png"  alt="Capture du 2013-10-13 19:35:01" /></p>

<p>Le nom des éléments du menu d'Activités est minuscule et tronqué, ce qui les rend incompréhensibles (heureusement, je n'utilise que rarement ce procédé, préférant une recherche en appuyant sur la touche Super puis en entrant le nom de l'application désirée). D'ailleurs, ce même menu d'activité occupe un carré central alors qu'il y a encore de la place à l'écran : il n'est déjà pas grand, pourquoi ne pas tout « remplir » ?</p>

<p><img src="media/496b470e.Capture_d_cran_de_2013_10_13_193927.png" data-original-source="http://postblue.info/content/images/2013/Nov/Capture_d_cran_de_2013_10_13_193927.png"  alt="Capture d'écran de 2013-10-13 19:39:27" /></p>

<p>La place disponible pour rédiger un message dans Evolution est minime : 9 lignes (ou 7 en cas de formatage HTML), soit un paragraphe dans le cas des mails tartinesques que je peux envoyer.</p>

<p><img src="media/830c61bf.Capture_d_cran_de_2013_10_13_194714.png" data-original-source="http://postblue.info/content/images/2013/Nov/Capture_d_cran_de_2013_10_13_194714.png"  alt="Capture d'écran de 2013-10-13 19:47:14" /></p>

<p>Alors que des applications telles que Fichiers (<code>nautilus</code>) et Web (<code>epiphany</code>) évoluent vers une rationalisation de l'espace utile en ayant joint la barre de titre et la barre d'outils, ce qui est une très bonne idée, d'autres comme gedit, Terminal (<code>gnome-terminal</code>), ... sont à la traîne et bouffent de la place au contenu</p>

<p>J'adore GNOME, vraiment, il y a dans cet environnement de bureau des paradigmes qui m'enthousiasment et une cohésion de l'interface qui me plaît hautement. Cependant, des détails comme ceux que je relève tendent à me rendre l'utilisation de GNOME sinon inconfortable, au moins sous-optimale. GNOME n'est pas fini, je le sais et je continuerai à l'utiliser, mais des inégalités dans l'évolution des applications montrent l'ampleur de la tâche encore à accomplir pour avoir un environnement totalement cohérent.</p>

<p>NB : pas mieux avec Cinnamon, le Menu déborde de l'écran lui aussi.</p>

<p>PS : je connais l'existence des WM et tiling managers, j'ai été un fervent utilisateur de <a href='http://postblue.info/netbook-archlinux-i3-optimisation/' >i3 sur ma précédente machine</a>.</p>


feed_id: 1f5ed3c5-a9f8-4516-b223-dbc1bd90e208
title: Le clône et l'anthropophagie
uri: 2014-03-29-Le-clône-et-l-anthropophagie
url: http://postblue.info/clone-et-anthropophagie/
content:
<p>Est-ce que manger un clone humain peut être assimilé à de l'anthropophagie ? Si oui, est-ce que le clone est un humain lui-même ? Auquel cas, sur base de quelle définition de l'humain ? Vous avez trois heures.</p>


feed_id: 2110d4cb-d392-402b-bec0-89473b86fce2
title: Arch Linux: première fois
uri: 2014-03-29-Arch-Linux-première-fois
url: http://postblue.info/arch-linux-premiere-fois/
content:
<p>Le jour -- plutôt la nuit -- où j'ai installé <a href='https://www.archlinux.org/' >Arch Linux</a> pour la première fois, je voulais faire un <em>dual boot</em>, histoire de continuer à faire des conneries sous Windows. Je l'avais déjà fait avec d'autres distributions comme sur plusieurs autres machines, et je voulais continuer à procéder de la sorte -- seule structure que jusqu'alors j'avais connue.</p>

<p>Bref, une manipulation plus loin dans l'utilisation de <code>fdisk</code> lors du processus d'installation (c'était bien avant les <a href='http://wiki.archlinux.fr/Installation' >Arch Install Scripts</a>), et j'avais écrasé mon disque. Un peu d'inattention et Arch Linux était le seul système d'exploitation sur ma machine.</p>

<p>Heureusement, j'avais fait une sauvegarde de mes données, ayant tout de même pris en compte qu'il était possible que je fasse une grosse connerie. On peut dire que j'avais eu le nez creux.</p>

<p>Ce qu'il faut retenir, c'est que n'ai jamais réinstallé Windows depuis, ni sur cette machine ni sur aucune autre. J'y ai gardé mon installation d'Arch Linux et depuis cinq ou six ans <a href='http://postblue.info/archlinux-simplicity-vs-facility/' >je n'ai jamais dû réinstaller</a>. Je n'ai même jamais réessayé de faire un <em>dual boot</em> avec quelque système que ce soit.</p>


feed_id: 507bf415-d3b0-4a1a-bdf4-a5a4512a1bb5
title: Lâchez tout
uri: 2014-03-29-Lâchez-tout
url: http://postblue.info/lachez-tout/
content:
<blockquote>
  <p>Nous ne sommes pas les seuls à nous être un jour levés du plus profond de nos solitudes pour partir au devant de nos fantômes, sans nous soucier qu’il soient mâles ou femelles. (…) Il n’y a pas de pensée spécifiquement féminine, il n’y a ici ou là que des êtres se sentant un jour obligés d’enfreindre les limites qu’on leur a assignées. (…) Le paysage où nous avançons ne s'enrichit que de nos départs. Tout étant en place pour que nous restions en place, nos chances de parcours se confondent avec les ponts que nous jetons au-delà de nous-mêmes. Notre seul espoir d'en finir avec la vie telle qu'elle est caricaturalement réside dans cette détermination de forcer les perspectives, jusqu'à ce que surgisse l'horizon symbolique, se déployant entre les ombres croisées des mots et des choses, de la chair et du langage mais aussi du masculin et du féminin.</p>
</blockquote>

<p>Annie Le Brun in Vagit-prop, Lâchez tout, Éditions du Sandre, p. 50.</p>


feed_id: 4997251e-260a-4d81-96bc-527faee67802
title: elementary OS: mock-ups for human beings
uri: elementary-OS-mock-ups-for-human-beings
url: http://postblue.info/elementary-os-mockups-for-human-beings/
content:
<p>Cela n'aura pas échappé aux <em>techies</em> un tant soit peu au courant de l'actualité des distributions GNU/Linux : la <a href='https://fr.wikipedia.org/wiki/Elementary_OS' #Versions">deuxième version majeure</a> -- Luna -- d'<a href='http://elementaryos.org/' >elementary OS</a> est sortie. À la louche, il s'agit de la première mise à jour stable en deux ans, puisque la première version majeure -- <a href='https://archive.org/details/ElementaryOs-Jupiter' >Jupiter</a> -- était parue le 11 avril 2011.</p>

<p>J'ai longtemps entretenu à l'endroit d'<a href='http://elementaryos.org/' >elementary OS</a> un mélange d'élitisme déplacé (« Seulement <a href='http://www.debian.org/' >Debian</a>, <a href='https://www.archlinux.org/' >Arch Linux</a>, (...) sont de bonnes distributions GNU/Linux », flagornerie à l'égard desdites distributions), de griefs concernant l'utilisation d'<a href='http://www.ubuntu.com/' >Ubuntu</a> comme brique de base (« <a href='http://sn.postblue.info/notice/508362' ><em>Ubuntu: the compulsory downstream patch</em></a> », ou comment j'éprouve un mal certain à concevoir l'empilement de couches et de patchs induits par l'utilisation d'Ubuntu), et de condescendance à l'égard du fait que cette distribution est née d'un thème d'icônes.</p>

<p>Cependant, je ne dénigre pas la création d'un environnement de bureau -- <a href='https://code.launchpad.net/' ~elementary-pantheon">Pantheon</a> -- qui lui est neuf même si teinté de surcouches à des projets existants ou de versions dérivées d'autres projets (<a href='http://wiki.go-docky.com/index.php?title=Welcome_to_the_Docky_wiki' >Docky</a> à la base de <a href='https://launchpad.net/plank' >Plank</a>, surcouche à <a href='https://fr.wikipedia.org/wiki/Mutter_%28gestionnaire_de_fen%C3%AAtres%29' >Mutter</a> avec <a href='https://launchpad.net/gala' >Gala</a> -- un shell qui à l'instar de Gnome Shell se base sur <code>libmutter</code> --, dérivation de <a href='https://launchpad.net/beat-box' >BeatBox</a> pour <a href='https://launchpad.net/noise' >Noise</a>, ...). Bref, je recelais d'une paresse intellectuelle comme je ne m'en connaissais pas de pareille.</p>

<p>Fort du constat de mon indolence, j'ai décidé d'au moins faire un essai de ladite distribution et ne pas m'endormir ignare. Pour télécharger <a href='http://elementaryos.org/' >elementary OS</a>, il suffisait de cliquer sur le lien « Download Luna for Free » de la page d'accueil, et de prendre les images 32 et 64 bits pour les essayer sur plusieurs machines (un netbook et un laptop en l'occurence). La fatigue ne me terrassa pas. Pour ceux qui voudraient procéder au téléchargement direct, ils seront redirigés vers le <a href='http://sourceforge.net/projects/elementaryos/' >SourceForge du projet elementary OS</a>.</p>

<p><img src="media/87747a22.Capture_du_2013_08_26_172326.png" data-original-source="http://postblue.info/content/images/2013/Nov/Capture_du_2013_08_26_172326.png"  alt="Disques, restauration d'une image ISO" /></p>

<p>Une fois le téléchargement fait, il me suffisait de transférer l'image ISO sur une clef USB, préalablement retrouvée dans le fatras de mes affaire et insérée dans un port idoine. J'ouvre <code>gnome-disks</code>, j'y sélectionne ladite clef USB, je clique sur la roue dentée en haut à droite de la fenêtre et sélectionne l'option « Restaurer l'image disque ». À ce moment, il ne me reste plus qu'à sélectionner l'un des fichiers ISO précédemment téléchargés et attendre pendant le déroulement de l'opération. Donc de prendre un café. Encore une fois, pas de quoi harasser un nerd en vacances.</p>

<p>Le test fut rapide : il s'agissait pour moi de prendre connaissance de l'<em>ambiance générale</em> de la distribution, de son utilisabilité et de sa distribution logicielle. Et sur ce point j'ai été agréablement surpris : l'ensemble est bien pensé, cohérent dans le style et la légèreté. Surtout, j'ai été impressionné par la célérité générale de l'environnement. En Live USB, soit sur un Samsung N210 ou un HP Pavilion dm4, aucune application ne met en moyenne plus d'une ou deux secondes à être lancée, ce qui est pour le moins appréciable. Aucune application ? Non, une application résiste encore et toujours à la légèreté, la <a href='https://fr.wikipedia.org/wiki/Logith%C3%A8que_Ubuntu' >Logithèque Ubuntu</a>, qui est toujours aussi abominablement lente que dans mon souvenir. Le système lui-même ne met pas plus de deux minutes en moyenne pour se lancer, ce qui est agréablement surprenant pour un système en Live.</p>

<p>La distribution logicielle est rudimentaire, certes, mais elle recouvre la plupart des besoins en fonctionnalités du système. Tout ce qui n'est pas préinstallé est à trouver dans la bibliothèque de programmes d'Ubuntu qui reste très fournie, avec le risque cependant de tomber sur des applications moins bien intégrées à l'ensemble. L'utilisateur pourra installer à sa guise <a href='https://help.ubuntu.com/community/' ](https://wiki.ubuntu.com/Valve), [LibreOffice](https://wiki.ubuntu.com/LibreOffice">Skype</a>, ... de quoi étendre encore un peu la plupart des besoins bureautiques qui peuvent être remplis par la distribution.</p>

<p>Même si elementary OS ressemble toujours autant à une galerie de <em>mock-ups</em> empilés sur Ubuntu, l'environnement de bureau <code>pantheon</code> est bien foutu, rapide et réactif, même si je ne suis aucunement convaincu par les choix esthétiques. Malgré mes réticences au thème (qu'il est possible de changer, heureusement, mais je n'attends pas d'un utilisateur lambda de parvenir à le faire), je crois qu'il est un atout d'elementary OS : faire un objet esthétiquement cohérent qui puisse <em>donner envie</em> de l'utiliser. Et sur ce point, je crois qu'elementary OS est une réussite.</p>

<p>L'objet est stable, fonctionnel, et je crois qu'il pourra très bien convenir à ceux dont l'informatique se retreint à la messagerie instantanée, lire ses mails, naviguer sur Internet, faire un peu de bureautique, regarder des vidéos ou écouter de la musique. <a href='https://wiki.gnome.org/Empathy' >Empathy</a> (qui garde bizarrement son thème de conversation par défaut), <a href='http://www.yorba.org/projects/geary/' >Geary</a>, <a href='https://launchpad.net/maya' >Maya</a> et <a href='https://launchpad.net/dexter-contacts' >Dexter</a>, <a href='http://www.twotoasts.de/index.php/midori/' >Midori</a>, <a href='https://www.mozilla.org/fr/firefox/fx/' >Firefox</a> ou <a href='https://apps.ubuntu.com/cat/applications/chromium-browser/' >Chromium</a>, <a href='http://www.abisource.com/' >Abiword</a> et <a href='https://projects.gnome.org/gnumeric/' >Gnumeric</a> ou <a href='https://www.libreoffice.org/' >LibreOffice</a>, <a href='https://projects.gnome.org/totem/' >Totem</a> et <a href='https://launchpad.net/noise' >Noise</a> peuvent tout à fait remplir la majorité des besoins de tels utilisateurs qui pullulent.</p>

<p>Je ne peux pas m'empêcher d'un peu <a href='http://postblue.info/logiciel-libre-cassandre/' >jouer les Cassandre</a>, et d'avoir une appréciation en demi-teinte. Même si je crois qu'<em>en l'état</em> Luna peut très bien convenir à une bonne masse d'utilisateurs, c'est à mon avis seulement maintenant que les développeurs d'<a href='http://elementaryos.org/' >elementary OS</a> doivent prouver qu'elle peut être une distribution fiable <strong>à l'avenir</strong>. Sommairement, il s'agit d'essayer d'imaginer comment s'annonce la transition vers la troisième version. Considérant le public visé, il est nécessaire qu'elle se fasse de façon transparente et sans effort, ce qui augmente d'autant plus la hauteur du challenge : il s'agira de gérer la dépendance à Ubuntu en en étant quelque peu tributaire.</p>


feed_id: 4472fc23-98b1-4de9-804d-255057c3be8b
title: Liste d'applications pour Android
uri: Liste-d-applications-pour-Android
url: http://postblue.info/liste-applications-android/
content:
<p>Parce qu'il n'y a pas de raison que les gusses de chez Google et leurs clients auxquels ils vendent mes données soient les seuls à savoir tout ce que j'ai pu installer sur mon téléphone pseudo-intelligent&nbsp;: voici ma sélection d'applications pour Android.</p>

<h1 id="fdroid">F-Droid</h1>

<p>D'abord, il faut installer <a href="https://f-droid.com/">F-Droid</a>, le répertoire d'applications certifiées opensource.</p>

<p><img src="media/909da1ad.F-Droid.png" data-original-source="http://postblue.info/content/images/2014/May/F-Droid.png" alt="F-Droid"></p>

<p>Pour l'installer, <a href="https://f-droid.org/FDroid.apk">télécharger l'APK</a>. Comme ce n'est pas une application installée par la logithèque Google Play, il faut <em>autoriser l'installation d'applications issues de sources inconnues</em>, dans les <strong>Paramètes</strong> de <strong>Sécurité</strong>.</p>

<p><img src="media/40a3f2be.Screenshot_2014-05-11-10-34-06.png" data-original-source="http://postblue.info/content/images/2014/May/Screenshot_2014-05-11-10-34-06.png" alt="Autoriser l'installation d'applications issues de sources inconnues"></p>

<p>Une fois l'application lancée, ne reste plus qu'à installer les applications qui vous font de l'œil.</p>

<p><strong>N.B.</strong> <em>Autoriser l'installation d'applications issues de sources inconnues</em> peut être vu (à raison) comme un manque de sécurité entourrant F-Droid. Même si je n'ai pas essayé la chose, il serait possible de contourner le problème : <strong>installer F-Droid comme application système</strong> (<a href="https://f-droid.org/repository/browse/?fdid=de.j4velin.systemappmover">/system/app mover</a> semble indiqué pour cela).</p>

<p><strong>Mise à jour du 30 août 2014&nbsp;: ça fonctionne, mais je n'ai pas encore pu tester la mise à jour de l'application elle-même.</strong></p>

<h2 id="jeux">Jeux</h2>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.uberspot.a2048">2048</a>, un port hors ligne et libre du jeu de Gabriele Cirulli par ailleurs <a href="https://play.google.com/store/apps/details?id=com.gabrielecirulli.app2048">disponible également sur Google Play</a> ou <a href="https://gabrielecirulli.github.io/2048/">sur GitHub</a>. Je suis consterné par le pullulement de reprises sous licence privative et bardées de publicités de ce jeux dans Google Play.</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.jfedor.frozenbubble">Frozen Bubble</a>, faut-il encore le présenter&nbsp;?</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.boombuler.games.shift">Shift</a>, un petit jeu de puzzle <em>très moche</em> mais très bien qui est le <em>remake</em> d'un jeu sous Windows Mobile (lequel&nbsp;? le développeur ne le mentionne pas)</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.xenris.liquidwarsos">Liquid Wars OS</a>, un autre jeu <em>très moche</em> qui est le port de l'ancestral <a href="http://www.ufoot.org/liquidwar/">Liquid War</a> (<em>Such game, much fun.</em>)</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.dozingcatsoftware.bouncy">Vector Pinball</a>, un jeu de flipper aux graphismes simplistes mais à la finition léchée</li>
</ul>

<h2 id="messagerie">Messagerie</h2>

<ul>
<li>Le très complet <a href="https://f-droid.org/repository/browse/?fdid=com.fsck.k9">K9-Mail</a>, un courrielleur qui, lié à APG, autorise la signature, le chiffrement et le déchiffrement des échanges</li>
</ul>

<blockquote>
  <p>Envoyé depuis mon téléphone produit par l'exploitation du prolétariat chinois, pour le compte d'une corporation multinationale faisant de l'évasion fiscale. Excusez la brièveté.</p>
</blockquote>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.thialfihar.android.apg">APG</a>, gérant le chiffrement et les clefs de signature</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.mariotaku.twidere">Twidere</a>, un client Twitter compatible avec <a href="http://sn.postblue.info">mon instance GNU social</a>. Pour l'utiliser avec un compte Twitter et profiter de l'onglet <em>Activité</em>, <a href="https://gist.github.com/mariotaku/5465786">changez de clés</a>.</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=indrora.atomic">Atomic</a>, un client IRC basé sur <a href="https://f-droid.org/repository/browse/?fdid=org.yaaic">Yaaic</a></li>
<li><a href="https://f-droid.org/repository/browse/?fdid=info.guardianproject.otr.app.im">ChatSecure</a> via <a href="https://guardianproject.info/2012/03/15/our-new-f-droid-app-repository/">le répertoire du Guarian Project</a></li>
</ul>

<h2 id="utilitaires">Utilitaires</h2>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.mozilla.firefox">Firefox</a>, bien évidemment&nbsp;!</li>
</ul>

<p><img src="media/e02f74f8.Screenshot_2014-05-12-13-54-34.png" data-original-source="http://postblue.info/content/images/2014/May/Screenshot_2014-05-12-13-54-34.png" alt="À propos de moi"></p>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.google.android.apps.authenticator2">Authenticator</a>, la version opensource de Google Authenticator.</li>
</ul>

<blockquote>
  <p>DISCLAIMER: This open source project allows you to download the code that powered version 2.21 of the application. Subsequent versions contain Google-specific workflows that are not part of the project.</p>
</blockquote>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.google.zxing.client.android">Barcode Scanner</a>, afin de pouvoir scanner les QR codes des comptes à ajouter dans Authenticator</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.plusonelabs.calendar">Calendar Widget</a>, un widget de calendrier épuré</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=at.bitfire.davdroid">DAVdroid</a> comme alternative à <a href="https://play.google.com/store/apps/details?id=org.dmfs.caldav.lib&amp;hl=fr">Caldav-Sync</a> et <a href="https://play.google.com/store/apps/details?id=org.dmfs.carddav.Sync&amp;hl=fr">CardDav-Sync</a> pour ceux qui ne veulent pas installer les Google Apps (voir plus bas) ni payer pour ces applications qui pendant longtemps étaient les seules de qualité disponibles</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.owncloud.android">ownCloud</a></li>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.transdroid.full">Transdroid</a>, me permettant de gérer à distance mes téléchargements par torrent, intégrant également une recherche de torrents avec le plugin <a href="https://f-droid.org/repository/browse/?fdid=org.transdroid.search">Torrent Search</a></li>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.adaway">AdAway</a>, un bloqueur de publicité complet fonctionnant à la fois dans un navigateur ou dans une application. Effet secondaire&nbsp;: certains mode de paiement par l'affichage de quelques secondes de publicité ne fonctionnent plus (ce qui est normal).
<del>* <a href="https://f-droid.org/repository/browse/?fdid=com.gokhanmoral.stweaks.app">STweaks</a>, une application très simple me permettant de configurer finement quelques éléments du système : activer KSM, la barre de navigation (la touche retour de mon Galaxy S2 est foutue), ...</del></li>
</ul>

<p><strong>Mise à jour du 30 août 2014&nbsp;: je suis retourné au noyau par défaut, Omni ROM intègre maintenant la possibilité d'activer la barre de navigation depuis les paramètres (menu Boutons).</strong></p>

<h2 id="gps">GPS</h2>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=net.osmand.plus">OsmAnd~</a>, une application de cartes en ligne ou hors-ligne basée sur <a href="http://www.openstreetmap.org/">OpenStreetMap</a></li>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.mozilla.mozstumbler">MozStumbler</a> pour participer au <a href="https://location.services.mozilla.com/">Mozilla Location Service</a> (voir <a href="http://ecrans.liberation.fr/ecrans/2013/11/20/mozilla-veut-liberer-la-geolocalisation_954902">l'article sur Écrans</a>)</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=org.fastergps">FasterGPS</a> pour régler la zone GPS dans laquelle je me situe.</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.vonglasow.michael.satstat">SatStat</a> à utiliser conjointement avec OsmAnd afin d'obtenir des informations GPS plus précises.</li>
</ul>

<h2 id="inutiles">Inutiles</h2>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.omegavesko.holocounter">Holo Counter</a>, pour compter.</li>
<li><a href="https://f-droid.org/repository/browse/?fdid=com.bri1.soundbored">Instant Sound Effects</a>
<del>* <a href="https://f-droid.org/repository/browse/?fdid=co.wakarimasen.chanexplorer">ChanExplorer</a>, le meilleur client mobile pour 4chan&nbsp;! Malheureusement, l'application n'a pas encore été mise à jour pour refléter les changements du site, ce qui la rend difficilement utilisable ou du moins inesthétique. Je la garde pour la réutiliser quand elle sera mise à jour, entretemps je zone sur Imgur.</del></li>
</ul>

<p>**Mise à jour du 30 août 2014&nbsp;: j'utilise depuis peu <a href="https://f-droid.org/repository/browse/?fdid=org.floens.chan">Clover</a>, qui fonctionne bien même si elle est parfois un peu capricieuse."</p>

<ul>
<li><a href="https://f-droid.org/repository/browse/?fdid=ch.fixme.status">MyHackerspace</a>, application en communication avec la <a href="http://spaceapi.net/">Space API</a> de l'<a href="http://urlab.be/">UrLab</a>.</li>
</ul>

<h1 id="googleplay">Google Play</h1>

<p>Si comme moi vous avez une ROM non-officielle (<a href="http://omnirom.org/">OmniROM</a> dans mon cas), il vous faudra installer <a href="http://www.google.com/mobile/android/">les applications propriétaires de Google</a> (Google Apps, ou GApps) pour installer les applications qui suivent.</p>

<p><img src="media/2b0fc64f.google-play-logo.jpg" data-original-source="http://postblue.info/content/images/2014/May/google-play-logo.jpg" alt="Google Play Store"></p>

<p>La documentation de CyanogenMod fait autorité en la matière, rendez-vous à <a href="http://wiki.cyanogenmod.org/w/Google_Apps">la bonne page adresse</a>, déterminez la version des GApps dont vous avez besoin en fonction de votre version d'Android, téléchargez l'archive comme bon vous semble, puis installez-la depuis le Recovery. Ledit paquet est minimal et n'installe que très peu d'applications <em>made in Google</em>.</p>

<p>Pour maintenir lesdites <em>GApps</em> à jour, installez <a href="https://play.google.com/store/apps/details?id=com.s0up.goomanager">GooManager</a>, disponible sur Google Play.</p>

<p><img src="media/2781e470.Screenshot_2014-05-11-10-30-33.png" data-original-source="http://postblue.info/content/images/2014/May/Screenshot_2014-05-11-10-30-33.png" alt="GooManager"></p>

<p>Si vous utilisez <a href="http://omnirom.org/">OmniROM</a> comme moi&nbsp;: dans les paramètres de l'application, changez le chemin de téléchargement par défaut pour <code>/storage/sdcard0/OpenDelta/FlashAfterUpdate</code>, l'archive sera réinstallée après chaque mise à jour, évitant de malencontrueuses disparitions. C'est évidemment dispensable.</p>

<h2 id="jeux">Jeux</h2>

<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.frogmind.badland">BADLAND</a>, jeu de plateforme à la fois beau et prenant</li>
<li><a href="https://play.google.com/store/apps/details?id=com.chillingo.deadahead.rowgplay">Dead Ahead</a>, jeu d'arcade assez répétitif où vous devez écraser des plâtrées de zombie avec votre scooter</li>
<li><a href="https://play.google.com/store/apps/details?id=com.adee.game.dodgebeat">Dodge Beat</a>, jeu musical au design minimaliste (le retour du 8bit) auquel il est déconseillé de jouer pour déstresser (effet inverse)</li>
<li><a href="https://play.google.com/store/apps/details?id=com.orangepixel.groundskeeper">Groundskeeper</a>, une petite merveille de simplicité dans le plus pur style 8bit, je recommande chaudement</li>
<li><a href="https://play.google.com/store/apps/details?id=com.sidheinteractive.sif.DR">Into the Dead</a>, simple&nbsp;: COUREZ POUR SURVIVRE&nbsp;!</li>
<li><a href="https://play.google.com/store/apps/details?id=air.com.zanorg.lesjeuxchiants&amp;hl=fr">Les Jeux Chiants</a>, compilation de mini-jeux très bien décrits par le titre</li>
<li><a href="https://play.google.com/store/apps/details?id=com.watabou.pixeldungeon&amp;hl=fr">Pixel Dungeon</a>, un <em>dungeon crawl</em> du plus bel effet</li>
</ul>

<p><img src="media/e24fbf14.pixeldungeon.png" data-original-source="http://postblue.info/content/images/2014/May/pixeldungeon.png" alt="Pixel Dungeon"></p>

<ul>
<li><a href="https://play.google.com/store/apps/details?id=net.pyrosphere.lazors">Lazors</a>, jeu de puzzle <em>très beau</em>, à la difficulté progressive et dosée, très bien pensé (pas de publicité, possibilité de redémarrer sa partie, indices)</li>
<li><a href="https://play.google.com/store/apps/details?id=com.ea.games.r3_row">Real Racing 3</a>, jeu très gourmand de grosses voitures qui font <em>Vroom&nbsp;!</em>, utile pour se vider le neurone</li>
</ul>

<h2 id="messagerie">Messagerie</h2>

<p><del>* <a href="https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms">TextSecure</a>, une application de messagerie sécurisée</del></p>

<p><strong>Mise à jour du 30 août 2014&nbsp;: je suis retourné à l'application SMS par défaut.</strong></p>

<h2 id="utilitaires">Utilitaires</h2>

<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.bytehamster.changelog">OmniROM Changelog</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.oasisfeng.greenify">Greenify</a>, une application mettant automatiquement en hibernation les applications en tâche de fond dont vous n'avez pas l'utilité. Dispose d'un module Xposed (voir plus loin) pour des options expérimentales.</li>
<li><a href="https://play.google.com/store/apps/details?id=eu.thedarken.sdm">SD-Maid</a>, un outil de nettoyage puissant et fonctionnel</li>
<li><a href="https://play.google.com/store/apps/details?id=com.koushikdutta.backup">Helium</a> pour enregistrer, synchroniser et restaurer le contenu et les préférences de mes applications</li>
<li><a href="https://play.google.com/store/apps/details?id=eu.chainfire.pryfi">Pry-Fi</a></li>
<li><a href="https://play.google.com/store/apps/details?id=eu.chainfire.supersu&amp;hl=fr">SuperSU</a></li>
</ul>

<h2 id="inutiles">Inutiles</h2>

<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.imgur.mobile">Imgur</a>, l'application mobile officielle qui est quand même un peu une blague (lente, mais <em>lente</em>)</li>
<li><a href="https://play.google.com/store/apps/details?id=com.ryanharter.hashnote">Hashnote</a>, un carnet de note intégrant <a href="http://postblue.info/cgtn-hashtag-mot-diese/">hashtags</a> et mentions; très pratique pour des <em>serial noteurs</em> tels que moi</li>
</ul>

<h1 id="horsrpertoires">Hors répertoires</h1>

<ul>
<li><a href="http://repo.xposed.info/module/de.robv.android.xposed.installer">Xposed Framework</a> afin d'utiliser les fonctions avancées de Greenify. Le <em>framework</em> se désactive à chaque mise à jour du système, voir ci-bas pour une archive le réactivant automatiquement.</li>
<li><a href="http://devadvance.com/rootcloak/">RootCloack</a> afin de cacher à des applications comme celle de ma banque que mon téléphone est rooté.</li>
<li><a href="http://postblue.info/mediagoblin-android-apache-ant/">Mediagoblin</a> compilé pour être utilisable avec <a href="http://media.postblue.info/">ma propre instance GNU MediaGoblin</a></li>
</ul>

<h1 id="flashafterupdatezips">FlashAfterUpdate zips</h1>

<ul>
<li>l'archive <code>gapps-kk</code> pour installer les Google Apps (voir plus haut pour une description de GApps), <a href="http://goo.im/gapps/">trouvée sur Goo.im</a></li>
<li>une archive pour installer automatiquement les certificats CaCert.org comme <a href="https://fralef.me/how-to-create-your-own-flashafterupdate-zips-for-android.html">vu ici</a></li>
<li>Xposed Toggle <a href="http://forum.xda-developers.com/showthread.php?t=2575966">trouvé sur xda-developpers</a> afin d'activer Xposed immédiatement après chaque mise à jour (voir plus haut pour une description de Xposed)
<del>* un kernel pour les ROMs AOSP avec un support de STweaks ou Synapse  <a href="http://forum.xda-developers.com/galaxy-s2/development-derivatives/kernel-kernel-cm11-omni-4-4-slimkat-t2222843">trouvé sur xda-developers</a> (voir plus haut pour une description de STweaks)</del></li>
</ul>

<h1 id="quoiaressemble">À quoi ça ressemble</h1>

<p><img src="media/d7a3c86a.Screenshot_2014-05-11-18-29-36.medium.png" data-original-source="https://media.postblue.info/mgoblin_media/media_entries/105/Screenshot_2014-05-11-18-29-36.medium.png" alt="All glory to Sigourney Weaver&nbsp;!"></p>


feed_id: ad2c1518-b5c6-49c8-b75a-778be715df0c
title: TrueCrypt, c’est fini
uri: TrueCrypt-c-est-fini
url: http://postblue.info/truecrypt-cest-fini/
content:
<p>Traduction d'un message de Bill Cole <a href="http://krebsonsecurity.com/2014/05/true-goodbye-using-truecrypt-is-not-secure/comment-page-1/#comment-255908">posté sur KrebsonSecurity</a> concernant l'abandon du développement de <a href="http://truecrypt.sourceforge.net/">TrueCrypt</a>.</p>

<p><img src="media/9ed8d94d.Y5JTK1q.png" data-original-source="http://postblue.info/content/images/2014/Jun/Y5JTK1q.png" alt="Adieu TrueCrypt"></p>

<p>« L'audit de sécurité initial fait par iSec était très critique à l'égard de la qualité du code de TrueCrypt [1], déduisant que ce devait être l'œuvre d'un seul développeur. Il n'y eut pas de mise à jour pendant deux ans. Le processus de compilation requiert un compilateur Microsoft vieux de 20 ans [2], extrait manuellement d'un installateur exécutable.</p>

<p>Imaginez-vous comme le développeur principal et solitaire travaillant sur TrueCrypt. Personne ne vous paie pour ça, les gouvernements vous détestent, la plupart de la communauté cryptographique vous lance des pierres dessus, et pendant ce temps la communauté des utilisateurs passe la moitié de son temps à participer à une paranoïa sans fondement, pendant que l'autre moitié pleurniche sur des fonctionalités manquantes.</p>

<p>Vous devez manger, donc vous avez un vrai boulot, salarié. Vous n'êtes plus si jeune (commettant TrueCrypt depuis une décennie) et peut-être que votre vrai boulot amène des reponsabilités qui prennent le pas sur vos travaux en dilettante. Ou alors vous avez peut-être une famille que vous aimez plus que les geignards paranoïaques auxquels vous vous heurtez en développant TrueCrypt.</p>

<p>Et maintenant iSec vous annonce que votre code est illisible, et qu'il faudrait une somme ahurissante de travail pour le clarifier. Ils en déduisent qu'une session d'écriture de code arrosée au Scotch en 2005 (ou peut-être du code dont vous aviez hérité d'un développeur précédent) a donné lieu à une béance exploitable, que bientôt tout le monde qualifiera de porte dérobée installée par la NSA.</p>

<p>Alors peut-être que vous laissez tout tomber. Pourquoi pas ? Quiconque avec un système d'exploitation à jour dispose d'une alternative à TrueCrypt et, aussi imparfaite soit-elle, elle est meilleure que TrueCrypt pour la majorité des utilisateurs. [3] Maintenir TrueCrypt n'est pas vraiment bénéfique pour beaucoup de personnes, et l'audit en question n'a fait que remonter la partie la moins intéressante de la maintenance en priorité de premier ordre. On dirait que c'est le bon moment pour tout arrêter et devenir l'entraîneur de foot de vos enfants. »</p>

<ul>
<li>[1] Voir <a href="http://istruecryptauditedyet.com/">IsTrueCryptAuditedYet?</a> pour un compte rendu.</li>
<li>[2] <a href="http://krebsonsecurity.com/2014/05/true-goodbye-using-truecrypt-is-not-secure/comment-page-1/#comment-255953">Un second commentateur</a> suggère que ledit compilateur ne tourne en fait que sous Windows XP, dont on sait l'abandon par Microsoft, ce qui représente une faille critique de sécurité même si Windows XP fonctionne toujours.</li>
<li>[3] BitLocker sous Microsoft (disponible sous Windows {Vista, 7} {Ultimate, Entreprise} ou Windows 8 {Professionel, Entreprise}), FileVault sous Mac OS X (à partir de 10.3, « Panther »), ou pour qui a un système d'exploitation <em>par définition</em> auditable pour sa sécurité (comprendre libre ou au moins opensource) : eCryptfs, EncFS, loop-AES, dm-crypt (avec ou sans LUKS), et j'en passe.</li>
</ul>


feed_id: 175d9a6a-adb4-4d68-b79d-29fda5313789
title: Économie d’énergie sur un ordinateur Samsung
uri: Économie-d-énergie-sur-un-ordinateur-Samsung
url: http://postblue.info/economie-denergie-sur-un-ordinateur-samsung/
content:
<p>Bien qu’il soit possible d’ajouter des <a href="https://wiki.archlinux.org/index.php/Power_saving">règles UDEV concernant la gestion de l’énergie</a> des ordinateurs portables afin d’augmenter l’autonomie de ceux-ci, il est une astuce qui épargne au facétieux détenteur d’un modèle de marque Samsung de créer et maintenir une configuration au cas où celle-ci viendrait à devenir capricieuse ce qui, ne nous leurons pas, ne manquera pas d’arriver et nécessitera une intervention manuelle alors que la solution que je propose, parce que plus courte et plus simple, réduira la maintenance nécessaire potentielle.</p>

<p>En premier lieu, puisque nous disposons pour l’exercice d’un ordinateur portable de marque Samsung, il convient d’installer <a href="https://launchpad.net/samsung-tools">le très utile Samsung Tools</a> avec les moyens offerts par la distribution installée sur celui-ci. Je vous laisse le soin de trouver <a href="https://github.com/voria/samsung-tools">sur la page GitHub du projet</a> ou ailleurs les informations relatives à la distribution qui rencontre votre préférence. Par exemple, pour le mien qui est sous <a href="https://www.archlinux.org/">Arch Linux</a> et sur lequel j’ai installé l’utilitaire <code>yaourt</code> afin d’installer à moindre frais les scripts d’installation maintenus par la communauté sur <a href="https://aur.archlinux.org/">le dépôt AUR</a>, il me suffit d’entrer dans une invite de commande :</p>

<pre><code>yaourt -S samsung-tools
</code></pre>

<p>Après installation des dépendances nécessaires au bon fonctionnement de l’outil, dont <code>pm-utils</code> qui nous intéresse ici au plus haut degré, il ne nous reste plus qu’à activer ce dernier pour enfin le configurer, par exemple sur une distribution utilisant le gestionnaire de démarrage <code>systemd</code> :</p>

<pre><code>systemctl enable samsung-tools
systemctl start samsung-tools
</code></pre>

<p>Ceci fait, nous pouvons lancer l’application et accéder à la gestion avancée de l’énergie -- le troisième onglet auquel on accède en cliquant sur la flèche de défilement à droite des onglets d’option -- afin de vérifier que tout est bien activé : la gestion de l’énergie des périphériques, la pause automatique des périphériques USB, et le délai d'écriture différée de la machine virtuelle.</p>

<p><img src="media/87cc6a63.wMfzT6U.png" data-original-source="http://postblue.info//i.imgur.com/wMfzT6U.png" alt="Samsung Tools"></p>

<p>S’il est intéressant de disposer de tels réglages lorsque notre ordinateur portable est sur batterie, je trouve saugrenu de castrer la puissance de ce dernier lorsqu’il est branché sur le secteur -- qui plus est quand la machine est poussive comme la mienne. C’est pourquoi je propose l’écriture d’un et un seul fichier <code>udev</code> comme mentionné ci-haut, permettant de désactiver ou activer ces réglages que la machine soit sur secteur ou non. Dans le fichier créé pour l’occasion, <code>/etc/udev/rules.d/99-powersave.rules</code>, recopions :</p>

<pre><code>SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/bin/pm-powersave battery"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/bin/pm-powersave ac"
</code></pre>

<p>Notez que si la manipulation que je développe dans le présent article est dévolue à l’économie d'énergie, Samsung Tools me sert également à gérer efficacement les touches de fonction de mon ordinateur portable auxquelles j’accède par les raccourcis clavier indiqués.</p>

<p><img src="media/22cda16f.4AziWZt.png" data-original-source="http://postblue.info//i.imgur.com/4AziWZt.png" alt="Samsung Tools shortcuts"></p>

<p>Supposant qu’il soit possible de transposer cette manipulation à d'autres marques d'ordinateur portable, je crois que cela engendrerait un effort supérieur au recopiage des lignes de configuration mentionnées en premier lieu.</p>


feed_id: 874ac68d-fa71-4b30-8993-9cd08bfb926f
title: Content Delivery Network Privacy Concerns
uri: Content-Delivery-Network-Privacy-Concerns
url: http://postblue.info/ugly-cdn/
content:
<p><a href="https://github.com/roryg/ghostwriter/issues/44#issuecomment-47127172">Sauvegarde et dramatisation d’une prise de bec</a> avec le développeur de <a href="http://ghost.jollygoodthemes.com/ghostwriter/">Ghostwriter</a>, le thème utilisé sur le présent blog et dont je suis très content au demeurant.</p>

<p>En cause, l’utilisation d’un CDN (<a href="https://fr.wikipedia.org/wiki/Content_delivery_network">Content Delivery Network</a>, un service de contenus centralisés dans des fermes de serveurs et distribués «&nbsp;gratuitement&nbsp;»&nbsp;: polices, icônes, images, <em>etc</em>) pour servir la police <a href="http://www.google.com/fonts/specimen/Open+Sans">Open Sans</a> depuis <a href="https://www.google.com/fonts">Google Fonts</a> et le set d’icônes <a href="http://fontawesome.io/">Font Awesome</a> depuis <a href="http://www.maxcdn.com/">MaxCDN</a> (comprendre&nbsp;: depuis les serveurs de sociétés commerciales n’ayant pas vocation philanthropique sans qu’au minimum ça leur rapporte un quelconque bénéfice).</p>

<p>Subodorant un problème relatif à la vie privée, j’ai conscienscieusement <a href="https://github.com/roryg/ghostwriter/issues/44#issue-36222915">proposé d’intégrer ces deux polices au thème</a>, <a href="https://github.com/roryg/ghostwriter/pull/46">contribution à l’appui</a> après quelques essais infructueux. Je pensais à des <a href="http://git-scm.com/book/fr/Utilitaires-Git-Sous-modules">sous-modules</a> Git,  les sous-modules permettant de gérer un dépôt Git comme un sous-répertoire d’un autre dépôt Git.</p>

<p>Si cette solution simplifie la mise à jour des paquets (<code>git submodule foreach git pull origin master</code> et c’est chichement plié), elle n’est ni propre ni légère de mon propre aveu, puisqu’elle intègre des fichiers inutiles et qu’elle exige de le part du webmestre quelque connaissance en <a href="https://fr.wikipedia.org/wiki/Interface_en_ligne_de_commande">interfaces en ligne de commande</a> afin de déployer le thème en question.</p>

<p>Sans même avoir vérifié la chose, j’accordai que cette solution aurait peut-être rendu <a href="https://developer.github.com/v3/repos/contents/#get-archive-link">le téléchargement du dépôt dans une archive</a> incohérent et incomplet (sans le contenu des sous-modules), ainsi proposai-je de travailler à une solution plus propre et plus légère (<a href="https://github.com/roryg/ghostwriter/pull/53">chose faite</a>), corrélativement moins fainéante.</p>

<blockquote>
  <p>I’d like to keep the theme as simple as possible for people to use and I think using git submodules would make things overly complicated for non technical/git users.</p>
</blockquote>

<p>M’étant vu opposé un impératif de «&nbsp;simplicité&nbsp;» pour ne pas troubler le chaland, je me suis beaucoup amusé à imaginer quelque webmestre ayant installé <a href="http://nodejs.org/">node.js</a> et son outil <code>npm</code>, sachant utiliser <code>curl</code> et <code>unzip</code>, ayant édité un fichier de configuration avec <code>vim</code>, <code>nano</code> ou un autre éditeur de texte en interface en ligne de commande, bref, j’imaginais <a href="http://docs.ghost.org/installation/deploy/">quelqu’un étant parvenu à déployer Ghost</a> qui perdrait subitement tous ses moyens face à <code>git submodule init --update --recursive</code> (la commande pour initialiser les sous-modules Git).</p>

<p><img src="media/4649f131.fuoAhca.png" data-original-source="http://postblue.info/content/images/2014/Jun/fuoAhca.png" alt="Ghost deploy"></p>

<p>Par contre, ce qui me fit bondir et servit de ferment à la prose suivante fut l’argument relatif à la vie privée.</p>

<blockquote>
  <p>To me the benefits of the saved resources outweigh the privacy issue.</p>
</blockquote>

<p>Le bénéfice en ressources informatiques l’emporterait sur les questions de vie privée.</p>

<p>J’ai bien évidemment intégré le patch au <em>fork</em> que j’entretiendrai jusqu’à résolution du problème (c’est à dire du différend), et je n’ai remarqué aucune surcharge hors-norme du serveur&nbsp;; l’augmentation de la consommation de ma bande passante est tout à fait modérée. Gageons qu’un contrôle adéquat de la mise en cache fait effet, ce sur quoi je n’ai absolument aucun contrôle quant à des contenus obtenus via un CDN ce qui, j’estime, devrait inquiéter n’importe quel administrateur.</p>

<p>Si ces contenus sont sur mon propre serveur, un lecteur n’aura pas à attendre qu’<a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing">une requête CORS</a> soit réalisée. Si mon site répond dès la première poignée de main, les polices viendront de suite après. Se rendre dépendant de l’utilisation d’un CDN, sans même intégrer de solution alternative au cas où ce dernier lâcherait ou serait injoignable, est à mon sens un parti pris occidental et bourgeois (un bon débit, l’assurance d’une connexion stable et non filtrée). Cela exige une confiance en la non-modification des contenus liés (rien ne m’assure qu’un petit malin ne viendra pas insérer du code malicieux dans le script que je n’ai pas sur mon serveur et dont je ne peux pas vérifier l’intégrité).</p>

<p>Qui n’a jamais vu un site changer de gueule en cours de chargement parce que les polices venaient enfin d’être chargées&nbsp;? C’est le genre d’effet que je veux éviter. Mieux&nbsp;: le temps de chargement de la page indiqué par <a href="http://gtmetrix.com">GTMetrix</a> a même diminué d’au moins une demie seconde, ce qui est un effet secondaire tout à fait appréciable.</p>

<blockquote>
  <p>I don’t really feel that using fonts loaded from a CDN poses a large enough privacy issue for this to be a concern.</p>
</blockquote>

<p>Le chargement de polices depuis un CDN ne poserait pas un assez grand problème de sauvegarde de la vie privée pour être préoccupant.</p>

<p>À cela je réponds que les plus graves problèmes de vie privée sur Internet se retrouvent dans la somme des attitudes les plus bénignes. Si un administrateur ne voit pas de problème quant à l’intégration de contenus centralisés, je ne doute pas que les données de tous les sites qui utilisent telle ou telle police doivent être bien juteuses. Ces informations, recoupées avec les visites des lecteurs n’ayant pas été prévenus qu’un tiers peut aggréger tous les sites qu’ils visitent à cause de la négligence d’administrateurs ou de développeurs, donnent un historique et un profil de métadonnées des lecteurs et des gestionnaires d’un site. Parce que même mon blog est profilé de la sorte. Personne n’y gagne sinon le tenancier du service «&nbsp;gratuit&nbsp;»</p>

<p>Je suis un blogueur, pas un revendeur d’informations personnelles. Je ne suis pas un collabo qui participera au grand profilage des internautes.</p>

<blockquote>
  <p>Most users that are worried about being tracked will likely be using a browser plugin to prevent it anyway.</p>
</blockquote>

<p>Je refuse que seuls ceux qui sont au courant de tels problèmes de traçage par les grosses crèmeries du Web soient les seuls à pouvoir être protégés de ces dernières qui se goinfrent de métadonnées. Il n’y a pas assez de paranoïaques pour que les choses changent, et bien trop d’internautes qui s’en moquent éperdûment ou qui n’imaginent même pas ces problématiques. Si <em>nous ne sommes libres que lorsque tous ceux qui nous entourent sont également libres</em> (Mikhaïl Bakounine), c’est aux webmestres et aux administrateurs d’observer un comportement loyal&nbsp;: ils peuvent changer la donne en refusant de recourir à de tels <em>chevaux de Troie</em>.</p>

<p><img src="http://postblue.info/content/images/2014/Jun/bakounine.jpg " bnf,="" département="" philosophie,="" histoire,="" sciences="" de="" l’homme,="" lb61-600="" (tracts="" mai="" 1968)""="" alt="Mikhaïl Bakounine"></p>

<p>Enfin, ceux qui s’inquiètent de voir leurs métadonnées servir de repas au gros requin ont aussi bien le droit de naviguer sur des sites bien alignés, bien formatés, intégrant les polices et les icônes avec lesquelles les sites sont pensés.</p>

<p>Hébergez vos polices et cessez de recourir aux CDN dont vous ne pouvez pas maîtriser les contenus et donc auxquels vous ne pouvez pas faire confiance. Tout le monde y gagne sauf ceux que nous ne voulons pas voir gagner.</p>

<h2 id="versionoriginale">Version originale</h2>

<p>I understand that using <a href="http://git-scm.com/book/en/Git-Tools-Submodules">submodules</a> isn’t the easiest solution to download (I don’t know if <a href="https://developer.github.com/v3/repos/contents/#get-archive-link">an archived repository</a> adjoin them, and I think it doesn’t), and I’m sure it isn’t the cleanest one too, as it includes many unneeded files (maybe dangerous ones); I can work on a cleaner yet lightweight patch without using user unfriendly submodules.</p>

<p>I understand it would be complicated to deploy your theme for those who only know <code>git clone</code>, maybe <code>wget</code> and <code>unzip</code> too, though I barely know more of <code>git</code> myself (see those failed and ugly pull requests I’ve made!). But I don’t understand <a href="http://docs.ghost.org/installation/">how one would have installed Ghost</a> if he’s not a technical/git user, at least familiar with command-line interfaces. Are they pre-installed Ghost platforms with web-installable themes yet?</p>

<p>I deployed this patch on my server, and I see no resource overload with a good cache control policy. Anyway, I have absolutely no control on cache control policy in the case of CDN (<a href="https://en.wikipedia.org/wiki/Content_delivery_network">content delivery network</a>) served libraries and it should bother any webmaster. And if they’re on my own server, one reader won’t have to wait for a CORS call to succeed: if the server respond at first bits, the fonts will be served with no delay.</p>

<p>Furthermore, I think the worst privacy issues are the sum of bening behaviors. One developper will see no arm on his own side if he uses a CDN for the libraries he needs, but the CDN owners will see a big advantage to have the access logs of those loading pages that integrates the incriminated CDN contents. I’m a blog writter, not a personal data reseller. I’m not some kind of quisling. </p>

<p>Besides, I don’t think that only those who are aware of these issues and other not-<em>so</em>-wrong-paranoids have some kind of right to preclude the loading of these contents. There’s not enough paranoids to make a change, and too much of those who won’t lift a finger. Webmasters and developers have to mind their own behavior: they’re those who can make it change.</p>

<p>Furthermore, I think that those who are worried of being tracked (everyone should be worried about it, and not just whine around when they suddenly give a damn about their private life) have also the right of a well aligned, well displayed and well formated website, including fonts, icons, <em>etc</em>.</p>

<p>So I’m suggesting to give the fonts with the theme. I can work on it to make both lightweight and easy to install for the webmasters, and easy to update for you or the contributors.</p>


feed_id: 0a862dca-6f3c-4727-972a-862307e5f38f
title: LaTeX, précision de page dans la citation d'un volume
uri: LaTeX-précision-de-page-dans-la-citation-d-un-volume
url: http://postblue.info/latex-volcite/
content:
<p>Je suis pour le moment concerné par la rédaction d'un travail académique en philosophie, en LaTeX bien évidemment, et je me heurte à un problème rédhibitoire. Peut-être un lecteur pourra m'aider.</p>

<p>Habitué à l'utilisation de <code>footcites</code> les modalités de mon travail font que je suis contraint de procéder à la même manipulation mais dans le cadre d'une citation reprise dans un volume précis d'une publication.</p>

<pre><code>\footcites[pré-note][post-note]{clé1}[pré-note][post-note]{clé2}
</code></pre>

<p>Dans mon texte, j'ai configuré <code>biblatex</code> de la sorte :</p>

<pre><code>\usepackage[backend=biber,%
citestyle=verbose-trad2,%
bibstyle=verbose,%
sorting=nyvt,%
citepages=omit]{biblatex}
</code></pre>

<p><code>citepages=omit</code> me permet de citer la page d'un article (par exemple) sans afficher l’intervalle où il se situe (information superflue si l'on sait quelle est la page exacte où se trouve la citation, du moins selon l'usage que j'ai des renvois bibliographiques).</p>

<p>Après investigation de la documentation de <code>biblatex</code> (<a href="http://media.postblue.info/u/postblue/m/biblatex/">une véritable mine d'or</a>), j'ai appris à me servir de <code>fvolcites</code> à la place de <code>footcites</code> (après quelques tentatives infructueuses, je l'avoue).</p>

<pre><code>\fvolcites(pré-commentaire)(post-commentaire)[pré-note]{volume}[post-note]{clé1}[pré-note]{volume}[post-note]{clé2}
</code></pre>

<p>J'ai donc dans ma bibliographie une entrée <code>@mvbook</code> où le nombre de volumes est renseigné. Or, si <code>citepages=omit</code> fonctionne très bien dans l'utilisation de <code>footcites</code>, ce n'est malheureusement pas le cas avec <code>fvolcites</code> : l'intervalle est affiché, ce qui évidemment me déplaît. Dans la même veine, le nombre de volumes de l'ouvrage est également indiqué quand je précise le volume précis d'où est extraite la citation.</p>

<p>Retournant à la documentation de <code>biblatex</code> (version 2.9a, 24/06/2014), j'ai appris l'existence de <code>volcitepages</code> et de <code>volcitevolume</code>, p. 89. J'en ai chichement déduit un usage similaire, modifiant mon appel de biblatex en y ajoutant <code>volcitepages=omit, volcitevolume=omit</code>. La déduction ne fut malheureusement pas bonne, j'étais naïf de croire que ce serait aussi simple.</p>

<pre><code>/usr/share/texmf-dist/tex/latex/biblatex/biblatex2.sty:10902: Package xkeyval Error: `volcitevolume' undefined in families `blx@opt@pre'.
/usr/share/texmf-dist/tex/latex/biblatex/biblatex2.sty:10902: leading text: \blx@processoptions
/usr/share/texmf-dist/tex/latex/biblatex/biblatex2.sty:10902: Package xkeyval Error: `volcitepages' undefined in families `blx@opt@pre'.
/usr/share/texmf-dist/tex/latex/biblatex/biblatex2.sty:10902: leading text: \blx@processoptions
</code></pre>

<p>Enfin, il s'agit certainement d'une affaire de conventions et je me trompe dans l'application de celles-ci.</p>

<p>Addendum du 8 août 2014&nbsp;: j'ai rempli un <a href="https://github.com/plk/biblatex/issues/263">rapport de bug sur la page de développement de Biblatex</a>, j'en extrait ci-dessous mon exemple minimal et fonctionnel.</p>

<p>First, the <code>mwe.bib</code>.</p>

<pre><code class="biblatex">@mvbook{key1,
  author = {Author One},
  title = {Work One},
  volumes = {2}
}

@article{key2,
 author = {Author Two},
 title = {Work Two},
 journal = {Some journal},
 pages = {1-2}
}

@book{key3,
 author = {Author One},
 title = {Work One},
 volume = {1}
}
</code></pre>

<p>Two shots : <code>mwe1.tex</code> (<code>footcites</code> first) and <code>mwe2.tex</code> (<code>fvolcites</code> first), compiled with <code>pdflatex</code> and <code>biber</code>.</p>

<pre><code class="latex">\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,%
citestyle=verbose-trad2,%  
citepages=omit]{biblatex}

\bibliography{mwe}

\begin{document}
Example 1\footcites[][]{key3}[][2]{key2}.  
Example 2\fvolcites()()[]{1}[]{key1}[]{}[2]{key2}.  
\end{document}
</code></pre>

<p><img src="media/c387be2c.rrYB0L2.png" data-original-source="https://i.imgur.com/rrYB0L2.png" alt="MWE1"></p>

<pre><code class="latex">\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,%
citestyle=verbose-trad2,%  
citepages=omit]{biblatex}

\bibliography{mwe}

\begin{document}
Example 1\fvolcites()()[]{1}[]{key1}[]{}[2]{key2}.  
Example 2\footcites[][]{key3}[][2]{key2}.  
\end{document}
</code></pre>

<p><img src="media/e2770d4e.ufz13sx.png" data-original-source="https://i.imgur.com/ufz13sx.png" alt="MWE2"></p>

<p>The two first lines are quite obvious : with the <code>footcite</code>, the "1-2" pages are omitted, not with <code>fvolcite</code>.</p>


feed_id: 4f59663c-be21-478e-bd1d-f034deccce59
title: ULB connectée 1 : mon GeHoL
uri: ULB-connectée-1-mon-GeHoL
url: http://postblue.info/ulb-connectee-1-mon-gehol/
content:
<p>Communication technique pour bien commencer l'année à l'Université Libre de Bruxelles (ULB)&nbsp;; nous avons plusieurs systèmes et programmes qu'il peut être utile de connaître voire de savoir utiliser.</p>

<p><a href="http://mongehol.ulb.ac.be/">Le GeHoL nouveau est arrivé</a>&nbsp;!</p>

<p>Pour ceux qui ne connaissent pas GeHoL, nouveau ou ancien, il s'agit de l'outil de «&nbsp;<strong>Ge</strong>stion des <strong>Ho</strong>raires et des <strong>L</strong>ocaux&nbsp;», comprendre&nbsp;: l'outil en ligne où récupérer ses horaires de cours.</p>

<p>Après s'être connecté avec son <strong>netid</strong> (initiale du prénom accolée aux 7 premières lettres du nom de famille, quand il n'y a pas de conflit) sur <a href="http://mongehol.ulb.ac.be/Controlleurs/Controlleur.php">Mon horaire</a>, sont affichés uniquement les horaires des cours auxquels un étudiant est inscrit.</p>

<p>Fini d'avoir l'entièreté de l'horaire disponible affichée, toutes options confondues, pour tous les groupes possibles d'une année,&nbsp;&hellip;</p>

<p>De plus, il est possible d'ajouter à son horaire des cours supplémentaires (ou de cacher ceux qui sont en excédent&nbsp;; GeHoL peut être adapté aux horaires les plus lourds ou les plus légers)&nbsp;: dans l'onglet <a href="http://mongehol.ulb.ac.be/Vue/MesCours.php">Mes Cours</a>, l'œil accolé aux cours dans la colonne de gauche permet d'en masquer l'horaire quand cliqué, la colonne de droite permet d'ajouter des cours à son horaire global.</p>

<p>Enfin, pour ceux qui sont intéressés, il est possible d'intégrer son horaire GeHoL dans les applications qui le supportent. Depuis l'onglet <a href="http://mongehol.ulb.ac.be/Controlleurs/Controlleur.php">Mon horaire</a>, il suffit d'exporter celui-ci "en iCal" (Exporter l'horaire au format iCal).</p>

<p>Le lien obtenu doit ressembler à <code>http://mongehol.ulb.ac.be/Controlleurs/ICal.php?cal=[une clef unique]&amp;week=1</code>. Il est dès lors possible d'ajouter l'URL à un agenda, iCal sous Mac OS X par exemple, mais aussi dans <a href="https://www.google.com/calendar/render">Google Calendar</a>&nbsp;: en cliquant dans le menu de gauche sur la flêchette à côté de la catégorie "Autres agendas", il est possible d'en "Ajouter par URL". Attention, pour être sûr d'avoir l'horaire de toute l'année, il faut modifier l'URL pour qu'il se termine par <code>...&amp;week=141</code> !</p>

<p>Ceci fait, il est possible de visualiser en temps réel son horaire, par exemple en l'affichant dans les agendas d'un téléphone tournant sous Android. Il suffit d'aller dans l'application Agenda et, dans le menu, ajouter l'agenda <code>mongehol</code> aux agendas synchronisés et affichés.</p>

<p>En espérant que cela serve à quelques uns.</p>


feed_id: 5b6d1e33-7888-49ee-8c53-c55397a8d828
title: Quelle distribution GNU/Linux choisir quand on n’y connaît rien ?
uri: Quelle-distribution-GNU-Linux-choisir-quand-on-n-y-connaît-rien
url: http://postblue.info/quelle-distribution-linux-choisir-quand-on-ny-connait-rien/
content:
<blockquote>
  <p>TL;DR&nbsp;: <a href="http://handylinux.org/">HandyLinux</a>.</p>
</blockquote>

<p>Il n'est pas chose aisée de bien choisir sa distribution Linux quand on n'entrave rien aux arcanes du monde enchanteur des barbu·e·s. La notion-même de <em>distribution</em> peut être source d'angoisses existentielles&nbsp;: pour tenter d'éclairer la chose, il s'agit d'un <strong>ensemble cohérent de logiciels assemblés autour d'un «&nbsp;logiciel&nbsp;» particulier, le noyau, appelé <em>Linux</em></strong>. Comprendre&nbsp;: une boîte à outils agencée de façon particulière. Voyez Linux comme un moteur&nbsp;: la distribution est tout ce qu'il faut en plus au seul moteur, qui est central, pour que la voiture puisse rouler.</p>

<p>Bref, quand on n'y touche rien à Linux, quand on en a marre des systèmes qui demandent toujours plus de ressources pour pouvoir tourner, des systèmes qui ne sont plus supportés du jour au lendemain et demandent de mettre sa machine au rebus, <strong>quelle distribution choisir</strong>&nbsp;?</p>

<p>Avant tout, il faut pouvoir identifier son «&nbsp;niveau&nbsp;» en informatique&nbsp;: est-on un débutant extrême, à peine retrouve-t-on ses jeunes sous Windows, avec le four à micro-ondes programmable c'est déjà la joie, ou n'est-on pas effrayé à l'idée de lire un peu de documentation ou à faire quelques recherches&nbsp;?</p>

<p>Ensuite, s'assurer de son entourage&nbsp;: y a-t-il quelqu'un que vous connaissez qui voudrait bien vous aider en cas de problème, ou y a-t-il un Groupe d'utilisateurs de Linux dans votre ville (le <a href="http://www.bxlug.be/">BxLUG</a> à Bruxelles)&nbsp;?</p>

<p>De plus&nbsp;: pouvoir estimer son niveau en anglais. La communauté de certaines distributions sont plus ou moins francophones, si vous n'y entendez rien à la langue de Shakespeare, il sera plus judicieux de se procurer une distribution francophone ou au moins francophile.</p>

<p>Ce n'est seulement qu'en dernier lieu que se posent les traditionnelles questions des prosélytes&nbsp;: quelles sont les spécificités de la machine, quelle charge peut-elle supporter, quelle interface, <em>etc</em>.</p>

<p>Du reste, la distribution qui me semble répondre aux premières injonctions est HandyLinux, avec sa communication en français, sa communauté francophone, son tutoriel de premier démarrage, son interface classique et intuitive, et une base de logiciels fournie.</p>

<p><img src="media/db2f336c.banner01.png" data-original-source="http://handylinux.org/slideshow/img/banner01.png" alt="HandyLinux"></p>


feed_id: 17d87637-b199-486b-afe7-c46913fd823b
title: Arch Linux ARM sur un Raspberry Pi 2
uri: Arch-Linux-ARM-sur-un-Raspberry-Pi-2
url: http://postblue.info/arch-linux-arm-raspberry-pi-2/
content:
<p>Je me suis acheté <a href="http://www.ldlc.be/fiche/PB00182827.html">un Raspberry Pi 2 sur LDLC</a>, le site de vente en ligne qui m'a octroyé une ristourne à l'occasion de mon anniversaire. Le délai entre la commande et la réception fut très long, rupture de stock oblige, mais en résumé <strong>je suis hyper-content</strong>.</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/QM3aQjHPcmA" frameborder="0" allowfullscreen></iframe>

<p>Inutile de revenir une énième fois sur les spécificités matérielles et logicielles de la machine : d'autres s'en sont occupé·e·s avant moi et certainement bien mieux. Oui, ce modèle est <em>tellement plus mieux</em> que ses prédécesseurs. Évidemment, il faut être à l'aise avec la ligne de commande pour utiliser ce type de matériel.</p>

<h1 id="rceptiondupaquetetmontage">Réception du paquet et montage</h1>

<p><img src="media/4ed2ba12.20150415_190935.jpg" data-original-source="http://postblue.info/content/images/2015/04/20150415_190935.jpg" alt="Raspberry Pi 2 et Rainbow Pibow"></p>

<p>Comme je l'ai annoncé en préambule : le délai de livraison fut allongé à cause d'une rupture de stock de Raspberry Pi 2 chez LDLC. Qu'à cela ne tienne, je n'étais pas pressé.</p>

<p>J'ai profité de cette commande pour acheter <a href="http://www.ldlc.be/fiche/PB00097464.html">une carte microSD de 16Go</a> sur laquelle installer le système d'exploitation &mdash;&nbsp;voir <a href="http://elinux.org/RPi_Distributions">ici une liste des distributions existantes</a>&nbsp;&mdash; et <a href="https://www.adafruit.com/products/2084">un boîtier <em>gay-friendly</em> chez Adafruit</a> compatible avec mon modèle de Raspberry Pi.</p>

<p>Le paquet du Raspberry Pi est minimal&nbsp;: une boîte en carton contenant une notice en 16 langues que je ne lirai certainement jamais, et un Raspberry Pi 2 sous film plastique de protection. C'est tout. Celui du Pibow l'est également&nbsp;: emballage en carton recyclé, pas de surabondance de matière première, à l'instar de l'emballage pour les précédentes versions du Raspberry Pi.</p>

<p><img src="media/03f5c150.rainbow_pibow.jpg" data-original-source="http://postblue.info/content/images/2015/04/rainbow_pibow.jpg" alt="Rainbox Pibow v1"></p>

<p>Note : toutes les «&nbsp;couches&nbsp;» du Pibow sont recouvertes d'un côté par un film blanc translucide qu'il faut enlever si vous ne voulez pas que votre Raspberry Pi ressemble à ça (la poussière en plus).</p>

<p><img src="media/ef456183.20150414_150835.jpg" data-original-source="http://postblue.info/content/images/2015/04/20150414_150835.jpg" alt="Raspberry Pi 2 et Rainbow Pibow"></p>

<p>Du reste, il ne prend que très peu de place, il y en a même encore un peu sous le meuble où à brol / routeur / imprimante pour que je le branche à un disque dur portable qui servira à l'hébergement de données (torrents, sauvegardes, serveur multimédia DLNA/UPnP&hellip;). Je suis preneur de conseils concernant un disque dur portable abordable pouvant être allumés longtemps, très longtemps (pas de surchauffe ni de tendance à casser si trop souvent utilisé), avec une bonne alimentation (je n'ai pas envie qu'il brûle au moindre petit problème électrique).</p>

<h1 id="installationdarchlinuxarm">Installation d'Arch Linux ARM</h1>

<p>La distribution semble-t-il la plus utilisée est <a href="http://www.raspbian.org/">Raspbian</a>, une distribution basée sur Debian qui incorpore l'utilitaire de configuration simplifiée <code>raspi-config</code>. J'ai préféré installer <a href="http://archlinuxarm.org/">Arch Linux ARM</a>, suite a un problème de compatibilité de <a href="https://fr.wikipedia.org/wiki/Common_Unix_Printing_System">CUPS</a> entre la version installée sur les ordinateurs (Debian Jessie, Arch Linux) et celle incluse dans Raspbian (Debian Wheezy).</p>

<p>Pour l'installation, il suffit de <a href="http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2">suivre le guide</a>, que je traduis ci-dessous.</p>

<h2 id="vuedensemble">Vue d'ensemble</h2>

<blockquote>
  <p>Le Raspberry Pi 2 est le successeur du Raspberry Pi. Il s'appuie sur le modèle original B +, mis à niveau vers 1Go de RAM, et en remplaçant le <em>single-core</em> vieillissant ARMv6l avec un <em>quad-core</em> Cortex-A7 ARMv7l.</p>
  
  <p>Le Raspberry Pi 2 mesure 85.60mm &times; 53.98mm &times; 17mm (&hellip;).</p>
</blockquote>

<h2 id="crationdelacartesdcontenantlesystmedexploitation">Création de la carte SD contenant le système d'exploitation</h2>

<p>Remplacer <strong>sdX</strong> dans les instructions suivantes par le nom de périphérique pour la carte SD tel qu'il apparaît sur votre ordinateur. Si vous ne parvenez pas à effectuer ces manipulations à cause de restrictions de droits sur les périphériques ou les partitions, exécutez-les avec votre compte <code>root</code>.</p>

<ol>
<li><p>Lancer <code>fdisk</code> pour partitionner la carte SD :</p>

<pre><code>fdisk /dev/sdX
</code></pre></li>
<li><p>À l'invite de <code>fdisk</code>, supprimer les anciennes partitions et en créer une nouvelle :</p>

<ul><li>Taper <strong>o</strong>. Cela effacera toutes les partitions sur le disque.</li>
<li>Taper <strong>p</strong> pour lister les partitions. Il devrait ne rester aucune partition.</li>
<li>Taper <strong>n</strong>, puis <strong>p</strong> pour créer une partition primaire, <strong>1</strong> pour la première partition sur le disque, puis appuyer sur <strong>Entrée</strong> pour accepter le premier secteur par défaut, puis entrer <strong>+100M</strong> pour le dernier secteur (c'est-à-dire que la première partition fait 100M à partir du premier secteur).</li>
<li>Taper <strong>t</strong>, puis <strong>c</strong> pour régler le type de la première partition sur <strong>W95 FAT32 (LBA)</strong>.</li>
<li>Taper <strong>n</strong>, puis <strong>p</strong> pour créer une partition primaire, <strong>2</strong> pour la deuxième partition sur le disque, puis appuyer deux fois sur <strong>Entrée</strong> pour accepter les premiers et derniers secteurs par défaut (prendre tout l'espace restant sur le disque).</li>
<li>Écrire la table de partition et sortir de <code>fdisk</code> en tapant <strong>w</strong>.</li></ul></li>
<li><p>Créer et monter le système de fichiers FAT :</p>

<pre><code>mkfs.vfat /dev/sdX1
mkdir boot
mount /dev/sdX1 boot
</code></pre></li>
<li><p>Créer et monter le système de fichiers ext4 :</p>

<pre><code>mkfs.ext4 /dev/sdX2
mkdir root
mount /dev/sdX2 root
</code></pre></li>
<li><p>Télécharger et extraire le système de fichiers racine (avec le compte <code>root</code> et non pas via la commande <code>sudo</code>) :</p>

<pre><code>wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
sync
</code></pre></li>
<li><p>Déplacer le fichiers de démarrage vers la première partition :</p>

<pre><code>mv root/boot/* boot
</code></pre></li>
<li><p>Démonter les deux partitions :</p>

<pre><code>umount boot root
</code></pre></li>
<li><p>Supprimer les dossiers créés sur l'ordinateur :</p>

<pre><code>rmdir boot root
</code></pre></li>
<li><p>Insérer la carte SD dans le Raspberry Pi, connecter le câble Ethernet, puis brancher l'alimentation de 5V.</p></li>
<li><p>Utiliser la console série (nécessite de brancher un clavier USB et un écran au Raspberry Pi et de configurer la disposition du clavier avec <code>loadkeys</code>, <em>cf.</em> la <a href="https://wiki.archlinux.fr/Vconsole">configuration du clavier dans la console virtuelle</a>) ou se connecter par SSH à l'adresse IP donnée par votre routeur. Le mot de passe par défaut est <code>root</code>.</p></li>
</ol>

<h1 id="configurationdebase">Configuration de base</h1>

<p>Avant de faire quoi que ce soit, des manipulations de base doivent être effectuée : première mise à jour, configuration du mot de passe du compte <code>root</code>, installation des composants de base, création d'un utilisateur et sécurisation de la connexion SSH, </p>

<p>Pour se connecter à votre Raspberry Pi par SSH (solution que je préfère), il faut en trouver l'adresse IP. Le plus simple à mon avis reste de la chercher dans l'interface d'administration de votre routeur.</p>

<p><img src="media/7a02d0a7.Screenshot-from-2015-04-15-17-10-08.png" data-original-source="http://postblue.info/content/images/2015/04/Screenshot-from-2015-04-15-17-10-08.png" alt="Administration du routeur pour trouver l'adresse IP allouée au Raspberry Pi"></p>

<p>J'en ai profité pour cocher l'option <em>Always use the same address</em> (toujours utiliser la même adresse IP) afin de ne pas devoir chercher à quelle adresse réside mon Raspberry Pi.</p>

<ul>
<li><p>Une fois l'adresse IP du Raspberry Pi récupérée, ouvrir un terminal sur votre ordinateur et vous connecter par SSH au compte <code>root</code>. Entrer le mot de passe : <code>root</code>.</p>

<pre><code>ssh root@192.168.1.66
</code></pre></li>
<li><p>Changer le mot de passe du compte <code>root</code> :</p>

<pre><code>passwd root
</code></pre></li>
<li><p>Entrer le mot de passe choisi (ne pas confondre complexité et difficulté) et valider :</p></li>
</ul>

<p><img src="media/5f4a7251.password_strength.png" data-original-source="http://imgs.xkcd.com/comics/password_strength.png" alt="Password Strength, XKCD, CC BY-NC"></p>

<ul>
<li><p>Utiliser <code>pacman</code>, le gestionnaire de paquets d'Arch Linux, pour une première mise à jour des programmes installés (dont le noyau et les pilotes, le plus utile) :</p>

<pre><code>pacman -Syu
</code></pre></li>
<li><p>Installer quelques outils de base d'Arch Linux avec l'argument <code>--needed</code> pour ne pas réinstaller les paquets déjà à jour :</p>

<pre><code>pacman -Sy base base-devel archlinux-keyring archlinuxarm-keyring linux-tools-meta --needed
</code></pre></li>
</ul>

<p>Reste à suivre <a href="https://wiki.archlinux.org/index.php/Beginners%27_guide#Chroot_and_configure_the_base_system">la documentation ArchLinux de base</a> pour la configuration générale du Raspberry Pi 2 (copie augmentée de la page <a href="https://wiki.archlinux.fr/Cat%C3%A9gorie:Configuration">Configuration d'Arch Linux</a> du wiki francophone):</p>

<ul>
<li><p>Le nom d'hôte est configurable dans le fichier <code>/etc/hostname</code>.</p>

<pre><code>echo nom &gt; /etc/hostname
</code></pre>

<p>J'ai décidé d'appeler mon Raspberry Pi 2 <code>fernand</code>, changement à reverser dans le fichier d'hôtes <code>/etc/hosts</code> :</p>

<pre><code>127.0.0.1       localhost.localdomain   localhost nom
::1             localhost.localdomain   localhost nom
</code></pre></li>
<li><p>Différentes locales sont activables dans le fichier <code>/etc/locale.gen</code> et générées par la commande <code>locale-gen</code>. La locale utilisée par le système est configurable dans le fichier <code>/etc/locale.conf</code>.</p>

<pre><code>nano /etc/locale.gen
</code></pre>

<p>Décommenter :</p>

<pre><code>en_US.UTF-8 UTF-8
fr_FR.UTF-8 UTF-8
</code></pre>

<p>Générer les locales :</p>

<pre><code>locale-gen
</code></pre>

<p>Rendre les changements effectifs directement&bsp;:</p>

<pre><code>export LANG=fr_FR.UTF-8
</code></pre>

<p>Appliquer les changements en éditant <code>/etc/locale.conf</code>&nbsp;:</p>

<pre><code># Spécifier fr par défaut
LANG="fr_FR.UTF-8"
# Préférer l'anglais à la langue par défaut si la traduction fr n'existe pas
LANGUAGE="fr_FR:en_US"
# Mais garder un tri par défaut
LC_COLLATE=C
</code></pre></li>
<li><p>Les consoles virtuelles (TTY) sont configurables dans le fichier <code>/etc/vconsole.conf</code>, qui permet entre autres de choisir une police d'écriture ainsi qu'une configuration de clavier.</p></li>
<li><p>La date et l'heure sont configurables en créant le lien symbolique <code>/etc/localtime</code> vers le fichier correspondant à la zone géographique souhaitée, disponible dans le dossier /usr/share/zoneinfo/. La commande <code>timedatectl</code> permet de le faire, ainsi que d'activer la synchronisation avec un serveur de temps pour garder la machine à l'heure :</p>

<pre><code>timedatectl set-timezone Europe/Paris
timedatectl set-ntp true
</code></pre></li>
<li><p><code>fake-hwclock</code> a été spécialement conçu pour les systèmes sans horloge matérielle. Il comprend un service <code>systemd</code> enregistre l'heure actuelle et restaure celle-ci au démarrage, évitant ainsi d'étranges erreurs de voyage dans le temps.</p>

<pre><code>pacman -Sy fake-hwclock
systemctl enable fake-hwclock fake-hwclock-save.timer
</code></pre></li>
<li><p>Le gestionnaire de paquet, <code>pacman</code>, peut être configuré dans le fichier <code>/etc/pacman.conf</code>. Pour les yeux seulement, j'active la coloration du logiciel (<code>Color</code>) et une barre de progression sous forme de Pacman (<code>ILoveCandy</code>).</p>

<pre><code># Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
ILoveCandy
</code></pre></li>
<li><p>Maintenant, il vous faut créer votre utilisateur avec lequel vous vous connecterez. Vous pouvez affecter l'utilisateur à certains groupes, en fonction des tâches qui seront effectuées. Je vous conseille de lire la page <a href="https://wiki.archlinux.fr/Utilisateurs_et_Groupes">utilisateurs et groupes</a> du wiki francophone.</p>

<p>Identifiez vous en <code>root</code>, avec le mot de passe défini à l'installation. Tapez ensuite :</p>

<pre><code>useradd -g users -m -s /bin/bash &lt;nom utilisateur&gt;
passwd &lt;nom utilisateur&gt;
</code></pre></li>
<li><p>Pour finir, configurer et protéger la connexion par SSH. Je vous conseille de lire <a href="https://wiki.archlinux.fr/Ssh">la page Ssh du wiki francophone</a>. La configuration se fait dans le fichier <code>/etc/ssh/sshd_config</code> :</p>

<ul><li><code>PermitRootLogin no</code> interdit la connexion avec le compte <code>root</code>, pour ne plus pouvoir s'identifier qu'avec un compte aux droits limités comme celui créé à l'étape précédente.</li>
<li><code>PasswordAuthentication no</code> désactive la connexion par mot de passe pour ne permettre de se connecter qu'avec un jeu de clés publique et privée, voir <a href="https://wiki.archlinux.fr/Ssh#Cl.C3.A9_publique.2Fpriv.C3.A9e">la section Clé publique/privée</a> du wiki francophone pour configurer cela.</li>
<li><code>PermitEmptyPasswords no</code> désactive les mots de passe vides.</li>
<li><code>AllowUsers &lt;nom utilisateur&gt;</code> restreint l'accès aux utilisateurs indiqués.</li>
<li><p>Redémarrer le service SSH pour appliquer les changements :</p>

<pre><code>systemctl restart sshd
</code></pre></li>
<li><p>Pour vérifier que tout fonctionne, il suffit d'essayer d'ouvrir une nouvelle fenêtre de connexion.</p></li></ul></li>
<li><p>Redémarrer :</p>

<pre><code>reboot
</code></pre></li>
</ul>

<h1 id="serveurdimpressionpartag">Serveur d'impression partagé</h1>

<p>La première utilisation que j'ai réservée à mon Raspberry Pi 2 est qu'il fasse office serveur d'impression CUPS pour partager une vieille imprimante HP connecté en USB sur mon réseau. </p>

<p>Pour ce faire, le serveur d'impression CUPS doit être installé, ainsi que le programme <code>hplip</code> permettant de communiquer avec les imprimantes HP, et le service Avahi.</p>

<blockquote>
  <p><a href="http://avahi.org/">Avahi</a> est une mise en œuvre des protocoles <a href="https://fr.wikipedia.org/wiki/Zeroconf">Zeroconf</a> permettant ainsi «&nbsp;à des logiciels de publier et de découvrir des services et des hôtes en cours d'exécution sur un réseau local TCP/IP sans configuration particulière. Par exemple, un utilisateur peut brancher son ordinateur sur un réseau et trouver instantanément des imprimantes pour imprimer, des fichiers à lire et des personnes à qui parler.&nbsp;»</p>
</blockquote>

<ol>
<li><p>Installer les dépendances :</p>

<pre><code>pacman -S nss-mdns avahi cups sane hplip --needed
</code></pre></li>
<li><p>Pour accéder aux ordinateurs du réseau local en utilisant leur nom de domaine (ex&nbsp;: <code>myhostname.local</code>) plutôt que leur adresse IP, il faut activer le support des requêtes avec <code>.local</code>, ce qui n'est pas le cas par défaut sous Arch Linux. Pour l'activer, il fauch changer la ligne des hôtes dans <code>/etc/nsswitch.conf</code>&nbsp;:</p>

<pre><code>hosts: files mdns_minimal [NOTFOUND=return] dns myhostname
</code></pre></li>
<li><p>Pour activer le support du scanner des imprimantes<sup id="fnref:1"><a href="http://postblue.info/arch-linux-arm-raspberry-pi-2/#fn:1" rel="footnote">1</a></sup> multifonction de HP, il faut s'assurer d'avoir installé Sane (le serveur permettant de partager le scanner) et xinetd (un démon gérant les connexions basées sur Internet).</p>

<pre><code>pacman -S sane xinetd --needed
</code></pre>

<p>Ensuite, il faut éditer le fichier de configuration de Sane <code>/etc/sane.d/dll.conf</code> et y ajouter (ou décommenter) la ligne suivante (la dernière ligne du fichier bien souvent) :</p>

<pre><code>hpaio
</code></pre>

<p>Après, il faut configurer Sane pour partager l'imprimante sur le réseau dans <code>/etc/sane.d/saned.conf</code>&nbsp; et y indiquer la plage réseau dans laquelle le scanner sera accessible&nbsp;:</p>

<pre><code># Requis, machine elle-même
localhost
# Autoriser le réseau local
192.168.0.0/24
192.168.1.0/24
</code></pre>

<p>Ensuite, il faut activer le support de Sane par Xinetd en éditant le fichier <code>/etc/xinetd.d/sane</code> et empêcher la désactivation&nbsp;:</p>

<pre><code># disabled by default!
disable     = no    
</code></pre>

<p>Dans ce fichier, nous voyons que c'est l'utilisateur <code>nobody</code> qui devra gérer le scanner. On l'ajoute donc au groupe idoine&nbsp;:</p>

<pre><code>usermod -a -G scanner nobody
</code></pre></li>
<li><p>Activer les services :</p>

<pre><code>systemctl enable avahi-daemon org.cups.cupsd cups-browsed xinetd
</code></pre></li>
<li><p>Démarrer les services :</p>

<pre><code>systemctl start avahi-daemon org.cups.cupsd cups-browsed xinetd
</code></pre></li>
<li><p>Il faut ensuite ajouter l'imprimante HP à la liste des imprimantes connues avec la commande <code>hp-setup</code> :</p>

<pre><code>hp-setup -i
</code></pre></li>
<li><p>La commande qui suit sert à activer le partage des imprimantes sur le réseau local et restreindre au réseau local, activer l'administration à distance, permettre à n'importe qui sur le réseau local de supprimer une impression&nbsp;:</p>

<pre><code>cupsctl --no-remote-any --share-printers --remote-admin --user-cancel-any
</code></pre></li>
<li><p>Pour finir, redémarrer le service pour être sûr·e que les changements sont bien pris en compte&nbsp;:</p>

<pre><code>systemctl restart org.cups.cupsd
</code></pre></li>
</ol>

<p>Pour accéder à l'interface web de CUPS, il suffit d'ouvrir l'adresse <code>http://myhostname.local:631</code>, et y administrer les imprimantes (format de papier par défaut, imprimante par défaut du serveur&hellip;).</p>

<p><strong>N.B.</strong>&nbsp;: Installer les dépendances optionnelles à <code>hplip</code> peut être chaudement recommandé s'il y a un souci : <code>python-dbus</code> (support dbus), <code>python-pillow</code> (support du scan par ligne de commande), <code>python-reportlab</code> (support de la sortie PDF du scan) et <code>rpcbind</code> (support du réseau).</p>

<pre><code>    pacman -S python-dbus python-pillow python-reportlab rpcbind --needed
</code></pre>

<h1 id="partagedefichiersmultimdia">Partage de fichiers multimédia</h1>

<p>Section à compléter en attendant de disposer d'un disque dur portable à brancher au Raspberry Pi 2, voir l'index <a href="https://wiki.archlinux.org/index.php/Streaming_media">Streaming media</a> du wiki anglophone.</p>

<h1 id="serveurdesauvegarde">Serveur de sauvegarde</h1>

<p>Section à compléter en attendant de disposer d'un disque dur portable à brancher au Raspberry Pi 2, voir l'index <a href="https://wiki.archlinux.org/index.php/Backup_programs">Backup programs</a> du wiki anglophone.</p>

<h1 id="serveurbittorrent">Serveur BitTorrent</h1>

<p>Section à compléter en attendant de disposer d'un disque dur portable à brancher au Raspberry Pi 2. J'ai dans l'idée d'utiliser <a href="https://wiki.archlinux.fr/Transmission">Transmission</a>, à administrer via l'interface web, l'extension pour GNOME Shell <a href="https://extensions.gnome.org/extension/365/transmission-daemon-indicator/">Transmission Daemon Indicator</a> ou via <a href="http://www.transdroid.org/">l'application Transdroid</a>.</p>

<div class="footnotes"><ol><li class="footnote" id="fn:1"><p>Mise à jour du 19 juillet 2015&nbsp;: suppression du module hpoj, ajout de l'installation des paquets Sane et Xinetd, ajout de la configuration de Xinetd, ajout des dépendances optionnelles de HPLIP. <a href="http://postblue.info/arch-linux-arm-raspberry-pi-2/#fnref:1" title="return to article">↩</a></p></li></ol></div>


feed_id: 794a8ce6-fedd-4133-b117-192b0424e169
title: Du nom des machines
uri: Du-nom-des-machines
url: http://postblue.info/du-nom-des-machines/
content:
<p>Alors que pendant longtemps je n’avais prêté qu’une attention minimale au baptême de mes jouets – électroniques ou non –, il s’agit maintenant d’une étape importante dans mon processus d’<a href="http://postblue.info/materiel/">appropriation de la machine</a>.</p>

<p>Tout commença par mon premier ordinateur fixe, acheté de mes deniers accumulés : je l’appelai <strong>Maurice</strong>, référence à un jeu de mots bas-de-plafond selon lequel « <em>Alan</em> (l’écran) <em>is Maurice’s head</em> », du nom de <a href="https://fr.wikipedia.org/wiki/Alanis_Morissette">la chanteuse canadienne</a>. Je l’appellerai bien plus tard <strong>Maelwas</strong>, nom celtique dont serait issu le prénom du personnage de <a href="https://fr.wikipedia.org/wiki/M%C3 %A9 l%C3 %A9agant">Méléagant</a>, puis enfin <strong>Giordano</strong> (pour <a href="https://fr.wikipedia.org/wiki/Giordano_Bruno">Bruno</a>), auquel j’ai été initié par la lecture de <em>Du monde clos à l'univers infini</em> d’Alexandre Koyré.</p>

<p>Mon premier netbook, <a href="http://postblue.info/linux-compaq-mini-700ef/">un Compaq Mini 700EF</a>, avait été baptisé par la personne qui m’en avait fait le prêt à long terme : <strong>Donatien Alphonse François</strong> («&nbsp;DAF&nbsp;» en abrégé), prénom du « divin » <a href="https://fr.wikipedia.org/wiki/Donatien_Alphonse_François_de_Sade">Marquis de Sade</a> que je lui laissai.</p>

<p>Je poursuivis les références aux écrivains, penseurs, etc. en appelant mon premier serveur <strong>Antonin</strong>, pour l’écrivain <a href="https://fr.wikipedia.org/wiki/Antonin_Artaud">Antonin Artaud</a>.</p>

<p>Mon second netbook, <a href="http://postblue.info/arch-linux-ssd-lvm-gpt/">un Samsung N210</a>, pris le prénom du mathématicien, logicien et philosophe allemand : <strong>Gottlob</strong> <a href="https://fr.wikipedia.org/wiki/Gottlob_Frege">Frege</a>.</p>

<p>En référence à son <em>Mode d’existence des objets techniques</em>, je baptisai tardivement mon premier smartphone <strong>Gilbert</strong>, pour <a href="https://fr.wikipedia.org/wiki/Gilbert_Simondon">Gilbert Simondon</a>. Mon smartphone actuel a été baptisé du prénom de la philosophe des sciences <strong>Donna</strong> <a href="https://fr.wikipedia.org/wiki/Donna_Haraway">Haraway</a>, marquant enfin l’apparition d’une femme.</p>

<p>Mon second serveur, sur lequel sont encore hébergés la plupart de mes services, a quant à lui le prénom du philosophe et théologien danois <a href="https://fr.wikipedia.org/wiki/Søren_Kierkegaard">Søren Kierkegaard</a>, translittéré en <strong>Soeren</strong> (<code>ˈzøːr ̩n</code>). Même si j’ai dû repartir de zéro plusieurs fois pour l’hébergement de mes services, le prénom a survécu aux multiples (ré)installations, <a href="http://postblue.info/debian-configuration-vps-minimal/">toujours sur une base Debian</a>.</p>

<p>Vint ensuite mon premier ordinateur portable (un <a href="http://www.fujitsu.com/fr/products/computing/pc/notebooks/lifebook-u772/">Fujitsu Lifebook U772</a>), arborant une belle robe rouge, que j’appelai <strong>Karl</strong>, évidemment, pour <a href="https://fr.wikipedia.org/wiki/Karl_Marx">Marx</a>.</p>

<p>Puis enfin mes deux derniers achats : des <a href="https://www.raspberrypi.org/products/raspberry-pi-2-model-b/">Raspberry Pi 2 Model B</a>, dont j’ai déjà présenté <a href="http://postblue.info/arch-linux-arm-raspberry-pi-2/">l’installation sous Arch Linux ARM</a> de l’un et qui s’appelle <strong>Fernand</strong>, pour <a href="https://fr.wikipedia.org/wiki/Fernand_Deligny">Fernand Deligny</a> que je lis dans le cadre de mon mémoire. L’autre s’appelle <strong>Theodor</strong>, pour le philosophe et sociologue allemand <a href="https://fr.wikipedia.org/wiki/Theodor_W._Adorno">Theodor Adorno</a>, fondateur avec <a href="https://fr.wikipedia.org/wiki/Max_Horkheimer">Max Horkeimer</a> du concept d’<a href="http://www.persee.fr/web/revues/home/prescript/article/comm_0588-8018_1964_num_3_1_993">industriel culturelle</a> : ce Raspberry me sert de centre multimédia greffé à un écran de télévision, tournant sous <a href="https://fr.wikipedia.org/wiki/Theodor_W._Adorno">OSMC</a>.</p>

<p>Mais en vrac il y a aussi : <strong>Sharon</strong> (<a href="https://fr.wikipedia.org/wiki/Num%C3 %A9ro_huit_%28Battlestar_Galactica%29">personnage de Battlestar Galactica</a> – attention, <em>spoil</em>), <strong>Immanuel</strong> (<a href="https://fr.wikipedia.org/wiki/Emmanuel_Kant">Kant</a>), <strong>Gottfried</strong> (<a href="https://fr.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz">Leibniz</a>), <strong>Arthur</strong> (<a href="https://fr.wikipedia.org/wiki/Arthur_Schopenhauer">Schopenhauer</a>)… De plus, ma tendance à prénommer les machines que j’utilise souvent comme des philosophes, des écrivain·e·s s’est dernièrement doublée de celle de donner aux périphériques de stockage des noms de concepts : <em>Dasein</em>, <em>Monade</em>…</p>

<p>Tout va bien.</p>


feed_id: 15d3ddb1-0546-4355-abf6-5bc0e25d13a1
title: Isso : un serveur de commentaires similaire à Disqus
uri: Isso-un-serveur-de-commentaires-similaire-à-Disqus
url: http://postblue.info/isso-un-serveur-de-commentaires-similaire-a-disqus/
content:
<p>L’absence de solutions efficaces d'hébergement de commentaires m'avait mené à <a href="http://postblue.info/sans-commentaire/">fermer les commentaires</a> sur mon blog, mode cyclique dans la blogosphère francophone.</p>

<p>Il m'était possible d'avoir recours à un service du genre de Disqus&nbsp;: j'avais d'ailleurs essayé ce dernier pour presque immédiatement l'abandonner. La liste de griefs à l'encontre de tels services est longue comme le bras et rejoint une partie <a href="http://postblue.info/ugly-cdn/">des critiques</a> m'ayant mené à la tenue d'un <em>fork</em> du thème utilisé ici&nbsp;: centralisation des contenus, dépendance à un tiers, vente de données, traçage des lecteurs, absence de maîtrise sur le service, absence de consentement de la part du lecteur concernant le recours à un service commercial qui lui serait imposé, la liste s'étend à n'en plus finir.</p>

<p>Cependant, un service comme Disqus permet d'intégrer des commentaires à un moteur de blog statique qui n'intègre pas une telle fonctionnalité (comme Ghost déployé ici ou <a href="http://jekyllrb.com/">Jekyll</a> pour ne citer que ceux auxquels je me suis essayé). Les commentaires sont toujours-déjà exportés, leur intégration peut suivre plus ou moins aisément les changements de moteur de blog pour peu que l'adresse des articles ne soit pas complètement chamboulée.</p>

<p>Bref, les avantages d'une externalisation du service de commentaires par rapport au moteur de blog est intéressant &mdash; imparable pour moi qui maintenant utilise Ghost.</p>

<p><img src="media/797e294c.isso_demo.png" data-original-source="http://postblue.info/content/images/2015/07/isso_demo.png" alt="Ich schrei sonst!"></p>

<p>C'est ainsi que j'ai trouvé mon bonheur avec <a href="http://posativ.org/isso/">Isso</a> &mdash; <a href="http://postblue.info/message-de-service/#isso-270">merci Neros</a> &mdash;, un service léger que j'ai pu <a href="http://posativ.org/isso/docs/install/">installer en quelques minutes</a> sur mon serveur.</p>

<p>Isso est un serveur de commentaires léger écrit en Python et en Javascript. L'évolution des fonctionnalités est appréciable, le support est très sympathique, et même si c'est un peu spartiate pour le moment (pas encore d'interface d'administration des commentaires, je valide chaque commentaire par retour de mail), ça fait très bien son boulot.</p>

<p>J'utilise un processus <code>supervisor</code> pour contrôler ce service.</p>

<pre><code>[program:isso]
command = /path/to/isso/bin/isso -c /path/to/isso/isso.conf run
directory = /path/to/isso
user = isso
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/isso.log
stderr_logfile = /var/log/supervisor/isso_err.log
</code></pre>

<p>Pour mettre à jour, il est possible de composer un <code>alias</code> à ajouter au fichier de configuration de Bash ou d'une alternative à ce dernier (<code>alias update-isso='...'</code>) </p>

<pre><code>cd /path/to/isso; ./bin/pip install --upgrade isso
</code></pre>

<p>Puis, redémarrer le processus <code>supervisor</code>.</p>

<pre><code>supervisorctl restart isso
</code></pre>

<p><strong>N.B.&nbsp;:</strong> Le thème que j'utilise affiche le dernier article en page de garde. Or, Isso utilise l'URL relatif de la page visitée pour servir les commentaires adéquats, créant ainsi une différence entre l'article repris en page de garde et son URL effectif. Pour corriger cela, il faut modifier le code d'intégration comme suit&nbsp;:</p>

<pre><code>&lt;section id="isso-thread" data-isso-id="{{url relative="true"}}"&gt;&lt;/section&gt;
</code></pre>


feed_id: a45ba3c4-44e9-4fe5-b004-5c6b91677c7f
title: Compilation distribuée sur un réseau local
uri: Compilation-distribuée-sur-un-réseau-local
url: http://postblue.info/compilation-distribuee-sur-un-reseau-local/
content:
<p>Suite à <a href="http://postblue.info/arch-linux-arm-raspberry-pi-2/#isso-326">la discussion avec Jeko concernant Arch Linux ARM sur un Raspberry Pi 2</a> et la possibilité d'utiliser Ghost &mdash;&nbsp;sachant que Ghost fonctionne idéalement avec Node.js 0.10 et que ne sont disponibles que les versions 0.8 (ne fonctionne pas) et 0.12 (support instable pour le moment) pour Arch Linux ARM&nbsp;&mdash;, j'ai essayé de compiler Node.js en version 0.10 sur mon Raspberry Pi 2 (sans succès pour le moment, on ne s'improvise pas mainteneur de projet).</p>

<ol>
<li>Mes premières compilations échouaient.  </li>
<li>Ça prend du temps de compiler sur un Raspberry Pi, même un deuxième du nom.  </li>
<li>Pour vérifier que mon PKGBUILD (recette de compilation pour Arch Linux qui intègre le produit de celle-ci au gestionnaire de paquets) était correct, je relançais à chaque fois une compilation.  </li>
<li>Ça prend du temps de compiler sur un Raspberry Pi&hellip;</li>
</ol>

<h1 id="matrenbspraspberrypi2">Maître&nbsp;: Raspberry Pi 2</h1>

<p>J'allais donc certainement y passer des jours à coups d'essai-erreur, corriger le PKGBUILD, tester, recorriger suite à une nouvelle erreur. Mais en jetant un œil au fichier de configuration <code>/etc/makepkg.conf</code> &mdash;&nbsp;<code>makepkg</code> étant l'utilitaire permettant de construire les paquets sur base d'un PKGBUILD sous Arch Linux&nbsp;&mdash;, je vis qu'il était possible de distribuer la compilation sur mon réseau local&nbsp;: les machines sur mon réseau allaient pouvoir servir à compiler pour le Raspeberry et ainsi lui alléger la tâche. Le programme mentionné dans ledit fichier de configuration est <a href="https://wiki.archlinux.org/index.php/Distcc">distcc</a>.</p>

<pre><code>#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
#  A negated environment option will do the opposite of the comments below.
#
#-- distcc:   Use the Distributed C/C++/ObjC compiler
#-- color:    Colorize output messages
#-- ccache:   Use ccache to cache compilation
#-- check:    Run the check() function if present in the PKGBUILD
#-- sign:     Generate PGP signature file
#
BUILDENV=(distcc color ccache check !sign)
</code></pre>

<p>Pour activer la distribution de la compilation du code, il faut donc enlever le point d'exclamation devant <code>distcc</code>. J'en ai aussi profité pour activer le cache de compilation <code>ccache</code>. Du coup, j'ai dû installer les deux programmes&nbsp;:</p>

<pre><code>pacman -Sy distcc ccache --needed
</code></pre>

<p>Deux sections supplémentaires doivent être peuplées dans <code>/etc/makepkg.conf</code>&nbsp;:</p>

<ol>
<li><p>MAKEFLAGS, les arguments qui seront envoyés à la commande <code>make</code>. Où «&nbsp;X&nbsp;» est la somme du nombre maximal de <em>threads</em> par serveur (machine pouvant exécuter la compilation).</p>

<pre><code>#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-jX"
</code></pre></li>
<li><p>DISTCC_HOSTS, l'argument à ajouter sont les adresses IP des serveurs qui vont accueillir la compilation. Chaque adresse est suivie d'une barre oblique ("/") et du nombre de tâches qui pourront être lancées sur ce serveur. De plus, il est une pratique courante de définir le nombre de tâches par machine comme la somme du nombre de cœurs physiques (cœurs par socket) et du nombre de <em>threads</em> par cœurs (dans le cadre de la technologique <em>hyper-threading</em>), le tout plus 1. Sur l'<a href="http://postblue.info/materiel/#ultrabookkarl">Intel i7-3667U de Karl</a>, la commande <code>nproc</code> me renvoie la valeur 4, qui est la première somme. Je déclarerai 5 tâches dans la configuration de <code>distcc</code>. Sur mon réseau local, <a href="http://postblue.info/materiel/#ultrabookkarl">karl</a> a l'adresse fixe 192.168.1.69. Ma configuration de <code>distcc</code> sera donc la suivante&nbsp;:</p>

<pre><code>#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
#-- specify a space-delimited list of hosts running in the DistCC cluster.
DISTCC_HOSTS="192.168.1.69/5"
</code></pre></li>
</ol>

<p>Documentation concernant la compilation distribuée&nbsp;:</p>

<ul>
<li><a href="http://archlinuxarm.org/developers/distributed-compiling">Distributed Compiling</a> par Arch Linux ARM&nbsp;;</li>
<li><a href="https://wiki.archlinux.org/index.php/Distcc#Configuration">Distcc&nbsp;-&nbsp;Configuration</a> sur ArchWiki.</li>
</ul>

<h1 id="esclavenbsp">Esclave&nbsp;:</h1>

<p>Pour pouvoir compiler des paquets pour architecture ARM (armv7l dixit <code>lscpu</code>) sur ma machine x86_64 (c'est-à-dire d'une architecture pour une autre, soit de la <em><a href="https://fr.wikipedia.org/wiki/Compilateur#Compilation_crois.C3.A9e">compilation croisée</a></em>), j'ai installé <a href="https://github.com/WarheadsSE/PKGs/tree/master/distccd-alarm">distccd-alarm</a> sur la machine qui «&nbsp;aidera&nbsp;» le RPi à compiler, installation qui permet d'automatiser rapidement le déploiement. Il suffit de&nbsp;</p>

<ul>
<li><p>Cloner le dépôt</p>

<pre><code>git clone https://github.com/WarheadsSE/PKGs.git
</code></pre></li>
<li><p>Aller au dossier contenant <code>distccd-alarm</code></p>

<pre><code>cd PKGs/distccd-alarm
</code></pre></li>
<li><p>Lancer la compilation et l'installation des paquets</p>

<pre><code>makepkg -sric
</code></pre>

<p>Où&nbsp;:</p>

<ul><li><code>-s</code> / <code>--syncdeps</code> installe les dépendances manquantes&nbsp;;</li>
<li><code>-r</code> / <code>--rmdeps</code> désinstalle les dépendances superflues après compilation&nbsp;;</li>
<li><code>-i</code> / <code>--install</code> installe le paquet si la compilation s'est bien passée&nbsp;;</li>
<li><code>-c</code> / <code>--clean</code> nettoie le dossier de compilation après celle-ci.</li></ul></li>
</ul>

<p>Cela installe trois paquets, <code>distccd-alarm-armv{5,6h,7h}</code>, pour plusieurs types d'architecture ARM. Celle qui m'intéresse pour le Raspberry Pi 2 est l'ARMv7.</p>

<p>Plusieurs choses à savoir pour déployer cela, donc&nbsp;</p>

<ul>
<li><p>Les fichiers de configuration des trois paquets se trouvent dans le dossier <code>/etc/conf.d/</code>&nbsp;: <code>/etc/conf.d/distccd-armv{5,6h,7h}</code>. J'y autorise tout mon réseau local à dialoguer avec ma machine&nbsp;:</p>

<pre><code>PATH=/usr/local/x-tools-armv7h/x-tools7h/arm-unknown-linux-gnueabihf/bin:$PATH
DISTCC_ARGS="--user nobody --allow 192.168.1.0/24"
</code></pre></li>
<li><p>Lancer le processus <code>systemd</code> lié&nbsp;:</p>

<pre><code>systemctl start distccd-armv{5,6h,7h}.service
</code></pre></li>
</ul>

<p>Finalement, il ne reste plus qu'à compiler ses paquets sur le Raspberry Pi. Si le code est en C, C++, Objective C ou Objective C++, il sera compilé par les autres machines, plus puissantes, qui sont déclarées disponibles sur le réseau local.</p>

<p>Documentation concernant la compilation croisée&nbsp;:</p>

<ul>
<li><a href="http://archlinuxarm.org/developers/distcc-cross-compiling">Distcc Cross-Compiling</a> par Arch Linux ARM&nbsp;;</li>
<li><a href="https://wiki.archlinux.org/index.php/Distcc#Other_architectures">Distcc&nbsp;-&nbsp;Cross Compiling with distcc&nbsp;: Other architectures</a> sur ArchWiki.</li>
</ul>

<h1 id="entestnbspconfigurationavahi">En test&nbsp;: configuration Avahi</h1>

<p>Plutôt que de déclarer des adresses IP fixes, j'aimerais plutôt utiliser les possibilités d'Avahi. Si mon routeur déconne (il déconne souvent) ou si je change d'environnement, je n'ai pas envie de changer chaque adresse IP dans ma configuration, donc de me rappeler de chaque endroit où j'ai modifié cela. Sur le papier, utiliser Avahi avec <code>distcc</code> permet d'utiliser de façon souple les cœurs disponibles, qu'importe le nombre de machines sur le réseau, etc.</p>

<p>Pour ce faire, il faut activer le support d'Avahi par <code>distcc</code>&nbsp;:</p>

<ul>
<li>Sur les machines esclaves, ajouter <code>--zeroconf</code> au serveur <code>distccd-armv{5,6h,7h}.service</code>, donc dans le fichier de configuration <code>/etc/conf.d/distccd-armv{5,6h,7h}</code> si vous utilisez aussi <code>distccd-alarm</code>.</li>
<li>Sur la machine hôte, ajouter la ligne <code>+zeroconf</code> au fichier <code>$HOME/.distcc/hosts</code>.</li>
</ul>

<p>La commande <code>avahi-browse -r _distcc._tcp</code> permet dès lors d'afficher les machines se déclarant sur le réseau local sous Avahi. Par exemple chez moi :</p>

<pre><code>+   eth0 IPv4 distcc@karl                                   Distributed Compiler local
=   eth0 IPv4 distcc@karl                                   Distributed Compiler local
   hostname = [karl.local]
   address = [192.168.1.69]
   port = [3632]
   txt = ["cc_machine=arm-unknown-linux-gnueabihf" "cc_version=5.1.1" "gnuhost=x86_64-unknown-linux-gnu" "distcc=3.2rc1" "cpus=4" "txtvers=1"]
</code></pre>

<p>On voit donc que la machine « karl » annonce qu'elle a 4 cœurs de CPU a « prêter » pour compiler.</p>

<p>Je dois encore parfaire cette configuration chez moi. Si le serveur de compilation distribuée semble pourtant bien configuré, du côté de la machine maîtresse cela semble cafouiller, puisqu'elle n'arrive pas à déléguer la compilation aux autres machines sur le réseau.</p>

<p>Documentation sur la distribution de la compilation via Avahi&nbsp;:</p>

<ul>
<li><a href="http://0pointer.net/blog/projects/avahi-distcc.html">Avahi/Zeroconf patch for distcc updated</a></li>
<li><a href="http://diogogomes.com/2007/08/21/distcc-avahi/">DISTCC + AVAHI</a></li>
<li><a href="https://wiki.archlinux.org/index.php/Distcc#Standalone">Distcc&nbsp;-&nbsp;Configuration&nbsp;-&nbsp;Master&nbsp;-&nbsp;Standalone</a> sur ArchWiki.</li>
</ul>


feed_id: 6ff801fc-a448-46ca-a857-694dbce6f812
title: ULB connectée 2 : ownCloud
uri: ULB-connectée-2-ownCloud
url: http://postblue.info/ulb-connectee-2-owncloud/
content:
<p>En train de rédiger votre mémoire et vous cherchez un endroit où tout enregistrer compulsivement, besoin d'échanger vos notes de cours&nbsp;? L’ULB <a href="http://www.ulb.ac.be/actulb/index.php?d=13&amp;article=73">met à disposition</a> de sa communauté <a href="https://owncloud.ulb.ac.be/">un service de stockage en ligne basé sur ownCloud</a> avec 4GB d'espace disque disponible.</p>

<blockquote>
  <p>Pourquoi confier ses données à n'importe qui dans le monde avec tous les problèmes de confidentialité que cela entraine et aussi de saturation de notre liaison internet alors que nous disposons en interne d'une solution de stockage cloud ? (« <a href="http://www.ulb.ac.be/actulb/index.php?d=13&amp;article=73">OwnCloud ULB</a> » sur Actus RESULB)</p>
</blockquote>

<p><img src="media/689bb729.Capture-du-2016-01-18-12-04-56.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-04-56.png" alt=""></p>

<h1 id="prsentationgnrale">Présentation générale</h1>

<p><a href="https://owncloud.org/">OwnCloud</a> est une solution libre (l’ULB peut modifier le logiciel pour qu'il corresponde à ses besoins) et gratuite (l’ULB n'a pas dû payer de licence) offrant une interface web à un service de stockage très complet.</p>

<p><img src="media/2e64ef90.Capture-du-2016-01-18-12-08-05.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-08-05.png" alt=""></p>

<p>En somme, l’ULB offre un service ressemblant à Dropbox, mais avec quelques plus&nbsp;:</p>

<ul>
<li>un gestionnaire et éditeur de documents&nbsp;;</li>
</ul>

<p><img src="media/c8511d3b.Capture-du-2016-01-18-12-07-35.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-07-35.png" alt=""></p>

<ul>
<li>un calendrier&nbsp;;</li>
</ul>

<p><img src="media/7e6b770d.Capture-du-2016-01-18-12-09-43.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-09-43.png" alt=""></p>

<ul>
<li>un gestionnaire de contacts (avec ici les membres du <a href="http://phi.ulb.ac.be/">Centre de recherche en philosophie</a> afin de montrer à quoi cela ressemble en fois rempli)&nbsp;;</li>
</ul>

<p><img src="media/20b0d2bd.Capture-du-2016-01-18-12-11-51.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-11-51.png" alt=""></p>

<ul>
<li>et enfin un gestionnaire de favoris.</li>
</ul>

<p><img src="media/dc03ce82.Capture-du-2016-01-18-12-12-41.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-12-41.png" alt=""></p>

<p>Pour naviguer entre les différents services, il faut cliquer sur le lien en haut à gauche de la page, à côté du logo d'ownCloud, indiquant dans quelle application l'on se trouve, afin d'afficher une liste. Il suffit de cliquer et d'attendre que la page charge.</p>

<p><img src="media/da42e6d4.Capture-du-2016-01-18-12-20-47.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-20-47.png" alt=""></p>

<h1 id="intgrationdesfichiers">Intégration des fichiers</h1>

<p>Il est possible d'intégrer ownCloud à son navigateur de fichiers, que ce soit sous Windows, Mac OS X ou GNU/Linux, afin de synchroniser ses documents.</p>

<p><img src="media/d7fb30d0.Capture-du-2016-01-18-12-59-10.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-59-10.png" alt=""></p>

<p>Pour installer le client ownCloud, il suffit de <a href="https://owncloud.org/install/#install-clients">télécharger ici</a> l'installateur approprié à son système d'exploitation et de l'installer, puis de le configurer avec les informations suivantes.</p>

<ul>
<li>Hôte : <a href="https://owncloud.ulb.ac.be">https://owncloud.ulb.ac.be</a> &nbsp;;</li>
<li>Utilisateur : son netID&nbsp;;</li>
<li>Mot de passe : le même que pour le <a href="https://webmail.ulb.ac.be/">webmail</a>, l'<a href="https://uv.ulb.ac.be/">Université Virtuelle</a>, <a href="http://monulb.ulb.be/">Mon ULB</a>, <em>etc</em>.</li>
</ul>

<p>Sur <strong>Android</strong>, plusieurs versions sont disponibles, dont certaines payantes afin de soutenir le projet.</p>

<ul>
<li>sur le <a href="https://play.google.com/store/apps/details?id=com.owncloud.android">Google Play Store</a> pour 0,79€&nbsp;;</li>
<li>sur l'<a href="https://www.amazon.com/gp/product/B00944PQMK">Amazon Appstore</a> pour $0,99&nbsp;;</li>
<li>ou <strong>gratuitement</strong> <a href="https://f-droid.org/repository/browse/?fdid=com.owncloud.android">sur FDroid</a>.</li>
</ul>

<p>Il existe aussi une version pour <strong>BlackBerry</strong>, gratuitement disponible sur le <a href="https://appworld.blackberry.com/webstore/content/59955931/">BlackBerry World</a>.</p>

<p>Enfin, il existe une application pour <strong>iOS</strong> (iPhone, etc), <a href="https://itunes.apple.com/fr/app/owncloud/id543672169?ls=1&amp;mt=8">disponible dans l'App Store d'Apple</a> pour 0,99€.</p>

<h1 id="intgrationdescontactsetducalendrier">Intégration des contacts et du calendrier</h1>

<p>Pour ajouter une liste de <strong>contacts</strong> à une application permettant d'être synchronisée avec <a href="https://fr.wikipedia.org/wiki/CardDAV">CardDav</a>, il faut récupérer l'URL de partage de son ou ses calendriers.</p>

<p>Pour ne sélectionner qu'un seul calendrier, il suffit de copier le lien après avoir cliqué sur l'icône <em>Lien CalDav</em>, la deuxième sur la ligne du calendrier en partant de la gauche.</p>

<p><img src="media/4ab9138f.Capture-du-2016-01-20-11-11-47.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-20-11-11-47.png" alt=""></p>

<p>Pour obtenir l'adresse CalDav principale, il suffit de copier le lien (adresse principale ou adresse pour iOS/OS X, dépendant du système d'exploitation utilisé) obtenu en affichant les préférences des calendriers (roue dentée en bas à gauche de la colonne de gauche).</p>

<p><img src="media/ec586942.Capture-du-2016-01-20-11-27-14.png" data-original-source="http://postblue.info/content/images/2016/01/Capture-du-2016-01-20-11-27-14.png" alt=""></p>

<p>Le lien CalDav a ce format&nbsp;:</p>

<ul>
<li><code>https://owncloud.ulb.ac.be/remote.php/caldav/</code></li>
<li><code>https://owncloud.ulb.ac.be/remote.php/caldav/principals/netID/</code></li>
</ul>

<p>La manipulation est similaire quant aux contacts. Le lien <a href="https://fr.wikipedia.org/wiki/CardDAV">CardDav</a> a ce format&nbsp;:</p>

<ul>
<li><code>https://owncloud.ulb.ac.be/remote.php/carddav/addressbooks/netID/contacts</code></li>
</ul>

<p>Il suffit ensuite d'alimenter son application bureautique avec l'un ou l'autre lien obtenu de la sorte, si elle supporte la synchronisation Card/CalDav.</p>

<p>Pour un complément d'information, voir ces listes non-exhaustives <a href="https://en.wikipedia.org/wiki/CardDAV#Client-side">des clients CardDav</a> et <a href="https://fr.wikipedia.org/wiki/CalDAV#Client">des clients CalDav</a>&nbsp;. Voici quelques configurations courantes&nbsp;:</p>

<ul>
<li><a href="https://www.mozilla.org/fr/thunderbird/">Thunderbird</a> (<a href="http://www.ulb.ac.be/wserv2_oratio/oratio?f_context=fiches&amp;f_type=view&amp;noteid=254&amp;language=fr&amp;style=">note pour configurer son adresse email</a> de l'ULB dans Thunderbird) avec l'extension <a href="https://www.mozilla.org/en-US/projects/calendar/">Lightning</a> (calendrier), <a href="http://www.sogo.nu/fr/downloads/frontends.html">SOGo Connector</a> (contacts) et <a href="https://addons.mozilla.org/fr/thunderbird/addon/owncloud-for-filelink/">ownCloud for Filelink</a> (utilisation d'ownCloud pour l'envoi de pièces jointes volumineuses).</li>
<li><p>DAVdroid (disponible <strong>gratuitement</strong> <a href="https://f-droid.org/app/at.bitfire.davdroid">sur FDroid</a>, pour 3,33 € <a href="https://play.google.com/store/apps/details?id=at.bitfire.davdroid">sur le Play Store</a>) pour un smartphone Android&nbsp;: se connecter avec une URL (<a href="https://owncloud.ulb.ac.be">https://owncloud.ulb.ac.be</a>), et un nom d'utilisateur (le netID). Sélectionner les carnets d'adresses et les agendas à synchroniser, et la liste des tâches si un gestionnaire de tâches est installé.</p>

<blockquote>
  <p>If you want to use task synchronization, please install the OpenTasks app [<a href="https://f-droid.org/app/org.dmfs.tasks">F-Droid</a>, <a href="https://play.google.com/store/apps/details?id=org.dmfs.tasks">Play Store</a>] before installing/upgrading DAVdroid.</p>
  
  <p>Otherwise, DAVdroid won't get permission to access the OpenTasks app. In some cases you may have to reboot your phone after installing the tasks app.</p>
</blockquote></li>
</ul>

<p>Il ne manquerait plus que les contacts enregistrés puissent être partagés avec <a href="https://webmail.ulb.ac.be/">le Carnet d'adresses de Roundcube</a>.</p>


feed_id: a9078581-d168-437b-8999-260304932af1
title: Passer à systemd sur un VPS OpenVZ avec Debian Jessie
uri: Passer-à-systemd-sur-un-VPS-OpenVZ-avec-Debian-Jessie
url: http://postblue.info/upstart-systemd-sysvinit-openvz-debian-jessie/
content:
<blockquote>
  <p>Attention&nbsp;: je n'ai pris aucune précaution, je ne pourrais être tenu pour responsable de quoique ce soit. Je suis d'ailleurs tout à fait irresponsable.</p>
</blockquote>

<p>L'un des VPS que j'administre utilisait <code>upstart</code> comme système d'initialisation, parce que le noyau OpenVZ n'a longtemps pas supporté <code>systemd</code>, ou inversément <code>systemd</code> ne supportait pas les vieux noyaux d'OpenVZ, toujours est-il que la cohabitation était controversée.</p>

<p>Le noyau d'OpenVZ est basé sur Linux 2.6.32. 2009, tout de même&nbsp;! C'est le noyau qui propulsa à leur époque (2009) Ubuntu 10.04 LTS «&nbsp;Lucid Lynx&nbsp;» et Debian 6.0 «&nbsp;Squeeze&nbsp;». Or, Debian 8.0 «&nbsp;Jessie&nbsp;», sortie en avril 2015, intégra le noyau Linux 3.16, et passa de <code>sysvinit</code> à <code>systemd</code> comme système d'initialisation par défaut.</p>

<p>Donc les services, scripts, etc, sont par défaut écrits pour fonctionner avec <code>systemd</code>. Et depuis quelques temps, le noyau OpenVZ permet de parler la même langue que <code>systemd</code> (grosso modo). Et j'avais envie de tester le changement, sachant que j'avais transféré ma machine sur un dédié <a href="https://www.kimsufi.com/fr/serveurs.xml">Kimsufi</a>.</p>

<p>Donc, on se lance.</p>

<p>Dans une session SSH, je lance l'installation par <code>aptitude</code>, qui intègre un outil de résolution des conflits et offre des solutions de remplacement en cas d'installation problématique.</p>

<pre><code>aptitude install systemd systemd-sysv
</code></pre>

<p><code>aptitude</code> propose de remplacer <code>upstart</code> par <code>systemd</code>&nbsp;: il suffit d'accepter.</p>

<p>Plus qu'à redémarrer. Le système va se plaindre de ne pas pouvoir utiliser l'<code>init</code> pour lancer la commande <code>reboot</code> proprement (normal, vu qu'on vient d'en changer).</p>

<p>Pour être au minimum propre (ce que je n'ai pas fait), on peut stopper proprement les services chatouilleux, MySQL &amp; co. Puis redémarrer brutalement&nbsp;:</p>

<pre><code>reboot -f
</code></pre>

<p>La connexion est perdue directement. Quelques secondes à attendre avant de relancer une session SSH et tenter de se connecter à la machine.</p>

<ul>
<li><p>Connexion établie&nbsp;? Bravo, tout s'est bien passé&nbsp;! On peut maintenant balancer <code>systemctl --failed</code> pour voir s'il y a des services défectueux qui trainent sur la machine.</p></li>
<li><p>Connexion impossible&nbsp;? <em>Too bad!</em> Vous venez de tuer votre machine qui ne démarrera plus en l'état. Contactez votre hébergeur, réinstallez votre machine, faites vous un thé.</p></li>
</ul>


feed_id: f193d4ff-7193-479a-96ee-2a5a215cb944
title: Liste d’extensions Firefox
uri: Liste-d-extensions-Firefox
url: http://postblue.info/liste-des-extensions-firefox-que-jutilise/
content:
<p>Petite <a href="http://postblue.info/tag/liste">liste</a> simple et rapide des extensions ajoutées à mon installation de <a href="https://www.mozilla.org/fr/firefox/new/">Firefox</a>, sur une distribution <a href="https://www.archlinux.org/">Arch Linux</a> avec le gestionnaire de bureau <a href="https://www.gnome.org">GNOME</a>.</p>

<p>N'hésitez pas à me conseiller l'une ou l'autre extension que je ne connaitrais pas.</p>

<h1 id="arcfirefoxtheme">Arc Firefox Theme</h1>

<p>J’utilise le thème <a href="https://github.com/horst3180/arc-theme">Arc</a> sous GNOME<sup id="fnref:1"><a href="http://postblue.info/liste-des-extensions-firefox-que-jutilise/#fn:1" rel="footnote">1</a></sup>, et donc aussi le thème développé pour le navigateur (parce que j'aime la régularité du style des applications).</p>

<p><img src="https://camo.githubusercontent.com/2634644b8361e5f43292bb926468cf6dc74bdaf8/687474703a2f2f692e696d6775722e636f6d2f556a4a616245332e706e67" alt="Arc Firefox"></p>

<blockquote>
  <p>Choisir un thème de la collection <a href="https://addons.mozilla.org/fr/firefox/collections/horst3180/a/">Arc Firefox Themes</a> sur le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="eidbelgique">eID Belgique</h1>

<p>Cette extension permet d’utiliser la carte d’identité électronique belge (eID) dans Firefox.</p>

<ol>
<li>Outre cette extension, il faut <a href="http://eid.belgium.be/fr">installer le middleware eid-mw</a> sur sa machine (et il y a même des dépôts pour l'<a href="http://eid.belgium.be/fr/utiliser_votre_eid/installer_le_logiciel_eid/linux">installation sur des machines GNU / Linux</a>).  </li>
<li>Le lecteur de carte d’identité électronique doit être connecté à la machine avant le lancement de Firefox pour que l'extension fonctionne.</li>
</ol>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/belgium-eid/">eID Belgique</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="gnotifier">GNotifier</h1>

<p>GNotifier intègre les notifications de Firefox et Thunderbird au système de notification natif de GNOME (mais sensément de tout gestionnaire de bureau sous Linux utilisant <code>libnotify</code>) et de Windows (8 et 10). Il remplace le gestionnaire de pop-up par défaut dans Firefox pour l'intégrer au bureau,  pour&nbsp;:</p>

<ul>
<li>la complétion de téléchargement, avec la possibilité de sélectionner l'action par défaut au clic&nbsp;: ouvrir le document ou le dossier parent&nbsp;;</li>
<li>les nouveaux éléments dans les flux RSS&nbsp;;</li>
<li>les sites/services envoyant des notifications, comme <a href="http://freshrss.org/">FreshRSS</a><sup id="fnref:2"><a href="http://postblue.info/liste-des-extensions-firefox-que-jutilise/#fn:2" rel="footnote">2</a></sup> ou <a href="https://movim.eu/">Movim</a>.</li>
</ul>

<p><img src="https://camo.githubusercontent.com/4102e7ccbd322f0561de3f26c6d8c85161c29892/68747470733a2f2f7261772e6769746875622e636f6d2f6d6b696f6c2f474e6f7469666965722f6d61737465722f6d6973632f676e6f6d65322e706e67" alt="GNotifier"></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/gnotifier/">GNotifier</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="htitle">HTitle</h1>

<p>HTitle permet de cacher la barre de titre de Firefox quand la fenêtre est maximisée, et donc de gagner de l'espace vertical pour afficher le plus de contenu possible à l'écran<sup id="fnref:3"><a href="http://postblue.info/liste-des-extensions-firefox-que-jutilise/#fn:3" rel="footnote">3</a></sup>. Le développement de ce module est malheureusement abandonné, mais il fonctionne encore sans souci sur une installation récente de Firefox.</p>


<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/htitle/">HTitle</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="ublockorigin">uBlock Origin</h1>

<p>uBlock est une extension qui bloque les publicités et les pisteurs, tout simplement et avec légèreté (mémoire et processeur).</p>

<p><img src="media/868c190d.157572.png" data-original-source="https://addons.cdn.mozilla.net/user-media/previews/full/157/157572.png" alt=""></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/ublock-origin/">uBlock Origin</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="greasemonkey">Greasemonkey</h1>

<p>Un gestionnaire de scripts utilisateur pour Firefox, utilisé en mon cas pour le script <a href="https://reek.github.io/anti-adblock-killer/">Anti-Adblock Killer</a>.</p>

<p><img src="media/31173129.header.png" data-original-source="https://raw.githubusercontent.com/reek/anti-adblock-killer/gh-pages/images/header.png" alt=""></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/greasemonkey/">Greasemonkey</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="httpseverywhere">HTTPS Everywhere</h1>

<p>Module issu de la collaboration entre le <a href="https://www.torproject.org/">Tor Project</a> et l'<a href="https://eff.org/">Electronic Frontier Foundation</a>, <a href="https://www.eff.org/fr/HTTPS-everywhere">HTTPS Everywhere (site officiel du projet)</a> active une redirection automatique, côté navigateur, vers le contenu accessible en HTTPS des sites visités, sur base d'une base de donnée locales.</p>

<p><img src="media/a0473871.https-everywhere2.jpg" data-original-source="https://www.eff.org/files/https-everywhere2.jpg" alt="HTTPS Everywhere"></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/https-everywhere/">HTTPS Everywhere</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="privacybadger">Privacy Badger</h1>

<p><a href="https://www.eff.org/fr/privacybadger">Privacy Badger (site officiel du projet)</a> bloque (en apprenant, pas tout tout de suite) les scripts espions et les pisteurs.</p>

<p><img src="media/db46abdf.badger-fpg-1b.jpg" data-original-source="https://www.eff.org/files/2014/05/01/badger-fpg-1b.jpg" alt="Privacy Badger"></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/privacy-badger-firefox/">Privacy Badger</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="passff">PassFF</h1>

<p>Cette extension n'est rien de moins qu'un gestionnaire de mots de passe. Ou plutôt, c'est une extension qui permet à Firefox de dialoguer avec <code>pass</code>, un <a href="https://www.passwordstore.org/">password store</a>, directement depuis le navigateur.</p>

<p><code>pass</code> est un gestionnaire de mots de passe qui se base sur <code>git</code> pour collectionner les changements apportés à sa base de données, et GPG pour chiffrer les mots de passe.</p>

<p><img src="media/5c49da95.137958.png" data-original-source="https://addons.cdn.mozilla.net/user-media/previews/full/137/137958.png" alt="PassFF"></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/passff/">PassFF</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="pureurl">Pure URL</h1>

<p>Cette extension supprime des URLs de la barre d'adresse les éléments suivants&nbsp;:</p>

<ul>
<li><code>utm_source</code>, <code>utm_medium</code>, <code>utm_term</code>, <code>utm_content</code> et <code>utm_campaign</code>, traçage pour Google Analytics&nbsp;;</li>
<li><code>yclid</code>, traçage pour Yandex.Metrica&nbsp;;</li>
<li><code>feature</code>, pollution de l'URL sur YouTube&nbsp;;</li>
<li><code>fb_action_ids</code>, <code>fb_action_types</code>, <code>fb_ref</code>, <code>fb_source</code>, <code>action_object_map</code>, <code>action_type_map</code>, <code>action_ref_map</code>, traçage pour Facebook&nbsp;;</li>
<li><code>ref</code>, <code>fref</code>, <code>hc_location</code>, pollution de l'URL sur Facebook&nbsp;;</li>
<li><code>ref_</code>, pollution de l'URL sur IMDB.</li>
</ul>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/pure-url/">Pure URL</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<h1 id="decentraleyes">Decentraleyes</h1>

<p>Decentraleyes protège du pistage lié à l'accès à des contenus centralisés. Du coup, cette extension accélère de nombreuses requêtes en les servant localement, allégeant la charge des sites (qui ne vont plus s'alimenter de celles hébergées sur l'un ou l'autre CDN, <a href="http://postblue.info/ugly-cdn/">dont j'ai déjà dit tout le mal que je pensais</a>). Elle complète les bloqueurs de contenus habituels.</p>

<p><img src="https://addons.cdn.mozilla.net/user-media/previews/full/137/137406.png?modified=1402852866" alt="Decentraleyes: evade content delivery networks without breaking websites."></p>

<blockquote>
  <p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/decentraleyes/">Decentraleyes</a> depuis le site de Modules pour Firefox.</p>
</blockquote>

<div class="footnotes"><ol><li class="footnote" id="fn:1"><p>Plusieurs variantes sont disponibles, dont Dark et Darker qui sont sombres, j’utilise celle qui est «&nbsp;claire&nbsp;». <a href="http://postblue.info/liste-des-extensions-firefox-que-jutilise/#fnref:1" title="return to article">↩</a></p></li>
<li class="footnote" id="fn:2"><p>Voir <a href="http://doc.freshrss.org/fr/users/05_Configuration/#temps-daffichage-de-la-notification-html5">la documentation de FreshRSS</a> pour un complément d'information. <a href="http://postblue.info/liste-des-extensions-firefox-que-jutilise/#fnref:2" title="return to article">↩</a></p></li>
<li class="footnote" id="fn:3"><p>Voir <a href="https://github.com/chpii/Headerbar">le tutoriel Headerbar sur GitHub</a> pour une petite marche à suivre de l'intégration de Firefox au bureau GNOME avec le thème Adwaita. <a href="http://postblue.info/liste-des-extensions-firefox-que-jutilise/#fnref:3" title="return to article">↩</a></p></li></ol></div>


feed_id: 0ee2a7b7-04df-4d38-8f48-d64b45c6351d
title: Debian Jessie sur un Kimsufi KS-2A
uri: Debian-Jessie-sur-un-Kimsufi-KS-2A
url: http://postblue.info/kimsufi/
content:
<p>Petite marche à suivre à peu près généraliste pour configurer un serveur dédié <a href="https://www.kimsufi.com/fr/serveurs.xml">Kimsufi</a>.</p>

<h1 id="installation">Installation</h1>

<p>Le schéma d’installation que j’ai utilisé diverge de celui par défaut pour Debian Jessie proposé par OVH.</p>

<p>Est configuré par défaut dans le <em>template</em> d’installation Debian 8.3 stable (Jessie)&nbsp;:</p>

<ul>
<li>une large partition <code>/home</code> dans le schéma de partition par défaut&nbsp;:
<ul><li>une partition primaire <code>/</code> de 20Go&nbsp;;</li>
<li>une partition primaire <code>/home</code> prenant l’espace restant, soit un peu moins de 980Go dans mon cas&nbsp;;</li>
<li>une partition <code>swap</code> obligatoire de 512Mo&nbsp;;</li></ul></li>
<li>un <a href="http://guide.ovh.com/KernelInstall">noyau Linux «&nbsp;maison&nbsp;»</a>.</li>
</ul>

<p>Inconvénients pour un serveur web comme le mien&nbsp;:</p>

<ul>
<li>j’utilise majoritairement les partitions <code>/var</code> (<code>/var/www</code> pour les sites en PHP, <code>/var/lib</code> pour le stockage de données des applications comme MariaDB, Prosody, etc.) et <code>/srv</code> (services divers balancés sur un port public)</li>
<li>avoir une partition <code>/home</code> séparée et prenant 98% de l’espace disque ne me sert à rien&nbsp;;</li>
<li>le noyau maison n’est disponible dans aucun dépôt <code>apt</code> et doit être mis à jour à la main (<code>wget</code>), en allant le chercher <a href="ftp://ftp.ovh.net/made-in-ovh/bzImage/">depuis un serveur FTP</a>, ce qui est rédhibitoire pour moi.</li>
</ul>

<p>Donc, pour installer <em>à ma façon</em>&nbsp;:</p>

<ul>
<li><em>template</em> d’installation Debian 8.3 stable (Jessie)&nbsp;;</li>
<li>cocher l’utilisation du noyau de la distribution à la place du noyau&nbsp;;</li>
<li>éditer le schéma de partitionnement pour supprimer la place indue que prendrait <code>/home</code> et maximiser l’espace de la racine <code>/</code>.</li>
</ul>

<h1 id="considrationsdinstallation">Considérations d’installation</h1>

<ul>
<li>une partition <code>/boot</code> séparée de <code>/</code>&nbsp;;</li>
<li>un partitionnement du disque (<code>/var</code>, <code>/src</code>) plus fin, en essayant de prévoir la place que prendraient ces partitions&nbsp;;</li>
<li>utiliser le <a href="https://wiki.debian.org/grsecurity">noyau avec les patchs de sécurité <code>grsecurity</code></a>, à l’instar du noyau OVH qui les intègre&nbsp;;</li>
<li>ne pas activer de compte <code>root</code> mais directement un utilisateur appartenant au groupe <code>sudo</code> pour ne pas avoir à le désactiver par la suite.</li>
</ul>

<h1 id="premireconnexion">Première connexion</h1>

<p>Après l’installation de la distribution, OVH envoie un mail contenant le code du compte <code>root</code> permettant de se connecter au serveur. On va donc s’y connecter en forçant la demande de mot de passe (puisqu’il n’y a pas encore de clé SSH forgée est installée).</p>

<pre><code>ssh root@ip.du.serveur -o PreferredAuthentications=password
</code></pre>

<p>Une fois connecté, je conseille de changer au plus vite le mot de passe du compte <code>root</code>&nbsp;:</p>

<pre><code>passwd
</code></pre>

<p>Entrez le mot de passe actuel une première fois, puis entrez-en un nouveau par deux fois. Voilà, il ne devrait plus exister de copie de votre mot de passe <code>root</code>.</p>

<p>Pour désactiver complètement le login du compte <code>root</code> (après avoir créé un nouvel utilisateur appartenant au groupe <code>sudo</code>)&nbsp;:</p>

<pre><code>sudo passwd -dl root
</code></pre>

<p>Pour continuer, mettre à jour des dépôts.</p>

<pre><code>apt update
</code></pre>

<h1 id="systemd">systemd</h1>

<p>Utiliser les différents services de <code>systemd</code> renvoie l’erreur suivante&nbsp;:</p>

<blockquote>
  <p>Failed to create bus connection</p>
</blockquote>

<p>Pour corriger, il suffit d’installer le paquet <code>dbus</code> manquant.</p>

<pre><code>apt install dbus
</code></pre>

<h1 id="ntp">NTP</h1>

<p>Maintenant que <code>systemd</code> est réparé, on peut l’utiliser comme service de synchronisation du temps de la machine au lieu d’installer <a href="https://wiki.debian.org/NTP">un second paquet pour NTP</a>.</p>

<pre><code>timedatectl set-ntp 1
</code></pre>

<h1 id="hostname">Hostname</h1>

<p>Le nom d’hôte (<em>hostname</em>) inscrit dans le fichier <code>/etc/hostname</code> est un nom de domaine <code>hostname.ip-x-y-z.eu</code>. Pour n’avoir que le nom court&nbsp;:</p>

<pre><code>hostnamectl set-hostname $(hostname -a)
</code></pre>

<p>Puis éditer <code>/etc/hosts</code> pour remplacer <code>hostname.ip-x-y-z.eu</code> avec <code>hostname.sondomaine.tld</code> tel que défini dans sa zone DNS (sinon, le faire, j’utilise celle de Gandi).</p>

<p>Pour plus d’informations sur le renommage de la machine, <a href="https://wiki.debian.org/HowTo/ChangeHostname">voir le Debian Wiki HowTo/ChangeHostname</a>.</p>

<h1 id="firewalletfail2ban">Firewall et Fail2ban</h1>

<p>Pas envie de m’emmerder à maintenir un pare-feu complexe, <a href="https://wiki.debian.org/Uncomplicated%20Firewall%20%28ufw%29">je teste UFW (Uncomplicated Firewall)</a>.</p>

<pre><code>apt install ufw
ufw allow SSH # ouvre le port 22
ufw allow ’Nginx Full’ # ouvre les ports 80 et 443
ufw enable # active ufw
</code></pre>

<p>Si vous voulez utiliser <code>fail2ban</code> pour prévenir des attaques par force brute, il est possible de le faire utiliser directement <code>ufw</code> plutôt qu’<code>iptables</code>.</p>

<pre><code>apt install fail2ban
</code></pre>

<p>Pour configurer la bête, créer un fichier <code>/etc/fail2ban/jail.local</code>&nbsp;: chargé après le fichier de configuration principal <code>/etc/fail2ban/jail.conf</code>, les valeurs qu’il contient <em>écrasent</em> celles contenues dans le premier, inutile donc de copier intégralement le contenu du fichier de configuration (comme j’ai pu le voir par-ci par-là). Y changer l’adresse à laquelle les notifications sont envoyées, et configurer le programme pour utiliser <code>ufw</code>&nbsp;:</p>

<pre><code>[DEFAULT]
destemail = mail@domaine.truc
banaction = ufw
</code></pre>

<h1 id="yapyt">Yapyt</h1>

<p>Yapyt est clone de <code>yaourt</code> (commande Arch Linux) <a href="https://yeuxdelibad.net/Programmation/yapyt-un_yaourt_pour_debian.html">développé par Thuban pour Debian</a>. Très utile pour nettoyer son système et supprimer les résidus d’applications désinstallées.</p>

<pre><code>wget http://git.yeuxdelibad.net/coolrepo/plain/yapyt/yapyt.py -O /usr/local/bin/yapyt
chmod +x /usr/local/bin/yapyt
</code></pre>

<p>Pour le nettoyage, <code>yapyt</code> nécessite <code>deborphan</code> et <code>aptitude</code>&nbsp;:</p>

<pre><code>apt install aptitude deborphan
</code></pre>

<h1 id="certificats">Certificats</h1>

<p>Installer <a href="https://letsencrypt.org/getting-started/">le client Let’s Encrypt</a> disponible dans le dépôt <code>jessie-backports</code> activé par défaut dans le <code>source.list</code> déployé par OVH (qui utilise les miroirs d’OVH également), mais aussi les <a href="https://wiki.cacert.org/FAQ/ImportRootCert?action=show&amp;redirect=ImportRootCert#Debian">certificats racine de CACert</a> qui sont à nouveau disponible dans un paquet séparé.</p>

<pre><code>apt -t jessie-backports install letsencrypt ca-cacert
</code></pre>

<h1 id="dotdeb">Dotdeb</h1>

<blockquote>
  <p><a href="https://www.dotdeb.org/">Dotdeb</a> is an extra repository providing up-to-date packages for your Debian servers&nbsp;: Nginx&nbsp;; PHP 7.0, 5.6, 5.5, 5.4 (obsolete) and 5.3 (obsolete)&nbsp;; useful PHP extensions : apcu, imagick, mongo, Pinba, xcache, Xdebug, XHprof…&nbsp;; MySQL 5.5 and 5.6&nbsp;; Zabbix&nbsp;; etc.</p>
</blockquote>

<p>Installer la clé du dépôt&nbsp;:</p>

<pre><code>wget https://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
</code></pre>

<p>Dans <code>/etc/apt/source.list.d/dotdeb.list</code>&nbsp;:</p>

<pre><code>deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
</code></pre>

<p>Mettre à jour les dépôts&nbsp;:</p>

<pre><code>apt update
</code></pre>

<p>Installer le serveur web&nbsp;:</p>

<pre><code>apt install nginx-extras php5-fpm
</code></pre>

<h1 id="mariadb">MariaDB</h1>

<blockquote>
  <p><a href="https://mariadb.org/">MariaDB</a> is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, Facebook and Google.</p>
</blockquote>

<p>Installer la clé du dépôt&nbsp;:</p>

<pre><code>apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
</code></pre>

<p>Dans <code>/etc/apt/source.list.d/mariadb.list</code>&nbsp;:</p>

<pre><code>deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
deb-src http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
</code></pre>

<p>Mettre à jour les dépôts&nbsp;:</p>

<pre><code>apt update
</code></pre>

<p>Installer&nbsp;:</p>

<pre><code>apt install mariadb-server
</code></pre>

<h1 id="prosody">Prosody</h1>

<blockquote>
  <p><a href="https://prosody.im/">Prosody</a> is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.</p>
</blockquote>

<p>Installer la clé du dépôt&nbsp;:</p>

<pre><code>wget https://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -
</code></pre>

<p>Dans <code>/etc/apt/source.list.d/prosody.list</code>&nbsp;:</p>

<pre><code>deb http://packages.prosody.im/debian jessie main
</code></pre>

<p>Mettre à jour les dépôts&nbsp;:</p>

<pre><code>apt update
</code></pre>

<p>Installer Prosody et ses dépendances optionnelles&nbsp;:</p>

<pre><code>apt install prosody-trunk lua-event lua-zlib lua-dbi-sqlite3 lua-bitop
</code></pre>

<p>Je renvoie à mon article <a href="http://postblue.info/prosody-debian/">Prosody sur Debian Wheezy/Jessie</a> pour plus d’informations quant à la configuration du service.</p>

<h1 id="nodejslts">NodeJS LTS</h1>

<p>Installer <code>nodejs</code> (v0.10.29) et <code>npm</code> (v1.4.21) depuis les dépôts Debian, dans <code>/usr/bin</code>.</p>

<pre><code>apt install npm
</code></pre>

<p>Installer le gestionnaire de version <code>n</code> dans <code>/usr/local/bin</code>.</p>

<pre><code>npm install -g n
</code></pre>

<p>Utiliser <code>n</code> pour installer la dernière version LTS de nodejs (v4.3.2) dans <code>/usr/local/bin</code>.</p>

<pre><code>n lts
</code></pre>

<p>Installer la dernière version de <code>npm</code> (v2.14.12) dans <code>/usr/local/bin</code>.</p>

<pre><code>npm install -g npm node-gyp
</code></pre>

<p>Supprimer les binaires de npm et nodejs qui trainent dans <code>/usr/bin</code> pour ne plus avoir que les derniers installés.</p>

<pre><code>apt remove npm
apt-get autoremove
</code></pre>

<h1 id="superutilisateur">Superutilisateur</h1>

<p>Plutôt que de continuer à utiliser le compte root, je me crée un utilisateur aux droits restreints, que j’ajoute néanmoins au groupe <code>sudo</code> pour l’utiliser à des fins de maintenance du système.</p>

<pre><code>apt install sudo
adduser username
gpasswd -a username sudo
</code></pre>

<p>Pour désactiver complètement le login du compte <code>root</code>&nbsp;:</p>

<pre><code>sudo passwd -dl root
</code></pre>

<h1 id="ssh">SSH</h1>

<p>Depuis un terminal sur mon ordinateur, je forge une clé SSH (inutilement grosse, pour tester) que j’autoriserai à servir d’authentification sur le compte utilisateur créé ci-dessus.</p>

<pre><code>ssh-keygen -b 16384
</code></pre>

<p>Je la renomme <code>$HOME/.ssh/id_rsa-nomduserver</code>, lui met un gros gros mot de passe, puis je la copie dans les clés autorisées sur mon serveur.</p>

<pre><code>ssh-copy-id -i $HOME/.ssh/id_rsa-nomduserver username@adresse.ip -o PreferredAuthentications=password
</code></pre>

<p>Je peux dorénavant me connecter à mon serveur par SSH avec une authentification par clé sur un utilisateur qui après entrée d’un (inutilement tarabiscoté) mot de passe, me confère des droits élevés.</p>

<pre><code>ssh username@adress.ip -i $HOME/.ssh/id_rsa-nomduserver
</code></pre>

<p>Je renvoie au <a href="https://wiki.debian.org/fr/SSH#S.2BAOk-curisation">Debian Wiki pour la sécurisation de SSH</a>&nbsp;: désactiver la connexion au compte <code>root</code> et l’authentification par mot de passe dans <code>/etc/ssh/sshd_config</code>.</p>

<pre><code>PasswordAuthentication no
PermitRootLogin no
</code></pre>

<h1 id="shellzshetbyobu">Shell ZSH et Byobu</h1>

<p>Plutôt qu’une session SSH toute moche avec seulement BASH, j’utilise le gestionnaire de multiplexeurs de terminal <a href="http://byobu.co/">Byobu</a> (backend <code>tmux</code>) et ai remplacé BASH par <a href="http://zshwiki.org/home/">ZSH</a>.</p>

<p><img src="https://camo.githubusercontent.com/612c6be742478221e06c64b66b896085f6e4af63/687474703a2f2f692e696d6775722e636f6d2f6e7247563670672e706e67" alt="ZSH, Prezto et Byobu"></p>

<pre><code>apt install zsh byobu git
byobu-enable
</code></pre>

<p>La commande <code>byobu-enable</code> active <code>byobu</code> si et seulement si le shell par défaut est <code>bash</code>. Donc plutôt que modifier le shell de l’utilisateur (<code>chsh -s /bin/zsh</code>) qui empêcherait l’activation automatique de byobu, il suffit d’ajouter les lignes suivantes à <code>$HOME/.byobu/.tmux.conf</code> pour changer l’interpréteur de commandes du programme&nbsp;:</p>

<pre><code>set -g default-shell /usr/bin/zsh
set -g default-command /usr/bin/zsh
</code></pre>

<p>Installation de <a href="https://github.com/sorin-ionescu/prezto">Prezto</a>, un framework de configuration de ZSH. Lancer <code>zsh</code> et ne pas créer de fichier de configuration (touche <code>q</code>)</p>

<pre><code>zsh
</code></pre>

<p>Copier le répertoire de <code>prezto</code>&nbsp;:</p>

<pre><code>git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
</code></pre>

<p>Activer <code>prezto</code> pour mon profil utilisateur&nbsp;:</p>

<pre><code>setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
</code></pre>

<h1 id="etherpadlite">Etherpad Lite</h1>

<p><img src="https://camo.githubusercontent.com/9ca4b9b988b8eaf457d1f7f32cbce055140c0948/687474703a2f2f692e696d6775722e636f6d2f7a5972476b67332e676966" alt=""></p>

<p>Installation des dépendances&nbsp;:</p>

<pre><code>apt install gzip git curl python libssl-dev pkg-config build-essential
</code></pre>

<p>Déploiement d’<a href="https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">Etherpad Lite comme service</a>, dans son propre dossier avec son propre <code>user</code>/<code>group</code>.</p>

<pre><code>adduser --system --home=/srv/etherpad-lite --group etherpad-lite
</code></pre>

<p>Il faut utiliser le compte adéquat pou r la suite&nbsp;: pour ce faire, faire précéder les commandes suivantes de&nbsp;:</p>

<pre><code>sudo su etherpad-lite -s /bin/bash -c "ici la commande entre guillemets"
</code></pre>

<p>Clônage du répertoire à la racine du dossier nouvellement créé.</p>

<pre><code>cd /srv/etherpad-lite;
git clone git://github.com/ether/etherpad-lite.git .
</code></pre>

<p>Copier le fichier de configuration.</p>

<pre><code>cp /srv/etherpad-lite/settings.json.template /srv/etherpad-lite/settings.json
</code></pre>

<p>Configuration du backend (j’aime bien utiliser <code>redis</code> qui me nécessite aussi peu de configuration qu’un fichier SQLite pour des performances plus hautes)&nbsp;:</p>

<pre><code>apt install redis-server
</code></pre>

<p>Dans <code>/srv/etherpad-lite/settings.json</code>&nbsp;:</p>

<pre><code>//the type of the database
"dbType" : "redis",
//the database specific settings
"dbSettings" : {
                 "host"    : "localhost",
                 "port"    : 6379,
                 "database": 1
               },
</code></pre>

<p>Dépendances optionnelles pour l’import/export&nbsp;:</p>

<pre><code>apt install tidy libreoffice-writer
</code></pre>

<p>Dans <code>/srv/etherpad-lite/settings.json</code>&nbsp;:</p>

<pre><code>/* This is the absolute path to the soffice executable. Setting it to null, disables LibreOffice exporting.
 LibreOffice can be used in lieu of Abiword to export pads */
"soffice" : "/usr/bin/soffice",

/* This is the path to the Tidy executable. Setting it to null, disables Tidy.
 Tidy is used to improve the quality of exported pads*/
"tidyHtml" : "/usr/bin/tidy",
</code></pre>

<p>Documentation&nbsp;:</p>

<ul>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#nginx">How to put Etherpad Lite behind a reverse Proxy</a>, Nginx en l’occurence&nbsp;;</li>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">How to deploy Etherpad Lite as a service</a>&nbsp;;</li>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-Redis">How to use Etherpad Lite with Redis</a>.</li>
</ul>

<h1 id="ghost">Ghost</h1>

<blockquote>
  <p><a href="https://ghost.org/">Ghost</a> is a platform dedicated to one thing: Publishing. It’s beautifully designed, completely customisable and completely Open Source. Ghost allows you to write and publish your own blog, giving you the tools to make it easy and even fun to do.</p>
</blockquote>

<p>Pareillement qu’Etherpad Lite ci-dessus, je déploie Ghost comme un service, ayant son propre utilisateur et groupe.</p>

<pre><code>adduser --system --home=/srv/ghost --group ghost
</code></pre>

<p>Comme pour <code>etherpad</code>, il faut utiliser le compte adéquat&nbsp;: pour ce faire, faire précédér les commandes suivantes de&nbsp;:</p>

<pre><code>sudo su ghost -s /bin/bash -c "ici la commande entre guillemets"
</code></pre>

<p>Dans le dossier de l’utilisateur <code>ghost</code>, je décompresse l’archive de la dernière version disponible&nbsp;:</p>

<pre><code>cd /srv/ghost;
wget http://ghost.org/zip/ghost-latest.zip;
unzip -uo ghost-latest.zip -d /srv/ghost;
rm ghost-latest.zip
</code></pre>

<p>Ne reste plus qu‘à installer le tout.</p>

<pre><code>npm install --production
</code></pre>

<p>Pour la configuration de Ghost, je renvoie à la documentation&nbsp;:</p>

<ul>
<li><a href="http://docs.ghost.org/fr/installation/linux/">Installation de Ghost&nbsp;: Installation sur Linux</a></li>
<li><a href="http://docs.ghost.org/fr/installation/deploy/#supervisor-%28http://supervisord.org/%29">Faire tourner en permanence Ghost&nbsp;: Supervisor</a></li>
<li><a href="http://support.ghost.org/config/">Configuring Ghost</a> </li>
<li><a href="http://support.ghost.org/how-to-upgrade">How to upgrade Ghsost</a></li>
</ul>

<p>Pour aller plus loin&nbsp;:</p>

<ul>
<li><a href="http://postblue.info/isso-un-serveur-de-commentaires-similaire-a-disqus/">Isso, un serveur de commentaires</a> à intégrer à Ghost</li>
<li><a href="http://postblue.info/supervisor-node/">Supervisor tes nodes</a>, liste de services pouvant être lancés avec <code>supervisor</code></li>
<li><a href="http://postblue.info/message-de-service/">Message de service</a> annonçant mon passage à Ghost en novembre 2013</li>
</ul>

<h1 id="owncloud">ownCloud</h1>

<blockquote>
  <p><a href="https://owncloud.org/">ownCloud</a> gives you universal access to your files through a web interface or WebDAV. It also provides a platform to easily view &amp; sync your contacts, calendars and bookmarks across all your devices and enables basic editing right on the web. Installation has minimal server requirements, doesn’t need special permissions and is quick. ownCloud Server is extendable via a simple but powerful API for applications and plugins.</p>
</blockquote>

<p>Pour plus de facilité quant à l’installation d’ownCloud, j’utilise le dépôt. Installer la clé&nbsp;:</p>

<pre><code>wget https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O- | apt-key add -
</code></pre>

<p>Créer <code>/etc/apt/source.list.d/owncloud.list</code> avec le dépôt&nbsp;:</p>

<pre><code>sh -c "echo ’deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /’ &gt;&gt; /etc/apt/sources.list.d/owncloud.list"
</code></pre>

<p>Mettre à jour les dépôts et installer <code>owncloud</code>&nbsp;:</p>

<pre><code>apt-get update
apt-get install owncloud
</code></pre>

<p>Documentation&nbsp;:</p>

<ul>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/installation/nginx_configuration.html">Nginx Configuration</a></li>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/performance_tuning/index.html">Server Tuning &amp; Performance Tips</a></li>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/caching_configuration.html">Configuring Memory Caching</a></li>
</ul>

<p>Pour une première salve, ça suffira je crois. N’hésitez pas à commenter si je dois préciser un élément de configuration, je verrai si j’ai le temps pour compléter.</p>


feed_id: 13f539de-913e-4912-a621-bbac7b298127
title: Bruxelles
uri: Bruxelles
url: http://postblue.info/bruxelles/
content:
<p>Ça va.</p>

<p>La <a href="https://fr.wikipedia.org/wiki/Bruxellisation">ville bruxellisée</a> est un peu amochée.</p>

<p>Ça va aller.</p>


feed_id: e82ccfa6-7348-4139-b442-65fe6586521d
title: GNOME : autostart en arrière-plan
uri: GNOME-autostart-en-arrière-plan
url: http://postblue.info/gnome-autostart-en-arriere-plan/
content:
<p>Sur ma session <a href="http://postblue.info/tag/gnome">GNOME</a>, l’utilisation quotidienne de certains programme a créé le besoin d’avoir certaines applications qui se lancent automatiquement (autostart) au démarrage. Cependant, je ne voulais pas que celles-ci se retrouvent propulsées à l'avant-plan&nbsp;: je voulais que ces applications se lancent en arrière-plan.</p>

<p>Pour démarrer certaines applications à l’ouverture de session, il «&nbsp;suffit&nbsp;» de copier le fichier <code>.desktop</code> depuis <code>/usr/share/applications/</code> dans <code>~/.config/autostart/</code>. Le fichier <code>.desktop</code> regroupe toutes les informations relatives à une application installée sur la machine, de son nom à la ligne de commande à exécuter.</p>

<p>Le même résultat peut être obtenu en utilisant l’<strong>Outil de personnalisation de GNOME</strong> (<code>gnome-tweak-tool</code>), permettant de personnaliser les réglages avancés de GNOME 3 avec une prise en main plus <em>user friendly</em> que par la ligne de commande ou la copie manuelle de fichiers. À l’écran <em>Applications au démarrage</em>, il est possible d’ajouter des applications en cliquant sur le bouton <code>+</code> au pied de celui-ci. S’ouvre alors une popup avec la liste des applications graphiques installées sur le système, qu’il suffit de sélectionner pour qu’elle(s) soi(en)t lancée(s) à la prochaine ouverture de session.</p>

<p>Cependant, les applications ainsi ajoutées se lancent en avant-plan et, comme je l’ai dit en introduction, je désire que ces applications soient lancées en arrière-plan (minimisées dans la barre des tâches ou cachées, ça dépend de ce qui est offert par l’application).</p>

<p>Le programme <strong>Préférences des applications au démarrage</strong> (<code>gnome-session-properties</code>) a été retiré de GNOME dans sa version 3.12. Il permettait l’édition manuelle des programmes lancés à l’ouverture de session, mais faisait double emploi avec la possibilité d’ajout de programmes par <code>gnome-tweak-tool</code>. Cependant, ce dernier n’intègre pas (encore) la possibilité d’éditer les fichiers <code>.desktop</code> pour passer un argument à la ligne de commande de lancement de l’application&nbsp;: il va donc falloir éditer à la main les fichiers <code>.desktop</code>.</p>

<p>Quelques exemples&nbsp;: il faut éditer dans les fichiers <code>~/.config/autostart/*.desktop</code> la ligne <code>Exec=</code> où se retrouve la ligne de commande lancée quand on clique sur le raccourci d’une application, et y ajouter un argument supplémentaire.</p>

<ul>
<li><p><strong>Empathy</strong> (<code>~/.config/autostart/empathy.desktop</code>), le client de messagerie instantanée, peut être démarré de façon cachée (<code>--start-hidden</code>). De la sorte, je me connecte à mon compte XMPP dès le démarrage de session et permet d’être joignable sans avoir à penser à lancer le programme. Ce qui donne&nbsp;:</p>

<pre><code>Exec=empathy --start-hidden
</code></pre></li>
<li><p><strong>Telegram Desktop</strong> (<code>~/.config/autostart/telegramdesktop.desktop</code>) peut être démarré minimisé dans la barre des tâches avec l’argument <code>-startintray</code>, ce qui donne&nbsp;:</p>

<pre><code>Exec=/opt/telegram/Telegram -startintray -- %u
</code></pre></li>
<li><p><strong>Transmission GTK</strong> (<code>~/.config/autostart/transmission-gtk.desktop</code>), le gestionnaire de torrents, peut également être lancé minimisé avec l’argument <code>--minimized</code>, ce qui donne&nbsp;:</p>

<pre><code>Exec=transmission-gtk --minimized %U
</code></pre></li>
<li><p><strong>Steam</strong> (<code>~/.config/autostart/steam.desktop</code>) aussi peut être lancé minimisé, il suffit de lui ajouter l’argument <code>-silent</code>&nbsp;:</p>

<pre><code>Exec=/usr/bin/steam -silent %U
</code></pre></li>
</ul>

<p>Il est relativement simple d’ajouter des applications graphiques au démarrage de la session GNOME avec l’<strong>Outil de personnalisation de GNOME</strong> (<code>gnome-tweak-tool</code>). Cependant, obliger le lancement en arrière-plan desdites applications n’est pas du tout convivial, obligeant à une édition manuelle d’un fichier verbeux et austère.</p>

<p>On le remarque avec les quelques exemples ci-dessus&nbsp;: <strong>aucune</strong> de ces applications n’admet le même argument pour être démarrée en arrière-plan. Normaliser la nomenclature de cet argument pourrait être une piste de résolution pour une configuration conviviale du lancement automatique en arrière-plan, à moins que ça ne soit intégré directement dans les applications admettant d’être démarrées en arrière-plan.</p>

<p>Par ailleurs, quelques applications n’admettent pas d’être démarrées de la sorte, le gestionnaire de mail <a href="https://wiki.gnome.org/Apps/Evolution">Evolution</a> en première ligne, logiciel que j’utilise tous les jours. Le gestionnaire <a href="https://wiki.gnome.org/Apps/Geary">Geary</a> intègre cette possibilité par défaut, avertissant dès lors par une notification la réception d’un mail. Cependant, Geary n’est plus maintenu (dernière mise à jour le 30 mars 2015) et n’intègre pas le support du chiffrement/déchiffrement des mails, ce qui pour moi est un manquement dont je ne peux me passer.</p>


feed_id: dbe03f49-411d-4384-a81f-88e74676e404
title: Jappix est mort, vive XMPP
uri: Jappix-est-mort-vive-XMPP
url: https://postblue.info/jappix-cest-fini/
content:
<blockquote>
  <p>Mise à jour 20161025&nbsp;: l'ensemble des comptes et des salons de discussion en jappix.com sont (ou vont être) transférés sur l'infrastructure de <a href="https://movim.eu/">Movim</a>, gérée par <a href="https://edhelas.movim.eu/">Timothée Jaussoin</a> (aka edhelas), épaulé par <a href="https://github.com/christine-ho-dev">Christine Ho</a> et <a href="https://github.com/src386">Xavier C.</a> (aka src386).</p>
</blockquote>

<p><a href="https://fr.wikipedia.org/wiki/Jappix">Jappix</a> serait mort, et ce faisant le lien avec un nombre conséquent de mes contacts qui y avait une adresse <a href="https://postblue.info/tag/xmpp">#XMPP</a>. C’est ce qui arrive quand on lance une boîte bien remplie d’œufs dans son panier.</p>

<p><img src="media/f91eb50e.Capture-du-2016-10-21-14-22-54.png" data-original-source="https://postblue.info/content/images/2016/10/Capture-du-2016-10-21-14-22-54.png" alt=""></p>

<p>Il suffit de regarder <a href="https://github.com/jappix/jappix/commit/941df95f4d4f89c6b8b1e35753d6444342a8726b">les messages sur le dépôt git</a> pour se dire que le projet a été abandonné. Personne, je crois, ne reprochera à <a href="https://valeriansaliou.name/">Valerian Saliou</a> de se défaire du projet pour se consacrer à d'autres. Pourtant, avec tout le domaine jappix.com qui tombe dans les choux, j’ai l’impression que l'abandon d'un <strong>projet</strong> va ici de paire avec l'abandon d'un <strong>service</strong>, pourtant pas mal peuplé au vu de ma liste de contacts.</p>

<p>Un serveur XMPP peut être hébergé chez soi me dira-t-on, mais soyons honnêtes 30 secondes&nbsp;: ça n'est pas à la portée de tout le monde de déployer et d'administrer un serveur avec sa petite instance de <a href="https://postblue.info/tag/prosody">#prosody</a> qui tourne dessus. On se retrouve donc avec des ruches de comptes postés à un même endroit, faisant les frais de l’administration et de la gouvernance du service. Si l’on demande un compte chez moi, par exemple, la connexion se coupera de temps en temps puisque j’adore chipoter à ma machine, <a href="https://prosody.im/">prosody</a> redémarre donc souvent.</p>

<p>Jappix était l’une de ses ruches&nbsp;: <a href="http://archive.wikiwix.com/cache/?url=http%3A%2F%2Fblog.julienbarrier.fr%2Fjappix%2F2011%2Fau-revoir-vanaryon%2F">8&nbsp;000 comptes</a> il y a 5 ans (tout de même), soit un bon paquet de monde qui se retrouve à la rue. <a href="https://cyrille-borne.com/blog/index.php?article2633/l-informatique-restera-l-affaire-de-ceux-qui-la-subissent-et-ceux-qui-la-maitrisent">Cyrille</a>, le troll chauve qui avait une adresse <strong>@jappix.com</strong>, m’a soufflé à l’oreille qu’il n'y a eu ni message de service, ni préavis de cessation des activités. Puisque je n’ai pas encore de réponse de Valerian, je lui laisse le bénéfice du doute mais soit il s'agit d'une erreur, soit c'est pas vraiment super sympa.</p>

<p>Or, maintenant que le nom de domaine pointe vers le néant (et que j'ai perdu un quart de mes contacts), que faire ?</p>

<p>Au plus simple, se rediriger vers <a href="https://movim.eu/">Movim</a>, l'un des autres projet de client XMPP qui roule dans votre navigateur web. Movim permet même de créer un compte sur le serveur <strong>@movim.eu</strong> depuis l'un de ses serveurs <a href="https://it.movim.eu/?login">italien</a> ou <a href="https://nl.movim.eu/?login">néerlandais</a>. <a href="https://edhelas.movim.eu/">Edhelas</a>, qui est derrière le projet, me dit qu'il est en contact avec Valerian&nbsp;: peut-être que ces deux-là nous sortiront un lapin de leur chapeau.</p>

<p>Sinon, je conseillerais aux autres sans-abri de l'XMMP de <a href="https://jabberfr.org/">s'inscrire sur l’un des serveurs faisant partie de la fédération JabberFR</a>, pour moi une valeur sûre gérée par des personnes <a href="https://linuxfr.org/news/renouveau-de-jabberfr">qui essaient de faire ça bien</a>.</p>

<p>La fédération JabberFR <a href="https://im.apinc.org/inscription/">propose un formulaire d’inscription</a> aux serveurs de celle-ci. Il suffit d’y faire défiler la liste déroulante des serveurs et choisir l’adresse qui plaît le plus afin de se créer un compte en un tournemain. Or <a href="https://linkmauve.fr/">Link Mauve</a> qui s'en occupe m'avertit que la librairie XMPPPHP utilisée par cette page tombe dans les choux, et que donc le service ne fonctionne malheureusement pas. J'espère qu'un jour viendra où la <a href="https://jabberfr.org/federation/">fédération</a> (la jolie page cassée) JabberFR permettra de s'inscrire sur un serveur XMPP en deux coups de cuillère à pot, avec quelques exigences de qualité du service (ne pas tout couper d'un coup, par exemple) et de respect de la vie privée des comptes créés de surcroît. <strong>Si vous voulez vous investir dans le projet, n'hésitez pas&nbsp;!</strong> Link Mauve a plein de chouettes idées qu'il se fera un plaisir de partager avec vous.</p>

<p>Qu'à cela ne tienne, ce qu'il est possible de faire, c'est de remarquer un domaine dont vous appréciez le nom (par exemple <a href="https://ouaza.com/">ouaza.com</a> de Raphaël Hertzog), là ou sur l'<a href="https://xmpp.net/directory.php">annuaire général des serveurs publics XMPP</a>, ouvrir votre programme client (par exemple <a href="https://www.pidgin.im/">Pidgin</a>), ajouter un compte XMPP et cocher la ligne de création de compte en bas de la fenêtre.</p>

<p><img src="media/18132e52.Capture-du-2016-10-23-10-36-02.png" data-original-source="https://postblue.info/content/images/2016/10/Capture-du-2016-10-23-10-36-02.png" alt=""></p>

<p>Pour rappel, mon adresse XMPP est la même que mon adresse mail <a href="https://postblue.info/contact/">qui se trouve ici</a>.</p>


feed_id: 347e033d-a801-4a92-975d-6d63f9ae9655
title: Prosody : mise à jour automatique des modules communautaires
uri: Prosody-mise-à-jour-automatique-des-modules-communautaires
url: https://postblue.info/prosody-mise-a-jour-automatique-des-modules-communautaires/
content:
<p>Pour mettre à jour automatique les modules communautaires que j'utilise sur mon serveur de messagerie instantanée (XMPP) Prosody, j'ai écrit un <code>service</code> systemd ainsi qu'un <code>timer</code> le lançant toutes les nuits.</p>

<p>D'abord, il faut évidemment copier le dépôt des modules communautaires quelque part sur le serveur où tourne <code>prosody</code> (par exemple <code>/usr/local/lib/prosody/modules</code>).</p>

<pre><code>sudo apt update
sudo apt install mercurial
sudo hg clone https://hg.prosody.im/prosody-modules/ /usr/local/lib/prosody/modules
</code></pre>

<p>Ensuite, éditer le fichier de configuration <code>sudo -e /etc/prosody/prosody.cfg.lua</code> et y ajouter le chemin vers ce répertoire.</p>

<pre><code>-- These paths are searched in the order specified, and before the default path
plugin_paths = { "/usr/local/lib/prosody/modules" }
</code></pre>

<p>Sauvegarder, relancer <code>prosody</code> et vérifier que le chemin est bien pris en compte.</p>

<pre><code>sudo service prosody restart
sudo prosodyctl about
</code></pre>

<p>Exemple :</p>

<p><img src="media/d0a54add.Capture-du-2017-03-09-10-51-58.png" data-original-source="https://postblue.info/content/images/2017/03/Capture-du-2017-03-09-10-51-58.png" alt=""></p>

<p>Le répertoire de modules complémentaires étant correctement pris en compte, on peut maintenant créer un <code>service</code> dont la tâche sera de mettre à jour le répertoire cloné.</p>

<pre><code>sudo -e /etc/systemd/system/prosody-up.service
</code></pre>

<p>Copier et sauvegarder&nbsp;:</p>

<pre><code>[Service]
Type=oneshot
ExecStart=/usr/bin/hg pull --update --cwd /usr/local/lib/prosody/modules
ExecStartPost=/usr/sbin/service prosody restart
</code></pre>

<p>Ensuite un <code>timer</code> invoquant le <code>service</code> ci-dessus à intervalle régulier (toutes les nuits à 2h du matin).</p>

<pre><code>sudo -e /etc/systemd/system/prosody-up.timer
</code></pre>

<p>Copier et sauvegarder&nbsp;:</p>

<pre><code>[Unit]
Description=Prosody Modules Updater
After=network-online.target
Wants=network-online.target prosody.service

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target
</code></pre>

<p>Pour finir, il suffit de recharger les services de <code>systemd</code> (par mesure de sécurité), activer le <code>timer</code> et lancer le <code>service</code>.</p>

<pre><code>sudo systemctl daemon-reload
sudo systemctl enable prosody-up.timer
sudo systemctl start prosody-up.service
sudo systemctl status prosody-up.service -l
</code></pre>


feed_id: 3412a8ad-7e42-4af4-be60-4e5d64223f52
title: Ouverture d'une instance Mastodon
uri: Ouverture-d-une-instance-Mastodon
url: https://postblue.info/ouverture-dune-instance-mastodon/
content:
<p>C'est ici que ça se passe : <a href="https://pouet.it">pouet.it</a>. Pour l'instant tout tourne sur un Scaleway C1, que je supervise pour voir les besoins de la bête.</p>

<p>Un Manifeste/Règlement d'ordre intérieur <a href="https://pad.postblue.info/p/pouet">est en cours de rédaction</a> concernant l'identité de l'instance, ses règles de modération... Si ça vous intéresse, n'hésitez pas à contribuer.</p>

<p>Mastodon est un logiciel basé sur le protocole OStatus, qui est le même que celui de GNU social : je reste donc actif sur mon compte <a href="https://herds.eu/postblue">@posblue</a> et vous pouvez toujours me demander à rejoindre cette instance.</p>


feed_id: 50a58e10-b4e0-4c79-a111-9c7494cc94cc
title: LaTeX : 4 flyers sur une page A4
uri: LaTeX-4-flyers-sur-une-page-A4
url: https://postblue.info/latex-4-flyers-sur-une-page-a4/
content:
<p>Afin d’avoir 4 fois le même document en A6 sur une même page A4, j’utilise le code LaTeX suivant :</p>

<pre><code>\documentclass[a4paper]{article}
\usepackage{pdfpages}

\begin{document}

\includepdf[nup=2x2, duplicatepages=4, delta=25 40]{Document-1}

\end{document}
</code></pre>

<h1 id="explication">Explication</h1>

<ul>
<li><code>\documentclass[a4paper]{article}</code> : ouverture du préambule du document, précisant qu’on utilise la classe <code>article</code> sur une page A4</li>
<li><code>\usepackage{pdfpages}</code> : mobilisation du paquet <a href="https://www.ctan.org/pkg/pdfpages"><code>pdfpages</code></a> qui simplifie l’inclusion de documents PDF externes au sein de documents LaTeX et qui permet de mettre plusieurs pages logiques sur chaque feuille de papier</li>
<li><code>\begin{document}</code> : balise ouvrant du document à proprement parler, qui sera fermée par <code>\end{document}</code></li>
<li><code>\includepdf[nup=2x2, duplicatepages=4, delta=25 40]{Document-1}</code> :
<ul><li><code>\includepdf</code> : insère les pages d’un document PDF externe</li>
<li><code>nup=2x2</code> : met plusieurs pages logiques sur chaque feuille de papier (2 pages horizontalement et 2 verticalement)</li>
<li><code>duplicatepages=4</code> : duplique chaque page (ici il n’y en a qu’une seule) 4 fois</li>
<li><code>delta=25 40</code> (valeur à ajuster) espace horizontalement et verticalement les pages logiques, afin d'avoir une bordure plus ou moins égale autour du feuillet un fois imprimé et découpé (l’imprimante ajustant le document à sa zone d’impression qui n’est pas sans bordure)</li></ul></li>
</ul>

<h1 id="rsultat">Résultat</h1>

<p><img src="media/1114fd08.massicot.png" data-original-source="https://postblue.info/content/images/2017/07/massicot.png" alt=""></p>

<p>(Oui j’assume le graphisme rétro-futuriste.)</p>


feed_id: 598066730b34a039365e0d7c
title: LaTeX : 4 flyers sur une page A4
uri: 2017-08-01-LaTeX-4-flyers-sur-une-page-A4
url: https://postblue.info/latex-4-flyers-sur-une-page-a4/
content:
<div class="kg-card-markdown"><img src="media/ad88769e.Carr--1.png" data-original-source="https://postblue.info/content/images/2017/08/Carr--1.png" alt="LaTeX : 4 flyers sur une page A4"><p>Afin d’avoir 4 fois le même document en A6 sur une même page A4, j’utilise le code LaTeX suivant :</p>
<pre><code>\documentclass[a4paper]{article}
\usepackage{pdfpages}

\begin{document}

\includepdf[nup=2x2, duplicatepages=4, delta=25 40]{Document-1}

\end{document}
</code></pre>
<h1 id="explication">Explication</h1>
<ul>
<li><code>\documentclass[a4paper]{article}</code> : ouverture du préambule du document, précisant qu’on utilise la classe <code>article</code> sur une page A4</li>
<li><code>\usepackage{pdfpages}</code> : mobilisation du paquet <a href="https://www.ctan.org/pkg/pdfpages"><code>pdfpages</code></a> qui simplifie l’inclusion de documents PDF externes au sein de documents LaTeX et qui permet de mettre plusieurs pages logiques sur chaque feuille de papier</li>
<li><code>\begin{document}</code> : balise ouvrant du document à proprement parler, qui sera fermée par <code>\end{document}</code></li>
<li><code>\includepdf[nup=2x2, duplicatepages=4, delta=25 40]{Document-1}</code> :
<ul>
<li><code>\includepdf</code> : insère les pages d’un document PDF externe</li>
<li><code>nup=2x2</code> : met plusieurs pages logiques sur chaque feuille de papier (2 pages horizontalement et 2 verticalement)</li>
<li><code>duplicatepages=4</code> : duplique chaque page (ici il n’y en a qu’une seule) 4 fois</li>
<li><code>delta=25 40</code> (valeur à ajuster) espace horizontalement et verticalement les pages logiques, afin d'avoir une bordure plus ou moins égale autour du feuillet un fois imprimé et découpé (l’imprimante ajustant le document à sa zone d’impression qui n’est pas sans bordure)</li>
</ul>
</li>
</ul>
<h1 id="rsultat">Résultat</h1>
<p><img src="media/1114fd08.massicot.png" data-original-source="https://postblue.info/content/images/2017/07/massicot.png" alt="LaTeX : 4 flyers sur une page A4"></p>
<p>(Oui j’assume le graphisme rétro-futuriste.)</p>
</div>


feed_id: 598066730b34a039365e0d7b
title: Ouverture d’une instance Mastodon
uri: 2017-08-01-Ouverture-d-une-instance-Mastodon
url: https://postblue.info/ouverture-dune-instance-mastodon/
content:
<div class="kg-card-markdown"><p>C'est ici que ça se passe : <a href="https://pouet.it">pouet.it</a>. Pour l'instant tout tourne sur un Scaleway C1, que je supervise pour voir les besoins de la bête.</p>
<p>Un Manifeste/Règlement d'ordre intérieur <a href="https://pad.postblue.info/p/pouet">est en cours de rédaction</a> concernant l’identité de l’instance, ses règles de modération... Si ça vous intéresse, n'hésitez pas à contribuer.</p>
<p>Mastodon est un logiciel basé sur le protocole OStatus, qui est le même que celui de GNU social : je reste donc actif sur mon compte <a href="https://herds.eu/postblue">@postblue</a> et vous pouvez toujours me demander à rejoindre cette instance.</p>
</div>


feed_id: 598066730b34a039365e0d7a
title: Prosody : mise à jour automatique des modules communautaires
uri: 2017-08-01-Prosody-mise-à-jour-automatique-des-modules-communautaires
url: https://postblue.info/prosody-mise-a-jour-automatique-des-modules-communautaires/
content:
<div class="kg-card-markdown"><p>Pour mettre à jour automatique les modules communautaires que j'utilise sur mon serveur de messagerie instantanée (XMPP) Prosody, j'ai écrit un <code>service</code> systemd ainsi qu'un <code>timer</code> le lançant toutes les nuits.</p>
<p>D'abord, il faut évidemment copier le dépôt des modules communautaires quelque part sur le serveur où tourne <code>prosody</code> (par exemple <code>/usr/local/lib/prosody/modules</code>).</p>
<pre><code>sudo apt update
sudo apt install mercurial
sudo hg clone https://hg.prosody.im/prosody-modules/ /usr/local/lib/prosody/modules
</code></pre>
<p>Ensuite, éditer le fichier de configuration <code>sudo -e /etc/prosody/prosody.cfg.lua</code> et y ajouter le chemin vers ce répertoire.</p>
<pre><code>-- These paths are searched in the order specified, and before the default path
plugin_paths = { &quot;/usr/local/lib/prosody/modules&quot; }
</code></pre>
<p>Sauvegarder, relancer <code>prosody</code> et vérifier que le chemin est bien pris en compte.</p>
<pre><code>sudo service prosody restart
sudo prosodyctl about
</code></pre>
<p>Exemple :</p>
<p><img src="media/d0a54add.Capture-du-2017-03-09-10-51-58.png" data-original-source="https://postblue.info/content/images/2017/03/Capture-du-2017-03-09-10-51-58.png" alt=""></p>
<p>Le répertoire de modules complémentaires étant correctement pris en compte, on peut maintenant créer un <code>service</code> dont la tâche sera de mettre à jour le répertoire cloné.</p>
<pre><code>sudo -e /etc/systemd/system/prosody-up.service
</code></pre>
<p>Copier et sauvegarder :</p>
<pre><code>[Service]
Type=oneshot
ExecStart=/usr/bin/hg pull --update --cwd /usr/local/lib/prosody/modules
ExecStartPost=/usr/sbin/service prosody reload
</code></pre>
<p>Ensuite un <code>timer</code> invoquant le <code>service</code> ci-dessus à intervalle régulier (toutes les nuits à 2h du matin).</p>
<pre><code>sudo -e /etc/systemd/system/prosody-up.timer
</code></pre>
<p>Copier et sauvegarder :</p>
<pre><code>[Unit]
Description=Prosody Modules Updater
After=network-online.target
Wants=network-online.target prosody.service

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target
</code></pre>
<p>Pour finir, il suffit de recharger les services de <code>systemd</code> (par mesure de sécurité), activer le <code>timer</code> et lancer le <code>service</code>.</p>
<pre><code>sudo systemctl daemon-reload
sudo systemctl enable prosody-up.timer
sudo systemctl start prosody-up.service
sudo systemctl status prosody-up.service -l</code></pre>
</div>


feed_id: 598066730b34a039365e0d79
title: Jappix est mort, vive XMPP
uri: 2017-08-01-Jappix-est-mort-vive-XMPP
url: https://postblue.info/jappix-cest-fini/
content:
<div class="kg-card-markdown"><blockquote>
<p>Mise à jour 20161025 : l'ensemble des comptes et des salons de discussion en <a href="http://jappix.com">jappix.com</a> sont (ou vont être) transférés sur l'infrastructure de <a href="https://movim.eu/">Movim</a>, gérée par <a href="https://edhelas.movim.eu/">Timothée Jaussoin</a> (aka edhelas). [<a href="https://nl.movim.eu/?node/pubsub.movim.eu/Movim/2fd03f1e-d89e-450c-a2ec-c66b8fa7193a">source</a>]</p>
</blockquote>
<p><a href="https://fr.wikipedia.org/wiki/Jappix">Jappix</a> serait mort, et ce faisant le lien avec un nombre conséquent de mes contacts qui y avait une adresse <a href="https://postblue.info/tag/xmpp">#XMPP</a>. C’est ce qui arrive quand on lance une boîte bien remplie d’œufs dans son panier.</p>
<p><img src="media/f91eb50e.Capture-du-2016-10-21-14-22-54.png" data-original-source="https://postblue.info/content/images/2016/10/Capture-du-2016-10-21-14-22-54.png" alt=""></p>
<p>Il suffit de regarder <a href="https://github.com/jappix/jappix/commit/941df95f4d4f89c6b8b1e35753d6444342a8726b">les messages sur le dépôt git</a> pour se dire que le projet a été abandonné. Personne, je crois, ne reprochera à <a href="https://valeriansaliou.name/">Valerian Saliou</a> de se défaire du projet pour se consacrer à d'autres. Pourtant, avec tout le domaine <a href="http://jappix.com">jappix.com</a> qui tombe dans les choux, j’ai l’impression que l'abandon d'un <strong>projet</strong> va ici de paire avec l'abandon d'un <strong>service</strong>, pourtant pas mal peuplé au vu de ma liste de contacts.</p>
<p>Un serveur XMPP peut être hébergé chez soi me dira-t-on, mais soyons honnêtes 30 secondes : ça n'est pas à la portée de tout le monde de déployer et d'administrer un serveur avec sa petite instance de <a href="https://postblue.info/tag/prosody">#prosody</a> qui tourne dessus. On se retrouve donc avec des ruches de comptes postés à un même endroit, faisant les frais de l’administration et de la gouvernance du service. Si l’on demande un compte chez moi, par exemple, la connexion se coupera de temps en temps puisque j’adore chipoter à ma machine, <a href="https://prosody.im/">prosody</a> redémarre donc souvent.</p>
<p>Jappix était l’une de ses ruches : <a href="http://archive.wikiwix.com/cache/?url=http%3A%2F%2Fblog.julienbarrier.fr%2Fjappix%2F2011%2Fau-revoir-vanaryon%2F">8 000 comptes</a> il y a 5 ans (tout de même), soit un bon paquet de monde qui se retrouve à la rue. <a href="https://cyrille-borne.com/blog/index.php?article2633/l-informatique-restera-l-affaire-de-ceux-qui-la-subissent-et-ceux-qui-la-maitrisent">Cyrille</a>, le troll chauve qui avait une adresse <strong>@jappix.com</strong>, m’a soufflé à l’oreille qu’il n'y a eu ni message de service, ni préavis de cessation des activités. Puisque je n’ai pas encore de réponse de Valerian, je lui laisse le bénéfice du doute mais soit il s'agit d'une erreur, soit c'est pas vraiment super sympa.</p>
<p>Or, maintenant que le nom de domaine pointe vers le néant (et que j'ai perdu un quart de mes contacts), que faire ?</p>
<p>Au plus simple, se rediriger vers <a href="https://movim.eu/">Movim</a>, l'un des autres projet de client XMPP qui roule dans votre navigateur web. Movim permet même de créer un compte sur le serveur <strong>@movim.eu</strong> depuis l'un de ses serveurs <a href="https://it.movim.eu/?login">italien</a> ou <a href="https://nl.movim.eu/?login">néerlandais</a>. <a href="https://edhelas.movim.eu/">Edhelas</a>, qui est derrière le projet, me dit qu'il est en contact avec Valerian : peut-être que ces deux-là nous sortiront un lapin de leur chapeau.</p>
<p>Sinon, je conseillerais aux autres sans-abri de l'XMMP de <a href="https://jabberfr.org/">s'inscrire sur l’un des serveurs faisant partie de la fédération JabberFR</a>, pour moi une valeur sûre gérée par des personnes <a href="https://linuxfr.org/news/renouveau-de-jabberfr">qui essaient de faire ça bien</a>.</p>
<p>La fédération JabberFR <a href="https://im.apinc.org/inscription/">propose un formulaire d’inscription</a> aux serveurs de celle-ci. Il suffit d’y faire défiler la liste déroulante des serveurs et choisir l’adresse qui plaît le plus afin de se créer un compte en un tournemain. Or <a href="https://linkmauve.fr/">Link Mauve</a> qui s'en occupe m'avertit que la librairie XMPPPHP utilisée par cette page tombe dans les choux, et que donc le service ne fonctionne malheureusement pas. J'espère qu'un jour viendra où la <a href="https://jabberfr.org/federation/">fédération</a> (la jolie page cassée) JabberFR permettra de s'inscrire sur un serveur XMPP en deux coups de cuillère à pot, avec quelques exigences de qualité du service (ne pas tout couper d'un coup, par exemple) et de respect de la vie privée des comptes créés de surcroît. <strong>Si vous voulez vous investir dans le projet, n'hésitez pas !</strong> Link Mauve a plein de chouettes idées qu'il se fera un plaisir de partager avec vous.</p>
<p>Qu'à cela ne tienne, ce qu'il est possible de faire, c'est de remarquer un domaine dont vous appréciez le nom (par exemple <a href="https://ouaza.com/">ouaza.com</a> de Raphaël Hertzog), là ou sur l'<a href="https://xmpp.net/directory.php">annuaire général des serveurs publics XMPP</a>, ouvrir votre programme client (par exemple <a href="https://www.pidgin.im/">Pidgin</a>), ajouter un compte XMPP et cocher la ligne de création de compte en bas de la fenêtre.</p>
<p><img src="media/18132e52.Capture-du-2016-10-23-10-36-02.png" data-original-source="https://postblue.info/content/images/2016/10/Capture-du-2016-10-23-10-36-02.png" alt=""></p>
<p>Pour rappel, mon adresse XMPP est la même que mon adresse mail <a href="https://postblue.info/contact/">qui se trouve ici</a>.</p>
</div>


feed_id: 598066730b34a039365e0d77
title: GNOME : autostart en arrière-plan
uri: 2017-08-01-GNOME-autostart-en-arrière-plan
url: https://postblue.info/gnome-autostart-en-arriere-plan/
content:
<div class="kg-card-markdown"><p>Sur ma session <a href="https://postblue.info/tag/gnome">GNOME</a>, l’utilisation quotidienne de certains programme a créé le besoin d’avoir certaines applications qui se lancent automatiquement (autostart) au démarrage. Cependant, je ne voulais pas que celles-ci se retrouvent propulsées à l'avant-plan : je voulais que ces applications se lancent en arrière-plan.</p>
<p>Pour démarrer certaines applications à l’ouverture de session, il « suffit » de copier le fichier <code>.desktop</code> depuis <code>/usr/share/applications/</code> dans <code>~/.config/autostart/</code>. Le fichier <code>.desktop</code> regroupe toutes les informations relatives à une application installée sur la machine, de son nom à la ligne de commande à exécuter.</p>
<p>Le même résultat peut être obtenu en utilisant l’<strong>Outil de personnalisation de GNOME</strong> (<code>gnome-tweak-tool</code>), permettant de personnaliser les réglages avancés de GNOME 3 avec une prise en main plus <em>user friendly</em> que par la ligne de commande ou la copie manuelle de fichiers. À l’écran <em>Applications au démarrage</em>, il est possible d’ajouter des applications en cliquant sur le bouton <code>+</code> au pied de celui-ci. S’ouvre alors une popup avec la liste des applications graphiques installées sur le système, qu’il suffit de sélectionner pour qu’elle(s) soi(en)t lancée(s) à la prochaine ouverture de session.</p>
<p>Cependant, les applications ainsi ajoutées se lancent en avant-plan et, comme je l’ai dit en introduction, je désire que ces applications soient lancées en arrière-plan (minimisées dans la barre des tâches ou cachées, ça dépend de ce qui est offert par l’application).</p>
<p>Le programme <strong>Préférences des applications au démarrage</strong> (<code>gnome-session-properties</code>) a été retiré de GNOME dans sa version 3.12. Il permettait l’édition manuelle des programmes lancés à l’ouverture de session, mais faisait double emploi avec la possibilité d’ajout de programmes par <code>gnome-tweak-tool</code>. Cependant, ce dernier n’intègre pas (encore) la possibilité d’éditer les fichiers <code>.desktop</code> pour passer un argument à la ligne de commande de lancement de l’application<sup class="footnote-ref"><a href="https://postblue.info/gnome-autostart-en-arriere-plan/#fn1" id="fnref1">[1]</a></sup> : il va donc falloir éditer à la main les fichiers <code>.desktop</code>.</p>
<p>Quelques exemples : il faut éditer dans les fichiers <code>~/.config/autostart/*.desktop</code> la ligne <code>Exec=</code> où se retrouve la ligne de commande lancée quand on clique sur le raccourci d’une application, et y ajouter un argument supplémentaire.</p>
<ul>
<li>
<p><strong>Empathy</strong> (<code>~/.config/autostart/empathy.desktop</code>), le client de messagerie instantanée, peut être démarré de façon cachée (<code>--start-hidden</code>). De la sorte, je me connecte à mon compte XMPP dès le démarrage de session et permet d’être joignable sans avoir à penser à lancer le programme. Ce qui donne :</p>
<pre><code>  Exec=empathy --start-hidden
</code></pre>
</li>
<li>
<p><strong>Telegram Desktop</strong> (<code>~/.config/autostart/telegramdesktop.desktop</code>) peut être démarré minimisé dans la barre des tâches avec l’argument <code>-startintray</code>, ce qui donne :</p>
<pre><code>  Exec=telegram-desktop -startintray -- %u
</code></pre>
</li>
<li>
<p><strong>Transmission GTK</strong> (<code>~/.config/autostart/transmission-gtk.desktop</code>), le gestionnaire de torrents, peut également être lancé minimisé avec l’argument <code>--minimized</code>, ce qui donne :</p>
<pre><code>  Exec=transmission-gtk --minimized %U
</code></pre>
</li>
<li>
<p><strong>Steam</strong> (<code>~/.config/autostart/steam.desktop</code>) aussi peut être lancé minimisé, il suffit de lui ajouter l’argument <code>-silent</code> :</p>
<pre><code>  Exec=/usr/bin/steam -silent %U
</code></pre>
</li>
</ul>
<p>Il est relativement simple d’ajouter des applications graphiques au démarrage de la session GNOME avec l’<strong>Outil de personnalisation de GNOME</strong> (<code>gnome-tweak-tool</code>). Cependant, obliger le lancement en arrière-plan desdites applications n’est pas du tout convivial, obligeant à une édition manuelle d’un fichier verbeux et austère.</p>
<p>On le remarque avec les quelques exemples ci-dessus : <strong>aucune</strong> de ces applications n’admet le même argument pour être démarrée en arrière-plan. Normaliser la nomenclature de cet argument pourrait être une piste de résolution pour une configuration conviviale du lancement automatique en arrière-plan, à moins que ça ne soit intégré directement dans les applications admettant d’être démarrées en arrière-plan.</p>
<p>Par ailleurs, quelques applications n’admettent pas d’être démarrées de la sorte, le gestionnaire de mail <a href="https://wiki.gnome.org/Apps/Evolution">Evolution</a> en première ligne, logiciel que j’utilise tous les jours. Le gestionnaire <a href="https://wiki.gnome.org/Apps/Geary">Geary</a> intègre cette possibilité par défaut, avertissant dès lors par une notification la réception d’un mail. Cependant, Geary n’est plus maintenu (dernière mise à jour le 30 mars 2015) et n’intègre pas le support du chiffrement/déchiffrement des mails, ce qui pour moi est un manquement dont je ne peux me passer.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Édition du 26 avril 2016 : j’ai ajouté <a href="https://bugzilla.gnome.org/show_bug.cgi?id=765613">une demande d’amélioration sur le bugtracker de Gnome Tweak Tool</a> en ce sens suite à <a href="https://postblue.info/gnome-autostart-en-arriere-plan/#isso-371">ma réponse au commentaire de Leo</a> ci-dessous. <a href="https://postblue.info/gnome-autostart-en-arriere-plan/#fnref1" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
</div>


feed_id: 598066730b34a039365e0d74
title: Debian Jessie sur un Kimsufi KS-2A
uri: 2017-08-01-Debian-Jessie-sur-un-Kimsufi-KS-2A
url: https://postblue.info/kimsufi/
content:
<div class="kg-card-markdown"><p>Petite marche à suivre à peu près généraliste pour configurer un serveur dédié <a href="https://www.kimsufi.com/fr/serveurs.xml">Kimsufi</a>.</p>
<h1 id="installation">Installation</h1>
<p>Le schéma d’installation que j’ai utilisé diverge de celui par défaut pour Debian Jessie proposé par OVH.</p>
<p>Est configuré par défaut dans le <em>template</em> d’installation Debian 8.3 stable (Jessie) :</p>
<ul>
<li>une large partition <code>/home</code> dans le schéma de partition par défaut :
<ul>
<li>une partition primaire <code>/</code> de 20Go ;</li>
<li>une partition primaire <code>/home</code> prenant l’espace restant, soit un peu moins de 980Go dans mon cas ;</li>
<li>une partition <code>swap</code> obligatoire de 512Mo ;</li>
</ul>
</li>
<li>un <a href="http://guide.ovh.com/KernelInstall">noyau Linux « maison »</a>.</li>
</ul>
<p>Inconvénients pour un serveur web comme le mien :</p>
<ul>
<li>j’utilise majoritairement les partitions <code>/var</code> (<code>/var/www</code> pour les sites en PHP, <code>/var/lib</code> pour le stockage de données des applications comme MariaDB, Prosody, etc.) et <code>/srv</code> (services divers balancés sur un port public)</li>
<li>avoir une partition <code>/home</code> séparée et prenant 98% de l’espace disque ne me sert à rien ;</li>
<li>le noyau maison n’est disponible dans aucun dépôt <code>apt</code> et doit être mis à jour à la main (<code>wget</code>), en allant le chercher <a href="ftp://ftp.ovh.net/made-in-ovh/bzImage/">depuis un serveur FTP</a>, ce qui est rédhibitoire pour moi.</li>
</ul>
<p>Donc, pour installer <em>à ma façon</em> :</p>
<ul>
<li><em>template</em> d’installation Debian 8.3 stable (Jessie) ;</li>
<li>cocher l’utilisation du noyau de la distribution à la place du noyau ;</li>
<li>éditer le schéma de partitionnement pour supprimer la place indue que prendrait <code>/home</code> et maximiser l’espace de la racine <code>/</code>.</li>
</ul>
<h1 id="considrationsdinstallation">Considérations d’installation</h1>
<ul>
<li>une partition <code>/boot</code> séparée de <code>/</code> ;</li>
<li>un partitionnement du disque (<code>/var</code>, <code>/src</code>) plus fin, en essayant de prévoir la place que prendraient ces partitions ;</li>
<li>utiliser le <a href="https://wiki.debian.org/grsecurity">noyau avec les patchs de sécurité <code>grsecurity</code></a>, à l’instar du noyau OVH qui les intègre ;</li>
<li>ne pas activer de compte <code>root</code> mais directement un utilisateur appartenant au groupe <code>sudo</code> pour ne pas avoir à le désactiver par la suite.</li>
</ul>
<h1 id="premireconnexion">Première connexion</h1>
<p>Après l’installation de la distribution, OVH envoie un mail contenant le code du compte <code>root</code> permettant de se connecter au serveur. On va donc s’y connecter en forçant la demande de mot de passe (puisqu’il n’y a pas encore de clé SSH forgée est installée).</p>
<pre><code>ssh root@ip.du.serveur -o PreferredAuthentications=password
</code></pre>
<p>Une fois connecté, je conseille de changer au plus vite le mot de passe du compte <code>root</code> :</p>
<pre><code>passwd
</code></pre>
<p>Entrez le mot de passe actuel une première fois, puis entrez-en un nouveau par deux fois. Voilà, il ne devrait plus exister de copie de votre mot de passe <code>root</code>.</p>
<p>Pour désactiver complètement le login du compte <code>root</code> (après avoir créé un nouvel utilisateur appartenant au groupe <code>sudo</code>) :</p>
<pre><code>sudo passwd -dl root
</code></pre>
<p>Pour continuer, mettre à jour des dépôts.</p>
<pre><code>apt update
</code></pre>
<h1 id="systemd">systemd</h1>
<p>Utiliser les différents services de <code>systemd</code> renvoie l’erreur suivante :</p>
<blockquote>
<p>Failed to create bus connection</p>
</blockquote>
<p>Pour corriger, il suffit d’installer le paquet <code>dbus</code> manquant.</p>
<pre><code>apt install dbus
</code></pre>
<h1 id="ntp">NTP</h1>
<p>Maintenant que <code>systemd</code> est réparé, on peut l’utiliser comme service de synchronisation du temps de la machine au lieu d’installer <a href="https://wiki.debian.org/NTP">un second paquet pour NTP</a>.</p>
<pre><code>timedatectl set-ntp 1
</code></pre>
<h1 id="hostname">Hostname</h1>
<p>Le nom d’hôte (<em>hostname</em>) inscrit dans le fichier <code>/etc/hostname</code> est un nom de domaine <code>hostname.ip-x-y-z.eu</code>. Pour n’avoir que le nom court :</p>
<pre><code>hostnamectl set-hostname $(hostname -a)
</code></pre>
<p>Puis éditer <code>/etc/hosts</code> pour remplacer <code>hostname.ip-x-y-z.eu</code> avec <code>hostname.sondomaine.tld</code> tel que défini dans sa zone DNS (sinon, le faire, j’utilise celle de Gandi).</p>
<p>Pour plus d’informations sur le renommage de la machine, <a href="https://wiki.debian.org/HowTo/ChangeHostname">voir le Debian Wiki HowTo/ChangeHostname</a>.</p>
<h1 id="firewalletfail2ban">Firewall et Fail2ban</h1>
<p>Pas envie de m’emmerder à maintenir un pare-feu complexe, <a href="https://wiki.debian.org/Uncomplicated%20Firewall%20%28ufw%29">je teste UFW (Uncomplicated Firewall)</a>.</p>
<pre><code>apt install ufw
ufw allow SSH # ouvre le port 22
ufw allow ’Nginx Full’ # ouvre les ports 80 et 443
ufw enable # active ufw
</code></pre>
<p>Si vous voulez utiliser <code>fail2ban</code> pour prévenir des attaques par force brute, il est possible de le faire utiliser directement <code>ufw</code> plutôt qu’<code>iptables</code>.</p>
<pre><code>apt install fail2ban
</code></pre>
<p>Pour configurer la bête, créer un fichier <code>/etc/fail2ban/jail.local</code> : chargé après le fichier de configuration principal <code>/etc/fail2ban/jail.conf</code>, les valeurs qu’il contient <em>écrasent</em> celles contenues dans le premier, inutile donc de copier intégralement le contenu du fichier de configuration (comme j’ai pu le voir par-ci par-là). Y changer l’adresse à laquelle les notifications sont envoyées, et configurer le programme pour utiliser <code>ufw</code> :</p>
<pre><code>[DEFAULT]
destemail = mail@domaine.truc
banaction = ufw
</code></pre>
<h1 id="yapyt">Yapyt</h1>
<p>Yapyt est clone de <code>yaourt</code> (commande Arch Linux) <a href="https://yeuxdelibad.net/Programmation/yapyt-un_yaourt_pour_debian.html">développé par Thuban pour Debian</a>. Très utile pour nettoyer son système et supprimer les résidus d’applications désinstallées.</p>
<pre><code>wget http://git.yeuxdelibad.net/coolrepo/plain/yapyt/yapyt.py -O /usr/local/bin/yapyt
chmod +x /usr/local/bin/yapyt
</code></pre>
<p>Pour le nettoyage, <code>yapyt</code> nécessite <code>deborphan</code> et <code>aptitude</code> :</p>
<pre><code>apt install aptitude deborphan
</code></pre>
<h1 id="certificats">Certificats</h1>
<p>Installer <a href="https://letsencrypt.org/getting-started/">le client Let’s Encrypt</a> disponible dans le dépôt <code>jessie-backports</code> activé par défaut dans le <code>source.list</code> déployé par OVH (qui utilise les miroirs d’OVH également), mais aussi les <a href="https://wiki.cacert.org/FAQ/ImportRootCert?action=show&amp;redirect=ImportRootCert#Debian">certificats racine de CACert</a> qui sont à nouveau disponible dans un paquet séparé.</p>
<pre><code>apt -t jessie-backports install letsencrypt ca-cacert
</code></pre>
<h1 id="dotdeb">Dotdeb</h1>
<blockquote>
<p><a href="https://www.dotdeb.org/">Dotdeb</a> is an extra repository providing up-to-date packages for your Debian servers : Nginx ; PHP 7.0, 5.6, 5.5, 5.4 (obsolete) and 5.3 (obsolete) ; useful PHP extensions : apcu, imagick, mongo, Pinba, xcache, Xdebug, XHprof… ; MySQL 5.5 and 5.6 ; Zabbix ; etc.</p>
</blockquote>
<p>Installer la clé du dépôt :</p>
<pre><code>wget https://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
</code></pre>
<p>Dans <code>/etc/apt/source.list.d/dotdeb.list</code> :</p>
<pre><code>deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
</code></pre>
<p>Mettre à jour les dépôts :</p>
<pre><code>apt update
</code></pre>
<p>Installer le serveur web :</p>
<pre><code>apt install nginx-extras php5-fpm
</code></pre>
<h1 id="mariadb">MariaDB</h1>
<blockquote>
<p><a href="https://mariadb.org/">MariaDB</a> is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, Facebook and Google.</p>
</blockquote>
<p>Installer la clé du dépôt :</p>
<pre><code>apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
</code></pre>
<p>Dans <code>/etc/apt/source.list.d/mariadb.list</code> :</p>
<pre><code>deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
deb-src http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
</code></pre>
<p>Mettre à jour les dépôts :</p>
<pre><code>apt update
</code></pre>
<p>Installer :</p>
<pre><code>apt install mariadb-server
</code></pre>
<h1 id="prosody">Prosody</h1>
<blockquote>
<p><a href="https://prosody.im/">Prosody</a> is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.</p>
</blockquote>
<p>Installer la clé du dépôt :</p>
<pre><code>wget https://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -
</code></pre>
<p>Dans <code>/etc/apt/source.list.d/prosody.list</code> :</p>
<pre><code>deb http://packages.prosody.im/debian jessie main
</code></pre>
<p>Mettre à jour les dépôts :</p>
<pre><code>apt update
</code></pre>
<p>Installer Prosody et ses dépendances optionnelles :</p>
<pre><code>apt install prosody-trunk lua-event lua-zlib lua-dbi-sqlite3 lua-bitop
</code></pre>
<p>Je renvoie à mon article <a href="https://postblue.info/prosody-debian/">Prosody sur Debian Wheezy/Jessie</a> pour plus d’informations quant à la configuration du service.</p>
<h1 id="nodejslts">NodeJS LTS</h1>
<p>Installer <code>nodejs</code> (v0.10.29) et <code>npm</code> (v1.4.21) depuis les dépôts Debian, dans <code>/usr/bin</code>.</p>
<pre><code>apt install npm
</code></pre>
<p>Installer le gestionnaire de version <code>n</code> dans <code>/usr/local/bin</code>.</p>
<pre><code>npm install -g n
</code></pre>
<p>Utiliser <code>n</code> pour installer la dernière version LTS de nodejs (v4.3.2) dans <code>/usr/local/bin</code>.</p>
<pre><code>n lts
</code></pre>
<p>Installer la dernière version de <code>npm</code> (v2.14.12) dans <code>/usr/local/bin</code>.</p>
<pre><code>npm install -g npm node-gyp
</code></pre>
<p>Supprimer les binaires de npm et nodejs qui trainent dans <code>/usr/bin</code> pour ne plus avoir que les derniers installés.</p>
<pre><code>apt remove npm
apt-get autoremove
</code></pre>
<h1 id="superutilisateur">Superutilisateur</h1>
<p>Plutôt que de continuer à utiliser le compte root, je me crée un utilisateur aux droits restreints, que j’ajoute néanmoins au groupe <code>sudo</code> pour l’utiliser à des fins de maintenance du système.</p>
<pre><code>apt install sudo
adduser username
gpasswd -a username sudo
</code></pre>
<p>Pour désactiver complètement le login du compte <code>root</code> :</p>
<pre><code>sudo passwd -dl root
</code></pre>
<h1 id="ssh">SSH</h1>
<p>Depuis un terminal sur mon ordinateur, je forge une clé SSH (inutilement grosse, pour tester) que j’autoriserai à servir d’authentification sur le compte utilisateur créé ci-dessus.</p>
<pre><code>ssh-keygen -b 16384
</code></pre>
<p>Je la renomme <code>$HOME/.ssh/id_rsa-nomduserver</code>, lui met un gros gros mot de passe, puis je la copie dans les clés autorisées sur mon serveur.</p>
<pre><code>ssh-copy-id -i $HOME/.ssh/id_rsa-nomduserver username@adresse.ip -o PreferredAuthentications=password
</code></pre>
<p>Je peux dorénavant me connecter à mon serveur par SSH avec une authentification par clé sur un utilisateur qui après entrée d’un (inutilement tarabiscoté) mot de passe, me confère des droits élevés.</p>
<pre><code>ssh username@adress.ip -i $HOME/.ssh/id_rsa-nomduserver
</code></pre>
<p>Je renvoie au <a href="https://wiki.debian.org/fr/SSH#S.2BAOk-curisation">Debian Wiki pour la sécurisation de SSH</a> : désactiver la connexion au compte <code>root</code> et l’authentification par mot de passe dans <code>/etc/ssh/sshd_config</code>.</p>
<pre><code>PasswordAuthentication no
PermitRootLogin no
</code></pre>
<h1 id="shellzshetbyobu">Shell ZSH et Byobu</h1>
<p>Plutôt qu’une session SSH toute moche avec seulement BASH, j’utilise le gestionnaire de multiplexeurs de terminal <a href="http://byobu.co/">Byobu</a> (backend <code>tmux</code>) et ai remplacé BASH par <a href="http://zshwiki.org/home/">ZSH</a>.</p>
<p><img src="https://camo.githubusercontent.com/612c6be742478221e06c64b66b896085f6e4af63/687474703a2f2f692e696d6775722e636f6d2f6e7247563670672e706e67" alt="ZSH, Prezto et Byobu"></p>
<pre><code>apt install zsh byobu git
byobu-enable
</code></pre>
<p>La commande <code>byobu-enable</code> active <code>byobu</code> si et seulement si le shell par défaut est <code>bash</code>. Donc plutôt que modifier le shell de l’utilisateur (<code>chsh -s /bin/zsh</code>) qui empêcherait l’activation automatique de byobu, il suffit d’ajouter les lignes suivantes à <code>$HOME/.byobu/.tmux.conf</code> pour changer l’interpréteur de commandes du programme :</p>
<pre><code>set -g default-shell /usr/bin/zsh
set -g default-command /usr/bin/zsh
</code></pre>
<p>Installation de <a href="https://github.com/sorin-ionescu/prezto">Prezto</a>, un framework de configuration de ZSH. Lancer <code>zsh</code> et ne pas créer de fichier de configuration (touche <code>q</code>)</p>
<pre><code>zsh
</code></pre>
<p>Copier le répertoire de <code>prezto</code> :</p>
<pre><code>git clone --recursive https://github.com/sorin-ionescu/prezto.git &quot;${ZDOTDIR:-$HOME}/.zprezto&quot;
</code></pre>
<p>Activer <code>prezto</code> pour mon profil utilisateur :</p>
<pre><code>setopt EXTENDED_GLOB
for rcfile in &quot;${ZDOTDIR:-$HOME}&quot;/.zprezto/runcoms/^README.md(.N); do
  ln -s &quot;$rcfile&quot; &quot;${ZDOTDIR:-$HOME}/.${rcfile:t}&quot;
done
</code></pre>
<h1 id="etherpadlite">Etherpad Lite</h1>
<p><img src="https://camo.githubusercontent.com/9ca4b9b988b8eaf457d1f7f32cbce055140c0948/687474703a2f2f692e696d6775722e636f6d2f7a5972476b67332e676966" alt=""></p>
<p>Installation des dépendances :</p>
<pre><code>apt install gzip git curl python libssl-dev pkg-config build-essential
</code></pre>
<p>Déploiement d’<a href="https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">Etherpad Lite comme service</a>, dans son propre dossier avec son propre <code>user</code>/<code>group</code>.</p>
<pre><code>adduser --system --home=/srv/etherpad-lite --group etherpad-lite
</code></pre>
<p>Il faut utiliser le compte adéquat pou r la suite : pour ce faire, faire précéder les commandes suivantes de :</p>
<pre><code>sudo su etherpad-lite -s /bin/bash -c &quot;ici la commande entre guillemets&quot;
</code></pre>
<p>Clônage du répertoire à la racine du dossier nouvellement créé.</p>
<pre><code>cd /srv/etherpad-lite;
git clone git://github.com/ether/etherpad-lite.git .
</code></pre>
<p>Copier le fichier de configuration.</p>
<pre><code>cp /srv/etherpad-lite/settings.json.template /srv/etherpad-lite/settings.json
</code></pre>
<p>Configuration du backend (j’aime bien utiliser <code>redis</code> qui me nécessite aussi peu de configuration qu’un fichier SQLite pour des performances plus hautes) :</p>
<pre><code>apt install redis-server
</code></pre>
<p>Dans <code>/srv/etherpad-lite/settings.json</code> :</p>
<pre><code>//the type of the database
&quot;dbType&quot; : &quot;redis&quot;,
//the database specific settings
&quot;dbSettings&quot; : {
                 &quot;host&quot;    : &quot;localhost&quot;,
                 &quot;port&quot;    : 6379,
                 &quot;database&quot;: 1
               },
</code></pre>
<p>Dépendances optionnelles pour l’import/export :</p>
<pre><code>apt install tidy libreoffice-writer
</code></pre>
<p>Dans <code>/srv/etherpad-lite/settings.json</code> :</p>
<pre><code>/* This is the absolute path to the soffice executable. Setting it to null, disables LibreOffice exporting.
 LibreOffice can be used in lieu of Abiword to export pads */
&quot;soffice&quot; : &quot;/usr/bin/soffice&quot;,

/* This is the path to the Tidy executable. Setting it to null, disables Tidy.
 Tidy is used to improve the quality of exported pads*/
&quot;tidyHtml&quot; : &quot;/usr/bin/tidy&quot;,
</code></pre>
<p>Documentation :</p>
<ul>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#nginx">How to put Etherpad Lite behind a reverse Proxy</a>, Nginx en l’occurence ;</li>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">How to deploy Etherpad Lite as a service</a> ;</li>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-Redis">How to use Etherpad Lite with Redis</a>.</li>
</ul>
<h1 id="ghost">Ghost</h1>
<blockquote>
<p><a href="https://ghost.org/">Ghost</a> is a platform dedicated to one thing: Publishing. It’s beautifully designed, completely customisable and completely Open Source. Ghost allows you to write and publish your own blog, giving you the tools to make it easy and even fun to do.</p>
</blockquote>
<p>Pareillement qu’Etherpad Lite ci-dessus, je déploie Ghost comme un service, ayant son propre utilisateur et groupe.</p>
<pre><code>adduser --system --home=/srv/ghost --group ghost
</code></pre>
<p>Comme pour <code>etherpad</code>, il faut utiliser le compte adéquat : pour ce faire, faire précédér les commandes suivantes de :</p>
<pre><code>sudo su ghost -s /bin/bash -c &quot;ici la commande entre guillemets&quot;
</code></pre>
<p>Dans le dossier de l’utilisateur <code>ghost</code>, je décompresse l’archive de la dernière version disponible :</p>
<pre><code>cd /srv/ghost;
wget http://ghost.org/zip/ghost-latest.zip;
unzip -uo ghost-latest.zip -d /srv/ghost;
rm ghost-latest.zip
</code></pre>
<p>Ne reste plus qu‘à installer le tout.</p>
<pre><code>npm install --production
</code></pre>
<p>Pour la configuration de Ghost, je renvoie à la documentation :</p>
<ul>
<li><a href="http://docs.ghost.org/fr/installation/linux/">Installation de Ghost : Installation sur Linux</a></li>
<li><a href="http://docs.ghost.org/fr/installation/deploy/#supervisor-%28http://supervisord.org/%29">Faire tourner en permanence Ghost : Supervisor</a></li>
<li><a href="http://support.ghost.org/config/">Configuring Ghost</a></li>
<li><a href="http://support.ghost.org/how-to-upgrade">How to upgrade Ghsost</a></li>
</ul>
<p>Pour aller plus loin :</p>
<ul>
<li><a href="https://postblue.info/isso-un-serveur-de-commentaires-similaire-a-disqus/">Isso, un serveur de commentaires</a> à intégrer à Ghost</li>
<li><a href="https://postblue.info/supervisor-node/">Supervisor tes nodes</a>, liste de services pouvant être lancés avec <code>supervisor</code></li>
<li><a href="https://postblue.info/message-de-service/">Message de service</a> annonçant mon passage à Ghost en novembre 2013</li>
</ul>
<h1 id="owncloud">ownCloud</h1>
<blockquote>
<p><a href="https://owncloud.org/">ownCloud</a> gives you universal access to your files through a web interface or WebDAV. It also provides a platform to easily view &amp; sync your contacts, calendars and bookmarks across all your devices and enables basic editing right on the web. Installation has minimal server requirements, doesn’t need special permissions and is quick. ownCloud Server is extendable via a simple but powerful API for applications and plugins.</p>
</blockquote>
<p>Pour plus de facilité quant à l’installation d’ownCloud, j’utilise le dépôt. Installer la clé :</p>
<pre><code>wget https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O- | apt-key add -
</code></pre>
<p>Créer <code>/etc/apt/source.list.d/owncloud.list</code> avec le dépôt :</p>
<pre><code>sh -c &quot;echo ’deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /’ &gt;&gt; /etc/apt/sources.list.d/owncloud.list&quot;
</code></pre>
<p>Mettre à jour les dépôts et installer <code>owncloud</code> :</p>
<pre><code>apt-get update
apt-get install owncloud
</code></pre>
<p>Documentation :</p>
<ul>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/installation/nginx_configuration.html">Nginx Configuration</a></li>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/performance_tuning/index.html">Server Tuning &amp; Performance Tips</a></li>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/caching_configuration.html">Configuring Memory Caching</a></li>
</ul>
<p>Pour une première salve, ça suffira je crois. N’hésitez pas à commenter si je dois préciser un élément de configuration, je verrai si j’ai le temps pour compléter.</p>
</div>


feed_id: 598066730b34a039365e0d76
title: Liste d’extensions Firefox
uri: 2017-08-01-Liste-d-extensions-Firefox
url: https://postblue.info/liste-des-extensions-firefox-que-jutilise/
content:
<div class="kg-card-markdown"><p>Petite <a href="https://postblue.info/tag/liste">liste</a> simple et rapide des extensions ajoutées à mon installation de <a href="https://www.mozilla.org/fr/firefox/new/">Firefox</a>, sur une distribution <a href="https://www.archlinux.org/">Arch Linux</a> avec le gestionnaire de bureau <a href="https://www.gnome.org">GNOME</a>.</p>
<p>N'hésitez pas à me conseiller l'une ou l'autre extension que je ne connaitrais pas.</p>
<h1 id="arcfirefoxtheme">Arc Firefox Theme</h1>
<p>J’utilise le thème <a href="https://github.com/horst3180/arc-theme">Arc</a> sous GNOME<sup class="footnote-ref"><a href="https://postblue.info/liste-des-extensions-firefox-que-jutilise/#fn1" id="fnref1">[1]</a></sup>, et donc aussi le thème développé pour le navigateur (parce que j'aime la régularité du style des applications).</p>
<p><img src="https://camo.githubusercontent.com/2634644b8361e5f43292bb926468cf6dc74bdaf8/687474703a2f2f692e696d6775722e636f6d2f556a4a616245332e706e67" alt="Arc Firefox"></p>
<blockquote>
<p>Choisir un thème de la collection <a href="https://addons.mozilla.org/fr/firefox/collections/horst3180/a/">Arc Firefox Themes</a> sur le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="eidbelgique">eID Belgique</h1>
<p>Cette extension permet d’utiliser la carte d’identité électronique belge (eID) dans Firefox.</p>
<ol>
<li>Outre cette extension, il faut <a href="http://eid.belgium.be/fr">installer le middleware eid-mw</a> sur sa machine (et il y a même des dépôts pour l'<a href="http://eid.belgium.be/fr/utiliser_votre_eid/installer_le_logiciel_eid/linux">installation sur des machines GNU / Linux</a>).</li>
<li>Le lecteur de carte d’identité électronique doit être connecté à la machine avant le lancement de Firefox pour que l'extension fonctionne.</li>
</ol>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/belgium-eid/">eID Belgique</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="gnotifier">GNotifier</h1>
<p>GNotifier intègre les notifications de Firefox et Thunderbird au système de notification natif de GNOME (mais sensément de tout gestionnaire de bureau sous Linux utilisant <code>libnotify</code>) et de Windows (8 et 10). Il remplace le gestionnaire de pop-up par défaut dans Firefox pour l'intégrer au bureau,  pour :</p>
<ul>
<li>la complétion de téléchargement, avec la possibilité de sélectionner l'action par défaut au clic : ouvrir le document ou le dossier parent ;</li>
<li>les nouveaux éléments dans les flux RSS ;</li>
<li>les sites/services envoyant des notifications, comme <a href="http://freshrss.org/">FreshRSS</a><sup class="footnote-ref"><a href="https://postblue.info/liste-des-extensions-firefox-que-jutilise/#fn1" id="fnref1:1">[1:1]</a></sup> ou <a href="https://movim.eu/">Movim</a>.</li>
</ul>
<p><img src="https://camo.githubusercontent.com/4102e7ccbd322f0561de3f26c6d8c85161c29892/68747470733a2f2f7261772e6769746875622e636f6d2f6d6b696f6c2f474e6f7469666965722f6d61737465722f6d6973632f676e6f6d65322e706e67" alt="GNotifier"></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/gnotifier/">GNotifier</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="htitle">HTitle</h1>
<p>HTitle permet de cacher la barre de titre de Firefox quand la fenêtre est maximisée, et donc de gagner de l'espace vertical pour afficher le plus de contenu possible à l'écran<sup class="footnote-ref"><a href="https://postblue.info/liste-des-extensions-firefox-que-jutilise/#fn1" id="fnref1:2">[1:2]</a></sup>. Le développement de ce module est malheureusement abandonné, mais il fonctionne encore sans souci sur une installation récente de Firefox.</p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/htitle/">HTitle</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="ublockorigin">uBlock Origin</h1>
<p>uBlock est une extension qui bloque les publicités et les pisteurs, tout simplement et avec légèreté (mémoire et processeur).</p>
<p><img src="media/868c190d.157572.png" data-original-source="https://addons.cdn.mozilla.net/user-media/previews/full/157/157572.png" alt=""></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/ublock-origin/">uBlock Origin</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="greasemonkey">Greasemonkey</h1>
<p>Un gestionnaire de scripts utilisateur pour Firefox, utilisé en mon cas pour le script <a href="https://reek.github.io/anti-adblock-killer/">Anti-Adblock Killer</a>.</p>
<p><img src="media/31173129.header.png" data-original-source="https://raw.githubusercontent.com/reek/anti-adblock-killer/gh-pages/images/header.png" alt=""></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/greasemonkey/">Greasemonkey</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="httpseverywhere">HTTPS Everywhere</h1>
<p>Module issu de la collaboration entre le <a href="https://www.torproject.org/">Tor Project</a> et l'<a href="https://eff.org/">Electronic Frontier Foundation</a>, <a href="https://www.eff.org/fr/HTTPS-everywhere">HTTPS Everywhere (site officiel du projet)</a> active une redirection automatique, côté navigateur, vers le contenu accessible en HTTPS des sites visités, sur base d'une base de donnée locales.</p>
<p><img src="media/a0473871.https-everywhere2.jpg" data-original-source="https://www.eff.org/files/https-everywhere2.jpg" alt="HTTPS Everywhere"></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/https-everywhere/">HTTPS Everywhere</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="privacybadger">Privacy Badger</h1>
<p><a href="https://www.eff.org/fr/privacybadger">Privacy Badger (site officiel du projet)</a> bloque (en apprenant, pas tout tout de suite) les scripts espions et les pisteurs.</p>
<p><img src="media/db46abdf.badger-fpg-1b.jpg" data-original-source="https://www.eff.org/files/2014/05/01/badger-fpg-1b.jpg" alt="Privacy Badger"></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/privacy-badger-firefox/">Privacy Badger</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="passff">PassFF</h1>
<p>Cette extension n'est rien de moins qu'un gestionnaire de mots de passe. Ou plutôt, c'est une extension qui permet à Firefox de dialoguer avec <code>pass</code>, un <a href="https://www.passwordstore.org/">password store</a>, directement depuis le navigateur.</p>
<p><code>pass</code> est un gestionnaire de mots de passe qui se base sur <code>git</code> pour collectionner les changements apportés à sa base de données, et GPG pour chiffrer les mots de passe.</p>
<p><img src="media/5c49da95.137958.png" data-original-source="https://addons.cdn.mozilla.net/user-media/previews/full/137/137958.png" alt="PassFF"></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/passff/">PassFF</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="pureurl">Pure URL</h1>
<p>Cette extension supprime des URLs de la barre d'adresse les éléments suivants :</p>
<ul>
<li><code>utm_source</code>, <code>utm_medium</code>, <code>utm_term</code>, <code>utm_content</code> et <code>utm_campaign</code>, traçage pour Google Analytics ;</li>
<li><code>yclid</code>, traçage pour Yandex.Metrica ;</li>
<li><code>feature</code>, pollution de l'URL sur YouTube ;</li>
<li><code>fb_action_ids</code>, <code>fb_action_types</code>, <code>fb_ref</code>, <code>fb_source</code>, <code>action_object_map</code>, <code>action_type_map</code>, <code>action_ref_map</code>, traçage pour Facebook ;</li>
<li><code>ref</code>, <code>fref</code>, <code>hc_location</code>, pollution de l'URL sur Facebook ;</li>
<li><code>ref_</code>, pollution de l'URL sur IMDB.</li>
</ul>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/pure-url/">Pure URL</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<h1 id="decentraleyes">Decentraleyes</h1>
<p>Decentraleyes protège du pistage lié à l'accès à des contenus centralisés. Du coup, cette extension accélère de nombreuses requêtes en les servant localement, allégeant la charge des sites (qui ne vont plus s'alimenter de celles hébergées sur l'un ou l'autre CDN, <a href="https://postblue.info/ugly-cdn/">dont j'ai déjà dit tout le mal que je pensais</a>). Elle complète les bloqueurs de contenus habituels.</p>
<p><img src="https://addons.cdn.mozilla.net/user-media/previews/full/137/137406.png?modified=1402852866" alt="Decentraleyes: evade content delivery networks without breaking websites."></p>
<blockquote>
<p>Installer l'extension <a href="https://addons.mozilla.org/fr/firefox/addon/decentraleyes/">Decentraleyes</a> depuis le site de Modules pour Firefox.</p>
</blockquote>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Voir <a href="https://github.com/chpii/Headerbar">le tutoriel Headerbar sur GitHub</a> pour une petite marche à suivre de l'intégration de Firefox au bureau GNOME avec le thème Adwaita. <a href="https://postblue.info/liste-des-extensions-firefox-que-jutilise/#fnref1" class="footnote-backref">↩︎</a> <a href="https://postblue.info/liste-des-extensions-firefox-que-jutilise/#fnref1:1" class="footnote-backref">↩︎</a> <a href="https://postblue.info/liste-des-extensions-firefox-que-jutilise/#fnref1:2" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
</div>


feed_id: 598066730b34a039365e0d75
title: Passer à systemd sur un VPS OpenVZ avec Debian Jessie
uri: 2017-08-01-Passer-à-systemd-sur-un-VPS-OpenVZ-avec-Debian-Jessie
url: https://postblue.info/upstart-systemd-sysvinit-openvz-debian-jessie/
content:
<div class="kg-card-markdown"><blockquote>
<p>Attention : je n'ai pris aucune précaution, je ne pourrais être tenu pour responsable de quoique ce soit. Je suis d'ailleurs tout à fait irresponsable.</p>
</blockquote>
<p>L'un des VPS que j'administre utilisait <code>upstart</code> comme système d'initialisation, parce que le noyau OpenVZ n'a longtemps pas supporté <code>systemd</code>, ou inversément <code>systemd</code> ne supportait pas les vieux noyaux d'OpenVZ, toujours est-il que la cohabitation était controversée.</p>
<p>Le noyau d'OpenVZ est basé sur Linux 2.6.32. 2009, tout de même ! C'est le noyau qui propulsa à leur époque (2009) Ubuntu 10.04 LTS « Lucid Lynx » et Debian 6.0 « Squeeze ». Or, Debian 8.0 « Jessie », sortie en avril 2015, intégra le noyau Linux 3.16, et passa de <code>sysvinit</code> à <code>systemd</code> comme système d'initialisation par défaut.</p>
<p>Donc les services, scripts, etc, sont par défaut écrits pour fonctionner avec <code>systemd</code>. Et depuis quelques temps, le noyau OpenVZ permet de parler la même langue que <code>systemd</code> (grosso modo). Et j'avais envie de tester le changement, sachant que j'avais transféré ma machine sur un dédié <a href="https://www.kimsufi.com/fr/serveurs.xml">Kimsufi</a>.</p>
<p>Donc, on se lance.</p>
<p>Dans une session SSH, je lance l'installation par <code>aptitude</code>, qui intègre un outil de résolution des conflits et offre des solutions de remplacement en cas d'installation problématique.</p>
<pre><code>aptitude install systemd systemd-sysv
</code></pre>
<p><code>aptitude</code> propose de remplacer <code>upstart</code> par <code>systemd</code> : il suffit d'accepter.</p>
<p>Plus qu'à redémarrer. Le système va se plaindre de ne pas pouvoir utiliser l'<code>init</code> pour lancer la commande <code>reboot</code> proprement (normal, vu qu'on vient d'en changer).</p>
<p>Pour être au minimum propre (ce que je n'ai pas fait), on peut stopper proprement les services chatouilleux, MySQL &amp; co. Puis redémarrer brutalement :</p>
<pre><code>reboot -f
</code></pre>
<p>La connexion est perdue directement. Quelques secondes à attendre avant de relancer une session SSH et tenter de se connecter à la machine.</p>
<ul>
<li>
<p>Connexion établie ? Bravo, tout s'est bien passé ! On peut maintenant balancer <code>systemctl --failed</code> pour voir s'il y a des services défectueux qui trainent sur la machine.</p>
</li>
<li>
<p>Connexion impossible ? <em>Too bad!</em> Vous venez de tuer votre machine qui ne démarrera plus en l'état. Contactez votre hébergeur, réinstallez votre machine, faites vous un thé.</p>
</li>
</ul>
</div>


feed_id: 598066730b34a039365e0d6d
title: ULB connectée 2 : ownCloud
uri: 2017-08-01-ULB-connectée-2-ownCloud
url: https://postblue.info/ulb-connectee-2-owncloud/
content:
<div class="kg-card-markdown"><p>En train de rédiger votre mémoire et vous cherchez un endroit où tout enregistrer compulsivement, besoin d'échanger vos notes de cours ? L’ULB <a href="http://www.ulb.ac.be/actulb/index.php?d=13&amp;article=73">met à disposition</a> de sa communauté <a href="https://owncloud.ulb.ac.be/">un service de stockage en ligne basé sur ownCloud</a> avec 4GB d'espace disque disponible.</p>
<blockquote>
<p>Pourquoi confier ses données à n'importe qui dans le monde avec tous les problèmes de confidentialité que cela entraine et aussi de saturation de notre liaison internet alors que nous disposons en interne d'une solution de stockage cloud ? (« <a href="http://www.ulb.ac.be/actulb/index.php?d=13&amp;article=73">OwnCloud ULB</a> » sur Actus RESULB)</p>
</blockquote>
<p><img src="media/97ef5f2e.Capture-du-2016-01-18-12-04-56.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-04-56.png" alt=""></p>
<h1 id="prsentationgnrale">Présentation générale</h1>
<p><a href="https://owncloud.org/">OwnCloud</a> est une solution libre (l’ULB peut modifier le logiciel pour qu'il corresponde à ses besoins) et gratuite (l’ULB n'a pas dû payer de licence) offrant une interface web à un service de stockage très complet.</p>
<p><img src="media/c615281d.Capture-du-2016-01-18-12-08-05.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-08-05.png" alt=""></p>
<p>En somme, l’ULB offre un service ressemblant à Dropbox, mais avec quelques plus :</p>
<ul>
<li>un gestionnaire et éditeur de documents ;</li>
</ul>
<p><img src="media/7a5f5ca9.Capture-du-2016-01-18-12-07-35.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-07-35.png" alt=""></p>
<ul>
<li>un calendrier ;</li>
</ul>
<p><img src="media/07462b9b.Capture-du-2016-01-18-12-09-43.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-09-43.png" alt=""></p>
<ul>
<li>un gestionnaire de contacts (avec ici les membres du <a href="http://phi.ulb.ac.be/">Centre de recherche en philosophie</a> afin de montrer à quoi cela ressemble en fois rempli) ;</li>
</ul>
<p><img src="media/fc295d64.Capture-du-2016-01-18-12-11-51.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-11-51.png" alt=""></p>
<ul>
<li>et enfin un gestionnaire de favoris.</li>
</ul>
<p><img src="media/b074334f.Capture-du-2016-01-18-12-12-41.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-12-41.png" alt=""></p>
<p>Pour naviguer entre les différents services, il faut cliquer sur le lien en haut à gauche de la page, à côté du logo d'ownCloud, indiquant dans quelle application l'on se trouve, afin d'afficher une liste. Il suffit de cliquer et d'attendre que la page charge.</p>
<p><img src="media/06d60a06.Capture-du-2016-01-18-12-20-47.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-20-47.png" alt=""></p>
<h1 id="intgrationdesfichiers">Intégration des fichiers</h1>
<p>Il est possible d'intégrer ownCloud à son navigateur de fichiers, que ce soit sous Windows, Mac OS X ou GNU/Linux, afin de synchroniser ses documents.</p>
<p><img src="media/bf2a21d3.Capture-du-2016-01-18-12-59-10.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-18-12-59-10.png" alt=""></p>
<p>Pour installer le client ownCloud, il suffit de <a href="https://owncloud.org/install/#install-clients">télécharger ici</a> l'installateur approprié à son système d'exploitation et de l'installer, puis de le configurer avec les informations suivantes.</p>
<ul>
<li>Hôte : <a href="https://owncloud.ulb.ac.be">https://owncloud.ulb.ac.be</a>  ;</li>
<li>Utilisateur : son netID ;</li>
<li>Mot de passe : le même que pour le <a href="https://webmail.ulb.ac.be/">webmail</a>, l'<a href="https://uv.ulb.ac.be/">Université Virtuelle</a>, <a href="http://monulb.ulb.be/">Mon ULB</a>, <em>etc</em>.</li>
</ul>
<p>Sur <strong>Android</strong>, plusieurs versions sont disponibles, dont certaines payantes afin de soutenir le projet.</p>
<ul>
<li>sur le <a href="https://play.google.com/store/apps/details?id=com.owncloud.android">Google Play Store</a> pour 0,79€ ;</li>
<li>sur l'<a href="https://www.amazon.com/gp/product/B00944PQMK">Amazon Appstore</a> pour $0,99 ;</li>
<li>ou <strong>gratuitement</strong> <a href="https://f-droid.org/repository/browse/?fdid=com.owncloud.android">sur FDroid</a>.</li>
</ul>
<p>Il existe aussi une version pour <strong>BlackBerry</strong>, gratuitement disponible sur le <a href="https://appworld.blackberry.com/webstore/content/59955931/">BlackBerry World</a>.</p>
<p>Enfin, il existe une application pour <strong>iOS</strong> (iPhone, etc), <a href="https://itunes.apple.com/fr/app/owncloud/id543672169?ls=1&amp;mt=8">disponible dans l'App Store d'Apple</a> pour 0,99€.</p>
<h1 id="intgrationdescontactsetducalendrier">Intégration des contacts et du calendrier</h1>
<p>Pour ajouter une liste de <strong>contacts</strong> à une application permettant d'être synchronisée avec <a href="https://fr.wikipedia.org/wiki/CardDAV">CardDav</a>, il faut récupérer l'URL de partage de son ou ses calendriers.</p>
<p>Pour ne sélectionner qu'un seul calendrier, il suffit de copier le lien après avoir cliqué sur l'icône <em>Lien CalDav</em>, la deuxième sur la ligne du calendrier en partant de la gauche.</p>
<p><img src="media/5c3e9d9d.Capture-du-2016-01-20-11-11-47.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-20-11-11-47.png" alt=""></p>
<p>Pour obtenir l'adresse CalDav principale, il suffit de copier le lien (adresse principale ou adresse pour iOS/OS X, dépendant du système d'exploitation utilisé) obtenu en affichant les préférences des calendriers (roue dentée en bas à gauche de la colonne de gauche).</p>
<p><img src="media/51f26d93.Capture-du-2016-01-20-11-27-14.png" data-original-source="https://postblue.info/content/images/2016/01/Capture-du-2016-01-20-11-27-14.png" alt=""></p>
<p>Le lien CalDav a ce format :</p>
<ul>
<li><code>https://owncloud.ulb.ac.be/remote.php/caldav/</code></li>
<li><code>https://owncloud.ulb.ac.be/remote.php/caldav/principals/netID/</code></li>
</ul>
<p>La manipulation est similaire quant aux contacts. Le lien <a href="https://fr.wikipedia.org/wiki/CardDAV">CardDav</a> a ce format :</p>
<ul>
<li><code>https://owncloud.ulb.ac.be/remote.php/carddav/addressbooks/netID/contacts</code></li>
</ul>
<p>Il suffit ensuite d'alimenter son application bureautique avec l'un ou l'autre lien obtenu de la sorte, si elle supporte la synchronisation Card/CalDav.</p>
<p>Pour un complément d'information, voir ces listes non-exhaustives <a href="https://en.wikipedia.org/wiki/CardDAV#Client-side">des clients CardDav</a> et <a href="https://fr.wikipedia.org/wiki/CalDAV#Client">des clients CalDav</a> . Voici quelques configurations courantes :</p>
<ul>
<li>
<p><a href="https://www.mozilla.org/fr/thunderbird/">Thunderbird</a> (<a href="http://www.ulb.ac.be/wserv2_oratio/oratio?f_context=fiches&amp;f_type=view&amp;noteid=254&amp;language=fr&amp;style=">note pour configurer son adresse email</a> de l'ULB dans Thunderbird) avec l'extension <a href="https://www.mozilla.org/en-US/projects/calendar/">Lightning</a> (calendrier), <a href="http://www.sogo.nu/fr/downloads/frontends.html">SOGo Connector</a> (contacts) et <a href="https://addons.mozilla.org/fr/thunderbird/addon/owncloud-for-filelink/">ownCloud for Filelink</a> (utilisation d'ownCloud pour l'envoi de pièces jointes volumineuses).</p>
</li>
<li>
<p>DAVdroid (disponible <strong>gratuitement</strong> <a href="https://f-droid.org/app/at.bitfire.davdroid">sur FDroid</a>, pour 3,33 € <a href="https://play.google.com/store/apps/details?id=at.bitfire.davdroid">sur le Play Store</a>) pour un smartphone Android : se connecter avec une URL (<a href="https://owncloud.ulb.ac.be">https://owncloud.ulb.ac.be</a>), et un nom d'utilisateur (le netID). Sélectionner les carnets d'adresses et les agendas à synchroniser, et la liste des tâches si un gestionnaire de tâches est installé.</p>
<blockquote>
<p>If you want to use task synchronization, please install the OpenTasks app [<a href="https://f-droid.org/app/org.dmfs.tasks">F-Droid</a>, <a href="https://play.google.com/store/apps/details?id=org.dmfs.tasks">Play Store</a>] before installing/upgrading DAVdroid.</p>
</blockquote>
<blockquote>
<p>Otherwise, DAVdroid won't get permission to access the OpenTasks app. In some cases you may have to reboot your phone after installing the tasks app.</p>
</blockquote>
</li>
</ul>
<p>Il ne manquerait plus que les contacts enregistrés puissent être partagés avec <a href="https://webmail.ulb.ac.be/">le Carnet d'adresses de Roundcube</a>.</p>
</div>


feed_id: 598066730b34a039365e0d73
title: Compilation distribuée sur un réseau local
uri: 2017-08-01-Compilation-distribuée-sur-un-réseau-local
url: https://postblue.info/compilation-distribuee-sur-un-reseau-local/
content:
<div class="kg-card-markdown"><p>Suite à <a href="http://postblue.info/arch-linux-arm-raspberry-pi-2/#isso-326">la discussion avec Jeko concernant Arch Linux ARM sur un Raspberry Pi 2</a> et la possibilité d'utiliser Ghost — sachant que Ghost fonctionne idéalement avec Node.js 0.10 et que ne sont disponibles que les versions 0.8 (ne fonctionne pas) et 0.12 (support instable pour le moment) pour Arch Linux ARM —, j'ai essayé de compiler Node.js en version 0.10 sur mon Raspberry Pi 2 (sans succès pour le moment, on ne s'improvise pas mainteneur de projet).</p>
<ol>
<li>Mes premières compilations échouaient.</li>
<li>Ça prend du temps de compiler sur un Raspberry Pi, même un deuxième du nom.</li>
<li>Pour vérifier que mon PKGBUILD (recette de compilation pour Arch Linux qui intègre le produit de celle-ci au gestionnaire de paquets) était correct, je relançais à chaque fois une compilation.</li>
<li>Ça prend du temps de compiler sur un Raspberry Pi…</li>
</ol>
<h1 id="matreraspberrypi2">Maître : Raspberry Pi 2</h1>
<p>J'allais donc certainement y passer des jours à coups d'essai-erreur, corriger le PKGBUILD, tester, recorriger suite à une nouvelle erreur. Mais en jetant un œil au fichier de configuration <code>/etc/makepkg.conf</code> — <code>makepkg</code> étant l'utilitaire permettant de construire les paquets sur base d'un PKGBUILD sous Arch Linux —, je vis qu'il était possible de distribuer la compilation sur mon réseau local : les machines sur mon réseau allaient pouvoir servir à compiler pour le Raspeberry et ainsi lui alléger la tâche. Le programme mentionné dans ledit fichier de configuration est <a href="https://wiki.archlinux.org/index.php/Distcc">distcc</a>.</p>
<pre><code>#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc color !ccache check !sign)
#  A negated environment option will do the opposite of the comments below.
#
#-- distcc:   Use the Distributed C/C++/ObjC compiler
#-- color:    Colorize output messages
#-- ccache:   Use ccache to cache compilation
#-- check:    Run the check() function if present in the PKGBUILD
#-- sign:     Generate PGP signature file
#
BUILDENV=(distcc color ccache check !sign)
</code></pre>
<p>Pour activer la distribution de la compilation du code, il faut donc enlever le point d'exclamation devant <code>distcc</code>. J'en ai aussi profité pour activer le cache de compilation <code>ccache</code>. Du coup, j'ai dû installer les deux programmes :</p>
<pre><code>pacman -Sy distcc ccache --needed
</code></pre>
<p>Deux sections supplémentaires doivent être peuplées dans <code>/etc/makepkg.conf</code> :</p>
<ol>
<li>
<p>MAKEFLAGS, les arguments qui seront envoyés à la commande <code>make</code>. Où « X » est la somme du nombre maximal de <em>threads</em> par serveur (machine pouvant exécuter la compilation).</p>
<pre><code> #-- Make Flags: change this for DistCC/SMP systems
 MAKEFLAGS=&quot;-jX&quot;
</code></pre>
</li>
<li>
<p>DISTCC_HOSTS, l'argument à ajouter sont les adresses IP des serveurs qui vont accueillir la compilation. Chaque adresse est suivie d'une barre oblique (&quot;/&quot;) et du nombre de tâches qui pourront être lancées sur ce serveur. De plus, il est une pratique courante de définir le nombre de tâches par machine comme la somme du nombre de cœurs physiques (cœurs par socket) et du nombre de <em>threads</em> par cœurs (dans le cadre de la technologique <em>hyper-threading</em>), le tout plus 1. Sur l'<a href="http://postblue.info/materiel/#ultrabookkarl">Intel i7-3667U de Karl</a>, la commande <code>nproc</code> me renvoie la valeur 4, qui est la première somme. Je déclarerai 5 tâches dans la configuration de <code>distcc</code>. Sur mon réseau local, <a href="http://postblue.info/materiel/#ultrabookkarl">karl</a> a l'adresse fixe 192.168.1.69. Ma configuration de <code>distcc</code> sera donc la suivante :</p>
<pre><code> #-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
 #-- specify a space-delimited list of hosts running in the DistCC cluster.
 DISTCC_HOSTS=&quot;192.168.1.69/5&quot;
</code></pre>
</li>
</ol>
<p>Documentation concernant la compilation distribuée :</p>
<ul>
<li><a href="http://archlinuxarm.org/developers/distributed-compiling">Distributed Compiling</a> par Arch Linux ARM ;</li>
<li><a href="https://wiki.archlinux.org/index.php/Distcc#Configuration">Distcc - Configuration</a> sur ArchWiki.</li>
</ul>
<h1 id="esclave">Esclave :</h1>
<p>Pour pouvoir compiler des paquets pour architecture ARM (armv7l dixit <code>lscpu</code>) sur ma machine x86_64 (c'est-à-dire d'une architecture pour une autre, soit de la <em><a href="https://fr.wikipedia.org/wiki/Compilateur#Compilation_crois.C3.A9e">compilation croisée</a></em>), j'ai installé <a href="https://github.com/WarheadsSE/PKGs/tree/master/distccd-alarm">distccd-alarm</a> sur la machine qui « aidera » le RPi à compiler, installation qui permet d'automatiser rapidement le déploiement. Il suffit de </p>
<ul>
<li>
<p>Cloner le dépôt</p>
<pre><code>  git clone https://github.com/WarheadsSE/PKGs.git
</code></pre>
</li>
<li>
<p>Aller au dossier contenant <code>distccd-alarm</code></p>
<pre><code>  cd PKGs/distccd-alarm
</code></pre>
</li>
<li>
<p>Lancer la compilation et l'installation des paquets</p>
<pre><code>  makepkg -sric
</code></pre>
<p>Où :</p>
<ul>
<li><code>-s</code> / <code>--syncdeps</code> installe les dépendances manquantes ;</li>
<li><code>-r</code> / <code>--rmdeps</code> désinstalle les dépendances superflues après compilation ;</li>
<li><code>-i</code> / <code>--install</code> installe le paquet si la compilation s'est bien passée ;</li>
<li><code>-c</code> / <code>--clean</code> nettoie le dossier de compilation après celle-ci.</li>
</ul>
</li>
</ul>
<p>Cela installe trois paquets, <code>distccd-alarm-armv{5,6h,7h}</code>, pour plusieurs types d'architecture ARM. Celle qui m'intéresse pour le Raspberry Pi 2 est l'ARMv7.</p>
<p>Plusieurs choses à savoir pour déployer cela, donc </p>
<ul>
<li>
<p>Les fichiers de configuration des trois paquets se trouvent dans le dossier <code>/etc/conf.d/</code> : <code>/etc/conf.d/distccd-armv{5,6h,7h}</code>. J'y autorise tout mon réseau local à dialoguer avec ma machine :</p>
<pre><code>  PATH=/usr/local/x-tools-armv7h/x-tools7h/arm-unknown-linux-gnueabihf/bin:$PATH
  DISTCC_ARGS=&quot;--user nobody --allow 192.168.1.0/24&quot;
</code></pre>
</li>
<li>
<p>Lancer le processus <code>systemd</code> lié :</p>
<pre><code>  systemctl start distccd-armv{5,6h,7h}.service
</code></pre>
</li>
</ul>
<p>Finalement, il ne reste plus qu'à compiler ses paquets sur le Raspberry Pi. Si le code est en C, C++, Objective C ou Objective C++, il sera compilé par les autres machines, plus puissantes, qui sont déclarées disponibles sur le réseau local.</p>
<p>Documentation concernant la compilation croisée :</p>
<ul>
<li><a href="http://archlinuxarm.org/developers/distcc-cross-compiling">Distcc Cross-Compiling</a> par Arch Linux ARM ;</li>
<li><a href="https://wiki.archlinux.org/index.php/Distcc#Other_architectures">Distcc - Cross Compiling with distcc : Other architectures</a> sur ArchWiki.</li>
</ul>
<h1 id="entestconfigurationavahi">En test : configuration Avahi</h1>
<p>Plutôt que de déclarer des adresses IP fixes, j'aimerais plutôt utiliser les possibilités d'Avahi. Si mon routeur déconne (il déconne souvent) ou si je change d'environnement, je n'ai pas envie de changer chaque adresse IP dans ma configuration, donc de me rappeler de chaque endroit où j'ai modifié cela. Sur le papier, utiliser Avahi avec <code>distcc</code> permet d'utiliser de façon souple les cœurs disponibles, qu'importe le nombre de machines sur le réseau, etc.</p>
<p>Pour ce faire, il faut activer le support d'Avahi par <code>distcc</code> :</p>
<ul>
<li>Sur les machines esclaves, ajouter <code>--zeroconf</code> au serveur <code>distccd-armv{5,6h,7h}.service</code>, donc dans le fichier de configuration <code>/etc/conf.d/distccd-armv{5,6h,7h}</code> si vous utilisez aussi <code>distccd-alarm</code>.</li>
<li>Sur la machine hôte, ajouter la ligne <code>+zeroconf</code> au fichier <code>$HOME/.distcc/hosts</code>.</li>
</ul>
<p>La commande <code>avahi-browse -r _distcc._tcp</code> permet dès lors d'afficher les machines se déclarant sur le réseau local sous Avahi. Par exemple chez moi :</p>
<pre><code>+   eth0 IPv4 distcc@karl                                   Distributed Compiler local
=   eth0 IPv4 distcc@karl                                   Distributed Compiler local
   hostname = [karl.local]
   address = [192.168.1.69]
   port = [3632]
   txt = [&quot;cc_machine=arm-unknown-linux-gnueabihf&quot; &quot;cc_version=5.1.1&quot; &quot;gnuhost=x86_64-unknown-linux-gnu&quot; &quot;distcc=3.2rc1&quot; &quot;cpus=4&quot; &quot;txtvers=1&quot;]
</code></pre>
<p>On voit donc que la machine « karl » annonce qu'elle a 4 cœurs de CPU a « prêter » pour compiler.</p>
<p>Je dois encore parfaire cette configuration chez moi. Si le serveur de compilation distribuée semble pourtant bien configuré, du côté de la machine maîtresse cela semble cafouiller, puisqu'elle n'arrive pas à déléguer la compilation aux autres machines sur le réseau.</p>
<p>Documentation sur la distribution de la compilation via Avahi :</p>
<ul>
<li><a href="http://0pointer.net/blog/projects/avahi-distcc.html">Avahi/Zeroconf patch for distcc updated</a></li>
<li><a href="http://diogogomes.com/2007/08/21/distcc-avahi/">DISTCC + AVAHI</a></li>
<li><a href="https://wiki.archlinux.org/index.php/Distcc#Standalone">Distcc - Configuration - Master - Standalone</a> sur ArchWiki.</li>
</ul>
</div>


feed_id: 598066730b34a039365e0d72
title: Isso : un serveur de commentaires similaire à Disqus
uri: 2017-08-01-Isso-un-serveur-de-commentaires-similaire-à-Disqus
url: https://postblue.info/isso-un-serveur-de-commentaires-similaire-a-disqus/
content:
<div class="kg-card-markdown"><p>L’absence de solutions efficaces d'hébergement de commentaires m'avait mené à <a href="http://postblue.info/sans-commentaire/">fermer les commentaires</a> sur mon blog, mode cyclique dans la blogosphère francophone.</p>
<p>Il m'était possible d'avoir recours à un service du genre de Disqus : j'avais d'ailleurs essayé ce dernier pour presque immédiatement l'abandonner. La liste de griefs à l'encontre de tels services est longue comme le bras et rejoint une partie <a href="http://postblue.info/ugly-cdn/">des critiques</a> m'ayant mené à la tenue d'un <em>fork</em> du thème utilisé ici : centralisation des contenus, dépendance à un tiers, vente de données, traçage des lecteurs, absence de maîtrise sur le service, absence de consentement de la part du lecteur concernant le recours à un service commercial qui lui serait imposé, la liste s'étend à n'en plus finir.</p>
<p>Cependant, un service comme Disqus permet d'intégrer des commentaires à un moteur de blog statique qui n'intègre pas une telle fonctionnalité (comme Ghost déployé ici ou <a href="http://jekyllrb.com/">Jekyll</a> pour ne citer que ceux auxquels je me suis essayé). Les commentaires sont toujours-déjà exportés, leur intégration peut suivre plus ou moins aisément les changements de moteur de blog pour peu que l'adresse des articles ne soit pas complètement chamboulée.</p>
<p>Bref, les avantages d'une externalisation du service de commentaires par rapport au moteur de blog est intéressant — imparable pour moi qui maintenant utilise Ghost.</p>
<p><img src="media/9128cbb1.isso_demo.png" data-original-source="https://postblue.info/content/images/2015/07/isso_demo.png" alt="Ich schrei sonst!"></p>
<p>C'est ainsi que j'ai trouvé mon bonheur avec <a href="http://posativ.org/isso/">Isso</a> — <a href="http://postblue.info/message-de-service/#isso-270">merci Neros</a> —, un service léger que j'ai pu <a href="http://posativ.org/isso/docs/install/">installer en quelques minutes</a> sur mon serveur.</p>
<p>Isso est un serveur de commentaires léger écrit en Python et en Javascript. L'évolution des fonctionnalités est appréciable, le support est très sympathique, et même si c'est un peu spartiate pour le moment (pas encore d'interface d'administration des commentaires, je valide chaque commentaire par retour de mail), ça fait très bien son boulot.</p>
<p>J'utilise un processus <code>supervisor</code> pour contrôler ce service.</p>
<pre><code>[program:isso]
command = /path/to/isso/bin/isso -c /path/to/isso/isso.conf run
directory = /path/to/isso
user = isso
autostart = true
autorestart = true
stdout_logfile = /var/log/supervisor/isso.log
stderr_logfile = /var/log/supervisor/isso_err.log
</code></pre>
<p>Pour mettre à jour, il est possible de composer un <code>alias</code> à ajouter au fichier de configuration de Bash ou d'une alternative à ce dernier (<code>alias update-isso='...'</code>)</p>
<pre><code>cd /path/to/isso; ./bin/pip install --upgrade isso
</code></pre>
<p>Puis, redémarrer le processus <code>supervisor</code>.</p>
<pre><code>supervisorctl restart isso
</code></pre>
<p><strong>N.B. :</strong> Le thème que j'utilise affiche le dernier article en page de garde. Or, Isso utilise l'URL relatif de la page visitée pour servir les commentaires adéquats, créant ainsi une différence entre l'article repris en page de garde et son URL effectif. Pour corriger cela, il faut modifier le code d'intégration comme suit :</p>
<pre><code>&lt;section id=&quot;isso-thread&quot; data-isso-id=&quot;{{url relative=&quot;true&quot;}}&quot;&gt;&lt;/section&gt;</code></pre>
</div>


feed_id: 598066730b34a039365e0d70
title: Du nom des machines
uri: 2017-08-01-Du-nom-des-machines
url: https://postblue.info/du-nom-des-machines/
content:
<div class="kg-card-markdown"><p>Alors que pendant longtemps je n’avais prêté qu’une attention minimale au baptême de mes jouets – électroniques ou non –, il s’agit maintenant d’une étape importante dans mon processus d’<a href="http://postblue.info/materiel/">appropriation de la machine</a>.</p>
<p>Tout commença par mon premier ordinateur fixe, acheté de mes deniers accumulés : je l’appelai <strong>Maurice</strong>, référence à un jeu de mots bas-de-plafond selon lequel « <em>Alan</em> (l’écran) <em>is Maurice’s head</em> », du nom de <a href="https://fr.wikipedia.org/wiki/Alanis_Morissette">la chanteuse canadienne</a>. Je l’appellerai bien plus tard <strong>Maelwas</strong>, nom celtique dont serait issu le prénom du personnage de <a href="https://fr.wikipedia.org/wiki/M%C3%C2%A0%A9%C2%A0l%C3%C2%A0%A9agant">Méléagant</a>, puis enfin <strong>Giordano</strong> (pour <a href="https://fr.wikipedia.org/wiki/Giordano_Bruno">Bruno</a>), auquel j’ai été initié par la lecture de <em>Du monde clos à l'univers infini</em> d’Alexandre Koyré.</p>
<p>Mon premier netbook, <a href="http://postblue.info/linux-compaq-mini-700ef/">un Compaq Mini 700EF</a>, avait été baptisé par la personne qui m’en avait fait le prêt à long terme : <strong>Donatien Alphonse François</strong> (« DAF » en abrégé), prénom du « divin » <a href="https://fr.wikipedia.org/wiki/Donatien_Alphonse_Fran%C3%A7ois_de_Sade">Marquis de Sade</a> que je lui laissai.</p>
<p>Je poursuivis les références aux écrivains, penseurs, etc. en appelant mon premier serveur <strong>Antonin</strong>, pour l’écrivain <a href="https://fr.wikipedia.org/wiki/Antonin_Artaud">Antonin Artaud</a>.</p>
<p>Mon second netbook, <a href="http://postblue.info/arch-linux-ssd-lvm-gpt/">un Samsung N210</a>, pris le prénom du mathématicien, logicien et philosophe allemand : <strong>Gottlob</strong> <a href="https://fr.wikipedia.org/wiki/Gottlob_Frege">Frege</a>.</p>
<p>En référence à son <em>Mode d’existence des objets techniques</em>, je baptisai tardivement mon premier smartphone <strong>Gilbert</strong>, pour <a href="https://fr.wikipedia.org/wiki/Gilbert_Simondon">Gilbert Simondon</a>. Mon smartphone actuel a été baptisé du prénom de la philosophe des sciences <strong>Donna</strong> <a href="https://fr.wikipedia.org/wiki/Donna_Haraway">Haraway</a>, marquant enfin l’apparition d’une femme.</p>
<p>Mon second serveur, sur lequel sont encore hébergés la plupart de mes services, a quant à lui le prénom du philosophe et théologien danois <a href="https://fr.wikipedia.org/wiki/S%C3%B8ren_Kierkegaard">Søren Kierkegaard</a>, translittéré en <strong>Soeren</strong> (<code>ˈzøːr ̩n</code>). Même si j’ai dû repartir de zéro plusieurs fois pour l’hébergement de mes services, le prénom a survécu aux multiples (ré)installations, <a href="http://postblue.info/debian-configuration-vps-minimal/">toujours sur une base Debian</a>.</p>
<p>Vint ensuite mon premier ordinateur portable (un <a href="http://www.fujitsu.com/fr/products/computing/pc/notebooks/lifebook-u772/">Fujitsu Lifebook U772</a>), arborant une belle robe rouge, que j’appelai <strong>Karl</strong>, évidemment, pour <a href="https://fr.wikipedia.org/wiki/Karl_Marx">Marx</a>.</p>
<p>Puis enfin mes deux derniers achats : des <a href="https://www.raspberrypi.org/products/raspberry-pi-2-model-b/">Raspberry Pi 2 Model B</a>, dont j’ai déjà présenté <a href="http://postblue.info/arch-linux-arm-raspberry-pi-2/">l’installation sous Arch Linux ARM</a> de l’un et qui s’appelle <strong>Fernand</strong>, pour <a href="https://fr.wikipedia.org/wiki/Fernand_Deligny">Fernand Deligny</a> que je lis dans le cadre de mon mémoire. L’autre s’appelle <strong>Theodor</strong>, pour le philosophe et sociologue allemand <a href="https://fr.wikipedia.org/wiki/Theodor_W._Adorno">Theodor Adorno</a>, fondateur avec <a href="https://fr.wikipedia.org/wiki/Max_Horkheimer">Max Horkeimer</a> du concept d’<a href="http://www.persee.fr/web/revues/home/prescript/article/comm_0588-8018_1964_num_3_1_993">industriel culturelle</a> : ce Raspberry me sert de centre multimédia greffé à un écran de télévision, tournant sous <a href="https://fr.wikipedia.org/wiki/Theodor_W._Adorno">OSMC</a>.</p>
<p>Mais en vrac il y a aussi : <strong>Sharon</strong> (<a href="https://fr.wikipedia.org/wiki/Num%C3%C2%A0%A9ro_huit_%28Battlestar_Galactica%29">personnage de Battlestar Galactica</a> – attention, <em>spoil</em>), <strong>Immanuel</strong> (<a href="https://fr.wikipedia.org/wiki/Emmanuel_Kant">Kant</a>), <strong>Gottfried</strong> (<a href="https://fr.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz">Leibniz</a>), <strong>Arthur</strong> (<a href="https://fr.wikipedia.org/wiki/Arthur_Schopenhauer">Schopenhauer</a>)… De plus, ma tendance à prénommer les machines que j’utilise souvent comme des philosophes, des écrivain·e·s s’est dernièrement doublée de celle de donner aux périphériques de stockage des noms de concepts : <em>Dasein</em>, <em>Monade</em>…</p>
<p>Tout va bien.</p>
</div>


feed_id: 598066730b34a039365e0d6f
title: Arch Linux ARM sur un Raspberry Pi 2
uri: 2017-08-01-Arch-Linux-ARM-sur-un-Raspberry-Pi-2
url: https://postblue.info/arch-linux-arm-raspberry-pi-2/
content:
<div class="kg-card-markdown"><p>Je me suis acheté <a href="http://www.ldlc.be/fiche/PB00182827.html">un Raspberry Pi 2 sur LDLC</a>, le site de vente en ligne qui m'a octroyé une ristourne à l'occasion de mon anniversaire. Le délai entre la commande et la réception fut très long, rupture de stock oblige, mais en résumé <strong>je suis hyper-content</strong>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/QM3aQjHPcmA" frameborder="0" allowfullscreen></iframe>
<p>Inutile de revenir une énième fois sur les spécificités matérielles et logicielles de la machine : d'autres s'en sont occupé·e·s avant moi et certainement bien mieux. Oui, ce modèle est <em>tellement plus mieux</em> que ses prédécesseurs. Évidemment, il faut être à l'aise avec la ligne de commande pour utiliser ce type de matériel.</p>
<h1 id="rceptiondupaquetetmontage">Réception du paquet et montage</h1>
<p><img src="media/c8e49b85.20150415_190935.jpg" data-original-source="https://postblue.info/content/images/2015/04/20150415_190935.jpg" alt="Raspberry Pi 2 et Rainbow Pibow"></p>
<p>Comme je l'ai annoncé en préambule : le délai de livraison fut allongé à cause d'une rupture de stock de Raspberry Pi 2 chez LDLC. Qu'à cela ne tienne, je n'étais pas pressé.</p>
<p>J'ai profité de cette commande pour acheter <a href="http://www.ldlc.be/fiche/PB00097464.html">une carte microSD de 16Go</a> sur laquelle installer le système d'exploitation — voir <a href="http://elinux.org/RPi_Distributions">ici une liste des distributions existantes</a> — et <a href="https://www.adafruit.com/products/2084">un boîtier <em>gay-friendly</em> chez Adafruit</a> compatible avec mon modèle de Raspberry Pi.</p>
<p>Le paquet du Raspberry Pi est minimal : une boîte en carton contenant une notice en 16 langues que je ne lirai certainement jamais, et un Raspberry Pi 2 sous film plastique de protection. C'est tout. Celui du Pibow l'est également : emballage en carton recyclé, pas de surabondance de matière première, à l'instar de l'emballage pour les précédentes versions du Raspberry Pi.</p>
<p><img src="media/84c499c7.rainbow_pibow.jpg" data-original-source="https://postblue.info/content/images/2015/04/rainbow_pibow.jpg" alt="Rainbox Pibow v1"></p>
<p>Note : toutes les « couches » du Pibow sont recouvertes d'un côté par un film blanc translucide qu'il faut enlever si vous ne voulez pas que votre Raspberry Pi ressemble à ça (la poussière en plus).</p>
<p><img src="media/5189a2be.20150414_150835.jpg" data-original-source="https://postblue.info/content/images/2015/04/20150414_150835.jpg" alt="Raspberry Pi 2 et Rainbow Pibow"></p>
<p>Du reste, il ne prend que très peu de place, il y en a même encore un peu sous le meuble où à brol / routeur / imprimante pour que je le branche à un disque dur portable qui servira à l'hébergement de données (torrents, sauvegardes, serveur multimédia DLNA/UPnP…). Je suis preneur de conseils concernant un disque dur portable abordable pouvant être allumés longtemps, très longtemps (pas de surchauffe ni de tendance à casser si trop souvent utilisé), avec une bonne alimentation (je n'ai pas envie qu'il brûle au moindre petit problème électrique).</p>
<h1 id="installationdarchlinuxarm">Installation d'Arch Linux ARM</h1>
<p>La distribution semble-t-il la plus utilisée est <a href="http://www.raspbian.org/">Raspbian</a>, une distribution basée sur Debian qui incorpore l'utilitaire de configuration simplifiée <code>raspi-config</code>. J'ai préféré installer <a href="http://archlinuxarm.org/">Arch Linux ARM</a>, suite a un problème de compatibilité de <a href="https://fr.wikipedia.org/wiki/Common_Unix_Printing_System">CUPS</a> entre la version installée sur les ordinateurs (Debian Jessie, Arch Linux) et celle incluse dans Raspbian (Debian Wheezy).</p>
<p>Pour l'installation, il suffit de <a href="http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2">suivre le guide</a>, que je traduis ci-dessous.</p>
<h2 id="vuedensemble">Vue d'ensemble</h2>
<blockquote>
<p>Le Raspberry Pi 2 est le successeur du Raspberry Pi. Il s'appuie sur le modèle original B +, mis à niveau vers 1Go de RAM, et en remplaçant le <em>single-core</em> vieillissant ARMv6l avec un <em>quad-core</em> Cortex-A7 ARMv7l.</p>
</blockquote>
<blockquote>
<p>Le Raspberry Pi 2 mesure 85.60mm × 53.98mm × 17mm (…).</p>
</blockquote>
<h2 id="crationdelacartesdcontenantlesystmedexploitation">Création de la carte SD contenant le système d'exploitation</h2>
<p>Remplacer <strong>sdX</strong> dans les instructions suivantes par le nom de périphérique pour la carte SD tel qu'il apparaît sur votre ordinateur. Si vous ne parvenez pas à effectuer ces manipulations à cause de restrictions de droits sur les périphériques ou les partitions, exécutez-les avec votre compte <code>root</code>.</p>
<ol>
<li>
<p>Lancer <code>fdisk</code> pour partitionner la carte SD :</p>
<pre><code> fdisk /dev/sdX
</code></pre>
</li>
</ol>
<ul>
<li>
<p>À l'invite de <code>fdisk</code>, supprimer les anciennes partitions et en créer une nouvelle :</p>
<ul>
<li>Taper <strong>o</strong>. Cela effacera toutes les partitions sur le disque.</li>
<li>Taper <strong>p</strong> pour lister les partitions. Il devrait ne rester aucune partition.</li>
<li>Taper <strong>n</strong>, puis <strong>p</strong> pour créer une partition primaire, <strong>1</strong> pour la première partition sur le disque, puis appuyer sur <strong>Entrée</strong> pour accepter le premier secteur par défaut, puis entrer <strong>+100M</strong> pour le dernier secteur (c'est-à-dire que la première partition fait 100M à partir du premier secteur).</li>
<li>Taper <strong>t</strong>, puis <strong>c</strong> pour régler le type de la première partition sur <strong>W95 FAT32 (LBA)</strong>.</li>
<li>Taper <strong>n</strong>, puis <strong>p</strong> pour créer une partition primaire, <strong>2</strong> pour la deuxième partition sur le disque, puis appuyer deux fois sur <strong>Entrée</strong> pour accepter les premiers et derniers secteurs par défaut (prendre tout l'espace restant sur le disque).</li>
<li>Écrire la table de partition et sortir de <code>fdisk</code> en tapant <strong>w</strong>.</li>
</ul>
</li>
</ul>
<ol start="2">
<li>
<p>Créer et monter le système de fichiers FAT :</p>
<pre><code> mkfs.vfat /dev/sdX1
 mkdir boot
 mount /dev/sdX1 boot
</code></pre>
</li>
</ol>
<ul>
<li>
<p>Créer et monter le système de fichiers ext4 :</p>
<pre><code>  mkfs.ext4 /dev/sdX2
  mkdir root
  mount /dev/sdX2 root
</code></pre>
</li>
<li>
<p>Télécharger et extraire le système de fichiers racine (avec le compte <code>root</code> et non pas via la commande <code>sudo</code>) :</p>
<pre><code>  wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
  bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
  sync
</code></pre>
</li>
<li>
<p>Déplacer le fichiers de démarrage vers la première partition :</p>
<pre><code>  mv root/boot/* boot
</code></pre>
</li>
<li>
<p>Synchroniser les données sur la carte SD pour « éjecter en toute sécurité » :</p>
<pre><code>  sync
</code></pre>
</li>
<li>
<p>Démonter les deux partitions :</p>
<pre><code>  umount boot root
</code></pre>
</li>
<li>
<p>Supprimer les dossiers créés sur l'ordinateur :</p>
<pre><code>  rmdir boot root
</code></pre>
</li>
<li>
<p>Insérer la carte SD dans le Raspberry Pi, connecter le câble Ethernet, puis brancher l'alimentation de 5V.</p>
</li>
<li>
<p>Utiliser la console série (nécessite de brancher un clavier USB et un écran au Raspberry Pi et de configurer la disposition du clavier avec <code>loadkeys</code>, <em>cf.</em> la <a href="https://wiki.archlinux.fr/Vconsole">configuration du clavier dans la console virtuelle</a>) ou se connecter par SSH à l'adresse IP donnée par votre routeur. Le mot de passe par défaut est <code>root</code>.</p>
</li>
</ul>
<h1 id="configurationdebase">Configuration de base</h1>
<p>Avant de faire quoi que ce soit, des manipulations de base doivent être effectuée : première mise à jour, configuration du mot de passe du compte <code>root</code>, installation des composants de base, création d'un utilisateur et sécurisation de la connexion SSH,</p>
<p>Pour se connecter à votre Raspberry Pi par SSH (solution que je préfère), il faut en trouver l'adresse IP. Le plus simple à mon avis reste de la chercher dans l'interface d'administration de votre routeur.</p>
<p><img src="media/47bc9db8.Screenshot-from-2015-04-15-17-10-08.png" data-original-source="https://postblue.info/content/images/2015/04/Screenshot-from-2015-04-15-17-10-08.png" alt="Administration du routeur pour trouver l'adresse IP allouée au Raspberry Pi"></p>
<p>J'en ai profité pour cocher l'option <em>Always use the same address</em> (toujours utiliser la même adresse IP) afin de ne pas devoir chercher à quelle adresse réside mon Raspberry Pi.</p>
<ul>
<li>
<p>Une fois l'adresse IP du Raspberry Pi récupérée, ouvrir un terminal sur votre ordinateur et vous connecter par SSH au compte <code>root</code>. Entrer le mot de passe : <code>root</code>.</p>
<pre><code>  ssh root@192.168.1.66
</code></pre>
</li>
<li>
<p>Changer le mot de passe du compte <code>root</code> :</p>
<pre><code>  passwd root
</code></pre>
</li>
<li>
<p>Entrer le mot de passe choisi (ne pas confondre complexité et difficulté) et valider :</p>
</li>
</ul>
<p><img src="media/52f42e61.password_strength.png" data-original-source="https://imgs.xkcd.com/comics/password_strength.png" alt="Password Strength, XKCD, CC BY-NC"></p>
<ul>
<li>
<p>Utiliser <code>pacman</code>, le gestionnaire de paquets d'Arch Linux, pour une première mise à jour des programmes installés (dont le noyau et les pilotes, le plus utile) :</p>
<pre><code>  pacman -Syu
</code></pre>
</li>
<li>
<p>Installer quelques outils de base d'Arch Linux avec l'argument <code>--needed</code> pour ne pas réinstaller les paquets déjà à jour :</p>
<pre><code>  pacman -Sy base base-devel archlinux-keyring archlinuxarm-keyring linux-tools-meta --needed
</code></pre>
</li>
</ul>
<p>Reste à suivre <a href="https://wiki.archlinux.org/index.php/Beginners%27_guide#Chroot_and_configure_the_base_system">la documentation ArchLinux de base</a> pour la configuration générale du Raspberry Pi 2 (copie augmentée de la page <a href="https://wiki.archlinux.fr/Cat%C3%A9gorie:Configuration">Configuration d'Arch Linux</a> du wiki francophone):</p>
<ul>
<li>
<p>Le nom d'hôte est configurable dans le fichier <code>/etc/hostname</code>.</p>
<pre><code>  echo nom &gt; /etc/hostname
</code></pre>
<p>J'ai décidé d'appeler mon Raspberry Pi 2 <code>fernand</code>, changement à reverser dans le fichier d'hôtes <code>/etc/hosts</code> :</p>
<pre><code>  127.0.0.1       localhost.localdomain   localhost nom
  ::1             localhost.localdomain   localhost nom
</code></pre>
</li>
<li>
<p>Différentes locales sont activables dans le fichier <code>/etc/locale.gen</code> et générées par la commande <code>locale-gen</code>. La locale utilisée par le système est configurable dans le fichier <code>/etc/locale.conf</code>.</p>
<pre><code>  nano /etc/locale.gen
</code></pre>
<p>Décommenter :</p>
<pre><code>  en_US.UTF-8 UTF-8
  fr_FR.UTF-8 UTF-8
</code></pre>
<p>Générer les locales :</p>
<pre><code>  locale-gen
</code></pre>
<p>Rendre les changements effectifs directement&amp;bsp;:</p>
<pre><code>  export LANG=fr_FR.UTF-8
</code></pre>
<p>Appliquer les changements en éditant <code>/etc/locale.conf</code> :</p>
<pre><code>  # Spécifier fr par défaut
  LANG=&quot;fr_FR.UTF-8&quot;
  # Préférer l'anglais à la langue par défaut si la traduction fr n'existe pas
  LANGUAGE=&quot;fr_FR:en_US&quot;
  # Mais garder un tri par défaut
  LC_COLLATE=C
</code></pre>
</li>
<li>
<p>Les consoles virtuelles (TTY) sont configurables dans le fichier <code>/etc/vconsole.conf</code>, qui permet entre autres de choisir une police d'écriture ainsi qu'une configuration de clavier.</p>
</li>
<li>
<p>La date et l'heure sont configurables en créant le lien symbolique <code>/etc/localtime</code> vers le fichier correspondant à la zone géographique souhaitée, disponible dans le dossier /usr/share/zoneinfo/. La commande <code>timedatectl</code> permet de le faire, ainsi que d'activer la synchronisation avec un serveur de temps pour garder la machine à l'heure :</p>
<pre><code>  timedatectl set-timezone Europe/Paris
  timedatectl set-ntp true
</code></pre>
</li>
<li>
<p><code>fake-hwclock</code> a été spécialement conçu pour les systèmes sans horloge matérielle. Il comprend un service <code>systemd</code> enregistre l'heure actuelle et restaure celle-ci au démarrage, évitant ainsi d'étranges erreurs de voyage dans le temps.</p>
<pre><code>  pacman -Sy fake-hwclock
  systemctl enable fake-hwclock fake-hwclock-save.timer
</code></pre>
</li>
<li>
<p>Le gestionnaire de paquet, <code>pacman</code>, peut être configuré dans le fichier <code>/etc/pacman.conf</code>. Pour les yeux seulement, j'active la coloration du logiciel (<code>Color</code>) et une barre de progression sous forme de Pacman (<code>ILoveCandy</code>).</p>
<pre><code>  # Misc options
  #UseSyslog
  Color
  #TotalDownload
  CheckSpace
  #VerbosePkgLists
  ILoveCandy
</code></pre>
</li>
<li>
<p>Maintenant, il vous faut créer votre utilisateur avec lequel vous vous connecterez. Vous pouvez affecter l'utilisateur à certains groupes, en fonction des tâches qui seront effectuées. Je vous conseille de lire la page <a href="https://wiki.archlinux.fr/Utilisateurs_et_Groupes">utilisateurs et groupes</a> du wiki francophone.</p>
<p>Identifiez vous en <code>root</code>, avec le mot de passe défini à l'installation. Tapez ensuite :</p>
<pre><code>  useradd -g users -m -s /bin/bash &lt;nom utilisateur&gt;
  passwd &lt;nom utilisateur&gt;
</code></pre>
</li>
<li>
<p>Pour finir, configurer et protéger la connexion par SSH. Je vous conseille de lire <a href="https://wiki.archlinux.fr/Ssh">la page Ssh du wiki francophone</a>. La configuration se fait dans le fichier <code>/etc/ssh/sshd_config</code> :</p>
<ul>
<li>
<p><code>PermitRootLogin no</code> interdit la connexion avec le compte <code>root</code>, pour ne plus pouvoir s'identifier qu'avec un compte aux droits limités comme celui créé à l'étape précédente.</p>
</li>
<li>
<p><code>PasswordAuthentication no</code> désactive la connexion par mot de passe pour ne permettre de se connecter qu'avec un jeu de clés publique et privée, voir <a href="https://wiki.archlinux.fr/Ssh#Cl.C3.A9_publique.2Fpriv.C3.A9e">la section Clé publique/privée</a> du wiki francophone pour configurer cela.</p>
</li>
<li>
<p><code>PermitEmptyPasswords no</code> désactive les mots de passe vides.</p>
</li>
<li>
<p><code>AllowUsers &lt;nom utilisateur&gt;</code> restreint l'accès aux utilisateurs indiqués.</p>
</li>
<li>
<p>Redémarrer le service SSH pour appliquer les changements :</p>
<pre><code>  systemctl restart sshd
</code></pre>
</li>
<li>
<p>Pour vérifier que tout fonctionne, il suffit d'essayer d'ouvrir une nouvelle fenêtre de connexion.</p>
</li>
</ul>
</li>
<li>
<p>Redémarrer :</p>
<pre><code>  reboot
</code></pre>
</li>
</ul>
<h1 id="serveurdimpressionpartag">Serveur d'impression partagé</h1>
<p>La première utilisation que j'ai réservée à mon Raspberry Pi 2 est qu'il fasse office serveur d'impression CUPS pour partager une vieille imprimante HP connecté en USB sur mon réseau.</p>
<p>Pour ce faire, le serveur d'impression CUPS doit être installé, ainsi que le programme <code>hplip</code> permettant de communiquer avec les imprimantes HP, et le service Avahi.</p>
<blockquote>
<p><a href="http://avahi.org/">Avahi</a> est une mise en œuvre des protocoles <a href="https://fr.wikipedia.org/wiki/Zeroconf">Zeroconf</a> permettant ainsi « à des logiciels de publier et de découvrir des services et des hôtes en cours d'exécution sur un réseau local TCP/IP sans configuration particulière. Par exemple, un utilisateur peut brancher son ordinateur sur un réseau et trouver instantanément des imprimantes pour imprimer, des fichiers à lire et des personnes à qui parler. »</p>
</blockquote>
<ol>
<li>
<p>Installer les dépendances :</p>
<pre><code> pacman -S nss-mdns avahi cups sane hplip --needed
</code></pre>
</li>
</ol>
<ul>
<li>
<p>Pour accéder aux ordinateurs du réseau local en utilisant leur nom de domaine (ex : <code>myhostname.local</code>) plutôt que leur adresse IP, il faut activer le support des requêtes avec <code>.local</code>, ce qui n'est pas le cas par défaut sous Arch Linux. Pour l'activer, il fauch changer la ligne des hôtes dans <code>/etc/nsswitch.conf</code> :</p>
<pre><code>  hosts: files mdns_minimal [NOTFOUND=return] dns myhostname
</code></pre>
</li>
<li>
<p>Pour activer le support du scanner des imprimantes<sup class="footnote-ref"><a href="https://postblue.info/arch-linux-arm-raspberry-pi-2/#fn1" id="fnref1">[1]</a></sup> multifonction de HP, il faut s'assurer d'avoir installé Sane (le serveur permettant de partager le scanner) et xinetd (un démon gérant les connexions basées sur Internet).</p>
<pre><code>  pacman -S sane xinetd --needed
</code></pre>
<p>Ensuite, il faut éditer le fichier de configuration de Sane <code>/etc/sane.d/dll.conf</code> et y ajouter (ou décommenter) la ligne suivante (la dernière ligne du fichier bien souvent) :</p>
<pre><code>  hpaio
</code></pre>
<p>Après, il faut configurer Sane pour partager l'imprimante sur le réseau dans <code>/etc/sane.d/saned.conf</code>  et y indiquer la plage réseau dans laquelle le scanner sera accessible :</p>
<pre><code>  # Requis, machine elle-même
  localhost
  # Autoriser le réseau local
  192.168.0.0/24
  192.168.1.0/24
</code></pre>
<p>Ensuite, il faut activer le support de Sane par Xinetd en éditant le fichier <code>/etc/xinetd.d/sane</code> et empêcher la désactivation :</p>
<pre><code>  # disabled by default!
  disable     = no    
</code></pre>
<p>Dans ce fichier, nous voyons que c'est l'utilisateur <code>nobody</code> qui devra gérer le scanner. On l'ajoute donc au groupe idoine :</p>
<pre><code>  usermod -a -G scanner nobody
</code></pre>
</li>
<li>
<p>Activer les services :</p>
<pre><code>  systemctl enable avahi-daemon org.cups.cupsd cups-browsed xinetd
</code></pre>
</li>
<li>
<p>Démarrer les services :</p>
<pre><code>  systemctl start avahi-daemon org.cups.cupsd cups-browsed xinetd
</code></pre>
</li>
<li>
<p>Il faut ensuite ajouter l'imprimante HP à la liste des imprimantes connues avec la commande <code>hp-setup</code> :</p>
<pre><code>  hp-setup -i
</code></pre>
</li>
<li>
<p>La commande qui suit sert à activer le partage des imprimantes sur le réseau local et restreindre au réseau local, activer l'administration à distance, permettre à n'importe qui sur le réseau local de supprimer une impression :</p>
<pre><code>  cupsctl --no-remote-any --share-printers --remote-admin --user-cancel-any
</code></pre>
</li>
<li>
<p>Pour finir, redémarrer le service pour être sûr·e que les changements sont bien pris en compte :</p>
<pre><code>  systemctl restart org.cups.cupsd
</code></pre>
</li>
</ul>
<p>Pour accéder à l'interface web de CUPS, il suffit d'ouvrir l'adresse <code>http://myhostname.local:631</code>, et y administrer les imprimantes (format de papier par défaut, imprimante par défaut du serveur…).</p>
<p><strong>N.B.</strong> : Installer les dépendances optionnelles à <code>hplip</code> peut être chaudement recommandé s'il y a un souci : <code>python-dbus</code> (support dbus), <code>python-pillow</code> (support du scan par ligne de commande), <code>python-reportlab</code> (support de la sortie PDF du scan) et <code>rpcbind</code> (support du réseau).</p>
<pre><code>    pacman -S python-dbus python-pillow python-reportlab rpcbind --needed
</code></pre>
<h1 id="partagedefichiersmultimdia">Partage de fichiers multimédia</h1>
<p>Section à compléter en attendant de disposer d'un disque dur portable à brancher au Raspberry Pi 2, voir l'index <a href="https://wiki.archlinux.org/index.php/Streaming_media">Streaming media</a> du wiki anglophone.</p>
<h1 id="serveurdesauvegarde">Serveur de sauvegarde</h1>
<p>Section à compléter en attendant de disposer d'un disque dur portable à brancher au Raspberry Pi 2, voir l'index <a href="https://wiki.archlinux.org/index.php/Backup_programs">Backup programs</a> du wiki anglophone.</p>
<h1 id="serveurbittorrent">Serveur BitTorrent</h1>
<p>Section à compléter en attendant de disposer d'un disque dur portable à brancher au Raspberry Pi 2. J'ai dans l'idée d'utiliser <a href="https://wiki.archlinux.fr/Transmission">Transmission</a>, à administrer via l'interface web, l'extension pour GNOME Shell <a href="https://extensions.gnome.org/extension/365/transmission-daemon-indicator/">Transmission Daemon Indicator</a> ou via <a href="http://www.transdroid.org/">l'application Transdroid</a>.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Mise à jour du 19 juillet 2015 : suppression du module hpoj, ajout de l'installation des paquets Sane et Xinetd, ajout de la configuration de Xinetd, ajout des dépendances optionnelles de HPLIP. <a href="https://postblue.info/arch-linux-arm-raspberry-pi-2/#fnref1" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
</div>


feed_id: 598066730b34a039365e0d6c
title: Quelle distribution GNU/Linux choisir quand on n’y connaît rien ?
uri: 2017-08-01-Quelle-distribution-GNU-Linux-choisir-quand-on-n-y-connaît-rien
url: https://postblue.info/quelle-distribution-linux-choisir-quand-on-ny-connait-rien/
content:
<div class="kg-card-markdown"><blockquote>
<p>TL;DR : <a href="http://handylinux.org/">HandyLinux</a>.</p>
</blockquote>
<p>Il n'est pas chose aisée de bien choisir sa distribution Linux quand on n'entrave rien aux arcanes du monde enchanteur des barbu·e·s. La notion-même de <em>distribution</em> peut être source d'angoisses existentielles : pour tenter d'éclairer la chose, il s'agit d'un <strong>ensemble cohérent de logiciels assemblés autour d'un « logiciel » particulier, le noyau, appelé <em>Linux</em></strong>. Comprendre : une boîte à outils agencée de façon particulière. Voyez Linux comme un moteur : la distribution est tout ce qu'il faut en plus au seul moteur, qui est central, pour que la voiture puisse rouler.</p>
<p>Bref, quand on n'y touche rien à Linux, quand on en a marre des systèmes qui demandent toujours plus de ressources pour pouvoir tourner, des systèmes qui ne sont plus supportés du jour au lendemain et demandent de mettre sa machine au rebus, <strong>quelle distribution choisir</strong> ?</p>
<p>Avant tout, il faut pouvoir identifier son « niveau » en informatique : est-on un débutant extrême, à peine retrouve-t-on ses jeunes sous Windows, avec le four à micro-ondes programmable c'est déjà la joie, ou n'est-on pas effrayé à l'idée de lire un peu de documentation ou à faire quelques recherches ?</p>
<p>Ensuite, s'assurer de son entourage : y a-t-il quelqu'un que vous connaissez qui voudrait bien vous aider en cas de problème, ou y a-t-il un Groupe d'utilisateurs de Linux dans votre ville (le <a href="http://www.bxlug.be/">BxLUG</a> à Bruxelles) ?</p>
<p>De plus : pouvoir estimer son niveau en anglais. La communauté de certaines distributions sont plus ou moins francophones, si vous n'y entendez rien à la langue de Shakespeare, il sera plus judicieux de se procurer une distribution francophone ou au moins francophile.</p>
<p>Ce n'est seulement qu'en dernier lieu que se posent les traditionnelles questions des prosélytes : quelles sont les spécificités de la machine, quelle charge peut-elle supporter, quelle interface, <em>etc</em>.</p>
<p>Du reste, la distribution qui me semble répondre aux premières injonctions est HandyLinux, avec sa communication en français, sa communauté francophone, son tutoriel de premier démarrage, son interface classique et intuitive, et une base de logiciels fournie.</p>
<video controls="controls" preload="auto" poster="//handylinux.org/videos/video_screen2.jpg">  
<source src="//handylinux.org/videos/HandyLinux-v2-Official.ogv" type="video/ogg">
<source src="media/eed7cb66.HandyLinux-v2-Official.webm" data-original-source="https://handylinux.org/videos/HandyLinux-v2-Official.webm" type="video/webm">
<source src="media/64a12afd.HandyLinux-v2-Official.mp4" data-original-source="https://handylinux.org/videos/HandyLinux-v2-Official.mp4" type="video/mp4">
</video></div>


feed_id: 598066730b34a039365e0d6b
title: ULB connectée 1 : mon GeHoL
uri: 2017-08-01-ULB-connectée-1-mon-GeHoL
url: https://postblue.info/ulb-connectee-1-mon-gehol/
content:
<div class="kg-card-markdown"><p>Communication technique pour bien commencer l'année à l'Université Libre de Bruxelles (ULB) ; nous avons plusieurs systèmes et programmes qu'il peut être utile de connaître voire de savoir utiliser.</p>
<p><a href="http://mongehol.ulb.ac.be/">Le GeHoL nouveau est arrivé</a> !</p>
<p>Pour ceux qui ne connaissent pas GeHoL, nouveau ou ancien, il s'agit de l'outil de « <strong>Ge</strong>stion des <strong>Ho</strong>raires et des <strong>L</strong>ocaux », comprendre : l'outil en ligne où récupérer ses horaires de cours.</p>
<p>Après s'être connecté avec son <strong>netid</strong> (initiale du prénom accolée aux 7 premières lettres du nom de famille, quand il n'y a pas de conflit) sur <a href="http://mongehol.ulb.ac.be/Controlleurs/Controlleur.php">Mon horaire</a>, sont affichés uniquement les horaires des cours auxquels un étudiant est inscrit.</p>
<p>Fini d'avoir l'entièreté de l'horaire disponible affichée, toutes options confondues, pour tous les groupes possibles d'une année, …</p>
<p>De plus, il est possible d'ajouter à son horaire des cours supplémentaires (ou de cacher ceux qui sont en excédent ; GeHoL peut être adapté aux horaires les plus lourds ou les plus légers) : dans l'onglet <a href="http://mongehol.ulb.ac.be/Vue/MesCours.php">Mes Cours</a>, l'œil accolé aux cours dans la colonne de gauche permet d'en masquer l'horaire quand cliqué, la colonne de droite permet d'ajouter des cours à son horaire global.</p>
<p>Enfin, pour ceux qui sont intéressés, il est possible d'intégrer son horaire GeHoL dans les applications qui le supportent. Depuis l'onglet <a href="http://mongehol.ulb.ac.be/Controlleurs/Controlleur.php">Mon horaire</a>, il suffit d'exporter celui-ci &quot;en iCal&quot; (Exporter l'horaire au format iCal).</p>
<p>Le lien obtenu doit ressembler à <code>http://mongehol.ulb.ac.be/Controlleurs/ICal.php?cal=[une clef unique]&amp;week=1</code>. Il est dès lors possible d'ajouter l'URL à un agenda, iCal sous Mac OS X par exemple, mais aussi dans <a href="https://www.google.com/calendar/render">Google Calendar</a> : en cliquant dans le menu de gauche sur la flêchette à côté de la catégorie &quot;Autres agendas&quot;, il est possible d'en &quot;Ajouter par URL&quot;. Attention, pour être sûr d'avoir l'horaire de toute l'année, il faut modifier l'URL pour qu'il se termine par <code>...&amp;week=141</code> !</p>
<p>Ceci fait, il est possible de visualiser en temps réel son horaire, par exemple en l'affichant dans les agendas d'un téléphone tournant sous Android. Il suffit d'aller dans l'application Agenda et, dans le menu, ajouter l'agenda <code>mongehol</code> aux agendas synchronisés et affichés.</p>
<p>En espérant que cela serve à quelques uns.</p>
</div>


feed_id: 599d427c26ff5f0a15f009b5
title: BBox 3, Dnsmasq et mega.nz chez Scarlet
uri: BBox-3-Dnsmasq-et-mega-nz-chez-Scarlet
url: https://postblue.info/dnsmasq-mega-co/
content:
<div class="kg-card-markdown"><p>Un jour l'opérateur belge Scarlet, succursale de Proximus, a décidé de faire un blocage DNS <a href="https://en.wikipedia.org/wiki/Websites_blocked_in_Belgium">sur le site MEGA et d’autres</a>.</p>
<p>Avant, on pouvait s’en sortir en modifiant les DNS à même la BBox, le modem-routeur en carton de Proximus<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>. Or, depuis quelques itérations cette machine ne permet plus de changer les serveurs DNS qui lui sont attribués par défaut. L’opérateur se justifie en la matière de la sorte : le matériel qu’il fournit à ses clients ne doit pas permettre d’outrepasser le blocage qui lui est imposé par décision de justice<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>. Sauf que le blocage de certains sites déborde largement les obligations légales de l’opérateur qui est un peu trop <em>pro-actif</em> en la matière et en contrarie toute utilisation légitime<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>.</p>
<p><img src="media/e8a53fcf.IMG_20170916_223639.jpg" data-original-source="https://postblue.info/content/images/2017/11/IMG_20170916_223639.jpg" alt="IMG_20170916_223639"></p>
<p>N’ayant pas encore investi quelques heures de mon temps nécessaires à la configuration d'un <a href="http://pcengines.ch/apu1d.htm">PC Engines</a> légué par <a href="https://id-libre.org/">un gentil lecteur</a>, j’ai plutôt cherché une solution à mettre en œuvre sur ma machine locale en utilisant Dnsmasq déjà mobilisé par le gestionnaire de connexion NetworkManager.</p>
<p>Installer le paquet <code>dnsmasq</code> afin que celui-ci puisse être utilisé par le gestionnaire de connexion Network Manager afin de mettre en cache les recherches DNS, permettant de raccourcir les délais de résolution.</p>
<pre><code>sudo apt update; sudo apt install dnsmasq
</code></pre>
<p>C'est dans <code>/etc/NetworkManager/NetworkManager.conf</code> que l'on active l’utilisation de Dnsmasq, qui permet également de mettre en cache la résolution des noms de domaine.</p>
<pre><code>sudo nano /etc/NetworkManager/NetworkManager.conf
</code></pre>
<p>Et là changer la ligne <code>dns=...</code> pour la suivante:</p>
<pre><code>dns=dnsmasq
</code></pre>
<p>Ensuite, il ne reste qu’à déclarer des serveurs de noms (<a href="https://www.fdn.fr/actions/dns/">ici du French Data Network</a>) par nom de domaine qu’on voudrait voir résolu. Ouvrir un fichier de configuration :</p>
<pre><code>sudo nano /etc/NetworkManager/dnsmasq.d/custom.conf
</code></pre>
<p>Et ajouter une ligne similaire à la suivante pour chaque domaine dont on veut que la résolution DNS ne passe pas par celle de la BBox :</p>
<pre><code>server=/mega.nz/80.67.169.40
</code></pre>
<p>Vous pouvez ajouter n'importe quel nom de domaine bloqué sans base légale par votre opérateur selon la structure <code>server=/domaine.nom/DNS</code>. Ensuite, sauvegardez le fichier et redémarrez NetworkManager.</p>
<pre><code>sudo systemctl restart NetworkManager
</code></pre>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Actuellement, ladite BBox ne résout plus les noms de domaine en <code>.local</code>. Parce que tant qu’à refourger de la merde au client, autant y aller franco. <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Référence souhaitée. <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Dans mon cas, l’archive d’un obscur projet trouvé sur les forums d’XDA Developers. <a href="#fnref3" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
</div>


feed_id: 5aa5066c8c58b17d3a3da03c
title: Comptabilité d’un hébergement indépendant, ça commence à coûter
uri: Comptabilité-d-un-hébergement-indépendant-ça-commence-à-coûte
url: https://postblue.info/a-votre-bon-coeur/
content:
<div class="kg-card-markdown"><p>Depuis quelques temps, j’orchestre une instance <a href="https://gnu.io/social/">GNU social</a> et une instance <a href="https://joinmastodon.org/">Mastodon</a>. Chaque service est hébergé chez <a href="https://www.hetzner.com/cloud#pricing">Hetzner Cloud</a> sur son propre CX21 tout beau tout propre, que je loue en plus du serveur sur lequel j’héberge <a href="https://postblue.info/auto-hebergement-liste/">mes quelques services personnels</a> dont ce blog.</p>
<ul>
<li>Les gnous (GNUs) évoluant en <a href="https://herds.eu/group/troupeau">!troupeau</a>, <a href="https://herds.eu/">herds.eu</a> est une instance GNU social ouverte uniquement sur invitation. Pour être invité·e, il suffit d’en contacter <a href="https://herds.eu/directory/users">n’importe quel inscrit·e</a> ou d’envoyer un message <a href="https://postblue.info/contact/">sur ma boîte personnelle</a>.</li>
<li>Le « tweet » se traduisant en « pouet »  (« <em>toot</em> » dans la langue de Jeremy Corbyn) <a href="https://pouet.it">pouet.it</a> est une instance Mastodon anarchostalinienne et allié·e·s membre des fédérations OStatus (GNU social, PostActiv, Pleroma) et ActivityPub. Les inscriptions y sont libres, on y fait des blagues d’extrême gauche, et je n’y accepte ni le spam, ni la publicité commerciale, ni tout ce que les lois ou le <em>politburo autogéré</em> m’obligeraient à supprimer.</li>
</ul>
<p>Cependant, maintenir ces deux services en plus de ceux qui ne concernent que moi représente un coût que j’apprécierais voir soutenu par les personnes que j’héberge ou qui seraient intéressées de se joindre à l’aventure : chaque hébergement coûte 5,93 € par mois, chaque nom de domaine 14,52 € par an, soit un coût annuel de 85,68 € par an, par service (7,14 € par mois, par service).</p>
<p>Si quelques personnes pouvaient m’aider dans cette dépense, j’aurais la possibilité d’investir sur fonds propres dans un hébergement plus performant si et quand celui qui est en place arrivera à saturation, et d’être un minimum rétribué pour le travail d’administration que ces services nécessitent.</p>
<p>Les moyens pour m’aider financièrement sont les suivants :</p>
<ul>
<li>grâce à <a href="https://liberapay.com/postblue/">Liberapay</a> ;</li>
<li>grâce à <a href="https://www.paypal.me/gllmhyt">PayPal</a> ;</li>
<li>en Bitcoin à l’adresse <a href="bitcoin:1KyKW8xDmdcPQ9sj8ruE92ha7arxt2uQSd">1KyKW8xDmdcPQ9sj8ruE92ha7arxt2uQSd</a> ;</li>
<li>en <a href="https://postblue.info/about/">me contactant</a> si aucun ne vous convient.</li>
</ul>
<p>Merci d’avance.</p>
</div>


feed_id: 5a461e6c7c0c393668d183b2
title: Récupération de composants pour construire un ordinateur polyvalent
uri: Récupération-de-composants-pour-construire-un-ordinateur-polyvalent
url: https://postblue.info/recuperation-ordinateur-pieces-detachees/
content:
<div class="kg-card-markdown"><p>J’ai profité du renouvellement de mon <a href="https://postblue.info/materiel/">matériel</a> de bureau pour construire un « nouveau » PC pour mon meilleur ami. Récupérant mon ensemble processeur-carte mère-RAM datant de fin 2008, il ne lui restait « plus qu’à » investir dans le reste de la configuration qui j’espère aura une longue vie.</p>
<table>
<thead>
<tr>
<th><strong>Ce qui est récupéré</strong></th>
<th>Modèle</th>
</tr>
</thead>
<tbody>
<tr>
<td>Processeur</td>
<td>Intel Core i7-920 (4 × 2.66GHz)</td>
</tr>
<tr>
<td>Ventirad</td>
<td><a href="https://noctua.at/fr/nh-u12p">Noctua NH-U12P</a> et un seul <a href="https://noctua.at/fr/products/fan/nf-f12-pwm.html">Noctua NF-F12 PWM</a></td>
</tr>
<tr>
<td>Mémoire vive</td>
<td>6 × 2 Go DDR3 1333 MHz</td>
</tr>
<tr>
<td>Carte mère</td>
<td><a href="https://www.asus.com/be-fr/Motherboards/P6T_Deluxe_V2/">ASUS P6T Deluxe V2</a></td>
</tr>
<tr>
<td>Carte d’extension</td>
<td><a href="http://www.silverstonetek.com/product.php?area=en&amp;pid=327">Silverstone EC01-P</a></td>
</tr>
</tbody>
</table>
<p><img src="media/b3d8c9fd.IMG_20180111_142423.jpg" data-original-source="https://postblue.info/content/images/2018/04/IMG_20180111_142423.jpg" alt="IMG_20180111_142423"></p>
<p>J’avais remplacé les deux <a href="https://noctua.at/fr/products/fan/nf-p12.html">Noctua NF-P12</a> d’origine pour le remplacer par un seul P12 PWM. Ce dernier a une vitesse de rotation minimale deux fois plus lente que ceux d’origine, une consommation électrique moindre pour un débit d’air comparable si pas plus important. Il est encore possible d’en ajouter un deuxième afin d’augmenter le flux d’air et laisser la vitesse de rotation des ventilateurs le plus longtemps au minimum.</p>
<p>La carte d’extension Silverstone offre quant à elle la possibilité de raccorder une prise USB3 à la carte mère qui, datant de fin 2008, en est bien évidemment dépourvue.</p>
<p><img src="media/f03392f4.WhatsApp-Image-2018-04-15-at-13.45.11.jpeg" data-original-source="https://postblue.info/content/images/2018/04/WhatsApp-Image-2018-04-15-at-13.45.11.jpeg" alt="WhatsApp-Image-2018-04-15-at-13.45.11"></p>
<p>Il ne restait plus qu’à construire une machine sur cette base, en faisant attention à ce qui est acheté puisse être récupéré et utilisé dans des configurations ultérieures.</p>
<p>Les composants achetés ont été sélectionnés dans l’optique d’un compromis difficile entre des performances acceptables tant pour une utilisation multimédia que du développement ou de l’hébergement décentralisé, qu’un faible bruit. En effet, la machine tournera en permanence dans le salon et il est donc exclu qu’elle fasse un boucan d’enfer.</p>
<p>Pour choisir la <strong>carte graphique</strong>, j’avais en premier lieu regardé du côté de celles ayant à dissipation passive (<em>fanless</em>). Si ces cartes font <em>en soi</em> le moins de bruit puisqu’elles sont dépourvues de ventilateur, elles sont de fait largement moins puissantes qu’une carte à dissipation active. C’est pourquoi j’ai finalement opté pour une <a href="https://fr.msi.com/Graphics-card/GeForce-GTX-1050-Ti-GAMING-X-4G.html">MSI GeForce GTX 1050 Ti GAMING X 4G</a> qui est à mon sens l’une des meilleurs cartes de milieu de gamme profitant d’une technologie réduisant les bruits émis par les ventilateurs en les arrêtant dès que la carte passe en charge légère. Seul bémol à mon goût : le look effroyable du matériel MSI avec dragons et renforts de LED qu’il ne semble pas possible de désactiver définitivement à moins de trouver le câble d’alimentation des loupiottes et de le débrancher.</p>
<p><img src="media/3b1e3431.WhatsApp-Image-2018-04-15-at-13.45.09.jpeg" data-original-source="https://postblue.info/content/images/2018/04/WhatsApp-Image-2018-04-15-at-13.45.09.jpeg" alt="WhatsApp-Image-2018-04-15-at-13.45.09"></p>
<p>Concernant le <strong>stockage</strong>, il fallait parer à toute éventualité : stockage de films, de musique, de jeux, d’environnements de développement, de machines virtuelles et de sauvegardes. Du coup, j’ai regardé du côté des disques estampillés pour NAS. Ayant moi-même un disque Seagate dont je me plains du bruit, j’ai choisi un Western Digital Red de 2 To (5400 tours par minutes, cache de 64 Mo). Il est de fait presque inaudible en raison de sa faible vitesse de rotation, et les performances sont honorables pour ce genre de disque. Ensuite, Debian a été installé sur un SSD Crucial MX500 de 500GB. Si les disques sont à la norme SATA III alors que la carte-mère, son âge oblige, ne supporte que la norme SATA II qui est deux fois moins rapide (3Gb/s vs 6Gb/s), les ports sont rétrocompatibles et pourrant profiter de leurs pleines performances à l’avenir.</p>
<p>La liste des caractéristiques que j’avais dressée pour choisir un <strong>boîtier</strong> comporenait une isolation acoustique pour qu’il reste le plus silencieux possible quand il tourne, des filtres à poussière pour ne pas devoir l’ouvrir à intervalles trop rapprochés afin de le nettoyer, le plus de ventilateurs d’origine et les plus grands possibles (d’un diamètre de 140mm et pas de 120mm), construit en matériaux solides afin de protéger le matériel de tout accident. Le modèle retenu a été le <a href="http://www.fractal-design.com/home/product/cases/define-series/define-r6-black">Fractal Design Define R6</a> qui répond à tous ces critères et propose un design sobre et uniforme du boîtier qui ne raccolera pas le regard dans son coin de salon.</p>
<p><img src="media/f51dcb10.WhatsApp-Image-2018-04-15-at-13.45.07.jpeg" data-original-source="https://postblue.info/content/images/2018/04/WhatsApp-Image-2018-04-15-at-13.45.07.jpeg" alt="WhatsApp-Image-2018-04-15-at-13.45.07"></p>
<p>Enfin, l’<strong>alimentation</strong> choisie est entièrement modulaire, c’est-à-dire qu’il n’est besoin de brancher que les câbles dont il est besoin. À l’instar de la carte graphique, j’en ai cherché une dont le ventilateur (le plus grand possible, de diamètre supérieur à 130mm) est à l’arrêt sous faible utilisation et disposant d’un rendement excellent. J’ai donc choisi une <a href="https://www.corsair.com/eu/en/Power/Plug-Type/hxi-series-2017-config/p/CP-9020138-EU">Corsair HX850</a> répondant à ces critères.</p>
<p><img src="media/c777b9a9.WhatsApp-Image-2018-04-15-at-15.40.37.jpeg" data-original-source="https://postblue.info/content/images/2018/04/WhatsApp-Image-2018-04-15-at-15.40.37.jpeg" alt="WhatsApp-Image-2018-04-15-at-15.40.37"></p>
<p>Le résultat final est plaisant, silencieux et se laisse oublier dans un coin de la pièce. L’usage dira si mon meilleur ami est satisfait de ce que lui offre la configuration actuelle, et le temps si les composants choisis ne souffriront pas d’être utilisés dans sa prochaine machine.</p>
</div>


feed_id: 5ba5fdc35107b81a419d699b
title: La Convivialité
uri: La-Convivialité
url: https://postblue.info/la-convivialite/
content:
<blockquote>On juge votre orthographe, mais on ne juge pratiquement jamais l’orthographe elle-même.</blockquote><img src="media/ba7efaa5.laconvivialit-.jpg" data-original-source="https://postblue.info/content/images/2018/09/laconvivialit-.jpg" alt="La Convivialité"><p>Pourquoi mettre un « t » à édit ou bruit (comme dans éditer ou bruiter), mais pas à abri dont le verbe a pourtant la même forme ? Pourquoi écrit-on « gelée de groseille » au singulier et « confiture de groseilles » au pluriel ? La marque du pluriel dépend-t-elle uniquement du temps de cuisson ? Le seul son [s] peut s’écrire de 12 manières différentes, et la lettre « s » peut se prononcer de 3 manières différentes ([s], [z], ou muette)… Voici quelques uns des constats, quelques unes des interrogations directrices de cette conférence grand public à propos de l’orthographe française.</p><p> « La Convivialité » est un moment ludique et instructif sur notre rapport à l’orthographe, alors que le sujet n’est pas nécessairement des plus attrayants mais toujours des plus clivants : c’est quand on aborde la possibilité de sa réforme que les réactionnaires sortent du bois. Une passion pour certains et un chemin de croix pour d’autres, l’orthographe s’inscrit comme un évaluateur tout le long de notre scolarité alors que son évolution est faite d’erreurs et d’incompréhensions, de raccourcis et d’illogismes. Bref, l’orthographe française, par sa complexité est un marqueur social qui permet de faire le tri.</p><p>Ce débat passionné entourant l’orthographe française est mené Arnaud Hoedt et Jérôme Piron, deux belges diplômés en philologie romane. Ceux-ci dépouillent, de manière drôle et instructive, les préjugés durement ancrés concernant la langue française et son instruction.</p><iframe width="840" height="472,5" sandbox="allow-same-origin allow-scripts" src="https://tube.postblue.info/videos/embed/4c5214e1-eb91-4716-abe2-aa5aa81b4d18" allowfullscreen></iframe><p></p><p>Et comme ceux-ci le disent d’entrée de jeu :</p><blockquote>Fini le baratin. L’écriture ne constitue ni la finalité ni la nature première du dire. Inutile d'alourdir la plume par une pénible fioriture. Si le code s’améliore, il définira une manière directe de traduire le son par le signe, libre de toute morale.</blockquote><p>Source : <a href="https://www.rtbf.be/auvio/detail_la-convivialite?id=2391239">La Convivialité</a>, spectacle complet sur RTBF Auvio, 03 septembre 2018.</p>


feed_id: 5be2ccdea3b8273163c97717
title: Remplacer la pâte thermique d’une carte graphique
uri: Remplacer-la-pâte-thermique-d-une-carte-graphique
url: https://postblue.info/gpu-pate-thermique/
content:
<img src="media/26119af4.IMG_20181107_110553-2.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_110553-2.jpg" alt="Remplacer la pâte thermique d’une carte graphique"><p>J’ai remplacé la pâte thermique faisant le contact entre ma carte graphique et son système de refroidissement. Il y a un peu de temps déjà, j’avais remplacé celui fourni par le constructeur par un nouveau bien plus performant : un <a href="https://www.raijintek.com/en/products_detail.php?ProductID=46">Raijintek Morpheus II</a><sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> surmonté par deux ventilateurs <a href="https://noctua.at/fr/nf-f12-pwm-chromax-black-swap.html">Noctua NF-F12</a><sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>.</p>
<p><img src="media/8de7047d.IMG_20181107_110553.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_110553.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Le matériel nécessaire pour cette manipulation a été :</p>
<ul>
<li>deux tournevis cruciformes de tailles différentes afin d’extraire la carte graphique (une <a href="https://www.msi.com/Graphics-card/Radeon-RX-580-ARMOR-8G-OC">AMD Radeon RX 580</a> acquise à pas cher) de la tour dans laquelle elle sert (embout épais) et enlever le radiateur (embout fin)… non je ne connais pas la largeur des embouts ;</li>
<li>un flacon d’alcool isopropylique récupéré à la pharmacie du coin pour quelques pièces, afin de nettoyer les résidus de pâte thermique sur les surfaces de contact que sont le processeur graphique et la base plane du radiateur ;</li>
<li>quelques chiffons et un coton-tige afin de nettoyer délicatement les résidus présents sur lesdites surfaces en les imbibant d’alcool isopropylique ;</li>
<li>une surface de travail dégagée et éclairée, du temps et de la patience.</li>
</ul>
<p>Pour commencer la manipulation, après avoir extrait la carte graphique de son boîtier, je l’ai déposée sur mon « plan de travail » (la table de la salle à manger), ventilateurs en dessous, exposant les vis retenant le radiateur.</p>
<p><img src="media/2ffe0f69.IMG_20181107_110635.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_110635.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Ces vis retiennent chacune un ressort qui augmente la pression du radiateur sur le processeur graphique. Il faut donc les enlever précautionneusement en dévissant chaque vis de quelques degrés à la fois puis passer à la suivante suivant la diagonale.</p>
<p>Avant d’enlever le radiateur, il est nécessaire de déconnecter tous les câbles qui font le pont entre la base de la carte graphique et son système de refroidissement. Une fois les vis complètement déserrées, il est désormais possible de retirer la carte graphique elle-même de son système de refroidissement. Si comme moi vous avez les cheveux longs, je vous conseille de les attacher parce que c’est à partir de cette étape que j’ai commencé à en retrouver un peu partout sur ma carte graphique au fur et à mesure que je la nettoyais (c’est l’automne, les feuilles tombent).</p>
<p><img src="media/e9f8028d.IMG_20181107_111026.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_111026.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Une fois que les surfaces de contact sont exposées, il est enfin possible de les nettoyer, c’est-à-dire les préparer à accueillir une nouvelle couche de pâte thermique. Je « mouille » donc un chiffon doux avec un peu d’alcool isopropylique et je le passe délicatement sur les surfaces salies par la précédente pâte thermique. La base du radiateur est totalement plane, il est donc très simple de la nettoyer.</p>
<p><img src="media/75c2de54.IMG_20181107_111644.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_111644.jpg" alt="Remplacer la pâte thermique d’une carte graphique"><br>
<img src="media/c43f1aa7.IMG_20181107_111639.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_111639.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Par contre, j’utilise un coton tige que je tamponne doucement sur les parties fragiles comme le processeur graphique. J’utilise ce coton-tige pour chasser les résidus de pâte thermique dans les creux et recoins entourant le processeur. Une fois le tout bien nettoyé, je passe un chiffon sec sur les surfaces de contact nettoyées pour en enlever les derniers résidus.</p>
<p><img src="media/577ad770.IMG_20181107_112426.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112426.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Une fois le tout nettoyé et séché, il est temps de sortir la pâte thermique de son emballage. Même si à peu près n’importe quelle pâte thermique de qualité fera l’affaire (Arctic, Arctic Silver, Noctua, Gelid… <a href="http://www.thermal-grizzly.com/fr/produits/42-conductonaut-fr">même en métal liquide</a> si vous n’avez pas les mains qui tremblent autant que les miennes), j’ai choisi la <a href="http://www.thermal-grizzly.com/fr/produits/43-kryonaut-fr">Thermal Grizzly Kryonaut</a> qui a l’avantage d’être livrée avec un applicateur à visser au bout de la seringue de pâte thermique que je trouve très pratique quand on a les mains qui tremblent, vu qu’il me permet d’éviter d’en étaler partout, râler, nettoyer, recommencer.</p>
<p><img src="media/a27fabe1.IMG_20181107_112749.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112749.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>À noter que la pâte thermique s’utilise avec parcimonie, ce n’est pas du beurre que l’on tartine malgré une consistance qui parfois s’en rapproche. La couche doit être relativement fine et servir à aplanir les surfaces en contact. Il ne faut pas en mettre trop si on ne veut pas se retrouver avec des résidus de pâte thermique sur les composants entourant le processeur graphique qui aurait été chassé de la surface sous la pression de la surface de contact du ventilateur revissé.</p>
<p><img src="media/607c75a2.IMG_20181107_112826.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112826.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>L’étape suivante est justement le replacement du radiateur sur la carte. Pratiquement, il s’agit plutôt de l’inverse, replacer la carte sur le radiateur. Remonter le dissipateur de chaleur se fait en alignant les trous dans le circuit imprimé avec le vis hexagonales qui sont sur les clips à la base du radiateur. Il reste à aligner là-dessus la plaque arrière (le côté le plus mou en contact avec la carte graphique pour ne pas écraser les composants sous elle) et les vis à ressort. J’ai resserré les vis comme je les ai enlevées : des rotations de quelques degrés à la fois sur chaque vis en suivant les diagonales.</p>
<p><img src="media/64a25b52.IMG_20181107_112933.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112933.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Il ne me restait qu’à rebrancher les ventilateurs à leur contrôleur pour que je puisse profiter de la vue de mon bricolage achevé : une carte graphique très bien refroidie grâce à un dissipateur de chaleur de rechange trois fois plus gros que celui d’origine, mis en contact grâce à une fine couche de très bonne pâte thermique.</p>
<p><img src="media/4c42c2c7.IMG_20181107_113153.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_113153.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Et sous un autre angle :</p>
<p><img src="media/70e90f23.IMG_20181107_113208.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_113208.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<p>Par contre, une carte graphique ainsi refroidie est bien plus lourde. Elle a donc tendance à s’affaisser, ployer à cause du radiateur dont elle doit porter tout le poids. Pour lutter contre cet effet, j’ai acheté une équerre de soutien qui se visse au même endroit que les équerres PCI. En plaçant un caoutchouc où l’équerre passe sous une surface plane des ventilateurs, j’empêche donc ma carte graphique de plier tout en obstruant au minimum le flux d’air entourant celle-ci.</p>
<p><img src="media/b384775b.IMG_20181107_114247.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_114247.jpg" alt="Remplacer la pâte thermique d’une carte graphique"></p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>À noter que ma carte graphique n’est pas jugée compatible avec le <a href="https://www.raijintek.com/en/products_detail.php?ProductID=46">Morpheus II</a>, le dissipateur VRM fourni n’est pas utilisable parce que trop court. Il n’est pas impossible que le <a href="https://www.raijintek.com/en/products_detail.php?ProductID=94">Morpheus VEGA</a> le soit plus mais je n’ai pas la possibilité de le vérifier. J’ai donc laissé le dissipateur VRM par défaut sur ma carte graphique. <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Les ventilateurs sont raccordés à la carte graphique au moyen <a href="https://www.moddiy.com/products/4%252dPin-VGA-PWM-Mini-Connector-to-Dual-PH-Mini-4%252dPin-Fan-Cable-Splitter.html?setCurrencyId=3">d’un adaptateur</a> en Y de modDIY (<a href="https://www.moddiy.com/products/Mini-4%252dPin-GPU-to-2-x-4%252dPin-PWM-Fan-Adapter.html?setCurrencyId=3">en voici un autre</a>). <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>


feed_id: 5ca08b64976382711b89560d
title: Recherche de pièces pour le PC de ma sœur (2012)
uri: Recherche-de-pièces-pour-le-PC-de-ma-sœur-(2012)
url: https://postblue.info/maintenance-dun-vieux-coucou-de-2012/
content:
<img src="media/5a51938b.IMG_20190329_121349-1.jpg" data-original-source="https://postblue.info/content/images/2019/03/IMG_20190329_121349-1.jpg" alt="Recherche de pièces pour le PC de ma sœur (2012)"><p>À l’aube de la majorité de ma sœur, notre mère m’avait demandé de monter un ordinateur de bureau pour elle. Pas un foudre de guerre, mais quelque chose qui lui permettrait de faire du travail bureautique auquel l’exposeraient ses études supérieures. C’était une machine à bas coût construite avec un <a href="https://www.materiel.net/kit-d-evolution-pc/l456/">kit d’évolution PC de materiel.net</a>, début 2012 (déjà, purée), et on peut dire qu’elle a bien servi. Ce qui suit est <a href="https://herds.eu/notice/4403378">l’extension de la diatribe initié sur GNU social</a>.</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Pièce</th>
<th>Modèle</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>Intel Core i3-2100 (3 Mo de cache, 3,1 GHz)</td>
</tr>
<tr>
<td>RAM</td>
<td>Kingston ValueRAM DDR3 2 x 2 Go PC10600</td>
</tr>
<tr>
<td>MB</td>
<td>MSI H61MA-E35 (B3)</td>
</tr>
<tr>
<td>HDD</td>
<td>Seagate Barracuda 500 Go 7200.14 series</td>
</tr>
<tr>
<td>PSU</td>
<td>Cooler Master Elite Power 400W</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Après avoir un peu chipoté à la machine lors d’un souper familial, j’ai repris le PC de ma sœur chez moi histoire d’être au calme pour passer son système d’exploitation de Debian Stretch à Buster, lui installer quelques jeux, et surtout lui installer du matériel que j’avais récupéré de ci de là :</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Pièce</th>
<th>Modèle</th>
</tr>
</thead>
<tbody>
<tr>
<td>GPU</td>
<td>MSI GeForce GTX 660 Twin Frozr 3 OC</td>
</tr>
<tr>
<td>SSD</td>
<td>Corsair Force Series LS 60 Go</td>
</tr>
<tr>
<td>AP</td>
<td>ASUS PCE-AC51</td>
</tr>
<tr>
<td>SYS_FAN</td>
<td>Noctua NF-P12</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Pour subvenir plus facilement aux besoins de la carte graphique de second souffle que je lui ai installée, une <a href="https://fr.msi.com/Graphics-card/N660_TF_2GD5OC.html">nVidia GTX 660</a>, j’avais l’intention de remplacer l’alimentation de 400W par une plus puissante de 550W. Malheureusement, cette dernière faisait un bruit très dérangeant, comme s’il y avait quelque chose dans le chemin de la course du ventilateur. J’ai donc remis en place l’alimentation d’origine.</p><p>Parlant de ventilateur, le boîtier comportait un ventilateur de 120mm d’origine en entrée d’air. Cependant, à cause d’un fil trop court pour la connecter à la carte mère, ce dernier était branché directement sur l’alimentation. Il n’était donc pas possible de laisser la carte mère contrôler sa vitesse en fonction de la chaleur ambiante du boîtier. J’ai donc remplacé le ventilateur d’admission d’air par l’un des Noctua NF-P12 laissés de côté <a href="https://postblue.info/recuperation-ordinateur-pieces-detachees/">suite à un précédent bricolage</a> de récupération, ventilateurs qui ont bien heureusement un très long câble de raccordement que j’ai finalement pu brancher sur la carte mère.</p><p>En continuant sur le refroidissement, j’ai aussi profité de l’occasion pour remplacer la pâte thermique sur le processeur, pâte qui était devenue relativement dure et plus vraiment conductive avec le temps. J’ai procédé à la même manipulation sur la carte graphique, vous pouvez <a href="https://postblue.info/gpu-pate-thermique/">voir mon précédent article</a> pour avoir plus de détails quant au remplacement de la pâte thermique sur une (autre) carte graphique.</p><p>C’en était presque fini des interventions matérielles, ne me restait plus qu’à installer une carte WiFi ASUS PCE-AC51 que je n’utilisais plus (<a href="http://www.hommiehk.com/product/hommie-dual-band-wifi-card-ac-1200mbps-wireless-pci-express-network-adapter-bluetooth-4-2-wi-fi-adapter-network-card-for-desktop-computer-win7-8-10-linux4-2/">suite à son remplacement</a> par un assemblage chinois acquis il y a peu, j’en reparlerai peut-être un jour) dans le dernier port PCI de libre et je pouvais enfin refermer le boîtier. L’intervention matérielle terminée, je pouvais me consacrer à l’intervention logicielle, dont passer de Debian Stretch à Debian Buster pour la tâche la plus importante, puis <a href="https://github.com/lwfinger/rtlwifi_new">installer les pilotes rtlwifi_new</a> pour que la carte WiFi soit à peu près mieux prise en charge.</p><p>Lors de la mise à jour de Debian, j’ai pu remarquer une lenteur à peine soutenable pour moi du système, surtout dans l’application des mises à jour de paquets dans le système de fichiers. Je résolu d’insérer un SSD de 60Go que je n’utilisais pas pour héberger la partition système, laissant le dossier utilisateur sur le disque dur de 500Go. Mais avant cela, je voulais mettre à jour le BIOS de la carte mère vers sa dernière version publiée en 2013 (qui ne risquait donc plus de changer).</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="media/27717e1b.IMG_20190329_121349.jpg" data-original-source="https://postblue.info/content/images/2019/03/IMG_20190329_121349.jpg" class="kg-image" alt="Recherche de pièces pour le PC de ma sœur (2012)"><figcaption>Résultat final.</figcaption></figure><!--kg-card-end: image--><p>Cette carte mère MSI date d’une époque où les mises à jour du BIOS étaient livrées exclusivement au moyen d’un exécutable Windows, alors même qu’elle supporte la mise à jour depuis une clé USB, sans besoin de passer par le système d’exploitation. Plutôt que de chercher à décompresser l’exécutable pour récupérer le fichier de mise à jour, j’ai utilisé un disque dur que j’ai pour faire des maintenances où est installé un Windows 7 sans rien de préinstallé sinon quelques drivers, et lancé de là la mise à jour du BIOS. Quitte à mettre à jour des trucs, j’en ai profité pour <a href="https://www.techpowerup.com/download/nvidia-nvflash/">télécharger l’utilitaire NVFlash</a> et avec ce dernier <a href="https://www.techpowerup.com/vgabios/145921/msi-gtx660-2048-130529">flasher le dernier BIOS en date pour mon modèle de GTX 660</a>.</p><p>Une fois la manipulation terminée, j’ai débranche le disque contenant Windows 7 et rebranché celui où était installé Debian. C’est alors que j’ai pu constater que la manipulation avait malheureusement effacé l’entrée UEFI idoine. Par conséquent, la machine ne trouvait aucun système d’exploitation installé et ne parvenait pas à démarrer.</p><p>J’aurais pu réinstaller GRUB en passant par <a href="https://wiki.debian.org/GrubEFIReinstall">une manipulation de sauvetage assez bien détaillée sur le wiki de Debian</a>, mais j’ai préféré la méthode forte : installer une Debian Stretch toute fraîche sur le SSD que j’allais de toutes façons utiliser comme disque d’amorçage. J’ai donc téléchargé <a href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/weekly-builds/multi-arch/iso-cd/">une image d’installation de Debian Testing</a> que j’ai mise sur une clé USB et installé le tout presque à l’identique.</p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="media/a866714f.plymouth-preview.png" data-original-source="https://postblue.info/content/images/2019/03/plymouth-preview.png" class="kg-image" alt="Recherche de pièces pour le PC de ma sœur (2012)"><figcaption>Buster c’est le nom du chien dans Toy Story ; le retrouveras-tu dans cette image ?</figcaption></figure><!--kg-card-end: image--><p>Puisque le dossier contenant les données d’utilisateur de l’installation précédente était encore sur le disque dur initial (j’avais paritionné le système pour que tout se retrouve dans une seule partition), j’ai suivi l’esprit de <a href="https://help.ubuntu.com/community/Partitioning/Home/Moving">cette fiche concernant le déplacement de la partition home dans une partition dédiée</a>. Ceci fait et après redémarrage, j’ai utilisé <a href="https://help.gnome.org/users/gnome-help/stable/disk-resize.html.fr">l’utilitaire GNOME Disques pour redimensionner la partition système</a> afin qu’elle utilise tout l’espace restant disponible. Je ne m’attarderai pas à expliquer en détail la configuration de Debian, d’autres articles sont plus adaptés à cela.</p><p>Ceci fait, la machine de ma sœur était fin prête. Pour lui faire un petit cadeau, j’ai été puiser dans mes bibliothèques GOG ou Humble Bundle. Pour faciliter l’installation de ces jeux, <a href="https://www.dotslashplay.it/">j’ai redécouvert l’excellent ./play.it</a> qui propose une collection de scripts qui produisent des paquets .deb prêt à être installés sur Debian.</p><h1 id="avis-de-recherche">Avis de recherche</h1><p>Sauf que j’aimerais aussi lui faire un autre cadeau, d’où le titre de cet article : je cherche des pièces de remplacement pour le PC de ma sœur. En premier lieu, je recherche un processeur et des barrettes de RAM, mais fondamentalement je recherche tout ce qui permettrait de pousser au plus loin cette machine qui a 7 ans. Le budget à disposition est très serré, tendance il n’y en a pas, mais on aimerait bien éviter de devoir (r)acheter du matériel suremballé alors qu’il y a certainement ce qu’il faut qui traîne dans le fond d’un tiroir.</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Pièce</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Processeur</td>
<td>Socket Intel LGA1155, plus puissant que son Intel Core i3-2100</td>
</tr>
<tr>
<td>Ventirad</td>
<td>Compatible LGA1155 évidemment, celui d’origine ne recouvre même pas totalement le processeur</td>
</tr>
<tr>
<td>RAM</td>
<td>max. 16 (2×8) Go DDR3-1600 MHz (DDR3-SDRAM PC12800)</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Si vous avez quelque chose qui fait l’affaire qui traîne dans le fond d’un tiroir, ça me permettrait de lui faire un chouette cadeau pour son anniversaire qui approche (dans un mois et demi). <a href="https://postblue.info/about/">N’hésitez pas à me contacter pour qu’on en discute.</a></p><!--kg-card-begin: image--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="media/259ba991.IMG_20190316_114004.jpg" data-original-source="https://postblue.info/content/images/2019/03/IMG_20190316_114004.jpg" class="kg-image" alt="Recherche de pièces pour le PC de ma sœur (2012)"><figcaption>La famille vous embrasse déjà.</figcaption></figure><!--kg-card-end: image-->


feed_id: 5fa94ada9d5c160bada1caf9
title: Recherche de pièces pour le PC de ma sœur (2012)
uri: 2021-06-19-Recherche-de-pièces-pour-le-PC-de-ma-sœur-(2012)
url: https://postblue.info/maintenance-dun-vieux-coucou-de-2012/
content:
<img src="media/5a51938b.IMG_20190329_121349-1.jpg" data-original-source="https://postblue.info/content/images/2019/03/IMG_20190329_121349-1.jpg" alt="Recherche de pi&#xE8;ces pour le PC de ma s&#x153;ur (2012)"><p>Pour les 16 ans de ma s&#x153;ur, notre m&#xE8;re m&#x2019;avait demand&#xE9; de monter un ordinateur de bureau pour elle. Pas un foudre de guerre, mais quelque chose qui lui permettrait de faire du travail bureautique auquel l&#x2019;exposeraient ses &#xE9;tudes sup&#xE9;rieures. C&#x2019;&#xE9;tait une machine &#xE0; bas co&#xFB;t construite avec un <a href="https://www.materiel.net/kit-d-evolution-pc/l456/">kit d&#x2019;&#xE9;volution PC de materiel.net</a>, d&#xE9;but 2012 (d&#xE9;j&#xE0;, pur&#xE9;e), et on peut dire qu&#x2019;elle a bien servi. Ce qui suit est <a href="https://herds.eu/notice/4403378">l&#x2019;extension de la diatribe initi&#xE9; sur GNU social</a>.</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Pi&#xE8;ce</th>
<th>Mod&#xE8;le</th>
</tr>
</thead>
<tbody>
<tr>
<td>CPU</td>
<td>Intel Core i3-2100 (3 Mo de cache, 3,1 GHz)</td>
</tr>
<tr>
<td>RAM</td>
<td>Kingston ValueRAM DDR3 2 x 2 Go PC10600</td>
</tr>
<tr>
<td>MB</td>
<td>MSI H61MA-E35 (B3)</td>
</tr>
<tr>
<td>HDD</td>
<td>Seagate Barracuda 500 Go 7200.14 series</td>
</tr>
<tr>
<td>PSU</td>
<td>Cooler Master Elite Power 400W</td>
</tr>
<tr>
<td>Bo&#xEE;tier</td>
<td>Cooler Master Elite 342</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Apr&#xE8;s avoir un peu chipot&#xE9; &#xE0; la machine lors d&#x2019;un souper familial, j&#x2019;ai repris le PC de ma s&#x153;ur chez moi histoire d&#x2019;&#xEA;tre au calme pour passer son syst&#xE8;me d&#x2019;exploitation de Debian Stretch &#xE0; Buster, lui installer quelques jeux, et surtout lui installer du mat&#xE9;riel que j&#x2019;avais r&#xE9;cup&#xE9;r&#xE9; de ci de l&#xE0; :</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Pi&#xE8;ce</th>
<th>Mod&#xE8;le</th>
</tr>
</thead>
<tbody>
<tr>
<td>GPU</td>
<td>MSI GeForce GTX 660 Twin Frozr 3 OC, &#xE0; la place du circuit graphique int&#xE9;gr&#xE9; au processeur Intel</td>
</tr>
<tr>
<td>SSD</td>
<td>Corsair Force Series LS 60 Go, la machine ne fonctionnant encore qu&#x2019;avec un disque dur</td>
</tr>
<tr>
<td>AP</td>
<td>ASUS PCE-AC51, d&#xF4;t&#xE9;e de deux antennes pour capter correctement le WiFi familial</td>
</tr>
<tr>
<td>SYS_FAN1</td>
<td>Noctua NF-P12 &#xE0; la place du ventilateur bruyant livr&#xE9; d&#x2019;origine</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Pour subvenir plus facilement aux besoins de la carte graphique de second souffle que je lui ai install&#xE9;e, une <a href="https://fr.msi.com/Graphics-card/N660_TF_2GD5OC.html">nVidia GTX 660</a>, j&#x2019;avais l&#x2019;intention de remplacer l&#x2019;alimentation de 400W par une plus puissante de 550W. Malheureusement, cette derni&#xE8;re faisait un bruit tr&#xE8;s d&#xE9;rangeant, comme s&#x2019;il y avait quelque chose dans le chemin de la course du ventilateur. J&#x2019;ai donc remis en place l&#x2019;alimentation d&#x2019;origine.</p><p>Parlant de ventilateur, le bo&#xEE;tier comportait un ventilateur de 120mm d&#x2019;origine en entr&#xE9;e d&#x2019;air. Cependant, &#xE0; cause d&#x2019;un fil trop court pour la connecter &#xE0; la carte m&#xE8;re, ce dernier &#xE9;tait branch&#xE9; directement sur l&#x2019;alimentation. Il n&#x2019;&#xE9;tait donc pas possible de laisser la carte m&#xE8;re contr&#xF4;ler sa vitesse en fonction de la chaleur ambiante du bo&#xEE;tier. J&#x2019;ai donc remplac&#xE9; le ventilateur d&#x2019;admission d&#x2019;air par l&#x2019;un des Noctua NF-P12 laiss&#xE9;s de c&#xF4;t&#xE9; <a href="https://postblue.info/recuperation-ordinateur-pieces-detachees/">suite &#xE0; un pr&#xE9;c&#xE9;dent bricolage</a> de r&#xE9;cup&#xE9;ration, ventilateurs qui ont bien heureusement un tr&#xE8;s long c&#xE2;ble de raccordement que j&#x2019;ai finalement pu brancher sur la carte m&#xE8;re.</p><p>En continuant sur le refroidissement, j&#x2019;ai aussi profit&#xE9; de l&#x2019;occasion pour remplacer la p&#xE2;te thermique sur le processeur, p&#xE2;te qui &#xE9;tait devenue relativement dure et plus vraiment conductive avec le temps. J&#x2019;ai proc&#xE9;d&#xE9; &#xE0; la m&#xEA;me manipulation sur la carte graphique, vous pouvez <a href="https://postblue.info/gpu-pate-thermique/">voir mon pr&#xE9;c&#xE9;dent article</a> pour avoir plus de d&#xE9;tails quant au remplacement de la p&#xE2;te thermique sur une (autre) carte graphique.</p><p>C&#x2019;en &#xE9;tait presque fini des interventions mat&#xE9;rielles, ne me restait plus qu&#x2019;&#xE0; installer une carte WiFi ASUS PCE-AC51 que je n&#x2019;utilisais plus (<a href="http://www.hommiehk.com/product/hommie-dual-band-wifi-card-ac-1200mbps-wireless-pci-express-network-adapter-bluetooth-4-2-wi-fi-adapter-network-card-for-desktop-computer-win7-8-10-linux4-2/">suite &#xE0; son remplacement</a> par un assemblage chinois acquis il y a peu, j&#x2019;en reparlerai peut-&#xEA;tre un jour) dans le dernier port PCI de libre et je pouvais enfin refermer le bo&#xEE;tier. L&#x2019;intervention mat&#xE9;rielle termin&#xE9;e, je pouvais me consacrer &#xE0; l&#x2019;intervention logicielle, dont passer de Debian Stretch &#xE0; Debian Buster pour la t&#xE2;che la plus importante, puis <a href="https://github.com/lwfinger/rtlwifi_new">installer les pilotes rtlwifi_new</a> pour que la carte WiFi soit &#xE0; peu pr&#xE8;s mieux prise en charge.</p><p>Lors de la mise &#xE0; jour de Debian, j&#x2019;ai pu remarquer une lenteur &#xE0; peine soutenable pour moi du syst&#xE8;me, surtout dans l&#x2019;application des mises &#xE0; jour de paquets dans le syst&#xE8;me de fichiers. Je r&#xE9;solu d&#x2019;ins&#xE9;rer un SSD de 60Go que je n&#x2019;utilisais pas pour h&#xE9;berger la partition syst&#xE8;me, laissant le dossier utilisateur sur le disque dur de 500Go. Mais avant cela, je voulais mettre &#xE0; jour le BIOS de la carte m&#xE8;re vers sa derni&#xE8;re version publi&#xE9;e en 2013 (qui ne risquait donc plus de changer).</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="media/27717e1b.IMG_20190329_121349.jpg" data-original-source="https://postblue.info/content/images/2019/03/IMG_20190329_121349.jpg" class="kg-image" alt="Recherche de pi&#xE8;ces pour le PC de ma s&#x153;ur (2012)" loading="lazy"><figcaption>R&#xE9;sultat final.</figcaption></figure><p>Cette carte m&#xE8;re MSI date d&#x2019;une &#xE9;poque o&#xF9; les mises &#xE0; jour du BIOS &#xE9;taient livr&#xE9;es exclusivement au moyen d&#x2019;un ex&#xE9;cutable Windows, alors m&#xEA;me qu&#x2019;elle supporte la mise &#xE0; jour depuis une cl&#xE9; USB, sans besoin de passer par le syst&#xE8;me d&#x2019;exploitation. Plut&#xF4;t que de chercher &#xE0; d&#xE9;compresser l&#x2019;ex&#xE9;cutable pour r&#xE9;cup&#xE9;rer le fichier de mise &#xE0; jour, j&#x2019;ai utilis&#xE9; un disque dur que j&#x2019;ai pour faire des maintenances o&#xF9; est install&#xE9; un Windows 7 sans rien de pr&#xE9;install&#xE9; sinon quelques drivers, et lanc&#xE9; de l&#xE0; la mise &#xE0; jour du BIOS. Quitte &#xE0; mettre &#xE0; jour des trucs, j&#x2019;en ai profit&#xE9; pour <a href="https://www.techpowerup.com/download/nvidia-nvflash/">t&#xE9;l&#xE9;charger l&#x2019;utilitaire NVFlash</a> et avec ce dernier <a href="https://www.techpowerup.com/vgabios/145921/msi-gtx660-2048-130529">flasher le dernier BIOS en date pour mon mod&#xE8;le de GTX 660</a>.</p><p>Une fois la manipulation termin&#xE9;e, j&#x2019;ai d&#xE9;branche le disque contenant Windows 7 et rebranch&#xE9; celui o&#xF9; &#xE9;tait install&#xE9; Debian. C&#x2019;est alors que j&#x2019;ai pu constater que la manipulation avait malheureusement effac&#xE9; l&#x2019;entr&#xE9;e UEFI idoine. Par cons&#xE9;quent, la machine ne trouvait aucun syst&#xE8;me d&#x2019;exploitation install&#xE9; et ne parvenait pas &#xE0; d&#xE9;marrer.</p><p>J&#x2019;aurais pu r&#xE9;installer GRUB en passant par <a href="https://wiki.debian.org/GrubEFIReinstall">une manipulation de sauvetage assez bien d&#xE9;taill&#xE9;e sur le wiki de Debian</a>, mais j&#x2019;ai pr&#xE9;f&#xE9;r&#xE9; la m&#xE9;thode forte : installer une Debian Stretch toute fra&#xEE;che sur le SSD que j&#x2019;allais de toutes fa&#xE7;ons utiliser comme disque d&#x2019;amor&#xE7;age. J&#x2019;ai donc t&#xE9;l&#xE9;charg&#xE9; <a href="https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/weekly-builds/multi-arch/iso-cd/">une image d&#x2019;installation de Debian Testing</a> que j&#x2019;ai mise sur une cl&#xE9; USB et install&#xE9; le tout presque &#xE0; l&#x2019;identique.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="media/a866714f.plymouth-preview.png" data-original-source="https://postblue.info/content/images/2019/03/plymouth-preview.png" class="kg-image" alt="Recherche de pi&#xE8;ces pour le PC de ma s&#x153;ur (2012)" loading="lazy"><figcaption>Buster c&#x2019;est le nom du chien dans Toy Story ; le retrouveras-tu dans cette image ?</figcaption></figure><p>Puisque le dossier contenant les donn&#xE9;es d&#x2019;utilisateur de l&#x2019;installation pr&#xE9;c&#xE9;dente &#xE9;tait encore sur le disque dur initial (j&#x2019;avais paritionn&#xE9; le syst&#xE8;me pour que tout se retrouve dans une seule partition), j&#x2019;ai suivi l&#x2019;esprit de <a href="https://help.ubuntu.com/community/Partitioning/Home/Moving">cette fiche concernant le d&#xE9;placement de la partition home dans une partition d&#xE9;di&#xE9;e</a>. Ceci fait et apr&#xE8;s red&#xE9;marrage, j&#x2019;ai utilis&#xE9; <a href="https://help.gnome.org/users/gnome-help/stable/disk-resize.html.fr">l&#x2019;utilitaire GNOME Disques pour redimensionner la partition syst&#xE8;me</a> afin qu&#x2019;elle utilise tout l&#x2019;espace restant disponible. Je ne m&#x2019;attarderai pas &#xE0; expliquer en d&#xE9;tail la configuration de Debian, d&#x2019;autres articles sont plus adapt&#xE9;s &#xE0; cela.</p><p>Ceci fait, la machine de ma s&#x153;ur &#xE9;tait fin pr&#xEA;te. Pour lui faire un petit cadeau, j&#x2019;ai &#xE9;t&#xE9; puiser dans mes biblioth&#xE8;ques GOG ou Humble Bundle. Pour faciliter l&#x2019;installation de ces jeux, <a href="https://www.dotslashplay.it/">j&#x2019;ai red&#xE9;couvert l&#x2019;excellent ./play.it</a> qui propose une collection de scripts qui produisent des paquets .deb pr&#xEA;t &#xE0; &#xEA;tre install&#xE9;s sur Debian.</p><h1 id="avis-de-recherche">Avis de recherche</h1><p>Sauf que j&#x2019;aimerais aussi lui faire un autre cadeau, d&#x2019;o&#xF9; le titre de cet article : je cherche des pi&#xE8;ces de remplacement pour le PC de ma s&#x153;ur. En premier lieu, je recherche un processeur et des barrettes de RAM, mais fondamentalement je recherche tout ce qui permettrait de pousser au plus loin cette machine qui a 7 ans. Le budget &#xE0; disposition est tr&#xE8;s serr&#xE9;, tendance il n&#x2019;y en a pas, mais on aimerait bien &#xE9;viter de devoir (r)acheter du mat&#xE9;riel sur-emball&#xE9; alors qu&#x2019;il y a certainement ce qu&#x2019;il faut qui tra&#xEE;ne dans le fond d&#x2019;un tiroir.</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>Pi&#xE8;ce</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>Processeur</td>
<td>Socket Intel LGA1155, plus puissant que son Intel Core i3-2100</td>
</tr>
<tr>
<td>Ventirad</td>
<td>Compatible LGA1155 &#xE9;videmment, celui d&#x2019;origine ne recouvre m&#xEA;me pas totalement le processeur</td>
</tr>
<tr>
<td>RAM</td>
<td>max. 16 (2&#xD7;8) Go DDR3-1600 MHz (DDR3-SDRAM PC12800)</td>
</tr>
<tr>
<td>SYS_FAN{2,3}</td>
<td>2 &#xD7; ventilateurs de 80 ou 90 mm pour accentuer le flux d&#x2019;air de la machine (un en admission, un en sortie d&#x2019;air)</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>Si vous avez quelque chose qui fait l&#x2019;affaire qui tra&#xEE;ne dans le fond d&#x2019;un tiroir, &#xE7;a me permettrait de lui faire un chouette cadeau pour son anniversaire qui approche (dans un mois et demi). <a href="https://postblue.info/about/">N&#x2019;h&#xE9;sitez pas &#xE0; me contacter pour qu&#x2019;on en discute.</a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="media/259ba991.IMG_20190316_114004.jpg" data-original-source="https://postblue.info/content/images/2019/03/IMG_20190316_114004.jpg" class="kg-image" alt="Recherche de pi&#xE8;ces pour le PC de ma s&#x153;ur (2012)" loading="lazy"><figcaption>La famille vous embrasse d&#xE9;j&#xE0;.</figcaption></figure>


feed_id: 5fa94ada9d5c160bada1caf6
title: Remplacer la pâte thermique d’une carte graphique
uri: 2021-06-19-Remplacer-la-pâte-thermique-d-une-carte-graphique
url: https://postblue.info/gpu-pate-thermique/
content:
<!--kg-card-begin: markdown--><img src="media/26119af4.IMG_20181107_110553-2.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_110553-2.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique"><p>J&#x2019;ai remplac&#xE9; la p&#xE2;te thermique faisant le contact entre ma carte graphique et son syst&#xE8;me de refroidissement. Il y a un peu de temps d&#xE9;j&#xE0;, j&#x2019;avais remplac&#xE9; celui fourni par le constructeur par un nouveau bien plus performant&#xA0;: un <a href="https://www.raijintek.com/en/products_detail.php?ProductID=46">Raijintek Morpheus&#xA0;II</a><sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> surmont&#xE9; par deux ventilateurs <a href="https://noctua.at/fr/nf-f12-pwm-chromax-black-swap.html">Noctua NF-F12</a><sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>.</p>
<p><img src="media/8de7047d.IMG_20181107_110553.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_110553.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Le mat&#xE9;riel n&#xE9;cessaire pour cette manipulation a &#xE9;t&#xE9;&#xA0;:</p>
<ul>
<li>deux tournevis cruciformes de tailles diff&#xE9;rentes afin d&#x2019;extraire la carte graphique (une <a href="https://www.msi.com/Graphics-card/Radeon-RX-580-ARMOR-8G-OC">AMD Radeon RX 580</a> acquise &#xE0; pas cher) de la tour dans laquelle elle sert (embout &#xE9;pais) et enlever le radiateur (embout fin)&#x2026; non je ne connais pas la largeur des embouts&#xA0;;</li>
<li>un flacon d&#x2019;alcool isopropylique r&#xE9;cup&#xE9;r&#xE9; &#xE0; la pharmacie du coin pour quelques pi&#xE8;ces, afin de nettoyer les r&#xE9;sidus de p&#xE2;te thermique sur les surfaces de contact que sont le processeur graphique et la base plane du radiateur&#xA0;;</li>
<li>quelques chiffons et un coton-tige afin de nettoyer d&#xE9;licatement les r&#xE9;sidus pr&#xE9;sents sur lesdites surfaces en les imbibant d&#x2019;alcool isopropylique&#xA0;;</li>
<li>une surface de travail d&#xE9;gag&#xE9;e et &#xE9;clair&#xE9;e, du temps et de la patience.</li>
</ul>
<p>Pour commencer la manipulation, apr&#xE8;s avoir extrait la carte graphique de son bo&#xEE;tier, je l&#x2019;ai d&#xE9;pos&#xE9;e sur mon &#xAB;&#xA0;plan de travail&#xA0;&#xBB; (la table de la salle &#xE0; manger), ventilateurs en dessous, exposant les vis retenant le radiateur.</p>
<p><img src="media/2ffe0f69.IMG_20181107_110635.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_110635.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Ces vis retiennent chacune un ressort qui augmente la pression du radiateur sur le processeur graphique. Il faut donc les enlever pr&#xE9;cautionneusement en d&#xE9;vissant chaque vis de quelques degr&#xE9;s &#xE0; la fois puis passer &#xE0; la suivante suivant la diagonale.</p>
<p>Avant d&#x2019;enlever le radiateur, il est n&#xE9;cessaire de d&#xE9;connecter tous les c&#xE2;bles qui font le pont entre la base de la carte graphique et son syst&#xE8;me de refroidissement. Une fois les vis compl&#xE8;tement d&#xE9;serr&#xE9;es, il est d&#xE9;sormais possible de retirer la carte graphique elle-m&#xEA;me de son syst&#xE8;me de refroidissement. Si comme moi vous avez les cheveux longs, je vous conseille de les attacher parce que c&#x2019;est &#xE0; partir de cette &#xE9;tape que j&#x2019;ai commenc&#xE9; &#xE0; en retrouver un peu partout sur ma carte graphique au fur et &#xE0; mesure que je la nettoyais (c&#x2019;est l&#x2019;automne, les feuilles tombent).</p>
<p><img src="media/e9f8028d.IMG_20181107_111026.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_111026.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Une fois que les surfaces de contact sont expos&#xE9;es, il est enfin possible de les nettoyer, c&#x2019;est-&#xE0;-dire les pr&#xE9;parer &#xE0; accueillir une nouvelle couche de p&#xE2;te thermique. Je &#xAB;&#xA0;mouille&#xA0;&#xBB; donc un chiffon doux avec un peu d&#x2019;alcool isopropylique et je le passe d&#xE9;licatement sur les surfaces salies par la pr&#xE9;c&#xE9;dente p&#xE2;te thermique. La base du radiateur est totalement plane, il est donc tr&#xE8;s simple de la nettoyer.</p>
<p><img src="media/75c2de54.IMG_20181107_111644.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_111644.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"><br>
<img src="media/c43f1aa7.IMG_20181107_111639.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_111639.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Par contre, j&#x2019;utilise un coton tige que je tamponne doucement sur les parties fragiles comme le processeur graphique. J&#x2019;utilise ce coton-tige pour chasser les r&#xE9;sidus de p&#xE2;te thermique dans les creux et recoins entourant le processeur. Une fois le tout bien nettoy&#xE9;, je passe un chiffon sec sur les surfaces de contact nettoy&#xE9;es pour en enlever les derniers r&#xE9;sidus.</p>
<p><img src="media/577ad770.IMG_20181107_112426.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112426.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Une fois le tout nettoy&#xE9; et s&#xE9;ch&#xE9;, il est temps de sortir la p&#xE2;te thermique de son emballage. M&#xEA;me si &#xE0; peu pr&#xE8;s n&#x2019;importe quelle p&#xE2;te thermique de qualit&#xE9; fera l&#x2019;affaire (Arctic, Arctic Silver, Noctua, Gelid&#x2026; <a href="http://www.thermal-grizzly.com/fr/produits/42-conductonaut-fr">m&#xEA;me en m&#xE9;tal liquide</a> si vous n&#x2019;avez pas les mains qui tremblent autant que les miennes), j&#x2019;ai choisi la <a href="http://www.thermal-grizzly.com/fr/produits/43-kryonaut-fr">Thermal Grizzly Kryonaut</a> qui a l&#x2019;avantage d&#x2019;&#xEA;tre livr&#xE9;e avec un applicateur &#xE0; visser au bout de la seringue de p&#xE2;te thermique que je trouve tr&#xE8;s pratique quand on a les mains qui tremblent, vu qu&#x2019;il me permet d&#x2019;&#xE9;viter d&#x2019;en &#xE9;taler partout, r&#xE2;ler, nettoyer, recommencer.</p>
<p><img src="media/a27fabe1.IMG_20181107_112749.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112749.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>&#xC0; noter que la p&#xE2;te thermique s&#x2019;utilise avec parcimonie, ce n&#x2019;est pas du beurre que l&#x2019;on tartine malgr&#xE9; une consistance qui parfois s&#x2019;en rapproche. La couche doit &#xEA;tre relativement fine et servir &#xE0; aplanir les surfaces en contact. Il ne faut pas en mettre trop si on ne veut pas se retrouver avec des r&#xE9;sidus de p&#xE2;te thermique sur les composants entourant le processeur graphique qui aurait &#xE9;t&#xE9; chass&#xE9; de la surface sous la pression de la surface de contact du ventilateur reviss&#xE9;.</p>
<p><img src="media/607c75a2.IMG_20181107_112826.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112826.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>L&#x2019;&#xE9;tape suivante est justement le replacement du radiateur sur la carte. Pratiquement, il s&#x2019;agit plut&#xF4;t de l&#x2019;inverse, replacer la carte sur le radiateur. Remonter le dissipateur de chaleur se fait en alignant les trous dans le circuit imprim&#xE9; avec le vis hexagonales qui sont sur les clips &#xE0; la base du radiateur. Il reste &#xE0; aligner l&#xE0;-dessus la plaque arri&#xE8;re (le c&#xF4;t&#xE9; le plus mou en contact avec la carte graphique pour ne pas &#xE9;craser les composants sous elle) et les vis &#xE0; ressort. J&#x2019;ai resserr&#xE9; les vis comme je les ai enlev&#xE9;es&#xA0;: des rotations de quelques degr&#xE9;s &#xE0; la fois sur chaque vis en suivant les diagonales.</p>
<p><img src="media/64a25b52.IMG_20181107_112933.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_112933.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Il ne me restait qu&#x2019;&#xE0; rebrancher les ventilateurs &#xE0; leur contr&#xF4;leur pour que je puisse profiter de la vue de mon bricolage achev&#xE9;&#xA0;: une carte graphique tr&#xE8;s bien refroidie gr&#xE2;ce &#xE0; un dissipateur de chaleur de rechange trois fois plus gros que celui d&#x2019;origine, mis en contact gr&#xE2;ce &#xE0; une fine couche de tr&#xE8;s bonne p&#xE2;te thermique.</p>
<p><img src="media/4c42c2c7.IMG_20181107_113153.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_113153.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Et sous un autre angle&#xA0;:</p>
<p><img src="media/70e90f23.IMG_20181107_113208.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_113208.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<p>Par contre, une carte graphique ainsi refroidie est bien plus lourde. Elle a donc tendance &#xE0; s&#x2019;affaisser, ployer &#xE0; cause du radiateur dont elle doit porter tout le poids. Pour lutter contre cet effet, j&#x2019;ai achet&#xE9; une &#xE9;querre de soutien qui se visse au m&#xEA;me endroit que les &#xE9;querres PCI. En pla&#xE7;ant un caoutchouc o&#xF9; l&#x2019;&#xE9;querre passe sous une surface plane des ventilateurs, j&#x2019;emp&#xEA;che donc ma carte graphique de plier tout en obstruant au minimum le flux d&#x2019;air entourant celle-ci.</p>
<p><img src="media/b384775b.IMG_20181107_114247.jpg" data-original-source="https://postblue.info/content/images/2018/11/IMG_20181107_114247.jpg" alt="Remplacer la p&#xE2;te thermique d&#x2019;une carte graphique" loading="lazy"></p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>&#xC0; noter que ma carte graphique n&#x2019;est pas jug&#xE9;e compatible avec le <a href="https://www.raijintek.com/en/products_detail.php?ProductID=46">Morpheus II</a>, le dissipateur VRM fourni n&#x2019;est pas utilisable parce que trop court. Il n&#x2019;est pas impossible que le <a href="https://www.raijintek.com/en/products_detail.php?ProductID=94">Morpheus VEGA</a> le soit plus mais je n&#x2019;ai pas la possibilit&#xE9; de le v&#xE9;rifier. J&#x2019;ai donc laiss&#xE9; le dissipateur VRM par d&#xE9;faut sur ma carte graphique. <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Les ventilateurs sont raccord&#xE9;s &#xE0; la carte graphique au moyen <a href="https://www.moddiy.com/products/4%252dPin-VGA-PWM-Mini-Connector-to-Dual-PH-Mini-4%252dPin-Fan-Cable-Splitter.html?setCurrencyId=3">d&#x2019;un adaptateur</a> en Y de modDIY (<a href="https://www.moddiy.com/products/Mini-4%252dPin-GPU-to-2-x-4%252dPin-PWM-Fan-Adapter.html?setCurrencyId=3">en voici un autre</a>). <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caf5
title: La Convivialité
uri: 2021-06-19-La-Convivialité
url: https://postblue.info/la-convivialite/
content:
<blockquote>On juge votre orthographe, mais on ne juge pratiquement jamais l&#x2019;orthographe elle-m&#xEA;me.</blockquote><img src="media/ba7efaa5.laconvivialit-.jpg" data-original-source="https://postblue.info/content/images/2018/09/laconvivialit-.jpg" alt="La Convivialit&#xE9;"><p>Pourquoi mettre un &#xAB; t &#xBB; &#xE0; &#xE9;dit ou bruit (comme dans &#xE9;diter ou bruiter), mais pas &#xE0; abri dont le verbe a pourtant la m&#xEA;me forme ? Pourquoi &#xE9;crit-on &#xAB; gel&#xE9;e de groseille &#xBB; au singulier et &#xAB; confiture de groseilles &#xBB; au pluriel ? La marque du pluriel d&#xE9;pend-t-elle uniquement du temps de cuisson ? Le seul son [s] peut s&#x2019;&#xE9;crire de 12 mani&#xE8;res diff&#xE9;rentes, et la lettre &#xAB; s &#xBB; peut se prononcer de 3 mani&#xE8;res diff&#xE9;rentes ([s], [z], ou muette)&#x2026; Voici quelques uns des constats, quelques unes des interrogations directrices de cette conf&#xE9;rence grand public &#xE0; propos de l&#x2019;orthographe fran&#xE7;aise.</p><p> &#xAB;&#xA0;La Convivialit&#xE9;&#xA0;&#xBB; est un moment ludique et instructif sur notre rapport &#xE0; l&#x2019;orthographe, alors que le sujet n&#x2019;est pas n&#xE9;cessairement des plus attrayants mais toujours des plus clivants : c&#x2019;est quand on aborde la possibilit&#xE9; de sa r&#xE9;forme que les r&#xE9;actionnaires sortent du bois. Une passion pour certains et un chemin de croix pour d&#x2019;autres, l&#x2019;orthographe s&#x2019;inscrit comme un &#xE9;valuateur tout le long de notre scolarit&#xE9; alors que son &#xE9;volution est faite d&#x2019;erreurs et d&#x2019;incompr&#xE9;hensions, de raccourcis et d&#x2019;illogismes. Bref, l&#x2019;orthographe fran&#xE7;aise, par sa complexit&#xE9; est un marqueur social qui permet de faire le tri.</p><p>Ce d&#xE9;bat passionn&#xE9; entourant l&#x2019;orthographe fran&#xE7;aise est men&#xE9; Arnaud Hoedt et J&#xE9;r&#xF4;me Piron, deux belges dipl&#xF4;m&#xE9;s en philologie romane. Ceux-ci d&#xE9;pouillent, de mani&#xE8;re dr&#xF4;le et instructive, les pr&#xE9;jug&#xE9;s durement ancr&#xE9;s concernant la langue fran&#xE7;aise et son instruction.</p><!--kg-card-begin: markdown--><iframe width="840" height="472,5" sandbox="allow-same-origin allow-scripts" src="https://tube.postblue.info/videos/embed/4c5214e1-eb91-4716-abe2-aa5aa81b4d18" allowfullscreen></iframe><!--kg-card-end: markdown--><p></p><p>Et comme ceux-ci le disent d&#x2019;entr&#xE9;e de jeu :</p><blockquote>Fini le baratin. L&#x2019;&#xE9;criture ne constitue ni la finalit&#xE9; ni la nature premi&#xE8;re du dire. Inutile d&apos;alourdir la plume par une p&#xE9;nible fioriture. Si le code s&#x2019;am&#xE9;liore, il d&#xE9;finira une mani&#xE8;re directe de traduire le son par le signe, libre de toute morale.</blockquote><p>Source : <a href="https://www.rtbf.be/auvio/detail_la-convivialite?id=2391239">La Convivialit&#xE9;</a>, spectacle complet sur RTBF Auvio, 03 septembre 2018.</p>


feed_id: 5fa94ada9d5c160bada1caf3
title: Récupération de composants pour construire un ordinateur polyvalent
uri: 2021-06-19-Récupération-de-composants-pour-construire-un-ordinateur-polyvalent
url: https://postblue.info/recuperation-ordinateur-pieces-detachees/
content:
<!--kg-card-begin: markdown--><img src="media/c12c7d7d.IMG_20180111_142423.jpg" data-original-source="https://postblue.info/content/images/2018/08/IMG_20180111_142423.jpg" alt="R&#xE9;cup&#xE9;ration de composants pour construire un ordinateur polyvalent"><p>J&#x2019;ai profit&#xE9; du renouvellement de mon <a href="https://postblue.info/materiel/">mat&#xE9;riel</a> de bureau pour construire un &#xAB;&#xA0;nouveau&#xA0;&#xBB; PC pour mon meilleur ami. R&#xE9;cup&#xE9;rant mon ensemble processeur-carte m&#xE8;re-RAM datant de fin 2008, il ne lui restait &#xAB;&#xA0;plus qu&#x2019;&#xE0;&#xA0;&#xBB; investir dans le reste de la configuration qui j&#x2019;esp&#xE8;re aura une longue vie.</p>
<table>
<thead>
<tr>
<th><strong>Ce qui est r&#xE9;cup&#xE9;r&#xE9;</strong></th>
<th>Mod&#xE8;le</th>
</tr>
</thead>
<tbody>
<tr>
<td>Processeur</td>
<td>Intel Core i7-920 (4 &#xD7; 2.66GHz)</td>
</tr>
<tr>
<td>Ventirad</td>
<td><a href="https://noctua.at/fr/nh-u12p">Noctua NH-U12P</a> et un seul <a href="https://noctua.at/fr/products/fan/nf-f12-pwm.html">Noctua NF-F12 PWM</a></td>
</tr>
<tr>
<td>M&#xE9;moire vive</td>
<td>6 &#xD7; 2 Go DDR3 1333 MHz</td>
</tr>
<tr>
<td>Carte m&#xE8;re</td>
<td><a href="https://www.asus.com/be-fr/Motherboards/P6T_Deluxe_V2/">ASUS P6T Deluxe V2</a></td>
</tr>
<tr>
<td>Carte d&#x2019;extension</td>
<td><a href="http://www.silverstonetek.com/product.php?area=en&amp;pid=327">Silverstone EC01-P</a></td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="media/a7ff9891.IMG_20180111_142423.jpg" data-original-source="https://postblue.info/content/images/2018/06/IMG_20180111_142423.jpg" class="kg-image" alt="R&#xE9;cup&#xE9;ration de composants pour construire un ordinateur polyvalent" loading="lazy"></figure><!--kg-card-begin: markdown--><p>J&#x2019;avais remplac&#xE9; les deux <a href="https://noctua.at/fr/products/fan/nf-p12.html">Noctua NF-P12</a> d&#x2019;origine pour le remplacer par un seul P12 PWM. Ce dernier a une vitesse de rotation minimale deux fois plus lente que ceux d&#x2019;origine, une consommation &#xE9;lectrique moindre pour un d&#xE9;bit d&#x2019;air comparable si pas plus important. Il est encore possible d&#x2019;en ajouter un deuxi&#xE8;me afin d&#x2019;augmenter le flux d&#x2019;air et laisser la vitesse de rotation des ventilateurs le plus longtemps au minimum.</p>
<p>La carte d&#x2019;extension Silverstone offre quant &#xE0; elle la possibilit&#xE9; de raccorder une prise USB3 &#xE0; la carte m&#xE8;re qui, datant de fin 2008, en est bien &#xE9;videmment d&#xE9;pourvue.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="media/86328983.WhatsApp-Image-2018-04-15-at-13.45.11.jpeg" data-original-source="https://postblue.info/content/images/2018/06/WhatsApp-Image-2018-04-15-at-13.45.11.jpeg" class="kg-image" alt="R&#xE9;cup&#xE9;ration de composants pour construire un ordinateur polyvalent" loading="lazy"></figure><!--kg-card-begin: markdown--><p>Il ne restait plus qu&#x2019;&#xE0; construire une machine sur cette base, en faisant attention &#xE0; ce qui est achet&#xE9; puisse &#xEA;tre r&#xE9;cup&#xE9;r&#xE9; et utilis&#xE9; dans des configurations ult&#xE9;rieures.</p>
<p>Les composants achet&#xE9;s ont &#xE9;t&#xE9; s&#xE9;lectionn&#xE9;s dans l&#x2019;optique d&#x2019;un compromis difficile entre des performances acceptables tant pour une utilisation multim&#xE9;dia que du d&#xE9;veloppement ou de l&#x2019;h&#xE9;bergement d&#xE9;centralis&#xE9;, qu&#x2019;un faible bruit. En effet, la machine tournera en permanence dans le salon et il est donc exclu qu&#x2019;elle fasse un boucan d&#x2019;enfer.</p>
<p>Pour choisir la <strong>carte graphique</strong>, j&#x2019;avais en premier lieu regard&#xE9; du c&#xF4;t&#xE9; de celles ayant &#xE0; dissipation passive (<em>fanless</em>). Si ces cartes font <em>en soi</em> le moins de bruit puisqu&#x2019;elles sont d&#xE9;pourvues de ventilateur, elles sont de fait largement moins puissantes qu&#x2019;une carte &#xE0; dissipation active. C&#x2019;est pourquoi j&#x2019;ai finalement opt&#xE9; pour une <a href="https://fr.msi.com/Graphics-card/GeForce-GTX-1050-Ti-GAMING-X-4G.html">MSI GeForce GTX 1050 Ti GAMING X 4G</a> qui est &#xE0; mon sens l&#x2019;une des meilleurs cartes de milieu de gamme profitant d&#x2019;une technologie r&#xE9;duisant les bruits &#xE9;mis par les ventilateurs en les arr&#xEA;tant d&#xE8;s que la carte passe en charge l&#xE9;g&#xE8;re. Seul b&#xE9;mol &#xE0; mon go&#xFB;t&#xA0;: le look effroyable du mat&#xE9;riel MSI avec dragons et renforts de LED qu&#x2019;il ne semble pas possible de d&#xE9;sactiver d&#xE9;finitivement &#xE0; moins de trouver le c&#xE2;ble d&#x2019;alimentation des loupiottes et de le d&#xE9;brancher.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="media/f383df31.WhatsApp-Image-2018-04-15-at-13.45.09.jpeg" data-original-source="https://postblue.info/content/images/2018/06/WhatsApp-Image-2018-04-15-at-13.45.09.jpeg" class="kg-image" alt="R&#xE9;cup&#xE9;ration de composants pour construire un ordinateur polyvalent" loading="lazy"></figure><!--kg-card-begin: markdown--><p>Concernant le <strong>stockage</strong>, il fallait parer &#xE0; toute &#xE9;ventualit&#xE9;&#xA0;: stockage de films, de musique, de jeux, d&#x2019;environnements de d&#xE9;veloppement, de machines virtuelles et de sauvegardes. Du coup, j&#x2019;ai regard&#xE9; du c&#xF4;t&#xE9; des disques estampill&#xE9;s pour NAS. Ayant moi-m&#xEA;me un disque Seagate dont je me plains du bruit, j&#x2019;ai choisi un Western Digital Red de 2 To (5400 tours par minutes, cache de 64 Mo). Il est de fait presque inaudible en raison de sa faible vitesse de rotation, et les performances sont honorables pour ce genre de disque. Ensuite, Debian a &#xE9;t&#xE9; install&#xE9; sur un SSD Crucial MX500 de 500GB. Si les disques sont &#xE0; la norme SATA III alors que la carte-m&#xE8;re, son &#xE2;ge oblige, ne supporte que la norme SATA II qui est deux fois moins rapide (3Gb/s vs 6Gb/s), les ports sont r&#xE9;trocompatibles et pourrant profiter de leurs pleines performances &#xE0; l&#x2019;avenir.</p>
<p>La liste des caract&#xE9;ristiques que j&#x2019;avais dress&#xE9;e pour choisir un <strong>bo&#xEE;tier</strong> comporenait une isolation acoustique pour qu&#x2019;il reste le plus silencieux possible quand il tourne, des filtres &#xE0; poussi&#xE8;re pour ne pas devoir l&#x2019;ouvrir &#xE0; intervalles trop rapproch&#xE9;s afin de le nettoyer, le plus de ventilateurs d&#x2019;origine et les plus grands possibles (d&#x2019;un diam&#xE8;tre de 140mm et pas de 120mm), construit en mat&#xE9;riaux solides afin de prot&#xE9;ger le mat&#xE9;riel de tout accident. Le mod&#xE8;le retenu a &#xE9;t&#xE9; le <a href="http://www.fractal-design.com/home/product/cases/define-series/define-r6-black">Fractal Design Define R6</a> qui r&#xE9;pond &#xE0; tous ces crit&#xE8;res et propose un design sobre et uniforme du bo&#xEE;tier qui ne raccolera pas le regard dans son coin de salon.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="media/ffe76a08.WhatsApp-Image-2018-04-15-at-13.45.07.jpeg" data-original-source="https://postblue.info/content/images/2018/06/WhatsApp-Image-2018-04-15-at-13.45.07.jpeg" class="kg-image" alt="R&#xE9;cup&#xE9;ration de composants pour construire un ordinateur polyvalent" loading="lazy"></figure><!--kg-card-begin: markdown--><p>Enfin, l&#x2019;<strong>alimentation</strong> choisie est enti&#xE8;rement modulaire, c&#x2019;est-&#xE0;-dire qu&#x2019;il n&#x2019;est besoin de brancher que les c&#xE2;bles dont il est besoin. &#xC0; l&#x2019;instar de la carte graphique, j&#x2019;en ai cherch&#xE9; une dont le ventilateur (le plus grand possible, de diam&#xE8;tre sup&#xE9;rieur &#xE0; 130mm) est &#xE0; l&#x2019;arr&#xEA;t sous faible utilisation et disposant d&#x2019;un rendement excellent. J&#x2019;ai donc choisi une <a href="https://www.corsair.com/eu/en/Power/Plug-Type/hxi-series-2017-config/p/CP-9020138-EU">Corsair HX850</a> r&#xE9;pondant &#xE0; ces crit&#xE8;res.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="media/870c80e8.WhatsApp-Image-2018-04-15-at-15.40.37.jpeg" data-original-source="https://postblue.info/content/images/2018/06/WhatsApp-Image-2018-04-15-at-15.40.37.jpeg" class="kg-image" alt="R&#xE9;cup&#xE9;ration de composants pour construire un ordinateur polyvalent" loading="lazy"></figure><!--kg-card-begin: markdown--><p>Le r&#xE9;sultat final est plaisant, silencieux et se laisse oublier dans un coin de la pi&#xE8;ce. L&#x2019;usage dira si mon meilleur ami est satisfait de ce que lui offre la configuration actuelle, et le temps si les composants choisis ne souffriront pas d&#x2019;&#xEA;tre utilis&#xE9;s dans sa prochaine machine.</p>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caf4
title: Comptabilité d’un hébergement indépendant, ça commence à coûter
uri: 2021-06-19-Comptabilité-d-un-hébergement-indépendant-ça-commence-à-coûte
url: https://postblue.info/a-votre-bon-coeur/
content:
<img src="media/114a7ceb.Screenshot_2018-08-26-Server---Hetzner-Cloud.png" data-original-source="https://postblue.info/content/images/2018/08/Screenshot_2018-08-26-Server---Hetzner-Cloud.png" alt="Comptabilit&#xE9; d&#x2019;un h&#xE9;bergement ind&#xE9;pendant, &#xE7;a commence &#xE0; co&#xFB;ter"><p>Depuis quelques temps, j&#x2019;orchestre une instance <a href="https://gnu.io/social/">GNU social</a> et une instance <a href="https://joinmastodon.org/">Mastodon</a>. Chaque service est h&#xE9;berg&#xE9; chez <a href="https://www.hetzner.com/cloud#pricing">Hetzner Cloud</a> sur son propre CX21 tout beau tout propre, que je loue en plus du serveur sur lequel j&#x2019;h&#xE9;berge <a href="https://postblue.info/auto-hebergement-liste/">mes quelques services personnels</a> dont ce blog.</p><ul><li>Les gnous (GNUs) &#xE9;voluant en <a href="https://herds.eu/group/troupeau">!troupeau</a>, <a href="https://herds.eu/">herds.eu</a> est une instance GNU social ouverte uniquement sur invitation. Pour &#xEA;tre invit&#xE9;&#xB7;e, il suffit d&#x2019;en contacter <a href="https://herds.eu/directory/users">n&#x2019;importe quel inscrit&#xB7;e</a> ou d&#x2019;envoyer un message <a href="https://postblue.info/about/">sur ma bo&#xEE;te personnelle</a>.</li><li>Le &#xAB; tweet &#xBB; se traduisant en &#xAB; pouet &#xBB; &#xA0;(&#xAB; <em>toot</em> &#xBB; dans la langue de Jeremy Corbyn) <a href="https://pouet.it">pouet.it</a> est une instance Mastodon anarchostalinienne et alli&#xE9;&#xB7;e&#xB7;s membre des f&#xE9;d&#xE9;rations OStatus (GNU social, PostActiv, Pleroma) et ActivityPub. Les inscriptions y sont libres, on y fait des blagues d&#x2019;extr&#xEA;me gauche, et je n&#x2019;y accepte ni le spam, ni la publicit&#xE9; commerciale, ni tout ce que les lois ou le <em>politburo autog&#xE9;r&#xE9;</em> m&#x2019;obligeraient &#xE0; supprimer.</li></ul><p>Cependant, maintenir ces deux services en plus de ceux qui ne concernent que moi repr&#xE9;sente un co&#xFB;t que j&#x2019;appr&#xE9;cierais voir soutenu par les personnes que j&#x2019;h&#xE9;berge ou qui seraient int&#xE9;ress&#xE9;es de se joindre &#xE0; l&#x2019;aventure : chaque h&#xE9;bergement co&#xFB;te 5,93 &#x20AC; par mois, chaque nom de domaine 14,52 &#x20AC; par an, soit un co&#xFB;t annuel de 85,68 &#x20AC; par an, par service (7,14 &#x20AC; par mois, par service).</p><p>Si quelques personnes pouvaient m&#x2019;aider dans cette d&#xE9;pense, j&#x2019;aurais la possibilit&#xE9; d&#x2019;investir sur fonds propres dans un h&#xE9;bergement plus performant si et quand celui qui est en place arrivera &#xE0; saturation, et d&#x2019;&#xEA;tre un minimum r&#xE9;tribu&#xE9; pour le travail d&#x2019;administration que ces services n&#xE9;cessitent.</p><p>Les moyens pour m&#x2019;aider financi&#xE8;rement sont les suivants :</p><ul><li>gr&#xE2;ce &#xE0; <a href="https://liberapay.com/postblue/">Liberapay</a> ;</li><li>gr&#xE2;ce &#xE0; <a href="https://www.paypal.me/gllmhyt">PayPal</a> ;</li><li>en Bitcoin &#xE0; l&#x2019;adresse <a>1KyKW8xDmdcPQ9sj8ruE92ha7arxt2uQSd</a> ;</li><li>en <a href="https://postblue.info/about/">me contactant</a> si aucun ne vous convient.</li></ul><p>Merci d&#x2019;avance.</p>


feed_id: 5fa94ada9d5c160bada1caf2
title: BBox 3, Dnsmasq et mega.nz chez Scarlet
uri: 2021-06-19-BBox-3-Dnsmasq-et-mega-nz-chez-Scarlet
url: https://postblue.info/dnsmasq-mega-co/
content:
<!--kg-card-begin: markdown--><img src="media/b04ff00c.IMG_20170916_223639.jpg" data-original-source="https://postblue.info/content/images/2018/08/IMG_20170916_223639.jpg" alt="BBox 3, Dnsmasq et mega.nz chez Scarlet"><p>Un jour l&apos;op&#xE9;rateur belge Scarlet, succursale de Proximus, a d&#xE9;cid&#xE9; de faire un blocage DNS <a href="https://en.wikipedia.org/wiki/Websites_blocked_in_Belgium">sur le site MEGA et d&#x2019;autres</a>.</p>
<p>Avant, on pouvait s&#x2019;en sortir en modifiant les DNS &#xE0; m&#xEA;me la BBox, le modem-routeur en carton de Proximus<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>. Or, depuis quelques it&#xE9;rations cette machine ne permet plus de changer les serveurs DNS qui lui sont attribu&#xE9;s par d&#xE9;faut. L&#x2019;op&#xE9;rateur se justifie en la mati&#xE8;re de la sorte : le mat&#xE9;riel qu&#x2019;il fournit &#xE0; ses clients ne doit pas permettre d&#x2019;outrepasser le blocage qui lui est impos&#xE9; par d&#xE9;cision de justice<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>. Sauf que le blocage de certains sites d&#xE9;borde largement les obligations l&#xE9;gales de l&#x2019;op&#xE9;rateur qui est un peu trop <em>pro-actif</em> en la mati&#xE8;re et en contrarie toute utilisation l&#xE9;gitime<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>.</p>
<p><img src="media/e8a53fcf.IMG_20170916_223639.jpg" data-original-source="https://postblue.info/content/images/2017/11/IMG_20170916_223639.jpg" alt="BBox 3, Dnsmasq et mega.nz chez Scarlet" loading="lazy"></p>
<p>N&#x2019;ayant pas encore investi quelques heures de mon temps n&#xE9;cessaires &#xE0; la configuration d&apos;un <a href="http://pcengines.ch/apu1d.htm">PC Engines</a> l&#xE9;gu&#xE9; par <a href="https://id-libre.org/">un gentil lecteur</a>, j&#x2019;ai plut&#xF4;t cherch&#xE9; une solution &#xE0; mettre en &#x153;uvre sur ma machine locale en utilisant Dnsmasq d&#xE9;j&#xE0; mobilis&#xE9; par le gestionnaire de connexion NetworkManager.</p>
<p>Installer le paquet <code>dnsmasq</code> afin que celui-ci puisse &#xEA;tre utilis&#xE9; par le gestionnaire de connexion Network Manager afin de mettre en cache les recherches DNS, permettant de raccourcir les d&#xE9;lais de r&#xE9;solution.</p>
<pre><code>sudo apt update; sudo apt install dnsmasq
</code></pre>
<p>C&apos;est dans <code>/etc/NetworkManager/NetworkManager.conf</code> que l&apos;on active l&#x2019;utilisation de Dnsmasq, qui permet &#xE9;galement de mettre en cache la r&#xE9;solution des noms de domaine.</p>
<pre><code>sudo nano /etc/NetworkManager/NetworkManager.conf
</code></pre>
<p>Et l&#xE0; changer la ligne <code>dns=...</code> pour la suivante:</p>
<pre><code>dns=dnsmasq
</code></pre>
<p>Ensuite, il ne reste qu&#x2019;&#xE0; d&#xE9;clarer des serveurs de noms (<a href="https://www.fdn.fr/actions/dns/">ici du French Data Network</a>) par nom de domaine qu&#x2019;on voudrait voir r&#xE9;solu. Ouvrir un fichier de configuration :</p>
<pre><code>sudo nano /etc/NetworkManager/dnsmasq.d/custom.conf
</code></pre>
<p>Et ajouter une ligne similaire &#xE0; la suivante pour chaque domaine dont on veut que la r&#xE9;solution DNS ne passe pas par celle de la BBox :</p>
<pre><code>server=/mega.nz/80.67.169.40
</code></pre>
<p>Vous pouvez ajouter n&apos;importe quel nom de domaine bloqu&#xE9; sans base l&#xE9;gale par votre op&#xE9;rateur selon la structure <code>server=/domaine.nom/DNS</code>. Ensuite, sauvegardez le fichier et red&#xE9;marrez NetworkManager.</p>
<pre><code>sudo systemctl restart NetworkManager
</code></pre>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Actuellement, ladite BBox ne r&#xE9;sout plus les noms de domaine en <code>.local</code>. Parce que tant qu&#x2019;&#xE0; refourger de la merde au client, autant y aller franco. <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn2" class="footnote-item"><p>R&#xE9;f&#xE9;rence souhait&#xE9;e. <a href="#fnref2" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Dans mon cas, l&#x2019;archive d&#x2019;un obscur projet trouv&#xE9; sur les forums d&#x2019;XDA Developers. <a href="#fnref3" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caf1
title: LaTeX : 4 flyers sur une page A4
uri: 2021-06-19-LaTeX-4-flyers-sur-une-page-A4
url: https://postblue.info/latex-4-flyers-sur-une-page-a4/
content:
<!--kg-card-begin: markdown--><img src="media/807930b3.PhotoFunia-1501321949.png" data-original-source="https://postblue.info/content/images/2017/08/PhotoFunia-1501321949.png" alt="LaTeX : 4 flyers sur une page A4"><p>Afin d&#x2019;avoir 4 fois le m&#xEA;me document en A6 sur une m&#xEA;me page A4, j&#x2019;utilise le code LaTeX suivant :</p>
<pre><code>\documentclass[a4paper]{article}
\usepackage{pdfpages}

\begin{document}

\includepdf[nup=2x2, duplicatepages=4, delta=25 40]{Document-1}

\end{document}
</code></pre>
<h1 id="explication">Explication</h1>
<ul>
<li><code>\documentclass[a4paper]{article}</code> : ouverture du pr&#xE9;ambule du document, pr&#xE9;cisant qu&#x2019;on utilise la classe <code>article</code> sur une page A4</li>
<li><code>\usepackage{pdfpages}</code> : mobilisation du paquet <a href="https://www.ctan.org/pkg/pdfpages"><code>pdfpages</code></a> qui simplifie l&#x2019;inclusion de documents PDF externes au sein de documents LaTeX et qui permet de mettre plusieurs pages logiques sur chaque feuille de papier</li>
<li><code>\begin{document}</code> : balise ouvrant du document &#xE0; proprement parler, qui sera ferm&#xE9;e par <code>\end{document}</code></li>
<li><code>\includepdf[nup=2x2, duplicatepages=4, delta=25 40]{Document-1}</code> :
<ul>
<li><code>\includepdf</code> : ins&#xE8;re les pages d&#x2019;un document PDF externe</li>
<li><code>nup=2x2</code> : met plusieurs pages logiques sur chaque feuille de papier (2 pages horizontalement et 2 verticalement)</li>
<li><code>duplicatepages=4</code> : duplique chaque page (ici il n&#x2019;y en a qu&#x2019;une seule) 4 fois</li>
<li><code>delta=25 40</code> (valeur &#xE0; ajuster) espace horizontalement et verticalement les pages logiques, afin d&apos;avoir une bordure plus ou moins &#xE9;gale autour du feuillet un fois imprim&#xE9; et d&#xE9;coup&#xE9; (l&#x2019;imprimante ajustant le document &#xE0; sa zone d&#x2019;impression qui n&#x2019;est pas sans bordure)</li>
</ul>
</li>
</ul>
<h1 id="rsultat">R&#xE9;sultat</h1>
<p><img src="media/1114fd08.massicot.png" data-original-source="https://postblue.info/content/images/2017/07/massicot.png" alt="LaTeX : 4 flyers sur une page A4" loading="lazy"></p>
<p>(Oui j&#x2019;assume le graphisme r&#xE9;tro-futuriste.)</p>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caf0
title: Ouverture d’une instance Mastodon
uri: 2021-06-19-Ouverture-d-une-instance-Mastodon
url: https://postblue.info/ouverture-dune-instance-mastodon/
content:
<!--kg-card-begin: markdown--><img src="media/57baf4b5.high-res-mastodon-rendering.svg" data-original-source="https://postblue.info/content/images/2018/08/high-res-mastodon-rendering.svg" alt="Ouverture d&#x2019;une instance Mastodon"><p>C&apos;est ici que &#xE7;a se passe : <a href="https://pouet.it">pouet.it</a>. Pour l&apos;instant tout tourne sur un Scaleway C1, que je supervise pour voir les besoins de la b&#xEA;te.</p>
<p>Un Manifeste/R&#xE8;glement d&apos;ordre int&#xE9;rieur <a href="https://pad.postblue.info/p/pouet">est en cours de r&#xE9;daction</a> concernant l&#x2019;identit&#xE9; de l&#x2019;instance, ses r&#xE8;gles de mod&#xE9;ration... Si &#xE7;a vous int&#xE9;resse, n&apos;h&#xE9;sitez pas &#xE0; contribuer.</p>
<p>Mastodon est un logiciel bas&#xE9; sur le protocole OStatus, qui est le m&#xEA;me que celui de GNU social : je reste donc actif sur mon compte <a href="https://herds.eu/postblue">@postblue</a> et vous pouvez toujours me demander &#xE0; rejoindre cette instance.</p>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caef
title: Prosody : mise à jour automatique des modules communautaires
uri: 2021-06-19-Prosody-mise-à-jour-automatique-des-modules-communautaires
url: https://postblue.info/prosody-mise-a-jour-automatique-des-modules-communautaires/
content:
<!--kg-card-begin: markdown--><img src="media/c3b919be.prosody-xmpp-server.jpg" data-original-source="https://postblue.info/content/images/2018/08/prosody-xmpp-server.jpg" alt="Prosody : mise &#xE0; jour automatique des modules communautaires"><p>Pour mettre &#xE0; jour automatique les modules communautaires que j&apos;utilise sur mon serveur de messagerie instantan&#xE9;e (XMPP) Prosody, j&apos;ai &#xE9;crit un <code>service</code> systemd ainsi qu&apos;un <code>timer</code> le lan&#xE7;ant toutes les nuits.</p>
<p>D&apos;abord, il faut &#xE9;videmment copier le d&#xE9;p&#xF4;t des modules communautaires quelque part sur le serveur o&#xF9; tourne <code>prosody</code> (par exemple <code>/usr/local/lib/prosody/modules</code>).</p>
<pre><code>sudo apt update
sudo apt install mercurial
sudo hg clone https://hg.prosody.im/prosody-modules/ /usr/local/lib/prosody/modules
</code></pre>
<p>Ensuite, &#xE9;diter le fichier de configuration <code>sudo -e /etc/prosody/prosody.cfg.lua</code> et y ajouter le chemin vers ce r&#xE9;pertoire.</p>
<pre><code>-- These paths are searched in the order specified, and before the default path
plugin_paths = { &quot;/usr/local/lib/prosody/modules&quot; }
</code></pre>
<p>Sauvegarder, relancer <code>prosody</code> et v&#xE9;rifier que le chemin est bien pris en compte.</p>
<pre><code>sudo service prosody restart
sudo prosodyctl about
</code></pre>
<p>Exemple :</p>
<p><img src="media/d0a54add.Capture-du-2017-03-09-10-51-58.png" data-original-source="https://postblue.info/content/images/2017/03/Capture-du-2017-03-09-10-51-58.png" alt="Prosody : mise &#xE0; jour automatique des modules communautaires" loading="lazy"></p>
<p>Le r&#xE9;pertoire de modules compl&#xE9;mentaires &#xE9;tant correctement pris en compte, on peut maintenant cr&#xE9;er un <code>service</code> dont la t&#xE2;che sera de mettre &#xE0; jour le r&#xE9;pertoire clon&#xE9;.</p>
<pre><code>sudo -e /etc/systemd/system/prosody-up.service
</code></pre>
<p>Copier et sauvegarder&#xA0;:</p>
<pre><code>[Service]
Type=oneshot
ExecStart=/usr/bin/hg pull --update --cwd /usr/local/lib/prosody/modules
ExecStartPost=/usr/sbin/service prosody reload
</code></pre>
<p>Ensuite un <code>timer</code> invoquant le <code>service</code> ci-dessus &#xE0; intervalle r&#xE9;gulier (toutes les nuits &#xE0; 2h du matin).</p>
<pre><code>sudo -e /etc/systemd/system/prosody-up.timer
</code></pre>
<p>Copier et sauvegarder&#xA0;:</p>
<pre><code>[Unit]
Description=Prosody Modules Updater
After=network-online.target
Wants=network-online.target prosody.service

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target
</code></pre>
<p>Pour finir, il suffit de recharger les services de <code>systemd</code> (par mesure de s&#xE9;curit&#xE9;), activer le <code>timer</code> et lancer le <code>service</code>.</p>
<pre><code>sudo systemctl daemon-reload
sudo systemctl enable prosody-up.timer
sudo systemctl start prosody-up.service
sudo systemctl status prosody-up.service -l</code></pre>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caee
title: Jappix est mort, vive XMPP
uri: 2021-06-19-Jappix-est-mort-vive-XMPP
url: https://postblue.info/jappix-cest-fini/
content:
<!--kg-card-begin: markdown--><blockquote>
<img src="media/55c7a2a4.logo-xmpp_0.png" data-original-source="https://postblue.info/content/images/2018/08/logo-xmpp_0.png" alt="Jappix est mort, vive XMPP"><p>Mise &#xE0; jour 20161025&#xA0;: l&apos;ensemble des comptes et des salons de discussion en jappix.com sont (ou vont &#xEA;tre) transf&#xE9;r&#xE9;s sur l&apos;infrastructure de <a href="https://movim.eu/">Movim</a>, g&#xE9;r&#xE9;e par <a href="https://edhelas.movim.eu/">Timoth&#xE9;e Jaussoin</a> (aka edhelas). [<a href="https://nl.movim.eu/?node/pubsub.movim.eu/Movim/2fd03f1e-d89e-450c-a2ec-c66b8fa7193a">source</a>]</p>
</blockquote>
<p><a href="https://fr.wikipedia.org/wiki/Jappix">Jappix</a> serait mort, et ce faisant le lien avec un nombre cons&#xE9;quent de mes contacts qui y avait une adresse <a href="https://postblue.info/tag/xmpp">#XMPP</a>. C&#x2019;est ce qui arrive quand on lance une bo&#xEE;te bien remplie d&#x2019;&#x153;ufs dans son panier.</p>
<p><img src="media/f91eb50e.Capture-du-2016-10-21-14-22-54.png" data-original-source="https://postblue.info/content/images/2016/10/Capture-du-2016-10-21-14-22-54.png" alt="Jappix est mort, vive XMPP" loading="lazy"></p>
<p>Il suffit de regarder <a href="https://github.com/jappix/jappix/commit/941df95f4d4f89c6b8b1e35753d6444342a8726b">les messages sur le d&#xE9;p&#xF4;t git</a> pour se dire que le projet a &#xE9;t&#xE9; abandonn&#xE9;. Personne, je crois, ne reprochera &#xE0; <a href="https://valeriansaliou.name/">Valerian Saliou</a> de se d&#xE9;faire du projet pour se consacrer &#xE0; d&apos;autres. Pourtant, avec tout le domaine jappix.com qui tombe dans les choux, j&#x2019;ai l&#x2019;impression que l&apos;abandon d&apos;un <strong>projet</strong> va ici de paire avec l&apos;abandon d&apos;un <strong>service</strong>, pourtant pas mal peupl&#xE9; au vu de ma liste de contacts.</p>
<p>Un serveur XMPP peut &#xEA;tre h&#xE9;berg&#xE9; chez soi me dira-t-on, mais soyons honn&#xEA;tes 30 secondes&#xA0;: &#xE7;a n&apos;est pas &#xE0; la port&#xE9;e de tout le monde de d&#xE9;ployer et d&apos;administrer un serveur avec sa petite instance de <a href="https://postblue.info/tag/prosody">#prosody</a> qui tourne dessus. On se retrouve donc avec des ruches de comptes post&#xE9;s &#xE0; un m&#xEA;me endroit, faisant les frais de l&#x2019;administration et de la gouvernance du service. Si l&#x2019;on demande un compte chez moi, par exemple, la connexion se coupera de temps en temps puisque j&#x2019;adore chipoter &#xE0; ma machine, <a href="https://prosody.im/">prosody</a> red&#xE9;marre donc souvent.</p>
<p>Jappix &#xE9;tait l&#x2019;une de ses ruches&#xA0;: <a href="http://archive.wikiwix.com/cache/?url=http%3A%2F%2Fblog.julienbarrier.fr%2Fjappix%2F2011%2Fau-revoir-vanaryon%2F">8&#xA0;000 comptes</a> il y a 5 ans (tout de m&#xEA;me), soit un bon paquet de monde qui se retrouve &#xE0; la rue. <a href="https://cyrille-borne.com/blog/index.php?article2633/l-informatique-restera-l-affaire-de-ceux-qui-la-subissent-et-ceux-qui-la-maitrisent">Cyrille</a>, le troll chauve qui avait une adresse <strong>@jappix.com</strong>, m&#x2019;a souffl&#xE9; &#xE0; l&#x2019;oreille qu&#x2019;il n&apos;y a eu ni message de service, ni pr&#xE9;avis de cessation des activit&#xE9;s. Puisque je n&#x2019;ai pas encore de r&#xE9;ponse de Valerian, je lui laisse le b&#xE9;n&#xE9;fice du doute mais soit il s&apos;agit d&apos;une erreur, soit c&apos;est pas vraiment super sympa.</p>
<p>Or, maintenant que le nom de domaine pointe vers le n&#xE9;ant (et que j&apos;ai perdu un quart de mes contacts), que faire ?</p>
<p>Au plus simple, se rediriger vers <a href="https://movim.eu/">Movim</a>, l&apos;un des autres projet de client XMPP qui roule dans votre navigateur web. Movim permet m&#xEA;me de cr&#xE9;er un compte sur le serveur <strong>@movim.eu</strong> depuis l&apos;un de ses serveurs <a href="https://it.movim.eu/?login">italien</a> ou <a href="https://nl.movim.eu/?login">n&#xE9;erlandais</a>. <a href="https://edhelas.movim.eu/">Edhelas</a>, qui est derri&#xE8;re le projet, me dit qu&apos;il est en contact avec Valerian&#xA0;: peut-&#xEA;tre que ces deux-l&#xE0; nous sortiront un lapin de leur chapeau.</p>
<p>Sinon, je conseillerais aux autres sans-abri de l&apos;XMMP de <a href="https://jabberfr.org/">s&apos;inscrire sur l&#x2019;un des serveurs faisant partie de la f&#xE9;d&#xE9;ration JabberFR</a>, pour moi une valeur s&#xFB;re g&#xE9;r&#xE9;e par des personnes <a href="https://linuxfr.org/news/renouveau-de-jabberfr">qui essaient de faire &#xE7;a bien</a>.</p>
<p>La f&#xE9;d&#xE9;ration JabberFR <a href="https://im.apinc.org/inscription/">propose un formulaire d&#x2019;inscription</a> aux serveurs de celle-ci. Il suffit d&#x2019;y faire d&#xE9;filer la liste d&#xE9;roulante des serveurs et choisir l&#x2019;adresse qui pla&#xEE;t le plus afin de se cr&#xE9;er un compte en un tournemain. Or <a href="https://linkmauve.fr/">Link Mauve</a> qui s&apos;en occupe m&apos;avertit que la librairie XMPPPHP utilis&#xE9;e par cette page tombe dans les choux, et que donc le service ne fonctionne malheureusement pas. J&apos;esp&#xE8;re qu&apos;un jour viendra o&#xF9; la <a href="https://jabberfr.org/federation/">f&#xE9;d&#xE9;ration</a> (la jolie page cass&#xE9;e) JabberFR permettra de s&apos;inscrire sur un serveur XMPP en deux coups de cuill&#xE8;re &#xE0; pot, avec quelques exigences de qualit&#xE9; du service (ne pas tout couper d&apos;un coup, par exemple) et de respect de la vie priv&#xE9;e des comptes cr&#xE9;&#xE9;s de surcro&#xEE;t. <strong>Si vous voulez vous investir dans le projet, n&apos;h&#xE9;sitez pas&#xA0;!</strong> Link Mauve a plein de chouettes id&#xE9;es qu&apos;il se fera un plaisir de partager avec vous.</p>
<p>Qu&apos;&#xE0; cela ne tienne, ce qu&apos;il est possible de faire, c&apos;est de remarquer un domaine dont vous appr&#xE9;ciez le nom (par exemple <a href="https://ouaza.com/">ouaza.com</a> de Rapha&#xEB;l Hertzog), l&#xE0; ou sur l&apos;<a href="https://xmpp.net/directory.php">annuaire g&#xE9;n&#xE9;ral des serveurs publics XMPP</a>, ouvrir votre programme client (par exemple <a href="https://www.pidgin.im/">Pidgin</a>), ajouter un compte XMPP et cocher la ligne de cr&#xE9;ation de compte en bas de la fen&#xEA;tre.</p>
<p><img src="media/18132e52.Capture-du-2016-10-23-10-36-02.png" data-original-source="https://postblue.info/content/images/2016/10/Capture-du-2016-10-23-10-36-02.png" alt="Jappix est mort, vive XMPP" loading="lazy"></p>
<p>Pour rappel, mon adresse XMPP est la m&#xEA;me que mon adresse mail <a href="https://postblue.info/about/">qui se trouve ici</a>.</p>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1caec
title: GNOME : autostart en arrière-plan
uri: 2021-06-19-GNOME-autostart-en-arrière-plan
url: https://postblue.info/gnome-autostart-en-arriere-plan/
content:
<!--kg-card-begin: markdown--><img src="media/fb80c1b0.Capture-d--cran-de-2018-08-29-10-50-24.png" data-original-source="https://postblue.info/content/images/2018/08/Capture-d--cran-de-2018-08-29-10-50-24.png" alt="GNOME : autostart en arri&#xE8;re-plan"><p>Sur ma session <a href="https://postblue.info/tag/gnome">GNOME</a>, l&#x2019;utilisation quotidienne de certains programme a cr&#xE9;&#xE9; le besoin d&#x2019;avoir certaines applications qui se lancent automatiquement (autostart) au d&#xE9;marrage. Cependant, je ne voulais pas que celles-ci se retrouvent propuls&#xE9;es &#xE0; l&apos;avant-plan&#xA0;: je voulais que ces applications se lancent en arri&#xE8;re-plan.</p>
<p>Pour d&#xE9;marrer certaines applications &#xE0; l&#x2019;ouverture de session, il &#xAB;&#xA0;suffit&#xA0;&#xBB; de copier le fichier <code>.desktop</code> depuis <code>/usr/share/applications/</code> dans <code>~/.config/autostart/</code>. Le fichier <code>.desktop</code> regroupe toutes les informations relatives &#xE0; une application install&#xE9;e sur la machine, de son nom &#xE0; la ligne de commande &#xE0; ex&#xE9;cuter.</p>
<p>Le m&#xEA;me r&#xE9;sultat peut &#xEA;tre obtenu en utilisant l&#x2019;<strong>Outil de personnalisation de GNOME</strong> (<code>gnome-tweak-tool</code>), permettant de personnaliser les r&#xE9;glages avanc&#xE9;s de GNOME 3 avec une prise en main plus <em>user friendly</em> que par la ligne de commande ou la copie manuelle de fichiers. &#xC0; l&#x2019;&#xE9;cran <em>Applications au d&#xE9;marrage</em>, il est possible d&#x2019;ajouter des applications en cliquant sur le bouton <code>+</code> au pied de celui-ci. S&#x2019;ouvre alors une popup avec la liste des applications graphiques install&#xE9;es sur le syst&#xE8;me, qu&#x2019;il suffit de s&#xE9;lectionner pour qu&#x2019;elle(s) soi(en)t lanc&#xE9;e(s) &#xE0; la prochaine ouverture de session.</p>
<p>Cependant, les applications ainsi ajout&#xE9;es se lancent en avant-plan et, comme je l&#x2019;ai dit en introduction, je d&#xE9;sire que ces applications soient lanc&#xE9;es en arri&#xE8;re-plan (minimis&#xE9;es dans la barre des t&#xE2;ches ou cach&#xE9;es, &#xE7;a d&#xE9;pend de ce qui est offert par l&#x2019;application).</p>
<p>Le programme <strong>Pr&#xE9;f&#xE9;rences des applications au d&#xE9;marrage</strong> (<code>gnome-session-properties</code>) a &#xE9;t&#xE9; retir&#xE9; de GNOME dans sa version 3.12. Il permettait l&#x2019;&#xE9;dition manuelle des programmes lanc&#xE9;s &#xE0; l&#x2019;ouverture de session, mais faisait double emploi avec la possibilit&#xE9; d&#x2019;ajout de programmes par <code>gnome-tweak-tool</code>. Cependant, ce dernier n&#x2019;int&#xE8;gre pas (encore) la possibilit&#xE9; d&#x2019;&#xE9;diter les fichiers <code>.desktop</code> pour passer un argument &#xE0; la ligne de commande de lancement de l&#x2019;application<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>&#xA0;: il va donc falloir &#xE9;diter &#xE0; la main les fichiers <code>.desktop</code>.</p>
<p>Quelques exemples&#xA0;: il faut &#xE9;diter dans les fichiers <code>~/.config/autostart/*.desktop</code> la ligne <code>Exec=</code> o&#xF9; se retrouve la ligne de commande lanc&#xE9;e quand on clique sur le raccourci d&#x2019;une application, et y ajouter un argument suppl&#xE9;mentaire.</p>
<ul>
<li>
<p><strong>Empathy</strong> (<code>~/.config/autostart/empathy.desktop</code>), le client de messagerie instantan&#xE9;e, peut &#xEA;tre d&#xE9;marr&#xE9; de fa&#xE7;on cach&#xE9;e (<code>--start-hidden</code>). De la sorte, je me connecte &#xE0; mon compte XMPP d&#xE8;s le d&#xE9;marrage de session et permet d&#x2019;&#xEA;tre joignable sans avoir &#xE0; penser &#xE0; lancer le programme. Ce qui donne&#xA0;:</p>
<pre><code>  Exec=empathy --start-hidden
</code></pre>
</li>
<li>
<p><strong>Telegram Desktop</strong> (<code>~/.config/autostart/telegramdesktop.desktop</code>) peut &#xEA;tre d&#xE9;marr&#xE9; minimis&#xE9; dans la barre des t&#xE2;ches avec l&#x2019;argument <code>-startintray</code>, ce qui donne&#xA0;:</p>
<pre><code>  Exec=telegram-desktop -startintray -- %u
</code></pre>
</li>
<li>
<p><strong>Transmission GTK</strong> (<code>~/.config/autostart/transmission-gtk.desktop</code>), le gestionnaire de torrents, peut &#xE9;galement &#xEA;tre lanc&#xE9; minimis&#xE9; avec l&#x2019;argument <code>--minimized</code>, ce qui donne&#xA0;:</p>
<pre><code>  Exec=transmission-gtk --minimized %U
</code></pre>
</li>
<li>
<p><strong>Steam</strong> (<code>~/.config/autostart/steam.desktop</code>) aussi peut &#xEA;tre lanc&#xE9; minimis&#xE9;, il suffit de lui ajouter l&#x2019;argument <code>-silent</code>&#xA0;:</p>
<pre><code>  Exec=/usr/bin/steam -silent %U
</code></pre>
</li>
</ul>
<p>Il est relativement simple d&#x2019;ajouter des applications graphiques au d&#xE9;marrage de la session GNOME avec l&#x2019;<strong>Outil de personnalisation de GNOME</strong> (<code>gnome-tweak-tool</code>). Cependant, obliger le lancement en arri&#xE8;re-plan desdites applications n&#x2019;est pas du tout convivial, obligeant &#xE0; une &#xE9;dition manuelle d&#x2019;un fichier verbeux et aust&#xE8;re.</p>
<p>On le remarque avec les quelques exemples ci-dessus&#xA0;: <strong>aucune</strong> de ces applications n&#x2019;admet le m&#xEA;me argument pour &#xEA;tre d&#xE9;marr&#xE9;e en arri&#xE8;re-plan. Normaliser la nomenclature de cet argument pourrait &#xEA;tre une piste de r&#xE9;solution pour une configuration conviviale du lancement automatique en arri&#xE8;re-plan, &#xE0; moins que &#xE7;a ne soit int&#xE9;gr&#xE9; directement dans les applications admettant d&#x2019;&#xEA;tre d&#xE9;marr&#xE9;es en arri&#xE8;re-plan.</p>
<p>Par ailleurs, quelques applications n&#x2019;admettent pas d&#x2019;&#xEA;tre d&#xE9;marr&#xE9;es de la sorte, le gestionnaire de mail <a href="https://wiki.gnome.org/Apps/Evolution">Evolution</a> en premi&#xE8;re ligne, logiciel que j&#x2019;utilise tous les jours. Le gestionnaire <a href="https://wiki.gnome.org/Apps/Geary">Geary</a> int&#xE8;gre cette possibilit&#xE9; par d&#xE9;faut, avertissant d&#xE8;s lors par une notification la r&#xE9;ception d&#x2019;un mail. Cependant, Geary n&#x2019;est plus maintenu (derni&#xE8;re mise &#xE0; jour le 30 mars 2015) et n&#x2019;int&#xE8;gre pas le support du chiffrement/d&#xE9;chiffrement des mails, ce qui pour moi est un manquement dont je ne peux me passer.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>&#xC9;dition du 26 avril 2016&#xA0;: j&#x2019;ai ajout&#xE9; <a href="https://bugzilla.gnome.org/show_bug.cgi?id=765613">une demande d&#x2019;am&#xE9;lioration sur le bugtracker de Gnome Tweak Tool</a> en ce sens suite &#xE0; <a href="https://postblue.info/gnome-autostart-en-arriere-plan/#isso-371">ma r&#xE9;ponse au commentaire de Leo</a> ci-dessous. <a href="#fnref1" class="footnote-backref">&#x21A9;&#xFE0E;</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->


feed_id: 5fa94ada9d5c160bada1cae9
title: Debian Jessie sur un Kimsufi KS-2A
uri: 2021-06-19-Debian-Jessie-sur-un-Kimsufi-KS-2A
url: https://postblue.info/kimsufi/
content:
<!--kg-card-begin: markdown--><img src="media/51f28ed8.debian-login.png" data-original-source="https://postblue.info/content/images/2018/08/debian-login.png" alt="Debian Jessie sur un Kimsufi KS-2A"><p>Petite marche &#xE0; suivre &#xE0; peu pr&#xE8;s g&#xE9;n&#xE9;raliste pour configurer un serveur d&#xE9;di&#xE9; <a href="https://www.kimsufi.com/fr/serveurs.xml">Kimsufi</a>.</p>
<h1 id="installation">Installation</h1>
<p>Le sch&#xE9;ma d&#x2019;installation que j&#x2019;ai utilis&#xE9; diverge de celui par d&#xE9;faut pour Debian Jessie propos&#xE9; par OVH.</p>
<p>Est configur&#xE9; par d&#xE9;faut dans le <em>template</em> d&#x2019;installation Debian 8.3 stable (Jessie)&#xA0;:</p>
<ul>
<li>une large partition <code>/home</code> dans le sch&#xE9;ma de partition par d&#xE9;faut&#xA0;:
<ul>
<li>une partition primaire <code>/</code> de 20Go&#xA0;;</li>
<li>une partition primaire <code>/home</code> prenant l&#x2019;espace restant, soit un peu moins de 980Go dans mon cas&#xA0;;</li>
<li>une partition <code>swap</code> obligatoire de 512Mo&#xA0;;</li>
</ul>
</li>
<li>un <a href="http://guide.ovh.com/KernelInstall">noyau Linux &#xAB;&#xA0;maison&#xA0;&#xBB;</a>.</li>
</ul>
<p>Inconv&#xE9;nients pour un serveur web comme le mien&#xA0;:</p>
<ul>
<li>j&#x2019;utilise majoritairement les partitions <code>/var</code> (<code>/var/www</code> pour les sites en PHP, <code>/var/lib</code> pour le stockage de donn&#xE9;es des applications comme MariaDB, Prosody, etc.) et <code>/srv</code> (services divers balanc&#xE9;s sur un port public)</li>
<li>avoir une partition <code>/home</code> s&#xE9;par&#xE9;e et prenant 98% de l&#x2019;espace disque ne me sert &#xE0; rien&#xA0;;</li>
<li>le noyau maison n&#x2019;est disponible dans aucun d&#xE9;p&#xF4;t <code>apt</code> et doit &#xEA;tre mis &#xE0; jour &#xE0; la main (<code>wget</code>), en allant le chercher <a href="ftp://ftp.ovh.net/made-in-ovh/bzImage/">depuis un serveur FTP</a>, ce qui est r&#xE9;dhibitoire pour moi.</li>
</ul>
<p>Donc, pour installer <em>&#xE0; ma fa&#xE7;on</em>&#xA0;:</p>
<ul>
<li><em>template</em> d&#x2019;installation Debian 8.3 stable (Jessie)&#xA0;;</li>
<li>cocher l&#x2019;utilisation du noyau de la distribution &#xE0; la place du noyau&#xA0;;</li>
<li>&#xE9;diter le sch&#xE9;ma de partitionnement pour supprimer la place indue que prendrait <code>/home</code> et maximiser l&#x2019;espace de la racine <code>/</code>.</li>
</ul>
<h1 id="considrationsdinstallation">Consid&#xE9;rations d&#x2019;installation</h1>
<ul>
<li>une partition <code>/boot</code> s&#xE9;par&#xE9;e de <code>/</code>&#xA0;;</li>
<li>un partitionnement du disque (<code>/var</code>, <code>/src</code>) plus fin, en essayant de pr&#xE9;voir la place que prendraient ces partitions&#xA0;;</li>
<li>utiliser le <a href="https://wiki.debian.org/grsecurity">noyau avec les patchs de s&#xE9;curit&#xE9; <code>grsecurity</code></a>, &#xE0; l&#x2019;instar du noyau OVH qui les int&#xE8;gre&#xA0;;</li>
<li>ne pas activer de compte <code>root</code> mais directement un utilisateur appartenant au groupe <code>sudo</code> pour ne pas avoir &#xE0; le d&#xE9;sactiver par la suite.</li>
</ul>
<h1 id="premireconnexion">Premi&#xE8;re connexion</h1>
<p>Apr&#xE8;s l&#x2019;installation de la distribution, OVH envoie un mail contenant le code du compte <code>root</code> permettant de se connecter au serveur. On va donc s&#x2019;y connecter en for&#xE7;ant la demande de mot de passe (puisqu&#x2019;il n&#x2019;y a pas encore de cl&#xE9; SSH forg&#xE9;e est install&#xE9;e).</p>
<pre><code>ssh root@ip.du.serveur -o PreferredAuthentications=password
</code></pre>
<p>Une fois connect&#xE9;, je conseille de changer au plus vite le mot de passe du compte <code>root</code>&#xA0;:</p>
<pre><code>passwd
</code></pre>
<p>Entrez le mot de passe actuel une premi&#xE8;re fois, puis entrez-en un nouveau par deux fois. Voil&#xE0;, il ne devrait plus exister de copie de votre mot de passe <code>root</code>.</p>
<p>Pour d&#xE9;sactiver compl&#xE8;tement le login du compte <code>root</code> (apr&#xE8;s avoir cr&#xE9;&#xE9; un nouvel utilisateur appartenant au groupe <code>sudo</code>)&#xA0;:</p>
<pre><code>sudo passwd -dl root
</code></pre>
<p>Pour continuer, mettre &#xE0; jour des d&#xE9;p&#xF4;ts.</p>
<pre><code>apt update
</code></pre>
<h1 id="systemd">systemd</h1>
<p>Utiliser les diff&#xE9;rents services de <code>systemd</code> renvoie l&#x2019;erreur suivante&#xA0;:</p>
<blockquote>
<p>Failed to create bus connection</p>
</blockquote>
<p>Pour corriger, il suffit d&#x2019;installer le paquet <code>dbus</code> manquant.</p>
<pre><code>apt install dbus
</code></pre>
<h1 id="ntp">NTP</h1>
<p>Maintenant que <code>systemd</code> est r&#xE9;par&#xE9;, on peut l&#x2019;utiliser comme service de synchronisation du temps de la machine au lieu d&#x2019;installer <a href="https://wiki.debian.org/NTP">un second paquet pour NTP</a>.</p>
<pre><code>timedatectl set-ntp 1
</code></pre>
<h1 id="hostname">Hostname</h1>
<p>Le nom d&#x2019;h&#xF4;te (<em>hostname</em>) inscrit dans le fichier <code>/etc/hostname</code> est un nom de domaine <code>hostname.ip-x-y-z.eu</code>. Pour n&#x2019;avoir que le nom court&#xA0;:</p>
<pre><code>hostnamectl set-hostname $(hostname -a)
</code></pre>
<p>Puis &#xE9;diter <code>/etc/hosts</code> pour remplacer <code>hostname.ip-x-y-z.eu</code> avec <code>hostname.sondomaine.tld</code> tel que d&#xE9;fini dans sa zone DNS (sinon, le faire, j&#x2019;utilise celle de Gandi).</p>
<p>Pour plus d&#x2019;informations sur le renommage de la machine, <a href="https://wiki.debian.org/HowTo/ChangeHostname">voir le Debian Wiki HowTo/ChangeHostname</a>.</p>
<h1 id="firewalletfail2ban">Firewall et Fail2ban</h1>
<p>Pas envie de m&#x2019;emmerder &#xE0; maintenir un pare-feu complexe, <a href="https://wiki.debian.org/Uncomplicated%20Firewall%20%28ufw%29">je teste UFW (Uncomplicated Firewall)</a>.</p>
<pre><code>apt install ufw
ufw allow SSH # ouvre le port 22
ufw allow &#x2019;Nginx Full&#x2019; # ouvre les ports 80 et 443
ufw enable # active ufw
</code></pre>
<p>Si vous voulez utiliser <code>fail2ban</code> pour pr&#xE9;venir des attaques par force brute, il est possible de le faire utiliser directement <code>ufw</code> plut&#xF4;t qu&#x2019;<code>iptables</code>.</p>
<pre><code>apt install fail2ban
</code></pre>
<p>Pour configurer la b&#xEA;te, cr&#xE9;er un fichier <code>/etc/fail2ban/jail.local</code>&#xA0;: charg&#xE9; apr&#xE8;s le fichier de configuration principal <code>/etc/fail2ban/jail.conf</code>, les valeurs qu&#x2019;il contient <em>&#xE9;crasent</em> celles contenues dans le premier, inutile donc de copier int&#xE9;gralement le contenu du fichier de configuration (comme j&#x2019;ai pu le voir par-ci par-l&#xE0;). Y changer l&#x2019;adresse &#xE0; laquelle les notifications sont envoy&#xE9;es, et configurer le programme pour utiliser <code>ufw</code>&#xA0;:</p>
<pre><code>[DEFAULT]
destemail = mail@domaine.truc
banaction = ufw
</code></pre>
<h1 id="yapyt">Yapyt</h1>
<p>Yapyt est clone de <code>yaourt</code> (commande Arch Linux) <a href="https://yeuxdelibad.net/Programmation/yapyt-un_yaourt_pour_debian.html">d&#xE9;velopp&#xE9; par Thuban pour Debian</a>. Tr&#xE8;s utile pour nettoyer son syst&#xE8;me et supprimer les r&#xE9;sidus d&#x2019;applications d&#xE9;sinstall&#xE9;es.</p>
<pre><code>wget http://git.yeuxdelibad.net/coolrepo/plain/yapyt/yapyt.py -O /usr/local/bin/yapyt
chmod +x /usr/local/bin/yapyt
</code></pre>
<p>Pour le nettoyage, <code>yapyt</code> n&#xE9;cessite <code>deborphan</code> et <code>aptitude</code>&#xA0;:</p>
<pre><code>apt install aptitude deborphan
</code></pre>
<h1 id="certificats">Certificats</h1>
<p>Installer <a href="https://letsencrypt.org/getting-started/">le client Let&#x2019;s Encrypt</a> disponible dans le d&#xE9;p&#xF4;t <code>jessie-backports</code> activ&#xE9; par d&#xE9;faut dans le <code>source.list</code> d&#xE9;ploy&#xE9; par OVH (qui utilise les miroirs d&#x2019;OVH &#xE9;galement), mais aussi les <a href="https://wiki.cacert.org/FAQ/ImportRootCert?action=show&amp;redirect=ImportRootCert#Debian">certificats racine de CACert</a> qui sont &#xE0; nouveau disponible dans un paquet s&#xE9;par&#xE9;.</p>
<pre><code>apt -t jessie-backports install letsencrypt ca-cacert
</code></pre>
<h1 id="dotdeb">Dotdeb</h1>
<blockquote>
<p><a href="https://www.dotdeb.org/">Dotdeb</a> is an extra repository providing up-to-date packages for your Debian servers&#xA0;: Nginx&#xA0;; PHP 7.0, 5.6, 5.5, 5.4 (obsolete) and 5.3 (obsolete)&#xA0;; useful PHP extensions : apcu, imagick, mongo, Pinba, xcache, Xdebug, XHprof&#x2026;&#xA0;; MySQL 5.5 and 5.6&#xA0;; Zabbix&#xA0;; etc.</p>
</blockquote>
<p>Installer la cl&#xE9; du d&#xE9;p&#xF4;t&#xA0;:</p>
<pre><code>wget https://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
</code></pre>
<p>Dans <code>/etc/apt/source.list.d/dotdeb.list</code>&#xA0;:</p>
<pre><code>deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
</code></pre>
<p>Mettre &#xE0; jour les d&#xE9;p&#xF4;ts&#xA0;:</p>
<pre><code>apt update
</code></pre>
<p>Installer le serveur web&#xA0;:</p>
<pre><code>apt install nginx-extras php5-fpm
</code></pre>
<h1 id="mariadb">MariaDB</h1>
<blockquote>
<p><a href="https://mariadb.org/">MariaDB</a> is one of the most popular database servers in the world. It&#x2019;s made by the original developers of MySQL and guaranteed to stay open source. Notable users include Wikipedia, Facebook and Google.</p>
</blockquote>
<p>Installer la cl&#xE9; du d&#xE9;p&#xF4;t&#xA0;:</p>
<pre><code>apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
</code></pre>
<p>Dans <code>/etc/apt/source.list.d/mariadb.list</code>&#xA0;:</p>
<pre><code>deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
deb-src http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
</code></pre>
<p>Mettre &#xE0; jour les d&#xE9;p&#xF4;ts&#xA0;:</p>
<pre><code>apt update
</code></pre>
<p>Installer&#xA0;:</p>
<pre><code>apt install mariadb-server
</code></pre>
<h1 id="prosody">Prosody</h1>
<blockquote>
<p><a href="https://prosody.im/">Prosody</a> is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.</p>
</blockquote>
<p>Installer la cl&#xE9; du d&#xE9;p&#xF4;t&#xA0;:</p>
<pre><code>wget https://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -
</code></pre>
<p>Dans <code>/etc/apt/source.list.d/prosody.list</code>&#xA0;:</p>
<pre><code>deb http://packages.prosody.im/debian jessie main
</code></pre>
<p>Mettre &#xE0; jour les d&#xE9;p&#xF4;ts&#xA0;:</p>
<pre><code>apt update
</code></pre>
<p>Installer Prosody et ses d&#xE9;pendances optionnelles&#xA0;:</p>
<pre><code>apt install prosody-trunk lua-event lua-zlib lua-dbi-sqlite3 lua-bitop
</code></pre>
<p>Je renvoie &#xE0; mon article <a href="https://postblue.info/prosody-debian/">Prosody sur Debian Wheezy/Jessie</a> pour plus d&#x2019;informations quant &#xE0; la configuration du service.</p>
<h1 id="nodejslts">NodeJS LTS</h1>
<p>Installer <code>nodejs</code> (v0.10.29) et <code>npm</code> (v1.4.21) depuis les d&#xE9;p&#xF4;ts Debian, dans <code>/usr/bin</code>.</p>
<pre><code>apt install npm
</code></pre>
<p>Installer le gestionnaire de version <code>n</code> dans <code>/usr/local/bin</code>.</p>
<pre><code>npm install -g n
</code></pre>
<p>Utiliser <code>n</code> pour installer la derni&#xE8;re version LTS de nodejs (v4.3.2) dans <code>/usr/local/bin</code>.</p>
<pre><code>n lts
</code></pre>
<p>Installer la derni&#xE8;re version de <code>npm</code> (v2.14.12) dans <code>/usr/local/bin</code>.</p>
<pre><code>npm install -g npm node-gyp
</code></pre>
<p>Supprimer les binaires de npm et nodejs qui trainent dans <code>/usr/bin</code> pour ne plus avoir que les derniers install&#xE9;s.</p>
<pre><code>apt remove npm
apt-get autoremove
</code></pre>
<h1 id="superutilisateur">Superutilisateur</h1>
<p>Plut&#xF4;t que de continuer &#xE0; utiliser le compte root, je me cr&#xE9;e un utilisateur aux droits restreints, que j&#x2019;ajoute n&#xE9;anmoins au groupe <code>sudo</code> pour l&#x2019;utiliser &#xE0; des fins de maintenance du syst&#xE8;me.</p>
<pre><code>apt install sudo
adduser username
gpasswd -a username sudo
</code></pre>
<p>Pour d&#xE9;sactiver compl&#xE8;tement le login du compte <code>root</code>&#xA0;:</p>
<pre><code>sudo passwd -dl root
</code></pre>
<h1 id="ssh">SSH</h1>
<p>Depuis un terminal sur mon ordinateur, je forge une cl&#xE9; SSH (inutilement grosse, pour tester) que j&#x2019;autoriserai &#xE0; servir d&#x2019;authentification sur le compte utilisateur cr&#xE9;&#xE9; ci-dessus.</p>
<pre><code>ssh-keygen -b 16384
</code></pre>
<p>Je la renomme <code>$HOME/.ssh/id_rsa-nomduserver</code>, lui met un gros gros mot de passe, puis je la copie dans les cl&#xE9;s autoris&#xE9;es sur mon serveur.</p>
<pre><code>ssh-copy-id -i $HOME/.ssh/id_rsa-nomduserver username@adresse.ip -o PreferredAuthentications=password
</code></pre>
<p>Je peux dor&#xE9;navant me connecter &#xE0; mon serveur par SSH avec une authentification par cl&#xE9; sur un utilisateur qui apr&#xE8;s entr&#xE9;e d&#x2019;un (inutilement tarabiscot&#xE9;) mot de passe, me conf&#xE8;re des droits &#xE9;lev&#xE9;s.</p>
<pre><code>ssh username@adress.ip -i $HOME/.ssh/id_rsa-nomduserver
</code></pre>
<p>Je renvoie au <a href="https://wiki.debian.org/fr/SSH#S.2BAOk-curisation">Debian Wiki pour la s&#xE9;curisation de SSH</a>&#xA0;: d&#xE9;sactiver la connexion au compte <code>root</code> et l&#x2019;authentification par mot de passe dans <code>/etc/ssh/sshd_config</code>.</p>
<pre><code>PasswordAuthentication no
PermitRootLogin no
</code></pre>
<h1 id="shellzshetbyobu">Shell ZSH et Byobu</h1>
<p>Plut&#xF4;t qu&#x2019;une session SSH toute moche avec seulement BASH, j&#x2019;utilise le gestionnaire de multiplexeurs de terminal <a href="http://byobu.co/">Byobu</a> (backend <code>tmux</code>) et ai remplac&#xE9; BASH par <a href="http://zshwiki.org/home/">ZSH</a>.</p>
<p><img src="https://camo.githubusercontent.com/612c6be742478221e06c64b66b896085f6e4af63/687474703a2f2f692e696d6775722e636f6d2f6e7247563670672e706e67" alt="Debian Jessie sur un Kimsufi KS-2A" loading="lazy"></p>
<pre><code>apt install zsh byobu git
byobu-enable
</code></pre>
<p>La commande <code>byobu-enable</code> active <code>byobu</code> si et seulement si le shell par d&#xE9;faut est <code>bash</code>. Donc plut&#xF4;t que modifier le shell de l&#x2019;utilisateur (<code>chsh -s /bin/zsh</code>) qui emp&#xEA;cherait l&#x2019;activation automatique de byobu, il suffit d&#x2019;ajouter les lignes suivantes &#xE0; <code>$HOME/.byobu/.tmux.conf</code> pour changer l&#x2019;interpr&#xE9;teur de commandes du programme&#xA0;:</p>
<pre><code>set -g default-shell /usr/bin/zsh
set -g default-command /usr/bin/zsh
</code></pre>
<p>Installation de <a href="https://github.com/sorin-ionescu/prezto">Prezto</a>, un framework de configuration de ZSH. Lancer <code>zsh</code> et ne pas cr&#xE9;er de fichier de configuration (touche <code>q</code>)</p>
<pre><code>zsh
</code></pre>
<p>Copier le r&#xE9;pertoire de <code>prezto</code>&#xA0;:</p>
<pre><code>git clone --recursive https://github.com/sorin-ionescu/prezto.git &quot;${ZDOTDIR:-$HOME}/.zprezto&quot;
</code></pre>
<p>Activer <code>prezto</code> pour mon profil utilisateur&#xA0;:</p>
<pre><code>setopt EXTENDED_GLOB
for rcfile in &quot;${ZDOTDIR:-$HOME}&quot;/.zprezto/runcoms/^README.md(.N); do
  ln -s &quot;$rcfile&quot; &quot;${ZDOTDIR:-$HOME}/.${rcfile:t}&quot;
done
</code></pre>
<h1 id="etherpadlite">Etherpad Lite</h1>
<p><img src="https://camo.githubusercontent.com/9ca4b9b988b8eaf457d1f7f32cbce055140c0948/687474703a2f2f692e696d6775722e636f6d2f7a5972476b67332e676966" alt="Debian Jessie sur un Kimsufi KS-2A" loading="lazy"></p>
<p>Installation des d&#xE9;pendances&#xA0;:</p>
<pre><code>apt install gzip git curl python libssl-dev pkg-config build-essential
</code></pre>
<p>D&#xE9;ploiement d&#x2019;<a href="https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">Etherpad Lite comme service</a>, dans son propre dossier avec son propre <code>user</code>/<code>group</code>.</p>
<pre><code>adduser --system --home=/srv/etherpad-lite --group etherpad-lite
</code></pre>
<p>Il faut utiliser le compte ad&#xE9;quat pou r la suite&#xA0;: pour ce faire, faire pr&#xE9;c&#xE9;der les commandes suivantes de&#xA0;:</p>
<pre><code>sudo su etherpad-lite -s /bin/bash -c &quot;ici la commande entre guillemets&quot;
</code></pre>
<p>Cl&#xF4;nage du r&#xE9;pertoire &#xE0; la racine du dossier nouvellement cr&#xE9;&#xE9;.</p>
<pre><code>cd /srv/etherpad-lite;
git clone git://github.com/ether/etherpad-lite.git .
</code></pre>
<p>Copier le fichier de configuration.</p>
<pre><code>cp /srv/etherpad-lite/settings.json.template /srv/etherpad-lite/settings.json
</code></pre>
<p>Configuration du backend (j&#x2019;aime bien utiliser <code>redis</code> qui me n&#xE9;cessite aussi peu de configuration qu&#x2019;un fichier SQLite pour des performances plus hautes)&#xA0;:</p>
<pre><code>apt install redis-server
</code></pre>
<p>Dans <code>/srv/etherpad-lite/settings.json</code>&#xA0;:</p>
<pre><code>//the type of the database
&quot;dbType&quot; : &quot;redis&quot;,
//the database specific settings
&quot;dbSettings&quot; : {
                 &quot;host&quot;    : &quot;localhost&quot;,
                 &quot;port&quot;    : 6379,
                 &quot;database&quot;: 1
               },
</code></pre>
<p>D&#xE9;pendances optionnelles pour l&#x2019;import/export&#xA0;:</p>
<pre><code>apt install tidy libreoffice-writer
</code></pre>
<p>Dans <code>/srv/etherpad-lite/settings.json</code>&#xA0;:</p>
<pre><code>/* This is the absolute path to the soffice executable. Setting it to null, disables LibreOffice exporting.
 LibreOffice can be used in lieu of Abiword to export pads */
&quot;soffice&quot; : &quot;/usr/bin/soffice&quot;,

/* This is the path to the Tidy executable. Setting it to null, disables Tidy.
 Tidy is used to improve the quality of exported pads*/
&quot;tidyHtml&quot; : &quot;/usr/bin/tidy&quot;,
</code></pre>
<p>Documentation&#xA0;:</p>
<ul>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#nginx">How to put Etherpad Lite behind a reverse Proxy</a>, Nginx en l&#x2019;occurence&#xA0;;</li>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">How to deploy Etherpad Lite as a service</a>&#xA0;;</li>
<li><a href="https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-Redis">How to use Etherpad Lite with Redis</a>.</li>
</ul>
<h1 id="ghost">Ghost</h1>
<blockquote>
<p><a href="https://ghost.org/">Ghost</a> is a platform dedicated to one thing: Publishing. It&#x2019;s beautifully designed, completely customisable and completely Open Source. Ghost allows you to write and publish your own blog, giving you the tools to make it easy and even fun to do.</p>
</blockquote>
<p>Pareillement qu&#x2019;Etherpad Lite ci-dessus, je d&#xE9;ploie Ghost comme un service, ayant son propre utilisateur et groupe.</p>
<pre><code>adduser --system --home=/srv/ghost --group ghost
</code></pre>
<p>Comme pour <code>etherpad</code>, il faut utiliser le compte ad&#xE9;quat&#xA0;: pour ce faire, faire pr&#xE9;c&#xE9;d&#xE9;r les commandes suivantes de&#xA0;:</p>
<pre><code>sudo su ghost -s /bin/bash -c &quot;ici la commande entre guillemets&quot;
</code></pre>
<p>Dans le dossier de l&#x2019;utilisateur <code>ghost</code>, je d&#xE9;compresse l&#x2019;archive de la derni&#xE8;re version disponible&#xA0;:</p>
<pre><code>cd /srv/ghost;
wget http://ghost.org/zip/ghost-latest.zip;
unzip -uo ghost-latest.zip -d /srv/ghost;
rm ghost-latest.zip
</code></pre>
<p>Ne reste plus qu&#x2018;&#xE0; installer le tout.</p>
<pre><code>npm install --production
</code></pre>
<p>Pour la configuration de Ghost, je renvoie &#xE0; la documentation&#xA0;:</p>
<ul>
<li><a href="http://docs.ghost.org/fr/installation/linux/">Installation de Ghost&#xA0;: Installation sur Linux</a></li>
<li><a href="http://docs.ghost.org/fr/installation/deploy/#supervisor-%28http://supervisord.org/%29">Faire tourner en permanence Ghost&#xA0;: Supervisor</a></li>
<li><a href="http://support.ghost.org/config/">Configuring Ghost</a></li>
<li><a href="http://support.ghost.org/how-to-upgrade">How to upgrade Ghsost</a></li>
</ul>
<p>Pour aller plus loin&#xA0;:</p>
<ul>
<li><a href="https://postblue.info/isso-un-serveur-de-commentaires-similaire-a-disqus/">Isso, un serveur de commentaires</a> &#xE0; int&#xE9;grer &#xE0; Ghost</li>
<li><a href="https://postblue.info/supervisor-node/">Supervisor tes nodes</a>, liste de services pouvant &#xEA;tre lanc&#xE9;s avec <code>supervisor</code></li>
<li><a href="https://postblue.info/message-de-service/">Message de service</a> annon&#xE7;ant mon passage &#xE0; Ghost en novembre 2013</li>
</ul>
<h1 id="owncloud">ownCloud</h1>
<blockquote>
<p><a href="https://owncloud.org/">ownCloud</a> gives you universal access to your files through a web interface or WebDAV. It also provides a platform to easily view &amp; sync your contacts, calendars and bookmarks across all your devices and enables basic editing right on the web. Installation has minimal server requirements, doesn&#x2019;t need special permissions and is quick. ownCloud Server is extendable via a simple but powerful API for applications and plugins.</p>
</blockquote>
<p>Pour plus de facilit&#xE9; quant &#xE0; l&#x2019;installation d&#x2019;ownCloud, j&#x2019;utilise le d&#xE9;p&#xF4;t. Installer la cl&#xE9;&#xA0;:</p>
<pre><code>wget https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O- | apt-key add -
</code></pre>
<p>Cr&#xE9;er <code>/etc/apt/source.list.d/owncloud.list</code> avec le d&#xE9;p&#xF4;t&#xA0;:</p>
<pre><code>sh -c &quot;echo &#x2019;deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /&#x2019; &gt;&gt; /etc/apt/sources.list.d/owncloud.list&quot;
</code></pre>
<p>Mettre &#xE0; jour les d&#xE9;p&#xF4;ts et installer <code>owncloud</code>&#xA0;:</p>
<pre><code>apt-get update
apt-get install owncloud
</code></pre>
<p>Documentation&#xA0;:</p>
<ul>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/installation/nginx_configuration.html">Nginx Configuration</a></li>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/performance_tuning/index.html">Server Tuning &amp; Performance Tips</a></li>
<li><a href="https://doc.owncloud.org/server/9.0/admin_manual/configuration_server/caching_configuration.html">Configuring Memory Caching</a></li>
</ul>
<p>Pour une premi&#xE8;re salve, &#xE7;a suffira je crois. N&#x2019;h&#xE9;sitez pas &#xE0; commenter si je dois pr&#xE9;ciser un &#xE9;l&#xE9;ment de configuration, je verrai si j&#x2019;ai le temps pour compl&#xE9;ter.</p>
<!--kg-card-end: markdown-->


