Topics /

Software Engineering

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

2024
601

Understanding x86_64 Paging

I’ve spent quite a lot of time messing with x86_64 page tables, understanding address translation is not easy and when I started learning about it I felt like a lot of the material out there on how it works was hard for me to wrap my head around. So in this blog post I am going to attempt to provide a kind of “what I…

602

The Design of Everyday APIs (2022)

What makes a good API for a library? Or more importantly, what makes it bad? This talk discusses the principles of what goes into user-centered design, and how best to apply those principles when writing a Python library for fellow developers.

609

Flow Field Pathfinding

You may know me for my interactive tutorials. But before that, I was writing visual but non-interactive tutorials. In particular, there wasn’t a lot of information about A* on the web, so I decided to collect all my notes about pathfinding [1] together in one place in the 1990s. But then in the 2010s I started making…

610

IOCCC Flight Simulator (2010)

The IOCCC Flight Simulator was the winning entry in the 1998 International Obfuscated C Code Contest. It is a flight simulator in under 2 kilobytes of code, complete with relatively accurate 6-degree-of-freedom dynamics, loadable wireframe scenery, and a small instrument panel.

622

Creating an autopilot in X-Plane using Python

Introduction Today’s post will take us in a slightly different direction than the last few. Today’s post will be about hooking up some Python code to the X-Plane flight simulator to enable development of an autopilot using PID (proportional-integral-derivative) controllers. I’ve been a fan of flight simulators for…

623

Big Ball of Mud (1999)

While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed. This paper examines the most frequently deployed architecture: the BIG BALL OF MUD

626

Async Rust in Three Parts

Async/await, or "async IO", is a new-ish ​ Rust added async/await in 2019. For comparison, C# added it in 2012, Python in 2015, JS in 2017, and C++ in 2020. language feature that lets our programs do more than one thing at a time. It's sort of an alternative to multithreading, though Rust programs often use both…

627

Dividing unsigned 8-bit numbers

Division is quite an expensive operation. For instance, latency of the 32-bit division varies between 10 and 15 cycles on the Cannon Lake CPU, and for Zen4 this range is from 9 to 14 cycles. The latency of 32-bit multiplication is 3 or 4 cycles on both CPU models.

628

How to improve the RISC-V specification

My main project is to create an executable spec of the Intel Architecture but, every now and then, I get to take a broader look at ISA specifications and think about the strengths and weaknesses of other ISA specs: what makes them work well; and what techniques they could borrow from other specifications. Earlier this…

629

Keeping a Changelog at Work (2020)

What did you do at work today? How about last week? I spent a couple of days in quarterly business reviews, and wrapped up yearly planning activities for AWS Data Exchange and AWS Marketplace. I also added some unit tests to a project that I am onboarding into.

630

To Nerves from Elixir

I adore Nerves. I recently joined the core team. And I'll be doing my best to help people get along with this lovely way to co-mingle hardware and massively concurrent reliable software.