• Welcome to Hrvatski Radioamaterski Savez.

HFrobot

Autor 9A3TY, 22. Svibanj 2014, 08:39:04

« natrag - naprijed »

0 Članovi i 1 Gost pregledava ovu temu.

9A2MI

#30
Citat: 9A2VX  u 05. Studeni 2015, 21:30:43
Drugi primjer su UNIQUE i KRIVI poziv.


Bravo, čestitam. Hvala za upozorenje. To nam svima treba (dobro oko).
Molim pogledaj ponovno, možda ima još takvih primjera.
Predlažem ovu tablicu, pomoću nje će biti lakše.

http://www.hamradio.hr/hfrobot/hfcc_log.php?What=pregled_referenci&CID=2015-10-10

zatim:
http://www.hamradio.hr/hfrobot/index.php?What=p&CID=2015-10-10

Tko je radio taj znak.
73 de Miljenko 9a2mi

9A3TY

Jel nam treba dobro oko ili dobar robot?

Miljenko, imaš velikih problema sa softverom.
Bez ljutnje ali ne radi ni najosnovnije stvari.
Ne želim da se otegne objava službenih rezultata pa neću sad o detaljima ...
73 de Ivo, 9A3TY

9A2MI

#32
Pozdrav

Osjećam da treba pojasniti kako je nastao moj (9A2MI) HfCLCC program (robot) te kako radi danas.

U radio klubu Samobor (9A1BIJ/9A1W)(član sam od 1974.g.) rade se UKV natjecanja pojačano od 1995. godine.
Programiranjem se bavim od 1982. ZX81 pa Spectrum, Commodor (Basic). Zatim Atari (gfa Basic), PC (QBasic, CLIPPER). 2004. godine radim klupsku PHP web stranicu i tada sam se upoznao sa PHP programskim jezikom.

PHP (rekursivni akronym i backronym za "PHP: Hypertext Preprocessor", prije "Personal Home Page Tools")
je jedan programski jezik koji se orijentira po C i Perl sintaksi, namijenjen prvenstveno programiranju
dinamičnih web stranica. PHP je kao slobodni softver distribuiran pod PHP licencnim uvjetima.

Ideju za stvaranje UKV chross check programa iznio mi je Krešo 9A2HM u prosincu 2006. godine, a podržao Željko 9A4WF. Tako je već na natjecanju "Vidovo 2007" prvi put testiran. U slijedećih 5 mjeseci je poboljšan, no neka poboljšanja radim i kasnije.

Krešo 9A2HM je voditelj naše natjecateljske ekipe i nerviralo ga je to što nam je tadašnji program za
chross check "LX" (Češkog programera) poništavao i po 10-ak veza po natjecanju, sa češkim stanicama
a mi nismo imali nikakvog utjecaja na to. Kad bi se žalili komisiji, rečeno je da je tako odradio LX i
da nema pomoći.

Neka UKV natjecanja u Češkoj su počinjala sat kasnije od naših. Dok su se češke ekipe pripremale za
kontest, radile su veze pod osobnim znakovima a kad je počeo njihov kontest radile su pod klupskim znakovima. Iako su sve veze bile regularne, LX je rekao da je osobni znak neispravan i da smo trebali
raditi klupski znak, unatoč tome što smo mi u logu imali odrađen i taj klupski znak.
To je bilo radi toga jer su ti znakovi bili iz istog lokatora (WWL).

Krešo, poznavajući moje programerske vještine, pitao me je bi li se ja prihvatio izrade chross check programa?
Rekao sam da je to komplicirano ali nije neizvedivo. Prvo sam zatražio LX program da proučim način rada.
Nakon proučavanja, uvidio sam da se na rad LX-a uopće ne može utjecati ali radi turbo brzo.

Kako sam već tada dobro poznavao PHP i MySql bazu podataka, odlučio sam iskoristiti prednosti
web sučelja te objediniti upload logova sa chross check-ingom, plasmanom i error listom.
No ono glavno je da sam odmah od početka pretpostavio da program ne može automatski odraditi cijeli posao, već je potrebno da administrator može neke odluke programa zaobići.

To ide do te mjere da admin (manager) može svaku error vezu proglasiti ispravnom kao i svaku koju je program proglasio ispravnom, proglasiti neispravnom.
Naravno, svi ovi admin zahvati su vidljivi pa se i rad administratora može kontrolirati.

Glavna mana web sučelja je sporost izvršavanja programa tj. samog chross check procesa.
Uspio sam tada napraviti da CC traje do 10 minuta.
Pojavom sve bržih servera, to je bilo dovoljno, no u zadnjih nekoliko godina rad servera je ograničen
na samo jednu minutu.
Morao sam napraviti chross check rutinu tako da nastavi tamo gdje je stala te da u nekoliko koraka
(klikova) završi.
Problem je što se chross check program (robot) nalazi na javnom serveru gdje se vrte i mnoge druge web stranice.
Ovisno o zauzetosti servera sa obradom tih drugih stranica, ostaje manje vremena za CC rutinu unutar te jedne minute.

Zato je u pregledu plasmana za svaku stanicu vidljivo kada je napravljen CC (datum, sat, minuta i sekunda).

Kako je UKV CC program dobro prihvaćen, i od natjecatelja i od HRS-a, već 2007. godine sam napravio i
KV chross check program. Tada je manager bio Zlatko 9A2EU i bio je obračunat KUP JADRANA.
Koliko znam nije bilo većih primjedbi. No program nije zaživio, vjerojatno zbog promjene managera (9A5K)
koji je radio CC sa svojim programom.

2011. godine, kontaktirao me je Dieter OE8KDK i zatražio mogućnost obrade njihova dva KV natjecanja na HfCLCC-u.
Tada ponovno intenzivno radim na poboljšanju KV robota. Najviše problema imam s upload-om cabrillo log-a.
Naime, dok je EDI format vrlo konkretan i precizan te se lako učitava u MySql bazu podataka to nije slučaj
s cabrillo log formatom. Najviše imam problema sa QSO stupcima. Problem riješavam na način da se veze u logu
dva puta skaniraju.
Prvo se u svim redovima traže i memoriraju prazna mjesta. Ta prazna mjesta označavaju početak i kraj
podataka za pojedini podatak (stupac) veze. U drugom prolazu se učitavaju veze u MySql bazu podataka.

Iako su AOEC natjecanja vrlo komplicirana, imaju uz HAM stanice i Government stanice, više perioda,
više bandova, veze se priznaju sa Government stanicama samo na nekim bandovima te uz District i
LAND množitelje, nije bilo većih problema za programiranje.
Dieter je zadovoljan. To dokazuje 5 godina suradnje i 9 obrađenih natjecanja.
AOEC uz moje programiranje koristi i glavnog admina: Dieter Kritzer (OE8KDK), te još tri admina:
Karl Abloescher (OE3KAB), Chris Hammerl (OE3CHC), Heinz Lorenz (OE3LHB).

HfCLCC program koriste na način da admini sami vrše upload logova, rezultat CC-a se vidi tek kad to
odobri Dieter a to zna potrajati i nekoliko mjeseci. Službeni rezultati nisu još proglašeni (23.11.2015) za natjecanje od 01.05.2015.g.
U međuvremenu stoji obavijest: Unakrsna provjera logova u tijeku.
To znači da admini provjeravaju rad HfCLCC programa i unose admin zahvate. Tek kad sve bude
dobro po njihovom mišljenju, puštaju privremene rezultate a onda i službene.

Početkom 2014. godine, nazvao me je Željko 9A2R i pitao jel se moj chross check program za KV može
koristiti za 9A natjecanja i koliko će to koštati?
Odgovorio sam da može i da neće koštati ništa jer to smatram programom uz UKV CC.
Objasnio sam tada da je potreban admin koji će nadgledati rad robota. No nije me shvatio tada a ni
kasnije kada sam mu objašnjavao da to ne mora biti on (manager) ali da bez admina ne ide.

Kasnije sam shvatio da su tu počeli moji problemi. Bio sam stalno u iskušenju da ugasim robota a onda
ipak ne mogu to učiniti i pogaziti riječ i na kraju krajeva ugovor s HRS-om. I to sve radi nekoliko
postova na forumu.

Mnogi ne znaju kako radi "9A2MI robot". Za one koji žele znati a nije im problem pročitati:


Programirao sam HfCLCC program (KV robot) u PHP programskom jeziku koji se koristi MySql bazom podataka.
Koristi se još HTML-om (ulaz i izlaz) i nešto malo javascript-om  (klijentska skripta).
Sve se odvija na serveru, od uploada (logovi se učitavaju u MySql bazu) do Cross Checka i svih ispisa.

Radi se o javnom serveru gdje je HRS iznajmio "prostor" za svoje stranice. HRS nije jedini korisnik tog
servera. Zato govorim o ograničenju izvođenja od jedne minute. Za mnoge konteste CC (Cross Check)
rutina ne završi posao unutar 1 minute.
Morao sam napraviti rutinu koja može nastaviti sa radom tamo gdje je stala.
Primjerice za 9A CW kontest od 947 logova sa 234,537 veza trajala je 60 * po jednu minutu.

Postava natjecanja
--------------------

Prije natjecanja potrebno je upisati u MySql bazu podatke o natjecanju.
To radi glavni admin ili ja.
Datum natjecanja, služi kao identifikator, zatim početak natjecanja, kraj, deadline, vrstu natjecanja,
kategorije i još neke parametre.
Dva dana prije natjecanja na robotu (pregled natjecanja) bi se trebalo pojaviti to natjecanje sa linkom za upload logova.


Upload period
--------------------

Učitavanje logova vrši se pomoću upload rutine. PHP procedura čita uploadani cabrillo log, daje
kompletni pregled korisniku na odobrenje ili ispravak (za neke manje greške) te nakon potvrde, vrši se učitavanje podataka u dvije MySql tablice.
Tablica zaglavlja i tablica veza. HfCLCC program ne čuva originalni cabrillo log.

Za razliku od slanja log-a na e-mail, upload log-a na HfCLCC program ima za posljedicu da korisnik
(HAM operator) ne može jednom zaprimljeni log ponovno poslati.
To je zato jer bi za takvu mogućnost bilo potrebno mnogo programiranja pa možda i logiranja
(sa korisničkom lozinkom) za svakog HAM operatora.
Kako je logiranje potrebno za svakog admina, ostavio sam mogućnost da admin (manager) može
obrisati postojeći uploadani log te ponovno izvršiti upload.

