blunderDB

blunderDB es un software para crear bases de datos de posiciones de backgammon. Su principal fortaleza es ofrecer un lugar único donde un jugador puede agregar las posiciones que ha encontrado (en línea, en torneos) y poder reestudiar esas posiciones filtrándolas con distintos filtros combinables de forma arbitraria. blunderDB también puede usarse para crear catálogos de posiciones de referencia.

La presente documentación está estructurada de la siguiente manera:

  • la sección descarga e instalación explica cómo obtener y ejecutar blunderDB.

  • el manual describe el funcionamiento general de blunderDB.

  • la guía del usuario es una introducción práctica para empezar a usar rápidamente blunderDB.

  • la lista de comandos así como la lista de atajos de teclado permiten un uso eficiente de blunderDB.

  • la sección interfaz de línea de comandos (CLI) describe los comandos disponibles para la importación masiva, la automatización y el scripting.

  • las preguntas frecuentes (FAQ) ofrecen respuestas a las preguntas más habituales.

Historial de versiones

Versión

Fecha

Motivo y/o naturaleza de los cambios

0.1.0

31 de diciembre de 2024

Versión beta.

0.2.0

6 de enero de 2025

Correcciones de varios errores.

Añadidas tablas de match/TP/GV.

Añadidos filtros de búsqueda (jugadas, decisiones de cubo, fecha).

Añadidos metadatos en las posiciones.

Función de importación/exportación entre instancias de blunderDB.

Añadida función de metadatos en las bases de datos.

Introducción de números de versión (base de datos y aplicación).

0.3.0

27 de enero de 2025

Correcciones de varios errores.

Guarda automáticamente el tamaño de la ventana.

Importa los posibles comentarios desde XG.

0.4.0

3 de febrero de 2025

Correcciones de varios errores.

Añadido un icono para blunderDB.

Correcciones de filtros.

Añadido soporte para macOS.

0.5.0

4 de febrero de 2025

Añadidos nuevos filtros (espejo, sin contacto, jan blot, outfield blot).

0.6.0

13 de febrero de 2025

Añadida la biblioteca de filtros.

Muestra la versión de la base de datos en los metadatos.

0.7.0

16 de febrero de 2025

Compatibilidad con japonés y alemán en las exportaciones de XG.

0.8.0

3 de mayo de 2025

Posibilidad de ocultar el conteo de pips.

Carga de una posición aleatoria.

0.9.0

2 de noviembre de 2025

Corrección de un error en la biblioteca de filtros.

Importación/exportación de base de datos.

Muestra de flechas para las jugadas seleccionadas.

Atajos de teclado para la importación/exportación.

0.10.0

25 de febrero de 2026

Importación de matches desde eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) y BGBlitz (BGF/TXT).

Navegación por los matches: recorrido de las jugadas de un match importado, con resaltado de la jugada realizada.

Panel de matches: lista, ordenación, edición en línea, intercambio de jugadores, asignación de torneo.

Importación por carpeta recursiva e importación por arrastrar y soltar.

Calculadora EPC (Effective Pip Count) con base de datos de bearoff GNUbg integrada.

Colecciones: agrupación personalizada de posiciones.

Torneos: agrupación de matches por evento.

Guardado y restauración del estado de la sesión (última búsqueda, posición actual).

Migración automática del esquema de la base de datos.

Visualización multimotor en el análisis.

Filtro de errores/blunders del jugador 1 en las búsquedas.

Exportación de la base de datos con selección granular (matches, colecciones, torneos, jugadas realizadas).

Botón de navegación por los matches.

Conteo de pips (pipcount) en la navegación por los matches.

Interfaz de línea de comandos (CLI) completa.

Reapertura automática de la última base de datos.

Mejora de la barra de herramientas y de los iconos.

0.11.0

6 de marzo de 2026

Filtro de búsqueda dentro de las posiciones actuales.

Añadidos filtros por match y por torneo.

Borrado automático del tablero al abrir el panel de búsqueda.

0.12.0

19 de marzo de 2026

Importación de archivos de posición de eXtreme Gammon (XGP) con análisis.

0.13.0

28 de marzo de 2026

Simplificación de la interfaz: la navegación por los matches y las colecciones se realiza directamente a través de los paneles.

Línea de comandos integrada en la barra de estado.

Panel Consola renombrado a panel Log.

Panel EPC dedicado en el panel inferior.

Copiar/pegar posición en el panel de búsqueda.

Arrastrar y soltar para reordenar las colecciones, las posiciones dentro de las colecciones y los matches dentro de los torneos.

Columna de torneo en el panel de matches con edición en línea.

Visualización automática del panel de análisis tras una búsqueda.

0.14.0

30 de marzo de 2026

Panel Anki dedicado para el estudio por repetición espaciada (algoritmo FSRS).

