Vastajulkaistulle Vastuullinen Sikatalous -sivustolle toteutettiin muutama laskuri, joilla siantuottajat voivat laskea mm. tuotantonsa tunnuslukuja. Laskurit käyttävät Drupalin omia lomaketyökaluja, mutta varsinainen laskenta tehtiin perinteisesti paljain käsin koodaten. Kaksi ensimmäistä laskuria olivat varsin suoraviivaisia niin logiikaltaan kuin toteutukseltaankin, peruslaskutoimituksia annettujen arvojen pohjalta. Kolmannen laskurin toteutus aiheuttikin sitten mm. hymyjä toimistolla, joten avataanpa asiaa laajemminkin.

Tiivistettynä lastauslaskuri laskee, milloin mikäkin sikalan sika kannattaa teurastaa mahdollisimman hyvän vuotuisen tuoton saavuttamiseksi. Ei kannata säikähtää, vaikkei ymmärrä sikojen kasvatuksesta ja teurastamisesta mitään, en minäkään alussa ymmärtänyt.

(Toim. huom.: Ei kannata säikähtää myöskään mystistä matematiikan maailmaa. Kirjoitus on hyvinkin mielenkiintoinen, jatkakaa lukemista.)

Osittaisderivaattojen kautta katetuottoihin

Laskurin pohjana toimi Jarkko Niemen väitöskirjatyön ohessa syntynyt Excel-muotoinen laskuri. Lähtökohdat olivat selvät, merkittyihin kenttiin syötetään arvoja ja toiselle välilehdelle saadaan tuloksia. Välistä löytyivätkin ne haasteet. Lopputulos määräytyy yhden kultaisen arvon perusteella, mutta sen laskemiseen käytetään kaikkia syötettäviä tietoja, noin 25:tä eri muuttujaa.

Tiedon syöttämistä helpotettiin erottamalla osa tiedoista erillisiksi “edistyneen käyttäjän” valinnoiksi ja antamalla kaikkiin kenttiin viitearvo, jota voi käyttää, mikäli oman tilan arvoa ei ole tiedossa.

Excelissä laskentaa voi lähestyä hieman eri tavalla kuin perinteisessä ohjelmoinnissa, kuitenkaan tekemättä asioita mitenkään väärin. Lastauslaskurin Excel-versiossa käytetäänkin mm. makroja ja erillisiä apukirjastoja. Koska suora apinointi ei ollut mahdollista, lähestyinkin asiaa matemaattiselta suunnalta, “mitä tässä lasketaan” -tyyppisesti. Laskinta, MAOL:n taulukkokirjaa ja WolframAlphaa hyödyntäen aikaansain kymmenkunta paperiarkillista kaavoja. Voin myös tunnustaa että nyt yliopistomatematiikasta on ollut elämässäni hyötyä.

Koska matkan varrella laskettavia arvoja tarvittaisiin vielä myöhemmin, ne säilötään. Näitä säilöttäviä arvoja lasketaankin sitten jokunen sata, niiden pohjalta kasa uusia lukuja ja lopulta arvioidaan, milloin sikoja kannattaisi lähettää teurastettavaksi. Optimaaliset arvot kaivetaan lokeroista ja tarjotaan käyttäjälle.

Tietoa ei kannata pihdata, mutta joku roti

Asiakkaan toiveena oli tulosten havainnollinen esittäminen, sillä suurestakaan määrästä tietoa ei ole hyötyä, jos sitä on hankala ymmärtää. Niinpä taulukoiden rinnalle otettiin muutama kuvaaja. Käppyröiden piirtelyyn löytyy verkosta työkaluja joka lähtöön, meidän valintamme osui Googlen Charts -palveluun.

Kuvaajan luominen olemassa olevasta datasta oli hämmentävän helppoa ja tyylittelykin sivuston teemaan sujui ilman kommervenkkejä. Chartsin rajapinta kun on Googlen muiden työkalujen tapaan erinomaisesti dokumentoitu.

Ei oppi ojaan

En luultavasti tarvitse myöhemmin oppimaani yksityiskohtaista tietoa sikojen kasvamisesta ja teurastuksesta, mutta voinpa ylpeänä sanoa, että tiedän mitä olen tehnyt. Ajallisesti kaksi kolmasosaa työstä kului asioiden ymmärtämiseen ja paperille pistämiseen, kolmannes tekniseen toteuttamiseen. Sama trendi ilmentyy muuallakin: varsinainen toteutus on nopeaa, jos ajatus on kohdallaan ja suunta selkeä.

Sivuston laskurit ovat oiva esimerkki siitä, miten verkkopalvelun käyttäjille voidaan tarjota uutta lisäarvoa, vieläpä helppokäyttöisessä muodossa. Kehittäjän kannalta Drupalin laajentaminen on vaivatonta ja ongelmanratkaisu suorastaan addiktoivaa.