Quotidien Shaarli

Tous les liens d'un jour sur une page.

Aujourd'hui - June 21, 2026

Ce que j’ai appris en dépensant 100€ pour de la pub en ligne | Eventuallycoding

L’auteur partage son expérience après avoir investi 100 € dans de la publicité en ligne pour promouvoir son site, illustrant ainsi les défis de l’acquisition payante. Il souligne que créer un produit est une étape, mais que le vrai défi réside dans sa visibilité, comparant un bon produit ignoré à un programme électoral oublié après une élection. Il détaille les principaux canaux d’acquisition (SEA, SMA, retargeting, sponsoring) et explique comment les plateformes comme Google Ads ou Reddit Ads optimisent les enchères en fonction des conversions, grâce à des outils de tracking souvent intrusifs.

Cependant, l’auteur a fait face à une contrainte majeure : son refus d’utiliser des outils de tracking invasifs, limitant ainsi sa capacité à mesurer efficacement les performances des campagnes. Il a dû adapter sa stratégie en calculant lui-même les conversions pour ajuster ses dépenses sans recourir à des solutions externes, tout en évitant les bannières de cookies. Cette approche reflète une volonté de respecter la vie privée des utilisateurs, même si cela complique l’analyse des données.

En conclusion, l’expérience met en lumière les compromis entre efficacité publicitaire et respect de la vie privée, tout en offrant un retour concret sur l’utilisation des outils d’acquisition payante avec un budget limité. L’auteur souligne l’importance de comprendre les mécanismes des plateformes pour optimiser ses dépenses, tout en restant fidèle à ses principes éthiques.

chopratejas/headroom: Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.

Headroom est un outil open source conçu pour compresser les sorties, logs, fichiers et chunks RAG avant leur envoi à un modèle de langage (LLM), réduisant ainsi de 60 à 95 % le nombre de tokens utilisés sans altérer les réponses. Disponible sous forme de bibliothèque, proxy ou serveur MCP, il s’intègre facilement dans des workflows existants pour optimiser les coûts et la latence des appels aux LLM. Le projet, développé en Rust et JavaScript, propose des fonctionnalités avancées comme la compression de données tabulaires (Excel) ou la gestion dynamique de la verbosité des requêtes.

giancarloerra/SocratiCode: Enterprise-grade (40m+ LOC) codebase intelligence, zero-setup, local & private Plugin/Skill/Extension or MCP: hybrid semantic search, polyglot dependency graphs, symbol-level impact analysis & call-flow, interactive HTML viewer, cross-project & branch-aware search, DB/API/infra knowledge. 61% less tokens, 84% fewer calls, 37x faster. Cloud in beta.

SocratiCode est un moteur de contexte open source pour l'IA, conçu pour fournir une compréhension instantanée et automatisée de bases de code entières (et infrastructures) à grande échelle, sans configuration, en local et privé. Il se distingue par des fonctionnalités avancées comme la recherche sémantique hybride, les graphes de dépendances polyglottes, l'analyse d'impact au niveau des symboles et des flux d'appels, ainsi qu'un visualiseur interactif en HTML.

Le projet propose des plugins et extensions pour divers éditeurs (VS Code, Cursor, Codex, etc.) et un modèle MCP, optimisant l'efficacité avec une réduction de 61 % des tokens et 84 % des appels API, tout en étant 37 fois plus rapide. Une version cloud est en bêta.

Développé sous licence AGPL-3.0, SocratiCode cible les environnements d'entreprise avec plus de 40 millions de lignes de code supportées, tout en restant accessible et gratuit.

ADR : de la documentation bureaucratique à la décision éclairante

L’article aborde la pratique des Architecture Decision Records (ADR) en les présentant comme un outil de documentation utile, loin de la simple bureaucratie. Il met en avant leur utilité pour tracer les décisions techniques, justifier les choix auprès des parties prenantes, faciliter l’intégration des nouveaux membres et éviter le bus factor. Deux concepts clés sont expliqués : le modèle ACED, qui structure la réflexion en quatre quadrants (Pourquoi/Comment, Technique/Fonctionnel), et le framework Cynefin, qui aide à catégoriser le contexte décisionnel pour adapter la méthode de résolution.

