marceldegraaf

Joined 16 years ago

Karma
565
Submissions
118
Member since
Nov 24
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

View on Hacker News

Recent submissions

Comment · 4 months ago
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.

Comment · 4 months ago
Comment · 5 months ago
Comment · 5 months ago
Comment · 7 months ago
It was a compliment to Miele in particular, not to all of German engineering ever ;-)
Comment · 7 months ago
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.

Comment · 7 months ago
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.

Comment · 7 months ago
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.

Comment · 8 months ago
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.

Comment · 8 months ago
Hey, this looks great! I would love to test the Home Assistant version via TestFlight if that's possible; email is in my profile.
Comment · 11 months ago
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.

Comment · 11 months ago
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.
Comment · 1 year ago
Comment · 1 year ago
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.
Comment · 1 year ago
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.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton