Tällä sivulla kuvataan SURVO MM -projektin vaiheita syksyllä 2000. SURVO MM julkistettiin maaliskuun lopulla 2001. Tietoa aiheesta lopullisessa muodossaan Survon uusilta verkkosivuilta (www.survo.fi).
Olen joulukuusta 1999 lähtien kehitellyt ajatusta Survon Windows-version rakentamiseksi ja kevään 2000 lopulla pääsin ajatuksista tekoihin.
Tämä on ollut sikäli haastava tehtävä, että - kuten usein aikaisemmin olen huomauttanut - Survo ja Windows ovat toistensa suhteen kuin "tuli ja vesi". Survolle tyypilliset, varsinkin taitavan käyttäjän kannalta tehokkaat toimintatavat ovat ristiriidassa Windows-maailmalle ominaisten käyttäytymismallien kanssa. Ei olisi mitään mieltä tehdä sellaista Windows-Survoa, josta puuttuvat Survon käyttäjien kannalta arvokkaimmat työskentelykeinot.
Olen keskustellut vaihtoehtoisista tekotavoista mm. Kimmo Vehkalahden, Reijo Sundin ja Marjut Schreckin kanssa ja saanut heiltä varteenotettavia ehdotuksia ja kommentteja. Vastuun varsinaisista valinnoista ja toteutuksesta olen säilyttänyt itselläni. Konkreettisella tasolla se on merkinnyt aikaa ja energiaa vievää paneutumista uuden Survon perusrakenteiden suunnitteluun ja ohjelmointiin.
Tavoitteenani on ollut, että uuden Survon tulisi syntyä mahdollisimman pienin muutoksin C-kielisen lähdekoodin tasolla, ja että uuden Survon käyttötapojen ja -mahdollisuuksien pitäisi olla täsmälleen samat kuin nykyisen SURVO 98:n. Luonnollista on kuitenkin pohdiskella myös, mitä uusia tai vaihtoehtoisia keinoja mm. hiiri tarjoaisi töiden ohjaamiseen ja hallintaan. Tehtyjen selvitysten ja kokeilujen pohjalta kävi ilmeiseksi, että em. tavoitteet on parhaiten saavutettavissa tekemällä uusi Survo edelleen itsenäisten ohjelmamodulien muodostamana kokonaisuutena, jolloin toimituskenttää edelleen pyöritetään nykyisen näköisessä tilassa, mutta mm. kuvaruutugrafiikka ilmestyisi omiin ikkunoihin.
Jotta uuden Survon toimitinohjelma (editor) pelaa ja pystyy käynnistämään Survon lapsiprosesseina toimivat tilasto-ohjelmat, graafiset modulit jne., olen joutunut uudelleen kirjoittamaan näytön ja näppäimistön ohjausta koskevat aliohjelmat sekä kuvaruutugrafiikkaa hallitsevat toiminnot Win32 API-funktioiden avulla.
Nämä on liitetty Survon aikaisempaan ohjelmakoodiin ja kaikki Survon ohjelmamodulit on käännetty uudelleen Microsoftin C-kääntäjällä (Visual C++ 6.0). Varsinaiseen Survon (laitteistosta ja käyttöjärjestelmästä riippumattomaan) lähdekoodiin ei ole juuri lainkaan tarvinnut kajota. Koska ympäristöriippuvaiset osat on eristetty omiksi ohjelmamoduleiksi, lienee myöhemmin entistä helpompaa ajatella myös vaikkapa Linux-version tekemistä.
Tätä kirjoitettaessa (lokakuu 2000) miltei kaikki se, mitä SURVO 98:lla on tehtävissä, toimii myös uudessa Survon Windows-versiossa. Esim. toimituskentät ja sukrot kelpaavat ja toimivat sellaisinaan. Vastaavasti myös datatiedostot ja matriisitiedostot ovat entisenrakenteisia. Ennen muuta kaikki se, mikä lukeutuu editoriaalisen käyttötavan piiriin, pätee samoin kuin aikaisemmissakin Survoissa.
Työn edistyessä on miellyttävää todeta, että moniin Survon toimintoihin on ollut mahdollista saada Windows-ympäristöstä tukea, jota ei alunperin osannut odottaa. Toisaalta on ollut kiusallista havaita, miten paljon eri Windowsit (95, 98, NT, 2000) eroavat toisistaan ohjelmoijan kannalta.
Uusi Survo on saanut tunnuksekseen SURVO MM, missä MM luonnollisesti viittaa vuosilukuun 2000.
Vaikka siis kohdistinta liikutellaan edelleen nuolinapeilla ja komentoja aktivoidaan ESC-napilla, monet halajavat hiirtä tällaisiin tehtäviin. Niinpä hiirellä voi siirtää kohdistimen haluttuun paikkaan (klikkaus) ja komennon voi aktivoida osoittamalla sitä hiirellä (kaksoisklikkaus). Vaikka SURVO MM on aito Windows-ohjelmisto, sen ilmiasu on säilynyt entisenlaisena eikä peruskäyttö muutu miksikään. Hiiren avulla voidaan kuitenkin luoda aivan uudenlaisia työnhallintatapoja, jotka vastaavat mm. tyypillisten Windows-ohjelmien alasvedettäviä valikkoja.
SURVO MM -ikkunan alalaitaan on mahdollista asetella pehmonappeja, joiden määräämät toiminnat aktivoidaan hiirellä. Ko. toiminnat vastaavat mm. jonkin määrätyn tekstin kirjoitusta tai komennon aktivointia. Koska aktivoitavat komennot voivat olla sukrokomentoja, pehmonapeille pystyy määrittelemään kaikkia mahdollisia tehtäviä mitä nykyisin suoritetaan toimituskenttään kirjoitetuilla komennoilla ja komentokaavioilla.
Pehmonappeja voi olla SURVO MM -ikkunan alalaidalla useissa riveissä. Kun jotain niistä osoitetaan hiirellä, kaikkein alimmalle riville ilmestyy silmänräpäyksessä kuvaus ko. napin tehtävästä. Klikkaamalla nappia tehtävä suoritetaan. Pehmonapin painallus voi johtaa myös siihen, että pehmonapit kokonaan tai osittain korvautuvat uusilla. Tämä tapahtuu piilotetusti sukrolla, joka aktivoi pehmonappien näkyvyyttä hallitsevan uuden SOFTKEYS-komennon. Näin voidaan rakentaa hierarkisia pehmonappivalikkoja.
Tyypillisissä Windows-ohjelmissa kaikki hiirellä osoitettavat painikkeet ja valikot ovat pysyvästi määriteltyjä eikä käyttäjä pääse niitä lisäämään eikä muuttamaan. SURVO MM:ssä kaikki pehmonapit ovat käyttäjän itse vapaasti määriteltävissä. Nappien toiminnat kuvataan survomaisin keinoin käyttäjän valitsemissa levylle talletetuissa toimituskentissä. Uskon, että kätevät käyttäjät oppivat melko nopeasti tekemään itse "pehmonapistoja" omiin sovelluksiinsa. Tarkoituksena on kuitenkin, että normaalissa SURVO MM:n asennuksessa on valmiina tietty pehmonappivalikkojen kokoelma, joka entistä paremmin opastaa uuden käyttäjän Survon tavoille.
Omaksutun tekniikan rajattomia mahdollisuuksia kuvannee sekin, että SURVO MM:n pehmoilu on vietävissä (pehmonapeista koostuvien virtuaalinäppäimistöjen avulla) jopa niin pitkälle, ettei tavallista näppäimistöä lainkaan tarvita! Tällöin kuitenkin ainakin tekstin kirjoittaminen lienee tarpeettoman kömpelöä eli otettakoon tämä vain periaatteellisena huomautuksena. Hiiri korvatkoon näppäimistön vain silloin kun se parhaalta tuntuu.
SURVO MM:n pääikkunassa ei tarvitse rajoittua nykyiseen 23 tai 48 rivin ja 72 sarakkeen näyttöön. Ikkunan eli toimituskentästä kerrallaan näkyvän osan saa joustavasti muotoilluksi uudella RESIZE-komennolla hyvinkin suureksi (tai pieneksi). Esim. RESIZE 30,100 tekee ikkunasta sellaisen, että näkyvillä on 30 riviä ja 100 saraketta. Tästä on hyötyä mm. painettavaksi tarkoitettujen, valmiiksi taitettujen tekstien katselussa, koska pitkätkin rivit näkyvät silloin kokonaisina. Huomattavasti suurempiakin ikkunoita voi valita tekstin koon kustannuksella. Esim. hyvin leveitten, toimituskenttään poimittujen taulukkojen katselussa jätti-ikkunasta on varmasti hyötyä. RESIZE ilman parametreja palauttaa ikkunan vanhaan tuttuun, nykyversion mukaiseen tilaan.
Kuvien piirrossa ja tekstien painatuksessa PostScript-puoli on säilynyt entisellään. Kuvaruutugrafiikassa (siis GPLOT- ja vastaavilla operaatioilla) piirrokset tulevat omaan ikkunaansa. Grafiikkaikkunoita voi olla useitakin esillä samanaikaisesti. Tämä helpottaa kuvien vaiheittaista kehittelyä. Kuvat tallentuvat ns. laajennettuihin metatiedostoihin (Enhanced Meta File, päätteenä .EMF), jolloin ne itse asiassa ovat laiteriippumattomia. Tästä seuraa etuna mm. se, että myös kuvaruutukuvia on entistä helpompi muuntaa tarkkuuden kärsimättä muihin yleisiin kuvien esitysmuotoihin. Kuvien koordinaatistot voidaan myös valita esim. myöhemmin piirrettävän PostScript-kuvan vaatimusten mukaisesti, jolloin piirrosten suunnittelu kuvaruudulla ennen siirtymistä PostScriptiin on entistä vaivattomampaa.
Sukrojen avulla voidaan luoda sovelluksia, joissa kaikki, mikä on tarkoitettu luettavaksi ja katsottavaksi, näkyy kuvaikkunoissa ja toimituskenttä on piilotettuna.
Monet aloittelevat käyttäjät pitävät vaikeana Survon omaksumista, koska sen käyttötavat poikkeavat mm. Windowsille ominaisesta tyylistä. SURVO MM:n suoma pehmonappitekniikka suo käsitykseni mukaan aivan uudenlaisia keinoja helpottaa Survon työtapojen oppimista.
Olen ottanut erääksi tärkeäksi tavoitteeksi luoda pehmonapistojen avulla uudenlaisen, aloittelijoille tarkoitetun käyttötavan. SURVO MM:n aloitusnapistossa on tällä hetkellä mm. napit JOBS, DATA, STAT, PLOT ja PRINT.
Napilla JOBS perustetaan uusi "työ", mikä tarkoittaa uuden riittävän suuren toimituskentän luontia tulevaa tehtävää varten. Työlle annetaan nimi (ja perustetaan tarvittaessa sille oma hakemisto) ja tämän työtä vastaavan toimituskentän alkuun sijoitetaan valmiiksi työn talletukseen ja tulostukseen tarvittavat SAVE- ja PRINT-komentokaaviot. Samalla JOBS-napilla pääsee myös valitsemaan jonkin aikaisemmista töistään ja jatkamaan sitä.
Napilla DATA perustetaan Survon datatiedostoja ja talletetaan sekä editoidaan niitä.
Nappi STAT johtaa erilaisten tilastollisten menetelmien valikkoon. Kun tästä poimitaan esim. vaihtoehto FACTA, päästään jälleen uuteen pehmonapistoon, joka on lomakkeen kaltainen. Täyttämällä aineiston valintaa, faktorien lukumäärää, faktorointitapaa jne. vastaavat lokerot ja aktivoimalla hiirellä OK-painike saadaan faktorianalyysi automaattisesti suoritetuksi. Työn tekee sukro, joka kirjoittaa toimituskenttään kaikki käyttäjän valintoja vastaavat komennot ja täsmennykset sekä lopuksi aktivoi tarvittavat komennot. Tulokset (esim. rotatoitu faktorimatriisi) ilmaantuvat komentokaavion perään samaan työkenttään.
Jokaisen tällaisen toimenpiteen jälkeen työkenttä talletetaan, millä varmistetaan, ettei tottumatonkaan käyttäjä menetä tuloksiaan.
Nappi PLOT on vastaavalla tavalla tarkoitettu kuvien piirtoon.
Napilla PRINT saadaan työ teksteineen, taulukoineen ja kuvineen tulostetuksi joko suoraan PostScript-kirjoittimella tai esim. GSview- tai Adoben Acrobat-ohjelman välityksellä millä tahansa Windows-kirjoittimella.
Tällä tapaa, ilman minkäänlaista Survon aikaisempaa tuntemusta, aloittelija pääsee helposti tekemään tyypillistä tilastollista data-analyysia, kuvien piirtoa ja aineiston hallintaa. Samalla kuitenkin toivon, että käyttäjä nähdessään koko ajan, miten Survo nuo työt hoitaa, pääsee vähitellen irti pehmonapistojen "kainalosauvoista" ja oppii luonnollisella tavalla tekemään vastaavat asiat suoraan Survon omin keinoin.
Toistaiseksi tämä "helppo" käyttöliittymä kattaa hyvin rajoitetun osan mahdollisista toiminnoista. Sillä ei ole tarkoitustakaan korvata kaikkia Survon operaatioita vaan ainoastaan auttaa alkuun. Jokainen kokenut survoilija voi halutessaan - valmiiden mallien pohjalta - laatia omat muunnelmansa ja laajennuksensa tästä opetuspaketista kirjoittamalla lisää sukroja vähemmän taitavia kumppaneitaan varten.
SURVO MM julkistettiin maaliskuun lopulla 2001. Tietoa aiheesta
lopullisessa muodossaan
Survon uusilta verkkosivuilta (www.survo.fi).