#20339

Note : optimisation PHP

Mon site est régulièrement sujet à des ralentissements. C’est pas nouveau mais c’est un peu chiant.
Je ne sais toujours pas si ça vient de moi (mon site) ou un autre, car je suis en mutualisé. J’essaie tout de même d’optimiser un peu.

Une des pages les plus vue de mon site, c’est la page du Gravatar local.
Dans les commentaires, plutôt que votre navigateur accède à Gravatar (service externe), il demande à mon serveur d’aller chercher sur Gravatar. Ensuite, le serveur stocke l’image récupérée pour la prochaine fois.

À chaque fois que les commentaires s’affichent, une requête est faite sur le fichier /favatar.php, avec en paramètres le hash de l’image à récupérer.
C’est bien un script PHP qui est lancée à chaque fois. Si le fichier du hash existe sur le serveur, il le read() et l’envoi. Sinon, il le récupère, le sauvegarde et l’envoie.

Je viens de trouver une autre méthode.

Plutôt que de faire une requête sur le fichier /favatar.php, je fais une requête sur l’image directement : /cache/gravatar/hash.png.

Là, si le fichier existe, le serveur l’envoie et ça s’arrête là. Pas de PHP à lancer.

Si le fichier n’existe pas, en revanche, ça devrait envoyer un 404. Sauf que j’utilise un .htaccess pour rediriger sur le /favatar.php et récupérer l’image.

C’est bien mieux : dans la grande majorité des cas, la requêtes est désormais une simple image sur le disque, plus un fichier PHP à lancer, qui va regarder si le fichier existe, qui va le lire, et l’envoyer au navigateur.

J’aurais dû faire ça depuis le début, je sais, je sais, mais on va voir si ça aide.

~
Pour mettre ça en place, faire directement la requête sur /dossier/fichier.png
Dans /dossier/, mettre un .htaccess avec le code suivant :

# If requested resource doesn't exists as a file redirects to the PHP script
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) relative/path/to/script.php?q=$1 [L]

La première ligne est la condition nécessaire à l’application de la seconde. Elle teste « le fichier demandé n’est pas un fichier sur le disque (!-f) ». Si le fichier est absent, il renvoie "true" et exécute la ligne suivante, à savoir une réécriture (pas redirection) vers script.php, avec comme paramètre "q", le $1 qui contient le nom du fichier demandé (on peut y rajouter d’autres paramètres si besoin :

RewriteRule (.*) relative/path/to/script.php?s=search&format=png&q=$1 [L]

[/code]

Ensuite dans script.php, on fait ce qu’on a à faire avec les paramètres (wget sur le fichier, imagemagic pour créer une image, etc., puis on read() le fichier, pour éviter une redirection et une autre requête :

// send file to browser
header('Content-Type: image/png');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($target_file)).' GMT');
header('Content-Length: ' . filesize($target_file));
header('Cache-Control: public, max-age=2628000');
readfile($target_file);
exit;

~

Sinon, en aparté : j’ai modifié le thème pour https://couleur-science.eu/ . Le thème est désormais clair ou sombre en fonction du paramétrage de votre navigateur.

https://lehollandaisvolant.net/?mode=links&id=20210906184412

#20338

Mac Lesggy #jesuisvacciné sur Twitter : "Je vois encore passer des articles sur le foisonnement #éolien : "on peut considérer que la prod. éolienne française est en permanence à 25% de la puissance installée". Eh bien non, exemple ce matin : 5% seulement de production/puissance installée #EnRI #énergie… https://t.co/6fDegjcN2T"

« nya nya nyan les renouvelable c’est pas intermittent »

Ce matin, les éoliennes tournaient à 5 % de leur capacité. Sur 100 éoliennes, 95 étaient à l’arrêt.

Sur une ville de 1000 foyers, 950 étaient dans le noir, le froid, sans eau chaude ni frigo.

Et les 50 restant sont probablement ceux qui payent plus cher leur abonnement pour avoir « l’électricité garanti ». On pari que c’est ce qui va arriver quand ils auront fermé toutes les centrales nucléaires ?

Ah non pardon : ils vont faire pousser des centrales au gaz naturel. Comme si le mot « naturel » produisait du CO2 bio sans OGM et sans gluten et sans effet de serre.

