Mensuel Shaarli
May, 2023
Je cite l'article
OAuth2 permet la gestion des autorisations par un processus d'échange entre systèmes permettant de garantir plus de sécurité et de confiance. Nous allons voir que ce n’est pas tout, car si ce use case peut paraître plutôt limité au premier abord, nous allons voir que d’autres vont pouvoir être déclinés sur cette base et ainsi fournir plus de richesse : - d’authentification avec OpenID Connect - de partage des ressources avec UMA - de déport d’authentification avec CIBA [ciba-core]
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'autrice montre la réalisation de ces layouts avec l'aide de Grid ou de Flexbox
Résumés des conférences et ateliers sur l'agilité
Des snippets de code : Python, JavaScript, CSS, HTML, Makefile, Shell, regex, SQL, etc
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre (via https://happytodev.substack.com/p/quoi-de-neuf-les-devs-numero-34 )
Un outil pour géolocaliser des photos via OpenStreetMap
Tout est dans le titre
L'auteur montre l'installation de Recalbox sur un Raspberry Pi
Comment se débrouiller quand on souhaite corriger une erreur dans git
Utilisation de debugger
en JavaScript
Tout est dans le titre
Une commande Linux bien utile
Les 19 conférences résumées :
- Résoudre AdventOfCode avec Github Copilot et OpenAI ChatGPTP
- Conversations avec ChatGPT : Illusion ou réalité ?
- Où va la Data Science ?
- Le multi-tenancy chez Apache Kafka, navigation dans un sujet majeur
- Storybook, une vraie bonne idée ?
- Revisiting Design Patterns after 20
- Java 19 & 20 : What’s new and noteworthy ?
- Comment des images peuvent-elles cacher des données secrètes dans leur encodage ?
- Rendons le DDD aux devs
- Container Builders : Which is the best image builder ?
- Alice au pays d’OpenTelemetry
- CRAC VM vs GRaal VM : Pour un démarrage rapide
- Cloud Native Security for the rest of us
- FoundationDB : Le secret le mieux gardé des nouvelles architectures distribuées !
- SQL (le retour) : Démystifions les idées préconçues et utilisons la DB efficacement
- Comment réduire et optimiser une table postgreSQL de plus de 5To ?
- De Chroot à Docker, Podman, et maintenant les modules Wasm, 40 ans d’évolution de la conteneurisation
- Voyage au centre de la veille : Apprendre en continu avec sa veille technologique
- Le numérique c’est pour tout le monde… Ou pas !
Une commande bien utile
Tout est dans le titre
Tout est dans le titre
Des exemples d'utilisation de ChatGPT pour le développement
Tout est dans le titre
Tout est dans le titre ^^
Tout est dans le titre
Tout est dans le titre
L'astuce concerne surtout l'idée d'une base par environnement (dev, test)
L'auteur donne une astuce pour les auteurs de bundles Symfony. On peut implémenter une extension pour ajouter des services pendant la compilation du conteneur de services... et pour éviter une trop grosse classe, on peut vouloir utiliser les Compiler Passes. Ces dernières n'ont pas accès à la configuration finale. L'auteur explique comment leur donner accès à la configuration de l'extension.
Tout est dans le titre
Tout est dans le titre
Un problème de mise en page CSS
Trivy est un outil d’audit de sécurité tout-en-un pour les conteneurs
Sa dernière version ajoute le scan des clusters Kubernetes
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Suite de https://lafor.ge/nix-5/ l'auteur montre une approche pour normaliser / automatiser la création de dérivations.
Tout est dans le titre
Il s'agirait plutôt d'un concurrent d'Algolia, en tant que moteur de recherche multi facettes
Tout est dans le titre
Tout est dans le titre
Tree-sitter est un outil de génération de parsers et une bibliothèque d'analyse progressive. Il peut construire un arbre de syntaxe pour un fichier source et le mettre à jour efficacement lors de l'édition du fichier.
L'auteur montre comment l'intégrer à Neovim
Tout est dans le titre
Suite de https://thevaluable.dev/vim-advanced/, on y apprend :
- plein de raccourcis claviers pour les modes INSERT et VISUAL
- les regex dans Vim ont plus ou moins de "magie"
- un atome dans une regex Vim est un pattern correspondant à un caractère
- les métacaractères de taille 0 (comme ^ et $) ne correspondent à aucun caractère mais peuvent permettre de restreindre les correspondances selon le contexte
- on peut utiliser les "marks" dans les regex
- on peut lancer n'importe quelle commande du shell avec
:!
- on peut insérer la sortie de commandes shell dans Vim avec
:read
- on peut plier / déplier du contenu
(via https://linuxfr.org/news/openssl-cookbook-est-maintenant-en-libre-diffusion-cc-by-nc) une liste de manières d'utiliser OpenSSL, que ce soit pour créer une autorité de certification privée complète ou pour tester la sécurité de votre serveur.
À noter que ce cookbook est extrait du livre de référence Bulletproof TLS et PKI
Impressionnant
Tout est dans le titre
Les conférences résumées
- Comment économiser de l’argent et donc du CO2 avec Azure 💸🌳
- Svelte, ou pourquoi je ne veux plus faire de React
- Gestion de la dette d'architecture dans un contexte d'hyper croissance
- Still not into State Machines in 2023?!
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Amusant :)
Suite de https://blog.zwindler.fr/2023/04/24/cluster-kubernetes-gratuit-part1/ on voit l'installation sur le free tier d'Oracle Cloud Infrastructure
Tout est dans le titre
Tout est dans le titre
Une belle déclaration :)
L'auteur analyse deux projets open source : DevDash (un de ses projets) et Kubernetes. Son analyse concerne essentiellement la complexité et son évolution. Il utilise git et awk.
Tout est dans le titre
Une présentation de ce problème : les dépendances d'un projet sont un vecteur d'attaque... et les projets PHP n'échappent pas à ce problème. L'auteur explore quelques pistes
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'auteur propose de mesurer le nombre de lignes de changement (ajout / suppression) par fichier pour les classer. Ceux qui changent beaucoup sont susceptibles d'être les plus complexes.
Il expose plusieurs autres points très intéressants.
Tout est dans le titre
Tout est dans le titre
La solution : utiliser un ValueResolver
Un exemple de refactoring d'une classe pour appliquer le principe d'inversion de dépendance
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'auteur présente les bienfaits de l'écoute active pour les développeurs, ainsi que quelques conseils pour y arriver
La liste :
- Token generator
- Hash text
- Bcrypt
- UUIDs v4 generator
- Encrypt / decrypt text
- BIP39 passphrase generator
- Hmac generator
- RSA key pair generator
- Date-time converter
- Integer base converter
- Roman numeral converter
- Base64 string encoder/decoder
- Base64 file converter
- Color converter
- Case converter
- Text to NATO alphabet
- YAML to JSON converter
- JSON to YAML converter
- List converter
- Encode/decode url formatted strings
- Escape html entities
- Url parser
- Device information
- Basic auth generator
- Open graph meta generator
- OTP code generator
- Mime types
- JWT parser
- Keycode info
- Slugify string
- HTML WYSIWYG editor
- User-agent parser
- HTTP status codes
- JSON diff
- QR Code generator
- SVG placeholder generator
- Git cheatsheet
- Random port generator
- Crontab generator
- JSON prettify and format
- JSON minify
- SQL prettify and format
- Chmod calculator
- Docker run to Docker compose converter
- IPv4 subnet calculator
- Ipv4 address converter
- IPv4 range expander
- MAC address lookup
- IPv6 ULA generator
- Math evaluator
- ETA calculator
- Chronometer
- Temperature converter
- Benchmark builder
- Lorem ipsum generator
- Text statistics
- Phone parser and formatter
Tout est dans le titre
Un problème bien vicieux : le type de l'UUID doit être marqué comme Uuid | string et pas string tout court... sinon Doctrine déclenche l'événement preUpdate même si rien ne change
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'auteur explique la création de types personnalisés en TypeScript, et leur utilité.
Tout est dans le titre
Un ensemble de polices (pour les CSS) organisé par type et présent dans chaque OS : cela évite le téléchargement d'une police avec l'effet FOUT
L'auteur explique les effets néfastes des biais cognitifs dans le développement. Il met l'accent sur 8 biais :
- le biais de l'optimisme (notamment pour les estimations de durée de développement)
- le biais de sur confiance
- le biais de confirmation (on ne tient compte que ce qui va dans nos préjugés)
- le vœu pieux (on ne confronte pas à la dure réalité)
- le biais d'ancrage (toujours pour les estimations de durée, la 1ère étant souvent prise comme référence -> d'où l'idée du poker planning, où toutes les estimations sont dévoilées en même temps pour éviter de s'influencer)
- l'effet du "train en marche" (notamment sur l'envie collective d'essayer une nouvelle technologie, sans que ça serve au business)
- le culte du cargo ("on a toujours fait ainsi")
- le biais de correspondance (si j'écris du mauvais code, c'est les circonstances - si mes collègues écrivent du mauvais code, ils sont mauvais)
Il donne quelques pistes pour y remédier (jouer l'avocat du diable, ne pas prendre de décision à chaud, formuler ses phrases pour éviter d'influencer via le biais d'ancrage, etc.)
L'auteur montre aussi l'utilisation de variables CSS pour créer des déclinaisons
Tout est dans le titre
Tout est dans le titre
L'auteur présente le contexte de développement de DevDash, un outil en CLI pour afficher des données type Google Analytics.
En particulier, on y apprend où et qand il a eu l'idée, comment il a défini ses buts, comment il a géré le projet et choisi la technologie. Comment s'est passé le process de développement (Pomodoro) et comment il a fait la promotion de son outil.
Suite (et fin ?) de https://thevaluable.dev/vim-veteran/, on y apprend :
- l'utilisation de
:verbose
pour afficher où une abréviation, une option, un mapping ou une commande utilisateur est défini - l'existence d'arguments spéciaux pour augmenter les capacités de nos mappings
- la commande
:execute
pour exécuter une chaîne de caractère comme si c'était une commande - les autocommandes liées au déclenchement d'un événement (ouverture de fichier, etc.)
- l'utilisation de groupes d'autocommandes, notamment pour éviter d'ajouter plusieurs fois la même commande dans une liste d'autocommandes
- les fonctions custom
- l'autoloading et les namespaces - pratique pour accélérer le temps de chargement de Vim
La suite de https://thevaluable.dev/vim-commands-beginner/ on y apprend :
- l'utilisation des buffers, des windows, des tabs et de la liste des arguments.
- comment créer ses propres raccourcis clavier pour n'importe quel mode de Vim
- comment utiliser des raccourcis pour naviguer à travers la liste des changements, des fichiers ouverts, etc.
- comment créer et utiliser des macros
- comment lancer / relancer des commandes et naviguer dans l'historique (y compris en les modifiant)
- comment la fonction undo de Vim permet d'annuler une modification, même après avoir fermé Vim
- comment gérer et installer des plugins
Tout est dans le titre
Une bonne introduction au concept de branche dans git
Le manifeste du minimalisme dans le développement logiciel
Les conférences résumées :
- Les femmes dans vos équipes tech
- Rendez les états impossibles inatteignables dans vos frontends
- Sustainable by design
- Alice au pays d’Opentelemetry
- Débuter dans l'accessibilité numérique
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
On voit 2 façons de faire : symétrique (pour pouvoir déchiffrer plus tard) et asymétrique (comme pour les mots de passe, pas besoin de garder une version déchiffrable)
En résumé, l'auteur montre l'utilisation des opérateurs "glob" (avec possibilité de récursivité de navigation dans les répertoires, ainsi que l'ajout de qualificateurs et drapeaux pour préciser)
Il montre aussi comment lancer des commandes depuis l'historique, avec possibilité de modifier à la volée leurs paramètres.
Enfin on voit l'utilisation de $
, de '{}` et des drapeaux pour les paramètres et variables dans Zsh.
Il y a pas mal de choses utilisables aussi dans bash.
Tout est dans le titre
Tout est dans le titre
JoliCode a créé une application de "citation du jour", prétexte à l'exploration de technologies, à savoir Symfony UX (notamment Turbo et Twig LiveComponent) et l'utilisation de la fonctionnalité ResultSetMapping de Doctrine (bien pratique pour utiliser des fonctionnalités avancées de PostgreSQL)
Tout est dans le titre
Un site répertoriant les associations
Tout est dans le titre
L'auteur préconise l'utilisation de display: flow-root
pour résoudre les problèmes d'alignement de "float" (au lieu d'utiliser overflow: hidden
ou clear: both
)
Comparaison entre la consommation mémoire d'un module Node et du même module en Rust... Ça vaut le coup de se pencher sur Rust
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Un concurrent de Node et Deno
L'auteur recommande d'utiliser d'abord les métriques les plus simples :
- nombre de lignes de code (LOC)
- la forme du code (indentation)
- le couplage structurel (couplage de contenu - le module A modifie le contenu du module B - et couplage commun - les modules modifient des variables globales)
- le couplage logique
Les autres métriques (dont la complexité cyclomatique) peuvent être utiles si elles sont beaucoup trop grandes.
La liste :
🎛️ Encodage, décodage
Créer un QR-Code
Décoder un QR-Code
Encoder et décoder du base64
Encoder et décoder du morse
Chiffrement de César et Vigenère
Chiffrement Atbash
Changer la casse d’un texte
🔄 Convertisseurs numérique
Conversions binaire, décimal…
Convertir des chiffres romains
Convertisseur d’unités
Convertir des mAh en kWh
🛠️ Générateurs en tout genre
Générateur de nombre aléatoire
Générateur de blabla (« tron »)
Générateur de vCard
Générateur de faux-texte (lorem ipsum)
Générateur de carré-magique
Générateur de GUID
📚 Mots et dictionnaires
Générateur des mots inexistants
Rechercher des mots dans un dictionnaire (avec des regex)
Rechercher des anagrammes
🌈 Photos & couleurs
Prendre une photo avec la webcam
Sélecteur de couleur
Retoucher une image
Supprimer la transparence d’une image
Résistance et code couleur
🎬 Audio & Vidéo
Interface graphique basique pour FFMpeg
Spectre audio d’une chanson
Spectrographe audio d’une chanson
Générer des tonalités DTMF
Générateur de fréquences audio
🗓️ Dates & heures
Calendrier du mois
Additionner des dates
Minuteur avec alarme
Avez-vous 1 000 000 000 de secondes ?
Quelle heure est-il sur Mars ?
Quel jour était-il le … ?
L’horloge en pourcentage
Quel timestamp est-il ?
Traduire une date dans une autre locale ?
💻 Programmation
Minifier et déminifier du code
Calculer une checksum
Imager une Regex
Calculer un « chmod » (Linux / Unix)
Table des caractères
Encodage d’un caractère (XML, UTF-8…)
Valider une email
Optimiser un SVG
Générer un tableau HTML
🎮 Jeux & jeu vidéo
Jouer à 2048
Jouer au mahjong
Jeu de la vie
Jouer à Tetris
Tableau périodique
Jouer à Mutos
Jouer à 24
Table des types Pokémon
💵 Argent
Calculer son endettement
Partager des dépenses entre amis
🚙 Voiture électrique
Coût d’une EV et d’une voiture essence
Temps de charge d’une voiture électrique
Convertir des unités de conso en carburant
⌛ Écrans de veille
Quelle couleur est-il ?
Matrix code rain
Faux écran de mise à jour Windows
Empêcher la mise en veille
🔢 Mathématiques
Tracer un graphique
Les fonctions trigo
Générer des figures de Mandelbrot (fractales)
Générer des figures de Julia (fractales)
Générer des figures de Lorenz (chaos)
Calculateur de trou noir
Afficher des équations en LaTeX
Calculer un pourcentage
🧪 Divers
Toutes les informations de votre navigateur
Tester votre connexion internet
L’électricité en France
EDF/Tempo : la couleur du jour
Un mur de notes
Un bloc note en post-it
Youtube 2 RSS
HTMHell
Suivi de colis
Liste d’emojis
Données du GPS
Calculer l’âge de votre chien
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Une bonne astuce
Tout est dans le titre
L'auteur explique le fonctionnement de l'algorithme KMP, algorithme de recherche de sous-chaîne.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Suite de https://thevaluable.dev/vim-adept/, on y apprend :
- d'autres raccourcis en mode INSERT et en mode COMMAND-LINE
- l'utilisation des abréviations
- comment enregistrer ses réglages courants dans un fichier avec
:mk nom_du_fichier
- comment enregistrer sa session courante avec
:mks nom_du_fichier
- ce qu'est un fichier viminfo (pour Vim) ou shada (pour Neovim)
- l'utilisation des redirections et des filtres
Suite de https://thevaluable.dev/vim-intermediate/ on y apprend :
- plusieurs raccourcis commençant par "g"
- comment remplacer une expression par une autre (utiliser de préférence :sm si le pattern cherché est une regex)
- les intervalles (par exemple .,.+10 désigne l'intervalle allant de la ligne courante à 10 lignes après)
- la liste des positions dans différents fichiers
- la liste des "quickfixes" et des "locations"
- l'utilisation des "marks"