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: tide24@tim.jyu.fi.
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
Hae
tide
-sovellus omalle käyttöjärjestelmällesi ja pura paketissa oleva ohjelma johonkin paikkaan, joka sinulla on polussa. TIDEn tarkemmat ohjeetpolut näet kirjoittamalla komentoriviltä (Widowsissa Git Bash):
echo $PATH
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.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
- Name:
- Avaa Settings (Ctrl+Alt+S) tai
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
Kokeile lähteekö Rider komentoriviltä käyntiin kirjoittamalla
rider
, jos lähtee, voit siirtyä seuraavaanMuuten kirjoita skripti riderin käynnistämiseksi. Aloita komennolla
sudo nano /usr/local/bin/rider
Pastea sisällöksi (tarkista ensin onko sinun Rider tuolla viimeisen rivin paikassa, jos ei, vaihda tarvittaessa viimeistä riviä)
#!/bin/bash declare -a intellij_args=() declare -- wait="" for o in "$@"; do if [[ "$o" = "--wait" || "$o" = "-w" ]]; then wait="-W" o="--wait" fi if [[ "$o" =~ " " ]]; then intellij_args+=("\"$o\"") else intellij_args+=("$o") fi done open -na "/Applications/Rider.app/Contents/MacOS/rider" $wait --args "${intellij_args[@]}"
Tallenna:
Crtl-X
Vaihda oikeus
sudo chmod +x /usr/local/bin/rider
Nyt pitäisi komentoriviltä toimia komento
rider
3. Käyttö
Siirry komentorivillä hakemistoon, jossa haluat tehdä demoja (esim
kurssit/ohj1/demot
). Myös demo 5 jne. voit aikanaan siirtyä samaan hakemistoon.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.Tee solution kaikille tehtäville antamalla seuraavat komennot:
cd demo4 dotnet new sln -n $(basename "$PWD") find . -name "*.csproj" -exec dotnet sln add {} \;
Avaa valitsemasi IDE, esim Rider
rider demo4.sln
Pistä kaikki projektit piiloon, koska niissä on vielä virheitä:
- klikkaa solutionin nimeä
- paina hiiren oikeata
- valitse
Unload projects
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.
- avaa ensin haluamasi projekti hiiren oikealla ja
Palauta tehtävä:
- paina
Ctrl-W
(tai minkä pikanäppäinen valitsitkaan,
tai hiirelläTools/External tools/Tide submit
- paina
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!
Vaikka IDE-palautus toimisi, ohjelmasta syntyvä dokumentointi pitää käydä katsomassa TIMissä, jotta saa täydet pisteet.
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ä.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.
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 }
Kohta 4: Windows PowerShellissä ei kannata avata Rideria noin. Mieluummin ihan GUI:sta.
VL: Miksei kannata? Mutta tällä kurssilla ei puhuta PowerShellistä.
—4. Valmis komento hoitamaan edeltä vaiheet 2-4
Kirjoita seuraava koodi
demot
hakemistoosi nimellehaedemo
#!/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
Anna demot-hakemistossa komentorivillä komento, jolla annetaan suoritusoikeus tiedostolle
chmod +x haedemo
Kun haluat hakea jonkun demokerran, siirry ensin omaan
demot
-hakemistoosi ja kirjoita (demon numerosta riippuen)./haedemo 4
Tee tehtäviä kuten edellä kohdassa 7 eteenpäin.
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:
tai Mac/Linux:
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
6. Ajatuksia TIDE-palauttamisesta
Kirjoita alle mielipiteitä, ajatuksia ja kehitysehdotuksia TIDE-palauttamisesta.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.