Ein doppelter Platzhalter riss jede Serie mit
`log.LogInformation("… {Folgen} … {Folgen}.", a, b, c, d, e)` — sechs
Platzhalter, fünf Argumente. Vorlagen sind positionsbezogen: auch ein
wiederholter Name verbraucht ein weiteres Argument. Der Logger warf eine
Ausnahme, die riss `StaffelMeldenAsync` mit, und die wiederum den ganzen
Serienlauf. Gefunden war dann alles umsonst — „A Knight of the Seven
Kingdoms" und „Alice in Borderland" haben ihre Marken deshalb verloren,
nachdem sie längst berechnet waren.
**CA2017 hatte das gemeldet.** Als Warnung, unter hundert anderen Zeilen,
und ich habe beim Bauen nach „warning CS" gegriffen. Eine neue
`Directory.Build.props` macht genau diese eine Regel zum Fehler — nicht
alle Warnungen, das wäre eine andere Entscheidung. Gegengeprüft: mit der
kaputten Zeile bricht der Bau jetzt ab.
**Und der zweite Fund, aus „Alice im Wunderland".** Die Zeile meldete
„Schwelle 247,6", und das kann bei 0–255 nicht entstehen: die Schwelle
ist Grundton mal 0,55, das wären 450 gewesen. `signalstats` rechnet in
der Skala des Bildformats — bei acht Bit 0–255, bei zehn Bit 0–1023.
Gemessen am selben erzeugten Bild: YAVG 127 gegen YAVG 500. Alle
Schwellen hier sind an acht Bit gemessen; bei einer 10-Bit-Datei bedeutete
dieselbe Zahl ein Viertel.
`format=gray` vor `signalstats` bringt jede Datei auf dieselbe Skala. Es
rechnet dabei auch den Fernsehbereich 16–235 auf 0–255 um — linear, und
die dunklen Werte trifft das am stärksten: der gemessene Abspann liegt
jetzt bei 28 statt bei 40. Der Boden wandert entsprechend von 35 auf 22.
Dazu: die Schlusszeile je Serie trennt Vorspann und Abspann, statt eine
Zahl aus beidem zu machen — „14 Marken" beantwortet nicht, ob die Serie
ihre Vorspänne bekommen hat.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
259996c5ad
commit
f2752e6c05
@@ -0,0 +1,23 @@
|
||||
<Project>
|
||||
|
||||
<!--
|
||||
Eine kaputte Protokollvorlage ist kein Schönheitsfehler.
|
||||
|
||||
`log.LogInformation("… {Folgen} … {Folgen}.", a, b, c, d, e)` wirft zur
|
||||
Laufzeit — jeder Platzhalter verbraucht ein Argument, auch ein
|
||||
wiederholter. Geschieht das in einem Hintergrundlauf, reisst die
|
||||
Ausnahme den ganzen Lauf mit, und alles, was er bis dahin gefunden
|
||||
hatte, ist verloren. Genau so ist es der Markenerkennung ergangen.
|
||||
|
||||
CA2017 hatte das längst gemeldet — als Warnung unter hundert anderen
|
||||
Zeilen, und damit übersehen. Als Fehler ist es nicht zu übersehen.
|
||||
|
||||
Nur diese eine Regel, nicht alle Warnungen: ein pauschales
|
||||
`TreatWarningsAsErrors` wäre eine andere Entscheidung und gehört nicht
|
||||
nebenbei getroffen.
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<WarningsAsErrors>$(WarningsAsErrors);CA2017</WarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user