https://twitter.com/MacLesggy/status/1434837069503909888

#20336

Linux trentenaire | Grise Bouille

Bon anniversaire Linux !

Déjà plus de 10 ans que j’utilise ça sur mon ordi personnel comme système principal, donc également merci :-)

https://grisebouille.net/linux-trentenaire/

#20334

France/Suisse/Sécurité IT : Protonmail a communiqué à la police l’adresse IP de militant·es anti-gentrification - Liens en vrac de sebsauvage

Je dirais que c’est la faute du législateur qui autorise les immixtions dans la vie privée de gens pour des prétextes de plus en plus variés, banals et idiots.

Que la Police demande les contacts d’un terroriste avéré, et uniquement sur décision judiciaire, histoire d’arrêter aussi ces contacts (ou au moins aller les interroger) et démanteler une cellule, je ne trouve pas ça abusé. Ils ont toujours eu droit de faire ça.

Ça fait partie de la procédure qui existe depuis toujours : on interroge les proches du coupable ou de la victime pour savoir ce qui s’est passé.

Le problème c’est que la police aujourd’hui demande des accès beaucoup trop larges pour tout et n’importe quoi : le mec a partagé une photo d’un député ? Hop, on demande à Facebook / Apple / Microsoft / Orange / Free / Youporn / Senseo / la banque de France / la mami qui habite en face … ce que cette personne a fait sur les 10 dernières années.

Or, la police et les autorités sont en roue libre depuis quelques temps : quand on voit la délicatesse des flics qui s’apparente à celle d’une horde de piranhas qui n’ont pas mangés depuis 3 mois et à qui on présente un bout de viande, doublé des mêmes méthodes que les terroristes eux-mêmes, ben on se dit que y a un problème là aussi.

Non seulement ils ne demandent plus, ils exigent, sous peine de tout casser (quand t’es prestataire, tu dis pas non : t’as rien fait, t’as pas envie qu’on détruise ce que t’as, surtout quand t’es pas payé pour subir ça), mais en plus ils ne passent plus par la case justice (coucou les polices administratives privées façon Hadopi).

Aussi, les méthodes de communication ont changé. Aujourd’hui, c’est fait à l’écrit sur de longues distances. Avant on se retrouvait dans un endroit discret et on discutait. Or, les écrits restent, et c’est pas juste une question de loi. Les serveurs, proxys, ordinateurs, FAI, box… gardent des caches et des logs un peu partout.

Après c’est très simple : aucun service n’est à l’abri. Si on ne veut pas être pisté par son support de discussion, ben on n’utilise pas de support. C’est probablement le plus simple (et le plus sûr).

https://sebsauvage.net/links/?VR6kQw

#20333

The Word Machine – …in some weird postmodern way…

Hihi, quand ses outils traversent les frontières :D

(Sans surprise, mes sites sont beaucoup plus visités dans les pays francophones qu’ailleurs : France, Belgique, Canada, Suisse, Maroc…) mais parfois des liens sur des blogs anglais ressortent :-D)

Perso j’aime énormément l’outil en question car c’est le seul outil que j’ai qui ressemble un peu à de la machine-learning.
Je donne une énorme liste de mots au script, il calcule statistiques relatifs aux occurrences des lettres et des suites de lettres, et après utilise ces statistiques pour créer des mots.

En fait, il suffirait que j’ajoute une fonction qui permet à chacun de valider les meilleurs mots ainsi inventés pour les ajouter à une seconde liste. Une fois que cette liste devient conséquente, on utilise cette liste là comme liste d’entrée, et voilà ! On a une machine qui invente des mots qui ressemblent à des mots dans une langue donnée, sans avoir jamais connu aucun mot réel de la langue donnée.

Mieux, on pourrait alors donner un mot à la machine et il nous dit quelque chose comme « ce mot est 98 % français », ou au contraire « Non, ce mot n’est que 4 % français ».

Et comme il y a une part d’aléatoire dans tous les mots générés, il serait possible de créer un texte totalement random de cette manière (suffit de lui apprendre à générer des phrases, en plus de produire des mots).

(et on verra dans 400 ans, les chercheurs s’arracher les cheveux comme ils le font aujourd’hui avec le texte de Voynich :-D)

https://iswpw.net/2021/01/02/the-word-machine/