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.
Certaines adresses peuvent être bloquées par les DNS, deux solutions simples s'offrent à vous: changer les DNS ou alors installer opera et utilser le VPN intégré.
Et voilà, au détour d'une page de partage, pas encore bien réveillé, je découvre une extension qui permet de lier automatiquement les personnalités politiques avec les casseroles que ces dernières se trimballent... Superbe ! Et en plus, elle transforme Gérald Darmanin en Gégé darmanin, je suis fan.
Merci ;-)
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();