Passkeys : commodité vs. contrôle – une préoccupation croissante

2025-09-02
Passkeys : commodité vs. contrôle – une préoccupation croissante

Le passage aux passkeys en remplacement des noms d'utilisateur et des mots de passe, bien qu'il vise une sécurité accrue, présente des problèmes sous-jacents. Le système d'attestation permet aux sites web de collecter des informations détaillées sur l'appareil, permettant aux gouvernements de restreindre les utilisateurs à des authentificateurs matériels spécifiques. L'interopérabilité entre les gestionnaires de mots de passe est limitée, créant un verrouillage du fournisseur. Des tactiques d'inscription automatique sournoises de la part des services lient subtilement les utilisateurs à leurs écosystèmes. L'auteur exprime son inquiétude quant à la dépendance croissante aux géants de la technologie et aux solutions complexes, pouvant conduire à un accès restreint aux données, à une complexité accrue de l'authentification et, en fin de compte, à une perte d'autonomie de l'utilisateur.

Lire plus
Technologie

Votre MCP n'a pas besoin de 30 outils : le code suffit

2025-08-18
Votre MCP n'a pas besoin de 30 outils : le code suffit

Cet article explore une nouvelle approche utilisant un serveur MCP à outil unique qui accepte le code de programmation comme entrée. L'auteur souligne les défis liés aux outils en ligne de commande, tels que la dépendance à la plateforme, la dépendance à la version et le manque de documentation, ce qui les rend difficiles à utiliser pour les outils agents. En revanche, un serveur MCP peut maintenir l'état et exposer un seul outil (par exemple, un interpréteur Python exécutant eval()), permettant aux outils agents de mieux gérer les sessions et de composer des outils. L'auteur démontre l'efficacité de cette approche avec pexpect-mcp, qui transforme le serveur MCP en un interpréteur Python avec état, simplifiant le débogage et améliorant l'efficacité. De plus, l'auteur explore le remplacement du MCP de Playwright par un système exposant l'API de Playwright via JavaScript, réduisant ainsi le nombre de définitions d'outils et améliorant l'efficacité du transfert de données. Bien que des préoccupations de sécurité existent, l'auteur soutient que cette approche présente un potentiel significatif et mérite d'être explorée plus avant.

Lire plus
Développement Outils agents

Le code est tout ce dont vous avez besoin : Les limites des pipelines à composants multiples (MCP)

2025-07-03
Le code est tout ce dont vous avez besoin : Les limites des pipelines à composants multiples (MCP)

Cet article remet en question l’efficacité des pipelines à composants multiples (MCP) pour de nombreuses tâches, en arguant que leur forte dépendance à l’inférence les rend inefficaces et difficiles à mettre à l’échelle. L’auteur utilise un exemple personnel – la conversion de reStructuredText en Markdown – pour démontrer une approche supérieure : utiliser les LLM pour générer du code qui effectue la tâche, suivi d’une validation basée sur les LLM. Cette méthode réduit la dépendance à l’inférence, améliore la fiabilité et s’adapte bien, en particulier pour les tâches répétitives. Tout en reconnaissant les forces des MCP dans des scénarios de niche, l’auteur conclut que leurs limites inhérentes entravent l’automatisation à grande échelle. L’avenir, suggère-t-il, réside dans le développement de techniques de génération de code plus efficaces, combinées à la validation et à l’explication par les LLM pour améliorer la convivialité et l’applicabilité.

Lire plus
Développement

Agents de programmation : une nouvelle façon de mesurer l’expérience développeur

2025-06-19
Agents de programmation : une nouvelle façon de mesurer l’expérience développeur

Un sprint de codage de 24 heures a mis en évidence la mauvaise expérience développeur causée par des outils et des processus inadéquats, notamment une documentation manquante et des API défectueuses. Cependant, les agents de programmation offrent une solution. L’auteur a utilisé des agents pour évaluer objectivement différents langages et outils, en quantifiant des facteurs d’expérience développeur tels que la couverture des tests, la qualité des rapports d’erreur et la stabilité de l’écosystème. Le retour d’information de l’agent a reflété de près les expériences des développeurs humains, offrant une nouvelle approche pour améliorer la qualité du code et les flux de travail de développement.

Lire plus
Développement

Codage agentif : conseils et astuces pratiques

