It occurred to me the other day, while filling out a CAPTCHA to leave a comment on a friends blog, that there is further room for improvement in most implementations, putting aside for the moment the fact that there are better alternatives. But if you have ever used a CAPTCHA before, chances are you've asked yourself this question: Is it case-sensitive?
And is it? Who knows?!
The solution!
Hardly anyone goes out of their way to indicate whether the CAPTCHA response is case sensitive, and, even worse, some even use fonts where the lower-case-L and upper-case-i -- and this isn't the only set of easily confused letters -- look essentially the same. As long as they're not getting spammed, that's good enough for them. Sadly, the solution is so easy that the careless among us are only hurting themselves. A simple CSS addition can make a world of difference.
Step 1:
Only use capital letters. This alone won't solve your problems, but capital letters are much more easily distinguished from one another in most fonts. Even if you don't have a nice pretty configuration screen for your CAPTCHA asking for a set of characters to choose from, I guarantee you it's in the code and would be a piece of cake to change. For example:
Add a text-transform property to your CSS for the CAPTCHA response input field. Specifically, text-transform: uppercase;. This takes away almost any doubt a person might have over case sensitivity. Try it yourself; type some text in this box and see how much better life with CAPTCHA can be:
Extra credit:
Add a small line of text next to your CAPTCHA explaining that case doesn't matter. If you have the ability, choose a font with unambiguous characters.
Sure enough, I disabled Firebug for mail.google.com, and it's been nice and snappy ever since. I emailed the same information to Ray so that maybe they can fix the root cause -- if it's in the Firebug code and not the GMail code -- instead of just creating this workaround.
I subscribe to a lot of RSS feeds. A ton. More than I can possibly keep up with. And I've just gotten so fed up with this one feed in particular that I'm not even going to continue reading it, despite the good posts that it occasionally contains. Click through for the winner.
And the award for worst ColdFusion RSS Feed goes to...
When I wrote yesterday's post asking whether I should continue putting off porting the alpha1 code to pre-ColdFusion 8 syntax, I pretty much knew what the answer would be. It took me less than an hour to go through the whopping 9 files and convert things like --, <=, {}, and [] into =x-1, LTE, StructNew, and ArrayNew; and I'm going to have my hands full with the rewrite and new features for at least a few more months.
It includes a readme.txt file that explains how to configure the application, but I'll give a bit more detail here. Everything you need to edit is in config.cfm.
The first thing you need to do is create a menu (think restaurant-style). Your menu is an array of meal structures. I've left some example data in the code so you can see how it's intended to be set up:
Exceptions are what allow you to skip a specific day, and you can put the reason on your calendar. You configure them with the same general idea as setting up your menu:
When you need a new calendar for the next month, the only things you need to change are your exceptions and the month/year variables. Then all you have to do is refresh the page (or click the randomize button - same thing) until you get a calendar you like.