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

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, 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!