Monthly Shaarli

All links of one month in a single page.

January, 2023

Casbin - Advanced Roles Management

Une lib d'authorisation avec gestion des permissions RBAC

En plus du RBAC, il y a aussi une gestion ABAC (via les attributs avec un pseudo langage de matching).

La cerise sur le gateau c'est la gestion du multi-tenant (domains)

La persistence peut se faire dans tout type de base de données et ils possèdent des lib dans quasiment tous les langages.

Certificate Transparency : Une technique d'OSINT pour identifier l'ensemble des sous-domaines d'une entreprise
thumbnail

Un outil qui permet de retrouver tous les sous-domaines d'une entreprise en listant les certificats associés!

A noter que si vous utilisez un certificat wildcard alors les sous-domaines ne sont pas listables

Reims expérimente une intelligence artificielle de Thalès pour surveiller ses habitants, et personne n’est au courant
thumbnail

Reims a utilisé un logiciel de surveillance se servant des caméras réparties dans la ville pour identifier les comportements suspects.

Ce genre d'initiative est vouée à se reproduire à l'approche des JO de 2024.

C'esr dingue comme les JO sont souvent prétexte à un laboratoire dédié à la société de surveillance. On se rappelle les JO de Londres en 2012 qui avaient été le théâtre d'une surveillance accrue par de nouveaux moyens (drones, Wi-Fi, etc)

Le problème c'est qu'après la fin des JO, les technologies elles sont conservées.

11 Tips That Make You a Better Typescript Programmer
thumbnail

Excellent article pour aller plus loin avec TypeScript !

Je ne connaissais l'astuce pour retourner des types predicate et aider TypeScript a mieux comprendre le code:

function isCircle(shape: Shape): shape is Circle {
    return shape.kind === 'circle';
}

if (isCircle(shape)) {
  // Typescript know it's a "Circle"
}

Bref, pleins de bon conseils et d'astuces pour aller plus loin avec le typage.

Attention quand même à ne pas trop complexifier les types, il ne faut pas hésiter à prendre des raccourcis si vous commencez à passer trop de temps à les écrire.

Everything I Wish I Had Known About Raising a Seed Round

Un article très intéressant sur le processus de levée de fonds pour une startup.

L'auteur développe sur sa vision des VC ("Venture Capital", investisseurs) et donne quelques clés pour comprendre leur manière de fonctionner:

  • ils sont souvent prêt à proposer de l'aide de diverses manière (contacts, brain storming, etc) car une facette de leur métier est aussi de conseiller les porteurs de projets et de créer une relation avec eux
  • il ne faut pas interprêter l'enthousiasme comme une certitude d'investissement, pour eux être sceptique à propos de votre projet ne fait pas avancer les choses
    • ils ne sont pas forcément des experts et ont besoin de vulgarisation pour comprendre le potentiel du projet

A propos du pitch, il faut bien sur être totalement en confiance car c'est cela qui va transparaitre. Il ne faut pas non plus hésiter à embellir la vérité et être très optimiste.

Finalement, le pitch deck (les slides souvent) va être partagé à de nombreux autres VCs donc il doit être autoporteur: contenir suffisament d'informations pour appâter le chaland et en même temps pas trop pour obtenir un rendez-vous pour expliquer la suite ;-)

Using Apache Kafka to process 1 trillion inter-service messages

L'histoire de l'adoption de Kafka chez Cloudflare en tant que message bus inter-services.

Ils l'ont déployé pour optimiser le développement de leur architecture micro-service (découplage) mais aussi:

  • réduire les silos de données
  • rendre les communications inter-services plus claires
  • avoir un format de communication auto-documenté

Pour cela, ils ont notamment développé un client Kafka interne qui abstrait la plupart de la configuration et de la logique compliqué.

Le schéma de communication n'est pas JSON ou Avro (ouf!) mais l'excellent Protobuf qui en plus d'avoir une taille réduite, assure le typage fort de chaque champ afin d'identifier les breakings changes.

Niveau observabilité, le plus important pour eux est le "lag", qui est le temps entre le dernier message produit et le dernier message lu.

Cette seule métrique permet d'identifier de nombreux problèmes:

  • le consumer est down
  • le consumer n'arrive pas à ingérer tous les messages
  • un nombre inhabituel de messages est produit
  • le consumer n'acquitte plus les messages

Bref, un super retour d'expérience et pleins de bons conseils pour construire son infrastructure applicative avec Kafka.

Les arnaques à la vignette Crit'Air prennent une bouffée d'oxygène ce début d'année
thumbnail

Zataz recense de plus en plus d'arnaques à la vignette Crit'Air.

Le but de ces arnaques est principalement de faire payer jusqu'à plus de 10x le prix pour obtenir la vignette qui coûte normalement moins de 4€ au total.

Les pirates utilisent des publicités Google et des emails pour cible les victimes.

Le site officiel termine en .gouv.fr comme tous les sites officiels du gouvernement: www.certificat-air.gouv.fr

PostgREST

Un serveur web qui permet d'accèder à une base PostgreSQL directement via une API REST!

Exemples:

  • SELECT avec WHERE 👉 GET /people?age=gte.18&student=is.true
  • un JOIN sur la table directors 👉 GET /films?select=title,director:directors(id,last_name)
PGX - Build Postgres Extensions with Rust!
thumbnail

Un framework pour créer des extensions PostgreSQL avec Rust.

Je ne savais pas mais à priori Rust est un langage de choix pour les extensions PostgreSQL maintenant.

C'est un très bon usecase car dans une base de données on a justement besoin de performances et de memory safety

Liste d'outils basés sur des IA
thumbnail

Au delà de ChatGPT et Dall-e, une liste d'outils pour diverses tâches

eigerX - Discussion de carrière au plus haut niveau
thumbnail

L'histoire du CTO de Shift Technology (détection de fraudes) qui décide de revenir à un poste plus "hands-on".

Des RH au BDSM : histoire d’une reconversion réussie
thumbnail

L'histoire d'une RH qui se reconvertit pendant la pandémie de COVID suite à des soucis de santé et une envie de changer de vie.

Intro, Data Modeling, Databases
thumbnail

Un ensemble de guides très complets publiés par Prisma.

