Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,136 posts.
Lazygit Turns 5: Musings on Git, TUIs, and open source
This post is brought to you by my sponsors. If you would like to support me, consider becoming a sponsor
Adding C-style for loops to Python (2022)
Thousands of cam girls live right now from Colombia, the US, Europe and Asia. Watch free with no signup, and see when each model is usually online.
Scripting with Elixir
I was a Python developer for some time and one great joy of Python is that you have an expressive language that you can use for your serious apps as well as for your hacky little one-off script or bespoke pieces of automation. By expressive I mean that typing very little can give you a lot of progress towards your…
Now you're thinking with relays
Tinkering with relay-based logic just for the fun of it.
Let's write a treesitter major mode for Emacs
Creating a standard programming major mode presents significant challenges, with the intricate tasks of establishing proper indentation and font highlighting being among the two hardest things to get right. It's painstaking work, and it'll quickly descend into a brawl between the font lock engine and your desire for…
Amiga Systems Programming in 2023
If you ever get a chance to look through the classic Amiga OS source-code still floating around some murky corners of the internet, it is a thing of beauty and astonishing capabilities. It’s an inspirational piece of computing history with unmatched capabilities for the time. Remember, this was all on a computer…
Managing State with Signals
An experiment of using incremental computations for managing state in Humble UI
Reverse-Engineering YouTube: Revisited
Back in 2017 I wrote an article in which I attempted to explain how YouTube works under the hood, how it serves streams to the client, and also how you can exploit that knowledge to download videos from the site. The primary goal of that write-up was to…
Implementing Wordle in the Firefox address bar
A version of Wordle that runs inside the Firefox address bar via abuse of the Opensearch spec.
Swift Achieved Dynamic Linking Where Rust Couldn't (2019)
For those who don’t follow Swift’s development, ABI stability has been one of its most ambitious projects and possibly it’s defining feature, and it finally shipped in Swift 5 . The result is something I find endlessly fascinating, because I think Swift has pushed the notion of ABI stability farther than any language…
I Built Linux from Scratch
Linux From Scratch or LFS is a project that provides and maintains a set of instructions of how to build your own Linux system from scratch. I am always curious to understand how things work ‘under the hood’, and since I’m a daily Linux user i decided to take on the challenge to try and complete building Linux From…
The Stupid Programmer Manifesto
I'm not smart enough for modern web development, and that's ok
Lessons from Creating a VSCode Extension with GPT-4
Lately, I've been playing around with LLMs to write code.
Understanding every byte in a WASM module
In my last post, we explored how to build WASM modules, both with and without WASI support, using Clang. In a comment on Reddit, it was mentioned that much of the setup I walked through in that post could be avoided by just leveraging Zig’s WASI supprt. This is a great point, and I would recommend doing the same. The…
How to speed up the Rust compiler
It has been five months since my last general update on the Rust compiler’s performance. Let’s see what has happened in that time.
Matrices and Graph
The single most undervalued fact of linear algebra: matrices are graphs, and graphs are matrices
Fantastic Learning Resources
People sometimes ask me: Alex, how do I learn X?. This article is a compilation of advice I usually give. This is things that worked for me rather than the most awesome things on earth. I do consider every item on the list to be fantastic though, and I am forever grateful to people putting these resources together.
Setenv Is Not Thread Safe and C Doesn't Want to Fix It
You can't safely use the C setenv() or unsetenv() functions in a program that uses threads. Those functions modify global state, and can cause other threads calling getenv() to crash. This also causes crashes in other languages that use those C standard library functions, such as Go's os.Setenv ( Go issue ) and Rust's…
Hurl, a terrible (but cute) idea for a language
Sometimes we have ideas that are bad but demand to enter reality. A few months ago, while chatting with a friend, we toyed around with the idea of a language where the only control flow you get is error handling. This idea embedded itself in my brain and wouldn't let me go, so I kept just talking about it until two…
My Problem with the Four-Document Model
Two universal facts about user documentation: Documentation is really important. We are really bad at writing it. We don’t have good theories on what makes for useful documentation. That is except for the four document model, or Diátaxis.1 I’m glad that people use it. I’m also a little frustrated that people use it…
The beauty of finished software
Let me introduce you to WordStar 4.0, a popular word processor from the early 80s. WordStar 4.0 As old as it seems, George R.R. Martin used it to write “A Song of Ice and Fire”. Why would someone use such an old piece of software to write over 5,000 pages? I love how he puts it: It does everything I want a word…
Two types of software engineers
One assumes it's easy because it's a non-technical problem, the other assumes that's why it's hard