Flux
Toutes les sources

Vincent Bernat

13 articles Flux RSS
DevOps Programmation Cybersécurité
Des statistiques sans robots avec GoatCounter auto-hébergé sur NixOS

Des statistiques sans robots avec GoatCounter auto-hébergé sur NixOS

En 2016, j’ai de ce blog pour ne pas me rendre complice de la plus grande machine à aspirer les données personnelles. À la place, j’analysais les journaux de mes serveurs avec . Depuis quelques années, les statistiques ne veulent plus rien dire, malgré mes tentatives pour filtrer les robots : gonflent le nombre de visiteurs à environ 2 000 par jour. J’ai fini par adopter , une plateforme libre de mesure d’audience, respectueuse de la vie privée. J’ai remplacé le client JavaScript pour filtrer…

Vincent Bernat
Notes de marge avec le positionnement par ancre CSS

Notes de marge avec le positionnement par ancre CSS

Je fais un usage intensif des notes de marge : elles gardent le contenu optionnel à côté du texte au lieu de renvoyer le lecteur en bas de page. les affiche sans JavaScript, mais n’accepte qu’un seul paragraphe. Le , désormais pris en charge par les navigateurs récents, est une alternative élégante. Les notes peuvent contenir plusieurs blocs, toujours sans JavaScript, et se positionnent sous le paragraphe qui les appelle sur les fenêtres étroites et les navigateurs plus anciens.12Tufte…

Vincent Bernat
Un guide non interactif du Spanning Tree Protocol

Un guide non interactif du Spanning Tree Protocol

Imaginez que vous louiez des bureaux pour un événement de trois jours. Vous installez à la hâte quelques commutateurs Ethernet et scotchez des câbles au sol pour connecter tout le monde. Malheureusement, Gaston, votre collègue le plus maladroit, trébuche sur un câble à chaque fois qu’il se lève pour aller chercher un café. Des câbles supplémentaires régleraient le problème, mais une boucle se transforme en tempête de diffusion : les paquets Ethernet se multiplient jusqu’à saturation. C’est là…

Vincent Bernat
Une introduction interactive au Spanning Tree Protocol

Une introduction interactive au Spanning Tree Protocol

Avertissement Cet article contient des exemples interactifs. Pour les visualiser et interagir avec eux, vous devez .quitter votre lecteur de flux :demo A1 @0,0 prio=4096 A2 @0,1 A3 @0,2 A4 @0,3 B1 @1,0 prio=8192 B2 @1,1 B3 @1,2 B4 @1,3 C1 @2,0 prio=8192 C2 @2,1 C3 @2,2 C4 @2,3 A1 -- A2 hazard=0 A2 -- A3 hazard=0 A3 -- A4 hazard=0 B1 -- B2 B2 -- B3 B3 -- B4 C1 -- C2 hazard=0 C2 -- C3 hazard=0 C3 -- C4 hazard=0 A1 -- B1 cost=10 B1 -- C1 cost=10 A4 -- B4 cost=20 B4 -- C4 cost=20 Léo @-0.3,0.7…

Vincent Bernat
L'usine à clous soviétique ou l'échec des KPI

L'usine à clous soviétique ou l'échec des KPI

En 2008, j’ai décroché mon second emploi, dans l’équipe réseau d’, la division derrière les sites web et le moteur de recherche de l’opérateur télécom français Orange. Tout y fonctionnait comme sur des roulettes : un environnement technique complet, une équipe dédiée pour chaque pan de l’activité et la liberté de me concentrer sur ce que je faisais de mieux. Quelques années plus tard, plus rien n’allait : minés par une obsession du chiffre, nous n’arrivions plus à livrer les nouveaux services…

Vincent Bernat
Tenir un blog avec l'assistance d'une IA

Tenir un blog avec l'assistance d'une IA

L’ inonde le web de contenus insipides. Les articles sur avec une image générée par , remplis d’émojis, publiés par des soi-disant experts sur un sujet auquel ils ne portent pas assez d’intérêt pour écrire eux-mêmes, sont les pires spécimens. Bien que je sois très contrarié de cette situation, je m’appuie sur des pour la , les et la . Je ne trouve pas cela incohérent.IAIALLMsLinkedIngrammairerévisions linguistiquestraduction Ma langue maternelle est le français mais j’écris la plupart des…

Vincent Bernat
Augmentation des performances de la RIB d'Akvorado grâce au sharding

Augmentation des performances de la RIB d'Akvorado grâce au sharding

