HN user

secure

5,257 karma
Posts79
Comments469
View on HN
michael.stapelberg.ch 1mo ago

How my minimal, memory-safe Go rsync steers clear of vulnerabilities

secure
4pts1
michael.stapelberg.ch 3mo ago

Stamp It! All Programs Must Report Their Version

secure
41pts9
michael.stapelberg.ch 5mo ago

Coding Agent VMs on NixOS with Microvm.nix

secure
109pts48
michael.stapelberg.ch 6mo ago

Can I start using Wayland in 2026?

secure
327pts325
michael.stapelberg.ch 7mo ago

Self-hosting my photos with Immich

secure
2pts0
michael.stapelberg.ch 8mo ago

My Impressions of the MacBook Pro M4

secure
252pts397
michael.stapelberg.ch 10mo ago

I am giving up on Intel and have bought an AMD Ryzen 9950X3D

secure
345pts360
michael.stapelberg.ch 1y ago

How I like to install NixOS (declaratively)

secure
164pts134
michael.stapelberg.ch 1y ago

My 2025 high-end Linux PC

secure
26pts9
michael.stapelberg.ch 1y ago

In praise of grobi for auto-configuring X11 monitors

secure
75pts48
michael.stapelberg.ch 1y ago

Tips to debug hanging Go programs

secure
2pts0
go.dev 1y ago

Go Protobuf: The New Opaque API

secure
287pts212
michael.stapelberg.ch 1y ago

Testing with Go and PostgreSQL: Ephemeral DBs

secure
4pts0
michael.stapelberg.ch 1y ago

Debug Go core dumps with delve: export byte slices

secure
2pts0
michael.stapelberg.ch 1y ago

A Signal run a day keeps the un-link away

secure
4pts0
michael.stapelberg.ch 2y ago

Ryzen 7 Mini-PC makes a power-efficient VM host

secure
22pts12
michael.stapelberg.ch 2y ago

Minimal Linux Bootloader debugging story

secure
101pts3
michael.stapelberg.ch 2y ago

Systemd: Enable indefinite service restarts

secure
126pts78
michael.stapelberg.ch 2y ago

My 2023 all-flash ZFS NAS (Network Storage) build

secure
5pts3
michael.stapelberg.ch 3y ago

Can Dell’s 6K monitor beat their 8K monitor?

secure
248pts453
michael.stapelberg.ch 3y ago

gokrazy: Instance-Centric Configuration Released

secure
14pts0
michael.stapelberg.ch 3y ago

DIY out-of-band management: remote power button

secure
165pts60
michael.stapelberg.ch 3y ago

DIY out of band management: remote console server

secure
57pts17
michael.stapelberg.ch 4y ago

How does rsync work?

secure
319pts51
michael.stapelberg.ch 4y ago

Rsync, Article 1: Scenarios

secure
3pts0
michael.stapelberg.ch 4y ago

25 Gbit/s HTTP and HTTPS download speeds

secure
22pts12
michael.stapelberg.ch 4y ago

My upgrade to 25 Gbit/s Fiber To The Home

secure
753pts507
michael.stapelberg.ch 4y ago

Smart Home Components

secure
3pts0
michael.stapelberg.ch 4y ago

My 2022 high-end Linux PC

secure
33pts17
michael.stapelberg.ch 4y ago

Fixing the Logitech MX Ergo Trackball Mouse Buttons

secure
59pts27

Yeah, when you run ≈10k agents instead of ≈10, you need a different solution :)

I’m curious what gVisor is getting you in your setup — of course gVisor is good for running untrusted code, but would you say that gVisor prevents issues that would otherwise make the agent break out of the kubernetes pod? Like, do you have examples you’ve observed where gVisor has saved the day?

You might want to add a little note to that effect to your link blog :)

I have added year indicators to my blog (such that old articles have a prominent year name in their title) and a subscribe note (people don’t know you can put URLs into a feed reader and it’ll auto-discover the feed URL). Each time, the number of people who email me identical questions goes down :)

Anyway, thanks for blogging!

GNOME’s “proper wayland implementation” also does not work with my monitor, as I explained in the article:

By the way, when I mentioned that GNOME successfully configures the native resolution, that doesn’t mean the monitor is usable with GNOME! While GNOME supports tiled displays, the updates of individual tiles are not synchronized, so you see heavy tearing in the middle of the screen, much worse than anything I have ever observed under X11. GNOME/mutter merge request !4822 should hopefully address this.

