Cronologia delle versioni
Le versioni sono elencate dalla più recente alla più antica, un punto elenco per cambiamento, e ogni versione termina con i rimandi alle pagine che descrivono in dettaglio ciò che ha apportato. Un punto elenco che una versione successiva ha disfatto porta la menzione di quella che l’ha sostituito: racconta la storia del software, non descrive la versione installata.
Dopo un aggiornamento
La migrazione dello schema del database è automatica all’apertura, e senza ritorno: un database migrato non è più leggibile da una versione precedente di blunderDB, da cui il backup preventivo (Appendice: Schema del database). Il resto non avviene da solo, perché nessuno di questi dati è retroattivo:
Rianalizzare le posizioni obsolete (0.38.0, 0.40.0). Un’analisi gammonNet scritta prima della versione 0.40.0 è stata prodotta da un motore precedente (da allora gammonNet v1.7.0):
blunderdb analyze --stale, o la riga Analisi gammonNet obsolete della scheda Manutenzione, la riscrive. Un’analisi importata non viene mai toccata.Reimportare i file sorgente per ottenere la fortuna (0.33.0). I match importati prima portano un trattino nella colonna Fortuna, e un trattino non è uno zero. I formati che non trasportano la fortuna (BGF, Jellyfish
.mat) non ne forniranno mai.Reimportare i file XG per ottenere i contrassegni (0.30.0). I contrassegni posti in eXtreme Gammon si uniscono al database al reimport, senza toccare i commenti o le analisi esistenti.
Lanciare il recupero di analisi gammonNet (0.34.0), dall’interfaccia, tramite
blunderdb analyzeo in modalità server: colma le posizioni che non hanno alcuna analisi, senza mai sovrascrivere un’analisi importata.Rilanciare il recupero dell’analisi gammonNet (0.39.0). La migrazione cancella i verdetti gammonNet di un’accettazione o di un rifiuto, calcolati come decisione di chi riceve il raddoppio; il recupero li riscrive come decisione di chi raddoppia prima del raddoppio.
Riparare i match con i giocatori invertiti (0.40.0). Prima della 0.40.0, l’inversione sostituiva le posizioni del match con altre, senza analisi:
blunderdb match repair --listtrova i match che differiscono dal loro file sorgente, ematch repair --ido il pulsante ⟲ della scheda li riscrivono a partire da quel file.
0.44.0 (2026-10-19)
L’esercizio Apertura sceglie tra due modalità: Categorie XG (Money, DMP, Gammon save e Gammon go, combinabili) oppure Match a 5, che estrae alla pari uno dei venticinque punteggi di un match a 5 punti, DMP e partite Crawford compresi, senza alcun punteggio da scegliere. La griglia dei punteggi di match a 7 scompare.
Il libro d’apertura integrato comprende i venticinque punteggi di un match a 5: si aggiungono 2-4, 4-2, 2-5, 5-2, 3-5, 5-3 e le partite Crawford 1-3, 3-1, 1-5 e 5-1;
blunderdb openingbooke le rotteopeningbook.*del server li servono come gli altri punteggi.Lato server:
search.findordina per conteggio dei pip e per data,analyses.queueStatusdescrive la coda di analisi, le statistiche si filtrano per avversario,positions.setIndividuallyImportedtoglie il segno «inserita a mano» di una posizione, ematches.lastVisitedrestituisce l’ultimo match visitato, non più l’ultimo importato;blunderdb statsaccetta--opponent.Vedere Pannello Allenamento, openingbook — Quale mossa a questo punteggio? e Contratto API.
0.43.0 (2026-10-18)
L’esercizio Apertura estrae per categorie: Money, DMP, Gammon save (chi apre a 1 away Crawford, chi risponde a 2 away) e Gammon go (l’inverso), una categoria alla pari con le altre e poi uno dei suoi punteggi; la consegna nomina la categoria accanto al punteggio. La griglia dei punteggi di match a 7 resta un’opzione, deselezionata in partenza, perché da 4 a 7 away le mosse migliori cambiano appena da un punteggio all’altro.
Il libro d’apertura integrato comprende il gioco a soldi e il DMP:
blunderdb openingbooke le rotteopeningbook.*del server li servono come gli altri punteggi.Vedere Pannello Allenamento, openingbook — Quale mossa a questo punteggio? e Libro d’apertura: scarto, IC 95 % e parità.
0.42.0 (2026-10-17)
Quale mossa a questo punteggio? L’esercizio Apertura: la scheda Allenamento pone la mossa d’apertura (1st roll) o la risposta (2nd roll) di una partita a un punteggio, giocata sulla tavola e giudicata rispetto a un libro d’apertura integrato, calcolato dai rollout di blunderDB su venti punteggi; ogni mossa alla pari con la migliore è giusta, e con 2nd roll la mossa d’apertura già giocata è estratta tra queste. Il verdetto è un segno giusto o sbagliato e la tabella dei candidati del libro.
train opening,blunderdb openingbooke le rotteopeningbook.*del server ne sono le altre forme.INVIO concatena le domande di allenamento: durante una Decisione o un”Apertura, INVIO convalida la mossa giocata sulla tavola, ovunque sia il focus fuori da un campo, un pulsante o una finestra, poi passa alla domanda successiva, o termina la sessione, una volta mostrato il verdetto; due pressioni ravvicinate non valutano la risposta due volte.
Lato server: la rotta
matches.byPositionelenca i match in cui è stata giocata una mossa su una posizione, e l’importazione di un file XG in una base PostgreSQL fa la metà delle query per posizione e va due volte più veloce.Correzioni rilevanti: un file di match in cui una posizione ha sedici pedine per un lato è rifiutato dal server come non valido, e non più con un errore interno.
Vedere Pannello Allenamento, Scorciatoie da tastiera, openingbook — Quale mossa a questo punteggio?, Libro d’apertura: scarto, IC 95 % e parità e Contratto API.
0.41.0 (2026-10-16)
Leggere una posizione da uno screenshot: incollare, trascinare o aprire uno screenshot del tavoliere di eXtreme Gammon sul tavoliere di modifica ne legge pedine, dadi, cubo e punteggio, senza alcun modello addestrato; le letture dubbie sono cerchiate sul tavoliere e nulla viene registrato prima del gesto abituale.
blunderdb capturee la rottapositions.fromImagedel server ne sono le altre forme.Il giocatore principale e la finestra Gestisci giocatori: la stella di un giocatore lo designa come giocatore principale, posto al posto 1 all’importazione, e propone di invertire in una volta i match in cui gioca dal lato opposto; la finestra elenca i giocatori con i loro alias (× annulla un’unione) e il numero di match, che aprono quei match.
blunderdb players maineplayers matchese le rotteplayers.main.*ne sono le altre forme. Nel pannello Tornei, il PR e l’MWC di una riga sono quelli del giocatore principale non appena vi ha giocato.Importare un database riprende anche i match: con le loro partite, mosse, analisi e origine, i tornei (con la loro Direzione e il loro Incontro), le bozze di trascrizione e gli alias dei giocatori, senza duplicati e senza nulla cambiare alla reimportazione dello stesso file; una collezione viva o un filtro salvato che designa righe tramite il loro numero è rinumerato per il database che riceve.
blunderdb import --type databasee il server fanno lo stesso.Un’anteprima prima di esportare: la finestra di esportazione conta, famiglia per famiglia, ciò che il file conterrà, prima di scriverlo;
blunderdb export --plane la rottaexports.planne danno lo stesso conteggio. Un torneo scelto porta sempre con sé i suoi match, e la Direzione e l’Incontro di un torneo partono con lui.Annullare l’ultima revisione Anki: il pulsante Annulla della revisione, o il tasto u, riprende l’ultima valutazione della sessione e mostra di nuovo la carta;
blunderdb anki card --action undoe la rottaanki.undoReviewdel server compiono lo stesso gesto.La ricerca di gammonNet si distribuisce sui core liberi: gammonNet v1.8.0 suddivide una ricerca a 2 livelli e più su più core, con gli stessi numeri che su uno solo; tutti i calcoli di un processo (analisi, lotto, pannelli, server) attingono a un unico budget di core, e il server conta per un’unità il tempo di ogni core che occupa.
Spuntare i giocatori nella legenda dei grafici di un match: deselezionare un giocatore nasconde i suoi segni nei tre grafici, e passaggio del mouse, clic e frecce puntano soltanto all’altro; l’impostazione è memorizzata per match.
I conteggi delle statistiche aprono le loro posizioni: i pannelli Bias, Prima/dopo e Tempo aggiungono a ogni conteggio di decisioni una colonna Posizioni che apre le posizioni distinte interessate.
Una trascrizione più leggibile: il tasto numerico indica il suo effetto con un indicatore di modalità (Inserimento o Modifica) e l’effetto di Invio; le frecce del tavoliere seguono la mossa scritta nella decisione sotto il cursore, in grigio, e un passo illegale è disegnato in rosso tratteggiato; scegliere la prima riga dell’analisi sostituisce la decisione.
Il video non blocca più l’applicazione: il pannello video riprende la riproduzione dopo un salto che non riesce, non ricarica mai un video in pausa, e nomina i plugin GStreamer mancanti; un file
.webmo.mkvmal multiplexato è segnalato all’apertura con il comandoffmpegche lo ripara senza ricodifica.Correzioni rilevanti: una mossa giocata è abbinata ai suoi candidati tramite il tavoliere in cui arriva e non tramite la sua notazione, così due mosse della stessa forma ma con prese diverse non sono più confuse; uno screenshot a scala frazionaria è letto correttamente; un video in pausa non viene più ricaricato.
Vedere Manuale, Scorciatoie da tastiera, Interfaccia a riga di comando (CLI), Modalità headless (server) e Contratto API.
0.40.0 (2026-10-12)
La ricerca gammonNet a 3 e 4 ply è diverse volte più veloce: una sola risposta per nodo interno, e una radice a stadi che porta a piena profondità solo i migliori candidati di una classifica a 2 ply; il motore passa a gammonNet v1.7.0. Ogni analisi gammonNet scritta prima è obsoleta e si riscrive con la riga Analisi gammonNet obsolete della scheda Manutenzione; un rollout la cui politica gioca a 3 ply non dà più le stesse cifre.
Un’analisi gammonNet si annulla durante la ricerca: la barra di stato mostra la sua profondità e il suo avanzamento, e il suo pulsante di annullamento interrompe anche una ricerca profonda già iniziata, nell’interfaccia, nella riga di comando e nel server.
La scheda Manutenzione delle impostazioni mostra lo stato di salute del database, una riga per operazione (posizioni senza analisi, analisi gammonNet obsolete, match senza statistiche, spazio recuperabile…) con il suo conteggio, la sua ultima esecuzione e la sua azione; nulla vi si avvia da solo, e
blunderdb maintenancee le rottemaintenance.*del server ne sono le altre forme. Aprire un database non vi scrive più nulla: le statistiche di un match si calcolano alla prima lettura o da questa scheda.Una sola operazione lunga scrive nel database alla volta: durante un’operazione di manutenzione, un’analisi gammonNet o un rollout, un’altra azione viene rifiutata con il nome di quella che occupa il database, e un’analisi automatica (dopo un’importazione, una trascrizione o un Duello) attende il suo turno.
L’esportazione Anki .apkg: un pacchetto di studio o una collezione si scrive come pacchetto Anki
.apkg, che l’applicazione Anki importa su computer o telefono (AnkiDroid, AnkiMobile); ogni posizione diventa una carta, con la scacchiera, il punteggio, il cubo e i dadi sul fronte, la mossa migliore o la corretta decisione di cubo, la sua equity e l’errore della mossa giocata sul retro. Il pulsante di esportazione del pannello Anki,blunderdb anki exporte la routeanki.exportApkgdel server ne sono le tre forme, e una riesportazione aggiorna le carte in Anki invece di duplicarle.Il Duello parte da dove si vuole: la barra d’intestazione del pannello Duello imposta la Partenza — la posizione iniziale, o la scacchiera modificata come nel pannello Eval, con il suo punteggio e i campi del punteggio che formano un tutt’uno —, gioca i dadi della scacchiera o li fa rilanciare, e colloca la decisione di cubo prima o dopo il lancio; Una sola partita ferma il Duello alla fine della sua prima partita, per allenarsi su un punteggio.
blunderdb duel createaccetta--away,--reroll,--after-cubee--single-game.Le cadenze in minuti per punto: Standard (2 min per punto + 12 s), Speed (0,4 min per punto + 10 s) o una cadenza salvata con un nome; la riserva di ciascun giocatore è rapportata alla lunghezza del match, o a ciò che resta da giocare a partire da un punteggio di partenza.
Il pipcount nascosto durante un Duello: deselezionato all’avvio, resta nascosto anche con il pulsante della barra degli strumenti o con P, e ritorna all’uscita dal Duello.
Ruotare il video: il pulsante ⟳ della barra video, presente anche nella barra della modalità teatro, o il tasto o ruota il video di un quarto di giro, file locale come link YouTube; l’angolo viene ricordato per la bozza, su questo computer.
La data di un torneo dedotta dai suoi match: un torneo senza data prende quella del suo match più vecchio, mostrata in grigio e proposta dal modulo di modifica, senza essere scritta nel database; ogni riga del pannello Tornei inizia con # e Date come nel pannello Match, e la Progressione dispone i tornei in ordine cronologico.
La scheda del match nel pannello Tornei: un clic su un match di un torneo mostra sotto la tabella la scheda del pannello Match, con le sue schede, e un campo filtro restringe l’elenco dei tornei mentre si digita.
Tutta la libreria si esporta allo stesso modo ovunque: la nuova finestra di esportazione — una riga per famiglia con il suo conteggio, il file scelto per ultimo —,
blunderdb export --type databasee il server portano le stesse famiglie: match con le loro bozze di trascrizione e gli alias dei loro giocatori ed eventi, collezioni, tornei, pacchetti Anki con o senza la loro cronologia di revisione (--anki-history, carte sospese incluse), ciascuna eliminabile o ristretta a degli identificatori (--match-ids,--tournament-ids…). Una collezione viva o un filtro salvato che designa posizioni, match o tornei con il loro numero viene rinumerato per il file, e una collezione viva vi è valutata sotto il limite di 5 000 posizioni; il file sorgente e il video locale di un match partono ridotti al loro nome, un URL di video senza le credenziali che porta. Un elenco filtrato esporta solo i match in cui le sue posizioni sono state giocate, ciascuno con tutte le sue posizioni.Riparare un match dal suo file sorgente: il pulsante ⟲ della riga File sorgente della scheda, o
blunderdb match repair, rilegge il file e riscrive le posizioni, le analisi e gli errori del match come un’importazione nuova, conservando ciò che è stato inserito dopo (torneo, nomi, inversione dei giocatori, commenti, trascrizione, video e punti di riferimento) e le analisi più profonde;match repair --listtrova i match che differiscono dal loro file, e la routematches.repaircompie lo stesso gesto sul server.Il pannello Stats: un solo filtro, condiviso da tutte le schede, con un campo giocatore che cerca mentre si digita; il filtro delle date conta per intero il suo ultimo giorno, e il filtro Motore è un menu dei motori presenti nelle analisi del database (
blunderdb stats engines). Ogni tabella si ordina e si filtra per colonna (>500,3-7…), e il suo ordinamento viene ricordato. Ogni conteggio apre esattamente ciò che conta — match, tornei, posizioni, blunder —, la riga di un giocatore lo mette nel filtro, e l’intestazione di un match, la barra di analisi e un torneo aprono Stats su di essi;blunderdb stats matchesestats tournamentsdanno i match e i tornei che una cifra conta. La classifica lascia la scheda Corpus per la scheda Giocatori, ordinata per PR (stats rankingla dà sempre nella riga di comando); la riga sorvolata di una tabella è colorata.La finestra Fusione di giocatori resta aperta tra due fusioni; Chiudi o ESC la chiude.
Restare fuori si inserisce con un tasto nella Trascrizione: quando il giocatore di turno è sulla barra, f inserisce un tiro che non lo fa rientrare — il primo, prima i non doppi — e il turno passa senza mossa da digitare; fuori dalla barra, o se ogni tiro rientra, non viene inserito nulla e la barra di stato lo segnala.
L’abbandono si inserisce con un tasto nella Trascrizione: r apre la scelta del livello (semplice, gammon, backgammon); nella modalità teatro, una piccola finestra lo propone, e i tasti 1, 2 e 3 lo convalidano.
La mossa si gioca sulla mini-scacchiera della modalità teatro: stessi gesti che sul tavoliere, clic destro per riprendere la mossa; le frecce della mossa precedente scompaiono dal primo passo.
La casella Post-Crawford della Trascrizione compare al punteggio di partenza quando un giocatore è a L-1; ogni segno di incoerenza della trascrizione mostra il suo motivo.
La scala dell’interfaccia si regola da tastiera: Ctrl++, Ctrl+- e Ctrl+0 la ingrandiscono, la riducono e la ripristinano, come in un browser; l’interfaccia ingrandita occupa tutta la finestra.
Il rollout passa a MAIUSC-R; r resta la posizione casuale.
Correzioni rilevanti: invertire i giocatori di un match, nella 0.39.0 e prima, sostituiva le sue posizioni con altre, senza analisi, e toglieva le sue decisioni dal PR, dal MWC e da L₇; l’inversione ora tocca solo i nomi e i posti e conserva le analisi e le cifre al bit, e un match già danneggiato si ripara dal suo file sorgente con
match repairo il pulsante ⟲ della sua scheda. gammonNet non va più in overflow su un doppio con moltissime mosse, che faceva fallire un rollout non troncato; la curva « PR per match » compare su Linux; un conteggio di posizioni del pannello Stats esce dalla modalità match prima di aprire il suo elenco; aprire un torneo da Stats lo seleziona nel pannello Tornei; la carta di un’esportazione.apkgnomina la partita Crawford e post-Crawford; la mini-scacchiera della modalità teatro segue l’orientamento del tavoliere principale; un clic sulla cronologia della trascrizione non viene più spostato dal video in riproduzione, e i salti del video sono limitati e serializzati; una correzione non lascia più pedine in eccesso, e la catena delle posizioni successive viene ricalcolata dopo una modifica.Vedere Manuale, Interfaccia a riga di comando (CLI) e Modalità headless (server).
0.39.0 (2026-10-10)
Il video di un match: un file locale o un link YouTube si collega a un match, e il pannello Match apre il video un secondo prima del lancio della decisione studiata (icona della riga o tasto v).
Il video accanto alla scacchiera: l’area della scacchiera si divide tra il video e la scacchiera, ai due lati di una maniglia la cui posizione viene ricordata; ⇄ o la maniglia sceglie il lato del video, [ e ] regolano la sua velocità, che un grande indicatore mostra al centro del video.
La Trascrizione segue un video: il riquadro video pone i punti di riferimento di ogni azione (istante del lancio, istante dell’azione), SPAZIO, MAIUSC con le frecce, v e MAIUSC-V guidano la riproduzione e i punti di riferimento, un clic su una cella porta il video al suo punto di riferimento, e il Cursore segue il video durante la riproduzione.
La durata di ogni mossa si legge in una colonna della trascrizione, dedotta dai riferimenti; una mossa senza istante di azione ha una durata stimata, mostrata come le altre.
La barra della Trascrizione si legge in tre gruppi: le bozze, l’inserimento con il menu Video (file locale, link YouTube, rimuovi il video), poi Fine, Abbandona e un menu ⋯ che contiene il testo e l’esportazione
.mat.La modalità teatro: F11 porta la finestra a schermo intero con il video, una mini-scacchiera fluttuante sopra, mentre la tastiera di inserimento resta attiva.
La scheda di un match a schede: l’intestazione e la sintesi del bilancio per giocatore restano in alto, e sotto le schede Trascrizione, Grafici, Da rivedere, Dettagli, Info e Statistiche scorrono ciascuna per conto proprio; la scheda scelta viene ricordata, e i grafici si dividono l’altezza della scheda Grafici.
Il bilancio del match: le decisioni da rivedere, il risultato corretto per la fortuna convertito in MWC, il ritmo degli errori (affrettati o ponderati, rispetto alla mediana delle durate del giocatore) e il PR e la perdita L₇ con i loro intervalli;
blunderdb match --format summarye la routestats.matchReviewlo forniscono anche.La perdita MWC riferita a un match a 7 punti (L₇) si legge accanto al PR nell’elenco dei match, nelle statistiche del match, nei tornei, nella dashboard e nella progressione, oltre che in
blunderdb stats,stats progressionematch.La difficoltà di ogni decisione e l”errore evitabile: la trascrizione e il grafico della perdita li mostrano, e l’intestazione del match dà per giocatore la difficoltà, l’eccesso, il rapporto e il numero di errori evitabili.
Un intervallo al 95 % accompagna il PR e ogni cella delle ripartizioni, ricampionato per match.
Il bilancio di un torneo: il pulsante Bilancio del pannello Tornei confronta il torneo di un giocatore con il suo livello abituale, ripartito per turno, per rango di decisione, per punteggi di pressione e per ritmo, poi per famiglie di errori;
blunderdb stats tournamente il server lo forniscono anche.La scheda Piano di studio della dashboard classifica le famiglie di errori per MWC recuperabile, e ciascuna alimenta la coda di studio, un quiz o un pacchetto Anki;
blunderdb stats planne è la forma da riga di comando.Prima/dopo lo studio e bias con segno: la dashboard misura se ciò che è stato studiato costa meno in match, e in quale direzione il giocatore sbaglia;
blunderdb stats effectestats biasesli forniscono anche.Le posizioni di riferimento: il pulsante Proponi… del pannello Collezioni propone le posizioni da studiare su un ambito (database, match in corso, torneo, filtro delle Statistiche), per farne una collezione, un pacchetto Anki o un quiz;
blunderdb collection suggestne è l’altra forma.Un match passa dal cestino: eliminato, si ripristina identico, con il suo numero, la sua data di importazione, le sue partite, le sue analisi e le sue posizioni;
blunderdb trash delete --kind matchcompie lo stesso gesto.Una pagina Metriche dà la definizione, la formula e i limiti di ogni misura: errore, PR, perdita MWC, difficoltà, intervalli, bilanci, piano di studio, posizioni di riferimento, prima/dopo e bias.
Una mossa si inserisce sul tavoliere allo stesso modo ovunque: nel Duello, nell’Allenamento, nella risposta sul tavoliere di Anki e nella Trascrizione, un clic su una pedina la gioca con il dado sinistro ancora libero, un clic sui dadi ne inverte l’ordine poi convalida la mossa completata, come INVIO, e il clic destro riprende la mossa in corso; l’inserimento di origine poi destinazione scompare.
Anki e l’Allenamento convalidano sul tavoliere: INVIO o un clic sui dadi giudica la mossa giocata, al posto del pulsante Verifica.
La Trascrizione chiede i dadi prima della mossa: senza dadi inseriti, il tavoliere non gioca nulla; inseriti i due dadi, la mossa si gioca sul tavoliere come negli altri modi.
Valuta in una nuova scheda: il clic destro sul tavoliere apre una vista Variante di #n nel pannello Eval, sulla posizione mostrata, e la vista d’origine conserva la sua posizione, il suo elenco e la sua analisi; ogni vista ritrova il proprio tavoliere Eval.
La sfida: il pulsante Sfida della barra degli strumenti (tasto m) copre l’analisi del pannello Analisi fino a un clic, a ogni cambio di posizione; nella revisione di un match, nasconde anche i segni, le perdite e la difficoltà dell’elenco delle mosse.
Ogni conteggio di posizioni si apre con un clic: le colonne Posizioni ed Errori gravi delle suddivisioni, le famiglie del piano di studio (ora un elenco di azioni Studia, Quiz, Anki), i contatori di un mazzo Anki (in scadenza, nuove, in corso, in ripasso), il conteggio di un torneo e i segni di una partita caricano esattamente le posizioni contate.
I pannelli condividono una stessa fascia di intestazione: titolo, contatore e filtri a sinistra, azione principale all’estremità destra (Cerca, Avvia, Gioca…); la Ricerca colloca Criteri, Cronologia e Salvati nella sua fascia.
Una collezione viva si crea con la sua query:
blunderdb collection create --querye la rottacollections.create;collection evaluatela legge per intero fino a 5 000 posizioni dando il totale reale, e un mazzo Anki tratto da una collezione viva rieseguie la sua query a ogni sessione.Il modulo Metadati della Trascrizione occupa il corpo della bozza, su due colonne quando la larghezza lo permette, con la trascrizione che resta visibile; lo stesso pulsante o ESC restituisce l’inserimento.
La ricerca della guida conta ed evidenzia le occorrenze mentre si digita.
Schema 2.41.0: la sorgente video del match e i punti di riferimento di ogni mossa; ogni mossa porta l’errore della propria decisione, e il PR dei match già presenti nel database viene ricalcolato secondo le regole di eXtreme Gammon. La migrazione dalla 2.36.0 è automatica all’apertura e senza ritorno possibile (Appendice: Schema del database).
Correzioni rilevanti: gammonNet analizza un accetto o un rifiuto come la decisione di chi raddoppia prima del raddoppio, rollout inclusi, e la migrazione cancella i verdetti gammonNet obsoleti di queste posizioni; il PR conta le mosse forzate, le decisioni sul cubo e gli errori non segnati come eXtreme Gammon; un file
.xgtroncato viene rifiutato con il codiceinvalid; l’audio disattivato e il volume del video sopravvivono a un cambio di velocità; un trascinamento iniziato in una finestra di dialogo e rilasciato sullo sfondo non la chiude più; ogni scheda della configurazione conserva la sua posizione di scorrimento.Vedere Manuale, Metriche e strumenti di studio, Interfaccia a riga di comando (CLI) e Modalità headless (server).
0.38.0 (2026-10-06)
Il Duello: si gioca un match intero contro il Bot, che gioca la politica di gammonNet, sotto l’arbitraggio di blunderDB — dadi tratti da un seme la cui impronta SHA-256 è pubblicata alla creazione, regole, punteggio e orologi tenuti dall’applicazione. Una scheda Duello, il pulsante « Jouer » della barra degli strumenti e la modalità DUEL; un match da 1 a 25 punti o una sessione a soldi, partenza dalla posizione iniziale, dalla posizione sul tavoliere o da un punteggio scelto, un Duello sospeso e poi ripreso.
blunderdb duele le rotteduels.*del server ne sono le altre due forme.Il Duello si gioca sul tavoliere: prima del lancio, un clic sul tavoliere o sui dadi li lancia e un clic sul cubo propone il raddoppio; un clic su una pedina la gioca, un clic sui dadi ne inverte l’ordine o convalida la mossa, come INVIO o SPAZIO, e il clic destro riprende la mossa in corso o apre il menu del Duello (Pila, abbandono, sospensione, arresto).
La Cadenza e la durata di decisione: una riserva per giocatore e un ritardo gratuito a ogni turno, il tempo scaduto annotato o che fa perdere il match. Ogni decisione di un Duello porta la sua durata, che la revisione mostra (colonna Durée, riepilogo per giocatore, grafico), che la ricerca filtra con
tm>x, combinabile conE>x, e che la scheda Statistiche incrocia con l’errore.L’origine di un Match giocato qui si rilegge in testa alla sua trascrizione: partenza, cadenza, sconfitta a tempo o arresto, livello del Bot e versione di gammonNet di cui ha giocato la politica, seme rivelato e il suo SHA-256, quanto basta per ricalcolare ogni lancio senza fidarsi di blunderDB.
La Pila: il tasto b, il segnalibro della barra degli strumenti o un doppio clic fuori dal tavoliere mette da parte la posizione mostrata, in tutte le modalità, e lo stesso gesto la toglie; un segnalibro nell’angolo del tavoliere lo indica.
blunderdb collection pilecompie lo stesso gesto.I rollout si avviano con un clic destro, dalla tabella delle mosse del pannello Analisi come dal pannello Eval, su una selezione di mosse (Ctrl+clic, Maiusc+clic) o sulla decisione di cubo, con un’impostazione — Rapida, Standard o Libera — conservata da una sessione all’altra. Lo stesso menu copia la posizione con la sua analisi, o con le mosse selezionate.
Senza database aperto, il pannello Eval imposta, incolla, valuta, esegue il rollout e copia una posizione, la scheda Allenamento offre Punteggi, Pedine, Bearoff e Valutazione, e
import XGID=…pone la posizione sul tavoliere di prova.Il clic destro fuori dal tavoliere propone Effacer la position e Position de départ in modifica e in Eval; su una mossa giocata sul tavoliere (quiz, Trascrizione), il suo menu comincia con Recommencer.
I messaggi del Duello si collocano a metà della metà destra del tabellone, nella scala tipografica dell’applicazione; il giocatore 1 resta in basso chiunque abbia il turno, e l’impronta del seme si legge in un tooltip della riga dei messaggi.
Abbandonare, sospendere, annullare: il menu del Duello abbandona la partita, la mette in pausa o la annulla; nel gioco a denaro, l’abbandono perde una partita semplice al valore del cubo. Un incontro ai punti si registra solo per intero, e il seme di un Duello in sospeso non esce da alcuna esportazione.
Il selettore di livello del Bot indica la profondità di ogni livello, letta dalla tabella di gammonNet.
Un Duello si gioca contro un Lato esterno: un Lato esterno dichiara il Bot che gioca dietro di lui (
--side external:<configuration>@<engine>,sides[i].declared), e l’origine dell’Incontro lo rilegge come dichiarato dal client e non attestato; con il seme combinato (--combined-seed,duel contribute,duels.contribute), il contributo di ogni Lato esterno si aggiunge al seme sigillato e i lanci ne escono, con la formula pubblicata.Più Duelli aperti contemporaneamente: aprire un Duello non ne sospende nessun altro, e un Duello aperto fa scorrere i suoi orologi finché non viene sospeso, anche se il processo si ferma o va in crash; il desktop tiene un solo Duello sul tavoliere e sospende quello che lascia, senza toccare quelli che un server o la riga di comando tengono aperti sullo stesso database.
La trascrizione di un incontro guadagna le colonne Cubo, Gioco e Orologio; la cadenza e la banca del tempo figurano nelle informazioni dell’incontro, e una casella di tempo senza durata riporta un trattino.
La barra di stato: il link dei blunder avvia la ricerca, e le sue due cifre sono link distinti, i blunder dell’elenco a schermo e quelli dell’intera libreria.
Il motore passa a gammonNet v1.6.0 (rete strehl-prob5-512-512-256-256); le mosse legali escono nell’ordine dell’upstream, dado piccolo per primo.
Materializzare una trascrizione con una sola chiamata, in modalità rigorosa:
blunderdb transcribe --materializee la rottatranscriptions.materializescrivono l’Incontro, oppure rifiutano la prima Azione errata indicandone il rango e il motivo, senza scrivere nulla.Schema 2.36.0: le tabelle del Duello, la durata di ogni decisione, il Bot dichiarato, i contributi dei Lati esterni e lo stato aperto di ogni Duello. La migrazione dalla 2.31.0 è automatica all’apertura e senza ritorno (Appendice: Schema del database).
Correzioni notevoli: un file d’importazione illeggibile è rifiutato con il codice
invalid,internalrestando riservato ai guasti; sotto Windows, una compattazione riduce davvero il file, o dice perché non ha potuto; CTRL-C non è più conteso dalla copia del browser integrato, e CTRL-X CTRL-X copia la valutazione gammonNet in modalità EVAL.Vedere Manuale, Interfaccia a riga di comando (CLI) e Modalità headless (server).
0.37.0 (05/10/2026)
La trascrizione di un match cartaceo: una scheda e una modalità TRANSCRIBE in cui il match si inserisce mossa per mossa — dadi, triangolo dei 21 tiri, mossa giocata sul tavolo o digitata in notazione, cubo, correzione sul posto, bozza durevole ripresa dopo un arresto anomalo.
blunderdb transcribee le routetranscriptions.*del server ne sono le altre due forme.La Direzione di torneo: un torneo di club si conduce dal pannello Torneo — rubrica dei giocatori, proposte di abbinamenti confermate con un gesto, griglia dei tavoli e schede dei risultati, tabelloni e tabella delle vite, classifica, premi e montepremi, pagina murale della sala, fogli stampabili, Incontri a più prove in una sala condivisa.
blunderdb tournamenteserve --directionne sono le altre due forme.L’allenamento: una scheda Allenamento (Punteggi, Pedine, Bearoff, Valutazione, Decisione) e il suo diario, una modalità quiz il cui PR è sulla scala del gioco reale, le domande sbagliate riprese in un mazzo o in una collezione, una coda di studio dei blunder non trattati, la spiegazione dell’errore sul retro della carta Anki, carte di punteggio e decisioni di cubo in due carte.
Le Lezioni: un percorso redatto al desktop, letto dall’applicazione, dalla riga di comando (
blunderdb lesson) o dal server, esportato con il database; il progresso viene scritto solo su un gesto esplicito dell’allievo.La ricerca interroga un corpus: token di giocatore, avversario, torneo, turno, lunghezza, data e PR,
likeche ordina le posizioni simili, piano di giocogt:, vocabolario di tag, frase in tutte lettere tradotta in token, filtri preferiti fissati, tavolozza di comandi fuzzy (CTRL-MAIUSC-P), provino a mini-tavole e collezioni vive.Il pannello Stats acquisisce la scheda Corpus (testa a testa, PR per finestra, classifica, alias di giocatori e di eventi, probabili duplicati), due giocatori affiancati, gli errori ricorrenti per piano di gioco, la suddivisione per fase, etichetta e punteggio, un obiettivo di progresso, un rapporto HTML autonomo e l’esportazione CSV; un match importato senza analisi ottiene un PR.
Il valutatore passa a gammonNet v1.4.0 — filtro di mosse a tripletta, beaver e raccoon solo nel money game — e acquisisce rollout troncati, cubeful e riproducibili, memorizzati come seconda analisi, i motori affiancati, la matrice del cubo a tutti i punteggi di un match e una tabella di equity di match importata da un
.xmlgnubg, propria di ciascun database.L’importazione diventa parallela, con una modalità massa per i grandi lotti, un diario e la ripresa di un lotto interrotto, una cartella sorvegliata, i match HedgeHog
.ogxm, l’OGID di OpenGammon e i metadati di intestazione XG (Elo, trascrittore, commenti); un duplicato esatto porta con sé le sue analisi più profonde.I commenti sono firmati: l’impostazione « Votre nom » (
--authorda riga di comando) ne indica l’autore, che viaggia con l’esportazione.Nell’interfaccia: una schermata iniziale, quattro temi con nome, l’immagine della tavola in SVG, una guida in cui si può cercare, una cancellazione annullabile, soglie di errore regolabili per libreria, e una libreria, una ricerca e un elenco di match scorsi per finestre, senza caricare tutto.
Un assistente tramite MCP: l’applicazione e il server offrono i loro strumenti a un assistente (Model Context Protocol). Lato server: una coda di analisi condivisa tra tenant, quote (tra cui una quota di byte memorizzati), il flusso di eventi
/v1/events, una pagina web di consultazione, la condivisione di mazzi Anki e di collezioni tra tenant, e un client Python generato.Schema 2.31.0: date in interi, posizione e analisi in binario, etichette di azione codificate — un database più leggero. La migrazione da 2.18.0 è automatica all’apertura e senza possibilità di ritorno (Appendice: Schema del database).
Correzioni rilevanti: un
.mattroncato o un.txtBGBlitz senza posizione viene rifiutato invece di entrare a metà, i segni XG di un duplicato vengono conservati, un verdetto gammonNet conserva le mosse giocate, con PostgreSQL un rifiuto di scrittura non rivela più ciò che un altro tenant detiene, e il pulsante della pagina murale della Direzione la apre nel browser di sistema, segnalando un eventuale errore.Vedere Manuale, Interfaccia a riga di comando (CLI) e Modalità headless (server).
0.36.0 (05/09/2026)
L’eseguibile è 7,3 MB più piccolo: le tabelle di bearoff non sono più incorporate né scaricate, ma calcolate al primo avvio, in secondo piano e in silenzio — identiche byte per byte a quelle di gnubg, con l’impronta SHA-256 verificata. La tabella estesa TS-06-11 si calcola nella scheda Bearoff invece di scaricare 1,2 GB.
I tornei si riempiono da soli all’importazione: un match viene classificato nel torneo che il suo file nomina, creato se necessario; un match già classificato non viene mai spostato.
Una sola grammatica di ricerca, ora leggibile dalla riga di comando (
blunderdb search --query) tanto quanto dall’applicazione.La riga di comando guadagna
--format jsonsu nove comandi, il completamento per bash, zsh e fish, il comandorepaire i sottocomandianki cardeanki log.Le schede Scorciatoie e Comandi della guida integrata sono generate a partire dalle pagine del manuale che le descrivono: non possono più prendere ritardo su di esse, e diventano tabelle, senza riquadri. La scheda Manuale della guida resta un riassunto, distinto dal manuale completo online. Tre visite guidate in più (Eval, Anki, Stats).
Un binario Linux arm64, distribuito come archivio,
.deb,.rpme pacchetto AUR.Il pannello Eval ritrova il tavoliere su cui lo si è lasciato, distingue l’equity money da quella match e si percorre da tastiera.
Lato server: contratto d’API generato dal codice (
openapi.yamle il suo allegato, 135 rotte), identificatore di correlazione per richiesta, indicatori del lavoro in corso, compressione dei flussi NDJSON (13,5 % della dimensione), e le due chiamate che vanno oltre il tenant — vacuum e purge — passano sotto/ops/.Schema 2.18.0: Jacoby e beaver lasciano l’identità della posizione, così la stessa posizione money non entra più due volte da porte diverse. La migrazione è automatica all’apertura e senza possibilità di ritorno (Appendice: Schema del database).
Correzioni notevoli: il riquadro di dettaglio del pannello Match non occupa più metà schermo quando non c’è nulla di selezionato, la prima partita di una trascrizione si richiude come le altre, MAIUSC-J e MAIUSC-K cambiano vista da qualsiasi pannello, e otto scorciatoie « mostra/nascondi » finalmente nascondono.
Vedere Interfaccia a riga di comando (CLI), Modalità headless (server) e Manuale.
0.35.0 (2026-09-02)
La riga di comando guadagna due famiglie:
blunderdb collection(elenca, mostra, crea, rinomina, elimina, esporta una collezione) eblunderdb anki(mazzi, statistiche, previsione dei ripassi, risincronizzazione di un mazzo).La modalità server viene pubblicata come immagine Docker (
ghcr.io/kevung/blunderdb-serve, amd64 e arm64), guadagna la rottamaintenance.vacuume appone una filigrana alle sue esportazioni con l’identità di emittente del server (--identity-dir).Il valutatore gammonNet valuta le proprie foglie con il cubo: a un punteggio di match, i verdetti della ricerca si avvicinano a quelli di eXtreme Gammon.
Ogni release distribuisce ora i manifesti winget e Homebrew e un bundle Flatpak, oltre ai pacchetti Debian, RPM e AUR.
Nell’interfaccia, la libreria è ora paginata (un database di 50.000 posizioni non carica più tutto in memoria a ogni aggiornamento), le finestre modali condividono una base comune (focus, Escape, accessibilità), il tavoliere ridisegna solo ciò che cambia, e il font giapponese incorporato è ridotto al suo sottoinsieme utile (5,5 MB in meno).
Correzioni notevoli: un database importato tramite «Importa un database» manteneva posizioni invisibili ai filtri e duplicate a una seconda importazione (riparato all’apertura), il pulsante Unisci della finestra di unione giocatori restava in grigio, l’esportazione del server era vuota, e su Windows la rimozione del database bearoff scaricato e
create --forcefallivano.Vedere Interfaccia a riga di comando (CLI), Modalità headless (server) e Manuale.
0.34.0 (2026-09-02)
Un valutatore integrato: gammonNet, portato in Go e compilato in blunderDB, valuta qualsiasi posizione offline, senza XG né gnuBG — rete neurale, ricerca da 0 a 2-ply con potatura, decisione di cubo secondo Janowski e la tabella di equità di match di blunderDB, e una ricerca che rispetta il punteggio del match.
Il pannello Bearoff diventa il pannello Eval: presenta i fatti della posizione (probabilità di vittoria, gammon e backgammon di entrambi i lati, equità) e poi l’unica decisione che il tavoliere richiede, su una griglia stabile senza scorrimento; le equità di match sono normalizzate e il verdetto «troppo buono per raddoppiare» torna a essere visibile.
La valutazione è progressiva: 0-ply immediato al gesto, poi 2-ply a riposo, annullabile da qualsiasi nuovo gesto, con l’etichetta di profondità che indica sempre quella che ha prodotto il numero.
L’intero tavoliere, i dadi e il punteggio si modificano lì, con il clic come con la tastiera, e una posizione della libreria entra ed esce dal pannello.
Su una corsa oltre il database two-sided, un terzo regime valutato fornisce il verdetto di cubo al punteggio che il pannello non dava.
Una scheda gammonNet della configurazione separa la profondità di visualizzazione dalla profondità di analisi.
Dopo un’importazione, un lotto di analisi limitato, visibile, annullabile e ripristinabile riempie le posizioni senza alcuna analisi, senza mai sovrascrivere un’analisi importata; il recupero di una libreria esistente si avvia dall’interfaccia, dal nuovo comando
blunderdb analyzeo in modalità server.Correzioni notevoli: una risposta di cubo importata da eXtreme Gammon ereditava l’analisi di chi raddoppia senza essere invertita, la notazione delle mosse dei Bianchi e degli ingressi dalla barra ora segue gnuBG e XG, la profondità di un’analisi gnuBG viene letta correttamente, e la dimensione del pannello laterale viene memorizzata.
Vedere Pannello Eval, Manuale e Interfaccia a riga di comando (CLI).
0.33.0 (2026-08-26)
Il pannello Statistiche guadagna una scheda Giocatori: le tre schede precedenti descrivono un giocatore, questa li confronta tutti, una riga per giocatore del database — partite, vittorie/sconfitte, decisioni conteggiate, PR globale / pedine / cubo, Snowie Error Rate, blunder e fortuna. La tabella si ordina da qualsiasi colonna, si restringe alle date di una competizione con i filtri abituali, e un clic su una riga passa al dettaglio del giocatore. Un trattino segnala un valore mai misurato, mai uno zero. La tabella è disponibile anche da riga di comando (
blunderdb list --type players, in testo, JSON o CSV) e in modalità server.La fortuna di ogni lancio viene ora conservata nel database e visualizzata: fortuna media per lancio, in millesimi di punto, con segno. Viene letta all’importazione sia dai file eXtreme Gammon sia da gnuBG. Non è retroattiva — le partite importate in precedenza mostrano un trattino e occorre reimportare i file di origine per recuperarla; i formati che non la trasportano (BGF, Jellyfish
.mat) non la forniranno mai.La scheda Errori indica ora in quale senso sbagliano le decisioni di cubo, e non più soltanto quanto costano: una riga Offrire (doppi mancati, doppi prematuri) e una riga Rispondere (pass errati, prese errate), tenute separate di proposito poiché uno stesso giocatore può raddoppiare tardi e prendere largo. Ogni casella riporta il proprio conteggio, il tooltip l’equity perduta, e il clic carica le posizioni corrispondenti.
Nuovo comando Compatta il database, che recupera lo spazio lasciato dalle eliminazioni: un pulsante nelle impostazioni e il sottocomando
blunderdb vacuum. Non parte mai da solo.Ergonomia: le azioni distruttive chiedono conferma, una ricerca in corso viene segnalata, un comando sconosciuto riceve un messaggio invece del silenzio, e schede, pannelli agganciati e piccole finestre si governano interamente da tastiera. La ricerca è inoltre sensibilmente più rapida.
Correzioni notevoli: i non-doppi etichettati «Double No» da gnuBG venivano contati come doppi, falsando il PR di cubo (un database già costituito si ripara senza reimportare, in modalità server); il filtro giocatore restringeva a torto il denominatore dello Snowie Error Rate; le esportazioni scrivevano uno schema obsoleto; e
blunderdb vacuumapriva l’interfaccia grafica anziché compattare il database.Vedere Pannello Stats e Interfaccia a riga di comando (CLI).
0.32.0 (2026-08-09)
Il pannello EPC diventa il pannello Bearoff e guadagna l’analisi di corsa completa. (Rinominato pannello Eval nella 0.34.0.)
Su una posizione di bearoff puro, mostra — oltre all’EPC, al pip count, allo spreco e al numero medio di tiri di ciascun giocatore, ora presentati in una tabella con una riga Δ con segno — le probabilità di vittoria di entrambi i giocatori e le equità money (cubeless, senza raddoppio, raddoppio/prendi, raddoppio/passa, con lo scarto di ciascuna decisione dalla migliore) nonché la migliore decisione di cubo.
Due regimi chiaramente distinti: esatto (lettura da un database two-sided; database TS-06-06 di GNUbg integrato, che copre fino a 6 pedine per giocatore) e stimato (convoluzione calibrata, margine di errore mostrato — il verdetto di cubo non viene mai stimato).
Il database esteso TS-06-11 (verdetto esatto fino a 11 pedine per giocatore, 1,2 GB) si scarica dalla nuova scheda Bearoff della configurazione, con verifica dell’integrità e download ripristinabili; può anche essere designato un qualsiasi file
.bdtwo-sided di gnubg. (Sostituito nella 0.36.0: la tabella si calcola sulla macchina, più nessun download.)Modalità sfida per l’allenamento: i risultati si nascondono a ogni modifica e si rivelano zona per zona, con un clic.
Modifica interamente sul tavoliere: pedine di entrambi i lati, giocatore al tiro (clic sul rettangolo bearoff/punteggio) e posizione del cubo (clic sul cubo).
Il clic sul tavoliere è ora preciso a qualsiasi scala dell’interfaccia (un clic sul punto 1 poteva finire sul punto 2).
Nuovo comando
blunderdb epca riga di comando e opzione--bearoff-tsdella modalità server.Una nuova sezione del manuale, «Metodologia e ipotesi del pannello Bearoff», enuncia esaustivamente le ipotesi dietro ogni valore visualizzato. (Sezione rinominata con il pannello nella 0.34.0.)
Vedere Pannello Eval e Metodologia e ipotesi del pannello Eval.
0.31.0 (2026-08-04)
Diffusione di un database a terzi: due meccanismi indipendenti, entrambi facoltativi e scelti al momento dell’esportazione.
La filigrana di origine iscrive nel file cosa esso sia e da dove provenga, firmata da un’identità di emittente creata da sola al primo utilizzo; il marchio è non falsificabile, si legge in cima al pannello Metadati (o tramite
blunderdb info, senza mai scrivere nel file) e non registra nulla dal lato del destinatario — nessun registro, nessun tracciamento.La protezione tramite password produce un file
.dbxcifrato (AES-256-GCM, chiave derivata con Argon2id), verificato a ogni apertura, la cui intestazione resta leggibile in chiaro; l’identità si esporta e si importa come un unico file dalle preferenze.Finestra di esportazione ridisegnata: un unico schermo invece di quattro, un promemoria di ciò che esce realmente (le posizioni visualizzate), la quota coperta di ciascuna collezione segnalata in rosso quando è parziale, tornei esportabili solo con i loro match — ed un’esportazione tre volte più veloce.
Finestra di configurazione riorganizzata in tre schede (Interfaccia, Colori del tavoliere, Identità di emittente), con dimensione e posizione stabili.
Il pannello Metadati è stato riorganizzato in un’unica griglia.
Il pannello Log, che riceveva solo l’eco dei comandi, viene rimosso.
Correzioni notevoli: una password errata non apre più un database protetto, i campi delle finestre modali non perdono più il focus al clic, il calcolo degli indicatori PR/MWC non va più in crash su una partita a soldi, e i file temporanei (
-wal,-shm, lock) vengono ripuliti alla chiusura.Vedere Distribuire un database: origine e password e Manuale.
0.30.0 (2026-07-26)
Ricerca per commento: il filtro «Testo di ricerca» diventa il filtro «Commento» e propone tre modalità esclusive — contiene il testo (comportamento precedente, token
t""parola1;parola2""), ha un commento (tokenco) e senza commento (tokenxco) — per ritrovare con un gesto le posizioni annotate, o al contrario quelle che restano da commentare.Posizioni contrassegnate in eXtreme Gammon: i contrassegni (flags) posti durante l’analisi di un match XG vengono ora letti all’importazione e ritrovabili tramite il filtro «Contrassegnata» (token
fl), combinabile con qualsiasi altro criterio; una decisione di cubo contrassegnata dà due posizioni contrassegnate, il raddoppio e il prendi/passa.Poiché il contrassegno non è retroattivo, basta reimportare il file
.xginteressato affinché i suoi contrassegni si uniscano al database, senza toccare i commenti o le analisi esistenti.Correzioni notevoli: il PR mostrato sul badge di un torneo si riferisce ora al giocatore di riferimento e non più alla somma di entrambi i giocatori, i mazzi Anki basati su una ricerca rispettano di nuovo i filtri di quella ricerca invece di riprendere l’intero database, e viene corretto un blocco della ricerca combinando alcuni filtri (testo, data, errore della mossa giocata).
Vedere Elenco dei comandi e Manuale.
0.29.0 (2026-07-18)
Esportazione di un match in formato Jellyfish/gnubg (
.mat) dall’interfaccia (pannello Match) così come dalla riga di comando, con la rotta server corrispondente — utile per rigiocare un match in un altro software di backgammon.Ricerca: un nuovo discriminatore «dadi esclusi» (token
xD65, più ammessi) che scarta le posizioni il cui tiro corrisponde a un tiro dato.Apertura concorrente sicura: un database già aperto in scrittura in un’altra finestra di blunderDB si apre ora in sola lettura (navigazione, ricerca e analisi ancora possibili, modifiche disattivate, dicitura «[sola lettura]» nella barra del titolo) invece di rischiare una corruzione.
Provenienza delle posizioni: al di fuori della modalità match, la barra informativa sopra il tavoliere indica il match — e il suo torneo — da cui proviene la posizione studiata, con un badge «+N» quando appare in più match.
Maggiore robustezza rispetto all’ambiente: ripiego automatico quando un font, gli appunti o l’ultimo database aperto non sono disponibili.
Un ricaricamento esplicito della libreria (
CTRL-R, pulsante della barra degli strumenti o comandoe) riapre il pannello di analisi sulla posizione visualizzata.Correzioni notevoli: rimosso un blocco nell’esportazione di database di grandi dimensioni, il pulsante «Nessuno» dell’esportazione che in realtà non esportava davvero nulla, filtro dei commenti multiparola, deduplicazione dell’evento e del torneo nella barra informativa, e vari aggiustamenti di visualizzazione.
Vedere Elenco dei comandi, Pannello Match e Manuale.
0.28.0 (2026-07-15)
Pannello di ricerca: un filtro unificato «Match & Tornei» che sostituisce i campi di testo degli identificatori con una finestra di selezione (elenchi selezionabili filtrabili per testo, pulsanti Tutti/Nessuno, selezionare un torneo seleziona i suoi match membri) — più veloce su database di grandi dimensioni, la scheda Match e la vista Tornei ora ricalcolano gli indicatori PR/MWC solo per i match visualizzati;
cli list --type tournamentscolma il corrispondente divario di parità.Nuovo filtro «Importata singolarmente» (casella di controllo del gruppo Altro, o token
ia riga di comando,s i; disponibile anche nella CLI tramite--individual) per ritrovare una posizione salvata o importata da sola anziché persa in un’importazione di match.Corretta una perdita di dati: l’eliminazione di un match non elimina più le posizioni importate singolarmente, inserite in una collezione o incluse in un mazzo Anki che il match conteneva anche.
Modalità server (headless): sei nuovi metodi per lo scheduler Anki a ripetizione dilazionata — registro dei ripassi (
anki.reviewLog), previsione delle carte in scadenza (anki.forecast), sospensione/accantonamento/rimozione di una carta (anki.suspendCard,anki.buryCard,anki.removeCard) e regolazione automatica della ritenzione target di un mazzo verso il suo tasso di successo osservato (anki.optimizeParams, sostituito nella 0.36.0 daanki.retention, che misura il tasso osservato senza mai scrivere l’obiettivo); un nuovo metodotenant.purgeper eliminare definitivamente i dati di un tenant su un’implementazione PostgreSQL multiutente; nuovi metodimatches.list(filtraggio/ordinamento/paginazione) estats.matchBadges(indicatori PR/MWC limitati a un elenco di match).Distribuzione Linux nativa: pacchetti
.deb/.rpm, che conservano il bit di esecuzione perso al momento del download del binario grezzo.Importazione: dopo l’importazione di un match, la scheda Match viene ora visualizzata e le posizioni importate sono immediatamente visibili; dopo l’importazione di una posizione isolata (file XGP, posizione BGBlitz, file di posizione testuale, posizione incollata o lotto di posizioni), la scheda Analisi si apre ora direttamente sulla posizione importata, invece della scheda Match; corretto l’incollaggio di un’analisi eXtreme Gammon in francese o tedesco da macOS, che restava vuota (accenti scomposti dagli appunti di sistema).
Vedere Modalità headless (server), Elenco dei comandi e Download e installazione.
0.27.0 (2026-06-13)
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
blunders(aliasbl) che carica direttamente gli errori peggiori (equity/MWC) nella vista di analisi, con un numero opzionale per sceglierne la quantità (bl 50); un nuovo filtro per giocatorepl'nome'che trova tutte le posizioni di una partita a cui ha partecipato un dato giocatore, su entrambi i lati; e suggerimenti che, passando il mouse su ciascun filtro del pannello di ricerca, mostrano il token di comando corrispondente.Modalità server (headless): nuovi metodi
matches.movesByMatch(tutte le mosse di un match in un’unica chiamata) epositions.epc(Effective Pip Count di entrambi i giocatori).Vedere Pannello Anki e Elenco dei comandi.
0.26.0 (2026-06-09)
Impostazioni di visualizzazione dell’interfaccia nella finestra di configurazione: un cursore di scala per ingrandire o rimpicciolire l’intera interfaccia, e una scelta della posizione dei pannelli (in basso, di lato o automatica) per sfruttare meglio gli schermi larghi.
Aggiunta una barra informativa 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 ora mostrato subito e la revisione inizia dalla prima posizione.
Le scorciatoie da tastiera sono ora indipendenti dalla disposizione della tastiera (AZERTY, QWERTY, QWERTZ…).
Corretta la decodifica dell’XGID (indicatori Jacoby/Beaver e valore del cubo).
Aggiunte schede di viste multiple: diversi spazi di lavoro indipendenti (elenco posizioni, posizione corrente, ricerca) con le scorciatoie CTRL-T (nuova vista), CTRL-W (chiudi), CTRL-PageUp/CTRL-PageDown (cambia vista) e rinomina con doppio clic sulla scheda.
Vedere Configurazione e Schede delle viste.
0.25.0 (2026-06-07)
Modalità server (headless): due nuovi metodi per ricostruire una posizione senza salvarla —
positions.fromXGIDdecodifica una stringa XGID in una posizione epositions.fromXGPlegge un file di posizione singola.xgp.
0.24.0 (2026-06-06)
Aggiunta un’immagine container (Docker) per la modalità headless: un punto di ingresso dedicato
servee unDockerfile.serveche produce un binario statico senza interfaccia grafica, per distribuire il motore di blunderDB come servizio dietro un reverse proxy.
0.23.0 (2026-06-05)
Aggiunti tour guidati dell’interfaccia (tour generale, ricerca, match, tornei), rigiocabili dalla barra degli strumenti o dal comando
tour, e un database di esempio caricabile con il comandodemoper scoprire lo strumento senza importare le proprie partite.Personalizzazione dei colori del tavoliere (sfondo, bordo, frecce, pedine, dadi, cubo) dalla finestra di configurazione.
Completamento automatico della riga di comando (tasto TAB).
Pannello di ricerca: controllo esplicito del tipo di decisione (Pedine / Cubo), con un sottotipo Raddoppio / Nessun raddoppio o Prendi / Passa per le decisioni di cubo, sincronizzato con il tavoliere; il cubo offerto viene mostrato al centro del tavoliere per le decisioni di prendi/passa.
Ricerca di una posizione tramite il suo identificatore (filtro
id).Corretta l’attribuzione dell’errore di cubo al giocatore 1.
0.22.0 (2026-06-02)
Aggiunta di una modalità headless (server), avanzata e facoltativa, che completa l’applicazione desktop: un demone
serveche espone il motore in HTTP + JSON, un backend PostgreSQL multiutente con compartimentazione per tenant (e Row-Level Security come opzione), un comandomigrateper trasferire un database SQLite verso PostgreSQL e un dispatcher genericocallche dà accesso a riga di comando a tutte le operazioni di archiviazione.Importazione di posizioni singole da nuovi formati (eXtreme Gammon
.xgp, testo BGBlitz, libreria nativa.db) con arricchimento dei duplicati tra formati.Correzioni: i pannelli non causano più errori quando nessun database è aperto e il pannello Commenti non entra più in loop all’apertura.
0.21.0 (2026-06-01)
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 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.20.0 (2026-05-31)
Aggiunta la struttura di esclusione Except al pannello di ricerca: esclude posizioni contenenti una delle pedine disegnate, con un marcatore «deve essere vuoto» (doppio clic) e un numero illimitato di pedine per punto (comando
x).Aggiunta l’opzione «solo primo dado» al filtro del tiro (variante D1, opzione CLI
--dice).Pannello Commenti: focus automatico del campo di inserimento all’apertura, e pulsanti modifica/elimina sempre visibili.
Corretto il filtro «Search Text», che non trovava tutti i tag dei commenti.
0.19.0 (2026-05-07)
Aggiunta del pannello Stats: indicatori PR (Performance Rating), 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).
Corretto il calcolo di cube_error per le decisioni Double/Pass.
Documentazione del modello statistico (Appendice: modello statistico — allineamento XG / gnuBG / blunderDB).
Vedi Pannello Stats.
0.18.0 (2026-04-20)
Grande refactoring 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/pannello.
Migrazione completa alle rune di Svelte 5.
Sostituzione di 9 modali di tabella con un componente generico DataTableModal.
Aggiunti 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 miglior parallelismo in lettura.
Documentazione CLI completa (CLI_USAGE.md + Sphinx FR/EN).
Riscrittura del README.
Corretti tutti gli avvertimenti ESLint (46→0) e Vite (6→0).
0.17.0 (2026-04-20)
Ottimizzazione dello storage: compressione zlib dei dati di analisi (~80% di riduzione), codifica compatta delle posizioni (~90% di riduzione delle dimensioni).
Aggiunti 5 indici mancanti per migliorare le prestazioni di ricerca.
Corretta la ricerca per errore di cubo.
Corretta la 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.16.0 (2026-04-18)
Schema del database v2.0.0: deduplicazione delle posizioni tramite hash Zobrist, colonne di filtraggio denormalizzate, prefiltro di motivi bitboard, journaling WAL (Appendice: Schema del database).
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.15.0 (2026-03-31)
Esportazione della posizione come immagine PNG negli appunti (solo tavoliere tramite Ctrl+X, oppure tavoliere con analisi tramite Ctrl+X Ctrl+X).
0.14.0 (2026-03-30)
Pannello Anki dedicato per lo studio a ripetizione dilazionata (algoritmo FSRS).
Importazione dei commenti dai file XG.
0.13.0 (2026-03-28)
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 rimosso nella 0.31.0.)
Pannello Bearoff 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.12.0 (2026-03-19)
Importazione di file di posizione eXtreme Gammon (XGP) con analisi.
0.11.0 (2026-03-06)
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.10.0 (2026-02-25)
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. (Sostituito nella 0.36.0: la tabella è calcolata sulla macchina, nessuna più integrata.)
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.9.0 (2025-11-02)
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.8.0 (2025-05-03)
Possibilità di nascondere il conteggio dei pip.
Caricamento di una posizione casuale.
0.7.0 (2025-02-16)
Supporto del giapponese e del tedesco nelle esportazioni di XG.
0.6.0 (2025-02-13)
Aggiunta della libreria di filtri.
Visualizzazione della versione del database nei metadati.
0.5.0 (2025-02-04)
Aggiunta di nuovi filtri (specchio, non contatto, jan blot, outfield blot).
0.4.0 (2025-02-03)
Correzioni di vari bug.
Aggiunta di un’icona per blunderDB.
Correzioni dei filtri.
Aggiunta del supporto a macOS.
0.3.0 (2025-01-27)
Correzioni di vari bug.
Salva automaticamente le dimensioni della finestra.
Importa gli eventuali commenti da XG.
0.2.0 (2025-01-06)
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.1.0 (2024-12-31)
Creazione versione beta.