blunderDB

Το blunderDB είναι ένα λογισμικό για τη δημιουργία βάσεων δεδομένων θέσεων τάβλι (backgammon). Η κύρια δύναμή του είναι να παρέχει ένα μοναδικό μέρος όπου ένας παίκτης μπορεί να συγκεντρώσει τις θέσεις που έχει συναντήσει (διαδικτυακά, σε τουρνουά) και να μπορεί να μελετήσει ξανά αυτές τις θέσεις φιλτράροντάς τες με διάφορα φίλτρα που μπορούν να συνδυαστούν αυθαίρετα. Το blunderDB μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία καταλόγων θέσεων αναφοράς.

Η παρούσα τεκμηρίωση είναι δομημένη ως εξής:

  • η ενότητα λήψη και εγκατάσταση εξηγεί πώς να αποκτήσετε και να εκτελέσετε το blunderDB.

  • το εγχειρίδιο περιγράφει τη γενική λειτουργία του blunderDB.

  • ο οδηγός χρήστη είναι μια πρακτική εισαγωγή για τη γρήγορη χρήση του blunderDB.

  • η λίστα των εντολών καθώς και η λίστα των συντομεύσεων πληκτρολογίου επιτρέπουν την αποτελεσματική χρήση του blunderDB.

  • η ενότητα διεπαφή γραμμής εντολών (CLI) περιγράφει τις διαθέσιμες εντολές για μαζική εισαγωγή, αυτοματοποίηση και scripting.

  • η ενότητα Συχνές Ερωτήσεις (FAQ) παρέχει απαντήσεις στις πιο συχνές ερωτήσεις.

Ιστορικό εκδόσεων

Έκδοση

Ημερομηνία

Αιτία ή/και φύση των αλλαγών

0.1.0

31 Δεκεμβρίου 2024

Έκδοση beta.

0.2.0

6 Ιανουαρίου 2025

Διάφορες διορθώσεις σφαλμάτων.

Προσθήκη πινάκων αγώνων/TP/GV.

Προσθήκη φίλτρων αναζήτησης (κινήσεις, αποφάσεις ντουμπλέ, ημερομηνία).

Προσθήκη μεταδεδομένων στις θέσεις.

Λειτουργία εισαγωγής/εξαγωγής μεταξύ στιγμιότυπων του blunderDB.

Προσθήκη λειτουργίας μεταδεδομένων στις βάσεις δεδομένων.

Εισαγωγή αριθμών εκδόσεων (βάσης δεδομένων και εφαρμογής).

0.3.0

27 Ιανουαρίου 2025

Διάφορες διορθώσεις σφαλμάτων.

Αυτόματη αποθήκευση του μεγέθους του παραθύρου.

Εισαγωγή τυχόν σχολίων από το XG.

0.4.0

3 Φεβρουαρίου 2025

Διάφορες διορθώσεις σφαλμάτων.

Προσθήκη εικονιδίου για το blunderDB.

Διορθώσεις φίλτρων.

Προσθήκη υποστήριξης MacOS.

0.5.0

4 Φεβρουαρίου 2025

Προσθήκη νέων φίλτρων (καθρέφτης, μη επαφή, jan blot, outfield blot).

0.6.0

13 Φεβρουαρίου 2025

Προσθήκη βιβλιοθήκης φίλτρων.

Εμφάνιση της έκδοσης της βάσης δεδομένων στα μεταδεδομένα.

0.7.0

16 Φεβρουαρίου 2025

Υποστήριξη ιαπωνικών και γερμανικών εξαγωγών XG.

0.8.0

3 Μαΐου 2025

Δυνατότητα απόκρυψης του pip count.

Φόρτωση τυχαίας θέσης.

0.9.0

2 Νοεμβρίου 2025

Διόρθωση σφάλματος της βιβλιοθήκης φίλτρων.

Εισαγωγή/εξαγωγή βάσης δεδομένων.

Εμφάνιση βελών για τις επιλεγμένες κινήσεις.

Συντομεύσεις πληκτρολογίου για την εισαγωγή/εξαγωγή.

0.10.0

25 Φεβρουαρίου 2026

Εισαγωγή αγώνων από eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) και BGBlitz (BGF/TXT).

Πλοήγηση στους αγώνες: περιήγηση στις κινήσεις ενός εισαγόμενου αγώνα, με επισήμανση της κίνησης που παίχτηκε.

Πίνακας αγώνων: λίστα, ταξινόμηση, εσωτερική επεξεργασία, εναλλαγή παικτών, ανάθεση τουρνουά.

Εισαγωγή με αναδρομικό φάκελο και εισαγωγή με μεταφορά και απόθεση.

