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).


Seppo Mustonen: (17.10.2000)

Survon uusi Windows-versio

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.

  1. Tavoitteet toteutuvat
  2. SURVO MM
  3. Pehmonappitekniikka
  4. Laveampia näkymiä
  5. Kuvat metatiedostoina
  6. Aloituskynnyksen madaltaminen
  7. Koekappaleita saatavilla

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.

Tavoitteet toteutuvat

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.

SURVO MM

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.

Pehmonappitekniikka

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.

Laveampia näkymiä

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.

Kuvat metatiedostoina

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.

Aloituskynnyksen madaltaminen

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.

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:n ykkösversio ja uudet verkkosivut

SURVO MM julkistettiin maaliskuun lopulla 2001. Tietoa aiheesta lopullisessa muodossaan Survon uusilta verkkosivuilta (www.survo.fi).