225 Followers
179 Following
3.9K Posts

Engineer in industrial cybersecurity by day. Interests include Unix, security, cryptography. I know enough about sand to not let it do the thinking for me.

Non-technical interests are climbing, watchmaking, records, beer, and whisky. Oh, and MTG.

Will toot terrible puns in either English or French.

Trans rights are human rights. Fascists can rot in hell.

recursion()https://infosec.exchange/@karl

Wrong judgment call for what, exactly? For "how much can we get away with?" 😑

https://www.theregister.com/2026/03/30/github_copilot_ads_pull_requests

GitHub backs down, kills Copilot pull-request ads after backlash

Updated: Letting Copilot alter others' PRs was the wrong judgment call, says product manager

The Register

Photographer Frank Relle revels in Louisiana’s otherworldly swampland, which he's been captivated with since childhood.

https://www.thisiscolossal.com/2026/03/frank-relle-until-the-water-bayou-louisiana-swamps-photographs/

#photography #nature

Writing manuals is hard.
J'ai écrit des verbes, et des mots autour. https://tut-tuuut.github.io/2026/03/27/des-verbes.html
Je ne sais pas vraiment quoi en penser. J'ai hésité à publier.
Des verbes

Je suis dĂ©veloppeuse web depuis une grosse quinzaine d’annĂ©es. Les IA gĂ©nĂ©ratives sont en train de me dĂ©goĂ»ter de mon mĂ©tier. Je dĂ©teste avoir le ventre qui se tord et la voix qui se brise quand j’essaie d’expliquer Ă  quel point je les dĂ©teste. Alors j’écris, les yeux brillants. Je dĂ©teste l’idĂ©e d’ĂȘtre dans cette industrie qui, globalement, continue d’utiliser ces outils. Chaque problĂšme qu’ils posent, pris sĂ©parĂ©ment, suffit Ă  mes yeux pour s’en passer, et pourtant mes pairs continuent de les produire, de les dĂ©fendre, de les utiliser. J’en ai marre de ne plus pouvoir faire trois pas dans le monde de la tech sans croiser un gars qui m’explique que tous les problĂšmes de l’IA sont causĂ©s par les utilisateurs qui ne savent pas s’en servir correctement. Je suis dĂ©goĂ»tĂ©e. C’est assez nouveau, en fait. Pourtant, je suis une femme qui a Ă©tudiĂ© en Ă©cole d’ingĂ©nieurs et travaillĂ© dans diverses boĂźtes d’informatique pendant seize ans : des dĂ©goĂ»tants, j’en ai cĂŽtoyĂ©s. Des machos, des violents, des alcoolisĂ©s, des vieux et des jeunes, avec et sans cravate. Curieux, en fait, que je n’aie pas Ă©tĂ© dĂ©goĂ»tĂ©e plus tĂŽt, par ces dĂ©goĂ»tants tellement mieux payĂ©s que moi, comme tant d’autres femmes de la tech avant moi. Mais les IA gĂ©nĂ©ratives, c’est diffĂ©rent. Elles dĂ©truisent tout. L’environnement. L’humanitĂ©. Et, c’est lĂ  que ça devient personnel, elles dĂ©truisent trĂšs prĂ©cisĂ©ment ce que j’aime dans mon mĂ©tier pour mieux me noyer dans le reste. Personnellement je refuse de me servir des IA gĂ©nĂ©ratives ; je mesure la chance d’ĂȘtre mon propre employeur et d’avoir la libertĂ© de refuser. Tant d’autres ont expliquĂ© ce qui ne va pas avec les IA gĂ©nĂ©ratives. Je ne ferais que rĂ©pĂ©ter. Je vais essayer de me concentrer ici sur ce qui m’a fait aimer ce mĂ©tier. De ce mĂ©tier, et dans l’absolu, j’aime principalement trois choses : crĂ©er, apprendre et transmettre. Le mĂ©tier de dev a ceci de sympathique — en tout cas il avait ceci de sympathique avant 2022 — qu’il permet de varier les plaisirs en permanence avec des petites combinaisons : apprendre en crĂ©ant, crĂ©er pour transmettre, et apprendre en transmettant. CrĂ©er Tout le monde n’est pas de mon avis, mais je trouve que le dĂ©veloppement logiciel est un mĂ©tier crĂ©atif. Quand je conçois et code dans de bonnes conditions, je me sens comme quand je dessine. J’aime cette partie mĂ©ditative oĂč je rĂ©flĂ©chis tranquillement devant mon carnet, oĂč au clavier les pensĂ©es s’enchaĂźnent au bout de mes doigts pour progressivement donner forme Ă  des interfaces et des algorithmes. J’aime pouvoir dire “ah je suis contente d’avoir eu cette idĂ©e pour cet Ă©cran/cet algorithme”. J’aime pouvoir crĂ©er en maniant le CSS, le SQL, et Python entre les deux. Je peux crĂ©er des objets numĂ©riques trĂšs sĂ©rieux et utiles, les concevoir de façon trĂšs robuste et me faire payer pour ça, mais j’ai aussi le champ libre pour crĂ©er des blagues et des fantaisies poĂ©tiques interactives. Donc j’aime Ă  la fois concevoir et Ă©crire. J’entends qu’on n’aime pas Ă©crire du code, bien que ça m’échappe un peu. Ces gens-lĂ  deviennent paraĂźt-il architectes. Franchement ça ne m’a jamais tentĂ©e. Je trouve ça un peu bizarre de vouloir exercer dans le domaine de l’ingĂ©nierie logicielle alors qu’on n’aime pas coder. C’est comme un illustrateur qui n’aimerait pas dessiner. La conception et l’écriture, ce n’est pas une Ă©tape que j’ai envie de dĂ©lĂ©guer, non seulement par goĂ»t mais aussi par pragmatisme. Peut-ĂȘtre que c’est la raison la plus personnelle de mon rejet des IA gĂ©nĂ©ratives, je ne sais pas Ă  quel point c’est vrai pour d’autres. Maintenir J’ai une mĂ©moire bizarre qui me rend efficace pour maintenir du code que je comprends ; et je le comprends d’autant mieux que j’ai eu un accĂšs direct Ă  la personne qui l’a Ă©crit. Mes ex-collĂšgues de TEA se souviendront peut-ĂȘtre de mon premier jour de boĂźte, oĂč j’ai rĂ©solu en 10 minutes un bug qui les occupait depuis plusieurs jours. Certains emails de confirmation d’achat n’étaient pas envoyĂ©s par l’expĂ©diteur attendu. Ce problĂšme avait Ă©tĂ© causĂ© par mes anciens collĂšgues de SSII dont je savais qu’ils aimaient bien utiliser le mot-clĂ© static dans leurs classes PHP, parce que le directeur technique de l’époque avait dit que c’était plus performant. Et toc, j’ai supprimĂ© le mot-clĂ© static fautif pour que la propriĂ©tĂ© redevienne propre aux instances, et les mails se sont soudain retrouvĂ©s envoyĂ©s par le bon expĂ©diteur. (Pourquoi me souviens-je de cet Ă©pisode en 2026 alors qu’il date de 2013 ? Note de service pour mon cerveau : j’aimerais mieux me souvenir du numĂ©ro de tĂ©lĂ©phone du barbu mignon qu’on croise tous les jours. Tu sais, celui qu’on a Ă©pousĂ© en 2012. Mais passons.) Partant de lĂ , du fait que je comprends le code d’autant mieux que je comprends son autrice, autant dire que je suis redoutable, et j’assume totalement l’italique, pour maintenir du code que j’ai Ă©crit moi-mĂȘme. Car en effet, je dispose d’un accĂšs direct et permanent Ă  moi-mĂȘme. En partant d’une ligne de log, d’une demi-capture d’écran ou d’un message de tchat, Ă©ventuellement en posant une ou deux questions de contexte, je peux comprendre en quelques secondes d’oĂč vient le bug et ressembler Ă  une sorte de magicienne du code auprĂšs de mes client·es. Alors qu’en fait ce qui m’aide, c’est surtout de connaĂźtre la personne qui a Ă©crit le code. ConnaĂźtre Remarquez, souvent ça m’aide aussi de connaĂźtre la personne qui utilise mon code. Par exemple chez GalactĂ©e, pour qui j’ai codĂ© un outil de suivi d’activitĂ© de bĂ©nĂ©volat (nombre et durĂ©e des appels de soutien Ă  l’allaitement), j’ai pu identifier un bug assez spectaculaire essentiellement car je connaissais les habitudes de Charlotte, l’unique camarade qui le rencontrait. Elle Ă©tait trĂšs active — et elle l’est toujours, pluie de cƓurs multicolores sur elle qui aide tellement de mĂšres en galĂšre avec leur allaitement — en permanence tĂ©lĂ©phonique. Donc elle avait beaucoup de statistiques Ă  saisir. Qu’elle a voulu saisir toutes d’un coup Ă  la fin de l’annĂ©e pour prĂ©parer l’AG. Moi j’avais gentiment mis sur la page d’accueil des animatrices un formulaire de saisie rapide des derniers crĂ©neaux de perm oĂč les statistiques manquaient
 Sauf que Charlotte, elle en avait tellement que son formulaire contenait plus de champs que la config max_input_vars. Quand j’ai dĂ©couvert, dans les logs, l’existence de la limite, j’ai rapidement compris le problĂšme : j’ai pu indiquer Ă  Charlotte un chemin dĂ©tournĂ© pour saisir ses donnĂ©es pendant que je replongeais au bon endroit dans le code pour limiter le nombre de champs affichĂ©s. Ce bug est restĂ© dans mes archives mentales comme “le bug Charlotte”. J’y repense avec tendresse Ă  chaque fois que je rencontre un formulaire qui contient trop de champs au goĂ»t du serveur. J’ai des exemples de bugs dans d’autres langages (CSS, Python, SQL) que je n’aurais pas pu rĂ©soudre aussi rapidement — voire pas pu rĂ©soudre du tout, peut-ĂȘtre — si je n’avais pas cette mĂ©moire des chemins mentaux pris pour la conception et l’écriture du code. Lire Alors oui, parfois on travaille avec du code que l’on n’a pas Ă©crit, et c’est bien. Souvent, on travaille sur du code et on n’a pas la possibilitĂ© de discuter avec son autrice car elle est partie vers d’autres aventures, et c’est super car on ne veut pas enchaĂźner les gens Ă  leur ordi. Donc souvent, je me retrouve Ă  relire le code de quelqu’un d’autre. En fait, j’aime bien. Parfois, ça se lit comme un roman. Je peux retracer Ă  partir du code le raisonnement de l’autre, parfois pour savoir quelle Ă©tape du raisonnement a failli et le corriger a posteriori. Je constate aprĂšs avoir lu du code pendant des annĂ©es que chaque dev apporte sa personnalitĂ© Ă  son code. Les annotations git font d’ailleurs partie des Ă©lĂ©ments que je regarde maintenant quand j’arrive sur une nouvelle base de code, car l’autrice et la date sont des infos trĂšs intĂ©ressantes. LĂ  je vois que c’est Bidule, dont je sais qu’elle Ă©tait plutĂŽt junior et peu accompagnĂ©e lors de l’écriture du code, donc je m’attends Ă  des petits soucis de perf assez rapides Ă  rĂ©gler. LĂ  je vois que c’est Truc, qui fait du code un peu perchĂ© mais souvent trĂšs malin, donc je vais probablement piquer des idĂ©es. LĂ  c’est Machin qui utilise des noms de variables un peu trop courts Ă  mon goĂ»t, je vais prendre un peu de temps pour comprendre et renommer tout ça afin de faciliter la prochaine relecture. LĂ  je vois que c’est
 moi ? Ah oui, je ne connaissais pas encore le module chose en 2024, je vais raccourcir ce petit bout de fonction. Pour revenir Ă  ce que je dĂ©teste chez les IA gĂ©nĂ©ratives : elles dĂ©truisent ce lien Ă  l’humain que je perçois dans le code, cette base de raisonnement qui n’existe soudain plus du tout. Je n’ai plus d’autrice pour m’expliquer, je n’ai plus personne Ă  comprendre. J’ai constatĂ© vraiment douloureusement que le code gĂ©nĂ©rĂ© ne se lit pas du tout de la mĂȘme façon que du code Ă©crit. Il ne se “dĂ©ploie” pas dans mon espace mental d’une façon que j’arrive Ă  exploiter. LĂ  oĂč j’étais efficace, voire redoutable, depuis des annĂ©es, je me retrouvais Ă  patauger dans des bouts de code sans cohĂ©rence et Ă  penser que c’était moi le problĂšme. J’ai besoin de pouvoir saisir l’humain en relisant le code pour, moi, fonctionner. Donc mĂȘme si moi je reste comme une vieille Ă  Ă©crire mon code moi-mĂȘme, je vais souffrir en relisant le code que mes pairs ont gĂ©nĂ©rĂ©. Cela ne rend pas trĂšs attirante la perspective de rester encore 25 ans dans le mĂ©tier. Apprendre Le dĂ©veloppement logiciel, c’est aussi un mĂ©tier de la connaissance oĂč on ne s’arrĂȘte jamais d’apprendre. Ça devrait ĂȘtre le mĂ©tier parfait pour moi qui ai Ă©crit, ado, ce qui est restĂ© mon dicton prĂ©fĂ©rĂ© : « on commence Ă  vieillir quand on finit d’apprendre Â». Alors, pardonnez-moi le terme, qu’est-ce qui a merdĂ© ? Pourquoi en suis-je arrivĂ©e Ă  ce point d’amertume ? Je ne sais pas comment bien vous faire comprendre qu’à mes yeux, l’apprentissage continuel est une composante fondamentale du mĂ©tier. On apprend en faisant. On fait Ă  partir de ce que l’on a appris. Les dev les plus prometteuses et prometteurs que j’ai croisé·es n’étaient pas celles et ceux qui savaient le plus de choses, mais celles qui savaient le mieux apprendre, ceux qui avaient l’esprit le plus ouvert. Je retiens trĂšs bien les informations qui me sont livrĂ©es avec un morceau de contexte. Notamment, je me souviens des gens et des circonstances et ma mĂ©moire code ça en dur pour de longues annĂ©es. Mon ex m’a parlĂ© des masques de sous-rĂ©seau, au dĂ©but du siĂšcle. Mon tendre Ă©poux m’a appris une foule de choses allant de la tarte au citron Ă  Excel. (C’est plutĂŽt pour la tarte au citron que je l’ai Ă©pousĂ©, pour info.) En Python, Florian m’a permis de comprendre les comprĂ©hensions, Anthony m’a montrĂ© all() et any() et m’a appris Ă  aimer ce langage, tout ça pendant un mois de dĂ©cembre dĂ©sƓuvrĂ©. Jean-Michel a Ă©tĂ© le tas sur lequel j’ai appris Django quand je suis arrivĂ©e sur son projet la bouche en cƓur avec surtout de l’expĂ©rience en PHP. (Pardon JM, je ne voulais pas te traiter de tas, c’était juste pour jouer avec l’expression
) Carmen nous a parlĂ© de parametrize(), ma fonctionnalitĂ© prĂ©fĂ©rĂ©e de pytest, lors d’un meetup de meufs. RaphaĂ«l G. est toujours ma rĂ©fĂ©rence pour le CSS et l’humour alsacien grĂące Ă  ses confĂ©rences incroyables. En accessibilitĂ©, je peux citer plein de gens rencontrĂ©s Ă  Paris Web. Ce client juriste qui passait par lĂ  m’a appris involontairement, Ă  la faveur d’une mise en prod un surlendemain de vaccin, l’existence des enregistrements DNS de type AAA. Et longtemps aprĂšs que les brumes vaccinales se sont dissipĂ©es, Arthur m’a indiquĂ© qu’en fait c’est AAAA (purĂ©e celui-lĂ  je ne l’oublierai pas #lahonte). (Pourquoi me souvenir de tous ces dĂ©tails et toujours pas du numĂ©ro de tĂ©lĂ©phone de mon mari ? Vraiment
) Comment me souviendrais-je de tout cela si tout ce que j’apprenais se trouvait dans le mĂȘme contexte ? Transmettre L’exercice du mĂ©tier pratiquĂ© dans des conditions idĂ©ales favorise la transmission presque constante des connaissances. Au quotidien, une heure de pair programming c’est une quantitĂ© surprenante de petites et grandes informations qui sont Ă©changĂ©es dans les deux sens ; on parle du code qu’on Ă©crit, mais aussi de nos outils. Une discussion autour d’une pull request c’est l’occasion d’amĂ©liorer le code produit mais aussi de prĂ©ciser ce que l’on sait sur la CI, sur l’installation des dĂ©pendances, etc. Un meetup, c’est l’occasion d’en apprendre davantage sur un sujet technique, et surtout sur l’état du marchĂ© local de l’emploi des dev. Une confĂ©rence, pareil mais Ă  une Ă©chelle nationale ou internationale. Un shitpost sur Mastodon ou feu Twitter, c’est l’occasion de prendre des notes sur les habitudes des autres, sur un outil Ă  tester le lendemain, une confĂ©rence Ă  visiter. Petit Ă  petit, au fil des mois et des annĂ©es, j’ai construit ma compĂ©tence comme une somme de petites choses que je sais faire plus ou moins par hasard car j’ai rencontrĂ© un ensemble de belles personnes qui m’ont marquĂ©e et transmis un peu de leur savoir. Pour faire une rĂ©fĂ©rence un peu facile : ce mĂ©tier, c’est surtout des rencontres. La technique je trouve ça assez secondaire. Travailler uniquement avec l’IA gĂ©nĂ©rative prive de ces rencontres toutes et tous les dev qui commencent. Tout ce que l’on transmet, c’est encore plus de donnĂ©es Ă  la machine. Elle ne vous le rendra pas. Conclure Je suis inquiĂšte de constater que je ne me sens pas beaucoup mieux aprĂšs avoir Ă©crit plus de 2200 mots. Je rage de savoir que mon travail va ĂȘtre avalĂ© par des bots et recrachĂ© au hasard sous forme de soupe sans Ăąme. Je me demande si une rĂąlerie supplĂ©mentaire sur l’IA va changer quelque chose ; je crains que non. Je crains aussi un peu pour mon employabilitĂ©, Ă  affirmer publiquement que je refuse l’IA gĂ©nĂ©rative. En rĂ©sumĂ© : ça ne va pas fort. Je ne suis pas trĂšs sĂ»re de vouloir rester dĂ©veloppeuse dans ces conditions. En 2026 j’ai pris la rĂ©solution de regarder d’autres mĂ©tiers. De loin, pour l’instant. Juste pour rĂ©flĂ©chir. Pour savoir dans quelle direction accĂ©lĂ©rer quand je serai en Ăąge de faire ma crise de la quarantaine. Je m’apprĂȘte Ă  suivre une formation de prise de parole au micro. J’envisage d’aller assister Ă  des oraux de concours de l’enseignement. Et surtout, j’ai rouvert mon dossier de reconversion en sage-femme. Le mĂ©tier me semble encore plus intĂ©ressant qu’en 2018. Mes quelques annĂ©es de plus me donnent encore plus de raisons de vouloir l’exercer. J’aimerais vous assurer que je m’arrĂȘterai en chemin si la bulle Ă©clate enfin, mais je crois que c’est trop tard.

