keskiviikko 23. kesäkuuta 2010

Tiedon valtatiet vievät Roomaan

Helsinki on arkkitehtuurissa, harrastemahdollisuuksissa, yrityksissä, tapahtumissa, erikoisliikkeissä, ravintoloissa jne. mitattuna Suomen kaupungeista omassa luokassaan. Vasta tänne muutettuani havahduin, kuinka monet uutiset koskettavat pääkaupunkiseutua ja vaikkapa Tapiolan keskustassa näkyy usein julkkiksia. Pidän merestä ja rantakaupungeissa tuntuu myös olevan jokin oma viriili tunnelmansa. Kääntöpuolena on sitten kaikista ihmiskeskittymistä tutut hajut, pakokaasut ja pidemmät välimatkat. Esimerkiksi pelkästään matka Otaniemestä Kumpulaan bussilla vie n. 45 minuuttia ja Espoo itsessäänkin on, sanoisinko amerikkalaistyylinen, kaupunki ilman varsinaista keskustaa laajoine, avoimine puistoalueineen. Pyörä olisi hyvä kulkuväline täällä, mutta onnistuin 2008 loppukesästä muuttaessani löytämään asunnon Tapiolan keskustasta, mistä on vain 24 minuutin kävelymatka työpaikalleni. Nykyinen yksiöni on hyvien kulkuyhteyksien päässä (15 minuuttia bussilla Kamppiin tai Leppävaaraan), mutta vuokra on suurempi kuin entisessä Hervannan kolmiossa. Paikallisesta eläinkunnasta uusia tuttavuuksia ovat mm. valkoposkihanhien haukkuvat laumat, joita saan välillä kyntää työmatkallani, mustarastaat, jotka eivät pahemmin näytä ihmistä säikkyvän, pitkänokkaiset vesilinnut, joiden nimeä en tiedä ja kaupungissa palloilevat fasaanit. Entisen ystäväpiirin lisäksi olen huomannut jääväni kaipaamaan maaston korkeuseroja, joita täällä rannikolla on niukemmin - esimerkiksi Pispalan- ja Pyynikinharjut olivat Tampereen kauneinta aluetta. Kaikki tämä ympäristön vaihtaminen on kuitenkin tehnyt jokapäiväisestä elämästä jotenkin kiinnostavampaa ja tykkäänkin tehdä viikonloppuisin pitkiä kävelylenkkejä eri kaupunginosissa tutkien paikkoja ja käydä esim. syömässä sushia kerran viikossa. Yleisesti ottaen olen aina mieluummin matkustanut ajatuksissani kuin fyysisesti, koska tällainen kontekstinvaihto vie helposti energiaa, mutta tuolloin kaipasin jonkinlaista ravistelua pysähtyneessä tilanteessani.

Minulla on aiemmin ollut jonkinasteinen alemmuuskompleksi Helsinkiä kohtaan, mitä on ollut edesauttamassa mm. sellaiset kokemukset kuten joskus täällä vuosia sitten käydessäni pankkiautomaatilla, kun sirukortti tipahti maahan tai sähläsin hieman normaalia kauemmin koneen edessä, jolloin jonossa takani seisoskellut mummelipari vain tuhahti "pyh, maalaisia!" :) Muutto tänne vapauttikin tietoisuuteni todo-listalta yhden muistipaikan lisää, kun ei tarvi tätäkään asiaa enää pohdiskella. Aina ajattelin, etten nyt ainakaan Hesaan muuta vaan nyt vähintään Tukholmaan, mutta kun Nokialla työskennellyt nuori proffa kertoi PSIRP EU-projektista, jossa kehitettiin tulevaisuuden Internet-teknologiaa perustuen publish/subscribe-periaatteeseen, en voinut lopulta vastustaa kiusausta lähteä pakertamaan väitöskirjaa pääkaupunkiseudulle. Palkka on HIIT:ssä pienempi kuin Nokialla ja vakituinen sopimus vaihtui määräaikaiseen, mutta työt tuntuvat huomattavasti merkityksellisemmältä ja sopivan suuruudenhulluilta luonteelleni. Tietyllä tapaa tavoitteet ovat nykyisessä työssäni lähellä sitä kommunikaatioalustaa, jota olin suunnittelemassa Mediaclickissä, mutta nyt ratkaisua kehitetään verkkokerrokselle eikä sovellustasolle. Data-keskeisessä kommunikaatiossa ikään kuin käännetään kontrollin suunta verrattuna nykyiseen viestinvälitykseen perustuvaan Internetiin, jossa lähettäjä lähettää viestin kohteelle, joka on identifioitu IP-osoitteella. Sen sijaan tilaaja ilmoittaa verkolle, että on kiinnostunut nimetystä datan palasta, minkä verkko sitten yrittää parhaansa mukaan toimittaa. Tämä lähestystapa voisi poistaa DDoS-hyökkäyksiin liittyvät ongelmat, koska satunnaiset tahot eivät voisi käyttää verkkosi resursseja, mutta mikä tärkeintä, verkko toimisi natiivisti multicastina, jossa suosittu sisältö tulisi läheisten reitittimien välimuistista sen sijaan, että tukkisi lähteen toistuvilla saman datan pyynnöillä. 

