PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Mon laptop LDLC, trois ans après

mardi 25 septembre 2018 à 18:30

Je vous avais présenté mon laptop lors de son achat, un peu comme une expérience, peut on acheter un ordinateur portable sans système d’exploitation puisque je n’avais pas l’intention d’utiliser Windows ? Comment ce châssis full plastique a-t-il vieilli ? Et l’autonomie c’en est où ? Voyons ça de près.

Le logiciel, merci Manjaro

Pour mes besoins je pense que j’avais vraiment fait le bon choix. Remember, le support du matériel n’était pas parfait, entre la gestion de la mise en veille, du WiFi capricieux, tout n’était pas rose lors de la première installation. Mais depuis, mises à jour fréquentes et montées de version du noyau ont permis pas mal de progrès de ce côté là et matériellement parlant en terme de support je n’ai pas à me plaindre, mais il aura fallu tout de même un an. Il arrive encore très sporadiquement que la carte graphique lâche à la sortie de mise en veille, mais en dehors de ça c’est rock solid.

La performance surtout graphique a aussi bien évolué avec le temps, au point de pouvoir jouer sur cette machine à quelques jeux dont ce n’était pas du tout l’objectif, encore moins sous Linux. Dites vous que j’ai réussi à faire tourner Serious Sam 3, certes en assez basse qualité mais jouable y compris pendant les phases intenses de combat avec quelques dizaines d’ennemis à l’écran.

Au final en trois ans il n’y aura eu que trois installations, celle d’origine ayant été remplacée lors du changement de SSD (qui n’aura vécu que 6 mois), et celle qui a disparu avec le SSD mort remplacée par celle que j’utilise actuellement. En termes de bureau pour les curieux, c’est XFCE, Deepin, XFCE. Pour la prochaine installation, probablement avec le prochain pc, ça sera certainement Cinnamon, j’ai pu le tester pendant plusieurs heures il me plaît beaucoup et permet les personnalisations que je recherche, avec l’aspect de fraîcheur qui manque à XFCE (Update : ça se paie fort sur la conso de RAM, on est sur du x2…).

Côté mises à jour je n’ai pratiquement jamais eu de souci à part celui du retour de vacances cette année, un seul vrai problème logiciel en trois ans, partiellement ma faute, comment dire… Certes je suis un utilisateur avancé mais les gaillards derrière Manjaro font vraiment du bon boulot pour limiter les rugosités inévitables des mises à jour permanentes de la distribution mère. On est toujours pas prêt de proposer ça aux nouveaux arrivants qu’on redirigera vers un Ubuntu ou dérivé, mais pour un flemmard comme moi qui n’a pas envie de passer trop de temps à configurer son poste et préfère l’utiliser, c’est salvateur. Y’a bien un ou deux trucs qui me gênent par rapport à d’autres distributions, mais c’est tellement spécifique à mes usages (autocomplétion SSH absente par exemple) que je ne vais pas non plus coller tout le monde au pilori.

Le matériel : le plastique c’est pas fantastique

Pendant que vous cherchez la référence moisie de ce titre de chapitre, j’ai refait un tour de la machine en photos. Le constat est pas brillant, le châssis tout plastique a souffert, vraiment, sachant qu’à part la trappe pour changer le disque j’ai pas passé mon temps à le démonter pour l’entretenir. Je le ferai peut être dans quelques semaines pour rafraîchir la patte thermique, car c’est une pièce d’usure même si le processeur consomme tellement peu que le ventilateur ne se déclenche pratiquement jamais.

Voici donc quelques clichés, je détaille juste après :

L’ouverture au niveau de la charnière et de la prise d’alimentation ça s’est fait dans la première année de la machine, quelques semaines après son retour de sav. Ah oui, la machine est repartie une fois chez ldlc pour faire changer l’écran, qui souffrait de faux contacts (retrouver la photo twitter). Le plastique qui retenait l’écrou s’est désintégré (si si, vu le nombre de morceaux c’est ça), donc impossible de réparer. Quand au cadre plastique autour de l’écran, je ne sais absolument pas dans quelles conditions il a pu finir dans cet état là, puisque je ne l’ai démonté qu’une fois après son retour, et je l’avais remis à sa place en un seul morceau, maintenant j’en ai trois, qui tiennent tous bien en place ceci dit.

Mais c’est la seule fois où je l’ai renvoyé, quand il est revenu les techniciens avaient oublié de remettre l’aimant qui permet la détection de la fermeture de l’écran pour couper l’éclairage (c’est pour ça que je l’avais démonté d’ailleurs)…

A part ça, la bécane a tenu bon, l’écran n’a aucun pixel mort, le clavier n’a montré aucun signe de faiblesse, la puissance même si elle peut me paraître limite tient surtout du fait que j’en fais plus maintenant qu’à l’époque. Il a tout de même la solidité des ports USB qui laisse à désirer, l’un des usb2 enchaîne les faux contacts et est inutilisable, et je commence à avoir du jeu sur l’un des usb3.

Concernant l’autonomie, il y a eu des hauts et des bas en fonction de certaines régressions du noyau concernant la gestion de l’énergie, mais là, la batterie semble vraiment à bout puisque même sans rien faire, écran éteint je dépasse difficilement les six heures alors que je pouvais dépasser les treizes aux grandes heures dans les mêmes conditions, et entre six et huit heures en fonctionnement suivant l’activité.

Son remplaçant encore plus compliqué à trouver que le smartphone

Ceux qui avaient lu ma check-list de smartphone ont compris que je peux avoir des exigences assez élevées, limite utopiques (et j’ai salement dérivé n’est-ce pas ?). C’est encore plus vrai sur les laptops dont le marché s’est réduit à peau de chagrin, englué dans des machines soit trop chères soit à la limite de l’arnaque même à moyen prix. Il y a quelques années aux alentours de 600 euros on pouvait trouver de bonnes machines qui étaient évolutives dans le sens où RAM, SSD, batteries pouvaient être remplacées en cas de besoin (défectuosité, augmentation de capacité…). Et la puissance au moins CPU n’était pas sacrifiée. Maintenant, on trouve RAM soudée, donc impossible à changer, idem pour le stockage dont la performance et la capacité sont risibles, la capacité figée, et quand l’un de ces deux-là meurent tôt vous pouvez jeter toute la machine. Et le CPU a drastiquement baissé en gamme.

Pire, les écrans mat sont toujours trop rares, la résolution est encore trop souvent faible (1366×768, c’était déjà le standard y’a 10 ans et c’est toujours le cas aujourd’hui…), le poids n’évolue pas ou peu. Les seules vraies prestations à même d’attirer les clients coûtent deux à trois fois le budget moyen que le public est prêt à mettre dans une machine. Malgré le format le poids n’aide pas à la mobilité, et les machines peu encombrantes sont d’abord orientées « pro », et le prix s’en ressent avec des options peu utiles pour le grand public.

Et puis j’aurais l’occasion d’en reparler plus longuement, mais j’attends une vraie alternative abordable (environ 700 euros, et j’ai bien conscience que c’est encore très haut dans un budget informatique moyen), ce qui veut dire plate-forme AMD et pas Intel. Mais là, on sent qu’Intel et ses pratiques sont à l’œuvre, il faut lutter pour trouver les références sans annonces des constructeurs, et certains résultats sont décevants quand les machines passent au grill. Avec un peu de chance, la pénurie annoncée par Intel pourrait profiter à AMD, et donc au public.

Déjà 5 ans !?

vendredi 21 septembre 2018 à 18:30

Je sais pas si c’est l’âge qui fait ça, mais je ne vois pas le temps défiler et pourtant, ça fuse, beaucoup trop vite parfois. Et voilà, ça fait déjà cinq ans que le blog existe. Comment a-t-il vécu depuis tout ce temps ? Comment va-t-il continuer à vivre ? Que vais je manger demain ? Autant de questions auquel je vais tenter de répondre aujourd’hui.

La raison pour laquelle je n’avais pas fait de billet anniversaire l’année dernière, c’est l’immense compilation de données de Piwik créée pour l’occasion que je n’arrivais pas à organiser, l’éditeur de WordPress ne voulais pas m’afficher les miniatures, bref j’ai lutté et accepté de perdre. En fait en écrivant ce nouveau billet je viens de comprendre que ce sont les filtres d’uBlock Origin qui persiste à bloquer un des rares outils d’analyse de trafic qui respecte les visiteurs, mais bon, maintenant les données sont un peu datées… Je ne vais pas recommencer cette année, mais je voulais quand même présenter quelques chiffres qui reflètent la vie du blog.

Les visites d’abord, depuis l’ajout de Piwik sur le blog courant 2014, voilà grosso modo à quoi ressemble la courbe de trafic :

Des hauts et des bas, rythmés par des soucis de SSL, des modifications dans les bloqueurs de pub, et une cadence de publication pour le moins chaotique, jugez plutôt ce petit graphique :On se rend compte que 2015 a commencé très fort, avant que je ne débute ma nouvelle vie, et par contre que 2018 est difficile. Ce qui est drôle, c’est qu’après la frénésie de début 2015, apparemment je devais culpabiliser un peu car je faisais régulièrement des billets « je suis toujours en vie » pour indiquer que je continuais de travailler. J’ai passé ce stade depuis (je vous ai pas prévenu en mars qu’il n’y aurait rien de publié, ou presque, mais c’était un morceau de choix), et manifestement ça vous dérange pas plus que ça puisque même après une interruption relativement prolongée, vous revenez 🙂

Ce que j’ai pu constater avec le temps, c’est que si vous ne publiez rien, le public ne vient pas. Perso ça me dérange pas plus que ça, j’écris d’abord pour le plaisir, et sur mon temps libre, mais pour ceux dont les revenus dépendent de cette fréquentation, on comprend mieux d’où vient la pression. C’est encore plus vrai cet été, visible en donnant un focus aux derniers mois :

Je n’ai rien publié de nouveau en juillet, par contre août à été très productif. Le résultat est visible directement. Certes j’ai les republications sur Twitter, mais finalement le gros du trafic régulier vient des moteurs de recherche, Google sans surprise hégémonique.

Le profil du public fait que Firefox est moins en souffrance que ce que je pensais face à Chrome qui est quand même majoritaire (pas faute de vous prévenir pourtant qu’il est dangereux), et ce depuis le début. Le mobile n’est pas encore la référence par contre, mais ça ne m’a pas empêché depuis le début du site de penser « responsive » pour le thème. Trois thèmes en cinq ans, j’ai en tête de rattaquer les travaux pour un nouvel habillage, mais avant même d’avoir l’environnement pour ça (j’arrive pas à me décider sur une stack docker sur le cluster swarm), il faut l’idée, les besoins, et je ne prend déjà pas de temps pour chercher et coucher sur papier numérique ces éléments. La seule chose qui est certaine : je reste sur WordPress.

Ce moteur de site m’a permis de faire évoluer mes besoins facilement, sans avoir à tout reprendre depuis le début, même si le deuxième thème, Simone, m’a donné du fil à retordre par moments. J’ai ainsi pu changer de moteur de commentaires sans douleur et sans perte réelle de données, ajouter la publication auto puis la republication sur Twitter, une petite barre de lecture, l’alerte de vieillesse, bref, la modularité de ce moteur de blog est un vrai bonheur. J’ai par contre toujours fait attention à l’impact sur les performances, ce qui m’a poussé à inclure certaines fonctions dans mon thème enfant pour gagner quelques millisecondes.

J’ai pu faire globalement évoluer la plate-forme en dessous sans qu’il ne pose de gros problèmes (à part un bug bien crade difficile à cerner). Je suis passé au HTTPS presque sans heurts, presque car ça a signé la mort de Disqus, maintenant HTTP2 est supporté également, TLS 1.3 ça attendra par contre. Nico à certes fait un super boulot pour gérer ça mais je suis profondément réfractaire à la compilation « manuelle ». Non vraiment, ça a été l’outil parfait pour moi. J’ai beau être tenté par les SSG (générateurs de sites statiques), le simple fait de devoir pleurer pour récupérer les commentaires associés aux articles me décourage. On supprime pas un ADN rempli de gênes de flemme du jour au lendemain, hein.

Et enfin il ne faut pas oublier non plus que ce blog a contribué un peu à changer ma vie pratiquement du tout au tout, car c’est la diversité de son contenu qui a en partie attiré Ory, mon premier manager chez Linkbynet qui a accepté de me donner une chance en tant qu’autodidacte (sur les conseils de Flemzord), et je cherche encore un moyen d’exprimer toute ma reconnaissance envers eux autrement que par ces quelques mots. Les premiers mois ont été difficiles, je vais pas refaire l’article que j’ai déjà écrit sur les challenges de l’autodidacte, mais je ne regrette rien.

Est-ce qu’on peut parler du futur ?

Essayons, j’ai envie de vous faire une nouvelle vidéo qui va un peu plus loin sur les outils de développement intégrés à Firefox, mais le grand classique, faut commencer par écrire le plan, ensuite la capture, le montage qui sous Linux reste toujours pénible (j’ai du monter la dernière sur pitivi parce qu’openshot est juste inutilisable, j’en viendrais presque à prendre le temps de configurer Blender). Et puis l’upload va continuer d’être une horreur avec un ADSL dont le débit montant est tout simplement horrible. Tiens je pourrais vous parler de mes échanges avec Orange sur leur non-engagement à être présent dans l’Oise sur le réseau public, c’est juste l’apothéose de ce que je pense déjà du plan France THD.

Sinon j’ai pas prévu de plan précis pour les articles, ça publie au fur et à mesure que je termine des brouillons et que j’en suis suffisamment content, pas de nouvelle série à prévoir pour l’instant, je lutte toujours autant pour la vulgarisation; à mon avis je vais lâcher l’affaire sur le DNS, quand je vois ce que j’ai pu lire ou entendre ailleurs ça va finir en compilation, après tout si le boulot est déjà bien fait et que je vois pas quoi ajouter de plus… Je compte pas non plus arrêter de donner mon avis si je pense qu’il est nécessaire qu’il soit publié, d’ailleurs c’est marrant j’évoquai le problème du financement de la création à propos de Peertube, il semblerait que le problème plus large de la contribution aie pris de la voix entre temps chez certains libristes qui tirent une sonnette d’alarme, comme quoi je dis pas trop de conneries mine de rien… Évidemment si vous avez des idées et que vous pensez que je peux apporter un point de vue intéressant (autrement dit pas copier/coller sur d’autres personnes, ce qui parfois me laisse silencieux sur certains sujets d’actualité), n’hésitez pas, par contre à moins d’être super inspiré attendez pas une publication sous 48h 😁

D’un point de vue plus technique j’ai déjà évoqué la problématique du thème, il faut que j’avance sur la refonte de la VM qui héberge le blog, refonte qui est au point mort depuis des mois (pas faute de bosser mes playbooks persos entre temps pour le cluster Swarm pourtant), Debian forever évidemment, mais au rythme où je vais ça va finir que la machine sera directement installée avec Buster. Je partagerai probablement certains rôles Ansible avec vous, toujours évidemment si j’en vois un intérêt particulier, en gros un cas d’usage qui sort un peu des sentiers battus.

Bref la maternelle c’est bientôt fini, et j’ai bien l’intention de passer en école primaire, donc vous attendez pas à me voir disparaître de sitôt, mais je pense que ça ne sera ni plus, ni moins qu’actuellement. Je suis content de la recette actuelle si au bout de cinq ans je ne me suis pas lassé, faudrait vraiment un grand chamboulement dans ma vie pour que ça change.

Tu te reposeras quand tu seras mort ! – Johner, Alien Resurrection

Créer une page regroupant toutes les astuces en vrac ?

mercredi 19 septembre 2018 à 18:30

Dans le dernier épisode des astuces diverses, on m’a demandé si j’avais une page qui regroupait toutes les astuces sorties depuis le début. Ce n’est pas le cas, ce n’était pas prévu jusqu’à ce que mon esprit décidément mal tourné se dise que c’était peut être possible de manière semi automatisée. J’ai cherché, j’ai trouvé.

La magie de wp cli

Je ne vous ai jamais réellement parlé de cet outil, pourtant pour les utilisateurs avancés de WordPress c’est un outil indispensable à garder dans sa trousse. En l’occurrence, il dispose de beaucoup de fonctions permettant de manipuler ce qui a trait aux posts, qui dans la langue de WordPress couvre à la fois les pages et les articles.

Vous l’aurez compris, l’objectif est de récupérer le contenu des articles et de les concaténer pour les coller dans une page. Et à peu de chose près, wp cli va nous permettre de faire tout ça.

Pas à pas, en douceur

Bon, en cherchant dans la documentation, je ne trouve pas moyen d’afficher les contenus d’une catégorie. Dommage. Cependant wp post list permet d’afficher tous les articles, et d’appliquer certains filtres. Les articles portent tous le même nom, alors on va bêtement utiliser grep :

web1@vox:~/web$ wp post list |grep -i "astuces diverses"
4862	Quelques astuces diverses, quatorzième		2018-09-15 11:09:55	draft
4631	Quelques astuces diverses, treizième	quelques-astuces-diverses-treizieme	2018-08-12 10:30:09	publish
4481	Quelques astuces diverses, douzième	quelques-astuces-diverses-douzieme	2018-05-04 18:30:22	publish
4390	Quelques astuces diverses, onzième	quelques-astuces-diverses-onzieme	2018-02-19 18:30:45	publish
4239	Quelques astuces diverses, dixième	quelques-astuces-diverses-dixieme	2017-12-22 18:30:38	publish
4088	Quelques astuces diverses, neuvième	quelques-astuces-diverses-neuvieme	2017-10-26 18:30:50	publish
3933	Quelques astuces diverses, huitième	quelques-astuces-diverses-huitieme	2017-09-12 18:30:55	publish
3723	Quelques astuces diverses, septième	quelques-astuces-diverses-septieme	2017-08-11 18:30:30	publish
3538	Quelques astuces diverses, sixième	quelques-astuces-diverses-sixieme	2017-06-13 18:30:54	publish
3411	Quelques astuces diverses, cinquième	quelques-astuces-diverses-cinquieme	2017-03-31 18:30:14	publish
3224	Quelques astuces diverses, quatrième	quelques-astuces-diverses-quatrieme	2017-01-29 10:30:34	publish
3083	Quelques astuces diverses, troisième	quelques-astuces-diverses-troisieme	2016-12-12 18:30:20	publish
2961	Quelques astuces diverses, deuxième	quelques-astuces-diverses-deuxieme	2016-11-09 18:30:27	publish
2877	Quelques astuces diverses	quelques-astuces-diverses	2016-08-31 18:30:54	publish

Ajoutons quelques options pour ne garder que le titre et l’id, et filtrer sur le statut pour ne garder que les publications et pas le brouillon en cours :

