Administrator
|
Laivalla [*] keskusteltiin muuttujien valinnasta MASK- ja VARS-täsmennyksin:
SURVO R:ssä näitä voi "sekakäyttää" niin, että MASK-toiminnosta tutulla valintaikkunalla saadaankin kenttään VARS-lista (F9) MASK-rimpsun (F8) sijaan, ja VARS-listan aktivoinnilla päästään takaisin valintaikkunaan. Nämä ovat erittäin käteviä välineitä ainakin edistyneemmille käyttäjille. "Takaisinkytkennän" osalta jäi vähän pohdittavaa: lisätäänkö rivejä, jos VARS-listan pituus ylittää rivin pituuden? Tässä taidettiin kannattaa vastaavaa toimintaa, jonka kohtaa esim. SHOW-komennon L-toiminnolla, ts. Survo kysyisi, lisätäänkö rivejä. Sekä MASK-rimpsu että VARS-lista ovat sellaisenaan tuiki tarpeellisia. Riippuu mm. käyttötilanteesta, kumpi kulloinkin on kätevämpi. Niissä on sekä hyvät että huonot puolensa, joten en itse osaa ottaa sellaista kantaa, että käyttäisin tai opettaisin ainoastaan toista. Valintakeinot eivät Survossa lopu tähän, onhan tarjolla myös toiminto FILE ACTIVATE (alt F6), joka (joskus aloittelijoita hämäten) vie ihan samannäköiseen valintaikkunaan. Erona on se, että valintaikkunasta poistuttaessa kenttään ei kirjoiteta mitään vaan valinnat tallettuvat osaksi datan metatietoja. Tälläkin on omat käyttötilanteensa, joskin itse hyödynnän sitä erittäin harvoin. Lokaalit valinnat (VARS / MASK) ovat toistettavuuden ja automatisoinin kannalta parempia valintoja. Toisaalta, kaikkia edellä mainittuja uudempi tulokas FILE MASK (jota ei laivakeskustelussa taidettu mainita?) mahdollistaa metatietoihin talletettujen valintojen monipuolisen hallinnan toimituskentästä. Perusmuodossaan se on hivenen kryptinen, mutta laajemmassa muodossa, johon kuuluu MASKING-asetelma kommentteineen, se on havainnollinen ja kätevä valintatyökalu. Voisin jopa ajatella, että aloittelijoille pitäisikin opettaa sen käyttöä eikä noita aiemmin mainittuja. - Kimmo [*] Survo-käyttäjäyhdistyksen 23. kevätseminaari Helsinki-Tukholma-Helsinki 25.-27.4.2013 http://www.survo.fi/yhdistys/risteilyt.html |
Administrator
|
Rivien lisäys on mukana versiosta 0.6.0 lähtien. FILE MASK on vähemmän käytetty ja tunnettu ominaisuus, mutta tuossa laajemmassa muodossaan voisi olla hyvä vaihtoehto. MASK-VARS vaihtoehtoiluun tottumisen myötä tuntuisi kuitenkin olevan tarvetta jonkinmoiselle FILE MASK STATUS tms. komennolle, joka generoisi halutusta datasta MASKING-pohjan. Täytyy hiukan kypsytellä ideaa kuitenkin ensin. |
Administrator
|
Loistava idea! Siis esim. MASK=-YXXXXX------XR FILE MASK STATUS DECA,M1 tuottaisi alapuolelle: FILE MASK DECA,M1 MASKING M1 Points: Y 100m-400m,Weight: X RES: R OTHERS: - END Tuota voi sitten täydentää omilla kommenteillaan (vrt. FMASK?) Huomionarvoista on, että tuossa MASKINGissa on mahdollista viitata muuttujiin syntaksilla "100m-400m", joka on tuttu mm. SAS:ista ja SPSS:stä, muttei ole käytössä muualla Survossa. Kätevä, ilman muuta. |
Administrator
|
Versiossa 0.6.0 on mukana alustava versio toiminnosta
FILE MASK <data>(eli ainoana parametrina datan nimi) joka etsii alapuolelta (seuraavaan rajariviin saakka) MASKING-listaa ja jos ei löydä, niin menee activate-näkymään, josta poistuminen tuottaa sitten alapuolelle yksinkertaisen MASKING-listan (FILE STATUSmaisesti päällekirjoittaen), jota voi halutessaan editoida ja/tai siirtää nimettynä toiseen paikkaan yms. VARSiin ja MASKiin verrattuna pitää aina muistaa "ylimääräinen" aktivointi, joka pieni haittapuoli muuten varsin kätevän oloisessa toiminnossa. |
Administrator
|
Heh, ei taas ehtinyt kauaa kulua, kun Reijo oli jo kerinnyt toteuttamaan idean! Hyvä oivallus keskittää kaikkien tapojen valinta samanlaiseen aktivointi-ikkunaan. Taidan siirtyä tämän vaihtoehdon käyttöön ainakin perusopetuksessa, se on havainnollinen ja dokumentoi työn näiltä osin parhaiten. Hienoa!
|
Administrator
|
Entä jos FILE MASK <data> ottaisi suoraan huomioon mahdollisen VARS/MASK-täsmennyksen ilman käyntiä FILE ACTIVATE -ikkunassa?
BTW, nyt ihan tavallisen MASK-aktivoinnin lopetus putsaa alla olevia rivejä...! :-/ Tulostus olisi hyvä viimeistellä niin, että joka muuttujalle varataan 8 merkkiä, jolloin aktivointikirjaimet tulevat allekkain; alustava versio vähän svengaa: FILE MASK DECA MASKING 100m: A L_jump: A Shot_put: A Hi_jump: A 400m: A Hurdles: A Discus: A Pole_vlt: A Javelin: A 1500m: A OTHERS: - END |
Administrator
|
Tämä ei ole mielestäni hyvä ajatus, koska tuossa menevät sitten puurot ja vellit sekaisin. Lisäsin kuitenkin versioon 0.6.1 sellaisen ominaisuuden, että MASKING-listan puuttuessa FILE MASK <data> lukee VARS/MASKin ja antaa sen pohjaksi activate-ikkunaan. Näin korostuu se, että FILE MASK muuttaa .SVO-tiedoston maskia eikä ole samalla tavalla yleinen tapa kuin VARS/MASK, jotka siis toimivat myös muille datamuodoille kuin .SVO-tiedostot. Tämä on itse asiassa FILE MASKin "heikkous" (aktivointivaatimuksen lisäksi) VARSiin nähden, joten itse kyllä suosisin VARSia. Täytyypä ehkä harkita josko VARSiin lisäisi MASKINGista löytyvän viiva-syntaksin ja/tai mahdollisuuden lukea muuttujat MASKING-listasta.. Tämä siis tapahtui vain, jos oli aikaisemmin puljannut useamman rivin määritysten kanssa, kuten MASKING-listojen kanssa. Korjattu versioon 0.6.1. En ole vakuuttunut tämän oletuksen "yleistettävyydestä", kun esim. viivanotaation kanssa 8 merkkiä ei riitä. Muuttujien raakalistan tuottamisen yhteydessä se ehkä kuitenkin on paikallaan, joten lisäsin tuohon muotoon tulostuksen versioon 0.6.1. |
Administrator
|
Juuri tätä tarkoitin, ilmaisin varmaan epäselvästi. Hyvä huomio. Mutta esim. pikkudatojen, joita voi pitää kentässä (vaikkapa pylväskuvan piirtotilanne) nimet voikin parhaiten luetella VARSilla. FILE MASK:in nimen alkuosa kertoo selvästi, että se koskee vain FILEitä. Olisi kätevä joissain tilanteissa, ainakin jos aktivointikirjaimella ei ole väliä. Viivanotaatio olkoon käyttäjän oma asia; automaatin on parempi generoida muuttujat yksittäin. On hyödyllistä, että aktivointikirjaimet muodostavat selkeän pystyrivin, josta saa heti kiinni vaikkapa blockilla tms. |
Administrator
|
Tässähän siis olisi ollut sekin vaihtoehto, että FILE MASK <data> loisi suoraan mitään kyselemättä VARS/MASKin mukaisen MASKING-listan, jossa sitten ei ehkä ole selvää milloin FILE MASK todella muuttaa maskia ja milloin ei. Näinhän se tosiaan on, joskaan en kyllä itsekään muistanut noita eri datatyyppejä ennen kuin jouduin konkreettisesti lukemaan VARS/MASKista tavaraa. Kirjastofunktio mask():han hakee ne SURVO_DATAan eikä SURVO_DATA_FILEeen struktuuriin ja meni tovi hoksata miten noita saadaan käytettyä ristiin.. Kyllähän VARSin kanssa voi antaa aktivointikirjaimen (suluissa) ja sen varmaan saisi toimimaan viivanotaatiollakin. Ja tuo MASKING-listan luku VARSissa voisi ehkä onnistua helpohkosti. Pitäisi vaan saada hyvä notaatio sille: VARS=MASKING(LISTAN_NIMI) tuntuu vähän "oudolta", VARS=#LISTAN_NIMI voisi ehkä toimia (vrt. MASK=#7 yms.), mutta miten tukea silloin nimettömiä listoja.. Jees.. nämä periaatteet tuntuvat varsin hyviltä. Ja tällainen tasaus ei toivottavasti aiheuta samanlaista päänvaivaa kuin nimien "oikealle" tasaus taisi jossain yhteydessä tehdä. |
Free forum by Nabble | Edit this page |