Sovelluskehityksen vihreällä lehdellä

Ohjelmistojen tehokkuudesta puhutaan aina välillä ja viime aikoina asiaa on käsitelty vihreämmällä otteella Green ICT:n ja Vihreä koodi -teemojen kautta. Etenkin Exoven Janne Kalliola on edistänyt vihreän koodin ajatusmaailmaa ja kirjoittanut aiheesta kirjan: Vihreä koodi. Helmikuun alussa (8.2.2023) Koodia Suomesta järjesti vihreästä koodista webinaarin ja tässä on muutamia muistiinpanojani siitä.

Vihreä koodi (kirjan kansikuva)

Muistiinpanot Vihreä koodi -webinaarista

ICT-ala ja kasvihuonepäästöt

  • ICT-ala vastaa 4-10% maailman energiankulutuksesta ja 2.1-3.9% kasvihuonepäästöistä (lentoteollisuuden kokoinen)
  • 3% => 1 580 000 000 tonnia / vuosi
  • päästöt tulevat monesta asiasta, käyttäjien laitteista, siirtoverkoista, datakeskuksista
  • sekä niiden rakentamisesta että käytöstä

Rauta

  • elektroninen jäte on maailman nopeiten kasvata jätemäärä, vain 17% jätteestä käsitellään asiallisesti
  • kierrätys on energiaintensiivista

Ohjelmistot

  • Tehokkuus ja ympäristönäkökulmat ovat toissijaisia asioita kehityksessä
  • Lisää rautaa rajalle (eri budjetista)
  • Olisi tärkeää ulottaa vastuu sovelluskehitykseen

Energiantuotanto tuottaa eri määrän hiilijalanjälkeä riippuen maasta

  • Suomi 54gCO2/kWh, Saksa 349gCO2/kWh

Laitteet ja päästöt

  • Valmistus vie suurimman osan päästöistä
  • Käyttö 15-18% koko elinkaaresta -> Älä osta turhaan uusia laitteita

Päästöjen mittaaminen

  • Monimutkaista mitata eri osa-alueiden takia
  • Joten, mitä tehokkaampi ohjelmointikieli ja mitä vähemmän aikaa se on ajossa, sen vähemmän käyttää sähköä, mitä vähemmän siirretään dataa, sen vähemmän tuottaa päästöjä -> Hukan ja päästöjen vähentäminen (Lean)

Hukan tyyppejä

  • ylimääräiset sovellukset
  • sovellusta käytetään vääriin tehtäviin
  • käyttäjävirheet: ei saada aikaan mitä halutaan
  • väärä arkkitehtuuri: ei täytä tarkoitusta tai vaatimuksia
  • väärä datamalli: datamalli ei vastaa käyttöä
  • ylimääräinen data: tyypillisesti vanhan datan säilyttäminen, tarpeettomat raportit ja siihen datan keruu
  • ei optimoitu data: ei pakattu
  • siirretään dataa varmuuden vuoksi: ei siirretä vain deltaa
  • algoritmien tehottomuus: vanhalle arkkitehtuurille tehty
  • käyttäjän huijaus: dark patternit
  • liikaa koodia: ei poisteta vanhaa koodia (ihmiset käyttää vaan 5% kirjastojen koodista)
  • väärä ohjelmointikieli: ei käytetty tehtävään optimointia kieltä
  • initialisoinnin hukka: run-once ohjelmistokielet kuten PHP
  • liikaa tavaraa: silmäkarkki tai videot, jotka eivät tuo arvoa käyttäjälle, esim. turha animaatio että algoritmi tekee jotain

Hukan poistaminen

  • vaatii analysointia, mitä poistetaan
  • iso vaikutus, pieni työmäärä => tee heti
  • iso työmäärä, pieni vaikutus => mieti asiaa
  • iso vaikutus, käyttökokemus heikkenee => mieti asiaa
Hukan vähentäminen: arvioi vaikutus ja työmäärä

Minimaalinen ratkaisu

  • tee pieni sovellus, joka keskittyy päätoiminnallisuuksiin ja tekee ne hyvin

Käytännön ratkaisuja

  • vähennetään datan määrää (jota siirretään)
    • valitaan oikeat kuvamuodot (webp)
    • välimuistetaan kaikki mikä järkevää
    • pakataan kaikki
    • minimoidaan virheiden mahdollisuudet
    • vähennetään videoiden määrää, korvataan ne animaatioilla tai kuvilla
    • kasvatetaan datan lähettämisen aikaväliä
    • poistetaan fonteista turhat leikkaukset ja glyphit
  • vähennetään koodin määrää
    • poistetaan kuollut koodi
    • mietitään uusien kirjastojen käyttöönottoa, tarkistetaan niiden koko, älä tee itse jos voit käyttää kirjastoa
    • parsi kirjastosta se osa, jota tarviit (jos lisenssi sallii)
  • paranna koodin tehokkuutta
    • etsi ohjelmiston hot spotit ja optimoi ne, mutta älä muuta
    • älä optimoi ennenaikaisesti, keskity isoon kuvaan
    • käytä oikeita algoritmeja tehtävään
    • harkitse kriittisten osien kirjoittamista eri kielellä (tehokkaammalla), jos mahdollista

