How to Think about Correlation?
I am an economist at the Federal Trade Commission with a very basic statistics question, one that I have put to several fairly high-powered econometricians, and to which no one has had a satisfying answer.
Making Playstation 1 Modchips (2018)
When I was young I owned a PlayStation 1 (PS1). It was one of the first, if not the first, game consoles I owned and it had a profound effect on my future. I can trace the history of how I got involved in computers back to playing and modding
Recovering Iran’s NOUR 01 ‘Military Satellite’
Iran’s new military satellite, NOUR 01, most interesting fact may not be that it resembles a college engineering experiment but rather that it may have a connection to a Mexican military payl…
Writing an Efficient Vulkan Renderer
In 2018, I wrote an article “Writing an efficient Vulkan renderer” for GPU Zen 2 book, which was published in 2019. In this article I tried to aggregate as much information about Vulkan performance as I could - instead of trying to focus on one particular aspect or application, this is trying to cover a wide range of…
A simple way to get more value from tracing
A lot of people seem to think that distributed tracing isn't useful, or at least not without extreme effort that isn't worth it for companies smaller than FB. For example, here are a couple of public conversations that sound like a number of private conversations I've had. Sure, there's value somewhere, but it costs…
Feynman Lectures on the Strong Interactions
Available at the arXiv this evening is something quite fascinating. Jim Cline has posted course notes from Feynman’s last course, given in 1987-88 on QCD. There are also some audio files of a…
Thoughts about the difference between European and American H/W and S/W design
I have just recently discovered that my previous post about Commodore BASIC went modestly viral, not only featuring on Hacknernews but getting its own story on Hackaday . Gosh. This in itself has provoked some discussion. Its also resulted in a lot of people telling me that NO COMMODORE WAS…
The Liskov Substitution Principle (2019)
In 1987, while delivering a keynote on data abstractions and hierarchies, Barbara Liskov introduced the idea that would eventually become the Liskov Substitu...
Repurposing my old Chromebook to a low power home server
Can’t sell it? Repurpose it! It was around 4 years ago when I bought a used, slightly beat up Asus C300 Chromebook from a friend of mine for £50. It served me well, I installed Linux on it and used it to work on some side projects while commuting. However as time passed by, I slowly forgot about it and it ended up in…
What Is the Minimal Set of Optimizations Needed for Zero-Cost Abstraction?
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Polymath: A Markup Language for Everything
Polymath is a markup language for aesthetically presenting a wide variety of information including text, mathematics, programming, photos, videos, and more.
Playing on Hard Mode
Airbnb and DoorDash both created new markets where ones did not previously exist; they are startups played on “hard” mode.
Patriarch of Pandemics
In the last article we covered some of the historical pandemics that rocked the world - smallpox, typhoid, and the bubonic plague. We ended on a hopeful note - many of the pandemics that plagued the world in the past have faded, and that modern pandemics have been far less fatal than historical o
Tools I use: argparse builder
argparse builder is a web based graphical interface for quick creation of the argparse commandline switches for your python scripts.
Rust for JavaScript Developers – Pattern Matching and Enums
Part 4 covers pattern matching, destructuring, and enums
Computation Graphs and Graph Computation
Research has begun to reveal many algorithms can be expressed as matrix multiplication, suggesting an unrealized connection between linear algebra and computer science. I speculate graphs are the missing piece of the puzzle. Graphs are not only useful as cognitive aides, but are suitable data structures for a wide…
Quantifying the Adpocalypse
Someone is off sides - advertising revenue in the time of COVID
Everything Is an X
Analysis and examples of the popular high-level pattern of making all the things in your system conform to a common interface.
What is a Product Roadmap?
and how do you use it?
Types as axioms, or: playing god with static types
A common perspective is that types are restrictions . Static types restrict the set of values a variable may contain, capturing some subset of the space of “all possible values.” Under this worldview, a typechecker is sort of like an oracle, predicting which values will end up where when the program runs and making…
Three Types of Data
In my work I’ve developed a mental framework related to data modeling, which has helped greatly both when coming up with a model and when making decisions down the road about how to use that model. Here I will establish three different categories of data in software: Constants, State, and Cached Values. By “data” I…