Archives pour la catégorie Petits outils sympa

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.

Me soutenir sur Tipeee Me soutenir sur Liberapay

Cas d’usage de Last

Last est un logi­ciel que j’ai codé il y a peu. Il veut dire « Let’s Aggre­gate Superb Toots » et permet de créer un site à partir d’une liste de pouets (toots en anglais, c’est le terme dési­gnant les mini-articles du réseau social libre et décen­tra­lisé Masto­don).

Le prin­cipe est simple : on clone le projet, on modi­fie le fichier de confi­gu­ra­tion selon ses goûts, on y ajoute les pouets à récu­pé­rer, on committe, on push sur un serveur Gitlab avec les Gitlab pages acti­vées et hop ! Ça fait des choca­pic^W un site repre­nant tous les pouets. La marche à suivre complète est expliquée sur https://luc.frama.io/last­man/fr.html.

Je trouve Last de plus en plus inté­res­sant comme outil. Je m’en sers pour faire un recueil de mes mercre­dis fictions, ainsi que pour regrou­per des pouets-feuille­tons comme BackUp et Dans la vallée (avec l’ai­mable auto­ri­sa­tion de leurs aut·­ric·e·ur).

Mais en plus ça permet de faire des sites par rapport à une théma­tique, un évène­ment, un voya­ge… J’ai un pote qui est en vacances en Indo­né­sie. Il poste pas mal sur Masto­don, avec de superbes photos et annonce sur son blog qu’il va y reprendre ses pouets, parce que ce sont de belles photos.

C’est un cas parfait pour Last ! Pourquoi ? Parce qu’au lieu de reprendre le texte (copier/coller, mettre la date et l’heure) et les photos (clic droit, enre­gis­trer sous) pour écrire un article, il n’y a qu’à copier/coller les adresses des pouets dans last.conf, et hop ! Sachant qu’on peut éditer last.conf direc­te­ment depuis l’in­ter­face de Gitlab, on n’a même pas besoin d’avoir git ! Et ça donne plutôt bien : https://petit.frama.io/indo­ne­sie 🙂

Je trouve que ça permet de retrou­ver le côté « blog » du micro-blogage. En effet, Masto­don, Twit­ter et consorts sont des plate­formes de micro-blog­ging, mais va essayer de relire tous les pouets ou tous les tweets d’une personne, même les plus impor­tants ! Avec Last, l’au­teur (ou tout autre personne) peut sauve­gar­der les articles qu’il souhaite pour les retrou­ver plus faci­le­ment, les mettre en valeur… On retrouve un temps long, contrai­re­ment aux plate­formes en ques­tion où le flux d’ar­ticles ne s’ar­rête jamais.

Last but not least (😛), Last crée un flux RSS pour le site généré et un epub, vous permet­tant de tout lire de façon décon­necté, bien tranquille­ment sur votre liseuse 😉

Bref, je suis plutôt content de mon petit outil 😀

Photo d’illus­tra­tion : Alexandre Cham­bon

Me soutenir sur Tipeee Me soutenir sur Liberapay