Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 14,538 posts.

Any year
5401

24 days of Rust – Rayon

Let me start this article with a confession: I suck at writing parallel code. I have only a vague idea about mutexes, locks and other low level primitives for handling data between threads. And since I work mostly with Python, I tend to use multiprocessing (if I bother to parallelize at all) rather than threads…

5403

These years in Common Lisp: 2023-2024 in review

This is a personal pick of the most interesting projects, tools, libraries and articles that popped-up in Common Lisp land in the last two years.Newcomers might not realize how the Common Lisp ecosystem, though stable in many ways, actually evolves, sharpens, tries new solutions, proposes new tools, ships new…

5406

Finding bugs in Haskell code by proving it

Last week, I wrote a small nifty tool called bisect-binary , which semi-automates answering the question “To what extent can I fill this file up with zeroes and still have it working”. I wrote it it in Haskell, and part of the Haskell code, in the Intervals.hs module, is a data structure for “subsets of a file”…

5411

Fantastic Learning Resources

People sometimes ask me: Alex, how do I learn X?. This article is a compilation of advice I usually give. This is things that worked for me rather than the most awesome things on earth. I do consider every item on the list to be fantastic though, and I am forever grateful to people putting these resources together.

5413

Building Bauble

I made something that I think is pretty neat, and I want to tell you about it. This is a little hot air balloon made out of alternating layers of brass and bronze that stack together with these angled facets: It’s 3D printed, sort of, but it really is solid metal – it’s not a metallic filament. It’s made by “lost wax…

5417

Git from the Bottom Up (2008)

Welcome to the world of Git. I hope this document will help to advance your understanding of this powerful content tracking system, and reveal a bit of the simplicity underlying it — however dizzying its array of options may seem from the outside.

5418

Virtual Memory with 256 Bytes of RAM

I just finished updating my C compiler and minimal CPU specification to include virtual memory. The process of adding virtual memory support to a CPU, a kernel, and a compiler toolchain has made me realize that there is a lack of good explanations for how all of these parts fit together. I also realized that a…

5419

Setenv Is Not Thread Safe and C Doesn't Want to Fix It

You can't safely use the C setenv() or unsetenv() functions in a program that uses threads. Those functions modify global state, and can cause other threads calling getenv() to crash. This also causes crashes in other languages that use those C standard library functions, such as Go's os.Setenv ( Go issue ) and Rust's…

5430

80x25

Every now and then, my brain clamps on to obscure trivia like this. It takes so much time. “Because the paper beds of banknote presses in 1860 were 14.5 inches by 16.5 inches, a movie industry cartel set a standard for theater projectors based on silent film, and two kilobytes is two kilobytes” is as far back as I…