HNHacker News
TopNewBestAskShowJobs

ruuda

2,195 karma · joined August 15, 2018

https://ruuda.nl
submissionscomments
ruuda··on IPv6 just turned 30 and still hasn't taken over the world
Everything I know about IPv6 comes from this one blog post: https://apenwarr.ca/log/20170810. It’s from 2017, when IPv6 adoption was 17% according to https://www.google.com/intl/en/ipv6/statistics.html; today it’s close to 50%.
ruuda··on What's New in Python 3.15
It's a Linux thing too. It bit me in particular when running a script in a container that defaulted to ascii rather than utf-8 locale.
ruuda··on What's New in Python 3.15
> Python now uses UTF-8 as the default encoding, independent of the system’s environment.

Nice, not specifying the encoding is one of the most common issues I need to point out in code reviews.

ruuda··on Backing up Spotify
There is a sweet spot for the bass. Lower is better for deep bass, but too low and it stops being a recognizable note, and consumer speakers can't reproduce it. This effect exists though I'm not sure if it is the cause of the pattern here.
ruuda··on VPN location claims don't match real traffic exits
They accept Monero too
ruuda··on Ask HN: Should "I asked $AI, and it said" replies be forbidden in HN guidelines?
I find them helpful. It happens semi-regularly now that I read something that was upvoted, but after a few sentences I think "hmm, something feels off", and after the first two paragraphs I suspect it's AI slop. Then I go to the comments, and it turns out others noticed too. Sometimes I worry that I'm becoming too paranoid in a world where human-written content feels increasingly rare, and it's good to know it's not me going crazy.

In one recent case (the slop article about adenosine signalling) a commenter had a link to the original paper that the slop was engagement-farming about. I found that comment very helpful.

ruuda··on Bikeshedding, or why I want to build a laptop
Dell XPS used to be like this, but unfortunately Dell discontinued them :'(
ruuda··on Adenosine on the common path of rapid antidepressant action: The coffee paradox
Agreed. I got further into this one than usual before I grew suspect, but something felt off.
ruuda··on Synadia and TigerBeetle Pledge $512k to the Zig Software Foundation
> We did have three bugs that would have been prevented by the borrow checker, but these were caught by our fuzzers and online verification. We run a fuzzing fleet of 1,000 dedicated CPU cores 24/7.

Remember people, 10,000 CPU hours of fuzzing can save you 5ms of borrow checking!

(I’m joking, I’m joking, Zig and Rust are both great languages, fuzzing does more than just borrow checking, and I do think TigerBeetle’s choices make sense, I just couldn’t help noticing the irony of those two sentences.)

ruuda··on We're losing our voice to LLMs
I wholeheartedly agree, I wrote about this at https://ruudvanasseldonk.com/2025/llm-interactions.
ruuda··on Cloudflare outage should not have happened
Sure, a different database schema may have helped, but there are going to be bugs either way. In my view a more productive approach is to think about how to limit the blast radius when things inevitably do go wrong.
ruuda··on GitHub: Git operation failures
FYI in an emergency you can `git push` to and `git pull` from any SSH-capable host without the need to use GitHub.
ruuda··on AWS outage shows internet users 'at mercy' of too few providers, experts say
Rent servers from a local provider. It's cheaper, you get more control over the hardware, but most of all, it avoids correlated failures.
ruuda··on Automatic K8s pod placement to match external service zones
> Have you considered alternative solutions?

How about, don't use Kubernetes? The lack of control over where the workload runs is a problem caused by Kubernetes. If you deploy an application as e.g. systemd services, you can pick the optimal host for the workload, and it will not suddenly jump around.

ruuda··on Abstraction, not syntax
I mention it in the first paragraph, and what I think of it in the second paragraph.
ruuda··on MAML – A new configuration language
This thing is what triggered me to write https://ruudvanasseldonk.com/2025/abstraction-not-syntax
ruuda··on You can't build tcc from Nixpkgs if you are in the UK
It says so at https://repo.or.cz/uk-blocked.html:

> UK's Online Safety Act 2023 would require us to do a prohibitively complicated risk assessment for our service. We're talking reading through thousands of pages of legal guidelines.

> We're a volunteer operation and would likely be held responsible as individuals. There is talk of fines up to 18 million GBP which would ruin any single one of us, should they get creative about how to actually enforce this.

> Our impression is that this law is deliberately vague, deliberately drastic in its enforcement provisions, and specifically aimed against websites of all sizes, including hobby projects. In other words, this seems to us to be largely indistinguishable from an attempt to basically break the internet for all UK citizens.

> If we could afford to just hope for the best, we'd love to.