Υπολογιστής EPC (Effective Pip Count) με ενσωματωμένη βάση δεδομένων bearoff του GNUbg.

Συλλογές: προσαρμοσμένη ομαδοποίηση θέσεων.

Τουρνουά: ομαδοποίηση αγώνων ανά εκδήλωση.

Αποθήκευση και επαναφορά της κατάστασης συνεδρίας (τελευταία αναζήτηση, τρέχουσα θέση).

Αυτόματη μετάβαση του σχήματος της βάσης δεδομένων.

Εμφάνιση πολλαπλών μηχανών στην ανάλυση.

Φίλτρο σφαλμάτων/blunders του παίκτη 1 στις αναζητήσεις.

Εξαγωγή της βάσης δεδομένων με λεπτομερή επιλογή (αγώνες, συλλογές, τουρνουά, κινήσεις που παίχτηκαν).

Κουμπί πλοήγησης στους αγώνες.

Εμφάνιση pip count στην πλοήγηση των αγώνων.

Πλήρης διεπαφή γραμμής εντολών (CLI).

Αυτόματο άνοιγμα ξανά της τελευταίας βάσης δεδομένων.

Βελτίωση της γραμμής εργαλείων και των εικονιδίων.

0.11.0

6 Μαρτίου 2026

Φίλτρο αναζήτησης μέσα στις τρέχουσες φιλτραρισμένες θέσεις.

Προσθήκη φίλτρων ανά αγώνα και ανά τουρνουά.

Αυτόματος καθαρισμός του ταμπλό κατά το άνοιγμα του πίνακα αναζήτησης.

0.12.0

19 Μαρτίου 2026

Εισαγωγή αρχείων θέσεων eXtreme Gammon (XGP) με ανάλυση.

0.13.0

28 Μαρτίου 2026

Απλοποίηση της διεπαφής: η πλοήγηση στους αγώνες και τις συλλογές γίνεται πλέον απευθείας μέσω των πινάκων.

Γραμμή εντολών ενσωματωμένη στη γραμμή κατάστασης.

Ο πίνακας Κονσόλα μετονομάστηκε σε πίνακα Log.

Αποκλειστικός πίνακας EPC στον κάτω πίνακα.

Αντιγραφή/επικόλληση θέσης στον πίνακα αναζήτησης.

Μεταφορά και απόθεση για την αναδιάταξη συλλογών, θέσεων μέσα στις συλλογές, και αγώνων μέσα στα τουρνουά.

Στήλη τουρνουά στον πίνακα αγώνων με εσωτερική επεξεργασία.

Αυτόματη εμφάνιση του πίνακα ανάλυσης μετά από μια αναζήτηση.

0.14.0

30 Μαρτίου 2026

Αποκλειστικός πίνακας Anki για μελέτη με επαναλαμβανόμενα διαστήματα (αλγόριθμος FSRS).

Εισαγωγή σχολίων από τα αρχεία XG.

0.15.0

31 Μαρτίου 2026

Εξαγωγή της θέσης ως εικόνα PNG στο πρόχειρο (μόνο το ταμπλό με Ctrl+X, ή το ταμπλό με ανάλυση με Ctrl+X Ctrl+X).

0.16.0

18 Απριλίου 2026

Σχήμα βάσης δεδομένων v2.0.0: αφαίρεση διπλότυπων θέσεων μέσω hash Zobrist, αποκανονικοποιημένες στήλες φιλτραρίσματος, προ-φίλτρο μοτίβων bitboard, καταγραφή WAL. Μαζική εισαγωγή >=3x ταχύτερη, φιλτραρισμένη αναζήτηση <=100 ms σε 10k+ θέσεις. ΣΗΜΕΙΩΣΗ: τα αρχεία DB που δημιουργήθηκαν με την v0.16.0 δεν μπορούν να ανοιχτούν από παλαιότερες εκδόσεις· οι παλιές DB μεταβαίνουν αυτόματα επιτόπου (κάντε πρώτα ένα αντίγραφο ασφαλείας).

0.17.0

20 Απριλίου 2026

Βελτιστοποίηση αποθήκευσης: συμπίεση zlib των δεδομένων ανάλυσης (~80% μείωση), συμπαγής κωδικοποίηση των θέσεων (~90% μείωση του μεγέθους). Προσθήκη 5 ευρετηρίων που έλειπαν για τη βελτίωση της απόδοσης αναζήτησης. Διόρθωση της αναζήτησης κατά σφάλμα ντουμπλέ. Διόρθωση της λειτουργίας EDIT μετά από αναζήτηση χωρίς αποτελέσματα. Επαναφορά της κατάστασης του πίνακα αναζήτησης κατά την εναλλαγή καρτελών. Αφαίρεση 62 εντολών εντοπισμού σφαλμάτων από τις κρίσιμες διαδρομές.

