Pagini: 1 [2]   În jos
  Imprimă  
Ajutor Subiect: Yet another evaluator, wrote by me (0.65 stable)  (Citit de 13617 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #25 : Mai 28, 2009, 20:31:22 »

Am postat in pagina mea "nightly buildul" noii versiuni care este "currently in development", pt toni.
Pentru ca am facut multe modificari si restructurari programului, care nu au fost inca finalizate (sau testate), acesta este inca o pre-versiune a versiunii 0.64 (hence the -13 de la revizia 13).
Programul este backwards compatible cu 0.62.
Una din functiile noi: afiseaza borderoul dupa cum mi-a cerut toni (hopefully).
Folosire: consoleapp.py a inlocuit fostul eval.py. Rulati consoleapp.py.
Pentru interfata de consola este nevoie de consoleapp.py si evalcore.py.
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #26 : Mai 28, 2009, 21:38:38 »

Am reusit sa termin in sfarsit evalul Smile. Varianta finala se gaseste aici, si se poate lua cu urmatoarea comanda, din linux :

Cod:
svn checkout http://opensvn.csie.org/eval eval

Deocamdata, evalul suporta probleme normale (folosind evaluatorul scris de Dan), probleme de output-only si interactive, cu un eval scris de mine, putand evalua atat runde normale, cat si un singur user pe o singura problema (pt site-uri cu evaluator automat). In caz ca se arata cineva interesat, voi scrie un hotwo pt instalare si folosire.
Memorat
recviem
Client obisnuit
**

Karma: -26
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #27 : Iunie 11, 2009, 14:57:08 »

Este un alt fel de programare. Nu e algoritmica, e "application development".

Nu te supara, dar nu ma pot abtine: nu exista alt fel de programare. Toate programele sunt 'algoritmica'. In rest, pare simpatic evaluatorul tau, spor in continuare.
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #28 : Iunie 11, 2009, 20:13:57 »

Nu e adevarat Smile. Sunt unele aplicatii pentru care nu trebuie sa stii deloc algoritmi: applets, scripturi, si alte programe care sunt utile inainte de a fi eficiente.
Memorat
recviem
Client obisnuit
**

Karma: -26
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #29 : Iunie 12, 2009, 09:21:01 »

Uite un citat de pe wiki: "In mathematics, computing, linguistics, and related subjects, an algorithm is a finite sequence of instructions, an explicit, step-by-step procedure for solving a problem, often used for calculation and data processing."

Algoritmul nu implica eficienta si nu exclude pragmatismul. Orice succesiune finita de instructiuni aplicata la rezolvarea unei probleme se numeste algoritm. Fie ca e o carte de bucate, applet sau engine-ul grafic al unui joc.

Algoritm nu inseamna doar "Algoritmul lui X" cu o complexitate cat mai mica.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #30 : Iunie 12, 2009, 09:29:53 »

Discutia devine offtopic. Daca ar fi sa ne luam de exprimari, sunt tare curios daca ai auzit de "algoritmul de prajit cartofi"...
Memorat
recviem
Client obisnuit
**

Karma: -26
Deconectat Deconectat

Mesaje: 62



Vezi Profilul
« Răspunde #31 : Iunie 12, 2009, 09:33:48 »

Discutia devine offtopic. Daca ar fi sa ne luam de exprimari, sunt tare curios daca ai auzit de "algoritmul de prajit cartofi"...

Da, am auzit chiar si de algoritmul de prajit oua. Vrei sa facem si paine?
« Ultima modificare: Iunie 12, 2009, 21:35:11 de către Alexandru Pana » Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #32 : Iunie 12, 2009, 09:59:12 »

Discutia devine offtopic. Daca ar fi sa ne luam de exprimari, sunt tare curios daca ai auzit de "algoritmul de prajit cartofi"...

Da, am auzit chiar si de algoritmul de prajit oua. Vrei sa facem si paine?

Consider ca te indepartezi mult. Poti deschide topic nou in sectiunea offtopic. Alte mesaje scrise aici pe tema asta iti vor fi sterse.
Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #33 : Iunie 12, 2009, 12:55:30 »

Am actualizat primul mesaj pentru a reflecta noua versiune, 0.64 rc1.
Mie mi se pare stabila, dar nu am avut posibilitatea de a o testa foarte mult.
Daca gasiti buguri, va rog raportati Smile

Aceasta versiune introduce cateva adaugiri si schimbari nu neaparat majore.
In schimb, a fost reorganizata masiv, in materie de cod, fata de 0.62, pentru a fi mai usor de dezolvat si mai usor de refolosit intr-un proiect mai amplu.
0.64 este backwards compatible cu 0.62 in ceea ce priveste parametrii pe care ii primeste si fisierul de configurare, insa afisarea a fost modificata pentru a arata mai prezentabil.
Una dintre schimbarile importante a fost separarea codului de evaluare de codul de "interfata" de consola. De aici a reiesit in mod natural reorganizarea aplicatiei pe mai multe fisiere. Prin aceasta, am putut apoi cu usurinta incepe dezvoltarea unei interfete grafice folosind GTK si Python.
(puteti sa o incercati prin rularea guiapp.py)
Memorat
devilkind
Echipa infoarena
Nu mai tace
*****

Karma: 284
Deconectat Deconectat

Mesaje: 1.240



Vezi Profilul
« Răspunde #34 : Iunie 27, 2009, 15:21:18 »

Ai pus pe svn  ultimele modificari? si toate fisierele? ca eu nu gasesc config.py si nici guiapp.py. Am incercat sa evaluez si eu o problema cu consoleapp.py si nu mi-a mers zicand ca nu gaseste directorul cu teste, si nu prea stiu cum il setez. Vroiam si eu sa fac ceva dev la evalu asta, de fapt vroiam sa fac si eu o interfata gui numai ca vroiam sa o fac in Java folosind swing.
Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #35 : Iunie 27, 2009, 16:33:04 »

Merge sa-i faci o interfata swing, daca rulezi evalul din Jython din cadrul lui java, in loc sa folosesti CPython care e "default".

In legatura cu lipsa fisierelor, nu stiu ce sa zic ca s-a intamplat, daca intru din browser pe acel link vad toate fisierele prezente.
config.py trebuie sa contina doar linia:
TestDBRoot = 'o cale pentru directorul de teste'
pentru ca evalul sa functioneze. Dar mi se pare ciudat ca nu gasesti fisierele, nu iti apar cand intri aici ?
http://informatrix.ro/svn/eval2/tags/stable-0.6/
« Ultima modificare: Iunie 28, 2009, 14:35:07 de către Sanduleac Dan » Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #36 : Iunie 27, 2009, 18:50:57 »

Am scos versiunea 0.65 cu niste modificari mari la structura programului si cateva bugfixuri. De asemenea am modificat guiapp sa foloseasca output generat de consoleapp pentru fereastra de 'log' a sa. Well, pe cine intereseaza  Smile

Aceasta versiune este inca netestata, si am creat un branch special pt ea, in general pentru ultima versiune a programului care este cat de cat stabila, 'testing'. Puteti s-o descarcati prin svn:

svn co http://informatrix.ro/svn/eval/eval2/branches/testing-0.6 eval2-testing

CHANGELOG-ul e in directorul aplicatiei, sau puteti sa-l accesati direct la adresa aceasta

Apropo, devil, daca mai vrei sa dezvolti in java un GUI, ultimul release 'stable' nu va merge cu Jython. Merge in schimb versiunea 0.65 de sub testing
« Ultima modificare: Septembrie 01, 2009, 15:33:06 de către Sanduleac Dan » Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #37 : August 26, 2009, 14:18:15 »

In caz ca se arata cineva interesat, voi scrie un hotwo pt instalare si folosire.

Ar merita sa scri si un howto. Eu cel putin chiar sunt interesat cum se foloseste Very Happy
Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #38 : August 26, 2009, 14:30:04 »

Am impresia ca proiectele noastre (al meu si al lui toni) au cam stagnat. Cu toate astea, ambele erau functionale ultima data cand am verificat.
http://informatrix.ro/svn/eval/eval2/branches/testing-0.6 - cred ca uitasem sa actualizez linkul catre svn-ul meu, s-a schimbat.
« Ultima modificare: August 27, 2009, 20:03:44 de către Sanduleac Dan » Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #39 : August 26, 2009, 14:37:15 »

Ambele fiind functionale, cred ca ar merge scris un ghid de folosire Smile
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #40 : August 27, 2009, 19:42:31 »

L-am scris in graba, e posibil sa mai fie ceva greseli.
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #41 : August 28, 2009, 19:19:21 »

Good job Toni ! Applause
Insa cand ii dau comanda
Cod:
./scripts/add-contest mycontest
imi creaza doar un folder contest, dar in el nu se afla nimic.
iar add-problem nu am vazut niciun script sau executabil pe acolo Smile
Si de asemenea nu am gasit niciun executabil grader Smile
« Ultima modificare: August 28, 2009, 19:42:40 de către Andrei Misarca » Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #42 : August 28, 2009, 23:17:36 »

Am uitat sa pun ultima versiune  Whistle, scrisesem tutorialul si apoi am adaugat scripturile pt add-contest si add-problem. Iar in loc de grader este grader.rb Smile.

LE : Am modificat, si am updatat si in wiki. Daca iei acum ultima versiune a sursei de pe site, va merge.
« Ultima modificare: August 28, 2009, 23:27:03 de către Pripoae Teodor Anton » Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #43 : August 29, 2009, 09:32:37 »

Merge  Winner 1st place
Este posibil ca la o problema sa existe si un eval, si daca da cum trebe facut?
Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #44 : August 29, 2009, 15:21:12 »

Sigur, inlocuiesti fisierul judge din directorul problemei cu alt fisier (script sau executabil) cu numele "judge", care va primi ca parametrii "fisier.in fisier.out fisier.ok", si va afisa raspunsul sub forma : "mesaj\n(procent punctaj din max)" (ex : "gresit\n0" sau "ok\n100"), asta pentru problemele classical, iar pentru cele output only de forma "mesaj\npunctaj" (ex : "gresit\n0" sau "ok\n10"). Pentru cele interactive este mai greu, pt ca in eval este de fapt hardcodat pipe-ul cu procesul, si e destul de greu de modificat pentru cineva care nu prea stie chestii de genul "fork", "pipe", etc. Am sa scriu un tutorial cand voi avea timp.
Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #45 : Septembrie 01, 2009, 15:58:15 »

@toni: Te-as sfatui sa schimbi in evalul tau folosirea fisierelor temporare cu nume unic
Ca idee, de ex daca doi useri lucreaza pe acelasi calculator cu evalul tau, unul dintre ei va crea fisierul temporar nush care, iar celalalt va primi frumos access denied pe acel fisier din momentul acela incolo. Asadar, foloseste `mktemp` ca sa creezi un fisier temporar cu nume random, si sterge-l dupa folosire.  (comanda iti returneaza numele fisierului generat)

Asa, si 2:
Dupa ce rulezi evalul tau, va modifica (adica suprascrie probabil) niste fisiere care nu au ce cauta acolo de la bun inceput (acolo, adica in repository). Dupa ce le modifica, daca vrei sa faci commit, le tragi dupa tine pe alea modificate degeaba.
Ma refer la
Cod:
M contest/test/allres.txt
M contest/test/scores.txt
M scripts/evalcore.pyc
nu stiu daca sunt si altele. In orice caz, scapa de pyc, ca ala se genereaza automat la prima folosire, si de txt-uri Smile

Edit:
inca ceva, pentru runde mai bine nu zici decat numele problemelor, iar utilizatorii sa fie sub forma de foldere cu numele lor intr-un director de utilizatori, evaluatorul evaluand automat pe toti userii dintr-un folder dat, pe acele probleme. (mai flexibil asa)
« Ultima modificare: Septembrie 01, 2009, 16:34:40 de către Sanduleac Dan » Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #46 : Septembrie 01, 2009, 19:48:02 »

Eu lucram oricum cu evaluatorul in alt director, deci nu aveam probleme cu rularea. Oricum o sa pun in .hgignore acele fisiere. Legat de mktemp, n-am mai facut un alt release la eval (e tot versiunea 0.91), am tot zis ca modific, dar n-am avut timp. Nu pot pune sa evalueze un director intreg, pt ca astfel ar evalua toti concurentii, iar daca am userii de la 2 concursuri ar evalua tot.
Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #47 : Septembrie 02, 2009, 12:06:41 »

Nu pot pune sa evalueze un director intreg, pt ca astfel ar evalua toti concurentii, iar daca am userii de la 2 concursuri ar evalua tot.

da, dar poti sa separi de la bun inceput utilizatorii in directoare corespunzatoare concursului, care sa nu fie neaparat in dir unde e evalul tau, ci oriunde. Chiar si daca ar fi in acelasi dir, poti avea cv gen "stud/<round_name>/<username>/..." si aclo sa fie sursele.
Memorat
sandyxp
Strain
*

Karma: -1
Deconectat Deconectat

Mesaje: 39



Vezi Profilul
« Răspunde #48 : Septembrie 09, 2009, 14:45:04 »

Un ghid incepe sa fie publicat pentru evaluatorul meu aici: http://bitbucket.org/dan.sanduleac/eval2/wiki/Home
Evaluatorul meu e cel pe care se bazeaza cel facut de toni, al lui implementand in plus fata de al meu posibilitatea evaluarii de runde intregi (mai multi utilizatori, mai multe probleme de-odata, totul automat).
Momentan, in ghidul meu nu apar decat o introducere simpla si putine detalii de implementare, un "Cum se foloseste" urmand a fi scris in curand. Oricum, daca sunteti interesati, probabil veti folosi mai degraba interfata facuta de toni pentru ca ofera mai multe functii Wink
In schimb, daca vreti sa stiti cum functioneaza ambele evaluatoare, ghidul acesta va va ajuta mult
Memorat
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines