Compare commits

...
2 Commits
2 changed files with 13 additions and 9 deletions
+5 -6
View File
@@ -110,12 +110,11 @@ naming every card on the Monitor grid, its width and its order, and generates th
from it — the column ladder, the span clamps at each width, the row-height cap, and the from it — the column ladder, the span clamps at each width, the row-height cap, and the
compensation when a conditional card is absent. Column counts are 8/4/2/1 and spans are 1/2/4/8, compensation when a conditional card is absent. Column counts are 8/4/2/1 and spans are 1/2/4/8,
which is what lets the board re-cut itself at any width with no holes and no hand-placed card. which is what lets the board re-cut itself at any width with no holes and no hand-placed card.
Breakpoints are arithmetic over `VV_MON_CARD_FLOOR`, never chosen by eye. The row-height cap is Breakpoints are arithmetic over `VV_MON_CARD_FLOOR`, never chosen by eye, and the row-height cap
conditional on the same arithmetic: it applies only where a rung fits one screen, because a rung is conditional on the same arithmetic it applies only where a rung fits one screen.
with more rows than that scrolls the page however its rows are sized, and capping there would clip `pages/monitor.php` carries the card bodies and nothing about where they go; moving a card is
every card to buy nothing. `pages/monitor.php` carries the card bodies and nothing about where moving a line in that array. The page cross-checks the declaration against the cards that
they go; moving a card is moving a line in that array. The page cross-checks the declaration actually rendered and says so in the browser if they disagree.
against the cards that actually rendered and says so in the browser if they disagree.
**Caching.** Several endpoints serve from `$VV_CACHE_DIR` (`/tmp/varaverk/api`, tmpfs) rather than hitting live **Caching.** Several endpoints serve from `$VV_CACHE_DIR` (`/tmp/varaverk/api`, tmpfs) rather than hitting live
APIs on every page view, refreshed by `Tools/api_cache_writer.sh`. `?live=1` bypasses the APIs on every page view, refreshed by `Tools/api_cache_writer.sh`. `?live=1` bypasses the
+8 -3
View File
@@ -13,9 +13,14 @@
// Powers of two, all the way down. // Powers of two, all the way down.
// Column counts are 8, 4, 2, 1 and every span is 1, 2, 4 or 8. That pairing is what makes // Column counts are 8, 4, 2, 1 and every span is 1, 2, 4 or 8. That pairing is what makes
// the board tile with no holes at every width without a single hand-placed card: 32 span // the board tile with no holes at every width without a single hand-placed card: 32 span
// units divide into 8 columns as 4 rows, into 4 as 8 rows, into 2 as 16, into 1 as 32. // units divide into 8 columns as 4 rows and into 4 as 8. A rung of 6 or 10 columns does
// A rung of 6 or 10 columns does not divide a span of 4, which is why the previous ladder // not divide a span of 4, which is why the previous ladder needed a per-breakpoint
// needed a per-breakpoint override for every wide card and still left holes. // override for every wide card and still left holes.
//
// Below four columns the arithmetic stops being a division. Spans clamp to the column
// count, so a span-4 card contributes 2 at two columns and 1 at one, and the board is 13
// rows and then 18 rather than the 16 and 32 a naive division predicts. It still tiles
// without holes, for a different reason: a clamped card fills its row outright.
// //
// Breakpoints are arithmetic, not taste. // Breakpoints are arithmetic, not taste.
// A column count is viable exactly when the cards still fit: // A column count is viable exactly when the cards still fit: