Plugin PluXML : C'est en off, mais stylé... [Edit]

Un autre petit plugin vite-fait-sur-le-gaz comme aurait dit San Antonio: cette fois-ci, il s'agit de styler les commentaires et articles offline pour les repérer plus simplement.

icon.png offlineClass

Le plugin se contente d'ajouter une classe de votre choix (à configurer) dans la ligne de tout commentaire ou article hors ligne.

Comme pour le précédent, il injecte un JS qui ajoute la classe au tr qui contient une liste offline.

Une fois activé, configurez le plugin en lui donnant la classe à utiliser ( par exemple «offline» ) puis ajoutez votre css à votre thème.

.offline{ 
    background:rgba(255,0,0,0.2);
    color:rgb(50,0,0);
    font-style: italic;
}
.offline td{
    padding:1em 0;
}

C'est tout. Mais visuellement, c'est autre chose !

[Edit du 02-09]

J'ai ajouté la possibilité de déplacer tout item offline en début de liste quelle que soit sa date... Utile si vous avez tendance à accumuler le boulot en retard au point que certains disparaissent dans la pagination...

Pour récupérer le zip ➜ https://repo.warriordudimanche.net/ZIPFILES/offlineClass.zip

(...)

Le coup de gueule de JD Brèque contre Dan Simmons - ActuSF - Site sur l

Dommage, j'aimais vraiment ses romans (le cycle d'Hypérion, Endymion, Ilium, l"échiquier du mal...) ... Du coup, il se rapproche de Céline: oeuvre intéressante mais personne répugnante... Tant pis.

[...] l’auteur lui-même, qui déversaient des flots de haine contre les démocrates, les Arabes, les homosexuels, les écologistes, et cætera. [...] Dan Simmons a encouragé un internaute à dénoncer au FBI une jeune Palestinienne étudiant aux Etats-Unis, qui lui avait confié sa colère devant le massacre de Gaza et son désir de vengeance.

Simmons allait jusqu’à donner le lien du site à contacter pour une dénonciation, ainsi que plusieurs numéros de téléphone, concluant son message par la phrase suivante : « En fait, inutile de les contacter, je l’ai déjà fait (je suppose que son prénom n’est pas celui que vous donnez, mais vous pourrez discuter de cela avec les agents fédéraux qui vont vous rendre visite). »

Délation, haine raciale et sexuelle, conservatisme exacerbé... Heu... facho ?!

Windows 11 sans aucun logiciel préinstallé, c'est possible ! - Les Numériques

Bonne astuce pour éviter tout le crapware windaubien lors de l'installation: sélectionner une localisation farfelue et win ne peut plus déterminer quelle suite logicielle installer.

C'est quand-même très très con...

capture

Via https://www.la-pub-dans-les-films.fr/shaarli/?IeFaMQ

Plugin PluXML : Empêcher pluXML de virer les backslashes des articles

Ze problaim

Si tu publies des bouts de code sur pluXML, tu as sans doute remarqué que ce dernier est pour le moins psychorigide avec les antislashes: il les vire sans ménagement... pourtant, on aimerait bien qu'il conserve les regex en l'état dans un code par exemple.

Je suis pas stupide, je comprends bien qu'il s'agit là d'un souci de sécurité, mais quand même, ça fait ch***.

Le souci,c'est que pluXML filtre les antislashes dans les $_POST très très tôt dans le code, bien avant tout hook de plugin: il le fait dans le prepend.php de l'admin, ligne 43.

Ben mon con, comment tu vas faire si tu peux pas intervenir en php via un hook pour modifier le $_POST?

Ze solouchonne

Ben tu le modifies en JS dans la page article lors du submit du formulaire

En gros, on remplace les «\» par des «\» dans le chapo et le avant de submit le formulaire. C'est une méthode dont j'ai trouvé l'idée ici https://forum.pluxml.org/discussion/6960/plugin-plx-cssbackslash-pour-ledition-des-fichiers-css

Donc, j'injecte un petit script JS via le hook AdminArticleFoot et il se charge d'intervenir lorsque le navigateur a terminé de créer l'objet formData: c'est d'ailleurs cet évènement qu'on va utiliser dans addEventListener au lieu du submit habituel.

Code du script injecté

(function (){
    let chapo = document.getElementById("id_chapo");
    var content = document.getElementById("id_content");
    var form = document.getElementById("form_article");
    function saveSlashes(str){
        return str.replace(/[\\]/g, '\\$&');
    }
    form.addEventListener('formdata',function(e){
        let formData = e.formData;
        formData.set('chapo', saveSlashes(formData.get('chapo')));
        formData.set('content', saveSlashes(formData.get('content')));
    });

})();

Ze saiquiouriti ?

Niveau sécurité, le plugin n'intervient que sur la page article.php et uniquement sur les champs chapo et content du formulaire. Il ne bloque pas le plxUtils::unSlash($_POST) du prepend.php. Je pense donc qu'il n'ouvre pas de faille majeure.

Ze conclugionne

Ainsi, les antislashes de ce script tiré de l'article sur le bug de mpdération passent enfin sans problème :

Exemple de code problématique

    const PATTERNS = array(
        'arts'          => '#^\D?(\d{4,})\.(?:\w+|\d{3})(?:,\w+|,\d{3})*\.\d{3}\.\d{12}\..*\.xml$#',
        'statiques'     => '#^(\d{3,})\..*\.php$#',
        'commentaires'  => '#^_?\d{4,}\.(?:\d{10,})(?:-\d+)?\.xml$#'
    );

Le zip est à télécharger depuis mon repo : https://repo.warriordudimanche.net/ZIPFILES/ArticleBackslashesKeeper.zip

(...)

Lire vos ebooks comme si c’était des vieux livres

Wow, sympa ça ! Je teste de suite ! Je me demande ce que ça donnerait avec la fonte Old Newspaper Types (https://www.dafont.com/fr/oldnewspapertypes.font?fpp=200&a=on)

[EDIT] Pas moyen de faire appliquer les fontes proposées par le site toutefois, la old newspaper fonctionne bien :

IMG 20230824 155716.webp

En tout cas, merci copain !

Outils gratuits en ligne de traitement d'image automatique (et de video et de son) MAJ

📋 Note pour plus tard

Image

Vidéo et son

Générateur

Brico: T'as bourré ?

Pardon pour ça

Mes deux grands emménagent dans leur appart étudiant la semaine prochaine et il leur fallait un repose-pied pour leur bureau... j'ai donc bricolé deux tabourets décorés à la graveuse laser.

Le premier pour ma fille

J'ai récupéré un dessin de Sarah Kay, je l'ai passé à l'Upscayl, j'ai ajouté le texte puis je l'ai importé dans laserGRBL.

Une fois terminé elle s'est exclamé «OOOOOooooooooooooOOOOOoooooohh c'est troooooooop meuuuuuuuuugnôôôôôôôôn !»

IMG 20230823 133840.webp IMG 20230823 133830.webp IMG 20230823 134419.webp

Le second pour mon fils

Gamer et futur étudiant en sécurité informatique, je le voyais mal se livrer aux mêmes cris émus que sa soeur si je lui faisais un sarah Kay... je suis plutôt parti vers un esprit plus Fallout.

J'ai récupéré plusieurs Vault boy que j'ai nettoyés puis vectorisés. J'ai tipiak la fonte de fallout puis j'ai composé l'image que vous voyez ci-dessous (que vous pouvez récupérer si vous voulez )

nico.svg
IMG 20230824 102014.webp

Note au passage

Coût total de l'opération: peanuts. Tout le bois et la visserie sont de la récup' - fruit d'une tendance de fourmi à ne rien jeter, accumulant harpagonesquement les bouts de machins comme un dragon sur son tas d'or... ça prend de la place, mais des fois ça sert.

Petite astuce pour bien placer le support à graver

Placer correctement son support puis configurer correctement le logiciel pour que le dessin se trouve à la bonne place, ça peut rapidement tourner à la blitzkrieg. Du coup, je vous donne une petite astuce:

  1. tracez un repère au centre du support
  2. placez le support bien parallèle au bord bas de la graveuse, le plus près de l'origine.
  3. une fois importé le dessin, cliquez sur center afin de positionner la tête au centre du dessin et cliquez sur le bouton servant à faire apparaître le laser
  4. déplacez la tête du laser pour faire correspondre ce dernier avec le repère tracé
  5. cliquez sur corner pour que la tête revienne au coin bas gauche
  6. lancez la gravure.

(...)

Cent ans de solitude : Alex García López et Laura Mora à la réalisation

Omagad ! Là, ils n'ont pas le droit de se louper !

Je te rejoins totalement Sammy: le monument de complexité que représente l'adaptation en série de ce labyrinthe littéraire.

Rien que l'arbre généalogique de la famille Buendía...

Via https://www.sammyfisherjr.net/Shaarli/?73WRqw

19 licences méconnues et inhabituelles

Tout le monde connaît les licences libres habituelles mais il y en a de moins connues et - souvent - moins compliquées à comprendre : petit florilège...

Les licences les plus libres

La WTFPL

Do What The Fuck You Want to Public License - https://fr.wikipedia.org/wiki/WTFPL

Permet de distribuer avec le même niveau de protection que le domaine public, c'est-à-dire AUCUN.

La Beerware

Beerware licence - https://en.wikipedia.org/wiki/Beerware#License

Faites ce que vous voulez et si un jour on se rencontre et que vous trouvez que mon boulot en vaut la peine, payez-moi une bière.

La Bugroff

No problem Bugroff License - http://tunes.org/legalese/bugroff.html

La réponse à toute question à propos des droits de reproduction ou problème légal est : «Sure, No problem. Don't worry, be happy. Now bugger off»

La DAMAIL

Don’t Ask Me About It License

En gros, faites ce que vous voulez et ne me contactez pas.

La GLWTPL

Good Luck With That Public License - https://github.com/me-shaon/GLWTPL

Démerde-toi, demande pas d'aide et - surtout - ne dis à personne que ça vient de moi...

La Woody Guthrie

The Woody Guthrie Public License

«Toute personne qu'on prendra à distribuer ce livre sans permission se verra considéré comme un super pote parce qu'on en a rien à foutre...»

La DSSL

Demerden Sie Sich License - https://dssl.flyounet.net/licenses/

Littéralement, la Licence Démerdez-vous... Je vous laisse la lire tranquilou pour vous faire une idée: toute tentative de résumé serait une trahison du texte original

«Cette Licence» se réfère à la version 1 de la «Demerden Sie Sich License» (le texte original en français). «Démerder», se réfère au sens de se «débrouiller». A aucun moment «cette Licence» ne vous demandera de vous enduire (vous ou votre œuvre) d'excréments humains (ni même animal). «Œuvre» est aussi appelée «travail» (quelques fois, l'extension «de sagouin» peut lui être apposée), «programme» ou tout autre terme relatif à ce qui a été effectué. Ainsi, une «documentation» ou un «manuel» peut être considéré comme une œuvre. «Auteur» signifie que la personne (ou groupe de personnes), qui utilise «cette Licence», se lave complètement les mains de la façon dont vous utiliserez son œuvre.

