blunderDB

blunderDB on ohjelma backgammon-positioiden tietokantojen luomiseen. Sen tärkein vahvuus on tarjota yksi paikka, johon pelaaja voi koota kohtaamiaan positioita (verkossa, turnauksissa) ja tutkia näitä positioita uudelleen suodattamalla niitä erilaisilla suodattimilla, joita voi yhdistellä vapaasti. blunderDB:tä voi käyttää myös referenssipositioiden luetteloiden kokoamiseen.

Tämä dokumentaatio on rakennettu seuraavasti:

  • lataus ja asennus -osio selittää, miten blunderDB hankitaan ja käynnistetään.

  • käyttöopas kuvaa blunderDB:n yleisen toiminnan.

  • käyttäjän opas on käytännönläheinen johdanto blunderDB:n nopeaan käyttöön.

  • komentojen luettelo sekä näppäimistön pikanäppäinten luettelo mahdollistavat blunderDB:n tehokkaan käytön.

  • komentorivikäyttöliittymä (CLI) -osio kuvaa käytettävissä olevat komennot massatuontiin, automatisointiin ja skriptaukseen.

  • UKK tarjoaa vastauksia yleisimmin esitettyihin kysymyksiin.

Versiohistoria

Versio

Päivämäärä

Muutosten syy ja/tai luonne

0.1.0

31.12.2024

Beta-versio.

0.2.0

6.1.2025

Erinäisiä virhekorjauksia.

Lisätty ottelu-/TP/GV-taulukot.

Lisätty hakusuodattimet (siirrot, tuplauspäätös, päivämäärä).

Lisätty positioiden metatiedot.

Tuonti-/vientitoiminto blunderDB-instanssien välillä.

Lisätty tietokantojen metatietotoiminto.

Versionumeroiden käyttöönotto (tietokanta ja sovellus).

0.3.0

27.1.2025

Erinäisiä virhekorjauksia.

Tallentaa ikkunan koon automaattisesti.

Tuo mahdolliset kommentit XG:stä.

0.4.0

3.2.2025

Erinäisiä virhekorjauksia.

Lisätty kuvake blunderDB:lle.

Suodattimien korjauksia.

Lisätty macOS-tuki.

0.5.0

4.2.2025

Lisätty uusia suodattimia (peilikuva, ei kosketusta, jan blot, outfield blot).

0.6.0

13.2.2025

Lisätty suodatinkirjasto.

Tietokannan version näyttäminen metatiedoissa.

0.7.0

16.2.2025

Japanin- ja saksankielisten XG-vientien tuki.

0.8.0

3.5.2025

Mahdollisuus piilottaa pip-laskuri.

Satunnaisen position lataaminen.

0.9.0

2.11.2025

Suodatinkirjaston virhekorjaus.

Tietokannan tuonti/vienti.

Nuolien näyttäminen valituille siirroille.

Pikanäppäimet tuontiin/vientiin.

0.10.0

25.2.2026

Otteluiden tuonti eXtreme Gammonista (XG/XGP), GNUbg:stä (SGF), Jellyfishistä (MAT/TXT) ja BGBlitzistä (BGF/TXT).

Otteluiden selaaminen: tuodun ottelun siirtojen läpikäynti, pelatun siirron korostuksella.

Ottelupaneeli: luettelo, lajittelu, suora muokkaus, pelaajien vaihto, turnauksen määritys.

Rekursiivinen kansiotuonti ja vedä-ja-pudota-tuonti.

EPC-laskuri (Effective Pip Count) sisäänrakennetulla GNUbg:n bearoff-tietokannalla.

Kokoelmat: positioiden mukautettu ryhmittely.

Turnaukset: otteluiden ryhmittely tapahtuman mukaan.

Istunnon tilan tallennus ja palautus (viimeisin haku, nykyinen positio).

Tietokantaskeeman automaattinen migraatio.

Useiden moottoreiden näyttö analyysissä.

Pelaajan 1 virheiden/blundereiden suodatin hauissa.

Tietokannan vienti tarkalla valinnalla (ottelut, kokoelmat, turnaukset, pelatut siirrot).

Otteluiden selauspainike.

Pip-laskuri otteluiden selauksessa.

Täydellinen komentorivikäyttöliittymä (CLI).

Viimeisimmän tietokannan automaattinen uudelleenavaus.

