blunderDB

blunderDB ist eine Software zum Erstellen von Datenbanken mit Backgammon-Stellungen. Ihre wichtigste Stärke besteht darin, einen einzigen Ort bereitzustellen, an dem ein Spieler die Stellungen sammeln kann, die er angetroffen hat (online, bei Turnieren), und diese Stellungen erneut studieren zu können, indem er sie mit verschiedenen, beliebig kombinierbaren Filtern filtert. blunderDB kann außerdem dazu verwendet werden, Kataloge von Referenzstellungen zu erstellen.

Die vorliegende Dokumentation ist wie folgt gegliedert:

  • Der Abschnitt Download und Installation erklärt, wie man blunderDB bezieht und startet.

  • Das Handbuch beschreibt die allgemeine Funktionsweise von blunderDB.

  • Der Benutzerleitfaden ist eine praktische Einführung, um blunderDB schnell zu nutzen.

  • Die Liste der Befehle sowie die Liste der Tastenkürzel ermöglichen eine effiziente Nutzung von blunderDB.

  • Der Abschnitt Befehlszeilenschnittstelle (CLI) beschreibt die verfügbaren Befehle für den Massenimport, die Automatisierung und das Scripting.

  • Die FAQ gibt Antworten auf die am häufigsten gestellten Fragen.

Versionsverlauf

Version

Datum

Ursache und/oder Art der Änderungen

0.1.0

31/12/2024

Beta-Version

0.2.0

06/01/2025

Diverse Fehlerbehebungen.

Hinzufügen von Match-/TP-/GV-Tabellen.

Hinzufügen von Suchfiltern (Züge, Dopplerentscheidung, Datum).

Hinzufügen von Metadaten zu den Stellungen.

Import-/Exportfunktion zwischen blunderDB-Instanzen.

Hinzufügen einer Metadaten-Funktion für die Datenbanken.

Einführung von Versionsnummern (Datenbank und Anwendung).

0.3.0

27/01/2025

Diverse Fehlerbehebungen.

Speichert automatisch die Fenstergröße.

Importiert eventuelle Kommentare aus XG.

0.4.0

03/02/2025

Diverse Fehlerbehebungen.

Hinzufügen eines Symbols für blunderDB.

Korrekturen an Filtern.

Hinzufügen der macOS-Unterstützung.

0.5.0

04/02/2025

Hinzufügen neuer Filter (Spiegelung, kein Kontakt, jan blot, outfield blot).

0.6.0

13/02/2025

Hinzufügen der Filterbibliothek.

Anzeige der Datenbankversion in den Metadaten.

0.7.0

16/02/2025

Unterstützung japanischer und deutscher XG-Exporte.

0.8.0

03/05/2025

Möglichkeit, den Pipcount auszublenden.

Laden einer zufälligen Stellung.

0.9.0

02/11/2025

Fehlerbehebung in der Filterbibliothek.

Datenbankimport/-export.

Anzeige von Pfeilen für die ausgewählten Züge.

Tastenkürzel für Import/Export.

0.10.0

25/02/2026

Import von Matches aus eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) und BGBlitz (BGF/TXT).

Navigation in den Matches: Durchlaufen der Züge eines importierten Matches, mit Hervorhebung des gespielten Zugs.

Match-Panel: Liste, Sortierung, Inline-Bearbeitung, Vertauschen der Spieler, Zuordnung zu Turnieren.

Import per rekursivem Ordner und Import per Drag & Drop.

EPC-Rechner (Effective Pip Count) mit integrierter GNUbg-Bearoff-Datenbank.

Sammlungen: benutzerdefinierte Gruppierung von Stellungen.

Turniere: Gruppierung von Matches nach Veranstaltung.

Speichern und Wiederherstellen des Sitzungszustands (letzte Suche, aktuelle Stellung).

Automatische Migration des Datenbankschemas.

Mehrere-Engines-Anzeige in der Analyse.

Filter für Fehler/Blunder von Spieler 1 in den Suchen.

Export der Datenbank mit granularer Auswahl (Matches, Sammlungen, Turniere, gespielte Züge).

Navigationsschaltfläche in den Matches.

Pipcount-Anzeige in der Match-Navigation.

Vollständige Befehlszeilenschnittstelle (CLI).

Automatisches Wiederöffnen der letzten Datenbank.

