blunderDB

blunderDBは、バックギャモンのポジションのデータベースを構築するためのソフトウェアです。主な強みは、プレイヤーが(オンラインやトーナメントで)遭遇したポジションを一元的に集約し、それらのポジションを任意に組み合わせ可能なさまざまなフィルターで絞り込みながら再検討できる点にあります。blunderDBは、参照用ポジションのカタログを作成するためにも使用できます。

本ドキュメントは、次のように構成されています。

  • ダウンロードとインストール のセクションでは、blunderDBの入手方法と起動方法を説明します。

  • マニュアル では、blunderDBの全般的な動作について説明します。

  • ユーザーガイド は、blunderDBを素早く使い始めるための実践的な入門です。

  • コマンド の一覧およびキーボード ショートカット の一覧により、blunderDBを効率的に使用できます。

  • コマンドラインインターフェース(CLI) のセクションでは、一括インポート、自動化、スクリプト処理に使用できるコマンドについて説明します。

  • FAQ では、よくある質問への回答をいくつか提供します。

バージョン履歴

バージョン

日付

変更の理由および内容

0.1.0

2024/12/31

ベータ版の作成。

0.2.0

2025/01/06

各種バグの修正。

マッチ/TP/GV テーブルの追加。

検索フィルター(着手、キューブの決定、日付)の追加。

ポジションへのメタデータの追加。

blunderDBインスタンス間のインポート/エクスポート機能。

データベースへのメタデータ機能の追加。

バージョン番号(データベースおよびアプリケーション)の導入。

0.3.0

2025/01/27

各種バグの修正。

ウィンドウサイズの自動保存。

XGからのコメントのインポート(存在する場合)。

0.4.0

2025/02/03

各種バグの修正。

blunderDBのアイコンの追加。

フィルターの修正。

MacOSのサポートの追加。

0.5.0

2025/02/04

新しいフィルター(ミラー、ノンコンタクト、内野ブロット、外野ブロット)の追加。

0.6.0

2025/02/13

フィルターライブラリの追加。

メタデータでのデータベースバージョンの表示。

0.7.0

2025/02/16

XGエクスポートにおける日本語およびドイツ語のサポート。

0.8.0

2025/05/03

ピップカウントを非表示にする機能。

ランダムなポジションの読み込み。

0.9.0

2025/11/02

フィルターライブラリのバグ修正。

データベースのインポート/エクスポート。

選択した着手に対する矢印の表示。

インポート/エクスポート用のキーボードショートカット。

0.10.0

2026/02/25

eXtreme Gammon (XG/XGP)、GNUbg (SGF)、Jellyfish (MAT/TXT)、BGBlitz (BGF/TXT) からのマッチのインポート。

マッチ内のナビゲーション:インポートしたマッチの着手をたどり、実際に打たれた着手を強調表示します。

マッチパネル:一覧、ソート、インライン編集、プレイヤーの入れ替え、トーナメントの割り当て。

フォルダーの再帰的インポートおよびドラッグアンドドロップによるインポート。

EPC(実効ピップカウント)計算機。GNUbgのベアオフデータベースを内蔵しています。

コレクション:ポジションのカスタムなグループ化。

トーナメント:イベントごとのマッチのグループ化。

セッション状態(最後の検索、現在のポジション)の保存と復元。

データベーススキーマの自動マイグレーション。

分析における複数エンジンの表示。

検索におけるプレイヤー1のエラー/ブランダーのフィルター。

きめ細かな選択によるデータベースのエクスポート(マッチ、コレクション、トーナメント、打たれた着手)。

マッチ内ナビゲーション用ボタン。

マッチナビゲーションにおけるピップカウントの表示。

完全なコマンドラインインターフェース(CLI)。

最後に開いたデータベースの自動再オープン。

ツールバーとアイコンの改善。

0.11.0

2026/03/06

現在のポジションに対する検索フィルター。

マッチごと、トーナメントごとのフィルターの追加。

検索パネルを開いた際のボードの自動クリア。

0.12.0

2026/03/19

分析付きのeXtreme Gammonポジションファイル(XGP)のインポート。

0.13.0

2026/03/28

インターフェースの簡素化:マッチおよびコレクション内のナビゲーションはパネルから直接行えるようになりました。

ステータスバーに統合されたコマンドライン。

コンソールパネルをログパネルに名称変更。

下部パネルに専用のEPCパネル。

検索パネルでのポジションのコピー/貼り付け。

ドラッグアンドドロップによる、コレクション、コレクション内のポジション、トーナメント内のマッチの並べ替え。

マッチパネルへのトーナメント列の追加とインライン編集。

検索後の分析パネルの自動表示。

0.14.0

2026/03/30

間隔反復学習(FSRSアルゴリズム)のための専用Ankiパネル。

XGファイルからのコメントのインポート。

0.15.0

2026/03/31

ポジションをPNG画像としてクリップボードにエクスポート(Ctrl+X でボードのみ、Ctrl+X Ctrl+X で分析付きのボード)。

0.16.0

2026/04/18

データベーススキーマ v2.0.0:Zobristハッシュによるポジションの重複排除、非正規化されたフィルタリング列、ビットボードによるパターンの事前フィルター、WALジャーナリング。一括インポートが3倍以上高速化し、1万件以上のポジションに対するフィルター検索が100ミリ秒以内に。注意:v0.16.0で作成したDBファイルは古いバージョンでは開けません。古いDBはその場で自動的にマイグレーションされます(先にバックアップを取ってください)。

0.17.0

2026/04/20

ストレージの最適化:分析データのzlib圧縮(約80%削減)、ポジションのコンパクトなエンコーディング(サイズを約90%削減)。検索性能を向上させるために不足していた5つのインデックスを追加。キューブエラーによる検索の修正。結果のない検索後のEDITモードの修正。タブ切り替え時の検索パネル状態の復元。クリティカルパスから62件のデバッグ命令を削除。

0.18.0

2026/04/20

大規模なコードのリファクタリング:db.go(1万行)を19個の専用ファイルに分割、App.svelteから7個のサービスモジュールを抽出(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

2026/05/07

統計パネルの追加:PR(Performance Rate)、Snowie Error Rate、MWC cost(Match Winning Chance cost)の各指標、フィルターバー(プレイヤー、トーナメント、日付、決定の種類、マッチ長)、レベルカード/移動平均PR/トップブランダーを表示するダッシュボードタブ、トーナメントごとの推移曲線とマッチごとの散布図を表示する進捗タブ、キューブアクションごとの内訳とエラーの大きさのヒストグラムを表示するエラータブ。すべての指標からポジション/マッチ/トーナメントへのインタラクティブなドリルダウン。PR/MWCの即時切り替え。CLIコマンド list --type stats。PR/Snowie ER/MWC指標をeXtremeGammonおよびgnuBGに整合(接近したキューブのエクイティしきい値0.16)。Double/Pass決定のcube_error計算の修正。統計モデルのドキュメント化(付録:統計モデル — XG / gnuBG / blunderDB の整合)。Stats パネル を参照。

0.20.0

2026/05/31

検索パネルに除外構造 Except を追加:描いた駒のいずれかを含むポジションを除外します。「空でなければならない」マーカー(ダブルクリック)と、ポイントごとの駒数の上限なし(コマンド x)に対応。サイコロの目フィルターに「最初のサイコロのみ」オプションを追加(バリアント D1、CLIオプション --dice)。コメントパネル:開いたときに入力欄へ自動フォーカスし、編集/削除ボタンを常に表示。すべてのコメントタグを見つけられなかった「Search Text」フィルターの修正。

0.21.0

2026/06/01

インターフェースの国際化:blunderDB全体(ツールバー、パネル、メッセージ、ヘルプ)を、英語、フランス語、ドイツ語、イタリア語、スペイン語、フィンランド語、日本語、ギリシャ語、ロシア語から選んで表示できるようになりました。言語を選択するための設定ウィンドウを追加。ツールバーの歯車型ボタンからアクセスできます。言語の選択はセッションをまたいで保持されます。設定 を参照。

0.22.0

2026/06/02

デスクトップアプリケーションを補完する、高度かつ任意のヘッドレスモード(サーバー)を追加:エンジンをHTTP + JSONで公開するデーモン serve、テナントごとの分離(およびオプションのRow-Level Security)を備えたマルチユーザーのPostgreSQLバックエンド、SQLiteデータベースをPostgreSQLへ転送する migrate コマンド、すべてのストレージ操作にコマンドラインからアクセスできる汎用ディスパッチャ call。新しい形式(eXtreme Gammon .xgp、BGBlitzテキスト、ネイティブライブラリ .db)からの単一ポジションのインポートと、形式間での重複の補完。修正:データベースが開かれていない状態でもパネルがエラーを起こさなくなり、コメントパネルが開く際にループしなくなりました。ヘッドレスモード(サーバー) を参照。

0.23.0

2026/06/05

インターフェースのガイドツアー(全体ツアー、検索、マッチ、トーナメント)を追加しました。ツールバーまたはコマンド tour から再生でき、自分の対局をインポートせずにツールを試せるよう、コマンド demo で読み込めるサンプルデータベースも追加しました。設定ウィンドウから盤面の色(背景、枠線、ポイント、チェッカー、ダイス、キューブ)をカスタマイズできるようにしました。コマンドラインの自動補完( TAB キー)を追加しました。検索パネル: 判断タイプ(チェッカー / キューブ)を明示的に制御できるようにし、キューブの判断にはダブル / ノーダブルまたはテイク / パスのサブタイプを設け、盤面と同期させました。テイク/パスの判断では、提示されたキューブが盤面の中央に表示されます。識別子によるポジションの検索(フィルタ id )を追加しました。キューブエラーのプレイヤー1への帰属を修正しました。 ガイドツアーとサンプルデータベース を参照してください。

0.24.0

2026/06/06

ヘッドレスモード向けのコンテナイメージ(Docker)を追加しました。専用のエントリポイント serve と、グラフィカルインターフェースを持たない静的バイナリを生成する Dockerfile.serve を用意し、blunderDB エンジンをリバースプロキシの背後でサービスとしてデプロイできるようにしました。ヘッドレスモード(サーバー) を参照してください。

0.25.0

2026/06/07

サーバー(ヘッドレス)モード:局面を保存せずに再構築する2つの新しいメソッド —— positions.fromXGID は XGID 文字列を局面にデコードし、positions.fromXGP は単一局面ファイル .xgp を読み込みます。ヘッドレスモード(サーバー) を参照。

0.26.0

2026/06/09

設定ウィンドウにおけるインターフェースの表示設定:インターフェース全体を拡大または縮小する拡大率スライダーと、横長の画面をより有効に活用するためのパネルの位置の選択(下、横または自動)。ボードの上に、両プレイヤーとマッチの背景情報(イベント、開催地、ラウンド、日付、長さ)を示す情報バーを追加。データベースを開くと、マッチパネルがすぐに表示され、レビューは最初のポジションから始まります。キーボードショートカットがキーボードレイアウトに依存しなくなりました(AZERTY、QWERTY、QWERTZ…)。XGID のデコードを修正(Jacoby/Beaver フラグとキューブの値)。設定 を参照。

0.27.0

2026/06/13

Anki パネル:Study の隣の Cram ボタンから利用できる新しいフリー練習(cram)モード。間隔反復のスケジュールを変更せずにデッキからランダムな局面を表示します。トーナメント前のウォームアップや、順序を乱さずにデッキを集中的に復習するのに最適です。検索:最悪のミス(エクイティ/MWC)を分析ビューに直接読み込む新しいコマンド blunders``(エイリアス ``bl)。オプションの数値で件数を選べます(bl 50)。指定したプレイヤーが(どちらの席でも)参加した対局のすべての局面を見つける新しいプレイヤーフィルター pl'名前'。また、検索パネルの各フィルターにマウスを合わせると対応するコマンドトークンを表示するツールチップ。サーバー(ヘッドレス)モード:新しいメソッド ``matches.movesByMatch``(対局の全手を1回の呼び出しで取得)と ``positions.epc``(両プレイヤーの Effective Pip Count)。Anki パネル および コマンド一覧 を参照。

目次

連絡先

作者:Kévin Unger <blunderdb@proton.me>。Heroes ではハンドルネーム postmanpat でも見つけられます。

私は当初、自分のミスのパターンを見つけられるよう、個人的な利用のためにblunderDBを開発しました。しかし、設計、コーディング、デバッグに多くの時間を費やした後では、フィードバックをいただけるのはとても嬉しいものです。ですから、ぜひお気軽にご感想をお寄せください。(建設的な)フィードバックはすべて歓迎します。

やり取りの方法はいくつかあります。

寄付する

blunderDBを気に入っていただき、これまでと今後の開発を支援したいとお考えの場合は、次のことができます

  • お会いする機会があれば、一杯おごってください!

  • PayPalで blunderdb@proton.me 宛にささやかな寄付をする

謝辞

このささやかなソフトウェアを、パートナーのAnne-Claireと愛する娘のPerrineに捧げます。とりわけ、何人かの友人に特別な感謝を述べたいと思います。

  • Tristan Remille には、喜びと思いやりをもってバックギャモンの世界へ導いてくれたこと、この素晴らしいゲームを理解するための道を示してくれたこと、上達しようとする私の拙い試みにもかかわらず励まし続けてくれたことに感謝します。

  • Nicolas Harmand には、もう10年以上にわたって素敵な冒険を共にしてきた陽気な仲間であり、バックギャモンに夢中になって以来、素晴らしいゲームの相棒であることに感謝します。