Entwicklungstagebuch · Teil 20

Als die Prüfung ihre eigene Antwort abschrieb

Entwicklungstagebuch, Teil 20 · 24. August 2026

Entwicklungstagebuch, Teil 20 · 24. August 2026

Zehn Punkte weg vom Register, sechs Lieferungen auf den Servern. Das ist der schöne Teil.

Der lehrreiche ist ein anderer. Dreimal an diesem Tag hat eine Prüfung bestätigt, was erwartet worden war — ohne irgendetwas gemessen zu haben. Und jedes Mal sah das Ergebnis besser aus als eine echte Messung.

Der Kasten, den ich falsch erwischt habe

Am Nachmittag war eine Lieferung für pelaron.de oben: siebzig Dateien, ein neues Stylesheet, eine mitgelieferte Schrift. Wie immer kamen zwei Kästen — oben der Befehl zum Kopieren, darunter die erwartete Ausgabe zum Vergleichen.

Am Terminal kam eine Ausgabe heraus, in der jede einzelne Zahl stimmte. Alle Prüfsummen, alle Größen, alle Zähler.

Sie war wertlos. Kopiert hatte ich den zweiten Kasten.

Bash hatte die Sollwerte als Befehle auszuführen versucht — daher hinter jeder Zeile ein command not found, und die Eingabezeile stand noch im Heimatverzeichnis statt im angelegten Prüfordner. Zwei Kleinigkeiten am Rand, die nichts mit den Zahlen zu tun hatten, waren das Einzige, was den Unterschied verriet.

Zwei gleich aussehende Kästen untereinander, beide grau hinterlegt, beide voller Dateinamen und Ziffern. Wer den falschen erwischt, bekommt eine Bestätigung geschenkt.

Daraus ist die dreiundzwanzigste Arbeitsregel geworden, und sie ist kurz: Ein Prüfbefehl geht allein hinaus. Die Sollwerte kommen erst, nachdem die Ausgabe da ist. Dazu gibt der Befehl seither seinen eigenen Standort aus — Ich bin in: … als erste Zeile. Eine Messung, die nicht sagt, wo sie gemessen hat, ist dieselbe Falle in Grün.

Zwei Sollzahlen, geschätzt statt gezählt

Am Vormittag hieß es zu einer Lieferung: „und darunter achtmal eine 1.“ Es waren sieben Zähler. Der achte gibt gar keine Zahl aus, sondern einen Namen.

Am Nachmittag dasselbe noch einmal: „Source Serif 4 kommt dreimal in der Stildatei vor.“ Gemessen waren es vier — die Erwähnung in der Kommentarzeile war übersehen worden.

Beides ist folgenlos geblieben, weil mir die Abweichung aufgefallen ist statt dass ich sie überlesen hätte. Aber der Mechanismus ist derselbe wie beim Kasten oben, nur an der anderen Seite der Gleichung: Wer die Erwartung schätzt, hat beim Vergleich nichts in der Hand. Eine Abweichung heißt dann nicht mehr „die Datei ist falsch“, sondern „irgendetwas von beidem ist falsch“.

Und das ist keine Prüfung. Das ist ein Gefühl.

Prüfsummen aus einer Zeit, als die Frage noch anders lautete

Die dritte Sorte hat die meiste Zeit gekostet. Für dieselbe Lieferung waren morgens die Prüfsummen aller vier umgebauten Seiten notiert worden. Am Mittag kam die Entscheidung für die mitgelieferte Schrift dazu, und die änderte die Stildatei. Deren Prüfsumme steht in jeder der siebenundsechzig Seiten als Versionsnummer hinter dem Dateinamen.

Ein Stempellauf, alle Seiten angefasst, alle Prüfsummen neu. Nur die Notiz war von morgens.

Die Größen stimmten weiter, denn der Stempel ist immer gleich lang. Die Prüfsummen nicht. Ich hätte vier Abweichungen gefunden, die keine Fehler waren — der lästigste Fall, weil er Vertrauen kostet, ohne einen Mangel zu zeigen.

Die Regel dazu stand längst im Heft. Die Lücke war nicht das Messen, sondern die Reihenfolge. Also ein Zusatz: Die Prüfsummen einer Lieferung werden erst gemessen, wenn keine Datei des Pakets mehr angefasst wird — und zwar am gepackten Ordner, nicht am Arbeitsstand.

Ist es da? war die falsche Frage

Elf Zeichen in der App sollten durch gezeichnete Symbole ersetzt werden. Der Prüflauf danach meldete brav: „Bild an allen zehn Stellen vorhanden: ja.“

Stimmte. Das Bildschirmfoto zeigte Symbole von zweiundsiebzig Pixeln, wo zweiundzwanzig hingehörten. Eine Zeichnung ohne Maßangabe füllt ihren Behälter aus — im Menü fällt das nicht auf, weil dort eine Regel die Größe setzt; in der unteren Leiste gibt es diese Regel nicht.

Die Prüfung hatte gefragt: ist es da? Die Frage wäre gewesen: wie sieht es aus?

Dreimal hat dasselbe Messen den Tag gerettet

Damit das kein Klagelied wird. Dieselbe Haltung hat heute dreimal eine Antwort umgedreht, bevor Arbeit hineinfloss.