No, the lesson of “separate display server from window manager” was very clear when Wayland was started. People have been discussing this over the years ever since. (See also “client-side decorations” for another part of this issue that was heavily discussed.)

Thanks for your reply!

Can I suggest that we ask todsacerdoti to add a filter to their cross-posting thingie that skips articles that the author posted to HN?

I’m asking because todsacerdoti’s posts of my content always seem to be the ones that get traction, no matter if I post first on HN or lobsters. In fact, I’m wondering how he can even submit when I have already submitted — why isn’t his post marked a dupe? (To be clear: this was for my prior submissions, not this particular one.)

If OP's CPU cooler (Noctua NH-D15 G2) wasn't able to cool down his CPU below 100C, he must have been (intentionally or unintentionally with Asus multi core enhancement) overclocked his CPU. Or he didn't apply thermal paste properly or didn't remove the cooler plastic sticker?

I did not overclock this CPU. I pay attention to what I change in the BIOS/UEFI firmware, and I never select any overclocking options.

Also, I have applied thermal paste properly: Noctua-supplied paste, following Noctua’s instructions for this CPU socket.

Yeah, the clicky installer is pretty nice and smooth, but I mention in the article why the clicky installer is not good enough for me to install VMs — you cannot customize/pre-load it, and I want to minimize the manual steps.

SuSE Linux (around since the 90s) had such a single-layer-manages-everything approach, so yes, it’s not a new concept.

I used to think that you don’t need Nix to get most of the benefits that Nix/NixOS are known for. And to a certain extent, that’s true — you can achieve much in other scenarios. But by now, I think the reason why Nix/NixOS work well and deliver these powerful abstractions is because they are Nix all the way down, giving you an unparalleled level of integration/reach for your declarative layer.

Welcome to Linux!

I agree that through the lens of “how much time do you save?”, automating a NixOS installation is not worth it. As you describe, it’s just a few interactive commands in the upstream installer.

But from the perspective of “how much effort is it to spin up a new VM for this new project / task?”, spending the extra few minutes on building the fully automated installation path is well worth it. Also consider the perspective of “how many steps does it take to recover this VM in a disaster scenario?”, where reducing the manual steps to a minimum is very helpful.

BTW, the maintenance of the installer is virtually free: The configuration I show is the configuration I use in NixOS as well, so that needs to be updated anyway. Aside from that, to rebase my installer from NixOS 24.11 to NixOS 25.05, I just changed a number. When setting up a new machine, I can either download the upstream installer and write it to a USB stick, or I can change a number, rebuild (< 2 minutes) and write to a USB stick. Really not much difference.

Almost none of the packages the author listed get used, including zsh

Just to clarify: the point of having packages like lshw and zsh available is not for the case of performing the automated installation (where, yes, they are not used), but for the case where I want to interactively poke around in a booted installer to inspect the target system.

True, but I tested the Radeon RX9070’s power consumption with a 4K monitor.

  * ASUS, builtin-GPU@4K: ≈39W
  * ASUS + nVidia GF4070@4K idle: ≈50W
  * ASUS + radeon RX9070 (Linux 6.15): ≈80W

It isn't clear to me but is the author indicating that Linux kernel support for 2.5GbE is still early stages, would it be better to wait a while before getting a motherboard with 2.5?

If you want to play it safe, waiting longer before buying new hardware is always a good strategy. As I wrote, though, aside from needing a new firmware package, I did not notice any issues with the 2.5G support in the end.

There's a diff being presented between two lshw outputs? How is that diff shown?

I ran lshw > lshw-intel-285k-asrock.txt when I used the ASRock board and lshw > lshw-intel-285k-asus.txt when I used the ASUS board. Then I ran diff -u lshw-intel-285k-asrock.txt lshw-intel-285k-asus.txt and copy&pasted (parts of) the output into the blog post.

Thanks for the advice. I try switching to Wayland every year, but it has never worked without heavy graphics artifacts / flickering / glitches on any of my machines (I use an nVidia GPU so that I can drive my Dell UP3218K monitor).

Meanwhile, X11 works really well for me. No tearing, no artifacts, no breakages on upgrades. Really can’t complain.

Maybe next year.

Yes, I didn’t want to analyze and compare different solutions, I just wanted to share the joy of finding a solution that works well for me.

Using hot keys is nice, but hot keys (intentionally) don’t work while my screen is locked. I contemplated mapping an xrandr call onto a smart button (Shelly Button 1, essentially triggering an HTTP request), but in the end grobi has the same effect and is even more convenient than having to press buttons.