web1@vox:~/web$ wp post list --post_type=post --fields=ID,post_title,post_status |grep -i "publish" |grep -i "astuces diverses"
4631	Quelques astuces diverses, treizième	publish
4481	Quelques astuces diverses, douzième	publish
4390	Quelques astuces diverses, onzième	publish
4239	Quelques astuces diverses, dixième	publish
4088	Quelques astuces diverses, neuvième	publish
3933	Quelques astuces diverses, huitième	publish
3723	Quelques astuces diverses, septième	publish
3538	Quelques astuces diverses, sixième	publish
3411	Quelques astuces diverses, cinquième	publish
3224	Quelques astuces diverses, quatrième	publish
3083	Quelques astuces diverses, troisième	publish
2961	Quelques astuces diverses, deuxième	publish
2877	Quelques astuces diverses	publish

On approche, on approche. Un des avantages de l’id, c’est que c’est une clé incrémentée en base de données. Donc plus l’article est récent, plus l’id est élevé. Pour s’assurer d’un ordre précis c’est sort qui va faire le taf :

web1@vox:~/web$ wp post list --post_type=post --fields=ID,post_title,post_status |grep -i "publish" |grep -i "astuces diverses" |sort
2877	Quelques astuces diverses	publish
2961	Quelques astuces diverses, deuxième	publish
3083	Quelques astuces diverses, troisième	publish
3224	Quelques astuces diverses, quatrième	publish
3411	Quelques astuces diverses, cinquième	publish
3538	Quelques astuces diverses, sixième	publish
3723	Quelques astuces diverses, septième	publish
3933	Quelques astuces diverses, huitième	publish
4088	Quelques astuces diverses, neuvième	publish
4239	Quelques astuces diverses, dixième	publish
4390	Quelques astuces diverses, onzième	publish
4481	Quelques astuces diverses, douzième	publish
4631	Quelques astuces diverses, treizième	publish

Pourquoi faire tout ça ? Eh bien, on peut sauvegarder le contenu de chaque article dans un fichier texte. Je teste avec un des articles pour voir si mes espoirs seront comblés :

web1@vox:~/web$ wp post get 2877 --field=content > astuces1.txt
web1@vox:~/web$ head astuces1.txt 
<p style="text-align: justify;">C'est les vacances (du moins pour moi), et même si je me concentre sur ma recherche d'appartement, je n'oublie pas le blog qui me manquait effectivement un peu, et pour lequel j'arrive à trouver de l'inspiration. Enfin presque, aujourd'hui, c'est petit pense-bête pêle-mêle (beaucoup de circonflexes là-dedans) d'astuces diverses dans différents domaines, évidemment presque toujours de la ligne de commande.</p>
<p style="text-align: justify;"><!--more--></p>

<h3 style="text-align: justify;">Un générateur de mot de passe alphanumérique</h3>
<p style="text-align: justify;">Les astuces vont souvent prendre la forme d'un alias, et voici donc le premier, un petit générateur de mot de passe aléatoire, par exemple pour la connexion à une base de données :</p>

<pre class="lang:sh decode:true ">alias passgen="strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 12 | tr -d '\n'; echo"
</pre>
<p style="text-align: justify;">On l'appelle ensuite sans paramètre, et le résultat est immédiat :</p>

Cool, pas de sérialisation ! Je vais donc pouvoir attaquer la suite, à savoir la récupération de tous les contenus, concaténés dans un seul fichier texte. Pas de mystère, on continue dans le one-liner, et donc passage par une petite boucle (n’en déplaise à Aeris qui n’aime pas for 🙂 ):

> all_posts.txt; for i in $(wp post list --post_type=post --fields=ID,post_title,post_status |grep -i "publish" |grep -i "astuces diverses" |awk '{print $1}' |sort); do wp post get $i --field=content >> all_posts.txt; echo "<hr />" >> all_posts.txt; done

On remarquera au passage que j’ajoute une ligne html finale « hr » pour séparer les épisodes, c’est plus pour la forme qu’autre chose, puisque je récupère tout le contenu, avec les introductions donc. Ensuite je crée la page depuis l’admin du site, ce qui me permettra de contrôler le taf. Je cherche via la cli l’id de la page :

web1@vox:~/web$ wp post list --post_type=page --fields=ID,post_title|grep -i "astuces diverses"|awk '{print $1}'
4979

Ce qui devrait maintenant me permettre de pouvoir mettre à jour la page :

web1@vox:~/web$ wp post update $(wp post list --post_type=page --fields=ID,post_title|grep -i "astuces diverses"|awk '{print $1}') all_posts.txt
Success: Updated post 4979.

Je vérifie ensuite dans l’éditeur, puis l’aperçu, et ma foi, ça semble bien faire le boulot :

Il ne me reste plus qu’à scripter ça proprement, ne serait-ce que pour accélérer la boucle via une variable. La prochaine fois que j’ai un article de publié je pourrais relancer cette routine et ça fera des Chocapic ! La page est disponible à cette adresse, et elle est accessible via le menu principal dans la section projets.