2025-06-12
Codage agentif : conseils et astuces pratiques

Cet article détaille l'expérience de l'auteur avec le codage agentif utilisant Claude Code, en se concentrant sur la maximisation de l'efficacité. Les stratégies clés incluent l'utilisation du modèle Sonnet moins cher, la désactivation des vérifications d'autorisation, l'optimisation de l'utilisation des outils et le choix de Go pour sa simplicité et ses tests efficaces. L'auteur souligne l'importance d'écrire du code simple, stable et parallélisable, et de refactoriser stratégiquement. Bien que le domaine évolue rapidement, les principes fondamentaux tels que la simplicité, la stabilité, l'observabilité et la parallélisation intelligente restent essentiels pour réussir.

Lire plus
Développement codage agentif

IA : Le changement irréversible

2025-06-04
IA : Le changement irréversible

Cet article de blog détaille comment l'IA, plus précisément Claude Code, a révolutionné le flux de travail de programmation de l'auteur, augmentant son efficacité et lui libérant un temps considérable. L'auteur soutient que l'impact de l'IA est irréversible, remodelant notre façon de vivre et de travailler, malgré les défis initiaux. L'adoption rapide de l'IA dans divers secteurs est soulignée, mettant en évidence son pouvoir transformateur dans la communication, l'apprentissage et les tâches quotidiennes. L'auteur encourage à embrasser le potentiel de l'IA avec curiosité et responsabilité, plutôt que par la peur et la résistance.

Lire plus

Le trait `Any` de Rust prend enfin en charge l'upcasting

2025-03-30
Le trait `Any` de Rust prend enfin en charge l'upcasting

Rust 1.86 a enfin corrigé un problème de longue date avec le trait `Any` : l’impossibilité de faire de l’upcasting de `dyn Any`. Cela signifie que les développeurs peuvent maintenant utiliser les méthodes du trait `Any`, telles que `downcast_ref`, sur les traits héritant de `Any`. Cette correction élimine le besoin de solutions de contournement qui étaient nécessaires auparavant pour obtenir cette fonctionnalité, améliorant ainsi la lisibilité et la maintenabilité du code. C’est une excellente nouvelle pour les développeurs Rust qui dépendaient de ces astuces depuis des années.

Lire plus
Développement

Le crate rand de Rust : un cauchemar de dépendances pour la génération de nombres aléatoires

2025-02-08
Le crate rand de Rust : un cauchemar de dépendances pour la génération de nombres aléatoires

Cet article examine les problèmes de dépendances du crate `rand` de Rust, utilisé pour générer des nombres aléatoires. L'auteur souligne le nombre étonnamment élevé de dépendances, entraînant des temps de compilation excessifs et un code volumineux. L'arbre de dépendances de `rand` inclut de nombreux crates tels que `libc`, `zerocopy` et `ppv-lite86`, contribuant significativement au nombre de lignes de code et à la surcharge de compilation. Des solutions potentielles sont suggérées, notamment l'intégration de certaines fonctionnalités dans la bibliothèque standard ou l'amélioration de la gestion des dépendances de `rand`. Cela ouvre un débat sur l'exhaustivité de la bibliothèque standard de Rust et la gestion des dépendances des crates externes.

Lire plus
Développement

Le cas pour moins de dépendances en Rust

2025-01-24
Le cas pour moins de dépendances en Rust

Armin Ronacher, un développeur renommé, déplore la sur-dépendance aux crates externes dans l'écosystème Rust dans un récent article de blog. Il soutient que les dépendances excessives entraînent des mises à jour constantes, des correctifs et des audits de sécurité, surchargeant les développeurs et introduisant souvent un gonflement de code inutile. Il préconise une philosophie de "faites-le vous-même", encourageant les développeurs à écrire leur propre code lorsque cela est approprié au lieu de dépendre aveuglément des bibliothèques externes. Il utilise la crate `terminal_size` comme exemple, illustrant comment une fonction simple dépend de plusieurs crates et a subi de nombreuses mises à jour, soulignant les inconvénients de la sur-dépendance. L'article appelle à un changement de perspective au sein de la communauté Rust, en priorisant moins de dépendances et en célébrant les développeurs qui créent des bibliothèques à faible dépendance.

Lire plus
Développement