John Millikin
john-millikin.com · Personal blog · on HN since 2013
John Millikin is a software engineer who writes technical notes on JSON and YAML, Rust, Kubernetes networking, WebAssembly, and variable-length integer encodings.
What HN saysHN cites it to show JSON is not a YAML subset, and for his vu128 integer encoding, WASM in VS Code, and Kubernetes IPv6 posts.
26HN people shared it
12linked it in comments
35stories submitted
2.1Kstory points
5 months agolast shared
2013people per year2026
Most-shared posts
- 1JSON is not a YAML subset (2022)6 people · 53 points · first shared 2022 · 30 comments on HN
- 2Why I Ripped the Same CD 300 Times4 people · 761 points · first shared 2018 · 246 comments on HN
- 3No Haunted Forests4 people · 45 points · first shared 2018 · 1 comments on HN
- 4Notes on Cross-Compiling Rust on a Mac for a Raspberry Pi4 people · 9 points · first shared 2020 · discussion on HN
- 5Stateless Kubernetes overlay networks with IPv63 people · 47 points · first shared 2021 · 11 comments on HN
- 6Error Beneath the WAVs (follow-up to “Why I Ripped the Same CD 300 Times”)3 people · 46 points · first shared 2018 · 3 comments on HN
- 7Unix Syscalls2 people · 287 points · first shared 2018 · 13 comments on HN
- 8vu128: Efficient variable-length integers2 people · 93 points · first shared 2024 · 33 comments on HN
- 9Rust and dynamically-sized thin pointers2 people · 8 points · first shared 2024 · discussion on HN
- 10Improved Unix socket networking in QEMU 7.22 people · 4 points · first shared 2023 · discussion on HN
- 11Gmail accepts forged YouTube emails1 people · 296 points · first shared 2022 · 95 comments on HN
- 12First Impressions of Rust1 people · 274 points · first shared 2020 · 188 comments on HN
- 13Debugging Win32 Binaries in Ghidra via Wine1 people · 94 points · first shared 2022 · 8 comments on HN
- 14Show HN: Anansi – a NoWeb-inspired literate programming preprocessor1 people · 57 points · first shared 2018 · 23 comments on HN
- 15Calling Python Libraries from Haskell (2010)1 people · 15 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
jmillikin · 2024-05-09
Calling WASM from VS Code has been possible for a few years: https://john-millikin.com/extending-vscode-with-webassembly
The news-worthy part of the link seems to be WASI support -- instead of coding against a C-style API with low-level primitives (shared memory), WASI enables higher-level bindings to be synthesized at runtime from WIT IDL.
Not sure I'd want to be building extensions against a v0.2 of a web specification, though. That's a pretty fast-moving target. It would be more reasonable once WASI has stabilized the FFI layer (maybe by reducing time spent on the pseudo-posix stuff).
arkenflame · 2026-05-29
I researched many different varint encodings for a GraphQL-specific binary format (resulting in Argo: https://github.com/msolomon/argo ). I ended up choosing protobuf-style zig-zag varints, but I also found these interesting:
vu128: https://john-millikin.com/vu128-efficient-variable-length-integers
metric/imperial varint: https://dcreager.net/2021/03/a-better-varint/
vectorizing VByte: https://arxiv.org/abs/1503.07387
baobun · 2025-07-09
YAML is actually not a superset of JSON.
https://john-millikin.com/json-is-not-a-yaml-subset
https://news.ycombinator.com/item?id=30052633
zbentley · 2024-08-01
Nobody tell the JSON::XS CPAN maintainer you said that: https://metacpan.org/pod/JSON::XS#JSON-and-YAML
Or John Millikin: https://john-millikin.com/json-is-not-a-yaml-subset
kasey_junk · 2024-08-01
anthk · 2024-02-21
Actual jargon file and not the ESR one:
https://john-millikin.com/the-jargon-file
flobosg · 2022-11-07
This reminds me of “Why I Ripped The Same CD 300 Times” – https://john-millikin.com/%F0%9F%A4%94/why-i-ripped-the-same-cd-300-ti…
(HN discussion: https://news.ycombinator.com/item?id=17649374)
krapp · 2022-10-05
>JSON is a subset of YAML anyway.
It isn't, really. A conforming YAML parser will not treat JSON data the same way that a JSON parser will in all cases. [0,1] The only correct way to deal with JSON is using a JSON parser.
[0]https://john-millikin.com/json-is-not-a-yaml-subset
[1]https://news.ycombinator.com/item?id=31406473
garaetjjte · 2021-01-24
>audio CDs which I've found don't use checksums or other mechanisms to prevent small defects from mangling the bitstream
Redbook audio CDs does use CIRC error correction, by storing 8 bytes of parity data inside each 33 byte F3 frame. It is not enough to correct all errors though, and Yellowbook data CDs stores extra correction codes on top of it. (276 bytes for each 2352 byte sector).
(and there's also issue below F3 frame level about EFM modulation, whether merging codes are generated properly to keep DSV low enough)
See: https://byuu.net/compact-discs/structure/ https://john-millikin.com/%F0%9F%A4%94/why-i-ripped-the-same-cd-300-ti… https://john-millikin.com/%F0%9F%A4%94/error-beneath-the-wavs
byuu · 2019-10-08
I feel we're already reaching a point where game preservation for older systems like Mega CD and PC Engine CD really need to have multiple rips that then weigh all the rips to try and correct for individual errors in each rip.
In fact I'm pretty sure groups like Redump are probably doing just that. Fun related article: https://john-millikin.com/%F0%9F%A4%94/why-i-ripped-the-same-cd-300-ti…
userbinator · 2019-10-08
For those really curious, the standard explaining the detailed structure of data CDs is free:
https://www.ecma-international.org/publications/standards/Ecma-130.htm
DVD-ROM is here too, for comparison:
https://www.ecma-international.org/publications/standards/Ecma-267.htm
And indeed there's really not much point in doing so. Any disc copy protection scheme trying to mess with CIRC codes, or worse, EFM codes, would have a really hard time having any drives read the resulting discs.
Some copy protections did play around with EFM, leading to "weak sectors". Amusingly enough, when I tried to search for info on it for this post, I found an article previously linked from HN, and which quoted me...
https://john-millikin.com/%F0%9F%A4%94/error-beneath-the-wavs
kl4m · 2019-05-07
Another viewpoint:
https://john-millikin.com/sre-school/no-haunted-forests