Architecture has become a dirty word

In this awesome talk from React Finland 2019, Monica Lent discusses software architecture in understandable and well-defined terms. The talk rejects casual use of big words like "architecture" and "technical debt" and demands you to define what they really mean when you use them. Monica Lent's definition for software architecture is "enabling constraints". An architecture […]

Selainlouhinta

Selainlouhinnasta on puhuttu jo jonkin aikaa. Viimeksi asia oli esillä pari viikkoa siten, kun Pirate Bay alkoi louhia vierailijoidensa selaimissa Monero-virtuaalivaluuttaa. Cloudflare otti asiaan yllättävän jyrkän kannan ja alkoi blokata selainlouhintaa harjoittavia sivustoja. Mutta kun Flash-bannerimainokset aikanaan keksittiin, niihin olisi voinut suhtautua ihan samalla tavalla. Kukaan ei halunnut mainoksia ja ne kuluttivat kyselemättä sekä tietoverkkojen […]

Ethereumin pakkopäivitykset

Ethereumin seuraava "hard fork" eli pakollinen päivitys muistuttaa siitä, että tietojärjestelmiä on vaikea tehdä kerralla täydellisiksi. Päivityksiä tarvitaan ja välillä kaikkien on pakko tehdä päivitys yhtä aikaa, jotta verkko pysyisi yhteensopivana. Nämä pakkopäivitykset jakaantuvat karkeasti ottaen kahtia: sellaisiin, joista kaikilla on yhteisymmärrys, ja sellaisiin, joista kiistellään. Viimeisin isompi kiista aiheutti Ethereumin jakaantumisen erilliseen Classic-haaraan. Samanlaisia […]

TypeScript vs. Flow

Tällä kertaa on mielessä pohdintaa JavaScriptin tyypityksestä. Olen viime aikoina kokeillut TypeScriptiä, joka on Microsoftin kehittämä tyyppilaajennos JavaScriptiin. Se sopii erityisen hyvin yhteen Visual Studio Code -editorin kanssa, joka osaa hyödyntää TypeScriptin ymmärrystä muuttujien ja objektien tyypeistä. Editori näyttää tyyppien perusteella varoituksia ja automaattitäydennyksiä käyttöliittymässään. Facebook on puolestaan kehittänyt TypeScriptille kilpailijan nimeltä Flow. Se toimii […]

Contentful käytössä

Otin tänään käyttöön Contentfulin blogini sisällön hallinnassa. Sisällöt olivat aiemmin markdown-tiedostoina Git-versiohallinnassa. Markdown-tiedostot on melko vaivatonta ladata Contentfuliin pienellä Python-skriptillä. Julkaiseminen onnistuu vastaavalla skriptillä, joka hakee sisällöt Contentfulista ja luo samanlaiset markdown-tiedostot julkaisua varten. Julkaisuprosessi on nyt: Contentful ⇒ Markdown ⇒ Phenomic ⇒ Amazon S3 ⇒ CloudFront Contentful on vaihdellut ajan mittaan ilmaisen käytön rajoituksiaan, […]

REST-rajapintojen sivuttaminen

Kävin tänään mielenkiintoista (melko teknistä) keskustelua Twitterissä ja Facebookissa siitä, miten REST API -rajapintojen sivuttaminen kannattaa nykyään toteuttaa. Esiin nousi lähinnä kaksi kilpailevaa vaihtoehtoa: (1) Sivuttaminen käyttäen HTTP-metadata-otsakkeita kuten X-Total-Count, X-Page-Count, jne. Tällöin varsinainen JSON-tieto voidaan palauttaa taulukkomuotoisena (array). (2) Taulukon kuorruttaminen metadata-objektilla. Rajapinnan palauttama tieto on silloin esimerkiksi muodossa {"items":[…], "totalCount":123}. Kummallakin vaihtoehdolla on […]

Versiohallinnat pitäisi salata

Tänään olen pohtinut, onko Git-versiohallinta vanhentumassa, koska se tallentaa kaiken datan salaamattomana omaan tietokantaansa. Maailmalla on käynnissä yleinen trendi muuttaa kaikki tietovarastot salatuiksi. Ennen pitkää salaamattoman datan säilöminen alkaa tuntua samalta kuin salasanojen tallentaminen paljaaltaan tietokantoihin. Se oli normaalia vielä 1990-luvulla, mutta nykyään se ei tulisi enää mieleenkään. Gitin osalta asia on tietysti erilainen riippuen […]