Journal la chronique du bot bluesky : rétrospective

Posté par  (site web personnel) . Licence CC By‑SA.
3
16
août
2025

Sommaire

D'abord, merci à ceux qui suivent cette chronique que l'on peut suivre antichronologiquement en remontant les journaux les uns après les autres.

Ce journal me plaît à écrire, car écrit sur le vif il change de la révision mémorielle propre à l'écriture de livres. Ce journal est autant un journal sur le code qu'une expérience littéraire à écrire sur le code (voir le livre loser du libre).

Le présent journal, un peu plus à froid va traiter les sujets suivants :

  • le code : exposé clair de ce qu'il fait, comment il le fait et pourquoi ;
  • le codeur : mes malaises et questionnement sur le code ;
  • linuxfr comme plateforme d'édition de contenu par épisode.

le code

Déjà, en relisant la génèse du bot présente ici on peut dire que contrairement à yahi qui se voulait du code propre comme on en fait pas en entreprise ce code est un chancriciel qui a grossi comme une tumeur dont je ne suis pas fier, mais aussi que les interrogations éthiques que j'avais au premier jour sont toujours présentes et je vais les développer.

En bref : LE CODE EST MOCHE, et avant d'écrire la doc je profite de ce journal pour tenter d'interagir avec des humains (vous) pour voir quoi y développer.

Origine et motivation

Je m'aperçois que c'est dur de séparer l'auteur du code : typiquement j'ai bricolé ce code car dans les limbes du chômage non productif j'avais besoin d'un quick hack pour me rassurer sur ma capacité à faire. N'importe quoi.

Un peu, je l'admets, car les limbes du chômages étant aussi celles de l'anonymat pour me faire un peu de gloire (pas ici, on est entre pairs, mais sur le vaste nain ternet).

Je ne sais pas pourquoi, j'étais sur bluesky, je me faisais chier et j'ai vu qu'il y avait un protocole, et je me suis demandé ce que l'on pouvait faire rapidement.

Un truc qui me manquait, c'était … un peu la TL (chronologie en fr_fr, Timeline en fr_paris) à la twitter : un fil de nouvelles sélectionnées qui montre ce qui « agite » le réseau.

Comment ça marche ? (redite)

Je me branche sur le firehose (fil continu d'évènement bluesky fr_fr) principal, je sélectionne les posts en français uniquement (et je vérifie par détection que c'est du français ce qui vire pas mal de spam), et je regarde ceux qui ont plus de succès en fonction d'une métrique arbitraire en cumulant appréciation, citation, renvoie et réponses. Il diverge de l'algorithme initial et de son intention (j'y reviendrai).

Pourquoi je le détaille et insiste ?

Car je suis un apprenti sorcier et c'est le cœur de l'algorithme. Je suis comme tout le monde, j'ai eu aimé la TL twitter, et je l'ai eu détesté soupçonnant quelqu'algorithme secret favorisant la baston. J'exige que les algos de réseaux sociaux soient ouverts et explicités en terme humainement clair pour que l'on puisse les comprendre.

Mais était-ce l'algorithme ou la tendance naturelle des humains à aller s'affronter sur les sujets qui ont du succès ? Avec ce robot, qui est un expérience sociale, je suis en train de me bâtir un corpus d'expérience personnelle qui me permettra égoïstement de répondre à la question. Est-ce l'algo ou l'humain qui est le problème ?

Le bot et moi avons toujours eu une relation ambivalente.

La crise du spam : les origines

Comme je n'ai aucune incitation à démarrer le PC familial, cramer mon électricité pour faire tourner mon bot, le bot a eût été éteint suite à la migration des comptes de pOrn (onlyfans et mym) vers bluesky suite à un changement de modération sur X (anciennement twitter).

J'ai eu quelques difficultés à faire un antispam qui me satisfait toujours pas mais … qui marche.

Il est très limité, et ne correspond qu'à une mesure temporaire face à une parmi n menaces de manipulation d'algorithme.

N'étant pas un spécialiste des réseaux sociaux, je maintiens que le bot peut être coupé à n'importe quel instant si je me retrouve face à une manipulation d'algorithme flagrante, soit temporairement le temps que je trouve une solution, soit définitivement si j'ai atteint ma limite d'incompétence.

Lutte actuelle contre le spam dite en terme claire

Mon algo évoqué dans un journal précédent de cosinus similarité, soyons clair est ineffectif.

Déjà, rappelons que la manipulation d'algorithme actuelle est à 100% en lien avec le porn. C'est du spam de porn. J'appelle ça du sporn.

La majeure partie du boulot est faite par les modérateurs bluesky qui étiquettent les images avec le label porn sur signalement. Or … mon algorithme a été modifié pour faire la part belle aux posts déjà fameux ce qui laisse suffisamment de temps à l'interaction avec des humains pour que les contenus soient signalés. Lol.

Il y a autant de fourberie que de technique dans cette méthode.

Ensuite, je récupère l'auteur du porn et je le blacklist ad vitam eternam.

Je suis pas plus bête que d'autres qui ont déjà trouvé par la bande comment contourner la mesure en bypassant (court circuitant) le cosinus similarité et l'étiquettage hard porn.

le code est à chier

Je l'ai dit, je me répète, mais je déteste publier du code dont je suis pas content, de l'autre coté, ma foi, je suis devenu accroc à ce bot qui rompt la monotonie.

Parfois, il faut distinguer le code de son utilité :)

