mirrors web/chat.html from the zebra-report repo. adds a
BroadcastChannel-based loopback gated on ?loopback=1 so two
tabs of a same browser can round-trip frames without zebrad,
useful for UX validation while a real PulseAudio introspector
daemon stays in progress.
yellow warning banner makes dev mode obvious when active.
single self-contained page at /zebra-report/. ports recovered web/chat.html
from git.unturf.com/engineering/unturf/zebra-report into this site's layout.
changes vs source:
* @font-face points at /css/chunkfive/ instead of bundled fonts dir,
so a single chunkfive copy serves a whole site.
* back link points at / instead of ./ which looped to self.
* "recovered rx.c" link points at git.unturf.com repo instead of ./.
what it does:
* web audio GainNode modulator drives PulseAudio sink-input volume
between MARK (0.80) & SPACE (0.20) per bit, 50 baud handshake,
higher rates after benchmark + OFFER/READY exchange.
* passphrase mode (PBKDF2 600k iter → AES-GCM-256 group key) or
pubkey mode (ECDH P-256 → AES-GCM-256 pairwise). toggle in UI.
* no chat content crosses a network packet. wireshark blind.
* RX path requires a local zebrad introspector at ws://127.0.0.1:7777,
documented inline on a page. without it, page transmits but cannot
receive.
dual use posture:
* page leads with threat model + mitigation panel citing
foxhop.net/linux-audio-ipc-attack-surface whitepaper.
* "what this does not protect against" explicit on a page.
CI publishes via .gitlab-ci.yml on master → deploy-www.sh runner.
Inserted between undefect and nuhomeschool. With 8 articles before
the homeschool pair, 2-col grid renders nuhomeschool & unhomeschool
side by side. Trademark line updated.
Beethoven Op.27 No.2 Mvt.I — scrolling piano roll with Web Audio fortepiano synthesis.
Three versions: sparse, lush, wall (61k notes from MIDI). Space to play, click to seek.
6 Graphviz diagrams, product catalog, factory economics, distributed hub
replication model. Caddy basic auth snippet for pre-market access control.
Factory link added to bottom nav on process & homeschool pages.
Sprouts expanded from 2 to 4 days (explore, measure, mix & mold, demold
& decorate). Shoots expanded from 3 to 4 days (gather, make paper,
crosslink & cure, wash & cut). Mixed-age groups now work side by side on
the same daily theme: Explore, Prepare, Transform, Finish.
Added cross-tier overview table showing all three groups per day.
Three age-tiered recipes (Sprouts 3-7, Shoots 8-12, Stalks 13-18) broken
into daily sessions with clear inputs, process, & outputs per day. Each
day's output feeds the next day's input. Adult handles heat sources only
for under-13; students 13+ handle all chemistry with supervision.