L'«Auteur» peut-être considéré comme irresponsable et il incombe à l'utilisateur en priorité de se «démerder» par lui même.


Les licences les plus WTF

La D&R

The Death and Repudiation License

This software may not be used directly by any living being.

En gros, l'usage à toute personne vivante est formellement interdit.

La CDL

Chicken dance license - https://github.com/supertunaman/cdl/blob/master/COPYING

Conditions très exotiques pour cette licence qui régule drastiquement la redistribution des copies du code:

  • à chaque 1000ème copie distribuée au moins la moitié des employés ou personnes affiliées doit écouter «the chicken dance» de Werner Thomas
  • à chaque 20000ème copie distribuée, une personne affiliée doit exécuter la Chicken dance dans une vidéo
  • il est formellement interdit à tout employé ou personne affiliée de prononcer le mot «gazorninplat» en public tant que dure la distribution du produit.

La FCL

The Fight Club Licence - https://github.com/benlk/misc-licenses/blob/master/fight-club-license.md

  • You do not talk about the FIGHT CLUB LICENSE.
  • You DO NOT talk about the FIGHT CLUB LICENSE.
  • If someone says "stop" or goes limp — or taps out — the project is over.
  • Only two developers to a project.
  • One project at a time.
  • No shirts, no shoes.
  • Projects will go on as long as they have to.
  • If this is your first time reading the FIGHT CLUB LICENSE, you HAVE to license your next project under the FIGHT CLUB LICENSE.

La OGPITAL

The Offendo General Pain In The Ass License

L'auteur de toute modification doit redistribuer le travail modifié par un moyen plus contraignant et difficile que celui par lequel il a acquis le code original.

