1.25 reCAPTCHA interface in Emacs Lisp ====================================== 2013-01-12 Following some ideas thrown around in ‘#emacs’ (and which can also be seen in Nic Ferrier's blog post regarding his plans for the year) I took a quick look at reCAPTCHA. Google acquired reCAPTCHA some time ago and most people are familiar with the mechanism: it stops spam by providing a simple way for webmasters to add a CAPTCHA (https://en.wikipedia.org/wiki/CAPTCHA) that stops automated harvesting and submissions, in this case with the side-effect of helping in the transcription effort of old books. -=******************************************************************+- :%@@@@@@#*@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@%: :%@@@@*.-**.=+@@@@@@@@%%-.*@@@@@@@@@@@@@@@@@@@##@%#%@@@@@@@@@@@@@@@@%: :%@@@@*:+=#=+:++%++%+++*--*@@@@@@@@@@@@@@@##@@%+@*++@+*%@@@@@@@@@@@@%: :%@@@@%@@@@@@@#+#==*#*%@@@@@@@@@@@@@@@@@@@+**##+##**@=#=@@@@@@@@@@@@%. :%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@+#@@@@@@@@@@@@@%. :+#########################################%#####%#####%############*. :=+************************************=..:--:.....:-:................ .#%%@%***##*#*##**%*****%****###**%%%%@#.:=++=:.:**+=*#=.............. .*#%%%%%%%%%%%%%%%%%%###%#%###%%##%%%%%*.:-++=:.##.---===---==::...... .*#*#%@#%#%%%%%%%%%#@@@@@@@@@@@@@@@@@@%*.:-++=:.+%----+-::----:::.:... .*@%%%@%%%%%%%%@%%%#@@@@@@@@@@@@@@@@@@@*.:-*#=:..-++++=..::::.--::-:.. --++++=+++++++++++++==================+-..:::::...........:::.:..:.:.: The code itself is still sort of rough - although it now uses the customisation infrastructure and is package-ready - but I've uploaded it to github: take a look at the reCAPTCHA Emacs Lisp interface repository (https://github.com/fsmunoz/recaptcha). There are two main functionalities provided by reCAPTCHA 1. reCAPTCHA “proper”, as described above. 2. reCAPTCHA mailhide, that uses a similar mechanism but aimed at reducing automated email harvesting: it encrypts email addresses and requires a CAPTCHA to show the plain-text version. This (or at least a subset of it) could be of interest to aidalgol's elwiki, an ambitious project that aims to create a Wiki engine on top of elnode (which is absolutely brilliant stuff IMO, I am generally averse to web development but elnode is quite fun to work with) - even if only as a general reference. For the mailhide validation it uses Markus Sauermann's aes.el (https://github.com/Sauermann/emacs-aes), without which it wouldn't work at all without external dependencies. I would like to thank Markus for his help in debugging part of the code and even changing ‘aes.el’ to add support for the padding mechanism that I needed!