Est-ce qu’on peut faire mieux ?

J’en sais rien, déjà ça ça fonctionne pas mal donc je suis content, avec les filtres sur les catégories on pourrait regrouper les articles d’autres séries plus simplement que via du grep bien dégueu (et surtout avec des titres différents). Je cherche pas non plus à détecter automatiquement si un nouvel article est publié dans la série, dans une optique d’automatiser complètement la mise à jour de la page à la publication des nouveaux articles.

Mais si vous avez des idées pour tout ça je suis preneur.

transfer.sh chez soi sur Docker swarm

dimanche 16 septembre 2018 à 10:30

Transfer.sh est un site qui permet de faire du téléchargement éphémère, dans la veine de wetransfer, framadrop, dl.free.fr et d’autres que je ne connais pas mais je suis certain qu’ils sont nombreux. C’est aussi un logiciel opensource, la société DutchCoders qui l’a conçu partage le code pour que l’on puisse l’installer chez soi. Et ça tombe bien, puisque je cherche justement ce genre de service à installer sur mon cluster swarm. Mais ça s’est accompagné de quelques challenges, qui méritent un retour d’expérience.

Petit rappel sur le service

Donc, le service permet de déposer des fichiers simplement et de les partager pendant une durée de 14 jours. Sa particularité qui me plaît beaucoup, c’est la possibilité de passer un fichier via la ligne de commandes. C’est cool, ça permet d’envoyer un fichier directement depuis un serveur qui ne dispose pas forcément d’interface graphique, via curl (il y a d’ailleurs plusieurs exemples).

Et les hollandais qui l’ont écrit le maintiennent et le partagent sur Github, donc plein de bonnes raisons de s’y intéresser.

Le go c’est bien, enfin peut-être

J’adore le monde de l’open source. On peut voir des dizaines de solutions écrites dans autant de langages pour un même type de service. J’ai vu du nodejs, du php, Lufi, à la base de framadrop, est écrit en Perl, j’ai vu du Ruby… Et donc transfer.sh est écrit en Go. J’ai pas grand chose à dire sur le langage lui-même ou son utilisation dans le contexte présent, à part qu’il semble prisé des développeurs qui exploitent des applications web. Djerfy qui a commencé à taper dedans pourrait vous en parler, et les devops mouillent leur sous-vetements devant les outils d’Hashicorp qui sont majoritairement écrits en Go.

Mais comme beaucoup de soft dans le genre, les développeurs ne pensent absolument pas au fait que c’est un service et qu’on pourrait disposer d’un script quelconque plutôt que de devoir se démerder tout seul. C’est pas spécifique au langage hein, mais plutôt aux développeurs qui oublient très souvent le monde réel. Ça oblige les admins à chacun réinventer la roue dans son coin (supervisor, systemd, sysvinit, cron…), et c’est pénible.

Et Docker ?

Pareil j’ai envie de dire, si une image Docker est bien fournie pour transfer.sh, on a juste une vague ligne de commande pour le lancement en mode interactif, la « doc » tient en un petit paragraphe. Il faut commencer à fouiller le code, en particulier le Dockerfile, pour commencer à comprendre certaines choses sur l’image. Et retourner sur la documentation pour comprendre pourquoi les premières tentatives de déploiement de stack échouent sur un message foireux « no access key defined ».

En lisant le Dockerfile on voit que l’entrypoint passe des paramètres par défaut qui sont incomplets, puisque le backend de stockage sélectionné est s3 mais il faut manuellement passer les clés en environnement. Si on utilise S3 d’AWS, ce qui n’est pas mon cas. La documentation de docker compose indique qu’on peut surcharger avec la directive « entrypoint: », mais pas de bol, c’est un des rares points qui ne sont pas supportés par Socker Swarm.

La libération vient de la directive command, au début je pensais qu’il fallait repasser la commande complète mais ça ajoute juste le contenu en guise de paramètres supplémentaires à l’exécution. Donc si on veut passer --provider local --basedir /uploads au container, il fait juste le faire comme ça :

services:

  transfersh:
    image: dutchcoders/transfer.sh:latest
    command: --provider local --basedir /uploads/

La difficulté de la personnalisation

Finalement passé les quelques écueils pour les options de lancement en mode Swarm, le service est très rapidement fonctionnel. Mais un problème apparaît alors : tout est affiché pour le domaine transfer.sh, alors que je suis sur mon domaine perso. Les exemples, les liens, sont tous formatés. Le titre du site aussi.

Il a fallu fouiller de ouf dans les issues fermées du dépôt Github pour trouver un deuxième dépôt contenant les sources HTML/CSS/JS. Et là c’est l’enfer sur terre pour comprendre comment faire fonctionner la « compilation » des fichiers front. Putain, on parle de CSS, JavaScript et HTML, comment on peut avoir besoin de compilation nom de dieu (en minuscules, rappelez-vous pourquoi) ?

