Preguntas frecuentes (FAQ)
¿Cuál es la utilidad de blunderDB?
blunderDB permite constituir una base de datos personalizada de posiciones. Su fuerza reside en no presuponer ninguna clasificación a priori. El usuario tiene así la libertad de interrogar las posiciones con gran flexibilidad combinando a su gusto diferentes criterios (carrera, estructura, cubo, marcador, fichas rezagadas, fichas en la zona, probabilidades de ganar/gammon/backgammon, …).
Otro uso práctico de blunderDB es la creación de catálogos de posiciones de referencia. Con la posibilidad de etiquetar posiciones, el usuario puede reunir todas sus posiciones de referencia de manera estructurada en un único archivo. Deseo que blunderDB facilite el intercambio de posiciones entre jugadores.
¿Qué motivó la creación de blunderDB?
Tenía la costumbre de guardar en distintas carpetas posiciones interesantes o blunders. Sin embargo, encontraba dificultades para recuperar posiciones según criterios no previstos inicialmente por mi elección de categorías temáticas. Por ejemplo, si las posiciones se habían clasificado según el tipo de juego (carrera, holding game, blitz, backgame, …), ¿cómo recuperar todas las posiciones a un marcador determinado? ¿o a un nivel de cubo dado? Por último, algunas posiciones antiguas tendían a caer en el olvido. Quería una herramienta que agregara todas mis posiciones y que no presupusiera a priori categorías temáticas, para después poder hacer preguntas a la base de datos. Con este enfoque flexible, se pueden añadir nuevos filtros sin romper la organización de las posiciones. Este tipo de software es bastante habitual en el ajedrez, como ChessBase.
¿Debo crear distintas bases de datos para distintas categorías de posiciones?
Salvo por razones bien identificadas, es esencial no repartir las posiciones en bases de datos separadas, con el riesgo de no poder relacionarlas en búsquedas futuras. La filosofía de blunderDB consiste en no presuponer categorías de posiciones a priori y permitir al usuario interrogarlas de manera flexible. Cuando las posiciones se han encontrado en condiciones particulares o por razones específicas, puede ser conveniente guardarlas en bases de datos distintas. Por ejemplo, se pueden constituir bases de datos de posiciones distintas para:
las posiciones de referencia,
los blunders en torneos presenciales,
los blunders en línea.
¿Cómo fusionar varias bases de datos?
Si tiene varias bases de datos blunderDB que desea reunir, use el botón Fusionar una base de datos (CTRL-MAYÚS-I):
Abra la base principal (la que recibirá las posiciones)
Haga clic en Fusionar una base de datos en la barra de herramientas
Seleccione la base a fusionar
blunderDB fusiona las posiciones
Durante la fusión, blunderDB evita los duplicados: una posición ya presente no se duplica, y los análisis de los distintos motores conviven en lugar de sobrescribirse (véase Importación: lo que se escribe, lo que nunca se escribe).
Nota
Se recomienda hacer una copia de seguridad de su base de datos principal antes de importar otra base de datos.
¿Qué formatos de archivos de match son compatibles?
blunderDB es compatible con los siguientes formatos de match:
eXtreme Gammon (XG): archivos .xg, con análisis completo de jugadas, decisiones de cubo, jugadas realizadas y soporte multimotor. Archivos .xgp para importar posiciones individuales con análisis.
GNUbg: archivos .sgf (Smart Game Format), con análisis.
Jellyfish: archivos .mat y .txt.
BGBlitz: archivos .bgf y posiciones en texto.
HedgeHog (OpenGammon): archivos .ogxm, con el análisis.
La importación puede realizarse mediante un archivo único, selección múltiple, carpeta recursiva, pegado desde el portapapeles o arrastrar y soltar.
blunderDB detecta automáticamente los duplicados e impide la importación de un match ya presente en la base de datos.
¿Puedo importar las partidas que jugué en línea?
Sí, por un rodeo: Backgammon Studio (Heroes), Backgammon Galaxy y GammonSpace producen los tres archivos que eXtreme Gammon sabe leer — Studio incluso entrega un paquete de integración que se deposita en la carpeta de XG. Esas partidas llegan por tanto a blunderDB por la vía .xg existente, sin necesidad de un lector dedicado.
Nota
Lo que ese rodeo transporta exactamente — análisis, suerte de la tirada, marcas, comentarios — no se ha medido: haría falta una partida exportada desde cada una de las tres plataformas. Si tiene una y algo se pierde al importar, abra una issue con el archivo: la medición decidirá si hace falta un lector propio, no una suposición.
Los formatos de texto más antiguos que GNU Backgammon ya lee — .sgg (GridGammon), .tmg, .gam, el .txt de Snowie — están en el mismo caso: pasar por GNU Backgammon los hace importables hoy.
¿Puedo sincronizar mi base entre varias máquinas?
Una base blunderDB es un solo archivo. Eso hace triviales la copia de seguridad y la copia, y decide la respuesta:
Dropbox, Syncthing, iCloud, OneDrive: funcionan, con una condición — no abrir la base por los dos lados a la vez. Sincronizan archivos, no escrituras concurrentes: dos instancias que escriben en paralelo producen un conflicto que el servicio resuelve conservando una versión y renombrando la otra. blunderDB pone un bloqueo de escritura sobre el archivo abierto, lo que protege una misma máquina, pero ningún bloqueo atraviesa un servicio de sincronización.
Varias máquinas a la vez: es a lo que responde el modo
serve(véase Modo headless (servidor)). Un demonio posee la base, las máquinas se conectan a él, y solo hay un escritor.Dos bases que han divergido: se fusionan en lugar de sincronizarse — véase «¿Cómo fusionar varias bases de datos?» más arriba. La deduplicación por huella Zobrist hace el trabajo: las posiciones comunes no se duplican y sus análisis y comentarios se combinan. Es una fusión, no una reconciliación: nada se borra de un lado porque el otro lo haya borrado.
¿Necesito eXtreme Gammon para usar blunderDB?
No. blunderDB también lee archivos de GNUbg, BGBlitz y Jellyfish, y su evaluador integrado (gammonNet) analiza cualquier posición sin depender de un software de terceros — ver «¿Qué vale el evaluador integrado?» más abajo. Sin embargo, una importación de XG aporta el análisis más completo (jugadas, decisiones de cubo, marcas, suerte de la tirada): es el formato más ricamente explotado por las estadísticas.
Ya utilizo eXtreme Gammon: ¿para qué me sirve blunderDB?
blunderDB no vuelve a jugar sus partidas, las reúne. Tres diferencias concretas:
agregar en un único archivo partidas venidas de XG, de GNUbg, de BGBlitz y de Jellyfish, deduplicadas posición por posición;
buscar por estructura de fichas y por error: «las tomas a este marcador en las que perdí más de 50 milipuntos» se escribe en una línea de comandos (véase Lista de comandos);
repasar las posiciones seleccionadas mediante repetición espaciada, en mazos de Anki (véase Panel Anki).
Sus análisis de XG siguen siendo los de XG: blunderDB los importa tal cual y nunca los recalcula (véase Importación: lo que se escribe, lo que nunca se escribe).
¿Se importan los rollouts de XG? ¿blunderDB hace rollouts?
No, en ambos sentidos. De un análisis de XG, la importación conserva la etiqueta de nivel («3-ply», «XG Roller++», «Book»), las equidades, los errores y las probabilidades; no abre los datos de rollout del archivo .xg y por tanto no retiene ni el número de intentos ni la desviación típica. Un análisis de XG pegado como texto conserva en cambio literalmente su etiqueta, «Rollout» incluida. El evaluador integrado, por su parte, no hace rollouts: responde con una búsqueda a 0 o 2 tiradas de profundidad.
¿Qué se ha medido del evaluador integrado, y qué no se ha medido?
Se ha publicado una medición, sobre el régimen evaluado del panel Eval: 4000 decisiones money de carrera, comparadas con la tabla de bearoff exacta — 93,4 % de concordancia de veredicto (3735/4000), pero solo 61,1 % a menos del 1 % del punto de toma frente a 94,4 % más allá del 20 %; diferencia media de probabilidad de victoria 0,85 %, máximo 8,30 %. Lo que no está medido: el veredicto de cubo al marcador de partida y las posiciones de contacto, para los cuales no se publica ninguna cifra. El detalle de las hipótesis está en Metodología e hipótesis del panel Eval.
¿Qué es una colección?
Una colección es una agrupación personalizada de posiciones. A diferencia de una búsqueda por filtros, que es dinámica, una colección es un conjunto fijo de posiciones elegidas manualmente por el usuario. Las colecciones permiten, por ejemplo, agrupar posiciones de referencia sobre una temática particular.
¿Qué es el EPC?
El EPC (Effective Pip Count) es una medida más precisa que el simple pip count para evaluar las posiciones de bearoff. El panel Eval de blunderDB utiliza una tabla de bearoff de 6 puntos idéntica a la de GNUbg, calculada en la máquina en el primer arranque, y calcula en tiempo real el EPC, el número medio de tiradas, la desviación típica, el pip count y el wastage.
En las posiciones de bearoff puro, el panel muestra también la probabilidad de victoria del jugador al tiro y, cuando la posición está cubierta por una base two-sided (tabla TS-06-06 calculada en el primer arranque, o tabla ampliada TS-06-11 calculada desde la pestaña Bearoff de la configuración), el veredicto de cubo money exacto. Fuera de este dominio, la probabilidad se estima con su margen de error y el veredicto, deliberadamente, no se muestra. Véase la sección « Metodología e hipótesis del panel Eval » del manual para el detalle de las hipótesis.
¿Qué vale el evaluador integrado (gammonNet)?
gammonNet es una red neuronal entrenada por un tercero (ver Créditos), portada a Go y compilada en blunderDB: ningún software externo, ninguna conexión de red. Desempeña el papel de XG o de GNUbg para las posiciones no importadas — búsqueda a 0 o 2 tiradas de profundidad, decisión de cubo según Janowski y la tabla de equidad de partida de blunderDB, respetando el marcador. No es ni el único ni necesariamente el mejor motor del mercado: es el que funciona sin conexión, sin cuenta ni suscripción, sobre la posición que está mirando. Nada impide además importar los análisis de XG o de GNUbg cuando existen — las dos fuentes conviven, y una columna indica el origen de cada análisis. Ver la sección «Panel Eval» y «Metodología e hipótesis del panel Eval» del manual.
Lo que eso vale, en cifras. Sobre las posiciones de retirada que cubre la tabla exacta integrada — el único sitio donde existe un oráculo — gammonNet a 2 plies da el mismo veredicto de cubo en el 93,4 % de los casos, y el desacuerdo se concentra exactamente en el punto de aceptación (61 % de acuerdo a menos del 1 % del punto de aceptación, 94 % más allá del 10 %): ahí es donde dos métodos legítimos divergen más en una decisión ajustada, no un error difuso. El detalle y el método están en «Metodología e hipótesis del panel Eval».
Para la misma pregunta planteada sobre su base en lugar de sobre un corpus de referencia, blunderdb analyze --compare compara el motor integrado con los análisis venidos de sus archivos XG o GNUbg — acuerdo sobre la mejor respuesta, coste de los desacuerdos, desglose por fase de la partida — sin escribir nada.
¿Cuál es la diferencia entre el PR y el Snowie Error Rate?
El PR (Performance Rating) es el error medio de equidad por decisión contada, multiplicado por 500 como hacen eXtreme Gammon y GNUbg; cuanto más bajo, mejor se juega. El Snowie Error Rate expresa esa misma media en función del número de jugadas en lugar del número de decisiones — una partida más larga no empeora por tanto mecánicamente el SER. blunderDB muestra ambos en el panel Stats, alineados con las convenciones de eXtreme Gammon y de GNUbg (ver Anexo: Modelo de estadísticas — alineación XG / gnuBG / blunderDB para el detalle de las reglas de recuento).
¿Dispone blunderDB de una interfaz de línea de comandos?
Sí, blunderDB dispone de una interfaz de línea de comandos (CLI) que permite realizar, sin interfaz gráfica, operaciones como la creación de bases de datos, la importación de matchs, la exportación, la búsqueda de posiciones, la visualización de estadísticas, etc. Consulte la documentación de la CLI para más detalles.
¿Ofrece blunderDB un modo servidor?
Sí, un modo «headless» opcional: el mismo binario, lanzado con serve, expone el motor de blunderDB en HTTP + JSON detrás de un proxy inverso que autentica (blunderDB en sí no realiza ninguna autenticación). Puede apoyarse en SQLite o en PostgreSQL multiusuario, y sirve para controlar blunderDB desde sus propios scripts o una aplicación propia, en HTTP + JSON — no hay interfaz web —, o para compartir una base de datos entre varios jugadores. El uso normal sigue siendo la aplicación de escritorio; ver Modo headless (servidor) para los detalles (incluida la imagen Docker lista para usar) y el tutorial «Desplegar el modo servidor detrás de un proxy» de la guía del usuario.
¿Puedo modificar, copiar y compartir blunderDB?
Sí, por supuesto (¡e incluso se anima a ello!). blunderDB está bajo licencia MIT.
¿Dónde se almacenan mis datos?
En su disco, en el archivo .db que eligió al crear la base: ninguna cuenta, ningún servidor, ninguna sincronización por defecto. La aplicación de escritorio abre ese archivo directamente; solo el modo servidor opcional (ver más abajo) hace funcionar blunderDB a distancia, y en ese caso es usted quien aloja ese servidor.
¿Puedo compartir una base de datos con otro jugador?
Sí: una base de datos de blunderDB es un simple archivo, basta con copiarlo o enviarlo. Para difundir una base a un tercero, dos mecanismos opcionales, elegidos en el momento de la exportación, convierten esto en una difusión controlada en lugar de una simple copia: una marca de agua de origen firma el archivo con su identidad de emisor (infalsificable, legible en el panel Metadatos o mediante blunderdb info, sin registrar nunca nada del lado del destinatario), y una protección con contraseña produce un archivo .dbx cifrado. Ver Distribuir una base de datos: origen y contraseña en el manual.
¿Qué formato de datos utiliza blunderDB?
La base de datos es un simple archivo SQLite. En ausencia de blunderDB, puede abrirse con cualquier editor de archivos SQLite.
¿Cuáles fueron los principios de diseño de blunderDB?
Quería una interfaz accesible, pero pensada ante todo para un uso avanzado y sostenido, en el que se encadenan las posiciones y las búsquedas. La línea de comandos, que se abre pulsando la barra ESPACIADORA, y los atajos de teclado sirven a ese uso, sin ser un paso obligado.
Quería además que blunderDB fuera ligero, autónomo, sin instalación y disponible para distintas plataformas, de ahí mi elección del lenguaje Go y de la biblioteca Svelte. Para la serialización de la base de datos, el formato de archivo debía ser multiplataforma y adecuado para contener una base de datos. El formato de archivo sqlite parecía la opción idónea.
También quería que una base siguiera siendo un simple archivo, que se pueda copiar, guardar o enviar a otro jugador.
Por último, blunderDB ya no se limita a la aplicación de escritorio: el mismo binario ofrece una interfaz de línea de comandos y un modo servidor opcional, que puede apoyarse en PostgreSQL para los despliegues multiusuario. No obstante, el uso normal sigue siendo la aplicación de escritorio. Véase Interfaz de línea de comandos (CLI) y Modo headless (servidor).
¿Cuál es la arquitectura de software de blunderDB?
El backend está programado en Go. Se encarga de todas las operaciones sobre la base de datos SQLite que almacena las posiciones.
El frontend está programado en Svelte. Se encarga del renderizado de la interfaz gráfica y del tablero de Backgammon.
La aplicación se encapsula con Wails, lo que permite generar aplicaciones de escritorio nativas para Windows, Linux y macOS.
La base de datos se gestiona con SQLite.
El modo servidor opcional puede apoyarse en PostgreSQL en lugar de SQLite para los despliegues multiusuario.
El evaluador integrado (gammonNet, MIT) es una red neuronal portada a Go y compilada en blunderDB: evalúa cualquier posición sin conexión, sin XG ni GNUbg. Ver «¿Qué vale el evaluador integrado?» más abajo.
Para más información, consulte el repositorio GitHub de blunderDB.
¿En qué plataformas funciona blunderDB?
blunderDB funciona en Windows, Linux y Mac.
¿De dónde proviene el icono de blunderDB?
El icono de blunderDB es el emoticono «goggling» de la serie SMirC.
¿Cómo guardar el estado de la base de datos actual?
La base de datos se actualiza inmediatamente tras la validación de la consulta. No es necesaria ninguna operación de guardado explícita.