Friction Motion graphics
Un outil d'animation à tester ?
Friction is a powerful and versatile motion graphics application that allows you to create vector and raster animations for web and video platforms with ease.
Un outil d'animation à tester ?
Friction is a powerful and versatile motion graphics application that allows you to create vector and raster animations for web and video platforms with ease.
Petite mise à jour pour mon script findfeed qui sert à trouver le flux RSS d'un site s'il existe...
Je le reprends de temps à autres quand je tombe sur un site qui échappe aux regex de recherche
Il y a un petit bookmarklet: un clic dessus quand on est sur un site et hop, on récup l'url du flux...
Dans cette version, j'ai également remis à jour la récup pour une chaîne youtube.
Si vous souhaitez améliorer la détection, il suffit d'ajouter ou modifier le tableau $regexes au début du script (ajouter des règles ou les modifier.)
Certains sites peuvent bloquer findfeed parce qu'il ne fait pas une requête «normale» comme celle d'un visiteur lambada C'est le cas d'OVH par exemple, qui bloque l'accès à maximevende.org alors que ce dernier a bien un flux RSS dans son header quand on y accède normalement.
En ajoutant un USER_AGENT à ma fonction CURL , ça semble avoir résolu le problème
Pub pour l'appli de mon pote Erase RSS-fusion
Fusionner, filtrer, manipuler et gérer ses flux RSS en toute simplicité
RSS Fusion est un service en ligne conçu pour simplifier votre veille d'informations. En combinant plusieurs flux RSS en un seul, vous pouvez facilement suivre l'actualité qui vous intéresse.
J'ai testé, c'est très simple, fonctionnel et joli: on peut ainsi créer facilement des flux RSS compilant le contenu de plusieurs autres flux. Par exemple, vous pouvez créer un flux «dev» regroupant tous les flux que vous suivez dans cette catégorie.
sympa, on gagne du temps... ou alors il suffit de s'en foutre en mode ça marche sur mon ordi...
Histoire de bosser un peu sur l'utilisation d'Imagick (pour lequel je m'étais fait des notes ici 12) j'ai essayé de faire une petite «api» de génération de badges simple.
On peut appeler l'api directement en précisant les variables suivantes:
?txt=trop beau|pas vrai
api.warriordudimanche.net/badgit/?txt=Mon%20super%20badge&backcolor=red&txtcolor=&icon=&font=montserrat.ttf&fontsize=16
api.warriordudimanche.net/badgit/?txt=Mon%20super|badge&backcolor=red|pink&txtcolor=pink|red&icon=&font=montserrat.ttf&fontsize=16
api.warriordudimanche.net/badgit/?txt=Mon%20super|badge|de%20ouf&backcolor=red|pink|maroon&txtcolor=pink|red&icon=&font=montserrat.ttf&fontsize=16
api.warriordudimanche.net/badgit/?txt=Mon%20super|badge%20|de%20ouf%20&backcolor=red|pink|maroon&txtcolor=pink|red&icon=|fontawesome_solid/smile-beam.svg|fontawesome_solid/hand-back-fist.svg&font=montserrat.ttf&fontsize=16
J'ai goupillé aussi un petit front basique, histoire de ne pas se taper tout au clavier.
Ça ne servira sans doute à personne mais bon, sait-on jamais
Ceci dit, il y a une classe badge qui peut faire l'affaire quelque part...
Le code est là : https://api.warriordudimanche.net/badgit/?download
Bon, c'est un fait, envoyer des fichiers sur toute machine de son réseau quel que soit son OS, c'est chiant... il y a bien KDE Connect et Warpinator... Mais c'est pas toujours foufou - et je suis un fervent adorateur de KDE Connect.
Déjà, c'est opensource et dispo sur Fdroid pour Android avec une version .deb/appimage... 👍
Localsend, qui se veut l'équivalent d'airdrop sur les machines à la pomme pour les poires (#payeTonTrollGratuit), semble une bonne alternative.
Tiens, un débloater / bidouilleur pour windaube 11
de côté pour plus tard
Des outils pour uptobox ? MERCI !
Donc, si j'ai bien compris, il faut se dégoter un token uptobox puis l'utiliser pour débrider les liens normaux et les changer en liens premium.
J.O.I.E !
EDIT: https://ecirtam.net/opennews/?w82D5Q ça marche FUCKING trop bien
Fonctionne du feu de Dieu et permet même de restaurer en cas de souci. 🥇
Je ne sais plus si j'avais partagé ça, mais bon...
Une appli android qui permet de partager une URL vers une autre URL.
Vu que les bookmarklets sont impossibles sous firefox android (à moins que ça ait changé récemment ?!), on ne peut pas, par exemple, poster un lien vers son propre site afin de le gérer/partager/archiver, comme je le fais avec weblinks pour PluXML.
URLforwarder permet de créer un «filtre» vers lequel on partage via l'option partage d'android. L'appli se chargera de compléter l'URL en fonction du filtre (@URL avec l'URL, @SUBJECT avec le titre de la page)
Ça a fonctionné parfaitement pour mon cas et ça résout très bien mon souci pour archiver vite fait des liens visités sur mon mobile...
Plein de générateurs de SVG de découpe au laser pour des modèles de boîtes de toutes sortes et formes, de roues dentées, de puzzles etc... et même des découpes de boîtes en papier...
très utile ! Pour les descriptions, je vous conseille le lien d'origine.
Dans le monde merveilleux de la découpe et gravure laser, je débarque à peine, il me faut bien l'avouer... Toutefois, comme dans beaucoup de domaines dans lesquels le montant à investir au départ est inversement proportionnel aux difficultés que tu vas rencontrer dans l'utilisation de l'appareil. le bazard est ardu, en particulier quand on ne t'explique pas les trucs à la base.
Le choix du logiciel de gravure n'échappe bien entendu pas à cette règle: si tu veux que le bouzin fasse des trucs un peu tout seul ou sans trop de prise de tête, il faudra faire tomber 60€ pour acheter LightBurn, qui semble la référence en la matière.
Sinon, tu te tourneras vers la seconde référence: LaserGRBL. Il est gratuit et ça c'est bien. Mais il ne tourne nativement que sous windows et ça c'est pas bien.
Les plus assidus se rappellent du billet précédent dans lequel je fournissais deux façons de faire tourner ce logiciel sous linux ( https://warriordudimanche.net/article1800/sculpfun-s9-gravure-decoupe-laser-pas-trop-cher ) : la difficulté est moins de faire démarrer laserGRBL que de lui faire détecter la machine sous linux... ça semble possible, mais comme souvent pour les trucs peu répandus ou geekesques, sous linux, ça devient assez peu intuitif... et pour ma part, j'ai pas le temps.
Certains me diront sans doute: «mais pitin, y'en a plein, t'oublies Ci, t'oublies Mi...» oui,oui, ok... https://alternativeto.net/software/lightburn/
Mais ya un moment, il faut bien choisir.
Les captures sont celles de la version windows pour le travail sur l'affiche Harry Potter de l'article précédent, juste pour que vous compreniez ce que vous voyez (référence à https://www.youtube.com/watch?v=xJ2tOJhx2s4 )
En ce qui concerne l'utilisation et l'aspect intuitif, LaserGRBL est à la gravure laser ce que vim est à l'édition de texte... voyez ?!
ça marche bien mais faut connaître...
Toutefois, avant de vous lancer, gardez en mémoire que l'alcool n'est pas la solution.
Je vais pas vous faire une lecture des sous-menus - qui est au tuto ce que le tang est au jus d'orange - mais juste un survol des trucs à voir.
La zone de gauche donne accès à un élément important (outre le bouton servant à connecter la graveuse): le nombre de passes. Contre toute attente, ce n'est pas un paramètre comme les autres, il n'est pas avec les réglages laser.
Rien ne vous dit d'ailleurs où ce trouve ce réglage en dehors du survol. Mais heureusement que ya Bronco pour vous sortir de la merde: c'est la petite case à côté de la barre progression qui dit combien de fois le travail doit être répété (sur l'image ya un «1», donc le travail ne sera fait... qu'une fois: bravo à toi dans le fond.).
Un petit label aurait été de bon aloi...
Et le petit triangle, là, encore à côté, c'est celui qui sert à lancer le processus de gravure/découpe...
A droite, vous retrouvez une représentation visuelle des éléments ajoutés (le résultat du Gcode généré): ils s'afficheront de la même façon qu'ils seront tracés sur la découpeuse.
Dans cette capture, trois fichiers ont été utilisés: le titre (découpe), la photo (gravure) et le sous texte (découpe)
Ces icônes s'avèrent utiles pour placer ou visualiser la zone sur laquelle la gravure va se faire. Ne serait-ce que pour vérifier qu'elle se fera à l'endroit du support où vous espérez...
Avec ce logiciel, on passe toujours par les mêmes étapes:
A chaque fois, vous passerez par ces étapes: pour tout changement de réglage, tout nouveau travail...
Il peut s'agir d'un fichier image ou d'un fichier Gcode. Ici nous choisirons un fichier image: hcoke.png
La fenêtre suivante sert à convertir l'image en fonction de ce qu'on veut obtenir. En gros, on peut choisir d'importer l'image telle qu'elle et de la convertir en lignes de dégradés de gris («tracé ligne par ligne» ou « pointillisme») ou alors de ne conserver que les bords extérieurs («vectorisation»).
Habituellement, pour la découpe, on se sert de la vectorisation.
C'est là qu'on va régler la puissance et la vitesse du laser. Mais avant tout, on choisit le mode du laser !
Ensuite vous pouvez spécifier la vitesse du laser en millimètres par minute et la puissance de 0 à 1000 (0% à 100%).
La rubrique du bas permet de spécifier la taille de la découpe et son décalage par rapport à l'origine 0,0 (en bas à gauche pour la S9 sauf si vous avez utilisé le bouton de LaserGRBL servant à fixer l'origine ailleurs). C'est là que vous décalerez les différents objets les uns par rapport aux autres dans les projets mêlant gravure et découpe)
Les plus observateurs d'entre-vous - ou ceux qui sont le plus habitués aux interfaces laconiques - auront remarqué le bouton en forme de livre. Un clic dessus vous donne accès à des préréglages selon une grande quantité de machines via la MaterialDB (mais pas la S9, j'ai du éditer la base via le menu GRBL>MaterialDB) :
Ici on prend les réglages pour découper du papier 100% / 800 mm/m / 1 passe en M3.
Une fois les réglages effectués on se retrouve devant l'écran principal où l'on n'a plus que le nombre de passes à préciser et un clic sur le bouton
On passe par les mêmes étapes sauf qu'on choisit le mode M4:
Notez le M4 !
Je vous tiens au courant !
Parfois, un post en entraîne un autre... Ainsi, tu t'es mis à coder un BOT presque par inadvertance - avec les difficultés qu'on connaît - et tu le partages parce qu'il n'y a pas de raison que l'auteur soit le seul à pleurer... pis t'as un copain qui te lit et qui prend le truc au sérieux... en tout cas suffisamment pour te proposer d'en faire un autre !
Objectif de la demande: récupérer les données de l'API RTE tempo ( https://data.rte-france.com/catalog/-/api/consumption/Tempo-Like-Supply-Contract/v1.1 ) pour dire la couleur du jour et celle du lendemain et les poster sur un bot mastodon (mais pouvoir appeler le script comme une API aussi)
Je suis donc parti pour tester ladite API: pour la faire courte, ça m'a permis - après les galères d'usage - de comprendre comment tout ça fonctionnait (en particulier la demande d'un token, l'appel d'une api en php etc)
J'en suis arrivé à un script qui produit un texte donnant la couleur du jour et celle du lendemain.
Le texte c'est bien, mais ce serait mieux si on pouvait récup les données en HTML et intégrer ça avec une Iframe, comme un code d'intégration.
Pis éventuellement en RSS aussi...
Bon, tant que j'y étais, j'ai aussi fait un mode json, au cas où on voudrait ça dans un frontend à soi...
Du coup, mon API s'appelle de plusieurs façons différentes:
Le script produit un fichier pour chaque type de retour et ne le régénère qu'une fois par jour afin d'éviter de se faire «hammerer» comme dit @parigotmanchot
À ce stade, le script fonctionne même si le code est un peu sale et pas bien rangé... il fait ce qu'on lui demande. A part que parfois, il ne donne pas la couleur du lendemain... mais pas en local... juste en distant. Je n'ai pas encore vraiment cherché pourquoi, mais je pense que c'est dû au moment où l'on appelle l'API de RTE.
Tant que j'y étais, j'ai regardé l'API ECOWATT ( https://data.rte-france.com/catalog/-/api/consumption/Ecowatt/v4.0 ) qui donne une couleur et un message décrivant le niveau de stress du réseau.
Du coup, le script appelle les deux API et retourne les données cumulées des deux.
Si ça vous intéresse, le zip est là : RTETempo.zip et il est distribué sous stricte licence faites-en ce que vous voulez. 😅
Les constantes au début permettent de configurer un peu:
TOKEN_BASE64
: pour mettre votre propre jeton si vous voulez vous inscrire sur RTE (qui accepte les emails jetables type yopmail, je dis ça je dis rien 😬)TEMPO_BEFORE_TODAY, TEMPO_BEFORE_TOMORROW, ECOWATT_BEFORE_TODAY, ECOWATT_BEFORE_TOMORROW
: pour définir le texte renvoyé avant la couleur.HTML_STYLE
: pour changer le style du HTML généréTEMPO_HTML_TEMPLATE, ECOWATT_HTML_TEMPLATE
: pour changer le code HTML à utiliser en cas de retour HTMLECOWATT, TEMPO
: deux booléens permettant de débrayer l'un ou l'autre des appels (si vous ne voulez que ECOWATT ou que TEMPO)Ben j'ai fait un autre BOT pour poster les couleurs du réseau une fois par jour... https://piaille.fr/@RTE_color ( @RTE_color@piaille.fr )
Le cadeau du jour: un script qui permet d'automatiser l'optimisation d'une image pour le ouaibe sans passer par une appli quelconque.
Tout le monde est d'accord pour affirmer qu'il est indispensable de minimiser le poids des pages web et que dans cette optique, le premier geste - après avoir viré les bibliothèques inutiles bien entendu - reste l'optimisation des images.
J'avais vu passer un article fort bien écrit sur ce sujet mais hélas, j'ai omis de le bookmarker et paf: le voilà perdu dans les méandres de mon historique sur un des ordinateurs que j'utilise.
Tout le monde est d'accord sur le principe mais souvent, c'est comme l'écriture de la doc ou les tests unitaires: on a la flemme de s'y coller...
L'idéal serait bien sûr que l'optimisation soit transparente et automatique... genre: tu te contentes de passer à la balise img l'URL de l'API avec celle de l'image et POF, tu as l'image en version optimisée.
Optipic est donc un script auquel on passe l'URL d'une image, le format souhaité, le niveau de qualité et -éventuellement - la largeur maximum pour obtenir en retour l'image transformée.
Le script renvoie directement l'image transformée avec le header adéquat et du coup, c'est transparent pour HTML/CSS.
Notez que l'image optimisée est sauvée dans le dossier rendered/ afin d'éviter une charge inutile: si une image a déjà été optimisée, le script la sert directement au lieu de la refaire à chaque fois.
Même si ce script est déjà à ce stade absolument fabuleux (si, si !), je me suis dit que les paramètres risquaient de se répéter et qu'il pouvait s'avérer fastidieux de retaper le tout à chaque fois. Par conséquent, j'ai ajouté la possibilité de créer des scripts d'optimisation - un peu comme dans scriptopic.
Ainsi, si vous placez un fichier PHP contenant les paramètres dans le dossier scripts/ , vous pouvez l'appeler via le paramètre $_GET script
:
Exemple: je cree scripts/webp.php et je mets dedans:
// webp 50%
$params=[
'format' =>'webp',
'quality' =>50,
'maxwidth' =>null
];
Puis je l'appelle en faisant : api.url/?script=webp&i=http:/image.url/pic.jpg
Pour le moment, il y a quatre scripts: jpg80,jpg70,avif,webp... à vous de créer les vôtres en fonction de vos besoins...
Ben j'ai fait un test dans ce blog pour voir avec mon image de titre LOL:
qui pèse 113 ko en jpg
Puis avec son optimisation via le script webp ci-dessus:
qui ne pèse plus que... 18 ko en webp 50%
Et ça juste en rajoutant https://api.warriordudimanche.net/optipic/?script=webp&i=
dans le chemin de l'image.
Si Optipic ne parvient pas à créer l'image, il crée une image d'erreur à la place, histoire de voir le souci quand même...
Ce comportement peut être débrayé avec la constante ERROR_PIC
ligne 29.
Comme pour toutes les api de ma page, le script est téléchargeable via le ?download : https://api.warriordudimanche.net/optipic/?download et testable au même endroit: https://api.warriordudimanche.net/optipic/?i=...
DEFAULT_FORMAT
ligne 28Au passage, ce script utilise une classe que j'avais codée pour scriptopic: pictools. Grâce à elle, le travail d'optimisation tient en
$picture=new pictool($params);
$picture->load($url);
if (!empty($params['maxwidth'])){
$picture->resize($params['maxwidth']);
}
$picture->save($generated_picture_path);
$picture->display();
Cadeau !
Hier, je me suis aperçu que le bookmarklet que j'avais fait pour trouver le flux RSS d'une chaîne youtube ne fonctionnait pas toujours 🤬: en effet, si l'URL de la chaîne n'est pas du type www.youtube.com/channel/xxxCHANNEL_IDxxx
ça ne fonctionne pas... Or, les chaînes peuvent être aussi sous une forme dans laquelle le channel_id n'apparaît pas.
Au lieu de laisser youtube me chier dans les bottes, je me suis dit que, si le channel_id n'est pas dans l'URL, il doit être planqué quelque part dans le html de la page.
En fouillant un peu, twingo bongo jannielongo bingo 🥳 J'ai trouvé ça en parsant avec (presque) la même regex que pour l'URL.
J'ai donc codé vite fait une «api» qui renvoie l'URL du flux RSS d'une chaîne Youtube dont on fournit l'adresse.
On peut l'utiliser avec le frontend minimaliste prévu, en faisant une requête GET ou via le bookmarklet qui va bien.
Le tout est bien entendu utilisable, autohébergeable et modifiable, comme d'habitude
Allez !