Topics /

Software Engineering

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

Any year
10836

What part of Rust compilation is the bottleneck?

Rust compilation times is an ongoing topic that generates many discussions online1. Most people don’t really care about what exactly takes time when compiling Rust program; they just want it to be faster in general. But sometimes, you can see people pointing fingers at specific culprits, like LLVM or the borrow…

10840

In-Memory Filesystems in Rust

I’ve been working on a CLI tool recently, and one of the things it does is manage files on disk. I have written a lot of file management tests for Bundler, and the two biggest reasons that the Bundler test suite is slow are exec and fstat. Knowing that, I thought I would try to get out ahead of the slow file stat…

10844

Size visualization of Go executables using D3

Note The latest version of this document can be found online at https://dr-knz.net/go-executable-size-visualization-with-d3.html. Alternate formats: Source, PDF. Note Erratum (2019-04-02): The increase in binary size from CockroachDB v1.0 to v19.2 is 94%/125%, not 194%/225% as initially written. The increase in source…

10846

Practical Libc-free threading on Linux

Suppose you’re not using a C runtime on Linux, and instead you’re programming against its system call API. It’s long-term and stable after all. Memory management and buffered I/O are easily solved, but a lot of software benefits from concurrency. It would be nice to also have thread spawning capability. This article…

10849

A New Development for Coverity and Heartbleed

Byte swapping does not necessarily imply the data comes from an external source. For example, when writing graphics code, you sometimes need to do byte swapping if you’re converting between 24-bit RGB and BGR image formats (Windows’ GDI famously uses BGR so this is one place where you need to do such conversions)…

10854

The plumber programmer

I called someone a plumber programmer the other day. The person I was speaking to didn't realize that "plumber programmer" is a term of great respect. The plumber is often the most experienced programmer on a team. As with literal plumbing, software plumbing connects things together. It deals with things other people…

10856

A retrospective on Requests

After writing my thoughts on github3.py down here, someone was asking about Python libraries that people recommend new Python developers read for learning how to structure code and use the packaging systems. My initial reaction was "Don't listen to folks that tell you to read python-requests as a good example." When…

10858

Finding Goroutine Bugs with TLA+

My job these days is teaching TLA+ and formal methods: specifying designs to find bugs in them. But just knowing the syntax isn’t enough to write specs, and it helps to have examples to draw from. I recently read Chris Siebenmann’s Even in Go, concurrency is still not easy and thought it would make a good case study…