Vous trouverez des guides sur:

  • le data modeling
  • bases de données relationnelles
  • bases de données NoSQL document
  • PostgreSQL
  • MongoDB
  • SQLite
  • Microsoft SQL Server (nan je déconne y'a presque rien)
Comment le Club Med a repensé sa stratégie Data suite au Covid
thumbnail

Le club Med a profité de la crise covid et de la fermeture de ses 60 villages pour construire une stratégie Data flambant neuve !

Les objectifs principaux étaient d'augmenter les ventes (~2-3% estimés) et d'analyser en détails l'impact des budgets publicité et marketing injectés dans le cycle de vente.

Niveua technique, le groupe voulait de l'analyse temps réel donc il a fallut ingérer les données depuis une douzaine de sources (CRM, ERP, site web , appels téléphoniques, etc) dans un datalake.

Concrètement un broker Kafka reçoit les messages qui proviennent majoritairement d'une base de données DB2 et tout est écrit sur un PostgreSQL ou BigQuery (donc tout chez Google Cloud Platform)

Des outils de Business Intelligence comme Qlikview ou Google Analytics permettent ensuite aux différents métiers d'exploiter la donnée.

Ce que je connaissais pas c'est Zeenea, un catalogue de données pour comprendre quels sont les flux, d'où viennent les données, à quelle moment sont-elles disponibles etc.

Au niveau des volumes, ils annoncent quand même 5 millions d'événements par jour !

Amendes américaines sur des entreprises depuis 2009
thumbnail

La liste des entreprises ayant subies des amendes de plus de 100 millions pour des agissement répréhensibles à l'étranger.

Ça peut être de la corruption de fonctionnaires étrangers par exemple.

Dans l'ordre:

  • USA: 10 entreprises pour 4.5 milliards
  • France: 7 entreprises pour 13 milliards (/!)
  • UK: 7 entreprises pour 3.8 milliards
Le cybercrime en 2022
thumbnail

Retour sur les événements importants en cybersecurité de l'année 2022.

Super rétrospective de Zataz !

L'INA répond au "«Qui aurait pu prédire ?»" de Macron
thumbnail
HTTPie AI – HTTPie blog
thumbnail

HTTPie ont lancé un assistant IA pour intéragir avec les API.

En gros on tape un prompt en langage naturel et ça génère la bonne requête

Fetch last release details of httpie/desktop

Protéger ses fichiers de la corruption avec par2

Par2 est un logiciel de protection de fichiers.

Il est capable de:

  • détecter les fichiers corrompus
  • corriger les fichiers corrompus (moyennant ~10% d'espace disque en plus)
I am not a supplier

Un article coup de gueule pour expliquer la différence entre un supplier et un volunteer.

Le supplier est payé pour son travail et fournit des garanties de service, le volunteer travaille bénévolement et il n'a aucune garantie à fournir

Retour d'utilisation de Mongodb et pourquoi nous migrons vers Postgresql
thumbnail

Un REX sur les limites de MongoDB.

Concrètement dans le cas de Malt, MongoDB leur a permis d'itérer rapidement au début mais par la suite son utilisation a ralenti les développements et le fonctionnement de l'application.

A noter que l'article porte beaucoup sur les anciennes versions de MongoDB, sans les transactions ou le mot clé $lookup.

Dans les problèmes rencontrés:

  • le langage de requête en JSON qui n'est pas aussi clair que du SQL
  • la modélisation nosql qui implique beaucoup de dénormalisation et de duplication
  • la cohérence des données et les jointures qui doivent se faire dans le code

Bref, comme d'habitude il faut utiliser la bonne base de donnée pour le bon problème et lorsqu'il s'agit de la modélisation d'un système relationnel (90% des applications) alors une base de données relationnel est de mise.

Modern FTP Server for Node.js
thumbnail

Un serveur FTP entièrement en Node.js.

Il est très simple d'utilisation et très pratique car il abstrait le filesystem. Il est donc possible de lui fournir une classe qui fait autre chose qu'écrire et lire sur le disque.

Par exemple, il est possible de surcharger les méthodes pour écrire et lire dans un bucket S3.

C'est parfait pour s'interfacer avec tous les vieux systèmes qui communiquent encore via FTP.

Je l'utilise en tant que gateway FTP -> HTTP: les fichiers uploadés sont envoyés sur une route d'API

We invested 10% to pay back tech debt; Here's what happened
thumbnail

Un article sur une bonne gestion de la dette technique.

J'aime notamment la règle qui impose de créer une issue tagué tech-debt à chaque PR introduisant de la dette technique.

Steam Deck, enfin un succès matériel chez Valve ?
thumbnail

Une analyse de la console de Steam.

Sous le capot c'est une distrib Arch Linux câblée pour faire tourner les jeux sur Linux et même si dans la plupart des cas c'est un succès avec les titres AAA comme God of Wars, pour d'autres jeux il faut (un peu) ouvrir le capot et lire quelques tutoriels.

Sinon honnêtement pour le prix (419€) je trouve que c'est très correct niveau matos (CPU 3.5Ghz, Carte graphique 16Go RAM) et surtout pour pouvoir jouer même occasionnellement à des jeux récents.

Watermark on ChatGPT

Une méthode pour repérer les textes écrits avec ChatGPT ou GPT-3.

Le principe est de forcer l'algorithme à choisir certains synonymes plutôt que d'autres lors de la génération de phrases.

Ça permettrait d'identifier les textes générés par une IA.

Après on verra sûrement apparaître des IA pour enlever le watermark, bref encore un jeu sans fin du chat et de la souris.

Review of electricity carbon intensity in Europe for 2022

Une rétrospective sur les émissions de CO2 liées à la production d'électricité en Europe.

Plus c'est vert, moins il y a de CO2.

La France est un des seuls pays à être dans le vert quasiment toute l'année à part l'Islande, la Suède et la Norvège.

On voit par exemple que l'Allemagne et la Pologne oscille entre le maron clair et marron très foncé, même en été quand les renouvelables sont sensées prendre le relais.

Performance of ArangoDB
thumbnail

Une base de donnée type Graph basée sur du JSON.

Ils affichent des performances équivalentes voir meilleurs que MongoDB et Postgres sur des opérations tels que:

  • single write
  • single read

Sinon côté features d'une DB graph, à priori ils font beaucoup mieux que Neo4J, le principal concurrent.

Leur langage de recherche ressemble à du pseudo-code:

FOR doc IN users
  FILTER doc._key == "phil"
  RETURN doc
Dangerous Google Ad Disguising Itself as www.gimp.org : GIMP

Un dangereux fishing ou la publicité Google ressemble comme deux gouttes d'eau au véritable résultat vers le site Gimp en affichant l'URL officielle mais qui redirige sur un fishing !

(Merci Yannick pour le partage)

Linear – A better way to build products
thumbnail

Un outil de gestion de projet pour remplacer Jira qui semble toujours être le choix le plus populaire malgrés les boutons qu'il donne à ses utilisateurs.

L'UI est top, pleins de raccourcis clavier, des automatismes sympa (issue non finie directement au cycle suivant, status en fonction des PRs, etc)

À tester si vous cherchez quelque chose de neuf!

How Kafka Works (Intelligent, automatic restarts for unhealthy Kafka consumers)

Le début de l'article explique très clairement le fonctionnement de Kafka avec une vulgarisation accessible à tous et des schémas.

10 Most Popular Torrent Sites of 2021

Des sites torrents en anglais et en français.

De mon point de vu, le meilleur contenu FR est sur Yggtorrent (le successeur de t411) et quand je trouve pas du contenu anglophone, je regarde sur RARBG.

Sinon pour les trucs très rare, après avoir épuré tous les sites, il faut essayer directement la DHT avec BTDigg par exemple

Hidden dangers of duplicate key violations in PostgreSQL and how to avoid them
thumbnail

Un article sur l'insertion spéculative dans Postgres et les améliorations de performances qu'elle apporte.

L'insertion spéculative est faite avec la construction INSERT… ON CONFLICT.

Cette variante vérifie d'abord que l'insert peut être réalisé, ce qui évite la création de "dead tuples" qui sont des lignes n'ayant pu être insérées mais quand présentes jusqu'au prochain garbage collect (vacuum).

Sur une table ayant 1 millions de dead tuples, il y a une différence de perfs de presque 8000% au SELECT ! (0.7 ms vs 54 ms)

Les insert ayant échoués vont aussi incrémenter les ID de transaction et après 200 millions, cela va déclencher le garbage collector pour un nettoyage mais aussi ralentir toute la base de données.

Finalement, tous ces dead tuples consomment aussi de l'espace de stockage.

Bref, il est temps de passer à INSERT… ON CONFLICT DO NOTHING 😄

(Merci Gaël pour le partage)

Comment ça marche #05 : Liseuse Amazon Kindle à encre électronique
thumbnail

J'ai toujours été fasciné par le fonctionnement des liseuses électroniques.

Dans cette vidéo, l'auteur démonte un Kindle et le regarde sous toutes ses coutures avec microscope de surface et même microscope électronique !

L'écran est composé des centaines de milliers d'électrodes qui peuvent se charger négativement et positivement.

Au dessus de chacune de ces électrodes, il y a des capsules contenant un pigment noir chargé positivement et blanc charge négativement qui montent (et deviennent donc visibles) ou descendent en fonction de la charge des électrodes.

C'est pour ça que l'autonomie est aussi bonne: le courant est nécessaire seulement pour modifier l'affichage

Les questions à poser avant de rentrer dans une startup
thumbnail

Un très bon billet pour choisir une startup ayant un environnement de travail intéressant et un futur prometteur.

Par définition, une startup c'est une entreprise qui fait un pari sur un marché ou une techno et elle se doit d'avancer rapidement donc on est amené à faire plusieurs choses (couteau suisse) et l'environnement sera forcément plus stressant qu'un job "pépére" dans une ESN (qui a dit planqué ?)

Les points de vigilance:

  • les fondateurs 👉 concrètement vous allez bosser avec eux très souvent donc est-ce que vous êtes convaincu par leur stratégie
  • le business plan 👉 si vous n'y croyez pas, peu de chance que vous soyez motivé dans la durée
  • la culture et les valeurs 👉 cherchez de préférence bienveillance, esprit d'équipe et reconnaissance
  • le sérieux technologique 👉est-ce que les bases sont solides? est-ce que l'équipe technique originel est encore la? (ça se limite à une personne souvent)
  • le salaire 👉 souvent un peu en dessous du marché, attention à ne pas se faire avoir par une promesse de beaucoup de BSPCE qui restent un pari
Using AI to compress audio files for quick and easy sharing
thumbnail

Meta annoncent un nouveau format de compression basé sur une méthode employant un réseau de neurones.

Ce format fait jusqu'à 10x mieux que MP3 avec des compressions entre 1.5 et 12 Kbp/s (64 Kbp/s en MP3)

La décompression peut se faire sur un simple core CPU ce qui pourrait en faire un format compatible smartphone.

Comprehensive.io - Pay Range Tracker
thumbnail

Liste des salaires des employés des boites US.

Ça fait suite à une nouvelle régulation qui force les entreprises à publier les salaires.

(WTF Netflix la fourchette de 90K à 900K)

VALL-E: Microsoft's new zero-shot text-to-speech model can duplicate everyone's voice in three seconds
thumbnail

Une AI de Microsoft qui fait du text-to-speech et elle est capable de reproduire n'importe quelle voix avec seulement 3 secondes d'enregistrement.

EDF joue son avenir sur l’EPR2
thumbnail

Article (payant) sur le plan d'EDF pour le renouveau du parc nucléaire français.

Les EPR2 devraient voir le jour. Les leçons des difficultés de l'EPR de flamanville ont été prises en compte avec notamment une énorme simplification !

passer de 13.309 références de robinet sur un EPR à 571 pour un EPR2…, de 1.517 types de câbles à 14, de 214 modèles de portes à 91, de 836 gabarits de tuyauterie à 257, et de 800 modèles de pompes à 63.

Simplifiez vos composants Vue avec la Composition API

Un excellent article qui explique le fonctionnement de la Composition API de Vue 3 et les raisons de ce changement de paradigme.

On passe d'une déclaration de composants avec des classes à un paradigme fonctionnel.

Cela permet entre autre:

  • un meilleur partage de la logique
  • des types plus précis
  • une meilleure structure de code
Kubero Kubernetes CI/CD PaaS

Un genre de Heroku on-premise pour déployer ses applications dans un cluster Kubernetes.

Il y a tout ce qu'il faut pour un mini PaaS:

  • authentification
  • UI
  • CLI

(Via Florian)

Police seize on COVID-19 tech to expand global surveillance
thumbnail

Sans surprise, les outils destinés à la lutte contre le COVID-19 sont utilisés pour de la surveillance de masse.

Gouvernements, services secrets d'autres pays, c'est open bar

Your first 90 days as CTO or VP Engineering.
thumbnail

Sous le coude

Yandex Search Factors Explorer

Le code source du moteur de recherche Yandex a fuité.

Le fonctionnement est assez similaire à celui de Google (certains disent 70% de similarité mais impossible de vérifier) ce qui en fait une mine d'or pour l'optimisation CEO.

Bref, c'est un coup très dur pour Yandex mais aussi un coup dur pour Google car tout le marché des moteurs de recherche va aussi en patir dans un contexte déjà compliqué avec l'arrivée de ChatGPT.

Forking Chrome to render in a terminal

Un Chromium qui tourne dans un terminal :D

Ça permet de naviguer sur le web et même de voir des vidéo!

Le wrapper est en Rust bien sur

Mise en place d’un déploiement progressif avec Flagger
thumbnail

Un outil qui permet de faire du déploiement progressif d'applications et c'est basé sur Kubernetes.

OpenAI has hired an army of contractors to make basic coding obsolete
thumbnail

OpenAI cherche à générer beaucoup de données en relation avec la programmation pour sans doute améliorer son IA "Codex" qui fonctionne sur le même principe que GPT mais pour le code.

C'est Codex qui est utilisé dans Copilot de Github par exemple.

C'est sur que le métier de développeur va changer mais il ne va pas non plus disparaître ça c'est sur !

Néanmoins il risque de beaucoup évoluer et il va falloir apprendre à composer avec ces IA pour rester dans la course.

La production pétrolière des Landes pourrait revenir exclusivement au ministère des Armées
thumbnail

La France possède donc une exploitation pétrolière sur son territoire.

C'est dans le sud ouest, à Parentis-en-born dans les Landes.

Cela représente 1% de la consommation nationale, ce qui correspond justement aux besoins de l'armée.

Un bon point pour la souveraineté donc !

MusicLM by Google

Des réseaux de neurones de Google qui génèrent de l'audio à partir de prompt

Bruce Momjian: Postgres Technical Performance Presentations

Des présentation sur des concepts avancés de Postgres:

  • Performance Tuning
  • Explaining the Query Optimizer
  • Joins and Indexes
  • Database hardware
  • Scaling opportunities
  • Future of Sharding

(Merci Ocav pour le partage)

What is a Wildcard Person?

Un article qui parle de ce qu'ils nomment les "Wildcard Persons".

Ces personnes ont toutes une gammes de compétences et sont capable de gérer quasiment n'importe quelle tâche dans une startup, du développement au marketing en passant par la relation client.

Bien sur ce n'est pas forcément du travail d'expert mais du travail néanmoins suffisament bon pour rester jusqu'à ce qu'il y ait l'argent et le temps pour qu'un véritable expert se penche sur la question.

What is Role-Based Access Control | RBAC vs ACL & ABAC

Explication sur les différents systèmes de gestion des permissions pour une application.

Role Based Access Control (RBAC)

Définition d'un ensemble de rôle ayant le droit d'exécuter des actions sur l'application puis attribution de ces rôles à des utilisateurs.

Exemple: le rôle device-manager permet de créer les Devices d'une plateforme IoT

Access Control List (ACL)

Définition de listes de permissions rattachées à chaque entitée de l'application. Une permission définie les actions possible sur l'entitée correspondante pour un utilisateur ou un groupe d'utilisateur.

Exemple: l'ACL rattaché au Device abc123 donne le droit à l'utilisateur aschen de le modifier

Attribute Based Access Control (ABAC)

Définition des permissions en fonction des attributs des entités. Les permissions sont accordées à des utilisateurs ou groupes d'utilisateurs en fonction des valeurs de ces attributs.

Exemple: une règle ABAC autorise la lecture des informations d'un Device uniquement si l'attribut creator du Device est égal à l'identifiant unique d'un utilisateur

Generative AI is bringing the biggest disruption to film making in 100 years
thumbnail

Flawless est une entreprise qui développe une IA qui permet de synchroniser les mouvements des lèvres avec les doublages dans d'autres langues!

Google Calls In Larry Page and Sergey Brin to Tackle ChatGPT and A.I. Chatbots

Ça commence à se réveiller côté Google pour tenter de contrer OpenAI et l'avance prise avec ChatGPT (technologique mais surtout en terme de communication)

Plusieurs nouveaux produits sont prévus:

  • assistant comme ChatGPT
  • un chatbot dans les résultats de recherche
  • Colab + Android Studio pour des applications mobiles
  • Génération d'images
  • et d'autres!

Google cherche avant tout à se prémunir des problèmes de droits d'auteurs et de biais que l'ont peut avoir lorsqu'on utilise des AI apprenant sur de larges corpus publiques.

Pour passer le paywall:

  • clique droit > afficher la source (CTRL+U dans Firefox)
  • sélectionnez tout et copiez
  • créez un fichier et collez
  • ouvrez ce fichier dans votre navigateur
Comment fonctionne le scaling des Lambdas AWS

Une explication du fonctionnement des Lambda chez AWS.

On apprend notamment de quelle manière les Lambda sont démarrées, les étapes du cycle d'initialisation, démarrage à chaud/à froid et les quotas

Je ne m'étais jamais attardé sur les quota, par exemple la limite de "Burst concurrency" qui limite le nombre de lambda executées en même temps (entre 500 et 3000 selon les régions.

Choosing a Postgres Primary Key
thumbnail

Tous les conseils pour bien choisir sa clé primaire.

Dans la plupart des cas, un entier auto-incrémenté (serial) est suffisant, cependant il a quelques désavantages:

  • prédictible: il est facile d'énumérer les ID et de deviner des choses comme le nombre d'utilisateurs sur un site (yoursite.com/users/41 renvoi le profil mais yoursite.com/users/42 renvoi une 404)
  • ce n'est pas un standard SQL

Une autre possibilité est d'utiliser un UUID v4 car ceux ci sont totalement aléatoires. Par contre on a d'autres problèmes:

  • pas possible de les trier
  • beaucoup plus gros que notre entier auto-incrémenté
  • leur indexage par la base de donnée est très difficile

C'est pour ça que d'autre types d'UUID sont apparus (voir UUID v7 et ULID), cette dernière génération inclue un timestamp afin de pouvoir les trier par exemple.

L'article termine sur un benchmark sur la vitesse de génération dans PostgreSQL mais aussi de la taille de la table et de son index.

Niveau vitesse, tous sont plus ou moins équivalents à part pour pushid et nanoid qui sont significativement plus lents.

Au niveau de la taille, sans surprise les dernières version d'UUID font augmenter l'espace utilisé.

CORS cheatsheet
thumbnail
CSS web font performance
thumbnail

Des conseils pour offrir la meilleure expérience possible lorsqu'on utilise des polices de caractères personnalisées.

  • Utilisez des petites polices (20-40Kb)
  • Servez les vous même (pitié pas Google Font..)
  • Ne proposez pas de polices intermédiaires (font-display: block;)
  • Indiquez au browser de pré-charger les polices (<link rel="preload" ...>)

Le but est de charger les polices au plus vite car aucun texte ne s'affiche avant et c'est volontaire pour éviter le layour shift (des éléments qui changent de place quand la police est chargée si elle ne fait pas exactement la même taille que la temporaire)

Why deadlines are pointless and what to do instead

Les deadlines sont très souvent contre productive et particulièrement en programmation.

Elles rajoutent beaucoup de stress et contribuent souvent à dégrader la qualité de ce qui est produit ou à une augmentation des heures de travail.

J'aime beaucoup ce qui dit l'auteur à propos des choix qui s'offrent à nous quand on a raté une deadline:

  • décider d'une autre deadline
  • virer quelqu'un
  • réduire le scope
Understanding npm-link. Writing Application and Dependency Code…
thumbnail

Comment utiliser la commande npm link pour faire utiliser une librairie que l'on a en local plutôt que de la télécharger depuis NPM.

C'est utile pour travailler sur une lib externe qui est utilisé dans son application.

cd ~/projects/react
npm link  # Step 1.

cd ~/projects/kuzzle-saas
npm link react

(Merci Sébastien !)

GPTZero, detect AI plagiarism

Une solution qui se targue de détecter l'usage de GPT-3 et ChatGPT.

J'ai pas réussi à essayer la version gratuite sur leur site.

En tout cas c'était à prévoir, et maintenant ça va être l'éternel jeu du chat et de la souris car il suffira aux algorithme d'IA de s'adapter aux algorithme de détection etc

Le futur du marketing pour 2023
thumbnail

Sous le coude

Container Training

Des centaines de ressources pour apprendre tout ce qu'il y a à savoir sur:

  • Docker
  • Docker Compose
  • Kubernetes

(Via Ocav)

Toyota, Mercedes, BMW API flaws exposed owners’ personal info
thumbnail

Les fabriquants de voitures à poil sur le net (et nos données avec bien sur)

Des chercheurs ont réussi à s'infiltrer dans les systèmes des plus grandes marques et ont accèder à des informations sur les voitures qui sont de plus en plus "intelligentes".

De nombreuses données en lecture comme la position GPS, l'adresse du client mais aussi la possibilité de changer à distances certains paramètres de la voiture (déverrouillage, démarrage du moteur, etc /!)

Awesome ChatGPT prompt
thumbnail

une liste de prompt intéressants pour utiliser dans ChatGPT

Polars, Dataframe library for Rust and Python
thumbnail

Une lib pour manipuler des données tabulaires (vectors, matrices) de la même manière qu'avec Panda.

Celle la est écrite en Rust donc on peut s'attendre des à des performances ~7x plus rapide que Panda. (Benchmarks)

(Via Alex)

Comment plagier une image avec Midjourney (ou équivalent) ?
thumbnail

CLIP Interrogator est une utilisation d'une IA pour générer un prompt à partir d'une photo.

Ensuite on peut utiliser ce prompt dans DALL-E ou autre pour générer une image qui ressemble à l'original