4 ms·
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.
by AndrewDucker 9y ago
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?)
- superplussed 9y agoI 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.
- andreareina 9y agoIIRC Starfighter explicitly okayed exploits that didn't "ruin the fun" (e.g. don't trash another user's data, DoS the game, etc).
- fishnchips 9y agoThey'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.
- deadowl 9y agoI didn't know they started banning people.
- sleepychu 9y agoStill works[0], I just had to rename mymethod to the tested method. Pretty poor show from CW. [0] - http://imgur.com/a/QC1gf http://imgur.com/a/QC1gf
- jlebrech 9y agothey could just use a different interpreter, i.e disable some monkeypatching.
- whyever 9y agoThey could just add a test that makes sure trivial comparisons still work.
- sleepychu 9y agoyou 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?
- masklinn 9y agoI'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