1. Miksi?
2. Miten?
2.1 files.txt
2.1.2 files.txt:n syntaksi
2.1.3 esimerkki files.txt:n
virheellisestä syntaksista
2.2 Tiedostojen siirto
2.3 DemoWWW
2.4 Entä näkevätkö muut oppilaat demoni ennen palautusaikaa?
2.5 Entä jos en halua tai en voi laittaa users palvelimelle?
2.6 NettiDemoWWW
3. Tarkista siirron onnistuminen
3.1 Entä jos siirto on epäonnistunut kohdaltani
4 Miksi käyttää yliopiston www-palvelinta
4.1 Epävarmat yhteydet
4.2 Harjoitustyön suhde harjoitustehtäviin
Demot laitetaan verkkoon, jotta kaikkien oppilaiden tehtävien tarkastamiseen olisi samat mahdollisuudet.
Jotta siirtäminen voi alkuunkaan toimia, pitää W:-levyn olla käytössä. Katso ohjeet: http://www.ad.jyu.fi/index.html#mitaovatasemat. Helpoin tapa verkkoon laittamiseksi voi olla NettiDemoWWW.
Lisäksi oppilaille tulee näin enemmän "mallivastauksia" mahdollisista tavoista ratkaista tehtävät.
Tehtävät tulee olla siirretty verkkoon maanantaina klo 13.00 mennessä. Tämän jälkeen ajetaan ohjelma, joka hakee jokaisen oppilaan ratkaisut ja laittaa ne verkkoon kurssin sivujen alle. Samalla lasketaan tehtävistä tulevat pisteet
Ohjaajat tarkistavat satunnaisesti valituilta oppilailta satunnaisesti valitut tehtävät. Tietyillä demokerroilla tarkistetaan kaikki tehtävät.
Mahdollinen "huijaaminen" on verrattavissa lunttaamiseen.
Jokainen siirtää omat tehtävänsä. Jos joku tehtävä on tehty yhteistyössä jonkun toisen kanssa, on tästä oltava selvä huomautus ratkaisutiedostossa, käytönnössä tehtävän kommenteissa
Jotta tehtävät olisivat koneellisesti siirrettävissä, pitää sopia tietty "syntaksi" mistä ja miten harjoitusten, eli demojen, vastaukset noudetaan.
Jokainen laittaa tehtävastaukset WWW-palvelimelle. Käyttäkää mieluiten palvelinta users.jyu.fi. Sivuja pääsee kätevästi käyttämään JYUNETin W:-levyaseman kautta. Valitulle sivulle tehdään vuorossa olevan demon alihakemisto. Esim. 'demo1' (Windowssi saattaa näyttää tämän 'Demo1' -älä huolestu), demo2, demo3 jne.
Korpissa on Ohjelmointi 2-kurssin kohdalla DemoWWW-kenttä, jonne ko. www-palvelimen sivun osoite syötetään. Täyttäkää tämä kenttä mieluiten niin, että menette toisella selaimella siihen paikkaan josta teidän demonne tulevat löytymään. Eli paikkaan, jonka alle jatkossa tulee hakemistot demo1, demo2 jne.... Sitten Copy-Paste -tekniikkalla siirrätte URL:in Korppiin. Muuten tulee liikaa kirjoitusvirheitä.
Olavi Oiva haluaa näpytellä Windowssissaan hiirtä ja käyttääkin sen vuoksi users www-palvelinta. Hänen JYUNETin-tunnuksensa on 'oiolavi'. Hänellä on oma karvainen lemmikki kotona ja näin ollen salasanaksi olikin helppo valita 'kisuli123'.
Määritetään Korpin DemoWWW-kenttä seuraavasti:
http://users.jyu.fi/~oiolavi/ohj2/kisuli123
Toimii myös ilman http:// -osaa.
Olavin pitää nyt w:-levylle tehdä ohj2-hakemisto sekä salasana-hakemisto, eli 'w:\ohj2\kisuli123'. Kun on demo1 kyseessä, tekee Olavi alihakemiston 'w:\ohj2\kisuli123\demo1', jonne hän tallentaa demovastaukset ja files.txt:n, josta lisää seuraavaksi.
Tehtävät saa tehdä minkä nimiseen tiedostoon haluaa. Jotta tehtävien pisteet olisi helppo laskea ja tehtävät saataisiin siirrettyä verkkoon automaattisesti, tekee jokainen tehtävätiedostojen kanssa samaan hakemistoon seuraavan syntaksin mukaisen tiedoston, jonka nimi on AINA files.txt:
=-------------------- = Demo 1 =-------------------- kerho.txt = [T1-4:4] - kerho-ohjelman suunnitelma ope.txt = [T5-6:2] - arvosanatehtävä nimi.txt = [T7:1] - etu- ja sukunimen vaihtaminen kavely.txt = [T8:0.5] - kävelyohjeet, vain jälkimmäinen kohta nelio.java = [TB1:1] - lukujen neliöt kissat.java = [TG1,3:2] - kissojen määrän laskeminen, hyvin toimii! kissat2.java = [TG2:0.5] - keskimäinen tehtävä ei mennyt yhtä hyvin
Otsikko-tyypit merkitään:
'tyhjä' = 'muu informaatio' , esim.
=-------------------- = Demo 1 =--------------------
Tehtävät merkitään seuraavalla tavalla:
'tiedoston nimi' = 'mahdolliset tehtäväpisteet' - 'kommentit' , esim.
nimi.txt = [T7:1] - etu- ja sukunimen vaihtaminen kavely.txt = [T8:0.5] - kävelyohjeet, vain jälkimmäinen kohta nelio.java = [TB1:1] - lukujen neliöt
Selitykset:
kavely.txt - vastaustiedoston nimi, voi olla myös alihakemistossa esim: ht/kavely.txt [T - aloittaa tehtävän numeron ja pistemääräkentän 8 - tehtävän numero, voi olla esim. 1-4 2,3 G2-3 : - erottaa tehtävän numeron pistemäärästä 0.5 - tehtävästä itselle annettu pistemäärä. Huom! Desimaalipiste!!! ] - lopettaa tehtävän numeron ja pistemäärän - kävely... - kommentti tehtävälle, esim. mikä vikana
Tiedostoon voi laittaa enemmänkin kommentteja, mm. jos tehtävät on tehty yhteistyössä useamman henkilön kesken, voi tiedosto alkaa vaikkapa:
=-------------------- = Demo 1 = Vesa Lappalainen & Markku Vire =-------------------- kerho.txt = [T1-4:4] - kerho-ohjelman suunnitelma
Tiedostoon voidaan lisätä myös tarpeellisia aputiedostojen nimiä ilman että niille on pakko antaa tehtävämääritettä [T...].:
=-------------------- = Demo 1 =-------------------- kerho.hlp = - ohjelman avustustiedosto
files.txt voidaan tehdä millä tahansa editorilla. Voidaan käyttää myös ohjelmaa DemoWWW, joka pitää huolen oikeasta syntaksista.
Tiedosto syntyy ja siirto käy kätevästi myös NettiDemoWWW:llä.
Edellinen tarina syntaksin avulla.
1) Jokainen files.txt:n rivi tarkoittaa tiedostoa, jollei se ala = tai $ merkillä 2) = merkin jälkeinen osa rivistä on muuta informaatiota 3) Tyhjät rivit ovat kommenttirivejä 4) Rivi =--- muuttuu HTML-versiossa <hr> -komennoksi 5) Ylimääräiset välilyönnit poistetaan 6) Yhden rivin syntaksi: [Tiedoston_nimi] ["=" [ "[T" Tehtävännumero ":" tehtävästä_ansaittu_pistemäärä "] -" ] kommentti ] missä Tiedoston_nimi - vastaustiedoston nimi, voi olla myös alihakemistossa esim: ht/kavely.txt Tehtävännumero - tehtävän numero, voi olla esim. 1-4 2,3 G2-3 tehtävästä_ansaittu_pistemäärä - tehtävästä itselle annettu pistemäärä. Esim. 0.8 Huom! Desimaalipiste!!! kommentti - vapaamuotoinen kommentti esim. tehtävän tasosta
Syntaksista pitää olla tarkka, kuten seuraava esim. Matti Mallikkaalta paljastaa. Matti oli tehnyt usean tunnin gurutehtävää, mutta merkannut files.txt:n hieman väärin.
=-------------------- = Demo 4 =-------------------- guru.txt = [GT1-4:4] - guru-tehtävän upea ratkaisu
...kun hänen olisi pitänyt merkata demopiste-syntaksi oikein, sillä vain [T*:n] muoto tuottaa pisteitä. Muut muodot eivät ole virheitä tai näin siis hakurobotti luulee. Oikea ratkaisu olisi näyttänyt tältä:
=-------------------- = Demo 4 =-------------------- guru.txt = [TG1-4:4] - guru-tehtävän upea ratkaisu
Matti Mallikas toimi ohjeen mukaan. Virheen takia häneltä vaadittiin poistettavaksi yksi piste, koska kurssinpitäjä oli joutunut urakoimaan vastauksen uudelleen hakemiseksi. Nyt files.txt näytti tältä:
=-------------------- = Demo 4 =-------------------- guru.txt = [TG1-4:4] - guru-tehtävän upea ratkaisu = [TV1:-1] - Ei siirtynyt koska mokasin demopiste-syntaksin kanssa
Oletetaan seuraavassa että käyttäjällä on JYUNETissä tunnus vesal. Tällöin hänen kotisivunsa http://users.jyu.fi/~vesal ovat käytettävissä suoraan W:-levyasemakirjaimen kautta.
Käyttäjä on määritellyt DemoWWW:n seuraavasti: http://users.jyu.fi/~vesal/ohj2/abc123, jossa 'abc123' on "salasana".
Ensimmäiset demot (demo1) hän siirtää hakemistoon w:\ohj2\abc123\demo1
Mainittuun hakemistoon hänen tulee siirtää kaikki vastaustiedostot ja files.txt.
Nyt demot näkyvät osoitteessa http://users.jyu.fi/~vesal/ohj2/abc123/demo1, josta siirtoautomaatti käy ne noutamassa maanantaina klo 13:00.
Siirto voidaan tehdä millä tavalla tahansa ja mistä tahansa.
Esimerkkejä:
1) Tiedostot on kotona kopioitu korpulle hakemistoon a:\demo1 annetaan komentorivillä komennot mkdir v:\ohj2 - jos ei vielä koskaan tehty mkdir v:\ohj2\abc123 - "salasana" mkdir v:\ohj2\abc123\demo1 copy a:\demo1\*.* v:\ohj2\abc123\demo1 2) Joka rakastaa hiirtä, voi käyttää esim. Exploreria tiedostojen siirtoon (= varmasti hitaampaa!) 3) Jos tiedostot on u-levyllä paikassa u:\ohj2\abc123\demo1 ja hakemistossa ei ole muuta kuin tarvittavat vastaustiedostot ja files.txt, niin komentorivillä kopioi u:\ohj2\abc123\demo1\*.* w:: /s hoitaa homman. (Samoin tietysti jos tiedostot ovat USB-tikulla paikassa d:\ohj2\abc123\demo1, niin kopioi d:\ohj2\abc123\demo1\*.* w:: /s luo hakemistot ja kopioi tiedostot) 4) Käytetään ohjelmaa DemoWWW.exe, joka samalla pitää huolen, ettei turhia tiedostoja kopioida. 5) Käytetään NettiDemoWWW:tä.
Tiedosto files.txt ja myös tiedostojen siirto voidaan tehdä ohjelmalla DemoWWW.exe. Käyttöohjeet voi lukea tiedostosta DemoWWW.html. DemoWWW:n voi käynnistää esim. komentoriviltä antamalla komennon: DemoWWW .
Ratkaisu on keksiä itselleen "salasana". Edellisessä esimerkissä "salasana" oli "abc123". Tämä "salasana" kirjoitetaan osaksi valittua www-sivua. Korppiin pitää siis oppilaan lisätietojen kohdalta löytyvään DemoWWW kenttään kirjoittaa valittu osoite (vesal -tunnuksella ja JYUNETin palvelimella Korpin DemoWWW-kenttä olisi esimerkiksi http://www.ad.jyu.fi/users/v/vesal/ohj2/abc123). Kirjoittamisessa on oltava huolellinen!
Jos lisäksi on olemassa tiedosto w:\ohj2\index.html (näkyy www-palvelimella http://users.jyu.fi/~vesal/ohj2/index.html), niin toiset oppilaat eivät pääse katsomaan vastauksia elleivät he arvaa tuota "salasanaa". Salasanassa saa käyttää vain tiedoston nimeen kelpaavia merkkejä. Korpissa olevan tiedon perusteella automaatti osaa kuitenkin hakea vastaukset oikeasta paikasta.
Harjoitustehtävien, eli demojen, "salauksella" piilottettavat sivut eivät myöskään näy intternettiä tutkiville hakuroboteille (www.google.com, www.altavista.com, sekä lukuisat muut).
Jos siirtoon käytetään DemoWWW-ohjelmaa, pitää "salasana" laittaa Korpin lisäksi kohtaan Edit/Options/Passwd.
Lisäksi hakemistoon ohj2 kannattaa tehdä tiedosto index.html, jotteivat muut näe hakemiston sisältöä. Ohjeiden mukainen harjoitustyön verkkoon laittaminen tekee tämän tiedoston.
users-palvelimelle ei pääse esim. FTP-yhteydellä. W:-levyn voi ottaa käyttöön myös kotoa jos on tunnus JYUNETiin ja kotona on Internet-yhteys. Jos kuitenkin halutaan laittaa tiedostot esim munmikro.dynalias.com -palvelimelle, niin silloin menetellään seuraavasti, eli laitetaan TARKKA URL-osoite Korppiin, esim:
DemoWWW kenttään: http://www.munmikro.dynalias.com/~vesal/ohj2/abc123
HUOM!DemoWWW-ohjelma kutsuu siirron yhteydessä DemoWWW.bat-komentojonoa joka taas kutsuu lue.pl -nimistä Perl-skriptiä. Muokkaamalla komentojonoa kotikoneessaan, pystyy käyttäjä tekemään siirtoja mihin tahansa osoitteeseen. Esim. lue.pl, joka ymmärtää files.txt:n syntaksin, pystyy siirtämään FTP:llä tiedostoja valittuun koneeseen.
Jos tiedostoja siirretään itse FTP:llä tai muulla vastaavalla, pitää muistaa tarkistaa, että tiedostoilla on riittävät oikeudet (esim. ohj2-hakemistolle ja salasana-hakemistolle 711 ja tiedostoille 755).
Demojen siirron JYUNETiin voi tehdä myös NettiDemoWWW:llä. Sisään logattaessa kysyttävään tunnukseen/salasanaan tulee JYUNETin käyttäjätunnuksesi ja salasanasi. Kohtaan Hakemisto: tulee
ohj2/"salasanasi"/demoN Esimerkiksi: ohj2/abc123/demo1
Huomaa että NettiDemoWWW:ssä taulukkoon EI laiteta T-kirjainta, vaan siinä kysytään eri sarakkeessa tehtävän numero, pistemäärä ja kommentti. NettiDemoWWW yhdistää nämä kolme saraketta sitten files.txt:n vaatimaan syntaksiin, mm. lisää sen T-kirjaimen tehtävän numeron eteen.
Muista laittaa myös Korppiin oikea osoite
Jos siirto tehdään DemoWWW-ohjelmalla tai muuten lue.pl-skriptin avulla, niin siirron yhteydessä muodostuu tiedostot index.html ja files.html. Myös nämä siirtyvät käyttäjän kotisivuille.
Muista käydä kokeilemassa selaimella, että kaikki tiedostot ovat oikein siirtyneet!
Erityisesti ole huolellinen tiedostojen kirjoitusasun kanssa.
Agoran mikroluokissa siirron onnistumisen voi testata komennolla:
testaademo.bat vesal demo1 ohj2 users.jyu.fi/~vesal/ohj2/abc123 - users.jyu.fi-koneesta testaademo.bat vesal demo1 ohj2 www.munmikro.dynalias.com/~vesal/ohj2/abc123 - omasta palvelimesta
Testatessa tuo URL kannattaa ottaa suoraan leikepöydän kautta Korpin DemoWWW-kentästä, koska usein on kyse nimenomaan kirjoitusvirheistä.
Isoilla ja pienillä kirjaimilla on eroa!
Jos hakuautomaatti ei löydä jotakin tiedostoa, tästä tulee henkilökohtainen ilmoitus sähköpostilla. Vian voi vielä korjata, mutta se maksaa maanantaina klo 13 jälkeen tehtynä yhden demotehtävän.
Mikäli kolmannen osapuolen www-palvelu on alhaalla demojen siirron aikana, on turha valittaa, menetät demopisteitäsi. Jos taas yliopiston palvelin on alhaalla, demojen myöhästyminen hyväksytään, eikä demopisteitä menetä.
Koska harjoitustyön pitää olla yliopiston palvelimella, jotta tarkastaja saa sen nopeasti näkyviin, saa samalla vaivalla demotkin siirrettyä sinne. Lisäksi harjoitustyötä tehdään intensiivisesti demojen kanssa, ei ole mitään syytä erottaa jyrkästi näitä kahta toisistaan vaikka se olisi mahdollista. Harjoitustyön tarkastaja käyttää 'avaa.bat':a, joka käyttää ohj2-hakemistoa. Muista siis tehdä hakemisto ohj2!
Käytä siis seuraavan esimerkin kaltaisia hakemistorakenteita, jossa 'oiolavi' on käyttäjän tunnus ja "salasana" esimerkissä kisuli123.
Korpissa DemoWWW-kenttä: http://users.jyu.fi/~oiolavi/ohj2/kisuli123
w:\ohj2 |-kisuli123 // salasana-hakemisto | |-demo1 // täällä on harjoitusvastauksesi | | |-files.txt | | |-tehtava1.java | | '-tehtava2.txt | |-demo2 | | |-files.txt | | |-demopaketti // package-rivillä lukeva nimi | | | |- Tehtava1.java | | | |- Tehtava23.java | | | '- Tehtava56.java | | '-tehtava4.txt | | '-tehtava4.txt | '-demo3 | '-... |-index.html |-files.txt . // täällä on harjoitustyösi .
Korpissa DemoWWW-kenttä: http://users.jyu.fi/~oiolavi/kisuli123
~/html '-ohj2 |-kisuli123 // salasana-hakemisto | |-demo1 // täällä on harjoitusvastauksesi | | |-files.txt | | |-tehtava1.java | | '-tehtava2.txt | |-demo2 | | |-files.txt | | |-demopaketti // package-rivillä lukeva nimi | | | |- Tehtava1.java | | | |- Tehtava23.java | | | '- Tehtava56.java | | '-tehtava4.txt | '-demo3 | '-... |-index.html |-files.txt . // täällä on harjoitustyösi .
Alkuperäinen Vesa Lappalainen 21.2.2002, Päivittänyt Matti Katila 25.2.2002, vl korjannut GKO:ta varten 20.8.2002 ja Ohj2:sta varten 27.12.2002. JYUNET muutokset korjannut vl 13.1.2005. users-konetta varten korjannut vl 29.12.2006