Ukoliko je došlo do bilo kakve greške prilikom uploada, admin će znati kako to može popraviti.
Ako se ne može popraviti greška bez ponovnog uploada, admin će zatražiti od operatora da mu
na e-mail pošalje log te izvršiti upload. To bi sve admin trebao napraviti još u upload periodu, no ako ne stigne
ostaje mu i upload nakon deadline-a. Neke stanice vrše upload u gotovo zadnjoj minuti do isteka roka.
Sve je regularno, no što ako robot odbije upload radi neke greške?

Iskustvo govori da je u tijeku 8 godina, više od 80 natjecanja bilo potrebno samo nekoliko ponovnih uploada.

Za 9A CW 2014 od 947 logova ja sam izvršio (prvi) upload za nekih 30-ak logova, 3 su zahtjevala
popravak cabrilio razmaka i samo 5 nakon dadline-a. (ovih 5 je stiglo e-mailom koji mi je proslijedio
manager i ni jedna nije 9A stanica)

Još o upload-u. Iskustvo govori da uz velika tri upozorenja o izboru kategorije prilikom uploada
od 60 stanica nekih 8 pogriješi. Admin bi trebao još za vrijeme upload perioda ispraviti greške.
Ako zakasni, ostaje mu vrijeme nakon deadline-a, kada na greške mogu upozoriti i sami natjecatelji.

Privremeni rezultati
--------------------

Nakon upload perioda slijede privremeni rezultati. Oni se ne "stavljaju" na server.
Svi logovi se već nalaze u MySql bazi podataka i samo je na programu ili postavkama za to natjecanje
što će program pokazati u pregledu plasmana.
Program može odmah po isteku deadline-a, u 00:00:01, sekundu poslije ponoći (SEV) prikazati logove.
Postavlja se pitanje, je li izvršen CC i s kojim datumom/vremenom?

Mogu napraviti, da sada svaki korisnik pokrene svoj (pa i tuđi) CC.
To je onemogućeno na zahtjev managera a radi mnogih prigovora, mogao bih reći paničnih.
Poistovječujući te privremene rezultate "neslužbenima" koje je netko "stavio" na robota i time
užasno pogriješio.

S obzirom da operatori više ne mogu izvršiti upload, osim admina, potrebno je u pravilima za KV
natjecanja propisati daljnji način ponašanja HfCLCC programa.

Za AOEC natjecanja, HfCLCC program ispisuje: Unakrsna provjera logova u tijeku.

Za 9A natjecanja sam stavio listu prijavljenih rezultata dok nisam pokrenuo CC.
Zatim sam pustio privremene neslužbene rezultate sa pregledom error lista.

Period žalbi i prigovora
--------------------------

Nakon što su vidljivi privremeni rezultati, moguće je da operatori na e-mail (moj ili manager-ov)
upućuju primjećene nepravilnosti. Od pogrešnih kategorija pa sve do pogrešnih odluka robota za
pojedine veze. Admin je u mogućnosti unositi admin zahvate za svaku vezu, to je zaobilaženje
programske pameti. Nakon zahvata mora ponovno pokrenuti CC rutinu.

CC rutina prvo radi referentnu tablicu (samo za natjecanja s distriktom) te svaku
vezu ponovno ocjenjuje. Ako je admin za neku vezu izvršio zahvat, promijenio stanje, robot za
tu vezu upisuje adminovu odluku.

Za svaku stanicu CC rutina radi posebno i kada završi, u zaglavlje loga upisuje vrijeme CC-a u
obliku YYYY-MM-DD HH:MM:SS.

Iz ovoga je vidljivo da svaki novi CC dinamično mijenja podatke: od bodova za veze do poretka ukoliko
je unesena neka promjena (admin zahvat).

Kada će se neki rezultati proglasiti privremenim, neslužbenim, službenim, konačnim itd...
ovisi o manageru, povjerenstvu, pravilima.

Naglašavam, proglasiti, jer se ne "stavljaju" na robot.


Razlike UKV - KV
--------------------

UKV Cross Check program je dobro prihvaćen i nije bilo nikakvih primjedbi, što se ne bi moglo
reči za KV. Zapitao sam se zašto? Iako oba rade po istom principu postoje razlike.
Za UKV, upload je u EDI formatu dok je za KV, Cabrillo format.
Za sva UKV natjecanja bodovi veze su kilometri razdaljine stanica i za bilo koju grešku veza se
poništava tj. nosi 0(nula) bodova.

Za KV natjecanja bodovi veze su mali 1,2 ili 3 boda i postoje kazneni bodovi.
Veze množitelji su jako važni. Ukoliko je veza dobila kaznu i eventualni množitelj je izgubljen.
Zato se vodi borba za svaku vezu. Stvar se komplicira kada se radi o Wrong Call-u ili Unique.
Te dvije greške program ne može razlikovati a razlika je od nula bodova za Unique do mnogo negativnih za Wrong Call.
Može ih razlikovati manager a može i prihvatiti žalbu operatora te Wrong Call pretvoriti u Unique.


Što Cross Check program ne može
-------------------------------

Ne može vidjeti greške u odašiljanju. To su greške koje su pisane u logu a podaci su koji se
odašiljaju za razliku od podataka koji se primaju.
To može utvrditi povjerenstvo, preslušavanjem snimki kontesta.
Pravilima bi trebalo predvidjeti kazne za takve greške. Admin zahvatom je moguće takve veze
kazniti u logu odašiljatelja i proglašenja ispravne veze u logu primatelja.


