Demojen laittaminen verkkoon

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

1. Miksi?

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

2. Miten?

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

Esimerkit:

1) JYUNET - users.jyu.fi

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.

2.1 files.txt

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

2.1.2 files.txt:n syntaksi

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

2.1.3 esimerkki files.txt:n virheellisestä syntaksista

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

2.2 Tiedostojen siirto

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

2.3 DemoWWW

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 .

2.4 Entä näkevätkö muut oppilaat demoni ennen palautusaikaa?

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.

2.5 Entä jos en halua tai en voi laittaa users palvelimelle?

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

2.6 NettiDemoWWW

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

3. Tarkista siirron onnistuminen

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!

3.1 Entä jos siirto epäonnistui kohdaltani

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.

Lue miten ilmoitukset tulkitaan tai kielletään postin lähettäminen sekä miten virheen jälkeen tulee toimia.

4. Miksi käyttää mieluiten yliopiston WWW-palvelimia?

4.1 Epävarmat yhteydet

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

4.2 Harjoitustyön suhde harjoitustehtäviin

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.

JYUNET - www.ad.jyu.fi

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
    .


users.jyu.fi näkyy JYU:n suorakäyttökoneista hakemistona html

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