New
The latest blog posts to take off on Hacker News. 1,535 posts.
I Built an Ld_preload Worm
Teenagers' hands are the devil's playthings.
GitHub Copilot Workspace: Technical Preview
We’re redefining the developer environment with GitHub Copilot Workspace - where any developer can go from idea, to code, to software all in natural language.
93% of paint splatters are valid Perl programs (2019)
TLDR: read the paper and view the gallery of pretty Perl programs. In this paper, we aim to answer a long-standing open problem in the programming languages community: is it possible to smear paint on the wall without creating valid Perl?
You can't just assume UTF-8
How to infer character encodings with statistics
Zed Decoded: Rope and SumTree
From the Zed Blog: In this episode of Zed Decoded, Thorsten asks the founders — Nathan, Max, Antonio — about the data structures at the heart of Zed: Rope and SumTree.
Flow Field Pathfinding
You may know me for my interactive tutorials. But before that, I was writing visual but non-interactive tutorials. In particular, there wasn’t a lot of information about A* on the web, so I decided to collect all my notes about pathfinding [1] together in one place in the 1990s. But then in the 2010s I started making…
Common DB schema change mistakes in Postgres
Common DB schema change mistakes and how to avoid them in PostgreSQL development.
How to improve the RISC-V specification
My main project is to create an executable spec of the Intel Architecture but, every now and then, I get to take a broader look at ISA specifications and think about the strengths and weaknesses of other ISA specs: what makes them work well; and what techniques they could borrow from other specifications. Earlier this…
Let's Embed a Go Program into the Linux Kernel (2023)
Today, we would like to present a lesser-known feature of the Linux kernel. Instead of launching a program from a file system, regardless of whether it's virtual or not, it is also possible to embed a user-space program directly into the kernel image itself and start it from there.
How I stopped worrying and loved Makefiles
Learn how to use Makefiles to streamline your Terraform and Hugo projects, making environment management and static site generation more efficient.
Practical Vim command workflow (2023)
Master the art of efficient text navigation and editing in Vim with this comprehensive command workflow tutorial. Explore key commands and practical examples to enhance your productivity in Vim.
The server chose violence
Hubris's oddest syscall
Speeding up C++ build times
How we cut build times by 50% and shipped a solution for scale.
Crafting Interpreters: 640 Pages in 15 Months
My book Crafting Interpreters on programming languages is done. OK, OK. I know I said it was done like fifteen months ago . But now it’s really done. And by that I mean, the print, e-book and PDF versions are done. You can buy it . You can hold it in your hands. And I do mean “hands” plural. Because this little…
Factorio – Statistics improvements, Linux adventures
Hello, welcome once again to the world of facts.
Leaving Rust gamedev after 3 years
Disclaimer: This post is a very long collection of thoughts and problems I've had over the years, and also addresses some of the arguments I've been repeatedly told. This post expresses my opinion the has been formed over using Rust for gamedev for many thousands of hours over many years, and multiple finished games…
Bun’s New Crash Reporter
How we built an anonymous Zig/C++ crash reporter that doesn't require debug symbols to be shipped with the application.
Pharo 12
Pharo is a pure object-oriented programming language and a powerful environment focused on simplicity and immediate feedback.
A Logic Language for Distributed SQL Queries
A comprehensive look at the design of Polar, and how we enabled it to operate over distributed data.
No Abstractions: our API design principle
This post explains one of the core design principle of Increase’s API, dubbed No Abstractions, which we’ve found useful as our product and company scale.
Software Design Principles I Learned the Hard Way
If there’s two sources of truth, one is probably wrong. And yes, please repeat yourself.
HTML Attributes vs. DOM Properties
They're completely different, but often coupled.
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:
Make invalid states unrepresentable (2023)
"Type-driven development"
Autotuner: How to speed up your Rails app
Ruby’s garbage collector is designed to be adaptable, scaling from short Ruby scripts to running apps that serve millions of requests per second. While it’s designed to be adaptable, it may not work optimally for every use case. For this reason, Ruby’s garbage collector supports many parameters that can be used to…
Magic Numbers
1500 bytes is a bit out there as numbers go, or at least it seems that way if you touch computers for a living. It’s not a power of two or anywhere close, it’s suspiciously base-ten-round, and computers don’t care all that much about base ten, so how did we get here?
TypeScript: Branded Types
How to brand TypeScript types for norminal typing, providing an automated and easy-to-use way of making a type nominal.
Borrow Checking, RC, GC, and the Eleven () Other Memory Safety Approaches
Zeke: "Wait, so with generational references, we now have four ways to do memory safety?"