blunderDB
blunderDB — программа для создания баз данных позиций нард. Её главное достоинство — единое место для накопления позиций, встреченных игроком (в интернете, на турнирах), с возможностью повторного изучения этих позиций при помощи произвольно комбинируемых фильтров. blunderDB также можно использовать для создания каталогов эталонных позиций.
Данная документация структурирована следующим образом:
раздел загрузка и установка объясняет, как получить и запустить blunderDB.
руководство описывает общее функционирование blunderDB и принципы его использования.
руководство пользователя — практическое введение для быстрого освоения blunderDB.
список команд и список горячих клавиш обеспечивают эффективное использование blunderDB.
раздел интерфейс командной строки (CLI) описывает доступные команды для массового импорта, автоматизации и написания скриптов.
FAQ содержит ответы на наиболее часто задаваемые вопросы.
История версий
Версия |
Дата |
Причина и/или характер изменений |
|---|---|---|
0.1.0 |
31/12/2024 |
Создание бета-версии. |
0.2.0 |
06/01/2025 |
Исправление различных ошибок. Добавление таблиц матчей/TP/GV. Добавление фильтров поиска (ходы, решение видо, дата). Добавление метаданных для позиций. Функция импорта/экспорта между экземплярами blunderDB. Добавление функции метаданных для баз данных. Введение номеров версий (база данных и приложение). |
0.3.0 |
27/01/2025 |
Исправление различных ошибок. Автоматическое сохранение размера окна. Импорт комментариев из XG. |
0.4.0 |
03/02/2025 |
Исправление различных ошибок. Добавление иконки для blunderDB. Исправление фильтров. Добавление поддержки macOS. |
0.5.0 |
04/02/2025 |
Добавление новых фильтров (зеркало, нет контакта, блот в яне, блот в аутфилде). |
0.6.0 |
13/02/2025 |
Добавление библиотеки фильтров. Отображение версии базы данных в метаданных. |
0.7.0 |
16/02/2025 |
Поддержка японского и немецкого языков в экспорте XG. |
0.8.0 |
03/05/2025 |
Новая кнопка для скрытия подсчёта шашек. Кнопка загрузки случайной позиции. |
0.9.0 |
02/11/2025 |
Исправление ошибки в библиотеке фильтров. Импорт/экспорт базы данных. Отображение стрелок для выбранных ходов. Горячие клавиши для импорта/экспорта. |
0.10.0 |
25/02/2026 |
Импорт матчей из eXtreme Gammon (XG/XGP), GNUbg (SGF), Jellyfish (MAT/TXT) и BGBlitz (BGF/TXT). Навигация по матчам: просмотр ходов импортированного матча с подсветкой сыгранного хода. Панель матчей: список, сортировка, встроенное редактирование, смена игроков, назначение турнира. Рекурсивный импорт из папки и импорт перетаскиванием. Калькулятор EPC (эффективный подсчёт шашек) со встроенной базой данных bearoff GNUbg. Коллекции: пользовательская группировка позиций. Турниры: группировка матчей по событию. Сохранение и восстановление состояния сессии (последний поиск, текущая позиция). Автоматическая миграция схемы базы данных. Отображение нескольких движков в анализе. Фильтр ошибок/бландеров игрока 1 при поиске. Экспорт базы данных с детальным выбором (матчи, коллекции, турниры, сыгранные ходы). Кнопка навигации по матчам. Отображение подсчёта шашек (pipcount) в навигации по матчам. Полный интерфейс командной строки (CLI). Автоматическое открытие последней базы данных. Улучшение панели инструментов и иконок. |
0.11.0 |
06/03/2026 |
Фильтр для поиска среди текущих позиций. Добавление фильтров по матчу и по турниру. Автоматическая очистка доски при открытии панели поиска. |
0.12.0 |
19/03/2026 |
Импорт файлов позиций eXtreme Gammon (XGP) с анализом. |
0.13.0 |
28/03/2026 |
Упрощение интерфейса: навигация по матчам и коллекциям теперь выполняется непосредственно через панели. Командная строка, интегрированная в строку состояния. Панель Консоль переименована в панель Log. Выделенная панель EPC в нижней панели. Копирование/вставка позиции в панели поиска. Перетаскивание для изменения порядка коллекций, позиций в коллекциях и матчей в турнирах. Столбец турнира в панели матчей со встроенным редактированием. Автоматическое отображение панели анализа после поиска. |
0.14.0 |
30/03/2026 |
Выделенная панель Anki для изучения методом интервального повторения (алгоритм FSRS). Импорт комментариев из файлов XG. |
0.15.0 |
31/03/2026 |
Экспорт позиции в PNG-изображение в буфер обмена (только доска через Ctrl+X, или доска с анализом через Ctrl+X Ctrl+X). |
0.16.0 |
18/04/2026 |
Схема базы данных v2.0.0: дедупликация позиций через хеш Zobrist, денормализованные столбцы фильтрации, предфильтр шаблонов на битбордах, журналирование WAL. Пакетный импорт >=3x быстрее, фильтрованный поиск <=100 мс на 10k+ позициях. ПРИМЕЧАНИЕ: файлы DB, созданные с v0.16.0, не могут быть открыты более старыми версиями; старые DB автоматически мигрируются на месте (сначала сделайте резервную копию). |
0.17.0 |
20/04/2026 |
Оптимизация хранения: zlib-сжатие данных анализа (~80% сокращение), компактное кодирование позиций (~90% сокращение размера). Добавлено 5 недостающих индексов для ускорения поиска. Исправлен поиск по ошибке куба. Исправлен режим EDIT после поиска без результатов. Восстановление состояния панели поиска при переключении вкладок. Удалено 62 отладочных вывода из критических путей. |
0.18.0 |
20/04/2026 |
Масштабный рефакторинг кода: разбивка db.go (10k строк) на 19 специализированных файлов, извлечение 7 модулей сервисов из App.svelte (4888→469 строк), консолидация хранилищ модальных окон/панелей. Полная миграция на Svelte 5 runes. Замена 9 табличных модальных окон универсальным компонентом DataTableModal. Добавление ESLint + Prettier + vitest (125 фронтенд-тестов) с CI. Соответствие WCAG 2.1 AA (видимый фокус, ARIA-роли, клавиатурная навигация). Переход мьютекса Database на RWMutex для лучшего параллелизма при чтении. Полная документация CLI (CLI_USAGE.md + Sphinx FR/EN). Переписан README. Устранены все предупреждения ESLint (46→0) и Vite (6→0). |
0.19.0 |
07/05/2026 |
Добавление панели Статистика: показатели PR (Performance Rate), Snowie Error Rate и MWC cost (стоимость шанса выиграть матч), панель фильтров (игрок, турнир, даты, тип решения, длина матча), вкладка Dashboard с карточками уровня / скользящий PR / топ бландеров, вкладка Прогресс с кривой по турнирам и диаграммой рассеяния по матчам, вкладка Ошибки с распределением по действиям видо и гистограммой величин. Интерактивный drill-down к позициям / матчам / турнирам из всех показателей. Мгновенное переключение PR / MWC. Команда CLI list –type stats. Согласование показателей PR / Snowie ER / MWC с eXtremeGammon и gnuBG (порог 0.16 эквити для близких кубов). Исправление вычисления cube_error для решений Double/Pass. Документация модели статистики (Приложение: Модель статистики — выравнивание XG / gnuBG / blunderDB). См. Панель Stats. |
0.20.0 |
31/05/2026 |
Добавление структуры исключения Except в панель поиска: исключает позиции, содержащие любую из нарисованных шашек, с маркером «должно быть пусто» (двойной клик) и неограниченным количеством шашек на точку (команда x). Добавление опции «только первый кубик» к фильтру бросков кубиков (вариант D1, параметр CLI –dice). Панель Комментарии: автоматический фокус поля ввода при открытии и всегда видимые кнопки редактировать / удалить. Исправление фильтра «Search Text», который не находил все теги комментариев. |
0.21.0 |
01/06/2026 |
Интернационализация интерфейса: весь интерфейс blunderDB (панель инструментов, панели, сообщения, справка) теперь может отображаться по выбору на английском, французском, немецком, итальянском, испанском, финском, японском, греческом или русском языке. Добавлено окно настроек, доступное через кнопку в виде шестерёнки на панели инструментов, для выбора языка. Выбор языка сохраняется между сессиями. См. Конфигурация. |
0.22.0 |
02/06/2026 |
Добавлен безголовый (серверный) режим, продвинутый и необязательный, дополняющий настольное приложение: демон |
0.23.0 |
05/06/2026 |
Добавлены обучающие туры по интерфейсу (общий тур, поиск, матчи, турниры), повторяемые с панели инструментов или командой |
0.24.0 |
06/06/2026 |
Добавлен образ контейнера (Docker) для headless-режима: выделенная точка входа |
0.25.0 |
07/06/2026 |
Серверный режим (headless): два новых метода для восстановления позиции без её сохранения — |
0.26.0 |
09/06/2026 |
Настройки отображения интерфейса в окне конфигурации: ползунок масштаба для увеличения или уменьшения всего интерфейса и выбор расположения панелей (снизу, сбоку или автоматически), чтобы лучше использовать широкие экраны. Добавлена информационная панель над доской, показывающая игроков и контекст матча (событие, место, раунд, дату, длину). При открытии базы данных панель матчей отображается сразу же, а разбор начинается с первой позиции. Горячие клавиши теперь не зависят от раскладки клавиатуры (AZERTY, QWERTY, QWERTZ…). Исправлено декодирование XGID (индикаторы Jacoby/Beaver и значение куба). См. Конфигурация. |
0.27.0 |
13/06/2026 |
Панель Anki: новый режим свободной тренировки (cram), доступный по кнопке Cram рядом с Study, который показывает случайные позиции из колоды, не изменяя график интервального повторения — идеально для разминки перед турниром или интенсивного повторения колоды без нарушения её порядка. Поиск: новая команда |
Содержание
- 1. Загрузка и установка
- 2. Руководство
- 2.1. Введение
- 2.2. Основные взаимодействия
- 2.3. Описание интерфейса
- 2.4. Конфигурация
- 2.5. Обучающие туры и образец базы данных
- 2.6. Навигация по позициям
- 2.7. Редактирование позиций
- 2.8. Командная строка
- 2.9. Панель анализа
- 2.10. Панель комментариев
- 2.11. Панель поиска
- 2.12. Панель коллекций
- 2.13. Панель матчей
- 2.14. Панель турниров
- 2.15. Панель Stats
- 2.16. Панель EPC
- 2.17. Панель Anki
- 2.18. Панель метаданных
- 2.19. Панель журнала
- 3. Руководство пользователя
- 3.1. Создание новой базы данных
- 3.2. Открытие существующей базы данных
- 3.3. Импорт и слияние базы данных
- 3.4. Редактирование позиции
- 3.5. Добавление позиции в базу данных
- 3.6. Добавление тега к позиции
- 3.7. Удаление позиции
- 3.8. Импорт позиции из XG
- 3.9. Импорт матча
- 3.10. Импорт папки с матчами
- 3.11. Перетаскивание
- 3.12. Навигация по матчу
- 3.13. Управление панелью матчей
- 3.14. Управление коллекциями
- 3.15. Управление турнирами
- 3.16. Просмотр статистики производительности
- 3.17. Вычисление EPC
- 3.18. Просмотр анализа позиции, импортированной из XG
- 3.19. Экспорт позиции в XG
- 3.20. Просмотр различных позиций
- 3.21. Поиск позиций по критериям
- 4. Список команд
- 5. Горячие клавиши
- 6. Интерфейс командной строки (CLI)
- 6.1. Введение
- 6.2. Общий синтаксис
- 6.3. Доступные команды
- 6.4. create — Создать базу данных
- 6.5. import — Импорт данных
- 6.6. export — Экспорт данных
- 6.7. search — Поиск позиций
- 6.8. list — Список содержимого
- 6.9. match — Отобразить матч
- 6.10. info — Метаданные базы данных
- 6.11. edit — Изменить метаданные
- 6.12. verify — Проверка целостности
- 6.13. delete — Удалить данные
- 6.14. Примеры рабочих процессов
- 6.15. Коды возврата
- 7. Часто задаваемые вопросы
- 7.1. Для чего нужен blunderDB?
- 7.2. Что побудило создать blunderDB?
- 7.3. Как сохранить текущую базу данных?
- 7.4. Нужно ли создавать разные базы данных для разных категорий позиций?
- 7.5. Как объединить несколько баз данных?
- 7.6. Какие форматы файлов матчей поддерживаются?
- 7.7. Что такое коллекция?
- 7.8. Что такое EPC?
- 7.9. Есть ли у blunderDB интерфейс командной строки?
- 7.10. Можно ли изменять, копировать, распространять blunderDB?
- 7.11. Какой формат данных использует blunderDB?
- 7.12. Каковы были принципы проектирования blunderDB?
- 7.13. Какова программная архитектура blunderDB?
- 7.14. На каких платформах работает blunderDB?
- 7.15. Откуда взята иконка blunderDB?
- 8. Безголовый режим (сервер)
- 9. Приложение: Расширенное использование фильтров
- 10. Приложение Windows: ложное обнаружение blunderDB как вредоносного программного обеспечения
- 11. Приложение Mac: возможная блокировка blunderDB
- 12. Приложение: Схема базы данных
- 13. Приложение: Модель статистики — выравнивание XG / gnuBG / blunderDB
Контакты
Автор: Kévin Unger <blunderdb@proton.me>. Вы также можете найти меня на Heroes под ником postmanpat.
Я разработал blunderDB изначально для личного использования, чтобы обнаруживать закономерности в своих ошибках. Но получать обратную связь очень приятно, особенно когда потрачено немало часов на проектирование, программирование и отладку… Поэтому не стесняйтесь писать мне, чтобы поделиться своими впечатлениями. Любые (конструктивные) отзывы приветствуются.
Вот несколько способов связи:
Присоединиться к серверу Discord blunderDB: https://discord.gg/DA5PpzM9En
Написать мне по адресу blunderdb@proton.me.
Поговорить со мной, если мы встретимся на турнире.
На GitHub.
Открыть задачу: https://github.com/kevung/blunderDB/issues
Для исправления ошибок или предложений по улучшению создать pull request.
Сделать пожертвование
Если вам нравится blunderDB и вы хотите поддержать прошлые и будущие разработки, вы можете
угостить меня напитком, если мы имеем удовольствие встретиться!
сделать небольшое пожертвование через PayPal на адрес blunderdb@proton.me
Благодарности
Я посвящаю эту небольшую программу моей супруге Анн-Клер и нашей дорогой дочери Перрин. Я хотел бы особо поблагодарить нескольких друзей:
Tristan Remille — за то, что познакомил меня с нардами с радостью и добротой; за то, что указывает Путь к пониманию этой замечательной игры; за то, что продолжает поддерживать меня, несмотря на мои скромные попытки играть лучше.
Nicolas Harmand — весёлый товарищ уже более десяти лет в замечательных приключениях, и фантастический партнёр по игре с тех пор, как он заразился вирусом нард.