Wrong things that programmers believe, a curated list

This whole thing can be summed up thusly: things that you would think should be simple are really not.

I have spent quite a bit of time working on i18n issues and things like this constantly come up. I could go on all day about the myriad of interesting issues that can come up from bad assumptions.

Take for example the Turkey Test which is a fascinating example of interesting ways programs can break in new and exciting ways.

What if you don’t use numerical digits to represent your numbers?

What if you live in a country that doesn’t use the Gregorian calendar? That can cause wonderful bugs when you make bad assumptions for date or time calculations based on the Gregorian calendar.

What about problematic names:

Ok, that was a joke, but here’s a real example:

8 Likes

“Koenig*. No, Northland. No, Bull Creek**. No, Allandale. No, 2222. No-- ah fuck it.”

*pronounced wrong, same with Manchaca.
**Bull Creek Road; not to be confused with Bull Creek Road

4 Likes

The Turkish ı and İ get me every time

5 Likes

It’s not just so Spın̈al Tap can have a cool looking name!

3 Likes

Sounds a bit like suburban Maryland. Apparently it’s an extension of the grid in DC:

“Where do they live?”
“Over on 43rd.”
“43rd what?”
“…”

5 Likes

@OtherMichael, did you just Godwin the thread?

3 Likes

I lived around the corner from Arroyo Seco, the dry creek that’s dry.

3 Likes

We had the same thing in Chicago. Streets and Places alternate, as do Avenues and Courts, but Streets and Places go East and West and Avenues and Courts go North and South.

2 Likes

For some reason, whenever I talk about them, people change the subject to the Godwins.

I don’t get why they’re so popular.

5 Likes

Wow that Venn diagram truly settles all those millennia-old epistemological problems!

3 Likes

I got a little excited a few weeks ago when I met a new coworker whose name is Robert Void. Yes, yes he does occasionally have problems on web forms and db’s.

6 Likes

The metadata associated with that venn diagram (Knowledge = Belief ∩ Truth) claims that it represents Plato’s epistemology. Given that “Philosophy consists of Footnotes to Plato”, and yet it still thrives, your observation is trite.

4 Likes

2 Likes

You can blame three city planners who hated each other’s guts for that.

2 Likes

Dude I love internationalization issues. My whole company was new to the idea and tried to get a system running in Spanish. The problems were many and would not be obvious to non-Spanish speakers. Like … you can’t just do an ASCII sort when presenting a list of names in a search result – because in Spanish words that start with Ch come after words that start with Cz. And when you search by name, you have to ignore accents - pretend they aren’t there. There ere more insidious things. But really I love this sorta stuff. Some of the icons we used had no context for them too. I wish I could remember some of them – some had English in them. Those had to go.

Incidentally I had something addressed in the mail to < My Real First Name > NULL < My Real Last name >. (i.e. John NULL Doe). I didn’t sleep that night.

7 Likes

they’re after you, dude. shut it down.

4 Likes

Not easy even with a GPS. By the time it tells you to turn, you’re likely far enough into the intersection to be two streets past the one you needed to turn onto. It seems that the planners of the Boston streets spilled spaghetti on the map and just decided that was good enough.

Speaking of which, heading north from Boston, there’s a crossover highway where you have to go south to get north - if you take the north highway you end up out east instead.

It’s not just that they’re not simple. They’re not logical (mostly they’re political or cultural), so they don’t fit well in a logic processing system. Relational databases are powerful because they have clear, unambiguous ways to refer to and classify things, but humans don’t refer to things (times, places, identities) that way. We just think that whatever arbitrary convoluted scheme we’re currently using to refer to things or classify them is obvious.

Most of the problem is trying to over-validate in hopes of preventing bad data. But trying to apply logical rules to determine whether something that doesn’t adhere to logical rules is valid or not is sure to fail.

Also, it’s not so much what programmers believe but what those who create the specifications believe.

5 Likes

How To Validate An Email Address:

Send an email to it. If it bounces or errors, it wasn’t a valid address.

6 Likes

I still have nightmares of that email validation regex from the legendary Mastering Regular Expressions book.

I believe it looked something like this: http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html

5 Likes

7 Likes