Techno-louanges 2022
22 décembre 2022Pour cette fin d’année j’aimerais adresser quelques louanges à des outils et technologies que j’ai apprécié ou découvert en 2022.
Helix
Un éditeur de code, inspiré de Vim et Kakoune, avec (presque) toutes les fonctionnalités requises intégrées nativement, une configuration par défaut “saine” et une facilité de découverte et d’utilisation qui aide grandement à la prise en main. En l’espace de quelques jours il a complètement remplacé Neovim et tous les plugins qui allaient avec pour le rendre plus efficace (LSP, tree-sitter, gestionnaire de plugins, gestionnaire de serveurs LSP, etc.). Le tout en ayant quasiment pas à toucher son fichier de configuration.
Syncthing
Je suis passé full-Apple depuis quelques temps, je ferais peut-être un article à ce sujet pour donner mon retour d’expérience et expliquer le pourquoi. Et donc j’utilise iCloud pour tout synchroniser. Mais je ne veux pas m’enfermer dans cette prison doré en jetant la clé, je veux pouvoir garder une porte de sortie au cas où demain je décide de re-changer de crêmerie. Et c’est là que Syncthing intervient, il me permet de synchroniser mes données vers un serveur (toujours en ligne) sans que celui-ci ne puisse les lire (car chiffrées), et vers une autre machine sous ArchLinux (ponctuellement connectée). C’est extrêmement simple à installer et configurer, ça fonctionne partout, et ça fonctionne à merveille. Si je ne voyais pas passer ses mises à jour j’en oublierais se présence tellement il ne se met pas en travers de mon chemin.
Miniflux
C’est un agrégateur de flux RSS, relativement minimaliste, qui fait ce qu’on lui demande, et qui le fait bien. J’utilise le service géré et hébergé par le développeur du projet, ça permet de soutenir le projet, et ça me permet de ne pas avoir à m’en occuper. Puis ça coûte beaucoup beaucoup moins chère que Feedly et autres alternatives.
Chezmoi
C’est un gestionnaire de “dotfiles”. J’avais écrit un article où je comparais chezmoi et yadm, en concluant que mon choix se portait sur ce dernier. J’ai finalement changé d’avis et opté pour chezmoi. Les deux raisons principales étant que la complétion des nom des fichiers fonctionne, et la fonctionnalité de template qui permet de gérer les différences entre machines/OS/etc. est plus avancée.
Go
À la base je suis plutôt un Pythoniste, language que j’aime pour sa lisibilité et sa versatilité, mais depuis pas mal de temps il y a deux choses qui me faisaient de l’œil :
- le typage statique, les annotations de type Python c’est bien gentil, mais étant donné que ça ne lève pas d’erreur à l’utilisation ça se limite plus ou moins à de la documentation, ou à ce que mypy/pyright sont capable de comprendre, en Go si le type n’est pas bon ça ne compile pas et il faut corriger, ça permet d’attraper des bugs plus tôt
- un binaire compilé, il suffit de copier le fichier au bon endroit et ça fonctionne, pas de virtualenv et de dépendances gérer
Rust est un probablement le langage le plus prometteur de ces dernières années, mais hors de ma portée, trop de concepts que je ne maîtrise pas. Je suis un administrateur système à la base. Donc mon dévolu s’est porté vers Go et c’est vachement agréable de coder avec, il y a plein de bibliothèque sympas (samber/lo, spf13/viper) et d’outils vachement pratiques (goreleaser). Et étant donné qu’un bon nombre d’outils que j’utilise sont écrits en Go (Docker, Kubernetes, Terraform, Syncthing, Miniflux, Chezmoi, etc.), ce n’est pas déconnant d’avoir cette corde à mon arc.
ZFS
C’est la Rolls des systèmes de fichiers, il n’y a pas de compétition aujourd’hui. Snapshots. Déduplication. RAIDZ/vdev mirror. Robustesse. J’en ai déjà touché quelques mots dans mon article sur mes sauvegardes. C’est merveilleux.
Arq Backup
Pareil, j’en ai parlé un peu dans mon article sur les sauvegardes, c’est le meilleur logiciel de sauvegarde que j’ai utilisé jusqu’à présent, il est efficace et sait se faire oublier. L’inconvénient c’est que ça fonctionne pour macOS (Windows aussi je crois…), mais pas Linux. Pour ce dernier je recommande Restic ou BorgBackup. L’avantage qu’il a c’est qu’il se base sur la fonctionnalité de snapshots du système de fichiers HFS+, donc chaque sauvegarde ne copiera que le delta par rapport au snapshot précédent sans avoir à parcourir tout le FS à la recherche des changements. Donc ça ne tue pas les I/ O et la batterie de ma machine à chaque sauvegarde, donc je peux en faire plus fréquemment, autrement dit toutes les heures.
1Password
J’ai vraiment fait le tour des gestionnaires de mots de passe (de gopass à Bitwarden), c’est celui-ci que je préfère de loin, malgré qu’il ne soit pas open-source. En plus de toutes les fonctionnalités indispensables (générateur, OTP, synchro, etc.), il en a quelques-unes supplémentaires qui font la différence :
- il peut faire office d’agent SSH, donc je lui file simplement ma clé et elle est synchro entre mes différentes machines et à l’utilisation je la dévérouille soit via mon empreinte biométrique, soit via la passphrase de mon coffre
- en complément de l’agent SSH il peut signer les commits Git avec ma clé
- en CLI il peut servir de wrapper à des commandes qui ont besoin d’identifiants via des variables d’environnements, en allant les chercher à la volée dans le coffre (cf. exemple)
- il est déjà prêt à supporter les passkeys
Il m’évite ainsi d’avoir à commit des secrets chiffrés dans mes dotfiles ou différents projets, et ça c’est quand-même rassurant.