Votre CLI a un nouvel utilisateur, et ce n’est pas un humain

Vous demandez à votre copilote IA de capturer une fenêtre. Le copilote écrit peek app "Xcode". L’outil cherche une fenêtre dont le propriétaire s’appelle exactement Xcode. Il ne la trouve pas, car le processus s’appelle Xcode-16.3. L’outil affiche Erreur : application introuvable. Le copilote, qui est un LLM doté de la mémoire émotionnelle d’un poisson rouge, essaie peek app "Xcode-16.3". Ça fonctionne. Mais cela lui a coûté un cycle de conversation, des tokens d’entrée, des tokens de sortie et la patience de celui qui paie la facture. ...

7 avril 2026 · Fernando

Le modèle on-device d'Apple est terrible pour le chat mais étonnamment bon en structured output et tool calling

Je teste intensivement depuis plusieurs semaines le modèle on-device d’Apple — celui de ~3B paramètres qui tourne sur le Neural Engine de n’importe quel Mac avec Apple Silicon. Pour l’évaluer en profondeur, j’ai construit Think Local, une app macOS qui exerce chaque capacité du modèle : chat, génération d’images, structured output, tool calling et comparaison de paramètres. Ma conclusion : comme chatbot, le modèle est décevant. Mais comme moteur de structured output et tool calling, il est étonnamment efficace. ...

7 avril 2026 · Fernando

Bridge Async Swift vers Sync C : quatre fonctions pour utiliser le LLM d'Apple depuis n'importe quel langage

Le framework Foundation Models d’Apple (macOS 26) expose un LLM d’environ 3 milliards de paramètres qui fonctionne directement sur l’appareil, gratuitement, sans clé API. Voici le problème : il ne parle que Swift. Et pas n’importe quel Swift — Swift async. Votre outil tourne avec Python ? Aucun binding. Avec Rust ? Rien non plus. Avec un script shell ? Pas possible. Le LLM le moins cher du marché (gratos, littéralement) est enfermé derrière deux barrières : le langage et le modèle de concurrence. ...

5 avril 2026 · Fernando

Je paie $15 par million de tokens pour écrire 'fix: typo'

Hier, j’ai écrit un message de commit avec Claude Code. Le diff contenait un changement d’une seule ligne : une faute de frappe dans un commentaire. Claude Opus a analysé le diff, réfléchi pendant deux secondes, et généré fix: correct typo in auth comment. Pour cela, il a consommé environ 800 tokens en entrée et 30 en sortie, à $15 et $75 par million respectivement. Coût : une fraction de centime. Mais multipliez cela par 40 commits par jour, 250 jours par an, dans une entreprise comptant 200 développeurs utilisant les coding agents, et cette fraction de centime se transforme en milliers de dollars dépensés pour réaliser une tâche intellectuelle équivalente à appliquer des pansements. ...

5 avril 2026 · Fernando

L'analyse de sentiment d'Apple pense que 'supprimer le fichier temporaire' est une menace de mort

NLTagger est l’API d’Apple pour l’analyse de sentiment. Elle est intégrée dans iOS et macOS, fonctionne on-device, ne nécessite pas de serveur, et se trouve à trois lignes de code de distance. C’est le premier résultat qu’on trouve en cherchant “sentiment analysis Swift”. Voici ce qu’elle renvoie pour du texte que n’importe quel développeur écrirait lors d’une journée normale : Message NLTagger Réalité “delete the temp file” -0.8 Instruction neutre “ok” -0.8 Confirmation neutre “run make test” -0.6 Instruction neutre “commit and push” -0.4 Instruction neutre “great job, thanks!” +1.0 Positif (correct) “this is fucking broken” -1.0 Négatif (correct) L’échelle va de -1.0 (très négatif) à +1.0 (très positif). Selon Apple, “delete the temp file” a presque la même charge émotionnelle que “this is fucking broken”. Et “ok” – la réponse la plus neutre de la langue anglaise – obtient un score de -0.8. ...

5 avril 2026 · Fernando

Ton Mac dispose d'un LLM gratuit et tu ne l'utilises pas