La Licence de Schrödinger

https://github.com/benlk/misc-licenses/blob/master/schrodinger-license.md

Heu, là, je vous laisse aller la voir tous seuls.... passque bobo têtête.

La Bugs

The Bugs License r2 - https://github.com/benlk/misc-licenses/blob/master/bugs-license.md

Pour faire court, c'est pas un bug c'est une fonctionnalité...

  • Bugs in the licensed work are features, to be cherished, documented, and developed upon.
  • Modified works must not include known bugs.
  • Where identified, modified works' bugs shall be fixed.
  • Authors and maintainers of the licensed work reserve the right to pull bug fixes from modified or derivative works without compensation, recognition, or any other reference to the authors of the bug fix.

La ABSL

The Anyone But Stallman License - https://github.com/benlk/misc-licenses/blob/master/stallman-license.md

Je crois que c'est clair...

La Méphisto

The Mephistopheles License - https://github.com/benlk/misc-licenses/blob/master/mephistopheles-license.md

Tu veux redistribuer ?! signe ici... avec ton sang.

La WTFWYEDTHS

Why The Fuck Would You Even Do That Holy Shit Public License - https://git.sr.ht/~boringcactus/gotbruh/tree/main/item/LICENSE.md

Seule restriction : il est définitivement et formellement interdit de refactorer ce logiciel en Python 2.


Les plus utilisables en vrai

La DBAD

Don't be a dick License - https://dbad-license.org/

Une licence qui autorise tout avec pour seule condition de ne pas être un connard (a dick)... l'auteur fournit une liste non exhaustive de ce qu'il appelle être un connard:

  • se contenter de copier et de changer le nom
  • vendre une version non modifiée sans produire le moindre travail
  • Faire des modifications afin d'implémenter du contenu dangereux
  • Faire de l'argent avec et devenir riche sans même soutenir l'auteur
  • etc

L' ACSL

Anti-Capitalist Software License [non «libre»]- https://anticapitalist.software/

Vous voulez partager un logiciel ou un code en interdisant toute exploitation commerciale capitaliste et libérale ? Cette licence permet de restreindre l'usage et l'exploitation à certains types d'utilisateurs:

  • une personne privée travaillant pour elle-même
  • une organisation à but non lucratif
  • une organisation à but éducatif
  • une organisation visant les profits partagés pour tous ses membres
  • si l'utilisateur est une organisation alors tous les travailleurs sont propriétaires et inversement.

La Please

The please public licence - https://web.archive.org/web/20200814151216if_/https://awoo.space/@typhlosion/1433790

L'utilisateur a le droit... de demander la permission et l'auteur a l'obligation d'accepter

Sources :

(...)

Api perso: Fetchit, le bon chienchien du oueb...

Ouate ?

Après avoir fait goofi puis Getlib j'ai codé vite fait une petite «api» destinée à ramener en local n'importe quelle ressource distante... «quelle différence avec getlib ?» allez-vous me demander sur un ton narquois à propos de la cruauté duquel je tairais scrupuleusement tout commentaire.

J'ai eu envie de faire ça car j'en avais assez de passer par le combo

bouton droit sur une ressourcetélécharger envoyer sur mon sitefaire un lien ou une img

Du coup, il suffit d'ajouter l'adresse de l'api à l'url vers la ressource distante... Donc http://insta.com/image.jpg devient par exemple http://api.warriordudimanche.net/fetchit?url=http://insta.com/image.jpg

Fetchit va récupérer la ressource en local et vous servir cette version au lieu de la distante. Comme d'hab' si cette ressource a déjà été récupérée elle n'est pas re téléchargée.

Le deuxième effet kiskool (paye ta réf de vieux) c'est que du coup, comme getlib, ça permet de récupérer toute lib en local et être plus RGPD friendly.

