How to Build a Chess Engine and Fail
A Chess-AI is something every programmer should build at least once and [Sebastian Lague’s](https://www.youtube.com/@SebastianLague) [competition](https://www.youtube.com/watch?v=iScy18pVR58) was the perfect opportunity for me to do so. Constrained to 1024 tokens I wanted to implement an evaluation function similar to…
Microsoft at Work
I haven't written anything for a bit. I'm not apologizing, because y'all don't pay me enough to apologize, but I do feel a little bad. Part of it is just that I've been busy, with work and travel and events. Part of it is that I've embarked on a couple of writing projects only to have them just Not Work Out. It…
Making Screenshots of Test Equipment Old and New
Last year, I created Fake Parallel Printer , a tool to capture the output of the parallel printer port of old-ish test equipment so that it can be converted into screenshots for blog posts etc.
Inline previous result in Emacs Lisp
Artur Malabarba's Debugging Elisp Part 1: Earn your independence is nearly a decade old, yet it rings just as true today. Learning to Edebug really *"...
AI companies are pivoting from creating gods to building products
Turning models into products runs into five challenges
Please stop inventing new software licences (2020)
A few weeks ago, I received an unsolicited email inviting me to try out an exciting new "quantum resistant" cryptography app called Cyph. Because I hate myself, I signed up. Of particular interest to me was the fact that the homepage loudly proclaimed that it was "Open Source" - and had a public GitHub repo. That was…
M3 CPU cores have become more versatile
M3 chips widen the gap between Pro and Max variants. They also change relative performance between P and E cores to make M3 CPUs more versatile.
The derivative of a number (2014)
Are you kidding? Edward Barbeau is now a professor emeritus of mathematics at the University of Toronto. Over the years he has been working to increase the interest in mathematics in general, and e…
Spaced repetition for teaching two-year olds how to read
This father has been using spaced repetition (Anki) to teach his children how to read several years earlier than average. Michael Nielsen and Gwern tweeted about the interesting case of a reddit user, u/caffeine314 (henceforth dubbed “CoffeePie”), who has been using spaced repetition with his daughter from a very…
JavaScript Benchmarking Is a Mess
Design decisions core to JavaScript have caused a multitude of problems for benchmarking. Is there a solution to this?
UUID Benchmark War
This month’s PGSQL Phriday #015 topic is about UUIDs, hosted by Lætitia Avrot. Lætitia has called for a debate. No, no, no. I say let’s have an all-out war. A benchmark war. I have deci…
The end of "Useless Ruby sugar": On intuitions and evolutions
I wrote the analysis of “useless sugar” features of Ruby for two months, and I regret nothing.
Here lies the internet, murdered by generative AI
Corruption everywhere, even in YouTube's kids content
Structured Editing and Incremental Parsing
As someone who has from time to time written on parsing, and even published some parsing research , I get asked questions about parsing fairly regularly, some of which I’m even capable of answering.
Compiling to Assembly from Scratch
Then come along! Let’s make a compiler that goes all the way from source to assembly from scratch—no shortcuts!
Setting up PostgreSQL for running integration tests
Setting up PostgreSQL for tests is crucial for achieving performance and reliability. In this article, I'll explain how to set up PostgreSQL for tests and discuss some common pitfalls to avoid.
Procrastination can be caused by anxiety
Anxiety is a feeling of worry and unease that people experience in various situations, such as before taking a test, interviewing for a job, or making a big decision. Occasional anxiety is an expected part of life, though some people suffer from anxiety disorders, which generally involve episodes of anxiety that are…
Why is Snapshot Isolation not enough?
Let's talk about why Snapshot Isolation is not enough for a general purpose concurrency control. Snapshot Isolation has been adap...
How I failed to make a game: Raycasting on the GBA
Today I am releasing my raycasting tech demo for the GameBoy Advance. Although it falls short of the goals I set out in the beginning – which included releasing a playable game –, I think there are some lessons worth sharing with the world.
Building a baseline JIT for Lua automatically (2023)
This is the Part 2 of a series. Feel free to read the prequel for more context: Building the fastest Lua interpreter automatically Building a good VM for a dynamic language takes a ton of engineerin
Everything that turned out well in my life followed the same design process
The context is smarter than you.
Janky Apple ID Security
I had another instance of my Apple ID mysteriously being locked. First, my iPhone wanted me to enter the password again, which I thought was the “normal” thing it has done every few months, almost since I got it. But after doing so it said that my account was locked.
Why do east Asian firms value drinking?
East Asian businesses often go out drinking.
Elizabeth line testing ways of banishing its "ghosts in the walls"
The appearance of shadowy ghosts has plagued some of the Elizabeth line's central London stations, and now TfL is trying to banish them.
Does Your Code Pass the Turkey Test? (2008)
Over the past 6 years or so, I’ve failed each item on “The Turkey Test.” It’s very simple: will your code work properly on a person’s machine in or around th...
An Exploration of SBCL Internals (2020)
SBCL is a Common Lisp implementation, with a performant compiler and support for a wide range of platforms. It has excellent documentation , and even a guide to internals (... this is written towards people who already know a lot about how it works though). This paper about SBCL's fairly unique build process is also…