To bi uglavnom bilo to. Ako želite da neke stavri još pojasnim, pitajte, stojim na raspolaganju.








73 de Miljenko 9a2mi

9A3TY

#33
S obzirom da ne mogu pasivno promatrati ovaj način uvjeravanja javnosti kako je ovaj MIbot savršen te je jedini problem u njegovoj neshvaćenosti tj. mi smo krivi i nemamo se što buniti evo mog osvrta na Miljenkov post.

Tekst je preput nebuloza. Ne znam da li su one rezultat namjernog iskrivljivanja činjeničnog stanja ili samo rezultat Miljenkovog neznanja ali kao osoba svjesna činjenice da više ne zna nego zna nadam se da je ovo drugo u pitanju.

Pa da krenemo ...

"To je bilo radi toga jer su ti znakovi bili iz istog lokatora (WWL)."

Jel se nešto promijenilo u UKV natjecanjima otkad ih nisam radio pa nije dozvoljeno raditi dvije postaje iz istog lokatora?
Ajme ljudi, da li je ovo moguće ?!?


"Glavna mana web sučelja je sporost izvršavanja programa tj. samog chross check procesa."

Mogu shvatiti da ljudi pri tipkanju naprave pogreške pa na naslovnici hamradio.hr piše "PONOVLJEN CROSS CHEK" a sad imamo i "chross check" ali ne mogu shvatiti gdje je u procesu unakrsne provjere uključeno web sučelje. Riječ je o procesu koji se (u ovako postavljenim stvarima) u potpunosti odvija na serverskoj strani bez interakcije s operaterom, potpuno autonomno. Rezultati se pohranjuju u bazu podataka a ne ispisuju na ekran. Dakle, web sučelje i njegova "sporost" ne mogu nikako biti "glavna mana".


"Problem je što se chross check program (robot) nalazi na javnom serveru gdje se vrte i mnoge druge web stranice. Ovisno o zauzetosti servera sa obradom tih drugih stranica, ostaje manje vremena za CC rutinu unutar te jedne minute."

Ovo je takva nebuloza da sam u šoku i jednostavno ne znam što bi napisao. Ne samo da druge web stranice ne utječu na brojač vremena izvršavanja CC rutine već se (na Linux serveru) ne uzima u obzir ni vrijeme provedeno u sistemskim pozivima i čekanju na rezultat od baze podataka. Da se ne bi svelo samo na rekla kazala evo što piše u službenoj dokumentaciji :

The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.

Osim toga, kao stranka koja plaća zakup prostora HRS je mogao zatražiti da se ta jedna minuta poveća na potrebnu vrijednost.



"Najviše imam problema sa QSO stupcima. Problem riješavam na način da se veze u logu dva puta skaniraju. Prvo se u svim redovima traže i memoriraju prazna mjesta. Ta prazna mjesta označavaju početak i kraj podataka za pojedini podatak (stupac) veze."

Iako cabrillo format zapisa nije tako striktan kao npr. stari dobri fortran format gdje se točno zna u kojoj koloni počinje a u kojoj završava neki podatak ipak navođenje da je ovo predstavljalo najviše problema upućuje na samo jedno ->  problem s programerom. PHP ima gotove funkcije koje iz jedne linije izvlače njene sastojke i tu ne treba previše razbijati glavu.
Čak i kad bi se željelo dozvoliti proizvoljan raspored polja u qso liniji nije potrebno dva puta učitavati podatke jer se raspored može otkriti već iz prve učitane qso linije i dalje sve raditi po njoj. Ne vjerujem da netko šalje log u kojem su ispremetana polja od veze do veze. Ako nas već netko zeza onda ga treba odmah baciti u koš.


"a to zna potrajati i nekoliko mjeseci."


Svima je poznato zašto ovakve stvari traju mjesecima.
1. zbog nebrige odgovornih
2. zbog objave netom prije sljedećeg natjecanja kako bi natjecatelje navukli na sudjelovanje

" I to sve radi nekoliko postova na forumu."

Znam ja da bi ti radije da nema foruma ili barem da nema nas "četiri mušketira". Najlakše je trpati sve pod tepih.

"Prije natjecanja potrebno je upisati u MySql bazu podatke o natjecanju.
To radi glavni admin ili ja."


Zašto to ne radi računalo? Čim se objavi kalendar natjecanja za sljedeću godinu podaci se mogu ubaciti u bazu podataka a računalo može samo na vrijeme dodati natjecanje na listu i omogućiti upload u trenutku kad započne natjecanje.
Ako ne znaš kako - to ti se na linuxu zove crontab i tamo upišeš (ti ili admin) npr.
0 14 10 10 * wget -o /dev/null http://www.hamradio.hr/hfrobotskripta/aktiviraj-kup-jadrana.php
pa će server sam od sebe 10.10. u 14:00 pozvati navedenu skriptu
(provjeri da li server ima podešeno vrijeme po UTC-u - trebao bi).

"Dva dana prije natjecanja na robotu (pregled natjecanja) bi se trebalo pojaviti to natjecanje sa linkom za upload logova."

Zašto dva dana prije? Da netko može i prije nego li počne natjecanje uploadati svoj log? Ajoj....