0.18.0

20 Απριλίου 2026

Σημαντική αναδιάρθρωση του κώδικα: διαχωρισμός του db.go (10k γραμμές) σε 19 εξειδικευμένα αρχεία, εξαγωγή 7 ενοτήτων υπηρεσιών από το App.svelte (4888→469 γραμμές), ενοποίηση των stores των modal/πινάκων. Πλήρης μετάβαση στα Svelte 5 runes. Αντικατάσταση 9 modal πινάκων με ένα γενικό στοιχείο DataTableModal. Προσθήκη ESLint + Prettier + vitest (125 tests frontend) με CI. Συμμόρφωση WCAG 2.1 AA (ορατή εστίαση, ρόλοι ARIA, πλοήγηση με πληκτρολόγιο). Αναβάθμιση του mutex της Database σε RWMutex για καλύτερη παραλληλία ανάγνωσης. Πλήρης τεκμηρίωση CLI (CLI_USAGE.md + Sphinx FR/EN). Επανεγγραφή του README. Διόρθωση όλων των προειδοποιήσεων ESLint (46→0) και Vite (6→0).

0.19.0

7 Μαΐου 2026

Προσθήκη του πίνακα Stats: δείκτες PR (Performance Rate), Snowie Error Rate και MWC cost (Match Winning Chance cost), γραμμή φίλτρου (παίκτης, τουρνουά, ημερομηνίες, τύπος απόφασης, μήκος αγώνα), καρτέλα Dashboard με κάρτες επιπέδου / κυλιόμενο PR / κορυφαία blunders, καρτέλα Progression με καμπύλη ανά τουρνουά και scatter plot ανά αγώνα, καρτέλα Σφάλματα με κατανομή ανά ενέργεια ντουμπλέ και ιστόγραμμα των μεγεθών. Διαδραστική εμβάθυνση προς τις θέσεις / αγώνες / τουρνουά από όλους τους δείκτες. Στιγμιαία εναλλαγή PR / MWC. Εντολή CLI list –type stats. Ευθυγράμμιση των δεικτών PR / Snowie ER / MWC με τα eXtremeGammon και gnuBG (όριο 0.16 equity για τα κοντινά ντουμπλέ). Διόρθωση του υπολογισμού του cube_error για τις αποφάσεις Double/Pass. Τεκμηρίωση του στατιστικού μοντέλου (Παράρτημα: Μοντέλο στατιστικών — ευθυγράμμιση XG / gnuBG / blunderDB). Δείτε Πίνακας Stats.

0.20.0

31 Μαΐου 2026

Προσθήκη της δομής αποκλεισμού Except στον πίνακα αναζήτησης: αποκλείει τις θέσεις που περιέχουν οποιοδήποτε από τα σχεδιασμένα πούλια, με σήμανση « πρέπει να είναι κενό » (διπλό κλικ) και χωρίς όριο στον αριθμό πουλιών ανά σημείο (εντολή x). Προσθήκη της επιλογής « μόνο το πρώτο ζάρι » στο φίλτρο ζαριάς (παραλλαγή D1, επιλογή CLI –dice). Πίνακας Σχόλια: το πεδίο εισαγωγής εστιάζεται αυτόματα κατά το άνοιγμα και τα κουμπιά επεξεργασία / διαγραφή είναι πάντα ορατά. Διόρθωση του φίλτρου « Search Text » που δεν έβρισκε όλες τις ετικέτες σχολίων.

0.21.0

1 Ιουνίου 2026

Διεθνοποίηση της διεπαφής: το σύνολο του blunderDB (γραμμή εργαλείων, πίνακες, μηνύματα, βοήθεια) μπορεί πλέον να εμφανιστεί κατ” επιλογήν στα αγγλικά, γαλλικά, γερμανικά, ιταλικά, ισπανικά, φινλανδικά, ιαπωνικά, ελληνικά ή ρωσικά. Προσθήκη ενός παραθύρου ρυθμίσεων, προσβάσιμου μέσω ενός κουμπιού σε σχήμα γραναζιού στη γραμμή εργαλείων, που επιτρέπει την επιλογή της γλώσσας. Η επιλογή της γλώσσας διατηρείται από τη μία συνεδρία στην άλλη. Δείτε Ρυθμίσεις.

0.22.0

2 Ιουνίου 2026