Hieman yllättäen näissä hommissa olisi hyötyä jatkuvasta matematiikasta, sillä pakettivälitteiset verkot perustuvat tilastolliseen pakettivirtojen limittämiseen samojen linkkien yli, jotta resurssit tulisivat tehokkaasti käytettyä. Tästä syystä lähettäjien tulee kontrolloida lähetysnopeuttaan hajautetulla algoritmilla tukkeumien välttämiseksi ja että verkon tarjoama utiliteetti maksimoituisi elastiselle liikenteelle. Tähän voidaan valita erilaisia reiluusmittoja, joista esimerkiksi max-min-reiluus pyrkii tarjoamaan kaikille tasaisesti kaistaa ja toinen ääripää, jossa maksimoidaan verkon kuljettaman datan määrää (mutta tätä harvoin käytetään, koska se usein tarkoittaisi, että jotkut käyttäjät eivät saisi lainkaan kaistaa). '97 Kellyn kehittämä algoritmi maksimoi käyttäjien aidosti konkaavien utiliteettifunktioiden summaa (tätä kutsutaan suhteelliseksi reiluudeksi, kun utiliteettifunktiot ovat logaritmisia lähetysnopeuteen nähden), mikä on sikäli kiinnostava, että se muodostaa tasapainon operaattorien voitonmaksimoinnin kanssa, kun oletetaan, että verkon mallinnetaan "hinnan-ottajina", jotka eivät yritä pelaamalla vaikuttaa hintaan (käytännössä tämä tarkoittaa, että "mummonmökkien" yhteydet ovat kalliimpia, koska ne käyttävät enemmän resursseja pakettien joutuessa kulkemaan useampien reitittimien läpi). Optimointiteorian lisäksi myös säätöteoriaa tarvitaan, koska näiden algoritmien tarvitsemat kytketyt kontrollisilmukat voivat helposti alkaa oskiloimaan ja olisi tärkeää pystyä todistamaan, että käytetty järjestelmä on stabiili. Tällä hetkellä pohdin interdomain-reititystä ja topologianhallintaa, joka on myös pitkälti peliteoriaa hipova aihe sillä Internet koostuu tosiallisesti noin 30000 itsenäisestä AS:stä (näistä operaattoreita on ~3000), joista kukin toteuttaa omaa politiikkaansa omilla vaikuttimillaan. Toisin kuin moni luulee, interdomain-reitityksessä ei ole kyse jostain lyhyimmän reitin hakemisesta, vaan reitityspäätökset perustuvat esim. lähettäjän kustannusten minimointiin ja reitityspolitiikkoihin (jos nämä aiheet kiinnostavat, niin kannattaa katsoa esim. Braess:in paradoksi, joka pätee myös tieverkoille). Olen myös toteuttanut Pythonilla korkean tason Internetin laajuisen simulaation kehittämästämme rendezvous-järjestelmästä, joka on yksi komponentti arkkitehtuurissamme. Viime vuonna sain läpi ensimmäisen julkaisun ja kävin sen esittelemässä Roomassa konferenssissa, jossa oli myös alan veteraaneja kuten Van Jacobson esittelemässä samansuuntaisia visioita. Tänä vuonna saimme myös paperin läpi työkaverini Dmitrijn ja kumppaneiden kanssa arkkitehtuurimme turvallisuudesta.

Olen nyt käynyt läpi näissä kirjoituksissa elämäni vaiheet ja saavutukset pääpiirteissään ja tulevaisuuden tyhjä maalauskangas odottaa edessäni uusia siveltimenvetoja. Yleensä scifiä perustellaan sillä, että aiheita on helpompi käsitellä vapaasti etäisesti ja tällaiset henkilökohtaiset tarinat edustavat tietenkin täydellistä vastakohtaa. Tästä syystä olen yrittänyt pitäytyä faktoissa ja pyrkinyt välttämään omia tulkintojani, joilla tosin olisi voinut saada tarinasta elävämmän, mutta mahdollisuus loukata jotakuta tahtomattani olisi ollut liian suuri. Mitä näistä kirjoituksista sitten on jäänyt käteen? Kenties joku nuorempi lukija on saanut hieman lisää tiivistettyä elämänkokemusta, lihaa sananlaskujen ympärille, joita ei koskaan oikein tahdo ymmärtää ennen kuin ne tapahtuvat omalle kohdalle. Ehkä joku tuttu tai tuntematon voi lukea nämä ja saada näin sen toisen puolen tarinasta (, vaikka tiedämme ettei näistä kumpikaan olisi oikea :) ). Myös itseni on ollut mahdollista saada lisää suhteellisuudentajua joihinkin asioihin, joihin liittyy voimakkaita tunteita ja sokeita pisteitä ja näin itsetuntemus on kasvanut - on kuin olisi nähnyt itsensä hetkeksi ulkopuolelta. Joskus myöhäisillä kävelyretkillä kenenkään tulematta vastaan saatan pohtia jääneeni jonkun ihmisiä leireissään vankinaan pitävän kulttuurin näkymättömän käden ulkopuolelle - vai olenko vain perinyt isoisäni erakkoluonteen ja tiedostamatta välttelen ihmiskontaktia? En halua valokeilaan, vaan mieluummin juonia taustalla - tärkeämpää olisi jättää jokin kädenjälki tähän maailmaan. Toinen asia, jonka olen oppinut on, että ihminen hidastuu ja rutinoituu vanhetessaan vähitellen löytäen uomansa. 

