From 3d85488d7c90aebc7f22a1fb4b3c94ba18e46332 Mon Sep 17 00:00:00 2001 From: dschlueter Date: Tue, 8 Sep 2026 19:13:34 +0200 Subject: [PATCH] Dokumentation nachgezogen - und dabei den neunten Fund gemacht Der Leser-Wegweiser Operations_Research_mit_Python_Version_04/README.md, die Datei, die Leser als erstes oeffnen, beschrieb noch die Struktur der Version 03: * 12 der 15 Kapitelnummern falsch. "20_Lineare_Programmierung.md | 4" - es ist Kapitel 5. Bei den Finanzkapiteln lag die Abweichung bei sieben: README 11, tatsaechlich 18. * 8 der 23 Kapitel fehlten ganz (Metaheuristiken, Spaltengenerierung, Mehrziel, Predict-then-Optimize, Testing und drei weitere). * 93_Anhang_Spickzettel.md fehlte in der Anhangtabelle; der Bauabschnitt nannte dreimal build_version_03.py statt _04 und beschrieb --html als "Single-Page-HTML", obwohl es laengst eine mehrseitige Website erzeugt. Dieselbe Regel wie acht Mal zuvor, dieselbe Behandlung: Die Tabelle wird erzeugt, nicht korrigiert. schreibe_kapiteltabelle() ersetzt den Block zwischen den KAPITELTABELLE-Marken aus der Struktur, die baue_seiten_registry() ohnehin ermittelt - derselben Quelle, aus der die Nummern im Buch stammen. --check meldet einen veralteten Block und bricht ab. Gegenprobe: alle 37 Dateien aus DATEIEN stehen in der Uebersicht. Weiter nachgezogen: * CLAUDE.md kannte veroeffentliche_04.py nicht und nannte .env.beispiel nicht. Der Abschnitt "Veroeffentlichung" beschrieb noch das Kopieren von Hand samt curl-Kontrolle - das erledigt jetzt das Skript. * Fundzahl der Nummern-Regel: CLAUDE.md sagte sieben, README acht, PROGRESS dokumentiert einen "Achter Fund". Jetzt ueberall neun. * Diagrammzahl: CLAUDE.md zaehlt 32 Kapiteldiagramme, README 33 - der Unterschied ist titelseite.svg. Das steht jetzt dabei. Nebenbei am Upload-Skript: rsync bekommt --checksum. Der Bau schreibt alle 42 Seiten bei jedem Lauf neu, auch ohne inhaltliche Aenderung; nach Zeitstempel und Groesse waeren das jedes Mal rund 19 MB sinnlose Uebertragung. Gemessen nach einem Neubau ohne Aenderung: 0 statt 151 Dateien. Website unveraendert - kein Upload noetig, der Probelauf meldet 0 zu uebertragen und 0 zu loeschen. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 39 +++++++-- .../README.md | 86 +++++++++++------- .../build_version_04.py | 87 +++++++++++++++++++ .../veroeffentliche_04.py | 8 +- PROGRESS.md | 32 +++++++ README.md | 2 +- 6 files changed, 212 insertions(+), 42 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 53e58db..ca8189c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,6 +39,8 @@ pyproject.toml Quelle: Abhängigkeiten in Gruppe Dockerfile, .dockerignore Quelle: Kurs-Image (Programme + JupyterLab) LICENSE, LICENSE-TEXT.md MIT fuer Code, CC BY-SA 4.0 fuer den Text .gitattributes LF im Repository, egal auf welchem System +.env.beispiel Vorlage; die echte .env (Ziel des Uploads) + ist bewusst NICHT im Repository pandoc-defaults-basis.yaml, pandoc/, pandoc-defaults-buch.yaml PDF-Konfiguration ``` @@ -60,8 +62,17 @@ cd Version_04 python3 Operations_Research_mit_Python_Version_04/build_version_04.py --check # nur prüfen python3 Operations_Research_mit_Python_Version_04/build_version_04.py --pdf --html python3 Operations_Research_mit_Python_Version_04/extract_programme_04.py +python3 Operations_Research_mit_Python_Version_04/veroeffentliche_04.py # hochladen ``` +`veroeffentliche_04.py` lädt `OR_HTML_04/` per `rsync --delete` nach +— **nicht** per `scp`, denn das überschreibt nur und löscht nie; eine aus dem Buch entfernte +Seite bliebe sonst dauerhaft online. Vorher prüft es, ob eine Quelldatei neuer ist als die +gebaute Website (die Website hing einmal wochenlang einen Bau zurück, ohne dass es auffiel), +hinterher ruft es vierzehn Adressen per HTTP ab. Bei mehr als 30 Löschungen bricht es ab — +die Liste ist dann anzusehen, bevor `--loeschgrenze N` sie freigibt. Ziel in `.env` +(nicht im Repository, Vorlage `.env.beispiel`); Anmeldung per SSH-Schlüssel, kein Passwort. + `--check` prüft mehr als die Struktur: fehlende Codezäune, Links auf nicht existierende Dateien und **harte Kapitel-/Abschnitts-/Aufgabennummern im Quelltext**. Es meldet Datei und Zeile. Der Suchausdruck erlaubt beliebigen Zwischenraum — der letzte gefundene Fall war ein @@ -76,9 +87,10 @@ sonst fälschlich als sichtbaren Umbruch dar. ## Die wichtigsten Konventionen **Keine abgeleiteten Zahlen im Quelltext.** Das ist die Regel, an der dieses Projekt am -häufigsten gescheitert ist — **sieben** Mal an verschiedenen Stellen verletzt gefunden +häufigsten gescheitert ist — **neun** Mal an verschiedenen Stellen verletzt gefunden (Anhang A, 66 Programm-Docstrings, die Übersichtstabellen der Anhänge, `CLAUDE.md` selbst, -eine Tabellenzelle, die 98 Lösungsmarken des Anhangs, neun Denkfehler-Verweise). +eine Tabellenzelle, die 98 Lösungsmarken des Anhangs, neun Denkfehler-Verweise, sieben +„Übung N.N"-Verweise in alter Zählung, zuletzt die Dateiübersicht des Leser-Wegweisers). Seit dem letzten Fund trägt **keine** Marke mehr eine handgeschriebene Nummer, und `--check` bewacht jede Familie. Konkret: @@ -95,6 +107,11 @@ bewacht jede Familie. Konkret: einer bereits nummerierten Überschrift. Verwiesen wird auf `{ref:sec:-denkfehler}`. * Im Fließtext `{ref: