On 2025-06-25, Jacob Siehler tooted that there are exactly 100 bilaterally symmetric regions you can build out of a complete set of the five free tetrominoes.| Arthur O’Dwyer
Over the past few years, I’ve noticed a pattern in several LWG issues: In library clauses, CTAD and list-initialization are never helpful and are sometimes harmful, in the sense that they create LWG issues to triage and fix. I’d noticed for several years “this happens a lot,” but I’d never collected all my anecdotes into one list. I’m starting that list now. As Wikipedia says, “This list is incomplete”; please let me know if you see any I’ve missed.| Arthur O’Dwyer
Around New Year’s, while our book club was reading Dante’s Divine Comedy, I serendipitously happened across a reference in Douglas Hofstadter’s Le ton beau de Marot (page 125) to a book of poetry by Giuseppe Varaldo titled All’alba Shahrazad andrà ammazzata (“Shahrazad Shall Hang at Dawn”). Hofstadter writes: “In his astonishing tour de force of a book, Varaldo takes roughly fifty classics of Western literature and synopsizes each one in a perfectly constructed classical Italia...| Arthur O’Dwyer
From Alessandro Torri’s preface to the first volume of L’Ottimo Commento as edited by himself and others of the Accademia della Crusca (1827):| Arthur O’Dwyer
In C++, there’s often multiple ways to refer to the same entity: aliases, inherited names, injected names, names that differ in qualification… Usually, if an entity has multiple names, which one you use won’t matter: you can use any of those synonymous names and the compiler won’t care. But each entity always has a uniquely “truest” name, privileged above all the other ways to refer to it. In some situations, in order to do a thing with an entity, you do actually need to call it b...| Arthur O’Dwyer
My grandmother’s grandfather was David Celyddon Phillips (1848–1915), Welsh-born minister and poet, known by the bardic name “Celyddon.” Recently I learned that my second cousin David M. Phillips Jr. has in his possession a leatherbound, hand-written copy of D. C. Phillips’ long narrative poem The Promised One, or, Jesus of Nazareth — previously unpublished as far as either of us know, despite that one of Celyddon’s lengthy obituaries mentions:| Arthur O’Dwyer
On StackExchange, someone asks why programmers talk about “calling” a function. Several possible allusions spring to mind: Calling a function is like calling on a friend — we go, we stay a while, we come back. Calling a function is like calling for a servant — a summoning to perform a task. Calling a function is like making a phone call — we ask a question and get an answer from outside ourselves. The true answer seems to be the middle one — “calling” as in “calling up, summ...| Arthur O’Dwyer
Via Hacker News: “Making Explainable Minesweeper” (July 2025). By “explainable Minesweeper,” the blogger means that we generate a Minesweeper level that is guaranteed solvable by perfect play — that is, for which the solution never requires “guessing” at an unknown cell (and possibly losing the game at that point). The blogger describes a procedure for creating partially explainable levels: simply generate a random level, then simulate solving it with a computer player that know...| Arthur O’Dwyer
About 15 years ago I was active with the Santa Barbara Jugglers Association (which still exists and still meets up by UCSB in Isla Vista). They’re particularly known for club-passing in moving patterns. We’re talking things like Havana and Shooting Star. (I don’t think either of those patterns came out of Isla Vista, mind you. I don’t know where either of them did come from. The Madison Area Jugglers’ Pattern Book credits Shooting Star to “Bryan Olson in 1993.”)| Arthur O’Dwyer
4x4x4 Tic-Tac-Toe is played on a 4x4x4 cube, containing 64 cells. The first player to get 4 of their own symbols in a row (in any orthogonal or diagonal direction, including the cube’s space diagonals) wins.| Arthur O’Dwyer
The other day I ran across some code like this: template struct Holder { T t_; explicit Holder() : t_() {} Holder(const Holder& rhs) : t_(rhs.t_) {} ~~~~ }; This was in an old codebase, which until recently had still been using GCC's `-Weffc++` to enforce C++98 idioms such as the explicitly non-defaulted copy constructor depicted above. > If you're still using `-Weffc++`, please, > [stop using it!](https://github.com/google/googletest/issues/898#issuecomment-332582070)| Arthur O’Dwyer
Here’s a simple and trivially relocatable MoveOnlyCallable type. This is like std::move_only_function<int(int) const>, except that the “take int and return int” part is hard-coded, for simplicity. (Godbolt.)| Arthur O’Dwyer
Back in 2021, I wrote that “Semantically ordered arguments should be lexically ordered too.” Two minor updates in that area, which are large enough to deserve a post of their own.| Arthur O’Dwyer
In October’s Overload magazine Chris Oldwood muses on Italo Calvino’s definition of what makes a book a “classic” (“Why Read the Classics?”, 1986). Calvino’s essay suggests fourteen different ways of describing the elephant that is “a classic,” including:| Arthur O’Dwyer
The other day I learned a new place where adding or removing noexcept can change the performance of your program: GNU libstdc++’s hash-based associative containers change the struct layout of their nodes depending on the noexceptness of your hash function. This is laid out fairly clearly in the docs; it’s simply bizarre enough that I’d never thought to look for such a thing in the docs!| Arthur O’Dwyer