Top posts

Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,545 posts.

Software Engineering
Any year
12033

Async Cancellation

Sometimes we start things but decide midway through that we would prefer to rather not be doing them. That process is sometimes referred to as cancellation. Say we accidentally clicked "download" on a large file in the browser. We should have a way to tell the computer to stop downloading it.

12045

Introduction to Category Theory

The aim of this course is to teach the basics of category theory, in a way that is accessible and relevant to computer scientists. The emphasis is on gaining a good understanding the basic definitions, examples, and techniques, so that students are equipped for further study on their own of more advanced topics if…

12048

Sherlock Holmes Debugging

I use the Sherlock Holmes method of debugging software. This means working backwards from a symptom to the series of causes which tell a story of the entire bug. It works for production outages and during development. Something that recently happened at my startup should be instructive.

12050

C++26: The New Debugging Header

If you’ve ever needed to hit a breakpoint programmatically in C++, you’ve probably written something like this: 1 2 3 4 5 6 7 8 9 #if defined(_MSC_VER) __debugbreak(); #elif defined(__clang__) __builtin_debugtrap(); #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) __asm__ volatile("int3"); #else…

12058

What is Software Engineering?

Nearly all of Go’s distinctive design decisions were aimed at making software engineering simpler and easier. We’ve said this often. The canonical reference is Rob Pike’s 2012 article, “ Go at Google: Language Design in the Service of Software Engineering .” But what is software engineering?