[I originally posted this to The Farm, but thought that it might be of general enough interest to post here.]
This one got pointed out to me by Alain Chesnais, Tucows’ new Director of Product Management. Google the following phone number:
There are nearly 19,000 results for this phone number at the time of this writing. That’s a little odd.
Also of note is the fact that although 214 is the area code for central Dallas and parts of northeast Texas, the first page of Google results also reports that the number for four cafes with free wi-fi in San Francsico, Santa Cruz and Fremont, all cities hundreds of miles to the west, in California. It’s also reported as the phone number for the Jackson County, Florida Chamber of Commerce. And an inn in Labrador.
What’s happening here?
I looked at the number on Friday morning, not thinking much about it until lunch, when it occured to me that I if I ignore the phone number formatting, it becomes:
…which should look very, very familiar to most programmers. That’s the largest value for a signed integer that can be represented in 32 bits, or MAXINT for many programming languages…and databases.
These Google results for the MAXINT phone number are most likely coming from database-generated pages (and maybe a few static pages in which someone dutifully copied the number from a database-generated source) in which the phone number was stored as a signed 32-bit integer value.
This will work for phone numbers with the following area codes…
- 201: Jersey City/Hackensack NJ
- 202: Washington, DC
- 203: Connecticut
- 204: Manitoba
- 205: Alabama
- 206: Seattle, WA
- 207: Maine
- 208: Idaho
- 209: Fresno, CA
- 210: San Antonio, TX
- 212: New York City
- 213: Los Angeles
and some subset of numbers in the 214 (Central Dallas) area code.
The moral of the story: don’t store phone numbers — or for that matter, any number that has no actual value as a quantitative amount, such as social security numbers, serial numbers and so on — as integers!