New
The latest blog posts to take off on Hacker News. 14,540 posts.
Goodbye, Node.js Buffer
It’s time to move from Buffer to Uint8Array.
Unified versus Split Diff
Which is better for code reviews, a unified diff or a split diff?
Building a unikernel that runs WebAssembly – part 1
Hackweek 22 took place last week. During this week all the SUSE employees are free to hack on whatever they want. This one of the perks of working at SUSE 😎.
Base64 Encoding, Explained
Base64 is an elegant way to convert binary data to text, making it easy to store and transport. This article covers the basics of Base64 encoding, including what it is, how it works and why it's important. It also shows how to encode and decode Base64 data in various programming languages.
Transactions Are Not Locks (2022)
One thing I wish I had understood better earlier on in my experience with PostgreSQL is how transactions and locks can be used together to provide serializable logic.
Refactoring has a price, not refactoring has a cost
We either refactor continuously as we build features -- paying the price. Or we slowly accumulate cruft until our codebase is impossible to change -- paying the cost.
My website is one binary (2022)
my website is one binary 2022-04-06 ---------------------------- a.k.a. this one weird trick that inspires me to program creatively i have struggled for years to figure out a website framework that feels good to me. i tried all of the classics, including but limited to: - ghost - hugo - jekyll - sr.ht + tarball …
Recent adventures in performance optimization with Rust
How to hash, index, profile, multi-thread, and SIMD your way to incredible speeds.
MMO Architecture: clients, sockets, threads and connection-oriented servers
More on MMO Architecture:- MMO Architecture: Source of truth, Dataflows, I/O bottlenecks and how to solve them- MMO Architecture: Optimizing Server Performance with Lockless Queues- MMO Architectur…
Flappy Bird implemented in TypeScript types
The ultimate type-level trickery
Does Go Have Subtyping?
I’ve been noodling on a static type system for my current hobby language. To try to keep the language as simple as possible, I’m trying to see if I can live without subtyping. Since most of my programming experience is in object-oriented languages, I’ve been learning more about languages that lack—or at least claim to…
Which Interpreters Are Faster, AST or Bytecode?
A brief overview of our study of abstract-syntax-tree and bytecode interpreters on top of RPython and the GraalVM metacompilation systems.
Apple's use of Swift and SwiftUI in iOS 17
Apple’s use of Swift and SwiftUI in iOS 17
Higher quality random floats
Much has been written about how to generate random 64-bit integers; people might argue over which particular (CS)PRNG is best suited for a given task, but there is agreement on the general shape of the solution: keep some state around, and then extract 64 bits of randomness at a time, where each bit is equally likely…
Localization Failure: Temperature Is Hard
The Guardian is one of my favorite news sources. I’m a subscriber (support news organizations!) and I read it daily. But it is not immune to errors, as this headline shows:68 °F above average is a …
Making CRDTs More Efficient
State-based CRDTs grow monotonically, but that doesn't mean they can't be efficient. We'll learn how to compress the pixel editor state by 98%.
Circulant Matrices, Eigenvectors, and the FFT
The eigenvectors of a circulant matrix do not depend on the matrix itself, only on the size, and the eigenvectors are columns of the FFT matrix.
Write more "useless" software
After my last blog post about Hurl, someone asked me, and I quote: "... why?" The simple answer is "for the joke." But the longer answer is that useless software [1] is a fantastic way to explore and experience the joy of computing. Play is an important part of exploration and joy.
BB(3, 3) is Hard
I’m excited to share a 3 state, 3 symbol Turing Machine that cannot be proven to halt or not (when starting on a blank tape) without solving a Collatz-like problem. Therefore, solving the \(BB(3, 3)\) problem is at least as hard as solving this Collatz-like problem, a class of problem for which Paul Erdős famously…
Stocketa – An app I designed, built and never launched
A dive into the app I designed, built and never launched. Stocketa was a personal project developed to serve as a simple stock portfolio tracker for casual investors. The app was built using Swift and SwiftUl and offered a custom UI, comprehensive transaction tracking, and a variety of features.
Should you be scared of Unix signals? (2016)
Should you be scared of Unix signals?
Better HTTP server routing in Go 1.22
An exciting proposal is expected to land in Go 1.22 - enhancing the pattern-matching capabilities of the default HTTP serving multiplexer in the net/http package.
Teaching Apple Cyberdog 1.0 new tricks (featuring OpenDoc)
In the distant nethermists of time, documents once briefly ruled the earth (or at least Mac OS), and to that end I managed to find a verrr...
Why Async Rust?
Async/await syntax in Rust was initially released to much fanfare and excitement. To quote Hacker News at the time: