diff --git a/content/newsletter/craft-letter-17.md b/content/newsletter/craft-letter-17.md new file mode 100644 index 0000000..d9de504 --- /dev/null +++ b/content/newsletter/craft-letter-17.md @@ -0,0 +1,60 @@ +Title: Lettre n°17 — 30 mars 2026 +Date: 2026-03-30 09:00 +Category: Newsletter +JsonLD: + + +## Ce que les développeurs fonctionnels n’ont 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 d’erreurs. 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 l’article. En effet, ce qui doit fonctionner c’est le système complet, qui n’est pas limité à un programme : il peut en comporter plusieurs instances, ainsi qu’une base de données, des serveurs divers, etc. + +Les développeurs qui utilisent d’autres 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 : c’est plus facile à lire par les personnes souffrant d’astigmatisme ou de myopie, c’est-à-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 : c’est celui d’un é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 d’un problème de vision des couleurs. David Nichols met à disposition un outil simple qui permet de [s’assurer 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 d’astuces 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 d’autres, c’est beaucoup plus subtil. À un point tel que je n’ai toujours pas compris l’exemple d’animation 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 s’appuie 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 c’est un projet à suivre. + +## Comment la Nasa conçoit des systèmes résilients + +Lorsqu’on parle d’un appareil qui quitte le sol de notre planète, parfois pour s’en é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 s’il s’agit d’une 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, c’est 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 d’y 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 ; et cela évite d’ajouter dans `.gitignore` du contenu qui ne concerne qu’une personne dans l’équipe, car il peut y avoir autant d’IDEs que de contributeurs. + +Pour ignorer du contenu spécifique à un clone d’un 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 ? C’est là qu’il 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 s’agit d’une 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. [L’appel à sujets](https://www.paris-web.fr/actualites/appel-a-sujets-edition-2026-ouvert)🇫🇷 pour les conférences et les ateliers est ouvert jusqu’au 12 avril. diff --git a/content/newsletter/craft-letter-18.md b/content/newsletter/craft-letter-18.md new file mode 100644 index 0000000..f1f7c9f --- /dev/null +++ b/content/newsletter/craft-letter-18.md @@ -0,0 +1,67 @@ +Title: Lettre n°18 — 06 avril 2026 +Date: 2026-04-06 09:00 +Category: Newsletter +JsonLD: + + +## 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 l’industrie s’y 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 n’est pas le seul projet qui utilise des algorithmes post-quantiques. [OpenSSH le fait depuis plusieurs années](https://www.openssh.org/pq.html)🇬🇧, et c’est même devenu le mode par défaut depuis 2022. Or OpenSSH fournit des [outils utilisés par beaucoup d’entre 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 l’actualité sur les logiciels disponibles sous Linux, des tutos, des billets d’opinion, des critiques d’applications 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, d’aprè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, qu’il faudra réparer. + +## Team Topologies expliqué à Ted Lasso + +Toujours parmi les articles de Thomas Pierrain, j’en 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 d’un ouvrage qui décrit un modèle d’organisation des équipes de développement logiciel, ainsi que leurs modes d’interaction. Ce modèle est orienté vers l’efficacité. + +Si, comme moi, les analogies avec les rôles dans une équipe de foot ne vous parlent pas, vous pouvez tous simplement les ignorer. L’article se lit très bien sans ça. +## Rédiger des emails en markdown + +Si vous avez eu l’occasion d’envoyer des emails au format HTML à partir d’une 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 d’abstraction, de sorte que vous n’ayez à écrire que du Markdown. + +## Formation à Rust, de débutant à expert + +Microsoft a mis en ligne [sept livres pour l’apprentissage de Rust](https://github.com/microsoft/RustTraining)🇬🇧, de la découverte à l’approfondissement. Les premiers s’adressent à des développeurs qui viennent d’un autre langage : C ou C++, C# ou Python. Les suivants sont consacrés à des points plus précis : asynchronisme, patterns, typage, pratiques d’ingé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 s’assure qu’une propriété est toujours vérifiée, quelles que soient les données d’entrées. Par exemple, un test peut contrôler que le résultat de l’appel à une fonction qui renvoie un nombre de jours est toujours un nombre entier strictement positif. Contrairement aux tests paramétrés, c’est le framework qui va générer les données d’entré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 n’aurait pas pensé. + +Le créateur d’Hypothesis a rejoint Antithesis pour y développer [Hegel](https://antithesis.com/blog/2026/hegel/)🇬🇧, qui met à disposition Hypothesis dans d’autres langages : Rust, Go, C++, OCaml, et TypeScript. L’approche adoptée est amusante : 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 l’inverse de ce que l’on 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 d’applications 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 : 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. + +J’avoue 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é n’est pas une priorité ; on peut le voir, entre autres, avec les concepts qu’ils continuent d’ajouter à Kotlin au fil des versions. Je trouve cela regrettable, car c’est ce qui aurait vraiment pu faire la différence avec les outils existants. + +## Des outils de développement particulièrement indiscrets + +Bien qu’il ne soit pas écrit par quelqu’un 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)🇬🇧. C’est vraiment riche, prévoyez d’y 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 l’oeil humain est peu sensible, ce qui réduit la taille des fichiers. diff --git a/content/pages/index.md b/content/pages/index.md index e8614de..d6d68ec 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -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/" } } -# 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) diff --git a/mdtosendy_config/email-template.html b/mdtosendy_config/email-template.html index f4b4ed5..26b3608 100644 --- a/mdtosendy_config/email-template.html +++ b/mdtosendy_config/email-template.html @@ -38,12 +38,17 @@
- Voilà, c’est tout pour cette semaine ! Si vous appréciez le contenu de la Craft Letter, parlez-en autour de vous 😉. - + + +
  + + Voilà, c’est tout pour cette semaine ! Si vous appréciez le contenu de la Craft Letter, parlez-en autour de vous 😉. +
+ Merci à Benoît et Mickaël pour la relecture et leurs suggestions !