Verbesserung der Symbolleiste und der Symbole.

0.11.0

06/03/2026

Filter zur Suche innerhalb der aktuell gefilterten Stellungen.

Hinzufügen von Filtern nach Match und nach Turnier.

Automatisches Leeren des Bretts beim Öffnen des Suchpanels.

0.12.0

19/03/2026

Import von eXtreme-Gammon-Stellungsdateien (XGP) mit Analyse.

0.13.0

28/03/2026

Vereinfachung der Oberfläche: Die Navigation in Matches und Sammlungen erfolgt nun direkt über die Panels.

In die Statusleiste integrierte Befehlszeile.

Konsolen-Panel in Log-Panel umbenannt.

Eigenes EPC-Panel im unteren Panel.

Kopieren/Einfügen von Stellungen im Suchpanel.

Drag & Drop zum Umordnen der Sammlungen, der Stellungen innerhalb der Sammlungen und der Matches innerhalb der Turniere.

Turnierspalte im Match-Panel mit Inline-Bearbeitung.

Automatische Anzeige des Analysepanels nach einer Suche.

0.14.0

30/03/2026

Eigenes Anki-Panel für das Lernen mit verteilter Wiederholung (FSRS-Algorithmus).

Import der Kommentare aus den XG-Dateien.

0.15.0

31/03/2026

Export der Stellung als PNG-Bild in die Zwischenablage (nur Brett via Ctrl+X oder Brett mit Analyse via Ctrl+X Ctrl+X).

0.16.0

18/04/2026

Datenbankschema v2.0.0: Deduplizierung der Stellungen über Zobrist-Hash, denormalisierte Filterspalten, Bitboard-Muster-Vorfilter, WAL-Journaling. Stapelimport >=3x schneller, gefilterte Suche <=100 ms bei 10k+ Stellungen. HINWEIS: DB-Dateien, die mit v0.16.0 erstellt wurden, können von älteren Versionen nicht geöffnet werden; alte DBs werden automatisch an Ort und Stelle migriert (zuerst eine Sicherung anlegen).

0.17.0

20/04/2026

Speicheroptimierung: zlib-Komprimierung der Analysedaten (~80%ige Reduzierung), kompakte Kodierung der Stellungen (~90%ige Reduzierung der Größe). Hinzufügen von 5 fehlenden Indizes zur Verbesserung der Suchleistung. Korrektur der Suche nach Cube-Fehler. Korrektur des EDIT-Modus nach einer Suche ohne Ergebnisse. Wiederherstellung des Zustands des Suchpanels beim Wechsel der Reiter. Entfernung von 62 Debug-Anweisungen aus den kritischen Pfaden.

0.18.0

20/04/2026

Größeres Code-Refactoring: Aufteilung von db.go (10k Zeilen) in 19 spezialisierte Dateien, Extraktion von 7 Service-Modulen aus App.svelte (4888→469 Zeilen), Konsolidierung der Modal-/Panel-Stores. Vollständige Migration zu Svelte 5 Runes. Ersetzung von 9 Tabellen-Modals durch eine generische DataTableModal-Komponente. Hinzufügen von ESLint + Prettier + vitest (125 Frontend-Tests) mit CI. WCAG-2.1-AA-Konformität (sichtbarer Fokus, ARIA-Rollen, Tastaturnavigation). Umstellung des Database-Mutex auf RWMutex für bessere Lese-Parallelität. Vollständige CLI-Dokumentation (CLI_USAGE.md + Sphinx FR/EN). Neuschreiben der README. Behebung aller ESLint-Warnungen (46→0) und Vite-Warnungen (6→0).

0.19.0

07/05/2026

Hinzufügen des Stats-Panels: Indikatoren PR (Performance Rate), Snowie Error Rate und MWC cost (Match Winning Chance cost), Filterleiste (Spieler, Turnier, Datum, Entscheidungstyp, Matchlänge), Dashboard-Reiter mit Niveau-Karten / gleitendem PR / Top-Blunders, Progression-Reiter mit Kurve pro Turnier und Streudiagramm pro Match, Fehler-Reiter mit Aufschlüsselung nach Cube-Aktion und Histogramm der Fehlergrößen. Interaktives Drill-down zu den Stellungen / Matches / Turnieren von allen Indikatoren aus. Sofortiges Umschalten zwischen PR / MWC. CLI-Befehl list –type stats. Abgleich der Indikatoren PR / Snowie ER / MWC mit eXtremeGammon und gnuBG (Equity-Schwelle 0.16 für knappe Cubes). Korrektur der cube_error-Berechnung für Double/Pass-Entscheidungen. Dokumentation des Statistikmodells (Anhang: Statistikmodell — Abgleich XG / gnuBG / blunderDB). Siehe Stats-Panel.