Προσθήκη μιας λειτουργίας χωρίς γραφικό περιβάλλον (διακομιστής), προηγμένης και προαιρετικής, που συμπληρώνει την εφαρμογή γραφείου: ένας δαίμονας serve που εκθέτει τη μηχανή σε HTTP + JSON, ένα backend PostgreSQL πολλαπλών χρηστών με διαχωρισμό ανά tenant (και Row-Level Security προαιρετικά), μια εντολή migrate για τη μεταφορά μιας βάσης SQLite προς PostgreSQL, και ένας γενικός dispatcher call που παρέχει πρόσβαση μέσω γραμμής εντολών σε όλες τις λειτουργίες αποθήκευσης. Εισαγωγή μεμονωμένων θέσεων από νέες μορφές (eXtreme Gammon .xgp, κείμενο BGBlitz, εγγενής βιβλιοθήκη .db) με εμπλουτισμό των διπλότυπων μεταξύ μορφών. Διορθώσεις: οι πίνακες δεν προκαλούν πλέον σφάλμα όταν δεν είναι ανοιχτή καμία βάση και ο πίνακας Σχόλια δεν δημιουργεί πλέον βρόχο κατά το άνοιγμα. Δείτε Λειτουργία χωρίς γραφικό περιβάλλον (διακομιστής).

0.23.0

5 Ιουνίου 2026

Προσθήκη ξεναγήσεων του περιβάλλοντος (γενική ξενάγηση, αναζήτηση, αγώνες, τουρνουά), επαναλήψιμων από τη γραμμή εργαλείων ή με την εντολή tour, και μιας βάσης δείγματος που φορτώνεται με την εντολή demo για την εξερεύνηση του εργαλείου χωρίς εισαγωγή των δικών σας παρτίδων. Προσαρμογή των χρωμάτων του ταμπλό (φόντο, περίγραμμα, μύτες, πούλια, ζάρια, κύβος) από το παράθυρο ρυθμίσεων. Αυτόματη συμπλήρωση της γραμμής εντολών (πλήκτρο TAB). Πάνελ αναζήτησης: ρητός έλεγχος του τύπου απόφασης (Πιόνια / Κύβος), με υποτύπο Διπλασιασμός / Όχι ή Αποδοχή / Πάσο για τις αποφάσεις κύβου, συγχρονισμένος με το ταμπλό· ο προσφερόμενος κύβος εμφανίζεται στο κέντρο του ταμπλό για τις αποφάσεις αποδοχής/πάσο. Αναζήτηση μιας θέσης με το αναγνωριστικό της (φίλτρο id). Διόρθωση της απόδοσης του σφάλματος κύβου στον παίκτη 1. Βλ. Ξεναγήσεις και βάση δείγματος.

0.24.0

6 Ιουνίου 2026

Προστέθηκε εικόνα κοντέινερ (Docker) για τη λειτουργία headless: ένα αποκλειστικό σημείο εισόδου serve και ένα Dockerfile.serve που παράγει ένα στατικό δυαδικό αρχείο χωρίς γραφικό περιβάλλον, για την ανάπτυξη της μηχανής του blunderDB ως υπηρεσία πίσω από έναν αντίστροφο διακομιστή μεσολάβησης (reverse proxy). Δείτε Λειτουργία χωρίς γραφικό περιβάλλον (διακομιστής).

0.25.0

7 Ιουνίου 2026

Λειτουργία διακομιστή (headless): δύο νέες μέθοδοι για την ανακατασκευή μιας θέσης χωρίς αποθήκευση — η positions.fromXGID αποκωδικοποιεί μια συμβολοσειρά XGID σε θέση και η positions.fromXGP διαβάζει ένα αρχείο μεμονωμένης θέσης .xgp. Βλ. Λειτουργία χωρίς γραφικό περιβάλλον (διακομιστής).

0.26.0

9 Ιουνίου 2026

Ρυθμίσεις εμφάνισης της διεπαφής στο παράθυρο διαμόρφωσης: ένα ρυθμιστικό κλίμακας για τη μεγέθυνση ή σμίκρυνση ολόκληρης της διεπαφής, και μια επιλογή θέσης των πλαισίων (κάτω, στο πλάι ή αυτόματα) για την καλύτερη αξιοποίηση των πλατιών οθονών. Προστέθηκε μια γραμμή πληροφοριών πάνω από το ταμπλό που δείχνει τους παίκτες και το πλαίσιο του ματς (διοργάνωση, τόπος, γύρος, ημερομηνία, μήκος). Κατά το άνοιγμα μιας βάσης, το πλαίσιο των ματς εμφανίζεται αμέσως και η ανασκόπηση ξεκινά από την πρώτη θέση. Οι συντομεύσεις πληκτρολογίου είναι πλέον ανεξάρτητες από τη διάταξη του πληκτρολογίου (AZERTY, QWERTY, QWERTZ…). Διόρθωση της αποκωδικοποίησης XGID (δείκτες Jacoby/Beaver και τιμή του κύβου). Βλ. Ρυθμίσεις.

