Planet Asrall

October 30, 2018

Luc Didry

Lufi 0.03 est sorti !

Après plus d’un an, voici une nouvelle version de Lufi ! Cette nouvelle version aurait du être l’oc­ca­sion d’une refonte de l’in­ter­face en utili­sant VueJs mais j’ai pris énor­mé­ment de retard sur mon appren­tis­sage de celui-ci, donc ça sera pour la version suivante.

Le déve­lop­pe­ment de la nouvelle version n’a pas pris un an, loin de là, mais comme ce n’est pas le seul logi­ciel que je main­tiens (loin de là), bah voilà.

Vous pouvez tester la nouvelle version sur l’ins­tance de démons­tra­tion : https://demo.lufi.io.

Liste non exhau­sive des chan­ge­ments

Pour les utili­sa­teurs :

  • Amélio­ra­tion de la vitesse au niveau client via l’uti­li­sa­tion de mes plugins Mojo­li­cious GzipS­ta­tic et StaticCache, qui compressent les fichiers statiques et leur adjoint un en-tête de cache navi­ga­teur ;
  • Possi­bi­lité de choi­sir la langue de l’in­ter­face (là où le choix se faisait auto­ma­tique­ment via les préfé­rences du navi­ga­teur) ;
  • Affi­chage de la taille du fichier lors de l’en­voi ;
  • Affi­chage de la taille maxi­male accep­tée des fichiers ;
  • Ajout des traduc­tions en arabe et en alle­mand ;
  • Ajout d’une tâche récur­rente pour provi­sion­ner en avance des adresses de fichier. Pour les utili­sa­teurs, ça se traduit par des pages qui sont envoyées bien plus rapi­de­ment.

Pour la modé­ra­tion :

  • Il y a possi­bi­lité pour l’ad­min de modi­fier un champ en base de données pour bloquer le télé­char­ge­ment d’un fichier, tout en affi­chant la raison (contenu illé­gal, viola­tion des CGU, etc. Les raisons sont confi­gu­rables) au télé­char­geur. Cela n’est pas très pratique (bidouiller en base de données), mais c’est un pas en avant ;
  • Possi­bi­lité de signa­ler simple­ment un fichier aux admins d’une instance.

Pour la sécu­rité :

  • Mise à jour de la biblio­thèque javas­cript de chif­fre­ment SJCL ;
  • Gestion d’une éven­tuelle excep­tion si l’en­tro­pie du navi­ga­teur est trop faible pour géné­rer correc­te­ment une clé de chif­fre­ment ;
  • Ajout de jetons CSRF à la connexion et à la décon­nexion (si l’au­then­ti­fi­ca­tion est utili­sée, bien sûr) ;
  • Ajout de contraintes sur l’en­voi de mail pour éviter de se retrou­ver à envoyer des spams.

Pour les déve­lop­peurs :

  • Utili­sa­tion de Mojo::SQLite à la place d’ORLite pour l’uti­li­sa­tion d’une base SQLite. Ce chan­ge­ment de module me permet de réduire énor­mé­ment le code de la couche d’abs­trac­tion de la base de données : Mojo::SQLite a la même syntaxe que Mojo::Pg, du coup, c’est le même code pour les deux bases de données.
  • Créa­tion et utili­sa­tion de plugins Mojo­li­cious person­nels. Ces modules ne sont pas publiés sur le CPAN car très forte­ment liés à ma manière d’uti­li­ser le frame­work Mojo­li­cious. La publi­ca­tion de modules person­nels sur le CPAN est décon­seillée pour ne pas le polluer, mais Carton, le gestion­naire de dépen­dances que j’uti­lise permet de spéci­fier l’URL de télé­char­ge­ment des modules. Je peux donc utili­ser les tarballs four­nis par Frama­git. L’in­té­rêt de l’uti­li­sa­tion de modules person­nels est de mutua­li­ser le code commun à mes diffé­rents logi­ciels, de ne plus me répé­ter et de réper­cu­ter une correc­tion ou une amélio­ra­tion d’un logi­ciel à un autre bien plus faci­le­ment ;
  • Ajout d’un code de conduite ;
  • Ajout d’une suite de tests, lancée auto­ma­tique­ment à chaque push grâce à l’in­té­gra­tion conti­nue de Gitlab.

Pour les admins :

  • Support de MySQL : comme le code de la couche d’abs­trac­tion a été simpli­fié, il suffit d’uti­li­ser un module possé­dant la même syntaxe que ceux des deux autres bases de données pour ajou­ter le support d’une nouvelle base. Grâce à Mojo::mysql, ça s’est fait très faci­le­ment.
  • Ajout d’une commande pour migrer simple­ment d’une base de données SQLite à un autre type de base.
  • Il y a main­te­nant une option dans la confi­gu­ra­tion pour obli­ger tous les fichiers à être suppri­més après le premier télé­char­ge­ment.
  • Il y a main­te­nant un en-tête Content-Secu­rity-Policy par défaut, qui devrait conve­nir à la plupart des instal­la­tions. Cet en-tête est bien évidem­ment surchar­geable dans la confi­gu­ra­tion.

Hack­péro

Il est à noter que cette version a été présen­tée au Hack­péro qui a eu lieu à Paris le 26 octobre dernier (un genre de hacka­thon spécia­lisé recherche de bugs ou de vulné­ra­bi­li­tés). Je tiens à remer­cier gran­de­ment l’équipe de Bounty Factory qui m’a contacté pour me le propo­ser, ainsi que les bug hunters qui y ont parti­cipé.

Artwork Lufi

Je vous ai déjà présenté l’artwork pour Lutim dans mon article précé­dent. J’avais aussi commandé à Soniop un artwork pour Lufi !

Cliquez pour avoir l’image origi­­nelle (en grande taille)

Comme pour Lutim, c’est en CC-BY-SA (fichier source Photo­shop).

Instal­la­tion

La meilleure façon d’ins­tal­ler Lufi est de suivre les instruc­tions du wiki.

Parta­ger

by Luc at October 30, 2018 05:14 PM

October 25, 2018

Luc Didry

Merci à mes tipeurs 🙂

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de septembre. Petite forme pour la rentrée, mais je vous rassure, octobre sera un bien meilleur cru 😉

Merci à :

Voici mon bilan de septembre :

  • J’ai bossé sur Lstu :
    • au vu du nombre de spam­meurs/phisheurs qui utilisent Frama.link pour cacher des URLs véro­lées, j’ai du me résoudre à ajou­ter le support de Google Safe Brow­sing (GSB). Pas de panique, les véri­fi­ca­tions sont faites sur une copie locale de la base de Google, donc rien ne filtre vers l’ogre. Cela reste une option : Lstu n’uti­lise pas GSB par défaut. La véri­fi­ca­tion a lieu à la créa­tion d’un raccourci d’URl mais peut égale­ment être effec­tuée via une commande CLI (fort utile pour faire des véri­fi­ca­tions a poste­riori et nettoyer la base de donnée de votre instance).
    • j’ai inté­gré une merge request pour permettre d’uti­li­ser Lstu via Docker. Je ne suis pas un grand fan de Docker, mais si ça peut servir…
  • Commits dédiés

Je ne résiste pas à l’en­vie de vous offrir en avance une superbe illus­tra­tion que j’ai comman­dée à Soniop :

Cliquez pour avoir l’image origi­nelle (en grande taille)

(en avance parce que je l’ai comman­dée en octobre)

Bon, ça a pas été fait avec un logi­ciel libre (source photo­shop), mais c’est libre : libéré sous licence CC-BY-SA. Person­nel­le­ment, je l’ai mise en fond d’écran (sur le PC et sur le télé­phone 😁).

Tcit en a commandé une avec le logo de Frama­soft qu’est super aussi : https://www.devian­tart.com/soniop/art/Commis­sion-Framas­pace-768711643.

Préci­sion : j’ai payé l’illus­tra­tion, mais un tarif plus que raison­nable (mais vrai­ment raison­nable hein !). Contac­tez Soniop si vous souhai­tez comman­der une illus­tra­tion dans le style.

Vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 😉

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

Crédits : Photo par Nick Fewings sur Unsplash

Parta­ger

by Luc at October 25, 2018 06:21 PM

October 11, 2018

Florent Peterschmitt

Vim Setup

Micro article pour parler de ma configuration Vim, des fois que ça puisse servir à d’autres.

En réalité j’utilise neovim couplé à vim-plug pour la gestion des plugins.

Voici ce dont j’ai besoin :

  • De la complétion pour Python, Go, et parfois Rust
  • Pouvoir lancer un linter sur les fichiers en cours d’édition
  • Afficher les erreurs de compilation, de syntaxe etc…
  • Exécuter des tests depuis l’éditeur
  • Colorisation syntaxique
  • Recherche et ouverture facile de fichiers à la SublimeText

Tout ça je l’ai avec cette conf.

La doc d’installation est en haut du fichier.

Les principaux modules que j’utilise sont :

  • YouCompleteMe pour la complétion
  • ALE pour la syntaxe et certaines commandes pour corriger des imports en python, nettoyer les fins de ligne etc…
  • FZF et le plugin vim pour chercher des fichiers, dans les fichiers etc…
  • GutenTags, couplé à FZF pour chercher les fonctions, classes ou toute définition supportée par universal ctags
  • vim-go pour Go
  • Vimagit pour maniper Git directement dans un buffer dédié
  • GitGutter pour voir les lignes modifiées/ajoutées etc…

Les autres plugins sont principalement des aides, que j’utilise assez peu en fin de compte.

Alors c’est pas parfait, j’aimerais bien avoir des raccourcis pour lancer les tests en ayant le curseur dans le bloc de code de test par exemple, ce genre de trucs. Je me débrouille autrement, notemment avec watchngo, de fabrication maison ^^

Have fun !

by Florent Peterschmitt at October 11, 2018 05:00 PM

September 15, 2018

Luc Didry

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle d’août.

Merci à :

Voici mon bilan d’août :

Vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

Crédits : Photo par Tim Marshal sur Unsplash

Parta­ger

by Luc at September 15, 2018 12:38 PM

August 22, 2018

Luc Didry

Hey ! C’est le Ray’s day !

Pour le Ray’s day, je lance un concours avec tirage au sort pour gagner un recueil de mes mercre­dis fiction, relié à la japo­naise avec mes petites mains.

Lais­sez-moi votre nom/pseudo/whate­ver ainsi qu’une adresse mail et je vous contac­te­rai si vous avez gagné 🙂

Le nom/pseudo/whate­ver du gagnant sera annoncé sur mon compte masto­don ainsi qu’ici, sur mon blog.

Le formu­laire est sur https://frama­forms.org/concours-pour-le-rays-day-1534924436 ou direc­te­ment embarqué ci-dessous.

Parta­ger

by Luc at August 22, 2018 08:26 AM

August 11, 2018

Luc Didry

Double merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de juin… et de juillet. Du retard, toujours du retard et encore plus de retard !

Merci à :

Aparté : j’ar­rête de propo­ser de me soute­nir en bitcoins car le bitcoin est une catas­trophe écolo­gique et je ne souhaite pas caution­ner ça. J’ai donc vidé mon porte­feuille bitcoin. J’ai mis du temps à le faire pour deux raisons : d’abord, je ne pense pas souvent à mon porte­feuille bitcoin, ensui­te… l’ap­pât du gain. Faut pas se mentir, quand on voit comme le bitcoin peut grim­per, ça fait rêver de voir combien on peut gagner. Du coup, je me trans­for­mais en un spécu­la­teur de la pire espèce. Quand je m’en suis rendu compte, j’ai décidé d’ar­rê­ter. À noter que la Ğ1, si c’est une crypto-monnaie repo­sant sur une block­chain comme le bitcoin, ne présente pas les mêmes défauts : de par le divi­dende univer­sel qui est distri­bué à tous et qui augmente avec la toile de confiance, la thésau­ri­sa­tion ne sert pas à grand-chose, et la preuve de travail de la Ğ1 est beau­coup moins consom­ma­trice de ressources que le bitcoin.

Voici mon bilan de juin :

Et mon bilan de juillet :

Vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

Crédits : Photo par Connor Wells sur Unsplash

Parta­ger

by Luc at August 11, 2018 09:20 AM

July 25, 2018

Luc Didry

Retrou­vez mes confé­rences en vidéos sur PeerTube !

Juste un p’tit mot rapide pour dire que j’ai mis les vidéos des confé­rences que j’ai pu donner à droite à gauche sur PeerTube (celles que j’ai retrou­vées sur le net tout du moins).

Ça se passe sur https://aperi.tube/accounts/luc/videos, et pour vous abon­ner à mon compte via Masto­don ou autre service fédéré qui sait le faire, mon compte est @luc@a­peri.tube.

NB : https://aperi.tube n’est pas à moi (même si j’en gère le système), donc pas la peine de me deman­der un compte dessus, désolé :/

Crédits : Photo par Tim Marshal sur Unsplash

Parta­ger

by Luc at July 25, 2018 07:58 PM

July 01, 2018

Romain Dessort

Rando-voyage dans l'ouest du Canada

Je pars aujourd'hui pour un voyage de 4 mois à la découverte de l'ouest canadien, en Colombie-Britanique principalement, un peu d'Alberta et peut-être aussi au Yukon si j'ai le temps et qu'une opportunité se présente.

Je vais essayer de publier mes photos et un récit au fur et à mesure de mon périple, mais je ne promets rien, je n'aurai pas souvent accès à Internet et encore moins à un ordinateur. Ça se passera ici (flux Atom).

July 01, 2018 12:57 PM

June 30, 2018

Luc Didry

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de mai (juste à temps pour pas faire une double page de remer­cie­ments demain) !

Merci à :

Voici mon bilan de mai :

Vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Crédits : Photo par Tim Marshal sur Unsplash

Parta­ger

by Luc at June 30, 2018 09:37 PM

June 24, 2018

Florent Peterschmitt

Namasté Népal - #3.2

Plus d’un an après le dernier article sur le sujet… alala ^^'

Et comme d’habitude, un peut de shell pour corriger les images :

for i in $(find . -namae *.jpeg); do
    convert $i -auto-orient /tmp/out.jpeg
    mv /tmp/out.jpeg $i
done

Article précédent

Vadrouille - 17 Avril… 2017, hein :D

L’objectif était de visiter le musée Gurkha la grotte « Mahendra », où je me suis rendu compte après coup avoir été correctement plumé… ah bah on est touriste ou on ne l’est pas ^_^ !

Voici donc les photos prises pendant le trajet.

photo

photo

photo

Bindabasini Temple

Endroit un peu en hauteur, vent frais. Je n’ai pas pris beaucoup de photos car j’ai une vidéo du lieu, trop lourde pour être postée ici malheureusement. J’aurais dû y penser, c’est trop tard maintenant !

photo

photo

photo

Musée Gurkha

Étant très mauvais historien, je préfère encore vous rediriger vers la page wikipedia sur les Gurkhas plutôt que de tout recopier :)

Pour faire simple, les Gurkhas sont des unités armées britanniques, entraînées sur place.

photo

photo

photo

Visite officielle et rumeurs…

photo

photo

Mousquets Martini Henry et India Pattern

photo

photo

Moderne et toujours présent

photo

photo

photo

En allant vers la grotte

photo

À l’intérieur de la grotte, à l’entrée, on trouve une roche ayant l’apparence d’une trompe d’éléphant, rapport à Ganesh, le dieu à tête d’éléphant. Peu de touristes sont présents ici, les personnes se bouscules pour faire une brève prière et s’attirer la bonne fortune.

Ce qui n’empêche pas l’endroit d’être jonché de bouteilles en plastique.

photo

Le guide m’emmène vers le reste de la grotte, où seuls les touristes vont. Il avoue lui-même que les touristes Indiens ne sont pas respectueux des lieus et qu’il ne souhaite pas que cette partie soit publiquement accessible.

Bon par contre, vous remarquerez que j’ai honteusement dérangé ces charmantes chauves-souris…

photo

photo

photo

photo

photo

À la sortie de la grotte, c’est là que le plumage a eu lieu. En grand champion, j’ai confondu, à l’orale, “1000” et “100” en anglais : le guide a annoncé 8000 roupies, j’ai compris 800. Résultat j’y ai laissé 80€ au lieu de 8 pour la visite… évidemment le guide n’allait pas refuser, et il a eu bien raison d’essayer !

En somme, une journée bien physique, crapahuter dans la grotte c’était quand même assez chouette, et puis surtout il y faisait bien frais :D

by Florent Peterschmitt at June 24, 2018 04:00 PM

May 01, 2018

Luc Didry

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle d’avril !

Merci à :

Voici mon bilan d’avril :

Sur une note un peu sombre, j’ai coupé l’en­voi d’images sur https://lut.im, l’ins­tance offi­cielle de Lutim. Je m’en suis expliqué sur un (assez) long fil Masto­don : https://frama­piaf.org/@fra­masky/99863305805130122. Ça ne veut pas dire que j’ar­rête de déve­lop­per Lutim, juste que https://lut.im n’ac­cepte plus de nouvelles images (celles qui y sont déjà reste­ront acces­sibles, rassu­rez-vous).

Vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Crédits : Photo par Tim Marshal sur Unsplash

Parta­ger

by Luc at May 01, 2018 01:55 PM

April 29, 2018

Luc Didry

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de mars !

En retard, comme d’hab, mais cette fois-ci, ce n’est pas de la flemme : le mois d’avril a été bien rempli, vous verrez sur la prochaine page de remer­cie­ments 😉

Merci à :

Voici mon bilan de mars :

Et vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Crédits : Photo par Aaron Burden sur Unsplash

Parta­ger

by Luc at April 29, 2018 11:14 AM

April 21, 2018

Luc Didry

Signer ses commits Git et trans­fé­rer son gpg-agent sur un serveur distant

GPG, c’est bien. C’est encore ce qu’on a trouvé de mieux pour que tout un chacun puisse s’as­su­rer de l’au­then­ti­cité d’un message (non-modi­fi­ca­tion de celui-ci et que son auteur est bien celui annoncé) et chif­frer ses messages.

OK, c’est pas un exemple d’er­go­no­mie, OK, c’est pas ma mère qui va s’en servir sciem­ment tous les jours (sous le manteau, si, puisque les paquets de sa Debian sont signés avec GPG). Mais d’un autre côté, ma mère ne risque pas non plus (et je dirais même encore moins) de se payer un certi­fi­cat X509 pour signer ses mails. Ne parlons pas de mon père, à côté de lui, ma mère fait figure de hax0r.

Bon, d’ac­cord, c’est un bon gros truc de geek. OSEF, c’est cool quand même, c’était pour dire que c’était robuste et que tout le monde peut l’uti­li­ser sans bourse délier.

