Writing an OS in Rust: Advanced Paging
This post explains techniques to make the physical page table frames accessible to our kernel. It then uses such a technique to implement a function t…
Topics /
The most popular blog posts about software engineering on Hacker News. 14,533 posts.
This post explains techniques to make the physical page table frames accessible to our kernel. It then uses such a technique to implement a function t…
I have recently done some performance work and realized that reading about my experience could be entertaining. Teaching to think is just as important as teaching to code, but this is seldom done; I think something I’ve done last month is a great opportunity to draw the curtain a bit. serde is the Rust framework for…
I'm afraid I'm not accepting new requests for review. I have reviewed all the ones I've received before 2022-03-24.
This page is about a technique for reducing the memory footprint of programs in compiled languages with C-like structures - manually repacking these declarations for reduced size. To read it, you will require basic knowledge of the C programming language.
I got the chance to investigate an interesting bug in SerenityOS this week. It was related to the decoding of JPG images in the operating system. For some reason, when a JPG image is viewed, it comes out like this: Lenna, showing up with incorrect colors. Weird, huh? Also seems like a simple confusion of RGB vs. BGR…
Unfortunately, like most aspects of the tax system, this steadily increases in complexity, and this year with the Canada Pension Plan including not just "base" premiums and "additional" premiums but also "second additional premiums", I needed to rewrite my spreadsheet from scratch; and also very unfortunately, the…
AI coding tools are optimising the wrong thing and nobody wants to hear it. Writing code was already fast. The bottleneck is everything else: unclear requirements, review queues, terrified deploy…
Compare top same day payout casinos in Canada with verified withdrawal speeds, bonus offers, and player ratings for 2026.
TinyWM is a tiny window manager that I created as an exercise in minimalism. It is also maybe helpful in learning some of the very basics of creating a window manager. It is only around 50 lines of C. There is also a Python version using python-xlib.
This post celebrates influential papers that shaped technology and communication. Their foundational concepts inspire continued innovation, highlighting the importance of understanding our roots fo…
Exploring JVM specification and trying to write a little code to interpret a Java class like a real JVM.
I spend most of my time writing code in a full screen terminal. I like to read books on my breaks and I'm a big fan of Project Gutenberg, which has over 70...
Block chain is agnostic of any 'currency' and it can (and will) be adapted to power many other use cases. This is a ground up explanation of why the particular pieces (digital signatures, proof-of-work, transaction blocks) are needed, and how they all come together to form the minimum viable block chain with all of…
Mathematics, applications of mathematics to life in general, and my life as a mathematician.
The smell of fresh pine sawdust filled the air, with more floating up as I sanded the last rough corner of the stool. My toddler was happily sanding her own block off to the side.
Just over two years ago I left a role at a London based startup where I lead development of a large, React based e-commerce frontend to join Google to work on Chrome DevTools. My initial focus was to introduce Web Components as the new fundamental building block of all new DevTools features and UI. With the recently…
DHH's opening keynote had shockingly little to say about Rails.
We really did this! We work in a very large Javascript monorepo at Microsoft we colloquially call 1JS. Using some new changes to the git client it went from 178GB to 5GB.
I first heard about Svelte a year ago, when Rich Harris presented it at JSConf EU 2018. The demo gods were a bit harsh on him, but it didn't matter to me, because I was so impressed by his philosophy and ideas that I was already sold. I knew he'd work out the kinks, go through a few major versions, and Svelte would be…
Some general warnings about the use of str.format in Python.
I recently shipped a non-trivial Ghostty feature (unobtrusive macOS automatic updates) that was largely developed with AI.
The Game Boy Advance is an interesting game console. It has a modern-style CPU (32-bit ARM, lots of registers), but uses an old-fashioned tile based renderer like how the NES did it in the 80s. Don’t get me wrong, since its one of Nintendo’s last tile-based systems, they took the idea as far as it can go with fancy…
Here’s a fact: GPT-4o charges 170 tokens to process each 512x512 tile used in high-res mode. At ~0.75 tokens/word, this suggests a picture is worth about 227 words—only a factor of four off from the traditional saying. (There’s also an 85 tokens charge for a low-res ‘master thumbnail’ of each picture and higher…
It is often said that Imitation is the Sincerest Form of Flattery. Also, remember libcrurl? That was the name of the thing Google once planned to do: reimplement the libcurl API on top of their Chrome networking library. Flattery or not, it never went anywhere. The other day I received an email asking me about ……