Usein kysytyt kysymykset (UKK)

Mihin blunderDB:tä käytetään?

blunderDB mahdollistaa henkilökohtaisen asematietokannan rakentamisen. Sen vahvuus on, ettei se oleta mitään luokittelua a priori. Käyttäjä voi siten vapaasti kysellä asemia yhdistelemällä haluamiaan kriteerejä (juoksu, rakenne, kuutio, tulos, jälkeenjääneet pelinappulat, alueella olevat pelinappulat, voitto-/gammon-/backgammon-mahdollisuudet, …).

Toinen kätevä blunderDB:n käyttötapa on viiteasemien luetteloiden laatiminen. Mahdollisuus merkitä asemia tunnisteilla antaa käyttäjän koota kaikki viiteasemansa jäsennellysti yhteen tiedostoon. Toivon, että blunderDB helpottaa asemien jakamista pelaajien välillä.

Mikä motivoi blunderDB:n luomiseen?

Minulla oli tapana säilyttää eri kansioissa kiinnostavia asemia tai virheitä. Minulla oli kuitenkin vaikeuksia löytää asemia kriteereillä, joita alkuperäinen aihepiirivalintani ei ollut ennakoinut. Jos asemat oli esimerkiksi lajiteltu pelityypin mukaan (juoksu, holding game, blitz, backgame, …), miten löytää kaikki asemat tietyllä tuloksella? tai tietyllä kuutiotasolla? Lopulta jotkin vanhat asemat unohtuivat helposti. Halusin työkalun, joka kokoaa kaikki asemani eikä oleta a priori aihepiiriluokkia, ja jolle voin sitten esittää kysymyksiä. Tällä joustavalla lähestymistavalla uusia suotimia voidaan lisätä rikkomatta asemien järjestystä. Tällainen ohjelmisto on varsin yleinen shakissa, kuten ChessBase.

Miten nykyisen tietokannan tila tallennetaan?

Tietokanta päivittyy välittömästi pyynnön vahvistamisen jälkeen. Erillistä tallennustoimintoa ei tarvita.

Pitäisikö minun luoda eri tietokantoja eri asemaluokille?

Ellei ole hyvin perusteltuja syitä, on olennaista olla jakamatta asemia erillisiin tietokantoihin, koska muuten niitä ei voi yhdistää tulevissa hauissa. blunderDB:n filosofia on olla olettamatta asemaluokkia a priori ja antaa käyttäjän kysellä niitä joustavasti. Kun asemat on kohdattu erityisissä olosuhteissa tai tietyistä syistä, voi olla järkevää säilyttää ne erillisissä tietokannoissa. Voidaan esimerkiksi koota erillisiä asematietokantoja:

  • viiteasemat,

  • blunderit live-turnauksista,

  • blunderit verkkopelistä.

Miten useita tietokantoja yhdistetään?

Jos sinulla on useita blunderDB-tietokantoja, jotka haluat koota yhteen, käytä painiketta Yhdistä tietokanta (CTRL-VAIHTO-I):

  1. Avaa päätietokanta (se, joka vastaanottaa asemat)

  2. Napsauta työkalupalkin Yhdistä tietokanta -painiketta

  3. Valitse yhdistettävä tietokanta

  4. blunderDB yhdistää asemat

Yhdistämisen aikana blunderDB välttää kaksoiskappaleet: jo olemassa olevaa asemaa ei monisteta, ja eri moottorien analyysit elävät rinnakkain sen sijaan että korvaisivat toisensa (ks. Tuonti: mitä kirjoitetaan ja mitä ei koskaan).

Muista

On suositeltavaa tehdä varmuuskopio päätietokannastasi ennen toisen tietokannan tuomista.

Mitä ottelutiedostomuotoja tuetaan?

blunderDB tukee seuraavia otteluformaatteja:

  • eXtreme Gammon (XG): .xg-tiedostot, joissa on täydellinen siirtoanalyysi, kuutiopäätökset, pelatut siirrot ja usean moottorin tuki. .xgp-tiedostot yksittäisten asemien tuontiin analyyseineen.

  • GNUbg: .sgf-tiedostot (Smart Game Format) analyyseineen.

  • Jellyfish: .mat- ja .txt-tiedostot.

  • BGBlitz: .bgf-tiedostot ja tekstiasemat.

  • HedgeHog (OpenGammon): .ogxm-tiedostot analyysin kanssa.