Que vous le sachiez (dans la colle) ou pas, on peut signer ses commits git avec GPG, histoire d’ajou­ter encore une couche de sécu­rité aux modi­fi­ca­tions qu’on apporte à un logi­ciel. Des forges comme Gitlab permettent d’ajou­ter une clé GPG à son profil permet­tant ainsi de véri­fier les signa­tures des commits d’un projet. Voyez sur ce commit le joli petit bouton « Veri­fied ».

Ceci n’est pas un cours sur GPG, on va donc consi­dé­rer que vous avez déjà une clé GPG.

Signer ses commits Git

Rien de plus simple. Il faut tout d’abord décla­rer à Git quelle clé doit être utili­sée pour signer ses commits (chan­gez l’em­preinte, ça c’est la mienne ) :

git config --global user.signingkey EA868E12D0257E3C

Main­te­nant, soit vous ajou­tez -S quand vous commit­tez :

git commit -S

Soit vous confi­gu­rez Git pour signer tous vos commits :

git config --global commit.gpgsign true

Voilà, c’est bon. Pour véri­fier un commit :

git verify-commit cce09ca

C’est bien beau, mais ça m’ar­rive de déve­lop­per direc­te­ment sur des serveurs, et surtout, je déve­loppe géné­ra­le­ment dans une machine virtuelle sur mon PC. Je ne vais certai­ne­ment pas aller copier ma clé privée sur les-dits serveurs ou dans la machine virtuelle ! C’est là qu’in­ter­vient le trans­fert du gpg-agent sur le serveur distant.

Ceci n’est toujours pas un cours sur GPG, on va donc consi­dé­rer que vous avez déjà un gpg-agent fonc­tion­nel sur votre ordi­na­teur.

Trans­fé­rer son gpg-agent sur un serveur distant

ATTENTION On ne trans­fère son agent gpg que sur une machine dans laquelle on a confiance, et dont on sait que les personnes y ayant accès ne s’amu­se­ront pas à utili­ser votre agent (rien de plus simple si on a un accès root à la machine). Cela vaut aussi pour l’agent ssh !

Premiè­re­ment, on va dire à l’agent de créer un socket supplé­men­taire en mettant dans ~/.gnupg/gpg-agent.conf (rempla­cez <user> par votre login) :

extra-socket /home/<user>/.gnupg/S.gpg-agent.extra

Ce socket a des restric­tions que n’a pas le socket habi­tuel (ne me deman­dez pas lesquelles) mais surtout, le logi­ciel qui vous deman­dera votre mot de passe (pinen­try de son petit nom géné­rique) vous présen­tera la demande de mot de passe diffé­rem­ment d’ha­bi­tude. Moi, il m’a dit en gros « Cette demande provient d’une machine distante », ce qui permet de repé­rer d’où vient la demande (déjà pas de votre machine pour déchif­frer un mail par exemple) et de réflé­chir à si c’est bien vous qui avez fait une action deman­dant la clé GPG.

On redé­marre l’agent pour prendre en compte la nouvelle confi­gu­ra­tion :

gpg-connect-agent /bye

Ensuite, il va falloir modi­fier sa confi­gu­ra­tion SSH. Comme un bon adminSys est fainéant, vous avez bien sûr utilisé concierge pour gérer votre fichier ~/.ssh/config. Il suffit d’ajou­ter dans le bloc de confi­gu­ra­tion du serveur souhaité la ligne (rempla­cez uid par votre uid (id pour le connaître) et <user> par votre login):

RemoteForward /run/user/<uid>/gnupg/S.gpg-agent /home/<user>/.gnupg/S.gpg-agent.extra

Enfin, il faut ajou­ter ceci dans le /etc/ssh/sshd_config du serveur distant (et redé­mar­rer son dæmon ssh après) :

StreamLocalBindUnlink yes

C’est fini ! Vous pouvez main­te­nant utili­ser votre clé GPG sur un serveur distant en vous y connec­tant en SSH, sans copier votre clé sur le serveur

Connec­tez-vous en SSH et testez avec

echo "test" | gpg2 --clearsign

Si, lorsque vous tentez de signer un commit sur votre serveur distant, cela échoue, assu­rez-vous que git utilise bien gpg2 :

git config --global gpg.program gpg2

Merci à Thomas Citha­rel pour avoir mis la signa­ture GPG des commits sur le tapis d’une discus­sion, ce qui m’a poussé à me pencher sur le trans­fert de l’agent GPG.

Crédit image d’en-tête de ce billet : logo de GnuPG, licence GPL, récu­péré sur Wiki­me­dia Commons

Parta­ger

by Luc at April 21, 2018 05:54 AM

April 04, 2018

Luc Didry

Utili­ser les données de Munin dans Grafana

Munin est un super outil de métro­lo­gie. Simple à instal­ler (présent dans toutes les bonnes distri­bu­tions), simple à confi­gu­rer (à un tel point que c’en est risible) et simple à étendre (on peut écrire des plugins pour tout, même pour surveiller une cafe­tière).

Mais on entend souvent « Ouais, mais les graphes RRDtool, c’est moche » (RRDtool est un outil permet­tant de faire plein de choses avec des bases de données RRD (Round Robin Data­base, bases de données tempo­relles), qui donne des graphiques au look vieillot).

Genre des graphes comme ça :

Du coup on n’en­tend plus parler que de Prome­theus, NetData et autres trucs de hips­ter bran­chouilles (mode vieux con assumé).

Ok, vous voulez du joli dash­board ? On va vous en donner.

La réfé­rence du machin qui fait des jolis graphes, c’est Grafana. Donc je suis parti sur ça.

Permettre à Grafana d’avoir accès aux données de Munin

Parce que Grafana ne sait pas taper dans des bases de données RRD, on va instal­ler Grafana RRD Server. Celui-ci va four­nir une API JSON à Grafana pour aller taper dans les bases RRD de Munin.

apt install librrd-dev

Ensuite

cd /tmp
wget https://github.com/doublemarket/grafana-rrd-server/releases/download/v0.0.5/grafana-rrd-server_linux_amd64.gz -O grafana-rrd-server.gz
gunzip grafana-rrd-server.gz
mv grafana-rrd-server /usr/bin/

On le lance ainsi (regar­dez le -h pour le détail des options) :

grafana-rrd-server -r /var/lib/munin/

Il écou­tera par défaut sur toutes les IPs, sur le port 9000. Libre à vous de le mettre derrière un Nginx ou autre, avec ou sans authen­ti­fi­ca­tion.

Pour le service systemd :

[Unit]
Description=Grafana RRD Server
Documentation=https://github.com/doublemarket/grafana-rrd-server
Requires=network.target
After=network.target

[Service]
Type=simple
User=munin
ExecStart=/usr/bin/grafana-rrd-server -r /var/lib/munin/
SyslogIdentifier=grafana-rrd-server

[Install]
WantedBy=multi-user.target

(Je ne l’ai pas testé, je viens de l’écrire à l’os)

systemctl daemon-reload
systemctl start grafana-rrd-server
systemctl status grafana-rrd-server
systemctl enable grafana-rrd-server

Instal­ler Grafana

Grafana four­nit un dépôt APT, ce qui est bien pratique :

apt install -y apt-transport-https
echo "deb https://packagecloud.io/grafana/stable/debian/ stretch main" > /etc/apt/sources.list.d/grafana.list
curl https://packagecloud.io/gpg.key | sudo apt-key add -
apt update
apt install grafana
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
systemctl enable grafana-server

Hop, il écoute par défaut sur toutes les inter­faces, sur le port 3000. Encore une fois, à vous de le mettre derrière un Nginx, etc.

Le couple login / mot de passe par défaut est admin et admin.

Faire la liai­son entre les deux

Il faut encore que Grafana soit capable d’in­ter­ro­ger l’API JSON de Grafana RRD Server. Pour ça, on va lui instal­ler le plugin SimpleJ­son :

grafana-cli plugins install grafana-simple-json-datasource

Confi­gu­rer Grafana

Allez sur votre Grafana, allez dans la section « Data sources », cliquez sur « Add data source », choi­sis­sez le type SimpleJ­son, mettez l’adresse de votre Grafana RRD Server et hop, c’est tout bon. Vous n’avez plus qu’à ajou­ter des graphes prove­nant de cette source de données dans vos dash­boards.

Bon pis voilà, ça permet d’avoir un truc comme ça :

Conclu­sion

J’ai fait ça pour le fun, parce que j’en avais marre d’en­tendre des critiques sur Munin et des « Nan mais Prome­theus, c’est vache­ment mieux tu vois ». Non, je ne vois pas. Oui, les nouveaux outils sont jolis. Oui, ils ont une super granu­la­rité. Mais des points qu’on oublie souvent, c’est :

  • Munin est telle­ment simple à instal­ler et confi­gu­rer ;
  • Des jolis graphes, ouais, c’est cool, mais sérieux, qui se touche la nouille sur ses graphes toute la jour­née ? Ok, Munin, c’est assez moche, mais ça fait le job, je suis informé en regar­dant les graphes, et c’est tout ce que je lui demande ;
  • Prome­theus, NetData et compa­gnie, ça surveille telle­ment de trucs en perma­nence que ça ne se fait pas oublier sur le serveur. Si, si, j’ai bien vu ces outils me ralen­tir mes serveurs. Quand le serveur est à la peine, ces deux outils ont empiré les choses, là où Munin ne fait ses checks que toutes les cinq minutes. #TrueS­tory

