Блог пользователя xinchengo

Автор xinchengo, история, 3 года назад, По-английски

Codeforces has recently adopted Cloudflare for security reasons. As a consequence, it brought some trouble to some remote judging providers. For example, the most popular ones, Vjudge and Luogu, can no longer scrape problem statements. Many Chinese competitve programmers are used to submitting Codeforces problem remotely, either to look for translation or to track their progress.

Although bot accounts do cause problems (topping the 'Most solved' page), they never become dominant. Instead, remote judging services are just like CLI clients, they only increases the popularity of Codeforces. Users of remote judging services make up a large part of Codeforces contestants. Codeforces has always been generous and provides an extensive set of APIs, which is uncommon among online judges. So I don't think Codeforces is cracking down on remote juding services on propose.

Is it possible for Codeforces to release an API for problem statements or specially treat bot accounts? Please be friendly to remote judging services.

Update: Luogu seemed to have fixed the issue.

  • Проголосовать: нравится
  • +264
  • Проголосовать: не нравится

»
3 года назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится

Auto comment: topic has been updated by xinchengo (previous revision, new revision, compare).

»
3 года назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

However, codeforces does not actively stop remote judges, remote judges are turned down due to the cloudflare shield(prevent codeforces from ddos attack).

»
3 года назад, скрыть # |
 
Проголосовать: нравится +77 Проголосовать: не нравится

Honestly, I don't understand why Codeforces should support different judges using its problems. They generally decrease the number of actual users of the platform itself. You cannot see different submissions of the same user and the "Most solved" page is broken, as you mentioned already.

  • »
    »
    3 года назад, скрыть # ^ |
     
    Проголосовать: нравится -29 Проголосовать: не нравится

    As xinchengo stated, they do it for translation or to track progress.

    • »
      »
      »
      3 года назад, скрыть # ^ |
      Rev. 2  
      Проголосовать: нравится +11 Проголосовать: не нравится

      You can track progress here, am I missing something?

      For the translations, you can translate the statements and then add a link to Codeforces. I don't see the issue and I am genuinely curious what is the appeal of these third-party judges.

      • »
        »
        »
        »
        3 года назад, скрыть # ^ |
         
        Проголосовать: нравится +16 Проголосовать: не нравится

        I think s/he probably meant tracking progress across many different judges. CF does a good job in helping you track your progress (solutions/submissions), but only for the problems in CF.

        I once also considered using VJudge exclusively for practice just for this reason. Apart from the countless topic-specific contests, VJudge has this "Workbook" feature, where we kind of get a collection of problems (collected by others) from different OJs on a particular topic/difficulty. It seemed convenient to grind on those problems and track progress instead of hunting across multiple OJs. But unfortunately, VJudge doesn't allow automatically parsing submissions from other OJs as far as I'm aware of. So we need to submit through VJudge for this tracking of progress across different OJs method to work.

  • »
    »
    3 года назад, скрыть # ^ |
     
    Проголосовать: нравится +6 Проголосовать: не нравится

    A possible reason could be: somesites may not be able to access fast enough from everywhere on the earth. Maybe codeforces already does really a good job, but accessing other sites like UVa in China is painfully slow. This time remoting judge is good choice I think.

»
3 года назад, скрыть # |
 
Проголосовать: нравится -7 Проголосовать: не нравится

I think a good solution would be allowing people to link codeforces account using oauth to Vjudge or Luogu so that they can still track progress and get translations, and when they submit problems on the other OJ, it will submit using their account token or whatever.

»
3 года назад, скрыть # |
 
Проголосовать: нравится +55 Проголосовать: не нравится

Cloudflare is garbage, if you are not on home ip with 1000x gigatracking fingerprint cookies enabled it endlessly harasses you with the "Checking if the connection is secure" page. It's unbelievable how many person-hours they've wasted. The financial value of that time is for sure in the millions USD, if not higher.

»
3 года назад, скрыть # |
 
Проголосовать: нравится +17 Проголосовать: не нравится

Cloudflare is really annoying. The only meaning of it is to make you click the stupid button to verify you are a human when you are hurry to sumbit your code.

»
3 года назад, скрыть # |
 
Проголосовать: нравится +81 Проголосовать: не нравится

Explain that to people who write bots that spam solutions and destroy testing. If allowed in contests, every contest will be unrated because of queue issues. Or, even more likely, people who care about rating so much that they are prepared to ruin the fun for everyone will use bots to spam solutions to make the round unrated when they do badly in a round. And since somebody always does badly in a round and there is no shortage of stupid people...

This protects cf from ddos with a small cost for normal users. Yes, it seems that the cost is bigger for people who use remote judges. Pity. I don't care tbh.

  • »
    »
    3 года назад, скрыть # ^ |
     
    Проголосовать: нравится +16 Проголосовать: не нравится

    Allowing other online judges is controversial, but the comments in this blog don't mention the effect it has on other bots which are for using the CF API, which don't even make submissions (copy pasted from my other comment):

    I agree, the anti-DDoS is becoming not just a problem for human users but for legitimate bots trying to access data as well. I've noticed that both the USACO TLE bot as well as a lockout bot I'm hosting give CF API error ever since the change happened, so I think it's related to that. MikeMirzayanov could you please fix this or suggest a workaround?

    As for the solution-spamming bots, I think a more lenient limit on number of submissions per user would work? For example no more than 10 submissions per contiguous 10-minute window (there was some other online judge that did this but I forgot which) should be plenty for human users. If Codeforces will still support the other online judges, perhaps these bot users should be verified before they are allowed to make more submissions.

    The new change definitely helps keep Codeforces usable for all its users, but it's good that the community is bringing up these issues so that Mike is aware and can hopefully find a better fix.

»
3 года назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

For websites like vjudge, archiving from submission records is good enough, as it doesn't increase the judge queue and can track the progress. Submit by bot account is a waste of judge resources.

»
3 года назад, скрыть # |
Rev. 2  
Проголосовать: нравится +8 Проголосовать: не нравится

If the problem to solve with Captcha is to prevent bots doing DDOS attack during contest, why don't we only enable the captcha during the contest and disable it when there's no active contest?

Not sure if this is a good idea but at least during no contest is running, then remote judge like vjudge still can be able to access the crawler like usual right?

  • »
    »
    3 года назад, скрыть # ^ |
     
    Проголосовать: нравится +8 Проголосовать: не нравится

    This is a really good idea. I also want to add something to it.

    I believe that captcha should be enabled at least 30 minutes before any contest starts in order to make speedsolvers able to open the problem as quickly as possible.