Vincent Bernat
banner
vincent.bernat.ch
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
Pinned
With the team @free1337.bsky.social, we have developed a Netflow/IPFIX collector and visualizer. It is available at github.com/akvorado/akv.... It relies on several opensource components: GoFlow2, Kafka, ClickHouse, Vue, Tailwind, and more!
GitHub - akvorado/akvorado: Flow collector, enricher and visualizer
Flow collector, enricher and visualizer. Contribute to akvorado/akvorado development by creating an account on GitHub.
github.com
Reposted by Vincent Bernat
Last weekend I did something fun! I thought to myself “Can I get this 25 year old Sun Microsystems server online?” Better yet, can I have it host a website? 🤔

rup12.net/posts/can-my...
Can my SPARC server host a website?
The little corner of the internet owned by Darko!
rup12.net
February 9, 2026 at 3:58 PM
I have republished old articles I have written in the nineties when I was young. It's a small glimpse on this pre-dotcom bubble era. Most articles are in French.

vincent.bernat.ch/en/blog/2026...
Fragments of an adolescent web
Between 1996 and 1998, the web was in its infancy, AltaVista reigned supreme, and France lagged behind under the burden of expensive access and...
vincent.bernat.ch
February 8, 2026 at 3:29 PM
Reposted by Vincent Bernat
Non, ASN ne veut pas uniquement dire "Autorité de Sûreté Nucléaire".

Venez on en discute et je vous présente mon cheminement pour annoncer des IPs sur Internet en BGP !

une-tasse-de.cafe/blog/bgp-kub...
Avoir son ASN personnel pour annoncer ses IPs sur Internet
Comment j'ai obtenu mon propre ASN et utilisé BGP pour annoncer des routes IPv6 depuis chez moi.
une-tasse-de.cafe
February 8, 2026 at 11:28 AM
Thanks to Bart Schaefer, here is how to have an handy "=" alias to run a calculator directly from Zsh:
github.com/vincentberna...

With numbat installed, you can do things like this:
February 8, 2026 at 3:16 PM
NixOS CI is so cool. I can update a package of mine by just approving a PR. There is a lot of effort in this community to scale to the number of packages (130k packages currently).

github.com/NixOS/nixpkg...
ttl: 0.13.0 -> 0.13.4 by r-ryantm · Pull Request #483547 · NixOS/nixpkgs
Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript. meta.description for ttl is: Modern traceroute/mtr-style TUI meta.homepage ...
github.com
January 25, 2026 at 11:32 AM
New delegation for DFSG, Licensing & New Packages Team (superseding previous announcement). I hope this is good news and could lead to stop being so dependent on the NEW queue, which puts a drain on many ecosystems (notably Rust and Go).

lists.debian.org/debian-devel...
New delegation for DFSG, Licensing & New Packages Team (superseding previous announcement)
lists.debian.org
January 20, 2026 at 9:56 AM
Some notes around RAID 5 with mixed-capacity disks on Linux.

vincent.bernat.ch/en/blog/2026...
RAID 5 with mixed-capacity disks on Linux
Some notes to use Linux software RAID and LVM to set up RAID 5 across disks of different sizes.
vincent.bernat.ch
January 20, 2026 at 6:38 AM
Reposted by Vincent Bernat
Let's build a 1997 Quake PC!

fabiensanglard.net/quake_pc/
January 17, 2026 at 1:42 AM
Since a few months, GitHub actions are becoming unreliable (on free runners). I have jobs that timeout during docker pull, jobs failing to connect to a ClickHouse instance after 5 seconds.
January 17, 2026 at 2:36 PM
PyEZ got the ability to make querying an SSH agent configurable. There is a simpler solution: never disable the SSH agent (there is no such option in OpenSSH client for example). In 10 years, nobody explained why disabling SSH agent is useful.

github.com/Juniper/py-j...
allow_agent param support by chidanandpujar · Pull Request #1388 · Juniper/py-junos-eznc
Support for allow_agent parameter #1385 #1285 #1353
github.com
January 16, 2026 at 7:45 AM
Reposted by Vincent Bernat
There's a new eBPF sandbox by David Ventura to learn BPF development with exercises and detailed explanations: ebpf.party. Looks great for a first quick introduction!
January 15, 2026 at 11:02 AM
Akvorado 2.1.0 was just released. It adds "FlowDirection" and the ability to decap some protocols (IPIP, GRE, VXLAN, and, of course, SRv6).

