[viesti Survo-keskustelupalstalla (2001-2013)]
Kirjoittaja: | Seppo Mustonen |
---|---|
Sähköposti: | - |
Päiväys: | 13.11.2007 17:49 |
Survossa on helppo tarkkailla tiedostojen sisältöä. Esim. datatiedostoja voi katsella mm. FILE SHOW:lla, matriisitiedostoja /MATSHOW:lla jne. Koska Survo ei kuitenkaan automaattisesti näytä tiedostoihin tulleita muutoksia, lienee tarvetta jonkinlaiselle seurantajärjestelylle, jolla näitä muutoksia voisi automaattisesti havaita niin, ettei seuranta mitenkään häiritse tekeillä olevaa työtä. Näin saattaisi heti tarkistaa, mitä olet viimeksi saanut aikaan. Etenkin opetustilanteissa (mutta miksei myös tutkimushommissa) töiden monitoroinnista on hyötyä. Olen tehnyt MONITOR-nimisen sukroperheen tähän tarkoitukseen. Idea syntyi valmistellessani vuotuista Survon esittelyä Tampereen yliopistoon syyskuussa. Halusin näyttää pienen esimerkin Survon matriisitulkin käytöstä tarkastellen erityisesti Survo-ristikon laadintaa. Tämä tapahtuu vaiheittain etupäässä peräkkäisillä MAT-komennoilla, jotka eivät suoraan ilman eri pyyntöä tuota mitään tuloksia toimituskenttään vaan ainoastaan matriisitiedostoihin. On tietenkin joka vaiheen jälkeen mahdollista näyttää tuloksia väliaikaisesti esim. /MATSHOW-komennolla, mutta se vaatii oman ponnistuksensa. Välttääkseni ylimääräiset, erilliset näyttämiset, päätin antaa toisen Survo-istunnon seurata, mitä olen tekemässä. Tässä esittelytilanteessa käynnistin toisen Survon erikseen ja siinä /MONITOR-nimisen sukron, joka panin tarkkailemaan tiettyjä data- ja matriisitiedostoja käyttäen CHECK-komentoa ja löytäessään tiedostoja näyttämään niiden sisältöjä peräkkäin omassa toimituskentässään. Koska tällainen työtapa synnytti kiinnostusta, esittelin samaa tilastollisen tietojenkäsittelyn seminaarissa Helsingissä pari viikkoa sitten ja keskustelu asiasta on nyt johtanut seuraavanlaiseen alkuperäisen MONITOR-sukron yleistykseen. Kuvaan aihetta lyhyen esimerkin avulla. Tarkasteltakoon pelkästään erään matriisin A käänteismatriisin B laskemista ja tuloksen tarkistusta laskemalla matriisi TULO=A*B. Olkoon matriisi A MATRIX A /// S1 S2 S3 R1 5 3 1 R2 2 7 0 R3 4 2 10 talletettuna matriisitiedostoksi A.MAT komennolla MAT SAVE A Aluksi tulee päättää, mitä tiedostoja haluaa tarkkailla (tätä voi muuttaa työn aikana). Tarkkailtavat tiedostot, tarkemmin niiden poimintaan tarkoitetut komennot, talletetaan tekstitiedostona MONITOR.TXT esim. seuraavasti: SAVEP CUR+1,CUR+3,MONITOR.TXT MAT LOAD A.MAT MAT LOAD B.MAT MAT LOAD TULO.MAT Sitten voikin jo aktivoida tarkkailuun tarkoitetun sukrokomennon /MONITOR-START Tämä sukro käynnistää toisen Survon (näyttösurvon) ja avaa sille oman ikkunansa. Koska oletusarvoisesti ikkuna asettuisi nykyisen päälle, ikkuna tulee siirtää sopivasti esim. nykyisen ikkunan oikealle puolelle. Tämä tapahtuu niin, että /MONITOR-START kutsuu sukron /MONITOR-DISPLAY tekemään tarvittavat asettelut eli se avaa näyttösurvolle uuden ikkunan nykyisen oikealla puolella ja kasvattaa sen rivien määrän mahdollisimman suureksi. Kaavamaisesti esitettynä alkutilanne näyttää seuraavalta: Pääsurvo Näyttösurvo ----------------------------------|------------------------------------- | /MONITOR-START_ | MAT LOAD A.MAT | MATRIX A.MAT | A | /// S1 S2 S3 | R1 5 3 1 | R2 2 7 0 | R3 4 2 10 | .................................... | | ----------------------------------|------------------------------------- Kun matriisi A käännetään pääsurvossa komennolla MAT B=INV(A) näkymä muuttuu seuraavan kaltaiseksi: Pääsurvo Näyttösurvo ----------------------------------|------------------------------------- | /MONITOR-START | MAT LOAD A.MAT MAT B=INV(A)_ / *B~INV(A) 3*3 | MATRIX A.MAT | A | /// S1 S2 S3 | R1 5 3 1 | R2 2 7 0 | R3 4 2 10 | .................................... | MAT LOAD B.MAT | MATRIX B ----------------------------------| INV(A) | /// R1 R2 R3 | S1 0.26316 -0.10526 -0.02632 | S2 -0.07519 0.17293 0.00752 | S3 -0.09023 0.00752 0.10902 | .................................... ja kun lasketaan tarkistuksena tulo A*B komennolla MAT TULO=A*B asetelmaksi tulee Pääsurvo Näyttösurvo ----------------------------------|------------------------------------- | /MONITOR-START | MAT LOAD A.MAT MAT B=INV(A) / *B~INV(A) 3*3 | MATRIX A.MAT MAT TULO=A*B_ / *TULO~A*INV(A) | A | /// S1 S2 S3 | R1 5 3 1 | R2 2 7 0 | R3 4 2 10 | .................................... | MAT LOAD B.MAT | MATRIX B ----------------------------------| INV(A) | /// R1 R2 R3 | S1 0.26316 -0.10526 -0.02632 | S2 -0.07519 0.17293 0.00752 | S3 -0.09023 0.00752 0.10902 | .................................... | MAT LOAD TULO.MAT | MATRIX TULO.MAT | A*INV(A) | /// R1 R2 R3 | R1 1.000000 0.000000 0.000000 | R2 0.000000 1.000000 0.000000 | R3 0.000000 0.000000 1.000000 |..................................... Monitorointi lopetetaan pääsurvossa yksinkertaisesti komennolla /MONITOR-EXIT joka itse asiassa tarkoittaa sitä, että pääsurvossa tehdään talletus SAVEP CUR+1,CUR+1,MONITOR.TXT EXIT Tällöin näyttösurvo sulkeutuu ja sen ikkuna katoaa. * * * Tähän aiheeseen palaan vielä piakkoin saatuani lisää palautetta. On muutenkin syytä kertoa enemmän pelisäännöistä sitten, kun ne ovat tarkentuneet. Laajempana näytteenä olen tallentanut Survo-ristikon laadintaa koskevan jutun Flah-demona http://www.survo.fi/flash/f_monitor.html /MONITOR-sukroperhe on saatavilla kokeiltavaksi osoittesta http://www.survo.fi/tmp/MONITOR.TUT Kun MONITOR.TUT on talletettu Survossa sukrohakemistoon, komento /MONITOR-EXAMPLE1 näyttää tuon ristikkodemon. -Seppo
Vastaukset: |
---|
Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!