Parannettu työkalupalkki ja kuvakkeet.

0.11.0

6.3.2026

Hakusuodatin nykyisissä positioissa.

Lisätty ottelu- ja turnaussuodattimet.

Laudan automaattinen tyhjennys hakupaneelia avattaessa.

0.12.0

19.3.2026

eXtreme Gammon -positiotiedostojen (XGP) tuonti analyysin kanssa.

0.13.0

28.3.2026

Käyttöliittymän yksinkertaistaminen: otteluiden ja kokoelmien selaus tapahtuu nyt suoraan paneeleiden kautta.

Tilariviin integroitu komentorivi.

Console-paneeli nimetty uudelleen Log-paneeliksi.

Oma EPC-paneeli alapaneelissa.

Position kopiointi/liittäminen hakupaneelissa.

Vedä-ja-pudota kokoelmien, kokoelmien sisäisten positioiden sekä turnausten sisäisten otteluiden uudelleenjärjestämiseen.

Turnaussarake ottelupaneelissa suoralla muokkauksella.

Analyysipaneelin automaattinen näyttö haun jälkeen.

0.14.0

30.3.2026

Oma Anki-paneeli kertausvälioppimiseen (FSRS-algoritmi).

Kommenttien tuonti XG-tiedostoista.

0.15.0

31.3.2026

Position vienti PNG-kuvana leikepöydälle (pelkkä lauta painikkeella Ctrl+X, tai lauta analyysin kanssa painikkeella Ctrl+X Ctrl+X).

0.16.0

18.4.2026

Tietokantaskeema v2.0.0: positioiden deduplikointi Zobrist-hashilla, denormalisoidut suodatussarakkeet, bittilautakuvioiden esisuodatus, WAL-journalointi. Erätuonti >=3x nopeampi, suodatettu haku <=100 ms yli 10k positiolla. HUOM: v0.16.0:lla luotuja DB-tiedostoja ei voi avata vanhemmilla versioilla; vanhat DB:t migratoidaan automaattisesti paikallaan (ota ensin varmuuskopio).

0.17.0

20.4.2026

Tallennuksen optimointi: analyysitietojen zlib-pakkaus (~80 %:n pienennys), positioiden kompakti koodaus (~90 %:n koon pienennys). Lisätty 5 puuttuvaa indeksiä hakusuorituskyvyn parantamiseksi. Korjattu tuplausvirheen mukaan tehtävä haku. Korjattu EDIT-tila haun jälkeen, kun tuloksia ei ole. Hakupaneelin tilan palautus välilehtiä vaihdettaessa. Poistettu 62 virheenkorjaustulostetta kriittisiltä poluilta.

0.18.0

20.4.2026

Koodin laaja refaktorointi: db.go (10k riviä) jaettu 19 erikoistuneeseen tiedostoon, 7 palvelumoduulia eriytetty App.sveltesta (4888→469 riviä), modaali-/paneelivarastot konsolidoitu. Täydellinen migraatio Svelte 5 -runeihin. 9 taulukkomodaalia korvattu yleisellä DataTableModal-komponentilla. Lisätty ESLint + Prettier + vitest (125 frontend-testiä) CI:n kanssa. WCAG 2.1 AA -saavutettavuus (näkyvä fokus, ARIA-roolit, näppäimistönavigointi). Database-mutex päivitetty RWMutexiksi paremman lukurinnakkaisuuden vuoksi. Täydellinen CLI-dokumentaatio (CLI_USAGE.md + Sphinx FR/EN). README kirjoitettu uudelleen. Korjattu kaikki ESLint-varoitukset (46→0) ja Vite-varoitukset (6→0).

0.19.0

7.5.2026

Lisätty Stats-paneeli: PR (Performance Rate)-, Snowie Error Rate- ja MWC cost (Match Winning Chance cost) -indikaattorit, suodatinpalkki (pelaaja, turnaus, päivämäärät, päätöstyyppi, ottelun pituus), Dashboard-välilehti tasokorteilla / liukuvalla PR:llä / pahimmilla blundereilla, Progression-välilehti turnauskohtaisella käyrällä ja ottelukohtaisella hajontakaaviolla, Errors-välilehti tuplaustoimintojen erittelyllä ja virheiden suuruuksien histogrammilla. Interaktiivinen porautuminen positioihin / otteluihin / turnauksiin kaikista indikaattoreista. Välitön PR / MWC -vaihto. CLI-komento list –type stats. PR / Snowie ER / MWC -indikaattoreiden yhtenäistäminen eXtremeGammonin ja gnuBG:n kanssa (0.16 equity-kynnys läheisille tuplauksille). Korjattu cube_error-laskenta Double/Pass-päätöksille. Tilastomallin dokumentaatio (Liite: Tilastomalli — XG / gnuBG / blunderDB -yhdenmukaisuus). Katso Stats-paneeli.

