160. Kiosek kreslí to, co repozitář dokazuje, ze zdrojů, které na to už odpovídají, a kreslí to pomocí p5 jen tam, kde jej build má
Kontext
Observatoř (ADR 0158) má osm scén a z nich čtyři čtou mesh: na veřejném webu a na každém stroji, který mesh neběží, jsou nedostupné a říkají proč. Displej ponechaný běžet na zdi pak ukazuje hrstku scén a dlouhý seznam důvodů. Vlastník požádal o více obrazovek na /ui/kiosk/, všechny odvozené a inferované, kreslené pomocí p5.js, husté a krásné, na jeden pohled.
Repozitář už bez meshe odpovídá na otázky, kvůli nimž taková stěna existuje: která z jeho pravidel byla dokázána a která jen jmenovala důkaz, která tvrzení jeho dokumentů mají test, který proběhl, co měří jeho veřejný povrch, co smí v plánu běžet současně a zda je publikovaná instalace celistvá. To jsou schopnosti, které už volá každý povrch (rules.report, evidence.report, quality.report, plan.waves, distribution.status, capabilities.list, plan.roadmap). Jsou to také fakta, která čtenář nejvíc potřebuje vidět a nejsnáze si je splete: pravidlo vykreslené jako procházející, protože nic neřeklo opak, je selhání, jemuž má ADR 0158 zabránit, jen v hezčím médiu.
p5 je už rozhodnutím tohoto repozitáře: připnutá, vendorovaná knihovna, kterou stránka načítá, jen když něco kreslí (ADR 0012, ADR 0135). Observatory ji nepoužilo; kreslí na prosté plátno a aktiva Cockpitu a UI mají každé jeden způsob, jak nést knihovnu, která není commitnutá.
Rozhodnutí
-
Sedm dalších scén, každá funkcí odpovědi jedné schopnosti. Přidávají se do jediného inventáře ADR 0158, bod 3, a nikam jinam: žádná schopnost, žádný transport, žádné úložiště.
scéna čte značka je proof, Proof Latticerules.reportjedno pravidlo, vybarvené slovem stavu, které určila zpráva o důkazech claims, kniha tvrzeníevidence.reportjeden druh tvrzení, pruh rozdělený podle toho, co důkazy říkají o jeho tvrzeních surface, Surface Atlasquality.reportpočet, který změřila zpráva o kvalitě: operace na povrch, zdokumentované, s příkladem a otestované waves, Wave Frontplan.wavesjedna vlna plánu, sloupec rozdělený podle zaznamenaného stavu jeho úkolů matrix, Release Matrixdistribution.statusjedna kontrola publikované instalace, ve slově, které rozhodla registry, Registry Treemapcapabilities.listjeden modul registru, tak velký jako schopnosti, které deklaruje ladder, Milestone Ladderplan.roadmapjeden milník, pruh rozdělený podle zaznamenaného stavu jeho úkolů -
Spočítáno, nikdy odhadnuto. Číslo na těchto scénách je počet, který ohlásil zdroj, nebo součet takových počtů, který model uvádí. Scéna, jejíž zdroj nedrží nic k vykreslení, je nedostupná s důvodem zdroje (ADR 0158, bod 5) a neznámé nebo neprokázané slovo se kreslí jako to slovo, v tlumeném tónu, ne jako průchod. Kde zdroj hlásí víc položek, než displej unese, scéna seskupuje, místo aby zkracovala, a říká, kolik jich nakreslila.
-
p5, kde ho build má, prostý výrok, kde ne. Scény se kreslí p5 v instance módu na vlastní plochu, kterou director skládá na svou scénu: jedny hodiny, jedna rotace, jeden fade a jedna sada stavových slov slouží každé scéně a prvních osm scén se nepřepisuje. p5 je připnutá knihovna, kterou
scripts/cockpit-assetskopíruje doshare/ui/vendor/, necommitnutá, líně načítaná z adresy, kterou stránka jmenuje. Checkout, který byl postaven bez ní, tyto scény na scéně vykreslí jako „p5 is not built here“ a stejná fakta si ponechá v tabulce vedle. Nic se místo toho nekreslí. -
Jeden vzhled. Scény berou své barvy z tokenů stylu přes vlastní pomocníky ředitele a tóny stavových slov z jedné tabulky, takže totéž slovo má stejnou barvu na každé scéně i v Cockpitu.
-
Pohyb je dekorace a říká se to. Buňka, která dýchá, tak činí v závislosti na svém názvu, ne na stavu; oblouk končí tam, kde říká jeho počet, a hýbe se jen odlesk na něm. Omezený pohyb vykreslí každou scénu statickou.
Důsledky
- Veřejný web ukazuje patnáct scén, z nichž jedenáct má na runneru CI něco pravdivého k nakreslení, místo pěti, a sedm nových jsou ty, o kterých čtenář nejvíc chce pochybovat.
- Každá nová scéna čte schopnost, na kterou se lze zeptat i z příkazové řádky, API a MCP, takže každou značku lze tam ověřit.
- p5 má zhruba megabajt a načítá ho jen tato obrazovka, jen když se zobrazí scéna p5. Displej, který se k ní nikdy nepřepne, ji nikdy nenačte.
- Nová schopnost, která hlásí počet, je nová scéna deklarací a modelem. Scéna, která chce číslo, které žádná schopnost nehlásí, čeká na schopnost, ne na údaj.
- Zdroje
rules.reportaevidence.reportse počítají asi dvě sekundy a ptá se jich při každém sestavení stránky; čtou se jako poslední načtené hodnoty (ADR 0142), takže na ně obrazovka nečeká.
Zamítnuté alternativy
Překreslení prvních osmi scén pomocí p5. Dalo by to displeji jeden renderer a stálo by to přepis scén, které drží případ 3011 a pozornost člověka kvůli jinému úkolu, v souboru, který mění jiný worker.
Druhá stránka pro nové scény. Kiosk, spořič obrazovky a obrazovka jsou jeden displej s různým chromem (ADR 0158); dvě stránky by se rozešly do týdne.
Commitnout p5. Je to megabajt, který nic na kritické cestě nepotřebuje, a pravidlem repozitáře pro takovou knihovnu je, že se sestavuje, necommituje.
Ověření
Případ 3014 (the_kiosk_draws_what_the_repository_proves) na sestaveném executable dokazuje, že sedm scén je v inventáři se svými zdroji, že model každé je počet, který odpověděl její zdroj (orákulum počítá odpověď téže schopnosti znovu), že scéna se selhavším zdrojem říká proč, že stránka jmenuje skript scén a kreslicí knihovnu a že kioskový preset se od obrazovky stále liší jedním atributem. Jednotkové testy v Rustu drží modely na sestavených odpovědích, včetně prázdných. Co může ukázat jen prohlížeč, tedy že scény jsou vůbec nakresleny, je důkaz snímků obrazovky, které I2698 zaznamenává.