I was about to write an article comparing semicolons in English with BGP confederations in networking: both of them are taught in class but shouldn't be used outside. Unfortunately, it seems the discourse around semicolons is more nuanced.
Vincent Bernat
@vincent.bernat.ch
Network engineer at AS12322. Debian and free software developer. Like to work on projects with C, Python, or Go. He/him. https://vincent.bernat.ch
for fellow freaks who want to render sheet music by writing plain text inside of markdown inside of Astro, well, I made something for you! astro-lilypond converts text to SVG and works in markdown or with a <LilyPond> component. zero client-side JS. 🎶 docs and install: lilypond.ky.fyi
Astro LilyPond
Render LilyPond music notation to images with Astro.
lilypond.ky.fyi
I've asked IEEE the authorization to reproduce one diagram from IEEE 802.1Q (through standards.ieee.org/ipr/copyrigh...). Do they answer "fast"?
IEEE Standards Permission For Use Form
Submit requests for permission for use of IEEE copyrighted material published by IEEE Standards Association.
standards.ieee.org
I had this article about contributing to RRDtool in draft for more than 10 years! I just published it "as is:" vincent.bernat.ch/en/blog/2013... The goal was to encourage people around me to contribute to open source. Unfortunately, the patch took a bit of time to be accepted.
Contributing to open source: a new feature for RRDtool
Note (2026-07) This article was not completed and stayed as a draft for more than 10 years. As I think it is still useful today, even incomplete,...
vincent.bernat.ch
Just published Akvorado 2.4.1, your friendly IPFIX/NetFlow/sFlow collector: github.com/akvorado/akv....
Release v2.4.1 · akvorado/akvorado
🩹 outlet: fix decoding of destination MAC address for sFlow 🩹 console: avoid clipped labels in Sankey graphs 🩹 console: fix empty widgets when toggling dark mode 🌱 outlet: improve BMP RIB performan...
github.com
In Firefox, one tab for Outlook Web and one tab for Teams already eats 2.1GB of RAM. The next one is Zulip with only 150MB (which I think is OK).
ah yes...I should also post about OUR book. the 2nd edition of "Observability Engineering" is now available for download.. and you can download it for free on the honeycomb site. this was supposed to be an update, and ended up being a total rewrite (& then some). 😅 www.honeycomb.io/blog/the-sec...
The Second Edition of Observability Engineering Is Here
IT’S HERE it’s here it’s here it’s here!!!! The second edition of Observability Engineering is available for download, and since Honeycomb is the sponsor, you can now download it from our website (th...
honeycomb.io
Both Cat and Charity are very much worth reading.
I've made a Kubernetes that runs in the browser, and today we're open sourcing it. The hope here is to make super interactive and visual web content about Kubernetes much easier to write, and we have a whole bunch planned this year. Repo: github.com/ngrok/webern... Demo: webernetes-demo.ngrok.app
(Some) writers appreciate LLM writing assistance but readers hate it. Survey says… writethatblog.substack.com/p/dev-reacti... If readers suspect AI, they not only stop reading, but also downvote/avoid the author.
Building a Soviet Nail Factory: how KPIs killed efficiency. A story that I often tell. It is now old enough to not upset my former colleagues. vincent.bernat.ch/en/blog/2026...
Building a Soviet Nail Factory: how KPIs killed efficiency
How an obsession with KPIs at Orange led people to game them, slowing service delivery to a crawl. A cautionary tale about Goodhart's law.
vincent.bernat.ch
TIL: `export -f` in bash can export a function to a subshell
yes!! thank you for noticing!! :D i have been going to TOWN lately generating sticker art and slogans and learning graphic design fundamentals. maybe i will write about that today, hm. this is one of my favorite themes.. it feels very.. scandinavian? i will mail you some if you give me an address!
Blogging with an LLM assistant: vincent.bernat.ch/en/blog/2026... (grammar, copyediting, translation). This specific post is *not* modified by an LLM.
Blogging with an LLM assistant
As a non-native English writer, I rely on LLMs for grammar, copyediting, and translation, despite hating AI slop.
vincent.bernat.ch
i wrote a post about the growing divide between AI skeptics and AI enthusiasts. wins and costs are both real, but too often fall on different groups of people. when you're only experiencing half the story, it's too easy to write each other off. charitydotwtf.substack.com/p/ai-enthusi...
AI enthusiasts are in a race against time, AI skeptics are in a race against entropy
Both sides are grappling with a real existential threat, and both sides feel like they are screaming into the void. Here's how to close the gap and get everyone pulling in the same direction.
charitydotwtf.substack.com
This MT7915 card seems supported by Linux and features two radios and could advertise 16 SSIDs. Anyone knows if they work well? asiarf.com/product/wifi...
WiFi 6 11ax DBDC 1800Mbps Mini PCIe Module AW7915-NPD
AW7915-NPD is a WiFi 6 11ax 2T2R 1800Mbps mini PCIe Module powered by MediaTek MT7915DAN with FCC CE certificated.
asiarf.com
New release of Akvorado (direct from the train to Montpellier): github.com/akvorado/akv.... There is a new bidirectional option for Sankey graphs. Also, some improvements on handling the RIB. The next version is likely to ship an architecture change to pave the way to more flexible flow enrichment.
Release v2.4.0 · akvorado/akvorado
💥 build: require x86-64-v3 baseline for binary shipped with each release (supported by most CPU after 2014, no change for the Docker image) ✨ console: add a "bidirectional" option for sankey graphs...
github.com
More and more people I deeply respect and have learned a lot from over the years feel like they are speaking into a void, to the point where they are losing motivation to continue making content, which got me to write my first post on my site in over a year... www.kevinpowell.co/article/tell...
Scaling Akvorado BMP RIB with sharding. Making an efficient RIB to store 10M+ routes is challenging. While writing this article, I discovered additional optimizations. That's one reason to blog! vincent.bernat.ch/en/blog/2026...
Scaling Akvorado BMP RIB with sharding
How Akvorado's BMP component scales to tens of millions of routes thanks to RIB sharding and lock-free reads.
vincent.bernat.ch
I didn't notice until recently, but Epiphany, the GNOME browser, is quite on par with Safari. Same rendering engine, same JS engine, almost the same UI. It's convenient to test "Safari" on Linux.
Don't upgrade Docker Engine to 29.5.0 if you are using Akvorado. It breaks the conntrack handling. See here for some details: github.com/akvorado/akv... 😭
Conntrack issue with Docker 29.5.0 (not receiving new flows) · Issue #2431 · akvorado/akvorado
Disclaimer I have read and understood the disclaimer. I am a new user. Akvorado version 2.3.0 Bug description After updating to Docker 29.5.0 from 29.4.3, all new flows stopped being processed by A...
github.com
Another 0-day in Linux, discovered by someone reading the commit log of the master branch. This one is more difficult to workaround as it does not rely on any module. It does not allow to read arbitrary files, "just" files read by a suid binary. github.com/0xdeadbeefne...
GitHub - 0xdeadbeefnetwork/ssh-keysign-pwn: Steal SSH host private keys and /etc/shadow via the ptrace_may_access mm-NULL bypass + pidfd_getfd. Pre-31e62c2ebbfd kernels.
Steal SSH host private keys and /etc/shadow via the ptrace_may_access mm-NULL bypass + pidfd_getfd. Pre-31e62c2ebbfd kernels. - 0xdeadbeefnetwork/ssh-keysign-pwn
github.com
Just published lldpd 1.0.22, which contains some security fixes, notably CVE-2026-46433. It is evaluated to 6.5/10. I think this is a bit high, as in most cases, ASan is not enabled and you can't reliably crash the process. github.com/lldpd/lldpd/...
Heap OOB Read in VLAN Decapsulation memmove
## Summary `lldpd_decode()` in `src/daemon/lldpd.c` strips 802.1Q VLAN tags from received Ethernet frames by calling `memmove()` to shift the frame payload 4 bytes left. The third argument (byte...
github.com
Bambu Lab 3D printers: never again. They're breaking the open source social contract (for the nth time...), and I'm past hoping they'll amend their ways. www.youtube.com/watch?v=eb48...
Bambu Lab 3D printers: Never again
YouTube video by Jeff Geerling
youtube.com
At a time of 2 local privilege escalation vulnerabilities I find a good time to finally get my blog post on nixos and its relation with secrets out. I would summarise it with the following words: PLEASE DO NOT PUT SECRETS IN THE NIX STORE. IT IS WORLD-READABLE. isabelroses.com/blog/nixos-a...
NixOS and Secrets
My takes and experinces with secrets management on NixOS
isabelroses.com
terranix is actually really enjoyable to use, you basically get the entirety of hcl but in nix, and everything boils down to a config.tf.json for diffing and applying
Swissing a Table: moving step by step from a simple hash table to a "swiss table", the design behind Go’s new map implementation - Article by Phil Pearl @philpearl.bsky.social #Programming #Golang philpearl.github.io/post/swissin...
Swissing a table · Phil Pearl's Blog
Moving step by step from a simple hash table to a “swiss table” — the design behind Go’s new map implementation.
philpearl.github.io
Instead of blacklisting unused kernel modules, we can just disable kernel module loading after boot is complete with sysctl -w kernel.modules_disabled=1. At least on most servers. Example with NixOS: github.com/vincentberna...
common: lock kernel modules after boot · vincentbernat/nixops-take1@ed752cb
github.com
Four Column ASCII. This explains the ASCII table uses 2 bits for modifiers including CTRL and SHIFT. This makes keyboards easier to implement without electronic logic. garbagecollected.org/2017/01/31/f...
Four Column ASCII
garbagecollected.org
Nginx 1.30 ships a new "add_header_inherit" that could solve a longtime pain point when handling headers. Unfortunately, it does not allow one to override an existing header with a new value (it's append only). One day, I should migrate to Caddy. nginx.org/en/docs/http...
Module ngx_http_headers_module
nginx.org
For unknown reasons, I spent some time adding an XSLT stylesheet to the ATOM feed of my blog while I know this technology is being removed from Chromium and Firefox. 🤷♂️ There are some sharp edges around it (notably whitespace handling). vincent.bernat.ch/en/blog/atom...
vincent.bernat.ch