Entwicklung: die Auswertung je Person -- und elf Seiten ohne Farbe
Filipe: "dan perfektionierst du eine neue wo diagramme texte und so zu
jedem modi gemacht wird und diese kategorie kannst du entwicklung nenen."
1. DAS EIGENTLICHE PROBLEM WAR, DASS ES KEINE VERGANGENHEIT GAB.
`entwicklung_stand` hat den Schluessel (person, punkt, beurteiler) und
wird bei jeder Aenderung UEBERSCHRIEBEN -- dort richtig, eine Beobachtung
ueber einen Menschen soll aktuell sein. Nur: Damit existierte nichts,
woraus sich ein Verlauf zeichnen liesse. Nachgemessen: 43 Zeilen Stand,
NULL Zeilen Geschichte. Ein Diagramm ueber einen einzigen Zeitpunkt ist
kein Diagramm, sondern ein Balken.
Neu: `entwicklung_lauf` haengt jede Aenderung an, statt zu ueberschreiben.
Sie steht in workspace-entwicklung.js, bei der Tabelle, zu der sie
gehoert -- die Auswertung liest nur. Andersherum gaebe es einen Ring
zwischen zwei Modulen, und Ringe halten in JavaScript genau so lange,
bis jemand eine Konstante auf oberster Ebene benutzt.
KEIN ANLASS, NIE. Neben jedem "da hakt es" steht ein Satz, woran man es
gemerkt hat -- fuer ein Gespraech aufgeschrieben. Eine Chronik dieser
Saetze waere das Belastendste, was dieses Haus speichern kann. Die Spur
hat gar keine Spalte dafuer, und die Pruefung liest die TABELLE, nicht
die Ausgabe: Eine Spalte, die es gibt, wird eines Tages gefuellt.
Die Startaufnahme uebernimmt den heutigen Stand mit seinen ECHTEN Daten,
damit die Seite am ersten Tag nicht leer ist -- und zaehlt ausdruecklich
NICHT als Bewegung. Der Tag, an dem die Spur entstand, war kein Tag, an
dem 43 Dinge gleichzeitig passiert sind.
2. WAS GEZEIGT WIRD: BEWEGUNG, KEINE NOTE.
Keine Punktzahl, kein Prozentwert, kein Durchschnitt, keine Rangliste,
kein Vergleich zwischen zwei Menschen. Das ist die Recherche, nicht
Vorsicht: Ueberrechtfertigung (Deci), sozialer Vergleich senkt die
Leistung derer, die schlechter dastehen, Schwaechenfokus ebenso.
Stattdessen das progress principle (Amabile/Kramer, ~12 000
Tagebucheintraege): Sichtbarer Fortschritt ist der staerkste einzelne
Treiber. Deshalb Diagramm 1 "Was sich bewegt hat" -- zwei Richtungen um
eine Nulllinie, ein Massstab fuer beide. Diagramm 2 der Streifen (Punkt
x Monat), fortgeschrieben, aber nach 90 Tagen sichtbar verblasst.
Und die Texte in dieser Reihenfolge: was sich bewegt hat, was traegt,
erst danach was liegt.
Selbst gezeichnet, kein Diagrammpaket: 60 kB ueber die Leitung von
jemandem, der mit dem Handy im Stream steht -- und es braechte eigene
Farben neben die Hausfarben. Jede Zelle traegt ihr Zeichen als Text,
jeder Balken seine Zahl, darunter eine Legende: Die Farbe ist nie die
Auskunft.
Zwei Gesichter: Die Leitung sieht die Karten, ein Modi ausschliesslich
die Bewegung in der eigenen -- ohne Namen, ohne Anlass, ohne Streifen.
3. NEBENBEFUND, GROESSER ALS ERWARTET: ELF SEITEN OHNE FARBE.
Der Umbau von heute frueh heisst "Jede Seite traegt die Farbe ihrer
Kachel". Nachgemessen traf das auf 18 von 34 Seiten zu. Elf Seiten mit
echter Kachel gingen leer aus -- ausgerechnet die von Team Dogi:
befinden, bewerben, bewerbungen, entwicklung, hilfe, rechte, talente,
teamlage, teilen, treff-moderation, treff-regeln, unsere-seiten.
Der Grund: `zuSeite()` sucht nur in `Bereiche.GRUPPEN`, und dort stehen
ausschliesslich die Kacheln der Agentur. Die von Team Dogi liefert der
Server (`ich.bereiche`, `ich.bereiche_zusatz`). Auffallen konnte das
nicht -- eine Seite ohne Farbe sieht aus wie eine, die eben keine hat.
kopf.js faerbt jetzt zweimal: sofort aus GRUPPEN (Agenturseiten ohne
Flackern wie bisher), und noch einmal aus den Serverkacheln, sobald
`werZeigen` sie bringt. Nur, wenn beim ersten Mal nichts gefunden wurde.
pruef-buehne misst den Kontrast an echten Bildpunkten und kannte diese
zwoelf Seiten nicht. Jetzt stehen sie in der Liste; ihre Frist waechst
mit der Laenge, statt als feste Zahl irgendwann zu reissen. Gemessen
fuer werdegang.html: 4,83:1 am Computer, 6,22:1 am Handy.
4. TON 38 SAH FREI AUS UND WAR ES NICHT.
Erster Anlauf war Ton 38, weil 37 die hoechste Nummer in workspace.js
ist. Gezaehlt in start.css sind es 39, alle vergeben. Genau davor warnt
das Farbwerkzeug im eigenen Kopf ("Ton 22, weil er frei AUSSAH").
Dabei aufgefallen: Die zwei Kacheln von heute Nacht wurden ohne das
Werkzeug gesetzt. Ton 39 lag 0,0362 von Ton 15 entfernt -- der engste
Abstand im ganzen Haus, zwei praktisch gleiche Cyan-Toene. Filipe dazu
mehrfach: "keine die sich irgendwie aehnlich sind".
Neues Werkzeug `tools/kachel-farbe-einzeln.mjs`: zieht EINE Farbe nach,
ohne die anderen anzufassen. Das grosse Werkzeug haette alle 40 neu
gefaerbt -- jede Kachel im Haus, ungefragt. Es bricht ab, wenn es nicht
alle Toene lesen kann: Der erste Anlauf las 31 von 40, weil einstellige
Nummern mit ZWEI Leerzeichen dastehen, und rechnete froehlich weiter.
Ergebnis: kleinster Abstand 0,0362 -> 0,0840, durch Aendern von zwei
Kacheln, die es erst seit gestern Nacht gibt.
5. anruf-probe.html lud `basis.css` und `kopf.css` -- beide gibt es
nicht. Ausgerechnet dort faellt es nicht auf, weil die Seite ihre eigene
Stilangabe im Kopf hat. pruef-struktur war deshalb rot (5 Befunde) und
ist jetzt gruen.
GEMESSEN: pruef-werdegang 95/0 (neu), pruef-entwicklung 43/0,
pruef-befinden 75/0, pruef-rechtetafel 19/0, pruef-zwischenspeicher 21/0,
pruef-start-ansicht 0 Fehler, pruef-struktur 0 Fehler (vorher 5),
pruef-buehne fuer werdegang.html 0 Fehler.
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+57
-4
@@ -48,6 +48,56 @@ function dunkelsterStopp(backgroundImage) {
|
||||
}
|
||||
const DUNKELSTER_QUELLE = dunkelsterStopp.toString();
|
||||
|
||||
/* ZWOELF SEITEN KAMEN AM 19.09.2026 DAZU -- und zwar nicht, weil sie neu
|
||||
sind, sondern weil sie bis dahin GAR KEINE Buehne hatten.
|
||||
|
||||
Der Umbau vom 19.09. frueh heisst "Jede Seite traegt die Farbe ihrer
|
||||
Kachel". Nachgemessen traf das auf 18 von 34 Seiten zu: `zuSeite()`
|
||||
sucht nur in `Bereiche.GRUPPEN`, und dort stehen ausschliesslich die
|
||||
Kacheln der AGENTUR. Die Kacheln von Team Dogi und vom Treff liefert
|
||||
der Server -- die kannte die Stelle nicht. Seit der Reparatur in
|
||||
kopf.js bekommen auch sie Ton UND Buehne, und damit steht auf ihnen
|
||||
zum ersten Mal Text ueber einem Foto. Genau das misst diese Datei.
|
||||
|
||||
NUR EINE TEILMENGE LAUFEN LASSEN: `BUEHNE_SEITEN=werdegang.html`.
|
||||
Ohne die Angabe laeuft die ganze Liste -- das dauert spuerbar und
|
||||
gehoert deshalb in einen abgesprochenen Lauf, nicht in jede
|
||||
Zwischenpruefung. */
|
||||
const ALLE_SEITEN = [
|
||||
"start.html", "uebersicht.html", "personen.html", "content.html",
|
||||
"aufgaben.html", "kalender.html",
|
||||
/* Die zwoelf ohne Buehne, bis zum 19.09.2026: */
|
||||
"werdegang.html", "entwicklung.html", "talente.html", "befinden.html",
|
||||
"hilfe.html", "rechte.html", "teamlage.html", "teilen.html",
|
||||
"bewerbungen.html", "treff-moderation.html", "treff-regeln.html",
|
||||
"unsere-seiten.html",
|
||||
];
|
||||
const SEITEN = process.env.BUEHNE_SEITEN
|
||||
? process.env.BUEHNE_SEITEN.split(",").map((s) => s.trim()).filter(Boolean)
|
||||
: ALLE_SEITEN;
|
||||
/* DRITTER AUSGANG: Wer sich vertippt, soll es merken, statt eine
|
||||
Prüfung über null Seiten für bestanden zu halten. */
|
||||
{
|
||||
const unbekannt = SEITEN.filter((s) => !ALLE_SEITEN.includes(s));
|
||||
if (!SEITEN.length || unbekannt.length) {
|
||||
console.log("ABBRUCH: unbekannte Seite(n) in BUEHNE_SEITEN: " + unbekannt.join(", "));
|
||||
process.exit(2);
|
||||
}
|
||||
}
|
||||
console.log(`Gemessen werden ${SEITEN.length} von ${ALLE_SEITEN.length} Seiten.`);
|
||||
|
||||
/* WIE LANGE DAS DAUERN DARF -- aus der Listenlaenge, nicht aus dem Kopf.
|
||||
|
||||
Sechs Seiten auf zwei Bildschirmgroessen brauchten bisher knapp
|
||||
220 Sekunden, also rund 18 s je Seite und Groesse. Aufgerundet auf 22,
|
||||
damit ein langsamer Lauf nicht faelschlich als Fehlschlag endet.
|
||||
|
||||
Eine feste Zahl waere hier eine Zeitbombe: Mit den zwoelf neuen
|
||||
Seiten waere die alte Frist gerissen, und der Abbruch saehe aus wie
|
||||
ein Befund. */
|
||||
const SEITEN_ZEIT = SEITEN.length * 2 * 22_000;
|
||||
console.log(`Zeitrahmen: ${Math.round((100_000 + SEITEN_ZEIT) / 1000)} s.`);
|
||||
|
||||
const ordner = mkdtempSync(join(tmpdir(), "ws-buehne-"));
|
||||
process.env.WORKSPACE_DB = join(ordner, "workspace.db");
|
||||
process.env.PORT = "4193";
|
||||
@@ -66,10 +116,14 @@ await import("./index.js");
|
||||
richtig fuer den Betrieb, fatal fuer eine Pruefung. Ohne diese
|
||||
Zeile bleibt der Prozess nach einem Fehler ewig stehen, weil der
|
||||
Server ihn am Leben haelt (siehe helfer-notbremse.mjs). */
|
||||
notbremse(480_000, "pruef-buehne");
|
||||
notbremse(120_000 + SEITEN_ZEIT, "pruef-buehne");
|
||||
await new Promise((r) => setTimeout(r, 700));
|
||||
const BASIS = "http://127.0.0.1:4193";
|
||||
setTimeout(() => { console.log("ABBRUCH"); process.exit(1); }, 220_000).unref?.();
|
||||
/* Die Frist waechst mit der Liste: 220 s reichten fuer sechs Seiten.
|
||||
Eine feste Zahl waere hier eine Zeitbombe -- die zwoelf neuen
|
||||
haetten sie gerissen, und der Abbruch saehe aus wie ein Befund. */
|
||||
setTimeout(() => { console.log("ABBRUCH: Zeit ueberschritten"); process.exit(1); },
|
||||
100_000 + SEITEN_ZEIT).unref?.();
|
||||
|
||||
let fehler = 0;
|
||||
const ok = (b, t) => { console.log((b ? " ok " : " FEHL ") + t); if (!b) fehler++; };
|
||||
@@ -109,8 +163,7 @@ const browser = await chromium.launch();
|
||||
/* Der Kalender kam am 01.09.2026 dazu -- er bringt die meisten neuen
|
||||
Farbflächen mit (vier Arten, Feiertagsfärbung, Anlassmarken), und
|
||||
genau dort entscheidet sich, ob der hellere Hintergrund noch trägt. */
|
||||
const SEITEN = ["start.html", "uebersicht.html", "personen.html", "content.html",
|
||||
"aufgaben.html", "kalender.html"];
|
||||
|
||||
|
||||
for (const [breite, hoehe, wie] of [[1440, 950, "Computer"], [390, 780, "Handy"]]) {
|
||||
console.log(`\n=== ${wie} (${breite}x${hoehe})`);
|
||||
|
||||
Reference in New Issue
Block a user