Donc voilà : on est capable d’avoir de jolis graphes avec Munin, avec un mini­mum de taf. Bon, c’est en place, je vais pas jeter le boulot que j’ai fait, mais à moins qu’on me dise au boulot « C’est méga top, je vais m’en servir tout le temps », je vais le désac­ti­ver.

Bon, y a quand même un truc pas mal avec cette histoire, c’est qu’on peut affi­cher sur le même graphe des données qui ne sont pas agré­gées sur Munin. Genre empi­ler les nombres de mails envoyés par jour par toutes les machines qui envoient du mail, comme sur le graphe en bas à gauche de l’image ci-dessus. C’est pas complè­te­ment dénué d’in­té­rêt.

NB : Prome­theus et NetData ont d’autres quali­tés que les jolis graphes, comme par exemple des alertes intel­li­gentes. Contrai­re­ment à Munin (ou Nagios, ou autre système de moni­to­ring clas­sique) qui alerte quand les valeurs dépassent un certain seuil, ces nouveaux outils vont dire « Atten­tion, si le disque conti­nue à se remplir à ce rythme là, il sera plein dans 4h », même si le disque n’est rempli qu’à 50%. Et c’est bien. Mais pour moi, Munin, c’est de la métro­lo­gie (on enre­gistre, on peut consul­ter le passé et le présent), pas de la super­vi­sion au sens Nagios. Il peut le faire, mais c’est clai­re­ment pas son usage premier. Donc du coup, les nouveaux outils vont se compa­rer à mon instal­la­tion de Shin­ken, pas à mon Munin. Compteur Dolomon

Parta­ger

by Luc at April 04, 2018 05:00 AM

March 10, 2018

Luc Didry

Un vilain double oubli 🙁

Honte à moi ! Ça fait deux fois que j’ou­blie quelqu’un dans mes remer­cie­ments mensuels 🙁

Bah comme ça, il aura droit à un article rien que pour lui ! 😁

Merci donc à Lian­dri pour son colis de victuailles bretonnes : bière, cara­mel au beurre salé, rillettes de St-Jacques, galettes apéro et j’en passe !

Hé oui, y a pas que les tips en numé­raire qui font plai­sir, bien au contraire !

Voilà son commit dédié rien qu’à lui : https://frama­git.org/luc/last/commit/a978f044096116bd6c26c89a6a3211c7582b468e

Encore merci !

Parta­ger

by Luc at March 10, 2018 09:44 AM

Une nouvelle version de Lutim !

Lutim, mon logi­ciel d’hé­ber­ge­ment d’images est sorti en version 0.9 hier soir !

Huit mois après la version 0.8, cette nouvelle version n’ap­porte pas grand chose à l’uti­li­sa­teur, si ce n’est une inter­face par défaut légè­re­ment modi­fiée, moins char­gée (j’es­père) et une gale­rie (norma­le­ment) plus perfor­mante, par contre cette version améliore un certain nombre de choses sous le capot.

Voici la liste des modi­fi­ca­tions :

  • Le thème par défaut a été modi­fié ;
  • Un nouveau moteur de gale­rie, qui me permet, entre autres, de n’af­fi­cher que des minia­tures des images, et de n’ap­pe­ler l’image origi­nelle qu’en la visua­li­sant en diapo­rama : cela devrait accé­lé­rer l’af­fi­chage de la gale­rie ;
  • Utili­sa­tion de Mojo::SQLite à la place de l’ORM ORLite. Ceci permet d’avoir une syntaxe de la couche d’abs­trac­tion SQLite beau­coup plus proche de celle de Post­greSQL, ce qui me faci­li­tera les évolu­tions. De plus, Mojo::SQLite permet de faire des migra­tions de schéma de base de données beau­coup plus simple­ment (c’est juste­ment un chan­ge­ment de schéma qui m’a fait bascu­ler vers Mojo::SQLite) ;
  • La possi­bi­lité de forcer la langue d’af­fi­chage. Précé­dem­ment, le système de traduc­tion se basait sur les en-têtes envoyés par le navi­ga­teur ;
  • Ajout d’une traduc­tion (partielle) en arabe (merci à Butter­flyOfFire) ;
  • Inté­gra­tion de la plate­forme de traduc­tion Zanata ! Plus besoin de bidouiller des fichiers .po pour contri­buer à une langue : créez-vous un compte sur https://trad.frama­soft.org, rejoi­gnez une équipe de langue et allez sur https://trad.frama­soft.org/zanata/project/view/lutim/ pour commen­cer à traduire 🙂 (envoyez-moi un message si votre langue n’est pas dans la liste propo­sée) ;
  • Amélio­ra­tion de la cryp­to­gra­phie avec l’uti­li­sa­tion d’un vecteur d’ini­tia­li­sa­tion aléa­toire ;
  • Les gens d’Infini ont ajouté une option pour person­na­li­ser les délais de réten­tions.
  • Des correc­tions de bugs (dont le collage d’image qui avait sauté lors de la correc­tion d’une faille de sécu­rité il y a peu)

Ça ne fait pas grand chose dit comme ça, mais cela repré­sente mine de rien 74 fichiers modi­fiés, 1030 ajouts et 243 suppres­sions de lignes.

Si seule­ment j’avais plus de temps et moins de logi­ciels à main­te­nir… 😛

Parta­ger

by Luc at March 10, 2018 09:22 AM

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de février !

Merci à :

Voici mon bilan de février :

  • J’ai bossé sur MyPads. Il est diffi­cile de diffé­ren­cier sur la liste des commits la part de mes contri­bu­tions sur mon temps de travail (Frama­soft m’al­loue une jour­née par semaine pour bosser sur MyPads) de celles sur mon temps person­nel, mais je vous assure qu’il y en a !
  • Lufi-cli, le client en ligne de commande pour Lufi, est sorti en version 0.3. Pas de modi­fi­ca­tions de compor­te­ment, mais un simple fix pour forcer l’uti­li­sa­tion d’une certaine version d’une dépen­dance à l’ins­tal­la­tion, version sans laquelle lufi-cli ne fonc­tionne pas.
  • J’ai fixé une vulné­ra­bi­lité sur Lutim

En ce qui concerne les commits dédiés :

Et vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Crédits : Photo par Craig White­head sur Unsplash

Parta­ger

by Luc at March 10, 2018 08:58 AM

February 27, 2018

Pierre Boesch

Isso avec HAProxy sur FreeBSD

Les commentaires sont gérés avec Isso « a commenting server similar to Disqus ». La différence avec Disqus qui est un système centralisé où les visiteurs doivent se connecter à un autre service centralisé (type Facebook) ou créer un compte chez eux (enfin bref c'est de la merde), Isso est open source, peut être auto-hébergé et fonctionne de la même manière (bref c'est bien ! :)

Installation d'Isso sur FreeBSD

Comme souvent, la documentation est inexistante pour FreeBSD et on doit donc se démerder

On se connecte à une jail, personnellement je réutilise ma jail db avec MariaDB et Redis.

ezjai-admin console db

On installe les paquets nécessaires ainsi qu'Isso.

pkg install py36-pip
pkg install py36-sqlite3
pip install isso

Il est possible de faire ça plus propre et travailler dans un virtualenv. Peu importe. On vérifie qu'on a bien le binaire :

$ whereis isso
isso: /usr/local/bin/isso

Avant de démarrer, on crée un utilisateur dédié et le fichier de configuration pour Isso :

pw groupadd isso
pw adduser isso -g isso -d /nonexistent -s /usr/sbin/nologin -c "Isso user"
[general]
dbpath = /var/db/isso/comments.db
log-file = /var/log/isso.log
host = http://isso.mondomaine.tld/
       https://isso.mondomaine.tld/
max-age = 5m

Toutes les options sont disponibles ici. On termine les préparatifs par créer l'environnement nécessaire qu'on a défini plus haut.

mkdir /var/db/isso/ && touch /var/log/isso.log
chown isso:isso /var/db/isso/ /var/log/isso.log

On peut tester :

/usr/local/bin/isso -c /usr/local/etc/isso.conf run

Si tout est fonctionnel, Isso écoute sur le port 8080.

$ sockstat -4l
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
isso     python3.6  59847 5  tcp4   192.168.0.4:8080      *:*

Reste à créer un daemon pour Isso. Un script rc existait mais ne fonctionnait pas. Finalement, ça n'était qu'une erreur sur une l'utilisation d'une variable, j'ai corrigé ce script. Vous pouvez trouver le fork par ici. On va s'en servir tout de suite :

fetch https://gist.githubusercontent.com/pboesch/721ab95c8ec52b1d0047af4b2b88999c/raw/40976171b494759973317aad59fb7808357bdcc7/isso -o /usr/local/etc/rc.d/isso
chmod +x /usr/local/etc/rc.d/isso
sysrc isso_enable=YES
service isso start

Isso avec HAProxy

Isso écoute actuellement localement, il faut qu'il soit accessible publiquement. J'utilise pour cela un domaine dédié - ce qui semble être la méthode recommandée - il faut donc proxyfier tout ça. Une configuration pour nginx est fournie, c'est bien mais HAProxy c'est mieux :) La soucis technique à prendre en compte est CORS.

Techniquement, je capture le header Origin et envoie les requêtes vers le backend approprié (ici ma jail db).

frontend http
  capture request header origin len 128
  acl is_isso hdr(host) -i isso.mondomaine.tld
  use_backend jail_db if is_isso

backend jail_db
  mode http
  http-response set-header Access-Control-Allow-Credentials true
  http-response set-header Access-Control-Allow-Origin %[capture.req.hdr(0)]
  server comments 192.168.0.4:8080 weight 1 check

