30.8.2018

Syksy saapuu

Nämä pari viimeistä päivää ovat tuntuneet taas niin kovin merkityksettömiltä. Aamulla töihin, päivä töissä merkityksetöntä nysväystä, iltapäivällä kotiin ja ilta taas jotain nysväystä. Tänään erityisesti tuo tuonne jotenkin iski päin pläsiä, kun matkasin töistä kotiin nollat taulussa. Työmatka oli niin ihmeellisen hiljainen, kun normaalisti saa äristä muille. Siinä ehti sitten taas ajatella kaikenlaista, kun ei tarvinnut varoa muita liikenteessä kulkijoita.

Tuo tekemäni työkin on myös niin yksinäisen touhua. Vaikka toimistolla pyörii väkeä ympärillä ja pulisevat keskenään, niin minulle ei juuri puhuta/minä en puhu muille, jos ei ole mitään työasiaan liittyvää. Tällä viikolla olen puhunut päivittäin ehkä vain muutamia lauseita ja tervehtinyt ohikulkijaa. Jos merkkaisin kalenteriin, että olen käymässä asiakkaan luona, niin voisin yhtä hyvin pitää vaikka rokulipäivän. Jos asiakas ei ota yhteyttä, niin vielä vähemmän kukaan toimistolta soittelee perään tai lähettelee sähköpostia.

Syksykin näyttää saapuvan, kun puista lehdet alkavat kellastua ja tippua hiljalleen maahan. Törmäsin taas netissä ohjelmointiaiheiseen (pitkään) kuvaan...



Minun kohdalla tuo pitää monessakin kohdassa kutinsa. Mitä eroavaisuuksia tulee, niin en komentele Linuxia ja viisaudestakaan en nyt niin tiedä. Välillä sitä tuntee ohjelmoidessa itsensä niin tyhmäksi. En pysty antamaan helmiä tai rubiineja ja tuosta päästäänkiin aasinsiltaa pitkin tuohon eri kielien puhumiseen. Ymmärrän ainakin viittä tai kuutta kieltä, sujuvasti käytän ehkä kolmea. Leluilla kyllä en enää leiki.

19.8.2018

Ohjelmoinnin iloja, osa 2

Oli mielessä jo, että pitäisi hieman taas kirjoitella ohjelmoinnin kiroista. Sattumalta tuli kuvasivustolla vastaan pari kuvaa, jotka kuvaavat hyvin tätä touhua.



Tälläkin hetkellä minulla olisi mielessä valmiina ajatuksia sellaisesta Kertalaaki™-luokan ohjelmasta, jota ei ole ennen nähty. Olen huomannut, että töihini liittyvällä alalla melko moni ohjelma on suoraan sanottuna paskaa, ja vielä hinnakasta sellaista. Niillä saa tehtyä vain yhden pienen osa-alueen ja senkin vain tietyn kaavan mukaan. Jos vastaan tulee hieman tästä kaavasta poikkeava malli, niin huhheijaa siinäpä sitä saa ihmetellä, että millähän taikatempuilla tämäkin pitäisi ratkaista. Monesti noita ohjelmia käyttäessä on tullut mieleen, että ohjelmaa on lähdetty tekemään siitä näkökulmasta, miten asioita on tehty ennen kynällä ja paperilla. Eli vähän siihen tyyliin, että kunhan saadaan samanlainen tulos ulos, niin muulla ei ole väliä. Monesti se tarkoittaa sitä, että samoja tietoja saa hakata eri paikkoihin ja kaikenlaiset älykkäät toiminnot loistavat poissaolollaan. Mitä tulee tuohon minun hahmottelemaan ohjelmaan, niin siinä asioita tehtäisiin hieman eri näkökulmasta katsottuna ja kaikki apinatason hommat olisi automatisoitu parin napin painalluksen taakse. Mutta kun ei niin ei. Kun taidot ovat ohjelmoinnin osalta tuollaista kuvan alemman osan kategoriaa, niin tuollaisen kaiken ratkaisevan hypersuperduper-ohjelmiston tekeminen on vain niitä haaveasioita.

Noh, kehitystä tapahtuu pikku hiljaa. Olen yrittänyt tehdä yhtä pientä ohjelmaa valmiiksi ja itse asiassa kesäloman aikana homma edistyi huomattavasti ja tänä viikonloppuna mentiin taas eteenpäin. Ohjelma on tähän mennessä tehty uusiksi parikin tai ehkä kolmekin kertaa. Ensimmäiseksi meni mönkään tietojen haku tietokannasta. Tai ei se nyt mönkään mennyt mutta hommasta olisi tullut hyvin äkkiä melko työlästä. Ihan näin vinkkinä: relaatiomaisten eli toisiinsa linkitettyjen tietojen haku järkevästi on yksinkertaisilla keinoilla melko puuduttavan työlästä. Onneksi tähän ovat viisammat koodanneet parempia työkaluja. Toisena kohtana piti koodata uusiksi se varsinainen ohjelman ydin, jolla käpistellään niitä tietokannasta haettuja tietoja. Ensimmäinen yritys oli sellainen sekava pökäle, jossa tietojen käsittely meinasi vähän levahtaa sinne ja tänne. Toisella iteraatiokierroksella keskitin tiedonkäsittelyn yhteen paikkaan, jolloin hommasta tuli hieman järkevämpi. Kolmannella kerralla piti sitten veivata parempaan uskoon käyttöliittymään liittyviä asioita. Olihan se toimiva ensimmäisellä kerrallakin mutta oli se sellainen purkkaviritys, että parempi oli vähän parannella sitäkin osa-aluetta.

Sen koodin toimivuuden voi melkein jo nähdä siitä koodin ulkoasusta. Jos puhutaan jostain metodista/funktiosta, joka tekee jonkun tietyn toiminnon, niin hyvä sellainen on tiivis ja alle yhdelle näytölliselle mahtuva pätkä. Välillä sitä tahtoo sortua ajattelemaan aina liikaa ja miettii kaikenlaisia viritelmiä ja kikotuksia. Hyvänä esimerkkinä oli ohjelman asetuksien tallennus. Mietin, että tämän asetuksen muuttuessa varmaan pitäisi lähettää joku eventti (tapahtuma), jonka toinen paikka tilaa ja tapahtuman sattuessa käsittelee sen ja tekee sitä ja tätä. Sitten yhtenä toisena päivänä tuli mieleen ajatus, että voikos sen tallentaa suoraan tästä tuonne ilman mitään kikkailuja. Ja kyllähän sen pystyi. Ooh ja Aah taas sitä tunnetta, kun hoksasi miten asian voi tehdä yksinkertaisemmin. Ei se KISS-periaate ole mikään tuulesta temmattu juttu tässäkään ohjelmoinnissa. Pitäisi osata vain pitää kaikki mahdollisimman yksinkertaisena eikä sortua monimutkaisiin näpertelyihin.