"Za razliku od slanja log-a na e-mail, upload log-a na HfCLCC program ima za posljedicu da korisnik
(HAM operator) ne može jednom zaprimljeni log ponovno poslati.
To je zato jer bi za takvu mogućnost bilo potrebno mnogo programiranja pa možda i logiranja
(sa korisničkom lozinkom) za svakog HAM operatora."


Kakva je razlika između slanja loga e-mailom ili uploadom na web stranicu? Zbog čega bi neka metoda slanja imala za POSLJEDICU da se jednom zaprimljeni log ne može ponovno poslati. Kao što možeš više puta poslati isti mail tako možeš i više puta uploadati file. Dakle ograničenje proizlazi samo i isključivo zbog nečije odluke i/ili zbog programera.

Mnogo programiranja? Kako si sam rekao " vrši se učitavanje podataka u dvije MySql tablice. Tablica zaglavlja i tablica veza".
Dakle to mnogo programiranja se sastoji u dodavanju par linija koda koje će izvršiti
DELETE FROM TABLICA_ZAGLAVLJA WHERE CALLSIGN="XYZ" i
DELETE FROM TABLICA_VEZA WHERE CALLSIGN="XYZ"
prije nego li se ponovno učita log u bazu.

Znam što ćeš reći. Zar to ne bi omogućilo zlonamjernima da izbrišu nečiji prethodno poslani log?
Naravno da bi ako programer ne odradi svoj posao do kraja tj. ako nema ideju kako to spriječiti. Ja imam. I jako je jednostavna. Svega par linija koda.

BTW, zar u ovakvom stanju u kakvom je robot zlonamjerni ne mogu zagorčati život ljudima slanjem lažnog loga i tako onemogućiti upload pravoga? Na ovo sam već skretao pozornost i predlagao da se već jednom uvede autentikacija korisnika.

"Program može odmah po isteku deadline-a, u 00:00:01, sekundu poslije ponoći (SEV) prikazati logove.
Postavlja se pitanje, je li izvršen CC i s kojim datumom/vremenom?"


Zašto se postavlja pitanje? Pa ako se napravi da se cc odradi nakon svakog uploadanog loga onda je cc izvršen a datum vrijeme je trenutak izvršavanja (ili svršavanja?) posljednjeg cc-a. Zašto uopće netko treba klikati da bi se pokrenula cc rutina?

"Nakon što su vidljivi privremeni rezultati, moguće je da operatori na e-mail (moj ili manager-ov)
upućuju primjećene nepravilnosti. Od pogrešnih kategorija pa sve do pogrešnih odluka robota za
pojedine veze"


Robot je tu da implementira pravila. Ako u pravilima piše da klupske postaje obvezno idu u multiop kategoriju onda robot na temelju pozivne oznake mora znati da je riječ o klupskoj postaji i odmah ga svrstati u multiop.
Ako u pravilima piše da bodovi single-op idu matičnom klubu čiji je član na dan održavanja natjecanja prema evidenciji HRSa onda to robot treba to odraditi automatski a ne dozvoliti da ljudi proizvoljno daju svoje bodove kome oni žele.

Nikakve naknadne (nakon objave neslužbenih rezultata) izmjene kategorija NE SMIJU biti dozvoljene.
Zašto. Pa zbog mogućih manipulacija. Npr, single op postaja vidi da bi bolje bila plasirana da se prijavila u multi-op pa kaže da je napravila grešku i traži promjenu.
Ispravke prije isteka roka za slanje dnevnika su ok ali smatram da ih moraju sami natjecatelji moći odraditi.

"Stvar se komplicira kada se radi o Wrong Call-u ili Unique.Te dvije greške program ne može razlikovati "


Ovo je već više ljudi objašnjavalo pa ne treba ponavljati. Ako programer ne može skužiti onda jednostavno ne može. Nije on jadan kriv.


I šlag na kraju :

HfCLCC program ne čuva originalni cabrillo log.


Svaki komentar je suvišan.



To bi uglavnom bilo to. Ako želite da neke stvari još pojasnim, pitajte, stojim na raspolaganju. :-)

73 de Ivo, 9A3TY

9A2MI

Moram odgovoriti, jer bi netko mogao pomisliti da si u pravu.

1. Nisam nigdje napisao da je Mibot savršen.

2. "To je bilo radi toga jer su ti znakovi bili iz istog lokatora (WWL)."

Nisi dobro čitao, radi se o "LX" programu koji radi automatski.


3. "Glavna mana web sučelja je sporost izvršavanja programa tj. samog chross check procesa."

Ispričavam se radi "chross" pogreške, ispravno je cross.
Točno, radi se o serverskoj skripti koja se izvršava na serveru.
No server obrađuje i druge zahtjeve te prekida rad CC rutine i na to nemam utjecaja.
Pokušao sam preko HRS web mastera zatražiti mogućnost dužeg rada, no bezuspješno.
Nakon isteka jedne minute, server prekida cc rutinu. Ovo "što piše", mogu reći: pisalo je na bukvi.

4. "Najviše imam problema sa QSO stupcima."

