The assert_eq!() calls are calls to the assert equals macro: https://doc.rust-lang.org/std/macro.assert_eq!.html In rust macro functions look like functions but end in a bang(!), it's not using ! to mean negate.…
Cheers for the feedback. I gave up on it quite a while ago but I could revisit it some time and try out some of your ideas. The main issue was that some browsers render the frames so slowly it was almost impossible.…
I tried making an animated gif CAPTCHA a few years back, relying on persistence of vision (to try and get round the whole screenshot and process botting issue): http://sandbox.palmnet.me.uk/gifcaptcha/index.php Ended up…
Arc90 Labs had a similar thing around the same time too: http://lab.arc90.com/2009/07/09/hashmask-another-more-secure...
The assert_eq!() calls are calls to the assert equals macro: https://doc.rust-lang.org/std/macro.assert_eq!.html In rust macro functions look like functions but end in a bang(!), it's not using ! to mean negate.…
Cheers for the feedback. I gave up on it quite a while ago but I could revisit it some time and try out some of your ideas. The main issue was that some browsers render the frames so slowly it was almost impossible.…
I tried making an animated gif CAPTCHA a few years back, relying on persistence of vision (to try and get round the whole screenshot and process botting issue): http://sandbox.palmnet.me.uk/gifcaptcha/index.php Ended up…
Arc90 Labs had a similar thing around the same time too: http://lab.arc90.com/2009/07/09/hashmask-another-more-secure...