Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 1,116 posts.

2024
632

Rust's Ugly Syntax (2023)

People complain about Rust syntax. I think that most of the time when people think they have an issue with Rust's syntax, they actually object to Rust's semantics. In this slightly whimsical post, I'll try to disentangle the two.

633

LLMs can't do probability

I've seen a couple of recent posts where the writer mentioned asking LLMs to do something with a certain probability or a certain percentage of the time. There is a particular example that stuck in my mind which I've since lost the link to (If you're the author, please get in touch so I can link through to you): The…

638

The Birth of Standard Error (2013)

Earlier today Stephen Johnson, in a mailing list run by the The Unix Heritage Society , described the birth of the standard error concept: the idea that a program's error output is sent on a channel different from that of its normal output. Over the past forty years, all major operating systems and language libraries…

641

Lou's Pseudo 3D Page (2013)

Previous update: An explanation of 3d projection mathematics (under Road Basics) and analysis of Activision's Enduro (under Case Studies)! Thanks to everyone for all the e-mail! Keep it coming :) Sorry, I can't answer questions about when I'll post source code, but I'm always happy to answer anything else about these…

642

Runtime code generation and execution in Go

Disclaimer: I won’t expand on why/when you want to do this kind of hack, and you should not do this unless you know exactly what you are doing. Everything I talk about here is completely unsafe and might not be accurate for the future Go versions. This is not a recommendation, but more of a fun story.

646

Making Sense of Acquire-Release Semantics

Multiprocessor Synchronization was one of my favorite classes during my undergrad — it had a clear progression from theory to practice, starting at the theory of consensus numbers and moving onto atomic operations and then synchronization primitives and lock-free data structures, all from first principles. With…

649

A Note on Essential Complexity

The fact that we can’t remove essential complexity with a software redesign doesn’t mean that there’s nothing we can do about it. What if the problem definition wasn’t outside of our purview? What if we could get the world to conform to the software, and not just the other way around?

656

Asynchronous IO: the next billion-dollar mistake?

Asynchronous IO (also known as "non-blocking IO") is a technique applications use to allow performing of many IO operations without blocking the calling OS thread, and without needing to spawn many threads (i.e. one thread per operation). In the late 1990s/early 2000s, an increasing amount of people using the internet…