0.20.0

31/05/2026

Hinzufügen der Ausschluss-Struktur Except zum Suchpanel: schließt Stellungen aus, die einen der gezeichneten Steine enthalten, mit einem Marker « muss leer sein » (Doppelklick) und unbegrenzter Anzahl an Steinen pro Punkt (Befehl x). Hinzufügen der Option « nur erster Würfel » zum Würfelfilter (Variante D1, CLI-Option –dice). Kommentare-Panel: das Eingabefeld wird beim Öffnen automatisch fokussiert und die Schaltflächen Bearbeiten / Löschen sind immer sichtbar. Korrektur des Filters « Search Text », der nicht alle Kommentar-Tags fand.

0.21.0

01/06/2026

Internationalisierung der Oberfläche: das gesamte blunderDB (Symbolleiste, Panels, Meldungen, Hilfe) kann nun wahlweise auf Englisch, Französisch, Deutsch, Italienisch, Spanisch, Finnisch, Japanisch, Griechisch oder Russisch angezeigt werden. Hinzufügen eines Konfigurationsfensters, das über eine zahnradförmige Schaltfläche in der Symbolleiste erreichbar ist und die Auswahl der Sprache ermöglicht. Die Sprachauswahl bleibt über Sitzungen hinweg erhalten. Siehe Konfiguration.

0.22.0

02/06/2026

Hinzufügen eines Headless-Modus (Server), fortgeschritten und optional, der die Desktop-Anwendung ergänzt: ein Daemon serve, der die Engine über HTTP + JSON bereitstellt, ein mehrbenutzerfähiges PostgreSQL-Backend mit Abschottung pro Tenant (und optionaler Row-Level Security), ein Befehl migrate zum Übertragen einer SQLite-Datenbank nach PostgreSQL sowie ein generischer Dispatcher call, der über die Kommandozeile Zugriff auf alle Speicheroperationen gibt. Import einzelner Stellungen aus neuen Formaten (eXtreme Gammon .xgp, BGBlitz-Text, native .db-Bibliothek) mit Anreicherung der Duplikate zwischen den Formaten. Korrekturen: Die Panels verursachen keinen Fehler mehr, wenn keine Datenbank geöffnet ist, und das Kommentar-Panel läuft beim Öffnen nicht mehr in eine Schleife. Siehe Headless-Modus (Server).

0.23.0

05/06/2026

Hinzufügen geführter Touren durch die Oberfläche (allgemeine Tour, Suche, Matches, Turniere), wiederholbar über die Symbolleiste oder den Befehl tour, sowie einer Beispieldatenbank, die sich mit dem Befehl demo laden lässt, um das Werkzeug zu erkunden, ohne eigene Partien zu importieren. Anpassung der Brettfarben (Hintergrund, Rahmen, Zungen, Steine, Würfel, Dopplerwürfel) über das Einstellungsfenster. Autovervollständigung der Kommandozeile (TAB-Taste). Suchpanel: explizite Steuerung des Entscheidungstyps (Zug / Dopplung), mit einem Untertyp Dopplung / Kein Doppel oder Annehmen / Aufgeben für Doppler-Entscheidungen, synchronisiert mit dem Brett; der angebotene Dopplerwürfel wird bei Annehmen/Aufgeben-Entscheidungen in der Mitte des Bretts angezeigt. Suche einer Position über ihre Kennung (Filter id). Behebung der Zuordnung des Doppler-Fehlers zu Spieler 1. Siehe Geführte Touren und Beispieldatenbank.

0.24.0

06/06/2026

Hinzugefügt: ein Container-Image (Docker) für den Headless-Modus: ein dedizierter Einstiegspunkt serve und eine Dockerfile.serve, die eine statische Binärdatei ohne grafische Oberfläche erzeugt, um die blunderDB-Engine als Dienst hinter einem Reverse-Proxy bereitzustellen. Siehe Headless-Modus (Server).

0.25.0

07/06/2026

Server-Modus (headless): zwei neue Methoden, um eine Stellung zu rekonstruieren, ohne sie zu speichern — positions.fromXGID dekodiert eine XGID-Zeichenkette in eine Stellung, und positions.fromXGP liest eine Einzelstellungsdatei .xgp. Siehe Headless-Modus (Server).

0.26.0

09/06/2026

Anzeigeeinstellungen für die Oberfläche im Konfigurationsfenster: ein Schieberegler zur Skalierung, um die gesamte Oberfläche zu vergrößern oder zu verkleinern, sowie eine Auswahl der Panel-Position (unten, seitlich oder automatisch), um breite Bildschirme besser auszunutzen. Hinzugefügt: eine Informationsleiste über dem Brett, die die Spieler und den Match-Kontext anzeigt (Ereignis, Ort, Runde, Datum, Länge). Beim Öffnen einer Datenbank wird das Matchs-Panel sofort angezeigt und die Durchsicht beginnt bei der ersten Stellung. Die Tastenkürzel sind nun unabhängig von der Tastaturbelegung (AZERTY, QWERTY, QWERTZ…). Behebung der XGID-Dekodierung (Jacoby/Beaver-Indikatoren und Doppler-Wert). Siehe Konfiguration.

0.27.0

13/06/2026

Anki-Panel: ein neuer Modus für freies Üben (cram), erreichbar über die Schaltfläche Cram neben Study, der zufällige Stellungen aus dem Deck anzeigt, ohne den Plan der verteilten Wiederholung zu verändern — ideal zum Aufwärmen vor einem Turnier oder zum intensiven Wiederholen eines Decks, ohne dessen Reihenfolge zu stören. Suche: ein neuer Befehl blunders (Alias bl), der die größten Fehler (Equity/MWC) direkt in die Analyseansicht lädt, mit einer optionalen Anzahl zur Auswahl der Menge (bl 50); ein neuer Spielerfilter pl'Name', der jede Stellung aus einer Partie findet, an der ein bestimmter Spieler an einer der beiden Seiten beteiligt war; und Tooltips, die beim Überfahren jedes Filters im Suchpanel das zugehörige Befehlskürzel anzeigen. Server-Modus (headless): neue Methoden matches.movesByMatch (alle Züge einer Partie in einem einzigen Aufruf) und positions.epc (Effective Pip Count für beide Spieler). Siehe Anki-Panel und Liste der Befehle.

Inhaltsverzeichnis

Kontakt

Autor: Kévin Unger <blunderdb@proton.me>. Sie finden mich auch auf Heroes unter dem Benutzernamen postmanpat.

Ich habe blunderDB ursprünglich für meinen persönlichen Gebrauch entwickelt, um Muster in meinen Fehlern erkennen zu können. Doch es ist sehr erfreulich, Rückmeldungen zu erhalten, besonders wenn man viele Stunden in Konzeption, Programmierung und Debugging gesteckt hat. Zögern Sie also nicht, mir zu schreiben, um Ihre Erfahrungen mitzuteilen. Jedes (konstruktive) Feedback ist willkommen.

Hier sind mehrere Möglichkeiten zum Austausch:

Spenden

Wenn Sie blunderDB schätzen und die bisherige und zukünftige Entwicklung unterstützen möchten, können Sie

  • mir ein Getränk spendieren, falls wir uns kennenlernen dürfen!

  • eine kleine Spende per PayPal an die Adresse blunderdb@proton.me leisten

Danksagungen

Ich widme diese kleine Software meiner Partnerin Anne-Claire und unserer lieben Tochter Perrine. Ganz besonders möchte ich einigen Freunden danken:

  • Tristan Remille, dafür, dass er mich mit Freude und Wohlwollen ins Backgammon eingeführt hat; dass er den Weg zum Verständnis dieses wunderbaren Spiels weist; dass er mich trotz meiner kläglichen Versuche, besser zu spielen, weiter ermutigt.

  • Nicolas Harmand, fröhlicher Gefährte seit nunmehr über einem Jahrzehnt in tollen Abenteuern und ein fantastischer Spielpartner, seit er sich mit dem Backgammon-Virus angesteckt hat.