Importación de comentarios desde los archivos XG.

0.15.0

31 de marzo de 2026

Exportación de la posición como imagen PNG al portapapeles (solo el tablero con Ctrl+X, o el tablero con análisis con Ctrl+X Ctrl+X).

0.16.0

18 de abril de 2026

Esquema de base de datos v2.0.0: deduplicación de posiciones mediante hash Zobrist, columnas de filtrado desnormalizadas, prefiltro de patrones bitboard, registro WAL. Importación por lotes >=3x más rápida, búsqueda filtrada <=100 ms en más de 10k posiciones. NOTA: los archivos DB creados con la v0.16.0 no pueden abrirse con versiones anteriores; las DB antiguas se migran automáticamente in situ (haga primero una copia de seguridad).

0.17.0

20 de abril de 2026

Optimización del almacenamiento: compresión zlib de los datos de análisis (~80% de reducción), codificación compacta de las posiciones (~90% de reducción del tamaño). Añadidos 5 índices que faltaban para mejorar el rendimiento de búsqueda. Corregida la búsqueda por error de cubo. Corregido el modo EDIT tras una búsqueda sin resultados. Restauración del estado del panel de búsqueda al cambiar de pestaña. Eliminadas 62 instrucciones de depuración de las rutas críticas.

0.18.0

20 de abril de 2026

Refactorización importante del código: división de db.go (10k líneas) en 19 archivos especializados, extracción de 7 módulos de servicio de App.svelte (4888→469 líneas), consolidación de los stores de modales/paneles. Migración completa a Svelte 5 runes. Sustitución de 9 modales de tabla por un componente genérico DataTableModal. Añadidos ESLint + Prettier + vitest (125 tests de frontend) con CI. Conformidad WCAG 2.1 AA (foco visible, roles ARIA, navegación por teclado). Cambio del mutex de Database a RWMutex para un mejor paralelismo en lectura. Documentación CLI completa (CLI_USAGE.md + Sphinx FR/EN). Reescritura del README. Corregidas todas las advertencias de ESLint (46→0) y de Vite (6→0).

0.19.0

7 de mayo de 2026

Añadido el panel Stats: indicadores PR (Performance Rate), Snowie Error Rate y MWC cost (Match Winning Chance cost), barra de filtro (jugador, torneo, fechas, tipo de decisión, longitud del match), pestaña Dashboard con tarjetas de nivel / PR móvil / top blunders, pestaña Progresión con curva por torneo y diagrama de dispersión por match, pestaña Errores con desglose por acción de cubo e histograma de magnitudes. Drill-down interactivo hacia las posiciones / matches / torneos desde todos los indicadores. Alternancia PR / MWC instantánea. Comando CLI list –type stats. Alineación de los indicadores PR / Snowie ER / MWC con eXtremeGammon y gnuBG (umbral de equidad de 0.16 para los cubos ajustados). Corregido el cálculo de cube_error para las decisiones Double/Pass. Documentación del modelo de estadísticas (Anexo: Modelo de estadísticas — alineación XG / gnuBG / blunderDB). Véase Panel Stats.

0.20.0

31 de mayo de 2026

Añadida la estructura de exclusión Except al panel de búsqueda: excluye las posiciones que contienen alguna de las fichas dibujadas, con marcador « debe estar vacío » (doble clic) y sin límite en el número de fichas por punto (comando x). Añadida la opción « solo el primer dado » al filtro de tirada de dados (variante D1, opción CLI –dice). Panel Comentarios: el campo de entrada recibe el foco automáticamente al abrirlo y los botones editar / eliminar siempre están visibles. Corregido el filtro « Search Text » que no encontraba todas las etiquetas de comentarios.

0.21.0

1 de junio de 2026

Internacionalización de la interfaz: la totalidad de blunderDB (barra de herramientas, paneles, mensajes, ayuda) puede mostrarse ahora, a elección, en inglés, francés, alemán, italiano, español, finés, japonés, griego o ruso. Añadida una ventana de configuración, accesible mediante un botón en forma de rueda dentada en la barra de herramientas, que permite seleccionar el idioma. La elección del idioma se conserva de una sesión a otra. Véase Configuración.

0.22.0

2 de junio de 2026

Añadido un modo headless (servidor), avanzado y opcional, que complementa la aplicación de escritorio: un demonio serve que expone el motor mediante HTTP + JSON, un backend PostgreSQL multiusuario con compartimentación por tenant (y Row-Level Security opcional), un comando migrate para transferir una base SQLite a PostgreSQL, y un despachador genérico call que da acceso desde la línea de comandos a todas las operaciones de almacenamiento. Importación de posiciones individuales desde nuevos formatos (eXtreme Gammon .xgp, BGBlitz en texto, biblioteca nativa .db) con enriquecimiento de los duplicados entre formatos. Correcciones: los paneles ya no provocan errores cuando no hay ninguna base abierta y el panel Comentarios ya no entra en bucle al abrirlo. Véase Modo headless (servidor).