Tu paies entre 20 et 200 dollars par mois pour avoir accès à des LLM. Claude, GPT, Gemini, peu importe. Et la majorité des requêtes que tu envoies depuis tes scripts et outils de développement ressemblent souvent à ceci : “Classe ceci en une des cinq catégories suivantes.” “Donne un nom à cette variable.” “Identifie si ce commit est un correctif, une fonctionnalité ou un refactoring.” “Résume ce bloc de texte en deux phrases.” Pendant ce temps, ton Mac avec Apple Silicon possède un modèle de langage de 3 milliards de paramètres, intégré directement dans le système d’exploitation, sans frais, sans réseau, sans clé API, sans latence de réseau. Et probablement, tu ne l’as jamais utilisé pour quoi que ce soit. ...

4 avril 2026 · Fernando

NLTagger et l'analyse de sentiment : pourquoi Apple pense que votre code est déprimant

Imaginez que vous construisez une application qui analyse les conversations d’une équipe de développement. Vous voulez détecter si le ton général est sain ou s’il y a des signes de stress. Vous utilisez NLTagger d’Apple parce qu’il est disponible, gratuit, fonctionne on-device et ne nécessite pas de serveur. Trois lignes de code et le tour est joué. Première surprise : la phrase “kill the process and restart the daemon” obtient une note de -0.6. Négatif. Presque hostile. “Fatal error in memory allocation” atteint -0.8. Et “crash report uploaded successfully” — qui est littéralement une bonne nouvelle — obtient -0.4. ...

28 mars 2026 · Fernando

Ton IA écrit du code qui compile mais ne signifie rien (et un linter peut la piéger)

Imagine que tu demandes à quelqu’un de te construire une étagère. Il te la donne. Elle est belle. Elle a des étagères, des vis, tout est à sa place. Tu la poses contre le mur et elle s’effondre. Les vis sont des accessoires. Elles ressemblent à des vis, mais sont en plastique. C’est ce qu’un LLM fait lorsqu’il abuse du système de types. Il te livre du code qui compile, qui passe les tests, qui a la forme correcte. Mais en interne, là où il devrait y avoir des types significatifs, il y a des chaînes de caractères (String). Là où il devrait y avoir un état explicite, il y a un nil qui signifie trois choses différentes selon la personne qui le lit. Et là où il devrait y avoir un énumération (enum) avec deux cas, il y a un == "claude" qu’un jour quelqu’un écrira mal, et personne ne s’en rendra compte avant que cela ne tombe en production. ...

23 mars 2026 · Fernando

Un filtre de Kalman pour ne pas déranger le serveur (ou le plaisir coupable de la sur-ingénierie)

J’ai une app de barre de menu qui a besoin d’obtenir un chiffre. Un pourcentage entre 0 et 100. Pour ce faire, elle interroge un serveur toutes les 30 secondes. Faites le calcul : 30 secondes ça fait 2 requêtes par minute, 120 par heure, 960 sur une journée de travail de 8 heures. Près de mille requêtes HTTP par jour pour lire un chiffre qui parfois ne change pas pendant 20 minutes. ...

12 mars 2026 · Fernando

Mon IA a lu un JSON du disque 900 fois dans une boucle (et pourquoi aucun linter ne peut te sauver)

La semaine dernière, mon IA a écrit du code qui lisait un fichier JSON depuis le disque, le décryptait, faisait une recherche précise, puis répétait ça 900 fois dans une boucle for. À chaque itération : ouvrir le fichier, décoder le JSON, chercher une valeur, tout jeter. Et recommencer. C’est le genre d’erreur que j’enseigne à mes étudiants à éviter dans le premier mois de cours. Ce qui s’est passé (sans détour) Je construis Tokamak, une application de barre de menus pour macOS qui surveille les quotas de Claude Max. Une partie de la fonctionnalité scanne environ 900 fichiers JSONL de sessions Claude Code. Pour chaque fichier, elle doit déterminer l’offset de byte où elle s’était arrêtée la fois précédente (lecture incrémentale — ne lire que les parties nouvelles). ...

24 février 2026 · Fernando