Live data from Hacker News

How I got banned from Codewars

medium.com

21–30 of 49 posts

Re: How I got banned from Codewars

#22

Earlier quoted context omitted.

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.

I didn't know they started banning people.

Re: How I got banned from Codewars

#23
post #21

I read the blog post but I didnt quite understand it. Specifically the coding part. Can someone break it down for the noobs please?

His solution always returns nil, and forces all comparisons with nil to be true.

Thus, every time the reference result is compared against the result of his solution, both are considered equal, leading the validator to conclude that the solution is valid.

Re: How I got banned from Codewars

#24

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.

I don't believe there's anything that would prevent that in Ruby, though I'm sure the Forth way would be more elegant.

Re: How I got banned from Codewars

#25

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.

Is that why nobody uses it anymore? Only thing I know about it is that it used stack like expressions. (kinda like RPN but for everything)

Re: How I got banned from Codewars

#26
post #24

Earlier quoted context omitted.

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

I don't believe there's anything that would prevent that in Ruby, though I'm sure the Forth way would be more elegant.

The other sites don't seem to have this problem as they compare STDOUT. CodeWars should also do something like this.

Re: How I got banned from Codewars

#27
post #21

I read the blog post but I didnt quite understand it. Specifically the coding part. Can someone break it down for the noobs please?

Ruby is a very dynamic language where other parts of code can change fundamental operators.

Code wars was loading up the solutions as modules, running them with data, then checking the returned result using the == operator.

Paul-Armand Assus changed the way the == operator functioned so it would always return true.

Then the checks would pass without any actual solution code.

Re: How I got banned from Codewars

#28
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.

I think it's a bad idea for most languages. Even with C, C++, Go, Rust, or Swift, it's pretty trivial to exploit anything running within the same process. Any user-submitted code needs to be isolated from any code you need to be able to trust.

Re: How I got banned from Codewars

#29

Earlier quoted context omitted.

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

Is that why nobody uses it anymore? Only thing I know about it is that it used stack like expressions. (kinda like RPN but for everything)

I think nowadays more interpreters/compilers are being written for FORTH than stuff in the language itself.

Re: How I got banned from Codewars

#30
I reported multiple bugs in Codewars for Javascript, and created one of the hardest katas with anti-cheat here(https://www.codewars.com/kata/mystery-function-number-2). The founder remarks that Codewars has sanity checks if you are meddling with the test system and will punish you if you abuse it too much. Testing out one or two cheats is okay, using it for too much katas will get you banned.
Post reply on HN