Primi passi e interfaccia
Introduzione
blunderDB è un software per creare database di posizioni di backgammon. Il suo punto di forza principale è fornire un luogo unico in cui aggregare le posizioni che un giocatore ha incontrato (online, in torneo) e poterle riesaminare filtrandole secondo vari filtri combinabili arbitrariamente. blunderDB può anche essere usato per creare cataloghi di posizioni di riferimento.
Le posizioni sono memorizzate in un database rappresentato da un file .db. L’applicazione desktop apre questo file direttamente, mai un indirizzo di rete: la modalità server è un’altra modalità dello stesso binario, e si passa dall’una all’altra esportando o migrando il database, non puntando l’applicazione verso un URL.
Interazioni principali
Le principali interazioni possibili con blunderDB sono:
aggiungere una nuova posizione,
modificare una posizione esistente,
copiare l’immagine del board negli appunti (PNG) tramite CTRL-X, oppure con l’analisi completa tramite CTRL-X CTRL-X,
eliminare una posizione esistente,
cercare una o più posizioni,
importare match da diverse fonti (XG, GNUbg, BGBlitz, Jellyfish, HedgeHog), compresi i commenti dai file XG,
navigare tra le mosse di un match importato,
organizzare le posizioni in raccolte,
organizzare i match in tornei.
L’utente può etichettare liberamente le posizioni con tag e annotarle tramite commenti.
Descrizione dell’interfaccia
L’interfaccia di blunderDB è composta, dall’alto verso il basso, da:
[in alto] la barra degli strumenti, che raccoglie tutte le principali operazioni eseguibili sul database,
[al centro] l’area di visualizzazione principale, che permette di visualizzare o modificare posizioni di backgammon,
[in basso] la barra di stato, che presenta diverse informazioni sul database o sulla posizione corrente e integra la riga di comando.
Possono essere visualizzati dei pannelli per:
visualizzare i dati di analisi associati alla posizione corrente provenienti da eXtreme Gammon (XG), GNUbg o BGBlitz,
visualizzare, aggiungere o modificare commenti,
cercare e filtrare posizioni secondo criteri combinabili,
visualizzare e gestire le raccolte di posizioni (pannello raccolte),
visualizzare l’elenco dei match importati e navigare tra le mosse di un match (pannello match),
visualizzare e gestire i tornei (pannello tornei),
visualizzare le statistiche di performance (pannello Stats),
calcolare l’EPC (Effective Pip Count) di una posizione di bearoff (pannello Eval),
allenarsi su esercizi di calcolo (pannello Allenamento),
studiare le posizioni tramite ripetizione dilazionata (pannello Anki),
trascrivere un match a mano (pannello Trascrizione),
visualizzare i metadati del database (pannello Metadati).
L’altezza del pannello si regola trascinandone la maniglia; resta la stessa da una scheda all’altra.
Possono comparire finestre modali per:
visualizzare la guida di blunderDB, il cui campo di ricerca (/ vi porta il cursore) seleziona le occorrenze del testo digitato, senza distinzione di maiuscole né di accenti (INVIO passa alla successiva, MAIUSC-INVIO alla precedente),
visualizzare il catalogo delle visite guidate (vedi Visite guidate e database di esempio),
configurare le impostazioni di esportazione del database,
configurare blunderDB, in particolare la lingua dell’interfaccia (vedi Configurazione).
L’area di visualizzazione principale mette a disposizione dell’utente:
un board per visualizzare o modificare una posizione di backgammon,
il livello e il proprietario del cubo,
il pip count di ciascun giocatore,
il punteggio di ciascun giocatore,
i dadi da giocare. Se sui dadi non è mostrato alcun valore, la posizione dei dadi indica quale giocatore ha il turno e che la posizione è una decisione di cubo. Quando la decisione di cubo è una risposta a un raddoppio (prendi/passa), il cubo proposto è mostrato al centro del board, al valore offerto.
Gli appunti sono il gesto corrente; salvare è l’altro bisogno — l’illustrazione di un articolo, di un messaggio di forum, di una lezione. L”SVG è proposto perché la dama lo è: è la forma che sopravvive a un ingrandimento, quella che si mette in un documento senza sfocarla. Il PNG ne deriva, come la copia negli appunti: un solo rendering, tre destinazioni, quindi nessuna può divergere dalle altre. Questo menu non compare nel pannello Eval né nel pannello Ricerca, dove il tasto destro serve già a posare le pedine dell’altro colore. Vedere Portare una posizione nel pannello Eval per portare una posizione nel pannello Eval.
La barra di stato è strutturata da sinistra a destra con le seguenti informazioni:
la riga di comando, accessibile premendo il tasto SPAZIO,
un messaggio informativo relativo a un’operazione eseguita dall’utente,
l’indice della posizione corrente, seguito dal numero di posizioni nella biblioteca corrente (o le informazioni di mossa/partita durante la navigazione di un incontro),
il contatore della libreria — «412 posizioni · 38 blunder · 5 match» — dove ogni numero apre ciò che conta: le posizioni, la ricerca
E>alla soglia della libreria (avviata subito, come se fosse stata digitata, e registrata nella cronologia delle ricerche), o l’elenco dei match. Quando l’elenco a schermo non è l’intera libreria (ricerca, raccolta, match), la cifra dei blunder si scrive «12 / 340 blunder»: i blunder di quell’elenco, poi quelli della libreria, alla stessa soglia; un elenco di oltre 20 000 posizioni non viene contato e mantiene solo il totale. Una cifra che non si può seguire è una decorazione. La soglia dei blunder è quella della libreria, impostata nella scheda Libreria della configurazione e condivisa con le statistiche: due soglie farebbero dire due cose alla stessa parola. Il contatore promette esattamente ciò che il suo collegamento apre, anche per una posizione giocata in più modi, che vale il suo costo più elevato. In una libreria molto grande (oltre 200 000 righe) il contatore non scorre le tabelle: un numero preceduto da «≈» è una stima (un limite superiore, perché le righe eliminate lasciano dei vuoti). Se le posizioni sono stimate, il numero di blunder, che non ha una stima onesta, è l’ultimo conteggio esatto, conservato finché nessuna scrittura può cambiarlo. Dopo un’importazione o una modifica appare come «?» mentre un nuovo conteggio viene fatto in background, poi torna da solo; una biblioteca aperta in sola lettura non riconta e mostra «?» finché l’istanza che vi scrive non ha rifatto il conteggio. Il collegamento avvia la ricerca, che dà il conteggio esatto. I due numeri dei blunder sono link distinti: il primo avvia la sotto-ricercass E>nella lista a schermo, il secondo la ricerca in tutta la biblioteca; quando compare solo il totale, c’è un solo link.
Nota
Nel caso di posizioni derivanti da una ricerca dell’utente, il numero di posizioni indicato nella barra di stato corrisponde al numero di posizioni filtrate.
La scheda Anki porta un contrassegno quando ci sono carte da ripassare, in tutti i mazzi. Quella cifra è la ragione per aprire la scheda; non ha nulla da fare dietro di essa. Zero non mostra nulla: un contrassegno che dice «0» è rumore.
Il comando log apre il registro attività: le ultime duecento righe del file di log, un pulsante per copiarle — quanto serve per allegare un rapporto a una segnalazione — e un altro per aprire la cartella che le contiene. Il registro non è né filtrato né riformattato: un registro che si abbellisce è un registro che non si può più citare.
Il comando grid apre il provino: l’elenco sfogliato — risultati di una ricerca, libreria, collezione — come griglia di mini-tavolieri, disegnati come il tavoliere, in pagine da ventiquattro. Si apre sulla pagina della posizione corrente, la cui miniatura è incorniciata; un clic o INVIO su una miniatura ne apre la posizione sul tavoliere e chiude il provino, e si sfoglia interamente da tastiera (vedi Provino). Non si apre né in modalità modifica né in un match, che si sfoglia per mosse.
Nella cronologia delle ricerche del pannello Ricerca, ogni token di un comando salvato appare come un’etichetta con nome — Senza contatto, Errore di mossa — anziché come token nudo. Il comando esatto resta nel suggerimento, perché è quello che si rilancia; e un token che blunderDB non riconosce appare così com’è, non tradotto al più vicino.
Schede delle viste
Sotto la barra degli strumenti, una barra delle schede consente di lavorare con più viste in parallelo. Ogni vista è uno spazio di lavoro indipendente che conserva il proprio elenco di posizioni, l’indice della posizione corrente, la posizione visualizzata, l’analisi e la mossa selezionata, il pannello attivo, il commento in corso nonché il contesto di navigazione in un match. È così possibile, ad esempio, tenere aperta una ricerca in una vista mentre si scorre un match in un’altra.
Creare una vista: fare clic sul pulsante + della barra delle schede (chiamato + Nuova vista finché c’è una sola vista) o premere CTRL-T. La nuova vista parte come copia della vista corrente.
Chiudere una vista : fare clic sulla croce della scheda o premere CTRL-W. L’ultima vista non può essere chiusa.
Cambiare vista: fare clic su una scheda, premere CTRL-Pag su / CTRL-Pag giù (o MAIUSC-J / MAIUSC-K) per passare alla vista precedente / successiva, oppure CTRL-1 a CTRL-9 per raggiungere direttamente l’n-esima vista della libreria attiva.
Rinominare una vista : fare doppio clic sulla scheda, inserire il nuovo nome e confermare con INVIO.
Una vista lasciata nel pannello Eval vi ritorna così come è stata lasciata: con la sua scacchiera di prova e, uscendo dal pannello, con la posizione che stava studiando. Anche l’ultima scacchiera di prova del pannello Eval è propria di ciascuna vista.
Le viste vengono salvate con lo stato di sessione del database e ripristinate alla sua riapertura.
Più librerie aperte
Più database possono restare aperti contemporaneamente. Ciascuno forma un gruppo di schede: nella barra, un’intestazione colorata riporta il nome del file, seguita dalle viste di quella libreria, il cui bordo superiore riprende lo stesso colore. Una sola libreria è attiva alla volta: è quella che i pannelli, la ricerca, le importazioni e l’assistente leggono e scrivono.
Con una sola libreria aperta, la barra non mostra alcuna intestazione: solo il titolo della finestra nomina il database.
Aprire una libreria in un nuovo gruppo: pulsante ⧉ Altra libreria a destra della barra delle schede (solo ⧉ appena due gruppi sono aperti), CTRL-MAIUSC-O, oppure il comando
open_group(og). La libreria attiva fino a quel momento resta aperta nel suo gruppo. CTRL-O, invece, sostituisce la libreria del gruppo attivo; il suggerimento del pulsante Apri della barra degli strumenti ricorda entrambe le scorciatoie.Cambiare libreria: fare clic su una scheda di un altro gruppo attiva la sua libreria e quella vista in un solo gesto; fare clic sull’intestazione del gruppo lo riporta alla vista in cui era stato lasciato. CTRL-MAIUSC-Pag su / CTRL-MAIUSC-Pag giù passano alla libreria precedente / successiva; CTRL-Pag su / CTRL-Pag giù (o MAIUSC-J / MAIUSC-K) scorrono di seguito le viste di tutti i gruppi.
Chiudere un gruppo: la croce della sua intestazione chiude la libreria e le sue viste. Chiudere il gruppo attivo mostra il suo vicino; la barra di stato nomina la libreria chiusa e quella visualizzata.
L’intestazione del gruppo attivo porta il nome in bianco sul suo colore; quelle degli altri gruppi, il nome sullo sfondo della barra, sottolineato in alto con il loro colore. Si susseguono sei colori: un settimo gruppo riprende il primo. Le viste sono numerate nella loro libreria: un database aperto in un nuovo gruppo inizia da «#1», e CTRL-1 … CTRL-9 puntano alle viste del gruppo attivo. Quando le schede non stanno più nella larghezza della finestra, la barra scorre (rotellina, o il cambio di vista che porta la scheda visualizzata sullo schermo) invece di ridurle.
Il passaggio è immediato: ogni gruppo conserva in memoria le sue viste, il suo elenco di posizioni, la posizione corrente, i criteri di ricerca (anche durante la digitazione, senza aver avviato la ricerca), l’elenco dei match, i contatori e lo scorrimento di ogni elenco del pannello, e li ritrova senza rileggere il database. Una libreria aperta in un nuovo gruppo parte da un modulo di ricerca vuoto: i match e i tornei scelti in un gruppo non si applicano mai in un altro. Anche il lavoro in corso la segue: una bozza di trascrizione, una lezione, una revisione Anki, la coda di studio e la Direzione aperta si ritrovano come erano state lasciate. Ciò che può essere cambiato durante l’assenza viene riletto subito dopo la visualizzazione: i contatori sempre, l’elenco dei match se il loro numero è cambiato o se un’attività in background ha scritto nella libreria durante l’assenza. Gli elenchi propri di ogni database (collezioni, tornei, mazzi Anki, bozze, Duelli, cronologia di ricerca, filtri salvati) vengono riletti nella libreria visualizzata.
Uno stesso file non si apre in due gruppi: riaprirlo mostra il gruppo che lo contiene già.
Le attività in background restano legate alla loro libreria: un’importazione di file di match, la cartella sorvegliata e l’analisi GammonNet a lotti proseguono nel gruppo in cui sono iniziate quando ne viene visualizzato un altro, e non scrivono mai nella libreria visualizzata. Il loro avanzamento e il loro resoconto restano nel loro gruppo: finché non è visualizzato, la sua intestazione porta un indicatore, che lampeggia mentre l’attività lavora e diventa fisso quando è terminata. Al ritorno sul gruppo, l’indicatore scompare, la barra di stato dice che cosa ha fatto l’attività e l’elenco dei match viene riletto. L’analisi automatica che segue un’importazione parte nella libreria dell’importazione. La cartella sorvegliata appartiene al gruppo in cui è stata avviata: i file di match vi vengono importati in background, mentre un database da fondere o un testo di posizione attende che quel gruppo sia di nuovo visualizzato. Chiudere un gruppo ne interrompe le attività e la sorveglianza.
Copiare da una libreria all’altra. Una riga trascinata sull’intestazione di un altro gruppo vi viene copiata, in un senso o nell’altro: un match dall’elenco dei match, una raccolta dall’elenco delle raccolte, una posizione da una raccolta aperta, la posizione visualizzata (la si afferra dal suo contatore «n / N» nella barra di stato) o la lezione in lettura (dal suo nome nella barra della lezione). L’intestazione di destinazione si contorna di un tratteggio. La copia è quella del comando transfer: la selezione di un’esportazione, unita dall’importazione nativa, con analisi, commenti e mosse giocate; una raccolta porta con sé le sue posizioni, un match la sua trascrizione. Ciò che la libreria di arrivo contiene già non viene ricopiato: copiare da A a B e poi da B ad A non crea alcun duplicato, e nulla vi dice da dove venga la copia. La copia gira in background, legata al gruppo di arrivo: la sua intestazione porta il bollino e, al ritorno, la barra di stato dice quante posizioni e quanti match sono nuovi e quanti c’erano già.
Il cestino raccoglie righe di più librerie per versarle in una volta. MAIUSC-B vi mette la posizione visualizzata, o la toglie, come b per la Pila; anche una riga trascinata sul cestino vi entra. Il cestino, a destra della barra delle schede, mostra il suo conteggio; un clic apre il suo menu (Versa in … ogni gruppo, Svuota il cestino), e trascinarlo sull’intestazione di un gruppo ve lo versa. Vive in memoria, mai in una base: chiudere un gruppo ne toglie le righe, e scompare alla chiusura di blunderDB. Una posizione ancora in bozza va prima salvata.
Il lucchetto di un’intestazione blocca il suo gruppo: non vi si versa più nulla, né trascinando né dal cestino, e la barra di stato lo dice. Il blocco non tocca né le importazioni né le modifiche fatte nel gruppo; un secondo clic lo toglie.
Il cambio di gruppo resta rifiutato, con il clic come con la tastiera, con un messaggio nella barra di stato che nomina la causa e dice dove fermarla, quando ciò che è in corso segue lo schermo: un rollout, il cui risultato è mostrato sulla posizione della scacchiera (rollout stop); la visualizzazione di un torneo, che serve la libreria visualizzata sulla rete del club (si ferma nella Direzione); un Duello in corso, che occupa la scacchiera e le sue viste; una sessione di allenamento, il cui cronometro e il cui registro non seguono alcun gruppo; infine, per tutta la sua durata, l’importazione di file che solo l’interfaccia sa leggere (testi di posizione, importati uno per uno) o la fusione di un database. Alla chiusura di blunderDB viene salvata solo la sessione della libreria attiva, e non l’elenco dei gruppi: al successivo avvio, blunderDB riapre l’ultimo database attivo.
Ciò che sanno le altre librerie: la scheda Altrove
La scheda Altrove (CTRL-MAIUSC-A) indica, per la posizione visualizzata, ciò che ne sanno le altre librerie aperte in gruppi. La posizione vi è ritrovata tramite la sua identità di tavoliere (il suo hash), non tramite il suo numero: uno stesso numero designa due posizioni diverse in due database. Ogni libreria ha il suo blocco, bordato con il colore del suo gruppo:
la sua analisi: la mossa migliore, o la migliore azione di cubo, e il motore che l’ha trovata. Un’analisi valutata con una tabella di equità di match diversa da quella della libreria attiva reca la dicitura altra MET;
i suoi commenti, ciascuno con il suo autore, o il suo firmatario e lo stato della firma come nel pannello dei commenti;
i match in cui la posizione è stata giocata: giocatori, torneo, data, numero della mossa, mossa o decisione giocata e relativo costo. Il verdetto (buona, errore, gaffe) è espresso con le soglie della libreria attiva, non con quelle dell’altra; un costo calcolato con un’altra MET non viene confrontato e resta contrassegnato altra MET. Oltre 50 match, vengono elencati gli ultimi 50 importati e viene indicato il totale;
le sue posizioni vicine, le cinque più prossime, in miniature con la loro distanza.
Una libreria che non contiene la posizione lo dice e mostra comunque le sue vicine. Apri lì, un clic su un match o su una miniatura attiva il gruppo di quella libreria e vi mostra la posizione. Nulla viene scritto in alcun database. Il pulsante ⟳ rilegge le altre librerie.
Lo scambio sul posto. Il tasto x mostra, al posto del tavoliere, nello stesso punto e con la stessa dimensione, la posizione dell’altra libreria, sotto una fascia del suo colore che ne ricorda il nome, la mossa migliore e il numero dei commenti. Tenuto premuto, il tasto riporta il tavoliere quando lo si rilascia; premuto brevemente, lo scambio resta visualizzato fino alla pressione successiva. Anche cambiare posizione o finestra riporta il tavoliere. Il gruppo attivo, la vista e l’elenco non cambiano. La posizione mostrata è, per impostazione predefinita, la stessa posizione nella prima altra libreria che la contiene; il pulsante Fissa sotto una miniatura della scheda Altrove sceglie invece quella vicina, fino a Sblocca o a un cambio di gruppo.
Lo schermo diviso. Su un grande schermo, il pulsante ◫ della barra delle schede (CTRL-MAIUSC-X) divide la finestra in due riquadri della stessa larghezza. Uno porta il gruppo attivo, completo; l’altro un visualizzatore in sola lettura di un’altra libreria aperta (della stessa, se ne è aperta una sola): la sua tavola, l’analisi della posizione e il suo commento. Il visualizzatore scorre tutta la libreria, un match rigiocato mossa per mossa (la partita, la mossa e ciò che è stato giocato appaiono sopra la tavola) o una collezione, a scelta dal suo elenco a discesa, con i pulsanti ⏮ ◀ ▶ ⏭. Si apre dove quella libreria è stata lasciata. Nulla di ciò che mostra viene scritto da nessuna parte. Cliccare il visualizzatore, fuori dai suoi pulsanti, attiva la sua libreria: i due riquadri si scambiano i ruoli e ogni libreria mantiene il suo lato; CTRL-MAIUSC-PAG SU / PAG GIÙ fa lo stesso da tastiera. Sotto i 1280 pixel di larghezza, lo schermo diviso viene rifiutato e si propone lo scambio sul posto (x); si chiude se la finestra diventa troppo stretta.
Configurazione
Il pulsante di configurazione (icona a forma di ingranaggio) situato nella barra degli strumenti, a sinistra del pulsante di aiuto, apre la finestra di configurazione di blunderDB. È organizzata in dieci schede:
Interfaccia — tema, lingua, scala di visualizzazione, posizione del pannello, passo di PageUp / PageDown (10, 50, 100, 500 o 1 000 posizioni, oppure il 10 % dell’elenco), registri, verifica degli aggiornamenti, il vostro nome e posizioni vicine;
Colori della board — i colori della board;
Libreria — ciò che appartiene al database aperto: le soglie di errore e di blunder, descritte qui sotto;
Manutenzione — lo stato di salute del database, una riga per operazione, descritto qui sotto;
Corpus — i duplicati all’importazione, gli alias di giocatori ed eventi e la ricerca dei duplicati probabili (vedere l’importazione dei match);
Bearoff — le tabelle di bearoff usate dal pannello Eval;
gammonNet — le impostazioni del valutatore integrato, descritte qui sotto;
Cartella sorvegliata — l’importazione automatica degli incontri che arrivano in una cartella, descritta più sotto;
Assistente e MCP — il server MCP locale e l’assistente interno, descritti più avanti;
Identità dell’emittente — la chiave che firma i tuoi contrassegni di origine, descritta nella sezione Distribuire un database: origine e password.
La scheda Interfaccia comincia con un tema: seguire il sistema, chiaro, scuro, contrasto elevato o stampabile. Il tema regola i colori dell’interfaccia e propone una tavolozza per la dama — un’interfaccia scura attorno a una dama chiara non è un tema scuro, è la metà di uno, poiché la dama occupa gran parte della finestra.
Voi mantenete l’ultima parola, e il meccanismo lo garantisce anziché prometterlo: la scheda Colori continua a regolare la dama direttamente, e un colore scelto dopo il tema è il vostro. All’avvio sono applicati solo i token dell’interfaccia, mai la tavolozza della dama — quella che avete regolato è già caricata, e riscriverla a ogni lancio cancellerebbe il vostro lavoro una sessione alla volta. Vedere ADR-0038.
Seguire il sistema è l’impostazione predefinita: obbedisce alla preferenza chiaro/scuro della scrivania, anche quando cambia a metà sessione. Uno strumento non impone il proprio chiaro o scuro a una scrivania che ha già deciso.
La scheda Interfaccia permette anche di scegliere la lingua fra inglese, francese, tedesco, italiano, spagnolo, finlandese, giapponese, greco e russo. Tutta l’interfaccia (barra degli strumenti, pannelli, messaggi, aiuto) è tradotta nella lingua selezionata. La scelta della lingua è salvata e conservata da una sessione all’altra.
La scheda Libreria riunisce ciò che appartiene al file aperto e non alla macchina. È vuota finché nessun database è aperto, e lo dice.
Porta anzitutto le due soglie che decidono il vocabolario dell’intera applicazione: una decisione è un errore non appena il suo costo raggiunge la soglia di errore, e questo errore è un blunder non appena raggiunge la soglia di blunder. Ogni blunder è un errore, quindi la prima soglia non può superare la seconda, e blunderDB rifiuta la coppia invertita. I valori si inseriscono in equità — «0,080» — l’unità di tutte le tabelle; la riga di comando, invece, parla in millipunti, sicché la soglia 0,080 si scrive E>80 in una ricerca.
Queste soglie seguono il file, non il computer: lo stesso database conta gli stessi blunder ovunque lo si apra, blunderdb info le mostra, e blunderdb edit --error-threshold / --blunder-threshold le imposta. Non viaggiano in un’esportazione: una soglia è un’abitudine di lettura, non un fatto delle posizioni.
Tre preimpostazioni sono proposte con un clic, ciascuna con il nome del programma che ha tracciato quella linea: blunderDB (0,050 / 0,100), XG (0,020 / 0,080) e gnubg (0,040 / 0,080). Per impostazione predefinita, una libreria legge 0,050 e 0,100.
Ciò che cambiano, sullo schermo: il numero di blunder del contatore della barra di stato e la ricerca che il suo collegamento prepara, le colonne «Errori» e «Blunder» delle statistiche e della tabella dei giocatori, i segni delle mosse nella scheda di un match (Pannello Match), e l’elenco delle posizioni che blunderDB propone di rivedere dopo un’importazione.
La riga Spazio recuperabile della scheda Manutenzione contiene il pulsante Compatta, che recupera lo spazio su disco lasciato dalle eliminazioni (match, tornei, pulizie): il database non si riduce mai da solo quando si eliminano dati, questa compattazione va richiesta esplicitamente. L’operazione può richiedere tempo su un database grande. La copia compattata viene scritta accanto al file, poi lo sostituisce: servono, temporaneamente, circa le dimensioni del database in spazio libero sul suo volume, e non in memoria RAM. Se un altro programma ha il database aperto (una seconda istanza in sola lettura, per esempio), il file non viene sostituito: il database viene compattato sul posto, il che richiede circa il doppio delle sue dimensioni in spazio libero, e un file temporaneo va nella cartella temporanea del sistema, o in quella indicata dalla variabile d’ambiente SQLITE_TMPDIR: con un /tmp piccolo, puntatela al volume del database. blunderDB rifiuta di avviare l’operazione, con un messaggio che dice cosa manca (spazio su disco, o meno di 512 MB di memoria disponibile), piuttosto che rischiare una compattazione interrotta. Prima di avviare l’operazione viene chiesta una conferma. Il risultato — lo spazio guadagnato, in megabyte — viene poi mostrato nella barra di stato. La stessa operazione è disponibile da riga di comando con blunderdb vacuum (vedi Interfaccia a riga di comando (CLI)).
Dopo una compattazione sul posto, blunderDB verifica che il file si sia davvero ridotto. Su Windows, il sistema rifiuta di accorciare un file che un altro programma tiene aperto in certi modi: la compattazione termina allora con un messaggio che lo dice — chiudete l’altro programma e rilanciatela — invece di annunciare un guadagno che non c’è stato.
Il pulsante Apri la cartella dei registri, nella scheda Interfaccia, apre la cartella che contiene il registro dell’applicazione — utile per allegare dettagli a una segnalazione di problema, in particolare quando blunderDB è stato avviato da un collegamento o da un doppio clic, senza un terminale collegato che mostri qualcosa.
La casella Verifica gli aggiornamenti all’avvio, della stessa scheda, disattivata per impostazione predefinita, interroga una volta a ogni avvio la pagina delle ultime versioni del repository GitHub e mostra nella barra di stato un messaggio se è disponibile una versione più recente — mai una finestra che blocchi l’uso. Questa verifica resta disattivata automaticamente su un’installazione passata da un gestore di pacchetti (Flatpak, Homebrew, un pacchetto di distribuzione…): è quel canale a gestire allora gli aggiornamenti, non blunderDB stesso.
Due impostazioni della scheda Interfaccia governano l’ordinamento delle posizioni vicine (token like, vedere Pannello Ricerca): il numero di vicine restituite e la distanza massima oltre la quale una posizione cessa di esserlo. Questa distanza vale zero per impostazione predefinita, cioè nessun limite: la scala dipende dalla fase della partita, e un valore scelto qui si leggerebbe come una misura. Il token like<12 impone la propria per una ricerca, senza toccare l’impostazione.
La scheda Colori della board permette di personalizzare i colori della board. Ogni elemento dispone di un proprio selettore di colore: lo sfondo, il bordo, le punte chiare e scure, le pedine del giocatore 1 e del giocatore 2, i dadi, i punti dei dadi e il cubo. Il pulsante Reimposta ripristina tutti i colori predefiniti. Come la lingua, i colori scelti vengono mantenuti da una sessione all’altra.
La scheda Bearoff gestisce le tabelle di bearoff del pannello Eval (vedi Pannello Eval). Non sono né incorporate nell’eseguibile né scaricate: blunderDB le calcola sulla macchina che le usa, e il risultato è identico byte per byte a ciò che produce gnubg — l’impronta SHA-256 è verificata prima che una tabella venga accettata.
Le due tabelle ordinarie (TS-06-06 per il verdetto di cubo, OS-06 per l’EPC) sono calcolate al primo avvio, in secondo piano e senza chiedere nulla: circa sei secondi su un core, durante i quali l’applicazione si usa normalmente. Il pannello Eval lo segnala solo se vi si pone una posizione che ha bisogno di una tabella non ancora pronta.
La scheda mostra il dominio attivo e la sua origine, lo stato della tabella a un lato che legge l’EPC, la cartella dove tutto questo vive, e l’elenco delle tabelle presenti con la loro dimensione e il loro verdetto. Ogni riga si elimina singolarmente, dopo conferma.
Verificata o non verificata. Una tabella verificata ha esattamente i byte che gnubg produce per il suo dominio: la sua impronta SHA-256 figura in blunderDB ed è stata ritrovata. Le impronte registrate per le tabelle a un lato (da OS-06 a OS-10) sono quelle prodotte dallo strumento makebearoff di GNUbg 1.08. Una tabella non verificata è ben formata ma il suo dominio non ha impronta registrata — non le si rimprovera nulla, semplicemente nessuno l’ha confrontata con il riferimento. Una tabella corrotta si contraddice da sé e non viene mai letta; viene ricalcolata.
Calcolare una tabella più ampia. Il dominio si sceglie in un elenco di due famiglie, con il numero di core da dedicarvi (per impostazione predefinita tutti tranne uno, perché la macchina resti utilizzabile):
cubo esatto (due lati), da TS-06-06 a TS-06-15: amplia il dominio in cui la probabilità di vittoria e il verdetto del cubo sono letti anziché stimati;
EPC fuori dalla casa (un lato), da OS-06 a OS-10: amplia la distanza a cui una pedina può trovarsi senza che il blocco EPC taccia. Questo passaggio legge solo posizioni più piccole di quella che calcola, quindi è sequenziale per costruzione e il numero di core non gli serve — il selettore lo dice ingrigendosi.
Prima di lanciare qualsiasi cosa, la scheda dichiara tre cifre per il dominio scelto: la dimensione su disco, la memoria necessaria durante il calcolo e il tempo che dovrebbe volerci su questa macchina. Quest’ultimo comincia come stima e diventa una misura: ogni calcolo abbastanza ampio rileva la propria velocità e la conserva. Un dominio che la memoria disponibile non permette è proposto in grigio, con la ragione — « servirebbero 24 GB, ne restano 12 » è una risposta, una riga assente non lo sarebbe.
Come ordine di grandezza, su una macchina a sedici thread: TS-06-09 pesa 191 MB e richiede una decina di secondi, TS-06-11 pesa 1,2 GB e qualche minuto, TS-06-13 supera ciò che la maggior parte delle macchine può tenere in memoria. Dal lato a un lato, su un core: OS-07 pesa 4,9 MB e richiede 17 s, OS-08 15 MB e 1 min 20, OS-10 117 MB e mezz’ora.
Pausa e ripresa. Durante il calcolo, l’avanzamento mostra il tempo rimanente misurato e due pulsanti distinti: Pausa e Annulla. La pausa scrive lo stato del calcolo accanto alla tabella; rilanciarlo riprende da dove si era fermato invece di ricominciare. Annullare non conserva nulla. Chiudere la finestra di configurazione non interrompe niente — il calcolo prosegue in secondo piano.
Un calcolo messo in pausa si ritrova all’avvio successivo, nominato e quantificato («TS-06-09 interrotta al 43 %»), con Riprendi ed Elimina. Nulla riparte da solo: è l’utente ad aver chiesto l’arresto.
La scheda permette infine di puntare a un file .bd a due lati esterno, per esempio una base prodotta da gnubg stesso: vince la tabella dal dominio più ampio.
La scheda Manutenzione mostra lo stato di salute del database: una riga per operazione, con il suo conteggio, la sua ultima esecuzione (data ed esito: completata, annullata o fallita) e la sua azione. Solo il calcolo dei match senza statistiche parte da solo, all’apertura.
Posizioni senza analisi — le posizioni che non hanno alcuna analisi; l’azione è l’analisi gammonNet descritta più avanti. Le posizioni che gammonNet rifiuta di valutare (una danza, un punteggio fuori dalla tabella di match) restano in questo conteggio, che quindi non arriva necessariamente a zero.
Analisi gammonNet obsolete — descritte più avanti.
Match senza statistiche — i match le cui statistiche non sono ancora calcolate; l’azione le calcola tutte. Un database aperto in scrittura che ne contiene le calcola da sé in background, a lotti: la barra di stato mostra l’avanzamento di questa riga e il suo pulsante di annullamento, i badge dei tornei e la scheda Giocatori del pannello Statistiche attendono la fine del calcolo, e il resto dell’applicazione resta utilizzabile. Aprire un altro database lo interrompe. In sola lettura, o da riga di comando, la prima lettura delle statistiche le calcola, il che può essere lungo su un database grande: il pannello Statistiche mostra allora questo numero, che apre questa scheda.
Colonne di analisi — le colonne interrogate da ricerca e statistiche sono una proiezione delle analisi memorizzate, che restano intatte: l’azione le ricalcola senza reimportare nulla.
Errori delle mosse giocate — assegna un errore alle mosse giocate che non ne hanno ancora uno.
Analisi nel vecchio formato — riscrive in formato binario le analisi che una versione precedente memorizzava in JSON.
Cestino — il numero di voci del cestino, che lo apre.
Spazio recuperabile — lo spazio libero del file, che la compattazione descritta sopra restituisce al disco.
Un conteggio costoso (legge un’intera tabella) attende il pulsante Conta. Un conteggio di posizioni apre quelle posizioni nell’elenco; quello dei match senza statistiche apre quei match nel pannello dei match. Un’operazione viene eseguita in background: il suo avanzamento e un pulsante di annullamento compaiono nella barra di stato, e viene eseguita una sola operazione alla volta che scrive nel database — un’analisi gammonNet, un rollout o un’altra operazione di manutenzione in corso fa rifiutare la successiva, con il nome di quella che occupa il database. Su un database aperto in sola lettura, le azioni sono disattivate. Le stesse operazioni esistono da riga di comando (blunderdb maintenance).
La scheda gammonNet regola il valutatore integrato (vedere ADR-0011). Vi si regolano due profondità di ricerca, denominate e conservate separatamente — abbassare l’una non modifica mai l’altra:
Profondità di visualizzazione — il comfort interattivo durante la modifica del tavoliere; mai scritta nel database.
Profondità di analisi — ciò che il lotto di analisi dopo l’importazione scrive nell’Analisi di una posizione.
Entrambe valgono per impostazione predefinita 2-ply, la configurazione canonica. Il menu contrassegna con un ⚠ le profondità 3-ply e 4-ply, il cui costo per posizione supera di gran lunga quello del 2-ply. La scheda propone anche la potatura (predefinita k=12) e il numero di mosse candidate mostrate (predefinito 10), oltre a una casella analizza automaticamente dopo l’importazione che, una volta attivata, verifica dopo ogni importazione se restano posizioni senza alcuna analisi (né gammonNet, né XG, né GNUbg, né BGBlitz — la regola è « una valutazione colma soltanto una lacuna », mai una sostituzione) e, se è il caso, avvia in background un’analisi gammonNet alla profondità di analisi configurata. La riga Posizioni senza analisi della scheda Manutenzione rilancia manualmente lo stesso recupero, utile per una libreria costituita prima dell’esistenza di questa funzione.
Un take o un pass viene valutato da gammonNet sulla decisione di chi raddoppia, prima del raddoppio. Un verdetto gammonNet scritto su una tale risposta da una versione precedente di blunderDB giudicava il rilancio del ricevente: viene eliminato all’apertura della libreria, o all’importazione di un database che lo contiene. Il take o il pass torna a essere una posizione senza analisi, assente dalle statistiche finché la riga Posizioni senza analisi della scheda Manutenzione (o l’analisi automatica dopo l’importazione) non la rivaluta.
La riga Analisi gammonNet obsolete della scheda Manutenzione copre il caso inverso: una posizione già analizzata da gammonNet, ma la cui analisi memorizzata è stata scritta da una versione del motore più vecchia di quella in esecuzione, o a una profondità diversa dalla profondità di analisi configurata sopra, vi viene segnalata come obsoleta e rivalutata. Una posizione che porta anche un’analisi XG, GNUbg o BGBlitz non viene mai toccata da questo lotto, qualunque sia il suo contenuto gammonNet — la protezione di ADR-0013 resta incondizionata. Il conteggio delle posizioni obsolete legge ogni analisi gammonNet del database: attende il pulsante Conta. Il lotto ricalcola il proprio elenco nel momento in cui parte.
Entrambi i lotti sono limitati, visibili e annullabili, mai un demone silenzioso: la loro profondità, il loro avanzamento (posizioni analizzate / totale, da 0 all’avvio) e un pulsante di annullamento compaiono nella barra di stato per tutta la loro durata, e scompaiono una volta terminati a favore di un messaggio che riassume il risultato — quante posizioni sono state analizzate, quante sono state rifiutate (una posizione che gammonNet rifiuta di valutare, come un punteggio di partita fuori dalla portata della sua tabella, il che non è mai un guasto) e quante sono fallite (ritentate, invariate, alla prossima esecuzione). Chiudere l’applicazione durante l’uno o l’altro non perde nulla: ogni posizione analizzata viene scritta man mano, e la prossima esecuzione riprende esattamente da dove l’analisi si era fermata, senza alcun registro da tenere. L’annullamento come la chiusura interrompono anche la posizione in corso di calcolo, che resta senza analisi.
Un solo lavoro scrive nella libreria alla volta: un lotto gammonNet, un rollout memorizzato o un’operazione di manutenzione. Un lotto o un’operazione avviati dalla scheda Manutenzione vengono rifiutati finché un altro lavoro è in corso, e la barra di stato nomina quel lavoro; il lotto avviato da un’importazione, una trascrizione o un duello attende invece che l’altro finisca, e la barra di stato lo segnala come « in attesa » fino alla partenza.
La stessa scheda contiene l”impostazione dei rollout avviati dal pannello Analisi (vedi Rollout), conservata da una sessione all’altra: Veloce (216 partite, troncate a 7 semimosse), Standard (1296 partite, troncate a 11 semimosse) o Libera, dove tutti i parametri sono modificabili — troncamento, partite minime e massime (multipli di 36), limite di JSD, profondità (ply), numero di candidate, seme e numero di processi.
Tabella di equity del match della base. In fondo alla scheda, l’elenco Tabella di equity del match (MET) della base sceglie la tabella con cui gammonNet valuta i punteggi di match: Kazaross-XG2, integrata e predefinita, oppure una tabella importata da un file .xml di GNUbg con il pulsante Importa una MET .xml…. La scelta appartiene alla base, non all’applicazione: aprire un’altra base significa ritrovare la sua tabella. Sono lette solo le tabelle esplicite (non le tabelle parametriche zadeh o mec); oltre la lunghezza di una tabella importata, subentra la tabella integrata. Una tabella si identifica dai suoi valori, non dal suo nome: importare il Kazaross-XG2.xml di GNUbg non aggiunge nulla, è la tabella integrata. Ogni analisi calcolata da gammonNet registra la tabella con cui è stata calcolata; le analisi importate (XG, GNUbg, BGBlitz) sono considerate calcolate con Kazaross-XG2. Un’analisi a un punteggio di match calcolata con una tabella diversa da quella corrente è contrassegnata come MET diversa nel pannello di analisi ed esclusa dalle statistiche (medie degli errori, PR, classifiche, testa a testa); un’analisi in money game non lo è mai. Cambiare tabella non riscrive nessuna analisi: cambia solo ciò che i confronti considerano.
La valutazione in diretta del pannello e la matrice del cubo sono valorizzate con la tabella del database, come le analisi che registra. Una tabella viaggia con le analisi che la citano: l’esportazione di un database la porta con sé, e l’importazione di un database la aggiunge al database che la riceve, senza duplicati (una tabella già presente è riconosciuta dai suoi valori) e senza renderla corrente. Un’analisi gammonNet sostituita da quella di un altro motore (XG, GNUbg) torna a essere considerata calcolata con Kazaross-XG2.
Un incontro importato senza analisi ottiene così un PR. È il caso di un incontro giocato online, o di un file Jellyfish .mat, che nessuno ha fatto passare da XG: blunderDB ne conosceva le posizioni e le mosse giocate, ma nessuna analisi diceva quanto valessero. Una volta passato il lotto, la mossa effettivamente giocata è confrontata con la classifica di gammonNet e lo scarto alimenta il PR, il tasso di errore, le peggiori decisioni e tutti gli altri indicatori, esattamente come per un incontro analizzato da XG. Il confronto non inventa nulla: la mossa giocata proviene dalla tabella delle mosse dell’incontro, scritta all’importazione, che il file portasse un’analisi o no.
Un database analizzato con una versione precedente a questa non ha bisogno di essere rivalutato: blunderdb repair ricalcola le colonne a partire dalle analisi e dalle mosse già in archivio e restituisce il loro PR a quegli incontri (vedere repair).
Una riserva onesta: una posizione è identificata dalla sua struttura, quindi una posizione incontrata due volte — giocata bene una volta, male l’altra — porta un solo scarto, quello della sua prima occorrenza registrata. Non è proprio di questo calcolo: una biblioteca XG ha esattamente la stessa forma.
Cartella sorvegliata
La scheda Cartella sorvegliata chiede a blunderDB di guardare una cartella mentre gira e di importare ogni file di incontro che vi compare. Giocare una sessione in eXtreme Gammon, tornare a blunderDB, e trovare gli incontri già lì.
Nulla è indovinato. Finché nessuna cartella è indicata non c’è sorveglianza: blunderDB non si mette a leggere una directory perché ha supposto dove vivono i vostri incontri. Il pulsante Proporre guarda i posti abituali su questa macchina e ne propone uno solo se esiste davvero; altrimenti lo dice, e indicare la cartella spetta a voi.
Tre punti meritano di essere noti prima di attivare la casella:
Sono importati solo i file che compaiono. Ciò che la cartella contiene già quando la sorveglianza parte è registrato come noto e lasciato in pace: puntare una sorveglianza su quattro anni di incontri non deve importarli tutti. Per importare ciò che c’è, usate l’importazione di cartella, che esiste per questo — e le due si compongono benissimo, prima l’importazione, poi la sorveglianza.
Un file è importato solo quando la sua dimensione si è stabilizzata. Un incontro che un altro programma sta scrivendo cresce da un’occhiata all’altra; importarlo scritto a metà darebbe un errore di analisi su cui nessuno può agire. blunderDB attende quindi di vedere due volte lo stesso file immutato.
L’importazione è silenziosa. Stavate studiando una posizione quando sono arrivate le vostre partite: togliervi lo schermo sarebbe il momento peggiore. La modalità, la ricerca attiva, la scheda e la posizione visualizzata non si spostano; l’elenco delle posizioni non viene ricaricato e mostra le nuove partite al prossimo ricaricamento. L’importazione avviene senza finestra, e la barra di stato mostra un banner con il conteggio delle partite importate, ignorate (duplicati) e fallite, con un pulsante che apre il rapporto completo se lo desiderate. Tutto il resto è identico a un’importazione manuale: gli stessi duplicati rilevati, lo stesso lotto di importazione, la stessa analisi automatica se è attivata.
L’intervallo predefinito è di dieci secondi; il minimo è due. La cartella non è percorsa ricorsivamente: una cartella sorvegliata è il posto dove uno strumento deposita i suoi incontri, non un albero da esplorare. Una condivisione di rete smontata non ferma la sorveglianza e non fa nemmeno passare il suo contenuto per nuovo al ritorno.
La stessa sorveglianza esiste da riga di comando, con blunderdb import --type batch --dir <cartella> --watch (vedere Interfaccia a riga di comando (CLI)): è la forma che un server, un’attività pianificata o uno script possono usare.
Sincronizzare due macchine
Copiare il proprio database .db da una macchina all’altra, o riporlo in una cartella sincronizzata (Syncthing, Dropbox…), finisce per danneggiarlo: SQLite scrive accanto al database dei file di journal che una sincronizzazione di file ricopia in disordine. blunderDB sincronizza invece due librerie tramite esportazioni incrementali depositate in una cartella che l’altra macchina sorveglia. Il trasporto è a vostra scelta — Syncthing, chiavetta USB, e-mail: non ci sono né server né account.
Sulla macchina A, nella finestra di esportazione, scegliete Intera libreria, spuntate Solo le novità dall’ultima esportazione in questa cartella e indicate la cartella con Scegli la cartella…. Ogni esportazione vi scrive un file
sync-<machine>-<date>.dbche contiene solo ciò che è entrato nella libreria dall’esportazione precedente verso la stessa cartella; il primo contiene tutto.Sulla macchina B, fate di quella cartella la cartella sorvegliata. Ogni file
.dbche vi compare viene unito senza anteprima, come con l’importazione di un database: una posizione già nota non viene duplicata, una partita già nota viene riconosciuta, le collezioni e le lezioni si uniscono per nome.Fate lo stesso nell’altro senso, con una seconda cartella.
Cosa bisogna sapere:
Il segnaposto «ultima sincronizzazione» sta presso chi esporta, uno per cartella di destinazione, e avanza solo quando il file è completo. La macchina che riceve non registra nulla. Un’esportazione che fallisce lascia il segnaposto dov’è: la successiva porta le stesse righe.
La sincronizzazione avviene solo per aggiunta. Una cancellazione non si propaga: cancellare una partita su A non la cancella su B. Nemmeno una modifica sul posto: un commento riscritto, una partita rinominata, un’analisi rifatta su una posizione già inviata. Partono le posizioni, le partite, i tornei, le collezioni, le lezioni e i commenti entrati dall’ultima esportazione; una collezione riparte anche quando vi è stata aggiunta una posizione, e una posizione quando vi è stato aggiunto un commento. Un commento riscritto non riparte, perché la macchina che riceve non sostituisce mai un testo che possiede già: per trasmettere una correzione, aggiungetela come nuovo commento. I filtri salvati e i mazzi Anki non ne fanno parte: un’esportazione di Intera libreria senza la casella li porta con sé.
Ciò che una macchina ha ricevuto riparte una volta verso l’altra, poiché è nuovo nella sua libreria; l’altra lo riconosce senza aggiungere nulla, e lo scambio successivo è vuoto.
Un file arrivato mentre blunderDB era chiuso non va perso: all’avvio della sorveglianza, ogni
.dbgià presente nella cartella viene unito, a differenza dei file di partite. La macchina che riceve non annota ciò che ha letto; a ogni avvio riunisce quindi tutti i file che la cartella contiene ancora, senza aggiungere nulla, ma al prezzo del tempo per rileggerli. Eliminate ogni tanto i filesync-…già ricevuti perché questo avvio resti rapido.Un’esportazione incrementale non sovrascrive mai un file. Il file precedente potrebbe contenere righe che l’altra macchina non ha ancora ricevuto: un’esportazione verso un nome di file già esistente viene rifiutata. Indicate la cartella, e ogni esportazione vi prende un nome nuovo.
Un file riscritto con un nome già visto viene unito di nuovo: la sorveglianza riconosce un file dal nome, dalla dimensione e dalla data di modifica.
La libreria aperta non viene mai fusa con se stessa: se si trova nella cartella sorvegliata, la sorveglianza la salta.
Un’esportazione che ha dovuto scartare delle righe (segnalate nel registro) non fa avanzare il segnaposto: la successiva le ritenta, insieme a tutto ciò che le segue.
Un’esportazione non viene mai vista scritta a metà: viene scritta con un nome nascosto e poi rinominata in un colpo solo. Un file protetto da password (
.dbx) non viene preso dalla sorveglianza, che non può chiedere la password.
Da riga di comando, blunderdb export --type database --incremental --file <cartella> da una parte e blunderdb import --type batch --dir <cartella> --watch dall’altra (vedere Interfaccia a riga di comando (CLI)). Il server accetta "incremental": true su /v1/exports.sqlite (vedere Modalità headless (server)).
Assistente e MCP
La scheda Assistente e MCP regola due cose, entrambe disattivate per impostazione predefinita.
Il server MCP locale offre gli strumenti di blunderDB (ricerca, lettura di una posizione e della sua analisi, statistiche di un giocatore, quiz…) a un assistente che parla il Model Context Protocol, come Claude Desktop o Claude Code, finché la finestra è aperta. Ascolta solo su questa macchina, all’indirizzo http://127.0.0.1:<porta>/mcp (porta 8765 per impostazione predefinita), e rifiuta una richiesta proveniente da una pagina web. Aggiunge due strumenti di visualizzazione: aprire una vista su una ricerca e mostrare una posizione. Gli strumenti si limitano a leggere, salvo se Consenti la scrittura è spuntata: possono allora salvare una posizione, commentarla, creare e riempire una collezione, valutare una carta Anki e registrare un rollout accanto all’analisi di una posizione; nulla cancella. Senza una finestra aperta, blunderdb mcp serve gli stessi strumenti (vedi Interfaccia a riga di comando (CLI)).
L”assistente interno è un client di questi stessi strumenti. Nessun modello è incorporato: si rivolge a un fornitore compatibile con OpenAI — Ollama su questa macchina per impostazione predefinita, oppure Groq, OpenRouter, Gemini, Anthropic o un altro indirizzo. È remoto ogni indirizzo esterno a questa macchina, qualunque sia il fornitore scelto: le vostre frasi e i risultati degli strumenti la lasciano allora, la scheda lo dice e attende il vostro consenso per quell’indirizzo preciso; un altro indirizzo lo richiede di nuovo. La chiave API va nel portachiavi del sistema, mai nel database né nel file delle impostazioni. Il modello proposto per impostazione predefinita per Ollama, qwen2.5:7b, è un punto di partenza, non una raccomandazione: nessuna raccomandazione di modelli viene fatta senza un punteggio del banco di misura fornito con il codice sorgente.
Una volta attivato, l’assistente è una sotto-scheda Assistente del pannello Ricerca. Una frase — «i miei errori di oltre 50 millipunti nella corsa» — apre una nuova vista col suo nome, vi avvia la ricerca e vi passa; i suoi token restano nella cronologia delle ricerche. Ciò che gli strumenti restituiscono proviene dal database; ciò che il modello scrive è contrassegnato come Testo libero del modello. L’assistente propone una modifica solo se la casella Lasciare che l’assistente proponga modifiche (ciascuna confermata) è spuntata — un’impostazione distinta dalla scrittura del server MCP locale — e ogni modifica che prepara viene mostrata ed eseguita solo dopo Conferma.
La finestra di configurazione raggruppa anche alcune impostazioni di visualizzazione dell’interfaccia. Un cursore di scala dell’interfaccia consente di ingrandire o ridurre l’insieme degli elementi, il che è utile sugli schermi ad alta densità o per migliorare la leggibilità. Le scorciatoie CTRL-+, CTRL– e CTRL-0 regolano la stessa scala, come in un browser. Un menu posizione dei pannelli determina la collocazione dei pannelli (ricerca, match, analisi) rispetto al tavoliere: in basso, di lato o automatica (il lato viene allora scelto sugli schermi larghi per sfruttare meglio lo spazio disponibile). Come le altre impostazioni, queste scelte vengono conservate da una sessione all’altra.
Visite guidate e database di esempio
Per facilitare i primi passi, blunderDB propone delle visite guidate dell’interfaccia. Il catalogo delle visite si apre dalla barra degli strumenti o con il comando tutorial (alias tour). Sono disponibili sette visite: una visita generale dell’interfaccia e visite dedicate alla ricerca di posizioni, alla revisione dei match, alla revisione dei tornei, al pannello Eval, al ripasso Anki e alle statistiche. Ogni visita evidenzia gli elementi interessati dell’interfaccia, passo dopo passo, apre strada facendo il pannello di cui parla, e può essere rigiocata in qualsiasi momento. Al primo avvio, la visita generale viene proposta automaticamente.
Il comando demo carica un database di esempio che permette di scoprire le funzionalità dello strumento senza importare le proprie partite: tre partite (due delle quali raggruppate in un torneo) analizzate da eXtreme Gammon, BGBlitz e gammonNet, tre raccolte tematiche, commenti con etichette (#blunder, #cube) e un mazzo Anki con il suo registro dei ripassi. Giocatori, torneo e luogo sono fittizi. Le visite guidate si basano su questo database quando nessun database è aperto.
Modifica delle posizioni
La pressione del tasto TAB apre il pannello di ricerca e permette di modificare una posizione sul board per aggiungerla al database o per definire una struttura di posizione da cercare. La distribuzione delle pedine, il cubo, il punteggio e il turno possono essere modificati con il mouse (vedi Modificare una posizione).
Suggerimento
Fare riferimento a Scorciatoie da tastiera per le scorciatoie disponibili.
La riga di comando
La riga di comando, integrata nella barra di stato, permette di eseguire tutte le funzionalità di blunderDB disponibili nell’interfaccia grafica: operazioni generali sul database, navigazione delle posizioni, visualizzazione dell’analisi e/o dei commenti, ricerca di posizioni secondo filtri… Dopo aver preso confidenza con l’interfaccia, si raccomanda di utilizzare progressivamente la riga di comando, che consente un uso potente e fluido di blunderDB, in particolare per le funzionalità di ricerca delle posizioni.
Per aprire la riga di comando, premere il tasto SPAZIO. Per inviare una richiesta e chiudere la riga di comando, premere il tasto INVIO.
blunderDB esegue le richieste inviate dall’utente a condizione che siano valide e modifica immediatamente lo stato del database se necessario. Non sono richieste azioni di salvataggio esplicite da parte dell’utente.
Suggerimento
Fare riferimento a elenco dei comandi per l’elenco dei comandi disponibili nella riga di comando.
La tavolozza dei comandi
La tavolozza dei comandi (CTRL-MAIUSC-P) ritrova con un nome approssimativo ciò che non si sa più dove cercare: un comando della riga di comando, una scheda, un filtro della libreria o un match. Le lettere digitate devono comparire nell’ordine, non necessariamente attaccate, senza badare a maiuscole e accenti: «mtrcb» trova la matrice del cubo, «lyon» i match di un torneo di Lione.
Le frecce scelgono, INVIO esegue, ESC chiude. Un comando si esegue come se fosse stato digitato; s e ss aprono la riga di comando per scriverci i filtri; un filtro si esegue come con un doppio clic nella libreria; un match si apre come con un doppio clic nel pannello Match.
Quando una Direzione è aperta, la tavolozza vi aggiunge il torneo: giocatori, tavoli, match in corso e prove (vedi la ricerca rapida).