Mais, voyez vous j'ai une métaphore militaire pour expliquer comment je compte m'en sortir (ou pas) : il y a le tactique, l'opérationnel et le stratégique.

Le tactique c'est le niveau micro, le bug, la fonction et l'autonomie qu'on lui donne.

L'opérationnel, c'est comment on coordonne les morceaux de code, les structures de données, l'architecture.

Et enfin le stratégique c'est la grande image et se poser des questions aussi connes que : dois je encore mettre des efforts dans ce code, faut il arrêter le bot ?

Et tout ça, c'est du bullshit (billevesées), car tout se répond en des échos déformés.

Les trucs qui coincent (ou pas)

De l'intérêt de la mesure.

Prenez ce graph graph

Il nous apprends des choses de par une vision « tactique » (terrain) qui peuvent éclairer la stratégie :

  • je suis parano ;
  • j'ai merdé.

Je suis parano

L'activité de spam qui suit l'activité humaine en spectre (auto corrélation) laisse à penser que nos spammeurs ne sont pas des bots, mais des humains. J'ai tapé bluesky onlyfans mym et effectivement, j'y ai vu des incitations pour promouvoir les canaux payants à avoir une activité humaine de démarchage sur les réseaux.

Néanmoins, il y a des bots d'amplifications qui semblent réagir sur certains stimuli pour amplifier les succès.

j'ai merdé

J'ai merdé en oubliant de lever le nez du guidon sur des petits détails (tactique) qui cumulés sont des erreurs stratégiques : j'ai manqué d'empathie.

Mais néanmoins, revenons à ce graph car il est instructif.

De combien de blocage suffit-il pour être blacklisté de la francosphère ?

Si j'en crois les sites de listage des blocages bluesky, mon bot est faf, qui trolle.

Ça lui vaut 654 blocages (à mettre en regard des 123 abonnés).

Ça représente une volumétrie de 20 à 33% du volume.

On appellera francosphère les comptes actifs qui postent … on en déduit, LOL, que les gens postant en français sur bluesky actifs constituent une population dont l'ordre de grandeur est entre 3000 et 2000 utilisateurs.

Si on applique la règle d'IRC : 90% des utilisateurs sont des lurkeurs (passifs) alors on estimera bluesky francophone à genre 20-30K utilisateurs.

Reste que ça fait mal d'être autant bloqué et qu'un peu d'auto-critique est nécessaire :) (mais pas trop).

Mettre troll dans le nom d'un bot n'est pas une idée fantastique !

Ce qui me semblait drôle et innocent comme blague qui illustrait mon propre questionnement sur le bot s'est révélé pour beaucoup être un repoussoir.

Faire du community management (causer aux humains)

Je l'avais déjà évoqué dans yahi, j'ai une phobie à interagir.

Je pense que n'avoir pas interagit avec les humains qui interagissait avec le bot a été une erreur.

Un bot ce n'est pas apparemment un outil de push (pour pousser).

Quand des humains se cassent les pieds à interagir, je devrais réaliser qu'ils sont comme moi :

  • ils ont des doutes sur le coté déstabilisant de l'algo et aimerait bien être rassurés ;
  • ils sont peut être introvertis

Je pense que si le bot était à refaire, je ferais plus attention aux retours humains.

Republier les petits comptes ou pas ?

Initialement, je voulais faire un algorithme qui évite de mettre de l'huile sur le feu et aussi qui rendent les plus connus plus connus encore en rajoutant du hasard, de la température … en republiant des petits comptes.

Mais, les gens les plus rétifs à être republiés sont justement les petits comptes qui n'ont pas forcément envie d'une publicité non désirée. En plus en publiant tôt, je me coupe de l'étiquetage porn de la modération BS.

J'ai sacrément manqué d'empathie en ne répondant pas à ces petits comptes dès le début, considérant qu'ayant déjà tout dit dans le profil et mis un lien vers le code source pour que les gens voient que l'algo était aussi pur et transparent que mes intentions.

Sauf, que les gens vont pas forcément se démerder à parcourir un github au README mal branlé qui prend le sujet sur le ton de la blague un peu potache, peu didactique et un brin hautain.

Aes mea culpa.