Energiansäästö on matka

  • tärkeintä on ottaa ensi askel
Vihreä koodi: tärkeintä on ottaa ensiaskel.

Pelattuna Hellblade: Senua’s Sacrifice

Pelaamisessa sopivien pelien valinta on aina hankalaa tasapainottelua rahankäytön ja pelin viihdearvon välillä käytettävissä olevan ajan suhteen. Tältä osin Microsoftin Xbox Game Pass on ollut hyvä hankinta, sillä sitä kautta tulee pelattua pienellä kynnyksellä pelejä, joita ei muuten välttämättä harkitsisi, mutta jotka yllättävät pelikokemuksellaan. Yksi tällainen on Ninja Theoryn viikinkien aikaan sijoittuva Hellblade: Senua’s Sacrifice.

Hellbladessa kelttiläissoturi Senua matkaa piinaavien näkyjen kanssa Helheimiin, kuolleiden valtakuntaan, josta hän yrittää pelastaa tapetun rakkaansa Dillionin. Senuan matka on pelinä enemmän elämys kuin toimintapeli ja vaikean aiheen pohjalta on rakennettu kiehtova ja paikoin jopa sivistävä jännäri. Tarinan ohessa välillä tarjolla on taistelutoimintaa ja yksinkertaista pulmanratkontaa, jotka rytmittävät peliä, mutta molemmat ovat aika nopeasti nähty. Pelin eteneminen on suoraviivaista ja se on läpäistävissä muutamassa tunnissa. Itselläni meni kaikki tarinakivet keräten muutama ilta tarinan pelaamiseen.

Kevyttä taisteluatoimintaa (kuva Steam)

Pelillisesti Hellblade on viihdyttävä ja tarjoaa kompaktin ja vaikuttavan pelikokemuksen siitä, mitä mielenterveysongelmista kärsivän soturin pään sisällä tapahtuu. Hieman painostava teemojensa takia 18 vuoden ikärajalle on vahvat perusteet. Parasta pelissä on sen äänisuunnittelu yhdistettynä viimeisen päälle toteutettuun ja elokuvalliseen miljööseen. Parhaimmillaan se on kuulokkeet päässä.

Pelin tarkempi arvostelu löytyy muun muassa Pelaaja.fi-sivustolta.

Pisteet: 7/10
Pelattu: Xbox Series X

Vuoden 2022 kertaus

Vuosittain on ollut perinne kerrata vuoden vaihtuessa edellisen vuoden kirjoitusten aiheita ja mitä muuta vuoden aikana on tapahtunut. Vuosi 2022 onkin blogikirjoitusten osalta helppo tapaus ja muutenkin vuosi oli leppoisaa arkea. Kirjoituksia kertyi harvakseltaan ja tässä niistä lyhyt kertaus.

Autoilu

Helmikuun lumimyräkän aikaan kävimme koeajamassa Volvo XC60 T8 Hybridin, kun auton vaihtaminen oli ajatuksissa. Hieno auto, mukavahko ajaa vaikka en tykännyt ilmajousituksen leijunnasta ja nelivedolla pääsi hyvin. Sähköllä pääsi noin 40 kilometriä ja tällöin mentiin vain takavetona, joka on liukkaalla kelillä aika jännä tunne etuvedon jälkeen. Nelivedolla mentäessä otetaan polttomoottori käyttööön ja kulutus hyppää, kuten myös tyhjällä akulla ajettaessa. Tässä 2019 vuosimallissa oli vielä käytössä perinteisempi ja ”käytettävämpi” informaatiojärjestelmä eikä uudempien Android Autoa.

Volvo XC60 T8

Auto jäi lopulta talvella vaihtamatta, mutta syksyllä pihaan löytyi Transporterin tilalle Volvo XC60 D4 AWD vuosimallia 2014. Dieseliä, nelivetoa ja automaattivaihteita.

Volvo XC60 D4 AWD, 2014

Hiihto

Viime talvi oli oikea runsasluminen talvi pakkasten kera ja pääsimme nauttimaan jääladuista ja Haikkaanlahden pitkistä reiteistä. Haikkaanlahdella olemme hiihtäneet jo useana vuonna, mutta Olkkolan lenkki kiertäen takaisin Haikkaanlahdelle on jäänyt tekemättä. Matkaa reitillä kertyi 8,3 kilometriä ja aikaa luistelusuksilla meni noin 53 minuuttia. Eli leppoisaa hiihtelyä.