0.20.0

31.5.2026

Lisätty Except-poissulkurakenne hakupaneeliin: poissulkee positiot, jotka sisältävät jonkin piirretyistä nappuloista, merkillä « täytyy olla tyhjä » (kaksoisnapsautus) ja rajoittamattomalla nappulamäärällä pistettä kohti (komento x). Lisätty « vain ensimmäinen noppa » -vaihtoehto noppasuodattimeen (D1-variantti, CLI-vaihtoehto –dice). Comments-paneeli: syöttökenttä fokusoidaan automaattisesti avattaessa ja muokkaa / poista -painikkeet ovat aina näkyvissä. Korjattu « Search Text » -suodatin, joka ei löytänyt kaikkia kommenttitageja.

0.21.0

1.6.2026

Käyttöliittymän kansainvälistäminen: koko blunderDB (työkalupalkki, paneelit, viestit, ohje) voidaan nyt näyttää valinnan mukaan englanniksi, ranskaksi, saksaksi, italiaksi, espanjaksi, suomeksi, japaniksi, kreikaksi tai venäjäksi. Lisätty asetusikkuna, joka avataan työkalupalkin hammasrataspainikkeesta ja josta voi valita kielen. Kielivalinta säilytetään istunnosta toiseen. Katso Asetukset.

0.22.0

2.6.2026

Lisätty headless-tila (palvelin), edistynyt ja valinnainen, joka täydentää työpöytäsovellusta: serve-demoni, joka tarjoaa moottorin HTTP + JSON -rajapinnan kautta, monikäyttäjäinen PostgreSQL-taustajärjestelmä, jossa tiedot on eristetty vuokralaisittain (sekä valinnainen Row-Level Security), migrate-komento SQLite-tietokannan siirtämiseen PostgreSQL:ään, sekä yleiskäyttöinen call-välittäjä, joka antaa komentoriviltä pääsyn kaikkiin tallennustoimintoihin. Yksittäisten asemien tuonti uusista muodoista (eXtreme Gammon .xgp, BGBlitz-teksti, natiivi .db -kirjasto) sekä duplikaattien rikastaminen muotojen välillä. Korjaukset: paneelit eivät enää aiheuta virhettä, kun yhtään tietokantaa ei ole avattu, eikä Comments-paneeli enää jää silmukkaan avattaessa. Katso Headless-tila (palvelin).

0.23.0

5.6.2026

Lisätty käyttöliittymän opastettuja kierroksia (yleiskierros, haku, ottelut, turnaukset), jotka voi toistaa työkalupalkista tai komennolla tour, sekä komennolla demo ladattava esimerkkitietokanta työkaluun tutustumiseksi tuomatta omia pelejä. Laudan värien mukauttaminen (tausta, reuna, kärjet, nappulat, nopat, kuutio) asetusikkunasta. Komentorivin automaattitäydennys (TAB-näppäin). Hakupaneeli: nimenomainen päätöstyypin hallinta (Siirto / Tuplaus), kuutiopäätöksille alityyppi Tuplaus / Ei tuplausta tai Hyväksy / Luovuta, synkronoituna laudan kanssa; tarjottu kuutio näytetään laudan keskellä hyväksy/luovuta-päätöksissä. Aseman haku sen tunnuksella (suodatin id). Korjattu kuutiovirheen kohdistaminen pelaajalle 1. Katso Opastetut kierrokset ja esimerkkitietokanta.

0.24.0

6.6.2026

Lisätty konttikuva (Docker) headless-tilaa varten: erillinen serve-aloituspiste ja Dockerfile.serve, joka tuottaa staattisen binaarin ilman graafista käyttöliittymää, jotta blunderDB-moottori voidaan ottaa käyttöön palveluna käänteisvälityspalvelimen takana. Katso Headless-tila (palvelin).

0.25.0

7.6.2026

