Topics /

Software Engineering

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

2021
601

Why Is It So Hard to Detect Keyup Event on Linux?

This article is dedicated to discussing why it's so hard to detect the 'key up' or 'key release' event in a Linux terminal environment without relying on X server. Several techniques and code examples will be shown that are capable of detecting the keyup event on Linux (with and without an X server), but all…

603

Clever vs. Insightful Code

“Don’t write clever code.” Why not? “Because it’s hard to understand.” People who say this think of clever code such as Duff’s Device: Duff's Device send(to, from, count) registershort*to, *from; registercount; { registern =(count +7) /8; switch(count %8) { case0: do{ *to =*from++; case7: *to =*from++; case6: *to…

607

JSON with Commas and Comments

Summary: JWCC is a minimal extension to the widely used JSON file format with (1) optional commas after the final element of arrays and objects and (2) C/C++ style comments. These two features make it more suitable for human-editable configuration files, without adding so many features that it’s incompatible with…

610

Reading code is a skill (2020)

I’m inspired to write this post because Someone Is Wrong On The Internet. Of course a more accurate statement would be “I disagree with some aspects of what someone on the internet said, even though they have an entirely valid point of view”. But that’s less catchy. I saw a Tweet I violently agreed with, so I…

612

Path Tracing Quake in Blender

This week twenty-five years ago, Quake broke new ground in game engine realism. It was one of the first commercial games to have fully texture mapped 3D scenes rendered in real-time, with pre-computed lightmaps adding an extra layer of atmosphere.

613

Implementing a LLVM Micro C compiler in Haskell

In this series, we will explore how to write a compiler for a small subset of C to LLVM in Haskell. Our language, Micro C, is basically a small subset of real C. We'll have basic numeric types, a real bool type, pointers, and structs. At the end of the series, we'll have a beautiful executable, mcc (Micro C…

619

All Horses Are the Same Color

Problem: Show that all horses are of the same color. “Solution”: We will show, by induction, that for any set of $ n$ horses, every horse in that set has the same color. Suppose $ n=1$, this is obviously true. Now suppose for all sets of $ n$ horses, every horse in the set has the same color. Consider any set $ H$ of…

622

Six ways to make async Rust easier

Asynchronous Rust is powerful but has a reputation for being hard to learn. There have been various ideas on how to fix the trickiest aspects, though with my focus being on Tokio 1.0, I had not been able to dedicate much focus to those topics. However, Niko’s async vision effort has recently started the discussion…

625

Upcoming Features in Go 1.18

Go 1.18 will be a significant release of the programming language that will contain some major features that I’m excited about. The upcoming version is scheduled for early 2022. The first beta should be out in a month. Let’s take a look at some of the new features that will be available.

627

Half of curl’s vulnerabilities are C mistakes

I spent a lot of time and effort digging up the numbers and facts for this post! Lots of people keep referring to the awesome summary put together by a friendly pseudonymous "Tim" which says that "53 out of 95" (55.7%) security flaws in curl could've been prevented if curl had been written in Rust. … Continue reading…