Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,537 posts.
What’s the best lossless image format?
In a blog post last year, I took a look at lossy image formats and how they stack up. This time, I thought it might be interesting to do a comparison of lossless image formats.
Analyzing multi-gigabyte JSON files locally
I’ve had the pleasure of having had to analyse multi-gigabyte JSON dumps in a project context recently. JSON itself is actually a rather pleasant format to consume, as it’s human-readable and there is a lot of tooling available for it. JQ allows expressing sophisticated processing steps in a single command line, and…
Your Bash Prompt Needs This
Have you ever had this happen to you? You start a program and then interrupt it with Ctrl-C, and Bash prints its prompt after the ^C you have typed:
Why bugs might feel “impossible”
Reasons why bugs might feel "impossible"
The True Meaning of Technical Debt (2020)
"Know your enemy, know yourself, and in a hundred battles you will never be defeated"
A good developer has a natural, almost visceral aversion to complexity
Code should be simple. Code should be butt simple. Code should be so simple that there’s no way it can be misunderstood. Good code has no nooks. Good code has no crannies. Good code is a round room with no corners for bugs to hide in. We all know this. So why does most code suck? Because it’s written
How to Write Portable C Without Complicating Your Build
Suppose you’re writing a non-GUI C application intended to run on a number of operating systems: Linux, the various BSDs, macOS, classical unix , and perhaps even something as exotic as Windows. It might sound like a rather complicated problem. These operating systems have slightly different interfaces (or very…
Tauri vs. Electron – Real world application
Comparing Electron and Tauri - With a real world app
Gribouille 0.3.0: A Grammar of Graphics for Typst
Gribouille 0.3.0 gives guides and axes a much finer on/off switch, lets compose() carry its own theme, and makes geom-area() stack by default. A long list of legend and annotation fixes rounds it out.
Awk As A Major Systems Programming Language, Revisited (2018)
AWK As A Major Systems Programming Language — Revisited
One Program Written in Python, Go, and Rust
Image differentiation in three languages
Zero-Overhead Tree Processing with the Visitor Pattern
The Visitor Pattern is one of the most mis-understood of the classic design patterns. While it has a reputation as a slightly roundabout technique for doing simple processing on simple trees, it is actually an advanced tool for a specific use case: flexible, streaming, zero-overhead processing of complex data…
Lisp in Your Language
I'm a fan of Lisp programming languages, but there's an incredible conceptual elegance that struggles to materialise as readable elegance for many unfamiliar programmers. The underlying concepts are incredibly simple, but the learning curve can represent a disproportionate challenge.
A little game to demonstrate timing attacks.
Lauren Ipsum is trying to get past Jane Hecate, a little old lady who holds the Book of Passwords. Jane is older and can't see well, so she has to spell out Lauren's guess letter by letter to check whether it's the right password. How can Lauren use this to her advantage? A story about computer science and other…
Solving Fizz Buzz with Cosines
Fizz Buzz is a counting game that has become oddly popular in the world of computer programming as a simple test of basic programming skills. The rules of the game are straightforward. Players say the numbers aloud in order beginning with one. Whenever a number is divisible by 3, they say 'Fizz' instead. If it is…
Distri: 20x faster initramfs (initrd) from scratch
In case you are not yet familiar with why an initramfs (or initrd, or initial ramdisk) is typically used when starting Linux, let me quote the wikipedia definition: “[…] initrd is a scheme for loading a temporary root file system into memory, which may be used as part of the Linux startup process […] to make…
How to make LLMs go fast
Blog about linguistics, programming, and my projects
Visualizing Rust's Vtables: How dyn Trait Works In Memory
A follow-along series of coding experiments as I explore Rust's peculiarities, from a C++ developer's perspective.
Working on Chrome made me develop a tool for reading source code
Coati is a developer tool for fast and efficient source code navigation and exploration. This is the story of how an internship at Google…
Why aren't you using git-flow?
git-flow is a library of git subcommands that helps automate your branching and release workflow workflow, using Vincent Driessen's successful branching model.
Good results fine tuning a local LLM like Qwen 3:0.6B to categorize questions
<p>As a fun personal project, I have been working on a chatbot for answering general questions about my household on anything from maintenance questions to doctor’s appointments. </p> <p> The general idea is that the chatbot will get its household knowledge through RAG from querying a vector database, but for better…
Kalman filters and functional programming
A paper on Kalman filtering and functional folds that I alluded to previously has been split into several papers and posted online.
Sonic Pi: Ruby as a Composition Tool
Like the blip of an intro on the front page says, my degree was originally in music. My running joke as a web dev is that neither has meaningfully required me to count past 32. And while my main concentration was vocals, I've since realized I should probably stop strictly calling this a nontechnical field, because my…
F/OSS Comics #13: BSD Unix, Part 3 – The Beginning of BSD Unix
From Pascal and ex tapes to a VAX system: Bill Joy handles BSD distribution and debugging, then joins Ozalp Babaoglu to bring virtual memory to Unix.
The Signal protocol for Node and browsers
Signal is a protocol for encrypted chat. Developed by Moxie Marlinspike and Trevor Perrin, the Signal protocol backs the excellent Signal Messenger , and has since been incorporated into WhatsApp, Facebook Messenger and Google Allo.