Archives pour la catégorie Informatique

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

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

Me soutenir sur Tipeee Me soutenir sur Liberapay