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 |
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 |
0.24.0 |
6 de junio de 2026 |
Añadida una imagen de contenedor (Docker) para el modo headless: un punto de entrada dedicado |
0.25.0 |
7 de junio de 2026 |
Modo servidor (headless): dos nuevos métodos para reconstruir una posición sin guardarla — |
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 |
Índice
- 1. Descarga e instalación
- 2. Manual
- 2.1. Introducción
- 2.2. Interacciones principales
- 2.3. Descripción de la interfaz
- 2.4. Configuración
- 2.5. Visitas guiadas y base de ejemplo
- 2.6. Navegación por las posiciones
- 2.7. Edición de posiciones
- 2.8. La línea de comandos
- 2.9. Panel de Análisis
- 2.10. Panel de Comentarios
- 2.11. Panel de Búsqueda
- 2.12. Panel de Colecciones
- 2.13. Panel de Partidas
- 2.14. Panel de Torneos
- 2.15. Panel Stats
- 2.16. Panel EPC
- 2.17. Panel Anki
- 2.18. Panel de Metadatos
- 2.19. Panel de Registro
- 3. Guía del usuario
- 3.1. Crear una nueva base de datos
- 3.2. Abrir una base de datos existente
- 3.3. Importar y fusionar una base de datos
- 3.4. Editar una posición
- 3.5. Añadir una posición a la base de datos
- 3.6. Etiquetar una posición
- 3.7. Eliminar una posición
- 3.8. Importar una posición desde XG
- 3.9. Importar una partida
- 3.10. Importar una carpeta de partidas
- 3.11. Arrastrar y soltar
- 3.12. Navegar por una partida
- 3.13. Gestionar el panel de partidas
- 3.14. Gestionar las colecciones
- 3.15. Gestionar los torneos
- 3.16. Mostrar las estadísticas de rendimiento
- 3.17. Calcular el EPC
- 3.18. Mostrar el análisis de una posición importada desde XG
- 3.19. Exportar una posición a XG
- 3.20. Visualizar las distintas posiciones
- 3.21. Buscar posiciones según criterios
- 4. Lista de comandos
- 5. Atajos de teclado
- 6. Interfaz de línea de comandos (CLI)
- 6.1. Introducción
- 6.2. Sintaxis general
- 6.3. Comandos disponibles
- 6.4. create — Crear una base de datos
- 6.5. import — Importar datos
- 6.6. export — Exportar datos
- 6.7. search — Buscar posiciones
- 6.8. list — Listar el contenido
- 6.9. match — Mostrar una partida
- 6.10. info — Metadatos de la base de datos
- 6.11. edit — Modificar los metadatos
- 6.12. verify — Verificar la integridad
- 6.13. delete — Eliminar datos
- 6.14. Ejemplos de flujos de trabajo
- 6.15. Códigos de salida
- 7. Preguntas frecuentes (FAQ)
- 7.1. ¿Cuál es la utilidad de blunderDB?
- 7.2. ¿Qué motivó la creación de blunderDB?
- 7.3. ¿Cómo guardar el estado de la base de datos actual?
- 7.4. ¿Debo crear distintas bases de datos para distintas categorías de posiciones?
- 7.5. ¿Cómo fusionar varias bases de datos?
- 7.6. ¿Qué formatos de archivos de match son compatibles?
- 7.7. ¿Qué es una colección?
- 7.8. ¿Qué es el EPC?
- 7.9. ¿Dispone blunderDB de una interfaz de línea de comandos?
- 7.10. ¿Puedo modificar, copiar y compartir blunderDB?
- 7.11. ¿Qué formato de datos utiliza blunderDB?
- 7.12. ¿Cuáles fueron los principios de diseño de blunderDB?
- 7.13. ¿Cuál es la arquitectura de software de blunderDB?
- 7.14. ¿En qué plataformas funciona blunderDB?
- 7.15. ¿De dónde proviene el icono de blunderDB?
- 8. Modo headless (servidor)
- 9. Anexo: Uso avanzado de los filtros
- 10. Anexo Windows: detección errónea de blunderDB como software malicioso
- 11. Anexo Mac: posible bloqueo de blunderDB
- 12. Anexo: Esquema de la base de datos
- 13. Anexo: Modelo de estadísticas — alineación XG / gnuBG / blunderDB
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:
unirse al servidor de Discord de blunderDB: https://discord.gg/DA5PpzM9En
escribirme un correo a blunderdb@proton.me,
hablar conmigo, si coincidimos en un torneo,
en Github,
abrir un ticket: https://github.com/kevung/blunderDB/issues
para correcciones de errores o propuestas de mejora, crear una pull request.
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.