Dobro si primjetio da je dovoljan 1. red. Tako sam i napravio, no nije bilo dobro.
Ne možeš si zamisliti kakvih sve grešaka ima. Nema puno takvih logova ali ih ima da si
kosu počupaš. Jedan log je stigao i kada ga pogledam sa UltraEdit-om sve je OK.
No, upload rutina odbija poslušnost. Ukrcali su se (u 5 veza) neki čudni razmaci (blankovi)
koje php ne vidi. Problem sam riješio brisajuči te razmake i upisivajuči razmake ponovno.
Neki programi ukrcaju na početak kod za slova (utf), to je nevidljivo ali radi probleme.
Riješio sam to tako što sam cijeli log kopirao u novi file. Tu još spada i otkrivanje
koji je koji stupac itd...


5. "a to zna potrajati i nekoliko mjeseci."

Ja ih nisam pitao zašto to traje tako dugo, vjerojatno ljudi imaju i drugog posla.


6. " I to sve radi nekoliko postova na forumu."

Pokušavam objasniti neke stvari ali ti ne želiš shvatiti.


7. "Prije natjecanja potrebno je upisati u MySql bazu podatke o natjecanju.
To radi glavni admin ili ja."

Kako to misliš računalo? Da čita nečije misli. Pravila i kalendar netko mora napisati.
Isto tako i ovdje treba to prepisati ali na pravilan način. Čemu raditi rutinu za čitanje
razno raznih formata u kojima se pišu kalendari. I na kraju krajeva, netko može pogriješiti.


8. "Dva dana prije natjecanja na robotu (pregled natjecanja) bi se trebalo pojaviti to natjecanje sa linkom za upload logova."

To je zato da netko može primjetiti grešku te dobronamjerno javiti da se ispravi.
U 8 godina još nitko nije pokušao uploadati falsificirani log, valjda imaju pametnija posla.
No i za to imam provjere. Može se takav log diskvalificirati ili jednostavno obrisati.
I zašto ne 2 dana, koliko bi ti stavio?


9. "Za razliku od slanja log-a na e-mail,"

Što bi se dobilo da operator može uploadati log nebrojeno puta?
Osim izbijanja novaca HRS-u za programiranje takve mogućnosti. Prije uploada može mijenjati
log koliko želi, a može i poslije uploada ali preko admina te ako admin to dozvoljava.
Jednostavno, brzo i jeftino.
Ne usudim se ni razmišljati kad bi svaki OM mogao administrirati svoj log, kakvih bi tek tada
nebuloza bilo.


10. "Program može odmah po isteku deadline-a, u 00:00:01, sekundu poslije ponoći (SEV) prikazati logove.
Postavlja se pitanje, je li izvršen CC i s kojim datumom/vremenom?"

CC se ne radi nakon uploada. Za jedan log nema smisla jer s kojim logom da uspoređuje, s onim koji će se
tek uploadati. Za sve, opet ne ide, jer nakon 1 minute server prekida rad.
Onemogučilo bi i davanje raporta o zaprimljenosti loga.
Radi čega uopće takva žurba, logovi se ionako ne smiju vidjeti prije deadline-a.


11. "Nakon što su vidljivi privremeni rezultati,"

Točno, robot je tu da implementira pravila. No mene nitko nije pitao, nešto tipa: mi bi stavili u pravila to i to, možeš li
to implementirati i po kojoj cijeni. U pravila se svašta piše, opet "pisalo je na bukvi".
Mogao bi robot čitati HRS bazu podataka i određivati automatski neke kategorije.
No što bismo s time dobili. Tu je isto moguća greška, manager bi opet trebao provjeriti jel sve OK.
Zar nije moje riješenje jednostavnije, jeftinije itd...
Uzmimo na primjer Kup Jadrana, stanica ode u portabl, gdje da robot pročita u koju kategoriju spada.
Vrlo komplicirano, podložno greškama i opet manager mora provjeravati ispravljati.


12. Ispravke prije isteka roka za slanje dnevnika su ok ali smatram da ih moraju sami natjecatelji moći odraditi.

Ma nemoj, pa kako će znati da su napravili grešku, mogli su provjeriti i prije slanja loga.


13. "Stvar se komplicira kada se radi o Wrong Call-u ili Unique.Te dvije greške program ne može razlikovati "

Da, ne želiš ponavljati, i tako izgleda da si ti u pravu. Jednostavno kažeš da to mora robot razlikovati i stvar je riješena.
E pa nije. Evo tri primjera, ti si čovjek pa pokušaj razlučiti o kojim greškama se radi i napiši kako si došao do takvog zaključka.



1. primjer Log 9A3DZT

03500     PH     2015-10-10     1432     4     9A3DZT     59     0014          9A?SJ     59     0109    

2. primjer Log 9A3BDE

03707     PH     2015-10-10     1345     2     9A3BDE     59     0011          9A1CCL     59     0048    

3. primjer Log 9A1CRR

03543     CW     2015-10-10     1308     1     9A1CRR     599     0013          9A1CQA     599     0001    






73 de Miljenko 9a2mi

9A3IV

Pa ljudi, da li je to moguće??????? Nisam Mladen Delić ali se pitam nakon opisa rada robota. Da nebi o programiranju, ja ču o autima:

Kupim auto sa motorom koji ima 4 cilindra, troši 4 litre na 100 km i povuče 220 km na sat. Ali nije baš tako i ja odem serviseru. I on kaže: Auto vam je dobar makar rade samo 2 cilindra, troši 12 litara i nemože više od 60 km na sat. Nema nikakvog razloga da se žalite i to će biti tako. Kad sam začuđen time on navede kako je završio hrpu škola, tečajeva i još navede masu mehaničarskog bljezgarenja zašto je to tako i gotovo.