The way I understand this is that it's not feasible for them to assess how the legislation impacts them, so they would rather stay safe than risk having their lives destroyed.

ruuda··on Ask HN: What are you working on? (September 2025)
Adding unpack/spread syntax to https://rcl-lang.org/.
ruuda··on YAML document from hell (2023)
> Maybe Nix in pure eval mode, absurd as that sounds?

It doesn’t sound absurd, it’s pretty nice. What do you think about https://rcl-lang.org?

ruuda··on Configuration files are user interfaces
In RCL you can edit source files programmatically with `rcl patch`: https://ruudvanasseldonk.com/2025/automating-configuration-u...
ruuda··on Configuration files are user interfaces
I’ve toyed with Cue, but never in a production setting. I like the ideas behind it, it’s very elegant that the same mechanism enables constraining values and reducing boilerplate. It’s somewhat limited compared to Jsonnet, RCL, Dhall, etc., you don’t get user-defined functions, but the flip side of that is that when you see something being defined, you can be confident that it ends up in the output like that, that it’s not just an input to a series of intractable transformations. I haven’t used it in large enough settings to get a feeling for how much that matters. Also, I find the syntax a bit ugly.

We did a prototype at work to try different configuration languages for our main IaC repository, and Cue was the one I got furthest with, but we ended up just using Python to configure things. Python is not that bad for this: the syntax is light, you get types, IDE/language server support, a full language. One downside is that it’s difficult to inspect a single piece of configuration, you run the entry point and it generates everything.

As for RCL, I use it almost daily as a jq replacement with easier to remember syntax. I also use it in some repositories to generate GitHub Actions workflows, and to keep the version numbers in sync across Cargo.toml files in a repository. I’m very pleased with it, but of course I am biased :-)

ruuda··on Configuration files are user interfaces
GitHub Actions also have function calls, it’s just that they can only occur in very specific places in the program, and to define a function you have to create a Git repository.

And don’t forget Ansible playbooks!

ruuda··on Configuration files are user interfaces
From the application point of view, recently I'm converging on this: define data structures for your config. Ensure it can be deserialized from json and toml. (In Rust this is easy to do with Serde; in Python with Pydantic or dataclasses.) Users can start simple and write toml by hand. If you prefer KSON, sure, write KSON and render to json. If config is UI, I think the structure of the data, and names of fields and values, matter much more than the syntax. (E.g. `timeout = 300` is meaningless regardless of syntax; `timeout_ms = 300` or `timeout = "300 ms"` are self-documenting.)

When the configuration grows complex, and you feel the need to abstract and generate things, switch to a configuration language like Cue or RCL, and render to json. The application doesn't need to force a format onto the user!

ruuda··on The origin story of merge queues
Also related: https://www.channable.com/tech/automated-deployments. Hoff predates many of the systems in the article.
ruuda··on We all dodged a bullet
I'm not sure whether the compromised packages were the source of Kiln's API compromise, but it's plausible. It lead to theft of $41M worth of SOL. https://cointelegraph.com/news/swissborg-hacked-41m-sol-api-...
ruuda··on I Don't Have Spotify
Not the poster, but I also leave js disabled by default. Meltdown/Spectre made it very clear that automatically executing untrusted third-party code securely is basically impossible. I browse the web using Chromium. I don’t think it’s common for people to disable js, but it works way better than you might expect. It’s easy to add an exception for the handful of sites that really need it. (Just three clicks.) Half of the web becomes better (no ads, no cookie banners). The other half stops working entirely, but usually that’s just a reminder that the content was probably not worth reading in the first place.
ruuda··on From multi-head to latent attention: The evolution of attention mechanisms
What about the converse, the paper became some massively influential because of the catchy title? Of course the contents are groundbreaking, but that alone is not enough. A groundbreaking paper that nobody knows about cannot have any impact. Even for research, there is a marketing part to it.
ruuda··on Ask HN: Is Kubernetes still a big no-no for early stages in 2025?
It depends of course, but probably Kubernetes is a solution to problems that you don't have, while it creates new problems that you don't currently have.
ruuda··on Zig's Lovely Syntax
> as name of the type, I think I like void more than ()

It's the wrong name though. In type theory, (), the type with one member, is traditionally called "Unit", while "Void" is the uninhabited type. Void is the return type of e.g. abort.

ruuda··on LLM Inflation
I consider inflation a double insult. (https://ruudvanasseldonk.com/2025/llm-interactions) It says "I couldn't be bothered to spend time writing this myself, but I'm expecting you to read all the fluff."
← PreviousPage 2 of 13Next →