L’auteur s’appuie sur une conférence (DevLille 2026) où Nicolas Delsaux et Logan Hauspie ont démontré comment rendre les ADR plus pertinents en intégrant ces outils. Plutôt que de se limiter à des détails techniques, les ADR doivent capturer les enjeux fonctionnels et l’environnement cognitif de l’équipe au moment de la décision, comme le permet Cynefin.

Enfin, l’article propose une méthodologie en sept étapes pour concevoir un ADR, en insistant sur l’importance de clarifier le contexte et de poser la bonne question dès le départ. L’exemple donné illustre comment formuler une problématique concrète, comme le stockage d’indicateurs de popularité de librairies.

How Habits Actually Work - Scott H Young

L’article de Scott H. Young remet en question les idées reçues sur les habitudes, soulignant que leur formation et leur maintien reposent davantage sur l’ingénierie comportementale que sur la volonté ou la perfection. Il explique que des croyances comme la nécessité d’une répétition ininterrompue, la formation en 30 jours ou l’automaticité totale des habitudes sont erronées, s’appuyant sur des études montrant que manquer un jour n’anéantit pas une habitude et que l’effort reste souvent nécessaire.

Young précise que les habitudes complexes, comme l’exercice ou une alimentation saine, ne deviennent jamais totalement automatiques et exigent des stratégies durables pour être maintenues. Il cite des recherches indiquant que le délai moyen pour atteindre un plateau d’automaticité dépasse deux mois, voire près d’un an pour certaines habitudes, loin des 30 jours souvent évoqués.

L’auteur conclut que la clé réside dans la conception de systèmes comportementaux adaptés, plutôt que dans la discipline ou la culpabilité, transformant ainsi les défis en opportunités d’amélioration sans effort excessif.

shadcn/improve: Use your most capable model to audit your codebase and write plans for cheaper models to execute.

shadcn/improve est un outil conçu pour optimiser l'audit d'un codebase en utilisant un modèle performant pour analyser le code et générer des plans d'action, puis en confiant l'exécution à des modèles moins coûteux. L'idée centrale est de séparer l'intelligence (spécification et priorisation) de l'exécution, afin de réduire les coûts tout en maintenant une qualité élevée.

L'outil propose plusieurs commandes pour adapter l'audit, comme une analyse rapide, exhaustive ou ciblée (sécurité, performances, etc.), et génère des plans détaillés en Markdown dans un dossier dédié. Ces plans peuvent être exécutés par d'autres agents ou revus manuellement avant validation.

Un exemple concret montre comment l'outil identifie des problèmes comme une duplication de configuration ou des inefficacités algorithmiques, puis produit des spécifications claires pour les corriger, tout en permettant de rejeter des faux positifs pour éviter leur retour lors des prochains audits.

Vibe Coder vs Software Engineer | Yusuf Aytas

L’article oppose deux approches du développement logiciel : le vibe coder, qui privilégie la rapidité de prototypage via des outils comme l’IA, et l’ingénieur logiciel, axé sur la qualité, la maintenabilité et la sécurité du code dans un environnement réel. L’auteur souligne que l’IA excelle pour générer des prototypes, mais que son utilisation dans un codebase partagé nécessite une évaluation rigoureuse, notamment en termes de revues, de tests et de maintenance.

L’idée centrale réside dans la mesure de la productivité : un vibe coder se concentre sur le temps nécessaire pour obtenir une première version fonctionnelle, tandis qu’un ingénieur évalue le temps jusqu’à une fusion sûre, incluant les coûts de revue, de déploiement et de maintenance. L’auteur met en garde contre l’illusion de gains de productivité si l’IA génère du code non maîtrisé, transférant la charge en aval.

