Git rebase -i is not that scary
a guide to interactive rebasing.
Topics /
The most popular blog posts about software engineering on Hacker News. 1,415 posts.
a guide to interactive rebasing.
ernesernesto dev blog
There is a misunderstanding about software engineering that AI is making increasingly visible: we tend to confuse writing code with building software.
I built an (almost) fully self-hosted, sandboxed, agentic software factory.
Learn what it means to conform to the Python typing spec, why it matters, and the conformance status of each type checker including Pyrefly, Ty, Pyright and Mypy.
Analysis of millions of human-agent interactions shows agent turns getting longer, with software engineering making up nearly half of tool calls.
I built a tiny programming language where programs are candy grids, complete with a renderer, photo decoder, AST tree, and execution trace.
The author of Java 26's MemoryMXBean.getTotalGcCpuTime() analyzes the CPU-memory trade-off and why pause times fail to capture explicit GC cost.
On the March 10, 2025 episode of Do You Speak Tech?, I sat down with two names woven into the early fabric of modern computing: Larry Masinter and Frank
TLDR: Written version of the talk I gave at Develop Brighton 2026. Yes Godot can ship commercial VR, we paid roughly £80k in early adopter tax to do it. War stories from rebuilding Godot's core, the
Meet G#: expressive data types, explicit nullability, and structured concurrency on .NET. Explore real examples and run your first project.
Curried functions are probably one of the first new things you come across if you go from an imperative language to a functional language. In purely functional languages, the convention is to define an n-parameter function inductively by staggering the parameters: applying the function to argument #1 returns a…
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
A signals-and-noise course left me writing Monte Carlo math on paper and wishing the notation itself would run. Nine years later, with an AI agent doing the heavy lifting, NoiseLang became a real Monte Carlo language that runs the same fused kernel on the GPU, on every CPU core, and on WebAssembly.
The FPGA 386 core I've been building now boots DOS, runs applications like Norton Commander, and plays games like Doom. On DE10-Nano it currently runs at 75 MHz. With the core now far enough along to run real software, this seems like a good point to step back and look at one of the 80386's performance-critical…
I like using Vim to make ASCII art. I don't use any plugins; Vim already has a bunch of built-in features that are super useful for making ASCII art!
A customer's Go application kept crashing on a 32-bit embedded Linux system. We traced the fatal netpoll error to a pointer aliasing bug in the Go runtime.
I’m writing this so you don’t slap your forehead like I almost did when I decided to run swap in production to absorb memory spikes.
An adventure in making a utility
Why fixing package managers is harder than it looks.
Rietta patched a government client's Ruby on Rails site within hours of a 9.5 CVSS ActiveStorage CVE. Exploit attempts began before business hours resumed.
Capacitor vendors don't want you to know this! Save money on capacitors by spending more on other components
Emacs provides four useful status bars (mode-line, header-line, tab-bar, and tab-line), but each imposes different, inconsistent limits on multi-line layout, al...
This was a very old draft I’ve had sitting around for years. The recent discussions of new query languages like Acadia spurred me to revisit, revise, and publish this. I think one of the biggest causes of NoSQL is that… Continue reading →
AI agents address the remaining concerns with having your documentation alongside your code in version control
While Claude Code and Codex have significantly accelerated the automation of software development, limitations in the context window of a…
c’mon, try doing a breakthrough
What would have happened if Emacs' default buffer had been a terminal emulator? Conceptually, from the outside, it would be perceived as a terminal…
One command-line tool to query them all, built with Rust and ADBC