samwho

Joined 15 years ago

Karma
1,458
Submissions
327
Member since
Jun 25
I write interactive visualisations of programming topics at https://samwho.dev
View on Hacker News

Recent submissions

Comment · 3 months ago
You are extremely welcome.
Comment · 3 months ago
Sam Rose here. Thank you <3
Comment · 4 months ago
I gave my boss every opportunity to stop me.
Comment · 4 months ago
Single browser.
Comment · 4 months ago
I learned that etcd wasn’t required while making webernetes! I’d always thought it was, was cool to learn some clusters use other storage backends.
Comment · 4 months ago
Completely agree! Wasn’t trying to discourage, hope it doesn’t have that effect.
Comment · 4 months ago
Thank you!

To address the earlier comment: I didn’t go down the “implement the OS-level stuff required to get k8s to compile to wasm” path due to bundle size, honestly and truly. My testing indicated it could be over 10Mb, and I didn’t want that if I could avoid it. Turns out, I could avoid it.

Whether it’s a bad idea remains to be seen. It could be! The project will never have full parity with k8s, and as k8s moves forward I probably won’t keep up. But I think the core of k8s is stable enough that that’s okay, and I can make great content about the bits that don’t change.

Comment · 4 months ago
I’d guess that about 90% of the webernetes code is ported directly from the Kubernetes codebase. In that sense it is a port of Kubernetes to the browser. But the CRI and CNI are facsimiles created to work in the browser and for the purpose of making educational content.

The thing I think is most misleading about the title is that I haven’t ported _all_ of Kubernetes. It’s just the slice I needed. I’m hoping to gradually port more of it, though.

Comment · 4 months ago
I’m 100% confident it would be possible to do a worker-per-pod runtime. If you’re serious about trying to make it then slide into my DMs, would love to talk about it. I also think a CRI that supports WASM would be fairly easy.

Volumes are one of those things that I’m quite sure won’t be that difficult to implement but I don’t have a need for them in the near future, so likely won’t support them for a good while.

Comment · 4 months ago
This is it. If you’re building something novel, and you want to rely on LLMs, you need to invest heavily in making tests. You don’t have the luxury of a reference implementation like I did here.
Comment · 4 months ago
Comment · 4 months ago
For some projects I think only reading the tests is probably fine. In this project I didn’t think it was enough purely because it’s a port of existing code, so there was a need to validate the port was as exact as it could be.

Many projects would be just fine if you created a comprehensive-enough set of tests that you understood to be enough.

Comment · 4 months ago
Web workers were on my mind from the start but I never found myself needing them. They were always my ace-in-the-hole if this ended up being too CPU hungry on the main thread but it never happened, so I didn’t bother.

One of the fun things is it shouldn’t be too difficult to create a new RuntimeService that uses web workers and slots in alongside my existing CRI. I’d love a PR along those lines!

Comment · 4 months ago
Sadly Katacoda got paywalled (totally get why they did it, these things have costs). I think some other similar platforms disappeared because they ran out of people willing to fund it. It’s a shame.

I’m hoping this offers an alternative. It has the risk of becoming out of date with reality, but at least even in that case the core should ~always be relevant.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton