Weekly Shaarli
Week 45 (November 7, 2022)
Une excellente explication du fonctionnement de Mastodon et des autres application fédérés comme PeerTube.
Contrairement à ce que raconte les ayatollah de la blockchain, le web 3.0 (et non pas web3) est bien dans ce genre d'alternatives et non dans la re-centralisation dans des blockchains et la monetisation de l'ensemble des transactions.
Un article qui explique pas à pas le fonctionnement d'une base de données relationnelle.
Il utilise l'algèbre relationnel pour décrire chaque opération.
Dans une DB relationnelle, chaque ligne peut-être considérée comme un vecteur à N dimensions (les dimensions sont les colonnes).
"Adrien", 29, "Minsk" est un vecteur à 3 dimension (nom, age, ville) qui représente une personne.
A partir du la on peut dérouler toutes les opérations comme la projection (SELECT), la selection (WHERE), le produit vectoriel (JOIN)
Une usurpation d'identité 100% online via un crack de mot de passe email et un changement d'opérateur téléphonique, ça fait peur!
Rome est un outil pour Javascript/Typescript qui sert de linter, formatter, bundler et test runner.
En gros ça remplace Eslint, Prettier, Webpack, Babel et Jest.
C'est écrit en Rust et beaucoup plus performant que les outils JS.
L'autre avantage est de n'avoir qu'un outil binaire plutôt que des centaines de dépendances et des centaines de méga-octets dans le dossier node_modules.
(Via Ludo)
L'un des membre de l'équipe du ransomware LockBit aurait été arrêté par le Department of Justice, aux USA donc.
Il aurait entre autre été identifié via des transactions réalisées en Bitcoin.
LockBit est un Ransomware as a Service, c-a-d que les créateurs sont rémunérés lorsque d'autre pirates réussissent à soutirer des rançon en piratant des entreprises avec LockBit.
Ça devait arrivé, Copilot propose parfois en suggestion du code sous licence.
Ici un développeur s'en est rendu compte et Microsoft est attaqué en justic pour non respect des licences.
Un manifest qui va dans le sens du KISS (Keep It Simple, Stupid)
Mes préférés:
Synthesis is the key of communication. We have to write code for humans not machines.
Keep it plain. Try to keep your designs with few layers of indirection.
Un outil open source basé sur l'algorithme Demucs de Facebook pour isoler n'importe quelle partie d'un instrument de musique !
Génial pour s'entraîner sur ses morceaux préférés 😄
Happy Birthday, Go!
13 ans déjà, le langage est beaucoup plus mature aujourd'hui et même si il n'a pas pris la place du C comme langage pour la programmation système (c'est plutôt Rust qui est en passe de le faire), Golang reste un des langage majoritaire dans les outils d'infrastructure aujourd'hui.
Kubernetes, Terraform, Traefik et de nombreux autres outils très populaires son écrit en Golang.
Une feature intéressante que je ne connaissais pas, le fuzzing intégré au langage pour tester le comportement de son programme avec des milliers d'inputs aléatoires !
Une base de données pee-to-peer, c-a-d qui permet de communiquer avec d'autres clients pour se synchroniser sur l'état commun partagé.
ça m'a l'air plutôt compliqué à gérer, surtout avec des clients malicieux mais par contre le côté offline first est toujours bon à prendre :-)
(Merci Pierre pour le partage)
Des statistiques sur les attaques informatiques réalisées depuis plus de 20 ans.
On y voit l'évolution des types d'attaques mais aussi l'évolution du type de cible.
Une explication très clair du fonctionnement des executions asynchrones avec Node.js.
La plupart des opérations de type I/O (lire un fichier, faire une requête http, etc) sont réalisées en parallèle du reste du code dans une pool de thread gérée par la libuv.
Cela permet de ne pas bloquer le thread principal en attendant le retour d'une requête HTTP (qui est très long comparé à executer du code ou récupérer une donnée en RAM)
(Merci Ludo pour le partage)