Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Let's write a compiler, part 1: Introduction, selecting a language, and planning
I think we all knew this might be coming once we finished up with our assembler . While we can in theory solve any computable problem by writing the appropriate assembly for our assembler, writing assembly code can be a bit more cumbersome than a high-level language. There is a reason why we did not write our…
A Terminal Protocol for Program Status (OSC 7501)
I wrote a specification for a new terminal escape sequence: OSC 7501, the Program Status Protocol . It lets any program tell the terminal what it's doing: idle, working, waiting on the user, finished, or failed, and why.
Erlang Scheduler Details and Why They Matter
Hamidreza Soleimani's Blog - Just about what I know
Think Before You Parallelize: A tour of parallel abstractions
In 2005 Intel release the Pentium D, which began the era of multi-core desktop CPUs. Today, even our phones have multiple cores. Making useof all of those c...
Copy-on-write B-tree finally beaten.
Copy-on-write B-tree finally beaten by Andy Twigg, Andrew Byde, Grzegorz Mi?o´s, Tim Moreton, John Wilkesy and Tom Wilkie.
Lezer
I keep coming across people who consider parser technology a forbidding, scary field of programming. This is nonsense—a small parser can be very, very simple , and provide a wholesome exercise in recursive thinking. At the same time, it is true that you can make parsing extremely complicated. Mostly, this tends to…
Let’s build a browser engine (2014)
I’m building a toy HTML rendering engine, and I think you should too. This is the first in a series of articles:
Thread pools: How do I use them?
Thread pools! How do I use them?
Programming the C64 with Visual Studio Code
How to program the Commodore 64 in BASIC, Assembly or C using Microsoft Visual Studio Code on Mac, Windows and Linux!
Are Jump Tables Always Fastest?
tl;dr: I make a petty point about premature optimization; don't go out and rewrite your switch statements as binary searches by hand; maybe do rewrite your jump tables as switch statements, though.
Rolling Shutter Simulation in C
The most recent Smarter Every Day (#172) explains a phenomenon that results from rolling shutter . You’ve likely seen this effect in some of your own digital photographs. When a CMOS digital camera captures a picture, it reads one row of the sensor at a time. If the subject of the picture is a fast-moving object…
Cheating the Reaper in Go
Even though I am a C++ programmer at heart, Go fascinates me for none of the reasons you think. Go has made several interesting design decisions:
Who Watches Watchmen? – Integrating Elixir Applications with Systemd
A lot of application use systems like Kubernetes for their deployment. In my humble opinion it is often overkill as system, that offers most of the stuff such thing provide, is already present in your OS. In this article I will try to present how to utilise the most popular system supervisor from Elixir applications.
The Linux perf command rocks
A summary of Linux profiling/monitoring tools
A Practical Intro to Macros in Rust
One feature of Rust that I'm rather enamoured with is its macro system. Known as "macro by example" (MBE) or sometimes referred to as macro_rules , it provides you with an impressive amount of power whilst not allowing for the sort of evil tricks you can pull in C/C++.
Build a VM step by step with Rust
Covers general elements of computer hardware useful to know before reading the rest of the tutorials
A Critique of SQL, 40 Years Later
Homepage of Carlin Eng
A Defer Mechanism for C
An overview of a paper that presents a reference implementation of a defer mechanism (co-authored with Robert C. Seacord) has been accepted for publication at SAC’21. The full version is avai…
Ruby methods are colorless
👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are colorless The…
Introducing Svelte, and Comparing Svelte with React and Vue (2021)
Svelte is a new style of framework for building sites and apps. Let's dive into what makes it different, why it's so enjoyable, and how it's able to ship such tiny, fast apps.
Java Doesn’t Suck
I've been building enterprise Java web apps since servlets were created. In that time the Java ecosystem has changed a lot but sadly many enterprise Java…
Web development in C: Crazy?
Preliminary verdict: crazy like a fox (ish)