Monthly Shaarli
April, 2023
Un gros fail chez Google, synchro des secrets 2FA entre appareils sans chiffrement de bout en bout.
10% de la valeur ajoutée sont passés du travail au capital en France
Cela représente 250 milliards d’euros en plus pour les actionnaires des entreprises
Il suffirait en effet d’augmenter de seulement 2 points la part des salaires dans la valeur ajoutée pour récupérer… 12 milliards d’euros de cotisations
A comparer avec les 2.8 milliards que rapportent l'avancement de l'age de la retraite.
6 techniques avancées d'utilisation de Typescript:
- types mappés: itération sur les clés ou types conditionnels
- décorateurs
- namespaces
- mixins (ça me rappelle Ruby :D)
- type guards
- utility types
Excellent article technique sur la manière dont Prisma à amélioré les performances au démarrage de son ORM.
La majorité du chemin a été achevé en simplifiant le protocol de communication interne en passant à du simple JSON.
Sinon on retrouve des choses assez classiques en terme d'optimisation, du lazy loading, pas de couche de chiffrement superflue et d'autres choses.
L'article décrit aussi le cycle de démarrage d'une lambda AWS.
Un article qui compare l'arrivée de l'IA avec celle du cloud il y a 17 ans et les premiers services d'AWS.
J'aime notamment le parallèle à propos des croyances limitantes du cloud comme "les gouvernements ne seront jamais dans le cloud" et celles qu'on peut avoir à propos de l'IA "il y aura toujours un humain dans la boucle" (par exemple)
Un guide sur les différentes techniques de Prompt Engineering
Un article explicatif de ce qu'est vraiment le Prompt Engineering et surtout des méthodes pour avancer de manière scientifique dans l'élaboration de prompts.
Typiquement l'auteur utilise des scripts Python et LangChain pour évaluer la performance de ses prompts.
C'est important de pouvoir mesurer la précision des réponses fournies par un prompt en utilisant un modèle ainsi que le nombre de tokens utilisés afin de pouvoir faire des comparaisons et prendre une décision justifié par son business modèle.
Un autre article plus technique sur le sujet https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/
Du jamais vu niveau collecte d'informations sur les citoyens par des organismes gouvernementaux !
Un décret force les entreprises opérant en Biélorussie à fournir des API pour qu'entre autre le KGB puisse faire des recherches en live dans les bases de données.
Un article plus détaillé sur les possibilités que commence à offrir les LLM pouvant fonctionner en local dans le navigateur.
On est encore loin de l'adoption pour les utilisateurs standards car il faut:
- lancer chrome avec des flags spéciaux
- télécharger le modèle (plusieurs Go)
- une carte graphique puissante
J'en parlais ici aussi https://links.aschen.tech/shaare/Ov51-w
Un autre article qui parle de rejoindre une startup en early stage mais du point de vu concret d'un développeur et de ce qu'on peut apporter.
C'est aussi un bon résumé de comment arriver à un MVP
Whisper, le modèle de reconnaissance de texte de OpenAI est en full open source
Mullvad VPN se fait perquisitionner en Suède, pour le coup ils avaient dit la vérité et il n'y avait vraiment aucune donnée d'utilisateur à saisir
Un retour d'expérience sur comment organiser son process de recrutement.
Les conseils en plus de Fabien Ducher:
En amont
- l'organisation de la tech est suffisamment claire
- on est à l'aise sur la salary grid (qu'elle soit affichée publiquement ou non)
- on est sur d'avoir les ressources pour accompagner l'onboarding et rampup
- Les personnes qui font passer des entretiens sont formées à le faire (posture, ce qui est ok ou pas ok de dire, comment on le mène, les entretiens eux même, etc.)
- Checklist d'onboarding avec toutes les composantes (RH, IT, manager, newcomer) déjà existante.
L'offre
- inclusive! exemple: pas un empilement de compétences (soft et hard), mais un message clair sur le fait que c'est un repère et qu'il ne faut pas cocher toutes les cases pour candidater
- La description du process : les entretiens, avec qui, la durée et à quoi ils servent
Le process de validation
- s'il y a des tests / questions techniques, ce sont les mêmes pour tout le monde et on assess les résultats
- On liste à l'avance les red flag qu'on ne veut pas voir
- Max 2 semaines entre la prise de contact et la décision
- J'aimerai beaucoup tester aussi l'idée que la personne qui candidate vient avec un cas technique qu'elle discute avec des personnes de l'art. (ca brise le test commun à tous, mais c'est au moins un contexte que le candidat maitrise et qui sera moins stressant)
- Feedback clair et factuel après chaque entretien, surtout en cas de nogo à une étape
- Lors du dernier entretien, on est en situation d'échange libre où on répond à toutes les questions de la personne qui candidate, on ré-explique l'onboarding, le carreer path, la période d'essai, les attentes, etc.
- un comité d'évaluation à la fin avec toutes les personnes ayant réalisé un entretien
La proposition
- Salaire en comparant avec la grille, les stats de salaire à poste équivalent en interne (incluant l'équité homme / femme) et des bench extérieur (à noter ici que Figures est canon comme outil)
l'onboarding
- Welcome 1-1 où on présente la checklist d'onboarding, on cale les 1-1 hebdo,
- On présente les obj de PE la première semaine
- On s'assure que l'équipe l'accueil bien dans le day to day
Période d'essai
- on fait des 360 pour avoir le max d'avis et pas uniquement l'avis du manager
- On refait a minima un point à mi PE, voir tous les mois avec le newcomer
- Ou on coupe ou on valide, le renouvellement ne sert que pour des doutes mineurs qui n'auraient pas pu être levé dans le délai. Avoir une boule noire nuira à terme plus à votre organisation que n'avoir personne.
Les LLM commencent à arriver dans les navigateur en utilisant la technologie WebGPU.
Ils ont aussi porté StableDiffusion https://mlc.ai/web-stable-diffusion/
Une amélioration du mode headless dans Chrome.
Avant cette mise à jour (112), le mode headless était enfaite un autre programme et avait donc un fonctionnement légèrement différent de chrome.
Qu’une élite dirigeante ferme toute fenêtre démocratique en dehors du cadre électoral, et exige de nous allégeance et silence pendant l’exercice du mandat, voilà qui devrait être de nature à nous inquiéter.
Un moteur de connaissance backé par un LLM (surement OpenAI) mais qui en plus cite les sources.
Très utile pour débroussailler des sujets de dev lorsqu'on est en phase de recherche / prototypage et qu'on a besoin de comprendre des technos
Explications très détaillées sur le compilateur Just In Time (JIT) introduit dans PHP 8.
Concrètement ça améliore la vitesse d'exécution de votre code au fur et à mesure que celui-ci est executé en compilant spécifiquement en code machine (assembleur) certaines function qui sont appellés toujours avec les mêmes types.
C'est le même principe que le JIT dans la JVM ou v8.
je ne suis pas sûr que vous obteniez des améliorations aussi bonnes mais ça ouvre la porte à d'autres types d'applications boudés par souci de performances, comme l'IA, le jeu vidéo, les statistiques..
Par contre ça m'étonnerait qu'on se mette à faire de l'IA, du jeu vidéo ou n'importe quoi d'autre qui demande des performances avec PHP car le JIT reste quand même bien moins optimisé qu'une compilation Ahead Of Time (C++, Rust, Golang, etc)
Tutoriel très complet pour Rust et complètement en français
Base de données des mots de passe par défaut des constructeurs de hardware
Il est possible d'ajouter un logo officiel dans sa zone DNS pour que les fournisseurs d'emails puissent l'afficher.
Cela s'appelle BIMI (Brand Indicators for Message Identification) et c'est une spécification poussée par les plus gros fournisseurs d'emails de la planête (Google, Yahoo, Sendgrid, Mailchimp, etc)
Chez Malt ça a permi d'améliorer le taux d'ouverture en passant de 40% à 60% !
Un exemple pour compresser un input pour un LLM en utilisant un LLM.
Ici une simple phrase exprime un paragraphe entier:
RcS:skptic&rspctfl_cnstrctvCritic;IdeaPrpsl:frmbHnstCrtcsm
Le fait d'avoir open sourcé le code de l'algorithme de Twitter ne permet pas de répondre à toutes les questions comme "Quelles sont les personnalités mises en avant ?"
Par exemple un algorithme possédant 48 millions de paramètres est constamment mis à jour par Twitter pour pondérer l'affichage des tweets.
Typiquement l'analogie Tech serait de dire que twitter publie ses sources mais sans les données on est bien incapable de comprendre le fonctionnement actuel de l'algorithme.
Après le green-washing, le libre-washing ? (cc Sebsauvage)
Un autre son de cloche sur "l'avènements" des IA génératives.
Tout le bruit que l'on entend autour du "danger" et de la perte de jobs pourrait être un formidable coup de com' pour OpenAI.
Goldman Sachs a également fait une étude sur les emplois qui pourrait être remplacé par des IA génératives.
À elle seule, l’IA générative pourrait remplacer un quart des travailleurs actuels.
On y trouve les métiers suivants:
- développeur informatique
- journaliste
- assistant juridique
- analyste de marché
- enseignant
- analyste financier
- trader
- graphiste
- secrétaire
- comptable
- service client
Les métiers manuels sont bien sur les plus épargnés.
l’IA pourrait fortement augmenter la productivité mondiale. Au total, le PIB mondial annuel pourrait augmenter de 7% grâce à cette technologie !
Le risque est bien sur que cet accroissement de la productivité soit capté par une minorité et fasse grandir les inégalités.
Une équipe de chercheurs en cybersecurité a réussi à prendre le contrôle d'un satellite de l'ESA et notamment de modifier les données renvoyées par ce satellite
Virus Total va intégré un modèle d'IA qui est capable d'expliquer ce que fait un code.
Ça permet de comprendre ce que fait la suite d'instruction d'un malware analysé sur VirusTotal.
Bien sur le modèle n'est capable d'analyser que le langage naturel donc il ne faut pas s'attendre à ce genre de rapport sur des fichiers binaires mais sur les langages interprété cela fonctionne (Python, Javascript, PowerShell, etc)
Délit d'initié sur la vente de NFT par un manager de la plus grosse plateforme de NFT (OpenSea)
De bons conseils pour rentrer dans un projet ayant déjà une grosse codebase.
J'aime notamment l'idée de prendre de petits commits récents et d'essayer de les reimplementer soit même
Un article qui revient sur "l'Open Source washing" que l'on a pu voir avec la publication du code source de l'algorithme de Twitter.
Au final le code source seul ne suffit pas, les données sur lesquelles il est appliqué sont également nécessaire.
Un guide entier pour apprendre les différentes techniques d'attaques possible sur les LLM via notamment l'injection de prompt.
Le guide présente aussi des techniques de défense
Un autre projet pour créer un LLM entièrement open source (code du modèle + jeux de données + poids entrainés).
Pour l'instant ils ont réalisé la première étape qui est de constitué un jeux de données open source en suivant les instructions données dans la publication scientifique de LLaMa.
Ils ont des données, principalement en anglais, qui proviennent de:
- Commoncrawl
- C4
- Github
- ArXiv
- Wikipédia
- StackExchange
- des livres
Plus d'info et les liens de DL chez HuggingFace
D'ici quelques semaines le modèle devrait être entrainé (avec LLaMa) et disponible en open source comme Cerebras et StableLLM
L'entreprise Stability AI qui est déjà derrière le modèle Stable Diffusion pour la génération d'images a sorti un modèle pour la génération de texte.
Assez similaire à GPT de OpenAI avec un contexte de 4096 tokens.
Le modèle de base est véritablement Open Source et autorisé pour des applications commerciales:
- code en Apache 2
- poids en creative commons avec citation de StabilityAI
A noter qu'il existe une version des poids fine tuné pour la conversion mais la licence est non commerciale car ils ont utilisé les données de Alpaca (en autre)
Un article explicatif du besoin et du fonctionnement du load balancing.
Très bien expliqué et avec des schéma intéractifs!
Pour bien comprendre les besoins, il ne faut pas oublié que les requêtes ne sont pas égales, certaines sont plus longues ou plus consommatrices que d'autre à exécuter.
Au dela du "simple" round robin, d'autres stratégies existent:
- least connection: le load balancer envoie la requête au serveur en ayant le moins en cours
- peak exponentially weighted moving average: calcul de la latence moyenne des serveurs et tente d'utiliser uniquement les serveurs ayant la plus faible latence
La société général a déployé un Smart Contract Ethereum pour un stablecoin basé sur l'euro
Sauf que:
- ils peuvent transferer votre argent
- ils peuvent "burn" tout votre argent
- chaque transaction doit être approuvée par une autre transaction
En gros rien de plus centralisé mais avec les inconvénients d'une blockchain (lenteur, prix de transaction, immutabilité)
L'étude est sur 3 pays cette année: France, Allemagne et Pays-Bas
Quelques chiffres:
- seulement 16% de développeuses
- 58 000€ salaire médian en France (50 000€ hors Paris)
- jusqu'à 40% de différence entre le salaire Paris vs hors Paris
- le rôle CDI le mieux payé est développeur backend
- le rôle freelance le mieux payé est data engineer/product manager
Un outil pour créer des démo d'un produit
Le jeux de la vie de Conway codé avec le jeux de la vie de Conway.
On se déplace à la souris et on peut zoomer/dézoomer entre les niveaux d'univers avec la molette
Explication ici https://blog.oimo.io/2023/04/10/life-universe-en/
Typescript est carrément Turing complete!
L'auteur a implémenté un sous langage type brainfuck et Typescript est capable de l'interpréter.
const test1 = interpreter('*>*>*', '000000'); // '111000'Un article qui montre l'empreinte en équivalent CO2 des choses du quotidien en comparant à échelles comparables.
Le comité ISO a terminé de travailler sur la norme SQL 2023.
Au programme quelques améliorations du langage (qui étaient déjà supportées dans de nombreuses DB comme Postgres par exemple) mais surtout l'introduction du support du JSON et des graphes.
Par exemple les chemins seront simplement accessible avec des "."
// {"foo": {"bar": [100, 200, 300]}, ...}
SELECT t.j.foo.bar[2], ... FROM table ...Une liste d'outils OSINT et comment s'en servir
Excellent outil multiplateforme pour prendre des screenshots et les modifier.
Un article qui parle de la complexité élevé des fichiers de configuration Kubernetes et propose un niveau d'abstraction plus simple à comprendre et à manipuler.
Une autre vidéo de Science Étonnante pour comprendre le fonctionnement des LLM (Large Language Model) comme GPT et leur spécialisation dans des outils comme ChatGPT.
Voir aussi Comment les I.A. font-elles pour comprendre notre langue ?
Auto-GPT utilise un LLM et est capable de:
- récupérer des informations sur internet
- conserver des informations en mémoire
- générer sa propre liste de tâche pour répondre à une question
Ça permet d'avoir des agents capable d'améliorer leurs réponses et de réfléchir à des tâches plus complexes.
Pleins d'exemples ici https://twitter.com/NathanLands/status/1646101184384573446?s=20
Un Tetris directement dans votre terminal :D
bash <(curl https://raw.githubusercontent.com/dkorolev/bash-tetris/master/tetris.sh)
A peine croyable mais pourtant vrai
Half-Life Alyx est maintenant disponible sans la VR grâce au travail de la communauté.
C'est quand même toujours impressionnant de voir à quel point les fans peuvent investir du temps pour améliorer/créer des jeux vidéos.
Le meilleur exemple dans l'univers HL reste Black Mesa Source qui est une réécriture complète de Half-Life 1 en utilisant le moteur de Half-Life 2.
Un article qui explique les différences entre NVMe et SATA pour la connectique des disques dur.
La rapidité de NVMe s'explique entre autre par un accès direct du driver au CPU quand le driver AHCI (SATA) communique avec le SATA controller.
La grande épopée de l'informatique et du logiciel libre racontée par Ploum.
Une vidéo extrèmement intéressante sur l'état d'esprit des personnes travaillant dans la finance (principalement la City de Londres)
C'est un résumé du travail d'un anthropologue qui a étudié les millieux financiers londoniens.
Il classe les gens qu'il a interviewé (+200) en 6 catégories:
- teeth shaker: ceux qui ont peur de perdre leur travail et leur niveau de vie, donc ils ferment les yeux sur ce qui ne va pas
- neutral: ceux qui voient les failles et les contrebalancent avec des bons côtés ou les évitent
- master of the universe: ceux qui considèrent que l'état des choses est normal car ils le méritent
- blinker: ceux qui se donnent à fond, s'oublient/s'isolent complètement dans leur travail et sont complètement deconnecté du reste du monde
- delirium: comme les blinkers mais avec des signes d'addictions (clairement les témoignages les plus dérangeants..)
- cold fish: ceux pour qui tout est transaction sans aucune considération éthique ou morale
HuggingFace lance son clone de ChatGPT en 100% open source
OpenAI dépenserait jusqu'à 635 000€ par jour pour les infrastructures nécessaires au fonctionnement de ses API pour ses modèles.
Ça fait quand même 230 millions par an !
Après OpenAI a levé 11 milliards en tout déjà donc ils ont un peu de cash flow pour tenter de dominer le marché mais avec la montée des LLM Open Source c'est pas gagné.
Pas étonnant.
Les chiffres sont juste dingues:
- 2240 milliards de dollars en 2022 ce qui représente 2.2% du PIB mondial (l'éducation c'est 4%)
- USA (877 ou 39%), Chine (292 ou 13%) et Russie (86 ou 4%) représentent 56% des dépenses mondiales d'armement à eux 3
- Europe 345 milliards (15% du mondiale) avec 30% d'augmentation depuis 2013
Pour l'Europe:
elles ont dépassé le niveau qui était le leur en 1989, soit à la veille de la fin de la Guerre Froide
Un article sur les bonnes pratiques autour de la code review.
C'est souvent une part importante dans le Time To Deploy d'une équipe et l'auteur donne des conseils pour accèlérer ce processus:
- garder les PRs petites: <200 lignes de code
- faire les reviews rapidement: mettre un place un outil de notification aide beaucoup sur ce point
- automatiser le maximum: tests, lint
- utiliser des stacked diffs pour découper plus facilement une PR (pas dispo sur Github malheureusement)
- utiliser la méthode Ship/Show/Ask qui permet d'éviter la nécessité de reviews dans certaines situations
Plus j'entends parler du Stacked Diff/Trunk Based développement et plus ça donne envie d'essayer. Graphite semble proposer ce genre de fonctionnement et intègre Github
Exploration du contenu d'un des plus gros jeux de données utilisé pour entrainer les IA.
Il contient des données récupérées depuis le web depuis des sites comme Wikipédia ou patent.google.com ou encore des sites de ebooks piratés.
Cela pose beaucoup de question de copyright sur la légitimité de l'utilisation de ce jeux de données pour entrainer des IA commerciales sans compensation pour les créateurs de contenu.
De même pour les différents biais induit dans les IA par leur entrainement sur des contenus reflétant majoritairement la culture occidentale
Des applications permettant de visualiser une conversation avec ChatGPT sous la forme de nœuds dans d'un graph ou de card sur un tableau blanc.
C'est beaucoup plus pratique de traiter l'exploration d'un sujet comme ça plutôt que de devoir remonter sans cesse dans l'historique du chat.
Un projet communautaire et collaboratif pour créer un modèle entraîné comme ChatGPT
Un résumé des innovations de ces derniers jours dans le monde des LLM.
Une vidéo demoscene de 7 min qui a été généré par un programme de seulement 177Ko
Excellent article sur les avantages et inconvénients de rejoindre une startup à ces débuts.
Une liste de faille des LLM et des exemples d'exploitation.
C'est principalement des prompt injection
Elon Musk attaque OpenAI en justice car ils auraient entrainé leur IA illégalement sur les données de Twitter
Un skin d'une arme CSGO qui se vend 400 000$ (en cryptomonnaie)
Comme quoi il n'y a même pas besoin de NFT pour faire ce genre de transaction hallucinante
Un article très complet sur les agents autonomes à base de LLM.
L'auteur est un peu trop optimiste à mon goût mais ça à le mérite de bien expliqué le fonctionnement et donner beaucoup d'exemples d'utilisation.
Un jeux d'aventure en Typescript :D
Un outil qui permet de calculer la répartition des parts lors de la création d'une startup
Autre outils
https://www.embroker.com/blog/startup-equity-calculator/
https://capbase.com/startup-equity-calculator/
Product Owner ou Product Manager, au final ce sont des postes semblables dont le but est de conduire les développements produit à un apport de valeur.
Un style de licensing intéressant chez CockroachDB:
- licence Business Source License (type Server Side Public Licence) avec interdiction de faire un SaaS
- Apache 2 après 3 ans
Cela permet de rentabiliser leur business tout en offrant la totalité du produit en Apache 2 après une certaine période.
Le CIO n'a vraiment aucune race
Ces volontaires travailleraient entre huit et dix heures par jour, six jours sur sept, non rémunéré·es, et sans prise en charge de leurs frais de transport ou d’hébergement
Surtout que le CIO croûle sous le fric des annonceurs
Rémunérer au SMIC horaire toutes ces personnes reviendrait pourtant à moins de 1 % du budget total des JOP (évalué actuellement à 8 milliards d’euros)
Basta conseille de s'inscrire puis de ne pas y aller
Un nouveau type de base de données qui émerge avec l'IA: la base de données vectorielle
En IA, on représente les données du monde réel sous la forme de vecteurs à N dimensions. Concrètement ce sont des tableaux de nombres à virgules.
Ce genre de base de donnée permet ensuite de rechercher plus efficacement des vecteurs qui sont proches par exemple.
Un exemple de recherche de contexte similaire lors d'une question posée à GPT3 https://docs.pinecone.io/docs/gen-qa-openai
Un site français pour acheter des objets scientifique
Une méthode pour ajouter un watermark sur le texte généré par un LLM.
Ça permet de s'assurer qu'un modèle n'est pas utilisé de manière frauduleuse par exemple.
C'est utilisé par HuggingFace par exemple https://github.com/huggingface/text-generation-inference
Le rapport trimestriel de Cloudflare sur les attaques DDOS.
Ils notent une recrudescence des botnet VPS vs botnet IoT, ce qui permet des attaques encore plus massive (ils "detiennent" le record de l'attaque subie avec 71 millions req/s)
Le nombre de Ransom DDOS augmente également (demande de rançon sinon les infrastructures sont DDOS)
Une pratique qui ressemble à SOLID mais avec des règles un peu dogmatiques et assez strictes:
- One level of indentation per method
- Don’t use the ELSE keyword
- Wrap all primitives and Strings
- First class collections
- One dot per line
- Don’t abbreviate
- Keep all entities small
- No classes with more than two instance variables
- No getters/setters/properties
C'est intéressant de remettre en question son code par rapport à ces règles mais attention à ne pas tomber dans un dogme aveugle non plus.
Un éditeur no-code pour créer des applications Flutter.
C'est un mix entre un éditeur no-code et Figma avec un export possible du code source (Dart + Flutter).
Ça supporte un déploiement mobile (APK) mais aussi web!
Ça sera certainement pas à la hauteur d'un code écrit spécifiquement pour design l'interface mais honnêtement le fait que ce soit en Flutter me rassure car la complexité d'un layout Flutter est bien moindre qu'un layout fait en CSS/HTML donc je ne pense pas qu'on ait le même genre de bouse abjecte type Windev.
Une vidéo explicative sur la méthode utilisée par les réseaux de neurones pour comprendre le langage.
Chaque mot est représenté par un vecteur à N dimensions (plusieurs centaines) et cela permet notamment d'intégrer la notion de mots similaires en terme de sens.
On utilise ensuite des réseaux récurrents pour comprendre le sens d'une phrase dans les tâches de classifications ou de traduction.
Pour les tâches de génération, la notion de mémoire est importante et d'autres types de réseaux peuvent être utilisés (LSTM ou GRU).
Mais c'est une nouvelle architecture appellée Transformer qui est utilisé par les modèles récents comme GPT.
Un excellent article qui j'avais lu à l'époque sur l'avènement des AGI (Artificial Général Intelligence) et ASI (Artificial Super intelligence)
Ça revient au goût du jour avec tout ce qu'il se passe actuellement autour des LLM comme GPT-4.
L'article explore les concepts d'AGI et d'ASI avec les probabilités d'apparition dans les prochaines années, la vitesse à laquelle pourrait aller la transition.
C'est surtout vertigineux d'essayer de réaliser la portée d'une ASI et la manière donc elle nous considérera.