Prise en main et interface
Introduction
blunderDB est un logiciel pour constituer des bases de données de positions de backgammon. Sa force principale est de fournir un lieu unique pour agréger les positions qu’un joueur a rencontrées (en ligne, en tournoi) et de pouvoir les réétudier en les filtrant selon divers filtres arbitrairement combinables. blunderDB peut également être utilisé pour créer des catalogues de positions de référence.
Les positions sont stockées dans une base de données représentée par un fichier .db. L’application de bureau ouvre ce fichier directement, jamais une adresse réseau : le mode serveur est un autre mode du même binaire, et l’on passe de l’un à l’autre en exportant ou en migrant la base, pas en pointant l’application vers une URL.
Interactions principales
Les principales interactions possibles avec blunderDB sont:
ajouter une nouvelle position,
modifier une position existante,
copier l’image du plateau dans le presse-papier (PNG) via CTRL-X, ou avec l’analyse complète via CTRL-X CTRL-X,
supprimer une position existante,
rechercher une ou plusieurs positions,
importer des matchs depuis différentes sources (XG, GNUbg, BGBlitz, Jellyfish, HedgeHog), y compris les commentaires depuis les fichiers XG,
naviguer dans les coups d’un match importé,
organiser les positions en collections,
organiser les matchs en tournois.
L’utilisateur peut étiqueter librement les positions à l’aide de tags et les annoter via des commentaires.
Description de l’interface
L’interface de blunderDB est constituée de haut en bas par:
[en haut] la barre d’outils, qui rassemble l’ensemble des principales opérations réalisables sur la base de données,
[au milieu] la zone d’affichage principale, qui permet d’afficher ou d’éditer des positions de backgammon,
[en bas] la barre d’état, qui présente différentes informations sur la base de données ou la position courante, et intègre la ligne de commande.
Des panneaux peuvent être affichés pour:
afficher les données d’analyse associées à la position courante issues d’eXtreme Gammon (XG), GNUbg, ou BGBlitz,
afficher, ajouter ou modifier des commentaires,
rechercher et filtrer des positions selon des critères combinables,
afficher et gérer les collections de positions (panneau collections),
afficher la liste des matchs importés et naviguer dans les coups d’un match (panneau matchs),
afficher et gérer les tournois (panneau tournois),
afficher les statistiques de performance (panneau Stats),
calculer l’EPC (Effective Pip Count) d’une position de bearoff (panneau Eval),
s’entraîner sur des exercices de calcul (panneau Entraînement),
étudier les positions par répétition espacée (panneau Anki),
transcrire un match à la main (panneau Transcription),
afficher les métadonnées de la base de données (panneau métadonnées).
La hauteur du panneau se règle en tirant sa poignée ; elle reste la même d’un onglet à l’autre.
Des fenêtres modales peuvent s’afficher pour:
afficher l’aide de blunderDB, dont le champ de recherche (/ y place le curseur) sélectionne les occurrences du texte saisi, sans égard aux majuscules ni aux accents (ENTREE passe à la suivante, MAJ-ENTREE à la précédente),
afficher le catalogue des visites guidées (voir Visites guidées et base d’exemple),
paramétrer l’export de la base de données,
configurer blunderDB, notamment la langue de l’interface (voir Configuration).
La zone d’affichage principale met à disposition à l’utilisateur:
un plateau afin d’afficher ou d’éditer une position de backgammon,
le niveau et le propriétaire du cube,
le compte de course de chaque joueur,
le score de chaque joueur,
les dés à jouer. Si aucune valeur n’est affichée sur les dés, la position des dés indique quel joueur a le trait et que la position est une décision de cube. Lorsque la décision de cube est une réponse à un doublement (prise/passe), le videau proposé est affiché au centre du plateau, à la valeur offerte.
Le presse-papier est le geste courant ; enregistrer est l’autre besoin — l’illustration d’un article, d’un message de forum, d’une leçon. Le SVG y est proposé parce que le plateau en est un : c’est la forme qui survit à un agrandissement, celle qu’on met dans un document sans la flouter. Le PNG en dérive, comme la copie dans le presse-papier : un seul rendu, trois destinations, donc aucune ne peut diverger des autres. Ce menu n’apparaît pas dans le panneau Eval ni dans le panneau Recherche, où le bouton droit sert déjà à poser les pions de l’autre couleur. Voir Amener une position dans le panneau Eval pour amener une position dans le panneau Eval.
La barre d’état est structurée de gauche à droite par les informations suivantes:
la ligne de commande, accessible en appuyant sur la touche ESPACE,
un message d’information lié à une opération réalisée par l’utilisateur,
l’index de la position courante, suivi du nombre de positions dans la bibliothèque courante (ou les informations de coup/partie lors de la navigation dans un match),
le compteur de bibliothèque — « 412 positions · 38 blunders · 5 matchs » — où chaque nombre ouvre ce qu’il compte : les positions, la recherche
E>au seuil de la bibliothèque (lancée aussitôt, comme si on l’avait saisie, et rangée dans l’historique des recherches), ou la liste des matchs. Quand la liste à l’écran n’est pas la bibliothèque entière (recherche, collection, match), le nombre de blunders s’écrit « 12 / 340 blunders » : les blunders de cette liste, puis ceux de la bibliothèque, au même seuil ; une liste de plus de 20 000 positions n’est pas comptée et garde le seul total. Un chiffre qu’on ne peut pas suivre est une décoration. Le seuil des blunders est celui de la bibliothèque, réglé dans l’onglet Bibliothèque de la configuration et partagé avec les statistiques : deux seuils feraient dire deux choses au même mot. Le compteur promet exactement ce que le lien ouvre, y compris pour une position jouée de plusieurs façons, qui vaut son coût le plus élevé. Sur une très grande bibliothèque (plus de 200 000 lignes), le compteur ne balaie pas les tables : un nombre précédé de « ≈ » est une estimation (une borne haute, les lignes supprimées laissant des trous). Si les positions sont estimées, le nombre de blunders, qui n’a pas d’estimation honnête, est le dernier décompte exact, gardé tant qu’aucune écriture ne peut le changer. Après un import ou une modification, il s’affiche « ? » le temps qu’un nouveau décompte se fasse en tâche de fond, puis revient de lui-même ; ouverte en lecture seule, la bibliothèque ne recompte pas et garde « ? » tant que l’instance qui l’écrit n’a pas refait le décompte. Le lien lance la recherche, qui donne le compte exact. Les deux nombres de blunders sont des liens distincts : le premier lance la sous-recherchess E>dans la liste à l’écran, le second la recherche dans toute la bibliothèque ; quand seul le total s’affiche, il n’y a qu’un lien.
Note
Dans le cas de positions issues d’une recherche par l’utilisateur, le nombre de positions indiqué dans la barre d’état correspond au nombre de positions filtrées.
L’onglet Anki porte un badge quand des cartes sont à réviser, tous paquets confondus. Ce chiffre est la raison d’ouvrir l’onglet ; il n’a donc rien à faire derrière lui. Zéro n’affiche rien : un badge qui dit « 0 » est du bruit.
La commande log ouvre le journal d’activité : les deux cents dernières
lignes du fichier de journal, un bouton pour les copier — de quoi joindre un
rapport à un signalement — et un autre pour ouvrir le dossier qui les
contient. Le journal n’est ni filtré ni reformaté : un journal qu’on embellit
est un journal qu’on ne peut plus citer.
La commande grid ouvre la planche-contact : la liste parcourue —
résultats d’une recherche, bibliothèque, collection — en grille de
mini-plateaux, dessinés comme le plateau, par pages de vingt-quatre. Elle
s’ouvre sur la page de la position courante, dont la vignette est encadrée ;
un clic ou ENTREE sur une vignette ouvre sa position sur le plateau et
referme la planche, et elle se parcourt entièrement au clavier (voir
Planche-contact). Elle ne s’ouvre ni en mode édition ni dans
un match, qui se parcourt par ses coups.
Dans l”historique de recherche du panneau Recherche, chaque jeton d’une commande enregistrée s’affiche en pastille nommée — Sans contact, Erreur de coup — plutôt qu’en jeton nu. La commande exacte reste en infobulle, car c’est elle qu’on relance ; et un jeton que blunderDB ne reconnaît pas s’affiche tel quel plutôt que traduit au plus proche.
Onglets de vues
Sous la barre d’outils, une barre d’onglets permet de travailler avec plusieurs vues en parallèle. Chaque vue est un espace de travail indépendant qui conserve sa propre liste de positions, l’index de la position courante, la position affichée, l’analyse et le coup sélectionné, le panneau actif, le commentaire en cours ainsi que le contexte de navigation dans un match. Il est ainsi possible, par exemple, de garder une recherche ouverte dans une vue tout en parcourant un match dans une autre.
Créer une vue : cliquer sur le bouton + de la barre d’onglets (nommé + Nouvelle vue tant qu’il n’y a qu’une vue) ou appuyer sur CTRL-T. La nouvelle vue démarre comme une copie de la vue courante.
Fermer une vue : cliquer sur la croix de l’onglet ou appuyer sur CTRL-W. La dernière vue ne peut pas être fermée.
Changer de vue : cliquer sur un onglet, appuyer sur CTRL-Page préc. / CTRL-Page suiv. (ou MAJ-J / MAJ-K) pour passer à la vue précédente / suivante, ou CTRL-1 à CTRL-9 pour atteindre directement la n-ième vue de la bibliothèque active.
Renommer une vue : double-cliquer sur l’onglet, saisir le nouveau nom et valider avec ENTREE.
Une vue laissée dans le panneau Eval y revient telle qu’elle a été laissée : son plateau brouillon, et en sortant du panneau, la position qu’elle étudiait. Le dernier plateau brouillon du panneau Eval est lui aussi propre à chaque vue.
Les vues sont enregistrées avec l’état de session de la base de données et restaurées à sa réouverture.
Plusieurs bibliothèques ouvertes
Plusieurs bases de données peuvent rester ouvertes en même temps. Chacune forme un groupe d’onglets : dans la barre, un en-tête de couleur porte le nom du fichier, suivi des vues de cette bibliothèque, dont le bord supérieur reprend la même couleur. Une seule bibliothèque est active à la fois : c’est elle que lisent et écrivent les panneaux, la recherche, les imports et l’assistant.
Avec une seule bibliothèque ouverte, la barre ne montre aucun en-tête : seul le titre de la fenêtre nomme la base.
Ouvrir une bibliothèque dans un nouveau groupe : bouton ⧉ Autre bibliothèque à droite de la barre d’onglets (⧉ seul dès que deux groupes sont ouverts), CTRL-MAJ-O, ou la commande
open_group(og). La bibliothèque active jusque-là reste ouverte dans son groupe. CTRL-O remplace, lui, la bibliothèque du groupe actif ; l’infobulle du bouton Ouvrir de la barre d’outils rappelle les deux raccourcis.Changer de bibliothèque : cliquer un onglet d’un autre groupe active sa bibliothèque et cette vue d’un seul geste ; cliquer l’en-tête du groupe la ramène sur la vue où elle a été laissée. CTRL-MAJ-Page préc. / CTRL-MAJ-Page suiv. passent à la bibliothèque précédente / suivante ; CTRL-Page préc. / CTRL-Page suiv. (ou MAJ-J / MAJ-K) parcourent les vues de tous les groupes à la suite.
Fermer un groupe : la croix de son en-tête ferme la bibliothèque et ses vues. Fermer le groupe actif affiche son voisin ; la barre d’état nomme la bibliothèque fermée et celle affichée.
L’en-tête du groupe actif porte le nom en blanc sur sa couleur ; ceux des autres groupes, le nom sur le fond de la barre, souligné en haut de leur couleur. Six couleurs se succèdent : un septième groupe reprend la première. Les vues sont numérotées dans leur bibliothèque : une base ouverte dans un nouveau groupe commence à « #1 », et CTRL-1 … CTRL-9 visent les vues du groupe actif. Quand les onglets ne tiennent plus dans la largeur de la fenêtre, la barre défile (molette, ou le changement de vue qui amène l’onglet affiché à l’écran) au lieu de les réduire.
La bascule est immédiate : chaque groupe garde en mémoire ses vues, sa liste de positions, la position courante, les critères de recherche (même en cours de saisie, sans avoir lancé la recherche), la liste des matchs, les compteurs et le défilement de chaque liste du panneau, et les retrouve sans relire la base. Une bibliothèque ouverte dans un nouveau groupe part d’un formulaire de recherche vierge : les matchs et tournois choisis dans un groupe ne s’appliquent jamais dans un autre. Le travail en cours le suit aussi : un brouillon de transcription, une leçon, une révision Anki, la file d’étude et la Direction ouverte se retrouvent tels qu’ils ont été laissés. Ce qui a pu changer pendant l’absence est relu juste après l’affichage : les compteurs toujours, la liste des matchs si leur nombre a changé ou si une tâche de fond a écrit dans la bibliothèque pendant l’absence. Les listes propres à chaque base (collections, tournois, paquets Anki, brouillons, Duels, historique de recherche, filtres enregistrés) sont relues dans la bibliothèque affichée.
Un même fichier ne s’ouvre pas dans deux groupes : le rouvrir affiche le groupe qui le tient déjà.
Les tâches de fond restent attachées à leur bibliothèque : un import de fichiers de matchs, le dossier surveillé et l’analyse GammonNet par lots continuent dans le groupe où ils ont commencé quand on en affiche un autre, et n’écrivent jamais dans la bibliothèque affichée. Leur progression et leur compte rendu restent dans leur groupe : tant qu’il n’est pas affiché, son en-tête porte une pastille, qui clignote pendant que la tâche travaille et devient fixe quand elle est terminée. Au retour sur le groupe, la pastille s’efface, la barre d’état dit ce que la tâche a fait et la liste des matchs est relue. L’analyse automatique qui suit un import se lance dans la bibliothèque de l’import. Le dossier surveillé appartient au groupe où il a été démarré : les fichiers de matchs y sont importés en fond, tandis qu’une base à fusionner ou un texte de position attend que ce groupe soit de nouveau affiché. Fermer un groupe arrête ses tâches et sa surveillance.
Copier d’une bibliothèque à l’autre. Une ligne glissée sur l’en-tête d’un
autre groupe y est copiée, dans un sens comme dans l’autre : un match de la
liste des matchs, une collection de la liste des collections, une position
d’une collection ouverte, la position affichée (on la saisit par son compteur
« n / N » dans la barre d’état) ou la leçon en cours de lecture (par son nom
dans la barre de la leçon). L’en-tête visé s’entoure d’un pointillé. La copie
est celle de la commande transfer : la sélection d’un export, fusionnée
par l’import natif, avec les analyses, les commentaires et les coups joués ;
une collection emporte ses positions, un match sa transcription. Ce que la
bibliothèque d’arrivée tient déjà n’est pas recopié : copier de A vers B puis
de B vers A ne crée aucun doublon, et rien n’y dit d’où vient la copie. La
copie tourne en fond, attachée au groupe d’arrivée : son en-tête porte la
pastille, et la barre d’état dit, au retour, combien de positions et de matchs
sont nouveaux et combien étaient déjà là.
Le panier rassemble des lignes de plusieurs bibliothèques pour les verser en une fois. MAJ-B y met la position affichée, ou l’en retire, comme b pour la Pile ; une ligne glissée sur le panier y entre aussi. Le panier, à droite de la barre des onglets, montre son compte ; un clic ouvre son menu (Verser dans … chaque groupe, Vider le panier), et le glisser sur l’en-tête d’un groupe l’y verse. Il vit en mémoire, jamais dans une base : fermer un groupe en retire ses lignes, et il disparaît à la fermeture de blunderDB. Une position encore en brouillon doit d’abord être enregistrée.
Le cadenas d’un en-tête verrouille son groupe : rien n’y est plus versé, ni par glisser ni par le panier, et la barre d’état le dit. Le verrou ne touche ni les imports ni les modifications faites dans le groupe ; un second clic le lève.
Le changement de groupe reste refusé, au clic comme au clavier, avec un
message dans la barre d’état qui nomme la cause et dit où l’arrêter, quand ce
qui tourne suit l’écran : un rollout, dont le résultat s’affiche sur la
position du plateau (rollout stop) ; l’affichage d’un tournoi, qui sert la
bibliothèque affichée sur le réseau du club (on l’arrête dans la Direction) ;
un Duel en cours, qui tient le plateau et ses vues ; une séance
d’entraînement, dont le chronomètre et le journal ne suivent aucun groupe ;
enfin, le temps qu’il dure, l’import des fichiers que seule l’interface sait
lire (textes de position, importés un par un) ou la fusion d’une base.
À la fermeture de blunderDB, seule la session de la bibliothèque active est
enregistrée, et la liste des groupes ne l’est pas : au démarrage suivant,
blunderDB rouvre la dernière base active.
Ce que les autres bibliothèques savent : l’onglet Ailleurs
L’onglet Ailleurs (CTRL-MAJ-A) dit, pour la position affichée, ce qu’en savent les autres bibliothèques ouvertes en groupes. La position y est retrouvée par son identité de plateau (son hachage), non par son numéro : un même numéro désigne deux positions différentes dans deux bases. Chaque bibliothèque a son bloc, bordé de la couleur de son groupe :
son analyse : le meilleur coup, ou la meilleure action de videau, et le moteur qui l’a trouvé. Une analyse valorisée avec une autre table d’équité de match que celle de la bibliothèque active porte la mention autre MET ;
ses commentaires, chacun avec son auteur, ou son signataire et l’état de la signature comme dans le panneau des commentaires ;
les matchs où la position a été jouée : joueurs, épreuve, date, numéro du coup, coup ou décision joués et leur coût. Le verdict (bon, erreur, gaffe) est rendu avec les seuils de la bibliothèque active, pas avec ceux de l’autre ; un coût calculé avec une autre MET n’est pas comparé et reste marqué autre MET. Au-delà de 50 matchs, les 50 derniers importés sont listés et le total est indiqué ;
ses positions voisines, les cinq plus proches, en vignettes avec leur distance.
Une bibliothèque qui ne contient pas la position le dit, et montre tout de même ses voisines. Ouvrir là-bas, un clic sur un match ou sur une vignette active le groupe de cette bibliothèque et y affiche la position. Rien n’est écrit dans aucune base. Le bouton ⟳ relit les autres bibliothèques.
L’échange sur place. La touche x montre, à la place du plateau, au même endroit et à la même taille, la position de l’autre bibliothèque, sous un bandeau à sa couleur qui rappelle son nom, son meilleur coup et le nombre de ses commentaires. Maintenue, la touche ramène le plateau quand on la relâche ; pressée brièvement, l’échange reste affiché jusqu’à la pression suivante. Changer de position ou de fenêtre ramène aussi le plateau. Le groupe actif, la vue et la liste ne changent pas. La position montrée est, par défaut, la même position dans la première autre bibliothèque qui la contient ; le bouton Épingler sous une vignette de l’onglet Ailleurs choisit plutôt cette voisine, jusqu’à Désépingler ou un changement de groupe.
L’écran partagé. Sur un grand écran, le bouton ◫ de la barre des onglets (CTRL-MAJ-X) partage la fenêtre en deux volets de même largeur. L’un porte le groupe actif, entier ; l’autre une visionneuse en lecture d’une autre bibliothèque ouverte (de la même, s’il n’y en a qu’une) : son plateau, l’analyse de la position et son commentaire. La visionneuse parcourt toute la bibliothèque, un match rejoué coup par coup (la partie, le coup et ce qui a été joué s’affichent au-dessus du plateau) ou une collection, au choix de sa liste déroulante, avec ses boutons ⏮ ◀ ▶ ⏭. Elle s’ouvre là où cette bibliothèque a été quittée. Rien de ce qu’elle montre n’est écrit nulle part. Cliquer la visionneuse, hors de ses boutons, active sa bibliothèque : les deux volets échangent leurs rôles et chaque bibliothèque garde son côté ; CTRL-MAJ-PAGE PRÉC. / PAGE SUIV. fait de même au clavier. Sous 1280 pixels de large, l’écran partagé se refuse et propose l’échange sur place (x) ; il se ferme si la fenêtre devient trop étroite.
Configuration
Le bouton de configuration (icône en forme de rouage) situé dans la barre d’outils, à gauche du bouton d’aide, ouvre la fenêtre de configuration de blunderDB. Elle est organisée en dix onglets :
Interface — thème, langue, échelle d’affichage, position du panneau, pas de PageUp / PageDown (10, 50, 100, 500 ou 1 000 positions, ou 10 % de la liste), journaux, vérification des mises à jour, votre nom et positions voisines ;
Couleurs — les couleurs du plateau ;
Bibliothèque — ce qui appartient à la base ouverte : les seuils d’erreur et de blunder, décrits ci-dessous ;
Maintenance — l’état de santé de la base, une ligne par opération, décrit ci-dessous ;
Corpus — les doublons à l’import, les alias de joueurs et d’événements et la recherche des doublons probables (voir l’import de matchs) ;
Bearoff — les tables de sortie utilisées par le panneau Eval ;
gammonNet — les réglages de l’évaluateur embarqué, décrits ci-dessous ;
Dossier surveillé — l’import automatique des matchs qui arrivent dans un dossier, décrit ci-dessous ;
Assistant et MCP — le serveur MCP local et l’assistant interne, décrits ci-dessous ;
Identité d’émetteur — la clé qui signe vos filigranes, décrite à la section Diffuser une base : origine et mot de passe.
L’onglet Interface propose d’abord un thème : suivre le système, clair, sombre, contraste élevé ou imprimable. Le thème règle les couleurs de l’interface et propose une palette de plateau — une interface sombre autour d’un plateau clair n’est pas un thème sombre, c’est la moitié d’un, puisque le plateau occupe l’essentiel de la fenêtre.
Vous gardez le dernier mot, et le mécanisme le garantit plutôt que de le promettre : l’onglet Couleurs continue de régler le plateau directement, et une couleur choisie après le thème est la vôtre. Au démarrage, seuls les jetons de l’interface sont appliqués, jamais la palette du plateau — celle que vous avez réglée est déjà chargée, et la réécrire à chaque lancement effacerait votre travail une session à la fois. Voir ADR-0038.
Suivre le système est le réglage par défaut : il obéit à la préférence clair/sombre du bureau, y compris lorsqu’elle change en cours de session. Un outil n’impose pas son clair ou son sombre à un bureau qui a déjà tranché.
L’onglet Interface permet aussi de choisir la langue parmi l’anglais, le français, l’allemand, l’italien, l’espagnol, le finnois, le japonais, le grec et le russe. L’ensemble de l’interface (barre d’outils, panneaux, messages, aide) est traduit dans la langue sélectionnée. Le choix de la langue est enregistré et conservé d’une session à l’autre.
L’onglet Bibliothèque réunit ce qui appartient au fichier ouvert et non à la machine. Il est vide tant qu’aucune base n’est ouverte, et il le dit.
Il porte d’abord les deux seuils qui décident du vocabulaire de toute
l’application : une décision est une erreur dès que son coût atteint le
seuil d’erreur, et cette erreur est un blunder dès qu’il atteint le seuil
de blunder. Tout blunder est une erreur, donc le premier seuil ne peut pas
dépasser le second, et blunderDB refuse la paire inversée. Les valeurs sont
saisies en équité — « 0,080 » — l’unité de toutes les tables ; la ligne de
commande, elle, parle en millipoints, si bien que le seuil 0,080 s’écrit
E>80 dans une recherche.
Ces seuils suivent le fichier, pas l’ordinateur : la même base compte les
mêmes blunders partout où on l’ouvre, blunderdb info les affiche, et
blunderdb edit --error-threshold / --blunder-threshold les règle. Ils
ne voyagent pas dans un export : un seuil est une habitude de lecture, pas un
fait des positions.
Trois préréglages sont proposés d’un clic, chacun sous le nom du programme qui a tracé cette ligne : blunderDB (0,050 / 0,100), XG (0,020 / 0,080) et gnubg (0,040 / 0,080). Par défaut, une bibliothèque lit 0,050 et 0,100.
Ce qu’ils changent, à l’écran : le nombre de blunders du compteur de la barre d’état et la recherche que son lien prépare, les colonnes « Erreurs » et « Blunders » des statistiques et du tableau des joueurs, les marques des coups dans la fiche d’un match (Panneau Matchs), et la liste des positions que blunderDB propose de revoir après un import.
La ligne Espace récupérable de l’onglet Maintenance porte le bouton
Compacter, qui récupère
l’espace disque laissé par les suppressions (matchs, tournois, purges) : la
base de données ne rétrécit jamais toute seule quand on supprime des données,
il faut demander explicitement ce compactage. L’opération peut prendre du
temps sur une grosse base. La copie compactée est écrite à côté du fichier,
puis le remplace : il faut, temporairement, environ la taille de la base en
espace disque libre sur son volume, et non en mémoire vive. Si un autre
programme a la base ouverte (une seconde instance en lecture seule, par
exemple), le fichier n’est pas remplacé : la base est compactée sur place, ce
qui demande environ deux fois sa taille en espace libre, et un fichier
temporaire va dans le dossier temporaire du système, ou dans celui que
désigne la variable d’environnement SQLITE_TMPDIR : sur un petit
/tmp, pointez-la vers le volume de la base. blunderDB refuse de démarrer,
avec un message qui dit ce qui manque (espace disque, ou moins de 512 Mo de
mémoire disponible), plutôt que de risquer un compactage interrompu.
Une confirmation est demandée avant de lancer l’opération. Le résultat — l’espace gagné, en mégaoctets — s’affiche
ensuite dans la barre d’état. La même opération est disponible en ligne de
commande via blunderdb vacuum (voir Interface en ligne de commande (CLI)).
Après un compactage sur place, blunderDB vérifie que le fichier a bien rétréci. Sous Windows, le système refuse de raccourcir un fichier qu’un autre programme garde ouvert de certaines façons : le compactage se termine alors par un message qui le dit — fermez l’autre programme et relancez-le — au lieu d’annoncer un gain qui n’a pas eu lieu.
Le bouton Ouvrir le dossier des journaux, dans l’onglet Interface, ouvre le dossier contenant le journal de l’application — utile pour joindre des détails à un signalement de problème, en particulier quand blunderDB est lancé depuis un raccourci ou un double-clic, sans terminal attaché pour afficher quoi que ce soit.
La case Vérifier les mises à jour au démarrage, du même onglet, désactivée par défaut, interroge une fois la page des dernières versions du dépôt GitHub à chaque lancement et affiche, dans la barre d’état, un message si une version plus récente est disponible — jamais une fenêtre qui bloque l’utilisation. Cette vérification reste désactivée automatiquement sur une installation passée par un gestionnaire de paquets (Flatpak, Homebrew, un paquet de distribution…) : c’est ce canal-là qui gère alors les mises à jour, pas blunderDB lui-même.
Deux réglages de l’onglet Interface gouvernent le classement des positions voisines (jeton
like, voir Panneau Recherche) : le nombre de voisines rendues, et la
distance maximale au-delà de laquelle une position cesse d’en être une. Cette
distance vaut zéro par défaut, c’est-à-dire aucun plafond : l’échelle dépend de
la phase de la partie, et une valeur choisie ici se lirait comme une mesure. Le
jeton like<12 impose la sienne pour une recherche, sans toucher au réglage.
L’onglet Couleurs permet de personnaliser les couleurs du plateau. Chaque élément dispose de son propre sélecteur de couleur : le fond, la bordure, les flèches claires et foncées, les pions du joueur 1 et du joueur 2, les dés, les points des dés et le videau. Le bouton Réinitialiser rétablit l’ensemble des couleurs par défaut. Comme la langue, les couleurs choisies sont conservées d’une session à l’autre.
L’onglet Bearoff gère les tables de sortie du panneau Eval (voir Panneau Eval). Elles ne sont ni embarquées dans l’exécutable, ni téléchargées : blunderDB les calcule sur la machine qui s’en sert, et le résultat est identique octet pour octet à ce que produit gnubg — l’empreinte SHA-256 est vérifiée avant que la table ne soit acceptée.
Les deux tables ordinaires (TS-06-06 pour le verdict de videau, OS-06 pour l’EPC) sont calculées au premier lancement, en arrière-plan et sans rien demander : environ six secondes sur un cœur, pendant lesquelles l’application s’utilise normalement. Le panneau Eval ne le signale que si l’on y pose une position qui a besoin d’une table pas encore prête.
L’onglet affiche le domaine actif et son origine, l’état de la table une face que lit l’EPC, le dossier où tout cela vit, et la liste des tables présentes avec leur taille et leur verdict. Chaque ligne se supprime individuellement, après confirmation.
Vérifiée ou non vérifiée. Une table vérifiée a exactement les octets que
gnubg produit pour son domaine : son empreinte SHA-256 figure dans blunderDB et
a été retrouvée. Les empreintes enregistrées pour les tables une face (OS-06 à
OS-10) sont celles que produit l’outil makebearoff de GNUbg 1.08. Une table non vérifiée est bien formée mais son domaine n’a
pas d’empreinte enregistrée — rien ne lui est reproché, simplement personne ne
l’a comparée à la référence. Une table corrompue se contredit elle-même et
n’est jamais lue ; elle est recalculée.
Calculer une table plus large. Le domaine se choisit dans une liste à deux familles, avec le nombre de cœurs à y consacrer (par défaut tous sauf un, pour que la machine reste utilisable) :
videau exact (deux faces), de TS-06-06 à TS-06-15 : élargit le domaine où la probabilité de gain et le verdict de videau sont lus plutôt qu’estimés ;
EPC hors du jan (une face), de OS-06 à OS-10 : élargit la distance à laquelle un pion peut se trouver sans que le bloc EPC se taise. Ce balayage ne lit que des positions plus petites que celle qu’il calcule, donc il est séquentiel par construction et le nombre de cœurs ne lui sert à rien — le sélecteur le dit en se grisant.
Avant de lancer quoi que ce soit, l’onglet annonce trois chiffres pour le domaine choisi : la taille sur le disque, la mémoire nécessaire pendant le calcul, et le temps que cela devrait prendre sur cette machine. Ce dernier commence par une estimation, puis devient une mesure : chaque calcul assez large relève sa propre vitesse et la conserve. Un domaine que la mémoire disponible ne permet pas est proposé grisé, avec la raison — « il faudrait 24 Go, il en reste 12 » est une réponse, une ligne absente n’en serait pas une.
À titre d’ordre de grandeur, sur une machine à seize fils : TS-06-09 pèse 191 Mo et demande une dizaine de secondes, TS-06-11 pèse 1,2 Go et quelques minutes, TS-06-13 dépasse ce que la plupart des machines peuvent tenir en mémoire. Du côté une face, sur un cœur : OS-07 pèse 4,9 Mo et prend 17 s, OS-08 15 Mo et 1 min 20, OS-10 117 Mo et une demi-heure.
Pause et reprise. Pendant le calcul, la progression affiche le temps restant mesuré, et deux boutons distincts : Pause et Annuler. La pause écrit l’état du calcul à côté de la table ; le relancer reprend là où il s’est arrêté au lieu de tout recommencer. Annuler ne garde rien. Fermer la fenêtre de configuration n’interrompt rien — le calcul continue en arrière-plan.
Un calcul mis en pause se retrouve au lancement suivant, nommé et chiffré (« TS-06-09 interrompue à 43 % »), avec Reprendre et Supprimer. Rien ne redémarre tout seul : c’est l’utilisateur qui a demandé l’arrêt.
L’onglet permet enfin de pointer vers un fichier .bd two-sided externe, par
exemple une base produite par gnubg lui-même : la table au domaine le plus
large l’emporte.
L’onglet Maintenance montre l’état de santé de la base : une ligne par opération, avec son compte, sa dernière exécution (date et issue : terminée, annulée ou en échec) et son action. Seul le calcul des matchs sans statistiques se lance tout seul, à l’ouverture.
Positions sans analyse — les positions qui ne portent aucune analyse ; l’action est l’analyse gammonNet décrite plus bas. Les positions que gammonNet refuse d’évaluer (une danse, un score hors de la table de match) restent dans ce compte, qui n’atteint donc pas forcément zéro.
Analyses gammonNet périmées — décrites plus bas.
Matchs sans statistiques — les matchs dont les statistiques ne sont pas encore calculées ; l’action les calcule tous. Une base ouverte en écriture qui en compte les calcule d’elle-même en arrière-plan, par lots : la barre d’état montre la progression de cette ligne et son bouton d’annulation, les badges des tournois et l’onglet Joueurs du panneau Statistiques attendent la fin du calcul, et le reste de l’application reste utilisable. Ouvrir une autre base l’arrête. En lecture seule, ou en ligne de commande, la première lecture des statistiques les calcule, ce qui peut être long sur une grosse base : le panneau Statistiques affiche alors ce nombre, qui ouvre cet onglet.
Colonnes d’analyse — les colonnes que la recherche et les statistiques interrogent sont une projection des analyses stockées, lesquelles restent intactes : l’action les recalcule sans rien réimporter.
Erreurs des coups joués — note les coups joués qui n’ont pas encore d’erreur.
Analyses à l’ancien format — réécrit au format binaire les analyses qu’une version antérieure stockait en JSON.
Corbeille — le nombre d’entrées de la corbeille, qui l’ouvre.
Espace récupérable — l’espace libre du fichier, que le compactage décrit plus haut rend au disque.
Un compte coûteux (il lit une table entière) attend le bouton Compter.
Un compte de positions ouvre ces positions dans la liste ; celui des matchs
sans statistiques ouvre ces matchs dans le panneau des matchs. Une opération
tourne en arrière-plan : sa progression et un bouton d’annulation s’affichent
dans la barre d’état, et une seule opération qui écrit dans la base tourne à
la fois — une analyse gammonNet, un rollout ou une autre opération de
maintenance en cours fait refuser la suivante, avec le nom de celle qui
occupe la base. Sur une base ouverte en lecture seule, les actions sont
désactivées. Les mêmes opérations existent en ligne de commande
(blunderdb maintenance).
L’onglet gammonNet règle l’évaluateur embarqué (voir ADR-0011). Deux profondeurs de recherche y sont réglables, nommées et conservées séparément — abaisser l’une ne modifie jamais l’autre :
Profondeur d’affichage — le confort interactif pendant l’édition du plateau ; jamais écrite en base.
Profondeur d’analyse — ce que le lot d’analyse après import écrit dans l’Analyse d’une position.
Les deux valent par défaut 2-ply, la configuration canonique. Le menu
marque d’un ⚠ les profondeurs 3-ply et 4-ply, dont le coût par position
dépasse de loin celui de 2-ply. L’onglet
propose aussi l”élagage (par défaut k=12) et le nombre de coups
candidats affichés (par défaut 10), ainsi qu’une case analyser
automatiquement après import qui, une fois activée, vérifie après chaque
import s’il reste des positions sans aucune analyse (ni gammonNet, ni XG,
ni GNUbg, ni BGBlitz — la règle est « une évaluation ne comble qu’un trou »,
jamais un remplacement) et, le cas échéant, lance en tâche de fond une analyse
gammonNet à la profondeur d’analyse configurée. La ligne Positions sans
analyse de l’onglet Maintenance relance manuellement le même rattrapage,
utile pour une bibliothèque constituée avant l’existence de cette
fonctionnalité.
Une prise ou un refus est évalué par gammonNet sur la décision du doubleur, avant le double. Un verdict gammonNet écrit sur une telle réponse par une version antérieure de blunderDB jugeait le redouble du receveur : il est supprimé à l’ouverture de la bibliothèque, ou à l’import d’une base qui le porte. La prise ou le refus redevient une position sans analyse, absente des statistiques jusqu’à ce que la ligne Positions sans analyse de l’onglet Maintenance (ou l’analyse automatique après import) la réévalue.
La ligne Analyses gammonNet périmées de l’onglet Maintenance couvre le cas inverse : une position déjà analysée par gammonNet, mais dont l’analyse stockée a été écrite par une version de moteur plus ancienne que celle en cours d’exécution, ou à une profondeur différente de la profondeur d’analyse configurée ci-dessus, y est signalée comme périmée et réévaluée. Une position portant en plus une analyse XG, GNUbg ou BGBlitz n’est jamais touchée par ce lot, quel que soit son contenu gammonNet — la protection d”ADR-0013 reste inconditionnelle. Le compte des positions périmées lit chaque analyse gammonNet de la base : il attend le bouton Compter. Le lot recalcule sa propre liste au moment de démarrer.
Les deux lots sont bornés, visibles et annulables, jamais un démon
silencieux : leur profondeur, leur progression (positions analysées / total,
dès 0 au lancement) et un
bouton d’annulation apparaissent dans la barre de statut pendant toute leur
durée, et disparaissent une fois terminés au profit d’un message résumant le
résultat — combien de positions ont été analysées, combien ont été
refusées (une position que gammonNet décline d’évaluer, comme un score de
match hors de portée de sa table de match, ce qui n’est jamais une panne) et
combien ont échoué (retentées, inchangées, au prochain lancement).
Fermer l’application pendant l’un ou l’autre ne perd rien : chaque position
analysée est écrite au fil de l’eau, et un prochain lancement reprend
exactement là où l’analyse s’était arrêtée, sans aucun journal à tenir.
L’annulation comme la fermeture interrompent aussi la position en cours de
calcul, qui reste sans analyse.
Un seul travail écrit la bibliothèque à la fois : un lot gammonNet, un rollout stocké ou une opération de maintenance. Un lot ou une opération lancés depuis l’onglet Maintenance sont refusés tant qu’un autre travail est en cours, et la barre de statut nomme ce travail ; le lot que lance un import, une transcription ou un duel attend au contraire qu’il finisse, et la barre de statut l’annonce « en attente » jusqu’à son départ.
Le même onglet porte le réglage des rollouts lancés depuis le panneau Analyse (voir Rollouts), conservé d’une session à l’autre : Rapide (216 parties, tronquées à 7 demi-coups), Standard (1296 parties, tronquées à 11 demi-coups) ou Libre, où tous les paramètres s’éditent — troncature, parties minimum et maximum (multiples de 36), limite de JSD, profondeur (ply), nombre de candidats, graine et nombre de processus.
Table d’équité de match de la base. Au bas de l’onglet, la liste
Table d’équité de match (MET) de la base choisit la table avec laquelle
gammonNet valorise les scores de match : Kazaross-XG2, intégrée, par défaut,
ou une table importée d’un fichier .xml de GNUbg par le bouton
Importer une MET .xml…. Le choix appartient à la base, pas à
l’application : ouvrir une autre base, c’est retrouver sa table. Seules les
tables explicites sont lues (pas les tables paramétriques zadeh ou
mec) ; au-delà de la longueur d’une table importée, la table intégrée
prend le relais. Une table s’identifie par ses valeurs, non par son nom :
importer le Kazaross-XG2.xml de GNUbg n’ajoute rien, c’est la table
intégrée. Chaque analyse calculée par gammonNet enregistre la table avec
laquelle elle l’a été ; les analyses importées (XG, GNUbg, BGBlitz) sont
réputées calculées avec Kazaross-XG2. Une analyse à un score de match
calculée avec une autre table que la table courante est marquée
MET différente dans le panneau d’analyse et sortie des statistiques
(moyennes d’erreur, PR, classements, face-à-face) ; une analyse en money game
ne l’est jamais. Changer de table ne réécrit aucune analyse : seul change ce
que les comparaisons retiennent.
L’évaluation en direct du panneau et la grille de videau sont valorisées avec la table de la base, comme les analyses qu’elle enregistre. Une table voyage avec les analyses qui la citent : l’export d’une base l’emporte, et l’import d’une base l’ajoute à la base qui reçoit, sans doublon (une table déjà présente est reconnue à ses valeurs) et sans la rendre courante. Une analyse gammonNet remplacée par celle d’un autre moteur (XG, GNUbg) redevient réputée calculée avec Kazaross-XG2.
Un match importé sans analyse obtient ainsi un PR. C’est le cas d’un match
joué en ligne, ou d’un fichier Jellyfish .mat, que personne n’a fait
passer par XG : blunderDB en connaissait les positions et les coups joués,
mais aucune analyse ne disait ce qu’ils valaient. Une fois le lot passé, le
coup effectivement joué est comparé au classement de gammonNet et l’écart
alimente le PR, le taux d’erreur, les pires décisions et tous les autres
indicateurs, exactement comme un match analysé par XG. La comparaison ne
s’invente rien : le coup joué vient de la table des coups du match, écrite à
l’import, que le fichier ait porté une analyse ou non.
Une base analysée avec une version antérieure à celle-ci n’a pas besoin d’être
réévaluée : blunderdb repair recalcule les colonnes à partir des analyses
et des coups déjà en base et rend leur PR à ces matchs (voir
repair).
Une réserve honnête : une position est identifiée par sa structure, donc une position rencontrée deux fois — bien jouée une fois, mal l’autre — ne porte qu’un seul écart, celui de sa première occurrence enregistrée. Ce n’est pas propre à ce calcul : une bibliothèque XG a exactement la même forme.
Dossier surveillé
L’onglet Dossier surveillé demande à blunderDB de regarder un dossier pendant qu’il tourne et d’importer chaque fichier de match qui y apparaît. Jouer une session dans eXtreme Gammon, revenir à blunderDB, et trouver les matchs déjà là.
Rien n’est deviné. Tant qu’aucun dossier n’est désigné, il n’y a pas de surveillance : blunderDB ne se met pas à lire un répertoire parce qu’il a supposé où vivent vos matchs. Le bouton Proposer cherche les emplacements habituels sur cette machine et n’en propose un que s’il existe réellement ; sinon il le dit, et c’est à vous de désigner le dossier.
Trois points méritent d’être connus avant d’activer la case :
Seuls les fichiers qui apparaissent sont importés. Ce que le dossier contient déjà au moment où la surveillance démarre est enregistré comme connu et laissé tranquille : pointer une surveillance sur quatre ans de matchs ne doit pas les importer tous. Pour importer ce qui est là, utilisez l’import de dossier, qui existe pour cela — et les deux se composent très bien, l’import d’abord, la surveillance ensuite.
Un fichier n’est importé qu’une fois sa taille stable. Un match qu’un autre programme est en train d’écrire grossit d’un coup d’œil à l’autre ; l’importer à moitié écrit donnerait une erreur d’analyse syntaxique sur laquelle personne ne peut agir. blunderDB attend donc de voir deux fois le même fichier inchangé.
L’import est silencieux. Vous étiez en train d’étudier une position quand vos matchs sont arrivés : vous reprendre l’écran serait le pire moment. Le mode, la recherche active, l’onglet et la position affichée ne bougent pas ; la liste des positions n’est pas rechargée et montre les nouveaux matchs au prochain rechargement. L’import se fait sans fenêtre, et la barre d’état affiche un bandeau donnant le compte des matchs importés, ignorés (doublons) et en échec, avec un bouton qui ouvre le compte rendu complet si vous le souhaitez. Tout le reste est identique à un import manuel : mêmes doublons détectés, même lot d’import, même analyse automatique si elle est activée.
L’intervalle par défaut est de dix secondes ; le plancher est de deux. Le dossier n’est pas parcouru récursivement : un dossier surveillé est l’endroit où un outil dépose ses matchs, pas une arborescence à explorer. Un partage réseau démonté n’arrête pas la surveillance et ne fait pas non plus passer son contenu pour nouveau à son retour.
La même surveillance existe en ligne de commande, avec
blunderdb import --type batch --dir <dossier> --watch (voir Interface en ligne de commande (CLI)) :
c’est la forme qu’un serveur, une tâche planifiée ou un script peuvent
utiliser.
Synchroniser deux machines
Copier sa base .db d’une machine à l’autre, ou la ranger dans un dossier
synchronisé (Syncthing, Dropbox…), finit par l’abîmer : SQLite écrit à côté de
la base des fichiers de journal qu’une synchronisation de fichiers recopie dans
le désordre. blunderDB synchronise plutôt deux bibliothèques par exports
incrémentaux déposés dans un dossier que l’autre machine surveille. Le
transport est à votre choix — Syncthing, clé USB, courriel : il n’y a ni
serveur ni compte.
Sur la machine A, dans la fenêtre d’export, choisissez Toute la bibliothèque, cochez Seulement ce qui est nouveau depuis le dernier export vers ce dossier et désignez le dossier avec Choisir le dossier…. Chaque export y écrit un fichier
sync-<machine>-<date>.dbqui ne contient que ce qui est entré dans la bibliothèque depuis l’export précédent vers ce même dossier ; le premier contient tout.Sur la machine B, faites de ce dossier le dossier surveillé. Chaque fichier
.dbqui y apparaît est fusionné sans aperçu, comme par l’import d’une base : une position déjà connue n’est pas dupliquée, un match déjà connu est reconnu, les collections et les leçons se fusionnent par leur nom.Faites de même dans l’autre sens, avec un second dossier.
Ce qu’il faut savoir :
Le repère « dernière synchronisation » est chez celui qui exporte, un par dossier de destination, et n’avance que lorsque le fichier est complet. La machine qui reçoit n’enregistre rien. Un export qui échoue laisse le repère en place : le suivant emporte les mêmes lignes.
La synchronisation se fait par ajout seul. Une suppression ne se propage pas : supprimer un match sur A ne le supprime pas sur B. Une modification en place non plus : un commentaire réécrit, un match renommé, une analyse refaite sur une position déjà envoyée. Partent les positions, matchs, tournois, collections, leçons et commentaires entrés depuis le dernier export ; une collection repart aussi quand une position y a été ajoutée, une position quand un commentaire y a été ajouté. Un commentaire réécrit ne repart pas, car la machine qui reçoit ne remplace jamais un texte qu’elle a déjà : pour faire passer une correction, ajoutez-la comme nouveau commentaire. Les filtres enregistrés et les paquets Anki n’en font pas partie : un export de Toute la bibliothèque sans la case les emporte.
Ce qu’une machine a reçu repart une fois vers l’autre, puisque c’est nouveau dans sa bibliothèque ; l’autre le reconnaît sans rien ajouter, et l’échange suivant est vide.
Un fichier arrivé pendant que blunderDB était fermé n’est pas perdu : au démarrage de la surveillance, chaque
.dbdéjà présent dans le dossier est fusionné, contrairement aux fichiers de match. La machine qui reçoit ne note pas ce qu’elle a lu ; elle refusionne donc, à chaque démarrage, tous les fichiers que le dossier contient encore, sans rien ajouter, mais au prix du temps de les relire. Supprimez de temps en temps les fichierssync-…déjà reçus pour que ce démarrage reste rapide.Un export incrémental n’écrase jamais un fichier. Le fichier précédent porte peut-être des lignes que l’autre machine n’a pas encore reçues : un export vers un nom de fichier déjà pris est refusé. Désignez le dossier, et chaque export y prend un nom neuf.
Un fichier réécrit sous un nom déjà vu est fusionné de nouveau : la surveillance reconnaît un fichier à son nom, sa taille et sa date de modification.
La bibliothèque ouverte n’est jamais fusionnée dans elle-même : si elle se trouve dans le dossier surveillé, la surveillance la passe.
Un export qui a dû écarter des lignes (signalées dans le journal) ne fait pas avancer le repère : le suivant les retente, avec tout ce qui les suit.
Un export n’est jamais vu à moitié écrit : il est écrit sous un nom caché puis renommé d’un coup. Un fichier protégé par mot de passe (
.dbx) n’est pas pris par la surveillance, qui ne peut pas demander le mot de passe.
En ligne de commande, blunderdb export --type database --incremental --file
<dossier> d’un côté et blunderdb import --type batch --dir <dossier>
--watch de l’autre (voir Interface en ligne de commande (CLI)). Le serveur accepte "incremental":
true sur /v1/exports.sqlite (voir Mode headless (serveur)).
Assistant et MCP
L’onglet Assistant et MCP règle deux choses, toutes deux désactivées par défaut.
Le serveur MCP local offre les outils de blunderDB (recherche, lecture
d’une position et de son analyse, statistiques d’un joueur, quiz…) à un
assistant qui parle le Model Context Protocol, comme Claude Desktop ou Claude
Code, tant que la fenêtre est ouverte. Il n’écoute que sur cette machine, à
l’adresse http://127.0.0.1:<port>/mcp (port 8765 par défaut), et refuse une
requête venue d’une page web. Il ajoute deux outils d’affichage : ouvrir une
vue sur une recherche et montrer une position. Les outils ne font que lire,
sauf si Autoriser l’écriture est cochée : ils peuvent alors enregistrer une
position, la commenter, créer et remplir une collection, noter une carte Anki
et enregistrer un rollout à côté de l’analyse d’une position ; rien n’efface. Sans
fenêtre ouverte, blunderdb mcp sert les mêmes outils (voir Interface en ligne de commande (CLI)).
L”assistant interne est un client de ces mêmes outils. Aucun modèle n’est
embarqué : il s’adresse à un fournisseur compatible OpenAI — Ollama sur cette
machine par défaut, ou Groq, OpenRouter, Gemini, Anthropic, ou une autre
adresse. Est distante toute adresse hors de cette machine, quel que soit le
fournisseur choisi : vos phrases et les résultats des outils la quittent alors,
l’onglet le dit et attend votre accord pour cette adresse précise ; une autre
adresse le redemande. La clé d’API va dans le trousseau du système, jamais dans
la base ni dans le fichier de réglages. Le modèle proposé par défaut pour
Ollama, qwen2.5:7b, est un point de départ, pas une recommandation : aucune
recommandation de modèle n’est faite sans un score du banc de mesure livré avec
le code source.
Une fois activé, l’assistant est un sous-onglet Assistant du panneau Recherche. Une phrase — « mes erreurs de plus de 50 millipoints dans la course » — ouvre une nouvelle vue nommée d’après elle, y lance la recherche et y bascule ; ses jetons restent dans l’historique des recherches. Ce que les outils renvoient vient de la base ; ce que le modèle écrit est marqué Texte libre du modèle. L’assistant ne propose de modification que si la case Laisser l’assistant proposer des modifications est cochée — un réglage distinct de l’écriture du serveur MCP local — et chaque modification qu’il prépare s’affiche et n’est faite qu’après Confirmer.
La fenêtre de configuration regroupe également des réglages d’affichage de l’interface. Un curseur d”échelle de l’interface permet d’agrandir ou de réduire l’ensemble des éléments, ce qui est utile sur les écrans à haute densité ou pour améliorer la lisibilité. Les raccourcis CTRL-+, CTRL– et CTRL-0 règlent la même échelle comme dans un navigateur. Un menu position des panneaux détermine l’emplacement des panneaux (recherche, matchs, analyse) par rapport au plateau : en bas, sur le côté ou automatique (le côté est alors choisi sur les écrans larges afin de mieux exploiter l’espace disponible). Comme les autres réglages, ces choix sont conservés d’une session à l’autre.
Visites guidées et base d’exemple
Pour faciliter la prise en main, blunderDB propose des visites guidées de
l’interface. Le catalogue des visites s’ouvre depuis la barre d’outils ou avec
la commande tutorial (alias tour). Sept visites sont disponibles : un
tour général de l’interface, et des visites dédiées à la recherche de positions,
à la revue des matchs, à la revue des tournois, au panneau Eval, à la révision
Anki et aux statistiques. Chaque visite met en évidence les éléments concernés
de l’interface, étape par étape, ouvre au passage le panneau dont elle parle, et
peut être rejouée à tout moment. Au premier démarrage, le tour général est
proposé automatiquement.
La commande demo charge une base d’exemple permettant de découvrir les
fonctionnalités de l’outil sans importer ses propres parties : trois matchs
(dont deux regroupés dans un tournoi) analysés par eXtreme Gammon, BGBlitz et
gammonNet, trois collections thématiques, des commentaires étiquetés
(#blunder, #cube) et un paquet Anki avec son journal de révisions. Les
joueurs, le tournoi et le lieu sont fictifs. Les visites guidées s’appuient sur
cette base lorsqu’aucune base n’est ouverte.
Édition de positions
L’appui sur la touche TAB ouvre le panneau de recherche et permet d’éditer une position sur le plateau pour l’ajouter à la base de données ou pour définir une structure de position à rechercher. La distribution des pions, du videau, du score, et du trait peuvent être modifiés à l’aide de la souris (voir Editer une position).
Astuce
Se référer à Raccourcis clavier pour les raccourcis disponibles.
La ligne de commande
La ligne de commande, intégrée dans la barre d’état, permet de réaliser l’ensemble des fonctionalités de blunderDB disponibles à l’interface graphique: opérations générales sur la base de données, navigation de position, affichage de l’analyse et/ou des commentaires, recherche de positions selon des filtres… Après une première prise en main de l’interface, il est recommandé de progressivement utiliser la ligne de commande qui permet une utilisation puissante et fluide de blunderDB, notamment pour les fonctionnalités de recherche de positions.
Pour ouvrir la ligne de commande, appuyer sur la touche ESPACE. Pour envoyer une requête et fermer la ligne de commande, appuyer sur la touche ENTREE.
blunderDB exécute les requêtes envoyées par l’utilisateur sous réserve qu’elles soient valides et modifie immédiatement l’état de la base de données le cas échéant. Il n’y a pas d’actions de sauvegarde explicite de la part de l’utilisateur.
Astuce
Se référer à la liste des commandes pour la liste de commandes disponible en ligne de commande.
La palette de commandes
La palette de commandes (CTRL-MAJ-P) retrouve par un nom approché ce que l’on ne sait plus où chercher : une commande de la ligne de commande, un onglet, un filtre de la bibliothèque ou un match. Les lettres tapées doivent apparaître dans l’ordre, pas forcément côte à côte, et sans égard aux majuscules ni aux accents : « mtrc » trouve la matrice du videau, « lyon » les matchs d’un tournoi de Lyon.
Les flèches choisissent, ENTREE lance, ECHAP referme. Une commande se lance
comme si elle avait été tapée ; s et ss ouvrent la ligne de commande
pour y écrire les filtres ; un filtre se lance comme d’un double-clic dans la
bibliothèque ; un match s’ouvre comme d’un double-clic dans le panneau Matchs.
Quand une Direction est ouverte, la palette y ajoute le tournoi : joueurs, tables, matchs en cours et épreuves (voir la recherche rapide).