Verkkopuolella puhutaan protokollapinon "vyötäröstä" (esim. IP-protokolla), joka liittää useita päällä olevia applikaatioita ja useita mahdollisia allaolevia toteutusteknologioita yhteen. Todellisuuden kudoksessa kuitenkin jokainen yksilö muodostaa tällaisen tapahtumakartion hilarakenteessa, jossa menneisyyden riippuvuudet rakentavat kuka ja missä olet juuri nyt ja toimillasi taas vaikutat muiden ihmisten tulevaisuuteen kohtaloiden näin risteillessä. Toisaalta ihmiselämä on niin suuri, ettei tällainen tarina yhdestä näkökulmasta anna sille oikeutta - kuinka siis mikään sloganiksi puettu "viisauskaan" voisi! Tarinan voi kertoa jälkikäteen, mutta kaikki ei aina mene käsikirjoituksen mukaan. Toisaalta yksilö on niin pieni, että kaikki merkittävät asiat saavutetaan yhteistyöllä: autiolle saarelle laitettu einstein ei oppisi hyväksi gonpelaajaksi itsekseen. Olemme viime kädessä riippuvaisia toisistamme ja kallein kaikista resursseista kunkin unelmien rakentamiselle on aika, jonka tiimalasi vääjäämättömästi valuttaa informaation lopulta entropiaksi.

Koska tämä äityi näin filosofiseksi, niin tässä vähän käytännöllisempiä ohjeita, jos joku tutuista haluaa seurata perässä tänne Hesaan. 
(Lapinlahden Linnut: Ohje landelle (1990))


(Leningrad Cowboys - Those Were The Days)

perjantai 18. kesäkuuta 2010

San-kari Kari-san

 
"My name is Minimaximus Simplimus Algoritmius"


'98 syksyllä aloitin gon peluun, kun Mikon synttäreillä pelasin ensimmäisen sääntöjenmukaisen pelin loppuun Fredrikiä vastaan pastilleilla shakkilaudalla. Olin myös nähnyt välillä paikallisia pelaajia (Poncho-?)ravintolassa ja säännöt olin jo oppinut yläasteella, kun kaverin kanssa pohdimme tekisimmekö puukäsityössä go- vai shogi-laudat (päädyimme silloin jälkimmäiseen, koska emme saaneet kaksin tolkkua go-pelin strategiasta ruutupaperilla pelattujen kokeilujen avulla). Jannen kanssa päädyimme lopulta TTgoK:n peli-iltaan, josta muistan että pelasin Markku 2-dania vastaan 9x9-laudalla 9 kiven tasoituksella. Kerhon roisi teekkari-ilmapiiri ei välttämättä ole kaikkien makuun puheenaiheiden vaihdellessa seksuaalisesta markkina-arvoteoriasta natseihin kaiken yleisen älämölön välissä, mitä ihmiset helposti pitävät keskittyessään seuraavan siirron miettimiseen ja välillä intoutuen suoranaisiin lauluesityksiin esimerkiksi Galactican puisista tutkista. Kerho suorastaan kuhisi persoonallisuuksia kuten sanavalmis elokuvalainauksien loputon aarrearkku Teemu, jäyhä hammastikkua pureskeleva Timo ja kerhon luova moottori Markku. Tunsin oloni nopeasti kotoisaksi kerhon vapaamieliseen, älykkääseen ja ystävälliseen ilmapiiriin enkä usko, että olisin voinut löytää tällaista uutta ystäväpiiriä kovinkaan monen muun harrastuksen parista. Esimerkiksi turnauksen ollessa toisella paikkakunnalla, on tyypillistä, että pelaajat majoittavat toisiaan koteihinsa ja muutenkin piireissä pyörivät ihmiset tuntevat toisensa ja ovat lähes poikkeuksetta jotenkin samalla aaltopituudella. Tosin jonkin verran aitoa kilpailuhenkeä tarvitaan, että jaksaa pysyä aktiivisena, vaikka taitojen kehittyminen välillä pysähtyisi - muutenhan go on peli, joka tarjoaa uusia syvyyksiä tutkittavaksi yli yhden ihmisiän.

