Tuesday, October 19, 2010

I am creating a new clip with the same song using real-life images of real programmers.

If you wish to take part in the new clip, just take a picture of yourself or friends depicting one of the images in the current clip (e.g. frustrated in front of the computer, juggling your mouse and keyboard, looking very boss-like, crying, passing out, etc) or another image that could fit the clip.

You can use a self portrait arm or just ask your friend to take a picture of you

By sending your pictures you state that 1) The pictures are yours, 2) you and the people that appear in the picture agree to have the picture used in the remake of "And So You Code" (using the same music and lyrics and some of the original images)

Credit will be given to every picture owner (unless that person request to stay anonymous).

With your pictures we can create a very authentic programmers clip.

I cannot guarantee that every submitted picture will be included in the clip.

Thursday, October 14, 2010

You may not know what CAPTCHA truly means or what the acronym stands for but most probably you have been using it more than once in various web forms.

CAPTCHA stands for Completely Automated Public Turing test to tell Computers and Humans Apart, which in simple words is it a sort of a challenge test that is intended to make sure the party that responds to the challenge is human and not a machine.

The common use for CAPTCHA in submit forms is an image showing a sequence of randomly distorted and etched over characters which most computers are not able to identify the distorted characters. In most cases only humans can decipher the characters in the image. So the test is very simple, if the typed in characters sequence match the sequence used to generate the CAPTCHA image, then most likely the entity that typed in the sequence is human and not a machine.

CAPTCHA is used to avoid spamming web servers by automating the submission process. The requirement for a mandatory parameter which is dynamically changing and cannot be resolved by a machine makes such automation impossible.

If you are creating a browser-based application which utilizes regular HTTP posts for server interactions, and there is a risk of users to abuse the option of data submission, it is advisable to add a CAPTCHA image recognition module in your submit forms.

When creating or choosing a CAPTCHA module, you should take into consideration the following principles and guidelines.

Technology Guidelines

The first, somewhat trivial guideline, is to make sure the submit process cannot be completed without fulfilling the CAPTCHA challenge. There are cases in which CAPTCHA module is placed as part of the submit form, and the page scripts prevents completing the submit process, but the data can still be submitted by generating the HTTP Post URL eternally.

Keep the string comparison logic on the server side. Do not pass the expected string to the client to make the comparison resolution on the client side. This can be easily tracked down and utilized for automating the submission.

Avoid generating the Image on the server and stream it directly to the client. Keeping a physical copy of the image is redundant.

Make the image generation truly random. Some take the easy path of producing a large collection of pre-generated images. Pre-generated images can be traced and logged b ya malicious end-user to later on be used for automatic submission.

Usability Guidelines

From the end-user point of view CAPTCHA is just a hassle. And when the end-user fails to complete the challenge successfully due to various difficulties, the experience becomes very negative.

There are many libraries and modules that produce distorted and noise covered characters. Some produce too much distortion that even most humans cannot decipher. Make sure the text can still be discerned.

Do not use mixed characters cases. Do not have both lower case and uppercase appear in your CAPTCHA images, many times it is quite difficult to discern lower lowercase c or upper case C. Either choose one character case and stick to it or make the text validation to be case insensitive. In any case, let your users know how characters case is handled.

Do not use all letters and numbers. Some characters are very similar, for example the digit zero and the letter O. Filter out characters that may be confused with others.

Allow the end-user to change the image to a different one in cases the end-user is unable to figure out the displayed text.

For greater accessibility, especially for those with impaired vision, add audio option to the image that recites the displayed characters.

Do not annoy the end-user with too many CAPTCHA challenges in case subsequent submissions are expected that also require human identification. Simply keep the first CAPTCHA positive result persistent on the server side for the entire user context\session.

Inform end-users about the mechanism, add a link\button to open up a text box explaining the mechanism and the need for it.

CAPTCHA A La uniPaaS Example

Click on the image below to run a uniPaaS example for integrating CAPTCHA and handling it.

In the next posts I will describe in details how this CAPTCHA example was achieved in uniPaaS.

Monday, October 4, 2010

Not only in terms of viewcount in a relative short period (250,000 views in one month) but also in the way it is embraced by so many programmers and developers around the world.

As long as the clip is up I decided to use my blog and to create a sort of scrapbook to keep record of the interesting ripples made by “And So You Code”.

The first page goes to another programmers’ viral clip of “Lady Java”.

I was amazed to see a couple of weeks ago a short comment placed on Lady Java simply stating “And so you code”.
Now this comment is ranked as the 2nd most favorite comment for this clip (total of 36 Thumbs up).

Moreover, it seems that at least 5,400 views of “Lady Java” are direct referrals from “And so you code”.