top | item 2196421

The most common phone number: 214-748-3647

146 points| solipsist | 15 years ago |sharkbait.computerworld.com | reply

61 comments

order
[+] j_baker|15 years ago|reply
This sounds apocryphal to me. I mean, how would anyone build a system where no number above 2147483647 can be stored and not notice it? I mean, that excludes the vast majority of phone numbers.

EDIT: Maybe I give mankind too much credit. Search for a non-Dallas city here: http://24hourplaces.com/search.php

[+] lysium|15 years ago|reply
Wow, that's unbelievable. Almost any phone number in 24hourplaces.com is that Dallas number. How come the owner of that website never noticed?
[+] InclinedPlane|15 years ago|reply
http://www.google.com/search?q=214-748-3647

The fascinating thing is that there are significantly sized urban areas with area codes < 214 (such as much of NY,NJ, Washington DC). Do these business survive off of customers just in those areas and they never pay attention to the fact that their systems are horribly broken?

[+] hartror|15 years ago|reply
I am never surprised when code is written without decent testing good testing is the exception rather than the rule.
[+] KaeseEs|15 years ago|reply
I agree, it seems fishy to me that saturation rather than wrap is the integer overflow behavior in these systems.
[+] statictype|15 years ago|reply
Yikes. People store phone numbers as integers? Why would anyone do that?

Is there some use-case where being able to treat a phone number as an integer value has any usefulness?

[+] zck|15 years ago|reply
"A string of characters acting as numbers? Hell no. People could put in anything. '234-fake-num' isn't a real phone number! This way we'll be sure the numbers are real. Besides, look how much space we'll be saving."
[+] celoyd|15 years ago|reply
Well, it will be smaller on disk.

I know next to nothing about the phone system, but in some countries there are legitimate numbers starting with 0. So among the many problems with this practice, it puts an arbitrary technical limit on your market.

[+] unknown|15 years ago|reply

[deleted]

[+] silencio|15 years ago|reply
Half of all the CS classes I've taken were at a 2 year community college and I still learned things on a more physical level. Not to mention physics and such were prereqs for some of the classes, and most definitely for transferring to a 4 year program. These same community colleges offered courses on assembly and logic and circuits and more. 2 year. I'm not even talking about universities at this point (which, also, I've attended and I don't see any variation from the above either).

Us CS majors with our heads stuck in code and theory may have never reached the depths of inner workings as you may have in a full 4+ year CE program, but that doesn't mean you get to demean an entire field of study thinking that people don't learn these concepts that apparently make you and other CE majors gods. And yes, no matter what your intent, you are definitely coming off as someone that is being incredibly snobby to say the least.

I have learned and I know at least a good smattering of basics on a physical level and have seen such curricula at all kinds of schools of higher learning. I would hope that anyone that intends on using their knowledge somewhere would care to understand just as much if not more regardless of their major or education. People that think it's acceptable to store phone numbers as integers clearly didn't.

[+] fabjan|15 years ago|reply
Yes, you are wrong.

I study CS and the first year we learned about digital logic, how to build memory, clocks, ALUs, etc. in parallel with learning about loop invariants, operational and denotational semantics, computational complexity, algorithms and data structures, algebra, real logic, how to prove things formally, and emacs.

There were some boring courses as well, mathematical analysis etc.

[+] blahedo|15 years ago|reply
> "It's safe to say that whoever is storing phone numbers as integers either didn't study or didn't receive a proper education on the inner workings of a computer."

...or that they didn't absorb it. A lot of the comments on this post are indignantly claiming that "anyone who has taken a CS class...", as if every lesson of every class is perfectly absorbed by every student. As someone who teaches CS, I assure you that we discuss appropriate data representation right from the start, but I can attest to the fact that even students who did understand the general lessons about strings vs. ints (vs. other things) sometimes aren't great at applying it.

And while decent testing should have caught this, sure, test-driven design and effective regression testing was long an on-the-job training sort of thing; good testing as an integral part of the programming process was not a widespread part of the ugrad CS curriculum until fairly recently (and is far from universal even now).