Examples:

  • utiliser directement une image distante : <img src="http:www.distantserver.com/pic.png"/> ➜ <img src="http://api.url.com?url=http:www.distantserver.com/pic.png"/>
  • lien vers une ressource distante : <a href="http:www.distantserver.com/file.pdf"> Link to distant file</a> ➜ <a href="http://api.url.com?url=http:www.distantserver.com/pic.png"> Link to distant file</a>
  • utiliser une lib hébergée sur un CDN distant : <script src="http:www.distantnastyserver.com/lib.js"></script> ➜ <script src="http://api.url.com?url=http:www.distantnastyserver.com/lib.js"></script>

    Con figue ?

    Afin d'éviter que votre server ne se retrouve floodé par des fichiers vidéos 8K à 60 gigots l'unité, il y a une limite de taille configurée dans la constante SIZE_LIMIT, fixée par défaut à 10 Mo.

    Le code ?! c'est... le code.

    Ceux qui aiment farfouiller verront que cette fois, j'ai fait une classe fetchit_class.php qui se charge de tout. Son fonctionnement est tellement simple que je me fissure même pas le joufflu à vous le détailler, démerdez-vous.

    License

    Comme d'hab', c'est cadeau... Utilisez, partagez, modifiez... juste respectez la Dont be a dick licence

    donne le ouade

    Comme tout ça n'a de sens que si on héberge soi-même, vous pouvez récup' le zip qui va bien ici : https://api.warriordudimanche.net/fetchit/?download

    Le mot final

    Mes chers cons-patriotes, non aux fuites de données, vive le oueb libre et participatif et vive la france et bisou !

  • Shader Packs | Minecraft Shaders Wiki | Fandom

    Une page regroupant des shaderpacks AVEC L'IMPACT DE PERFS ! (de high à potato )

    Cool. J'en ai testé plein et celui qui me semble le meilleur rapport esthétique/impact est Simplissimus: on a les ombres projetées ET une très belle eau sans ralentissement notable...

    Ma fille va être contente !

    document.execCommand - Référence Web API | MDN

    https://antoineboursin.fr/courses/creez-un-editeur-de-texte-wysiwyg

    La vie est mal faite: je découvre document.execCommand() permettant de faire du richtext dans un élément contentEditable juste quand il est officiellement déclaré obsolète...

    Bon, en même temps, sur stackoverflow, the holy baïbol, certains affirment que:

    1. oui, il est obsolète mais n'a pas d'alternative
    2. execCommand semble requis pour tout navigateur prétendant sortir sur le marché,
    3. son implémentation semble sujette à variations selon le navigateur (le fameux internet explorer syndrome de triste mémoire)
    Mais merde !  Je fais quoi moi ?!

    La République exemplaire d’Emmanuel Macron | Mediapart

    Le trombinoscope des pourris au gouvernement offert par mediapart. Profitez.

    Pour ceux qui en voudraient une copie avant que ça disparaisse:

    la république exemplaire.webp

    et en PDF :la republique exemplaire.pdf

    via mastodon : https://piaille.fr/@pOtiron/110661955434411199

    Rogue One - Chez Sammy

    Sammy a vu Rogue One et je pense comme lui, pour les mêmes raisons: c'est le meilleur film de toute la saga starwars... précisément parce qu'on s'éloigne du modèle - que dis-je : du moule - des trilogies... Check mon copain !

    RIDITLETEUR spécial DEV : CSS, HTML, JS, PHP...

    A l'occasion d'un ménage dans les brouillons de billets, je compile les trucs DEV qui trainaient par là

    Ressources CSS

    Ressources JS

    Ressources PHP

    • https://github.com/jcampbell1/simple-file-manager : GitHub - jcampbell1/simple-file-manager: A Simple PHP file manager. The code is a single php file.
    • https://grafikart.fr/tutoriels/authentification-2-facteurs-totp-630 : Tutoriel vidéo PHP : Authentification 2 facteurs, TOTP | Grafikart
    • https://phpbestpractices.org/ : A short, practical guide for common and confusing PHP tasks (Storing passwords, PHP and MySQL, PHP tags, Auto-loading classes, Single vs. double quotes, define() vs. const, Caching PHP opcode, PHP and Memcached, PHP and regex, Serving PHP, Sending email, Validating email addresses, Sanitizing HTML, PHP and UTF-8, Working with dates and times, Checking null and false values, Removing accent marks (diacritics) )

    Et quand je ne joue pas, je regarde le Mandalorien (S3) - Chez Sammy

    Je dirais que le Mandalorien est à l'opposé du spectre du livre de Bobafett: là où on déteste Bobafett malgré quelques (rares) bonnes choses, on aime inconditionnellement Mando malgré quelques passages plus faibles...

    Et en plus je suis cité o/

    Bisou copain !

    Zi is ze oué  ...    j'ai envie de dire
    Fil RSS des articles de cette catégorie