Tuonti voidaan tehdä yksittäisellä tiedostolla, monivalinnalla, rekursiivisella kansiolla, leikepöydältä liittämällä tai vetämällä ja pudottamalla.

blunderDB tunnistaa kaksoiskappaleet automaattisesti ja estää tietokannassa jo olevan ottelun tuonnin.

Voinko tuoda verkossa pelaamani ottelut?

Kyllä, kiertotietä: Backgammon Studio (Heroes), Backgammon Galaxy ja GammonSpace tuottavat kaikki kolme tiedostoja, joita eXtreme Gammon osaa lukea — Studio toimittaa jopa integraatiopaketin, joka asettuu XG:n kansioon. Nämä ottelut päätyvät siis blunderDB:hen olemassa olevaa .xg-reittiä pitkin, ilman omaa lukijaa.

Muista

Mitä tämä kiertotie täsmälleen kuljettaa — analyysit, heiton onnen, merkinnät, kommentit — ei ole mitattu: siihen tarvittaisiin yksi vietu ottelu kustakin kolmesta alustasta. Jos sinulla on sellainen ja jotain katoaa tuonnissa, avaa issue tiedoston kanssa: mittaus ratkaisee, tarvitaanko oma lukija, ei arvaus.

Vanhemmat tekstimuodot, joita GNU Backgammon jo lukee — .sgg (GridGammon), .tmg, .gam, Snowien .txt — ovat samassa asemassa: GNU Backgammonin kautta ne ovat tuotavissa jo tänään.

Voinko synkronoida tietokantani useiden koneiden välillä?

blunderDB-tietokanta on yksi ainoa tiedosto. Se tekee varmuuskopioinnista ja kopioinnista triviaalia, ja se ratkaisee vastauksen:

  • Dropbox, Syncthing, iCloud, OneDrive: ne toimivat yhdellä ehdolla — älä avaa tietokantaa molemmilta puolilta yhtä aikaa. Ne synkronoivat tiedostoja, eivät samanaikaisia kirjoituksia: kaksi rinnakkain kirjoittavaa instanssia tuottaa ristiriidan, jonka palvelu ratkaisee säilyttämällä yhden version ja nimeämällä toisen uudelleen. blunderDB asettaa kirjoituslukon avoimeen tiedostoon, mikä suojaa yhtä konetta, mutta mikään lukko ei ylitä synkronointipalvelua.

  • Useita koneita samaan aikaan: tähän vastaa serve-tila (katso Headless-tila (palvelin)). Palvelin pitää tietokantaa hallussaan, koneet yhdistävät siihen, eikä kirjoittajia ole kuin yksi.

  • Kaksi eriytynyttä tietokantaa: ne yhdistetään eikä synkronoida — katso «Kuinka yhdistän useita tietokantoja?» yllä. Deduplikointi Zobrist-tiivisteellä tekee työn: yhteisiä asemia ei kahdenneta ja niiden analyysit ja kommentit yhdistetään. Se on yhdistäminen, ei sovittaminen: mitään ei poisteta toiselta puolelta siksi, että toinen poisti sen.

Tarvitsenko eXtreme Gammonia käyttääkseni blunderDB:tä?

Ei. blunderDB lukee myös GNUbg:n, BGBlitzin ja Jellyfishin tiedostoja, ja sen sisäänrakennettu arviointimoottori (gammonNet) analysoi minkä tahansa aseman ilman riippuvuutta kolmannen osapuolen ohjelmistosta — katso ”Mitä sisäänrakennettu arviointimoottori on arvoinen?” alempana. XG-tuonti tuo kuitenkin täydellisimmän analyysin (siirrot, kuutiopäätökset, merkinnät, heiton onni): se on muoto, jota tilastot hyödyntävät rikkaimmin.

Käytän jo eXtreme Gammonia: mihin tarvitsen blunderDB:tä?

