Add newsletter #17 and #18

This commit is contained in:
Pascal Le Merrer 2026-03-29 11:44:06 +02:00
parent 6c4500bfd9
commit a0c83a7d21
4 changed files with 139 additions and 5 deletions

View file

@ -0,0 +1,60 @@
Title: Lettre n°17 — 30 mars 2026
Date: 2026-03-30 09:00
Category: Newsletter
JsonLD: <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BlogPosting", "name": "Lettre n°17", "description": "Lettre de veille technologique en développement logiciel", "image": [ "https://www.craftletter.fr/images/craftletter.svg" ], "datePublished": "Mon Mar 30 2026 09:00:00 GMT+0200 (Coordinated Universal Time)", "author": { "@type": "Person", "name": "Pascal Le Merrer", "url": "https://www.linkedin.com/in/pascal-le-merrer/" } } </script>
<img class="logo" alt="Logo Craft Letter" src="{static}/images/craftletter.svg">
## Ce que les développeurs fonctionnels nont pas compris à propos des systèmes
Ian Duncan pense que les développeurs qui utilisent des langages fonctionnels fortement typés ont tendance à [confondre la correction du code avec celle du système](https://www.iankduncan.com/engineering/2026-02-09-what-functional-programmers-get-wrong-about-systems/)🇬🇧. Les garanties apportées par ces langages éliminent des classes entières derreurs. Mais cela ne suffit pas à certifier que les programmes se comporteront correctement en production —en tout cas pas dans le cas des services Web, sur lesquels porte larticle. En effet, ce qui doit fonctionner cest le système complet, qui nest pas limité à un programme&nbsp;: il peut en comporter plusieurs instances, ainsi quune base de données, des serveurs divers, etc.
Les développeurs qui utilisent dautres langages souffrent du même travers, mais dans une moindre mesure, car ils ne peuvent pas avoir autant confiance dans le code vérifié par le compilateur.
## Pourquoi un thème clair est préférable à un thème sombre
Jben explique, de façon très détaillée, [pourquoi un thème clair est souvent préférable à un thème sombre](https://linuxfr.org/users/jben/journaux/je-hais-les-themes-sombres-et-je-peux-l-expliquer)🇫🇷. En bref&nbsp;: cest plus facile à lire par les personnes souffrant dastigmatisme ou de myopie, cest-à-dire une large partie de la population. Et ça ne concerne pas que nos IDE, mais aussi les présentations.
Un contre-exemple est cité dans les commentaires, mais il est marginal&nbsp;: cest celui dun écran de contrôle consulté de nuit par des personnes qui ne peuvent pas en régler la luminosité.
## Des palettes de couleurs pour les personnes qui ne les voient pas bien
Une personne sur vingt souffre dun problème de vision des couleurs. David Nichols met à disposition un outil simple qui permet de [sassurer que les couleurs que vous avez choisies sont distinguables](https://davidmathlogic.com/colorblind/)🇬🇧 par toutes les personnes qui visitent votre site. Il fournit aussi quelques exemples de palettes prédéfinies qui prennent en compte ces problèmes.
## Ces détails qui rendent les interfaces plus agréables
Jakub Krehel fournit une liste dastuces qui permettent de [peaufiner les IHM web](https://jakub.kr/writing/details-that-make-interfaces-feel-better)🇬🇧, avec des exemples interactifs.
La différence saute aux yeux pour certains exemples. Pour dautres, cest beaucoup plus subtil. À un point tel que je nai toujours pas compris lexemple danimation des icônes…
## Tansu
Peter Morgan a développé [Tansu](https://www.infoq.com/news/2026/03/tansu-stateless-kafka-compatible/)🇬🇧, un message broker alternatif à Kafka, qui en utilise le protocole, mais repose sur une architecture beaucoup plus simple. Tansu sappuie sur des back-ends existants pour le stockage et la résilience, plutôt que de chercher à développer des workers résilients comme ceux de Kafka. Ces back-ends peuvent être des systèmes compatibles S3, Postgresql ou Sqlite. Contrairement à Kafka, Tansu vérifie le format des messages, plutôt que de déléguer cette tâche aux clients.
Tansu ne semble pas être tout à fait prêt pour la production, mais cest un projet à suivre.
## Comment la Nasa conçoit des systèmes résilients
Lorsquon parle dun appareil qui quitte le sol de notre planète, parfois pour sen éloigner de plusieurs millions de kilomètres, [la gestion des défaillances matérielles et des erreurs logicielles](https://increment.com/software-architecture/in-space-no-one-can-hear-you-kernel-panic/)🇬🇧 prend une toute autre dimension. Surtout sil sagit dune navette ou autre fusée qui embarque des humains à son bord.
## Les fichiers magiques de Git
Au-delà du bien connu `.gitignore`, [Git lit plusieurs autres fichiers de configuration](https://nesbitt.io/2026/02/05/git-magic-files.html)🇬🇧.
Ce que ne mentionne pas Andrew Nessbit dans cet article, cest que vous pouvez avoir, en complétement de ces fichiers, des configurations personnelles, qui ne seront pas publiées sur le dépôt Git contrairement aux précédentes. Je les utilise pour ne pas polluer avec mes préférences les dépôts Git des projets auxquels je contribue.
Pour ignorer des fichiers dans tous vos projets suivis par Git, vous pouvez [définir un fichier .gitgnore global](https://gist.github.com/subfuzion/db7f57fff2fb6998a16c)🇬🇧. Je recommande dy déclarer les fichiers ou répertoires générés par votre IDE. Cela garantit que ce sera fait lorsque vous démarrer un nouveau projet&nbsp;; et cela évite dajouter dans `.gitignore` du contenu qui ne concerne quune personne dans léquipe, car il peut y avoir autant dIDEs que de contributeurs.
Pour ignorer du contenu spécifique à un clone dun projet, il suffit de le déclarer dans `.git/info/exclude`, avec la même syntaxe que dans `.gitignore`. Vous voyez ce fichier que vous devez penser à ne pas inclure, à chaque fois que vous créez un commit&nbsp;? Cest là quil faut le déclarer. Étant situé dans le dossier `.git`, le contenu du fichier `exclude` ne sera pas suivi par Git, contrairement à celui de `.gitignore`.
## Npmx
[Npmx](https://npmx.dev/blog/alpha-release)🇬🇧 est une nouvelle interface pour naviguer parmi les paquets NodeJS. Il sagit dune réponse aux frustrations de nombreux développeurs insatisfaits de leur expérience avec npm.
Npmx fournit des informations indisponibles sur Npm, sur les performances des modules par exemple. Npmx est encore en version alpha mais progresse rapidement.
## Écrire des extensions PHP en Rust
PHP suit la tendance mainstream en offrant la possibilité décrire des [extensions en Rust](https://github.com/extphprs/ext-php-rs)🇬🇧, et plus seulement en C.
## Paris Web 2026
Paris Web est un événement consacré, sans surprise, au développement Web. Lédition 2026 se tiendra du 24 au 26 septembre. [Lappel à sujets](https://www.paris-web.fr/actualites/appel-a-sujets-edition-2026-ouvert)🇫🇷 pour les conférences et les ateliers est ouvert jusquau 12 avril.

View file

@ -0,0 +1,67 @@
Title: Lettre n°18 — 06 avril 2026
Date: 2026-04-06 09:00
Category: Newsletter
JsonLD: <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BlogPosting", "name": "Lettre n°18", "description": "Lettre de veille technologique en développement logiciel", "image": [ "https://www.craftletter.fr/images/craftletter.svg" ], "datePublished": "Mon Apr 06 2026 09:00:00 GMT+0200 (Coordinated Universal Time)", "author": { "@type": "Person", "name": "Pascal Le Merrer", "url": "https://www.linkedin.com/in/pascal-le-merrer/" } } </script>
<img class="logo" alt="Logo Craft Letter" src="{static}/images/craftletter.svg">
## Chiffrement post-quantique
[Retyc](https://retyc.com/fr)🇫🇷 est une plateforme française qui propose des transferts de fichiers post-quantiques. Cela signifie que les données ne pourraient pas être déchiffrées, même avec un ordinateur quantique.
Je doute que des cybercriminels utilisent déjà des ordinateurs quantiques, même des groupes étatiques, mais il est intéressant de voir que lindustrie sy prépare. En effet, il devrait être possible de décoder, quand ces ordinateurs seront plus accessibles, des données chiffrées collectées avant leur disponibilité.
Retyc est en béta privée actuellement, mais a déjà publié ses tarifs, qui vont de 0 à 216 € par an et par utilisateur.
Ce nest pas le seul projet qui utilise des algorithmes post-quantiques. [OpenSSH le fait depuis plusieurs années](https://www.openssh.org/pq.html)🇬🇧, et cest même devenu le mode par défaut depuis 2022. Or OpenSSH fournit des [outils utilisés par beaucoup dentre nous](https://fr.wikipedia.org/wiki/OpenSSH)🇫🇷.
Une [conférence académique sur ce sujet](https://pqcrypto2026.irisa.fr/)🇬🇧 aura lieu à Saint-Malo mi-avril, mais si vous êtes dans la cible, vous êtes certainement déjà au courant.
## Full Circle
[Full Circle](https://fullcirclemagazine.org/)🇬🇧 est un magazine numérique, gratuit, de la communauté Ubuntu Linux. On y trouve de lactualité sur les logiciels disponibles sous Linux, des tutos, des billets dopinion, des critiques dapplications et de jeux… Il existe aussi des numéros spéciaux dédiés à un thème, en plus du mensuel.
Une [version française](https://www.fullcirclemag.fr/)🇫🇷 est publiée avec un décalage de quelques numéros sur la version anglaise.
## Une alternative au concept de dette logicielle
Thomas Pierrain propose une métaphore qui, daprès lui, serait plus convaincante que celle de la dette technique. Il suggère de [comparer le code à un réseau routier](https://medium.com/@tpierrain/une-alternative-au-concept-de-dette-logicielle-68bb1e16842c)🇫🇷, qui peut comporter des routes avec des ralentisseurs, ou qui sont barrées. Et, parfois, on y trouve des morceaux de verre qui vont vous faire crever un pneu, quil faudra réparer.
## Team Topologies expliqué à Ted Lasso
Toujours parmi les articles de Thomas Pierrain, jen ai découvert un qui explique, de façon succincte, [les quatre types déquipes décrits dans Team Topologies](https://medium.com/@tpierrain/team-topologies-et-football-1639cbd02e97)🇫🇷. Team Topologies est le titre dun ouvrage qui décrit un modèle dorganisation des équipes de développement logiciel, ainsi que leurs modes dinteraction. Ce modèle est orienté vers lefficacité.
Si, comme moi, les analogies avec les rôles dans une équipe de foot ne vous parlent pas, vous pouvez tous simplement les ignorer. Larticle se lit très bien sans ça.
## Rédiger des emails en markdown
Si vous avez eu loccasion denvoyer des emails au format HTML à partir dune application, vous savez que les webmails ne traitent pas le HTML aussi bien que les navigateurs. La mise en page se fait avec des tables, comme au début des années 2000, et le manque de standardisation rappelle aussi cette période.
Il existe des frameworks pour contourner ces limitations. [EmailMd](https://www.emailmd.dev/)🇬🇧 en est un, qui ajoute une couche dabstraction, de sorte que vous nayez à écrire que du Markdown.
## Formation à Rust, de débutant à expert
Microsoft a mis en ligne [sept livres pour lapprentissage de Rust](https://github.com/microsoft/RustTraining)🇬🇧, de la découverte à lapprofondissement. Les premiers sadressent à des développeurs qui viennent dun autre langage&nbsp;: C ou C++, C# ou Python. Les suivants sont consacrés à des points plus précis&nbsp;: asynchronisme, patterns, typage, pratiques dingéniérie.
## Property-Based Testing avec Hegel
[Hypothesis](https://hypothesis.works/) est un framework de property-based testing très populaire, écrit en Python.
Le property-based testing consiste à écrire des tests dans lesquels on sassure quune propriété est toujours vérifiée, quelles que soient les données dentrées. Par exemple, un test peut contrôler que le résultat de lappel à une fonction qui renvoie un nombre de jours est toujours un nombre entier strictement positif. Contrairement aux tests paramétrés, cest le framework qui va générer les données dentrées, de façon plus ou moins aléatoire. Cela permet de tester un bien plus grand nombre de cas, dont certains auquel le développeur/la développeuse naurait pas pensé.
Le créateur dHypothesis a rejoint Antithesis pour y développer [Hegel](https://antithesis.com/blog/2026/hegel/)🇬🇧, qui met à disposition Hypothesis dans dautres langages&nbsp;: Rust, Go, C++, OCaml, et TypeScript. Lapproche adoptée est amusante&nbsp;: au lieu de réécrire Hypothesis dans ces différents langages, ce qui aurait demandé un travail considérable, ils ont fait le choix de créer des décorateurs (*wrappers*) autour du paquet Python —exactement linverse de ce que lon fait habituellement, où Python encapsule un module écrit dans un langage plus performant.
## Amper
[Amper](https://amper.org/dev/)🇬🇧 est un outil créé par JetBrains, pour le build dapplications Java et Kotlin —langage dont ils sont aussi les créateurs. Il est encore à un stade expérimental. Il vise à packager des applications pour toutes les plateformes cibles de Kotlin&nbsp;: la JVM, Android, iOS, Linux, Windows, et macOS. Amper supporte également Swift et Objective-C, dans le cadre des applications iOS produites avec Kotlin MultiPlatform.
Javoue que ce projet me fait un peu peur. Les outils de build du monde Java sont complexes. La doc de Gradle, par exemple, représente plus de 1300 pages quand elle est exportée en PDF. Or, chez JetBrains, la simplicité nest pas une priorité&nbsp;; on peut le voir, entre autres, avec les concepts quils continuent dajouter à Kotlin au fil des versions. Je trouve cela regrettable, car cest ce qui aurait vraiment pu faire la différence avec les outils existants.
## Des outils de développement particulièrement indiscrets
Bien quil ne soit pas écrit par quelquun de neutre, [ce billet de blog](https://www.toolbox-kit.com/blog/i-audited-popular-dev-tools-privacy-results-are-scary)🇬🇧 reste intéressant, car il montre que des sites populaires comme jsonformatter.org, diffchecker.com, base64decode.org, et codebeautify.org ne sont pas respectueux de la vie privée —contrairement à regex101.com.
## Le fonctionnement interne de PostgreSql
Hironobu SUZUKI explique [comment fonctionne PostgreSQL](https://www.interdb.jp/pg/index.html)🇬🇧. Cest vraiment riche, prévoyez dy consacrer quelques heures si vous voulez tout lire et comprendre.
## Comment fonctionne le format JPEG
Dans un article court mais dense, Sophie explique [les astuces exploitées dans le format JPEG](https://www.sophielwang.com/blog/jpeg)🇬🇧, afin déliminer les informations auxquelles loeil humain est peu sensible, ce qui réduit la taille des fichiers.

View file

@ -1,14 +1,14 @@
Title: Accueil
Date: 2026-03-23 09:00
Date: 2026-04-06 09:00
URL:
save_as: index.html
Category: Home
JsonLD: { "@context": "https://schema.org", "@type": "WebPage", "name": "Accueil", "description": "Lettre de veille technologique en développement logiciel", "image": [ "https://www.craftletter.fr/images/craftletter.svg" ], "datePublished": "Mon Mar 23 2026 09:00:00 GMT+0200 (Coordinated Universal Time)", "author": { "@type": "Person", "name": "Pascal Le Merrer", "url": "https://www.linkedin.com/in/pascal-le-merrer/" } }
JsonLD: { "@context": "https://schema.org", "@type": "WebPage", "name": "Accueil", "description": "Lettre de veille technologique en développement logiciel", "image": [ "https://www.craftletter.fr/images/craftletter.svg" ], "datePublished": "Mon Apr 06 2026 09:00:00 GMT+0200 (Coordinated Universal Time)", "author": { "@type": "Person", "name": "Pascal Le Merrer", "url": "https://www.linkedin.com/in/pascal-le-merrer/" } }
<img class="logo" alt="Logo Craft Letter" src="{static}/images/craftletter.svg">
# La [lettre n°16]({filename}/newsletter/craft-letter-16.md) est parue !
# La [lettre n°18]({filename}/newsletter/craft-letter-18.md) est parue !
La Craft Letter est une newsletter hebdomadaire dans laquelle je partage des articles
issus de ma veille technologique. Vous y trouverez des articles relatifs au développement logiciel d'une façon générale, qu'il soit front-end, back-end ou autre. Mais aussi des articles consacrés à l'architecture logicielle, la méthodologie, les outils, des projets open source, des conférences...
@ -37,6 +37,8 @@ Pour savoir qui je suis, ou pourquoi j'écris cette lettre, je vous invite à vo
# Archives
* [Lettre n°18]({filename}/newsletter/craft-letter-18.md)
* [Lettre n°17]({filename}/newsletter/craft-letter-17.md)
* [Lettre n°16]({filename}/newsletter/craft-letter-16.md)
* [Lettre n°15]({filename}/newsletter/craft-letter-15.md)
* [Lettre n°14]({filename}/newsletter/craft-letter-14.md)

View file

@ -38,12 +38,17 @@
<hr style=" display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;">
Voilà, cest tout pour cette semaine ! Si vous appréciez le contenu de la Craft Letter, parlez-en autour de vous 😉.
<!-- Signature -->
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td style="padding: 0; height: 20px; line-height: 20px; font-size: 20px; ">&nbsp;
<td style="padding: 0;{{SIGNATURE_STYLE}}">
Voilà, cest tout pour cette semaine ! Si vous appréciez le contenu de la Craft Letter, parlez-en autour de vous 😉.
</td>
</tr>
<tr>
<td style="padding: 0;{{SIGNATURE_STYLE}}">
Merci à Benoît et Mickaël pour la relecture et leurs suggestions !
</td>
</tr>
<tr>