Je ne sais plus si j'avais partagé ça, mais bon...
Une appli android qui permet de partager une URL vers une autre URL.
A quoi ça sert ?
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.
Solution
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.
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 )
LaserGRBL
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.
L'interface
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.
Le menu
Le menu principal est celui qui sera le plus utile: on y trouve le point de départ de toute réalisation: l'ouverture ou l'ajout d'un fichier (image ou gcode)
Connexion et nb de passes
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...
visualisation du projet
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)
Contrôle de la zone de gravure
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...
Le bouton center place le laser au centre de la zone de gravure occupée par l'objet.
Le bouton corner déplace le laser dans le coin en bas à gauche de la zone de l'objet.
Le bouton frame fait le tour de la zone occupée par l'objet afin de vérifier s'il y a un débordement.
focus et blink servent à déclencher le laser à sa puissance minimale pour en visualiser le point d'impact exact.
Étapes de gravure/découpe
Avec ce logiciel, on passe toujours par les mêmes étapes:
choisir un fichier (image dans un premier temps)
importer le fichier : le convertir de façon à en avoir une version exploitable par le logiciel
saisir les réglages de la découpeuse afin de produire le Gcode correspondant.
A chaque fois, vous passerez par ces étapes: pour tout changement de réglage, tout nouveau travail...
Voyons ce que ça donne avec le fichier de titre à découper
1. choisir le fichier
Il peut s'agir d'un fichier image ou d'un fichier Gcode. Ici nous choisirons un fichier image: hcoke.png
2. importer le fichier
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.
3. Réglages du laser
C'est là qu'on va régler la puissance et la vitesse du laser. Mais avant tout, on choisit le mode du laser !
M3 -constant ➜ la puissance du laser restera celle indiquée dans le réglage tout au long du travail: c'est le mode utilisé pour la découpe.
M4 - variable ➜ la puissance du laser variera de zéro à celle indiquée dans le réglage en fonction de la nuance de gris à rendre: c'est le mode utilisé pour la gravure.
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 ▶ pour lancer le taf.
Pour la gravure
On passe par les mêmes étapes sauf qu'on choisit le mode M4:
On choisit le mode tracé ligne par ligne (l'option qualité donne le nombre de lignes par millimètre... entre 5 et 10 s'avère pas trop mal mais j'ai peu testé.)
On règle pour la gravure
Notez le M4 !
on valide et on clique sur ▶ pour lancer.
Les trucs à se rappeler avant de se lancer
vous allez faire des erreurs... beaucoup. Partez là-dessus et ne perdez pas votre enthousiasme... pour ma part, j'ai égaré le mien aux alentours de la huitième tentative avortée... plus moyen de foutre la main dessus. C'est l'entêtement qui a pris le relai du coup.
vous pouvez mettre plusieurs «images» (cad plusieurs travaux de découpe/gravure) dans le même travail, il suffit de sélectionner ajouter un fichier au lieu de ouvrir un fichier. Par contre, en cas de changement de réglages, il faudra tout reprendre à zéro, depuis le premier document: c'est vite chiant, surtout quand on ajoute les soucis de placement à ceux des réglages du laser. Heureusement il y a le point numéro 3 (ouf)
quand vous avez obtenu de haute lutte un GCODE dont les réglages fonctionnent, vous pouvez le sauvegarder comme fichier de travail: ainsi, sur une réalisation complexe avec des découpes des gravures etc, on peut faire le Gcode de chaque élément et les ajouter ensuite. On peut même sauvegarder le tout dans un nouveau fichier gcode (titre.gcode + photo.gcode + txt.gcode = total.gcode)
M3 -constant ➜ découpe / M4 - variable ➜ gravure
Ce tuto est un premier jet réalisé après deux jours en partant de zéro. Il s'agit de notes pour moi-même et pour le pauvre copain qui va se lancer comme moi au talent. C'est amené à évoluer avec les nouvelles tentatives, les prochaines erreurs, les commentaires d'aide que je recevrait et tout ça
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 !
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.
«Oui, mais ce serait cool...»
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:
URL seule ➜ retour en texte RAW (prêt à poster)
URL?html ➜ retourne le code HTML
URL?json ➜ renvoie les données en JSON
URL?rss ➜ le flux RSS de l'API
(cadeau bonux) URL?embed_code ➜ retourne le code pour mettre ça sur son site avec une iframe.
Pour faire bonne mesure
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
Jusque là, tout va à peu près dans un monde couci, couça
À 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.
Du coup, le script appelle les deux API et retourne les données cumulées des deux.
ce qui donne ça
J'en veux j'en veux...
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 HTML
ECOWATT, TEMPO : deux booléens permettant de débrayer l'un ou l'autre des appels (si vous ne voulez que ECOWATT ou que TEMPO)
Et le BOT ?!
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.
Le problème
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...
Ze solution
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.
Les paramètres sont les suivants:
i ➜ l'url de l'image
maxwidth ➜ la largeur maximum de l'image (opt.)
format ➜ le format de sortie de l'image : jpg,gif,png,webp,avif (PHP 8 minimum pour l'avif)
quality ➜ la qualité (niveau de compression) de 0 à 100
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.
But there's more !
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:
Pensez bien à mettre le paramètre d'URL (i) en dernier car sinon, php inclura les paramètres dans l'URL passée
Même avec un script vous pouvez toujours changer un paramètre. Exemple: ?script=webp&quality=30&i=xxx permet de changer la qualité précisée dans le script (50).
Par défaut, le format de sortie est le jpeg mais c'est configurable dans la constante DEFAULT_FORMAT ligne 28
Au 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();
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.
Du coup, je m'y mets
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, twingobongojannielongo 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
J'ai mis à jour les regex de metabookpour supprimer fourtoutici (trop de déboires et une recherche désormais en POST) et pour y ajouter la nouvelle adresse de zlibrary
Finalement, j'ai remis fourtoutici qui semble avoir remis la recherche via GET: j'ai ajouté le lien direct vers la page de download.
J'ai toujours été très satisfait de waifu qui produit un rendu très propre et élimine vraiment bien les saletés du jpeg.
Comme Seb a repartagé Uspscayl, je me suis dit que je pouvais tester et comparer avec mon favori.
J'ai donc repris les images utilisées dans les tests précédents et je les ai passées dans Upscayl... Verdict.
TLDR; Upscayl winner
Globalement, cette appli s'en sort encore mieux que waifux2: meilleure suppression des artefacts, meilleur lissage, meilleur rendu de certains détails.
Test 1 : la fleur
Le rendu est meilleur, plus détaillé et les à-plats semblent plus lisses.
originale 200x200 - 26ko
waifu 800x800
Upscayl 800x800 - 431ko
Test 2 : la fête
Rendu équivalent mais deux fois plus grand.
originale 709x510 - 145ko
waifu x2
Upscayl 2800x2000 - 6.9 Mo (redimensionnée pour le poids ici, voir image réelle)
Test 3 : le chat
Bien meilleur rendu, moins de pixels parasites et de bruit, meilleure netteté, aspect Fluffy mieux rendu.
originale 374x346
waifu x2
Upscayl 1496x1384 - 1,1Mo
Test 4 : la photo
Image bien plus fine et lissée mais au prix d'une perte de détails: l'image peut paraître «trop» lisse; de plus, l'IA semble parfois «surinterpréter» certaines parties de l'image, comme ce mouvement entre les sourcils qui n'est pas dans l'image d'origine ou les cheveux en haut à gauche dont on voit que l'IA a comblé avec ce qu'elle «sait» des cheveux...
originale 236x300 - 26.6ko
waifu 472x600 - 389ko
Upscayl 944x1200 - 825,4 ko - 1,1Mo
Conclusion:
Upscayl fait mieux que waifu dans tous les domaines: la qualité est meilleure, le rendu plus net, les artefacts absents... en plus Upscayl multiplie par 4 (voire 8 !) d'un coup là où waifu se contente d'un x2 au mieux. Par contre, certaines parties des images peuvent donner lieu à une interprétation un peu artificielle. Mais ne jetons pas le bébé avec l'eau du bain: Upscayl s'en sort vraiment très bien !
Un fil que l'on doit à LutinDiscret sur les interfaces alternatives pour les services divers du ouaibe. J'en fais un résumé ici que je compléterai au fur et à mesure.
TWITTER
alternative: nitter
on remplace le nom de domaine twitter par celui du service. twitter.com/Snowden ➜ nitter.42l.fr/Snowden
En passant, je vous mets le lien vers un petit outil pour convertie en et de Base64.
Bon, yen a plein, hein, en particulier celui de Timo ... J'en ai quand même refait un from scratch pour pouvoir l'utiliser comme une appli online (le front end ci-dessous) ou bien comme une «API» utilisable via un bookmarklet par exemple: ainsi, en sélectionnant du texte puis en lançant le bookmarklet qui va bien, on peut encoder/décoder en un clic...
Bon, j'ai enfin pris le temps de regarder sérieusement nextcloud à la faveur de l'arrêt de la version proposée en demo dans l'académie de Rouen et que mon épouse utilisait beaucoup.
J'en étais resté à mes tentatives d'install qui foiraient sur mon O2switch: une fois à l'époque où il apparaissait dans les applis softaculous du Cpanel, puis une autre quand il avait disparu de là.
J'avais galéré pour à peu près tout, en bon poissard.
Et là...
j'étais obligé de m'y coller vu que j'avais fanfaronné en disant à mon épouse que son «renata» c'était «juste du nextcloud» et que j'allais te me lui résoudre, moi, le problème...
Après quelques déboires avec une install que je passe parce qu'elle serait fastidieuse et hors de propos, je me suis aperçu que mon hébergeur, o2switch, propose toujours ce service, mais à part: il est accessible en un clic depuis l'espace client (et pas le Cpanel): je sens bien l'équipe qui en avait marre de dépanner des bidouilleurs qui avaient planté leur nextcloud en faisant joujou avec depuis le cpanel.
Bref, une fois le service demandé par le biais du lien qui va bien idoine à mon propos, je reçois un mail de confirmation une grosse paire de minutes plus tard. Dans le mail, mes identifiants et le lien vers mon nextcloud...
Les applis
Autre avantage de Nextcloud, ya des applis pour tous les systèmes, je récupère donc celle pour linux et celle d'Android.
On lance, on se connecte, on clique sur autoriser pis ça fonctionne. Une fois qu'on a spécifié un dossier local avec lequel synchroniser le claoude, ça fait le job direct.
J'ai procédé de même sur Android en passant par F-droid, rien à dire à part que c'est über simple. Vraiment.
Nextcloud: l'UI
Rien à redire, même si on a parfois des problèmes pour retrouver où sont les choses, c'est propre. par contre, la pitin de popup pour «nextcloub hub», ça fait biiiieeeennnn chier de la revoir à tous les chargements de page. donc, pour la virer, direction l'icône de votre profil->applications puis désactiver «first run wizard»
Conclusion
Ben, ça fait le job, ça synchronise impec, on peut partager des dossiers temporairement, en écriture ou en lecture seule, ajouter des applis et des users, ya des applis desktop et mobiles...
C'est tellement bien que je ne vois vraiment pas pourquoi je continuerais à bosser sur BoZoN !
Franchement, je suis en train de faire à peu près la même chose de mon côté. Sérieux, ça vaut pas tellement le coup de bosser autant pour faire sans doute moins bien (en particulier du point de vue de la sécurité).
J'aime bien ce genre de trucs: t'as un besoin inhabituel et subit d'un logiciel et t'as pas envie d'installer un truc ? Il existe peut-être un truc en ligne qui fera le job !
La preuve ? Je voulais éditer des fichiers de sauvegarde pour MicroMachines v4 afin que tous mes gamins aient toutes les voitures et circuits dispo... avec hex-works, ça m'a pris une grosse minute...