Weekly Shaarli
Week 03 (January 16, 2023)
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)
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
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
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
Au delà de ChatGPT et Dall-e, une liste d'outils pour diverses tâches
L'histoire du CTO de Shift Technology (détection de fraudes) qui décide de revenir à un poste plus "hands-on".
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.
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)
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 !
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/41renvoi le profil maisyoursite.com/users/42renvoi 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é.
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)