D’autant que ça repose sur une tetrachiée d’outils en nodejs, javascript donc, à installer sur son poste. Je passe par une image docker Ubuntu exécutée en local pour installer tout le bordel, histoire de pas saloper mon poste, et c’est long, mais long… Je parviens quand même à comprendre comment ça fonctionne, et finit douloureusement par obtenir le fameux dossier « dist » qu’il faut ensuite déposer sur le cluster, bind-mounter et « activer » via l’option --webdir (à ajouter à command donc).

Je décide à partir de là de continuer mes personnalisations directement depuis ce fameux dossier final plutôt que souffrir avec les outils affreux. C’est chiant parce qu’il y a plein de doublons du coup, mais c’est plus simple. Surtout que j’ai pris une quantité d’alertes de paquets npm obsolètes ahurissant, c’est tellement rassurant quand on doit les lancer…

Voilà donc rapidement, si vous voulez le lancer en mode Swarm chez vous (ou simplement docker-compose), à quoi ressemble le fichier :

version: '3'
networks:
  transfer:
    driver: overlay

services:

  transfersh:
    image: dutchcoders/transfer.sh:latest
    command: --provider local --basedir /uploads/ --web-path /web/
    environment:
      - "PUID:1001"
      - "PGID:1001"
    networks:
      - transfer
    ports:
      - "8080:8080"
    volumes:
      - /home/docker/transfersh/uploads/:/uploads/
      - /home/docker/transfersh/web/:/web/
    deploy:
      replicas: 1
      restart_policy:
        condition: any

Quelques points noirs à traiter

Apparemment, le code est maintenu doucement, en soi c’est pas un gros problème. Il y a par contre un truc qui me gène, c’est que l’appli tourne avec l’utilisateur root. Il y a une issue à ce sujet mais apparemment ils sont pas pressés de traiter ce point. Je vais donc voir si je ne vais pas être obligé de mettre les mains dans le cambouis pour traiter le mal via un Dockerfile adapté. C’est un mal nécessaire si vous tentez de déployer ce service sur un cluster OpenShift, qui interdit l’utilisation de root.

Un autre point chiant, là j’ai pas compris pourquoi, il ne prend pas à chaud les mises à jour de contenus ou de template sans redémarrage de l’application. En soi c’est pas méchant mais ça reste pénible. Le fait est qu’une fois terminé on y touche plus trop, mais bon…

Quelques liens en vrac et en français, 28° édition

lundi 3 septembre 2018 à 18:30

Comme vous avez probablement pu le constater, le mois de juillet a été particulièrement calme pour une bonne raison : je n’avais pas l’énergie une fois rentré chez moi pour écrire suffisamment longtemps pour vous sortir quelque chose de structuré. Une situation qui s’est un peu amélioré en Août. Mais j’ai toujours autant de temps de trajet, et donc toujours autant de lecture. Après avoir accumulé quelques articles intéressants, il est temps de vous les (re)mettre en lumière. Bonne lecture 🙂

La carte de fidélité et le profilage. Bienvenue à bord

Vous avez certainement entendu parler de pistage et de profilage en ligne, notamment depuis l’arrivée du RGPD où les sites sont censés vous demander votre consentement explicite et éclairé avant de procéder (ce que la plupart ne font pas correctement, voire pas du tout, donc en totale illégalité). Mais sachez qu’il n’y a pas que sur le Web que vous êtes traqués de tous les côtés, et vos si chères cartes de fidélité sont encore plus toxiques pour votre vie privée.

Ce que les projets open source ne doivent pas oublier

Les projets libre et open-source sont devenus des éléments vitaux pour continuer de garder un semblant de contrôle sur notre univers informatique (et par extension, de plus en plus de ce qui constitue notre vie). Mais les développeurs, encore très souvent, sont trop concentrés sur le fonctionnement lui-même et oublient quelques étapes essentielles pour la diffusion de leur bébé, en premier lieu leur installation ailleurs que chez eux.

Héberger les marque-pages Firefox

Contrairement aux autres navigateurs qui proposent la même fonction, la synchronisation des marque-pages et de l’historique de Firefox repose sur des composants logiciels que Mozilla a publié, et le navigateur peut être paramétré pour utiliser sa propre installation plutôt que les silos de données de Google ou de Microsoft. Toutefois l’installation de ces composants chez soi est particulièrement mal documentée et même moi j’ai jeté l’éponge. Mirabellette était plus motivé que moi, a réussi, et nous partage donc à la fois en anglais et en français les étapes nécessaires pour avoir une installation fonctionnelle. Reste encore les composants Firefox Accounts qui sont encore plus compliqués à faire fonctionner.

Envie de livres du domaine public ?

