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 […]
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 […]
Devaajan työkalut: terminaali
Komentorivi on hieno työympäristö, jossa tulee tehtyä kaikenlaista, joten senkin osalta käyttökokemukseen kannattaa panostaa. Oma komentorivikokemukseni on alkanut DOS-aikoina ja niistä ajoista on onneksi päästy jo pitkälle. Mac OS:n mukana tulee Terminal tai Pääte, joka hoitaa asiansa, mutta aika monella työkseen terminaalia käyttävällä taitaa olla käytössä iTerm2, jonka valtavasta ominaisuuskasasta olen tainnut itsekin raapaista vain […]