Reader's Digest

Vous ne savez pas quoi lire pour votre veille techno ?
Vous n'arrivez pas à capter des flux RSS ?
RSS... Quoi ?
Pas de panique, on s'occupe de tout !
Tous les mois, nous allons vous présenter les meilleurs articles qui ont été postés sur notre channel Slack dédié au suivi de l'actualité tech. Et on démarre avec la sélection du mois de Juin 2022 !
Au programme : les soft skills de l'ingénieur logiciel, un mode de paiement original par ultrasons, une encyclopédie de composants UI, les patterns de race condition en Go, la création d'un monorepo en javascript / typescript, le problème Github Copilot, un comparateur de frameworks front et enfin l'arrivée de HTTP/3 !

Software Engineering - The Soft Parts

Trouvé sur le blog de Addy Osmani, engineering manager dans l'équipe de Chrome, un article très bien écrit sur les soft skills que doit développer un ingénieur logiciel. On aurait pu se retrouver avec un billet qui enfonce des portes ouvertes, digne d'un influenceur cringe inspirant de LinkedIn, mais non : l'auteur nous parle avec son expérience vécue auprès de développeurs talentueux avec humilité. Il décompose sa vision selon plusieurs axes :
  • l'apprentissage
  • la complexité technique
  • la documentation
  • la communication
  • la seniorité et le mentoring
  • le travail en équipe
  • l'équilibre vie privée / travail
Pour chacun de ces axes, Addy va développer son point de vue et ses conseils avec, en particulier, la construction d'une base de connaissances solide, la culture de sa pensée critique, le concept de T-Shaped engineer, et plein d'autres.

Ultrasonic Payments

Charlie Gerard, développeuse senior chez Stripe, présente dans son dernier article, le type de petit proto dont nous sommes friands chez Coddity : un système de paiement d'un device vers un autre par des ultrasons !
image
En fait, le système de paiement consiste en l'envoi d'un lien généré par un device vers celui du client, avec comme support physique de transmission (modèle OSI 101) des sons ayant des fréquences supérieures à celles entendables par l'oreille humaine (soit > 20kHz).
Le proto utilise la librairie JS quiet.js pour l'émission et la réception des données.
Outre le coté sympa de la démo, Charlie nous apprend que cette techno a été utilisée pour déclencher des actions sur des applications depuis l'émission d'ultrasons lors de spot de pub TV, ou encore a déjà été utilisée par Google pour identifier des devices.

Data Race Patterns in Go

Le blog de Uber Engineering est une vraie mine d'or, celui-ci présentant les contraintes très fortes de l'infrastrcuture de l'entreprise, en particulier sur Go, langage principal pour le developpement de services (50 000 000 lignes de code - pas mal).
Dans cet article, l'équipe revient sur une des problématiques principales que l'on rencontre lorsqu'on utilise la concurrence : les data races. La concurrence, par l'utilisation de goroutine (fonctions qui s'executent dans le meme thread en asynchrone) est l'une des forces principales du langage (1 parmi beaucoup d'autres!). image
Alors qu'est ce qu'une data race? Il s'agit de l'accès en écriture d'une meme donnée par 2 goroutines ou plus.
L'équipe Uber indique avoir développé un outil capable d'identifier les data races sur leur code base (environ 2000) et leur a permis d'identifier les différents patterns, expliqués dans cet article avec des exemples.
Nous venons de terminer chez Coddity un projet pour un client faisant grandement appel à la concurrence. L'article d'Uber a été d'une aide précieuse pour un cas, nous permettant de neutraliser un bug un peu vicieux.

Monorepos in JavaScript & TypeScript

Robin Wieruch nous livre dans ce billet un "cookbook" sur l'utilisation d'un monorepo sur un projet javascript ou typescript.
image image originale par Robin Wieruch
L'article est très complet et permet d'appréhénder au mieux le sujet : structure du repo, la notion de workspace, les outils nécessaires, la doc, le versionning, la CI, ...
Un must read sur le sujet !

GitHub Copilot and open source laundering

Un peu d'open source maintenant et de David contre Goliath !
image
Drew DeVault nous livre une charge sur Github Copilot, en particulier contre les arguments que Microsoft a mis en avant pour indiquer que l'utilisation du code déposé sur Github, et ayant permis l'entrainement du modèle de Copilot, n'est pas protégé par les licences déposés par les développeurs de logiciel Open Source (notion de "fair use").
En clair, vous êtes développeur, vous créez du code Open-Source, déposé sur Github et protégé par une licence, ce code peut servir à l'entrainement de Copilot. Un ancien de chez Valve a même retrouvé son code propriétaire dans des suggestions de Copilot.
Je vous laisse ici un autre article sur le sujet et en particulier sur la notion de fair use avancée par Microsoft. Et oui, en déposant votre code sur github, vous acceptez les conditions générales d'utilisation qui permettent à github d'utiliser VOTRE code pour améliorer LEUR service, quelque soit la licence que vous utilisez.
(si vous commencez à avoir chaud et que la notion d'open source est importante pour vous, vous pouvez héberger votre code sur Codeberg ou sur Gitea en selfhosted comme chez Coddity - encore un article de blog à venir \o/).

Component Party

Pas vraiment un article mais une petite pépite découverte au hasard du surf sur internet (on disait ça en 1998). Component Party est un site rudement bien fait qui permet de comparer rapidement les différences d'implémentations entre les frameworks ReactJS, Angular, VueJS, Svelte, SolidJS, Lit, Ember & Alpine.
Tout y passe : Réacivité, Templating, Cycle de vie, Composition des composants, ...

RFC 9114

Et c'est parti ! L'IEEE a publié la RFC 9114 pour l'utilisation de HTTP/3 . Le protocole va permettre de reprendre les fonctionnalités de HTTP/2 (stream multiplexé, latence faible) sur la base du protocole de transfert QUIC (Quick UDP Internet Connection) en lieu et place de TCP.
fin