fusiongrokker

Entries for month: October 2007

2 Easy Ways To Make CAPTCHA Easier For Your Users

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:

[viewcode] src="captcha.cfm.txt" showsyntax=no geshi=cfm[/viewcode]

Step 2:

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.

Posted in HTML/CSS | Misc October 31 2007

Firebug and GMail don't play nice together

This morning when I logged into GMail I saw this alert:

GMail alert for Firebug users

The "Fix this" link takes you to Google's Help Center page regarding the Firebug & GMail issue.

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.

Posted in Misc October 30 2007

And the award for "Worst ColdFusion RSS feed" goes to…

Worst CF RSS Feed EVER!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…

With a real post to spam ratio of at least 1:3, the winner is the Wordpress.com ColdFusion tag feed.

Congratulations, you worthless piece of junk. Display it with honor.

Posted in ColdFusion | Meta October 29 2007

CFMenuCal alpha1 for ColdFusion MX7 now available!

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.

This is all just a roundabout way of saying that CFMenuCal alpha1 for MX7 is now available at RIAForge! I've put the code into the /versions/alpha1 for MX7/ folder in the Subversion repository, or if you're not interested in dealing with SVN, you can just download the zip!

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:

[viewcode] src="cfmenucalalpha11.cfm.txt" showsyntax=no geshi=cfm[/viewcode]

After you have your structures defined, just drop them into the menu array by making sure they're all appended:

[viewcode] src="cfmenucalalpha12.cfm.txt" showsyntax=no geshi=cfm[/viewcode]

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:

[viewcode] src="cfmenucalalpha13.cfm.txt" showsyntax=no geshi=cfm[/viewcode]

The "exception" key is the "reason" that no meal is needed for the date, and the "date" key is the day of the month that the exception is for.

Don't forget to append all of your exception structures to the exception array:

[viewcode] src="cfmenucalalpha14.cfm.txt" showsyntax=no geshi=cfm[/viewcode]

And lastly, a few settings to define what month/year you want your calendar built for, and how close you want your dishes and side-dishes:

[viewcode] src="cfmenucalalpha15.cfm.txt" showsyntax=no geshi=cfm[/viewcode]

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.

Bon Appétit!

Posted in CFMenuCal October 27 2007