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 […]
Blogi
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 […]
Tiedon lukeminen luotettavasti ja fiksusti etäpalvelimelta WordPressissä
Jos WordPressissä haluaa ladata jotain dataa saitin ulkopuolelta, sehän käy kätevästi wp_remote_get()-funktiolla. Tällaisten kutsujen yhteydessä on aina syytä huolehtia välimuistittamisesta. Ilman välimuistia jokaisella sivunlatauksella kysellään dataa etäpalvelimelta ja siinä törmätään monenlaisiin ongelmiin nopeasti. Jatkuva kyseleminen tuottaa turhaa tietoliikennettä ja rasittaa etäpalvelinta turhaan. Jos tieto ei ole niin nopeasti muuttuvaa, että sitä on välttämätöntä seurata reaaliajassa, […]
Testaaminen WordPress-kehityksessä
Testaaminen on ohjelmistokehityksen perusjuttuja ja tapa varmistaa, että koodi jota tehdään, on toimivaa. Testaamista on monenlaista, tässä keskityn yksikkötestaamiseen (unit testing) ja integraatiotestaamiseen (integration testing). Näissä erona on, että yksikkötestauksessa testataan ohjelmiston yksittäisiä komponentteja ja integraatiotestauksessa isompia kokonaisuuksia. WordPress-kontekstissa näitä kahta on kuitenkin hankalaa ja tarpeetontakin erottaa tarkasti toisistaan. Kolmas olennainen testaamisen muoto on regressiotestaus […]
WordPress-lisäosan kehitysprosessi
Kehitän ja ylläpidän WordPressin Relevanssi-hakulisäosaa ja sen kaupallista versiota Relevanssi Premiumia. Lisäosien kehityksen hallinnointi on sen verran monipuolinen prosessi, että ajattelin kiinnostavaksi vähän avata toimintatapojani. Jaettua koodia Kun ylläpidetään kahta samankaltaista, mutta erilaista tuotetta, koodin on oltava mahdollisimman pitkälle samaa. Tämän asian opin melko pian. Eri versioiden ylläpitäminen oli työlästä, kun eri versioissa oli eri […]
Edelleenohjauksia WordPressiin
Joskus on tarvetta saada WordPressiin edelleenohjauksia eli redirectejä. Perinteisesti näitä on tehty muun muassa .htaccess-tiedostoon, mutta se on lopulta melko epäkäytännöllinen tapa. Etenkin jos käytössä on Nginx-webbipalvelin, ohjausten tekeminen palvelintasolla on hivenen työlästä. Yksinkertainen ratkaisu on asentaa tätä tarkoitusta varten lisäosa. Redirection on suosittu työkalu ja ajaa asian hyvin. Se tekee kaikenlaista muutakin aiheeseen liittyvää. […]
Vieraana Koodarikuiskaaja-podcastissa
Olin taannoin vieraana Koodarikuiskaaja-podcastissa. Puhuin Koodarikuiskaajan eli Elisa Heikuran kanssa pääasiassa asiakaspalvelusta ja rajanvedosta asiakkaiden vaatimusten ja oman jaksamisen välillä, mutta kuten hyvissä keskusteluissa usein käy, aiheesta lipsuttiin kaikenlaisille kiinnostaville tangenteille. Koodarikuiskaajan sivuja kannattaa muutenkin vilkuilla, tarjolla on hyviä juttuja, ja jos eteen tulee tilaisuus osallistua Elisan koulutuksiin, niin suosittelen kyllä tarttumaan hetkeen – Elisan […]
WebP-kuvien käsittely Finderissä
WebP on Googlen kehittämä kuvaformaatti, joka on tarkoitettu nettikäyttöön. Se pakkaa kuvat tehokkaammin kuin JPG- ja PNG-formaatit, tukee sekä häviöllistä että häviötöntä pakkausta sekä läpinäkyvyyttä. Selaimet tukevat WebP:tä enimmäkseen hyvin. Ongelmia tulee, kun WebP-kuvia haluaa käsitellä omalla koneella. Ainakaan Macilla monikaan ohjelmisto ei vielä WebP-kuvia tue, eikä esimerkiksi Esikatselu osaa niitä näyttää. Niinpä netistä noukitun […]
Sivupalkin vimpainten järjestyksen vaihtaminen
WordPressin kanssa voi joskus tulla tilanteita, joissa sivupalkin vimpaimien järjestystä olisi mukava muuttaa sivutyypistä riippuen. WordPress itsessään ei tarjoa tähän oikein työkaluja, mutta asiaan on kyllä ratkaisuja. Widget Logic, esimerkiksi, lisää vimpaimiin logiikkaa, jolla niiden näkyvyyttä voi säädellä. Toinen vaihtoehto on tehdä erillinen sivupalkki, joka näytetään halutulla sivutyypillä. Kumpikaan ratkaisuista ei ole ihanteellinen, mikäli halutaan […]