Monthly Shaarli
September, 2022
Dans la même mouvance que Dall-E, Stable Diffusion et MidJourney, une IA pour générer des modèles 3D à partir de texte.
Un retour d'expérience sur l'utilisation de Timescale DB pour ingérer et traiter de grosses séries temporelles.
TimescaleDB est une extension de PostgreSQL donc on retrouve facilement ses repères.
Une de leur feature extra est la compression optimisée des séries temporelles pour gagner jusqu'à 90% d'espace (!)
Plusieurs outils autour de la CI de Gitlab.
Une technique (entre autre) pour lancer sa CI Gitlab en local!
Concrètement ça lance les jobs de CI avec les bonnes images pour valider le fonctionnement en local.
(Merci Erwan!)
Un super outil pour analyser les statistiques en provenance de Github!
Statistiques développeurs, repositories, etc
Dans notre métier on a souvent envie de tout recommencer à 0, de faire un "gros refactor", de changer de stack technique.
Seulement si c'est fait pour les mauvaises raisons il y a de grandes chances que ça échoue et/ou coule le business.
Tant qu'il n'y a pas de contraintes techniques fortes il vaut mieux faire évoluer son legacy.
Le groupe Altice (SFR, etc) et Patrick Drahi ont été la cible d'un ransomware.
Pas très bon pour l'image alors que SFR se targuait de nombreuses fois de pouvoir contrer les ransomwares justement.
On y voit le mode de vie des ultra-riche:
- carte bleu plafonnée à 38000€
- tableaux de Pigasso, Kandinsky, etc
- yachts, voitures de luxe, jet privés
C'est édifiant..
Un outil pour release automatiquement et gérer les releases Github via des labels sur les Pull Requests.
L'outil est très complet et supporte tout pleins de choses:
- releases canary (test) ou next (release candidate en plus des releases normales
- création des labels sur les repo
- support des anciennes versions majeures
J'en ai eu besoin récemment, une astuce pour avoir un spread operator conditionnel en JS
const isActive = true;
const user = {
name: "Amit",
age: 30
};
const activeUsers = {
...isActive && user
};L'article parle des inconvénients de React. (c'est l'auteur de React Admin)
Pour l'auteur, les formulaires sont compliqués à écrire correctement à cause d'un trop haut niveau d'abstraction.
De son point de vue, les hooks ont amené un niveau supplémentaire de complexité sur des parties métiers qui était déjà gérées correctement par Redux.
Il continue sur d'autres points en donnant toujours des exemples voir des comparaisons avec d'autres framework.
Après les adeptes du Qi gong puis des Ouïghours, c'est au tour des prisonniers politiques d'alimenter le commerce de la greffe d'organe en chine
Le spellcheck avancé de Chrome envoi les mots de passes lorsqu'on les rentre dans des formulaires.
Un directeur artistique a réalisé une bande dessinée complète en utilisant Mindjourney.
On est entrain de vivre une impressionnante révolution AI
Un site qui tente d'oganiser tous les genres musicaux sur une page web en les extrayant de Spotify.
The calibration is fuzzy, but in general down is more organic, up is more mechanical and electric; left is denser and more atmospheric, right is spikier and bouncier.
(Merci Olivier pour le partage)
Ça devait finir par arriver, une équipe à développé Minecraft dans Minecraft en utilisant des circuits de Redstone.
Ils ont emulé un petit ordinateur avec CPU, RAM et processeur graphique pour faire tourner une version simplifiée de Minecraft en noir et blanc !
Ils utilisent MCHPRS qui est un serveur Minecraft en Rust specialisé dans l'exécution de programmes en redstone.
L'écosystème français des levée de fonds s'essoufle
"Seulement" 545 millions au troisième trimestre, à comparer avec les 4 milliards sur la même période en 2021.
Par exemple, Swile a doublé ses pertes en 2021
Un outil pour enregistrer son écran et faire des présentation ou autre directement dans le navigateur!
Pino est vraiment un super logger, en plus de ses excellentes performances, il permet de
- cacher automatiquement des valeurs dans les objets (comme les jeton d'authentification par exemple)
- créer des sous logger par module
- écrire les logs dans des destinations différentes en fonction des niveaux
Les log sont très souvent une partie critique de l'application car écrire des une sortie est assez consommateur (chez Kuzzle, on s'est rendu compte que nos access log ralentissaient le backend outre mesure.
Il faut aussi faire attention à ce que l'on veut loguer et trouver un équilibre sur la quantité car on peut facilement remplir des tera octets de logs.
Dans l'idéal, il faut construire un système permettant de changer dynamiquement le niveau de log pour activer le mode debug lorsqu'on en a besoin, et l'arrêter ensuite.
Une image générée avec MindJourney gagne un concours d'art digital aux États-Unis.
La personne à quand même fait des centaines d'essais pour arriver à un résultat satisfaisant.
C'est quelque chose qui arrivera de plus en plus fréquemment et le monde du design se transformera pour inclure les IA avec des spécialistes en manipulation.
C'est toujours bien de voir émerger d'autres runtime car cela amène de nouvelles idées et concepts.
Par contre il ne faut pas se voiler la face, il y a très peu de chances que Deno ou Bun puissent remplacer Node.js.
L'industrie a mis des années avant de faire confiance à Node.js et aujourd'hui je vois difficilement les entreprises se tourner vers un nouveau runtime simplement pour des histoires de design ou quelques % de perfs en plus sachant que le coût d'adoption à l'échelle industriel est très élevé.
L'histoire d'une migration de AWS sur des serveurs custom.
Encore une fois, ce sont les transferts de données qui coutaient le plus cher à l'entreprise.
C'est très souvent un coût "caché" car très compliqué à évaluer.
Leur solution finale se base sur:
- serveurs bare metal pour le computing
- MinIO pour le stockage S3-like
- Cassandra pour la base de données
Les cloud comme AWS ont une tarification du traffic réseau et surtout du traffic réseau externe pour vous garder un maximum au sein de leurs écosystèmes.
Il vaut mieux se tourner vers des hebergeurs comme OVH ou Scaleway qui eux ne facturent pas le traffic https://links.aschen.tech/shaare/Q0rZJw
Un compresseur PNG qui va modifier légèrement les couleurs de votre image pour avoir une palette plus petite.
A l'oeil ça ne se voit presque pas mais le poids de l'image peut être réduit de plus de 75%!
Un article qui tacle un peu la tendance d'avoir des CTO / VPE plus dans le management pur que la technique.
Il donne notamment 5 raisons:
- les capacités technique permettent un meilleur jugement sur les personnes ou les systemes
- l'importance de comprendre les enjeux d'un compromis
- plus de facilité à gagner le respect des équipes
- la passion pour la technique apporte une meilleure vision et plus de motivation
- plus facile de recruter des ingénieurs qualifiés
Une étude de plusieurs librairies pour gérer le state en Flutter.
(Via Pierre)
Un article assez critique sur l'organisation habituelle des Product/Feature Team.
Une de ses critique est que les Feature Team devraient plutôt se focaliser sur des problèmes à régler pour améliorer le business que sur des roadmap avec des features priorisées.
Il insiste aussi sur le rôle du Product Manager qui doit avoir une connaissance approfondi:
- du client
- de la donnée
- de l'industrie
- du business en particulier
Il a un rôle de designer du produit et de facilitateur car l'objectif est toujours de responsabiliser les équipes au maximum pour améliorer l'implication.
Article didactique sur la meilleure manière de créer un package NPM.
Notamment la partie pour le double support CommonJS et Module est top!
Sinon comme toujours réfléchissez-y à deux fois avant d'ajouter de la complexité à l'écosystème Javascript qui est déjà affreusement complexe.
Un nouveau (LOL encore) framework Javascript frontend.
Ils se focalisent sur la vitesse lors du premier affichage de l'application en supprimant la phase d'hydratation.
Lorsque l'on télécharge une page web en React par exemple, le navigateur doit interpréter le HTML et le JS, puis:
- re-créer tous les listeners sur les noeuds du DOM
- re-créer l'arbre de composant représentant l'application
- restorer l'état (state) de l'application
Qwik permet de sauter ces étapes avec plusieurs astuces, par exemple pour les listeners, ils sont directement dans le HTML:
<button on:click="./chunk.js#handler_symbol">click me</button>
Sinon la syntax est très similaire à celle de React avec du JSX.
Le fonctionnement de Gitlab en async.
Leur handbook est juste une mine d'or de bonnes pratiques, j'aime beaucoup la page Communication aussi
Excellent livre qui parle des processus de recrutement.
J'aime beaucoup la manière de concevoir la création d'un poste comme un produit à part entière (p.19)
Un tool qui exploite des faiblesses dans les API graphQL pour faire du bruteforce de credentials notamment.
A tester sur vos endpoints pour vérifier la sécurité de ceux-ci
Un éditeur/visualiseur JSON sous forme de graph pour explorer ses données
(via Stéphane)
Une fascinante balade à l'intérieur de l'ISS.
Si le sujet vous intéresse, j'aime aussi cette vidéo plus technique sur sa construction et son fonctionnement: https://www.youtube.com/watch?v=oLrOnEmy_GA
Une attaque assez élaborée qui cible les utilisateurs de Microsoft Teams.
La cible doit d'abord installer un programme malveillant sur son PC qui va ensuite scanner les logs des conversations et réagir à des commandes envoyées via des GIF.
Ensuite des informations peuvent être exfiltrées à travers les pare-feu d'entreprise car elles ressembleront à du traffic légitime en provenance de Microsoft.
Pourquoi boire de l'eau à 100 fois son prix, avec en plus une pollution plastique ?
Surtout quand on voit le niveau de contrôle qualité qu'il y a sur l'eau potable (que l'on a pas sur l'eau en bouteilles)
Au total, une soixantaine de paramètres sont contrôlés via des limites et références de qualités bactériologiques, physico-chimiques, organoleptiques, ou encore radiologiques, faisant de l’eau du robinet l’aliment le plus contrôlé en France.
J'en parlais ici http://aschen.tech/index.php/2022/02/09/les-francais-et-leau-en-bouteille/
Whoa ça c'est de l'avancée en IA qui claque!
Ils ont réussi à analyser les signaux cérébraux pour comprendre quels sont les mots qu'auraient voulu utiliser des personnes incapable de parler.
Les chercheurs arrivent à reconnaitre 793 mots à 73%.
Un utilitaire pour trouver des informations sensible dans l'historique de votre shell!
Il y a aussi une commande un peu comme Git pour vider temporairement son historique avant une démo ou un partage d'écran:
shellclear stash
# do you demo
# restore your history
shellclear stash popUn outil de création de base de connaissance interne dans le même genre que Notion.
Une utilisation intéressante de Stable Diffusion pour compresser des images.
Stable Diffusion est un algorithme de génération d'image à partir d'un texte.
Après la génération d'image à partir d'un texte, maintenant Facebook propose la génération de vidéo à partir d'un texte
Meetup du CTO de BAM sur leur méthode pour réduire l'incertitude dans les cycle de développement.
En gros on est sur du développement centré autour des Epic (features) et non plus des Users Stories.
Mais surtout leur méthode implique de la modélisation de la logique applicative avec un subset de BPMN (ça ressemble à des diagrammes).
Ce langage commun utilisé par tous permet d'identifier les edge-case, de faire valider les features par le client, de discuter autour d'une feature, etc
Une caméra de 0.5 mm, avec 200x200 pixels et 30 images/seconde !
Une excellente vidéo de ScienceEtonnante sur un système chimique simple qui coche les 4 critère de la vie.
(Merci Ru. pour le partage)
Un package NPM qui propose aux développeurs un moyen de lutter contre les failles CSRF n'étais pas correctement conçu et du coup rendait possible des failles CSRF.
Autre chose, le package utilisait aussi SHA1 qui est déprécié..
L'article décrit le fonctionnement de la vulnérabilité.
Très bon article explicatif pas à pas pour tout comprendre de l'asynchronicité en Javascript !
Rust deviendra officiellement le deuxième langage autorisé dans le Kernel Linux!
Dans les raisons annoncées on retrouve bien sur les avantages de Rust (rapidité, modèle de gestion mémoire) mais aussi le fait qu'il va devenir de plus en plus compliqué de trouver des programmeur C à l'avenir.
Un framework qui permet de créer des applications graphiques en Python pour faire de la dataviz.
Je savais pas qu'il existe des fonts dont on peut faire varier les couleurs en CSS!
Le Design System de Datadog est accessible publiquement (mais pas d'accès au code associé)
J'ai rarement vu un Design System aussi complet et aussi bien documenté!
(Via Maurice de FranceJS)
Une BD qui explique pour l'hégémonie de Google sur le web via Chrome est dangereuse.
Faites meilleur choix pour votre vie privée, et un choix militant, en utilisant Firefox
Whoa Taichi est un langage compilé avec une syntax proche de Python qui permet de booster les performances d'un code python quasiment sans le modifier !
Simplement en important la librairie et en rajoutant des annotations, on peut avoir jusqu'à x100 en performances:
import taichi as ti
ti.init()
@ti.func
// python func here
Taichi exploite automatiquement le parallélisme des CPU de la machine et même du GPU.
Un site qui permet de vendre des images générées par ordinateur, sauf qu'il ne vend pas les images mais le texte utilisé pour les générer! (le "prompt")
On parle de "prompt engineer" en parlant d'une personne qui manipule des IA pour générer des images à moindre coût.
Héberger son propre mail ça fait déjà longtemps que c'est la croix et la bannière.
Aujourd'hui il est quasiment impossible de ne pas finir dans les spams (et ça c'est quand les e-mails ne sont pas tout simplement redirigés vers /dev/null)
Bien sur ça nuit à la décentralisation et permet aux providers de récupérer toujours plus de données.
Très bon article sur l'envers des levées de fonds à tout va qui déstabilisent le marché et créées des environnements toxiques.
Aujourd’hui, on se pose les fesses dans un job comme on se pose les fesses dans un Uber Pool. Le conducteur, on ne le connaît pas, ni les passagers qui entrent et qui sortent au rythme des feux rouges.
Anti-guide de bonnes pratiques
Merci à Gaël pour le partage ;-)
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