Peli-iltojen jälkeen kokoonnuimme välillä Hervannan Habsburgeriin (Hesburger Tampereen murteella), missä kokoontui ns. Habsburger Kreis, johon kuuluivat mm. Henri ja Ilkka. Vuosituhannen jälkeen muutimme asumaan Ilkan entiseen asuntoon Hervannan keskustaan kahdeksanteen kerrokseen (ja saimme kuukausiksi säilykkeitä syötäväksi edellisten asukkaiden Y2K-varastoja), mihin kutsuin usein pelaajia myös elokuvailtoihin, sillä olin hankkinut kolmiputkisen CRT-videotykin paria vuotta aikaisemmin ja keräillyt nurkkiin isot pinot elokuvia. Tärkeitä muistoja liittyy myös kesäyöllisiin pitkiin kävelylenkkeihin Jannen kanssa, jolloin saatoimme kiivetä esimerkiksi Hervannan hyppyrimäen torniin katselemaan tähtiä, keskustelemaan filosofiasta ja kuuntelemaan Vangeliksen musiikkia. Eräs hauska gohon liittyvä tarina tapahtui käydessäni Pekingissä IOI-joukkueen mukana matkalla, jossa etsin tavarataloista pelivälineitä tuliaisiksi ja tingatessani jostain jade-kivistä, liikkeen ainoa englantia puhunut myyjä ehdotti, että pelaisimme pelin, joka ratkaisisi saanko pyytämäni alennuksen. Aloimme tiskillä sitten pelaamaan gota, mikä sai valtavan ihmismassan kerääntymään ympärillemme yleisöksi. Olin tuolloin vasta 4 kyu, mutta ovela myyjä varmaan antoi minun voittaa, niin sai kivet kaupattua ja pääsin vieläpä poistumaan nolaamatta pahemmin itseäni. Samaisella matkalla onnistuin pelaamaan toisenkin pelin ostamillani välineillä jäämällä odottelemaan hotellin aulabaariin laudan kanssa ja eräs englantia puhuva vieras esitteli ystävänsä, jonkun heidän "kylänsä vahvimman pelaajan", joka sitten pesi minulla lattiaa agressiivisella pelityylillään. Hotellihuoneiden järjestelyissä oli tuolloin myös jotain ongelmia ja lopulta päädyin viikon ajaksi jakamaan huoneen Etelä-Korean opetushallituksen johtajan kanssa, joka keitti joka ilta vihreätä teetä ja laittoi sen sitten yöksi jääkaappiin, jotta voisimme juoda kylmät kupposet aamulla. Hän suhtautui minuun muutenkin ilmeisesti aasialaiselle kulttuurille ominaisella vanhemman ihmisen isällisellä opastuksella neuvoen suihkuverhon käytöstä ja hieman murahdellen kun en tahtonut herätä aamulla :) Yritin myös olla kohtelias hänelle ja kysyin pelaako hän "Baduk:ia" (gon koreankielinen nimi), mutta pitkän toistelunkaan jälkeen hän ei ymmärtänyt mitä tarkoitin ennen kuin sanoin "go", jolloin hän vastasi "Ooh, you mean baduk!".

Jatkoin pelailua aktiivisesti jonnekin 2007 tietämille käyden läpi ~60 turnausta, pelaten kerhossa ja nettiservereillä mm. "minimaximus" tunnuksella. Go-urani (ainakin tähän mennessä) saavutuksiksi jäivät san-danin musta vyö (GOR:it parhaimmillaan kävivät 2350:ssä pelkästään kotimaisilla peleillä), kaksinkertainen Turku GP:n voitto, Suomi GP:n voitto 2007 ja neljänä vuonna pääsy SM-kisoissa kuuden parhaan joukkoon sarjaan pelaamaan. Kahden hengen täyden informaation pelissä on kyse pelkästään pelitaidosta ja koska yksittäisessä go-pelissä on helposti yli 300 laittoa, joissa pienet virheet kumuloituvat, voittaa jo yksittäisenkin pelin melkein aina vahvempi pelaajista. Tässä mielessä go oli kuin terapiaa minulle - irtiotto kaikenlaisille monenpelaajan reaalimaailman avoimille sosiaalisille peleille, joissa puhdas substanssi tulee usein kaikenlaisten liittoumien dominoimaksi (Huomasin joskus aikoinaan, kun pelasimme Jannen ja Markon kanssa Master of Orion II:sta ja Imperialismia viikonloput matikanlaitoksen mikroluokassa, että käytännössä ainoa tapa voittaa tällainen moninpeli oli piilottaa oma menestyksensä muilta ja kasvaa salassa isommaksi kuin muut pelaajat yhteensä - ehkä tästä voisi vääntää jonkun laajemman argumentin joko avoimen yhteiskunnan puolesta tai vastaan, riipuen tietenkin arvomaailmasta).

Mediaclickin jälkeen olikin hyvä väli suorittaa lopulta siviilipalvelus, johon päädyin, koska sain 2002 loistavan palveluspaikan Tampereen yliopiston informaatiotutkimuksen laitokselta EU-projektista, jossa tutkittiin monikielistä tiedonhakua, erityisesti sanavarianteilla (esim. paikannimi "Tsernobyl" kirjoitetaan melkein samalla tavalla eri Eurooppalaisissa kielissä muutamaa merkkiä lukuunottamatta) automaattisesti toimivaa hakua erilaisiin likimääräisiin merkkijonontäsmäysalgoritmeihin perustuen. Pääsin tuolloin käyttämään Haskellia erilaisten algoritmien toteuttamiseen ja toteutin vielä Spaghettis-algoritmin tms., joka auttoi monidimensionaalisen datan hakemiseen, kunhan käytetty metriikka toteutti kolmioepäyhtälön. Hauskaa tässä oli se, että monet noista ohjelmista olivat korkean tason kielellä toteutettuna usein vain muutaman rivin pätkiä, vaikka työnantajani C:hen tottuneina usein odottivat niiden varmaan olevan hankalampia toteuttaa :) Sain nimeni tuolloin myös kolmeen julkaisuun, jotka käyttivät noita kirjoittamiani ohjelmia, jotka vertailivat eri menetelmiä ko. ongelmaan. Siviilipalveluksen kuukauden koulutusjakso tapahtui tätä ennen Lapinjärvellä, jossa mm. Seppo Rönkkö piti itämaisten pelien iltaa viikottain. Koulutusjaksosta on lähinnä jääneet mieleen hupaisat esitelmät, joita ilmeisesti kuka tahansa halukas saattoi tulla sinne pitämään. Esimerkiksi yksi vieraista halusi opettaa meille väittelytekniikoita, mutta kun ehdotin, että tällaisten retoristen keinojen opetus kaikille vain vie keskustelua pois päin itse asiasta, ei tämä sitten osannut sanoa siihen mitään vastaan. Tämän homman jälkeen sain vinkin, että Nokian tutkimuskeskus hakisi tutkimusinsinööriä ja yliopistotutkimuksen, oman yrityksen ja freelance-hommien jälkeen ajattelin, että kaippa pitää kerätä koko sarja ja menin sitten rengiksi isoon firmaan. NRC:n työympäristö oli todella kansainvälinen ja työskentelin parissa eri tiimissä, joissa oli yhteensä noin kymmenestä eri maasta tulleita tutkijoita. Sain myös vihdoin valmistuttua kaikkien mutkien jälkeen DI:ksi. Työt olivat kyllä kiinnostavia aina Java-standardoinnista älykkäisiin tiloihin, mutta ehkäpä elin eräänlaista hiljaiseloa tämän ajan ja sosialisoin lähinnä gonpelaajien kanssa. Vain yleinen masentuneisuus ja yksin vietetyt uudetvuodet muistuttivat aina nopeammin hukkaan juoksevista vuosista kuin kellonlyömät.


(Maximus Decimus Meridius)

tiistai 8. kesäkuuta 2010

Kuplan lajittelu (koko perheen K-12 versio)

Syksyllä '95 aloitin TTKK:lla opiskelut kotoa käsin kaahaamalla Koski-Hervanta-väliä punaisella Ford Sierralla ja samaan aikaan teimme demogroupimme kanssa freelance-työnä Nokian tutkimuskeskukselle 3d-animaation streamauksen ja moduulipohjaisen karaokejukeboksin mobiiliyhteyden yli. NRC:hen olimme olleet ensi kerran yhteydessä jo '94, kun Pirkanmaan projektin ansiosta olimme kehittäneet kesätöiksi algoritmin reaaliaikaisen videon värien kvantisointiin ja paletin valintaan 256-väriselle näytölle. Nokia oli pienimuotoisempi firma kuin nykyään ja muistan vielä kuinka paljon vähemmän esimerkiksi kaikenlaisia kulisseja oli pystytetty viemään luulot pois vierailijoilta. Lähetimme tarjouksemme tutkimuskeskuksessa työskentelevälle professorille levykkeellä, johon olimme koodanneet hypertekstipohjaisen kirjeen, ja onnistuimmekin saamaan muutaman kuukauden palkan työstämme. Kirjeohjelma on jäänyt mieleeni, koska teimme sen Mikon vanhempien vintillä eräänlaisena kokeena, jossa maikailin sängyllä ja luin lähdekoodin sokkona koneen ääressä istuneelle Markolle. Sanoisin tämän perusteella, että muutaman tuhannen rivin itsekirjoitetun ohjelman pystyy vielä tuoreena muistamaan ulkoa ilman ponnisteluita, mutta sitä suuremmissa tapahtuu jokin laadullinen ero, koska ei enää pysty hahmottamaan kokonaisuutta kerralla. 

Vuoden 96 alusta muutin Hervannan Wäinölään asumaan silloisen tyttöystäväni kanssa ja aloitimme Mikon kanssa tutkimusapulaisen osapäivähommissa DMI:llä (Mikko oli lukenut jostain tilavuusmallinnuksesta ja yksinkertaisesti ehdotimme tällaista aihetta DMI:lle pienen demon kera). Ensimmäisenä lukuvuonna sain suoritettua puolet DI:n tutkinnosta, sillä osasin ammattiaineiden sisällön jo pääpiirteissään etukäteen, mutta siitä eteenpäin edistymisnopeus näytti puolittuvan vuosittain geometrisena sarjana, koska työt olivat yksinkertaisesti liian kiinnostavia. Taisi olla jo '97, kun koulun tietojärjestelmässä oli ollut jokin ongelma, eikä opiskelijoiden ollut mahdollista nähdä kurssien luokkia. Koska tätä ei saatu korjattua noin viikkoon, hermostuimme kaverini kanssa riittävästi ja kävimme yksi yö keräämässä luokkien edustoilta huonevarauslaput ja syötimme ne tietokantaan ja väsäsimme yksinkertaisen CGI-skriptin, jolla kuka tahansa saattoi sitten webissä laatia itselleen lukujärjestyksen luokkien kera syöttämällä valitsemansa kurssit. Ohjelmistotekniikan projektityökurssille toteutimme Invent-järjestelmän, joka toteutti Java-appletin avulla VRML:n monenkäyttäjän toiminnallisuuden, jossa saattoi nähdä muut ko. sivulla olevat käyttäjät samassa virtuaalimaailmassa. Virtuaalimaailmat olivat tuolloin kova sana, mikä näkyi myös monissa senaikaisissa elokuvissa ja web:kin oli vasta tulossa yleisempään käyttöön eikä kiinteää Internet-yhteyttä ollut monissa kodeissa. Reitmaa järjesti muutaman kurssin virtuaalimaailmoista ja pääsin kokeilemaan koululla rakennettua VR-kypärän ja paikannuslaitteiston yhdistelmää ja olipa joku kehittänyt sellaisen sormustimenkin, jonka kautta sai haptisen palautteen virtuaalimaailmasta. DMI:llä tutkimme myös jaettuihin virtuaalimaailmoihin liittyviä alustoja ja jossain vaiheessa kirjoitin myös Finn-medi-tutkimukselle tilavuusmallinnusvisualisointialgoritmin, joka mahdollisti EEG:n, röntgenkuvan ja MRI-datan yhdistämisen yhdeksi 3d-kuvaksi, jota käytettiin mm. epilepsiakohtauksen etenemisen tutkimiseen, aivokasvainten koon arviointiin ja leikkausten suunnitteluun. Itse lääketiedepuolesta vastannut heppu kirjoitti tuosta myös tieteellisen artikkelin. Noihin aikoihin tuli roikuttua yöt-päivät TTKK:n Hermian tiloissa, välillä DMI:n labrassa ja välillä tankkaamassa Modeemi ry:n huoneessa, jossa usein hihaan tarttui Esa, joka esitteli viimeisimpiä Haskell-ohjelmiaan. Silloin tällöin kävimme puoliltaöin pitämässä palaverin 24h huoltoasemalla (Jyväskyläntien varressa?) ja ideoimassa kahvin ääressä.

Syksyllä '97 päätimme Mikon, Markon ja Fredrikin kanssa perustaa spin-off-osakeyhtiön jaettujen virtuaaliympäristöjen ympärille. Otimme myös Huopan mukaan matemaatikoksi ja silloisen DMI:n johtajan eräänlaisena "kummisetänä" mukaan pienemmillä osuuksilla ja omasta osuudestani annoin siivun vanhemmilleni ja Ulla hoiti meidän kirjanpitoa aluksi. Kirjoitin ylös pitkän listan mahdollisia nimiä yritykselle, joista valitsimme ensin "Mediatek", mutta tämä oli liian lähellä olemassaolevaa Mediantech-firmaa, joka ilmeisesti valmisti kompasseja tms., joten vaihdoimme nimen loppumetreillä Mediaclick:si. Vuokrasimme parin hengen huoneen Hermian teknologiakylästä ja tuossa vaiheessa maksoimme alkupääomasta muistaakseni minimipalkkaa Mikolle ja Markolle ja itse jatkoin vielä hetken DMI:llä tehden firman hommia ohessa. Tein tuolloin DMI:llä kiihtyvyysantureihin pohjautuvan fyysisen input-laitteen VRML-maailmoille ja kävin myös ensimmäistä kertaa Siggraph-konferenssissa, joka on eräänlainen massiivisen tieteellisen konferenssin ja "aikuisten demopartyn" yhdistelmä, jossa firmat voivat esitellä viimeisintä tekniikkaansa. Vuoden 98 alusta siirryin itsekin firman kolmen hengen koppiin täyspäiväisesti. Hermiassa oli runsaasti vastaavia pikkufirmoja ja välillä meidänkin ovella kävi eräänlainen paikan "yleismies jantunen", joka yritti kaupata tietokoneita ja tarvikkeita. Koska tapanani on usein kuunnella musiikkia kuulokkeista tehdessäni jotain ja satuin kerran kuuntelemaan Bachin Matteus-passiota, kun tämä hankkija sattui paikalle. Mieleeni on jäänyt hänen kommenttinsa kauniista "Erbarme dich, mein Gott"-aariasta, kuinka tällainen musiikki kasvattaa rintakarvoja. Toinen tapahtuma, joka jäi mieleen oli Martti Ahtisaaren ja Puolan presidentin vierailu Hermiaan, johon meidät kutsuttiin esimerkkifirmana esittelemään virtuaalimaailmoja näille. Joskus tuolloin kävin myös pitämässä C++-kurssin Toijalan Tietotalossa ja Java-kurssin Päivölässä. Lisäksi autoin pari vuotta Suomen IOI-valmennuksessa ja olin mukana '98 Setúbalin kisoissa Portugalissa kääntämässä tehtäviä ja vielä 2000 Pekingissä, jolloin Suomelta oli kisoissa mukana ihmisiä tutustumassa kisajärjestelyihin tulevia Tampereen kisoja silmälläpitäen. '98 kävimme firman työntekijöiden kanssa yhdessä motivointimatkalla Siggraphissa ja Disney Worldissä Floridassa ja yhdistimme sen työmatkaan New Yorkiin, johon menimme tapaamaan amerikkalaista sijoittajaa. Hän oli nähnyt tilavuusmallinnustekeleemme verkossa ja oli kiinnostunut perustamaan uuden keskisuuren toimijan lääketieteellisen tekniikan alalle pienistä Eurooppalaisista firmoista, joka voisi kilpailla jättifirmojen kanssa kalliista sairaaloiden laitetoimituksista, joiden hinnoissa oli paljon ilmaa vähäisen kilpailun takia. Sijoittajan oma saman aihealueen yritys, jossa pidimme tapaamisemme, toimi aivan Manhattanin keskustassa pilvenpiirtäjän kattohuoneistossa, joka sisälsi pari ylintä kerrosta talosta ja paikalle oli kutsuttu myös eräs saksalainen alan pikkuputiikki. Tuosta tapaamisesta muistan lähinnä vain, että t-paitaan pukeutunut miljonäärimme aloitti kokouksen reteästi "Let's assume that I have money..".

Olin tuolloin jo jonkin aikaa pohtinut visiota eräänlaisesta x-ikkunoinnin, 3d:n ja monenkäyttäjän ryhmätyön liittämisestä yhtenäiseksi käyttöliittymäalustaksi Internetille siten, että eri ohjelmistot voisivat luoda käyttöliittymänsä virtuaalimaailmaan, jossa käyttäjät voisivat niitä käyttää avatar-hahmojensa kautta yhdessä. Esimerkiksi verkkolevy olisi näkynyt arkistokaappina virtuaalimaailmassa ja kun dokumentin olisi vienyt kaappiin, olisi se tarkoittanut automaattista tiedoston kopiointia ko. serverille jne. Taustalla oli ajatus vanhoista erillisistä MS-DOS-grafiikkaohjelmista, jotka Windows-käyttöliittymä lopulta jyräsi yhtenäisellä moniajoalustallaan ja ajattelin, että 3d:n kohdalla voisi tapahtua jotain samanlaista. Lisäksi Internet oli yleistymässä räjähdysmäisesti kaistanleveyden ja 3d-tehon kasvaessa eksponentiaalisesti, mitkä olivat luomassa teknisiä edellytyksiä tällaisen vision toteutumiselle. Kehitin Corban ja erään USA:n laivaston massiivisen sotasimulaatiojärjestelmän innoittamana pohjan megalomaaniselle nelitasoiselle Workrooms-arkkitehtuurillemme, jossa ensimmäinen kerros wUII (universal information interface) vastasi data-keskeisen kommunikaatioprimitiivin toteutuksesta Corba-tyylisen oliokutsujen rinnalle skaalautuvalla cachetuksella ja O(n*log(n))-resurssien kulutuksella, toinen kerros wSOM ("simple" object model :) ) oli taas edellisen alustan kietominen rajapinnanmäärityskieleen IDL:n hengessä, kolmas wDOT (distributed object toolkit) oli taas täysiverinen hajautettujen palveluiden kokoelma mikrokernelihengessä ja ylimpänä oli wIEF (interactive experience framework), jonka tarkoituksena oli korvata VRML paljon järeämmällä kehyksellä virtuaalimaailmojen väliselle interaktiolle siten, että se toimisi saumattomasti hajautettujen transaktioiden, ortogonaalisen persistenssin jne. kanssa. Jälkikäteen katsottuna tämä suunnitelma oli tietenkin aivan mielipuolisen kunnianhimoinen kokoisellemme firmalle ja lopulta kasassa oli ehkä noin 2000-sivua dokumentaatiota ja satojatuhansia rivejä koodia firman loppuvaiheissa, mutta kokonaan valmiiksi emme järjestelmää koskaan saaneet. Jälkiviisaana huomasin myös, että olimme kehittäneet skaalautuvan tiedon jakamisen jo kauan ennen BitTorrentin tai DHT:den keksimistä periaatteessa vastaavilla tekniikoilla (järjestelmään liittyvät client:it toimivat cacheina ja muodostivat dynaamisesti multicast-puita p2p), mutta olimme niin sokaistuneita virtuaalimaailmavisiosta, ettemme nähneet näiden arvoa kuin välttämättömänä komponenttina, jotta saisimme järjestelmästämme skaalautuvan. 98 esittelin tätä visiota Nokialle ja HPY:lle, josta oli ainakin teknologiajohtaja Linturi paikalla kuuntelemassa ja onnistuin jotenkin saamaan nämä vakuutettua molemmat laittamaan 300k markkaa firmaamme käytännössä ilman vakuuksia, mikä mahdollisti sitten, että saimme samansuuruisen summan lisäksi TEKES:ltä. Tällöin saimme palkattua lisää väkeä firmaan ja muutimme Hermian nurkan pyöreään tilaan auditorion yläpuolelle. Teimme myös periaatteellisen työnjaon firman perustajien kesken, että puolet meistä keskittyisi substanssin tekemiseen ja puolet hoitaisivat busineksen. Firma alkoi myös paisumaan kuin pullataikina ja lopulta saimme erään sijoitusyhtiön ja pankin sijoittamaan meihin 15 miljoonaa markkaa omistusosuutta vastaan, minkä jälkeen siirryimme keskustaan Koskikeskuksen Ratinanlinnan yläkertaan, jonka firmamme reilut 40 työntekijää lopulta varasivat kokonaan.

Ilmeisesti, koska tavoitteemme oli niin mieletön, onnistuimme houkuttelemaan firmaamme todella lahjakkaita tekijöitä, jotka halusivat kehittyä taidoissaan (tämä on uskoakseni monille huippytyypeille paljon suurempi motivaation lähde kuin raha). Katteluksen (kaikki kutsuivat häntä sukunimellä), joka lopulta koodasi melkein kaiken 3d-koodimme, löysimme jostain autoja korjaamasta. Vaikka hän oli silloin lopettanut koulujen käynnin peruskouluun, sujui DirectX:n ja OpenGL:n puukottaminen sellaisella kätevyydellä, ettei moni maisteri pysyisi perässä. Minulla oli usein vaikeuksia ymmärtää hänen kirjoittamiansa ohjelmia, jota hän ei myöskään itse osannut kovin hyvin pukea sanoiksi, mutta joka tapauksessa koodi toimi hyvin ja nopeasti ja ihmeellistä kyllä, hän onnistui lisäämään viritelmiinsä melkein minkä tahansa uuden ominaisuuden suhteellisen helposti hieman säätämällä sieltä ja täältä :) (olen työskennellyt elämäni aikana parin ohjelmoijan kanssa, jotka lähinnä näyttävät vain poistavan koodia ohjelmistaan ja samalla toiminnallisuus vain lisääntyy enkä vielä tähänkään päivään ole täysin hahmottanut näiden ohjelmointitapaa) Täydellinen vastakohta oli sitten teoreettinen Esa, jonka sain pitkän suostuttelun jälkeen jättämään Nokia Networksin ja tulemaan meille kehittämään arkkitehtuuria. Olen melko varma, ettei 90-luvulla vielä monessa muussa arkkitehtuurissa ollut käytössä dependent tyyppejä :) Toinen loogikkomme, Aatu, nuori kaveri, oli hypännyt lukion yli suoraan yliopistoon opiskelemaan matematiikkaa. Hänellä tuntui olevan lainassa Tampereen kirjastoista puolet matematiikan kirjoista isoissa pinoissa työpisteensä ympärillä ja hän tuntui ahmivan näitä melkoista vauhtia asian vaikeudesta huolimatta. Mikko taas oli löytänyt Rintasen koodaamaan hajautusalustaamme ja Markon suhteilla löysimme graafikoita. Janne yleismatemaatikkona oli taas vastuussa protokollamme oikeaksitodistamisesta ja fysiikkamalleista virtuaalimaailmoille. Tähän liittyen kehitin tuolloin myös itse pienen "pidä perse ylhäällä"-algoritmin, joilla saimme avatarit kävelemään suhteellisen realistisen näköisesti erilaisia maastonmuotoja pitkin.

Hiljalleen firman alkuperäiset omistajat jakautuivat kahteen leiriin, joista minä ja kumppanit olisimme halunneet pitää firman pienimuotoisena ja kehittää massiivisen järjestelmämme valmiiksi tuotteeksi ajan kanssa ja sijoittajien kanssa yhteyttä pitäneet taas halusivat "nopeasti omakotitalot" ja kasvattaa firman kokoa väkisin pienillä projekteilla, jotka lopulta osoittautuivat tappiollisiksi. Peli meni lopulta niin likaiseksi, että meidän pitkän tähtäimen hanke dumpattiin ja strategian muutosta vastustaneet savustettiin ulos firmasta, kunnes firma meni lopullisesti konkurssiin dot-com-kuplassa. Käteen jäi lopulta ainakin Virtuaali-Turun tekeminen, Tunturille kuntopyörään liitetty ajopeli sekä muutama vastaava hanke ja onpa jossain OpenGL-manuaalissa kuvakin meidän WorldStreamer-ohjelmasta. Lisäksi voitimme Pirkanmaan Innosuomi-palkinnon vuonna 2000. Koska olin laittanut useamman vuoden lähes kaiken energiani ja aikani Workrooms-arkkitehtuurin kehittämiseen laiminlyöden muut asiat ja tulin ystävieni pettämäksi, ajoivat nämä kokemukset minut monen vuoden masennukseen ja jokin tavoitteellisuus katosi tuolloin sisältäni.


(Peter Gabriel Big Time)

lauantai 5. kesäkuuta 2010

Keskiyön uutiskatsaus

Öljy-yhtiö BP torjuu vaatimukset leikata osinkoja, Israel vannoo pysäyttävänsä Gazaan matkaavan avustuslaivan, Lyijymyrkytys tappanut yli sata lasta Nigeriassa, Naisen sieppaus ja raiskaus toi kolme vuotta vankeutta..

..tähän päätämme avaruushupailun "karvattomien apinoiden planeetalla sattuu ja tapahtuu". Seuraavaksi voimme tuudittautua kauniisiin uniin kuuntelemalla jotain hieman vakavampaa:



(Galaxy Song)