Il faut vraiment que je fasse des efforts à la fois sur les interactions, la doc github et le rédactionnel du profil.

code en couplage

Ça c'est de la technique. À cause de considération technique, j'ai des variables globales partout et du couplage. C'est un truc que je déteste, mais à cause de choix techniques que j'ai fait et de contraintes, je suis bien embêté pour le résoudre.

Une complexité inutile? ou pas qui se justifiait était le client en websocket en python pour faire l'interface d'étiquetage HAM/SPAM qui m'a permis pendant quelques jours d'être le turc mécanique planqué dans le bot pendant que je me faisais ma base d'apprentissage dont on remarquera qu'elle sert grosso modo à rien (le cosinus similarité étant quasi pas utile).

À un moment, la question de faire un bon gros rm des familles sur du code pour le rendre meilleur se pose.

De l'autre coté, je fais ce code aussi pour pas rester accrocher à mes acquis et développer de nouvelles habiletés dans de nouveaux sujets, ce code me sert aussi à rester à jour en techno que je n'emploie pas souvent.

Le futur ?

Pour l'instant, j'écris cette rétrospective pour m'aider à bien voir comment je vais documenter ; le code est in-maintenable, et j'aime bien écrire de la doc pour clarifier mon esprit.

Ensuite, la question pour éviter le blocage se pose de repartir from scratch et de créer un nouveau bot vierge de tout blocage pour avoir PLUS DE SUCCÈS devenir connu et embauchable par je ne sais quelle boîte qui voudrait faire du business sur des savoirs inutiles :) ou apprécierait le bot (pour truander l'algo, j'imagine). Mais sachez que je vendrais cher ma probité de codeur libre : ~2400€/mois prix plancher. Mais avant d'imaginer le faire, j'ai compris qu'il fallait que je nettoie tout le bordel (nom du bot, du github, doc, se préparer à interagir ….) bref, c'est des efforts que je ne suis pas certains de vouloir faire :)

linuxfr une plateforme d'édition par épisode de contenu littéraire libre

J'aime bien cette expérience.

Avoir des journaux me permet, et permet peut être à d'autres d'avoir une vision plus introspective du code, non comme un truc « utile », mais « organique ».

Je trouve ça cool de pouvoir donner au développement une dimension humaine, d'étaler les grand huits émotionnels qui accompagnent le développement. Le code n'est pas (toujours) une activité froide, réfléchie, planifiée.

Parfois, c'est tortueux, bordélique mais ça marche (temporairement).

Le cheminement émotionnel me paraît aussi important que le cheminement intellectuel et présenter le code comme une fonction d'un chemin poursuivi et non d'un état, rappeler n'est pas une fonction logique, mais un œuvre originale de l'esprit avec toutes les turpitudes que ça accompagne.

Et c'est parce que ce code a une histoire ancrée dans mes propres doutes sur les algos de réseaux sociaux et comment ça nous modifie parfois en mal que je sais que je n'hésiterais pas à tirer la prise si ça commence à merder.

D'ici là, car il n'y a pas de fumée sans feu, il va falloir que je réfléchisse à des manières originales de « mesurer » son impact, (si tant est qu'avec 123 abos contre 654 bloqueurs, LOL, j'en ai).

Et ce qui importe n'est pas l'état « mort » ou « vivant » du bot, mais le chemin que je prends et comment il me change dans mes pratiques de code, me rappelant que contrairement à ce que pensent les recruteurs, je ne suis pas un vieux qui n'a plus d'avenir car il n'évolue plus mais bien un être vivant qui évolue encore et n'a pas cessé d'apprendre : ça détend face à une image sociale renvoyée négative de l'âge de se confronter à une pratique qui apporte son « petit succès » et rappelle que dans une communauté ce qui importe n'est pas sa gloire, mais ce qu'on apporte à l'autre (en l'occurence le petit succès du bot et de ses chroniques qui est faible, mais pas nul).

Et, comme ma solution pour écrire des livres se base sur markdown et que linuxfr me permet de faire des exports propres de ces chroniques, je me disais que ce serait drôle de l'intégrer à « loser du libre », et peut être ajouter d'autres expériences partagées sous formes de feuilletons.

Déso, pas déso, je vois les autres journaux avec du succès mérités, et perso, même si mon contenu n'est de la même qualité (ni sur le même sujet), je trouve vraiment du plaisir à partager ici mes aventures et voir qu'il y a du retour. C'est plus fun que faire des livres :)

  • # .

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    le code est à chier […] une œuvre originale de l'esprit

    Donc c'est de l'art ?

    Adhérer à l'April, ça vous tente ?

    • [^] # Re: .

      Posté par  (site web personnel) . Évalué à 1 (+0/-0).

      le code est à chier […] une œuvre originale de l'esprit

      Donc c'est de l'art ?

      Évidemment.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.