New
The latest blog posts to take off on Hacker News. 1,733 posts.
Rip – Rust crate to resolve and install Python packages
`rip` resolves and installs packages from PyPI from pure Rust
Reflect – Multiplayer web app framework with game-style synchronization
Bringing Game-Style State Synchronization to the Web
Fuyu-8B: A multimodal architecture for AI agents
We’re open-sourcing Fuyu-8B - a small version of the multimodal model that powers our product.
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…
C++ Modules: Packaging Story
Experimenting with C++ Modules from the package management and build system perspective
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.
Mypy 1.6
We’ve just uploaded mypy 1.6 to the Python Package Index ( PyPI ). Mypy is a static type checker for Python. This release includes new fe...
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…
Ruff v0.1.0
Ruff adds a versioning policy, fix safety levels, and a preview mode for unstable features.
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:
Background job queues and priorities may be the wrong path
I got this idea after reading the Reflections on GoodJob for Solid Queue from Ben Sheldon, who is the author of the excellent GoodJob.
The story of ispc: origins (part 1) (2018)
This one time, at Intel, I wrote a compiler...
Organizing multiple Git identities
Here's a quick tip on how to manage multiple Git identities (e.g. personal, work, client1, client2).
Escape analysis hates copy elision (2021)
Yesterday Lauri Vasama showed me this awesome Godbolt: struct S { static std::unique_ptr<S> make() noexcept; ~S(); static std::unique_ptr<S> factory() { std::unique_ptr<S> s = S::make(); return M(s); } }; void take_ownership(S*) noexcept; void test() { std::unique_ptr<S> p = S::factory()…
Learn Wayland by writing a GUI from scratch
Wayland is all the rage those days. Distributions left and right switch to it, many readers of my previous article on writing a X11 GUI from scratch in x86_64 assembly asked for a follow-up article about Wayland, and I now run Wayland on my desktop. So here we go, let's write a (very simple) GUI program with Wayland…
Implementing a GPU's programming model on a CPU
SIMT The programming model of a GPU uses what has been coined "single instruction multiple thread." The idea is that the programmer writes t...