Blogi

Tietomurtoisaa päivää verkosta

28.4.2011, kirjoittanut Jussi Kasurinen

Hei taas,

Pääsiäisen ja vapun välinen viikko näyttäisi tänä vuonna olevan varsin mielenkiintoista aikaa tietotekniikkateollisuuden kannalta. Ensin Sony iskee pöytään villin kortin ja paljastaa, että heidän 77 miljoonan asiakkaan PSN-verkon käyttäjätiedot ja salasanat on sattuneet vuotamaan hakkereille, ja heti perään Nokia päättää kauan jatkuneen odotuksen ja ilmoittaa seitsemän tuhannen ihmisen ulkoistamisista ja irtisanomisista medialle. Vaikka Nokian päätökset ovatkin varmasti iso henkilökohtaisen tason tragedia monille, on Sonyn tempulla myös isot seuraukset myös Suomessa; PSN-verkolla on suomalaisia käyttäjiä useita kymmeniä tuhansia.

En nyt ala maalailemaan piruja seinille ja sanomaan, että luottokorttitiedot olisi varastettu, mutta omalta kohdaltani jouduin laittamaan kortin vaihtoon jo pelkästään ”syytä epäillä”-perusteella koska joudun työkseni matkailemaan paljon. Se, korvaako pankkien luottovakuudet kaikki väärinkäytöksistä koituvat kustannukset ei minua liikuta, jos Guadaloupessa ainoastaan rikkinäistä kreoliranskaa puhuva jääkaappipakastimen kokoinen portieeri nostaa metelin maksamatta jääneestä hotellilaskusta sen vuoksi, kun se maksukortti olikin mennyt jäätymään matkan aikana.Vaikka tätä tapausta ei henkilökohtaisella tasolla pystynytkään välttämään, koska kaikki kunnia asiasta menee Sonylle joka ilmeisesti säilyttää asiakastietojaan kansioissa pääkonttorin tuulikaapissa, kannattaa tästäkin tapauksesta oppia jotain.  Jos ei muuta, niin se että vaikka salasanan ja tunnuksen muistaminen joka paikkaan on kovin työlästä, niin ainakin se strateginen PSN/Amazon/PayPal/Ebay-sektori kannattaisi pitää uniikeilla tunnuksilla koska siellä käsitellään rahaa. Se, onko jonkun Sellitoverit.fi:n ja Naurulaudan forumtunnukset samat ei kuitenkaan ole niin iso ongelma kuin luottokorttitiedot, joihin vielä monesti yhdistyy varsin iso määrä muuta henkilökohtaista tietoa.

Mutta, oli tällä vuodatuksella jokin tekninenkin pointti. Sen lisäksi, että tapaus on arvostettu tietoturvamokien Top-5 -listalle ( http://www.cbc.ca/news/technology/story/2011/04/27/technology-playstation-data-breach.html), on taas ajankohtaista muistuttaa ihmisiä siitä, että noin puolet ihmisistä on keskivertoa tyhmempiä. Ainakin, mikäli uskomme Gawker Median vasten tahtoaan julkaisemaa dataa netissä käytetyistä salasanoista, joiden Top-5 oli ”123456″, ”password”, ”12345678″, ”qwerty” ja ”abc123″, poislukien ”lifehack”, joka oli erään vuotokohteena olleen verkkosivuston nimi.

http://blogs.wsj.com/digits/2010/12/13/the-top-50-gawker-media-passwords/

Että näin. Uutta luottokorttia odotellessa antoisaa kevättä ja muistakaa että vapun jälkeen pilkille mennessä voi haalarit kastua.

Täältä tähän,

-Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Ohjelmointikielten kuka on kukin

29.3.2011, kirjoittanut Jussi Kasurinen

Hei taas,

On taas se aika kuukaudesta, kun TIOBE-ohjelmointiyhteisö on laittanut erilaiset ohjelmointikielet suosionsa pohjalta järjestykseen. Tällä kertaa tarkastellaankin hieman sitä, miten blogin kannalta mielenkiintoiset kielet, Ruby ja Python oikein pärjäsivät.

Yleisilme tuloksissa ei suoranaisesti yllätä; ensimmäiset kolme kieltä ovat Java, C ja C++, Javan viedessä voiton 19.7 prosentin käyttömäärällään ja C:n ollessa toisena 15,2 prosentilla.  Suomen yleisurheilun yleistasoa noudatellen Python jäi tuloksissa kuudenneksi (5.7%) Rubyn ollessa yhdestoista tuloksella 1.5%. Se, mikä tuloksissa kuitenkin on mielenkiintoista on se, että aiemmin isot tekijät, kuten Perl ja Visual Basic ovat jääneet Pythonin jalkoihin, eikä välimatka viidentenä olevaan PHPhen ole enää kuin karvan verran alle yhden prosenttiyksikön. Asiaa ei myöskään muuta se seikka, että PHP on pitkäaikaisen trendin perusteella menossa lujaa vauhtia alamäkeen, kun  Pythonin trendi on ollut pääsääntöisesti ylöspäin.

Tuloksista ei kuitenkaan kannata vielä vetää kovin suuria johtopäätöksiä, koska on selvää että isojen yhtiöiden käyttämät ohjelmointikielet tulevat vetämään pisimmän korren tämänkaltaisessa testissä. Siksi onkin ihan ymmärrettävää, että voittajat olivat ketä olivat, jollainhan ne isotkin ohjelmat ja käyttikset pitää tehdä, tärkeintä on nähdä keskenään kilpailevien kielten keskinäinen asema. Lisäksi tulokset ovat ainoastaan pistemäisiä mittauksia, eikä yhden kuukauden tulokset ole kovinkaan mielekkäitä. Totuus piileekin yksityiskohdissa ja pitkäaikaisessa trendissä. Joka tapauksessa molemmat kielet, Ruby ja Python, saivat kumpikin ”A”-kielen aseman, joten sinällään tuloksissa ei ole mitään hävettävää. Semminkään kun Python ja Ruby ovat molemmat ”Vuoden ohjelmointikieliä”, Python vuosina 2010 ja 2007, Ruby vuonna 2006.

Mitä tämä sitten voisi merkitä pitkällä aikavälillä? Paras arvaus kaiketi olisi se, että Python nousee lähivuosina viiden kärkeen, syrjäyttäen PHP:n kyseiseltä paikalta samaan aikaan kun Java ja C# jatkavat hidasta kasvamistaan. Ehkäpä Pythonia ei kannata vielä opetella ainoana ohjelmointikielenä, mutta pikkuhiljaa siitä pitäisi alkaa edes jotain opettelemaan. Ei huonosti ”välilyönneillä pelleillevältä skriptilelulta jolla ei ole vakavaa käyttöarvoa”, kuten eräs tällä kertaa nimeämättä jäävä kollegani asian minulle vuonna 2006 ilmaisi.

Tuloksia voi ihmetellä omin silmin tästä osoitteesta:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Pelimaailma vuotaa ohjelmointialalle

4.2.2011, kirjoittanut Jussi Kasurinen

No niin,

Tällä kertaa ajattelin perustaa artikkelini erääseen mielenkiintoiseen havaintoon, josta tulin tietoiseksi jonkinaikaa sitten; ohjelmointitehtävien rutiinien piristämiseen achievementeillä, saavutuksilla.

Niille ihmisille jotka eivät vielä ole päättäväisesti alkaneet polttaa turhaa joutoaikaa pelikonsoleiden parissa, saavutukset ovat eräänlaisia palkintoja, joita pelaajat voivat peleistä kerätä ja myöhemmin esitellä osana omaa pelaajaprofiiliaan. Ja nyt en tietenkään tarkoita mitään taikasieniä tai kolikoita joita kaikenmaailman superputkimiesveljeksissä keräillään, vaan suorituksia jotka useimmiten vaativat aikaa ja vaivaa: ”pelaa 3h käyttämättä pausea kertaakaan”, ”tiputa 20 vihollista katolta haravanvarrella” ja niin edelleen.

Lisäksi monessa opetusteknologian julkaisussa puhutaan siitä, että 80-luvun lopulla syntynyttä ”Nintendo-sukupolvea” ei enää kiinnosta perinteinen kääntäjä ja komentokehote-ohjelmointi.  Mikä siis olisikaan sopivampaa kuin tuoda nämä pelimaailman iloiset ominaisuudet ohjelmointipuolelle kehitystyökalujen maailmaan? Ja kuinka yllättävää, ensimmäisenä nämä ominaisuudet tarjoaakin Python. Tai noh, Pythonin testaustyökalu-laajennos, mutta kuitenkin:

http://exogen.github.com/nose-achievements/

Nyt himo-ohjelmoijat voivat ryhtyä tekemään samaa, mitä himo-pelaajat ovat tehneet jo muutaman vuoden, eli kerätä kaikki saavutukset ja kehuskella niillä sitten myöhemmin verkossa. Mikä olisikaan hienompaa kuin kerätä saavutukset ”Take a Nap”, ”Epic fail” ja ”Night Shift” ainoastaan sitä varten, että koko homma päättyy ”Major Letdown”:iin vartti ennen kuin demon pitäisi olla palvelimella käynnissä.

Omalta kohdaltani jään kuitenkin vielä odottamaan pidemmälle vietyjä ratkaisuja, ja palaan asiaan kunhan ensi joulun kestohitit Dance Dance Debugger ja Developer Suite Hero (peliohjaimena 5-nappinen näppäimistö) tulevat kauppoihin. Ties vaikka tekisin aihetta koskien tuotearvostelun.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Robotti perusohjelmoinnin osana

4.1.2011, kirjoittanut Jussi Kasurinen

No niin,

Koska joulu ja erityisesti uusi vuosi on uudelleenaloittamisen juhlaa, ajattelin vaihteen vuoksi myös artikkelipuolella palata varsinaisesti blogin pääaiheisiin, ja esitellä paremmin erään työkalun, joka on syntynyt osana Python-puolen ja opetusteknologian tutkimusta. Jos joku lukijoista on sattunut käymään Tutkijoiden yössä Lappeenrannan teknillisellä yliopistolla, olette varmaan törmänneet Tietotekniikan markkinakojukujalla useampaan robottiin. Osa näistä roboteista osaa seurata kameralla liikkuvia esineitä, osa käyttää bakteereita silminään, mutta robotti josta tällä kertaa ajattelin mainita ei suoranaisesti tee mitään erikoista. Tai noh, pyyhkii se pöytiä ja hakeutuu piilopaikkoihin, silloin kun ei ole väkisin kiilautumassa kiinni seinään tai ajautumassa mahdollisimman ikävään paikkaan mistä sen pois auttaminen vaatii pikaista sisustussuunnittelua ja huonekalujen siirtelemistä. Tällä robotilla tarkoitan tietenkin Ohjelmistotekniikan laboratorion rakentamaa Kilppari-robottia, jonka toiminnasta löytyy kuvaa esimerkiksi tämän videon loppupuolelta:

http://personal.lut.fi/users/jussi.kasurinen/Kilpparirobotti.wmv

On totta, että laite on kovin yksinkertainen, tänä vuonna jo 30 vuotta täyttävä Karel the Robot on periaatteessa samaa vastaava laite, ja itse robottikin on tehty rakennussarjasta. Robotti on kuitenkin kahdesta syystä mielenkiintoinen. Ensinnäkin sen hallintasofta on tehty Pythonilla ja se käskyttää suoraan Basic Stampilla ajattelevaa mikrokontrolleria. Toisekseen se on jotain minkä ymmärtämiseen riittää ohjelmoinnin perusteiden tasoinen käsitys ohjelmoinnista: ”minulla on Python-koodi joka lähettää robotille käskyn sulkea kätensä, tutkia onko edessä jotain ja lähteä eteenpäin jos ei ole” ja niin edelleen.

Vaikka kyseisellä robotilla ei varmaankaan vallata maapalloa sen enempää kuvainnollisessa kuin literaalissakaan merkityksessä, on se kuitenkin jotain mikä varmasti avaa silmät ohjelmointia ensimmäistä kertaa opettelevalle. Robotti on kouriintuntuva esimerkki siitä, miten ohjelmakoodi ei enää olekkaan muovirakenteisen laatikon pään sisällä tapahtuvaa ajatusleikkiä, vaan koodi oikeasti havainnoi ja reagoi oikeaan ympäristöön ja oikein ohjelmointuna osaa työskennellä siellä. Ehkä hieman kömpelösti, mutta kuitenkin.

Lisäksi knoppitietona vielä mainittakoon, että vaikka robotti on käytännössä pitkälti kytköksissä PC-puolen softaan, osaa se ajatella myös itsenäisesti. Tämä onkin välillä varsin raivostuttavaa kun robotin sisään ohjelmoitu vaaratilanteidenvälttelyrutiini estää tutkijaa suorittamasta näennäisen tyhmältä vaikuttavia testejä.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Bug Day, oletko sinä jo liiskannut omasi?

22.11.2010, kirjoittanut Jussi Kasurinen

Hei taas,

Pidempi hetki on taas vierähtänyt edellisen kirjoitelman, tai paremminkin mainoksen, ja tämän päivän välillä. Maasta toiseen muuttaminen ja muut työkiireet yllättäen vie aikaa, joten tätä sattuu. Jos joku vielä muistaa alkuvuodesta jättämäni kommentin siitä, kuinka blogin pitäminen kevään aikana kuitenkin unohtuu, voi nyt juhlallisesti kohottaa maljan ja naureskella itsekseen. Nythän on pikkujoulukausi muutenkin, joten pienet ”päikkärit” ovat muutenkin ajankohtaiset.

Mutta joka tapauksessa, itse asiaan. Viime viikonloppuna Python-yhteisöllä oli buginläimintäviikonloppu, jossa tarkoituksena oli liiskata ikäviä softaongelmia Pythonin ytimistä kansainvälisten turpasaunatalkoiden avulla. Tämä säännöllisen epäsäännöllinen tempaus saavuttikin tänä vuonna ennätyksen; 66 Python-coren bugia, mukaanlukien yksi kriittinen ongelma, lähti bittien taivaaseen koodarien 48 tunnin rutistuksessa. Edellisinä vuosina tehty ennätys, 48 bugia, parani siis melkein 40%, joskin mainittakoon että tällä kertaa korjailtavia kehitysversioitakin oli yksi enemmän kuin vielä muutama vuosi sitten. Tapahtuma organisoitiin IRC-kanavan ja wikisivun kautta, päävastuun mennessä Washingtonin (DC), Sao Paulon ja New Yorkin käyttäjäryhmille. Eurooppalaista vasarointitaitoa oli edustamassa pääasiassa ranskalaiset ja saksalaiset. Ehkä jonain päivänä bugien läiskintää tehdää myös suomalaisvoimin?

Suomen porukasta muuten vielä sen verran, että aikaisemmin mainostamani PyCon 2010 pidettiin viime kuussa Turussa.  Itse en ikävä kyllä päässyt paikalle – olin Perämeren väärällä puolella tätä varten – mutta ymmärtääkseni tapaaminen meni hyvissä merkeissä. Tällaista aktiivisuutta ei voi kuin ihailla joten toivotaan, että organisaattorit jaksavat puristaa seuraavan tapaamisen kokoon.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Ruby-kurssi ja siihen liittyvä kirja tuloillaan

20.9.2010, kirjoittanut Jussi Kasurinen

Seuraa häpeilemätöntä itsekehua ja mainontaa:

Kuten jotkut varmaan saattoivat Docendon ja Viopen uutiskirjeestä huomata, olen tässä kaikessa hiljaisuudessa pitkin kevättä, kesää ja alkusyksyä kirjoittanut uuden kurssi+kirja-paketin Ruby-ohjelmointikielestä ja Ruby on Rails-kehyksestä.

Kirjassa läpikäydään Rubyn perusrakenteet ja toiminnot, hieman samaan tapaan kuin aiemmassa Python 3-kirjassa, sekä lisäksi esitellään Ruby on Rails-verkkokehyksen perusajatus muutaman esimerkkiprojektin avulla. Kirjan ideana on ollut tehdä ”kirja, jonka olisin itse halunnut lukea kun aloitin opettelemaan Rubya ja Rails-kehyksen käyttöä”. Versioina Ruby-puolella käytetään tulkin versiota 1.9 ja Rails-puolella 3.0:aa, joten ilmestyessään kirja on ihan veitsen terävimmässä kärjessä, huolimatta useammista isoista versiopäivityksistä tämän vuoden aikana. Kirja on kirjoitettu käytettäväksi Windows-ympäristössä.

Kurssilla vastaavasti keskitytään pelkästään Ruby-ohjelmointikieleen. Kurssin tarkoituksena on tarjota itsenäinen, mutta samalla kirjan asiaan liitettävissä oleva kokonaisuus. Kurssin keskeinen asia on harjoitustehtävät, joiden avulla on mahdollista harjoitella Rubylla ohjelmointia helposti ilman säätämistä. Jos kirjan koko on ~250 sivua josta 120 puhuu Ruby-ohjelmoinnista, tarjoaa kurssi tähän pakettiin 45 harjoitustehtävää ja lukukohtaiset monivalintatehtävät.

Julkaisuaikataulusta sen verran, että kirja alkaa olemaan kutakuinkin valmis; käsikirjoitus makaa tällä hetkellä oikoluettuna koneella ja pitäisi vielä viimeisen kerran silmäillä läpi. Kurssin kasaan puristaminen onnistunee lokakuun aikana, siitäkin enimmät on jo tehty ja testattu.

Palautteet, kommentit, muutosehdotukset ja uhkaukset voitte sitten jättää tähän blogiin kommentteina.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Uutisia meiltä ja muualta

16.8.2010, kirjoittanut Jussi Kasurinen

Hei taas,

Jos viime kuussa kirjoitin tien päältä Italiasta, olen tällä kertaa kirjailijan hommissa Lundissa, Etelä-Ruotsissa. Rannikon kesäisen sään helliessä, 15C ja sataa vettä, on aikaa istahtaa tietokoneen ääreen ja päivittää hieman uutisia.

Ensinnäkin, Suomen Python-aktivistit ovat laittaneet pystyyn Python Interest Group Finland-nimisen viestiryhmän. Ryhmä toimii Google Groups-systeemin päällä, ja sen tarkoituksena on kerätä Python-harrastajia Suomesta niinsanotusti ”saman katon alle”. Kaikki mielenkiintoa osoittavat ovat arvatenkin tervetulleita, näin alkuvaiheessa tavoitteena onkin saada kokoon ”kriittinen massa” väkeä, jotta homma alkaa pyörimään sujuvasti. Lisätietoja löytyy esim. täältä:

http://groups.google.com/group/pigfi

Toinen uutinen on eräänlainen mielenkiinnon kohde koskien Python-kielen eri versiota. Sain jonkinaikaa sitten taas kyselyn siitä, kumpaa Python-kielen versiota kannattaa käyttää, kakkosta vai kolmosta. Tälläerää tilanne näyttäisi olevan kutakuinkin se, että kakkosversion käyttäjiä on edelleen enemmän (erään tutkimuksen mukaan 70% pythonisteista käyttää 2.6, 15% 3.x ja 15% 2.5 -versioita), mutta kannattaa pitää mielessä, että 2.x-puu on poistumassa kehityskäytöstä, ja nyt ilmestynyt uusin versio on sarjan viimeinen täysverisesti kehitetty kappale. Mitä laajennuspaketteihin tulee, on suuri osa isommista paketeista jo nyt saatavilla itsekäännettävinä versioina Python 3:lle, asennuspakettiratkaisujen tullessa perässä sitten joskus. Olen tainnut sanoa tämän joskus ennenkin.

Mutta joo, itse olen tällä hetkellä kohdistanut mielenkiintoni hieman sivuun Pythonista, ja olenkin parhaillaan tekemässä erästä toista projektia, josta toivon mukaan tulee vielä lähiaikoina jotain valmista. Kerron siitä joskus myöhemmin lisää.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Testitapausten hämmentäminen, alan kuumin uutuus

15.7.2010, kirjoittanut Jussi Kasurinen

Hei taas,

Vaihteeksi taas tien päältä kirjoittelen uutta artikkelia blogiin; tällä kertaa pohjois-Italiasta, Trentosta, johon tutkijanhommat pakottivat lähtemään kesken kesälomien. Hyvin, hyvin harmillista tämä tämmöinen.

No joka tapauksessa, kuuntelin aamusta Microsoftin edustajan pitämän palopuheen fuzzing-testauksesta, eli testausmenetelmästä, jossa olemassaolevaan järjestelmään syötetään toimivista testitapauksista tehtyjä variaatioita, joista on muutettu yhtä satunnaista kohtaa. Käytännössä siis eräänlaista evoluutiolaskennan ja satunnaisgeneraattorin luovaa käyttöä testisyötteitä rakentaessa. Idea onkin, että ohjelmalle lähetetään hämmentäviä ”fuzzed” testisyötteitä, joiden avulla voidaan rajapinnoista ja metodeista pukata pihalle ongelmia, joita ei tullut edes ajatelluksi. Luonnollisesti termi fuzzing tuleekin testicaseille tehtävästä toimenpiteestä, jota voidaankin suomalaisittain vaikka kutsua ”hämmentämiseksi”.

Jos vuosi sitten oli Intelin esiintyjä lupaamassa 128-ytimisiä prosessoreita lähiaikoina – eipä ole vielä kaupoissa näkynyt – on Microsoftin edustajalla hieman mielenkiintoisempi lähestymistapa.  Fuzzing-systeemi toimii jo, ja pystyy tarkastamaan vaikka koko Windows 7:n moduulikirjaston, mutta ikävä kyllä ajoaika vielä toistaiseksi ylittää maailmankaikkeuden elinennusteen kaksikymmenkertaisesti. Jonkin verran koodia on siis vielä optimoitavana ennenkuin voidaan puhua tehokkaasta testausoraakkelista.

Lisäksi jos heittäydytään humoristeiksi, voidaan todeta ettei tämä uusi testauskone sitäpaitsi edes ole oraakkeli. Järjestelmä on nimittäin vähäpätöisemmin nimetty nimellä Sage, eli tietäjä. Oletettavasti oraakkelilta vaadittava ennaltanäkemisen ominaisuus toimitetaan sitten joskus Service Packissa, ja jumalaisia toimintoja varten joutuu ostamaan kalliimman Professional-version.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Kesäterveiset lomailijoille

26.6.2010, kirjoittanut Jussi Kasurinen

Hei taas!

Näin juhannuspäivän aamuna ohjelmointiaiheet on varmaankin viimeinen asia mikä valolle ja koville äänille altistuneessa tilassa tulee mieleen. Siitäkin huolimatta ajattelin koota jonkinlaisen kirjoitelman ainakin niiden iloksi, jotka vielä maanantaina pääsevät takaisin työn ääreen lepäämään.

Python 2 menee edelleen kovaa vauhtia eteenpäin; nyt ollaan jo julkaisuversion 2.7 kynnyksellä. Tähän versioon se kuitenkin tulee päättymään, ainakin mikäli Python-säätiön omaa tiedotetta on uskominen. Tämä tarkoittaa siis sitä, että tämän jälkeen kaikki uusi kehitys tehdään Python 3-perheeseen, eikä uusia ominaisuuksia enää välttämättä lisätä 2.X-versioihin, niille tarjottujen päivitysten ainoastaan vasaroidessa pois koodista löytyneitä bugeja.

Lisäksi Py2exe-projekti näyttäisi myös päätyneen terminaalivaiheeseen, jossa uutta kehitystä edustaa ainoastaan versio-buildit Python 2:en edetessä uudempiin versioihin. Sääli sinänsä, kyseinen moduuli oli kohtuullisen luotettava ja näppärä väline. Korvaavaa työkalua, ja erityisesti Python 3:ssa toimivaa korviketta kannattaakin lähteä etsimään vaikkapa cx_Freezestä, joka löytyy täältä:

http://cx-freeze.sourceforge.net/

Eipä muuta, ehkä tästä voidaankin jo siirtyä kesäisempiin aiheisiin ja lomanviettoon. Lisäksi alkuvuodesta lupaamani kiintiö ylittyi juuri ja juuri, tarkoittaen sitä että ainakin ”kerran kuussa” tuli täyteen. Ainakin keskiarvona, jos ei muuta. Syksyn saapuessa voidaankin sitten katsoa, mitä aiheita ja asioita silloin käsitellään. Mutta sitä ennen on vielä kaksi lomakuukautta kesää edessä.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »

Dokumentoinnista

15.5.2010, kirjoittanut Jussi Kasurinen

Hei taas,

Jotain mitä olen jo pidemmän aikaa eräässä uudessa projektissani ihmetellyt on tapa, miten ohjelmointiprojekteissa kaikki muu kansipahvien suunnittelua ja wrap-up-saunaillan organisointia myöten tuntuu välillä menevän kunnollisen dokumentin kirjoittamisen edelle. Tietysti ymmärrän sen, että keskeneräisen kehitysversion dokumentit elävät, ja jos alusta muuttuu niin sitten kaikkia dokumenttejä pitäisi päivittää, muodostaen ylimääräisen tehtävän joka olisi voitu välttää kirjoittamalla dokumentaatio ensimmäisestä ”release candidate”-versiosta.

Monesti kuitenkin käy niin, että lataan jonkin moduulin tai koitan selvitellä mistä metodi oikein on keksinyt vaatia kaiken mahdollisen tupleina, tai vaihtoehtoisesti haluaisin käyttää jotain umpimielistä koodia tekemään monimutkaisia asioita. ”Älä keksi pyörää uudestaan” on mielestäni ihan hyvä periaate; ikävä kyllä alkuperäisen keksijä jättää monesti kertomatta mihin tätä uutta hienoa pyörää voisi käyttää.  Helpot tapaukset on niitä, joissa API on kuvattu skriptillä pureskeltuna generoituna tekstinä, joka ei aukea oikeastaan sen enempää kuin itse lähdekoodi. Kehittäjille ehkä hyödyllinen, käyttäjille vihamielinen. Pahimmillaan olen nähnyt tilanteita, missä kaksi, jopa kolme, dokumenttia ovat keskenään ristiriitaisia ja neuvovat tekemään asiat eri tavoin, tai painottavat täysin eri asioita. Lopulta usein tuleekin tunne, että on kokoamassa pelkkiin faktoihin perustuvaa kuvausta urheilukilpailusta haastattelemalla ulos heitettyjä humaltuneita katsojia, tai olevansa loukussa ”yksi valehtelee aina, yksi joskus ja loput puhuu totta”-tyyppisessä logiikkatestissä.

Mutta joo. Jo ohjelmistotekniikan peruskurssilla opetetaan, että ainoa asia joka on huonompi kuin puutteellinen dokumentointi on virheellinen dokumentointi, ja että kaikista viisain eläin on majava joka sukeltaa sateelta suojaan. Dokumentaatio ja käyttöohjeet voivat monesti vaikuttaa turhalta lisätyöltä, mutta ne eivät olekkaan tarkoitettu kehittäjille itselleen, vaan niille jotka käyttävät heidän tekemiään työkaluja. Ja vaikka ajatus vahingon kiertämään laittamisesta voikin houkuttaa, olisi siinä tapauksessa harkitsemisen arvoista ennemmin ryhtyä vaikka autokauppiaaksi.

Täältä tähän,

Jussi Kasurinen

Artikkeliin ei ole kommentteja »