[+] scottbessler|15 years ago|reply
I'm a CompE and I interview countless CS and CompE's for entry-level programming jobs and they consistently fail horribly at business-logic decisions. More than 50% of the time, people with 3.5+/4 undergrad and 3.5+/4 masters can barely write a function and discuss the design decisions (e.g., recursive vs. iterative, caching) behind problems as simple as returning the Nth number from the fibonacci sequence.

I've seen over and over again that knowing the physics (well enough to get A's in class) behind a computer and how it stores integers is NOT enough information to deduce good patterns and practices.

[+] amalcon|15 years ago|reply
A C.S. major would at the minimum learn to test against boundary conditions. In the case of a U.S. phone number, one would test against 000-000-0000, 999-999-9999, and also check what happens if someone puts in garbage / international numbers / parenthesis / other things like that. The 999-999-9999 test would catch this immediately.

I'd go further to say that anyone who hasn't been bitten by an integer overflow bug in the past cannot have written enough software to qualify for a CS degree, unless of course they write all their software in languages that insulate you from it. I might be biased on that one, though, since I was first bitten by this bug on 16-bit systems: you can multiply two not-especially-large numbers and overflow a 16-bit integer.

For what it's worth, many of the best programmers I know majored in electrical engineering. On the other hand, many of the best programmers I know majored in math. They are likely to know even less about the inner workings of a computer.

[+] stonemetal|15 years ago|reply
Where I went to school(in the US) the first two years of CS and CE where the same, except in the class that covered digital logic. Then the CEs had an accompanying lab where they had to wire stuff up and CS majors didn't. All of the physics, math, and programming background were the same. After that CEs degrees were more EE than CS.
[+] rdouble|15 years ago|reply
Which of those classes teach that you shouldn't store phone numbers as an int? Physics, logic or network theory?
[+] j_baker|15 years ago|reply
Well yeah, they explain how numbers are stored in a computer and whatnot. It's just that for most software programming, it isn't a terribly interesting or difficult to solve problem. I suppose after so long working with graph algorithms and Turing theory, people might forget these things, but it doesn't take a great deal of training to remember that numbers have limits in computers. I think this is more a case of simple stupidity than lack of education.
[+] lukeschlather|15 years ago|reply
The people in question likely haven't had any formal education at all, they're self-taught.

I took CS, and my second class involved assembly (starting with JVM bytecode and then 8088) and my third was C++. CS majors know what integer overflow is.

[+] hartror|15 years ago|reply
Considering I work with graduates who were 10 when the whole Y2K thing was news I am not surprised.
[+] j_baker|15 years ago|reply
Yup. If they were older, they'd realize just how little a deal y2k was.
[+] turbofail|15 years ago|reply
It seems like if this explanation were to make sense, whoever implemented the string-to-number conversion was careful enough to implement saturating addition, but careless enough to not use a numerical type large enough to hold every possible phone number. I don't know if I buy that.
[+] sthatipamala|15 years ago|reply
Perhaps they just used strtoi() or some such equivalent in their language.
[+] ajarmoniuk|15 years ago|reply
"Please press 1 now." Then, after a while: "Press press one now. If it is a person and not a computer calling, press 1 now.". Then, again after a while: "Press one of it will disconnect."
[+] forensic|15 years ago|reply
why wouldn't it wrap around?
[+] btn|15 years ago|reply
Integer overflow behavior varies a lot between languages; it can be undefined, some wrap around, others promote to a larger integer type, others convert the type to something else, and some clamp to the largest (or smallest) value.

For example, if you're using PHP, an integer will turn into a float when it overflows; if you then push the value into a MySQL databse, it'll be clamped.

[+] polynomial|15 years ago|reply
> there are 1500+ websites with that phone number showing up.

Just to note, article is from 2008. Current figure is: About 316,000 results (0.13 seconds)

Also, he didn't even bother calling the number to see who owns it? Sloppy.

[+] arthurdent|15 years ago|reply
i called it but couldn't figure out what the business actually was.
[+] fedd|15 years ago|reply
interesting fighting about computer science etc.

i'd say, not to store phone numbers in integer field require just one advice of an experienced colleague, no need in 5 years course (assuming a guy doesnt put boots on his head in other parts of his work)