Slate, M.D.
===========
2026-07-03
----------
This will go into a future Article (which I started writing before
*Magnifica Humanitas* released, by the way!)
> As "tools", LLM's represent an enormous potential for methods to be
mismatched to their ends, both among casuals, and among companies that should
know better. Google has decided this year that the new "advanced" translation
mode would best be implemented with the ubiquitous chatbot-type
(self-attention) transformer, and it serves to note here that Mozilla somewhat
more sanely seems to have recruited a cross-attention transformer which
is immune to prompt injection. The only explanation I can surmise for this is
that it is dogfooding for the purpose of selling hype: Google in particular
has always done PR around having ultra-generalists trained by brute force in
the most hands-off way possible (see the famous publications about Atari games,
and chess and go). For Google, the vision is apparently that any amount of
human deliberation at all, including about which AI model to use, would one day
become a ball-and-chain preventing us from ascending to the fully-automated
future. Are you convinced by the display of confidence?
2026-07-01
----------
One isn't a number; it's what numbers are made of. Saying one is a number is
like saying Jesus is a Christian.
2026-02-01
----------
### 5-D Poker
The world needs an "illegal poker" game that is truly 5-D (the D stands for
Deck).
The game is five-card draw. Two hundred and sixty cards from five decks are put
together. In the first betting phase, the first bet, and every raise, is paired
with a declaration of "legal" or "illegal", meaning that all illegal hands will
rank below all legal hands, or legal and illegal hands will rank together,
respectively. An illegal hand is one that contains duplicate cards, whether or
not the duplicate improves the hand's rank.
| Hand | Count | Count (Legal) |
| ----------------- | ---------- | ------------- |
| 5-of-a-Kind Flush | 52 | |
| 4-of-a-Kind Flush | 15600 | |
| Full House Flush | 62400 | |
| Straight Flush | 125000 | 40 |
| 5-of-a-Kind | 201500 | |
| 3-of-a-Kind Flush | 858000 | |
| Two Pair Flush | 1716000 | |
| One Pair Flush | 14300000 | |
| 4-of-a-Kind | 15100800 | 624 |
| Full House | 33727200 | 3744 |
| (Any) Flush | (33039552)| 5108 |
| Straight | 31875000 | 10200 |
| 3-of-a-Kind | 390390000 | 54912 |
| Two Pair | 617760000 | 123552 |
| One Pair | 4332900000 | 1098240 |
| High Card | 4070437500 | 1302540 |
This game introduces flush variants of every hand, including the special five-
of-a-kind flush, which is of course highly illegal.
For an example of strategy, imagine that you are dealt 9♦ 9♦ 9♦ K♦ 3♣. You
should be willing to go all-in before the draw to secure an "illegal" bid,
and then draw, replacing the 3♣, to try for a three-of-a-kind flush.
2026-01-04
----------
This script writes the date, counting backwards from the Kalends, Nones, and
Ides, to an element with `id="date"`, and writes the year as a Roman numeral to
an element with `id="year"`.
The Roman numerals are handled in an infinitely extensible way using compact
logic.
```js
"use strict";
function dateNewRoman() {
const now = new Date();
let jsYear = now.getFullYear();
const jsMonth = now.getMonth();
const jsDate = now.getDate();
let Kalendae;
let Idus;
let Nonae;
let bissextus = false;
if (jsMonth == 1) {
Kalendae = 29;
} else {
Kalendae = 31 - Number([3,5,8,10].includes(jsMonth)) + 1;
}
const oldHollowFull = [2,4,6,9].includes(jsMonth);
Idus = 13 + 2*Number(oldHollowFull);
Nonae = Idus - 8;
let ordinal;
let date;
let month = jsMonth;
if (jsDate == 1) {
ordinal = 1;
date = "Kalendis";
}
else if (jsDate > Idus) {
ordinal = Kalendae - jsDate + 1;
month += 1;
month %= 12;
if (jsMonth == 1 &&
jsYear % 4 == 0 &&
(jsYear % 100 != 0 || jsYear % 400 == 0))
{
bissextus = (ordinal == 6);
ordinal = ordinal < 6 ? ordinal + 1 : ordinal;
}
date = "Kal.";
} else if (jsDate > Nonae) {
ordinal = Idus - jsDate + 1;
date = ordinal == 1 ? "Idibus" : "Id.";
} else {
ordinal = Nonae - jsDate + 1;
date = ordinal == 1 ? "Nonis" : "Non.";
}
if (ordinal == 1) {
ordinal = ""
} else if (ordinal == 2) {
ordinal = "Prid. "
} else {
ordinal = "a.d. " +
(bissextus ? "bis " : "") +
["","x"][Math.floor(ordinal/10)] +
["","i","ij","iij","iv","v","vi","vij","viij","ix"][ordinal % 10] +
" ";
}
month = [
"Jan.","Feb.","Mar.","Apr.","Maj.","Jun.",
"Jul.","Aug.","Sep.","Oct.","Nov.","Dec."
][month];
let year = "";
let symbols = ["I","V","X","L","C","IↃ","CIↃ"];
let decimalPlace = 0;
let padding = "";
while (jsYear) {
if (decimalPlace >= 2) {padding = " ";}
year = (
jsYear % 5 == 4 ?
symbols[0] + padding + symbols[1 + Number(jsYear % 10 > 5)]
: (jsYear % 10 >= 5 ? symbols[1] : "") + padding +
(symbols[0] + padding).repeat(jsYear % 5)
) +
padding + year;
jsYear = Math.floor(jsYear/10);
symbols = symbols.slice(2);
symbols.push(symbols.at(-2)+"Ↄ");
symbols.push("C"+symbols.at(-2)+"Ↄ");
decimalPlace += 1;
}
const displayDate = ordinal + date + " " + month;
document.querySelector("#date").innerHTML = displayDate;
document.querySelector("#year").innerHTML = year;
}
```
2026-01-01
----------
### Don't Abide the Mnemonic "New Year, Sundial Slow"
Appeal instead to the visible configurations of the sky: rote memorization
is not the enemy of intuition, but excessive abstraction is.
* * *
The Sun's motion can be analyzed into a diurnal and an annual component:
the *anomaly* of the annual component is the cause of the equation of
time relating the clock to the sundial.
Imagine photographing the sky every day at midday. The Sun will appear
higher (more northerly) in the summer than in the winter, but the shape
of the path traced is not obvious. In fact, it is a narrow lemniscate or
figure-eight, with the Sun tracing the northern lobe counterclockwise, and
the southern lobe clockwise.
At the top and bottom of the figure, on the solstices, the Sun's annual motion
is due east (toward the left in the sky), but at a high declination, where the
lines of equal right ascension are more narrowly spaced. On the equinoxes,
the Sun moves most obliquely to the equator, crossing the center of the figure
both ways toward the west (the right).
So much for referring uniform zodiacal motion to the equatorial grid. Now, the
Sun's (ever eastward) zodiacal motion is fastest in the early winter, and
slowest in the early summer. By itself, this anomalous motion would appear as
an oscillation left and right throughout the year. But, knowing that it
reinforces the lemniscate motion at the winter solstice, and opposes it at the
summer solstice, the compounded effect of the motions is that the southern
lobe is actually larger, and the northern lobe is smaller.
Any question about when the Sun will rise, set, or culminate can be answered
without an ephemeris by imagining this figure in the sky.
2025-12-16
----------
One problem to do with improving the Terminal page (which is intended to be
where text-based JavaScript interactives live, nothing more) is the open-ended
array of hotkeys that attend the interface before even reaching any actual
program. Taking Command Prompt as the standard to emulate, I have found so far:
| Input | Action |
| ------------------------------- | ----------------------------- |
| Mouse Scroll | scroll by 3 lines |
| Ctrl-Up/Down | scroll by 1 line |
| Ctrl-Left/Right | bump caret to start or end |
| Shift-Left/Right | select consecutive characters |
| Shift-Up/Down | select consecutive rows |
| Enter (without selection) | run command |
| Right Click (without selection) | paste |
| Enter (with selection) | copy |
| Right Click (with selection) | copy |
2025-11-30
----------
The CSS "marquee substitute" is
[here](https://codepen.io/jamesbarnett/pen/kQebQO),
but nothing looks like the genuine article.