HNHacker News
TopNewBestAskShowJobs

marceldegraaf

565 karma · joined November 24, 2010

Co-founder & CTO at https://walterliving.com

[ my public key: https://keybase.io/marceldegraaf; my proof: https://keybase.io/marceldegraaf/sigs/_o2CStKXOpGbk-mZOHYiPxq2ktNONm9yLPQPFq9v5uA ]

marceldegraaf.at.hn

submissionscomments
marceldegraaf··on My Steam Machine is a 50ft HDMI cable
It's perfect for gaming: silent, reliable network and Bluetooth, and supports basically any TV or projector. Works great with Xbox Elite controllers.

Only downside is that keyboard/mouse can't connect to Apple TV, so it's controller-only.

marceldegraaf··on Zenzizenzizenzic
Ah, I see someone has listened to "The Rest is Science" recently. Great podcast with Michael Stevens (VSauce) and Hannah Fry (the mathematician)

https://www.youtube.com/watch?v=9t-5lQ2mzuw

marceldegraaf··on Show HN: Gaussian Splat of a Strawberry
This video explains how Gaussian splatting works: https://www.youtube.com/watch?v=X8yRlA7jqEQ
marceldegraaf··on Two computers, one monitor, zero fiddling (2025)
I have my Windows gaming rig in a rack at home, and run Apollo [1] on it. Using that, I can game on any Apple TV (with an Xbox controller) or the MacBook (connected to a display/keyboard/mouse) anywhere in my home. With wired networking 60fps at 4K is no problem at all.

This would be easy to set up the other way around, too: having a gaming rig on your desk with Moonlight, and running Linux on another machine somewhere in the network with Apollo to host the development setup.

No KVM (or KVM-equipped monitor) or other special hardware needed.

1: https://github.com/ClassicOldSong/Apollo

marceldegraaf··on BMW Group to deploy humanoid robots in production in Germany for the first time
It was a compliment to Miele in particular, not to all of German engineering ever ;-)
marceldegraaf··on Returning to Rails in 2026
A BEAM process is not an OS thread. The way I understand it, a BEAM process is just a very small memory space with its own heap/stack, and a message system for communication between BEAM processes.

The BEAM itself runs multiple OS threads (it can use all cores of the CPU if so desired), and the BEAM scheduler gives chunks of processing time to each BEAM process.

This gives you parallel processing out of the box, and because of the networking capabilities of the BEAM, also allows you to scale out over multiple machines in a way that's transparent to BEAM processes.

marceldegraaf··on Returning to Rails in 2026
Counterpoint on the "going all-in": we have a 7 year old Elixir/Phoenix project that currently sits at ~100K LOC and I couldn't be happier.

It has been absolutely wonderful building this with Elixir/Phoenix. Obviously any codebase in any language can become a tangled mess, but in 7 years we have never felt the language or framework were in our way.

On the contrary: I think Elixir (and Phoenix) have enabled us to build things in a simple and elegant way that would have taken more code, more infrastructure, and more maintenance in other languages/frameworks.

marceldegraaf··on Returning to Rails in 2026
Not OP, but I made the move from Ruby/Rails to Elixir years ago, so I'll try to answer from my perspective.

Elixir is a functional programming language based on the "BEAM", the Erlang VM. We'll get back to the BEAM in a moment, but first: the functional programming aspect. That definitely took getting used to. I remember being _very_ confused in the first few weeks. Not because of the syntax (Elixir is quite Ruby-esque) but because of the "flow" of code.

However, when it clicked, it was immediately clear how easy it becomes to write elegant and maintainable code. There is no global state in Elixir, and using macros for meta-programming are generally not encouraged. That means it becomes very easy to reason about a module/function: some data comes in, a function does something with that data, and some data comes out. If you need to do more things to the data, then you chain multiple functions in a "pipe", just like how you chain multiple bash tools on the command line.

The Phoenix framework applies this concept to the web, and it works very well, because if you think about it: a browser opening a web page is just some data coming in (an HTTP GET request), you do something with that data (render a HTML page, fetch something from your database, ...) and you return the result (in this case as an HTTP response). So the flow of a web request, and your controllers in general, becomes very easy to reason about and understand.

Coming back to the BEAM, the Erlang VM was originally written for large scale (as in, country size) telephony systems by Ericsson. The general idea is that everything in the BEAM is a "process", and the BEAM manages processes and their dependencies/relationships for you. So your database connection pool is actually a bunch of BEAM processes. Multi-threading is built-in and doesn't need any setup or configuration. You don't need Redis for caching, you just have a BEAM process that holds some cache in-memory. A websocket connection between a user and your application gets a separate process. Clustering multiple web servers together is built into the BEAM, so you don't need a complex clustering layer.

