←back to thread

241 points nokonoko | 5 comments | | HN request time: 0.803s | source
Show context
herodoturtle ◴[] No.45138777[source]
This article was such a cool trip down memory lane, and as an old-timer that hasn’t looked at this stuff since the early 90s (mode13h anyone?) I am so happy to see how strong the scene is today.
replies(2): >>45139164 #>>45139700 #
1. ErneX ◴[] No.45139164[source]
His live set demo is pretty neat

https://youtu.be/3lOptjAeA2w

Repo: https://github.com/0b5vr/0mix

replies(1): >>45139235 #
2. skrebbel ◴[] No.45139235[source]
Just to clarify for readers who didn't read the interview, not a live set, it’s a 64kb demo that looks and feels like a recording of a livecoding competition. So “live set demo” is technically correct because it’s a “live set” themed demo. But it’s not actually a live set :-)
replies(2): >>45141766 #>>45142514 #
3. slickytail ◴[] No.45141766[source]
In what sense is this 64KB? Clearly there's more than 64KB of code in the repo. And since it's typescript it's not like there's a binary that could be 64KB.
replies(1): >>45142534 #
4. genezeta ◴[] No.45142514[source]
I don't know why the sibling comment is dead (edit: was). I mean, it is a valid concern, if one doesn't know.

So, for slickytail and anyone who has the same question:

The code is actually compressed into a binary blob. You can see it if you just look at the source of https://0b5vr.com/0mix/0mix.html

A small script loads the blob and uncompresses it before running it through eval:

  fetch("#").then(t=>t.blob()).then(t=>new Response(t.slice(156).stream().pipeThrough(new DecompressionStream("deflate"))).text()).then(eval)
This is a common approach in browser demos and what is counted as "less than 64Kb" is that final html. A similar technique compresses it into a PNG.
5. skrebbel ◴[] No.45142534{3}[source]
The html file with all assets and js bundled in is under 64kb.