Postgres query plan visualization tools
When you’ve got a slow Postgres query,
EXPLAIN
and its parameters are incredibly useful for working out why.However, the information returned can be difficult and time-consuming to interpret, especially for more complex queries. Over the years, people have built quite a few tools for visualizing Postgres query plans. As one of those people, I’m a little incredibly biased, but as a fan of many of the others, I hope to do them justice.
Case Study: 10x CouchDB Performance Gains for a AAA Game Launch
All software benchmarks and claims of performance are carefully crafted lies and this write-up is no different. Instead of giving you a quick “do steps one, two, three for a magic speedup”, we aim to explain how we arrived at the changes we made and how we rigorously tested those changes to make sure we understand their impact.
All this to give you the tools to follow the process yourself, at the end of which, you might come to very different conclusions that are valid for your particular situation which is very likely different from what our customer was dealing with.
Context switching and performance: what every developer should know
Context switching is known to be one of the most expensive operations performed by the operating system kernel which can kill the performance of many systems. It is a necessary evil on a busy system to keep it responsive, and to allow all the processes to make progress. But what makes it so expensive? This article decodes the hardware and software dynamics underlying context switching.
What went wrong with Horizon Worlds? Former Meta devs share surprising insights — and a solution to still save it
Before I left they were mandating that employees spend a certain number of hours per week in the game actively playing it. So therein started an automation war where all the people with 200 hours a week never actually played the game once. People just had to launch the game with an Android command over USB, then make sure the proximity sensor on the headset was taped to keep it on.
An epic treatise on error models for systems programming languages
Target audience: Practitioners interested in programming language design and familiar with representations of errors in at least a few different languages such as error codes, checked/unchecked exceptions, tagged unions, polymorphic variants etc.
Estimated reading time: 60 to 90 mins.
xlskubectl — a spreadsheet to control your Kubernetes cluster
xlskubectl integrates Google Spreadsheet with Kubernetes.
You can finally administer your cluster from the same spreadsheet that you use to track your expenses.
FOSS infrastructure is under attack by AI companies
The rest of the article is pretty impressive too; they talk about crawlers downloading tens of terabytes of data within a few days, or more. It’s hard to block them entirely, since they use various different IPs.
Why didn’t Windows 95 setup use a miniature version of Windows 95 as its fallback GUI?
One of the reactions to my discussion of Why Windows 95 setup used three operating systems (and oh there were many) was my explanation that a miniature version of Windows 3.1 was used to get MS-DOS customers upgrading to Windows 95. But why not use a miniature version of Windows 95?
Database protocols are underwhelming
However one database-adjacent topic I don’t think I’ve ever seen any discussions about, and that I think could be improved, is the protocols exposed by these databases to execute queries. Relational databases are very impressive pieces of technology, but their client protocol makes me wonder if they ever considered being used by anything other than a human typing commands in a CLI interface.