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

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.

Hacking the Go compiler to efficiently map IPv4 to IPv6

Go maintainers declined netip.Addr.Map() saying the compiler should optimize netip.AddrFrom16(ip.As16()) instead. How difficult is it to implement?

vincent.bernat.ch

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!

Bot-free self-hosted analytics with GoatCounter on NixOS

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

vincent.bernat.ch

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.

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.

An interactive introduction to the spanning tree protocol

Root election, port roles, proposals and agreements, topology changes: explore RSTP through simulations powered by MSTPD compiled to WebAssembly.

vincent.bernat.ch

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

Release v2026.8.0 · akvorado/akvorado

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

github.com

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.

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

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!

scandinavian cranky tech stickers theme