Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 994 posts.

2020
331

It Is Never a Compiler Bug Until It Is

Last week I was trying to add some testing code to libsecp256k1 and I was pulling out my hair trying to get it to work. No amount of printf was working to illuminate what I was doing wrong. Finally, out of desperation, I thought I would do a quick check to see if there are any compiler bugs related to memcmp , and lo…

337

Pain Points of Haskell

I would like to preface this article by saying that Haskell is great. I have been using it as my go-to for native applications for several years now. Everything that follows is a product of my love and affection for the language, and a desire to see it succeed. And none of this is intended to disparage the efforts of…

339

Programming trick questions

Note: me telling you up front that these are trick questions rather gives the answers away in most cases, but oh well. Questions Question 1 What's the fastest way to sort a jumbled array, given that the array has length N and contains all the integers from 1 to N inclusi...

340

I Tried to Reduce Pylint Memory Usage

Through work I have to deal with a pretty huge codebase, and run Pylint on it during our continuous integration process. It's always been a bit slow, but recently I also noticed that it was consuming a lot of memory, causing OOM failures if we tried to run it too much in parallel.

342

The compositor is evil

First, I want to make it clear that I’m not accusing the compositor of true evil, which I define roughly as deliberately causing suffering. There’s unfortunately too much of that in the world. I mean it in the more metaphorical sense that it causes serious problems and forces other parts of the system to be more…

346

Against Essential and Accidental Complexity

In the classic 1986 essay, No Silver Bullet , Fred Brooks argued that there is, in some sense, not that much that can be done to improve programmer productivity. His line of reasoning is that programming tasks contain a core of essential/conceptual 1 complexity that's fundamentally not amenable to attack by any…

349

When Parallel: Pull, Don't Push

I’ve noticed a small pattern across a few of my projects where I had vectorized and parallelized some code. The original algorithm had a “push” approach, the optimized version instead took a “pull” approach. In this article I’ll describe what I mean, though it’s mostly just so I can show off some pretty videos…

356

The Polygons of Doom: PSX

It was a pleasure to research the material for the "Polygons of Another World" articles [1] . All the machines I studied were different from one another. The diversity I witnessed in the Amiga, Atari ST, PC, SNES, Genesis, GBA, and Jaguar demonstrated the richness of a field then still in its dawn. As I concluded the…

357

RISC-V OS using Rust: Filesystems

I have taught operating systems at my university, so I will link my notes from that course here regarding the virt I/O protocol. This protocol has changed over the years, but the one that QEMU implements is the legacy MMIO interface.