Tiens justement, je me demandais. Quand on est une entreprise, disons allemande, qui embauche internationalement. Qu'est-ce que ça change de payer les gens aux salaires du pays d'origine de l'entreprise ? Et à qui l'entreprise doit-elle payer les charges patronales et autres ?
L'auteur semble mélanger callbacks et concurrence. Ça n'a pas grand chose en commun. Si je comprends bien sa proposition permet d'avoir un point de synchro implicite en sortie de scope, ce qui semble pertinent mais je doute que ce soit toujours applicable.
Franchement j'ai l’honnêteté de dire pourquoi je m'en suis servi
Je ne vois pas trop l'intérêt du pré-scriptum en fait, ni des demandes en général pour que les auteurs indiquent s'ils ont utilisé un LLM et pour quelles étapes. La qualité d'un contenu est indépendante des outils qui ont été utilisés pour le produire. Peu importe que les corrections aient été faites par un correcteur orthographique logiciel ou humain, par Grammalecte, par un LLM, ou par des esclaves hébergés dans des étables.
Enfin pas tout à fait, ça importe peu pour le produit mais ça importe beaucoup pour la société et les relations que nous entretenons avec nos pairs. Donc je pense que cette demande de transparence qu'ont les consommateurs auprès des producteurs a surtout pour but de :
rassurer le lecteur, qui se sentirait souillé s'il apprenait après coup que ce document qui lui a tant plu est en fait produit de près ou de loin par un LLM ;
rassurer l'auteur qui se demande s'il lui reste un peu d'honnêteté et d'éthique.
À mon humble avis quand on commence par présenter un produit avec une défense anticipée pour rassurer le lecteur en lui disant que « si si, cette fois ça sera bien, c'est moi qui ait utilisé le LLM donc tout va bien », c'est déjà mauvais signe. N'annoncez pas votre utilisation des LLM, ça ne sert à rien. Si le contenu est bon, il est bon, et le seul juge est le public. Si celui-ci démonte votre prose, remettez en question votre produit et vos outils.
si c'est un problème : non relecture = non respect de son auditoire
Perso j'ai mis un peu d'eau dans mon vin là dessus. J'ai croisé des gens qui peinaient à rédiger quelque chose de présentable en français parce que langue secondaire et éducation difficile. Certes on peut toujours mettre des outils pour aider, corriger les fautes, faire relire, mais c'est une surcharge pour eux, que je mettrais sur leurs épaules juste pour que ça soit plus confortable pour moi. Donc soyons moins radicaux, peut être que non relecture = étranger dyslexique manchot en survie tentant de contribuer malgré un ordi défaillant et un clavier en QRAPTY qui se blo
Je ne suis pas convaincu par les exemples. Il y a des gens ici qui envoient des messages pleins de typos, qui sont sûrement soulignées en rouge lors de la prévisualisation, et ce n'est pas un problème. Ça n'enlève rien à la qualité de leurs interventions.
Quant aux traductions de citations, je ne suis pas convaincu que ce soit nécessaire et je préfère en général que l'auteur me donne son interprétation du contenu de la citation plutôt qu'une traduction. Surtout une traduction auto.
Mais ce n'est pas le fond du problème. Le problème c'est le contenu insipide qui arrive en masse. On se plaint que le web soit devenu un amas de sites creux à SEO et on se demande si on devrait accepter ça sur LinuxFr, et si on devrait bien accueillir des logiciels produits de la même manière que lesdits sites, parce que leurs auteurs trouvent que quand c'est eux qui font ça, c'est OK. Pour moi la question elle est vite répondue.
Je propose qu'on redirige la prose des LLMs vers /dev/null. C'est éreintant de lire leurs bouses pour en extraire le jus et déterminer ce qui est correct ou bidon, que ce soit des pavés ou ces satanées listes à puces préformatées. C'est le même effet que les posts de complotistes qui nous noient sous des tonnes de texte et des références pourries. Le temps que le lecteur fasse une lecture critique l'auteur a largement le temps d'inonder le média avec plus de merde. Au final c'est toujours ces auteurs qui occupent l'espace et l'attention et le consommateur perd, comme d'hab'.
Il manque deux choses essentielles. Déjà, tout outil moderne doit s'installer à coup de curl ... | sudo sh -. Ensuite ça serait beaucoup plus sûr de récupérer le binaire précompilé.
Merci pour ce journal. J'avais trouvé celui du Covid très clair, et a posteriori très juste. Je lis celui-ci avec attention et te remercie de partager avec nous :)
Les deux anti-fonctions peuvent être corrigées mais je n'ai pas l'intention de le faire dans l'immédiat :)
Pour les services réseaux connectés il faudrait effectivement un paramètre pour choisir son serveur mais je ne vois pas trop l'intérêt. Si les joueurs sont connectés à différents serveurs il ne vont pas jouer les uns contre les autres. Déjà qu'il n'y a pas grand monde, ça ne va pas aider à trouver des adversaires.
Pour le pistage c'est lié à PostHog que j'utilise effectivement pour récupérer des infos sur l'utilisation de l'app. Il n'y a pas d'info personnelle mais F-Droid est très strict (à raison). Même un outil de remontée de crash ou de vérification de nouvelle version suffit à avoir cette anti-fonction. Celui-là pourrait sauter quand l'application sera live sur le PlayStore.
Je ne suis pas trop inquiet, ça m'a pris deux ou trois semaines à implémenter en mode « temps libre » et c'était fun :) Donc je suppose que l'adaptation aux nouvelles fonctionnalités sera tout aussi fun.
Tu as essayé de faire jouer le bot contre lui-même ?
Bien sûr ! Il ne perd d'ailleurs jamais :) J'ai des tests permanents qui font du bot vs bot (les fameux tests très longs) et je l'ai aussi temporairement intégré dans le client pendant le dev, sans ça c'était très galère de suivre son raisonnement et de le corriger.
Tu as utilisé un framework pour ton IA (genre Behavior Tree ou GOAP) ou tu as tout fait à la main ?
Je ne comprends pas la démarche. Tu débarques dans une communauté pour présenter un projet, il est mal reçu, tu insultes tous ceux qui se donnent la peine de réagir. Quel intérêt ? On ne peut pas débarquer quelque part et insulter tout le monde. Sans doute que cette communauté n'est pas pour toi ?
Ici on ne donne pas de points juste pour avoir utilisé un outil pour générer un truc. On n'aime pas trop les textes préformatés qui sentent le commercial ou les relations publiques, ou qui sur-utilisent les émojis. Ici on aime les humains et on débattra volontiers, pas toujours avec le ton qu'il convient cependant, sur quasiment n'importe quel sujet du moment qu'il y ait une part personnelle. Si l'accueil ne te convient pas, revois ta copie. C'est toi qui rejoints la communauté, et non pas la communauté qui te rejoint. Elle veut bien t'accueillir mais elle ne va pas se plier à ton désir.
Bien vu. En validant la dépêche j'ai vu « Release v1.35.0 » sur GitHub, je me suis bêtement dit qu'il s'agissait d'un vieux projet dont je n'avais pas entendu parler. Si j'avais cliqué plus loin j'aurais vu qu'il y a eu en moyenne deux releases par jour depuis la première.
En espérant qu'un humain vérifie derrière quand même.
Et bien du coup j'en doute fort ! Je vais rester à l'écart du bousin :)
Il me semble qu'il est assez clair sur l'expressivité, même si effectivement on peut inclure dans ce terme ce qui s'adresse au compilateur. Je pense que le projet était surtout de montrer que ce qui est fonctionnellement faisable en Rust l'est aussi en C++ pour un coût équivalent. Il ne cache pas cependant que les garanties offertes par le compilateur Rust sont toutes perdues en C++.
Le coup du compte des lignes de code avec et sans tests m'a surpris aussi ; la comparaison ne tient pas la route. J'aurais aussi voulu avoir des benchmarks. Après, tout cela a été vibe-codé et sans doute vibe-rédigé donc je ne m'attends pas à une rigueur exemplaire :)
Les résultats des dernières expériences, rien que pour toi :)
J'ai donc implémenté un algo en 4 heures hors pauses. Sur ces 4 heures j'ai passé 1 h 30 sur l'implémentation initiale qui comprend l'algo et l'ajout d'un paramètre pour activer l'algo. Le paramètre n'est pas une partie difficile mais ça avait un impact sur l'existant et demandait d'aller modifier un paquet de fichiers pour le prendre en compte. Les 2 h 30 restantes sont passées à chercher et corriger deux problèmes à côté desquels j'étais passé dans l'implémentation initiale, dont un problème bien compliqué qui m'a amené à faire intervenir un collègue (qui ne comprenais pas plus que moi mais qui a apporté le soutien dont j'avais besoin pour trouver la solution).
J'ai ensuite lancé une session avec Claude en partant du commit précédant mes modifs, dans un conteneur avec toutafon, IS_SANDBOX=1, et --dangerously-skip-permissions. Je lui ai donné un court document décrivant comment compiler le projet et comment le tester et après quelques étapes de chauffe (« lit le document. », « compile le projet », « lance tel test »), je lui ai demandé de trouver telle fonction à modifier et je lui ai décrit la tâche. Il était hyper motivé, il a sorti un très juste résumé des structures de données en jeu et comment elles étaient connectées.
Il m'a ensuite posé quelques questions pour éclaircissements. Les questions montraient que s'il avait compris les connections entre les structures au niveau code, il n'avait par contre pas compris la sémantique. Soit, je réponds sincèrement à ses questions.
Et hop il se met à patcher le code. Je n'ai même pas eu le temps de lui parler du paramètre de config ! En 35 minutes après le début de la session il avait implémenté l'algo d'une manière excellente. J'étais bluffé, son algo ressemblait comme deux gouttes d'eau au mien (comme quoi il a appris des meilleurs :)). Il est allé jusqu'à utiliser la même manière relativement particulière d'indexer conditionnellement une table dans une boucle (j'avais mis une indirection : à l'itération i je traitais data[index[i]] ce qui permettait de sortir un if de la boucle et me semblait plus clair). C'était même un poil mieux parce qu'il avait en plus factorisé 3 lignes que j'avais dupliquées (j'étais simplement passé à côté de la similarité).
Je me demande même s'il a pu avoir accès à mon code, mais je ne vois pas comment. Claude est dans un conteneur et travaille dans un dossier certes versionné sous Git mais sans l'historique ni l'URL de notre dépôt. Éventuellement il se peut que le code soit sur les serveurs d'Anthropic puisque des collègues travaillent avec Claude sur le dépôt, mais j'en doute à cause de la suite.
La suite est que son code qui ressemble énormément au mien est tellement semblable qu'il a les mêmes bugs. Les deux problèmes qui m'ont pris la tête sont aussi présents !
Il est donc parti dans la recherche de corrections pour ces problèmes, et là, c'est le drame. Il a été incapable de corriger. Je l'ai fait bosser 10 h en interaction, sans lui donner la solution évidemment (sinon ça n'aurait pas été juste). Ses analyses étaient très mauvaises, toutes ses pistes allaient dans la mauvaise direction. Il est passé d'un bug côté encodeur à un crash côté décodeur, puis il s'est retrouvé à crasher l'encodeur aussi avant de tout annuler. Plein d'aller-retours à essayer des trucs, rater, revenir en arrière, ré-essayer des trucs qui n'avaient pas marché.
Voilà le bilan. 35 minutes pour coder (un peu moins) que ce que j'ai codé en 1 h 30, puis 9 h 30 à ne pas réussir à corriger deux bugs que j'ai corrigé en 2 h 30.
tu précises pas si c'est à l'aide du compilateur, d'intrinsics ou directement via de l'assembleur (inlined ou lié)
On utilise les intrinsics, c'est quand même beaucoup plus clair que de l'assembleur :)
C'est clairement utile parce que même si c'est tendance de balayer l'idée d'un coup en clamant que les compilateurs d'aujourd'hui sont performants, en pratique on a des gains de plusieurs dizaines de pourcents sur un encodage vidéo en passant quelques fonctions clés en AVX2. En fait même si le compilateur est très bon et même si on lui donne des indications à coup de __restrict et d'unreachable, on arrive quand même à faire mieux. Et puis on n'est plus à espérer en croisant les doigts pour que le compilateur active les instructions vectorielles.
C'est un des côtés les plus intéressants de ce projet. On a besoin à la fois d'optims bas niveau et algorithmiques, mais aussi de stratégies d'exploration de plus haut niveau, et des compromis à faire sur la perf et la qualité de la sortie. Le tout en essayant d'être carré et solide sur les tests. C'est très vaste :)
La pression est forte au boulot pour que nous utilisions Claude. Bien sûr un tel outil doit être évalué rigoureusement avant d'être déployé, après tout on lui donnera quasiment les clés du dev. C'est pour cela que nous avons organisé diverses expérimentations afin que les collègues pré-acquis à la cause puissent expliquer comment l'utiliser. J'insiste, il ne s'agit pas de voir si c'est une bonne idée ni même de chercher les limites de l'outil, mais directement de trouver des Bonnes PratiquesTM.
Intrigués par les retours, tout à fait identiques à ce qu'on lit partout (c'est mieux que ce que j'aurais fait ! Ça m'a fait gagner, heu... allez je vais dire 60% tiens, 60% du temps de dev !), j'ai aussi expérimenté dans ce que j'espère être une évaluation rigoureuse. Car si on me proposait un prestataire pas cher avec la promesse qu'il sache tout faire, aucun doute que ça activerait l'alarme charlatanisme.
J'ai donc pris notre dépôt de code et j'ai demandé à Claude d'écrire l'implémentation optimisée en AVX2 d'une fonction du logiciel. Pour le contexte on a dans le dépôt plein de fonctions du genre foo_avx2 pour la perf et leurs équivalentes en C++ foo_c pour référence. On a un micro-benchmark qui évalue les deux, et on a une suite de tests qui vérifie que les deux sortent les mêmes résultats pour les mêmes entrées. Ma démarche d'expérimentation est la suivante : je supprime le corps de foo_avx2 et je demande à Claude de l'implémenter avec comme consigne de la rendre aussi performante que possible en termes de temps d'exécution. Je lui mets à disposition le benchmark et la suite de test, comme ça il peut s'évaluer lui-même.
Et effectivement il s'est débrouillé pour sortir une fonction valide ! Elle n'est que 50% à 300% plus lente que notre implémentation. Après de nombreuses itérations, des heures à être sur son dos en le guidant pour améliorer tel ou tel cas, il a pu produire quelque chose d'équivalent en perf.
Alors évidemment on m'a dit que je n'y croyais pas assez fort et que j'aurais du utiliser Opus 4.6 en max reasoning. J'ai donc refais l'expérience sur une autre fonction en mettant tous les curseurs à 11. Effectivement il a réfléchit très fort et a produit encore plus vite une implémentation 50% plus lente que la nôtre. J'ai à nouveau itéré jusqu'à aligner les perfs avec notre implémentation sans jamais réussir à l'égaler.
Dans les deux cas j'ai ensuite fait une revue du code. Le première fonction est implémentée de manière acceptable sans plus, la seconde est dégueux. Du code dégueux et plus lent, c'est ce qu'a produit Claude.
Et là je me sens seul. Je vois mes confrères grisés par l'expérience, jurant que je devrais essayer c'est trop bon, aveuglés par l'amour tels des ados épris dans une relation interdite, mais chacun de mes essais est un flop. Aucune montée d'adrénaline, les niveaux d'endorphine au plus bas, je me retrouve face à un énorme étron dans le code tandis que derrière moi toute l'industrie, euphorique, s'égosille : « Mange ! Mange ! ».
On nous rabâche le fait que l'on doit own la sortie de Claude mais pour moi ça ne fait aucun doute que personne ne saura ce qu'il se passe dans nos logiciels. Jamais une revue de code ne nous donnera une connaissance autre que superficielle et je suis convaincu que ce qui a été écrit par Claude sera maintenu par Claude. Qu'il sera responsable des corrections de bugs et sans doute aussi des revues.
Les uns et les autres clament que Claude produit du code meilleur que ce qu'ils auraient produit et moi je me demande, si le résultat est effectivement mieux que ce qu'ils auraient fait, c'est donc au delà de leurs capacités. Dès lors, sont-ils aptes à juger du résultat ? Par exemple, je ne sais pas jongler. N'importe qui pouvant attraper deux fois deux balles fait déjà mieux que ce que j'aurais fait. À quoi ça rime si je l'impose à tous les cirques du monde parce qu'il fait mieux que ce que j'aurais fait ? Faut-il laisser les décisions aux plus incompétents ?
Cette semaine je ferai un autre essai plus orienté fonctionnel en demandant à Claude d'implémenter un algo que j'ai moi-même précédemment implémenté. La démarche sera la même, il partira du commit précédant mes modifs, et je lui décrirai le besoin. Il n'aura plus qu'à l'implémenter. Moi il m'a fallu 4 heures de travail effectif (7 à l'horloge murale) pour aller de zéro à la validation complète de la suite de test. J'aimerais bien le voir faire mieux, genre plus rapide pour la même qualité de code. Ça m'aiderait à comprendre mes confrères.
La loi dit beaucoup de choses, tellement de choses qu'il y a des gens qui font leur métier d'interpréter ce qu'elle dit. Ils passent des mois voire des années à en débattre avec des confrères et des juges.
Alors que pourtant c'est simple, il suffit d'aller sur LinuxFr.org où des utilisateurs ont une capacité hors du commun à distinguer le légal de l'illégal. Capacité qu'ils utilisent non pas en citant des textes de loi ou des précédents juridiques, mais plutôt pour mépriser l'équipe de modération.
L'équipe de modération se passerait bien de tout cela, des appels à la haine tout comme des délateurs, des débats stériles, des bien-pensants prêts à en venir aux mains et aux mots, si critiques des autres qu'ils n'ont plus le temps de se critiquer eux-mêmes, des demandes d'intervention mais uniquement pour les messages des autres, parce que les autres ne comprennent pas que c'est eux qui se plantent, c'est pas faute d'insister depuis des jours et des jours dans le même fil de discussion. Incroyable, ils ne veulent pas comprendre, ces autres.
Venir poser un tel journal ici pour s'en prendre à la modération sans avoir auparavant fait la démarche de contacter l'équipe, sans discuter ni proposer de pistes d'amélioration, c'est juste agressif. C'est une démarche de destruction. Je ne vois pas l'intérêt de ce journal.
En tous cas je ne vois pas comment l'un de ces acteurs pourrait ressortir en récupérant ses billes.
La pub, comme d'hab. Déjà il faut faire la meilleure IA du marché. Ensuite avec les prompts des utilisateurs on créé des profils. Lorsque l'IA répond on passe le prompt et le profil aux annonceurs, et on injecte la pub direct dans la réponse comme si ça venait du LLM. Avec l'argent des annonceurs et investisseurs on maintient les prix bas jusqu'à tuer la compétition. Puis on fait ce qu'il faut pour augmenter le revenu.
[^] # Re: Comme au resto chinois, y a pas de fourchettes
Posté par Julien Jorge (site web personnel) . En réponse au lien Join the LibreOffice team as a paid system administrator, working on TDF’s infrastructure (full-time, remote, m/f/d). Évalué à 3 (+1/-0).
Tiens justement, je me demandais. Quand on est une entreprise, disons allemande, qui embauche internationalement. Qu'est-ce que ça change de payer les gens aux salaires du pays d'origine de l'entreprise ? Et à qui l'entreprise doit-elle payer les charges patronales et autres ?
[^] # Re: What color is your function ?
Posté par Julien Jorge (site web personnel) . En réponse au journal Pourquoi le modèle de concurrence de Node.js est bien. Évalué à 3 (+1/-0).
L'auteur semble mélanger callbacks et concurrence. Ça n'a pas grand chose en commun. Si je comprends bien sa proposition permet d'avoir un point de synchro implicite en sortie de scope, ce qui semble pertinent mais je doute que ce soit toujours applicable.
[^] # Re: assistance
Posté par Julien Jorge (site web personnel) . En réponse au journal L'IA et le mythe du combat ultime. Évalué à 8 (+7/-1).
Je ne vois pas trop l'intérêt du pré-scriptum en fait, ni des demandes en général pour que les auteurs indiquent s'ils ont utilisé un LLM et pour quelles étapes. La qualité d'un contenu est indépendante des outils qui ont été utilisés pour le produire. Peu importe que les corrections aient été faites par un correcteur orthographique logiciel ou humain, par Grammalecte, par un LLM, ou par des esclaves hébergés dans des étables.
Enfin pas tout à fait, ça importe peu pour le produit mais ça importe beaucoup pour la société et les relations que nous entretenons avec nos pairs. Donc je pense que cette demande de transparence qu'ont les consommateurs auprès des producteurs a surtout pour but de :
À mon humble avis quand on commence par présenter un produit avec une défense anticipée pour rassurer le lecteur en lui disant que « si si, cette fois ça sera bien, c'est moi qui ait utilisé le LLM donc tout va bien », c'est déjà mauvais signe. N'annoncez pas votre utilisation des LLM, ça ne sert à rien. Si le contenu est bon, il est bon, et le seul juge est le public. Si celui-ci démonte votre prose, remettez en question votre produit et vos outils.
[^] # Re: certains usages
Posté par Julien Jorge (site web personnel) . En réponse au journal Publication de contenus augmentés par l'IA. Évalué à 10 (+9/-0).
Perso j'ai mis un peu d'eau dans mon vin là dessus. J'ai croisé des gens qui peinaient à rédiger quelque chose de présentable en français parce que langue secondaire et éducation difficile. Certes on peut toujours mettre des outils pour aider, corriger les fautes, faire relire, mais c'est une surcharge pour eux, que je mettrais sur leurs épaules juste pour que ça soit plus confortable pour moi. Donc soyons moins radicaux, peut être que non relecture = étranger dyslexique manchot en survie tentant de contribuer malgré un ordi défaillant et un clavier en QRAPTY qui se blo
[^] # Re: certains usages
Posté par Julien Jorge (site web personnel) . En réponse au journal Publication de contenus augmentés par l'IA. Évalué à 10 (+12/-1).
Je ne suis pas convaincu par les exemples. Il y a des gens ici qui envoient des messages pleins de typos, qui sont sûrement soulignées en rouge lors de la prévisualisation, et ce n'est pas un problème. Ça n'enlève rien à la qualité de leurs interventions.
Quant aux traductions de citations, je ne suis pas convaincu que ce soit nécessaire et je préfère en général que l'auteur me donne son interprétation du contenu de la citation plutôt qu'une traduction. Surtout une traduction auto.
Mais ce n'est pas le fond du problème. Le problème c'est le contenu insipide qui arrive en masse. On se plaint que le web soit devenu un amas de sites creux à SEO et on se demande si on devrait accepter ça sur LinuxFr, et si on devrait bien accueillir des logiciels produits de la même manière que lesdits sites, parce que leurs auteurs trouvent que quand c'est eux qui font ça, c'est OK. Pour moi la question elle est vite répondue.
# /dev/null
Posté par Julien Jorge (site web personnel) . En réponse au journal Publication de contenus augmentés par l'IA. Évalué à 10 (+49/-2).
Je propose qu'on redirige la prose des LLMs vers /dev/null. C'est éreintant de lire leurs bouses pour en extraire le jus et déterminer ce qui est correct ou bidon, que ce soit des pavés ou ces satanées listes à puces préformatées. C'est le même effet que les posts de complotistes qui nous noient sous des tonnes de texte et des références pourries. Le temps que le lecteur fasse une lecture critique l'auteur a largement le temps d'inonder le média avec plus de merde. Au final c'est toujours ces auteurs qui occupent l'espace et l'attention et le consommateur perd, comme d'hab'.
# Incomplet
Posté par Julien Jorge (site web personnel) . En réponse au lien gestion de dépendances modernes en C/C++. Évalué à 4 (+3/-1).
Il manque deux choses essentielles. Déjà, tout outil moderne doit s'installer à coup de
curl ... | sudo sh -. Ensuite ça serait beaucoup plus sûr de récupérer le binaire précompilé.# Merci
Posté par Julien Jorge (site web personnel) . En réponse au journal Ce virus qui vous hante. Évalué à 10 (+13/-1).
Merci pour ce journal. J'avais trouvé celui du Covid très clair, et a posteriori très juste. Je lis celui-ci avec attention et te remercie de partager avec nous :)
[^] # Re: Polo LinuxFr.org
Posté par Julien Jorge (site web personnel) . En réponse au journal Darty, le libre et Linux. Évalué à 3 (+1/-0).
On est clairement sur une tête de vis pour tournevis plat.
[^] # Re: f-droid
Posté par Julien Jorge (site web personnel) . En réponse au journal Sortie de Bim! en version 16, avec des bots. Évalué à 3 (+1/-0).
Les deux anti-fonctions peuvent être corrigées mais je n'ai pas l'intention de le faire dans l'immédiat :)
Pour les services réseaux connectés il faudrait effectivement un paramètre pour choisir son serveur mais je ne vois pas trop l'intérêt. Si les joueurs sont connectés à différents serveurs il ne vont pas jouer les uns contre les autres. Déjà qu'il n'y a pas grand monde, ça ne va pas aider à trouver des adversaires.
Pour le pistage c'est lié à PostHog que j'utilise effectivement pour récupérer des infos sur l'utilisation de l'app. Il n'y a pas d'info personnelle mais F-Droid est très strict (à raison). Même un outil de remontée de crash ou de vérification de nouvelle version suffit à avoir cette anti-fonction. Celui-là pourrait sauter quand l'application sera live sur le PlayStore.
[^] # Re: Pourquoi un CRC?
Posté par Julien Jorge (site web personnel) . En réponse au journal Sortie de Bim! en version 16, avec des bots. Évalué à 3 (+1/-0).
Je n'ai pas beaucoup cherché :) j'ai pris un truc de base et ça me donnait une bonne raison de regarder les instructions spécifiques.
Quand tu parles de checksum 64 bits, ce serait un truc genre xxhash ?
[^] # Re: Bot vs bot
Posté par Julien Jorge (site web personnel) . En réponse au journal Sortie de Bim! en version 16, avec des bots. Évalué à 5 (+3/-0).
Je ne suis pas trop inquiet, ça m'a pris deux ou trois semaines à implémenter en mode « temps libre » et c'était fun :) Donc je suppose que l'adaptation aux nouvelles fonctionnalités sera tout aussi fun.
[^] # Re: Bot vs bot
Posté par Julien Jorge (site web personnel) . En réponse au journal Sortie de Bim! en version 16, avec des bots. Évalué à 4 (+2/-0).
Bien sûr ! Il ne perd d'ailleurs jamais :) J'ai des tests permanents qui font du bot vs bot (les fameux tests très longs) et je l'ai aussi temporairement intégré dans le client pendant le dev, sans ça c'était très galère de suivre son raisonnement et de le corriger.
Tout fait à la main.
# Es-tu perdu ?
Posté par Julien Jorge (site web personnel) . En réponse au journal À la recherche d'une alternative libre à Notion ou Obsidian : j'ai créé MindZJ (OSS) via Vibe coding. Évalué à 10 (+8/-0).
Je ne comprends pas la démarche. Tu débarques dans une communauté pour présenter un projet, il est mal reçu, tu insultes tous ceux qui se donnent la peine de réagir. Quel intérêt ? On ne peut pas débarquer quelque part et insulter tout le monde. Sans doute que cette communauté n'est pas pour toi ?
Ici on ne donne pas de points juste pour avoir utilisé un outil pour générer un truc. On n'aime pas trop les textes préformatés qui sentent le commercial ou les relations publiques, ou qui sur-utilisent les émojis. Ici on aime les humains et on débattra volontiers, pas toujours avec le ton qu'il convient cependant, sur quasiment n'importe quel sujet du moment qu'il y ait une part personnelle. Si l'accueil ne te convient pas, revois ta copie. C'est toi qui rejoints la communauté, et non pas la communauté qui te rejoint. Elle veut bien t'accueillir mais elle ne va pas se plier à ton désir.
[^] # Re: Merci claude.
Posté par Julien Jorge (site web personnel) . En réponse à la dépêche Kudu, le logiciel qui veut remettre de l’ordre dans l’optimisation du système. Évalué à 8 (+6/-0).
Bien vu. En validant la dépêche j'ai vu « Release v1.35.0 » sur GitHub, je me suis bêtement dit qu'il s'agissait d'un vieux projet dont je n'avais pas entendu parler. Si j'avais cliqué plus loin j'aurais vu qu'il y a eu en moyenne deux releases par jour depuis la première.
Et bien du coup j'en doute fort ! Je vais rester à l'écart du bousin :)
[^] # Re: Y'a un truc qui me chiffonne
Posté par Julien Jorge (site web personnel) . En réponse au lien The Reverse Rewrite. Évalué à 4 (+2/-0).
Il me semble qu'il est assez clair sur l'expressivité, même si effectivement on peut inclure dans ce terme ce qui s'adresse au compilateur. Je pense que le projet était surtout de montrer que ce qui est fonctionnellement faisable en Rust l'est aussi en C++ pour un coût équivalent. Il ne cache pas cependant que les garanties offertes par le compilateur Rust sont toutes perdues en C++.
Le coup du compte des lignes de code avec et sans tests m'a surpris aussi ; la comparaison ne tient pas la route. J'aurais aussi voulu avoir des benchmarks. Après, tout cela a été vibe-codé et sans doute vibe-rédigé donc je ne m'attends pas à une rigueur exemplaire :)
[^] # Re: Pendant ce temps
Posté par Julien Jorge (site web personnel) . En réponse au journal De développeur à orchestrateur, comment l'IA a changé ma vie. Évalué à 8 (+6/-0).
Les résultats des dernières expériences, rien que pour toi :)
J'ai donc implémenté un algo en 4 heures hors pauses. Sur ces 4 heures j'ai passé 1 h 30 sur l'implémentation initiale qui comprend l'algo et l'ajout d'un paramètre pour activer l'algo. Le paramètre n'est pas une partie difficile mais ça avait un impact sur l'existant et demandait d'aller modifier un paquet de fichiers pour le prendre en compte. Les 2 h 30 restantes sont passées à chercher et corriger deux problèmes à côté desquels j'étais passé dans l'implémentation initiale, dont un problème bien compliqué qui m'a amené à faire intervenir un collègue (qui ne comprenais pas plus que moi mais qui a apporté le soutien dont j'avais besoin pour trouver la solution).
J'ai ensuite lancé une session avec Claude en partant du commit précédant mes modifs, dans un conteneur avec toutafon, IS_SANDBOX=1, et --dangerously-skip-permissions. Je lui ai donné un court document décrivant comment compiler le projet et comment le tester et après quelques étapes de chauffe (« lit le document. », « compile le projet », « lance tel test »), je lui ai demandé de trouver telle fonction à modifier et je lui ai décrit la tâche. Il était hyper motivé, il a sorti un très juste résumé des structures de données en jeu et comment elles étaient connectées.
Il m'a ensuite posé quelques questions pour éclaircissements. Les questions montraient que s'il avait compris les connections entre les structures au niveau code, il n'avait par contre pas compris la sémantique. Soit, je réponds sincèrement à ses questions.
Et hop il se met à patcher le code. Je n'ai même pas eu le temps de lui parler du paramètre de config ! En 35 minutes après le début de la session il avait implémenté l'algo d'une manière excellente. J'étais bluffé, son algo ressemblait comme deux gouttes d'eau au mien (comme quoi il a appris des meilleurs :)). Il est allé jusqu'à utiliser la même manière relativement particulière d'indexer conditionnellement une table dans une boucle (j'avais mis une indirection : à l'itération
ije traitaisdata[index[i]]ce qui permettait de sortir unifde la boucle et me semblait plus clair). C'était même un poil mieux parce qu'il avait en plus factorisé 3 lignes que j'avais dupliquées (j'étais simplement passé à côté de la similarité).Je me demande même s'il a pu avoir accès à mon code, mais je ne vois pas comment. Claude est dans un conteneur et travaille dans un dossier certes versionné sous Git mais sans l'historique ni l'URL de notre dépôt. Éventuellement il se peut que le code soit sur les serveurs d'Anthropic puisque des collègues travaillent avec Claude sur le dépôt, mais j'en doute à cause de la suite.
La suite est que son code qui ressemble énormément au mien est tellement semblable qu'il a les mêmes bugs. Les deux problèmes qui m'ont pris la tête sont aussi présents !
Il est donc parti dans la recherche de corrections pour ces problèmes, et là, c'est le drame. Il a été incapable de corriger. Je l'ai fait bosser 10 h en interaction, sans lui donner la solution évidemment (sinon ça n'aurait pas été juste). Ses analyses étaient très mauvaises, toutes ses pistes allaient dans la mauvaise direction. Il est passé d'un bug côté encodeur à un crash côté décodeur, puis il s'est retrouvé à crasher l'encodeur aussi avant de tout annuler. Plein d'aller-retours à essayer des trucs, rater, revenir en arrière, ré-essayer des trucs qui n'avaient pas marché.
Voilà le bilan. 35 minutes pour coder (un peu moins) que ce que j'ai codé en 1 h 30, puis 9 h 30 à ne pas réussir à corriger deux bugs que j'ai corrigé en 2 h 30.
[^] # Re: Pendant ce temps
Posté par Julien Jorge (site web personnel) . En réponse au journal De développeur à orchestrateur, comment l'IA a changé ma vie. Évalué à 5 (+3/-0).
On utilise les intrinsics, c'est quand même beaucoup plus clair que de l'assembleur :)
C'est clairement utile parce que même si c'est tendance de balayer l'idée d'un coup en clamant que les compilateurs d'aujourd'hui sont performants, en pratique on a des gains de plusieurs dizaines de pourcents sur un encodage vidéo en passant quelques fonctions clés en AVX2. En fait même si le compilateur est très bon et même si on lui donne des indications à coup de
__restrictet d'unreachable, on arrive quand même à faire mieux. Et puis on n'est plus à espérer en croisant les doigts pour que le compilateur active les instructions vectorielles.C'est un des côtés les plus intéressants de ce projet. On a besoin à la fois d'optims bas niveau et algorithmiques, mais aussi de stratégies d'exploration de plus haut niveau, et des compromis à faire sur la perf et la qualité de la sortie. Le tout en essayant d'être carré et solide sur les tests. C'est très vaste :)
# Pendant ce temps
Posté par Julien Jorge (site web personnel) . En réponse au journal De développeur à orchestrateur, comment l'IA a changé ma vie. Évalué à 10 (+39/-0). Dernière modification le 09 avril 2026 à 15:50.
La pression est forte au boulot pour que nous utilisions Claude. Bien sûr un tel outil doit être évalué rigoureusement avant d'être déployé, après tout on lui donnera quasiment les clés du dev. C'est pour cela que nous avons organisé diverses expérimentations afin que les collègues pré-acquis à la cause puissent expliquer comment l'utiliser. J'insiste, il ne s'agit pas de voir si c'est une bonne idée ni même de chercher les limites de l'outil, mais directement de trouver des Bonnes PratiquesTM.
Intrigués par les retours, tout à fait identiques à ce qu'on lit partout (c'est mieux que ce que j'aurais fait ! Ça m'a fait gagner, heu... allez je vais dire 60% tiens, 60% du temps de dev !), j'ai aussi expérimenté dans ce que j'espère être une évaluation rigoureuse. Car si on me proposait un prestataire pas cher avec la promesse qu'il sache tout faire, aucun doute que ça activerait l'alarme charlatanisme.
J'ai donc pris notre dépôt de code et j'ai demandé à Claude d'écrire l'implémentation optimisée en AVX2 d'une fonction du logiciel. Pour le contexte on a dans le dépôt plein de fonctions du genre
foo_avx2pour la perf et leurs équivalentes en C++foo_cpour référence. On a un micro-benchmark qui évalue les deux, et on a une suite de tests qui vérifie que les deux sortent les mêmes résultats pour les mêmes entrées. Ma démarche d'expérimentation est la suivante : je supprime le corps defoo_avx2et je demande à Claude de l'implémenter avec comme consigne de la rendre aussi performante que possible en termes de temps d'exécution. Je lui mets à disposition le benchmark et la suite de test, comme ça il peut s'évaluer lui-même.Et effectivement il s'est débrouillé pour sortir une fonction valide ! Elle n'est que 50% à 300% plus lente que notre implémentation. Après de nombreuses itérations, des heures à être sur son dos en le guidant pour améliorer tel ou tel cas, il a pu produire quelque chose d'équivalent en perf.
Alors évidemment on m'a dit que je n'y croyais pas assez fort et que j'aurais du utiliser Opus 4.6 en max reasoning. J'ai donc refais l'expérience sur une autre fonction en mettant tous les curseurs à 11. Effectivement il a réfléchit très fort et a produit encore plus vite une implémentation 50% plus lente que la nôtre. J'ai à nouveau itéré jusqu'à aligner les perfs avec notre implémentation sans jamais réussir à l'égaler.
Dans les deux cas j'ai ensuite fait une revue du code. Le première fonction est implémentée de manière acceptable sans plus, la seconde est dégueux. Du code dégueux et plus lent, c'est ce qu'a produit Claude.
Et là je me sens seul. Je vois mes confrères grisés par l'expérience, jurant que je devrais essayer c'est trop bon, aveuglés par l'amour tels des ados épris dans une relation interdite, mais chacun de mes essais est un flop. Aucune montée d'adrénaline, les niveaux d'endorphine au plus bas, je me retrouve face à un énorme étron dans le code tandis que derrière moi toute l'industrie, euphorique, s'égosille : « Mange ! Mange ! ».
On nous rabâche le fait que l'on doit own la sortie de Claude mais pour moi ça ne fait aucun doute que personne ne saura ce qu'il se passe dans nos logiciels. Jamais une revue de code ne nous donnera une connaissance autre que superficielle et je suis convaincu que ce qui a été écrit par Claude sera maintenu par Claude. Qu'il sera responsable des corrections de bugs et sans doute aussi des revues.
Les uns et les autres clament que Claude produit du code meilleur que ce qu'ils auraient produit et moi je me demande, si le résultat est effectivement mieux que ce qu'ils auraient fait, c'est donc au delà de leurs capacités. Dès lors, sont-ils aptes à juger du résultat ? Par exemple, je ne sais pas jongler. N'importe qui pouvant attraper deux fois deux balles fait déjà mieux que ce que j'aurais fait. À quoi ça rime si je l'impose à tous les cirques du monde parce qu'il fait mieux que ce que j'aurais fait ? Faut-il laisser les décisions aux plus incompétents ?
Cette semaine je ferai un autre essai plus orienté fonctionnel en demandant à Claude d'implémenter un algo que j'ai moi-même précédemment implémenté. La démarche sera la même, il partira du commit précédant mes modifs, et je lui décrirai le besoin. Il n'aura plus qu'à l'implémenter. Moi il m'a fallu 4 heures de travail effectif (7 à l'horloge murale) pour aller de zéro à la validation complète de la suite de test. J'aimerais bien le voir faire mieux, genre plus rapide pour la même qualité de code. Ça m'aiderait à comprendre mes confrères.
[^] # Re: quelques feedbacks rapide
Posté par Julien Jorge (site web personnel) . En réponse au journal Je me lance dans un petit projet en Rust. Évalué à 3 (+1/-0).
Merci pour les retours :)
Ah bah c'est de là que venait le
#[from]que j'ai tenté d'utiliser ! J'avais croisé ça sur StackOverflow ou un blog, sans savoir d'où ça venait.Blessed liste un certain anyhow qui a l'air bien tentant aussi.
[^] # Re: ... et c'est OK de cibler quelqu'un comme ça ?
Posté par Julien Jorge (site web personnel) . En réponse au lien Systemd et la surveillance de masse. Évalué à 5 (+3/-0).
Je suis bien d'accord. L'article est un encouragement au lynchage et au harcèlement.
[^] # Re: Pas si simple...
Posté par Julien Jorge (site web personnel) . En réponse au journal Les "fachos", fascistes, nazis et autres intolérants sont-ils tolérés sur linuxfr.org ?. Évalué à 10.
La loi dit beaucoup de choses, tellement de choses qu'il y a des gens qui font leur métier d'interpréter ce qu'elle dit. Ils passent des mois voire des années à en débattre avec des confrères et des juges.
Alors que pourtant c'est simple, il suffit d'aller sur LinuxFr.org où des utilisateurs ont une capacité hors du commun à distinguer le légal de l'illégal. Capacité qu'ils utilisent non pas en citant des textes de loi ou des précédents juridiques, mais plutôt pour mépriser l'équipe de modération.
L'équipe de modération se passerait bien de tout cela, des appels à la haine tout comme des délateurs, des débats stériles, des bien-pensants prêts à en venir aux mains et aux mots, si critiques des autres qu'ils n'ont plus le temps de se critiquer eux-mêmes, des demandes d'intervention mais uniquement pour les messages des autres, parce que les autres ne comprennent pas que c'est eux qui se plantent, c'est pas faute d'insister depuis des jours et des jours dans le même fil de discussion. Incroyable, ils ne veulent pas comprendre, ces autres.
Venir poser un tel journal ici pour s'en prendre à la modération sans avoir auparavant fait la démarche de contacter l'équipe, sans discuter ni proposer de pistes d'amélioration, c'est juste agressif. C'est une démarche de destruction. Je ne vois pas l'intérêt de ce journal.
[^] # Re: POGAM, c'est très bien
Posté par Julien Jorge (site web personnel) . En réponse au journal Se défendre contre l'IA générative. Évalué à 3.
La pub, comme d'hab. Déjà il faut faire la meilleure IA du marché. Ensuite avec les prompts des utilisateurs on créé des profils. Lorsque l'IA répond on passe le prompt et le profil aux annonceurs, et on injecte la pub direct dans la réponse comme si ça venait du LLM. Avec l'argent des annonceurs et investisseurs on maintient les prix bas jusqu'à tuer la compétition. Puis on fait ce qu'il faut pour augmenter le revenu.
[^] # Re: Question
Posté par Julien Jorge (site web personnel) . En réponse au journal LinuxFr.org : seconde quinzaine de janvier 2026. Évalué à 2.
Merci pour ces stats qui ont l'air effectivement plus difficiles à sortir qu'à dire :)
Un à deux ans pour proposer une dépêche ou un journal, puis un peu moins de quatre ans de contributions avant de partir.
Par contre je ne me souviens plus pourquoi je voulais savoir cela...
[^] # Re: Question
Posté par Julien Jorge (site web personnel) . En réponse au journal LinuxFr.org : seconde quinzaine de janvier 2026. Évalué à 3.
En quoi cela est-il bénéfique pour notre communauté ? Que perdons nous à arrêter cette pratique ?
Dans quel contexte un coup de fouet non-demandé est-il une bonne chose ? N'est-ce pas tout simplement un début de violence ?