Topics /

Software Engineering

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

2022
332

An M1 for Curl

A generous member of the wider curl community stepped up and donated an unused Mac mini m1 model to me to be used for curl development. Today it arrived at my home. An 8C CPU/16GB/1TB/8C GPU/1GbE model as per the sticker on the box. The m1 mac mini, still wrapped in plastic. Apple is not … Continue reading An m1 for…

338

Go generics are not bad

When programming, we often need to write 'generic' functions where the exact data type is not important. For example, you might want to write a simple function that sums up numbers. Go lacked this notion until recently, but it was recently added (as of version 1.18). So I took it out for a spin. In … Continue reading…

346

Fast midpoint between two integers without overflow

Let us say that I ask you to find the number I am thinking about between -1000 and 1000, by repeatedly guessing a number. With each guess, I tell you whether your guess is correct, smaller or larger than my number. A binary search algorithm tries to find a value in an interval by repeating … Continue reading Fast…

348

Why I quit using SwiftUI

SwiftUI is currently the new trend in the Apple development world. And I wanted to give it a try. I did. However, in this post, I explain why I went back to AppKit for The Untitled Project’s authoring tools.

350

How the clipboard works

Reading how copy-paste works from the Wayland specification is non-trivial unless you understand a lot of how desktop computing works and Wayland internal. It took me quite a while to figure it all out, though once you get there, it seems quite obvious.

351

Your computer is a distributed system

Many have observed that today's computers are distributed systems implementing the abstraction of the shared-memory multiprocessor. The wording in the title is from the 2009 paper " Your computer is already a distributed system. Why isn't your OS? ". Some points from that and other sources:

353

tolower() in bulk at speed

DNS servers often have to convert DNS names to their canonical lower case form. BIND has to do so a bit more than most because it tries to preserve the case of DNS names rather than canonicalizing them.

355

What comes after Git

Git was born from the collaboration problems in the Linux kernel. Nearly a decade later, new problems arose when Kubernetes (the operating system of the cloud) brought open-source collaboration to a new level.

357

UML: My Part in Its Downfall

In the last year or two there has been a slow but steady trickle of articles attempting to account for UML ’s lack of long-term success (if you have time for only one, I suggest Hillel Wayne’s article ). As fate would have it, I had some involvement in UML standardisation in the early 2000s, so I saw some of the…