Live data from Hacker News

How I got banned from Codewars

medium.com

11–20 of 49 posts

Re: How I got banned from Codewars

#11

Would have been nice to hear about the bit where they actually got banned from Codewars. (Rather than the bit where they found a way of cheating at Codewars. Also, does that still work, or have the Codewars people now patched the bug?)

I agree, it seems poor sportsmanship on the part of Codewars. I mean they could have a special leaderboard for those who "hack" the game in one way or another. It seems in the best interest of the software itself, but also of the community, to foster this kind of creativity.

IIRC Starfighter explicitly okayed exploits that didn't "ruin the fun" (e.g. don't trash another user's data, DoS the game, etc).

Re: How I got banned from Codewars

#13
post #7

Earlier quoted context omitted.

Still works[0], I just had to rename mymethod to the tested method. Pretty poor show from CW. [0] - http://imgur.com/a/QC1gf

they could just use a different interpreter, i.e disable some monkeypatching.

you mean sandbox the interpreter that the kata runs in? Extract the value and then de-serialise it for an equality check in another instance of the interpreter?

Re: How I got banned from Codewars

#14
post #10

I'm surprised that the test for pass/fail is within the interpreter, rather than a string match against the stdout of a sandboxed interpreter.

Yes indeed, does that mean similar katas across multiple languages have to be fully duplicated? I'd have expected an external checking system (à la TAP), doing everything internally with languages like Ruby or Python seems like a pretty bad idea.

Re: How I got banned from Codewars

#15
post #7

Earlier quoted context omitted.

Still works[0], I just had to rename mymethod to the tested method. Pretty poor show from CW. [0] - http://imgur.com/a/QC1gf

they could just use a different interpreter, i.e disable some monkeypatching.

I'm not sure disabling monkeypatching would suffice, couldn't you then just create your own type equal to everything and return that? I assume assert_equal just does `a == b` internally so `a` could be an AlwaysEqual instance rather than a monkeypatched nil.

A more sensible alternative would probably be to serialise the assert_equal parameters and check the results externally.

Adding negative tests (using `not a == b` to avoid the same monkeypatching of !=) would also help

Re: How I got banned from Codewars

#17
So the Ruby guys have an unfair advantage. As a non-Ruby guy hope they fix this. But it still feels bad. I only found that site a few days ago and it looked all flashy compared to codeforces but now - It raises severe questions about its accuracy. Kinda like Chrome dinosaur high scores.

Re: How I got banned from Codewars

#18

Would have been nice to hear about the bit where they actually got banned from Codewars. (Rather than the bit where they found a way of cheating at Codewars. Also, does that still work, or have the Codewars people now patched the bug?)

I agree, it seems poor sportsmanship on the part of Codewars. I mean they could have a special leaderboard for those who "hack" the game in one way or another. It seems in the best interest of the software itself, but also of the community, to foster this kind of creativity.

They're not very chivalrous to be sure. I managed to break out of their sandbox and sent them a proof with a repro. A year later the glaring hole is still there, and my account was banned.

Re: How I got banned from Codewars

#20

So the Ruby guys have an unfair advantage. As a non-Ruby guy hope they fix this. But it still feels bad. I only found that site a few days ago and it looked all flashy compared to codeforces but now - It raises severe questions about its accuracy. Kinda like Chrome dinosaur high scores.

If they allowed FORTH it would be even worse -- everything in FORTH is redefinable -- you could make 1 equal to 2 if you want.
Post reply on HN