Handling SSN Input Properly

I just logged into my Google Adsense account. After 5+ years, I finally earned enough to get a payment. Only to discover that I had forgotten to update my mailing address, and that the check was sent a month ago to an address to which I no longer have access (if you find yourself in this situation, just cancel the check, and set up electronic funds transfer – much easier). In the process of updating my Adsense account, I put in my social security number so that the proper tax forms can be filed. I just entered it in the format of 123456789, since after all, a social security number is nine digits long. When I submitted the form, I got the following validation error:

So they want me to insert dashes into the SSN so that it is in the format of XXX-XX-XXXX (the format in which a social security number is normally written). That is not so hard for me to do. But why should I have to do that? They are already validating that I have the proper number of digits. So once they know that I entered nine digits, why can’t they just enter the dashes for me? No reason to bother the user with inanities like this. (One could also ask why they need to store the SSN in this format – storing them as nine digits in an int field is probably more efficient than storing them in a text field.)

Items of Interest: 2006.05.08

Things that I found interesting on May 8, 2006:

  • Web Hosting’s Dirty Laundry – Record of conversation between Dreamhost (affiliate link) and hosting-review.com, a supposedly “unbiased” review site. Here Dave from said review site spends every email trying to get as much money as possible from Dreamhost in exchange for a spot on their top-10 list. (My review of Dreamhost)
  • How to be an Awesome Client – Must read for anyone who outsources their programming (outside their department or company), from James Archer
  • 3 (Controversial) Techniques to Improve Usability – From Johnnie Manzari. I think that the title on this post is not so accurate. My version: 3 Techniques to Save Time and Money Developing Your Product in Its Early Stages.
  • Why a Great Programmer is Worth Fifty Good Ones – Tom Evslin explains what should be obvious
  • Spring 2006 CSS Reboot Trends – What CSS trends are in with the in-crowd? Christian Montoya gives an overview
  • Building a Web App? Don’t Forget the Premium Plan – 37Signals released a premium version of DropSend and revenue went up 30% in two weeks (!)
  • Report Spam on Google – About time
  • Low Hanging Fruit – Craig Fregas says that when involved in a large programming project, you should do the easier things first. Craig – I would have posted a comment on your page, but you don’t allow anonymous comments, and I don’t want to register with your site just to post a comment. So I will post here: I think that doing the easy stuff makes sense only if this is what you need to do in this step of the project. If the easy stuff is related to things that need to be done later, than it should be held off until later. For example, if the easy stuff pertains to some UI activity, but the UI really shouldn’t be done until the Data Access and Business Logic layers are complete, than don’t do the UI. By doing the easy UI stuff early on, you may end up trying to fit the more complicated sections to match this already completed easy stuff. This could result in wating even more time and in having to rewrite the easy stuff in the end any way. I know that this might not always be the case, but I just don’t see how doing an easy task early when it should really be saved until the end is a good thing to do (even if it makes you feel good)
  • Mapping Website Visitors in Real Time – using Google Maps, AJAX, mySQL, and PHP, from Vegard Larsen