Book list for streetfighting computer scientists (2022)
2025 edition. this is very different from most "best books for programmers" lists you'll see, with Code Complete and Clean Code and Wistful Wanking for Practical Wankers and Design Slatterns and titles like that. you'll figure all that out as you go along. these are books to read so that you can cut motherfuckers with…
JavaScript macros in Bun
Call JavaScript functions at bundle-time and inline results into the AST
Unwinding the Stack the Hard Way
Tutorial on how to make a stack trace or backtrace manually unwinding the stack using ELF’s .eh_frame and call frame information (CFI)
Memory Copy Hunting
I have a super power. I want to share it in this blog post so that you, my dear reader, also have it!
How do domain-specific chatbots work? A retrieval augmented generation overview
Demystifying and deconstructing Q&A bots that work over your data.
Tracking Java native memory with JDK flight recorder
As regular readers of this blog will now, JDK Flight Recorder (JFR) is one of my favorite tools of the Java platform. This low-overhead event recording engine built into the JVM is invaluable for …
You can now use WebGPU in Cloudflare Workers
Today, we are introducing WebGPU support to Cloudflare Workers. This blog will explain why it's important, why we did it, how you can use it, and what comes next
Running JavaScript in Rust with Deno: Experimenting with Deno's Rust Crates
Explore how the Deno runtime can enable JavaScript code execution in a Rust application via a proof-of-concept project called "js-in-rs". Discover the flexibility and versatility of using JavaScript expressions as filters in a CLI, written in Rust, as a powerful alternative to regular expressions. Watch out grep!
My mental model of Clojure transducers
I’ve been programming in Clojure for a long time, but I haven’t been using transducers much. I learned to mechanically transform (into [] (map f coll)) to (into [] (map f) coll) for a slight performance gain, but not much beyond that. Recently, however, I’ve found myself refactoring transducers-based code at work…
20 Years of Programming (2020)
I’m not sure of the exact date, but 20 years ago, around now, I started my first professional programming job. It’s weird to think about having done anything for 20 years. That’s as long as all my schooling put together.
Fiber in C++: Understanding the Basics
Fiber, a less known concept compared with coroutine, is a pretty powerful addition to cooperative multitasking. As a graphics programmer in game industry, I totally appreciate the great flexibility that fiber brings on the table. As a matter of fact, I feel the tech is a little bit underappreciated due to the lack of…
WebAssembly Tail Calls
This document explains the WebAssembly tail calls proposal and demonstrates it with some examples.
Apache Kafka Beyond the Basics: Windowing
Learn what windowing is, the difference between the four types of windows (hopping and tumbling, or session and sliding), and how to create them.
A Decade of Rust, and Announcing Ferrocene
Hello Rustaceans! Sometimes, good things come in many. For example: birthdays! 🎉 As it just so happens, we have 3 big things to celebrate: It's the 10th anniversary of Florian publicly posting his first Rust code on September 28th, 2013! Ferrous...
Emulating x86 on X64 on Aarch64
Emulating win32 on Mac using Apple's x64 emulator.
Introduction to P vs. NP
Series Introduction In this series of articles I would like to share with you a set of ideas that are meant to help non-technical people build a better intuition as to what the current software and…
Rip – Rust crate to resolve and install Python packages
`rip` resolves and installs packages from PyPI from pure Rust
Baby's first WASM compiler
( This is part of a series on the design of zest . See the list of posts here .)
We put half a million files in one Git repository (2022)
Using a monorepo causes a lot of performance challenges for git. Here's how we solve them at Canva.
Code the shortest path first
There is a strange thing that I noticed as I progressed from a junior engineer to mid-career to senior. When you’re a new engineer, still learning the basics, you are given a task or you have an idea, and you proceed to implement exactly that idea. Very simple, point A to point B, whatever gets the job done. You hate…
Django Views – The Right Way
It is the result of mistakes made and lessons learned in a range of Django and Python projects over 15+ years.
Fyrox Game Engine 0.29
Fyrox 0.29 added new animation editor, reworked animation system and lots of smaller improvements.
Type constraints in 65 lines of SQL
Creating validated data types in Postgres
Using C++ as a scripting language, part 8
Improving API function calls using inline assembly
Eventual Business Consistency
Executive Summary of Bi-temporality
Modular Errors in Rust
It is thankfully common wisdom nowadays that documentation must be placed as near as possible to the code it documents, and should be fine-grained to a minimal unit of describability (the thing being documented). The practice provides numerous benefits to the codebase and project as a whole:
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.
The case against self-closing tags in HTML
The history, facts, and opinions.