Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1040

V

Vincent Bernat

Personal blog · vincent.bernat.ch/en/blog · on HN as vbernatsystemsprogramming

Vincent Bernat's personal blog at vincent.bernat.ch covers systems and programming. Since 2018, 64 different Hacker News readers have linked it 106 times, most often “Coping with the TCP Time-Wait State on Busy Linux Servers ⁕ Vincent Bernat”. It is still writing: the last post was on 2026-11-01, and you can follow it by feed.

Visit the blog
106mentions?
6recommend?
64HN people?
2018–2026first – last linked?
Links on Hacker News per year · peak 30 in 2026

Too few sampled comments (17) to say how often HN recommends it.?

Why HN links it

HN readers link Vincent Bernat's blog for practical systems and networking write-ups, including Linux routing and radix trees, TCP TIME_WAIT and ephemeral ports, systemd, and Debian packaging.

Recommended for · 6 comments
Called a radix-tree write-up "excellent" and a Bloom filter write-up "excellent"; called the blog "one of my favorite blogs about networking"; a TIME_WAIT post

Summarised by Claude from a sample of 17 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Vincent Bernat's homepage

The author on HN?

vbernat · 1,948 karma · member since 2011

Personal blog: https://vincent.bernat.ch/en/blog

From their public HN profile, which links to this site.

Most-linked posts?

  1. Coping with the TCP Time-Wait State on Busy Linux Servers ⁕ Vincent Bernat
    5 people · 5 mentions · first linked 2020-10-02
  2. Writing Sustainable Python Scripts
    5 people · 5 mentions · first linked 2019-07-20
  3. Pragmatic Debian Packaging (2019 Edition)
    5 people · 5 mentions · first linked 2019-05-27
  4. Hacking the Go compiler to efficiently map IPv4 to IPv6
    5 people · 5 mentions · first linked 2026-10-04
  5. IPv4 Route Lookup on Linux
    4 people · 7 mentions · first linked 2020-01-24
  6. HiDPI on dual 4K monitors with Linux
    4 people · 5 mentions · first linked 2018-10-29
  7. An interactive tour of the spanning tree protocol
    4 people · 5 mentions · first linked 2026-08-24
  8. Why content providers need IPv6
    4 people · 4 mentions · first linked 2024-06-24
  9. Sharding a routing table for lock-free reads in Go
    3 people · 3 mentions · first linked 2026-05-25
  10. Git as a source of truth for network automation
    3 people · 3 mentions · first linked 2021-11-17