0.27.0

13 Ιουνίου 2026

Πίνακας Anki: μια νέα λειτουργία ελεύθερης εξάσκησης (cram), προσβάσιμη από το κουμπί Cram δίπλα στο Study, που εμφανίζει τυχαίες θέσεις από την τράπουλα χωρίς να τροποποιεί το πρόγραμμα επαναλαμβανόμενης μελέτης — ιδανική για προθέρμανση πριν από ένα τουρνουά ή για εντατική επανάληψη μιας τράπουλας χωρίς να διαταράσσεται η σειρά της. Αναζήτηση: μια νέα εντολή blunders (ψευδώνυμο bl) που φορτώνει απευθείας τα χειρότερα λάθη (equity/MWC) στην προβολή ανάλυσης, με προαιρετικό αριθμό για την επιλογή του πλήθους (bl 50)· ένα νέο φίλτρο παίκτη pl'όνομα' που βρίσκει όλες τις θέσεις από έναν αγώνα στον οποίο συμμετείχε ένας συγκεκριμένος παίκτης, σε οποιαδήποτε πλευρά· και επεξηγήσεις που, καθώς ο δείκτης περνά πάνω από κάθε φίλτρο του πίνακα αναζήτησης, εμφανίζουν το αντίστοιχο διακριτικό εντολής. Λειτουργία διακομιστή (headless): νέες μέθοδοι matches.movesByMatch (όλες οι κινήσεις ενός αγώνα σε μία κλήση) και positions.epc (Effective Pip Count και για τους δύο παίκτες). Δείτε Πίνακας Anki και Λίστα εντολών.

Πίνακας περιεχομένων

Επικοινωνία

Συγγραφέας: Kévin Unger <blunderdb@proton.me>. Μπορείτε επίσης να με βρείτε στο Heroes με το ψευδώνυμο postmanpat.

Ανέπτυξα αρχικά το blunderDB για προσωπική μου χρήση, ώστε να μπορώ να εντοπίζω μοτίβα στα λάθη μου. Ωστόσο, είναι πολύ ευχάριστο να λαμβάνεις σχόλια, ειδικά όταν έχεις ξοδέψει πολλές ώρες σε σχεδιασμό, προγραμματισμό, αποσφαλμάτωση… Γι” αυτό μη διστάσετε να μου γράψετε για να μοιραστείτε την εμπειρία σας. Όλα τα (εποικοδομητικά) σχόλια είναι ευπρόσδεκτα.

Ακολουθούν διάφοροι τρόποι για να επικοινωνήσετε:

  • συμμετάσχετε στον διακομιστή Discord του blunderDB: https://discord.gg/DA5PpzM9En

  • στείλτε μου email στο blunderdb@proton.me,

  • μιλήστε μαζί μου, αν συναντηθούμε σε κάποιο τουρνουά,

  • στο Github,

    • ανοίξτε ένα ζήτημα: https://github.com/kevung/blunderDB/issues

    • για διορθώσεις σφαλμάτων ή προτάσεις βελτίωσης, δημιουργήστε ένα pull request.

Κάντε μια δωρεά

Αν εκτιμάτε το blunderDB και θέλετε να στηρίξετε την παρελθούσα και μελλοντική ανάπτυξή του, μπορείτε

  • να με κεράσετε ένα ποτό αν έχουμε τη χαρά να συναντηθούμε!

  • να κάνετε μια μικρή δωρεά μέσω PayPal στη διεύθυνση blunderdb@proton.me

Ευχαριστίες

Αφιερώνω αυτό το μικρό λογισμικό στη σύντροφό μου Anne-Claire και στη γλυκιά μας κόρη Perrine. Θέλω να ευχαριστήσω ιδιαίτερα μερικούς φίλους:

  • Tristan Remille, για τη μύησή μου στο τάβλι με χαρά και καλοσύνη· για το ότι μου δείχνει τον Δρόμο στην κατανόηση αυτού του υπέροχου παιχνιδιού· για το ότι συνεχίζει να με ενθαρρύνει παρά τις φτωχές μου προσπάθειες να παίξω καλύτερα.

  • Nicolas Harmand, χαρούμενος σύντροφος εδώ και πάνω από μια δεκαετία σε υπέροχες περιπέτειες, και φανταστικός συμπαίκτης από τότε που κόλλησε τον ιό του τάβλι.