blunderDB
blunderDB è un software per creare database di posizioni di backgammon. Il suo punto di forza principale è offrire un unico luogo in cui un giocatore può aggregare le posizioni incontrate (online, in torneo) e poter ristudiare queste posizioni filtrandole secondo diversi filtri combinabili arbitrariamente. blunderDB può anche essere utilizzato per creare cataloghi di posizioni di riferimento.
La presente documentazione è strutturata nel modo seguente:
la sezione download e installazione spiega come procurarsi e avviare blunderDB.
il manuale descrive il funzionamento generale di blunderDB.
la guida utente è un’introduzione pratica per utilizzare rapidamente blunderDB.
l’elenco dei comandi e l’elenco delle scorciatoie da tastiera permettono un utilizzo efficiente di blunderDB.
la sezione interfaccia a riga di comando (CLI) descrive i comandi disponibili per l’importazione massiva, l’automazione e lo scripting.
le FAQ forniscono alcune risposte alle domande più frequenti.
Cronologia delle versioni
Versione |
Data |
Causa e/o natura delle modifiche |
|---|---|---|
0.1.0 |
31 dicembre 2024 |
Creazione versione beta. |
0.2.0 |
6 gennaio 2025 |
Correzioni di vari bug. Aggiunta di tabelle match/TP/GV. Aggiunta di filtri di ricerca (mosse, decisione di cubo, data). Aggiunta di metadati sulle posizioni. Funzione di importazione/esportazione tra istanze di blunderDB. Aggiunta di funzione di metadati sui database. Introduzione dei numeri di versione (database e applicazione). |
0.3.0 |
27 gennaio 2025 |
Correzioni di vari bug. Salva automaticamente le dimensioni della finestra. Importa gli eventuali commenti da XG. |
0.4.0 |
3 febbraio 2025 |
Correzioni di vari bug. Aggiunta di un’icona per blunderDB. Correzioni dei filtri. Aggiunta del supporto a macOS. |
0.5.0 |
4 febbraio 2025 |
Aggiunta di nuovi filtri (specchio, non contatto, jan blot, outfield blot). |
0.6.0 |
13 febbraio 2025 |
Aggiunta della libreria di filtri. Visualizzazione della versione del database nei metadati. |
0.7.0 |
16 febbraio 2025 |
Supporto del giapponese e del tedesco nelle esportazioni di XG. |
0.8.0 |
3 maggio 2025 |
Possibilità di nascondere il conteggio dei pip. Caricamento di una posizione casuale. |
0.9.0 |
2 novembre 2025 |
Correzione di bug della libreria di filtri. Importazione/esportazione di database. Visualizzazione di frecce per le mosse selezionate. Scorciatoie da tastiera per l’importazione/esportazione. |
0.10.0 |
25 febbraio 2026 |
Importazione di match da eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) e BGBlitz (BGF/TXT). Navigazione nei match: scorrimento delle mosse di un match importato, con evidenziazione della mossa giocata. Pannello dei match: elenco, ordinamento, modifica inline, scambio dei giocatori, assegnazione del torneo. Importazione per cartella ricorsiva e importazione tramite trascinamento. Calcolatore EPC (Effective Pip Count) con database di bearoff GNUbg integrato. Collezioni: raggruppamento personalizzato di posizioni. Tornei: raggruppamento di match per evento. Salvataggio e ripristino dello stato della sessione (ultima ricerca, posizione corrente). Migrazione automatica dello schema del database. Visualizzazione multi-motore nell’analisi. Filtro per errori/blunder del giocatore 1 nelle ricerche. Esportazione del database con selezione granulare (match, collezioni, tornei, mosse giocate). Pulsante di navigazione nei match. Conteggio dei pip nella navigazione dei match. Interfaccia a riga di comando (CLI) completa. Riapertura automatica dell’ultimo database. Miglioramento della barra degli strumenti e delle icone. |
0.11.0 |
6 marzo 2026 |
Filtro di ricerca all’interno delle posizioni correnti. Aggiunta di filtri per match e per torneo. Cancellazione automatica del tavoliere all’apertura del pannello di ricerca. |
0.12.0 |
19 marzo 2026 |
Importazione di file di posizione eXtreme Gammon (XGP) con analisi. |
0.13.0 |
28 marzo 2026 |
Semplificazione dell’interfaccia: la navigazione nei match e nelle collezioni avviene direttamente tramite i pannelli. Riga di comando integrata nella barra di stato. Pannello Console rinominato in pannello Log. Pannello EPC dedicato nel pannello inferiore. Copia/incolla di posizione nel pannello di ricerca. Trascinamento per riordinare le collezioni, le posizioni all’interno delle collezioni e i match all’interno dei tornei. Colonna torneo nel pannello dei match con modifica inline. Visualizzazione automatica del pannello di analisi dopo una ricerca. |
0.14.0 |
30 marzo 2026 |
Pannello Anki dedicato per lo studio a ripetizione dilazionata (algoritmo FSRS). Importazione dei commenti dai file XG. |
0.15.0 |
31 marzo 2026 |
Esportazione della posizione come immagine PNG negli appunti (solo tavoliere tramite Ctrl+X, oppure tavoliere con analisi tramite Ctrl+X Ctrl+X). |
0.16.0 |
18 aprile 2026 |
Schema del database v2.0.0: deduplicazione delle posizioni tramite hash Zobrist, colonne di filtraggio denormalizzate, prefiltro di motivi bitboard, journaling WAL. Importazione in batch >=3 volte più veloce, ricerca filtrata <=100 ms su oltre 10k posizioni. NOTA: i file DB creati con la v0.16.0 non possono essere aperti dalle versioni più vecchie; i vecchi DB vengono migrati automaticamente sul posto (eseguire prima un backup). |
0.17.0 |
20 aprile 2026 |
Ottimizzazione dello storage: compressione zlib dei dati di analisi (~80% di riduzione), codifica compatta delle posizioni (~90% di riduzione della dimensione). Aggiunta di 5 indici mancanti per migliorare le prestazioni di ricerca. Correzione della ricerca per errore di cubo. Correzione della modalità EDIT dopo una ricerca senza risultati. Ripristino dello stato del pannello di ricerca al cambio di scheda. Rimozione di 62 istruzioni di debug dai percorsi critici. |
0.18.0 |
20 aprile 2026 |
Refactoring importante del codice: suddivisione di db.go (10k righe) in 19 file specializzati, estrazione di 7 moduli di servizio da App.svelte (4888→469 righe), consolidamento degli store modali/pannelli. Migrazione completa a Svelte 5 runes. Sostituzione di 9 modali di tabella con un componente generico DataTableModal. Aggiunta di ESLint + Prettier + vitest (125 test frontend) con CI. Conformità WCAG 2.1 AA (focus visibile, ruoli ARIA, navigazione da tastiera). Passaggio del mutex Database a RWMutex per un migliore parallelismo in lettura. Documentazione CLI completa (CLI_USAGE.md + Sphinx FR/EN). Riscrittura del README. Correzione di tutti gli avvisi ESLint (46→0) e Vite (6→0). |
0.19.0 |
7 maggio 2026 |
Aggiunta del pannello Stats: indicatori PR (Performance Rate), Snowie Error Rate e MWC cost (Match Winning Chance cost), barra di filtro (giocatore, torneo, date, tipo di decisione, lunghezza del match), scheda Dashboard con schede di livello / PR mobile / top blunder, scheda Progressione con curva per torneo e scatter plot per match, scheda Errori con ripartizione per azione di cubo e istogramma delle magnitudini. Drill-down interattivo verso le posizioni / match / tornei da tutti gli indicatori. Toggle PR / MWC istantaneo. Comando CLI list –type stats. Allineamento degli indicatori PR / Snowie ER / MWC con eXtremeGammon e gnuBG (soglia di equità 0.16 per i cubi marginali). Correzione del calcolo di cube_error per le decisioni Double/Pass. Documentazione del modello statistico (Appendice: modello statistico — allineamento XG / gnuBG / blunderDB). Vedi Pannello Stats. |
0.20.0 |
31 maggio 2026 |
Aggiunta della struttura di esclusione Except al pannello di ricerca: esclude le posizioni che contengono uno dei pezzi disegnati, con marcatore « deve essere vuoto » (doppio clic) e numero di pezzi per punto non limitato (comando x). Aggiunta dell’opzione « solo primo dado » al filtro di lancio dei dadi (variante D1, opzione CLI –dice). Pannello Commenti: focus automatico del campo di immissione all’apertura e pulsanti modifica / elimina sempre visibili. Correzione del filtro « Search Text » che non trovava tutti i tag dei commenti. |
0.21.0 |
1 giugno 2026 |
Internazionalizzazione dell’interfaccia: l’intero blunderDB (barra degli strumenti, pannelli, messaggi, aiuto) può ora essere visualizzato a scelta in inglese, francese, tedesco, italiano, spagnolo, finlandese, giapponese, greco o russo. Aggiunta di una finestra di configurazione, accessibile tramite un pulsante a forma di ingranaggio nella barra degli strumenti, che permette di selezionare la lingua. La scelta della lingua viene conservata da una sessione all’altra. Vedi Configurazione. |
0.22.0 |
2 giugno 2026 |
Aggiunta di una modalità headless (server), avanzata e facoltativa, che completa l’applicazione desktop: un demone |
0.23.0 |
5 giugno 2026 |
Aggiunta di visite guidate dell’interfaccia (visita generale, ricerca, partite, tornei), ripetibili dalla barra degli strumenti o con il comando |
0.24.0 |
6 giugno 2026 |
Aggiunta un’immagine container (Docker) per la modalità headless: un punto di ingresso dedicato |
0.25.0 |
7 giugno 2026 |
Modalità server (headless): due nuovi metodi per ricostruire una posizione senza salvarla — |
0.26.0 |
9 giugno 2026 |
Impostazioni di visualizzazione dell’interfaccia nella finestra di configurazione: un cursore di scala per ingrandire o ridurre l’intera interfaccia, e una scelta della posizione dei pannelli (in basso, di lato o automatica) per sfruttare meglio gli schermi larghi. Aggiunta di una barra delle informazioni sopra il tavoliere che ricorda i giocatori e il contesto del match (evento, luogo, turno, data, lunghezza). All’apertura di un database, il pannello dei match viene mostrato subito e la revisione inizia sulla prima posizione. Le scorciatoie da tastiera sono ora indipendenti dal layout della tastiera (AZERTY, QWERTY, QWERTZ…). Correzione della decodifica XGID (indicatori Jacoby/Beaver e valore del videau). Vedere Configurazione. |
0.27.0 |
13 giugno 2026 |
Pannello Anki: una nuova modalità di allenamento libero (cram), accessibile dal pulsante Cram accanto a Study, che mostra posizioni casuali del mazzo senza modificare la pianificazione della ripetizione dilazionata — ideale per scaldarsi prima di un torneo o ripassare intensamente un mazzo senza alterarne l’ordine. Ricerca: un nuovo comando |
Indice
- 1. Download e installazione
- 2. Manuale
- 2.1. Introduzione
- 2.2. Interazioni principali
- 2.3. Descrizione dell’interfaccia
- 2.4. Configurazione
- 2.5. Visite guidate e database di esempio
- 2.6. Navigazione tra le posizioni
- 2.7. Modifica delle posizioni
- 2.8. La riga di comando
- 2.9. Pannello Analisi
- 2.10. Pannello Commenti
- 2.11. Pannello Ricerca
- 2.12. Pannello Raccolte
- 2.13. Pannello Match
- 2.14. Pannello Tornei
- 2.15. Pannello Stats
- 2.16. Pannello EPC
- 2.17. Pannello Anki
- 2.18. Pannello Metadati
- 2.19. Pannello Registro
- 3. Guida utente
- 3.1. Creare un nuovo database
- 3.2. Aprire un database esistente
- 3.3. Importare e unire un database
- 3.4. Modificare una posizione
- 3.5. Aggiungere una posizione al database
- 3.6. Etichettare una posizione
- 3.7. Eliminare una posizione
- 3.8. Importare una posizione da XG
- 3.9. Importare un match
- 3.10. Importare una cartella di match
- 3.11. Trascina e rilascia
- 3.12. Navigare in un match
- 3.13. Gestire il pannello dei match
- 3.14. Gestire le collezioni
- 3.15. Gestire i tornei
- 3.16. Visualizzare le statistiche di performance
- 3.17. Calcolare l’EPC
- 3.18. Visualizzare l’analisi di una posizione importata da XG
- 3.19. Esportare una posizione verso XG
- 3.20. Visualizzare le diverse posizioni
- 3.21. Cercare posizioni in base a criteri
- 4. Elenco dei comandi
- 5. Scorciatoie da tastiera
- 6. Interfaccia a riga di comando (CLI)
- 6.1. Introduzione
- 6.2. Sintassi generale
- 6.3. Comandi disponibili
- 6.4. create — Creare un database
- 6.5. import — Importare dati
- 6.6. export — Esportare dati
- 6.7. search — Cercare posizioni
- 6.8. list — Elencare il contenuto
- 6.9. match — Visualizzare un match
- 6.10. info — Metadati del database
- 6.11. edit — Modificare i metadati
- 6.12. verify — Verificare l’integrità
- 6.13. delete — Eliminare dati
- 6.14. Esempi di flusso di lavoro
- 6.15. Codici di uscita
- 7. Domande frequenti (FAQ)
- 7.1. A cosa serve blunderDB?
- 7.2. Cosa ha motivato la creazione di blunderDB?
- 7.3. Come salvare lo stato del database corrente?
- 7.4. Devo creare database diversi per categorie diverse di posizioni?
- 7.5. Come unire più database?
- 7.6. Quali formati di file di match sono supportati?
- 7.7. Che cos’è una collezione?
- 7.8. Che cos’è l’EPC?
- 7.9. blunderDB dispone di un’interfaccia a riga di comando?
- 7.10. Posso modificare, copiare, condividere blunderDB?
- 7.11. Quale formato di dati utilizza blunderDB?
- 7.12. Quali sono stati i principi di progettazione di blunderDB?
- 7.13. Qual è l’architettura software di blunderDB?
- 7.14. Su quali piattaforme funziona blunderDB?
- 7.15. Da dove proviene l’icona di blunderDB?
- 8. Modalità headless (server)
- 9. Appendice: Utilizzo avanzato dei filtri
- 10. Appendice Windows: rilevamento errato di blunderDB come malware
- 11. Appendice Mac: possibile blocco di blunderDB
- 12. Appendice: Schema del database
- 13. Appendice: modello statistico — allineamento XG / gnuBG / blunderDB
Contatti
Autore: Kévin Unger <blunderdb@proton.me>. Puoi anche trovarmi su Heroes con il nickname postmanpat.
Ho sviluppato blunderDB inizialmente per uso personale, per poter individuare schemi ricorrenti nei miei errori. Ma è molto gratificante ricevere riscontri, soprattutto dopo aver dedicato un mucchio di ore a progettazione, programmazione, debug… Quindi non esitare a scrivermi per condividere la tua esperienza. Tutti i riscontri (costruttivi) sono benvenuti.
Ecco diversi modi per discutere:
unirsi al server Discord di blunderDB: https://discord.gg/DA5PpzM9En
scrivermi una mail a blunderdb@proton.me,
parlare con me, se ci incontriamo a un torneo,
su Github,
aprire un ticket: https://github.com/kevung/blunderDB/issues
per correzioni di bug o proposte di miglioramento, creare una pull request.
Fare una donazione
Se apprezzi blunderDB e vuoi sostenere gli sviluppi passati e futuri, puoi
offrirmi da bere se abbiamo il piacere di incontrarci!
fare una piccola donazione tramite PayPal all’indirizzo blunderdb@proton.me
Ringraziamenti
Dedico questo piccolo software alla mia compagna Anne-Claire e alla nostra cara figlia Perrine. Desidero ringraziare in modo particolare alcuni amici:
Tristan Remille, per avermi avviato al backgammon con gioia e benevolenza; per indicare la Via nella comprensione di questo meraviglioso gioco; per continuare a incoraggiarmi nonostante i miei modesti tentativi di giocare meglio.
Nicolas Harmand, allegro compagno ormai da più di una decina d’anni in belle avventure, e un fantastico compagno di gioco da quando ha preso il virus del backgammon.