Optimizers need a rethink
Thoughts on how compiler and database optimizers should evolve in the future, focusing on predictability and guarantees instead of smarts and heroics
The latest blog posts to take off on Hacker News. 14,540 posts.
Thoughts on how compiler and database optimizers should evolve in the future, focusing on predictability and guarantees instead of smarts and heroics
The IOCCC Flight Simulator was the winning entry in the 1998 International Obfuscated C Code Contest. It is a flight simulator in under 2 kilobytes of code, complete with relatively accurate 6-degree-of-freedom dynamics, loadable wireframe scenery, and a small instrument panel.
OOP is certainly not my favorite paradigm, but I think mainstream statically-typed OOP does a few things right that are very important for programming with many people, over long periods of time.
I’ve written a lot of JavaScript. I like JavaScript. And more importantly, I’ve built up a set of skills in understanding, optimizing, and debugging JavaScript…
I’ve recently started a new job as a documentation engineer. While my work is largely the same as that of a technical writer, …
Sampling is one of the most powerful tools you can wield to extract meaning from large datasets. It lets you reduce a massive pile of data into a small yet representative dataset that’s fast and easy to use.
Asynchronous code does not require the rest of your code to be asynchronous. I can’t say the same for blocking code.
Some people make games using the Unreal Engine. That’s nice, but I wanted something a little different. That’s why I’m using the Real Engine.
Unit tests are always in sync with the code, making them a powerful tool for up-to-date documentation.
Thinking about thinking when coding, and the differences in what we see in our minds eye
Now lets's change the grammar so that if we don't have an else condition we default to None .
Successful software is buggy software.
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.
I had a productive day today! I did many different and unrelated things, but they all had the same unifying theme:
The C23 edition of Modern C is now available for free download from And as before a dedicated page for the book may be found at where you also may find a link to download the code examples that com…
A review after using Rust on embedded in production for over a year
Open source python client to read your data from the Colmi R02 family of Smart Rings. 100% open source, 100% offline.
This is Bob. And I’d like to know the best way for us to code a bunch of models in JAX to use to evaluate parallel algorithms including normalizing flows. I’m going to dump out my current thinking, but I’m really hoping to get feedback from experts on the best way to do this without starting a flame war in the…
Recently, I've been working on a new approximate nearest neighbor search algorithm called RaBitQ . The author has already provided a C++ implementation that runs quite fast. I tried to rewrite it in Rust (yet another RiiR). But I found that my implementation is much slower than the original one. Here is how I improve…
Someone in one of my online communities recently asked about why their Node command was dropping output when piped to another command:
In this article, we explore Typst, a new typesetting system similar to LaTeX. We explore its syntax, current uses and possible uses; we test its scripting system, which is incredibly powerful; we compare it with LaTeX, Markdown and Word, which can be used in similar roles; and we explore its applicability to the task…
Haskell’s expressive type system means that type signatures can carry a lot of information. Haskell’s polymorphism means that you sometimes write functions that work across an enormous range of types, and are left wondering “what do I actually call my variables?”. It is often the case that there’s nothing to say…
Fuzz testing decades-old software can turn up some curious behaviors
As DebConf22 was coming to an end, in Kosovo, talking with Eeveelweezel they invited me to prepare a talk to give for the Chicago Python User Group . I replied that I’m not really that much of a Python guy… But would think about a topic. Two years passed. I meet Eeveelweezel again for DebConf24 in Busan, South Korea…
I am somehow very late to learning CUDA. I didn’t even know until recently that CUDA is just C++ with a small amount of extra stuff. If I had known that there is so little friction to learnin…
TypedDict was introduced in PEP-589 which landed in Python 3.8. The primary use case was to create type annotations for dictionaries. For example,...
This article explains how a game can be made in Prolog by leveraging the hidden power of logic programming. Inspired by the elegance of data-driven design and declarative programming paradigms, I will be explaining a new way of designing game rules which can at the same time be used as the source code of the gameplay…
I recently released papaya, a fast and feature-complete concurrent hash table for Rust. In this post I want to dive into the design and research that went into creating it, as well as why you might consider using it over existing solutions.
Demoscene is the art of pushing computers to perform tasks they weren’t designed to handle. One recurring theme in demoscene is the shadow-art animation “Bad Apple!!”. We’ve played it on the Commodore 64, Vectrex (a unique game console utilizing only vector graphics), Impulse Tracker, and even exploited Super Mario…