Palvelintila (headless): kaksi uutta metodia aseman rakentamiseen tallentamatta sitä — positions.fromXGID purkaa XGID-merkkijonon asemaksi ja positions.fromXGP lukee yksittäisen aseman .xgp-tiedoston. Katso Headless-tila (palvelin).

0.26.0

9.6.2026

Käyttöliittymän näyttöasetukset asetusikkunassa: skaalausliukusäädin koko käyttöliittymän suurentamiseksi tai pienentämiseksi sekä paneelien sijainnin valinta (alhaalla, sivulla tai automaattinen) leveiden näyttöjen parempaa hyödyntämistä varten. Lisätty laudan yläpuolelle tietopalkki, joka näyttää pelaajat ja ottelun taustatiedot (tapahtuma, paikka, kierros, päivämäärä, pituus). Kun tietokanta avataan, otteluiden paneeli näytetään heti ja tarkastelu alkaa ensimmäisestä asemasta. Näppäimistöoikotiet ovat nyt riippumattomia näppäimistöasettelusta (AZERTY, QWERTY, QWERTZ…). Korjattu XGID-purku (Jacoby/Beaver-liput ja kuution arvo). Katso Asetukset.

0.27.0

13.6.2026

Anki-paneeli: uusi vapaan harjoittelun (cram) tila, käytettävissä Cram-painikkeesta Study-painikkeen vierestä, joka näyttää satunnaisia asemia pakasta muuttamatta kertausaikataulua — ihanteellinen lämmittelyyn ennen turnausta tai pakan tehokkaaseen kertaamiseen sen järjestystä häiritsemättä. Haku: uusi komento blunders (alias bl), joka lataa pahimmat virheet (equity/MWC) suoraan analyysinäkymään, valinnaisella luvulla määrän valitsemiseksi (bl 50); uusi pelaajasuodatin pl'nimi', joka löytää kaikki asemat ottelusta, johon tietty pelaaja osallistui kummalla tahansa puolella; ja työkaluvihjeet, jotka hakupaneelin kutakin suodatinta osoitettaessa näyttävät vastaavan komentotunnuksen. Palvelintila (headless): uudet metodit matches.movesByMatch (ottelun kaikki siirrot yhdellä kutsulla) ja positions.epc (molempien pelaajien Effective Pip Count). Katso Anki-paneeli ja Komentoluettelo.

Sisällysluettelo

Yhteystiedot

Tekijä: Kévin Unger <blunderdb@proton.me>. Minut tavoittaa myös Heroes-palvelusta käyttäjänimellä postmanpat.

Kehitin blunderDB:n alun perin omaan käyttööni voidakseni havaita toistuvia kaavoja virheissäni. On kuitenkin hyvin palkitsevaa saada palautetta, etenkin kun on käyttänyt paljon tunteja suunnitteluun, koodaukseen ja virheenkorjaukseen… Älä siis epäröi ottaa yhteyttä ja jakaa kokemuksiasi. Kaikki (rakentava) palaute on tervetullutta.

Tässä useita tapoja keskustella:

  • liity blunderDB:n Discord-palvelimelle: https://discord.gg/DA5PpzM9En

  • lähetä minulle sähköpostia osoitteeseen blunderdb@proton.me,

  • keskustele kanssani, jos tapaamme turnauksessa,

  • GitHubissa,

Lahjoita

Jos pidät blunderDB:stä ja haluat tukea sen mennyttä ja tulevaa kehitystä, voit

  • tarjota minulle juoman, jos meillä on ilo tavata!

  • tehdä pienen lahjoituksen PayPalilla osoitteeseen blunderdb@proton.me

Kiitokset

Omistan tämän pienen ohjelman kumppanilleni Anne-Clairelle ja rakkaalle tyttärellemme Perrinelle. Haluan kiittää aivan erityisesti muutamia ystäviä:

  • Tristan Remille, joka johdatti minut backgammonin pariin ilolla ja ystävällisyydellä; joka näyttää tien tämän upean pelin ymmärtämiseen; ja joka jatkaa minun kannustamistani vaatimattomista yrityksistäni pelata paremmin huolimatta.

  • Nicolas Harmand, iloinen kumppani jo yli kymmenen vuoden ajan hienoissa seikkailuissa, ja loistava pelikaveri siitä lähtien, kun hän sai backgammon-tartunnan.