Vincent Bernat

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

519 followers220 following192 posts

New release of Akvorado, an IPFIX/sFlow collector and visualizer. Among the new features are support for TCP/SCTP for IPFIX, buttons to reverse direction in the console, timezone support, optional separate smaller inlet binary. Fetch it while this is hot! github.com/akvorado/akv...

github.comRelease v2026.10.1 · akvorado/akvorado✨ inlet: add support for IPFIX over TCP and SCTP ✨ outlet: add SetName() to exporter classifiers to rename exporters ✨ console: add buttons to reverse the direction of dimensions and filter ✨ outle...

To make SVG rendering more reproducible for my blog, I now normalize the fonts (serif to Literata, sans-serif to Source Sans Pro, monospace to Iosevka) and embed the appropriate subset in each SVG. +30% in size, but this was long term issue I had and it's still far smaller than raster to WebP (5×).

Link checking to avoid link rot is now increasingly hard. A lot of sites are now returning errors, whatever if you lie or not about the user agent. For example Cilium documentation returns a 429 (with Retry-After: None), while it's a static site.

And I have replaced CloudFront by Bunny as a test. The CDN part of Bunny looks pretty smooth. I am also trying the DNS part, notably with the ability to script records for geolocation, but I have a hard time making it work. I have A records working, but not AAAA.

The reason of this switch is that CloudFront is unclear about GDPR and what they store when you don't enable logging. Bunny is pretty clear about what they store. Notably, the IP addresses are truncated.

Hacking the Go compiler to efficiently map IPv4 to IPv6: vincent.bernat.ch/en/blog/2026.... This post digs in how to modify the Go compiler to reduce netip.AddrFrom16()+netip.As16() to almost nothing, first through the noding process, then with rewrite rules for the SSA form.

vincent.bernat.chHacking the Go compiler to efficiently map IPv4 to IPv6Go maintainers declined netip.Addr.Map() saying the compiler should optimize netip.AddrFrom16(ip.As16()) instead. How difficult is it to implement?

Bot-free self-hosted analytics with GoatCounter on NixOS: vincent.bernat.ch/en/blog/2026.... With an alternative JavaScript client, a fallback to CSS, an overdoing local proxy, and a lot of NixOS, including Litestream to backup an SQLite database!

vincent.bernat.chBot-free self-hosted analytics with GoatCounter on NixOSAI scrapers inflated my visitor count tenfold. I now count a visit only after a user interaction, buffer hits on each web server, and back up the...

I tried uploading my latest video on Youtube. It seems that I have to be "verified" to be able to add a link to the text version or to add a second language track. I also immediately got a claim about the audio soundtrack, while its recording is CC-PDM-1.0. So, I've just deleted the video.

I am self-publishing videos on my website using HLS (check https:// vincent.bernat.ch/en/blog/2018-self-hosted-videos). But, I made a video with two sound tracks and browsers don't support audio track selection without JavaScript. Maybe I'll switch to VideoJS 10 once it is not in beta anymore.

vincent.bernat.chSelf-hosted videos with HLSPutting videos on YouTube is a convenient solution, but not a privacy-friendly one. Using HLS, it's possible to self-host videos while being...

An interactive introduction to the spanning tree protocol: vincent.bernat.ch/en/blog/2026.... While the spanning tree protocol is quite old, it is still sometimes useful. This article explores it with interactive demonstrations running a real daemon (MSTPD) compiled to WebAssembly with Emscripten.

vincent.bernat.chAn interactive introduction to the spanning tree protocolRoot election, port roles, proposals and agreements, topology changes: explore RSTP through simulations powered by MSTPD compiled to WebAssembly.

In Debian, CDBS has been deprecated and removed. It didn't get much love, but for a very long time, it made packaging easier by making implicit good decisions, a bit like the "recent" dh command sequencer (2008).

New release of Akvorado, a IPFIX/sFlow collector with a builtin web interface for visualization. We are switching to CalVer for versioning. The GeoIP/networks database migrates from the orchestrator to the outlet. It is now possible to export enriched flows to Kafka. github.com/akvorado/akv...

github.comRelease v2026.8.0 · akvorado/akvoradoAkvorado does not use the networks ClickHouse dictionary anymore. It is not removed on upgrade: it still holds a copy of the GeoIP databases in ClickHouse memory. Drop it on each cluster member onc...

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.

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.

vincent.bernat.chContributing to open source: a new feature for RRDtoolNote (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 reposted

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...

honeycomb.ioThe Second Edition of Observability Engineering Is HereIT’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...
Doug Winter@doug.winter.cx

Both Cat and Charity are very much worth reading.

Vincent Bernat reposted

Replying to @vincent.bernat.ch

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!

Vincent Bernat reposted

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.

github.comRelease 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...

Vincent Bernat reposted

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...

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.