1

Initial commit

This commit is contained in:
2025-03-28 12:57:37 +01:00
commit ed9ddcfdc8
1841 changed files with 42303 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
attribution: Illustration par DALL·E
file: images/OlkjFY.webp

View File

@@ -0,0 +1,2 @@
file: images/Ws6NVj.png
title: Mon blog qui représente un risque critique pour Internet 🤣

View File

@@ -0,0 +1,2 @@
file: images/ZatYAY.png
title: Ah oui, quand même...

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

View File

@@ -0,0 +1,183 @@
---
cover: images/OlkjFY.webp
date: "2024-03-15T07:19:03+00:00"
title: Les joies des gestionnaires de réputation
---
## Contexte
Je lai dit plus tôt dans lannée, je souhaiterai [monétiser un peu mon blog](/interets/informatique/2024/02/14/l-avenir-du-blog/), ne serait que pour payer une fraction de [ce quil me coûte](/a-propos/).
Parmi les options à ma disposition, la plus classique : les liens affiliés.
Un lien affilié est un URL qui contient un `tag`, un identifiant, qui permet au site marchand ciblé de savoir qui lui envoie un potentiel futur client.
Quand vous cliquez sur un de ces liens depuis mon blog, le site marchand sait que vous venez de chez moi, et cest comme ça que je peux percevoir une commission sur une vente éventuelle.
Jaime bien ce principe parce quil offre des avantages qui me sont chers :
- Respect de mes lecteurs : pas de cookie, pas dhistorique de navigation. Rien, à part cet identifiant qui mest propre et qui ne concerne pas mes lecteurs, nest transmis au site marchand ou à une régie. Et, je ne sais rien de ce que vous avez fait ensuite sur le site marchand.
- Simplicité : un `tag` à ajouter au lien “anonyme” dans les cas les plus simples. Autrement, quelques appels API à la régie, et voilà.
- Compatible avec mes choix techniques : pas de javascript requis, pas de cookie à déposer, cest totalement transparent.
## Les avantages des régies
Les régies sont des intermédiaires entre les sites marchands (les annonceurs) et les éditeurs (moi).
Passer par une régie offre un certain nombre davantages :
- Laccès à un nombre significatif dannonceurs, ce qui permet den découvrir de nouveaux auxquels je naurai pas forcément pensé
- La gestion unifiée des liens daffiliation (un même code source de mon côté pour générer des liens pour de nombreux partenaires)
- Les campagnes promotionnelles qui peuvent me donner loccasion de publier des articles à forte valeur ajoutée
Ce dernier point nest pas spécifique aux régies : [Omlet](https://www.omlet.fr/) propose une affiliation directe, ça ne ma pas empêché de publier [un article](/interets/informatique/2024/03/04/mon-poulailler-omlet/) sur leurs produits que jutilise quotidiennement.
Mais, je nai pas publié cet article dans le cadre dune vraie campagne publicitaire organisée par lentreprise.
Cest là que les régies se révèlent intéressantes puisque je suis régulièrement notifié de la disponibilité dune campagne pour lun de mes annonceurs.
## Leurs inconvénients
Le principal inconvénient des régies, cest quelles font appel à des gestionnaires de réputation.
Et, là, on entre en pleine dystopie, mêlant lincompétence, la mauvaise foi, la mauvaise volonté, un impact sur la réputation publique et sur le _business_ en général.
Évidemment, à mon échelle, ça représente une goutte deau dans locéan, mais que je vous conte mon histoire, et vous jugerez de la portée que cela peut avoir pour de “réelles” entreprises.
## Les gestionnaires de réputation
Compte tenu de la quantité de trafic réseau généré par des bots, des sites créés juste pour se faire de largent, des sites pas forcément très légaux, des sites qui diffusent des _malwares_, les gestionnaires de réputation sont un mal nécessaire : ils analysent les sites, et donnent leur feu vert (ou pas), notamment aux régies, pour savoir si un éditeur qui sest inscrit sur leur plateforme est _clean_ ou au contraire, sil représente une _menace pour Internet_.
Le plus souvent, les régies font appel à un agrégateur (qui regroupe les résultats de plusieurs gestionnaires de réputation).
Dès que lun des gestionnaires émet une alerte concernant un site donné, lagrégateur le transmet à la régie, et la régie prend une décision.
## Mon site, une menace pour Internet
### 29 février 2024
Dans loptique dobtenir une affiliation avec [LEGO](https://www.lego.com/fr-fr) (afin de monétiser les pages présentant [ma collection](/collections/lego/jurassic-world/)), je me suis inscrit à la régie [Rakuten](https://rakutenadvertising.com/fr-fr/).
Tout sest bien passé, jai eu un contact avec un véritable humain très sympathique chez Rakuten et chez LEGO, bref, tout va bien.
### 4 mars
Je reçois un email de Rakuten qui a fait leffet dun coup de tonnerre, intitulé : ”**Affiliate Notification - Account Termination**”.
Il ny a eu aucun délais de notification, aucun temps qui maurait permis de trouver une solution à un problème dont jignorais lexistence et la raison.
Dès lors, impossible de faire quoique ce soit sur la plateforme à part les contacter.
Mes liens daffiliation sont inactifs.
Heureusement que je peux facilement (dés)activer ces liens de mon côté pour rétablir les liens dorigine.
Leur email mentionne que je pourrais avoir enfreint leurs règles, détaillées dans [ce PDF](https://go.rakutenadvertising.com/hubfs/Affiliate-Network-Policies.pdf), mais je ny vois absolument rien qui puisse mêtre reproché.
Je contacte Rakuten pour leur demander un peu plus de détails parce que, sincèrement, je ne comprends pas.
### 6 mars
Rakuten me répond quils ont “terminé” mon compte au motif quils ont reçu une notification de site malveillant concernant mon blog.
Ils ont lamabilité de me fournir un rapport, émanant de [Quttera](https://quttera.com), un gestionnaire de réputation dont jignorais lexistence.
![Ws6NVj](images/Ws6NVj.png)
En soi, mon blog, un site statique, pour ainsi dire “minimaliste”, qui représente une “menace critique pour Internet”, cest assez drôle, surtout considérant tout ce que je publie sur la question des menaces pour Internet…
Mais, une fois passé lironie, je mintéresse de plus près au contenu du rapport : après tout, il est censé y avoir au moins un fichier qui pose un problème.
![ZatYAY](images/ZatYAY.png)
Ils me trouvent un “cheval de Troie” javascript dans… ma feuille de style.
Le truc le plus complexe dans ma feuille de style, ce sont les icônes SVG (qui ne sont même pas encodées en base64).
Exemple, licône que jutilise pour les liens externes :
```css
.icon--mi--external-link {
width: 0.5em;
height: 0.5em;
background-color: var(--base-400);
--svg: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M14 5a1 1 0 1 1 0-2h6a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V6.414l-9.293 9.293a1 1 0 0 1-1.414-1.414L17.586 5H14zM3 7a2 2 0 0 1 2-2h5a1 1 0 1 1 0 2H5v12h12v-5a1 1 0 1 1 2 0v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z'/%3E%3C/svg%3E");
}
```
Il sagit évidemment dun faux positif.
Ce sont des choses qui arrivent, mais je suis quand même un peu énervé.
Je contacte Rakuten dans la foulée pour leur expliquer la situation, que cest juste un faux positif, en essayant de leur faire comprendre à quel point cest ridicule.
Suite à cet envoi sur le coup de la frustration, je comprends que ce nest pas eux qui vont résoudre le problème : tant que Quttera ne supprimera pas son avertissement, je ne pourrais pas faire de business avec Rakuten.
Cest logique : ils ont justement des gestionnaires de réputation pour ne pas réactiver des comptes potentiellement réellement malveillants qui viennent avec des yeux doux assurer quils sont clean.
Mon prochain email va donc à Quttera, à qui jexplique calmement — cette fois — que leur algorithme a fait de la merde, et que ça nuit à mon business et à ma réputation sur Internet.
Ils me répondent trois heures plus tard, en sexcusant du tort occasionné et en massurant que le problème est corrigé, et que la page du rapport sera mise à jour dans les heures qui viennent.
### 8 mars
Pas de changement.
Jai attendu 24 heures avant de renvoyer un email à Quttera, qui me dit que je vois un rapport obsolète, et que le vrai rapport se trouve à ladresse suivante : <https://quttera.com/detailed_report/richard-dern.fr>.
Ils ajoutent même que VirusTotal (que je connaissais, contrairement à Quttera) montre aussi que mon site est clean : <https://www.virustotal.com/gui/url/740a3d92e5ff768d4bedca052aedc8f1447d0b6d751480265b17a9ec8880e109>.
Le problème, cest que Rakuten sen bat les steaks de <https://quttera.com/detailed_report/richard-dern.fr> : cest le rapport de <https://quttera.com/detailed_report/www.richard-dern.fr> qui a suscité la fermeture de mon compte (notez le `www`).
Et, à cette date, ce rapport affiche toujours que mon site représente une “menace critique”.
À nouveau, trois heures plus tard, ils me renvoient un email pour me dire que le problème a été corrigé, et que le rapport sera mis à jour dans les heures qui viennent.
### 9 mars
Jai encore attendu 24 heures avant de leur envoyer un nouvel email dans lequel je ne prends plus de pincettes.
> Again, 24hrs later you (falsely) claimed (twice) to have fixed the issue, and 3 days after my initial message, I am still out of business because of you, and even worse, you still propagate the false idea that my website contains malware and you still ruin my online reputation with false assertions.
>
> This situation cannot be tolerated anymore. If, by Monday afternoon, I still see that the report at <https://quttera.com/detailed_report/www.richard-dern.fr> doesnt reflect that my website is 100% clean (which it is), I will do whatever I need to get a compensation for my business and reputation loss.
Je vous le traduis :
> Une fois encore, 24 heures après que vous avez affirmé (faussement et par deux fois) avoir corrigé le problème, et 3 jours après mon message initial, je ne peux toujours pas faire affaire à cause de vous, et encore pire, vous propagez toujours lidée fausse que mon site contient un logiciel malveillant et vous continuez de nuire à ma réputation avec de fausses allégations.
>
> Cette situation ne saurait plus être tolérée. Si, dici lundi après-midi, je vois toujours que le rapport situé à <https://quttera.com/detailed_report/www.richard-dern.fr> ne montre pas que mon site est 100% clean (ce quil est), je ferai ce que jai à faire pour obtenir une compensation pour ma perte de profit et de réputation.
### 10 mars
Le rapport est corrigé dans la nuit.
Quttera me présente ses excuses.
### 11 mars
Rakuten me réactive mon compte et les liens affiliés.
Je suis resté tout le temps en contact avec eux pendant mes échanges avec Quttera pour les informer de la situation.
Une façon pour moi de prouver ma bonne foi et de me protéger en cas de problème.
## Analyse
Bon déjà, ce quil y a de bien avec les Américains, cest quil suffit de menacer un peu pour obtenir un résultat quasi immédiat.
Ensuite, je suis un grain de sable sur Internet. En revanche, jimagine que ça peut arriver à de plus gros poissons qui ont de véritables moyens juridiques et financiers pour les supporter.
Des gens qui se font peut-être plusieurs dizaines de milliers deuros par mois avec leur site, qui se feraient couper les vivres de manière totalement erronée, juste parce quun algorithme a été codé avec le cul.
Ça dénote la paranoïa qui règne actuellement sur Internet (et avec raison), mais aussi que même ceux qui font du “contrôle qualité” peuvent mal le faire.
Une paranoïa dont les premières victimes sont les personnes et sites légitimes.
On a évidemment besoin doutils dalerte, mais on a aussi besoin de temporiser : jaurai pu recevoir une notification de Rakuten me prévenant que si, dici à 24 heures, Quttera me signalait toujours comme étant un site malveillant, ils fermeraient mon compte.
Là, cétait sans sommation.
Même si je comprends que lidée est aussi de protéger les annonceurs, de ne pas les associer avec des éditeurs “malveillants”.
Je me suis un peu renseigné sur le business de Quttera, et je dois dire que jai été assez désagréablement surpris.
Comme tant dautres choses dans le monde professionnel, cest un business fondé sur la peur.
Cest un cas décole : ça fait partie des choses apprises dans les écoles de commerce.
Et, cest connu de tous : la peur fait vendre.
En loccurrence, laccroche de Quttera, cest que si tu as un “logiciel malveillant sur ton site”, ils peuvent le supprimer moyennant 250$.
Ce qui suggère quils puissent intervenir à distance sur les sources de ton site.
La seule façon qui me paraît faisable, cest quils te demandent dinjecter un javascript qui va analyser et autoriser ou refuser du code existant à sexécuter.
Cest la définition-même du malware, sauf que lon te fait payer pour te linjecter.
Le parallèle avec lindustrie pharmaceutique américaine est saisissant.
Et, encore, je ne me serais pas autant intéressé à ce quils font si javais trouvé, quelque part sur leur site, la possibilité de signaler un faux positif.
Mais, non : sils déclarent un site comme étant une menace pour Internet, tu nas, a priori, pas le choix que de payer 250$ pour quils interviennent.
Heureusement quil ma été possible de les contacter directement par email : sans ça, mon compte chez Rakuten serait toujours bloqué, je naurais toujours pas de liens affiliés sur mon site, et ma réputation serait toujours entachée.
Quttera fait partie dune myriade dentreprises qui font de lanalyse et de la prévention de sites malveillants sur Internet.
Et, il est fort peu probable que Rakuten soit leur seul client.
En outre, il peut y avoir des intermédiaires autres qui font appel à Quttera, des gens que je ne connais pas, mais pour qui mon site représente une “menace critique”.
Au final, cest ça le plus important pour moi à lheure actuelle : jai probablement perdu 0 euros en deux semaines tellement je suis petit.
Ma réputation, par contre, a infiniment plus de valeur pour moi, aujourdhui, que la valeur commerciale de mon site.
Et, je trouve intolérable que quelquun, dans mon dos, puisse “dire du mal de moi” sans que je puisse y faire quoique ce soit, sans que je puisse men défendre en amont.
Surtout quand cest à cause dun outil mal foutu, et quil y a de la mauvaise volonté de corriger le problème.
Je conclurai en disant que le cœur du problème vient assurément de lindustrialisation.
Quand tout le monde utilise Wordpress, des Google Tag Manager et autres _snippets_, et quelques librairies javascript connues, en gros tant quon “reste dans les clous”, on na pas trop de soucis à se faire.
Mais, si lon samuse à faire un peu dartisanal, ça paraît louche assez vite en fin de compte.
Il ny a pas de javascript sur mon site, donc il doit forcément se planquer dans une feuille de style et il est forcément malveillant.
Une pierre de plus à ajouter à lédifice du nivellement par le bas ?

View File

@@ -0,0 +1,2 @@
attribution: Illustration par DALL·E
file: images/m9WwAT.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

View File

@@ -0,0 +1,114 @@
---
cover: images/m9WwAT.webp
date: "2024-03-15T13:30:46+00:00"
title: Nouvelle version du blog
---
## From scratch
Je suis parti dune feuille blanche.
Avec la version précédente, jai imité — essayé de transposer — le fonctionnement du générateur de site statique [Hugo](https://gohugo.io/).
Je ne me suis pas forcé à écrire quelque chose de distribuable : le but était justement de faire quelque chose de très personnel (et cest toujours le cas).
Mais même sans cette contraire, le fonctionnement spécifique de ce genre dapplications ne me convient pas.
Je suis un développeur _web_, et imiter Hugo ne faisait que tendre vers une tentative dapplication Frankenstein, à moitié pour la console et à moitié pour le web.
Je me rends compte maintenant à quel point cest lourd et pénible, alors que, grosso-modo, on prend du Markdown en entrée et du HTML en sortie, et je nai même pas besoin de faire [la conversion](https://commonmark.thephpleague.com) à la main…
Donc, je repars de rien, et jaboutis à peu près à six fichiers dans lesquels se trouve lessentiel de mon code.
Jai dû réduire dau moins 75% ma base de code, tout en la rendant plus conforme à ce que jai lhabitude de développer avec [Laravel](https://laravel.com/).
## Avec de laide
Vous nêtes pas sans savoir quen ce moment, jexplore lIntelligence Artificielle Générative, et quen plus, [jai pris un abonnement payant à ChatGPT](/interets/informatique/2024/03/10/j-ai-pris-un-abonnement-a-chatgpt/).
Loccasion de créer un GPT personnalisé, dédié à mon blog.
Jy ai trouvé exactement ce dont javais besoin : linspiration.
Mieux : ça ma rassuré sur certains points que je détaillerai plus loin.
### Pour lesthétique
Comprenez bien que je ne prétends pas avoir réalisé un _beau_ site, par contre, il me correspond _encore un peu plus_ que le précédent.
Et cest en grande partie à DALL·E que je le dois.
Je disais dans [mes réflexions sur Leonardo.ai](/interets/informatique/2024/03/03/reflexions-leonardo-ai/) que lIA pouvait être considérée comme un pont entre les arts, et avec de la patience et une meilleure compréhension de la façon dont tout ça fonctionne, à force dessais et derreurs, jai fini par obtenir de DALL·E un logo qui me convient à la perfection.
Cependant, je ne dois pas créditer que DALL·E pour ce logo, mais aussi mon épouse : cest elle qui a eu lidée dun prompt pour obtenir ce résultat (même si jai fait quelques ajustements par la suite).
En tant que logo rond, je vais pouvoir men servir comme avatar, et il ne dénote pas trop une fois réduit en favicon.
De plus, ça ma permis dessayer une disposition que je navais encore jamais tentée, avec les liens autour du logo, et je suis très satisfait du résultat.
En outre :
- On devrait rapidement voir la référence à _Jurassic Park_ sans pour autant avoir copié honteusement le logo dorigine
- Le _T. rex_ est “réaliste”, cest-à-dire quil a le bon nombre de pattes et de doigts…
- Il a exactement lattitude que je voulais retranscrire : sérieux, concentré, mais jovial malgré tout
- Les couleurs sont exactement celles que je cherchais
- Mes initiales apparaissent correctement ; cest peut-être contre-intuitif, mais tout ce qui est textuel semble assez délicat à produire dans une image
ChatGPT ma aussi aidé pour la sélection de couleurs de lensemble du site, et quelques règles CSS qui sortent un peu de mon champ de compétence.
Je le répète assez souvent : je nai aucun talent pour tout ce qui est graphisme et design, et ChatGPT a été très créatif à ma place.
Là aussi, je suis très satisfait du résultat, même sil y aura probablement des retouches à faire ici ou là et ultérieurement.
Enfin, jai décidé que tous mes articles auront leur propre image den-tête.
Loccasion pour moi dentraîner mon ChatGPT personnalisé, et de mentraîner _moi_ à communiquer avec lui.
### Pour le code
Je suis assez bluffé par les compétences de ChatGPT en ce qui concerne la production de code.
Moyennant quelques informations basiques (”_je développe avec Laravel_”, ce genre de choses), il me produit du code totalement approprié, habituellement juste, bien structuré, documenté (mais il faut le lui préciser) et lisible.
Cétait assez rare que jai besoin de repasser derrière un copier-coller de ce quil produisait.
Je lui ai surtout demandé son avis pour des choses un peu complexes, ou pour lesquelles je me doutais quil existait une façon de faire sans pour autant parvenir à mettre le doigt dessus.
En détaillant suffisamment mes questions, ses solutions savèrent doublement satisfaisantes :
1. elles sont _justes_
2. elles sont _originales_
Grâce à ses réponses, jai appris, par exemple que je pouvais travailler assez facilement avec des colonnes qui stockent des données en JSON dans une base PostgreSQL.
Je savais que je pouvais faire des trucs sympas, mais jignorais que javais cette puissance directement à portée de main avec [Eloquent](https://laravel.com/docs/11.x/queries#json-where-clauses)…
Pour tout dire, je pensais que ChatGPT allait me proposer des solutions basiques, du genre récupérer toutes les pages et tester le JSON pour faire ce dont jai besoin en pur PHP, ce qui est très loin dêtre optimal.
Mais, finalement, la qualité du code proposé est dun niveau bien supérieur à ce que je craignais, et cest tant mieux.
Il y a toutefois quelques grandes limitations qui, pour lheure, me rassurent quelque peu sur le métier de développeur.
Principalement, il nest pas vraiment envisageable de faire les choses en grand.
Redoutable pour refactorer quelques méthodes, voire une classe complète, ChatGPT semble un peu plus dans lembarras quand jessaye de lui demander de refactorer plusieurs classes en même temps, avec lobjectif de limiter les répétitions de code.
Là, il avoue lui-même que cest une opération trop complexe pour lui (alors que mes classes sont tout à fait modestes).
**Il lui manque une capacité à avoir une vue densemble**.
Ça, pour le moment, cela reste lapanage du développeur.
Ouf.
Je note aussi quil ne gère pas bien les négations (”_je ne veux pas de texte dans limage_” va immanquablement produire une image avec du texte…).
Au contraire de Leonardo.ai qui a bien prévu le coup avec ses prompts négatifs, ce qui confirme lintérêt dutiliser plusieurs outils de ce type afin daccomplir des tâches spécifiques.
### Pour la rédaction
Dans le but de faire des liens entre des films et des séries, je rajoute dans le Front Matter de mes articles les listes dacteurs et de personnages (mais aussi des dinosaures, quand applicable…).
Cest incroyablement rébarbatif, parce que ça consiste à faire des copier-coller de la Wikipédia, dabord pour les acteurs, ensuite pour les personnages, etc.
Je pourrais utiliser lAPI de Wikidata et faire un truc à moitié dégueulasse, mais je peux aussi demander à ChatGPT de me lister les acteurs du film (ou les voix du jeu vidéo, ou les rédacteurs dun livre), avec leur personnage, ainsi que les contributeurs tels que les scénaristes, metteurs en scène, etc. le tout formaté en YAML, et il le fait parfaitement bien.
Je ne lai pas encore mis en pratique pour différentes raisons. En revanche, je dispose maintenant de linfrastructure de code et esthétique pour le faire, ça fait donc partie de ma feuille de route.
## Quelques détails
Je ne vais pas tout décrire de la nouvelle version du site.
Sachez simplement que :
- Il ny a toujours pas la moindre ligne de javascript
- Il ny a toujours pas besoin du moindre cookie
- Je ne génère pas la moindre statistique : je ne sais pas combien vous êtes à me lire, ni le temps que vous restez sur le site, ni aucune autre métrique que ce soit
- Je suis toujours aussi respectueux de mes visiteurs quavant : je nai pas vendu mon âme au diable en voulant monétiser ou en intégrant de lIA
- Je reste lauteur de mes articles, ChatGPT ne me vient en aide que pour des détails, comme la liste des acteurs dun film, ou pour vous faire part danecdotes, ou pour générer des images den-tête
- Mon blog ne va pas devenir un ramassis de pubs ou de contenu auto-généré, et ce nest pas seulement pour vous, mais aussi pour ma [réputation](/interets/informatique/2024/03/15/les-joies-des-gestionnaires-de-reputation/)
## Feuille de route
- Améliorer laffichage des collections en permettant de choisir successivement une marque puis une gamme, et en affichant les identifiants des objets collectionnés
- Ajouter des wishlists aux collections, afin didentifier rapidement ce qui me manque
- Diverses améliorations esthétiques que je juge mineures et qui seront faites au fil de leau
## Conclusion
Comme dhabitude : peinture fraîche.
Nhésitez pas à [me faire part de vos commentaires](/contact/) !