Topics /

Software Engineering

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

2019
332

Garbage Collection

We say Lox is a “high-level” language because it frees programmers from worrying about details irrelevant to the problem they’re solving. The user becomes an executive, giving the machine abstract goals and letting the lowly computer figure out how to get there.

335

Beginner's Guide to Linkers (2010)

This article is intended to help C & C++ programmers understand the essentials of what the linker does. I've explained this to a number of colleagues over the years, so I decided it was time to write it down so that it's more widely available (and so that I don't have to explain it again). [Updated March 2009 to…

336

Thoughts on Rust, a few thousand lines in

To say my first foray into Rust was a frustrating struggle would be an understatement. I picked a terrible first project that left me neck deep in Rust’s trickiest areas right off the bat. I was excited to try again. A few years ago I wrote Sumoshell, a CLI App for log analysis. I’d wanted to improve it for a while…

340

Speedy Desktop Apps with GTK and Rust

The web platform is the delivery mechanism of choice for a ton of software these days, either through the web browser itself or through Electron, but that doesn’t mean there isn’t a place for a good old fashioned straight-up desktop application in the picture.

342

Monorepo is great if you're really good

This is inspired by Dan Luu's post on the advantages of a single big repository over many small ones. That post is fairly old, and I confess that I'm hardly up to date on the state of tooling, both for managing multiple repos and for dealing with one big one. But I'm going to make an argument which I think mostly…

344

Generating C code that people want to use

Project Everest is a large, collaborative research effort that aims to verify and deploy a new, secure HTTPS stack. All of our code is verified using the F* programming language. Using KreMLin, a dedicated compiler, the verified F* code is compiled to readable C, meaning existing systems projects can readily integrate…

348

Overview of Rust error handling libraries

Rust's error handling is a pleasure to use thanks to the Result type . It ensures Rust's error handling is always correct , visible , and performant . And with the addition of the ? operator in Rust 1.13 , and the addition of return types from main in Rust 1.26 Rust's error handling has only kept improving.

349

Rust 2020: GUI and Community

In response to the call for blogs about the vision for Rust for 2020, I’m going to write about GUI. I believe the time is right for a native GUI toolkit written in Rust, and that such a thing would fill a very important niche. There is a demand for performance (which, to me, includes startup time, RAM footprint, and…

351

Ruby's Creed

Every programming language has some fundamental idea(s) that drives its design and evolution. For Haskell that’s functional purity and state-of-the-art static typing, for Erlang that’s distributed programming and fault tolerance, for Clojure that’s simplicity and stability. What all these examples have in common is…

352

The CPython Bytecode Compiler Is Dumb

Due to sheer coincidence of several unrelated tasks converging on Python at work, I recently needed to brush up on my Python skills. So far for me, Python has been little more than a fancy extension language for BeautifulSoup , though I also used it to participate in the recent tradition of writing one’s own static…

358

Running an eInk Display with Elixir, Scenic and Nerves

So I've been curious about what kinds of displays you can connect to the Pi-series single board computers for a while. I happened to accidentally order a few. Among others an eInk display. I ordered the PaPiRus ePaper. It ended up being dead on arrival and then out of stock so I received an Inky to replace it. Fair…

360

Tests that sometimes fail

Over the years one of the most complex issues we have had to deal with at Discourse was flaky tests, in this post I would like to talk a bit about the various patterns we have come across and ways we tackle this issue.