The nice thing is that Elixir and Phoenix abstract most of this away from you (although it's very easy to work with that lower layer if you want to), but you still get all the benefits of the BEAM.

marceldegraaf··on BMW Group to deploy humanoid robots in production in Germany for the first time
I recently replaced the shock dampers on our Miele washing machine (~10 years old) and I was amazed how well designed and ergonomic the inside of the machine is.

Parts are very easy to get at, all screws are Torx of identical size, and there's one very obvious way to take the machine apart and put it back together again. Made the replacement a breeze.

marceldegraaf··on Show HN: Itsyhome – Control HomeKit from your Mac menu bar (open source)
Hey, this looks great! I would love to test the Home Assistant version via TestFlight if that's possible; email is in my profile.
marceldegraaf··on How I fell in love with Erlang
It's funny that you mention this, and it made me take some time to appreciate I've been working with Elixir full-time for almost 10 years now, and the entire experience has been so... stable.

There's been little drama, the language is relatively stable, the community has always been there when you need them but aren't too pushy and flashy. It all feels mature and – in the best possible way – boring, and that is awesome.

marceldegraaf··on A brief history of Time Machine (2024)
Arq (https://www.arqbackup.com/) is a pretty decent backup solution for macOS (and Windows) that lets you bring your own storage. So you can let it back up to Amazon S3/Glacier, Dropbox, your own NAS with ZFS, or one of the other supported destinations.
marceldegraaf··on 3D printed maquette of Amsterdam on scale 1:2000
The Netherlands has very complete and reliable public datasets (provided by the government) that contain loads of information about roads, buildings, up to individual trees. Additionally, there's sites like Netherlands3D[0] that combines these datasets into a 3D representation of the entire country.

0: https://netherlands3d.eu/

marceldegraaf··on Monodraw
Sidenote: thanks so much for taking the time to write the Oban docs. I'm a big user (and fan) of Oban, and the docs are fantastic.
marceldegraaf··on US Administration announces 34% tariffs on China, 20% on EU
DMA has not been used against EU tech companies because US tech companies are clearly the market leaders in the area the DMA is concerned with. The DMA exists to make sure that companies (from the EU, US, or elsewhere) comply with EU regulations regarding privacy, tracking, and consumer rights.

It's not a "tax" on US companies, it's just that US companies don't bother to comply with the regulations that apply in the EU, and thus get fined.

marceldegraaf··on US Administration announces 34% tariffs on China, 20% on EU
DMA is not the same as GDPR.
marceldegraaf··on US Administration announces 34% tariffs on China, 20% on EU
VAT is not a "sneaky backdoor tax", it's imposed on all goods, regardless of where they're produced or imported from.

DMA (and similarly, GDPR) are enforced in EU countries just as much. It's just that the US tends to have more gigantic tech companies that do shady things with user data. Apparently the US doesn't care, but the EU actually does, and so it enforces its laws.

marceldegraaf··on Self-Hosting like it's 2025
Best decision of last year for my homelab: run everything in Proxmox VMs/containers and back up to a separate Proxmox Backup Server instance.

Fully automated, incremental, verified backups, and restoring is one click of a button.

marceldegraaf··on Aspartame aggravates atherosclerosis through insulin-triggered inflammation
Why would that be? I'm no biologist but I'm quite sure the CO2 won't make it all the way to the bladder, when drinking plain carbonated water.
marceldegraaf··on Seagate: 'new' hard drives used for tens of thousands of hours
Those drives are amazing. Not exactly cheap, but very reliable and silent enough for home server use.
marceldegraaf··on Hack GPON – how to access, change and edit fibre ONTs
The provider can upgrade their network from GPON to XGS-PON; in fact KPN (a large Dutch provider) does this regularly, especially in areas with new housing developments.
marceldegraaf··on Building an Arduino Car Gear Shifter Indicator Display [video]
The photo shows the current gear (3) and an indicator that the driver could shift up (the arrow pointing upward).
marceldegraaf··on Launch HN: Onedoc (YC W24) – A better way to create PDFs
Great question! We actually just use the static assets (stylesheets, images) from our public asset CDN. The generated HTML points to the latest version of those assets, which means we can always use all the latest styling/assets in our generated PDF files.

To give you an idea, this is the kind of PDF files we generate that way: https://assets.walterliving.com/documents/walter-charlotte-d...

marceldegraaf··on Launch HN: Onedoc (YC W24) – A better way to create PDFs
We're using Gotenberg[1] to convert a rendered web page (with Elixir/Phoenix, in our case) to PDF. Works like a charm and we can use our existing frontend code/styling (including SVG graph generators) which is a huge bonus.

1: https://gotenberg.dev/

marceldegraaf··on The Fantilator Page
There's also https://www.reddit.com/r/OnlyFans
marceldegraaf··on HDMI ISA graphics card for vintage PCs by improving the Graphics Gremlin
There's a lot to say about the color brown :-) https://www.youtube.com/watch?v=wh4aWZRtTwU
marceldegraaf··on The anesthetic effect of air at atmospheric pressure
It's due to the narcotic effects of nitrogen that GUE (Global Underwater Explorers, a diving association rooted in tech/cave diving) uses EAN32 (32% oxygen) as their standard breathing gas.

They're also more conservative in their recreational diving depths: 30m (100ft) is the recreational limit, beyond that technical certification and a helium-based breathing gas (e.g. Trimix) are required.

marceldegraaf··on LEGO Building Instructions
That was an amazing set. The first one I bought from my own hard-saved cash as a kid. Really fun to build and amazing (and informative) to see the working steering, differential, suspension, and gear train assemblies.

I have this set laying around, mostly complete. Should really rebuild it someday!

marceldegraaf··on Can Dell’s 6K monitor beat their 8K monitor?
While most monitors these days have some protection built in to combat burn in, I believe it's still an issue, yes. It's why Monitors Unboxed (a brilliant YouTube channel, by the way) doesn't recommend[1] using an OLED monitor like the Asus ROG Swift PG42UQ for productivity work.

[1] https://www.youtube.com/watch?v=MNBmFJ68SCw

marceldegraaf··on Bitrex – the brand name of the bitterest substance in the world
Ha, this bit me a few weeks ago. Almost went back to the store with the Duracell batteries, thinking they were empty on arrival because none of them worked in any of my AirTags, until I found out the bittering agent was the problem.
Page 1 of 4Next →