28 Sep 2026
Tags:
Programming,
C++
While reading the TeX source code (see Part 1),
I repeatedly asked myself, “What if we implemented the data structures using modern tools?
Would the design be clearer? Would it perform better?”.
Knuth took enormous pains to save memory. He also designed TeX’s dynamic memory
allocator to be compatible with the early virtual memory systems of the 1980s.
While he did his best, the resulting code is obscure compared to how we would
implement this design using modern language facilities.
more ...
03 Sep 2026
Tags:
Programming
According to the order slip tucked into my copy, I ordered TeX: The
Program on June 5, 1986. For four decades as I moved through two countries and nine mailing
addresses, that book lived in boxes and
bookshelves. I took it out several times, intending to read it, each
time setting it aside because I wanted to understand TeX’s syntax
first. So I took down its companion volume, The TeXbook, read
a few chapters in, set that aside and never returned to either one.
more ...
02 Sep 2021
Tags:
Distributed systems
Experienced performance analysts caution against taking averages of
percentiles. Gil Tene’s famous 2015 Strange Loop talk,
“How NOT to Measure Latency”,
features the tip, “You can’t average percentiles. Period.” (at
9:15). Tene offers a brief example using the 100th percentile, the
maximum, but does not provide many details. You might think this is
enough—simply never average percentiles and you’re safe, right? But
as Baron Schwartz points out,
the metric pipeline probably averages metrics before you see them,
and even displaying metrics as pixels on the screen is a form of
averaging. Why is it so bad to average percentiles and how
much information does the result retain, if any at all?
more ...
10 Jul 2021
Tags:
Distributed systems
Cloud vendors are rolling out products that place proprietary
hardware in customer’s datacentres, delivering a selection of the
vendor’s cloud services from the customer’s datacentre. These new
products require a rethinking of current guidelines regarding
tradeoffs between data residency, latency, and failure tolerance. As a
start towards this, I compare two specific products,
Amazon Outpost in 42U rack form factor
and
Oracle Dedicated Region Cloud @ Customer,
according to these criteria. What do these comparisons tell us about
the new possibilities such products create?
more ...
13 Jun 2021
Tags:
Rhetoric
I sometimes get asked whether I’m a “prescriptivist” or
“descriptivist”, or—worse still—labelled as one. This has always
struck me as beside the point. In none of my roles, not as a writer,
teacher of writing, or editor, has this distinction ever provided useful
guidance. Instead, I base my usage choices upon some combination of
assessed ambiguity to the reader, existing convention, degree of
formality, emotional impact, and other considerations. The resulting
choices might sometimes conform to prescriptive rules or existing
usage or neither. Effective writing is a balance of competing
requirements, not rote adherence to an overarching “philosophy”.
more ...