How Many People? Ancient Demography
One of the first questions anyone asks about past societies is, ‘how many people were there?’ It is one of those basic bits of information and generally speaking those of us who teach t…
Against Alcohol (2022)
A review of ‘Drink?: The New Science of Alcohol and Your Health’
Record labels panic as A.I. generated song becomes ‘hit single’
Welcome to the new world.
We used to build steel mills near cheap power. Now we build datacenters
Why are people so concerned with hardware power consumption nowadays? Some common answers to this question are that power is critically important for phones, tablets, and laptops and that we can put more silicon on a modern chip than we can effectively use . In 2001 Patrick Gelsinger observed that if scaling continued…
Effortless Performance Improvements in C++: std:unordered_map
This is the second post in the series about effortless performance improvements in C++. Check the first post to get the full story!
Write Posix Shell
write posix shell 2023-03-10 /\ {.-} ;_.-'\ { _.}_ \.-' / `, \ | / \ | ,/ [0] \|_/ what is shell? most people in tech are familiar with shell scripts. but shell is a language! ... shit. actually. wait, let me rephrase- most people _use_ shell. most people _avoid_ shell. but mostly most people _hate_ shell. but should…
The Long Shadow of Checks
A lot of more modern financial infrastructure follows the paths blazed by checks, at least in the U.S.
Just how constexpr is C++20’s std:string?
In C++20, string and vector are marked constexpr, which means they’re somewhat usable in compile-time programming. For example, we can write:
How to build toxic software teams
To build a toxic team, you must inject poison early and often
Bring Back Webrings
I built a webring for personal websites.
Using uninitialized memory for fun and profit (2008)
This is the story of a clever trick that's been around for at least 35 years, in which array values can be left uninitialized and then read during normal operations, yet the code behaves correctly no matter what garbage is sitting in the array. Like the best programming tricks, this one is the right tool for the job…
The OpenAI Keynote
OpenAI’s developer keynote was exciting, both because AI was exciting, and because OpenAI has the potential to be a meaningful consumer tech company.
PC keyboard hides an interesting secret
I found this keyboard on eBay recently, although it wasn’t quite the one I was looking for I still think it is interesting. Let me show you why. This is the keyboard, and you would be forgiven for…
Four Kinds of Optimisation
Premature optimisation might be the root of all evil, but overdue optimisation is the root of all frustration. No matter how fast hardware becomes, we find it easy to write programs which run too slow. Often this is not immediately apparent. Users can go for years without considering a program’s performance to be an…
The city of the future looks like a former military bunker in Taipei (2016)
Back in 2016, I wrote an article for How We Get To Next on an informal settlement called Treasure Hill, in Taiwan, that could be a prototype for the future of sustainable urban living. How We Get To Next is still online in archived format, but with bitrot being what
Python 3.12.0 from a supply chain security perspective
This critical role would not be possible without funding from the OpenSSF Alpha-Omega Project. Massive thank-you to Alpha-Omega for investing in the security of the Python ecosystem! Python ...
Humans Need Play
On a vicious pattern that breeds burnout.
M.U.L.E. 40th Anniversary Special
Written and copyrighted by Christian A. Schiller , World of M.U.L.E. curator, with contributions from Andrew Dieffenbach, M.U.L.E. Online developer. No reprint without permission. Happy to get feedback on this feature, either via the contact form or one of the following social media accounts: Facebook , Twitter or…
The Internet Free Zone (1997)
The Internet Free Zone Home Page.
RISC-V SBI and the full boot process
Detailed explanation on how RISC-V boot process works and what role SBI has in the RISC-V software stack. Concrete example with OpenSBI.
Remote work is the best thing to happen to families in decades
Yet commentators and politicians keep missing it
Adding runtime benchmarks to the Rust compiler benchmark suite
This post describes the design and implementation of a runtime benchmark suite for measuring the performance of Rust programs, which was recently added into the Rust compiler suite. I have recently blogged about how the whole benchmark suite works, so feel free to read that post first if you want to gather a bit more…
Sidenotes in Web Design
In typography/design, ‘sidenotes’ place footnotes/endnotes in the margins for easier reading. I discuss design choices, HTML implementations and their pros/cons.
Algebraic graph calculus (2021)
We describe a graph-theoretic analogue of vector calculus. The linear operators of vector calculus (gradient, divergence, laplacian) correspond to the matrices naturally associated to graphs (incidence matrix, adjacency matrix). This analogy is useful for formalizing the discretization of some problems in image and…
Corporate legibility for software engineers
Understand corporate legibility through the lens of a software engineer.
Postmarks – A single-user, fediverse-enabled bookmarking website
The personal blog of Casey Kolderup
The Last Express
A moving train at night is an incredible place to hear stories. Like a campfire.