Intégrer Isso à Pelican

Entre les balises <head> dans templates/base.html de votre thème, on peut ajouter quelque chose comme :

<head>

{% if ISSO_SERVER %}
<!-- Comments powered by Isso -->
<script data-isso="{{ ISSO_SERVER }}/"
        src="{{ ISSO_SERVER }}/js/embed.min.js">
</script>
{% endif %}

</head>

Dans pelicanconf.py

ISSO_SERVER="https://isso.mondomaine.tld/"

On finalise par inclure les commentaires dans les articles dans templates/article.html

{% if ISSO_SERVER %}
    <div class="comments">
        <hr />
        <h2>Commentaires</h2>
        <section id="isso-thread"></section>
        <noscript>malheureusement les commentaires utilisent javascript</noscript>
    </div>
{% endif %}

Bim ! On fait tourner Isso dans une jail FreeBSD avec les flux gérés par HAProxy !

by Pierre Boesch at February 27, 2018 11:00 PM

February 24, 2018

Pierre Boesch

Pelican - Workflow avec git

Ce blog est construit autour de différentes solutions dont Pelican qui en est le moteur. Lorsque j'ai commencé à me renseigner sur Pelican (documentation, blogposts, etc…) il s'est trouvé que la plupart des articles détaillaient seulement son installation et l'écriture d'un article : ce que fait très la documentation officielle. Le plus gros problème, de mon point de vue, c'est qu'il manque leur workflow. Je vais essayer de détailler au mieux le mien…

Pelican

Pelican est un générateur de site statique écrit en Python couplé à des templates Jinja pour générer les pages HTML. Le contenu peut être écrit en Markdown ou en reStructuredText. L'intérêt par rapport, par exemple, à WordPress ? On se passe de PHP et de base de données tel que MySQL : on gagne alors en sécurité, fiabilité et rapidité. Il n'y a pas de traitement côté serveur pour générer les pages, tout le site n'est qu'un ensemble de pages HTML.

Après cette courte explication, je vais détailler rapidement comment initier un premier projet.

Installation

Certaines commandes seront à exécuter avec sudo.

Pelican requiert Python 2.7.x ou Python 3.3+, idéalement python3. J'utilise également pip et les virtualenv.

On commence par récupérer pip, créer un venv et se placer dedans.

apt install python3-pip -y
pip3 install virtualenv # c'est mieux avec --user mais bon :)
virtualenv ~/.virtualenvs/pelican
cd ~/.virtualenvs/pelican
source bin/activate

On peut enfin installer Pelican, Markdown et créer son projet.

pip install pelican markdown
mkdir blog && cd blog

La commande suivante permet de générer les premiers fichiers nécessaires au lancement de Pelican

pelican-quickstart
[]
> Do you want to upload your website using SSH? (y/N) y

De mon côté, je choisis de transférer mes fichiers via rsync/ssh.

Les fichiers suivants sont générés :

├── content
├── develop_server.sh
├── fabfile.py
├── Makefile
├── output
├── pelicanconf.py
├── publishconf.py

Compilation

Le dossier content contient les pages bruts en Markdown.

Le Makefile va permettre, entre autre, de générer le HTML et lancer un serveur web local (port 8000) et/ou d'envoyer le contenu de output vers son serveur.

make devserver # générer les pages html et lance un serveur web local
make rsync_upload # envoyer les pages va rsync/ssh
make # affiche l'aide

Sur FreeBSD, il faudra gnu-make pour exploiter le Makefile.

pkg install gmake
gmake devserver

Le contenu généré se retrouve organisé dans le dossier output et comme expliqué au-dessus c'est ce dossier qui contient le rendu HTML à héberger.

On vérifie que le serveur local tourne

curl -I 127.0.0.1:8000
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.6.4

Bien :) On utilise son navigateur web favoris (Firefox ?) pour vérifier que le rendu est bien celui escompté.

Une dernière chose essentielle est le fichier de configuration principale : pelicanconf.py.

Ce fichier de configuration contient les variables de votre projet afin de le personnaliser. Les réponses données suite à la commande pelican-quickstart ont servies à alimenter ce fichier. Une partie du mien :

#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals

# Main stuff
AUTHOR = 'Pierre Boesch'
AUTHOR_DESCRIPTION = 'Mon blog'
SITENAME = 'Pierre Boesch'
SITEURL = ''
SITEDESCRIPTION = 'Page personnelle'
FAVICON = '/favicon.ico'

# Content generation
PATH = 'content'
STATIC_PATHS = ['images', 'pdf', 'static'] # les dossiers qui n'auront pas de .md
EXTRA_PATH_METADATA = {
      'static/robots.txt': {'path': 'robots.txt'},
      'static/favicon.ico': {'path': 'favicon.ico'},
} # les fichiers à poser directement à la racine

# Artcile/Archives
AUTHOR_SAVE_AS = ''
AUTHOR_URL = ''
ARTICLE_URL = '{date:%Y}/{date:%m}/{slug}/' # les "permaliens" de wordpress
ARTICLE_SAVE_AS = ARTICLE_URL + 'index.html'
YEAR_ARCHIVE_SAVE_AS = 'archives/{date:%Y}/index.html'
DEFAULT_PAGINATION = 5

Il ne reste plus qu'à définir un workflow et de publier le tout… Je ne passerai pas en revu l'utilisation de thèmes, écriture d'articles, format Markdown, etc… tout est très bien expliqué dans la documentation officielle.

Workflow

arborescence

Dans un premier temps, j'ai décidé d'organiser le contenu de la façon suivante :