blunderDB ei pelaa ottelujasi uudelleen, se kokoaa ne yhteen. Kolme konkreettista eroa:

  • koota yhteen tiedostoon otteluita XG:stä, GNUbg:stä, BGBlitzistä ja Jellyfishistä, kaksoiskappaleet karsittuina asema asemalta;

  • hakea nappularakenteen ja virheen mukaan: ”tämän tuloksen otot, joissa hävisin yli 50 millipistettä” kirjoitetaan yhtenä komentorivinä (ks. Komentoluettelo);

  • kerrata poimitut asemat välitoistolla, Anki-pakkoina (ks. Anki-paneeli).

XG-analyysisi pysyvät XG:n analyyseina: blunderDB tuo ne sellaisinaan eikä koskaan laske niitä uudelleen (ks. Tuonti: mitä kirjoitetaan ja mitä ei koskaan).

Tuodaanko XG:n rollout-analyysit? Tekeekö blunderDB rollouteja?

Ei, kumpaankaan suuntaan. XG-analyysistä tuonti säilyttää tason merkinnän (”3-ply”, ”XG Roller++”, ”Book”), equityt, virheet ja todennäköisyydet; se ei avaa .xg-tiedoston rollout-tietoja eikä siis ota talteen kokeiden lukumäärää eikä keskihajontaa. Tekstinä liitetty XG-analyysi sen sijaan säilyttää merkintänsä kirjaimellisesti, ”Rollout” mukaan lukien. Sisäänrakennettu evaluaattori puolestaan ei tee rollouteja: se vastaa haulla, joka katsoo 0 tai 2 heittoa eteenpäin.

Mitä sisäänrakennetusta evaluaattorista on mitattu ja mitä ei ole?

Yksi mittaus on julkaistu, Eval-paneelin arvioidusta toimintatavasta: 4000 juoksuvaiheen money-päätöstä verrattuna tarkkaan bearoff-taulukkoon — tuomioista täsmää 93,4 % (3735/4000), mutta alle 1 %:n päässä ottopisteestä vain 61,1 %, kun yli 20 %:n päässä osuus on 94,4 %; voittotodennäköisyyden keskimääräinen poikkeama 0,85 %, suurin 8,30 %. Mitä ei ole mitattu: kuutiotuomio ottelun tuloksessa ja kontaktiasemat, joista ei ole julkaistu yhtään lukua. Oletusten yksityiskohdat ovat kohdassa Eval-paneelin metodologia ja oletukset.

Mikä on kokoelma?

Kokoelma on asemien mukautettu ryhmittely. Toisin kuin dynaaminen suodatinhaku, kokoelma on kiinteä joukko asemia, jotka käyttäjä on valinnut manuaalisesti. Kokoelmien avulla voi esimerkiksi ryhmitellä viiteasemia tietyn aiheen mukaan.

Mikä on EPC?

EPC (Effective Pip Count) on tarkempi mittari kuin pelkkä pip count bearoff-asemien arviointiin. blunderDB:n Eval-paneeli käyttää GNUbg:n taulukon kanssa identtistä 6-pisteen bearoff-taulukkoa, joka lasketaan koneella ensimmäisellä käynnistyksellä, ja laskee reaaliajassa EPC:n, heittojen keskimääräisen määrän, keskihajonnan, pip countin ja wastagen.

Puhtaissa bearoff-asemissa paneeli näyttää myös vuorossa olevan pelaajan voittotodennäköisyyden ja, kun asema kuuluu two-sided-tietokannan piiriin (TS-06-06-taulukko lasketaan ensimmäisellä käynnistyksellä, laajennettu TS-06-11-taulukko lasketaan asetusten Bearoff-välilehdeltä), tarkan money-kuutiopäätöksen. Tämän alueen ulkopuolella todennäköisyys arvioidaan virhemarginaaleineen, eikä kuutiopäätöstä tarkoituksella näytetä. Katso oletusten yksityiskohdat käsikirjan osiosta « Eval-paneelin metodologia ja oletukset ».

Mitä sisäänrakennettu arviointimoottori (gammonNet) on arvoinen?

