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:
parent
3f7d489409
commit
c1a2f36983
4 changed files with 5 additions and 5 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue