6. Frequently Asked Questions (FAQ)

6.1. What is the purpose of blunderDB?

blunderDB allows users to create a personalized database of positions. Its strength lies in not presupposing any classification a priori. This gives users the freedom to query positions with great flexibility by combining various criteria (race, structure, cube, score, backcheckers, checkers in the zone, chances of winning/gammon/backgammon, etc.).

Another convenient use of blunderDB is the creation of reference position catalogs. With the ability to tag positions, users can organize all their reference positions in a structured way using a single file. I hope that blunderDB facilitates the sharing of positions between players.

6.2. What motivated the creation of blunderDB?

I used to store interesting positions or blunders in different folders. However, I encountered difficulties in retrieving positions based on criteria that weren’t initially considered in my choice of thematic categories. For example, if the positions were sorted by type of game (race, holding game, blitz, backgame, etc.), how could I retrieve all positions at a certain score or at a given cube level? Additionally, some old positions tended to be forgotten. I wanted a tool that aggregates all my positions without presupposing thematic categories a priori, allowing me to ask questions of the database. This type of software is quite common in chess, like ChessBase.

6.3. How to save the state of the current database?

The database is updated immediately upon validation of the request. No explicit saving operation is necessary.

6.4. Should I create different databases for different categories of positions?

Unless there are clearly identified reasons, it is essential not to split positions into separate databases, as this could prevent you from linking them in future searches. The philosophy of blunderDB is not to assume position categories a priori but to allow the user to query them flexibly. When positions have been encountered under specific conditions or for particular reasons, it may be wise to store them in separate databases. For example, you could create distinct position databases for:

  • reference positions,

  • blunders from live tournaments,

  • blunders from online play.

6.5. Can I modify, copy, share blunderDB?

Yes, absolutely. blunderDB is licensed under the MIT license.

6.6. What data format does blunderDB use?

The database is a simple SQLite file. In the absence of blunderDB, it can thus be opened with any SQLite file editor.

6.7. What were the design principles of blunderDB?

The modal operation of blunderDB (NORMAL, EDIT, COMMAND) is inspired by the very powerful text editor Vim. I wanted blunderDB to be lightweight, standalone, installation-free, and available on multiple platforms, which led to my choice of the Go programming language and the Svelte library. For database serialization, the file format needed to be cross-platform and suitable for containing a database. The SQLite file format seemed like the perfect choice.

6.8. What is the software architecture of blunderDB?

  • The backend is coded in Go. It is responsible for all operations on the SQLite database that stores the positions.

  • The frontend is coded in Svelte. It is responsible for rendering the graphical interface and the Backgammon board.

  • The application is encapsulated with Wails, enabling the production of native desktop applications that can run on both Windows and Linux.

  • The database is managed by SQLite.

For more information, see the blunderDB GitHub repository.

6.9. On which platforms does blunderDB run?

blunderDB runs on Windows, Linux and Mac.

6.10. Where does the blunderDB icon come from?

The blunderDB icon is the “goggling” emoticon from the SMirC series.