Blogi

JSON-datan lukeminen taulukkolaskentaan

Tuli mieleen yksi juttu, jonka halusin lautapelitilastoistani laskea. Koska halusin vain kokeilla ja pohtia, onko kyseessä kiinnostava asia, en halunnut koodata ominaisuutta tilastosoftaani. Siksi homma kannatti tehdä taulukkolaskennassa. Kun olen aikaisemmin käpistellyt pelitilastojani taulukkolaskennassa, olen kopioinut datan selaimesta ja liittänyt taulukkolaskentaan. Se on kuitenkin aika vaivalloista ja virheille herkkää. Asiaan on oltava parempi tapa. Ajattelin, […]

Spämmikäyttäjien torjuminen WordPressissä

WordPress-sivustoille, joille rekisteröityminen on avointa, tulee helposti paljon spämmirekisteröitymisiä. Ongelman ratkaisemiseen on erilaisia vaihtoehtoja. Itse ratkaisin sen Relevanssin sivuilla estämällä suorat rekisteröitymiset, sivustolle pääsee rekisteröitymään vain maksamalla lisenssin, mutta Lautapelioppaaseen piti keksiä jotain muuta. Päädyin yksinkertaiseen captcha-ratkaisuun: Tämä yksinkertainen ratkaisu ajaa asian ja on blokannut spämmikäyttäjät sataprosenttisesti vaivaamatta liikaa oikeita käyttäjiä. Koodipuolella tämä näyttää tältä: […]

WordPress-kehitys versionhallinnan avulla

Jutussani Gutenberg-lohkojen tekemisestä viittasin WordPressin kehittämisestä versionhallinnan avulla. Tämä herätti kysymyksiä, joten katsoin tarpeelliseksi avata asiaa – kyse on kuitenkin jutusta, jonka pitäisi olla itsestäänselvä, mutta joka ei sitä välttämättä ole. Mitä on versionhallinta? Versionhallinnassa kyse on yksinkertaisesti siitä, että aina kun koodin tehdään muutokset, muutokset tallennetaan versionhallintaan siten, että voidaan nähdä mitä muutoksia on […]

Gutenberg-lohkon tekeminen Advanced Custom Fieldsillä

WordPressin uusi Gutenberg-editori on oiva työkalu, joka vähentää tarvetta page buildereille ja mahdollistaa erilaisten sisältölajien ja perusasettelujen rakentelun suoraan editorista. Kaikkea Gutenberg ei valmiiksi kuitenkaan osaa. On olemassa lisäosia, jotka tuovat Gutenbergiin uusia lohkoja, mutta entä jos tarvittaisiin kustomoitu, omiin tarpeisiin istuva lohko? Lohkojen luominen onnistuu kyllä, mutta ei se ihan yksinkertaista ole. Asiaa on […]

Twenty Twenty -teeman artikkelien otsakkeen muuttaminen

Halusin Twenty Twenty -teemaan pienen muutoksen artikkelien otsaketietoihin. Oletuksena otsakkeessa näytetään artikkelin luontipäivämäärä, mutta Lautapelioppaassa on olennaista myös se, milloin artikkelia on päivitetty. Artikkelin otsaketiedot tulevat twentytwenty_the_post_meta()-funktiosta, joka taas ei tee muuta kuin tulostaa sen, mitä twentytwenty_get_post_meta()-funktio luo. Tämä on sen verran pitkä ja monimutkainen funktio, ettei sitä kannata lähteä kirjoittamaan uudestaan, jos haluaa tehdä […]

Devaajan työkalut: editori

Devaajan perustyökalu on editori. Kaikenlaisilla editoreilla voi kirjoittaa koodia – minäkin tein pitkään TextWranglerilla – mutta hyvä editori helpottaa elämää paljon. Editorin valinnasta ei nykyään ole juuri kysymystä: Visual Studio Code on sen verran ylivertainen vekotin, että muuta ei oikeastaan tarvitse edes harkita. No, eivät sitä kaikki käytä, mutta lähtisin silti siitä, että jos mitään […]

Kulttuuriykkönen 10.12.2019

Kulttuuriykkönen

Lautapelien intohimoisimmat harrastajat haistelevat vastikään pakkauksestaan avattua lautapeliä kuin viiniharrastajat harvinaisuuksiaan ja paneutuneimmat erottavat valmistajat toisistaan tuoksun perusteella. Chris Haney ja Scott Abbott kehittivät Trivial Pursuitin Montrealissa 40 vuotta sitten. Klassikkotietopeli pitää pintansa edelleen, ja lautapelien suosio kasvaa. Lautapelihulluille pelit tuovat sisältöä elämään ja antavat tilaisuuden päteä. Ne myös parantavat strategista ajattelua ja opettavat sietämään […]

Omien SVG-ikonien lisääminen Twenty Twentyyn

WordPressin uusi oletusteema Twenty Twenty on hieno, ihastuin heti. Värkkään Lautapelioppaalle uutta teemaa ensi vuoden 20-vuotisjuhlien kunniaksi, joten tuntui jokseenkin luontevalta vaihtaa vanha Twenty Fourteen -pohjainen teema Twenty Twentyyn. Värkätessä tuli vastaan pieni pulma: halusin lisätä teemaan omia SVG-ikoneita, koska olemassaolevasta valikoimista puuttui jokunen tarpeellinen ikoni. Vaan kuinkas se tehdään elegantisti ja mahdollisimman vähällä olemassaolevan […]

Redis-välimuisti Node.js:ssä

Kaipasin Node.js-sovellukseen välimuistia. Minulla on lautapelikirjanpitoon Gamestats-sovellus, jossa on Mongo-tietokanta, Node.js-backend ja React-frontti. Dataa on kertynyt aika lailla, kun kirjanpidossa on kaikki pelatut lautapelit parinkymmenen vuoden ajalta, joten osa sivunlatauksista on toivottoman hitaita. Ongelmia aiheuttaa sekin, että kaikkea datan yhdistelyä ei voi tehdä tietokannassa, vaan monissa tapauksissa on ensin imaistava Mongosta kaikki pelit ja pelisessiot […]

Asynkroniset toiminnot WordPressissä

Toisinaan WordPressin kanssa tulee tarvetta tehdä asioita asynkronisesti. Jos joku toimenpide vaatii aikaa ja aiheuttaa odottelua, mutta sen lopputulos ei oikeastaan ole kriittinen juuri tällä hetkellä, käsillä on asia, joka kannattaa ehkä tehdä asynkronisesti. WordPress mahdollistaa asynkroniset toiminnot Ajax-toiminnallisuuden kautta. Ajax on oikeastaan tarkoitettu javascript-käyttöön, eli tarkoitus on, että javascriptin puolelta lähetellään ajax-pyyntöjä ja vastauksena […]