content
├── articles
│   └── article1.md
│   └── article2.md
├── images
│   ├── image.png
├── pages
│   └── page.md
├── pdf
│   └── fichier.pdf
└── static
    ├── favicon.ico
    └── robots.txt
  • articles : articles en markdown (ce que vous êtes en train de lire…)
  • images : toutes les images
  • pages : les pages statiques du blog (À propos par exemple)
  • pdf : les pdfs
  • static : tous les fichiers qui ne devraient pas bouger Pour les dossiers "statiques" il faudra les définir en utilisant la variable EXTRA_PATH_METADATA (comme déjà dit c'est très bien expliqué dans la documentation de Pelican).

versionning

Je gère les sources via git sur un repo privé. De cette façon, je peux récupérer les sources rapidement sur n'importe quel poste et versionner chaque modification.

On initie son projet actuel comme un nouveau repo :

git init
git add .
git commit -m "first commit"
git remote add origin ssh://git@monrepo-git.com/namespace/monblog.git
git push -u origin master

Le .gitignore qui va bien :

*.pid
*cache*
output

Pour le thème, le même principe peut être appliqué.

Pour résumer l'idée : lorsque je suis sur un nouveau poste et dans un virtualenv, j'ai seulement besoin de cloner le repo pelican du blog et le thème.

les brouillons

Il est possible de mettre un status draft aux articles lors de l'édition. Avec ce status, Pelican ne génèrera pas le html et ne sera pas dans le dossier output et donc publié. Donc la prévualisation de l'article est difficile.

Une solution simple, utilisant git, et de créer une branche draft pour gérer les… brouillons. Quand je commence un article, je bascule sur la branche draft. Les articles sont stockés dans le répertoire habituel, si j'ai besoin d'une prévualisation il me suffit d'exécuter make devserver. Une fois l'article terminé :

git checkout master
git checkout draft -- content/articles/article-draft.md
git commit
git push

publication

Le Makefile contient les informations de connexion SSH vers le serveur.

SSH_HOST=mon_host
SSH_PORT=22
SSH_USER=mon_user
SSH_TARGET_DIR=/usr/local/www/mon_blog

Pour publier :

make clean
make publish
make ssh_upload

Il reste à mettre en en place une configuration basique nginx (ou Apache) d'un virtualhost pour servir les pages HTML, et le tour est joué.

server {
  listen 80;
  server_name www.pboesch.fr;

  access_log /var/log/nginx/access_pboesch.log combined;
  error_log /var/log/nginx/error_pboesch.log;

  root /usr/local/www/pboesch/;
  index index.html;

  location / {
    try_files $uri $uri/ =404;
  }
}

Terminé \o/.

by Pierre Boesch at February 24, 2018 11:00 PM

February 12, 2018

Luc Didry

Chan­ger ses mots de passe rapi­de­ment avec Salt

Préam­bule

Salt est un logi­ciel de gestion de confi­gu­ra­tion comme Puppet ou Ansible.

Je l’uti­lise chez Frama­soft et sur mon infra person­nelle parce que je l’aime bien :

  • rapide ;
  • très bien docu­menté ;
  • syntaxe claire, acces­sible mais néan­moins flexible et puis­sante.

Je change mes mots de passe régu­liè­re­ment (une fois par an envi­ron). C’est toujours galère à faire quand on gère une tripo­tée de serveurs (entre les serveurs physiques et les VMs, on en est à 80 serveurs chez Frama­soft).

Avant, je faisais ça à la main : je lançais mssh sur 4, 6 ou 8 serveurs à la fois, et je modi­fiais mon mot de passe à la main. Mais ça, c’était avant.

Salt à la rescousse

Pour chan­ger le mot de passe de l’uti­li­sa­teur bar sur le serveur foo avec salt, on fait :

salt foo shadow.set_password bar "$6$saltSALT$HASHEDPASSWORD"

$6$saltSALT$HASHEDPASSWORD corres­pond à votre mot de passe salé et hashé. Vous retrou­vez un brol du genre dans votre /etc/shadow (Oh ! Vous avez remarqué ? C’est le nom du module salt qui permet de modi­fier votre mot de passe ! C’est bien fait quand même 😁)

Pour créer un sel (le saltSALT, rien à voir avec le logi­ciel), j’uti­lise mkpasswd.pl, fourni par le paquet Debian libstring-mkpasswd-perl :

mkpasswd.pl -l 8 -s 0

Pour créer l’en­semble $6$saltSALT$HASHEDPASSWORD, vous pouvez utili­ser python :

python -c "import crypt; print crypt.crypt('PASSWORD', '\$6\$saltSALT')"

Bon, on sait comment faire, mais on ne va pas s’amu­ser à taper 80 fois ces commandes !

Salt permet de véri­fier que les minions (les agents Salt) répondent bien avec cette commande :

salt foo test.ping

Ce qui donne :

foo:
    True

On va chan­ger le format de sortie :

salt foo --out text test.ping

Ce qui nous donne :

foo: True

Bien ! On peut pinguer d’un coup tous les minions avec :

salt \* --out text test.ping

On a donc la liste des minions, la commande pour chan­ger le mot de passe… on va mixer tout ça :

salt \* --out text test.ping | \
 sed -e "s@\([^:]*\):.*@echo salt \1 shadow.set_password bar \\\\\"\$(python -c \"import crypt; print crypt.crypt('PASSWORD', '\\\\\$6\\\\$\$(mkpasswd.pl -l 8 -s 0)')\")\\\\\"@"

1ère regex : on dégage les : True, et la deuxième, on enrobe le nom du minion pour que ça nous donne un truc comme :

echo salt foo shadow.set_password bar \"$(python -c "import crypt; print crypt.crypt('PASSWORD', '\$6\$$(mkpasswd.pl -l 8 -s 0)')")\"

Quand on exécute ça, ça donne un truc genre :

salt foo shadow.set_password bar "$6$8qJhzAi6$.O8bOisJaM9fH05aXx7xnKXOVFoI9CRzjORFWDqoPR/TBOiYVZUEJKtUKirNMyaZJvJMYPVUMhnNry9QPJgHK/"

Bien évidem­ment, on va mettre ça dans un fichier qu’on va éditer pour modi­fier le mot de passe (bah oui, on va quand même pas mettre le même mot de passe sur tous les serveurs).

salt \* --out text test.ping | \
 sed -e "s@\([^:]*\):.*@echo salt \1 shadow.set_password bar \\\\\"\$(python -c \"import crypt; print crypt.crypt('PASSWORD', '\\\\\$6\\\\$\$(mkpasswd.pl -l 8 -s 0)')\")\\\\\"@" > /tmp/chpasswd.txt

On édite /tmp/chpasswd.txt pour mettre ses mots de passe bien comme il faut puis :

bash /tmp/chpasswd.txt | bash

Le echo va nous sortir la commande kiva­bien qui sera inter­pré­tée par bash. Le $(mkpasswd.pl -l 8 -s 0)') sera remplacé par un sel diffé­rent à chaque fois et le bout de python trans­for­mera le sel et le mot de passe en hash dans le format kiva­bien pour le fichier /etc/shadow, et la commande salt sera lancée sur chaque minion.

Et voilà 🙂

Crédits : photo par Nikita Andreev

Parta­ger

by Luc at February 12, 2018 07:55 PM

February 10, 2018

Luc Didry

Double merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de décembre et janvier !

Et oui, j’ai zappé la page de remer­cie­ments de décembre (je rappelle que je les publie au début du mois suivant). Je me suis laissé débordé.

Merci à :

Voici mon bilan de décembre :

  • Patch de MyPads pour fonc­tion­ner avec toutes les versions de NodeJS
  • J’ai fait un script pour faci­li­ter la créa­tion d’images ISO de Debian présee­dées : preseed_crea­tor.sh (présee­dées veut dire qu’on répond à l’avance aux ques­tions de l’ins­tal­leur Debian)
  • Last est passé en version 0.5.0
  • WemaWema est passé en version 26.0

Et pour les commits dédiés :

Passons à janvier :

  • J’ai fait une contri­bu­tion à Gitlab afin de pouvoir écrire un programme qui permet­tra de créer des certi­fi­cats Let’s Encrypt pour tous les domaines person­nels ajou­tés aux Gitlab Pages
  • J’ai écrit un bot Masto­don qui poste des images tirées aléa­toi­re­ment d’Unsplash : Unsplash masto­bot
  • J’ai bossé sur Lutim
    • quelques bugfixs
    • utili­sa­tion de mon plugin StaticCache
    • modi­fi­ca­tion du thème par défaut
    • utili­sa­tion de PhotoS­wipe pour la gale­rie
  • Encore du boulot sur MyPads

Les commits dédiés :


Et vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Crédits : Photo par Craig White­head sur Unsplash

Parta­ger

by Luc at February 10, 2018 03:41 PM

December 04, 2017

Luc Didry

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de novembre !

Merci à :

Voici mon bilan de novembre :

  • Quelques modi­fi­ca­tions sur WemaWema : j’ai ajouté quelques polices, amenant le n° de version à 24.4
  • J’ai ajouté une barre de progres­sion sur mon graphe chro­no­lo­gique de la toile de confiance Duni­ter
  • Un peu de boulot sur Lufi : les cookies sont main­te­nant plus propres et on peut défi­nir un domaine fixe pour les URLs des fichiers (ce qui veut dire qu’on peut envoyer des fichiers sur https://example.org et avoir des liens en https://bidule.org — après c’est à l’ad­min de l’ins­tance de se débrouiller pour que l’ins­tance réponde bien sur le domaine fixe)

Ça a été assez calme, mais il faut voir que j’ai repris les cours et que j’ai été faire une confé­rence aux JRES, confé­rence que vous pouvez retrou­vez sur l’ins­tance de test de PeerTube (PeerTube, un logi­ciel qu’il est bien et qui devrait permettre à tout à chacun de gérer sa plate­forme de vidéos sans les soucis de bande passante habi­tuels, soute­nez-le !) : https://peer­tube.cpy.re/videos/watch/b1e5­ba7e-2a8a-44d4–8151-aa8f5f6eafd9.

En ce qui concerne les commits dédiés :

Et vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Parta­ger

by Luc at December 04, 2017 07:11 PM

Encore un bug Ganeti

Petite blagou­nette de Ganeti, à cause de la version d’OpenSSH de Debian Stretch.

Adonc, la situa­tion : j’ai récem­ment voulu ajou­ter un nouveau serveur au clus­ter Ganeti de Frama­soft. Et pas moyen pour ganeti de contac­ter le nouveau nœud une fois qu’il y a ajouté sa clé SSH (les commu­ni­ca­tions entre les nœuds passent par SSH).

Tous les serveurs du clus­ter avaient été récem­ment mis à jour vers Debian Stretch, vu que je n’aime pas me traî­ner de vieilles versions des systèmes que je gère, et qu’on profite géné­ra­le­ment de nouvelles règles de sécu­rité.

Et en effet, la version d’OpenSSH de Stretch, la version 7, désac­tive par défaut l’uti­li­sa­tion de clés DSA.

Pour notre malheur, Ganeti utilise des clés DSA pour la commu­ni­ca­tion entre les nœuds du clus­ter. Impos­sible du coup pour Ganeti de se connec­ter au nouveau nœud avec sa clé DSA.

En atten­dant la sortie de Ganeti 2.16 qui devrait permettre de choi­sir le type de clés à employer, on va, pour contour­ner le souci, modi­fier les fichiers /etc/ssh/ssh_config et /etc/ssh/sshd_config pour y ajou­ter :

PubkeyAcceptedKeyTypes=+ssh-dss

Ne me jugez pas, je sais que c’est très sale, mais c’est le seul moyen que j’ai trouvé pour pouvoir conti­nuer à opérer mon clus­ter Ganeti.

EDIT (10 décembre 2017) : La version de Ganeti de Debian 9.3 permet de chan­ger le type des clés SSH de Ganeti ! Vous pouvez, après avoir passé tous les nœuds de votre clus­ter en Debian 9.3, modi­fier le type de clé utilisé avec la commande

gnt-cluster renew-crypto --new-ssh-keys --ssh-key-type=rsa --ssh-key-bits=2048

Allez voir la page de manuel de gnt-cluster, à la section INIT pour voir les options. Vous pouvez utili­ser des clés DSA, RSA et ECDSA.

Crédit : Photo de Santosh Maharjan sur Unsplash

Parta­ger

by Luc at December 04, 2017 06:28 PM

December 03, 2017

Alexandre Bailly

Changer l'extension de plusieurs fichiers en une simple manipulation

Contrairement à MS-DOS, il n'y a pas de méthode simple pour changer juste l'extension sur un grand nombre de fichiers.

Il existe des solutions avec une interface graphique, ou un ensemble de commandes à taper.

J'ai fini par m'écrire un script qui évite de retaper toutes les commandes. Et pour le retrouver facilement, je l'ai appelé mass-rename, et l'ai enregistré sous /usr/local/bin

#!/bin/bash
cd "$1"
for f in *.$2; do 
mv -- "$f" "${f%.$2}.$3"
done

Utilisation :

mass-rename   

Exemple :

mass-rename ~/bureau/webcomics zip cbz

Attention : ce script ne fait absolument aucune vérification. À utiliser à vos risques et périls.

by nah at December 03, 2017 06:14 PM

November 12, 2017

Luc Didry

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle d’oc­tobre ! Je crois que je vais arrê­ter de m’ex­cu­ser pour mes retards, vous savez que j’ai du mal à faire la page de remer­cie­ments en temps et en heure 😛

Merci à :

Voici mon bilan d’oc­tobre :

  • Beau­coup, beau­coup de modi­fi­ca­tions sur WemaWema : on était à la version 14 le 9 octobre, la dernière version d’oc­tobre est la 24.2 ! (et depuis, on en est à la 24.4)
  • J’ai beau détes­ter Docker quand on parle de produc­tion, cela n’en reste pas moins un bon outil pour l’in­té­gra­tion conti­nue. J’ai donc publié mes Docker­file qui me servent pour faire des conte­neurs d’in­té­gra­tion conti­nue
  • J’ai revu le template de mes cours pour permettre de télé­char­ger les PDFs direc­te­ment depuis la page du cours en ques­tion
  • Mojo­li­cious::Plugin::StaticCache est passé en version 0.02
  • Lstu a eu un petit bugfix est est passé en version 0.09–2
  • Last est passé en 0.4.0 : on peut main­te­nant choi­sir la time­zone

En ce qui concerne les commits dédiés :

Et vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Parta­ger

by Luc at November 12, 2017 06:21 PM

November 04, 2017

Florent Peterschmitt

In the cloud

Ayé, mes mails sont repartis dans le cloud. Après quelques années d’hébergement de ce service, entre autres, sur un serveur OVH, retour arrière.

J’entends déjà les férus d’auto-hébergement avec leur baie à la maison crier au scandale, et pourtant…

Au début

  • Apprendre à configurer un serveur mail
  • Le tester
  • Le tester dans la vraie vie
  • Faire une bourde et se retrouver un relais ouvert
  • Paniquer un peu parce que tout a été monté à l’arrache et qu’on a perdu la conf-ki-marche
  • …du temps passe…
  • Automatiser la configuration avec Puppet
  • Automatiser la configuration avec Ansible parce que Puppet c’est chiant
  • Mettre tout le monde dans des conteneurs LXC
  • Changer de serveurs
  • Rajouter quelques entrées DNS pour SPF
  • En avoir ras le bol du spam et mettre un antispam… et en chier
  • Se rendre compte que ça marche mal parce que T’ES TOUT SEUL sur ton serveur
  • rspamd est sorti, remplacer son antispam
  • Changer de serveur, encore
  • Faire la réputation de son IP auprès de Microsoft, se rendre compte que ça marche pas beaucoup mieux
  • …du temps passe…
  • Mettre de la sauvegarde en place
  • …du temps passe…
  • Mettre en place un webmail
  • Être content de tout ça parce que ça marche quand même bien.

Vers la fin

  • Rajouter un serveur tampon au cas où un truc casse.
  • …du temps passe…
  • Avoir des pépins avec son serveur (corruptions de fichiers bonjour !).
  • Vouloir bosser sa partition de piano.
  • Réfléchir deux secondes… (1… 2…) et se dire que tout compte fait, ça vaut pas le coup.

Ou que en tout cas, ça n’en vaut plus la peine.

Faire son propre serveur mail c’est sympa au début ouais, quand on apprend, mais en fin de compte ça sert pas à grand chose selon moi sinon pouvoir bidouiller ses paramètres et se faire plaisir sur quelques trucs “sympas”, comme les filtres sieve ou alors mettre son webmail favoris avec des leds RGB dessus =D

Pour la vie privée c’est bien aussi.

Après il y a toujours la méthode « utiliser un conteneur Docker/LXC/sketuveux fait par quelqu’un d’autre » mais à ce compte là je préfère carrément me tourner vers des fournisseurs qui me règleront d’autres problèmes, comme la réputation par exemple.

Du coup, mes mails sont partis chez Gandi. Et c’est super simple à faire :

On coupe les services, parce que balek du temps d’indispo, il n’y a que moi que ça va embêter et les serveurs mail réessayent suffisemment longtemps pour pas avoir à y penser ou à devoir faire du relay :

systemctl stop postfix
systemctl disable postfix

Un peu de conf BIND :

@ IN MX 10 spool.mail.gandi.net.
@ IN MX 50 fb.mail.gandi.net.

@ IN TXT "v=spf1 include:_mailcust.gandi.net ?all"
@ IN SPF "v=spf1 include:_mailcust.gandi.net ?all"

Un petit coup d’imapsync :

imapsync --host1 imap.peterschmitt.fr --user1 tusauraspa\@peterschmitt.fr --password1 encoremoins \
         --host2 mail.gandi.net --user2 tusauraspa\@peterschmitt.fr --password2 encoremoins

Et paf ! https://webmail.gandi.net et c’est torché.

Et ta vie privay ?

J’ai pas été trop regardant mais il me semble que Gandi ne fait pas partie des enfoirés style Google ou autres.

ProtonMail semble être une excellente alternative, vu que les mails sont chiffrés, mail il faut payer ~5€/mois pour y brancher son domaine perso. Pas cher mais pour ce que je fais du mail maintenant, franchement bof…

Enfin, mon domaine est déjà enregistré chez Gandi, activer le mail chez eux n’a pris que cinq minutes à tout casser. Ça c’est l’argument de la flemme.

Et si je veux pas t’envoyer de mail parce que t’es plus auto-hébergé ?

Par pigeon voyageur boudiou !

XMPP avec la même adresse mail ;-) Ce service est moins contraignant que le mail à maintenir, n’offre pas les mêmes services, certes, mais du coup il ne fera pas partie de la liste des trucs à me décharger.

Des bisous.

PS : les commentaires sont de retour ;-)

by Florent Peterschmitt at November 04, 2017 05:30 PM

October 19, 2017

Luc Didry

Lut.im : une tragé­die des communs évitée

Savez-vous ce qu’est la tragé­die des communs ? C’est quand une ressource commune est surex­ploi­tée et au final, tout le monde est perdant.

C’est un peu ce qui se passe en ce moment sur l’ins­tance offi­cielle de mon logi­ciel Lutim : https://lut.im.

En effet, depuis déjà quelques jours, ce site est inac­ces­sible en soirée. Trop d’uti­li­sa­teurs qui veulent voir trop d’images en même temps. Lut.im victime de son succès ?

Oui et non : oui car le site commence à être plutôt connu (surtout en Russie, allez savoir pourquoi) ; non car c’est un problème d’abus de la ressource commune qu’est lut.im : en effet, le problème vient de l’uti­li­sa­tion qui est en faite par quelques personnes.

Pour comprendre ce qui se passait, j’ai activé les logs d’ac­cès au service — en prenant soin de ne pas affi­cher les adresses des images deman­dées (voir plus bas) — et j’ai noté quelques adresses de refe­rer suspectes ainsi qu’un nombre incroyable de requêtes deman­dées par des user-agent Kodi et quelques XBMC.

J’ai été voir sur un des refe­rer suspects : un site de strea­ming de chaîne télé… et certains des logos des chaînes étaient héber­gés sur https://lut.im ! Ça m’a mis la puce à l’oreille quant aux user-agent Kodi. Un peu de recherche genre kodi tv channel "https://lut.im" et je tombe sur un truc comme http://www.listaiptv­bra­sil.com.br/paste.php?id=3 (oui, je savais qu’il y avait moyen de voir des chaînes de télé sur Kodi, j’en ai un et j’avais regardé si je pouvais voir des chaînes de télé mais j’avais au final laissé tomber, vu la qualité de ce qu’on peut voir à la télé (pis bon, la pub…)).

J’ai donc bloqué, pour éviter l’in­dis­po­ni­bi­lité fréquente de https://lut.im, les refe­rer de ce genre que j’ai trouvé ainsi que les user-agent Kodi et XBMC :

