This shows you the differences between two versions of the page.
sd-ca:vmchecker [2013/02/17 13:17] laura.vasilescu created |
sd-ca:vmchecker [2023/05/29 08:52] (current) emil.racec |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{section>help:vmchecker&noheader&nofooter}} | + | ====== Folosire vmchecker ====== |
+ | |||
+ | În caz de probleme, trebuie trimis mail către [[vmchecker-request@cursuri.cs.pub.ro|vmchecker-request@cursuri.cs.pub.ro]]. | ||
+ | |||
+ | ===== Acces server ===== | ||
+ | |||
+ | ==== Initial step ===== | ||
+ | |||
+ | Trimiteți cheia publică cuiva care are deja acces. | ||
+ | |||
+ | Spre exemplu Laurei (laura@linux.com) | ||
+ | |||
+ | ==== In general ==== | ||
+ | |||
+ | <code bash Proiectarea Algoritmilor> | ||
+ | ssh pa@elf.cs.pub.ro | ||
+ | </code> | ||
+ | |||
+ | <code bash Programare Seria CA> | ||
+ | ssh pc@elf.cs.pub.ro | ||
+ | </code> | ||
+ | |||
+ | <code bash Programare Seria CBCD> | ||
+ | ssh pc-cb@elf.cs.pub.ro | ||
+ | </code> | ||
+ | |||
+ | ===== Configurarea unei teme noi ==== | ||
+ | |||
+ | ==== Update fisier config ==== | ||
+ | |||
+ | Se modifică fișierul ''~/vmchecker-storer/config'' similar cu tema 1 sau tema 2. | ||
+ | |||
+ | Se caută secțiunea cu ''<nowiki>[[assignment 1-hubble]]</nowiki>'' sau ''<nowiki>[[assignment 2-conquer]]</nowiki>'' și se creează una asemănătoare pentru noua temă, modificând corespunzător. | ||
+ | |||
+ | **Obligatoriu** numele temei este de forma ''1-hubble'' sau ''2-conquer''. Cifră-liniuță-nume. | ||
+ | |||
+ | ==== Adăugare arhivă de teste ==== | ||
+ | |||
+ | Arhiva trebuie **obligatoriu** să aibă același nume cu tema. (vezi formatul de mai sus). | ||
+ | |||
+ | Se adaugă în: ''~/vmchecker-storer/tests/''. | ||
+ | Exemplu: | ||
+ | <code>= | ||
+ | pc@elf:~$ ls ~/vmchecker-storer/tests/ | ||
+ | 1-hubble.zip 2-conquer.zip | ||
+ | </code> | ||
+ | |||
+ | ==== Everything should work! ==== | ||
+ | |||
+ | ===== Vizualizare teme ===== | ||
+ | |||
+ | Toate temele submise se află într-un repo git generat automat. | ||
+ | |||
+ | Spre exemplu, pentru tema nr. 1: | ||
+ | <code> | ||
+ | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/ | ||
+ | adela_adriana.sandulescu catalin.stanciu2712 florin_cristian.hurezeanu mihail_razvan.cojocaru | ||
+ | adela_ioana.hintiu cezar_mihai.ghimbas florin_george.bostinaru mihai.mihailescu | ||
+ | [...] | ||
+ | </code> | ||
+ | Pentru fiecare student este creat automat un director. | ||
+ | |||
+ | ==== Structura directorului unui student/temă ==== | ||
+ | |||
+ | Cum arată un astfel de director? | ||
+ | <code> | ||
+ | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/ | ||
+ | current sb_2012.11.05__22.08.52_rnd948 sb_2012.11.05__23.08.48_rnd590 | ||
+ | sb_2012.11.05__21.18.51_rnd436 sb_2012.11.05__22.23.14_rnd8 sb_2012.11.05__23.13.08_rnd175 | ||
+ | sb_2012.11.05__21.32.34_rnd17 sb_2012.11.05__22.48.06_rnd239 sb_2012.11.05__23.15.05_rnd653 | ||
+ | sb_2012.11.05__21.42.43_rnd52 sb_2012.11.05__22.51.46_rnd16 sb_2012.11.05__23.24.58_rnd19 | ||
+ | sb_2012.11.05__21.48.00_rnd21 sb_2012.11.05__22.57.24_rnd313 | ||
+ | sb_2012.11.05__21.52.42_rnd671 sb_2012.11.05__23.00.14_rnd459 | ||
+ | </code> | ||
+ | |||
+ | ''current'' este un link simbolic către ultima temă trimisă. Restul reprezintă versiuni mai vechi, salvate corespunzător după data la care au fost trimise. | ||
+ | |||
+ | Cum arată directorul ''current''? (de fapt, și toate celelalte) | ||
+ | <code> | ||
+ | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/current | ||
+ | archive.zip git results | ||
+ | </code> | ||
+ | |||
+ | **''archive.zip''** este chiar arhiva submisă. | ||
+ | |||
+ | **''git''** este un director ce conține printre alte lucruri, un director numit ''archive'' cu conținutul arhivei submise dezarhivat. | ||
+ | <note> | ||
+ | Nu este necesar să vizualizați sursele din git/archive/*. vim știe să citească arhive. Eu folosesc direct vim archive.zip. | ||
+ | </note> | ||
+ | **''results''** este un director în care vmchecker stochează rezultatele rulării temei | ||
+ | |||
+ | ===== Corectare teme ===== | ||
+ | |||
+ | Cum ziceam mai sus, rezultatele rulării pe vmchecker sunt puse în directorul ''results'' sub formatul următor: | ||
+ | <code> | ||
+ | pc@elf:~$ ls ~/vmchecker-storer/repo/1-hubble/prenume.nume/current/results/ | ||
+ | build-stderr.vmr build-stdout.vmr grade.vmr run-stderr.vmr run-stdout.vmr vmchecker-stderr.vmr | ||
+ | </code> | ||
+ | Ce face fiecare fișier? | ||
+ | |||
+ | * **build-stderr.vmr** - output scris la ''stderr'' în timp-ul etapei de ''build'' | ||
+ | * **build-stdout.vmr** - output scris la ''stdout'' în timp-ul etapei de ''build'' | ||
+ | * **run-stderr.vmr** - output scris la ''stderr'' în timp-ul etapei de ''run'' | ||
+ | * **run-stdout.vmr** - output scris la ''stdout'' în timp-ul etapei de ''run'' | ||
+ | * **vmchecker-stderr.vmr** - eventualele mesaje de eroare "scuipate" de vmchecker | ||
+ | * **grade.vmr** - fișier folosit pentru feedback-ul asistentului | ||
+ | |||
+ | ==== Cum se corectează o temă eficient? ==== | ||
+ | |||
+ | * Te uiți în interfața web și vezi câte teste trec | ||
+ | * Treci în grade.vmr cu minus punctele corespunzătoare pentru testele picate | ||
+ | * Mai adaugi în grade.vmr și eventuale alte depunctări (cu minus) sau bonusuri (cu plus) | ||
+ | * Verifici în interfața web punctajul final (depunctările de întârziere se calculează automat) | ||
+ | * Treci nota și în catalog (google spreadsheet) | ||
+ | |||
+ | ==== Cum se folosește grade.vmr ==== | ||
+ | |||
+ | Depunctările în urma întârzierilor sunt scăzute automat. | ||
+ | |||
+ | Depunctările în urma testelor picate trebuie scăzute de mână. | ||
+ | |||
+ | Exemplu de format pentru grade.vmr: | ||
+ | <code> | ||
+ | +0.0: nice coding style :) | ||
+ | -5.0: tests failed | ||
+ | -0.20: New memory leak modification (In function execCommand, | ||
+ | in file tema0.c, at line 189;) | ||
+ | -0.20: Use of unitialized variable (In function add, in file | ||
+ | tema0.c, at line 61;) | ||
+ | -0.10: Use of non-static variables or functions in a single | ||
+ | module (In file tema0.c, at line 21; In file tema0.c, at line 32; In | ||
+ | file tema0.c, at line 46; In file tema0.c, at line 55; In file | ||
+ | tema0.c at line 79; In file tema0.c, at line 103; In file tema0.c, at | ||
+ | line 113; In file tema0.c, at line 124; In file tema0.c, at line 134; | ||
+ | In file tema0.c, at line 143; In file tema0.c, at line 162;) | ||
+ | </code> | ||
+ | |||
+ | Calculele se fac ulterior automat. Trebuie doar respectat formatul. | ||
+ | |||
+ | ==== Workflow Windows ==== | ||
+ | |||
+ | Dacă preferați să aveți la dispoziție o interfață grafică mai degrabă decât să faceți totul din terminal, se poate folosi [[https://code.visualstudio.com/|Visual Studio Code]] împreună cu extensia [[https://marketplace.visualstudio.com/items?itemName=Kelvin.vscode-sshfs|SSH FS]] pentru a corecta mai ușor. | ||
+ | |||
+ | {{:help:vs-code-vmchecker.png?700|}} | ||
+ | |||
+ | === Configurare === | ||
+ | |||
+ | După ce ați instalat extensia, apăsați ''Ctrl+Shift+P'' și selectați ''SSH FS: Create a SSH FS Configuration''. Trebuie să aveți configurate următoarele câmpuri: | ||
+ | |||
+ | * **Host:** ''elf.cs.pub.ro'' | ||
+ | * **Port:** ''22'' | ||
+ | * **Root:** ''~'' | ||
+ | * **Username:** cel corezspunzător materiei, spre exemplu ''pc-cb'' | ||
+ | * **Private key:** calea către cheia privată (în general pe Linux va fi în ''~/.ssh/id_rsa'', trebuie să o copiați pe Windows) | ||
+ | |||
+ | Dacă veți corecta la mai multe materii, este util să puneți **Name** ca numele materiei și **Group** ca ''vmchecker'' pentru a păstra toate configurațiile la un loc. | ||
+ | |||
+ | === Conectare === | ||
+ | |||
+ | După ce salvați configurația, vă puteți conecta apăsând ''Ctrl+Shift+P'' și selectând întâi ''SSH FS: Connect as Workspace folder'' și apoi configurația dorită. |