Printf debugging is ok
A balanced take on the printf vs debugger debate: why there is no single right answer, and how to choose the right debugging approach for the situation at hand.
The latest blog posts to take off on Hacker News. 14,540 posts.
A balanced take on the printf vs debugger debate: why there is no single right answer, and how to choose the right debugging approach for the situation at hand.
A blog about computers, functional languages, Lisp, and Scheme.
I found out about pool allocators some time ago, and I really liked its simplicity and high performance, so I decided to write my own. This article was initially inspired by Dmitry Soshnikov’s article . It’s also worth mentioning that this article was discussed in Hacker News .
🖍️ Explaining multiple techniques for rendering outlines and highlights for real-time applications. This includes vertex object-space as well as screen-space methods. This can be used to render outlines in Unity or Unreal. Outlines can be used for gameplay reasons or aesthetics.
Is 1970s distributed systems theory finally meeting 2020s kernel development?
Most coders want AI to write code faster: I want AI to write FASTER CODE.
B-Trees are not boring, after all
It's easier than you think to write an exceptional software tutorial. You can stand out in a sea of mediocre guides by following a few simple rules.
After spending part of my holiday building and deploying a new Rails 8 application, It's clearer than ever that Rails is awesome, and it's especially great f...
Chess, card games, and Lua.
Static or dynamic, a program's design is written in its types.
The product of software development is not code but a mental model, a theory: a specific way of explaining the world.
How does the Linux kernel represent processes and their state: A breakdown of task_struct and mm_struct
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…
Testing against a real database uncovers hidden pitfalls that can appear as the application matures
Some of the interesting and insane facts I learned about SQLite
In the previous post, we established that as long as ruby/json wasn’t competitive on micro-benchmarks, public perception wouldn’t change. Since what made ruby/json appear so bad on micro-benchmarks was its setup cost, we had to find ways to reduce it further.
Why I don't do Domain Driven Design
My long-time collaborator Richard Barnes [1] used to say that "in security, trust is a four letter word" , and yet the dominant experience of using any software-based system—which is, you know, pretty much anything electronic—is trusting the manufacturer. Not only is there no meaningful way to determine what software…
The videos have been uploaded , thank-you notes have been sent, and the kiddo has decided to play a little Minecraft on her own, so now I get to write some quick notes on EmacsConf 2024 .
I have been doing Java in Neovim for quite a while at work, and it’s been a very pleasant experience. As Neovim usage grows (especially amongst the younger crowd), I want to share how I do it.
I recently picked up an embedded project in which I needed to build a highly customized full system image with minimal boot times and NetBSD was the best choice for it. Let's look at why its build system helps.
So I like to joke occasionally on the Fediverse that when looking at Wikipedia's list of programming languages supporting dependent types :
I built a Factorio belt balancer solver. From tiny 2x2 grids to a massive 16x16 monster, every step revealed new solver tricks, numeric hiccups, and devious debugging puzzles.
In 2023, we launched an AI-powered Chief of Staff for engineering leaders—an assistant that unified information across team tools and tracked critical project developments. Within a year, we attrac...
In the context of out-of-order microarchitectures, I was under the impression that execution units remain occupied until the µop they’re processing is complete. This is often not the case.