Demojen palauttaminen / Ohjelmointi 1, syksy 2007

Demot tehdään aluksi käyttäen pelkästään tekstieditoria ja komentorivityökaluja. Noin puolestavälistä kurssia alkaen voi siirtyä käyttämään Eclipse IDEä. Se on (siinä vaiheessa) erittäin suositeltavaa, ja toivottavasti se helpottaa elämää eikä vaikeuta. Demot palautetaan kuitenkin koko syksyn ajan sähköisesti tässä kuvattavalla tavalla.

Jotta tämä ohje on mahdollista ymmärtää, täytyy ensin olla hallussa Korppi-järjestelmän käyttö sekä selviytymisoppaiden kuvailema tietokoneen ja tietoliikenneyhteyksien peruskäyttö:

Tämä demonpalautusohje olettaa tunnetuksi edelliset. Puhun komentojen antamisesta ja argumenteista kuten ne olisivat tuttu juttu.

Ennakkovalmistelut

Ennakkovalmistelut tarvitsee tehdä vain kerran. Pyritään siihen, että viimeistään ensimmäisissä demotilaisuuksissa saadaan kaikille haltuun se, miten palautuskäytäntö toimii ennakkovalmisteluineen. Yritä joka tapauksessa jo etukäteen, niin se helpottaa kaikkien elämää...

Linux-käyttäjät voivat palauttaa demot kotikoneeltaan. Luultavasti he osaavat soveltaa ohjetta (kysykää, jos ette...). Muut palauttavat demot käyttäen THK:n tietokonetta jalava.cc.jyu.fi.

Käyttöönotto tapahtuu seuraavasti:

  1. otat pääteyhteyden Jalavaan
  2. noudat ja suoritat "Ohjelmointi 1:n asennusohjelman"
  3. kopioit asennusohjelman antaman "Sormenjälkikoodin" Korppi-järjestelmään.
  4. suljet pääteyhteyden! Vasta seuraavalla yhteyskerralla demonpalautus on käyttövalmis!

Eli ensiksi ota pääteyhteys Jalavaan (ohjeet annettu erikseen). Jalavassa anna tarkasti merkistä merkkiin täsmälleen seuraava komento:

cd && curl -Lso ohj1.sh http://iki.fi/zouppen/ohj1.sh && sh ohj1.sh

(Selitys asiasta kiinnostuneille: cd varmistaa, että työhakemistoksi tulee oma kotihakemistosi. Sitten curl -komento käy hakemassa Joelin tekemän asennusohjelman. Viimeinen sh -komento suorittaa asennusohjelman, joka valmistelee demonpalautuksen osaltasi. Ohjelma mm. tekee uuden hakemiston, jonka nimi on .ohjelmointi1 ja joka näkyy tästedes Windowsin U:-levylläsi. Se tarvitaan, että kaikki toimii. Älä kajoa sen sisältöön! Jos asennus onnistuu, asennusohjelma lopuksi poistaa itsensä. Komentorivissä && varmistaa aina, että edellinen vaihe onnistui ennen siirtymistä seuraavaan.)

Jos kaikki toimii oikein, pitäisi tulostua jotakin seuraavanlaista:

Ohjelmointi 1 -kurssiohjelmiston asennus

Asennetaan demomaatti komentotulkkiin... ok
Muodostetaan digitaalinen varmenne... ok
Ilmoitetaan julkinen avain palvelimelle... ok

Kopioi alla näkyvä sormenjälki (kirjaimia ja numeroita) Korppiin!
Sen jälkeen kirjaudu ulos kirjoittamalla exit ja kirjaudu uudelleen.

Sormenjälki: [TÄSSÄ ON KIRJAIMIA, NUMEROITA JA KAKSOISPISTEITÄ!]

Jos ei toiminut näin, ota yhteyttä niin mietitään, missä kohtaa ongelma on! Jos taas toimi, kopioi Sormenjälki-kirjainsarja Korppiin sille varattuun lomakekenttään. Seuraavassa on kuva tästä:

korppi_sormenjalki.png

Demojen palautus

Valmisteluissa sinulle asentui Joelin tekemä ohjelma nimeltä ohj1 ja ympäristösi muokattiin siten, että tuo ohjelma löytyy aina, kun otat pääteyhteyden. MUTTA SE ALKAA TOIMIA VASTA UUDEN YHTEYDEN OTTAMISEN JÄLKEEN! Siis asennuksen jälkeen ensin pois komennolla exit ja sitten takaisin yhteyteen. Muuten ei toimi. Komennon käyttö tapahtuu aina seuraavasti:

ohj1 DEMOKERTA TEHTAVA TIEDOSTOT...

Tässä argumentit tulee olla seuraavat:

DEMOKERTA demokerran standardi nimi eli demo1, demo2, ... demo10. Huomaa pienet kirjaimet ja ei välilyöntiä ennen numeroa.
TEHTAVA on yhden tehtävän numero eli 1, 2, ...
TIEDOSTOT... on välilyönnein eroteltu lista tiedostoista, jotka sisältävät vastauksesi. Niiden tulee olla työhakemistossa silloin, kun ajat ohjelman ohj1.

Jokaiseen vastaukseen tulee liittyä vähintään yksi tiedosto.

Esimerkkejä: Palauttaaksesi demon 1 ensimmäisen tehtävän, kun tiedostossa vastaukset.txt lukee esim. "Osasin tehdä hakemistot kotikoneelleni; tulkaa vaikka katsomaan!", komenna:

ohj1 demo1 1 vastaukset.txt

Palauttaaksesi demon 1 kuudennen tehtävän, komenna:

ohj1 demo1 6 lissee_vastauksia.txt

Palauttaaksesi demon 8 kolmannen tehtävän, komenna:

ohj1 demo8 3 TehtaneenJoOhjelmia.java JoissaMontaTdstoa.java

Tulosteen aina yhden tehtävän kohdalla pitäisi näyttää seuraavanlaiselta, jos homma toimii:

[jopesale@jalava ~]$ ohj1 demo1 1 vastaukset.txt
Lähetetty.
[jopesale@jalava ~]$

Lue tarkkaan, mitä palautusohjelma tulostaa! Se kertoo, jos palautus epäonnistui syystä tai toisesta. Jos tulee ongelmia, etkä osaa itse selvittää, niin kopioi sähköpostiin virheilmoitus ja myös kaikki ennen sitä tulostunut teksti, aina siitä rivistä asti, jolla annoit komennon. Se auttaa virheenselvityksessä.

Voinet kysyä julkisesti kurssin listalla. Saadaan nopeimmin vastaus, ja samalla se tulee kaikille, joille samankaltaista voi tulla eteen.

Todennäköisiä vaikeuksia

Olet jo palauttanut vastauksen esim. seuraavasti:

ohj1 demo1 2 esittelyteksti.txt

...mutta huomaat, että vastaus oli väärä, tai keksit siihen jotain parannuksia. Jos demon takaraja ei ole mennyt, voit yksinkertaisesti palauttaa samalla nimellä uudelleen:

ohj1 demo1 2 esittelyteksti.txt

Palautat vahingossa tehtävän 1 vastaukseen tehtävään 3:

ohj1 demo1 3 vast1.txt

... Joelilla oli tähän joku selkeä konsti, mutta mä en just nyt muista mikä se oli [FIXME: Kysytään Joelilta, ja kirjoitetaan tähän kohtaan.]

Et muista, mitä tehtäviä olet jo palauttanut, ja mitä et:

Toistaiseksi helpoiten hoituu, kun palautat kaikki varmuuden vuoksi uudelleen. Se ei haittaa mitään.

Parempi konsti saadaan, jos Joel ehtii tekemään palautusohjelmaan kyseisen päivityksen :-). Tämä luonnollisesti edellyttää asennusvaiheen toistamista. Toistaiseksi kierrä ongelma palauttamalla tarvittaessa koko setti uudelleen.

Mitä tehdä, kun tulee yllättävä ongelma?

Lähetä ongelmasi kuvaus suoraan kurssin sähköpostilistalle ohj1_syksy2007@korppi.jyu.fi -- ongelmat ovat todennäköisesti kaikille samoja, joten yksi vastaus listalle korjaa tilanteen monelta muultakin kuin itseltäsi!

Mikäli ongelma ei ollut sinusta riippuva vaan tekninen, sovimme ilman muuta uuden palautustavan, jolla saat sinulle kuuluvat merkinnät vielä takarajan jälkeen! Ota yhteyttä ja kuvaile ongelma mahdollisimman tarkasti.