Topics /

Software Engineering

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

Any year
9482

(An ((Even Better) Lisp) Interpreter (in Python))

The tokens #t and #f are the True and False literals, respectively. The single quote mark serves to quote the following expression. The syntax ' exp is completely equivalent to (quote exp ) . The backquote character ` is called quasiquote in Scheme; it is similar to ' except that within a quasiquoted expression, the…

9487

Raft Consensus with a Minority of Nodes

Raft is a consensus protocol for managing a replicated log across a cluster of nodes. Its key goals are: (1) maintain a consistent replicated log of state transitions, (2) tolerate node failures, and (3) ensure a single leader coordinates all changes while multiple followers replicate. Raft is designed to be…

9489

Super Mario Derivations

One of the most surprising aspects of the Nix language is that it is lazy, especially if you have never used a lazy language before. This laziness is what makes much of Nixpkgs possible, and its complexity.

9490

Typesafe Neural Networks in Haskell with Dependent Types

It seems these days like programming with dependent types in Haskell (and its advantages) is moving slowly but steadily to the mainstream of Haskell programming. In the current state of Haskell education, dependent types are often considered topics for “advanced” Haskell users. However, I can foresee a day where the…

9491

The Story of a Rust Bug

A while ago, I built a system-tray application in Rust to notify me of new e-mail called buzz. It was working fine, but every now and again, it would fail to connect to the mail server on boot if it started before my network connection was up. Sounds easy enough to fix, so I just added a loop around my connect (even…

9492

Cracking Encrypted PDFs

I performed a brute-force attack on the password of an encrypted PDF and a brute-force attack on the key of (another) encrypted PDF, both PDFs are part of a challenge published by John August. The …

9498

An easy-to-implement, arena-friendly hash map

My last article had tips for for arena allocation . This next article demonstrates a technique for building bespoke hash maps that compose nicely with arena allocation. In addition, they’re fast, simple, and automatically scale to any problem that could reasonably be solved with an in-memory hash map. To avoid…

9509

Fixing JSON

I’ve edited a couple of the JSON RFCs, and am working on the design of a fairly complex DSL, so I think I can claim to have dug deeper in the JSON mines than most. We can easily agree on what’s wrong with JSON, and I can’t help wondering if it’d be worth fixing it.