Enfin, l’article insiste sur la nécessité de contraindre la production de code par l’IA pour éviter une accumulation de dette technique. Le code généré doit être minimaliste, justifié et aligné sur les standards existants, sous peine de complexifier inutilement le travail des équipes en aval.

DevLille 2026

Le DevLille 2026, anciennement Devfest Lille, s'est tenu à Lille au Grand Palais, comme chaque année. L'auteur partage son expérience en mettant en avant la keynote d'ouverture animée par Frédéric Leguédois, qui a critiqué avec humour les dérives de l'agilité dans les projets logiciels, notamment l'utilisation excessive de processus lourds et de roadmaps peu utiles aux utilisateurs finaux. Il a également évoqué les estimations fantaisistes de retour sur investissement (ROI) souvent utilisées dans les organisations.

Lors de cet événement, l'auteur a participé à un codelab sur Rust, un langage de programmation de bas niveau, animé par Youssef Nait Belkacem et Jean-Eudes Couignoux. Ce workshop a permis de découvrir les bases de Rust et de développer un microservice en Domain-Driven Design (DDD), tout en réalisant un programme inspiré de Super Mario. L'auteur souligne la robustesse de Rust, son compilateur aidant à réduire les erreurs, malgré une courbe d'apprentissage plus raide que Go.

Enfin, Florian Lemaire a présenté Coolify, une solution d'auto-hébergement permettant de gérer ses propres services pour moins de 10 € par mois, d'abord sur un Raspberry Pi puis dans le cloud. Cette conférence a mis en lumière une alternative économique et flexible pour l'hébergement de projets personnels ou professionnels.

Cycle de vie des Skills IA : design, evals et archivage

Le blog d'Ippon explique comment gérer efficacement le cycle de vie des skills IA, ces modules qui étendent les capacités des agents conversationnels. L'idée centrale est de les traiter comme du code : conception, tests, évaluation et archivage sont essentiels pour éviter des dysfonctionnements silencieux, surtout lors des mises à jour des modèles. Les skills reposent sur un standard ouvert, le fichier SKILL.md, dont la description joue un rôle clé en tant que trigger pour l'agent, limitant ainsi la pollution du contexte.

Deux types de skills sont distingués : les capability uplift, qui ajoutent des compétences manquantes à l'agent (et vieillissent rapidement), et les encoded preference, qui organisent des processus existants (et restent stables). Leur gestion nécessite des evals pour détecter l'obsolescence ou vérifier la conformité aux workflows. Une mauvaise description peut rendre un skill inutilisable, car l'agent ne sélectionne que cette partie pour décider de son activation.

Enfin, le cycle de vie complet inclut design, tests, déploiement, observation et archivage. Négliger une étape entraîne une dégradation (skill rot), avec des fichiers obsolètes encombrant l'écosystème. La clé réside dans une approche structurée, partant de la description pour garantir une intégration efficace et durable.

.gitignore Isn’t the Only Way To Ignore Files in Git | Nelson Figueroa

Git propose plusieurs méthodes pour ignorer des fichiers, au-delà du traditionnel fichier .gitignore. L’auteur explique qu’il existe trois niveaux d’ignorance : le fichier .gitignore classique (partagé avec le dépôt), le fichier .git/info/exclude (local au dépôt mais non versionné) et le fichier global ~/.config/git/ignore (valable pour toutes les instances Git de la machine). Ce dernier est utile pour des motifs comme .DS_Store sur macOS, tandis que .git/info/exclude permet d’exclure des fichiers propres à un dépôt sans les commiter.

L’article détaille aussi comment personnaliser le fichier d’ignorance global via git config --global core.excludesFile, et comment vérifier quel fichier est à l’origine de l’ignorance d’un fichier avec la commande git check-ignore -v. Cette commande affiche le chemin et la ligne du fichier responsable, utile pour le débogage.

Enfin, l’auteur mentionne que ce sujet a suscité l’intérêt sur Hacker News, et propose d’autres articles liés à Git, comme le clonage de branches spécifiques ou l’extraction de versions de paquets Homebrew.