Haikkaanlahden Olkkolan peltoladut

Keväällä pääsimme myös hyvin liukulumikenkäilemään. Päihänniemi oli yksi hyvä kohde päiväretkelle liukulumikenkien ja koiran kanssa. OAC XCD GT 160 -sukset EA 2.0 -siteillä toimivat hyvin, samoin kuin lyhyemmät ja leveämmät OAC KAR 149:t.

Liukulumikengillä Päihänniemessä
Kuka hallitsee hiihdon valtaistuinta lentokentällä?

Pyöräjutut

Pyöräily on aina tärkeässä osassa kesän harrastuksia ja tänä vuonna se aloitettiinkin jo keväällä käynnistämällä Endurojunnut-valmennustoimintaa Lappeenrannassa. Lumiset polut ja pitkittynyt talvi teki hommasta hieman haastavaa, mutta saatiin hyvä alku kauteen.

Kesän tullen pyörävalikoima kasvoi sekä sähkömaastopyörällä että sähkögravelilla, joten oli aika tutkia uusia reittejä ja koekäyttää Garmin Edge 1040 Solaria. Hieno laite, auringosta sai ladattua lisävirtaa ja parempia karttoja etenkin maastopyöräilyyn Hyllystä. Muutaman päivän testin perusteella jatkoin kuitenkin Garmin Fenix 6X Pro:lla, johon myös saa kartat, vaikkakin onhan se näyttö aika paljon pienempi kuin oikeassa pyöräilytietokoneessa.

Garmin Edge 1040

Pyöräilyn osalta oli alkujaan tarkoitus ajaa ainakin Funduro Cupin osakilpailuja, mutta sairastumiset tulivat tielle. Kotipoluilla tuli ajettua sitäkin enemmän, etenkin kun Kenevo SL:n sähköavustus tarjosi mahdollisuuksia erilaisiin reittivalintoihin. Myös Creo SL toi gravel-lenkkeihin mukavaa rentoutta.

Sähköavustein maisemalenkillä

Jos muuten alamäkipyöräilyn historia Suomessa kiinnostaa, kannattaa katsoa Joonas Vinnarin erinomainen SUOMI DH: Tarina ystävistä ja painovoimasta -dokumenttielokuva.

Kesäloma

Kesälomalla kävimme Puss Campilla ja se olikin yksi niistä harvoista kerroista Bike Parkissa, vaikka Mielakassa toki muutamaan kertaan kävimme kevään Funduro-leirillä ohjaajana toimimisen lisäksi. Ehkä kesän kohokohta oli yön yli reissu Saimaalle partiolaisten Sissi-hinaajalla ja kerrankin näimme revontulia.

Yön yli Saimaalla

Työprojektit

Työprojektien osalta rakentelin osana isompaa tiimiä Nightingale Healthin Livit-sovellusta ja käsittelin sen toimintaa kirjoituksessa. Ideana Nightingalella on tarjoata kuluttajille terveystietoutta verinäytteisiin perustujen ja tehdä se sormenpään veripisaroiden kautta. Ihan jännä konsepti, paljon tietoutta terveyteen parempaan elintapojen kautta ja niihin kannustaen.

Livit by Nightingale Health

Osaamisen kehittämisen osalta tuli kerrytettyä kokemusta etenkin React Nativesta ja Detoxista. Ehdin myös viimein suorittamaan Full Stack Openin ensimmäiset 5 osaa ja saada kurssitodistuksen :)

Pelaaminen

Vuoden aikana tuli ehkä pelattua jonkin verran. PlayStation 4:ssa pyöri ainakin Assassin Creed: Odyssey, Red Dead Redemption 2, God of War, Horizon Forbidden West. Lisäksi syksyllä ostin Xbox Series X:n, jossa Game Passin kautta tuli pelattua Prey, Far Cry 5 ja Return to Monkey Island. Tietokoneella jatkoin Monkey Islandien pelaamista sarjan ensimmäisestä osasta alkaen, kun pelisarja on jäänyt aikaisemmin kokematta.

2023

Vuosi 2023 tulee olemaan erilainen kuin aikaisemmat vuodet, sillä huhtikuussa koittaa aika vanhenpainvapaille sekä pidemmille lomille myös kesällä. Jännää. Saa nähdä miten jää aikaa harrastuksille ja pyöräilylle, olisiko kerrankin aikaa kiertää muutamat MTB-Enduron osakilpailut?

Kannattaa laittaa blogi (RSS-syöte), Twitter ja Instagram seurantaan. Jos teknisemmät aiheet ovat sydäntä lähellä niin myös englanninkielinen ”Rule of Tech” -blogini (RSS-syöte) voi kiinnostaa. Ja seuratkaa tietenkin Marttaa Instagramissa.