WSPR Challenge


Phil vk7jj
 
Edited

People say they have missed the original WSPR Challenge so I wizzed up a look-alike.  Not sure what I've missed by way of pages and functionality, the WayBack machine doesn't have the whole site so if anyone can assist with any comments about what I've missed, that would be good.  Bug reports welcome; one issue is it's no longer possible to report duplicates as per the original err column they used.

http://wspr.rocks/challenge/

 


WA2TP - Tom
 

Hi Phil,

Looks identical. On first note, the new WSPR challenge page is quite a bit more responsive than the old page. 
Also note, on the old page when counts for 20m peak, it would disappear from the graph because it exceeded the y axis limit.

That doesn’t seem to be an issue on your site. 




On Mar 5, 2023, at 5:50 AM, Phil vk7jj via groups.io <vk7jj@...> wrote:



[Edited Message Follows]

People say they have missed the original WSPR Challenge so I wizzed up a look-alike.  Not sure what I've missed by way of pages and functionality, the WayBack machine doesn't have the whole site so if anyone can assist with any comments about what I've missed, that would be good.  Bug reports welcome; one issue is it's no longer possible to report duplicates as per the original err column they used.

http://wspr.rocks/challenge/

 


Phil vk7jj
 

Thanks for checking it out Tom, barring bugs or other reported issues it will only be incremental changes for the next week or so.

Don't know what to do about sussing out the bad decodes and reporting them, will play around with that some time, don't even know how dups are getting through wsprnet.org, oh well.

73


Phil


Erwin - PE3ES - F4VTQ
 

Dupes get past the wsprnet.org filtering when posted at "exactly" the same moment.


WA2TP - Tom
 

I’ve noticed dupes only when I'm also running an instance of wsjtx, which I have been doing lately for 40,20,10 for certain times of the day. 

I have been Testing some filtering and LNA combinations using the 7300. 

On Mar 6, 2023, at 4:44 AM, Erwin - PE3ES - F4VTQ via groups.io <waterwin2@...> wrote:

Dupes get past the wsprnet.org filtering when posted at "exactly" the same moment.


Phil vk7jj
 
Edited

Hi Erwin, I don't think that is possible from a code processing point of view.  In the case where two uploads arrived simultaneously, even on a multi-threaded machine there is only a single processor thread servicing that bit of code, so 'that bit of code' always gets executed.  It can't just 'go into the database'.

There is quite a bit of processing before it gets to that point such as the event driven TCPIP port hardware and caching that does the initial processing on the ethernet card before the data is passed to the computer's PHP code, in a nice neat queue.

Here is their db dup checking code as last I knew; you can see that nothing can get into the db without the dup check.

I've been looking into the problem and there does seem to be a common denominator, all the dupers so far are those who run multiple different versions of 'uploading software' including home-brew.  Yes, there are 'lock, release and rollback' timing issues with database engines but if that is what's happing it would occur regardless of the version of upload software, so the version issue seems a logical pointer to 'something' but I guess only Gary or Bruce etc would have the knowledge and opportunity to chase it up.

Phil

 

 $dupecheck = "SELECT Spotnum from spots

                 WHERE Reporter='$rcall' AND CallSign='$tcall'

                       AND Date=$datestamp AND Band=$band;

 

  $dupes = dbqarray($dupecheck);

  //if ($verbose && !$dupes) echo "$dupecheck\n";

  if (count($dupes) > 0) {

    //logfile("debug.txt", $dupecheck . " found " . count($dupes) . " dupe(s)\n");

    if ($verbose) echo "Found " . count($dupes) . " dupe(s)\n";

    return 0;

  }

 

   $query = "INSERT INTO `spots`

                           (`version`, `Date`, `Reporter`, `ReporterGrid`, `dB`, `MHz`, `CallSign`, `Grid`, `Power`, `Drift`, `Band`, `distance`, `azimuth`, `code`)

 

                   VALUES ('$version', $datestamp, '$rcall', '$rgrid', $snr, $freq, '$tcall', '$tgrid', $tdbm, $drift, $band, {$spotdist[0]}, {$spotdist[1]}, $mode)";