E.g. if you want to be able to greet a user, ask them how they want to be greeted, rather than try to guess at which part of their name a user prefers to be addressed by and how to extract that part from their full name.
"People have, at this point in time, exactly one official name." <-- phrase is false
"There exist at least some people who will, at at least some instants in time, have either zero or two or more official names." <-- phrase is true
Now multiply that sort of circumlocution by 40.
I frequently receive the feedback "I wish you had identified a solution", which suggests to me maybe I missed the opportunity to title the post "Names are intractable hard and any programmer who thinks their program has solved them is wrong." I thought that was pretty explicit in the first paragraph but people seem to really WANT this problem to have a Ruby gem available such that they don't have to worry about it. I want dragons, but will live with my disappointment.
The problem with the google+ real names policy isn't that their algorithms aren't smart enough (though it seems that they could use some work). The problem is that they're too arrogant to recognize that their algorithms are unreliable and indifferent to the ways that this unreliability is bad for users.
No sane person thinks it's a good idea to just roll their own time zone implementation routinely, but people usually think rolling their own name handling system is a good idea. The purpose of patio11's advice is specifically to discourage people from doing that. And fortunately for names there are some reasonably good options, such as avoiding trying to handle names semantically at all and instead leaving them as more or less freeform user data.
12. People’s names are case sensitive.
13. People’s names are case insensitive.
Edit: Let me explain ... I was responding to the parent post, and that it wasn't meant to be a logic list of rules. Individual points may be true, but the overall tone of the list and post uses humor to explain the complexity of names. 32. People’s names are assigned at birth.
33. OK, maybe not at birth, but at least pretty close to birth.
34. Alright, alright, within a year or so of birth.
35. Five years?
36. You’re kidding me, right?Take SQL as an example: are programs case-sensitive or case-insensitive? Neither!
Absolutely not!
Case sensitivity varies amongst countries.
One very simple occidental example: in France names are usually written LASTNAME Firstname
So if you type Lastname and your DB doesn't normalize the capitalization of names you won't match
So for the last name the search is case insensitive but for the first name not so much.
Another example is Turkish, where there are two capital I's, one with a dot, one without.
And not alphabets have a notion of case.
It's even more complicated: they have two letter Is, one with a dot in both lower and uppercase (İ/i) and one dotless (I/ı) in both cases. So any automatic case change needs to take this into account or the letter will get switched. This also make using fonts with fi ligatures problematic.