I have made a few small changes to JSSpamBlock, my WordPress spam detection plugin. I found that the plugin had some problems with custom WordPress themes, since some theme developers apparently don’t include the comment form hook. I have added instructions on how to call JSSpamBlock manually from the template file. I have also fixed the plugin for older versions of WordPress which did not have the wp_die() function.
The plugin is now hosted at the WordPress Plugin Directory. You can find it’s page here: JSSpamBlock 1.2. If you have a working installation, there is no reason to upgrade.
I got my first comment spam on this blog the other day. It inspired me to try an idea I got a few months back. My theory was that these bots aren’t very smart - they are programmed to post as many comments as possible on as many sites as possible, hoping that a handful of these comments would get past whatever system the blogger was using to prevent spam. I hypothesized that these bots did not execute JavaScript, and that by requiring some JavaScript to run in the browser I would be able to check with reasonable accuracy weather the comment was submitted by a human or a bot.
I wrote up a simple plugin to test the theory. I checked the logs to find that I was right. In fact, most of the bots that were spamming my blog did not even include the hidden element, which indicates that they were posting to the wp-comments-post.php file directly rather than accessing the form first. The bots that did access the form did not execute the JavaScript and therefore their comments were blocked. Since the trick only involves JavaScript, most users will not even notice the difference. Users without JavaScript simply need to follow the given instructions to copy a number to a text box in order to prove they are human. This is what users without JavaScript will see:

If you are interested in using JSSpamBlock on your own blog, here are the download links:
There have been a few times - and there will certainly be more - where I need to generate a calendar through JavaScript. Although there are a few good open-source JavaScript calendars out there, there is always a trade-off between flexibility and simplicity. The goal of popCalendar was to maximize flexibility without compromising simplicity. To do this, it is built in a modular way so that it can be extended, but it is still simple to use.

Currently, there is only one component: the calendar itself. In a future release, I will add a component to allow the calendar to be used as a date input for a text input.
It is still in beta, but in my brief testing I didn’t find any bugs. Here are some links if you are interested in using it for yourself (see readme.txt for license):