gammonNet on kolmannen osapuolen kouluttama neuroverkko (katso Kiitokset), siirretty Go-kielelle ja käännetty osaksi blunderDB:tä: ei ulkoista ohjelmistoa, ei verkkoyhteyttä. Se toimii XG:n tai GNUbg:n roolissa tuomattomille asemille — haku 0–2 heiton syvyydelle, kuutiopäätös Janowskin mukaan ja blunderDB:n ottelutasapainotaulukon mukaan, tulos huomioiden. Se ei ole ainoa eikä välttämättä paras moottori markkinoilla: se on se, joka toimii ilman verkkoyhteyttä, ilman tiliä tai tilausta, tarkastelemallesi asemalle. Mikään ei estä myös tuomasta XG:n tai GNUbg:n analyyseja silloin kun niitä on olemassa — molemmat lähteet elävät rinnakkain, ja sarake ilmaisee kunkin analyysin alkuperän. Katso käsikirjan osiot ”Eval-paneeli” ja ”Eval-paneelin menetelmät ja oletukset”.

Mitä se on arvoltaan, lukuina. Niissä poistoasemissa, jotka sisäänrakennettu tarkka taulu kattaa — ainoa paikka, jossa oraakkeli on olemassa — gammonNet 2 plylla antaa saman kuutiotuomion 93,4 %:ssa tapauksista, ja erimielisyys keskittyy täsmälleen vastaanottopisteeseen (61 % yksimielisyyttä alle 1 %:n päässä vastaanottopisteestä, 94 % yli 10 %:n): siellä kaksi legitiimiä menetelmää eroavat eniten tiukassa päätöksessä, ei hajanaisena virheenä. Yksityiskohdat ja menetelmä ovat kohdassa ”Eval-paneelin menetelmä ja oletukset”.

Samaan kysymykseen sinun kirjastostasi vertailukorpuksen sijaan vastaa blunderdb analyze --compare: se vertaa sisäänrakennettua moottoria XG- tai GNUbg-tiedostoistasi tulleisiin analyyseihin — yksimielisyys parhaasta vastauksesta, erimielisyyksien hinta, erittely pelin vaiheen mukaan — kirjoittamatta mitään.

Mikä on ero PR:n ja Snowie Error Raten välillä?

PR (Performance Rating) on keskimääräinen equity-virhe laskettua päätöstä kohti kerrottuna 500:lla, kuten eXtreme Gammon ja GNUbg tekevät; mitä alempi, sitä paremmin pelaa. Snowie Error Rate suhteuttaa saman keskiarvon siirtojen eikä päätösten määrään — pidempi ottelu ei siis mekaanisesti huononna SER:iä. blunderDB näyttää molemmat Stats-paneelissa, yhdenmukaistettuna eXtreme Gammonin ja GNUbg:n käytäntöjen kanssa (katso Liite: Tilastomalli — XG / gnuBG / blunderDB -yhdenmukaisuus laskentasääntöjen yksityiskohdista).

Onko blunderDB:ssä komentorivikäyttöliittymä?

Kyllä, blunderDB:ssä on komentorivikäyttöliittymä (CLI), jonka avulla voidaan suorittaa ilman graafista käyttöliittymää toimintoja kuten tietokantojen luonti, otteluiden tuonti, vienti, asemien haku, tilastojen näyttö jne. Katso lisätietoja CLI-dokumentaatiosta.

Tarjoaako blunderDB palvelintilan?

Kyllä, valinnaisen ”headless”-tilan: sama binääri, käynnistettynä serve-komennolla, tuo blunderDB:n moottorin saataville HTTP + JSON -muodossa todentavan reverse-proxyn takana (blunderDB itse ei tee mitään todennusta). Se voi käyttää SQLitea tai monitenanttia PostgreSQL:ää, ja sillä ohjataan blunderDB:tä omista skripteistä tai itse tehdystä sovelluksesta HTTP + JSON -muodossa — verkkokäyttöliittymää ei ole — tai jaetaan tietokanta useiden pelaajien kesken. Normaali käyttö on edelleen työpöytäsovellus; katso Headless-tila (palvelin) yksityiskohtia varten (mukaan lukien valmis Docker-image) ja käyttöoppaan opastus ”Palvelintilan käyttöönotto proxyn takana”.

Voinko muokata, kopioida ja jakaa blunderDB:tä?

Kyllä, ehdottomasti. blunderDB on lisensoitu MIT-lisenssillä.

Missä tietoni säilytetään?

