A minimal raytracer
How my quest to make a business card sized raytracer got a little out of hand.
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 2,232 posts.
How my quest to make a business card sized raytracer got a little out of hand.
<p>For years I’ve noodled around with various setups for a Python development environment. A couple of years ago <a href="https://jacobian.org/2018/feb/21/python-environment-2018/">I wrote about a setup I finally liked</a>; this is an update to that post.</p> <p>Bad news: this stuff still isn’t stable, and…
To bootstrap Rust, no cost is too great.
This post describes how to write a simple Hello world bootloader
Hi, I wrote my new favorite hash table. This came about because last year I wrote the fastest hash table (I still make that claim) and this year one of the organizers of the C++Now conference asked…
One fine day in January 2017 I was reminded of something I had half-noticed a few times over the previous decade. That is, younger hackers don’t know the bit structure of ASCII and the meaning of the odder control characters in it.
I read a blog post by Alex Muscar, “Beautiful Binary Search in D”. It describes a binary search called “Shar’s algorithm”. I’d never heard of it and it’s i…
Writing code is cheap now - Agentic Engineering Patterns
I am afraid to inform you that you have built a compiler. I know you wanted a “simple prototype” that would just add that one feature to your programming model. You said that “SSA is an overkill” and “it’s just way too much infrastructure to maintain for a simple task” and yet, six months later, you have pile of…
A tutorial on how to write a Unix shell in C.
A riveting tale of how good data can lead to bad decisions.
There’s a trend in Silicon Valley startups to create a software layer in industries that were traditionally pure human services. Uber and Lyft have created software layers in the taxi industry, 99designs Tasks in the visual design industry, Homejoy in the cleaning industry, and so on. These new software services…
Rust claims to enable abstraction without overhead. How does that claim hold up in practice?
In 2011, to celebrate the 150th anniversary of MIT, the Boston Globe made a list of the most important innovations developed there. They asked me to explain the importance of SICP, and this is what I sent them:
A blog about Rust and embedded stuff
With Scala you feel smart having just got something to work in a beautiful way but when you look around the room to tell your clojure colleague how clever you are, you notice he left 3 hours ago and there is a post-it saying use a Map. Daniel Worthington-Bodart
Most PDF files do not look readable in a text editor. Compression, encryption, and embedded images are largely to blame. After removing these three components, one can more easily see that PDF is a human-readable document description language.
What’s the biggest pixel size of a PNG image in the smallest number of bytes? I wanted to try to create an image that could be downloaded but whose pixel buffer would be too big to store in the RAM of a PC. Here is a PNG image of 6,132,534 bytes (5.8 MB) and 225,000 × 225,000 pixels (50.625 gigapixels), which, if…
A detailed look at the frameworks, concurrency model, error handling, middleware constructs, and testing strategies of a web service written in Rust.
"Prompt Engineering" emerged from the growth of language models to describe the process of applying prompting to effectively extract information from language models, typically for use in real-world applications.
Hacky repo to see what the Copilot extension sends to the server
This is an announcement regarding the resolution of the syntax for the await operator in Rust. This is one of the last major unresolved questions blocking the stabilization of the async/await feature, a feature which will enable many more people to write non-blocking network services in Rust. This post contains…
How to run Claude Code with the `--dangerously-skip-permissions` flag in a safe way
I’ve used CoffeeScript for a few months now. Coming from Python, I felt that CoffeeScript was more concise than Javascript, so I decided to use it for a few small projects. Initially, it was a nice experience, but then I gradually realized that, while writing CoffeeScript code was very pleasant, reading it wasn’t so…
In case you landed here without any context and have no idea who I am or what this article is about this article should give you some background.
Add WebAssembly, get performance. Is that how it really works?