Uopće me ne zanima što mehaničar kaže. ja samo vidim da li auto radi ili ne radi. Ako ne radi prijavim ga i odem drugom mehaničaru.

2mi, daj otkaz dok je vrijeme. IO HRS-a, dajte otkaz 2mi-u dok je vrijeme

73 Damir
SVE ILI NIŠTA

9A3TY

Miljenko, moram odgovoriti, jer bi netko mogao pomisliti da si u pravu.  ;D

Neću se upuštati u daljnju diskusiju s tobom navodeći tvoje riječi jer to očito nema nikakvog smisla.
Tebi je očito bitnije po svaku cijenu dokazati da si ti u pravu a svi mi koji bilo što vidimo da ne valja smo u krivu.
Ako je tvoj nivo zaključivanja sveden na to što je upisano na bukvi ja se neću spuštati na njega.

Ne znam da li nastupaš kao zainteresirani radioamater koji sudjeluje u domaćim KV natjecanjima ili kao komercijalni izvršitelj naručenog posla. S obzirom na to bilo bi dobro da se izjasniš.

Ja te doživljavam kao nekog od koga je HRS naručio određenu uslugu i za nju platio određenu sumu novca pa su i moji stavovi spram tebi i tvom uratku temeljeni na tome.

Ne znam što želiš postići s navedenim primjerima. Ne očekuješ valjda da ću reći da je 9A?SJ trebao biti UNIQUE ?  Pogotovo mi nije jasno što želiš postići sa spominjanjem primjera kojeg sam ja već spomenuo kao primjer nekonzistentnosti rada robota u prijašnjim postovima.

Potpuno je nebitno što ja ili ti osobno mislimo o nečemu. Bitno je samo ono što je definirano od strane HRS-a (i ostalih mjerodavnih institucija) i dostavljeno ti kao projektni/programski zadatak. Taj dokument bi morao biti javan i natjecatelji bi se mogli onda izjasniti o njemu i svoje primjedbe uputiti KV manageru a ako se on ogluši onda Izvršnom odboru.
Znači, prema tebi bi išlo 0, zero, nada, nič, ... poruka / primjedbi. Bio bi miran.

Iako su ti ljudi više puta rekli tebi nikako da uđe u glavu. Ti nisi sudac. Ti si programer. Nemaš ti što odlučivati da li je ovo ovako ili onako niti se imaš pravo boriti da bude ovako ili onako. Da ponovim, kad kažem ti onda mislim na tebe kao naručenog izvršitelja konkretnog posla.

Ako je netko krivo definirao projektni zadatak onda ti nisi ništa kriv.

Ali ako ti nisi u stanju obraditi 4005 veza u 60 sec. onda si kriv.
I tu nema pomoći.
(Osim ako budeš radio for-free pa ću ti rado pomoći ;D
Jer uz dobru organizaciju podataka i odgovarajuće predradnje ovolika količina podataka se obradi u par sekundi.)

Tvoje inzistiranje na tome da se sve treba raditi ručno kroz admin zahvate mi je sve smješnije.
Admin zahvati moraju biti izuzetak a ne pravilo.

Izvorni logovi su svetinja i ne smiju se modificirati. Nitko nema pravo mijenjati sadržaj loga koji je natjecatelj poslao.
Službeni rezultati bez pohrane izvornih logova su najobičnija lakrdija.
Uploadanje logova nakon isteka roka za dostavu loga (bez obzira tko to radi) je najobičnija lakrdija.
Naknadno dopunjavanje podataka bazirano na telefonskim i inim pozivima natjecateljima je najobičnija lakrdija.

P.S. Možda bi bilo dobro da provjeriš i svoju logiku jer se 9A1CQA i 9A1IW ne razlikuju u dva već u tri znaka.

73 de Ivo, 9A3TY

9A6JRZ

Prevelika su očekivanja od shared servera ;) (možda je i VPS, ali opet prevelika očekivanja).

Ne bih pisao o svojim iskustvima, samo ću napisati da se slažem s Miljenkom ...
73 de 9a6jrz

DK8ZZ

A stari Krešin server radio kao Doxa, nije mu smetao shared server i te gluposti.
Rezultati (pricam o 9ACW) uvijek tu, brzi, korektno odrađeni.

Smanjenje broja takmičara u takmičenjima proporcionalno se povećava svakim daljim mjesecom odlaganja rezultata.
Evo, rezultati 9ACW su tek prije neki dan postali službeni.  ::)

Obrada logova - nula punata. Iliti u ništa. :)

73, Zrinko (Zik) DK8ZZ, VE3ZIK, YT3ZZ

9A3TY

Citat: 9A6JRZ  u 26. Studeni 2015, 09:12:10
Prevelika su očekivanja od shared servera ;) (možda je i VPS, ali opet prevelika očekivanja).

Ne bih pisao o svojim iskustvima, samo ću napisati da se slažem s Miljenkom ...

Tvrdim da se može napraviti da nakon zadnjeg uploada (ili zadnje admin izmjene) sve može biti gotovo u 60 sec ?
Ima li netko voljan staviti neku lovu na stol i kladiti se u suprotno ? Možda netko od ovih što se slažu s Miljenkom? Ili sam Miljenko?
(Nečija će lova biti "Gone in 60 sec"  ;D )

