Top all-time · #4361
Nikhil's blog
Personal blog · nikhilism.com · on HN as nsmprogrammingsystems
Nikhil's blog is a personal blog at nikhilism.com about programming and systems. Since 2016, 18 different Hacker News readers have linked it 42 times, most often “Experiencing Smalltalk”. It is still writing: the last post was on 2026-10-16, and you can follow it by feed.
Too few sampled comments (7) to say how often HN recommends it.?
Why HN links it
HN readers link this blog to explain specific projects: the JSCrush compression algorithm, deterministic Windows builds, and an emulator story about IBM 7074 software on S/360. Most comments cite it as a source.
Summarised by Claude from a sample of 7 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Experiencing Smalltalk4 people · 8 mentions · first linked 2021-02-15
- Racket Beyond Languages (2023)3 people · 3 mentions · first linked 2023-11-22
- A practical introduction to kill-safe, concurrent programming in Racket3 people · 3 mentions · first linked 2023-11-25
- A Future Is a Suspending Scheduler2 people · 2 mentions · first linked 2020-06-21
- Getting to Deterministic Builds on Windows2 people · 2 mentions · first linked 2021-03-16
- ConcurrentML: Improving on Go's Concurrency Model2 people · 2 mentions · first linked 2026-10-16
- Why does my stack have an extra 4 bytes?2 people · 2 mentions · first linked 2017-12-25
What Hacker News says?
Nice tip, I started with something short - writing a screenshot utility: https://youtu.be/3BF-vUts3ws Ed: i really enjoyed the video, but I feel it could have been even better (and shorter) if he used a proper debugger for the second part. But I don't know if that is available in the os. The more I use a debugger, the more I realize I should use a debugger, and the earlier I should use a debugger. Advice/directions…
Comment linking /post/2021/experiencing-smalltalk/
on “I quit my job to focus on SerenityOS full time”Submitted Why does my stack have an extra 4 bytes? as a story · 31 points
HN discussionhttps://nikhilism.com I write about various technical topics. Some recent ones * Using type-classes to model the expressivity of build systems * Using 1Password with ssh-agent on Linux and some that I'm proud of: * Sampling Profiler Internals: Introduction * Retrieving function arguments while unwinding the stack * Why does my stack have an extra 4 bytes? Digging into Clang's return value implementation
Comment linking /
on “Ask HN: What is your blog and why should I read it?”Submitted Mystery Knowledge and Useful Tools as a story · 17 points
HN discussionOf course[1], but this tutorial isn't about the language, per se, you should be able to translate it pretty trivially. These sorts of tutorials are more about the inner workings of database operation; I recall doing something like this in grad school but you're reminded quickly how more complex databases are than you think about when all you're doing is using them. And hell, I'm not even that good at using them. [1]…
Comment linking /post/2016/writing-simple-database-in-rust-part-1/
on “Let’s Build a Simple Database (2017)”Submitted ConcurrentML: Improving on Go's Concurrency Model as a story · 7 points
HN discussionI spent a lot of time learning about stack unwinding, debug information, and profiling on common operating systems. I’m writing down some of it: http://nikhilism.com/post/2018/sampling-profiler-internals-i...
Comment linking /post/2018/sampling-profiler-internals-introduction/
on “Ask HN: What technologies did you learn in 2018?”Submitted Experiencing Smalltalk as a story · 7 points
HN discussionI built a little PWA just for me that I can use to scan ISBN codes of physical books I read. It then looks up the book and adds it to my spreadsheet of "Books I've read". I wrote a bit about it here https://nikhilism.com/post/2021/tracking-books-i-read-using-... It was partly just a way to try out Svelte and XState.
Comment linking /post/2021/tracking-books-i-read-using-svelte-xstate-quagga/
on “Ask HN: What are some tools / libraries you built yourself?”Submitted A practical introduction to kill-safe, concurrent programming in Racket as a story · 6 points
HN discussionI would like to disagree with this view of Racket. I'm a fairly experienced professional programmer with a lot of systems experience, and I find Racket an extremely well thought out, competently implemented and high performance (particularly with the switch to Chez Scheme) language. I wrote a bit about it at https://nikhilism.com/post/2023/racket-beyond-languages/ and Bogdan Popa and Alex Hirsanyi have done amazing…
Comment linking /post/2023/racket-beyond-languages/
on “A Tour of the Lisps”Submitted Experiencing Smalltalk as a story · 4 points
HN discussionI wrote a post about this as someone who only discovered it in 2020 - https://nikhilism.com/post/2021/experiencing-smalltalk/
Comment linking /post/2021/experiencing-smalltalk/
on “Pharo 9”Submitted Digging into Clang's extra 4 byte stack allocation as a story · 4 points
HN discussionI think Pharo would benefit a lot from having lots and lots of screen casts, since so much stuff is visual. I don't think something like ESUG is a sustainable way to spread techniques. A lot of stuff that is well documented in the Pharo ecosystem is old. A lot of the new stuff doesn't have great docs. Just reference docs and code is not enough. There has to be a coherent narrative around an API to put it together. A…
Comment linking /post/2021/experiencing-smalltalk/
on “Pharo 12”Submitted Experiencing Smalltalk as a story · 3 points
HN discussionIs someone in the US government really still using an IBM 7074? Really? I'm shocked. How could that possibly be cost-effective? Actually, this blog post makes the story clearer: http://nikhilism.com/post/2016/systems-we-love/ It isn't a physical IBM 7074. When it came time to migrate from 7074 to S/360, rather than rewriting their 7074 software, they just wrote a 7074 emulator for S/360. And, it sounds like, they ar…
Comment linking /post/2016/systems-we-love/
on “What Happens When You Mix Java with a 1960 IBM Mainframe”Submitted Linux Application Container Fundamentals as a story · 3 points
HN discussionI have been re-implementing the ninja build system [1] using the ideas from the "Build Systems a la Carte" paper [2]. The software isn't ready for the public yet, but I've written 2 blog posts so far about some of the ideas. 1. Using type-classes to model the expressivity of build systems [3] 2. A Future is a Suspending Scheduler [4] [1]: https://ninja-build.org/ [2]: https://www.microsoft.com/en-us/research/publica…
Comment linking /post/2020/futures-suspending-scheduler/
on “Ask HN: What did you make during lockdown?”Submitted Racket Beyond Languages (2023) as a story · 2 points
HN discussionI cobbled together something similar using a couple of javascript libraries. It is a really simple web-app that you can open on any phone, and it uses the phone camera to scan the barcode. It saves the results to a Google Sheets (what I wanted). The code is public, mostly because I couldn't bring myself to clean it up. If you are interested, I could make it public. I wrote about it at https://nikhilism.com/post/2021…
Comment linking /post/2021/tracking-books-i-read-using-svelte-xstate-quagga/
on “Ask HN: How do I easily catalog a couple thousand physical books?”Submitted A practical introduction to kill-safe, concurrent programming in Racket as a story · 2 points
HN discussionI would also really like to use Pharo more. I tried it for Advent of Code last year [0]. However, I just can't get over the unmanageable custom windowing system going on within the main window. Their isn't an easy way to iterate through windows, find windows, close windows and stop them from overlapping with each other all the time! It would be great to have some kind of Jetbrains/VSCode/modern IDE style layout wher…
Comment linking /post/2021/experiencing-smalltalk/
on “Ask HN: Why are you programming your hobby projects in a niche language?”Submitted Remote Dbus Notifications over SSH as a story · 2 points
HN discussionThis is the JSCrush algorithm that I did not write and it is kind of magic. The uncompressor is crazy small. You can read more about it here... https://nikhilism.com/post/2012/demystifying-jscrush
Comment linking /post/2012/demystifying-jscrush
on “JSONCrush – Compress JSON into URI Friendly Strings”Submitted Experiencing Smalltalk as a story · 2 points
HN discussionSorry, that part of the code is from JSCrush which I did not write. I don't fully understand it but here's an explanation someone wrote... https://nikhilism.com/post/2012/demystifying-jscrush If you go to the live demo, it will do a test to crush/encodeURI and uncrush/decodeURI to the string you pass in and verify that they are the same. Maybe I should write some automated tests.
Comment linking /post/2012/demystifying-jscrush
on “JSONCrush – Compress JSON into URI Friendly Strings”Submitted Getting to Deterministic Builds on Windows as a story · 2 points
HN discussionI write about various systems programming things (build systems, profiles, code generation) https://nikhilism.com
Comment linking /
on “Ask HN: Pitch your personal newsletter/blog with a one-liner”Submitted A Bazel Persistent Worker for Rust as a story · 2 points
HN discussion