Demotehtävien tekeminen ja suora palauttaminen IDEstä

1. Kokeilu: Palauttaminen suoraan IDE:stä

TIDE = TIM IDE

Kevään 2024 sovellusprojektissa on kehitetty palvelua, jossa tehtäviä voisi palauttaa suoraan IDE:tä. Mielelläni toivoisin että kokeilisitte tätä. Jatkossa esim Ohj1 ja Ohj2 tehtäviäkin tultanee palauttamaan osin tällä tavalla. Siksi testausapua ja palaute ryhmälle olisi tervetullutta.

Intel-pohjaisilla Macillä hieman hidas.

Jos asennuksessa/käytössä ongelmia, pistä postia: .

TIDE:n tarkoituksena ei ole korvata TIMiä, vaan kannustaa käyttämään enemmän Rideriä. Tehtävä pitää lukea joka tapauksessa TIMistä ja sitten katsoa tulokset lopulta TIMistä.

2. Asennus

  1. Hae tide-sovellus omalle käyttöjärjestelmällesi ja pura paketissa oleva ohjelma johonkin paikkaan, joka sinulla on polussa. TIDEn tarkemmat ohjeet

    • polut näet kirjoittamalla komentoriviltä (Widowsissa Git Bash):

      echo $PATH
  2. Kirjaudu Tidellä TIMiin antamalla komentorivillä (Windowsissa Git Bash):

    tide login

    Tämän voit joutua toistamaan 10 päivän välein tai jos kirjaudut itse ulos.

    Jos myöhemmin tulee virheilmoitus:

     Error: Could not complete API call /ide/ideCourses
     invalid_token
     The access token provided is expired, revoked, malformed, or invalid for other reasons.

    niin silloin tide login pitää tehdä uudelleen.

  3. Avaa käytämästä IDE ja konfiguroi se käyttämään TIDEä valitun IDEn ohjeiden mukaisesti, alla ohje Riderille:

    • Avaa Settings (Ctrl+Alt+S) tai File/Settings.
    • Siirry kohtaan Tools/External Tools.
    • Lisää uusi työkalu painamalla +:
      • Name: TIDE Submit
      • Program: tide
      • Arguments: submit . # huomaa piste!
      • Working directory: $FileDir$ # tämä käyttää nykyisen tiedoston hakemistoa
      • Save
  4. Tehdään pikanäppäin tehtävän palautukselle:

    • File/Settings/Keymap
    • Kirjoita oikealla olevaan hakuun tide
    • tuplaklikkaa TIDE submit
    • Add Keyboard Shorcut
    • Paina Ctrl-W (tai mille näppäimelle haluatkaan)
    • Save
# maclisa

2.1 MacOS lisä jos komento rider ei toimi

