When you’re adding tasks to whatever task management app you’re using, be sure to add a due date — even if it’s an arbitrary one. Assigning a due date means you will revisit this item, and it won’t live forever at the bottom of a revolving list of higher priority items.
On the due date, you have the option of completing the task, or simply pushing the due date further out, but at least it has been brought to your attention that the task has been around for a while, and still isn’t complete.
Building DataTO.org – An Overview
November 17th, 2009
DataTO.org is a community website, built as a venue for the users of Toronto’s open data to request and discuss open datasets. On top of enabling conversation, the site also helps users garner support for their request so as to establish a democratic prioritization of requests.
I first became interested in the open data dialogue back in early 2009 at ChangeCamp in Toronto, which was an event aimed at re-imagining government and citizenship in the age of participation. ChangeCamp spawned ChangeEngine, a project where a group of citizens (including myself), imagined a geo-aware issue tracking system, aimed at bringing communities together to solve problems and to provoke systemic change.
As the launch of Toronto’s open data site approached, some of my colleagues at Architech Solutions and I, met with Mark Kuznicki (organizer of ChangeCamp) to discuss the possibility of building a community companion site to the city’s site. We all felt there was a need, and so DataTO was born. Continue Reading
jQuery Zip/Postal Code Validation Method
September 1st, 2009
For those of you who may be familiar with Jörn Zaefferer’s jQuery Validation plugin, I’ve written a method for validating zip/postal code fields, which was not included in the plugin.
To start validating zip/postal code fields, include this code somewhere after you’ve included the plugin:
jQuery.validator.addMethod("postalcode", function(postalcode, element) {
return this.optional(element) || postalcode.match(/(^\d{5}(-\d{4})?$)|(^[ABCEGHJKLMNPRSTVXYabceghjklmnpstvxy]{1}\d{1}[A-Za-z]{1} ?\d{1}[A-Za-z]{1}\d{1})$/);
}, "Please specify a valid postal/zip code");
Now you can add postalcode to your validation rules like so:
$("#myform").validate({
rules: {
postalcode: {
postalcode: true
}
}
});
Note: this will accept both Canadian postal codes (with or without a space) and U.S. zip codes. Enjoy!
Inline Validation: Don’t get trigger happy!
August 31st, 2009
Javascript is great for providing timely feedback to users while they are filling out forms. Seeing validation messages inline while a form is being filled out allows the user to correct errors before submitting the form, which saves time and generally offers a better experience.
However, it’s important to note that validation errors should only be shown at the appropriate time. Today, I was adding a new contact in Gmail and I noticed something odd when I was typing in the contact’s email address. The background of the email field immediately went bright red as soon as I had typed the first letter.

Obviously, this caused some confusion. I quickly realized that I was being notified that the field did not contain a valid email address (because I was in the middle of typing it).
The point I’m driving at here is that you shouldn’t tell your users they’ve done something wrong until they’ve actually done it. Field validation is usually best left until the user has moved on to another field or performed another action which signifies that they believe they’ve completed the field in question.
Note: One exception to this general rule of thumb, is when a user enters an invalid character in a field (eg. a letter in a phone number field). In that case, it may make sense to let them know right away.
Update: Luke Wroblewski just wrote a great article on inline validation on A List Apart. The portion on testing when to show inline validation
bears particular relevance to this post.
Facebook Connect for Comments
August 5th, 2009
Although I’m not completely sold on the usefulness of Facebook Connect, it seems I can’t go a day without somebody asking me about it. Hence, as a little experiment, I’ve implemented the API here to allow you to make comments on this site with your Facebook account. What can I say, I can’t help myself.
Let me know what you think about Facebook Connect, and its many appications.