TĂ»tie’s blog

if you're using AI regularly to generate text/presentations that you intend to use persuasively i don't think i can trust a single thing you say. Where does the AI end and the human begin?

I think this is why im so against AI generated commit messages especially if the code was written by a human, you wrote the code so you should be able to demonstrate that you understand what the change does and why.

If you're deferring that to an AI and you made a subtle logic error that it decides to justify for you suddenly we have obfuscated our own fucking zero days. Good luck finding the bug if the commit message describes the error as if it was intentional.

For general text, if you start with the conclusion and let the AI write the justification then there is no justification!!! Details matter, having a paper trail for decision making matters.

I wonder how many executives will escape the consequences of their white collar crimes by blaming AI.

AI zombification is coming and it's going to create a distinct difference in communication styles between those who do and don't use it, honestly that point is already here.

And we're gonna find out yet again that marx was right when it becomes clear that AI usage correlates with class lines.

Did they just bend the copper pipes by hand?

Of course they did. And now the pipes are not neatly aligned. Specialized tools are expensive and only meant for professionals. Bruh. They better hide their botched job correctly once they come back to do the embellishments.

(yes, I am slightly annoyed)

There's a leak in my ceiling. The insurance arranges for someone to come and fix (after four weeks of durdling around).

Guy's not briefed. Comes with half the gear needed to do proper work. Uses mine haphazardly.

I'm staying there to oversee the works, because I really have no confidence in them doing a decent job otherwise (if at all).

The drawing created by Vincent L'Epée for the satirical French-speaking Swiss magazine Vigousse "Trump at the UN: a delirious speech" has won the Swiss cartoon award.