keskiviikko 23. elokuuta 2017

Ohjelmiston porttaamisesta

Viime aikoina olen päässyt tekemään hommia ohjelmistojen porttaamisen kanssa. Lyhyesti selitettynä, porttaamisella tarkoitetaan sitä, että ohjelma, joka toimii ympäristössä X, käännetään toimimaan ympäristössä Y. Yksinkertaista, ainakin teoriassa. Käytännössä työ kuitenkin usein päättyy kiroiluun, tietokonelaitteiston vastaanottamiin yllättäviin fyysisiin iskuihin ja uran, elämän sekä maailmankaikkeuden kyseenalaistamiseen. Kerron kuitenkin miltä homma käytännössä tuntuu, vertauskuvan avulla.

Tilanne alkaa siitä, että asiakas antaa neliön muotoisen reiän, johon pitäisi tehdä sopiva puupalikka. Tässä vaiheessa onnellinen koodari saa tehtäväkseen tehdä täydellisesti koloon sopivan kappaleen, jota sitten testataan, hiotaan ja joka viimeistellään (pääasiassa) rakkaudella ja kauniilla lakkakerroksella. Elämä hymyilee, ja kaikki on hyvin.

Sitten tulee toinen, uusi asiakas, joka tarjoaa ympyrän muotoista reikää, jonka läpi pitäisi työntää puupalikka. Tässä vaiheessa jokainen fiksu ihminen hoksaa, että molemmista, neliöstä ja ympyrästä, pitäisi saada läpi palikoita. Päädytäänkin lopputulokseen, että on jo olemassa neliön muotoinen palikka, jota voisi helposti hyödyntää tässäkin projektissa.

stock-photo-happy-project-manager-holds-financial-report-shows-rising-stats-and-growing-graphs-to-colleague-670178647.jpg

Lisää yksi toistaiseksi onnellinen ohjelmoija, jonka tehtävänä on runnoa neliön muotoinen puupalikka läpi ympyrän muotoisesta reiästä. Alkaa pitkähkö vuolemisprosessi, jossa kappale muotoutuu uuteen reikään sopivaksi. Välillä tulee leikattua vähän liikaa, välillä taas vähän omaa peukalontyveä, mutta lopulta koodarin käsissä on puinen palikka, joka menee sekä ympyrästä että neliöstä läpi.

Ongelma on vain siinä, että kappale alkaa olla tässä vaiheessa jo aika kärsineen näköinen. Siitä murehtimiselle ei kuitenkaan ole aikaa, sillä ulko-oven takana odottaa uusi asiakas kolmion muotoisen reiän kanssa. "Onneksi" tässä vaiheessa hoksataan, että uusi kolmio alkaa muotona olla jo aika kaukana alkuperäisestä neliöstä, ja päätetään tehdä uusi projekti. Se ei tosin tarkoita, että ympyrän hiomiselle olisi aikaa.

Lisää yksi onneton ohjelmoija, jonka tehtävänä on kerätä edellisestä projektista ylijääneet sälät ja yrittää liimata niistä kasaan jonkinlainen kolmiota muistuttava esine. Välillä liimaa menee sormiin, välillä nenään, mutta lopputuloksena on kolmion täyttävä läjä "jotain". Tässä vaiheessa edes ohjelmoijakaan ei enää tiedä mitä, mutta aika iso osa siitä on varmasti kyyneleitä.

2033106-man-hold-a-laptop-like-a-roof-of-house-isolated-on-white-frustrated-programmer-earned-for-his-own-home.jpg

Ja kyllähän näitä palikoita pitää hallitakin, toimittaa asiakkaille ja muuta. Tästä saadaan tarinan koodarille hauska sivupesti jöngleerauksen muodossa. Aluksi on helppoa, yhden palikan ympäriinsä nakkeleminen onnistuu varmasti keneltä tahansa. Sitten tulee se hiomaton ympyrä. Siitä jää vähän tikkuja sormiin, mutta kyllä sekin vielä menee kohtuudella. Lopulta tulee kuitenkin se kolmio, johon ei enää oikein edes voi koskea paljain käsin ilman että se räjähtää käsiin.

Pallottelua varten rakennetaankin hieno robotti, joka hoitaa homman automaattisesti. Valitettavasti aikataulu ei riitä kunnon toteutukseen, sillä tähän väliin on saapunut asiakas tähdenmuotoisen reiän kanssa. Lopputuloksena onkin tietotekninen ystävä, jonka Skynet tuntuu ottaneen valtaansa ja joka on enemmänkin kiinnostunut ihmisten moukaroinnista puisilla objekteilla kuin jöngleerauksesta.

Tässä vaiheessa jostain saapuu asiakas kolmiulotteisen aika-avaruuden lakeja venyttävän reiän kanssa.

stock-photo-nuclear-explosion-in-an-outdoor-setting-symbol-of-environmental-protection-and-the-dangers-of-164761160.jpg

PS: Blogi palannee jossain määrin normaaliin kirjoitustahtiin kohdakkoin, pari viime viikkoa olen harrastanut mielenkiintoisempia asioita. Pikapuoliin luvassa on joko uusi matkapäiväkirja- tai maksakirroosi-postaus.

1 kommentti:

  1. Päädyin blogiisi, koska olen hyvin kiinnostunut aiheesta ja SaaS-ratkaisuista. En tajunnut, että ohjelmoinnin takana on niin paljon pohdittavaa. Olen hyvin kiitollinen siitä, että on olemassa palvelu, joka hoitaa juuri tällaisia asioita. Kiitos paljon selityksestä.

    VastaaPoista