Un fichier, une capacité : comment j'ai arrêté de maintenir une liste d'imports
Comment la config est posée. import-tree lit chaque fichier de modules/, donc il n'y a pas de liste d'imports à tenir à jour, et une seule convention tient le reste.
Notes de terrain
Notes issues du labo et de mes propres machines. Si une leçon m'a coûté une heure de débogage, elle ne devrait pas vous coûter une journée.
Les notes elles-mêmes sont écrites en anglais. S'abonner avec RSS.
Une série
Huit parties, une pièce de la config par partie. Un seul flake construit toutes les machines que je fais tourner.
Comment la config est posée. import-tree lit chaque fichier de modules/, donc il n'y a pas de liste d'imports à tenir à jour, et une seule convention tient le reste.
niri avec noctalia et un jeu de couleurs, empaquetés pour que tout le bureau se construise comme un seul objet, et des menus qui affichent les raccourcis au lieu de demander de les retenir.
Commiter des secrets à découvert, chiffrés avec age, à partir de clés dérivées par ssh-to-age de clés SSH que vous avez déjà.
Immich, Jellyfin, Grocy et SearXNG sur un serveur à la maison, sans rien d'atteignable depuis internet. Comment la configuration tailnet-only est montée.
Construire Neovim depuis un init.lua vide : chargement paresseux, un jeu de couleurs, une grammaire tree-sitter pour mes propres formats de fichier, et nixd pointé sur le flake.
ik_llama.cpp construit avec des flags CPU pour le matériel que j'ai vraiment, servant une API OpenAI-compatible à une interface de chat.
Trois machines qui ne partagent presque rien sauf le flake. Ce qui reste commun, ce qui reste par machine, et comment les empêcher de diverger.
Le shell comme dérivation : un seul paquet wrappé vers lequel chaque point d'entrée se résout, avec l'identité git fixée à la construction.
Le reste
Le mélange d'experts, la quantification et le contexte qui ont mis un modèle de 125 milliards de paramètres sur une RTX 3060, avec les débits mesurés sur trois machines.
Lire →Pi, OpenCode et DeepSeek Harness pointés sur le même endpoint OpenAI-compatible sur mon propre matériel, et ce que le harness ajoute au modèle : la boucle, les appels d'outils, les skills, et une configuration qui tient dans le même flake que le reste du système.
Lire →Ce que j'ai appris en remplaçant les fork and exec d'iw et d'ip par des messages nl80211 et rtnetlink dans un outil de détection d'objets connectés, avec le code du noyau et les extraits de la vraie history git.
Lire →30 touches, 16 LED RVB, deux pilotes TLC5947 en cascade, et environ 0,9 A de rétroéclairage contre une alimentation de 300 mA. Ce que la carte m'a appris sur la lecture d'une fiche technique avant de commander les composants.
Lire →Tout ce que je fais tourner est sur du matériel que je possède, alors j'ai ouvert un compte pour voir l'autre côté : security groups, paires de clés, rôles d'instance, et ce qui continue de facturer après l'arrêt de l'instance.
Lire →Dans la file
Notes prises sur les défis d'ingénierie inverse binaire et de corruption mémoire, défi par défi.
Comment le module wifi décide qu'une MAC est un appareil ou un point d'accès, et ce que les préfixes OUI, les sondes mDNS et SSDP pourraient ajouter.
La grammaire tree-sitter de la partie 5 en entier : le fichier de grammaire, les requêtes, et les règles de formatage topiary.
Prochaine étape sur le serveur NixOS : Nextcloud. Le CV le liste déjà, le serveur ne l'héberge pas encore. La note couvrira l'installation une fois qu'elle tournera vraiment.
Rien ici n'est publié avant d'être écrit. Pas encore de flux RSS. Dites-le si vous en voulez un et je l'ajouterai.