0.23.0

5 de junio de 2026

Adición de visitas guiadas de la interfaz (visita general, búsqueda, partidas, torneos), repetibles desde la barra de herramientas o con el comando tour, y de una base de ejemplo cargable con el comando demo para descubrir la herramienta sin importar las partidas propias. Personalización de los colores del tablero (fondo, borde, puntas, fichas, dados, cubo) desde la ventana de configuración. Autocompletado de la línea de comandos (tecla TAB). Panel de búsqueda: control explícito del tipo de decisión (Fichas / Cubo), con un subtipo Doblar / No doblar o Aceptar / Pasar para las decisiones de cubo, sincronizado con el tablero; el cubo propuesto se muestra en el centro del tablero para las decisiones de aceptar/pasar. Búsqueda de una posición por su identificador (filtro id). Corrección de la atribución del error de cubo al jugador 1. Ver Visitas guiadas y base de ejemplo.

0.24.0

6 de junio de 2026

Añadida una imagen de contenedor (Docker) para el modo headless: un punto de entrada dedicado serve y un Dockerfile.serve que produce un binario estático sin interfaz gráfica, para desplegar el motor de blunderDB como servicio detrás de un proxy inverso. Véase Modo headless (servidor).

0.25.0

7 de junio de 2026

Modo servidor (headless): dos nuevos métodos para reconstruir una posición sin guardarla — positions.fromXGID decodifica una cadena XGID en una posición, y positions.fromXGP lee un archivo de posición única .xgp. Véase Modo headless (servidor).

0.26.0

9 de junio de 2026

Ajustes de visualización de la interfaz en la ventana de configuración: un control deslizante de escala para agrandar o reducir toda la interfaz, y una opción de posición de los paneles (abajo, al lado o automática) para aprovechar mejor las pantallas anchas. Añadida una barra de información sobre el tablero que indica los jugadores y el contexto de la partida (evento, lugar, ronda, fecha, longitud). Al abrir una base, el panel de partidas se muestra de inmediato y la revisión comienza en la primera posición. Los atajos de teclado ahora son independientes de la disposición del teclado (AZERTY, QWERTY, QWERTZ…). Corrección de la decodificación XGID (indicadores Jacoby/Beaver y valor del cubo). Ver Configuración.

0.27.0

13 de junio de 2026

Panel Anki: un nuevo modo de práctica libre (cram), accesible desde el botón Cram junto a Study, que muestra posiciones aleatorias del mazo sin modificar el calendario de repetición espaciada — ideal para calentar antes de un torneo o repasar intensamente un mazo sin alterar su orden. Búsqueda: un nuevo comando blunders (alias bl) que carga directamente los peores errores (equity/MWC) en la vista de análisis, con un número opcional para elegir cuántos (bl 50); un nuevo filtro por jugador pl'nombre' que encuentra todas las posiciones de una partida en la que participó un jugador dado, en cualquier lado; e información sobre herramientas que, al pasar el ratón por cada filtro del panel de búsqueda, muestra el token de comando correspondiente. Modo servidor (headless): nuevos métodos matches.movesByMatch (todas las jugadas de una partida en una sola llamada) y positions.epc (Effective Pip Count de ambos jugadores). Véase Panel Anki y Lista de comandos.

Índice

Contacto

Autor: Kévin Unger <blunderdb@proton.me>. También puede encontrarme en Heroes con el seudónimo postmanpat.

Desarrollé blunderDB inicialmente para mi uso personal, con el fin de poder detectar patrones en mis errores. Pero resulta muy gratificante recibir comentarios, sobre todo cuando uno ha dedicado un montón de horas al diseño, la programación y la depuración… Así que no dude en escribirme para compartir su experiencia. Todos los comentarios (constructivos) son bienvenidos.

Aquí tiene varias maneras de ponerse en contacto:

Hacer una donación

Si le gusta blunderDB y desea apoyar los desarrollos pasados y futuros, puede

  • ¡invitarme a una copa si tenemos el placer de encontrarnos!

  • hacer una pequeña donación por PayPal a la dirección blunderdb@proton.me

Agradecimientos

Dedico este pequeño software a mi compañera Anne-Claire y a nuestra querida hija Perrine. Quiero dar las gracias muy especialmente a algunos amigos:

  • Tristan Remille, por haberme iniciado en el backgammon con alegría y benevolencia; por mostrar el Camino en la comprensión de este maravilloso juego; por seguir animándome a pesar de mis pobres intentos de jugar mejor.

  • Nicolas Harmand, alegre compañero desde hace ya más de una década en grandes aventuras, y un fantástico compañero de juego desde que pilló el virus del backgammon.