Weekly Shaarli
Week 18 (May 2, 2022)
Un client Kafka qui est un wrapper complet du client officiel en C++.
Ce client supporte les Kafka Stream contrairement à kafkajs qui fait du polling de messages.
En règle général, node-librdkafka est plus complet et plus manipulable, ce qui en fait un bon candidat si vous avez besoin d'intéragir avec Kafka pour re-exposer une partie des API.
Shodan est un service qui scan l'ensemble des IP publiques sur les ports les plus communs pour découvrir les services disponibles sur internet.
Cela permet aux chercheurs en sécurité (et aussi aux pirates !) de découvrir des logiciels vulnérables
Dagger est un framework pour unifier les CI/CD.
La promesse est d'écrire des actions en suivant leur syntax et de supporter les CI/CD les plus populaires: Github, Gitlab, Jenkins, CircleCI
gRPC est un framework pour faire du Remote Procedure Call développé par Google.
Ça utilise des Protobuf donc des messages binaires pour un maximum de performances.
Nombreuses utilisations comme communication entre micro-services mais aussi client / serveur.
Un projet porté par Spotify pour centralisé les services, librairies, modèles ML, etc.
On dirait un genre de Github auto-hébergé mais avec une portée beaucoup plus grande que simplement des dépôts Git.
Un bon article pour démarrer dans l'observabilité des applications et en comprendre les enjeux.
L'auteur parle notamment de OpenTelemetry qui sort de plus en plus son épingle du jeu dans le domaine en proposant un standard et plusieurs librairies prêtes à l'emploi pour observer les frameworks / applications les plus connues
Un algorithme de compression spécialisé dans les séquences numériques (e.g. Time Series)
Article du CTO de Alan et de son évolution dans une startup passée de 2 à 500 personnes en 6 ans.
Il parle notamment de "se virer" tous les 6 mois d'une partie du produit pour passer la main et faire avancer une autre partie de l'entreprise
Du tooling pour lancer et debugger ses Github Actions en local, plus besoin d'attendre la CI <3
Liste de formulations politiquement correctes
Par exemple au lieu de dire "cette réunion est une perte de temps", dites plutôt "Je ne suis pas en mesure d'ajouter de la valeur à cette réunion mais je serais heureux d'examiner le compte rendu"
Utilisation des Server Side Events à la place de WebSocket pour des notifications temps réel (GraphQL Subscriptions).
- stack technologique HTTP
- meilleurs perfs avec support HTTP/2
- moins de connexions TCP ouvertes
Les consortium FIDO et W3C avec les GAFAM poussent pour remplacer les mots de passes par une authentification via le smartphone pour lutter contre le phishing.
Ce genre d'article donne du crédit au langages "memory safe" comme Rust, je pense que Firefox a fait un bon choix.
Autre chose intéressante, la règle de 2 de Google sur la sécurité, choisir maximum 2 des conditions suivantes:
- le code manipule des données qui ne sont pas de confiance
- le code ne fonctionne pas dans une sandbox
- le code est écrit dans un langage unsafe (C / C++)
Une éloge du framework Fastify pour remplacer Express.
Fastify est très bien conçu et Express beaucoup trop vieillissant, je ne comprend pas qu'on puisse encore choisir Express en 2022
Liste de tous les projets incubés par la Cloud Native Computing Foundation (CNCF).
C'est rempli de super projets comme Kubernetes, Prometheus, Jaeger, Envoy, OpenTelemetry.
Ce sont majoritairement des projets orienté Devops / Cloud.
La bulle spéculative des NFT s'effondre.
Contrairement aux crypto monnaies, elle a très peu de chance de se relever car leur utilisation est purement spéculative
"These inexperienced but overconfident developers tend to discover that it is harder to make a meaningful contribution to an existing package than it is to create a simpler version from scratch."
Article intéressant pour évaluer des KPI pour une équipe projet
- Earned Business Value: nombre fixe de points à répartir entre vos features et leurs sous tâches
- Cycle Time: temps nécessaire pour réaliser une feature
- Cumulative Flow: répartition des tâches en fonction des états (todo, in progress, done, etc)
Netflix utilise un programme spécial qui va éteindre au hasard n'importe quel service directement en production
Cela oblige les développeurs et devops à développer des programmes extrêmement résilients
La Quick Response Team (QRF) est en charge de la gestion des priorités qui arrivent au fil de l'eau et permet ainsi au reste de l'équipe de se concentrer sans interruption sur des tâches plus conséquentes
Un analyseur de traces agnostique de la techno utilisée avec un léger overhead (~2-10% annoncé) donc utilisable dans des environnements de production
Excellent article qui résume la complexité sous jacente du développement frontend face à une demande "simple"
Très bon résumé de la manière dont sont écrites et lues les données sur un SSD.
L'article donne des conseils pour optimiser les lectures et écritures. C'est assez bas niveau mais ça peut être intéressant si on développe une base de données par exemple
Critique constructive de GraphQL, notamment sur la complexité de maintenance et les performances
Pino est un logger très performant pour l'écosystème Node.js.
Il est 2 à 3 fois plus rapide que Winston et ce n'est pas rien car les logger sont des composants critiques des applications !
Pino s'occupe exclusivement de rediriger les logs sur la sortie standard et ensuite celle-ci peut être rediriger vers des transports Pino pour les services d'agrégation les plus communs
Un proxy distribué conçu pour rassemblé tous le traffic d'un ensemble de micro-services et profiter d'une gestion centralisée.
C'est un logiciel plus avancé que Nginx, Traefik ou HAProxy pour servir de load balancer: automatic retries, rate limiting, circuit breaker.
Une solution complète d'observabilité est aussi intégré directement à Envoy.
Déconstruction d'idées reçues sur le niveau des salaires, segmentation des entreprises, beaucoup d'info très pertinentes sur le marché du recrutement tech
Le retour des applets Java
Un projet pour lancer des applications dans le browser en utilisant une JVM qui tourne en WebAssembly.
L'auteur parle de l'utilisation des WebComponents et autres API standard du web plutôt que des framework complexes de type React
Un GUI Open Source pour Redis assez pratique je trouve car il est assez difficile de visualiser clairement le contenu d'un cluster Redis
Sur quoi faut-il porter son attention lors d'une revue de code
Un assistant pour écrire du contenu, c'est assez bluffant je dois dire
Je suppose qu'ils se basent sur GP3T ou un autre modèle similaire pour générer du contenu en fonction du contexte fourni.
On en arrive à un point ou des robots (Mark Copy) écrivent des textes pour d'autres robots (Google Search) afin d'optimiser le référencement
Article très intéressant qui compare l'emploi du temps d'un manager et celui d'un "maker" (par exemple un développeur).
TLDR;
Les "makers" ont besoin de se concentrer dans des périodes de temps plus longues et parfois une simple réunion au millieu de l'après-midi est suffisante pour perturber la productivité de l'après-midi entière.
Une alternative à OpenFaaS pour du Function as a Service
Les perfs de Rust + WASM comparé à JS ne sont pas suffisantes (~x2) pour justifier la complexification de la stack technique