Wall of People Groups: comments state what was measured without naming who measured it

Five comment lines in the Wall's sources named a fleet agent as the measurer. They now keep the
measurement and drop the name. Comments only; no behaviour changes.
This commit is contained in:
Doxa Maps 2026-10-01 00:17:18 +00:00
parent 3f7d489409
commit c1a2f36983
4 changed files with 5 additions and 5 deletions

View file

@ -3,7 +3,7 @@
* check-wall-no-bg-photos — the Wall's store never downloads photos on its own. Headless.
*
* Until 2026-09-29 the store "tested" every photo after loading the list: 932 photos, 132 MB, on every
* visit, whether or not anyone zoomed in (rega measured 108–132 image requests in the first 60 s; 0
* visit, whether or not anyone zoomed in (measured: 108–132 image requests in the first 60 s; 0
* after the fix). The canvas loads only the photos in view, so the store must load none. This runs the
* REAL store (through Vite, so @map resolves) against a trimmed copy of the live list
* (fixtures/pray-list-sample.json), with fetch stubbed to serve it and Image stubbed to COUNT every

View file

@ -148,7 +148,7 @@ const ICONS = {
* two cannot drift. Sizes in points, lengths in inches.
* · the reference prints at the verse's size × 0.8, never below MIN_READABLE_PT (a reference that can't
* be read is noise); verse and reference are only printed on sizes whose verses are readable;
* · a long name shrinks to fit its line (bold ≈ 0.72 em a character: measured wide on purpose, rega found
* · a long name shrinks to fit its line (bold ≈ 0.72 em a character: measured wide on purpose, since
* 0.68 left "Kummara, Kumbara" 2 px over), down to MIN_READABLE_PT (or the preset's own name size if that
* is smaller); still too long, it wraps, at the size that fits two lines, or more (up to four) at the floor.
*/
@ -163,7 +163,7 @@ export function cardText(plan, name) {
const words = String(name).split(/\s+/).filter(Boolean), longest = Math.max(1, ...words.map((w) => w.length))
const pt = wrap ? Math.max(floor, Math.min(nPt, (2 * inner) / (len * EM), inner / (longest * EM))) : Math.min(nPt, want)
// Lines counted the way the browser breaks them: whole words, greedily (a word longer than a line is cut), with
// 15% slack on the character width (rega measured bold names wider than the plain sum). Up to 4 lines: a long
// 15% slack on the character width (bold names measured wider than the plain sum). Up to 4 lines: a long
// name at the floor size ("Northern Conchucos Ancash Quechua") needs 4, and the photo gives up the height.
const lines = wrap ? Math.min(4, wrapLines(words, inner / (EM * pt * 1.15))) : 1
return {

View file

@ -122,7 +122,7 @@ body {
font-weight: 500;
}
/* PHONE (rega, 390×844): the header was one row, so the title wrapped to five lines and the poster-size
/* PHONE (390×844): the header was one row, so the title wrapped to five lines and the poster-size
select and the Bless/Social toggle ran off the right edge, unreachable. On a phone the title takes one
short line and the controls wrap onto as many rows as they need, every one on screen. */
@media (max-width: 640px) {

View file

@ -1,7 +1,7 @@
/**
* wallCanvas.js — the Wall of People Groups drawn on ONE <canvas> instead of an SVG of ~36,000 nodes.
*
* Measured before (rega, main 16ff7e719, all 2,107 cards): 36,247 DOM nodes (36,214 SVG), a 0.5-1.6 s
* Measured before (main 16ff7e719, all 2,107 cards): 36,247 DOM nodes (36,214 SVG), a 0.5-1.6 s
* long task on EVERY wheel tick, 41.7 s to zoom out to the whole wall, p95 350 ms frames when panning
* it. The JS heap was only 8.3 MB: the cost was the SVG DOM being re-laid-out and re-painted per tick.
* Here each frame draws only the cards in view, in world coordinates, with level of detail: