YO8SDE scrie:Mersi Septy, acum stiu unde am sau s-a gresit in loguri, de am pierdut 31,4% din puncte pe UHF. La anul ma gandesc si filmat(dupa cum mai face YO8SSB), poate o sa mearga mai bine transcrierea, dar sa ajungem noi sanatosi pana atunci!
Ma asteptam sa fie integrat in platforma YOVHF.ro si concursul acesta; dar in spate se foloseste acelasi soft din ce am vazut. Oricum arata super bine si felicitari pentru munca lui YO3ITI si cine a mai contribuit.
Asa e cu programele trebuie si ceva munca in spate pentru configurarea lor, oricum si softul folosit in ultimele editii era ok, vedeai clar ce si unde ai gresit prin loguri si lucrurile erau transparente.
Atat timp cand ca si organizatori va incadrati in timpii limita promisi prin regulament, nu vad ce probleme ar trebuie sa fie. Alti cu ale lor, voi cu ale voastre!

Salut, Florin.
Îți mulțumim pentru aprecieri. Câteva precizări referitoare la YOVHF.
Așa cum spunea și Septimiu, intenția noastră este de a avea un flux complet automatizat: de la preluarea și verificarea log-urilor până la stabilirea clasamentelor.
Prima parte, de bine de rău, am rezolvat-o. Toate log-urile sunt parsate, verificate, concurenții au posibilitatea de a modifica online header-ul de log și datele sunt centralizate într-o bază de date. Există posibilitatea consultării clasamentelor dinamice, realizate ad-hoc și actualizate permanent la încărcarea log-urilor. Pe baza acestor informații stocate se pot face statistici și, cel mai important, se asigură consistența datelor: de pildă, toate informațiile din câmpurile TNAME au același conținut pentru un concurs dat, toate câmpurile PSECT au același conținut pentru o anumită secțiune etc.
Partea mai dificilă este stabilirea automată a clasamentelor. La modul ideal fluxul ar trebui să funcționeze cam așa: concurenții încarcă log-urile până la data limită; managerul de concurs verifică și validează log-urile care intră în clasamentul final; dă click pe un buton și se generează automat clasamentul provizoriu; acesta este realizat într-o secțiune separată a bazei de date și link-ul către el devine disponibil; simultan, toți cei care au trimis log-uri sunt înștiințați prin email că s-a generat și publicat clasamentul provizoriu... etc
Pentru asta sunt necesare câteva module care trebuie să ofere funcționalități lipsite de orice erori. Primul și cel mai important, este posibilitatea de calculare automată a QRB-urilor pentru fiecare QSO în parte. Această clasă (în sensul codului aplicației) nu exista până la versiunea curentă 1.0.86. Odată cu 1.0.87 (care este în lucru) am adăugat o clasă care se ocupă doar cu calcularea QRB-urilor. Clasa se bazează pe formula consacrată
111,2 * arccos(sin Latitude1 * sin Latitude2 + cos Latitude1 * cos Latitude2 * cos(Longitude1-Longitude2))
, unde 1 și 2 repezintă coordonatele originii și destinației centrului locatoarelor, are câteva metode standard și câteva funcționalități suplimentare și funcționează fără probleme. Calcularea automată a QRB-ului + introducere în baza de date vor deveni publice odată cu lansarea versiunii 1.0.87.
Dar această nouă funcționalitate a creat o problemă suplimentară care a trebuit și ea rezolvată: toate log-urile care vor fi încărcate în YOVHF.ro DUPĂ momentul lansării 1.0.87 vor beneficia de calcul automat al QRB. Cele dinainte - nu. Așa că a trebuit să dezvolt clasa de mentenanță adăugând o rutină de actualizare a QRB-urilor pentru absolut toate QSO-urile care nu aveau QRB-ul calculat (= cele istorice, de dinainte de 1.0.87), ceea ce a adăugat complexitate și timp suplimentar.
Alături de codarea propriu-zisă, pentru ca să nu existe probleme, toate metodele trebuie testate. Unii mi-au spus că nu are sens să reinventez roata, că aceste formule și rutine există pe net. Adevărat, dar codul nu este mereu disponibil. În plus, am constatat că există atât diferențe de la autor la autor cât și diferențe în modul în care se realizează calculul și, mai ales, diferențe în modul în care se aplică rotunjirea, pe diverse platforme. În mod paradoxal, tehnologiile web dau rezultate diferite în funcție de platformă, asta pentru că nu toți programatorii optează pentru utilizarea claselor de tip "precision math" și, mai ales, fiindcă copiază logica unei rutine scrise într-un limbaj și o aplică în alte limbaje fără a ține cont de specificul fiecăruia. Cine a codat știe la ce mă refer. În plus m-am lovit de diferențe între platforma pe care dezvolt (calculatorul personal) și serverul de "producție" pe care este domeniul yovhf.ro, diferențe care mi-au scos peri albi. Cea mai recentă și notorie este modul în care tratează afișarea datei. Astfel că am hotărât să scriu totul de la zero, codul să fie unitar și eventualele erori să fie controlabile într-un cod-sursă pe care să-l stăpânesc 100% fără să depind de codul nimănui. Astfel, yovhf a devenit o premieră, fiindcă are 100% cod pur, autohton. Mă rog. hai să zic 99% fiindcă am și ceva biblioteci de grafice și animații care sunt preluate de pe net, fiind deja consacrate. Dar nucleul care face treaba grea e nou, e complet conceput de mine. Măcar dacă belesc ceva să știu de unde provine și să pot remedia.

Asta a adus complexitate și întârzieri. Îți explic aceste lucruri ca să se înțeleagă de ce am amânat lansarea unui modul oficial de stabilire a clasamemtelor: Nu-l lansez până nu sunt absolut sigur că funcționează ireproșabil. Astftel, am luat cu toții (colectivul YOVHF) decizia să folosim soafte de la alții strict pentru generarea clasamentului, propunându-ne 2018, pe la început, ca termen pentru generatorul automat de clasamente.
De fapt, să-ți spun o chestie: nu m-am gândit nici o clipă că anul ăsta voi lansa vreo versiune finală. 2017 a fost, din capul locului, un an de teste și verificări.
Mai mult, am primit foarte multe sugestii și propuneri din partea radioamatorilor, idei pentru care le mulțumesc încă o dată. Printre cele mai cerute au fost posibilitatea de a încărca fotografii la fiecare concurs, anumite informații și statistici pentru secțiunea "palmares" (de pildă grid-uri majore lucrate, generator de hartă cu QSO-uri etc), cereri pentru anumite statistici (statistici cu antenele, statistici pe PCALL, zile, ore etc), soapbox pe baza ruburicii "remarks" din log etc etc, și toate astea au avut prioritate. Cele mai multe se regăsesc în 1.0.87. Altele (de pildă generare pdf din calendar etc) sunt planificate pentru 1.0.88 etc
Pentru mine, partea cea mai fascinantă a acestui proiect este faptul că, de jumătate de an, învăț o sumedenie de tehnologii și lucruri noi. Nu are sens să le înșir. Dar acest fapt, în sine, este îndeajuns de motivant. Dar cel mai important a fost reacția voastră și cât de bine a fost primită această platformă. Nu se compară nimic cu asta. Vă mulțumesc.
Avem un "backlog" (o listă de solicitări în așteptare) de aproape 300 idei și propuneri. Am închis aproape 700 de bug-uri și avem... un singur programator care mai are și serviciu.

Răbdare și tutun. O să iasă mișto.
Mulțumiri tuturor.
73 de YO3ITI