Google limite les fonctions des adblockers dans Chrome avec la nouvelle v3 de son système d'extensions.
A partir de janvier 2023, les extensions utilisant encore la v2 seront désactivées.
Pour moi ça va permettre à Firefox de tirer son épingle du jeu avec un plus grand respect de la vie privée de ses utilisateurs.
PS: le meilleur adblocker reste encore uBlock Origin
Un article explicatif sur le versionning d'API chez LinkedIn.
Conceptuellement, ils vont dupliquer les ressources en interne en incluant la version de l'API Foo
=> FooResource_v20220201
Ils ont ensuite un service de conversion qui va convertir les ressources dans le dernier format possible pour éviter d'avoir à dupliquer le code.
Un excellent document qui parle de tests unitaires et tests fonctionnels.
En règle général, il vaut mieux se concentrer sur les tests fonctionnels plutôt que les tests unitaires car ces derniers sont très couteux à maintenir, notamment leur de remaniement de l'architecture du code.
Quelques extraits:
Few developers admit that they do only random or partial testing and many will tell you that they do
complete testing for some assumed vision of complete. Such visions include notions such as: “Every line of code has been reached,” which, from the perspective of theory of computation, is pure nonsense in terms of knowing whether the code does what it should.Tests should be designed with great care. Business
people, rather than programmers, should design most functional tests. Unit tests should be limited to those that can be held up against some “third-party” success criteriaThe purpose of testing is to create information about your program. (Testing does not increase
quality; programming and design do. Testing just provides the insights that the team lacked to do a correct design and implementation.)Don’t underestimate the intelligence of your people, but don’t underestimate the collective stupidity of many people working together in a complex domain.
Une tentative de fishing avec un faux courrier qui ressemble à un avis de recommandé La Poste!
Le népal a été touché par un séisme cet été et un de mes ami qui vit la bas a été durement touché.
Même si ce n'est pas beaucoup, chaque don fait une énorme différence pour lui et sa famille.
J'ai déjà effectué le premier versement des 300 premiers euros que j'ai doublé de ma poche pour palier au plus urgent.
Un super retour d'expérience sur l'utilisation de Flutter Web pour créer une PWA !
Les équipes ont décidé de faire une PWA pour éviter le problème de gestion d'anciennes versions d'une app mobile dans leur parc.
A part quelques difficultés autour de l'utilisation de l'appareil photo, ils n'ont pas rencontré de problème.
C'est vraiment encourageant pour Flutter Web car la techno est en production depuis seulement 1 an et semble déjà à la hauteur des promesses.
Ce genre de choix permet de tester rapidement un concept avec une PWA et de publier plus tard des applications natives sur les stores.
Excellente explication du fonctionnement des GPUs et particulièrement des 4 niveaux de mémoire de travail disponibles.
Une analogie est faite entre un GPU et une entreprise de bureau avec des équipes de personnes qui doivent s'échanger de l'information.
Un exemple de code CUDA, le framework pour bosser sur les GPU Nvidia, est expliqué pas à pas
Article très intéressant sur une sorte de classification des développeurs.
Cela se base sur le ratio entre savoir et expériences.
Junior: Un peu de savoir et aucune expérience.
Middle: Moyennement de savoir et un peu d'expérience
Senior: Beaucoup de savoir et d'expérience, légèrement plus d'expérience
Je ne connaissais pas Radash mais ça tombe bien parce que je trouvais également que Lodash était vieillissant (et tellement lent..)
La librairie standard de Javascript est tellement inexistante que ce genre de lib est quasiment obligatoire malheureusement.
Mes fonctions préférées:
Remplacement de Bluebird.map
:
import { parallel } from 'radash'
const userIds = [1, 2, 3, 4, 5, 6, 7, 8, 9]
// Will run the find user async function 3 at a time
// starting another request when one of the 3 is freed
const users = await parallel(3, userIds, async (userId) => {
return await api.users.find(userId)
})
Terminé les for (let i = 0; i < 5; i++)
:
import { range } from 'radash'
for (const i of range(0, 5)) {
console.log(i) // => 0, 1, 2, 3, 4, 5
}
Nombre aléatoire dans un interval:
import { random } from 'radash'
random(0, 100) // => a random number between 0 and 100
Et toutes les fonctions de manipulation de string comme en Ruby: capitalize
, snake
, camal
, etc
Un outil qui permet d'améliorer la résolution des images grâce à un réseau de neurone
Article explicatif de l'implémentation du Write-Ahead Logging (WAL) dans SQLite.
Le WAL est le mécanisme permettant de garantir que l'on ne perd pas de données lors de la persistence de la base de données sur le disque.
Un exemple d'utilisation des Protocol Buffers en Node.js.
L'exemple utilise l'excellente lib Protobuf.js qu'on utilise aussi dans le coeur de Kuzzle pour la communication entre les noeuds du cluster ;-)
J'en parlait ici aussi https://links.aschen.tech/shaare/R6dzhw
Un REX du gouvernement Britannique qui a enlevé JQuery de ses pages (32Kb compressé).
Ils ont observé une amélioration de 17% des performances en moyenne!
Par contre, ils n'ont pas utilisé d'autre lib JS à la place non plus :-)
Deno annoncent quelques changements avec notamment le support des packages JS en provenance de NPM!
Ils annoncent aussi qu'ils souhaitent être le moteur JS le plus rapide.
Je ne serais pas surpris que cela soit poussé par la sortie de Bun.js qui a de très bonnes performances, supporte le typescript et les packages NPM
Un excellent exercice de refactor pour appliquer l'injection de dépendance !
L'injection de dépendance est un des principaux design pattern pour réduire le couplage entre les classes et pour créer du code plus facilement testable.
Je partage totalement cet opinion sur Typescript du point de vue du développeur de framework.
Quand on est simplement utilisateur, on est content d'utiliser les types et on veut en voir partout.
Quand on doit écrire ces types, c'est rapidement un casse-tête assez important si on veut le faire correctement!
Regardez cette définition dans redux-toolkit par exemple 🙄
Les créateurs de Deno ont même décidé de ne PLUS utiliser Typescript dans leur codebase interne car cela devenait trop complexe de maintenir les types.
VScode est un produit "gratuit" de Microsoft, donc nous sommes les produits.
Plus de 1600 données différentes sont collectées par VSCode avec notamment:
- toutes les informations de sessions (temps passé, dernière session, etc)
- toutes les informations sur votre ordinateur
- tout ce que vous faite dans l'IDE (ouverture de fichier, search & replace, etc)
Il est impossible de désactiver totalement la télémétrie.
Si possible, il faut se tourner vers l'alternative libre VSCodium
Bun, le runtime Javascript qui se présente comme une alternative à Node.js, a levé 7 millions de dollars.
Ils recrutent maintenant pour sortir une version stable de leur produit.
A suivre de très près !
Un article intéressant de Spotify qui avait besoin d'une manière de visualiser correctement les interactions entre leurs centaines de services.
Ils n'ont pas utilisé UML (thanks god!) mais plutôt le C4 Model qui est un diagramme à 4 niveaux:
- Contexte: comment s'intègre notre système avec d'autres systèmes (service mail externe, autre système métier, etc)
- Containers: quels sont les principaux composants de notre système (app mobile, base de données, frontend admin, etc)
- Components: principales briques métiers de chaque container (CartController, EmailService, etc)
- Code: classes composants les briques métiers
Je connaissais pas mais ça à l'air d'être un outil approprié pour définir visuellement des systèmes très complexes tout en offrant la possibilité de "zoomer" dans des niveaux plus détaillés
Un article présentant un framework pour micro-frontend avec tout le tooling pour se simplifier la vie.
Attention car même avec Piral, gérer un ensemble de micro-frontend est beaucoup plus compliqué.
Une telle décision d'architecture doit se reposer uniquement sur un besoin d'organisation d'une grande équipe en plus petites équipes focalisée sur un domaine de l'application.
Plus d'info sur les micro-frontend https://links.aschen.tech/shaare/AuKMeA