github.com/akvorado/akv...
Release v2.1.0 · akvorado/akvorado
💥 docker: remove conntrack-fixer service (this requires Docker Engine v23 or more recent) ✨ inlet: add a configuration option to decapsulate received flows (IPIP, GRE, VXLAN, and SRv6 are supported...
github.com
January 10, 2026 at 9:53 PM
Using eBPF to load-balance traffic across UDP sockets with Go. This is useful when the default load-balancing algorithm is not good enough. This also enables graceful restarts.

vincent.bernat.ch/en/blog/2026...
Using eBPF to load-balance traffic across UDP sockets with Go
Learn how to implement eBPF-based load balancing for UDP sockets in Go. The article also covers graceful restarts.
vincent.bernat.ch
January 5, 2026 at 8:07 AM
Current status. Waiting for Debian BTS to assign me a bug number for me to link to another one. Soon 2026.
December 28, 2025 at 7:12 PM
A l'auto école, j'avais appris que le premier arrivé à un stop avait le droit de passage. Mais nulle mention de ça dans le R415-6. Sur le net, on trouve les deux versions.
December 23, 2025 at 6:08 AM
Compressing embedded files in Go: using a ZIP archive to reduce the space used by static assets in a Go executable. #golang

vincent.bernat.ch/en/blog/2025...
Compressing embedded files in Go
Static assets embedded in Go executable are not compressed, wasting some space. It is possible to compress them into a ZIP archive while keeping...
vincent.bernat.ch
December 8, 2025 at 6:33 AM
Modernizing Reddit's Comment Backend Infrastructure (from Python to Go, with an interesting approach of comparing reads/writes using A/B testing, as I suppose unit tests were not enough to bring confidence)

old.reddit.com/r/RedditEng/...
Modernizing Reddit's Comment Backend Infrastructure
Posted in r/RedditEng by u/Okgaroo • 470 points and 35 comments
old.reddit.com
December 5, 2025 at 6:38 AM
Akvorado 2.0.4 was released. Mostly useful for people suffering from performance regressions since 2.0.3.

github.com/akvorado/akv...
Release v2.0.4 · akvorado/akvorado
The previous release introduced a performance regression for users with many flows from a single exporter. This is fixed in this release. 🩹 docker: restart geoip container on boot 🌱 inlet: make lo...
github.com
December 4, 2025 at 1:03 PM
HAProxy 3.3.0 was released a few days ago: www.mail-archive.com/haproxy@form.... Debian packages for Debian Experimental, Debian Trixie and Ubuntu Noble have been uploaded to haproxy.debian.net.
[ANNOUNCE] haproxy-3.3.0
www.mail-archive.com
November 28, 2025 at 10:30 PM
Dingo: a meta-language for Go that adds Result types, error propagation, and pattern matching while maintaining 100% Go ecosystem compatibility. It's a transpiler. Pretty young and not complete yet.

github.com/MadAppGang/d...
GitHub - MadAppGang/dingo: A meta-language for Go that adds Result types, error propagation (?), and pattern matching while maintaining 100% Go ecosystem compatibility
A meta-language for Go that adds Result types, error propagation (?), and pattern matching while maintaining 100% Go ecosystem compatibility - GitHub - MadAppGang/dingo: A meta-language for Go th...
github.com
November 23, 2025 at 7:03 AM
reflect.MethodByName() Inflates Your Binary Size. Interesting. Also reflect.Call(). And text/template uses reflect.MethodByName() with a non-const argument. This prevents dead code elimination. I need to find how to detect this.
appliedgo.net/spotlight/re...
MethodByName Inflates Your Binary Size
Four methods in Go's reflect package can block dead code elimination and thus increase binary size.
appliedgo.net
November 20, 2025 at 7:19 AM
Reposted by Vincent Bernat
I was recently re-reading Crafting Interpreters and was struck by how delightfully effective its introduction is. In just four sentences, @stuffwithstuff.com establishes exactly what you'll learn from the book and why you'll enjoy learning it with him. refactoringenglish.com/blog/craftin...
What Makes the Intro to Crafting Interpreters so Good?
Developers are terrible at writing introductions, so it's worth studying what makes the Crafting Interpreters intro so compelling.
refactoringenglish.com
November 19, 2025 at 2:18 PM
Reposted by Vincent Bernat
So tempted to write a troll thread on how this incident shows Rust has bad error handling and wouldn’t have happened in Go, where we actually handle errors 🫣🫢😜

blog.cloudflare.com/18-november-...
Cloudflare outage on November 18, 2025
Cloudflare suffered a service outage on November 18, 2025. The outage was triggered by a bug in generation logic for a Bot Management feature file causing many Cloudflare services to be affected.
blog.cloudflare.com
November 19, 2025 at 10:14 AM
Akvorado 2.0.3 is just released! There are some important fixes, notably around flow corruption under heavy load. This release is also compatible with Docker Engine 29.

github.com/akvorado/akv...
Release v2.0.3 · akvorado/akvorado
This release contains some important fixes to prevent flow corruption under heavy load. 💥 config: skip-verify is false by default in TLS configurations for ClickHouse, Kafka and remote data source...
github.com
November 19, 2025 at 8:10 PM