Levylläsi, .db-tiedostossa, jonka valitsit tietokantaa luodessasi: ei tiliä, ei palvelinta, ei synkronointia oletuksena. Työpöytäsovellus avaa tämän tiedoston suoraan; vain valinnainen palvelintila (katso yllä) ajaa blunderDB:tä etänä, ja silloin sinä isännöit tuota palvelinta.

Voinko jakaa tietokannan toisen pelaajan kanssa?

Kyllä: blunderDB-tietokanta on tavallinen tiedosto, joten sen kopiointi tai lähettäminen riittää. Tietokannan levittämiseen kolmannelle osapuolelle kaksi valinnaista mekanismia, valitaan viennin yhteydessä, tekevät siitä hallitun jakelun tavallisen kopion sijaan: alkuperävesileima allekirjoittaa tiedoston lähettäjätunnisteellasi (väärentämätön, luettavissa Metatiedot-paneelissa tai komennolla blunderdb info, kirjaamatta koskaan mitään vastaanottajan puolella), ja salasanasuojaus tuottaa salatun .dbx-tiedoston. Katso Tietokannan jakaminen: alkuperä ja salasana käsikirjasta.

Mitä tietomuotoa blunderDB käyttää?

Tietokanta on yksinkertainen SQLite-tiedosto. Ilman blunderDB:tä se voidaan siis avata millä tahansa SQLite-tiedostoeditorilla.

Mitkä olivat blunderDB:n suunnitteluperiaatteet?

Halusin käyttöliittymän, joka on helposti lähestyttävä mutta ennen kaikkea suunniteltu edistyneeseen ja pitkäkestoiseen käyttöön, jossa asemat ja haut seuraavat toisiaan. Komentorivi, joka avataan painamalla VÄLILYÖNTI-näppäintä, ja pikanäppäimet palvelevat tätä käyttöä, ilman että ne ovat pakollisia.

Halusin blunderDB:stä myös kevyen, itsenäisen, asennusta vaatimattoman ja useilla alustoilla saatavilla olevan, mistä johtui Go-ohjelmointikielen ja Svelte-kirjaston valintani. Tietokannan sarjallistamiseen tiedostomuodon piti olla alustariippumaton ja sopiva tietokannan sisältämiseen. SQLite-tiedostomuoto vaikutti täydelliseltä valinnalta.

Minulle oli myös tärkeää, että tietokanta pysyy yksinkertaisena tiedostona, jonka voi kopioida, varmuuskopioida tai lähettää toiselle pelaajalle.

Lopuksi, blunderDB ei rajoitu enää työpöytäsovellukseen: sama binääri tarjoaa komentorivikäyttöliittymän ja valinnaisen palvelintilan, joka voi käyttää PostgreSQL:ää monen käyttäjän asennuksissa. Tavanomainen käyttötapa on kuitenkin edelleen työpöytäsovellus. Katso Komentoriviliittymä (CLI) ja Headless-tila (palvelin).

Mikä on blunderDB:n ohjelmistoarkkitehtuuri?

  • Taustajärjestelmä on koodattu Go-kielellä. Se vastaa kaikista asemia tallentavan SQLite-tietokannan toiminnoista.

  • Käyttöliittymä on koodattu Svelte-kielellä. Se vastaa graafisen käyttöliittymän ja backgammon-laudan piirtämisestä.

  • Sovellus paketoidaan Wails-kirjastolla, mikä mahdollistaa natiivien työpöytäsovellusten tuottamisen Windowsille, Linuxille ja macOS:lle.

  • Tietokantaa hallitsee SQLite.

  • Valinnainen palvelintila voi käyttää PostgreSQL-tietokantaa SQLiten sijaan monen käyttäjän asennuksissa.

  • Sisäänrakennettu arviointimoottori (gammonNet, MIT) on Go-kielelle siirretty ja blunderDB:hen käännetty neuroverkko: se arvioi minkä tahansa aseman ilman verkkoyhteyttä, ilman XG:tä tai GNUbg:tä. Katso ”Mitä sisäänrakennettu arviointimoottori on arvoinen?” alempana.

Lisätietoja löytyy blunderDB:n GitHub-arkistosta.

Millä alustoilla blunderDB toimii?

blunderDB toimii Windowsissa, Linuxissa ja Macissa.

Mistä blunderDB:n kuvake on peräisin?

blunderDB:n kuvake on ”goggling”-hymiö SMirC-sarjasta.