3. Käyttö

  1. Siirry komentorivillä hakemistoon, jossa haluat tehdä demoja (esim kurssit/ohj1/demot). Myös demo 5 jne. voit aikanaan siirtyä samaan hakemistoon.

  2. Hae tehtävät (vastaavasti aikanaan 5 jne) (huomaa että alempana on ohje skriptistä, joka hoitaa useamman vaiheen kerralla):

    tide task create kurssit/tie/ohj1/v/2024/syksy/demot/demo4 -a

    Nyt on syntynyt demo4-hakemisto, jossa kukin tehtävä on omana projektinaan.

  3. Tee solution kaikille tehtäville antamalla seuraavat komennot:

    cd demo4
    dotnet new sln -n $(basename "$PWD")
    find . -name "*.csproj" -exec dotnet sln add {} \;
  4. Avaa valitsemasi IDE, esim Rider

    rider demo4.sln
  5. Pistä kaikki projektit piiloon, koska niissä on vielä virheitä:

    • klikkaa solutionin nimeä
    • paina hiiren oikeata
    • valitse Unload projects
  6. Tee tehtäviä ja palauta niitä yksi kerrallaan:

    • avaa ensin haluamasi projekti hiiren oikealla ja Load project
    • koodaaile tehtävää normaalisti
    • jätä --- Write your code below this line. --- ja vastaava lopetusrivi ehjäksi. Jos nuo löytyvät koodista, niin oma koodi niiden väliin.
    • jos ajat ComTest ajot ja syntyy testiprojekteja tehtävistä, joita et ole vielä tehnyt, niin unloadaa ne projektit ja avaa sitten kun olet ko tehtäviä tekemässä. Joskus tuntuu että ko Test-projekti pitää tuhota kokonaan että saa toimimaan (hiiren oikealla Edit/Delete ja ruksii että myös hakemisto pois)
    • muista kuitenkin lukea tehtävien vinkit yms huolella TIMistä tehtävän kohdalta.
  7. Palauta tehtävä:

    • paina Ctrl-W (tai minkä pikanäppäinen valitsitkaan,
      tai hiirellä Tools/External tools/Tide submit
  8. Jos et saa IDE-palautusta toimimaan, voit palauttaa myös suoraan komentoriviltä, siirry ensin tehtävän hakemistoon ja anna komento

    tide submit .      # huomaa piste!
  9. Vaikka IDE-palautus toimisi, ohjelmasta syntyvä dokumentointi pitää käydä katsomassa TIMissä, jotta saa täydet pisteet.

  10. Kun menet TIMiin katsomaan vastauksia tai ajamaan testejä, kannattaa virkistää tehtäväsivu (F5), jotta TIDEssä palautetut vastaukset tulevat näkyviin. Yksittäisen tehtävän kohdalle on myös virkistyspainike, jolla sen tehtävän voi virkistää, jos TIDEn kautta palauttaa lisää tehtäviä.

  11. Kun haet TIDE-tehtäviä niihin tulee pohjaksi mahdollinen TIMissä aloittamasi vastaus. Jos teet tehtäviä välillä TIMissä ja haet tehtävät uudelleen, ei niillä oletuksena enää korvata Riderissä olevia tehtäviäsi. Jos haluat pakottaa korvaamana jonkin tehtävä Riderissä, voi tehdä sen komennolla tyyliin

    tide task create kurssit/tie/ohj1/v/2024/syksy/demot/demo4 t4a -f

    Edellä t4a on tehtävän tunnus (sama kuin Riderin hakemisto ko tehtävälle) ja -f (force) pakottaa ylikirjoittamaan mahdollisen aikaisemman tehtävän.

  12. Vastaa TIDE-kokeilun kyselyyn toimivuudesta

Kohta 3 Windows Powershellissä:

  • cd demo4
  • dotnet new sln -n (Split-Path -Leaf $PWD)
  • Get-ChildItem -Recurse -Filter *.csproj | ForEach-Object { dotnet sln add $_.FullName }
01 Oct 24

Kohta 4: Windows PowerShellissä ei kannata avata Rideria noin. Mieluummin ihan GUI:sta.

VL: Miksei kannata? Mutta tällä kurssilla ei puhuta PowerShellistä.

01 Oct 24 (edited 02 Oct 24)
# haedemo

4. Valmis komento hoitamaan edeltä vaiheet 2-4

  1. Kirjoita seuraava koodi demot hakemistoosi nimelle haedemo

    #!/bin/bash
    output=$(tide task create kurssit/tie/ohj1/v/2024/syksy/demot/demo$1 -a $2)
    if echo "$output" | grep -q "login"; then
     echo "Please login by tide login"
     exit 1 
    fi 
    echo "$output" 
    
    cd demo$1
    dotnet new sln -n $(basename "$PWD")
    find . -name "*.csproj" -exec dotnet sln add {} \;
    rider demo$1.sln >/dev/null 2>&1 &

    Huomaa että Windowsissa viimeinen komento pitää olla

    rider.cmd demo$1.sln
  2. Anna demot-hakemistossa komentorivillä komento, jolla annetaan suoritusoikeus tiedostolle

    chmod +x haedemo
  3. Kun haluat hakea jonkun demokerran, siirry ensin omaan demot-hakemistoosi ja kirjoita (demon numerosta riippuen)

    ./haedemo 4
  4. Tee tehtäviä kuten edellä kohdassa 7 eteenpäin.

  5. Jos haluat pakottaa korvaamaan tekemästi tehtävät TIMIssä olevilla pohjilla (mahdollisesti jo palauttamillasi), niin anna komennon perään vielä väilyönnillä erotettu -f

5. Vielä nohevampi versio

Jos haluat olla oikein noheva, siirrät skriptin johonkin polussasi olevaan hakemistoon ja lisäät sen alkuun vielä komennon, joka omassa käyttöjärjestelmässäsi siirtyy demot-kansioon. Esim Windowsissa:

cd /c/kurssit/ohj1/demot

tai Mac/Linux:

cd ~/kurssit/ohj1/demot

Nyt voit missä tahansa hakemistossa kirjoittaa

haedemo 4

ja kaikki menee automaattisesti. Jos haluat että komentorivi jää demon hakemistoon, niin siihen auttaa kutsun muoto (huom piste ja väli):

. haedemo 4
# tidekysely

6. Ajatuksia TIDE-palauttamisesta

Kirjoita alle mielipiteitä, ajatuksia ja kehitysehdotuksia TIDE-palauttamisesta.

# tidekommentit

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.