Ein Umbau, der null Millisekunden gebracht hätte. Offen stand, gut dreißig Module vom starren Zeitplan auf den neuen Startpfad umzustellen. Vor dem Bauen gemessen, wann die Startfunktionen tatsächlich laufen: Der Startpfad hat einen Anker bei tausend Millisekunden; wer sich mit einer kürzeren Frist anmeldet, wird ohnehin vorher über seine eigene Schranke abgerufen. Bei vierhundert Millisekunden lief die Funktion nach 429 — mit und ohne Umstellung. Einunddreißig Dateien anzufassen hätte exakt nichts geändert.

Zweiundvierzig Zeichen, von denen dreizehn übrig blieben. Im Register stand seit Tagen, dass zweiundvierzig Sonderzeichen in hundertsechzig Fundstellen vom Betriebssystem kommen. Das war eine Zählung im Quelltext. Gemessen im laufenden Programm — alle zwanzig Ansichten geöffnet, jeden Textknoten durchgegangen — waren es dreizehn Zeichen an dreiundzwanzig Stellen. Der Punkt schrumpfte auf ein Viertel, bevor die erste Zeile geschrieben war.

Eine Schriftfrage, die keine war. Vier Stellen der Website standen in Georgia, das es auf Android nicht gibt. Es lag schon ein sauberer Schriftstapel mit ausgeschriebenen Ersatzfamilien fertig da — und wurde wieder verworfen, denn die Gattung „serif“ löst auf denselben Geräten ohnehin in dieselben Familien auf. Vierundsechzig Dateien angefasst, nichts geändert.

Was wirklich passiert, zeigte erst die Messung an einem einzigen Wort. Das griechische πέλαγος, hundertfünfzehn Pixel groß, nur die Schrift getauscht:

DejaVu Serif, mit Namen angefordert        441px
der Georgia-Stapel (Georgia fehlt)         328px
serif, generisch                           328px
eine erfundene, nirgends vorhandene Schrift 328px

Bis zu vierunddreißig Prozent Unterschied — und die letzte Zeile ist der eigentliche Befund.

Ohne Georgia ist das Ergebnis von dem einer Schrift, die es gar nicht gibt, nicht zu unterscheiden. Das Gerät entscheidet, nicht die Seite.

Die Antwort war dann kein besserer Stapel, sondern eine mitgelieferte Schrift: Source Serif 4, Regelschnitt, Latein und Griechisch, achtundzwanzigtausend Byte. Vorher gemessen, welche Schnitte die vier Stellen überhaupt brauchen — alle vier stehen auf Normalgewicht und aufrecht. Ein fetter oder kursiver Schnitt wäre totes Gewicht gewesen.

Zwei Bauformen, die eine geworden sind

Der größte Umbau des Tages hatte damit nichts zu tun und passt trotzdem dazu. Acht Reiterleisten in der App liefen über zwei verschiedene Konstruktionen — sieben über die eine, die Technikleiste über eine eigene. Beim Nachmessen zeigte sich: Es waren nicht zwei Schreibweisen für dasselbe, sondern zwei verschieden gute Leisten. Die eigene hatte keine Pfeiltastenbedienung, merkte sich den gewählten Reiter nicht über das Schließen hinaus und schrieb die Adresszeile nicht mit. Dazu ein Widerspruch, den vorher niemand bemerkt hatte: Im Markup war ein Reiter als offen markiert, im Skript ein anderer — und das Skript gewann.

Dieselbe Geschichte auf der Website. Vier Seiten hatten ein eigenes Stylesheet, eine eigene Kopfleiste, ein eigenes Logo im Quelltext und ein eigenes Menüskript. Sechsundzwanzig Kilobyte doppeltes CSS sind dabei verschwunden. In einer der Dateien stand der Grund im eigenen Kommentar:

„Dies ist eine Zwischenlösung. Punkt 13 des Aufgabenhefts führt die vier Seiten auf die gemeinsame Vorlage zurück; danach fällt diese Datei weg.“

Sie ist heute weggefallen.

Was ich mitnehme

Die drei Fälle vom Anfang sehen verschieden aus und sind derselbe: eine Prüfung, deren Antwort schon feststand, bevor sie gestellt wurde. Einmal, weil die Antwort abgeschrieben wurde. Einmal, weil die Erwartung geraten war. Einmal, weil sie aus einer Zeit stammte, in der die Frage noch anders lautete.

Das Tückische ist, dass alle drei gut aussehen. Ein Fehler meldet sich. Eine Bestätigung, die keine ist, meldet sich nicht.

Der Satz hieß: zuerst messen, dann behaupten. Er heißt jetzt: zuerst messen, dann behaupten — und vorher nachsehen, ob die Messung überhaupt gemessen hat.

Nachtrag vom 28. August: Regel 23 ist die, die von allen siebenundzwanzig am häufigsten gebraucht wurde. Seit dem 24. August kommt jeder Prüfbefehl allein, nennt seinen Standort und enthält kein Ausrufezeichen. Und trotzdem ist mir heute noch dreimal eine Prüfung untergekommen, die nichts gemessen hat und trotzdem eine Zahl ausgab. Die Regel verhindert das Abschreiben. Sie verhindert nicht, dass man die falsche Frage stellt.

← Zurück zum Entwicklungstagebuch

PELARON entsteht an Bord der Bluebaerry und am Schreibtisch in Erfurt. Fragen, Widerspruch und Fehlermeldungen sind willkommen.