73 de Ivo, 9A3TY

9A2MI

Hvala ti 9A6JRZ, puno ti hvala. Ovo mi puno znači.

9A3ty je nedokaziv.
Najpametniji je i zna sve što su drugi zaboravili i što će tek
pokoljenja znati.
73 de Miljenko 9a2mi

9A2MI

Citat: 9a3ty  u 25. Studeni 2015, 19:47:03
Admin zahvati moraju biti izuzetak a ne pravilo.

Od 4005 veza u Kupu Jadrana unio sam ravno 7 admin zahvata, za sada.
Još se čeka odluka povjerenstva.
To je 0,0017 posto. Dakle, mibot je obradio 99,9983 posto automatski.

Zar to nisu izuzeci!?

I nije mi jasno, zašto mibot MORA obraditi sve logove u 60 sekundi.
Zar će rezultati tada biti točniji, bolji, ispravniji ili što već ne!?
73 de Miljenko 9a2mi

9A6JRZ

Nema potrebe za klađenjem ...
Računala su jaka koliko i najslabija komponenta. I obično je to HDD.
Gledali smo što se događa s računalom dok sin igra GTA V - uglavnom imam dojam da sve odradi grafička sa svojih 512 bita (procesor do 25% memorija do 50% s tim da je do 25% bez GTA V).

Lako opteretim HDD do 100%, mogu i memoriju dosta opteretiti, ali procesor nikako (znam da bi procesor mogao bolje iskoristiti da imam SSD).

Isti problem imamo i na lokalnom serveru (xeon, 8 GB DDR3 i nekoliko SAS diskova, LAN 1 Gbps- ne sjećam se specifikacija servera).
Kada nam je stari server (xeon) postao spor kupili smo gore navedeni server, ali od ubrzanja skoro ništa (nismo si mogli priuštiti višeprocesorski server).
Sve se izvršava na serveru preko procedura, ali nama je to sporo (zbog najsporije komponente - SAS diskova).
A obračun potrošnje plina ili vode nije toliko kompliciran jer se prije samog obračuna naprave sve provjere (da se provjere ne rade kada se pokrene obračun).
I opet to potraje satima ...

Ali kada bi se to obrađivalo uz restrikcije kao što je to kod shared servera gdje bi nam bi kraj ;)

------------------------------

Neka svako čuva svoj log, zašto da ja to plaćam.

Najbolja stvar bi bila u tome da Miljenko obradu napravi na localhostu (tj. na svom računalu) i na web pukne samo rezultate kao html/htm file-ove.
Ionako rijetko tko razumije kako se to obrađuje.

Toliko od mene
73 de 9a6jrz

9A7DR

#43
Miljac,

U potpunosti te razumijem i podržavam, znam da znaš znanje.
... s druge strane isto tako u potpunosti razumijem da je najlakše pametovati, a zasukati rukave je uglavnom problem, najte kaj zameriti ukoliko se osjećate prozvani.


73, Davor 9A7DR
DX-anje, kontesti i lemilica smiruju živce...

9A3TY

Računala su jaka onoliko koliko je jak softver koji ih pogoni.

To što se industrija softvera svela na što brže izbacivanje novih aplikacija pa svi rade u RAD (Rapid Application Development) sustavima ne znači da je programski kod koji takvi sustavi generiraju optimalan i da se ne može ubrzati.
Dapače, pravilo je da su takvi programi vrlo rasipni po pitanju računalnih resursa.

Miljenko, naravno da ne mora u 60 sec. Ali ti si rekao da ne možeš napraviti da odradi cross check nakon svakog pa i nakon posljednjeg uploada loga jer kako ti kažeš : "Za sve, opet ne ide, jer nakon 1 minute server prekida rad.". Ja samo tvrdim da može. I onda se npr. ne bi trebalo čekati da ti klikneš na cross check da bi se vidjeli prijavljeni rezultati jer bi isti bili dostupni jednu sekundu nakon isteka roka za predaju dnevnika.
Naravno da to nekima ne odgovara. Naročito onima čiji dnevnici se uploadaju i/ili mijenjaju nakon isteka roka.
Čemu onda pravila natjecanja?

Neka svatko čuva svoj log? Pa nije problem u čuvanju svog loga nego u vjerodostojnosti natjecanja.
Možemo mi to i drugačije, tako kako vi kažete, ali onda nemojmo sve skupa zvati natjecanjima već npr. hamfestima.

Nije problem zasukati rukave. Zato sam i pitao hoće li netko staviti lovu na stol. Ni Miljenko ne radi džabe.  ;D
A HRS da je pametan mogao je raspisati natjecanje za najbolji HFrobot među srednjoškolcima. Pobjedniku na poklon laptop, HRSu ušteda svake godine ... koliko ono kunića?, besplatna promičba radioamaterizma među mladima, poticanje tehničke kulture, ...

Točnost? Točni, bolji, ispravniji rezultati? Ako obračun nije 100% u skladu s pravilima natjecanja kao i da ga nema. Onda možemo slobodno prihvatiti i prijavljene rezultate bez ikakve obrade. Bit će, ovako odokativno, barem 98% točni.

73 de Ivo, 9A3TY