Topics /

Software Engineering

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

2020
453

Writing a RISC-V OS in Rust: System Calls

System calls are a way for unprivileged, user applications to request services from the kernel. In the RISC-V architecture, we invoke the call using the ecall instruction. This will cause the CPU to halt what it's doing, elevate privilege modes, and then jump to whatever function handler is stored in the mtvec…

456

Run More Stuff in Docker

In 2020, Docker is the best medium for distributing and running most developer-facing software . It’s widely accepted that Docker is great for building and deploying the artifacts for your enterprise web app, but this is less well known when it comes to things like developer tools. However, running tools in containers…

457

Restoring and MIDI-Fying a Baby Grand Piano

As much as I love digital instruments, synthesizers and other electronic gear I also really love the look and feel of instruments made from wood, brass, steel and felt. There is objectively no difference between the best digitally sampled pianos but for some reason it doesn’t quite feel as much alive as an actual…

458

Emacs Prelude 1.0

I’ve got a big news to share with you today - after (over) 9 years of development, Emacs Prelude finally made it to version 1.0! There’s nothing really big or groundbreaking there, as Prelude has been in a pretty good place for a very long time feature-wise, but I felt like tagging a 1.0 release, because it’s 2020 and…

472

Vim Creep (2011)

It all started out innocently enough. You experimented with it once or twice in your first year of college, but Nano and Pico were easier—closer to what you had already been using during high school on the Windows machines and Macs. But as time went on and you got more experience under your belt in the college-level…

473

Cost of a thread in C++ under Linux

Almost all our computers are made of several processing cores. Thus it can be efficient to "parallelize" expensive processing in a multicore manner. That is, instead of using a single core to do all of the work, you divide the work among multiple cores. A standard way to approach this problem is to create threads. ……