if ($http_referer ~ (site1|site2) {
    return 429;
}
if ($http_user_agent ~* (Kodi|XBMC)) {
    return 429;
}

Le statut 429 que je renvoie corres­pond à « Too Many Requests ». Disons que c’est le statut que j’ai trouvé le plus proche de la situa­tion. Certes, ce n’est pas le client qui fait trop de requêtes, mais bon.

La soirée d’hier s’est passée sans alerte de la part de la super­vi­sion et chaque fois que j’ai été voir le site, celui-ci était acces­sible ! Mes actions ont donc évité la surex­ploi­ta­tion de la ressource commune 🙂

Et voilà comment j’ai modi­fié le format de mon log d’ac­cès pour ne pas loguer les IPs de mes visi­teurs ni les URLs des images deman­dées :

log_format lutim '$remote_user [$time_local] $status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"';
server {
    …
    access_log /var/log/nginx/lutim.access.log lutim;
    …
}

J’ai après cela remis la confi­gu­ra­tion à access_log off; et supprimé les jour­naux d’ac­cès.

Crédit : Photo de Brad Helmink sur Unsplash

Parta­ger

by Luc at October 19, 2017 06:54 AM

October 17, 2017

Luc Didry

Un bug à l’ex­port de VMs dans Ganeti

Encore un article sur un bug dans Ganeti.

Situa­tion : Debian Jessie, avec Ganeti 2.15.2–1~b­po8+1 prove­nant des back­ports Jessie.

Problème : ça foire quand on veut faire une sauve­garde d’une VM avec gnt-backup export ma_vm. Avec ce genre de message :

Fri Aug 11 12:08:36 2017  - WARNING: import 'import-disk0-2017-08-11_12_08_27-igVAWh' on mynode.mydomain failed: Exited with status 1
Fri Aug 11 12:08:36 2017 snapshot/0 failed to receive data: Exited with status 1 (recent output: socat: E openssl-method="TLSv1": method unknown or not provided by library)

Le bug est déjà connu de Debian et corri­gé… dans la version Stretch ! Pas la version Jessie-back­ports 🙁

Bon, c’est rien de bien méchant. Il suffit d’édi­ter le fichier /etc/ganeti/share/ganeti/impexpd/__init__.py et chan­ger les lignes

SOCAT_OPENSSL_OPTS = ["verify=1", "method=TLSv1",
                      "cipher=%s" % constants.OPENSSL_CIPHERS]

en

SOCAT_OPENSSL_OPTS = ["verify=0", "method=TLS1",
                      "cipher=%s" % constants.OPENSSL_CIPHERS]

Notez la modi­fi­ca­tion de verify et de method.

Et c’est tout bon !

Bien sûr, il vaut mieux passer son serveur en Stretch, mais avec les 70 machines de Frama­soft, j’ai du établir un plan­ning pour tenter de mini­mi­ser le nombre de services à tomber en même temps, du coup je n’y vais à un rythme que de une ou deux machines par jour (ça va, j’en suis à peu près à deux tiers de machines sous Stretch, un tiers sous Jessie et quelques unes encore sous Wheezy (diffi­cile de les upgra­der sans péter les logi­ciels qui sont dessus)).

Parta­ger

by Luc at October 17, 2017 01:26 PM

October 09, 2017

Luc Didry

Monter et démon­ter un partage Samba selon le réseau

J’ai un partage Samba dans mon réseau local afin de pouvoir écou­ter ma musique tranquille­ment depuis mon ordi­na­teur dans le bureau alors que les fichiers sont sur mon serveur dans le salon.

Je peux accé­der à mes fichiers sur le partage avec mon navi­ga­teur de fichier mais cela me pose un problème avec VLC (que j’uti­lise comme lecteur de musique) : il n’ar­rive pas à jouer les fichiers s’ils sont dans un sous-réper­toire du réper­toire que j’ai glissé depuis Dolphin. Si j’ai bien compris, c’est la faute à KIO, la biblio­thèque qui permet à Dolphin d’ac­cé­der au partage Samba. En clair, VLC est capable de lire les fichiers direc­te­ment conte­nus dans Album/, mais pas d’al­ler lire ce qu’il y a dans Artiste/Album/ si je lui glisse le dossier Artiste.

OSEF, faisons un montage à l’an­cienne, en ligne de commande !

sudo mount -t cifs //XXX/anonymous/ /media/XXX -o guest

Oui, ça fonc­tion­ne… sauf quand je ne suis plus sur le réseau (coupure du réseau, j’em­barque mon pc pour aller donner un cours, etc). Et là, c’est le drame : plus moyen d’en­le­ver ce montage. Ça bloque.

Il suffit donc de démon­ter le partage samba avant. Mais je ne peux anti­ci­per les coupures réseau, et je sais que je ne pense­rais pas toujours à ça en débran­chant mon pc.

Je vais donc, en bon adminSys fainéant que je suis, auto­ma­ti­ser tout ça.

Pré-requis : utili­ser NetworkMa­na­ger.

Il faut créer des scripts qui vont monter et démon­ter le partage après la connexion au réseau et avant sa décon­nexion.

Mettez ceci dans /etc/NetworkManager/dispatcher.d/99-mount-samba :

#!/bin/sh
IFACE=$1
ACTION=$2

case $CONNECTION_ID in
    Votre_reseau)
        case ${ACTION} in
            up)
                mount -t cifs //XXX/anonymous/ /media/XXX -o guest
                ;;
        esac
        ;;
esac

Votre_reseau est évidem­ment à modi­fier selon le nom que vous avez donné à votre connexion dans NetworkMa­na­ger. Si vous voulez utili­ser ça pour plusieurs réseaux (comme par exemple votre connexion filaire et votre connexion Wifi, vous pouvez mettre Votre_reseau1|Votre_reseau2).

Mettez ceci dans /etc/NetworkManager/dispatcher.d/pre-down.d/99-umount-samba :

#!/bin/sh
IFACE=$1
ACTION=$2

case $CONNECTION_ID in
    Votre_reseau)
        case ${ACTION} in
            pre-down)
                #lsof -t /media/XXX | xargs kill
                umount -l /media/XXX
                ;;
        esac
        ;;
esac

Vous note­rez le lsof -t /media/XXX | xargs kill avant l’ap­pel d’umount. En effet, vous ne pour­rez pas démon­ter le partage s’il est utilisé.

Faites donc atten­tion ! Autant ce n’est pas grave si mon script coupe VLC (ça empêche même VLC de s’em­bal­ler en crachant un nombre infini d’er­reurs), autant si vous travaillez sur votre partage samba avec, disons, LibreOf­fice, cela risque­rait de vous faire perdre votre travail. Ce n’est donc pas pour tous les usages.

EDIT : plus besoin du lsof -t /media/XXX | xargs kill, Olivier M. vient de porter à ma connais­sance, en commen­taire, l’op­tion -l d’umount :

-l, --lazy
    Démontage  paresseux.  Détacher  maintenant le système de fichiers de la hiérarchie de fichiers et effacer toutes les références vers ce système de fichiers dès qu'il n'estplus occupé (nécessite un noyau 2.4.11 ou ultérieur).

N’ou­blions pas de rendre exécu­table ces scripts :

chmod +x /etc/NetworkManager/dispatcher.d/99-mount-samba \
  /etc/NetworkManager/dispatcher.d/pre-down.d/99-umount-samba

Et voilà ! Un petit systemctl restart NetworkManager et ça devrait tour­ner comme une horloge.

Crédits : Photo par Thomas Kvis­tholt sur Unsplash

Parta­ger

by Luc at October 09, 2017 04:44 PM

Merci à mes tipeurs :-)

Le 14 juillet 2016, j’ai lancé mes pages Tipeee et Libe­ra­pay.

La récom­pense de base est l’ap­pa­ri­tion sur une page mensuelle de remer­cie­ments… voici celle de septembre ! En retard, encore et toujours. Sans excuse cette fois-ci. Juste la flem­me… et un nouveau logi­ciel 😉

Merci à :

Voici mon bilan de septembre :

En ce qui concerne les commits dédiés :

Et vous pouvez toujours me soute­nir via Duni­ter !

Je remets ici mon expli­ca­tion du mois d’août.

Disclai­mer : je vais peut-être dire des sottises parce que j’ai pas tout compris mais je m’en fous, j’aime bien l’idée

Duni­ter est un projet de crypto-monnaie mais contrai­re­ment au bitcoin où c’est la course à la puis­sance de calcul pour géné­rer la monnaie et deve­nir riche, le but est de créer une monnaie libre (le Ğ1, prononcé comme june en anglais), basée sur une toile de confiance (il faut rece­voir 5 certi­fi­ca­tions pour être membre) et où chacun des membres reçoit tous les jours un divi­dende univer­sel. Je dois dire que je suis assez curieux de ce qu’on peut faire avec un système ressem­blant forte­ment au salaire à vie 🙂

C’est pourquoi j’ai créé mon compte et ait fait ce qu’il fallait pour rece­voir mes certi­fi­ca­tions (rencon­trer des gens, tous­sa…). Ma clé publique est :

 2t6NP6Fvvuok2iRWA188C6pGokWAB5Kpf1S1iGtkN9tg

Et comme un projet n’est utile que si on s’en sert, je vous propose de me soute­nir en Ğ1 tout en béné­fi­ciant des mêmes récom­penses que celles présentes sur ma page Tipeee (j’ai arbi­trai­re­ment choisi une parité euro/Ğ1 car je n’ai pas vrai­ment trouvé de page expliquant comment évaluer le cours du Ğ1 en euros, et au final, est-ce vrai­ment néces­saire ? À nous de choi­sir quelle valeur a cette nouvelle monnaie 🙂. Et puis ça me simpli­fie la vie).

Voici donc les diffé­rentes contre­par­ties et leur prix (chaque contre­par­tie comprend celles de tarif infé­rieur) :

  • 1 Ğ1 : vous appa­raî­trez sur la page mensuelle des remer­cie­ments
  • 2 Ğ1 : vous rece­vrez une photo dédi­ca­cée de mon chat
  • 3 Ğ1 : vous rece­vrez 3 stickers repre­nant les logos de Lstu, Lutim et Lufi. De quoi déco­rer son ordi et se la péter en société 😁
  • 5 Ğ1 : un commit vous sera dédié chaque mois (si je déve­loppe suffi­sam­ment pour le nombre de personnes à ce niveau)
  • 15 Ğ1 : vous pouvez me deman­der de bosser en prio­rité sur un bug ou une demande de fonc­tion­na­lité d’un de mes logi­ciels (dans la mesure du faisable, hein).
  • 100 Ğ1 : quand j’au­rais un nouveau projet, vous pour­rez en choi­sir le nom et le logo

Pour en savoir plus sur Duni­ter et Ğ1, je vous propose d’al­ler voir cet article de cgeek : https://blog.cgeek.fr/de-linte­ret-dune-monnaie-libre.html ainsi que la théo­rie rela­tive de la monnaie pour les enfants.

PS : j’ai aussi une adresse bitcoin si vous souhai­tez me soute­nir par ce biais

Parta­ger

by Luc at October 09, 2017 04:00 PM