What Hacker News says?

  1. > From the kernel point of view, there is a only one socket with a unique listen queue. This socket is associated to several file descriptors: one in systemd and one in the current process. The socket stays alive as long as there is at least one file descriptor. An incoming connection is put by the kernel in the listen queue and can be dequeued from any file descriptor with the accept() syscall. Therefore, this appr…

    Comment linking /en/blog/2018-systemd-golang-socket-activation

    on “Why I Built Litestream”
  2. Submitted Non-interactive SSH password authentication as a story · 270 points

    HN discussion
  3. How's https://golden.com doing? I have come across some really detailed Wikipedia articles (for sports events, for example) and at times some really drab ones which I try to edit to improve. But original research articles sometimes do contain a lot more specific information that doesn't survive editor scrutiny on Wikipedia. And the less we talk about numerous advertisment/PR/fluff articles and socio/geo-political ed…

    Comment linking /en/blog/2017-ipv4-route-lookup-linux

    on “Wikipedia now has more than 6M articles in English”
  4. Submitted Self-hosted HTTP tunnels with SSH and Nginx as a story · 206 points

    HN discussion
  5. kassner · 2025-07-24Recommends
    If you just want to put a binary in a .deb, for internal usage, check out https://vincent.bernat.ch/en/blog/2019-pragmatic-debian-pack... . I went through it in the last year, worked fine to build for bookworm.

    Comment linking /en/blog/2019-pragmatic-debian-packaging

    on “What to expect from Debian/Trixie”
  6. Submitted Switching to the i3 window manager as a story · 112 points

    HN discussion
  7. Not on IOS XR: https://vincent.bernat.ch/en/blog/2020-syncing-ssh-keys-iosx... . The commands you mention are for NXOS.

    Comment linking /en/blog/2020-syncing-ssh-keys-iosxr-ansible

    on “Non-interactive SSH password authentication”
  8. Submitted An interactive tour of the spanning tree protocol as a story · 108 points

    HN discussion
  9. > Finding ways to have, say, 10 million blacklist elements with a small memory footprint is left as an exercise for the reader. In case the reader is interested (and this may not be what OP had in mind): In trading memory gains with computation, this is how I squeezed ~4M entries in less than 30 MiB: 1. Compress (reversed) individual entries using a dictionary or entropy encoder. I experimented with Shoco [0], Femto…

    Comment linking /en/blog/2017-ipv4-route-lookup-linux

    on “Ad blocking with Raspberry Pi and Pi-hole”
  10. Submitted Offline PKI using 3 Yubikeys and an ARM single board computer as a story · 52 points

    HN discussion
  11. ignoramous · 2020-03-02Recommends
    Thanks for the excellent write-up. Probably not as cache-friendly, but did you, at any point, evaluate Radix Tree [0] or Patricia Trie / CritBit Tree [1][2] as an underlying data-structure for the hash-table? These also compact nicely into one of the many succinct data-structures [3][4]. Radix Tree, in particular, seems to work really well for IPs from what I've read [5]. --- [0] https://vincent.bernat.ch/en/blog/20…

    Comment linking /en/blog/2017-ipv4-route-lookup-linux

    on “When Bloom filters don't bloom”
  12. Submitted Crafting endless AS paths in BGP as a story · 47 points

    HN discussion
  13. This looks a good idea to let people choose their preferred medium. I am not into video either, but I turned one of my latest blog article into a video using Claude, since I thought it would be “easy.” I asked it to build the video by screencasting a browser presenting the interactive diagrams of the article and add some titles. It build some kind of recording app for me. It still took me many hours, but I think I w…

    Comment linking /en/blog/2026-spanning-tree-video

    on “Show HN: HN.watch – Videos of all Hacker News posts”
  14. Submitted Jerikan: A configuration management system for network teams as a story · 45 points

    HN discussion
  15. I'm not sure what he's done about HiDPI, but apparently that can be invoked (depending on the app) using xsettingsd[1]. [1] https://vincent.bernat.ch/en/blog/2018-4k-hidpi-dual-screen-...

    Comment linking /en/blog/2018-4k-hidpi-dual-screen-linux

    on “NsCDE: Not So Common Desktop Environment”
  16. Submitted Why content providers need IPv6 as a story · 15 points

    HN discussion
  17. Is that with systemd logind? Why does logind interact with BIOS? https://vincent.bernat.ch/en/blog/2021-startx-systemd

    Comment linking /en/blog/2021-startx-systemd

    on “Why systemd is a problem for embedded Linux”
  18. Submitted Pragmatic Debian Packaging (2019 Edition) as a story · 8 points

    HN discussion
  19. As for building packages for your own use, the tooling is not that difficult. The documentation is just oriented to contribute packages for Debian itself. This implies some unwanted complexity and navigating outdated documentation. Packaging for Debian becomes simpler, but it's heavily rooted into having multiple files describing the package, use of a tarball as the source package and having each language comes with…

    Comment linking /en/blog/2019-pragmatic-debian-packaging

    on “Debian Packages That Need Lovin'”
  20. Submitted Writing Sustainable Python Scripts as a story · 7 points

    HN discussion
  21. mrspuratic · 2022-02-04Recommends
    Back in the HTTP/0.9 era TIME_WAIT was a big problem when running a busy [reverse] proxy. I remember using ndd to "tune" tcp_time_wait_interval on Solaris for this, as well as the anon (ephemeral) port range. This is my go to that topic now: https://vincent.bernat.ch/en/blog/2014-tcp-time-wait-state-l... "The solution is more quadruplets" is for me one those things that's blindingly obvious once pointed out. See als…

    Comment linking /en/blog/2014-tcp-time-wait-state-linux

    on “How to stop running out of ephemeral ports and love long-lived connections”
  22. Submitted Hacking the Go compiler to efficiently map IPv4 to IPv6 as a story · 6 points

    HN discussion
  23. neonsunset · 2025-02-19Recommends
    If you like radix trees, you may also find this article interesting and useful: https://vincent.bernat.ch/en/blog/2017-ipv4-route-lookup-lin...

    Comment linking /en/blog/2017-ipv4-route-lookup-linux

    on “Relaxed Radix Balanced Trees (2024)”
  24. Submitted Hacking the Go compiler to efficiently map IPv4 to IPv6 as a story · 6 points

    HN discussion
  25. It is rarely an issue in practice. There are workarounds to minimize connection resets. Using ECMP hashing on routers and a tiered load balancing topology are important. https://vincent.bernat.ch/en/blog/2018-multi-tier-loadbalanc... https://blog.cloudflare.com/high-availability-load-balancers... https://engineering.linkedin.com/network-performance/tcp-ove...

    Comment linking /en/blog/2018-multi-tier-loadbalancer

    on “Pentagon retakes control of IP addresses it moved in last minutes of presidency”
  26. Submitted Akvorado release 2.0: collects network flows with IPFIX and sFlow as a story · 6 points

    HN discussion
  27. CameronNemo · 2022-07-27Recommends
    Vincent Bernat has one of my favorite blogs about networking. https://vincent.bernat.ch/en/blog#tag-linux

    Comment linking /en/blog

    on “Understanding modern Linux routing (and wg-quick)”
  28. Submitted Bot-free self-hosted analytics with GoatCounter on NixOS as a story · 5 points

    HN discussion
  29. Also, it is possible for most settings to be dynamic, which is useful on a laptop where you can plug screens, with XSETTINGS. That's what Gnome and XFCE are using. With Awesome WM, I am using a script [1] to update XSETTINGS (through xsettingsd configuration file). I explain more on my blog [2]. [1] https://github.com/vincentbernat/awesome-configuration/blob/... [2] https://vincent.bernat.ch/en/blog/2018-4k-hidpi-du…

    Comment linking /en/blog/2018-4k-hidpi-dual-screen-linux

    on “A few HiDPI tricks for Linux”
  30. Submitted Hacking the Go compiler to efficiently map IPv4 to IPv6 as a story · 4 points

    HN discussion

Search all of HN for vincent.bernat.ch

Linked by the same people?