Pour associer des informations de routage, telles que les chemins d’AS ou les communautés , aux flux, peut importer des routes via le (). Comme la table de routage Internet contient plus d’, Akvorado doit . C’est un défi de longue date, mais je pense que ce problème est désormais résolu grâce au , une méthode qui découpe la base de routage en plusieurs parties afin de permettre les mises à jour concurrentes.BGPBMPAkvorado Monitoring ProtocolBGPun million de routesgérer des dizaines de millions…

Vincent Bernat
CSS & rythme vertical pour le texte, les images et les tableaux

CSS & rythme vertical pour le texte, les images et les tableaux

Le rythme vertical structure les lignes selon un espacement régulier de haut en bas. Il permet de guider l’œil de manière fluide et prévisible. Grâce à l’unité CSS rlh, ce rythme est simple à mettre en place pour le texte1. Mais les illustrations et les tableaux peuvent perturber la mise en page. Le typographe amateur en moi aspire à suivre la sagesse de Bringhurst : Les titres, intertitres, citations, notes de bas de page, illustrations, légendes et autres intrusions dans le texte créent des…

Vincent Bernat
Calculer « 1/(40rods/​hogshead) → L/100km » depuis l'invite Zsh

Calculer « 1/(40rods/​hogshead) → L/100km » depuis l'invite Zsh

J’ai souvent besoin d’un calcul rapide ou de convertir une unité en une autre. Plutôt que de recourir à un outil séparé, quelques lignes de configuration Zsh transforment = en calculatrice. En tapant = 660km / (2/3)c * 2 -> ms, j’obtiens 6.60457 ms1 sans quitter mon terminal, grâce à l’éditeur de ligne de Zsh. L’alias = Le problème des caractères spéciaux Protéger l’expression automatiquement avec ZLE Conserver l’expression originale dans l’historique L’alias = L’idée de base est simple :…

Vincent Bernat
Découverte automatique de métriques Prometheus avec les labels Docker

Découverte automatique de métriques Prometheus avec les labels Docker

Akvorado, un collecteur de flux réseau, s’appuie sur Traefik, un proxy HTTP, pour exposer les services HTTP d’un environnement Docker Compose. Des labels Docker attachés à chaque service définissent les règles de routage. Traefik les prend en compte automatiquement au démarrage d’un conteneur. Plutôt que de maintenir un fichier de configuration statique pour collecter les métriques Prometheus, la même approche s’applique avec Grafana Alloy, simplifiant sa configuration. Traefik & Docker…

Vincent Bernat
Fragments d'un web adolescent

Fragments d'un web adolescent

J’ai exhumé quelques vieux articles tapés, adolescent, entre 1996 et 1998. Sans éclat à leur époque, ces pages composent, trois décennies plus tard, la chronique d’un temps disparu. Le mot « blog » n’existe pas encore. Wikipédia reste à venir. Google n’a pas vu le jour. AltaVista règne sur les recherches, tout en peinant déjà à embrasser l’immensité naissante du web1. Pour se rencontrer, il faut s’accorder au préalable et préparer son chemin sur des cartes de papier. 🗺️ Le web s’élance. La…

Vincent Bernat
RAID 5 avec des disques de capacités différentes sous Linux

RAID 5 avec des disques de capacités différentes sous Linux

Les solutions RAID classiques gaspillent de l’espace lorsque les disques sont de tailles différentes. Le RAID logiciel Linux avec LVM exploite la capacité totale de chaque disque et permet d’étendre le stockage en remplaçant un ou deux disques à la fois.1 Nous partons de quatre disques de taille identique : $ lsblk -Mo NAME,TYPE,SIZE NAME TYPE SIZE vda disk 101M vdb disk 101M vdc disk 101M vdd disk 101M Nous créons une partition sur chacun d’eux : $ sgdisk --zap-all --new=0:0:0 -t 0:fd00…

Vincent Bernat
Répartition du trafic sur des chaussettes UDP avec eBPF et Go

Répartition du trafic sur des chaussettes UDP avec eBPF et Go

Akvorado collecte des flux sFlow et IPFIX via UDP. Comme UDP ne retransmet pas les paquets perdus, il faut les traiter rapidement. Akvorado exécute plusieurs routines écoutant sur le même port. Le noyau devrait répartir équitablement les paquets reçus entre ces routines. Cependant, cela ne fonctionne pas comme prévu. Quelques routines présentent une perte de paquets importante : $ curl -s 127.0.0.1:8080/api/v0/inlet/metrics \ > | sed -n s/akvorado_inlet_flow_input_udp_in_dropped//p…

Vincent Bernat