Malgré les velléités des sociétés de défense du « droit d’auteur » illimité (j’appelle ça mafia, mais bon, il parait que ça passe pas bien de leur dire la vérité), à un moment donné les œuvres de l’esprit, qu’elles soient écrites, chantées, dessinées, sculptées, que sait-je encore, bref ces œuvres s’élèvent dans le domaine public. Ce qui veut dire qu’il n’y a plus aucune restriction autre que technique à leur diffusion au plus grand nombre sans avoir à rendre de compte. En cherchant des bouquins électroniques pour ma maman pour les vacances en Espagne, je tombe sur ce site qui a une section domaine public que je ne peux que vous conseiller de fouiller.

Tout savoir sur les batteries : mythes, astuces et avenir

Les technologies de batterie sont au cœur des objets que nous utilisons au quotidien : smartphones, ordinateurs portables, tablettes, montres et autres bracelets connectés, et maintenant trottinettes, voitures électriques voire autonomes, bientôt semi-remorques. On peut entendre bien des choses, voire même avoir peur lorsque la presse nous fait dans le sensationnalisme au moindre incident. Cet article d’frandroid est vraiment pas mal foutu et suffisamment didactique pour faire un bon tour du sujet et faire sauter quelques mythes.

Vous avez dit peering ?

On l’oublie souvent, mais Internet n’est pas un seul réseau géant mais bien l’interconnexion de plusieurs réseaux entre eux. Cette interconnexion passe par plusieurs méthodes, le peering étant la principale d’entre elles, du coup, autant vous partager cet article parce que je n’aurais probablement jamais écrit celui-ci moi-même.

Comment bloquer Red Shell, le spyware des gamers

Espionner les utilisateurs et collecter des données sur leur comportement est devenu la norme chez les sociétés technologiques, et c’est un problème global qui touche jusque l’univers du jeu vidéo. Ce nouveau mouchard se répand dans plusieurs jeux populaires. Fort heureusement, les bonnes vieilles méthodes sont toujours efficaces pour enrayer un peu cette saloperie…

Contourner le mot de passe admin Windows

En dehors du chiffrement du disque, vous pouvez faire tout ce que vous voulez pour sécuriser votre machine, à partir du moment où vous avez un accès physique, il y a peu de choses que l’on ne peut pas faire. Ici, il s’agit de contourner une sécurité qui est le mot de passe de l’administrateur Windows. Cette manipulation n’a jamais pu être corrigée par Microsoft.

#RGPD : Les « dark patterns », ou comment s’asseoir sur le Règlement

Devoir vous demander explicitement votre accord pour vous espionner est une vraie plaie pour toutes les sociétés dont leur principale source de revenu est le profil qu’ils tirent des données qu’ils collectent sur votre comportement. Et donc ils font tout pour continuer de pouvoir collecter « légalement » tout ce qui les intéresse chez vous, à savoir le maximum de choses, en vous trompant sur les choix que vous allez faire.

Restriction des commandes SSH sur clés publique /privée

J’ai déjà pu dans le passé vous présenter des moyens de donner des droits ou de limiter l’élévation des privilèges à un utilisateur sous Linux. Récemment j’ai appris qu’on pouvait même aller un peu plus loin en limitant carrément les commandes autorisées via une connexion SSH, en ajoutant quelques options en fonction de la clé privée/publique renseignée. Plutôt pratique pour pouvoir utiliser le même compte mais avec des possibilités différentes en fonction de la clé utilisée.

Comment convertir vos images en WebP et les afficher avec Nginx

Tout comme le MP3, le JPG est dans les parages depuis très, très longtemps, certains diront trop. Quelques formats ont tenté de jouer les prétendants au trône, comme JPEG2000, avec l’absence de succès que l’on sait. Mozilla a proposé d’améliorer les outils pour la compression JPG, Google a voulu capitaliser sur les travaux issus du rachat d’On2 Technologies et de son codec VP8 d’abord destiné à la vidéo pour proposer un format d’image de haute qualité qui est capable de prendre moins de place que ce bon vieux JPG. Bien que le support au sein des navigateurs soit limité, si vous voulez exploiter ce format sur votre site, vous trouverez tous les détails dans cet article.

Secure Shell mon amour déchu ?

Tout comme pour TLS, SSH ne sera réellement efficace pour sécuriser vos communications que s’il est correctement paramétré. Si on vous a déjà dit que la qualité de la clé compte, c’est également vrai pour le reste des paramètres du serveur et/ou du client. Y’a plus qu’à suivre le guide d’Arnaud Minable qui porte mal son nom.


Ça fait plus que d’habitude, et encore j’ai écrémé parce que certains ont fini dans d’autres articles. Ce que je trouve rassurant, contrairement à ce que constate Cyrille de son point de vue, c’est que j’ai pas l’impression que la production francophone se calme. Par contre, c’est vrai que c’est pas toujours évident de mettre la main dessus, et certains ont été trouvés par hasard. Ceci explique peut-être cela…