Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 1,535 posts.
The Tao of Unicode Sparklines (2021)
I’ve long been enamored of the sparkline, a graphical device which its inventor Edward Tufte defines thusly: A sparkline is a small intense, simple, word-sized graphic with typographic resolu…
Crossing the impossible FFI boundary, and my gradual descent into madness
Anyone trying to make a new mainstream language is completely insane, unless they're backed by a large corporation. 0
Lessons learned reinventing the Python notebook
Designing a notebook that can be shared as an app, run as a script, versioned with git, and more
Cursed Linear Types in Rust
Inspired by Jack Wrenn’s post on Undroppable Types in Rust, I set out to see if it’s possible to create types that must be used exactly once. From my understanding, those things are called linear types, but don’t quote me on that1. Unless you are quoting the title of this article which explicitly says linear types… I…
Finding memory leaks in Postgres C code
I spent the last week looking for a memory leak in Postgres’s WAL Sender process. I spent a few days getting more acquainted with Valgrind and gcc/clang sanitizers, but ultimately got nowhere useful with them. Finally, I stumbled on the memleak program from the bcc tools collection which led me right to the source…
Remix's concurrent submissions are fundamentally flawed
In this article we discuss the complexity of introducing concurrent operations on the client wuthout causal ordering on the server.
PHP in 2024
A blog about modern PHP, the web, and programming in general. Follow my newsletter and YouTube channel as well.
First Contact with SQLite
I've been playing around with SQLite the last couple of days. I thought I knew a little about SQLite, but I didn't, and am getting my remedial education through an accelerated gauntlet. Some of what …
On the Costs of Syscalls (2021)
It's well known that syscalls are expensive. And that software mitigations against CPU bugs (such as Meltdown) even have made them more expensive. But how expensive are they really? To begin to answer this question I wrote a small micro-benchmark in order to measure the minimal costs of a syscall …
Vue 3.5 released
The official blog for the Vue.js project
Stem, a stack-based language with metaprogramming and a C FLI
My own concatenative programming language
Randomness extractors: making fair coins out of biased coins
I discuss various models of biased bit sequences, and how to extract uniform random (or close to it) output bit sequences from them, illustrated with Python code.
Parsing Protobuf Definitions with Tree-sitter
If you work with Protocol Buffers (protobuf), you can really save time, boredom, and headache by parsing your defin…
Compiling History: A brief tour of C compilers
As the story of C’s birth goes hand in hand with the creation of Unix, the first C compiler can be traced back to the early 1970’s.
JVM Performance Comparison for JDK 21
The current article describes a series of Java Virtual Machine (JVM) benchmarks with a primary focus on top-tier Just-In-Time (JIT) compilers, such as C2 JIT, and Graal JIT. The benchmarks are structured in three distinct (artificial) categories:
Introduction to GPU Programming in Chapel
This post gives a beginner’s introduction to Chapel’s GPU programming features
Fractran: Computer architecture based on the multiplication of fractions
By Devine Lu Linvega
Linux/ELF .eh_frame from the bottom up
Given the current register state for a thread, and read-only access to memory, what would the register state hypothetically become if the current function was to immediately return and execution was to resume in its caller?
Emit
One of the interesting aspects of a concatenative language like Factor is that blocks of logic can be easily extracted and easily reused since they apply logic to objects on the stack .
Solving the Worst Problem in Programming Education: Windows
I've created a set of install scripts for Windows that helps people install many different programming languages using standard tools.
Ditching PaaS: Why I Went Back to Self-Hosting
I had never been a fan of devops/server-admin work. The sheer number of headaches involved in setting up the services, configuring them, automating them, and ensuring their reliability were just annoying and time-consuming. PaaS offerings like Heroku, AWS—and later—Railway, and Render, were appealing options out of…
Good code is rarely read
The other day I was interviewing a developer for a position at Wallapop. The candidate was a little bit junior, but I enjoyed their technical assignment and the conversation was going great. One of the questions I had to ask was
Git Worktrees and GitButler
How do git worktrees help you work on more than one branch at the same time, and how does that differ from virtual branches in GitButler?
Historically, 4NF explanations are needlessly confusing
4NF presented in a straightforward way, with some investigation of history of teaching 4NF.
Automating My /Now Page
A deep dive into how I automated my now page on my personal website by creating a Go script and making use of GitHub Actions.
The challenges of building modern open source software on PowerPC Mac OS X
PowerPC Macs were produced in huge numbers, and a lot of this hardware is still viable for use today, with professional software such as Photoshop CS2 and Propellerheads Reason. They're still good workstations, with lots of productivity software, and no always-online tracking or distractions. Originally, I got mine…
Making Machines Move
Gather round the fire to hear the tale of how we built migration for stateful apps on a global public cloud without building a SAN.
Ruby might be faster than you think
I saw a project a couple weeks back which allows writing and running Crystal methods inline inside a Ruby file. It’s a neat project, and I don’t want to take away from it but something in the README example looked off to me. require 'crystalruby' require 'benchmark' module Fibonnaci crystalize [n: