[This post has been translated into Japanese by one of our readers: 和訳もあります。]
John Graham-Cumming wrote an article today complaining about how a computer system he was working with described his last name as having invalid characters. It of course does not, because anything someone tells you is their name is — by definition — an appropriate identifier for them. John was understandably vexed about this situation, and he has every right to be, because names are central to our identities, virtually by definition.
I have lived in Japan for several years, programming in a professional capacity, and I have broken many systems by the simple expedient of being introduced into them. (Most people call me Patrick McKenzie, but I’ll acknowledge as correct any of six different “full” names, any many systems I deal with will accept precisely none of them.) Similarly, I’ve worked with Big Freaking Enterprises which, by dint of doing business globally, have theoretically designed their systems to allow all names to work in them. I have never seen a computer system which handles names properly and doubt one exists, anywhere.
So, as a public service, I’m going to list assumptions your systems probably make about names. All of these assumptions are wrong. Try to make less of them next time you write a system which touches names.
- People have exactly one canonical full name.
- People have exactly one full name which they go by.
- People have, at this point in time, exactly one canonical full name.
- People have, at this point in time, one full name which they go by.
- People have exactly N names, for any value of N.
- People’s names fit within a certain defined amount of space.
- People’s names do not change.
- People’s names change, but only at a certain enumerated set of events.
- People’s names are written in ASCII.
- People’s names are written in any single character set.
- People’s names are all mapped in Unicode code points.
- People’s names are case sensitive.
- People’s names are case insensitive.
- People’s names sometimes have prefixes or suffixes, but you can safely ignore those.
- People’s names do not contain numbers.
- People’s names are not written in ALL CAPS.
- People’s names are not written in all lower case letters.
- People’s names have an order to them. Picking any ordering scheme will automatically result in consistent ordering among all systems, as long as both use the same ordering scheme for the same name.
- People’s first names and last names are, by necessity, different.
- People have last names, family names, or anything else which is shared by folks recognized as their relatives.
- People’s names are globally unique.
- People’s names are almost globally unique.
- Alright alright but surely people’s names are diverse enough such that no million people share the same name.
- My system will never have to deal with names from China.
- Or Japan.
- Or Korea.
- Or Ireland, the United Kingdom, the United States, Spain, Mexico, Brazil, Peru, Russia, Sweden, Botswana, South Africa, Trinidad, Haiti, France, or the Klingon Empire, all of which have “weird” naming schemes in common use.
- That Klingon Empire thing was a joke, right?
- Confound your cultural relativism! People in my society, at least, agree on one commonly accepted standard for names.
- There exists an algorithm which transforms names and can be reversed losslessly. (Yes, yes, you can do it if your algorithm returns the input. You get a gold star.)
- I can safely assume that this dictionary of bad words contains no people’s names in it.
- People’s names are assigned at birth.
- OK, maybe not at birth, but at least pretty close to birth.
- Alright, alright, within a year or so of birth.
- Five years?
- You’re kidding me, right?
- Two different systems containing data about the same person will use the same name for that person.
- Two different data entry operators, given a person’s name, will by necessity enter bitwise equivalent strings on any single system, if the system is well-designed.
- People whose names break my system are weird outliers. They should have had solid, acceptable names, like 田中太郎.
- People have names.
This list is by no means exhaustive. If you need examples of real names which disprove any of the above commonly held misconceptions, I will happily introduce you to several. Feel free to add other misconceptions in the comments, and refer people to this post the next time they suggest a genius idea like a database table with a first_name and last_name column.
skimmed it, sorry no time atm
but one thing comes to mind, people are either Mr, Master, Ms or Mrs
An example for number 40, please ;-)
Someone born into slavery in the Sudan, a woman born in rural China, an American baby recovered after being born into a toilet, a feral child, an amnesiac, etc, etc.
41. If a person has a title such as “Doctor”, they will have at most one such title. (In Germany, the over-educated go by names such as “Prof. Dr. Dr. Hans Schmidt” – a professor with two PhD’s)
And don’t even get me STARTED on handling addresses. Ugh.
So what’s your take on ideal name database? (Ideal as in: “In the perfect world…”)
Another “form” post.
I have built systems that go like this:
Name: [ ]
The database is UTF-8 aware, and the name does have a limit of 2MB characters. It can even be empty, and I don’t see anything wrong with that. We base our unique identifiers on email, which DO have a standardised set maximum length, and DO have a standardised set of characters.
This post is a little unnecessary.
Mahmoud: I give you http://en.wikipedia.org/wiki/Prince_(musician)
42. People’s names do not contain punctuation.
42a. People’s names do not contain punctuation other than apostrophes.
I would like to hear from you:
– What is the a “nonweird” naming scheme for rule 27? Firstname I. Lastname?
– Examples for 11, 12, 13.
Thank you in advance.
Graham-Cumming is a ridiculous name anyway that indicates that a guy called graham is currently climaxing, and that john is probably involved in some capacity
Where’s the wisdom here? Can you list just 3 _practical_ concrete steps a software developer should take to have a more robust name implementation? Are there groups of users that are seriously upset by some of these issues? Which of these matter the most and how do you suggest we solve them? What’s my motivation to care about someone with a 1024-character name? How many of these go away with a single text box that properly deals in UTF-8 such as the comment form on this blog uses?
In Ireland, nearly everyone speaks English. However Irish is the offical first language (English the 2nd). Hence everyone can legally use their name in English or Irish. My name is Rory, but I can legally call myself Ruairí, I once got my passport in Irish. I’ve seen people using their Irish name when written down, but always using the English name when speaking.
@Jean: 12. and 13. John McKennzie (usually sensitive), Toshiro MIFUNE (usually insensitive)
Gotta love these “I know what not to do”-kind of posts.
The problem is not about how to handle name inputs, but what you do with the name.
If I have an unpronounceable/unwritable name, I’ll need to invent one/some for the purpose of dealing with various situations (Arab people commonly have this problem and are notable here), including simply communicating verbally.
The only valid points here, in design informatics systems, I think are: names are not unique and names can change. This forces you to design systems in a way that the name is unimportant and variable, if even used at all. In the unlikely event that your system interfaces with another that requires a name, you’ll have to specify that the name is used for that other system and that the user might be required to re-use that name in future or somewhere else (but the two basic rules make that evident).
43 – A person name in country-1 is the same as his name in country-2.
In Holland my name is Gert
In Denmark it is Gerardus
In Germany they refuse to try pronounce my name
I like that “Name” is a required field in this comment form.
One assumption that IS going to be valid most of the time:
– People with weird names will have encountered a form like yours before, and figured out something to put in.
I’m curious to know how much impact poor name handling has on your bottom line??
Sigh. What a waste of offended virginity (the original twat, I mean).
OK, fine. It’s not a name, it’s a label both sides can recognize without conniption fits and police calls.
Just type less than forty characters in alphabetical 7-bit ASCII, or something.
There, it’s not so hard.
Your real name? Keep it secret, have a sculptor carve it in wood and hang it over the bathroom mirror, whatever. Stop blocking the cashier line. Bloody princesses.
What weird naming schemes do we have here in Sweden? Are you thinking of that we often take two last names if you want both your and your spouses last name in marriage?
Just posting an interesting name in an article about names
The existing convention that should be used in design are three free fields that accept unicode charecters (ie, covers ASCII, kanji, arabic, etc…). The fields are “Surname (family name”, and “Given Name(s)”. What happens when Dai Guy wants to sign up, putting his “last name” into the surname field? Turns out in Guy’s culture, Dai is the family name. Given names allows us to have Dweezil Zappa’s in the world.
The third field will be a “common name,” For example, Guy likes to be called Dave in real life because he’s become accustomed to western ignorance of pronunciation and name-order in other cultures, so he sticks with this.
Try to be aware of the honorific of the names. For instance, Dai Guy-san (I know I’ve mixed manderin names with Japanese salutations, but why not?), Dr. Jack Nib, Herr Professor Dunkel Schwartz (toss some umlauts in there). Do a bit of research into how other cultures present honourifics, for instance in some cultures they change based on the social status of one person when speaking to another. I may be Brian-sama, Brian-san, Brian-dono, Brian-kyou… How will you deal with this?
Name systems can no longer be flat files of “First name”, “Middle Names”, and “Last Name” stored in a database of ASCII chars, it doesn’t globally make any sense, and these “weird exceptions” live everywhere now.
As for the swearword list, who cares? Do you honestly care? If I come in and want to register as Dicky McDickstine, how’s that different from registering as Fakey Mc FakeName? Throw some quality assurance into there. I can’t tell you the number of times my one friend complains about his “profane” last name barring him from downloading visual studio express.
Brilliant! Though the problems you’ve faced are a result of the largeness of the business you’ve worked in.
I think that actually is a guide to complexity of development. The larger the system the more complex the seemingly non-trivial things become.
I’d love to see how you’ve modelled this in a RDBMS or what ever. Nothing speaks more than a design based on real world problems in very, very large data sets.
@Brian: I like how your hypothetical German professor’s name translates to “Professor Dark Black.” I think I just found my evil genius name.
Everyone has three names: first, middle, last.
The middle name is unimportant, and can be safely represented by only an initial. Nobody goes by their middle name, after all.
41. Never let the perfect be the enemy of the good.
The complaint seems to be about the many differing definitions of “people’s names”, not about some agreed complex definition that programmers have failed to understand.
Various passport agencies, for example, simply invent an intentionally simplistic definition of name. You can complain that the dissonance between an ascii-only definitions and personal definitions is disproportionately high for those from China, for example, but you can’t pretend that this reflects some epistemic refutation of personal definitions.
And if you honestly intend to reject any definition of “name” that can be mapped to unicode code points, then you’ve rejected most personal definitions of “name” yourself.
@blueshifter That’s not correct. I know quite a few people who go by their middle name and rarely use their first name.
@Ryan Allen
Want to see something worse? Contact information for people.
Email patterns
International calling codes and how they differ
Addresses for every country, (Sure, you live at 555 Fake St, Zip Code 12345-4321, but I need to enter an address to Trinidad, and the zip code doesn’t normalize with any standard, so do I need to keep regional and country data in the table anyway?)
The biggest boon of the data optimization world is the loose standards, and compeating standards (ie, IATA vs ICAO vs ISO…).
@Jeremy, I suppose I should have numbered them?
Historically, there have been lots of strange european names, too. For example
Nicholas If-Jesus-Christ-Had-Not-Died-For-Thee-Thou-Hadst-Been-Damned Barbon
( http://en.wikipedia.org/wiki/Nicholas_Barbon )
My last name is O’Dell.
As someone with an apostrophe and two capital letters in my last name, I can relate to this post. A name is a very important identifier; it is something I have grown up with my entire life, something that is indeed mine. I do happen to know that there are other people who share my first and last names, but to my knowledge none with all three. As a software engineer who works both on web-based applications and on systems / OS programming, I find it exceedingly frustrating that my name is eschewed from proper use in many applications.
This affects me most, indeed, in online forms. Instead of taking proper care to escape data (or to use database APIs that do this for you via prepared statements), many name entry fields simply disallow me to use my name. I cannot use an apostrophe in my email address. I cannot use an apostrophe in my system username. I frequently am either denied the ability to use the apostrophe, or find SQL injection bugs (even today). When I can’t use the apostrophe, I settle for “ODell.” This is usually “sanitized” to “Odell”.
It is frustrating, but something I live with. And the characteristics of my last name are not so uncommon — take a look at anyone with Irish heritage. I’ve been considering changing my legal name to O’DELETE FROM users.
When creating applications:
1) If your data store is a database, use UTF encodings. This blog post indicates that not everyone’s name can be stored this way, but I’ve yet to see a solution to that problem.
2) If your data store is a database, use prepared statements and a DB adapter that automatically sanitizes strings without transforming them.
3) Do not transform the person’s name.
4) When displaying names, make sure it is displayed using UTF codepoints.
5) When writing software, support UTF.
Just my thoughts. I don’t have any great ideas for fixing the socioeconomic / sociopolitical problems of people without names, but neither do most people, I suspect.
@blueshifter Read http://en.wikipedia.org/wiki/Middle_name and report back.
In regards to case, the best is to just leave the input alone. For example:
English: Peter VanOrange
French: Pierre D’Orange
German: Peter von Orange
Dutch (Belgium): Peter Vanoranje
Dutch (Netherlands): Peter van Oranje
Codd predicated relational databases on the idea that we would write things only once. But, because IT became a corporate function, we write things once for each corporation we are served by. The same information is written over and over, name being one of them.
It seems to me that all the names should be in one and only one database. Corporations could use that database. You could build a business around your full understanding of names. Having a vendor for name services would reduce capacity needs, and simplify their data models–real business value.
Can you give a counterexample for #11, please? Preferably without invoking The Attention Whore Formerly Known As Prince?
Are you thinking of national character sets whose characters are not all in Unicode? You could tag each name with a character set; but then you have to worry about what happens when you have two names in two national character sets, and have to include them in HTML (or any other format that insists on having a single character set for the whole document).
You can even wind up with a person whose name can’t be represented in any single national character set; say, someone whose mother came from Brazil and whose father came from Japan.
Out of curiosity, what’s the naming scheme / country / continent / planet where people don’t have names until very late in their system ? How do they “fake” names ? “the third blond son of the tall white stuttering fisherman from that house next to the bridge – no not that one, the other bridge – actually not that house either” (but we call it “little bobby tables” ) ?
@blueshifter:
Pleased to know that I’m not included in everyone. I knew I was special!
#11 (unicode) affects Chinese and Japanese people with rare or archaic characters in their names. Eg, imagine that your surname is the Chinese word for “forsooth”. 500 years ago, everyone used that character all the time, but these days no one ever says “forsooth” any more, and so the character has fallen into disuse, and it’s only ever seen in classical literature… and in peoples’ surnames. I think Unicode is slowly adding more characters for these things, but there are still lots(?) of people whose names aren’t yet in Unicode.
So, Unicode expanded from 16 bits to 21, in order to allocate 74,000 codepoints to Han characters, and still didn’t get all of them?
Everyone has a twitter name.
What about this case? http://www.youtube.com/watch?v=hNoS2BU6bbQ
4 new rules (wow this is fun)
Also, not directly related, but entries should also be correctly sanitized before entering them into any database. Written as a rule: You should not assume people won’t try to use this field to attack your system.
Another additional rule: You should not assume people are going to write the truth there. i.e. You should not assume that your 142 users called “Barack Hussein Obama” are indeed using this name outside of your system.
And also, it goes without saying: You should not assume there is only one person that goes by any given name. It’s ok to put “unique” restrictions on nicknames and usernames though.
Bonus round: You should not assume one person will always write his name the same way.
No one cares. Programmers don’t believe all this garbage, they’re just lazy.
Yes, yes and more yes. #5 is the one that I struggle with on an almost daily basis, because for me, N==1.
@John: Pretty much, yeah. See: http://unicode.org/faq/han_cjk.html In particular, huge swaths of variant glyphs do not exist in unicode.
Too true. I’ve acquired eight names without even trying:
http://toolsmiths.blogspot.com/2009/10/reading-old-post-by-james-clark-about.html
~Matt
#44(ish). One name is one word long. Spaces separate names; no one has a last name (or any other name) which is two or more words long. All but the ultimate word in a string designated as a last name are actually middle names.
#44(ish)b. If the owner of the name inputs a space into a field meant for a single name, particularly a last name, the proper thing to do is fix it for them by substituting a hyphen.
#44(ish)c. Each word in a full name ought to be allotted one letter in the initials of that name. For example, Willard Van Orman Quine’s initials were WVOQ and certainly not WVQ.
(All of these rules are regularly applied to me.)
TL;DR
99. Peoples names are written on a single line.
Can you imagine when some poor person with a multi-line name comes to your website and they’re asked to enter their name in a single line text field!
Yes, people may have many forms for their name, but when you sign up for something, be it a website or a snail-mail newsletter, you have to pick one. How you give your name is how you will get it back.
The real problem here is that forms try to get too clever by having people enter first, middle, and last names so that they can informally address the user by the first name and use the full name for packaging etc.
The real answer was given above by Robin, partially.
Let the user give their full name and a name by which they would like to be addressed. Putting a limitation on the length is not unreasonable, since mailing labels and envelopes are “real” things with “real” limits. (Unless of course the user is willing to sign a waiver and pay postage for a 1m x 1m package just so that the name will fit).
So yes, too many websites “do it wrong”. But the burden should be put on the user to supply a good name, and the website should be flexible enough to handle reasonable requests.
It seems like it might be useful to build a publicly available data set that programmers could use to validate their support for names.
If a person’s name can’t be expressed in a series of zero or more Unicode code points, then I contend it’s a bug in Unicode. ^_^
Some systems assume your last name has to be different from your first name. Pretty funny when sign up fails for such a reason. — Stephan
Obligatory link: http://xkcd.com/327/
Re: Comment 4543, wouldn’t it be fantastic if your name was
__,___@
[_’^ )
`//-\\
^^ ^^
?
Need answer to Peter Lyons’ question please. Convert these to some guidelines (or better, example code) that maximizes the chances of recognizing names correctly. Possibly add ability maximize chances of rejecting non-names. Possibly add ability to recognize the chance that two names may be referring to the same person. I cannot help people with no names.
http://en.wikipedia.org/wiki/Burmese_name
An illustration of a few of these points.
Addition:
I) There is only one way how to spell a name.
II) All characters required to spell a name are always available on every keyboard layout (e.g. all keyboards in all internet cafes around the world allow me to write my name including all strange characters)
IIa) The rule above is also valid for mobile devices!
III) Everybody knows how to spell their name
IIIa) Everybody can read and write
IV) Everybody wants to give you their real name
As a public service, I’m going to list assumptions the author of this article probably makes about computer systems and/or the people that wrote them. All of these assumptions are wrong. Try to make less of them next time you think, it’ll prevent you from sounding like an incompetent fool that doesn’t understand simple things.
1) Software can account for every possibly ever.
2) Software engineers care about your article.
3) Your hurt feelings and low self-esteem will somehow earn you empathy.
4) Software engineers care if you have to slightly modify any or all of your name to properly be accepted by the software.
4) a. Software engineers care if you ever use their software.
5) Software engineers wanted to build the software the way it ended up.
…
…
Unlike the author of this article I have something better to be doing, I can’t believe I wasted so much time on this already!
Bon Voyage!
Hello. My name is !Mbeki Xlotl von Saint-Louis-du-Ha! Ha!
I live in Saint-Louis-du-Ha! Ha!, Quebec. My father is German, but was found in Saint-Louis-du-Ha! Ha! in a toilet and hence got his name Toilet-Bowl von Saint-Louis-du-Ha! Ha! My mother is Bantu, but my god mother is from a small tribe in the Amazon, hence my name.
I normally go by John Smith.
Also, because I was born and lived in India until I was five, I didn’t have an official name. I was referred to as ‘Chhotu’ meaning little one.
I respectfully disagree with #21. (AFAICT :-)
The simplest and best thing to do is simply to have a single plain “name” field, which accepts anything, as this comment form does. Anything more complex will be wrong.
If I may expand upon assumptions 1 to 5:
The database designer should know the purpose of the name fields. Yes, people go by multiple names, but which one(s) do you need?
– their full legal name in their country of birth
– their full legal name in their current country
– the recognized name they use for banking or other formal transactions
– a polite way to address formal correspondence to them
– a friendly way to address informal messages to them
– a unique identifier that the user can remember (a handle)
– the alias they use in the criminal underworld (e.g. for a police database)
The purpose should also be specified to the user, so they know which name(s) to provide.
Another assumption:
x. It is possible to divide a name into first, middle, and last names by algorithm.
I had a friend, whose name I will render as Mary Esther Jones. Her first name is “Mary Esther”. Other people with the same name are likely to use “Mary” as their first name, “Esther” as their second. Moral: you have to talk to the person to see how they parse their name. Also, if you do this kind of parsing automatically, you better have a way to correct it.
The problem with *my* name is that people want to correct my spelling (to “Von”), want to insert spaces, mis-hear the first, third, and last letters when spelled out. Actually, I like it. I can tell in an instant whether someone asking for me on the phone knows me. And if I want an excuse to repeat my last name multiple times, I’ll probably get it. In some countries, ones in which I’ve spent a lot of time, trying to pronounce my name seems to break their brains.
@ Mahmoud Al-Qudsi re #40:
You have obviously never worked in a maternity ward in a hospital. There’s an interval between the time when the baby is born (9 pm), and the time when the civil servant in charge of processing the birth certificate arrives (8am) when the child has no name and is known as “son of Jane Smith” or “daughter of Juliet Adams” or whatever the mother’s name is.
These babies legally have no name until the form is filled in. Of course it’s even worse if, due to some complication, the mother is unconscious or died and other family members can’t be reached…
@blueshifter
“Everyone has three names: first, middle, last.”
I have *four* names (two “middle” names). I can almost never put them all on (paper) legal forms that require me to complete my full name, and they’re not even that long. Some people only have two names. Some people have even more than four. I know someone who has a single legal name. No first name, no last name, just a single name.
“The middle name is unimportant, and can be safely represented by only an initial.”
Says who? I know it’s a convention in the USA to abbreviate the middle name with an initial but it’s not the same elsewhere in the world.
“Nobody goes by their middle name, after all.”
Oh yeah? I’ve know many people who go by their middle name. Sometimes it’s because they don’t like their first name, other times it’s because their first name is the same as their father’s first name. In some cases I didn’t know that the name we called them was their middle name for several years.
The point of this post is not all cultures are the same and use the same conventions for names. Even within the same culture there isn’t necessarily a standard naming convention.
I for one don’t ever tend to use my middle names at all, unless completing a legal document that requires them. I get somewhat annoyed with web forms that require my middle initial and won’t submit without it. (And also with web forms that require a state – we don’t have states in my country…)
Thank you! This is the first form that’s ever let me enter my full name.
Well, it’s easy to sit back and throw problems out there. Where are the practical guidelines in solving the problems? Moreover, what is the business justification for the cost and time in solving them?
For instance, how on earth do you intend to fix #11, where people’s names aren’t mapped in unicode code points?
Using unicode just isn’t good enough, I guess. You lazy, stupid, falsehooded programmers.
What do you want us to do instead? Roll our own character input system for some crappy web app just to appease the few thousand out of 7 billion people that might meet this criteria? Ignoring the probability that one of these people will even see your application?
Look, some of your points are valid, but most of them are utterly extreme edge cases. You’ve provided problems without solutions or even any justification as to why most of them should be solved, instead blaming programmers for being too stupid to see the light.
The problem is that software is a business, and nobody, absolutely nobody, is going to pony up the money and effort it would take to fix all these problems just for one tiny aspect of an application. Where’s the payoff? So “Jack Hasselhoff-Van-$mackigun$ Pious M’CKA’Ckrmk#@$9″ can feel good about putting his stupid name into a form? How much is that even worth? I’d like to see the return on investment of that.
Chris Mulligan said it best: Never let the perfect be the enemy of the good.
@blueshifter You forgot the most important rule of all: “Sarcasm goes over the heads of 99.9% (+- 0.1%) of all people that post on Internet forums”
Perhaps in the next big meeting of the great society of standards we should establish a standard for people databases. Isn’t there already something about that in LDAP?
Number 40 is an absolute winner IMO :)
Databases don’t work with names well because it’s really freaking hard even for a human sometimes. People have funky spellings, middle initials, sometimes full middle names, phone operators mis-type or mis-hear names, or assume a different spelling. People have accents which messes up people hearing names and bad handwriting which messes up people reading names. People have names that look like words that should be cleaned from names like “Mr. John Trust”. While “Trust” should usually be cleaned from a list of bank trusts, it can’t be cleaned here. Some people do last name first. You want to add another language and address standard in there, good freaking luck.
As far as I know, doing data processing as a job, if you want good results, you MUST look at a very small percentage of an average database manually (maybe 0.01%-1% depending on how dirty your DB is). But for any global company, that could still be tens of thousands of checks you have to make and it will be very time consuming.
Hi my name is Little Johnny Drop Tables.
When my parent’s enrolled me in school they complained about their student database breaking for some reason…
Dude, you’re an idiot. Most of your steps are redundant with other steps. And hey, guess what! I’m writing US, English software. That means you have to abide by our rules if you want to be in our database. If you have multiple names but no one in particlar at this moment, PICK ONE. If someone asks you what your name is, you should probably have AN answer at any given point in time. Who the hell would answer “I don’t know” or “Let me decide on one real quick.” As for letting non-english characters in, some databases/software/data adapter objects/programming languages/platforms/code/ etc etc etc etc etc don’t support 100% of typeable characters. It’s a security and stability thing. If you have some obnoxious name that isn’t compatable with big name frameworks and software, and you’re trying to use my American English software, that’s your problem.
Why can’t everyone just have a GUID for their name?
5316911983139663491615228241121400000 combinations, plenty of room.
Johnny ‘; Drop Table Student;–
Were you thinking about the XKCD comic from a few years ago…..
Remove the spaces…..
http : // forums. xkcd. com/ viewtopic.php ?f=7 &t=13619 &sid=bc17b30cf1838f8d1485f186239d9482
And then, when we get the names straightened out, lets use them as parts of compound unique keys. Yeah, that’s the ticket.
Nobody goes by their middle name? In Australia we have had at least two prime ministers that went by their middle name: John Malcolm Fraser and Edward Gough Whitlam.
@oinopion the only “ideal” database is one that has been defined behavior for handling all of these assumptions. Go down the list, saying “what happens in my database if this person’s name (or lack thereof) breaks this assumption?”
You have to know how you’re going to handle each particular case, including deciding whether to accommodate it or not.
So what’s more important, the rights of an individual to have their ever changing, unencodable, arbitrarily sized name exactly correct in every system they encounter, or is the correct functioning of a system aimed at providing a service to that individual making a few judgments on how to best fit an identification into that system?Who cares if every character of the name is correct when there are other unique identifiers that can be used to nominally identify an individual.
I agree that working with personal information is tiresome, but Jesus Christ, I think you’re getting your panties in a knot over something that isn’t that big of a deal!
53. Names cannot include acts of homocide.
I think your blog is a lot of whining about the structure of our society. Some people might be offended that society forces people to walk around with their genitals covered- after all, there are tribes where no such stigma about exposure exists. But, a society needs rules and ethics to maintain structure.
As such, global society has adopted the European idea of a person having a first name and last name. Whether you like it or not, everyone MUST make themselves conform to this system to function in our society. Blogging about the absurdity of it is about as absurd as protesting wearing pants.
I HATE PANTS
- The stated/usual western romanisation of an individual’s name matches the
offical/formal romanisation of the same name.
– Only criminals use aliases
– An individual who has changed their name has/is required to have documentation from one or more government agencies stating this fact
Programmers get stuck making assumptions about family relationships, too:
– Legal surname == surname == casual/legal surname of one or both parents
– Legal given name == given name == Preferred given name
– Nobody has any confidential legal names (family law court rulings, witness protection…)
– The assumption that it’s appropriate in all cultures to address an unmarried woman, Jane Smith, as Ms Smith (I’ve seen examples where it should be Ms One_or_more_of_the_Father’s_names)
If you’ve never seen a system that handles names properly, I have to doubt how many “systems” you’ve seen.
Let’s me summarize: you think we should allow for arbitrary length, arbitrary characer set, strings (although some jerk is now going to say his “name” is a 4-dimensional image and you will insist we support this), which may not even exist, or may have an arbitrary number of values, and may change at any time.
As a system designer I can live by these rules easily, but it’s clear that the such a “name” is useless for any computational or record-keeping purpose. You can’t search on it (not even fuzzy searching) and no part (it doesn’t have “parts”) is remotely usable as a key. And so, as a logical but efficient system designer, I don’t record it in the first place; no more than I would want to record the number of hairs on your head at the time of entry.
And lo! There are plenty of systems that ask for email only, or some other
identify that is (or the user promises to be) unique and stable (ssn in the US, system logon, etc). Plenty of systems that exist and handle things correctly according
to your utopian view of the world.
Yes, it’s true, some others think that a structure and regularity that applies 99.9% of the time can be useful, and they record )and try to use!) “names” as a pragmatic decision, but this is broken: I agree with with some earlier posters – if a system isn’t perfect, if it can’t handle the most extreme outliers, it’s just no good at all and doesn’t deserve to exist.
But regarldless, you are wrong, PLENTY of systems get it right.
I’m a little startled and saddened by the number of comments that seem to honestly think that either there is no problem or that the post does nothing to help. Having written systems that must (try to) use the names people supply to match and merge identities, Patrick’s list resonated pretty strongly with me. He’s not laying down rules, because every system’s requirements are different. He’s just (as I see it) trying to promote some critical forethought amongst developers who may find themselves working in this problem space.
Oh, and for the commenter who said they don’t care about names because they identify people by their email address – let me know how you get on with that :) It’s a good thing you’ll never have two individuals sharing one ISP account and hence a single email address – right? Right?
Not all name suffixes are Sr., Jr., III, etc.
I’m MSB, II. I am named after my father. He is named after his father, but their middle names are different. (And, as we’ve established, middle initials (in the States) suffice.) Their mail always looked the same, so he appended the Jr. Therefore, I can’t be Jr., because he is. So I’m the II, not the III. I can’t put II anywhere on most forms, but I darn well sign it everywhere. That’s who I am.
Thank goodness I don’t have to code anything like this. My boss would get made I added features just so it worked for me. And I’m not even that complicated.
Pointless!
Exactly what is the problem? You made a database and instead of having customerID you used customerName as a primary key? A-DERRRR!
If someone has a name that uses characters not currently in the entire 65000 unicode characters available, I’m sure they are used to using something else when they put their name in a form.
And if your system has trouble dealing with someone’s name changing you can hardly blame the person in question…
AS a solution to all of the above, do what I did a long time ago:
ask for your name input as an image, and use the image in place of the name.
works wonders.
@Gavin:
The first of your assumptions is easily disproven in modern Iceland, where the second name is almost always a patronymic (like “Jónsson” for the boys and “Jónsdottir” for the girls). Permanent family surnames require government approval.
Other non-surname traditions include Arabic and Gaelic.
@petersod (Not My Real Name)
if a site asks you to have a unique e-mail address and you lie to it about your identity, you should have no expectation that it’s going to correctly identify you.
While I agree the the monikers that people adopt are as ephemeral as the wind, if you want to be represented in MY system, your name will need to conform to Unicode code points, and will need to be a maximum of 20 characters for the first name, and 20 characters for the last name.
It’s not that I believe false things about names, the problem is that wierdos believe false things about what is acceptable for them to name themselves.
If they want to be represented and classified they will conform. If they do not, then they can be bent, folded, spindled and mutilated for all I care!!!!! ;-)
and GET OFF MY LAWN!
While I don’t disagree with the premise of the post, it would take a project with an infinite budget and infinite schedule to cover every exception. Once you get past names, start working with addresses. Then phone numbers. Do I disregard the external systems I have to connect with (ie credit card, shippers) that require distinct “First Name” / “Last Name” fields? Is my webpage formatting going to handle a name that is more than 1,000 characters long?
This list is relevant in terms of considering requirements before development. You need to know what data you’re expecting. But obviously this shouldn’t be used as a “must handle” list.
You’ve already mentioned some of the below, but this is a list from personal experience:
– People’s names do not contain spaces
– People’s names do not contain punctuation other than spaces or hyphens
– Certainly not a double hyphen like in Martin–Dupond
– People have only one given name
– When people do have several given names, only the first one is important.
– When people do have several given names, the first one is important.
– The first name is the given name and the last name is the family name.
– People’s family names begin with a capital letter.
I laugh at all the people who didn’t realize that blueshifter was not stating a fact that he/she believes, but rather another false assumption, like the 40 from the list.
FIRSTLY:
This is a waste of hard drive space and bandwidth for most programmers. I am in the U.S.A. and design for U.S. customers. You can fit into our customary data plan or not… we here really don’t care much. If you are to dumb to fill out the form and make something work … I don’t want to support you as a customer anyway. I am not going through the work for you to be able to use Chinese symbols in your name field, get over it or don’t … I don’t really care.
SECONDLY: Prince’s name on his checks and credit cards and awards were almost always Prince, he’s a dumba55 anyway.
Oh, and ROFL @ :
I’ve been considering changing my legal name to O’DELETE FROM users
This problem is more than annoying! I have an apostrophe in my name (real one too), and for most banking systems this is not accepted. This can be highly problematic! In some systems it is “Jour”, others “dJour,” and even sometimes “d Jour”. Now banks often use relic software, so the systems can sometimes totally reject you if you don’t write your name correctly – in the WRONG way!!!
I guess this was why so many US programmers used a SIN as a database key :-)
Another myth – that everyone has an address. I heard a story about someone living in the Arctic trying to order an item online. How they got stuff, was put it on a plane with their name on and they’d pick it up. But the form wanted every box filled, so they had to make up a fictitious street name and number like “tent 3″ “behind the shed”.
As many have pointed out already – most of the solutions to the proposed problems are just plain silly. I’m not going to allow unlimited space for names so some twelve year old with too much time on his hands can create 327 different accounts each with a name that is 27 gigabytes of gibberish thereby slowing down legitimate users access to the system. Similarly I’m not going to let you have an unlimited number of names. If you have 23,815 names then pick your favorite one. Or if you don’t have a favorite one use a different one each time you use a different system.
The important thing here is that I’m baffled by the number of people that seem to have their self worth tied to how some arbitrary computer system records your name in some place most likely halfway around the world. So your email address can’t have an apostrophe in it. I’m sorry, let me rewrite SMTP for you and roll that out to the world so your fragile identity is kept intact. Grow up and realize that if you’re talking to any company with a marginally decent customer service employee and they mispronounce your name then they will apologize and try to make a note on the account so that it doesn’t happen again. If you can’t handle the fact that someone who has never met you and may not be an expert on your culture gets your name wrong, then you have more serious issues that are touched on in this post.
Oooh, some people seem to be a bit angry.
“This is a waste of hard drive space and bandwidth for most programmers. I am in the U.S.A. and design for U.S. customers. You can fit into our customary data plan or not
Clearly, the author (Mr. X, let’s call him), has left us programmers
with no other choice than to demand a strand of hair for DNA analysis
before we will let you log in.
Oh, ok, maybe the barcode stamped on your forehead will suffice.
I find that a lot of programmers don’t take white space in names into account. “van der Walt” is a surname/lastname, but most apps that handle names will only recognise “Walt” as the lastname. This is very annoying when dealing with say, Dutch, German and Afrikaans names.
I don’t understand the problem here. If I’m writing order taking, credit card processing and shipping software, ‘First + Last’ will be fields in my database and they will map or be mapped to ASCII. I need something to print on shipping labels and for VISA to validate.
If I were writing some theoretical application to handle the registration of immigrants, then sure, I’ll go overboard with name fields and a wide input acceptance.
I’m not going to present a web browsing user with a half-screen full of name-entry options when all they’re after is registration to a forum.
What I take from the article is just a gentle reminder to think carefully about established database concepts. What I would suggest to Patrick though is that there are good software developers and there are bad. Good ones can have bad bosses and tight deadlines, thus the majority of code in the world is bad or at least inflexible or lacks useful features. Even good code must consider database integrity and performance, thus even ‘salutation, first, last, family name, alias’ fields stored as UCS-2 (which is the only unicode understood by Microsoft SQL Server) is considered overkill.
people PLEASE realize that blueshifter meant that as another “gotcha”!
Your comments are painful to my sensibility.
In Mexico, there is an equivalent to “William”, but if people tried to pronounce William, they would make the double-LL into a “Y” sound– what’s more, the “ll” in Spanish is considered ONE letter, alphabetized AFTER all single-L instances.
@ John Stracke/#4532: For #11 (and also for character-issues), in Mexico you can legally sign your “firma”, which is a mark, or signature that may be a stylized scrawl, even made into a picture. Many legal forms ask for both (esp banks etc) but if you can’t spell or write well, you may use your firma along with an “X”. Those examples are not people trying to get attention, nor trying to avoid a copyright nightmare (like Price was)
I visited someone wrongfully in jail, and they asked for both when you signed in. My firma I made like my signature, since I didn’t go by another, BUT another well-educated friend put her signature and then her usual firma, which looked a little like a VERY loose version of her signature stylized and added-to to make an image that looked like a puppy’s face. If she hadn’t been literate, the firma would have been the only unique/individual mark (“X” is rather generic) The firma IS a legal mark, even though you may have a name YOU can’t spell. Someone transcribing visitors would have to take an image of the firma to even try to get it right. Before encountering this, I tried to stylized my signature more because people in the USA complained that I wasn’t “signing”, because my script was “too neat”.
In the USA people often make their normal signature “fancy” by extending the tail, perhaps looping it around the name. My friend’s firma was like this, only with parts added to be pictorial, and low emphasis on it being readable like a name.
My wife didn’t have a middle name until she married me. She found it would be easier to use her last name for her middle name, and to use my last name for her last name. It solves so many paperwork problems. I’ve seen other friends with similar issues with a no middle name.
I also had a friend from high school whose last name was Hadjimohammadi. Needless to say, not all forms could handle his last name.
Also not everyone’s last name is their surname. Sometimes the surname comes first.
It is worth noting that one or more assumptions may be imposed on the programmer by legislation.
oh yeah, again, PURPOSE is important.
You may not be able to get mail addressed if you can’t spell, and can only draw a non-alphabetic firma. For registering at a website, you would probably need to choose something you could GO BY (really, that is what the firma does, only not abiding by postal restrictions)
Just like signature is meant to be more unique than a “printed” name, the firma is meant to identify you by your USUAL mark, not by an easily sorted convention. Different strokes (of the pen) for different folks!
@Robin
Using a changeable attribute as a unique identifier – what a stroke of genius!
@Des: You are an idiot. In your little world, I assume that the US doesn’t deal with any other countries, nor have ever had any foreigner enter the country or even correspond with any one of you.
Go buy one of the Maldives, set up your own country, and “sanitize” the names of everyone stupid enough to come live under your reign or visit you. Then, and only then, would your stance be sound, except you’d have to change “US” to “Elbonia”, or whichever other name you choose.
Alternatively, for the love of all that is and have ever been holy to anyone, stop writing software. Now.
simple, one field of 1024 IPA chars with a virtual keyboard.
oh wait, no one knows about IPA :(
hint: http://en.wikipedia.org/wiki/International_Phonetic_Alphabet
“Everyone has three names: first, middle, last.”
In my case I have two first names, and a last name. I use them both, but maybe it would be clearer if used a hyphen in between…
What with this weird mangling of apostrophe’s and quotes on this board?
Kudos for not doing it in the name, hehe :-)
I’m impressed!
… unless the name occurs in the text: Tim O’Neill…
In most places of the world, a name is a legal requirement for being a subject of any rights. If you don’t have a name you are not legally capable to accept the terms of service, sorry.
Also, if your name is more than 64KB, I require you to sign every of 30 pages of the document to sign with it, full.
And for non-unicode names, you’re welcome to provide a romanization. If you can’t, I’m pretty sure you are not legally capable of accepting terms of service either.
If someone willingly wants to break the system, the system doesn’t have to accept them gracefully. It can reject them. If someone lacks the wisdom of having a reasonable name, let them suffer the consequence.
Wow, some people are really hostile to what they perceive as foreign cultures.
It’s not just about “feeling good” when you see your name written correctly. I occasionally cannot sign up for internet-based services because they would not accept my bank-headquarter’s city due to an umlaut. Plus my home address contains a city with two long names separated by a hyphen. Correctly representing those is not just cosmetics.
Many systems try to validate your input and as a customer you are forced to try N combinations until it fits the arbitrary representation in said system; where N is a shitload that only other programmers can actually predict. Plus, it’s not like Germany is a strange unusual country.
Of course as a programmer you are often faced with having to interact with inferior legacy systems that require fixed forms with ASCII input. It’s a lose-lose situation.
You wouldn’t believe the complaints I get about my name. With more and more geeks copulating, ‘; DELETE FROM USER; SELECT ‘ is not as uncommon as you might think.
great post! :D
“11. People’s names are all mapped in Unicode code points.”
Although that certainly doesn’t hold true for some people in some Asian cultures, that’s really quite a reasonable assumption to make for practical reasons. Handling an alternative character set in some encoding that isn’t compatible with Unicode would add a huge level of complexity for little benefit. In most circumstances, there are far more advantages gained from forcing that minority group to provide alternative names that do map to Unicode.
Daniel Larsson:
What about “Örjan Ågren Ärenpriis” when the form refuses ÅÄÖ? Or two surnames?
31 (a) Any word is obscene is some language, somewhere.
Even in some seemingly trivial situations you shouldn’t assume too much about the names.
Never assume for instance that the first of several given names is the commonly used. My father for instance has three given names (lets call him “Eugene Robert Martin”), where the first is the name of his grand father, the second is the name of his father and the third is is actual name, So he goes by “Martin” in daily live, but standard forms make a Eugene out of him.
In some autonomous communities in Spain we have several official languages. For example in the Balearic Islands we have Spanish and Catalan. Technically we can only have one name and there are no official rules to use interchangeably our names in both languages (like in Ireland, I think).
In practice most people have Spanish names on their ID cards because of the four decades of military dictatorship he had util the 1970’s, which pushed a single-everything (including a single language). At the same time most people use their Catalan names while speaking, and in many other documents. Eventually, some change their official name to the Catalan version. Also, recently parents choose the Catalan name for their children but some people still assume that the right name is the Spanish version and translate it automatically when speaking, or when writing. In practice this leads to a lifetime mess of first names in all documents.
For example you can call me Guillermo (in Spanish) or Guillem (in Catalan). And I’m sure that you don’t want to know this, but when speaking it’s really pronounced “Giem” (in many written languages “Guiem”) and some write it with these wrong, incomplete spellings too. And this is just one of many possible names. Others are harder.
Surnames have funny versions too…
“#11 (unicode) affects Chinese and Japanese people with rare or archaic characters in their names. ”
This isn’t true, in Japan at least. You are legally required to pick names for your children based on the Kanji in the Jyoyo Kanji (Common use characters) and/or Meiyou Kanji (Name Kanji). You aren’t allowed to use any other characters, and those are all included in Unicode.
As for not having a single name, you *do* legally have a single name, and it is printed on your passport, usually in roman characters. You can have an official alias as well in many countries, but even then you can have at most two legal names. If you want to be called “Dave” or whatever, then you can have unofficial names as well. If your system supports something like 64 ASCII characters for first and last names, then it can safely handle any legal passport name. If it supports Unicode, then so much the better. If you are dealing with people who couldn’t possibly get a passport, then they probably won’t be using a computer either.
I have worked on large payroll systems in Japan, France, and the USA, so I know something about these issues too. Japanese is one of the more complex systems, and even then, there are normally a maximum of three ways to represent a name (Kanji/Hiragana, Katakana, and Romaji). If you have a legal alias and are putting in a name, then you can pick which one, but there is no need for the system to keep multiple names.
Obviously, the name shouldn’t be a key or anything like that, anyone who does that is … well, dumb.
another example of names that don’t fit in simple schemes are the names of nobles. For example the Queen of the Netherlands is named “Beatrix Wilhelmina Armgard, Koningin der Nederlanden, Prinses van Oranje-Nassau, Prinses van Lippe-Biesterfeld” but her title is “Beatrix, by the Grace of God Queen of the Netherlands, Princess of Orange-Nassau, etc. etc. etc.” (yes the “etc. etc. etc.” are official part of the title!!)
Another assumption: Married people have the same familiy name.
Even a (more or less, depending on your country) usual name as mine gets changed into Stephen, Steve, Stevie, Steven, Steffen, Stefan…
And the umlaut in my family name has even been transformed to a ‘9’ (nine) on at least one (1) occasion…
4x (I’ve lose the count): no real people are named John Doe or Richard Roe.
@blueshifter:
“The middle name is unimportant, and can be safely represented by only an initial. Nobody goes by their middle name, after all.”
Except, for example, in Slavic culteres the middle name is usually a patronymic. And a polite form of address is NOT name+last name, it’s name+patronymic.
41. All names fit in a VARCHAR(50)…
Agustín Lara’s real name: Ángel Agustín María Carlos Fausto Mariano Alfonso del Sagrado Corazón de Jesús Lara y Aguirre del Pino
http://en.wikipedia.org/wiki/Agust%C3%ADn_Lara
50. Passport agencies, etc. will help in simplifying names, or giving people unique names.
To follow on from what Rory / Ruairí said above, some countries give multiple passports, in different names.
In more contentious times the Irish government gave up to 2 passports: 1 with an English-like name, 1 an Irish name. Both legally valid. They were issued in cases where safety might be an issue, eg. a businessman travelling to both Israel and Arabic countries, (or both the US and USSR/Cuba. ), where passport stamps for Israel might cause trouble for someone in Iran, etc.
So the idea of the name being a unique identifier is _deliberately_ being broken.
Also: think what this means now that we have a significant immigrant population for the first time. Some organisations in Ireland require you to use an “Irish” version of your name, even for Chinese (or Polish-) -Irish …
There are always people who can’t be pleased. Fuck them!
If you don’t already fit in my model, you’re irrelevant because I didn’t think of you when I designed this shit.
@All those who think getting names right doesn’t matter, and doesn’t affect the bottom line…
It’s not about the data entry, it’s about reflecting the name back correctly. Example: you send me a marketing letter. You get my name wrong. It annoys me. Thus I hold in my hand concrete evidence that your company doesn’t care, and can’t program. I can legitimately decide that you will screw up my order and your after-sales customer service will be rubbish. So I decide not to business with you (in particular, I won’t buy software from you). Multiply by the number of brochures you sent out and the number of screwed-up names in your database. There’s the hit on this year’s bottom line. Now I start telling friends and business contacts about your screw-up. There’s the hit on next year’s bottom line and a drag on your company until you improve your name-handling (never to be perfect, but reducing the number of fails is worth it).
I have no message
someone suggested using emails instead of names to identify people. That’s not any better:
– a person can have multiple email
– an email can be used by several persons (mom-and-dad@example.com)
– an email can be used by 0 persons (donotreply@xyz.com, etc …)
– an email address can be used sequentially by several different persons
– the list goes on …
social security numbers could be slightly better, although there are also problems:
– French social security numbers use the year of birth coded on 2 digits (Y2K …)
– 2 people in different countries could have the same number
– if you don’t register, you don’t have a social security number
– etc …
I apologize for my name, my family has come from far and wide. I hope your system is willing to accept that fact. By your own list of misconceptions, the rules can easily be built that we can’t possibly know anything about how a name may or may not look.
The intrinsic problem here is that once you’ve accepted these truths, you will find that any system you may build will be rather nonfunctional for simple use. If you wished to search for me by name in the system, what exactly would you look for? If I were to call into your call center (presumably English), no part of my name would make sense. The English translation of each part would give something that they could reasonably enter, but then could not possibly match my given name. So, where does that leave you? It has become common place to use a name which can be understood by the locals. A person knows to use a name that can be understood in that country.
BTW, I cheated a little. The name given above isn’t my name, but it translates in Russian Chinese, Hindi, and Arabic to:
Unpronounceable Misunderstanding Of Linguistics
When in a foreign country, or dealing with a foreign company, you must respect the local customs. Protocol is very important in achieving diplomacy, even if your diplomacy is only a silly web form asking for a name. There are experts in this kind of field, who should be consulted to achieve acceptance between all involved parties, regardless of where they may reside.
I have worked with many people, from many nations around the world. They usually provide me with an Americanized name. If/when we end up on friendly terms (social conversations, versus work discussions), I will frequently ask what their real name is in their native tongue. “Mike” from Russia may be Майкл (rough latin character spelling Mikhael). “Roger” from India may be Rajahed (rough latin character spelling). Some people never told me their real names, to avoid embarrassment when foreigners attempted to pronounce them, or mock them for being foreign even though their accents and behavior gave them away immediately.
If Mike were to immigrate to the United States, do you think his drivers license would say Майкл? Good luck with that one. I would consider it appropriate for him to use Mikhael, but he’d probably go with Michael, and use Mike with people he meets.
What a fresh breeze. I hate those US-centric system that assume everybody has First, Middle, Last name and used those components in the same order or fashion.
A sane system should not assume any standard how a certain name can be broken down for various contexts. It should ask what the person wanted to be called in those different contexts. And by “context”, I mean things like:
Legal Name – the name for checking against legal documents. e.g. the name printed on aeroplane ticket.
Full Name – the name for concise identification for most cases. e.g. the name on mailing address.
Formal Addressing – things like Mr. Wong, Ms. Brown, Dr. Jones.
Informal Addressing – things like William, Chris, Dave whatever.
Username – the name for unique identification purpose in the corresponding electronic / online system. The only thing that can be used as a database key and force any key-combination restrictions.
And except the username, all of the above naming context should have a language option to let users add different versions for different language contexts (if your system is multi-languages). I don’t mind my latin-character username being used as if it is a nickname even in Chinese web pages (sometimes I prefer that more, especially in English websites), but I mind my English first+last names being used in Chinese context (that’s not my legal name stupid). At the same time, I don’t want non-Chinese pages use my full name written in Chinese characters, since non-Chinese may not know how to read it. See all the frustrations huh?
But I don’t think problems #6 and #11 can ever be solved. Image uploading?
Stephan:
Some places are notoriously conservative with names. In Northern Ireland I know
of families with first names all variations of “William”: Will, William, Bill, Billy ; I have relatives with 9 variations on “Robert” in 3 generations: “Rob, Robbie, Roberta, ..”
Add twins and you can’t safely use name + birthdate + address as a unique identifier.
Daniel Larsson: One common assumption broken in Sweden, is that the first given name is the one used in normal life. The concept of “tilltalsnamn” is very specifically Swedish (the concept only appears in Swedish and French Wikipedia, “prénome usuel” for the French version). To exemplify, my full name is Nils Bertil Magnus Persson. I commonly got called Nils when living in Germany. When I went to USA, the automatic passport checker at the airport denied my passport, since the name on the ticket didn’t match my passport (Nils != Magnus), etc.
Further the Swedish idea of Middle names probably is not quite the same as English one. To make it even worse, I’ll add a new principle:
* People only have one family name (this one is broken by most of the Spanish-speaking world, where one usually uses BOTH parents’ family names…)
US-ians seem to assume that Mr John X. Doe is the norm. My mother has three first names but is known to most people by a forth. Everyone calls me by my middle name except for airlines and the health service. My partner has no middle name and really dislikes having to use Ms. One small Ango/Irish sample.
My name is Baji Jagannatha Ram Rao.
This is commonly written as B. J. Ram Rao
Here Baji is my family name
Jagannatha is my father’s name
Ram is my first name
and Rao is my surname
Originally the name was
Erode Baji Jagannatha Ram Rao.
or E. B. J. Ram Rao.
We chose to drop one initial as somebody felt that post 1957, three leading initials was one initial too much.
My elder son writes his name as Aniruddh Ram Bajirao
for whatever reasons, the Municipal Corporation of Greater Bombay
registered his name (in his birth certificate) that way.
First Name, Middle Name, Last Name.
Aniruddh Ram Bajirao
To constitute the last name, they chose to
concatenate the Family Name and the Surname.
And so it followed in the school records, high-school certificate, university degree certificate and passport.
In India, each of these has an irrational dependency on the earlier one.
My second son: Ajinkya writes his name as Ajinkya Ram Rao.
First Name, Middle Name, Last Name.
Ajinkya Ram Rao
He was born in New York State, and his birth certificate has the traditional:
First Name, Middle Name, Last Name.
As my surname is Rao, and my wife’s (by marriage) is Rao, so his birth certificate
shows his surname as Rao.
A common problem when travelling is: authorities asking us why in a family of four,
we have three different conventions for writing our names.
me: Family Name, Father’s Name, First Name, Surname.
my wife: First Name, Husband’s first name, Surname.
my elder son: First Name, Father’s Name Portmanteau surname.
my elder son: First Name, Father’s Name Surname.
41. People always enter their real name
@sweety
Sorry, your idea of using IPA failed.
Myth #58 A name has at most one single authentic pronunciation.
Chinese characters are pronounced differently depending on what dialect one uses. Bye IPA.
42. People always enter their real name.
How you like me now?
Assumption 0: You can code a compromise solution that won’t offend anybody.
Anonymous User: Your system misspelt my name! Waaaah!
Heironymous Boss: the project is late because you’re busy extending Unicode? WAAARGGH!
Can I see the ID of a person having numbers in his/her name?
Re: Rule 19
Professor at UNF in Jacksonville with the given name of Charles Charles Charles.
We called him Chuck Cubed.
Not having a middle name, and having a two or three words surname is impossible in the United States. In some systems ‘van’ and ‘der’ become the missing middle names, in others the words in the surname are stuck together forming something unreadable and unpronounceable. Occasionally, when an official notices the names on the passport, green card and drivers license are not the same, you get reprimanded (or worse) as though it is your fault.
Interesting article, but it’s entirely negative. You pose no solution or even ideas which might point to one. It therefore comes across as a bit of a whine.
Rupert Murdoch (he of media mogul Sky, Fox, Star etc fame) goes by his middle name. He shares his first name with Levi Roots (he of Reggae Reggae Sauce fame) whose “real” first name is Keith.
@Shiruba
“you *do* legally have a single name, and it is printed on your passport”
If you have a passport. Oh, and by the way, the name printed on my wife’s passport is not the same as the name printed on her mandatory government issued identity card.
Tadhg Mac Uinseainn Ó Arailt
Seems to me what this is saying is that you can’t have ONE name field in any database that deals with people in a remotely complex way.
You need “name to call them by when you speak to them on the phone” ideally stored as audio, or phonetics. This might have formal/informal variants so you can address them differently depending on whether you’re telling them they’ve won a prize or been diagnosed with terminal cancer.
You need “name to print on the outside of an envelope to get post to them”.
You need “salutation to start a letter” (“Dear John”) possibly in several levels of formality
You might need multiple versions of all of those depending on what language (and script) the letter is being written in.
After that it depends what you need to do. If you might need to refer to their family then you need separate column for that (but simply avoiding doing that might be better — “the Smith family” doesn’t translate well even for English-speakers who simply didn’t change their names on marriage.
You may need any number of “also known as” records giving previous names, names used in different contexts, professional names, etc. This is for trying to guess which database record might be relevant when someone turns up and gives a name, or a name arrives from another system.
Should be possible to build a basic database storing people by name in just a few man-years of work
So broad as to be useless.
I mean #11 who has a name which is not mapped in Unicode? And your proposed solution to this? Unicode is supposed to cover everything so I’m not about to invent a new character encoding just for people’s names.
I’m sympathetic to the ideal of getting this right, but 40 points against are just too many. Can we condense this down to some actual recommendations or give some actual examples? I can help: I know a guy called Michael Michael (#19).
As for #40 … you don’t have a name? So pick one.
Here are two common problems I’ve come across when entering names into United States databases for various companies, and I usually saw one or both of these at least once per day:
1) The database is unable to recognize the person’s legal name as recognized by the United States government
2) The database requires a person’s SSN and there is no way to request an alternate identification number. U.S. law prohibts non-government agencies, businesses, organizations, etc. from requiring a person’s SSN
You’d be amazed how many sites fail validation if any of your names is too short. Is a 1 character middle name really that unusual?
My name is fairly common in Australia.
So, as for my name, it’s “Þór Sigurðsson”. now, there will be a percentage of the readers that won’t see it correctly since UTF8 maps the characters *incorrectly* according to UTF16 and ISO8859-1 mappings.
Better yet, I have ordered stuff from all around the world – literally. The people *most unable* – and – *most unwilling* to treat my name correctly, are… the people of north America (no distinction, USA+Canada are still just a very very small percentage of the world).
I have had returns like:
* Por Sigurosson ( one of the “better” )
* bdr Sigusn ( missing letters? )
and in one case
* r Sigursson ( this one just drops everything not ascii )
I’ll let these slide. They are due to inept programmers – or – inept service people.
What I won’t let slide are the numerous sites that “require” ->MEMY<- name with 7-bit characters. That'd be like having Charles Dickens name automatically changed to Charlie Penisens. It's rude and offensive. And, more than one site has in fact lost my business (a few thousand US dollars each) because of it.
(My name is that of a god, a god that is still believed in by many, so there's extra "religious offense", if I were that type… :) )
The thing is – use freaking varcharn's in databases. UTF capable. Set to say 1K or so. Your'e not wasting any space beyond what you use…
Although you don't make any assumptions for the system, you may make an assumption about the clerks. If they're getting a name that's like 2000 characters, they're going to shorten your name to "Longnamefucktard Fromeshitztaniztan".
@непроизносимые 誤解 की اللغويات
Just a side remark: Any Майкл in Russia would most likely be younger than 20 years. And even among the young people, Михаил would be far more common than Майкл. (Михаил is a traditional Russian name, Майкл is a Russian spelling of the English Michael.)
Glad to see my whole name fits.
US keyboards are neutered by the lack of the umlaut key that the rest of the world has.
If you live in the rest of the world you probably have a key close to ENTER that does things like ¨^á or such (I suppose it is very different between national layouts) but they lack that one on US keyboards which makes it hard for them to type ü â é and so on without knowing about ALT+numpad combinations.
Sorry, I don’t believe you, Mahmoud. Every support call I make to a foreign country connects me to someone who may have an unusual English accent, but whose name is always “Tiffany” or “Richard” or some other perfectly ordinary moniker.
I’m a real world sample for #40, but your blog did not let me comment!
You insensitive clod!
In Sweden, every citizen has a unique and permanent personal number composed first of birthday, then a serial number of sorts also identifying place of birth and gender.
It’s not perfect, but it is more convenient than using names.
Well, the abstraction “first name” “last name” actually adapts to most situations. People usually want to be called somehow, and reached by snail mail / packet service.
Can I see it?
Alekz: now thats just stupid
One thing that really annoys me, that primarily seems to happen on American websites, is systems which take your surname and force it to all be lowercase apart from an initial capital letter. It’s so common I assume it’s a default template in some developer’s tool out there.
As you can see from my surname, it includes the Scots prefix “Mc”, meaning “Son of”. The capital letter on the third character is mandatory.
I get why you made this post, some apps have ridiculous constraints on names. When I get to decide the implementation, I allow one name field with 255 UTF-8 characters. Seriously, everybody on the planet who’s presented with a web form will know what to do. I don’t buy your point number 11. Sure, some people might have names like that, but when will have a UTF-8 alternative.
Password fields now, those are messed up. I gon’t get why anyone would disallow spaces, for instance. Or allow only uppercase. Seriously, that right there halves the keyspace needed to crack it. Or let’s talk about email validation scripts. So many apps out there disallow the + characters in e-mail, when it’s perfectly valid! I even had one asshole developer tell me that he disallows the plus sign because he wants to have strict validation. FAIL
This XKCD article seems quite appropriate since we are talking about names!
http://xkcd.com/327/
I assume since we are an audience of programmers this requires no explanation.
My name is a piece of lint. Yea, it is the physical object, and not just any lint–the one in my pocket. The one that was in my pocket…I lost my name 9 years ago and have assumed this moniker since.
Wow, someone is a bossy, know-it-all attention whore. Try “just put a damn text field, whatever they type is the name you use.”
Over-complicate problems much? This is the embodiment of corporate waste, everyone!
It’s 450107-9075 here! I haven’t seen you since you were little. My, how you’ve grown. How’s your grandfather? He and I were great friends since he was called to start school on the same day as my son, because of having the same person number (100 years apart).
@billyswong
I would contend that there is a canonical pronunciation of a person’s name; the way the person in question pronounces it. Of course, this may change over time, perhaps purely because the person has moved, and they change the way they say their name to match the local dialect.
My two cents. Here in Amsterdam (Netherlands) authorities have to deal with aprox. 180 different nationalities. All of the problems mentioned (and maybe a few more) apply to this situation. Even worse, for people seeking asylum or any legal status, the name the provide has to match the name they used in their native country. Giving a false name is a felony. People have been deported for this. What if your passport spells your name differently from your marriage certificate? What if your name is different on various official papers? This is a serious problem. What if the computer system provides the civil servant with an other name than the one on your passport? Because it was entered using your birth certificate? Or because it did not fit the entry field. Or the system only provided for ASCII? What if computer records are shared between countries? You lived in Greece for a while, with Greek papers spelling your name in the Greek manner, different from that on your passport. Then you move to Germany, where they provide you with new papers, and another spelling of your name, also different from your passport. Now you have a the right to transfer your persion funds from Greece to Germany. How do you prove that you are the same person?
All those of you making fun of this issue should spent some time dealing with this and think about the consequences of getting it wrong. Don’t think ordering a book from some website. That is not the problem. Think about official/legal situations (of terrorist watchlists). And just creating some kind of social security number does not do the trick. You still need to match the physical person to the identifier (by name ….?).
The really big problem is the assumption that people all over the world have a unique, legal name, with one official spelling and a fixed structure. This is just not true. Just like many people around the world don’t know their date of birth. This is the reason authorities employ document specialists who know everything about foreign documents, names and legal systems in order to assess authenticity of documents and to provide the person with a useable name for the country he/she is living now. That is why countries have rules for names, and for the translation of names, and for the registration of names. Unfortunately this only works in a national context. Solutions? Not in the foreseeable future.
Why not just record the name speaking? Everytime an user registered, it will have to record the name by speaking it or keeping quiet if they had no name. Then instead of showing the name, the users could click on an icon and hear their own name with their own voice… Eh eh eh eh.
It doesn’t matter what programmers believe it matters what programmers can do with the computers available.
Many of these “falsehoods” are legal requirements for the countries where the software operates. Are you being a troll or are you just uninformed?
Aaah… A pet peeve.
Companies in the US very often assume two things:
– Everyone has a middle name (or at least an initial)
– Addresses must have a state (not a country, that, too – but we talk state)
– Addresses always follow some weird scheme in the US.
And you worry about names. :)
Anyway. There is no need for the author to provide solutions to all of the problems.
Unless you are a Real Idiot (TM), you can do three things:
– Find out which of these rules apply to your application
– Find out how to handle the remaining ones and put them into code.
– Do not use “Name” as a unique, primary index.
(Thor, if you are still following this – A lot of people still believe?)
THREE things, actually. It is worse than initially assumed :)
@19700612-4127: That system stuffs up them when people decide to change their gender …. or be both :)
When I’m trying to buy something from someone’s website and it chokes on the apostrophe in my last name, I find a different site to buy from, even if it costs more. Seriously, there have been last names with apostrophes for centuries now.
Well, ok. Patrick’s post is a bit over the top. Some people have pointed out, rightfully, that designing a system to handle everything he points out is unreasonable. And I understand that countries might require that immigrants use a legal name which will be easily recognizable by the rest of the population. I lived in Taiwan for a bit. As it turned out, I was not there long enough for the Taiwanese government to require that I take a Chinese name but I had one ready, just in case.
Now, look at the name Robert-Benjamin Dumont. It is not my real name but it is equivalent to my real name in all relevant respects, for the purpose of illustration. There is nothing which by North American standards would be considered “exotic” about it. The US government would have no problem accepting it as a legal name. (Indeed it has no problem with my actual name.) Given the input Robert-Benjamin in the first name field, and Dumont in the last name field, here is what many US-based computing systems spit out when displaying the name:
1. Truncation of first name: Robert-Benja Dumont
2. Recapitalization of first name: Robert-benjamin Dumont
3. Recapitalization of last name: Robert-Benjamin DuMont
4. Interpretation of 2nd part of first name as middle name: Robert Benjamin Dumont
5. Any combination of the above.
Now, 2, 3 and 4 the system is actively mangling the name. I understand that sometimes, for reasons of functionality, names must be normalized to some form which will provide the intended functionality. In the past, if I needed this normalization to be done ahead of time, I would just have another database field contain the normalized value.
I have to agree with a lot of the commenters here and say that I’m not sure how practical all these bad assumptions are. For an easy example I’ll pick on the last one, that a person even has a name.
Most of the systems I write (at least professionally) are for the university and to be accepted to the university you have to have a name. That’s a reasonable assumption as a baby isn’t going to be attending the university. In all other cases, there is going to be something they call the person who is attending and so that becomes their name. In most cases, that person is even going to be required to have a legal name as they are either a U.S. citizen or they have some sort of VISA to come into the country.
Thus I think requiring name is fairly safe. The fact that people have different names, I typically allow for by having a name with a starting and ending date. I only have one active name at a time which is what my system will call you and what will be used when you are contacted by us. You are free to change it as often as you like without any justification. You will be tracked by a number internally and we’ll use things like driver license number or your university id number when communicating with other entities (otherwise things as simple as senior / junior cause problems as people/systems are not consistent).
Some of our Canadian “First Nations” people (a.k.a. “Indians”) have interesting names, often based on a characteristic or incident in their, or an ancestor’s, life. e.g. David Yellowlegs, James Two-Young-Men (He has the strength of two young men), Brian RollInMud.
But the best I heard of was “Standing beside the road waiting for a bus”.
He was questioned by an RCMP (police) officer one evening, and asked who he was, so he replied “I’m Standing beside the road waiting for a bus”. After a few repetitions of this, he was taken into custody, in the hope/expectation that he’d be more reasonable after a few hours in the cells. But in the morning he got them to check with the Register of Indian Names, and they had to let him go, with an apology.
What about the musician formerly known as Prince would he qualify as number 40?
an example for # 40
Another good one:
Don’t assume that when a woman marries and takes her husbands family name they will both have the same family name…
Take me for an example if i married in the Czech republic my wife’s family name would be Arnoldova!
So… I can either replace all name inputs with scrolling, unlimitted length freeform graphical inputs something like a graphics editor stuck in the pen mode
or
I can pick a scheme that satisfies 99.9% of the users while the rest have probably encountered this enough times before to have already decided on something they will write in a ‘standard’ form to represent their name.
Hmmmmm………. Tough decision
People assuming that John is ALWAYS a first name (John is my *last* name).
Almost every company I’ve worked in, every organization (private, federal or state), airline and store has fudged my name as John Arul instead of Arul John, even when I fill the FIRST NAME and LAST NAME fields correctly and mention in the Note that JOHN is my last name.
The root of the “name” problem is that those creating collection forms (paper or electronic) do not properly specify the collection domain. In other words, why the name is being collected, and how it will be used.
For example, most North American companies that use MS Exchange put the employee’s legal name into the Global Address List (GAL). However, since many individuals have chosen to be commonly known by a different moniker than their legal name — so, in a large enterprise it can be difficult to address an email to someone for whom you only know their common-name.
Human Resources needs a way to identify employees. The email system needs to identify recipients. Payroll needs a way to identify those needing a pay cheque. Etc. One falacy is assuming that all these systems should share the same “name”. Good database design tells us not to encode any information into an identifier: the information should be contained in a related information field. This same doctrine needs to be applied to people’s names too.
In the US, we have a simple solution – the social security number, which is a fixed 10 digit number of the form nnn-nn-nnnn
So, simply have each person enter a private numberof the form nnn-nnn-nnn-nnn
thats 12 digits – make it 16 to allow for the inevitiable slop.
Eric Hawthorne:
>demand a strand of hair for DNA analysis
>before we will let you log in.
>Oh, ok, maybe the barcode stamped on your
>forehead will suffice.
You mean you get users who don’t have their barcode encoded into their DNA?
The vast majority of those are just plain silly. Yes – a person can claim that their name is only spoken once every 3 decades when the exact right swarm of cicadas flies over a certain pond in Berrien Springs Michigan. It is however completely meaningless to business. The trend is heading _towards_ “customers are just numbers”, not _away_ from it. Although, I guess if there’s 1024 ways to make a Whopper, your list of considerations can’t be that difficult to accommodate.
Django should use a more flexible to deal with people’s names i guess.
I see that you forgot one of the classical mistakes (maybe is not listed because is an output error)
The first letter of the name and surname should be upper case.
Just a fun example, one of my historical heroes, George Washington Carver.
Born George, belonged to Mr. Carver, “Carver’s George”
Needed a name for school, transmogrified it into “George Carver”
Went to college, and was required to have a middle initial, picked “W” for unknown reasons. “George W. Carver”
Of course in America in the 19th century, any George W. must have been named for George Washington, so “George Washington Carver” it became.
Any political upheaval tends to cause discontinuities in family naming conventions. Look at the way all types of non-US names got hacked up as the Irish and Italian and other European immigrants passed through Ellis Island in the 20th century.
immigration worker: “What is your name”
immigrant: “Antonio Giordono”
semi-litlerate immigration worker writes ‘Tony Jordan’
It’s official, and poor Tony probably doesn’t know enough English to know he just lost his and his family’s name.
And of course the Asian’s that came in the West end of the US had it even worse, since many of them were not much more than slaves and their names didn’t even have vaguely roman looking characters.
From my experience, many of the Asians I have known do not use their actual names in the US, they pick an American name to use, a lot of Tommys and Johnnys and such, that aren’t anything like the name their parents gave them. Sometimes they will tell their real names to friends, sometimes their friends don’t even know they have a different name.
Another vote for apostrophes. I frequently break websites. :D
“Everyone has three names: first, middle, last.”
My wife has five.
“Passport agencies, etc. will help in simplifying names, or giving people unique names.”
“you *do* legally have a single name, and it is printed on your passport”
Not when the registering authority mis-spells it on renewal and there is no protocol for correction. Hasn’t been a problem for me yet, but it will be.
“I can safely assume that this dictionary of bad words contains no people’s names in it.”
Keep in mind _place_ names have similar problems. One form politely scolded me for providing my town name, which is in fact “Cumming”.
“Married people have the same familiy name.”
In Quebec, women are required to retain their given surname.
“Image uploading?”
When providing a digital signature, I ensure one non-intuitive feature is present. Only the most determined forger will attend to that detail, yet it is obvious enough to show consistency should proof of application of my hand be required.
“using emails instead of names to identify people”
That’s one reason I bought my domain: I need to own my email address for life. Changing providers should not be grounds for screwing up the only conceivable consistent way to contact me for the rest of my natural life.
“Can I see the ID of a person having numbers in his/her name?”
That would be “Hen3ry”. The ‘3’ is silent, you see. Go search “Tom Lehrer lyrics”.
I believe #11 could be a problem, but what exactly do you expect an application programmer to do about it? Start maintaining their own character set?
If you think SSNs are fixed, you’ve never worked at a large university with a lot of internationals.
SSNs as unique identifiers are riddled with problems.
“And the umlaut in my family name has even been transformed to a ’9′ (nine) on at least one (1) occasion…”
I think I can explain that one. Say you type in ü (Latin-1 252). One part of the system converts it to u followed by ¨ (Latin-1 168). Then another part of the system doesn’t do 8-bit characters, so it strips off the high bit, converting to ASCII 40, which is (. Then *another* part of the system, trying to be helpful, looks for obvious typos, and decides that you must have had the shift key on when you pressed 9.
I hate it when some websites I sign up for can’t handle a hyphen in my last name. Then you try a space which some of them seem to be ok with but others don’t like. This isn’t that big of a deal for most websites but when you are trying to do something important like order something and your name on your debit card doesn’t match what they will allow you to type it. Then it gets annoying.
Also my first name has two capital letters in it. It seems that a lot of “systems” want to make the second capital letter lowercase.
Ok, ok, ok, but this all misses the point. The characteristics of a data element are determined by how you plan to use the data. There is no one correct way to represent names, and the search for a universal name format just overlooks the fact that data is collected for a purpose.
“an email can be used by several persons” — if those persons want separate accounts on my system, they can either use + syntax (assuming their email system is reasonable) or go get a gmail account.
>The concept of “tilltalsnamn” is very specifically
>Swedish (the concept only appears in Swedish and
>French
And Latin; it’s called the cognomen.
Number 40 is rather academic, isn’t it? Is it the programmer’s fault you can’t come up with an identifier? English speakers thought of “John Doe” and “Jane Doe” (and used others in the past). If the subject doesn’t have a name, then why do we care? And if we can’t impose ANY rules, because we have to account for people named (null), people with 500 character names that aren’t in Unicode, and The-artist-formerly-known-as-the-artist-formerly-known-as-Prince, then who cares? It’s then garbage data.
@BXG – ssn is neither stable, nor guaranteed unique.
I’ve got one you can add to your list. Your system assumes that spaces indicates the end of one name and/or the beginning of another or your system does not allow spaces to be a part of a name at all. I am so tired of filling out some form only to find out the system has decided by middle name is “Van”.
I find an advantage to spelling my name differently when entering it into various forms.
That way you can track who they sold your name and address to down the line.
Plus, plausible deniability.
Another peculiarity in Sweden is that some people from a certain region adopt a middle name that tells what farm they “belong” to. A practice originating from before surnames were introduced (they were not widely used here until the 19th century).
Sometimes the farms were named after a woman. So there are a bunch of men walking around here with female middle names, which can sound kind of funny.
A dude might be named Sven and come from “Lisa’s Farm”. So he was called “Sven from Lisa’s” or shortened to “Sven-Lisa”. Add a family name a couple of hundred years later and his grand-grand-grandson may be named Carl Lisa Svensson.
Thanks my name is spelled La-Sha. It’s pronounced LaDashSha.
The dash don’t be silent.
Lots of people seem annoyed by the original post, which has some valid points, but also seems to be advocating some universal name system which can handle anything. Your system shouldn’t have pointless restrictions, and should accommodate common cases, but let’s not go to extremes here.
The Chinese government is also dealing with the naming problem. Historically people have been able to choose any characters they wanted for a name. Some people made up new characters. Now the government is making those people pick new characters since everyone is required to have a name that can be represented in the computer, according to whatever standard they are using (I believe it’s a subset of Unicode).
See http://en.wikipedia.org/wiki/Naming_laws_in_the_People%27s_Republic_of_China#Ma_Cheng for an example. This woman’s name (chosen by her grandfather) was the archaic character composed of three horses in a row. Her last name is also “horse”. But since China uses simplified characters now, they decided to make a simplified version of this by using the simplified horse. Unfortunately this new character is not in any standard (and the old one is also not in most standards and is considered archaic and obsolete). The Chinese government asked her to change her name.
Now you can whine and say that they are messing with her identity, etc etc, but at the end of the day not everyone can accommodate every name that a random person might want to use. Not every computer system can even attempt to accommodate any arbitrary name. If your name is the sound of a bird chirping at two simultaneous frequencies, don’t get annoyed if I refuse to call you by that name.
I understand the frustration, but as a programmer who has had to explain these sorts of limits I can say that it is frustrating for us too. If we threw out all of these assumptions just writing the system to handle names would take a year. Often applications rely on underlying infrastructure like a database. Sometimes this infrastructure has already placed restrictions on what you can do such as the types of characters you can store. You can always work around these restrictions but it’s a question of time and money. I’m not going to spend two years and millions of dollars writing my own database software when good database software exists that does 99% of what I need. It’s not realistic. I’m not saying there aren’t egregious cases or lazy programmers who just don’t want to find a solution, but no matter how meticulous you are in this job there will always be some case you miss. Being too meticulous can sometimes get you fired too because it means your too slow. Well that’s my rant, back to writing software that muddles up Indian names and explaining to people why I can’t match on very possible version of their name they type into a form.
Names are one of the things that drive library IT folks the craziest. The record format for name authority files (http://www.loc.gov/marc/authority/) handles a large number of cases reasonably well while still allowing for sorting/searching that people expect in a catalog. But any developer working on a standard commercial database application who proposed something like the MARC authority format as a solution would doubtless be laughed out of the room, if not for the complexity of the format, then the fact that it takes a couple of years of cataloging practice to understand the rules for using the format well enough for people to trust you to create a name authority record.
@Rick Roll – Correctness might not matter a lot when you are a building a something non-crucial like a community portal, but it does matter a whole lot when you are building a system to handle birth certificates electronically for the government or a banking application, where there can be no errors. If I had a name like a few people in this thread, I would take my money to a place that could at least print my name on a receipt, for no reason other than shear annoyance.
@Eddie – How would a baby or an unknown coma patient pick a name? Both of those would need to be inputted into a hospital journal, and there’s plenty of other situations where you don’t just “pick a name”. Knowingly forcing people to type “John Doe” (which might be acceptable for a coma patient but certainly not the baby) is laziness, sloppy coding and on the level of writing “On error resume next” in visual basic.
While we are on the topic of bad input assumptions. The kingdom of Sweden would appreciate if you stopped assuming we have states and putting in “Region/State” don’t help, since we don’t use regions in our addresses. I believe Ireland would be thankful if you stopped thinking they use postal codes for that matter. At least once has it happened that I needed to put in a state, then Google myself a valid postal code for said state, so that I could get past the form validation and get things shipped things to Sweden.
At the very least make things optional by default when you don’t know the format so states can apply to America and Canada, but not the rest of the world. Consider all the customers annoyance you are causing and the business you are loosing all over the world including my own EU that has an economy that is a bit larger than Americas. It’s just bad business.
The _real_ problem isn’t the handling of names; the problem depends on your perspective. The basic problems for most developers is the unrealistic expectations of the managers. They are the ones who need this list. There are 40 reasons listed in the article why TSA’s Do Not Fly list is so chaotic and duplicative. The managers have unrealistic expectations of how useful records of names are world wide.
The most basic problem is that names can be pretty much any sound and writing is a non-one-to-one approach for representing sounds. The software problem of trapping the multitude of ways of writing is simple–accept anything that can be written. The engineering problem comes when you expect to use those fields (which are essentially comments now) as unique keys you can use to collate against data and generate knowledge.
I once worked at a company that wanted to prevent users from putting naughty words in the First/Last Name boxes on the site. The simple solution: search for terms like “f*ck” and “sh*t” in the names fields. Well, turns out you get a lot of Japanese names containing the former word, and a lot of German names containing the latter word.
Well 30 is rubbish for a start. There exist any number of lossless compression algorithms out there and seeing as you only specify transform, what about encryption?
A Huffman encoder based on the letter frequencies in names in your target population would perform a perfectly acceptable and reversible transformation on a name and would simply be less effective for unusual names… (and you can do it on bit patterns over say a byte rather than lexical characters to make it universally applicable)
>> I have never seen a computer system which handles names properly and doubt one exists, anywhere.
Yeah … and people still manage to use computers and get stuff done.
Since we’re all airing our grievances here … your blog’s bad assumptions (if I want to make a reply here):
1) I have a name (DOH!)
2) I want to tell you it
3) I have an email address
4) I want to tell you it.
But them are the rules if I wanna play, right? So certain assumptions have to be made for work to get done, right?
My name is M. Warner Losh, damn it.
Not Warner M. Losh, Warner Losh (although I use this to ‘fit in), Michael W. Losh, Michael Losh, M. Losh, W. Losh, MW Losh, etc.
I go by my middle name. Cope fucking computer. I routinely type ‘Warner’ into the ‘middle initial’ field in forms. Not my fault/problem that the folks that designed the damn thing got it wrong. It is their problem, since I’m not going to change my name.
The only thing that is coming close to changing this is airline travel. I have to travel internationally, so I am now required to travel under Michael Warner Losh, since that’s the name on my passport. So, my frequent flyer account has to have that name. My driver’s license has ‘M. Warner Losh’ on it, so even domestically now I have to travel with my passport. Oh, since I make travel arrangements through work, that means that I have to have Michael Warner Losh on those accounts too. Not Michael W. Losh, since the airline’s reservation system barfs on that and won’t give me my credit. But companies have the policy that you have to have the same name everywhere, so this bleeds over into my health insurance, my checks that are cut (thankfully the bank still lets me deposit checks into the account that has M. Warner Losh on it although they insist on giving me a debit card with MW (not M. W.) on it. Some companies allow one to select a name that’s the preferred name, but that only partially works with some of their systems.
get my name right, or I’ll take my business elsewhere…
So I totally agree with this post.
Warner
People with an apostrophe in the name are majorly pissed when they are told “You have an invalid character in your name.” That is not just a bad error message, that is a personal insult.
How about a couple of text boxes (varchar255) and I let YOU fill them out?
box1:
If I send you a letter how would you like me to address it?
(example: Dear Mr Smith)
box2:
If I sent you a package how would I address it?
box3:
If I send you an email where do I send it?
then I create a unique id and password, send them both to the email address for verification and future logins
I actually borrowed daughter’s name for this example. In Gaelic her name was Ealasaid Eala, nicknamed Eala Eala.
But the stupidity goes even further when it comes to drivers’ license numbers; where I live they take the first 5 letters of the surname, using asterisks where there aren’t enough letter. A lot of stoopid programmers never considered this, may they rot in hell.
It’s pretty obvious that IANA needs to take over naming the populace. Since it’s my idea, I think I shall call myself 127.0.0.0.0.0.0.1. Quick, someone draft an RFC.
I think the best you can do in software is have a back end capable of storing “everything”, and a front end designed with a particular “society” in mind. Reasonable names for the target audience then are dealt with in a reasonable way, and exceptions are dealt with painfully. You can’t take away the benefits of alphabetization from everyone just because there are languages without that innovation.
My full name on my birth certificate is “Frank Andrew Seidl II”. My Dad was also “Frank”, so everyone called me “Andy” to avoid confusion–it stuck. My signature reads “F. Andy Seidl” (if you can read it at all.)
I can attest to how many systems make bad assumptions about names. The most frequent, and obvious offender is forms that look like:
First: _______________
Middle Initial: _
Last: _______________
Or simply those that have:
First: ________
Last: ________
Often, I’ll put “F. Andy” in the “First” field. Often, the system defines that as “illegal”.
Then there’s the countless “personalized” messages I get like “Dear F.,” or “Thank you, F.!”
As a matter of expediency, I sign off most e-mails with “– fas” but then I get replies that begin “Hi fas, …”
And then there all those legal documents that have a signature line that requires your legal signature to be your full legal names. I sold a business once where I had to sign 93 documents at the closing. But I had to sign each twice–once to match my birth certificate, once to match my driver’s license.
(Oh, and BTW, few people ever spell my last name correctly.)
I’ve just gotten used to it. (But systems I design can accommodate my various names. ;-)
— fas
Few offhand examples based on real and non-real names
My real name is written in English, however it appears to be phonetically unpronounceable to many (as it’s Russian,) thus resulting in people keying it into their PC’s with all manner of different vowels.
My first name has one correct spelling, however, phonetically it has several different ones, just like my last name.
I don’t like to receive mail with a formality title (Ms/Mr/Dr/etc), especially if I don’t tick those boxes on forms. Omitting this thus results in receiving solicitations when they sell their contact database to a third party with whatever the “default” is. So it’s quite the running gag to receive mail addressed to Mr and Mrs (lastname) as they’re both me.
@Jaco van der Walt
Yes, but that doesn’t solve the problem of people who are identical twins (same dna) or chimeras.
I talked with a woman today at work whos name was:
spelled: “L-a”
pronounced : “laDASHa”
What were her parents thinking?
Ahh yes, the oppression of the humble apostrophe. I know it well. Long live U+2019!
Names are modal and the owner defines the mode for each use of their names. We have to accept this human frailty. So, for concrete suggestions:
1) Stop labeling fields with just “Name:”. Tell the user if it’s a handle for a comment, or something that will be printed and sent through the mail, or the handle used to formally introduce them to someone else in a message, or whatever. Provide as many name fields as there are modes.
2) Verify and filter input with an eye to security, but be as gentle as you can. If the input violates a rule tell the user why and give them a chance to change it. If there have to be rules about what is acceptable for names, then tell the user up front.
3) Allow users to change their names, including usernames. You have a sekret numba hidden away somewhere that is the primary key, so be generous. Users create usernames based on childhood nicknames, married/single names, business names, pet names, the name of a geographic location they live in or near, etc. Over time users will acquire new usernames they prefer. Accommodate their desire to change things.
4) You think it’s bad now, just wait ’till the aliens land.
Thanks for the laugh. A few months ago, my sister, who works for a large bank with operations in India, tried to coordinate a file of employee records with a file of timesheets, _by name_. (Set as an interesting exercise by her boss.) I spent an interesting 45 minutes demonstrating why it couldn’t be done given the records she had on hand, stepping her through maybe a half-dozen of the assumptions she was making. I ended up telling her the only way to do it was by assigning unique employee IDs—names weren’t going to cut it.
One important point: don’t mistake an identifier for your name. For instance, your e-mail address is a way to get some bits to you. It’s nice if it resembles your name somehow, but _it is not your name_. Nor is your system login. In cases like those, the programmer can throw away the above list, and design something which suits the purpose. If it ain’t a name, don’t sweat it.
I’ve always provided a free-form name field in my web applications. However, I’ve also gotten requests to be able to sort people by their last name. I have a feeling that forms that ask for a separate “last name” do so, not because the programmers are trying to be “clever”, but because they want to be able to sort by last name (a common form of filing). I’m not saying it’s correct, but just giving an explanation other than the “stupid programmer” one.
Ah … #9 — People’s names are written in ASCII.
I get password expiration reminders for one of my accounts addressed to “NOT ASCII”, and although my name might have a non-ASCII character in it, I don’t think my name is “NOT ASCII”.
But at least they were smart enough to test for it … I made the mistake of changing my name in my employer’s system, and it resulted in corrupted names being printed on my pay checks because they replace all non-ASCII characters with ‘Z’ (or ‘A’, or drop it, for other reports and mailings)
The most important and wrong assumption is that:
– there cannot be 2 persons born in the same place at the same date having the same name and the same color of eyes.
Rule 99: A workable system for manipulating names in a given culture will remain workable 10 years in the future.
Picasso’s full name was Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Clito Ruiz y Picasso Ruiz Picasso. I’d like to see what a Spaniard has to type into government websites or university forms…
Wow, I have encountered at least half of these. Nice post. I think that basically, there is no one universal way to be able to handle names around the world. Maybe someone will take over the world and come up with a new way to designate names that will allow for a universal system to be created…
Or we could just store biometric data instead.
I’ve been thwarted in the past by credit card validation schemes. My Mastercard application required my first, middle and last names, which are now listed on the card. Most online vendors give me fields for first name, middle initial, and last name. Since my middle initial is not my middle name, the transaction does not get approved.
I’m going to argue if I can’t write your name in *unicode* you need a new name.
Another assumption is that names are typed from left to right, horizontally.
Sebi
In spite of the peanut gallery, nice article.
Here is an example of what he is talking about:
In the US government I have 3 names but first and last are accepted.
In the UK I have 8 recognized public names, 5 of which denotes families I am descended from, but I only use first, middle, and last for official documents.
My girlfriend has 4 names in public the US but only 3 for Legal documents.
In the UK she has at least 10 public names, 7 denoting families of membership.
One of her names is case sensitive.
I have an additional Catholic name given to me during confirmation.
My girlfriend has a given name from her church.
I have 12 different nicknames based on my first name and 2 totally random names given to me.
If I use “son of” and “brother of”, as used in other countries, the number of name combinations I have are in the thousands.
When going to other countries our names change except for our legal surname, except in some countries where the surname naming convention is different.
We both have numerous names given to use by other groups.
In Spain, “de”, “la” and “del” are part of our names and these can be used multiple times in our name.
Her first name changes form depending on the country we happen to be in or communicating with.
Our names in Chinese, Japanese, and Mongolian characters are problematic.
Worst of all, our naming situation is quite common as Americans.
So what’s my name?
Here’s a counterpoint to this argument (at least for general case scenarios like ecommerce):
People with names that prove these assumptions wrong often have standard workarounds for dealing with systems that can’t cope with more deviation.
e.g. One of my best friends only has a single name (via legally changing it). He regularly just uses the letter X for his first name (in the US, you are legally required to have a surname — if you only have one name, it’s a surname on the books).
Also, as developers, keep in mind that we often develop for specific needs. An e-commerce system does not need to account for people with no name, but a refugee information database might. Hospitals and law enforcement have long-standing procedures for dealing with unnamed people.
In the first place, I’m going with the assumption that at least a few others have made, that the original post above is *not* proposing a checklist that all developers need to follow for handling names, but rather making a point that names are a complex problem, yet they are often treated as a simple problem.
The simplest practical upshot seems to me to be that in handling names in software, you should use the most liberal rules that are practical. If the name has to fit on a printing label that only has space for 80 characters, and the label printer can only handle ASCII, not Unicode, then you ought to politely tell the user that. But even in that case, you need not assume that the name is first name, middle initial, last name. You’d just need an 80 character field.
More broadly, there’s a pattern of using formal, bureaucratic rules to enforce cultural norms. As “me” pointed out above, US immigration officials often crudely anglicized names of immigrants or even outright renamed people. This precedes computers, and in the current day, “the computer won’t let me type that in” is a means to the same end.
As several people have pointed out, the conventional, US-centric model for names doesn’t even work for many patterns of names common in the US. Irish-Americans are the second largest European ethnicity in the US, and yet there were several examples given of the mangling of Irish names.
When Prince went by the “love symbol,” I don’t think he was expecting to be able to fill out forms on Web sites with it. I’m not sure if he was trying to challenge expectations, particularly, but pushing boundaries and challenging expectations are what artists do. Think of them as doing cultural QA testing.
Store a name as
list of UID’s with many to many list of images.
Another UID for in-system identification.
Thats it – problem solved :D
Hah, you almost had me, thinking this was a serious article until we got to the part about names not fitting into unicode code points. Nicely played troll sir.
(For those watching at home, this is of course a possibly real problem, but not one that is solvable by anyone but the unicode technical committee.)
How about Johann Gambolputty de von Ausfern- schplenden- schlitter- crasscrenbon- fried- digger- dingle- dangle- dongle- dungle- burstein- von- knacker- thrasher- apple- banger- horowitz- ticolensic- grander- knotty- spelltinkle- grandlich- grumblemeyer- spelterwasser- kurstlich- himbleeisen- bahnwagen- gutenabend- bitte- ein- nürnburger- bratwustle- gerspurten- mitz- weimache- luber- hundsfut- gumberaber- shönedanker- kalbsfleisch- mittler- aucher von Hautkopft of Ulm?
I have seen problems caused by common names. People need to be identified by something meaningful along with their name. If you select by employee and there are two named “Smith, Joe”, how do you know who you are selecting? If you use a unique identifier with the name, how will users remember that value? You can get into trouble if you expect names to be unique.
“The perfect is the enemy of the good.”
A lot of the “invalid” assumptions listed above are canceled out by one valid assumption: “humans are better at adapting to limitations in IT systems than programmers are at predicting all the weird permutations that are possible in user input.” It’s useless to accept any and all possible alphabets in the name and address fields if the humans involved in your workflow can’t read the information anyway.
Even if you’re designing a fully automated ordering system with no human involvement outside of the person placing the order on the web and the driver of the truck that takes the merchandise to the airport, the exception process will normally include human involvement when orders get lost and the like. So are you going to provide a helpdesk populated with people who can read Chinese, Korean, Arabic, Japanese, Cyrillic and European alphabets? I don’t think so.
My view on the assumptions that must not be made in name programming:
A) Names must not be assumed unique. This automatically means names can’t be the unique identifier for persons in your system.
B) Your SQL injection prevention and other security measures should not suppress special characters that are valid in your character set.
C) Names must not be assumed to be unchanging.
D) Middle names should not be assumed to be irrelevant. Nor should the middle name field become a proxy for
A lot of assumptions that may not be valid for the population of the world at large can be imposed for the subset of people who will actually be using your system. And some assumptions are legitimately imposed by the technology platform. These include items such as the the number of fields used to represent people’s names and the amount of space allocated to each field. Finally, although a person may “go by” multiple names at any given time, they are unlikely to NEED to go by multiple names in relation to your system. If your mom calls you “Chi-chi” but everyone (including your mom) calls you “Bob”, there is no reason for my computer to know the dark secrets of your family relationships.
First thing I thought of was a sketch from A Bit of Fry and Laurie: http://www.youtube.com/watch?v=hNoS2BU6bbQ
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/#comment-4514
“As for the swearword list, who cares?”
You would think that, but speaking from personal experience companies really do not like it when you address marketing material to “Dirty Jew” at a national Jewish organisation and “Dumb Cunt” is not an ideal name for a consumer of automobile tires. That consumer in particular was rather irate about the name she was assigned. After these incidents, we were required to attempt to screen profane or obviously fake names. My research lead to my favorite fake name – Patty O’Ferncher
I have a better scheme for storing names:
Field 1: A big unicode field for storing the person’s entire name.
Field 2: A notes field attached to explain stuff to culturally ignorant people. Variations, changes, and and anything else relevant may be stored here.
Field 3: Optional – how they’d like to be addressed if you need to call/email them.
Let’s face it. Anyone storing titles and honorifics isn’t up to any good with that data anyhow. The only rationale I can think of is to somehow address a piece of junkmail in some way that sounds sufficiently personable that the addressee may actually open it.
Example of #15, please?
#8b Only women change their name at marriage
From reading the comments, it is pretty clear to see where the true problem lies.
It is probably trivial to force “your users” to fit some string of characters into the name fields you provide, the problem comes when you want to inter-operate with some other database and share common users.
Are there any commercial systems using a database with a schema that does not try to put the name fields in the PERSON table which is probably where the trouble begins for most. Once you free yourself from that incorrect assumption, you can imagine a richer way to describe the name identifier of a person.
I once got junk mail addressed to
TJ O’Donnell
…….
and the address continued until the list encountered another user with a
(closing) apostrophe is his name! Talk about security breach.
Names like “Seal Henry Olusegun Olumide Adeola Samuel” are more common than people think…
I was with you until #40. Name for me one single person who doesn’t have a name. I dare ya.
@Blueshifter: Even the US, some quite prominent people go by their middle name and abbreviate the first such as the scientist J. Craig Venter and the investor T. Boone Pickens. If you referred to them as John C. Venter or Thomas B. Pickens, nobody would know whom you were talking about.
someone doesn’t like programmers. anti-intellectual much? angry at what they don’t understand much?
so i tried to submit a comment to your blog without a name
and got an error
hypocrite.
seriously though, this post is seriously lacking any useful actionable material.
those assumptions are made in large databases so that i can find, search, index and locate data about you in a fraction of a second, instead of 20 seconds. because if my system takes 20 seconds to load data about you, you won’t use it, and it won’t matter to the 3 people without names, that will never connect to it.
How will the system encode names recorded in khipu (Inca knot writing) or the bundle of notched reeds traditionally used by some North American indigenous peoples? ;-)
If I wanted to be really thorough AND get useful information, I would provide a form in the common format used locally, with a link to an alternate form for less common forms. There I would ask for surname (family name), “name you would like to be addressed by”, and either “full name” or “name you want used with your address”, depending on the application.
I also don’t understand why anyone is still having trouble with apostrophes or hyphens or spaces – maybe 20 years ago due to legacy computer issues, but it shouldn’t be an issue today, and all are quite common.
Fortunately, I happen to have a name that is not common yet thanks to advertising is well-recognized all around the world, and almost always spelled correctly – even by people barely familiar with English – except, of course, in North America, where I frequently run into people who think my name should be spelled Allen Lite.
But seriously, names are very personal.to people, and although people from foreign lands may understand the need to adopt a name that English-speakers can cope with, I have yet to find one that didn’t appreciate an honest attempt to pronounce their real name, however badly I did so.
XKCD had a great comic on this subject…
http://xkcd.com/327/
It fascinates me that even a glancing reference to an anti-racist perspective triggers all the classic racist backlash. (“If you bring up the problem, you have to fix it!”)
69. Alphabetizing names requires no exceptions.
My phone book successfully groups the McDonalds and MacDonalds together, but it drives my friend Ms. van Doornum nuts by filing her in the V section instead of D.
One more to add to the list: Names are always written left-to-right
In fact arabic and some other languages are written right-to-left.
There are a lot of really stupid people leaving comments. Many of them saying the same thing over and over.
The problem is definitely between the chair and keyboard.
Once we can get all these wanna-be-programmers out of jobs they don’t deserve and back to stocking shelves, maybe we can fix the internet.
The world, and the internet, would be a great place if it weren’t for the people in it
Case in point: “Julian Kuiters”: your comment has already been said, shut the fuck up and stop filling the internet with repeats.
And how many fucking times do people have to mention the XKCD comic?
Congratulations, your brain can correctly associate related ideas, but how hard is it to search for “xkcd” to see if someone else thought of it first?
I love comment sections, like highlight what is wrong with the world.
How come people can read far enough down to Blueshifter’s comment, but not read any further down to see that there are other idiots who fail at comprehending what Blueshifter said?
@Martin Rudat
When you assumes one’s name can have one single canonical pronunciation at one time in one place, you are already making a false assumption that there is only one mainstream dialect in use in one place. And speaking of moving, read erikjan’s comment just below yours. You don’t want documents have the name fields mismatching. That’s why I said using the name’s pronunciation as an authentic record is a very very wrong idea.
My last name is three words, and the DMV won’t even let me do it that way on my driver’s lisence.
How ironic. I don’t have a name, and yet your reply form requires one! :-)
“Error: please fill the required fields (name, email).”
And even worse, I did fill out email!
For those who think this issue doesn’t have any practical application in the real world…
Consider the medical records system of a hospital in a large metropolitan area, like New York or Los Angeles.
You *must* maintain a medical record for each and every patient, even if you don’t have their name yet. If you don’t, you might lose the patient, not to mention your license and payment.
There are constantly patients without names: newborns, unborns, unconscious.
There are constantly patients with “strange” names in a major city, and once you add travelers, you get *everything* and in every script.
Oh, and then there are the names of the next of kin, insurance companies, regular doctors, any and all of whom could be written in various scripts.
…
Let’s see… at a New York hospital, a Chinese patient arrives unconscious after a taxicab accident, you don’t have a name until… Later his Japanese wife shows up with their Russian adapted son, who is also hurt. The wife’s insurance is from the US. The husband’s insurance is from Taiwan in Traditional Chinese, the son’s insurance is from Israel and the card is in Hebrew. 5 languages floating around so far, with 5 scripts: English, Japanese, Russian, Hebrew, Chinese.
Thank you for this article. Seriously. My full name has been a victim of inflexible computer systems (and inflexible human minds) too many times to count.
For those pooh-poohing the importance of names, I should point out that I recently started receiving mail from a company whose products I have purchased and recommended in the past. That company decided to “correct” my name and address. The mail eventually arrived, but they may never again receive money from me.
Also, for those suggesting SSN, you need to know that most such uses in the US are illegal. Also, SSN is *not* guaranteed to be unique. After someone dies, their number goes back into a pool for eventual reuse.
– People can change SSNs (legally or illegally).
– Because financial information is usually tied to one’s SSN, numbers are subject to high rates of fraudulent use.
– Because of the way SSNs are allocated, they may convey personally-identification information (PII) that your application may not legally collect.
– Security breaches which involve SSNs could require your company to file public reports with government agencies.
Thus, unless you are legally required to collect SSNs, you should never, ever collect or use that information.
“Everyone has three names: first, middle, last.”
B. N. Jones doesn’t. First “name” is the initial “B” and middle name is the inital “N.” In the Army, this was resolved by referring to him as B only N only Jones or Bonly Nonly Jones.
My teacher from many years ago, Mr. Ng, had problems getting paid by the public school system whose pay program flagged his last name as invalid because it had no vowel.
Should Iceland be added to the list of weird name countries?
That’s my real name, and you can see it’s pretty much the easiest thing in the world: [A-Z][a-z]+ [A-Z][a-z]+, and short too. But even this name has broken a couple real-world forms (in France) and a very few web forms. Obviously, it’s time for some heavy-duty libraries in a Unicode-sensitive language. How about this functional API:
is_a_name(name, type): Return False if name is empty (but still accept the registration, dammit). If type is “text/plain”, and it contains control or unassigned characters (of course, someone could have a literal \b in their name, but that’s not the same), return False. If type is an official MIME type “image/something” and it is impossible to render the name with a codec for that MIME type, return False. Otherwise, return True. TODO: Validate “audio/something” if the name is possible to output using the relevant codec.
printable_name(name, type, size): Returns an image (PNG? PDF? SVG?), by rendering “text/plain” using a graphics library, converting “image/something” using imageMagick or something, and rendering speech using either speech-to-text, speech-to-phonetics, or simply the waveform as a graph. Should probably be generalized to something like convert_name(name, type, output_type), which does a best-effort attempt at converting to high-resolution (or resolution independent) output.
you should provide examples for all the rules
To the folks echoing “don’t let the ideal be the enemy of the good”:
The problem is that the majority of systems in use today aren’t even good. My name should be a perfectly straightforward Western name, no non-ASCII characters, no hyphens or apostrophes, no spaces in the middles of compound names, constructed in a way that isn’t even rare (not the most common construction, but still matched by plenty of famous and not-famous names in the US). So, not even something US-centric, English-only programmers ought to have any trouble with. And the “good” systems that we shouldn’t throw out in pursuit of the ideal can’t even handle _my_ name. We’re nowhere near the point where we have to worry about the ideal being the enemy of the good; we’re still at the point where the lazy and narrow-sighted are being the enemy of the practical.
I’m yet another of the first-initial, middle-name, surname, generational-suffix folks. And my name breaks in _multiple_ways_ on various systems, and often in more than one way on a single system. Oh, sure, I can invent some handle that isn’t really quite my name to conform to your lazy-ass system, but now I have to remember eight or more different variations of my own name and try to remember which to use where, because different systems have different problems with it, and cope with the mismatch between my name on your site and my name on my credit card, being addressed incorrectly and confusingly on the phone, having my prescriptions misfiled (because all of my names sound like first names to an English speaker and organizations that write everybody’s name lastname-first get utterly confused and forget that they do it that way when they see my name), and occasionally have to convince authorities that I’m not pulling some sort of scam just because my name shows up differently in different places.
Note that I’m not describing hypothetical “if I followed your advice” speculation. I’m describing how my very real life is currently. And my name _isn’t_one_of_the_difficult_ones_.
More frustrating, this ain’t some brand new surprise problem. These problems have been cropping up, complained about, documented, filed as bug reports, etc., for decades. There’s no excuse for modern professionals to continue making high-school-student naive design errors like this.
I’ll start worrying about “the ideal being the enemy of the good” when the industry standard gets up to mediocre or better. Until then, let the good be the enemy of the not-even-half-assed.
For those of you who may be thinking that those with multiple names should just choose one:
When building a passenger database for an airline, don’t assume that the departure and destination jurisdictions both permit the same name. This affects some dual-nationals where visa regulations require them to use different passports on departure and arrival.
Also, don’t assume that the rules for names permitted on birth certificates are the same as the rules for names permitted on passports, even in a single jurisdiction.
Thank you, “blah”, for your intelligent, insightful, eloquently expressed insights. We are all most impressed by your intellect.
Ohara MacHinery, Inc.
i’m currently working on a system which deals with Change of Address information from the USPS, and name parsing is a huge part of the process. USPS stores its data in hashed, encoded, striped, mangled tables, using (for some parts) the customer’s name as the key. and in order to get the address data for an individual, you have to be able to parse his/her name in the exact same way the USPS did when it put that person’s info into those tables. if you swap middle name and first name (ex. if the customer uses just a first initial and the parser assumes the first initial is really a middle name), or if the input name is misspelled (ex. Christian / Christina), etc., you won’t be able to find the info for that person. it’s a nightmare.
#[what are we at, anyway?] If a last name contains a hyphen, the first half is the wife’s maiden last name, and the second half is the husband’s, so you can separate them out, and address bulk mail for “Bill and Amanda Smith-Jones” to “Amanda Smith and Bill Jones”.
#[whatever-we’re-at + 1] If a last name contains a hyphen, the first half is the husband’s last name, and the second half is the wife’s, so you can address bulk mail for “Bill and Amanda Smith-Jones” to “Bill Smith and Amanda Jones”.
For those asking for examples of names containing numbers: I’ve been going by jere7my tho?rpe for about 25 years now. I’m pretty flexible about entering my names on forms, but many more people know me as jere7my than Jeremy, and pretty much every time I’m wearing a Jeremy Thorpe name tag at least one person says, “They spelled your name wrong!” Not a big deal, but it’d be nice to have smarter name fields. I remember having a Rolling Stone subscription as a teenager that was delivered to “Jerefmy Thoprpe”.
I work for an academic publisher, and many of these are issues I deal with every time we put out a conference proceedings. Is Von Neumann alphabetized under V or N? Should this Chinese author be listed under their “first” or their “last” name? Is this Spanish author’s second name their “middle” name or the first half of their “last” name? These are not purely theoretical, multiculturalist questions — quite apart from our desire not to offend our authors, if someone is trying to find an author in an index, it wastes time and effort if they’re not listed in a predictable place.
And I have to add my voice to the chorus: Blueshifter was suggesting additional rules, not seriously suggesting that nobody ever goes by their middle name. Sheesh! (My dad, Tom, is actually Edwin Thomas Thorpe III.)
great list – I am just a programmer wannabe, but this made me laugh.
also.
I think you should send a copy to every Japanese bank, especially Shinsei & Suruga.
Interesting article, interesting comments… interesting to see how some people are trying to break the ‘name’ field on this form
My name is English, contains only ASCII characters, and follows a not uncommon English pattern, and it is STILL breaking computer systems occasionally here in the 21st century! I have used the handle “illegalname” and “guywithiillegalname” at a number of sites because it won’t let me use my real name.
I used to jokingly blame it all on the COBOL “IF ALPHABETIC” test.
What about gender/sex?
I worked on a system for public health lab and while defining the requirements – we spent a day on sex. Male, Female, Unknown were easy. Then you had Male/Genetic Female, Female/Genetic Male, Male/Self Identifies as Female, Female/Self Identifies as Male, Female/Genetic male mid operation… All told, there were probably about 20 that were included and as many as 40 were proposed
Then they wanted to track the changes and have a history.
All this for sex. Names are probably even messier than you think.
simply an outstanding piece to reflect upon. it is not one world and names are certainly more than just letters fitting some rules
i am an avatar, my avatar’s name is far bigger online that my “real” name. my spouse changed her name late in life to something totally different from her “real” name
why do we feel that the one true thing that is ours, our names, is even ours? most of us did not pick our own names
well done and a wonderful list =)
It is also annoying when I am asked to give my full legal name and then limited to 20 characters (they should really make up their mind whether they want my full legal name, or a truncation).
I am surprised that that nobody has mentioned the comic at
http://www.%78%6B%63%64.com/%33%32%37
My last name is hyphenated (from birth), and I can attest to its annoyance. I have an extremely common American first name, though, which makes things slightly easier. Except, however, when a form cuts off my first name to make more room for my last name. My elementary and high schools thought my first name was “Amand” or “Aman,” which is both embarrassing and incorrect.
Daniel Larsson –
Well, we have a royal family without surnames (currently, if I understand it correctly, noted with a “*” in the registers).
Also, there are surnames with blank letters in them (not all systems handle those). We even have a surname with two of these AND weird capitalization issues – “Natt och Dag”.
Wow – there’s a lot of people commenting here who seem content to write off the majority of the world’s population on the grounds that their name’s are not American.
I propose this:
“This is a waste of hard drive space and bandwidth for most programmers. I am in the U.S.A. and design for U.S. customers. You can fit into our customary data plan or not” will be a major quote in some book written in 2060 dealing with the decline and fall of the US empire.
Names are overrated
Love this discussion! I add a couple of additional rules on my Visible IT blog here http://twurl.nl/tutmyd and relate that to a theory on why User IDs and passwords are so popular.
“Are there groups of users that are seriously upset by some of these issues?”
Yeah. My last name is hyphenated, and my entire name is 23 characters long (including the hyphen, excluding spaces).
I have trouble registering for new websites because each one wants my username name to be simpler than it is–mostly I have trouble with the hyphen, but sometimes I have trouble with the length, or the length and the hyphens, or sometimes don’t like spaces. So I have to make up and remember a new combination of last name, first name, middle name, and various permutations of that (initials, caps and lower case, with or without hyphen, with or without spaces, with or without hyphen and spaces) for each new username I want every time I register at a website.
I also get a lot of junk snail mail, since my name gets cut off and cut up a lot of the times once it goes through various clearinghouses. Sometimes my name is correct. Sometimes it’s spelled wrong. Sometimes various parts of it are chopped off or misspelled or without the hyphen. I have to register myself four times for the do-not-junk-mail-me services using my best *guess* at the variants of my name most likely to be in advertisers’ databases, so that each entry in their database has the maximum chance of getting me taken off the list–because if it doesn’t match exactly, I don’t get taken off. I could register again and take off the next four variants, but then I’d have to make another user ID to get into the do-not-mail service website, and that’s just not worth it (in part because their user ID field does not accept hyphens as valid).
I’m the only person I’ve ever met with my exact name, and my problems (length, hyphenation) aren’t even that hard to solve. But everyone I’ve ever talked to with a hyphenated name gripes at these problems–starting in grade school when the substitute teachers can’t take roll call because the last half of your first name cut off the first half of your last name on the printed attendance list, and just ask “who’s the kid with the long name?” and going from there.
People I know with other name “problems” — two middle names, two non-hyphenated last names, O’s and Mcs and Macs and people with ‘ — are also tired of their names being treated as problems and are *always* happy to gripe about it with me.
António Albuquerque: that fails when people can’t talk (age, disability, mental illness, etc.). I guess you could get someone else to record their name for them, but imagine the liability and fraud and lawsuits and impersonations!
It would make a great detective story hook, though.
@Jens (if you are still following this, by some random chance)
Re: your unanswered question about what Þór said, see: http://en.wikipedia.org/wiki/Germanic_Neopaganism
An interesting article, but it seems that it’s careless and insufficiently thought out. (A lot of the comments are amusing, however.) Many of the problems indicated seem to be a result of unwise expectations or failure to consult a dictionary.
Which, really, is kind of sad, as the good points are hidden by the pointlessness of the bad ones.
Let’s consider ‘em…
#1 is not a falsehood — that’s what “canonical” means. If there are two “canonical” names, neither one is canonical. You can’t disprove a tautology. (See also #3.)
#2-#6 are more of a problem, but there’s no way to really solve those problems in any way. I taught a class a couple of years ago where a student had several almost-but-not-quite unrelated “names”.
There was the name used by the university. This is the name I had to use to assign him a grade. There was the name used on his transcript from his previous university in his native country. It was longer, but it did not match his “full name” as he told it to me. Then there was the name he used on his research paper, which was a subset of his “full name”, and did not completely match the name used by the university or on his transcript. This, however, was not the name he wrote down on his tests, which was a *different* subset of his “full name”. And then there was the name he chose to be addressed as — which was, as you might guess, yet *another* subset, with variations.
How can we hope for a computer to handle this properly? A unique variation and permutation of a ‘name’ for every category of use according to no fixed ruleset? Or, possibly, an ad-hoc ruleset designed to violate every possible categorization?
(Use just one long string for a name breaks that _useful_ feature of last names — the ability to sort by last name for quick reference, such as with a phone book.)
#7 and #8 would seem to depend on the use. If you change the name, a lot of systems can handle this by considering you to be a new person. For more official software systems, a name change is basically the same thing as a typo fix — unless you’re wanting to track the history of name changes.
A genealogy fanatic gets to deal with this problem all the time, and it’s a vexing one indeed; putting barriers to name changes is a GOOD thing from their point of view. Want to change your name? Go file a document somewhere. Find the genealogy nut in your family and get them started on the willful name-change rant. It’s entertaining.
#9-#11 touch on one of my pet peeves: all thus mucking about with ASCII is beyond dumb. Your name can’t be directly written in ASCII? Then encode it. Write it in TeX or something. ASCII is there so that we can reliably write programs that can talk to each other. Unicode — even UTF8 — breaks that.
You need a huge freakin’ library to normalize Unicode (and there’s the problem, see — if you have to normalize something, it’s broken as an interchange format), and then you have to devise a data-entry UI that lets people enter those glyphs.
Also: I have NFI how I would enter “中” if you gave me a business card with that glyph on it. (There’s a reason why computers were a hit with hobbyists in north america and europe, and not asia — and ASCII is a big part of that.)
#12-#17 seem to reflect a certain unreasonable expectation. Case is unimportant in names, but should be preserved when mixed-case is output. Printing out a name in ALL CAPS should not offend them, and if it does, they’re whiners and should be ignored, if not mocked.
Prefixes and suffixes generally don’t mean anything as part of the _name_. My name does not include “Mr.”, although that’s a common prefix associated with it. “III”, “IV”, etc. at the end arguably are used to distinguish related people who have the “same name”, although some of those people have internalized ‘em to the point where they consider it part of their name.
That doesn’t mean the rest of us have to pay attention to their delusions.
#18 falls out of “canonical”. If you have a canonical name, there’s an ordering. You might have a *set* of names (e.g., Jose Pedro Julius Canton, Pedro Canton, Jules Canton, Private First Class Canton) among which there isn’t an ordering, but only one of those should be considered canonical. If you can’t remember your canonical name, well, that’s your problem, not anyone else’s.
#19 just makes me wonder where it came from. Are there systems out there that actually *check*?
if ( strcmp( first, last ) == 0 ) { error(“Can’t have same first and last names.”); return -1; }
Likewise, #20 — people have names. When they get into large enough groups, there needs to be some sort of disambiguation scheme. People who don’t have at least first and last names can acquire one: “None”.
Last names are easy — they’re the last contiguous token after the last space. That’s why it’s *last*. Note that a last name is not the same thing as a surname. If you want the surname to be your last name, then insert hyphens or remove the spaces.
Famous people (e.g., Madonna, Bono) generally *do* have first and last names, even if their personas don’t.
So why should we care about their personas?
The real problem comes with people who have names but don’t WANT to provide ‘em. In that case, MYOB or FOAD work fine, surely.
#21-#23 are indeed falsehoods. Mostly, though, I’ve seen the problem crop up with just first names — in which case, nicknames are generally assigned, if no suitable middle name is acceptable.
#24-#27 is just an example of “All the world is X”.
#28 is indeed a joke. People who don’t take it as a joke should be looked at strangely, and told to get a life.
And Han shot first.
#29-#36 Now we’re stretching.
#37-#39 Are only a problem if you bother with UTF8. Stick with ASCII, and *most* of those problems go away — especially if you remember to ask the person to spell their name (so you don’t get JOHN/JON type mixups).
#40 If you don’t have a name, why should I consider you a person?
Rather, I should assume you *have* a name and you aren’t willing to tell me.
Which is fine. I can use “Anonymous Coward”.
SJS: Is my canonical name the one printed on my birth certificate, or my passport, or my Japanese Alien Registration Card? Those are all treated as canonical by different processes, and they’re all different.
Saying “Meh, the dictionary defines canonical as being singular, so bullet dodged there!” misses the point.
>>
If you don’t have a name, why should I consider you a person?
>>
That is sure a kneeslapper in the context of abandoned infants, slaves, and refugees.
Some years back, I had a driver’s license that mispelled my last name as “Chamberg”. How the DMV flunky that typed my name hit ‘g’ rather than ‘s’ isn’t obvious. Anyway, I didn’t get it fixed, and showed it to lots of people. My Jewish friends especially liked it. The DMV had made me Jewish, and I didn’t even have to apply for the change. Unfortunately, they fixed it at the next renewal. But I’ve occasionally run into the question of whether I’ve ever used any other names, and I’ve listed “Chamberg”. This gets me some funny looks, especially when I try to explain.
My wife’s mother’s family name was MacCamy, and the family’s records show several dozen different spellings such as Macamie, McKemey, Makymie, MacAmy, and Makkymmie. This was apparently mostly due to illiteracy, both in the family and the workers at various government agencies. The only letters in common among the spelling are the ‘M’ and ‘m’.
First: these are a list of things to think about, not things that must be covered in all applications. Some – indeed most – applications can choose to ignore some – indeed most – of the categories. But the point of the article is that programmers need to *make* that choice, and do the research to be able to make an intelligent choice, for their application; not just assume “normal” and unconsciously insult/not be able to accommodate a fraction of the users.
This point is important. People with “standard” names don’t seem to mind others having to change them – and even seem to not mind being given a different, or nickname. Bully for them. I – and many many other people, as you can see – am not one of them; maybe they should listen.
But the point is important, even for them. And the point is: “names are central to our identities, virtually by definition.” From a retail perspective, if the first thing you do is say that “I’m going to force you to change your identity to use my services”, then your first impression to the customer is “we don’t care about you”. People will go somewhere else, sometimes even pay a premium to go somewhere else, where they do care.
A hospital has to deal with people who don’t have names or can’t or won’t give them. A government needs to deal with legal names, which may or may not be the ones in their supporting documentation, which may or may not exist.
The people saying “this is just a list of problems. It’s useless without a solution” are lazy programmers who live by JFGI (which is, mind you, a very useful tool that more programmers should use). The solution is “decide, based on your application, which of these must be handled, which of these should be handled, and which of these can be ignored.” – and then do it. And if it turns out to be easy to build around an ignorable thing, do it – that’s that fraction of the potential client base who will be happy that “at least this application gets it.”
Thanks Patrick
The blog post plus the comments (and the xkcd comic) are an excellent requirements specification and test specification for any large corporate customer information repository.
Now I know why we cannot trace my Swedish ancestor’s family origins and why his surname is almost a placeholder.
The blog + comments are also a great hoard of very beautiful trivia. That are most definitely not trivial. Wonderful.
As someone with an nbsp in my last name, thank you.
(Why no, I don’t actually have a middle name.)
Eh, screw’em. They should be speaking English anyways. If your name can’t be written in 7-bit ASCII you need to change it. UTF-8 SUCKS. Unicode SUCKS. XML SUCKS. Databases SUCK (especially mysql). SPEAK ENGLISH OR DIE!
Ever notice how FOB chinese always pick a white people name when they get off the boat? Honkies can’t pronounce their asian name, don’t want to pronounce their asian name, and, most importantly, don’t care. The chinese got it right! Xingxiao Tse-tiao? No! Steve Smith.
—
Seriously though, there’s no clear-cut way to solve the problem while maintaining compatibility with the 40 years of legacy cruft we have built up, built upon, and continue to use, despite it being horribly outdated, insecure, and stupid. So, instead of fixing the problem correctly, we have even more stupid technologies like UTF-8, Unicode, and XML — all of which are like a band-aid on the expansive wound that is the Grand Canyon. Nobody can decide on an all-encompassing global standard that doesn’t suck, and agree to stop using the antiquated shit we’ve always used. The root of the issue is that people are afraid of change. Accept some downtime. Accept some transition time. Really, it’s not that big of a fucking deal if the net result is greater than the sum of the parts, which it will be if we simply buckle down and fix the real problem.
Why does your comment system require a name?
Amusing but a time waster. Any newb CS student learns that, for computing purposes, first name, last name is inadequate as an unique identifier.
Very good paper and all points are quite robust against denials (or sneers) from commentators, as long as one does not want to restrict to a specific population.
Practically, the most problematic is (temporarily, we hope) #11, mostly because it is out of control of the best-intended designer/programmer. Some scripts are missing, we know, as well as some characters in scripts included into Unicode.
An additional issue to this point may be:
11b: A font able to display the encoded Unicode characters is (freely?) available.
I wonder who has been able to display the Burmese characters on the (very intersting) wiki page about Burmese names whose link was provided in one of the comments above.
There are many transliteration schemes alleviating these #11 problems, though, but solutions should include a field where the scheme used must be specified, in order to allow for future conversions. Relying on an internal rule (saying “use standard X”) is not enough because standards (despite their very name) evolve !
Μιχάλης
For those who think the original poster is exaggerating the problem, as recently as 12 years ago, the US Passport issuers could not input a hyphen into a name field and have it print out that way. I know this because before I married and took my spouse’s last name, my surname used to be ‘Beltz-Decker’, thanks to a parental divorce when I was 3.
I kind of got used to people not being able to handle hyphens when I was little and so very few US citydwellers were hyphenated, but now?!? Jumping Jehosaphat on a pogo stick. Hyphens and apostrophes are reasonably common in American surnames, and there are still widespread, governmental, very-important systems that refuse to admit they exist.
Illinois state IDs still can’t accept anything but letters and spaces in name fields, the software kicks it out until you type something ‘acceptable’.
Amanda Lanyon-LeSage: I feel your pain. There was a girl in my grade-school class with a first name too long for the Iowa Basic Test of Skills firstname field; my last name was too long for the lastname field.
We used to joke we should swap ends, so I could be ‘Eloise Knox’ and she could be ‘Rochon[da] Beltzdecke[r]”, and one of us would be all correct and the other would be all messed-up. :->
Then I got married and took my husband’s surname, and have since legally changed my first name, so there you go.
And as my family’s family-tree nut, believe me, I know I need to leave breadcrumbs throughout the family’s historic record so I don’t become a truncation point where all info is lost!
I just finished fixing a page that made too many assumptions about names, and it was a page that was recently coded. So this post (which I referenced in the fix) is still very relevant, the “Amusing but a time waster…” comment nonetheless. And for the record, I know someone with a numeral in their name.
My name is cat /proc/sys/kernel/random/uuid and I was c7988798-88cd-42f2-a151-446a03713996 when last called… 8-)
You can’t assume that every person in the world has access to the internet. Yet, if you are making a web app, you can assume that all users of it do.
The same kind of argument can be used against many of these points. You say that my app cannot be case sensitive, but if I require my users to pick a name for themselves, I can expect them to adhere to the same case method they used, at least until a time where they notify me that their name has changed. The only people this will prevent from using my system are those that are incredibly obstinate.
Also, I tried to upload a .gif for my name in this forum, and it didn’t allow me. It seems you don’t follow your own advice.
Stop stripping my html. My name *is* an HTML tag! :)
Rule 101: Also, make sure your webserver doesn’t issue extraneous ‘B’ characters to your blog…
@blueshifter
I have 3 first names and one last name (yeah I know). I could however very well have had two last names.
I can go by whichever first name I feel like at the moment. Everyone I know use two of the three, or another, fourth name that is not legally OK for me to use when I say who I am where its important that the name is correct. >.<
Sooo…
Guess your theory is busted. :)
My name is Robert Ernest Arthur Parmenter-Harvey. My passport says Robert Ernest Arthur Harvey, because it is based on my first Seamen’s ID card, which in 1964 was limited to the number of characters permitted because it was typewritten. My employer has me listed as Robert Arthur Harvey, and the inland revenue as Robert Ernest Harvey, so I have to do a manual tax return every year. My national insurance record uses my full name for my contributions, but omits the -Harvey for my pension, so I am unlikely to be ever paid it. That is the only time I am known as R E A P.
My father registered me as Robert Ernest Arthur Philip Joseph John Emlyn Parmenter-Harvey, but the registrar came back with some arcane law that prohibited this, and issued a new birth certificate in the shorter form I started with. I thus have two birth certificates, and have recently obtained official duplicates of both of them. I guess the prohibition was not particularly effective. My baptismal record and my WW2 ration card use the original full form. Each of my middle names is taken from a relative killed in WW1. I promised my father I would be buried under it.
At school, because of handwriting errors, I was for two years “Rupert Hardcastle” and my final examination records are in that name. There is something very odd about a school that believed they knew my name better than I did myself, and that my attempts to correct it at age 15 were naughtiness.
In Cuba and Venzuala my visas said “Roberto Arturo Ernesto Haarvey”. In the USA they spell “Ernest” as “Earnest” on every document I have ever seen. In Chilie I was known as Roberto EArno Haraway, mistaking my two middle initials for a local name of some sort. Someone said it was the name of a famous lighthouse, but I think they were being lewd, And flattering. In Germany they write my surname “Harwey”. I haver a travel document from India which asks that “Mr Doorway be given every assistance”.
I don’t care any more. I identify myself almost everywhere as RH and people call me Bob.
Another good misconception about names:
0) Names reflect gender.
There are just too many applications that are guessing a person’s gender based on a name. It doesn’t work.
>Try to make less of them next time you write a system which touches names.
Try to make _fewer_ of them next time you write a system _that_ touches names.
I was required to put something into the name field to make this comment. Therefore, it is faulty.
A falsehood that a lot of commenters have made is that this article is only talking about applications where the user enters their own name or are present to pick a name that will work.
I read this article (and every comment) as research for a genealogy program I hope to write. Most of these problems are very real in this application. Genealogists have to deal with many names for a given person. They need to accommodate many different cultures and naming customs and character sets. It is common to find infants who died without a name. If they go back far enough, (not that far in some cultures), they will find ancestors without surnames. And yet, the program still needs to be able to index on parts of names. It still needs to deal with length constraints (like when producing a pedigree chart). It also needs to be able to merge data entered by one researcher with data entered by another researcher and be able to tell that two individuals may be, but not necessarily are, the same person.
It is a common mistake for genealogy programs to capitalize surnames to make them stand out and avoid some of the other problems on this list. Another way they deal with it is to enclose the surname part in “/” marks. I suppose this screws up fewer names than the all-caps method.
Accommodating these various name considerations, keeping a fairly well normalized database table, and maximizing performance and functionality seems to be a challenging balancing act.
Somebody wrote: “””Everyone has three names: first, middle, last. The middle name is unimportant, and can be safely represented by only an initial. Nobody goes by their middle name, after all.”””
This flawed design assumption seems to be endemic in a certain large country. I wonder how FBI databases deal with examples like J. Edgar Hoover.
@Mahmoud Al-Qudsi
“An example for number 40, please ;-)”
The artist formerly known as ‘Prince’ (who then used a symbol to represent his name).
Late to the party, but still very appreciative of it. I enjoyed the way the comments include not only examples of names that violate the titular falsehoods, but examples of people who don’t think it’s important enough to get right. It’s true that the database for winning a free slushy at the convenience store in Ohio doesn’t have to accommodate the names of Sudanese slaves, and in many cases people can without penalty submit to an alternate version of their name that the database can handle, but this isn’t a “done, lets move on to address validation” kind of situation.
There are times when the database requires you, on penalty of law, to enter your complete legal name, but the software forbids you to do so. You misspell your name in order to register yourself in the database, or some clerk misspells it for you without you even knowing. And then when you need whatever service the database was created to provide you with, they can’t find you, because your name isn’t in it, just some simulacrum. And yes, it is a personal insult to be told ones real name is bad data.
I enjoyed the way the comments include not only examples of names that violate the titular falsehoods, but examples of people who don’t think it’s important enough to get right. It’s true that the database for winning a free slushy at the convenience store in Ohio doesn’t have to accommodate the names of Sudanese slaves, and in many cases people can without penalty submit to an alternate version of their name that the database can handle, but this isn’t a “done, lets move on to address validation” kind of situation.
There are times when the database requires you, on penalty of law, to enter your complete legal name, but the software forbids you to do so. You misspell your name in order to register yourself in the database, or some clerk misspells it for you without you even knowing. And then when you need whatever service the database was created to provide you with, they can’t find you, because your name isn’t in it, just some simulacrum. And yes, it is a personal insult to be told ones real name is bad data.
Huzzah!
my name is and at least it will not corrupt you database
And even nicer:
People’s names can change multiple times. Aboriginals for example seem to have 2 names at one day, one for the morning and another one for the afternoon.
I haven’t seen a single website accepting this (but maybe they do in Australia)
It *is* an interesting article, and it’s good to be aware of the issue. But said that, I don’t really know what could be done to improve the situation. Only one long field for “Name”, accepting UTF-32, with no minimal length, and a system knowing how to deal with no name at all?
For the last part, if you consider to send anything to your customers using snail mail, I’m not sure postal service will be able to deal with no name at all as good as you do…
Which leads to another question: ok, now you are able to deal with all these issues. Great work! But will your service providers, subcontractors and partner companies be able to deal with the names you will transmit them, now?
Got one more… we ran into this one at a previous job…
You can apply a standard transformation on a peoples names to produce an alias for each, and none will produce an alias which is a slur in the persons native language
My name has been breaking software since the ’70s… that I know of.
Oh, and I go by my first name when in the USA, and by my middle name when in Australia.
Traroth wrote:
> For the last part, if you consider to send anything to your
> customers using snail mail, I’m not sure postal service will
> be able to deal with no name at all as good as you do…
I don’t remember hearing any of those people (or companies) who have their mail addressed to “so-and-so complex, apartment 4b” complain about unreliable delivery so far.
Speaking of businesses sending physical mail, and to all the commenters happy to disregard “out-of-MY-country” special cases on the assumption that doing so wouldn’t pay off: There are exactly, and I mean EXACTLY, two possibilities how you may ever do business with us foreign customers.
Either you do names the way I know the postman in MY country is able to deliver. (At times, I’ve had a ~50% “addressee unknown” return rate for parcels sent to my home.)
Or you’ll be sending your goods AND a substantial part of your margin to Mr. Local Reseller for the foreseeable future.
Wow, I didn’t read all comments, in fariness, but I think folks have missed your point.
*I* sure want to be called by what I’ve always been called. Finding various ways to spell my *name* just to fit some weirdass system is not what I want to do. And no, I couldn’t care less what various ways people may come up with spelling my name. As you can see, my name is not that hard to spell. Still, it gets spelt differently, depending on who you talk to.
No, I *do* like to be called by my *proper* name. It is mine. It is part of what defines me. Not what the code on some site or in some application claims.
Folks, this isn’t a post about the code. It is about the stupid limitations put in the software which prevents people to be called by their real name. Why put any limitations in?
And no, not all names may fit into UTF-8. Yes, seriously.
Certainly, not all peoples have 3 names (like someone stated). I ran into a guy from Portugal. He had 27 names, plus his “family name” ….. Stuff that in your 255 character limit!
I see this post to be about ones *identity*. I’m not a social security number, someones “bottom line” or anything like that. I am an individual, quite distinct from other individuals, even if they do happen to have the same name as me.
A few comments on this. Firstly, for the purposes of web forms, the “name” field normally has only one meaningful use: It’s the name by which you want to be identified on my database. You can call yourself whatever you want in that respect and, providing the underlying database can cope with it (which, as a web designer, isn’t always under my control) it can be any name in any format or any character set you want.
Having said that, there are some circumstances where a little more constraint is necessary. If my website is selling you something (or buying something from you), then the name needs to be one which will identify you to the extent necessary to form a legally binding contract between us. In practical terms, that means giving me the same name that you give to your bank, or to the government. It doesn’t matter how many other names you have, I want the one which has the most legal significance. If your government or bank can’t cope with your preferred name, that is a problem between you and them, not me – I want to know the name they know you by.
Addresses pose a different, but equally interesting problem. Unlike names, postal addresses do usually have a canonical format. However, that format varies from country to country. The street/city/state/postcode/country format usually maps closely enough onto the local canonical format for most English-speaking countries, but can break horribly for many others. Having an entirely free-form address field, though, is impractical for any organisation which sells physical products as address verification is essential to the process.
We have a person at work who has one name (no last name) and it through Network Services into a right tizz.
I totally love the irony that the “name” field is required in this comment box.
mdb wrote: “we spent a day on sex. Male, Female, Unknown were easy. Then you had Male/Genetic Female, Female/Genetic Male, Male/Self Identifies as Female, Female/Self Identifies as Male, Female/Genetic male mid operation…”
Add to that: most people misuse the “genetic” modifier there, since few people get tested and thus are only guessing at their “genetic sex” (karyotype) based on the odds. There are a whole bunch of crypto-intersex conditions in which someone can go their whole life thinking they’re XX or XY based on external charactersistics + gender identity + various biological processes (including, in at least one dramatic case, _pregnancy_), only to discover late, when some other medical problem results in genetic testing being done, that their karyotype was never what they’d thought. (In the case I just referred to, the mother is an XY/XO mosaic, with even her ovaries lacking XX cells, and she only found out because her daughter’s doctor got interested in the family history!)
So you’ve got current sex, genetic sex, sex-assigned-at-birth, and gender, any of which may or may not agree with each other (and may or may not be assignable to the categories ‘male’ and ‘female’. And then, as you note, in some contexts the history, transition-status, etc. as well. Fortunately in _most_ (read: nearly all) contexts, all that should be recorded is current gender identity, or in medical contexts, current gender identity and phenotype. But on the rare occasions when you do need to get detailed, it’s complicated.
Peoples names are over 6 characters long?
Someone send this list to the Google+ programmers, please. They seem to have a lot to learn about people’s names.
My name is what I was given at birth, I was called Michael from the day I was born until I joined the military. At that point I changed it to George as my used name. I have 2 first names and a middle name or I have 2 middle names, either way, it causes computer forms to blow up! It would be FAR better for the name to be accepted as is without format constraints. Trust me, I’ve had problems all my life with forms and my name!
I cannot *believe* the amount of comments here insisting that people should pick a name that works. I am pretty quick to give up on a form that requires specific input which doesn’t match my name / address / phone number syntax. In future, I won’t even bother to try to find a way to fit my information in. I’d rather do business with a company who cares.
Some commenters seem to have been diverted into discussion of how people use (or don’t use) names, but I think the post is about how computer systems handle names, or people-labels, whatever they may be.
There is a hyphen in my family name. My credit card has the name correctly. So when I encounter forms which demand that I input the name “exactly as it is shown on the card” but which don’t accept hyphens… *headdesk*
Most of my name is difficult to spell even for Anglos, but I didn’t used to care about the variants until the proliferation of regulations to prevent identity fraud and money-laundering. Suddenly I was flagged as a possible criminal because my labels didn’t match! An English-speaking person might see that they were typo-style variants, but now that the checking is usually automated I frequently have to submit to hassle, embarrassment, and a lot of effort getting things sorted out.
I often wish the SAT people would realise that 8 characters is really not enough for a given name.
On the punctuation one, I have a friend in the UK who is a Quaker. Quakers don’t use titles, but British banks insist upon putting titles on the bank cards. The bank agreed on religious grounds to leave off the title on his bank card, but they still needed to put something in that field. So they used “–“, meaning his bank card has a name of the form “– John Smith”. At the same time, order forms online require that the name be written *exactly* as it appears on the card. He breaks a lot of web forms.
Last year I made a marriage certificate for a couple where one had 4 names (first, middle, mother’s, father’s) and the other had 5 names (first, middle, middle, middle, last). The one with 4 names asked that the name by which she is commonly known be included in quotes to balance out her husband’s name.
Next month I will be making one for the 4-name-person’s brother who currently has 4 names as well (same configuration) and whose future-wife currently has 3. The groom will be taking the bride’s maiden name in the form of first, middle, bride’s, mother’s, father’s, giving him 5 names. The bride will be adding her mother’s name and gaining both of her husband’s names: first, middle (by which she goes), mother’s, father’s, husband’s mother, husband’s father, giving her 6 names.
While I agree with your core point, I feel poster “X” above (http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/#comment-4563) provides a very valid point about accepting just anything as a valid name. A certain amount of curtailing/cleaning is necessary for simple logic.
Granted, an individual programmer cannot devise every possible usage scenario, but simply accepting every single possible string as valid creates brand new breakage scenarios.
I suppose it’s a choice of evils. Better to accept a clearly ridiculous name than to reject a legitimate one?
I am surprised by the number of programmers/database admins/whatever your title is, that have responded here with, essentially, “who cares/there’s no bottom-line problem”. Here’s an example: you have lost sales to me because your computer system didn’t accept my name. I was born with a first, last and middle name in an English speaking country. But i was born into a family that didn’t speak English as their first language, so i have other names in 2 other languages. The name i chose for myself to use in my everyday life is a nickname from yet another source. In India (and i am guessing other places too) a person is often legally known by their first initial and family name.
But i have, until this day, been prevented from buying things on the ‘net, including airline tickets and products from major websites, because someone decided to disallow a single letter as my first name. When i add a “dot/period” to my first name’s initial, i am often met with “illegal character in field” errors.
So, despite the fact that ALL of my legal documents are in Family Name, First Initial order (passport, credit cards, government documents (driver’s license, etc.)) i am prevented from utilizing some websites.
If your answer is, and i have heard this, “you are trouble and we don’t want your business”, then you will easily get your wish.
Oh, and about the “numbers in names” thing? I know someone whose legal name is 3ric. That’s right, 3ric, not Eric. MySpace “corrected” this when you tried to search for him, and Facebook just plain wouldn’t let him use his legal name until he sent them copies of his ID.
I have read the original article but not the comments, things I would add:
That names are at least a certain length.
That there is one specific method of changing name (such as a deedpoll).
That names hold any legal value beyond not defrauding people.
And that’s before you get onto titles:
That titles in general have any standing as part of your name or identity (there are a number of exceptions such a Dr, Rev etc).
That titles will fall in a small (mostly gendered) set.
That people will fall into any limited set you can think of.
That people will have a title.
That people will not break your forms to enter their title if you force a choice which does not include it (looks innocent).
That people will use the same title in all places.
That people will have one title.
That people will want to use only one title at a time.
And then you get onto gender which the basics are simple (just for some form of completeness:
That people are the binary assigned gender as they were assigned at birth.
That people are binary gendered – their gender is either ‘male’ or ‘female’.
That people’s gender fits into any limited set of options you might provide.
And with that I will end this brain dump, there may be more…
I hope the Google Plus policy setters read this :)
It’s pretty hard to deal with a requirement to accept names that aren’t representable as unicode. Because that tends to mean they’re not representable as text at all.
Sure, you could, in principle, provide a canvas and let people *draw* their name – but things like searching for a name would be challenging. And who says all names are representable as a collection of pixels on a canvas ?
There is such a thing as diminishing returns.
If your “name” field can deal with long names written in unicode, and is allowed to be empty, you’ve covered 99.9% of humanity, and covering the rest, is not gonna be cost-effective.
(I’m sure there’s some guy somewhere who claims that his “name” is a particular smell, or a particular shade of the color blue or some such thing)
41. A person’s name is not a valid SQL statement.
please include in the appendix to the Celestial Emporium of Benevolent Knowledge; the Emperor will be pleased (and so will Tanaka Taro)
Comments seem to be evenly split between “I am so familiar with this problem, I have (unusual name) and it presents me with (these problems)” and “Desinging a system that deals with the complex real world is too hard, therefore I’m going to blame the world for being complex! IF YOU’RE WEIRD, IT’S YOUR FAULT AND FUCK YOU!”
More:
– Names are always sorted in some consistent manner
– There is one way to manage a name in each country/state/region
– A “real” name matches a person’s IDs. All of the them.
– A person’s name can be changed only with some legal document
– A person’s Full name is always put together (displayed) in the same manner for all purposes.
– People who have names that don’t fit the programmer’s view of what is reasonable are just weirdos/protesters/feminists.
– One can reliably derive a person’s sex or gender from a name and or salutation.
– Only databases that server more than one country need to worry about weird/foreign/odd names/charactersets/spellings
– ….plus so many more….
Oh, and one more that comes from my real life experience:
– No government agent (person) will insist on entering your name into a system in some way that will significantly change said name, forcing you to use this new, incorrect name on incredibly important identification documents for the rest of your life. And also leaving you with numerous IDs that don’t match each other.
#) Family names have no more than X-many characters.
My last name is not an unusual one, and yet I often have problems with it having too many characters to make a username based upon my last name and initials.
#) Family names have no fewer than X-many characters.
One website, for a password recovery question asked my mother’s maiden name, then rejected it for having too few characters.
#) It’s okay to truncate off unmeaningful characters.
I haven’t seen this one personally for names, but I have for zip codes. In New England many zip codes start with a leading 0, and yet some webpages in some browsers truncate off the leading 0 and then reject the zip code as not having the required 5 characters.
#) Your first name is your personal name, and your last name is your family name, or the other way around.
This should be self-evident by now.
#) It is appropriate to refer to everyone by their personal/family/first/last name.
I hate it when telemarketers call me by my first name.
Just filed a bug with the shiny new Mac Lion and pointed them here: by default, it splits names at the first space when creating the network name. Naturally, I’m annoyed – my first name has a space in it.
Only my first name is Japanese. That doesn’t mean I want it written in katakana just because the family name is :p
You can enumerate all suffixes. Most forms that try stop at either III or IV. Since I am the 7th in a row with exactly the same name and our family has the tradition of not restarting the count, I go by John McLeod VII (and my son is John McLeod VIII). Airlines are especially bad about this, and since my name has to match my ID, I typically have trouble at check in…
NAME – starts out as given and leaves it to individuals to change [ of course inform govenrments etc for paper work] – and out in the virtual world and in Computer terms – we want to make point-in-time or static requirements on such a personal thing! how many times customers change their opinion, after their names are not uttered properly or mis-spelt in *mail or Social* platforms – everyone has some identity and let us not start identity crisis for not managing Identitties – physical and hm also the virtual/social ones properly – who’s to blame? Is it the System , people or the DATA Structure (Data Architect is already covered if they are counted as PEOPLE :-) )
I found this article through a link that was posted to a genealogy circle on Google+. Thank you. Any of us could probably write a similar post about indexers.
If programmers and indexers can’t handle names correctly, I just wish they would all handle them incorrectly in the same way.
You soon learn to look for everything imaginable, and even then they surprise you.
Half the commenters are really outraged that the other half exists.
“No first or last name will be just a single letter”
(I know people who break both versions of that rule)
I love all the short-sighted responses here, like
> The database is UTF-8 aware, and the name does have
> a limit of 2MB characters. It can even be empty…
as if that solves every problem. Yeah, because the only reason a programmer ever wants to store names is so they can echo them back to the user exactly as input. Nobody ever built, say, a company directory that lets you list and sort users by first name or last name, or had the need to display first-initial-last-name to save space in a narrow column.
And to the person who asked
> I’m curious to know how much impact poor name handling
> has on your bottom line??
… not everyone is just trying to build a dumb little database to hold account names for a new movie review site or photo sharing service. Some of us do work for these things called “large companies” and “government agencies” and are REQUIRED to deal with ANY and EVERY user who walks up.
Heh, the comment form makes assumption 40.
Another suggestion: People’s forename and surname are in the same language. Google make this one.
Some people seem to ask what the point of this list is. Not all software is for internet forums. I usually have a hard time convincing government bodies, banks or the administration of my employer for example that my last name is real. Even when they accept this, their software usually has at least one of three problems with my last name (the space, the apostrophe and the capital in the middle).
This means that on a lot of official documents, it doesn’t say my real name. Explain that when travelling to paranoid USA nowadays.
> “… the only reason a programmer ever wants to store names is so they can echo them back to the user exactly as input…”
No, it’s not.
47 (or whatever) First names are longer than one character. I know a young woman whose first name is “K”. I’m betting that when she gets into the professional world, she starts using “Kay”, after IT refuses to set up her email for the 27th time…
In Israel, where there are people who came from all over the world, and at least 5 different alphabets are in use, it seems that authorities have given up on names altogether. Yes there is a “name” field, but it seems to be just a string which may contain anything (well probably almost anything, I haven’t tried “; DROP TABLE”…).
In any case, the name field is informational only, and is not used for identification; there’s an ID number for that.
When both my daughters were born (starting in 1995) they were assigned an ID number at birth in the delivery room, and went through the process of hospitalization, registration with the Ministry of the Interior, and even getting a medical insurance card, before having been given a proper first name. As far as authorities and their computers are concerned, they could go through life known only as “206121451 and 327920849, daughters of 50836287 and 54308333″…
Hi! Some web site somewhere mentioned this article!
If you could make example names pop up as title or something for each little variant, that would be cute.
I’ve found that surprisingly many people in this world don’t spell “Carnegie” the way that I do, and that’s when it is I who brought it up. “Carnagie” I used to see on a lot of mail, and also “Cartnegie”. And that’s ASCII.
I suppose the name thing is a job for an ISO standard to accommodate most of the options, and, obviously, recognise that people may have more than one name in various contexts, sliced and reassembled different ways, and in multiple languages.
The real world obviously isn’t ASCII-only, and I hope the people who said so were kidding. There are, for instance, Jews. I hope you people feel bad -now-. Or feel bad for making them become Americans with names like Samuel Goldfish. Or was that in England, as some say? Whichever. But I’d stop at 255 characters Unicode per piece. Beyond that you’re silly. No one actually knows you as something that long.
I went to school with a young Chinese man who was introduced to me as – well, let’s make it David Yip. Actually that’s the name of an actor. My friend had Chinese-speaking friends who called him something different that he preferred, but, oh well, it worked.
Today, a minimal implementation would be a first name and second name with no assumption or indication of what they individually “mean”, or that they will be the same as a person’s record on another system. Just so that you or they can verify to whatever standard is called for that they are that person, and that they are the person that any other system calls by a different name.
Unfortunately a computer system that I have some responsibility for, but not authority, has a similar issue, with addresses. We don’t have the same address fields as the official gazetteer. Are we going to change our system? Nope.
Lets throw down the shackles of tyranny that bind us! No more last names! No more first names!
Except I can’t have a facebook account without either… what to do?
My father’s name was John Æneas Byron O’Keefe, who used “Byron” as his
personal name. I am sick to death of American software sold in this country
(New Zealand) that changes my surname to “Okeefe”. What, there aren’t
any Irish in the USA? Every time it happens, I go to the local company that
mangled my name and ask them to fix it, and they try, and the software will
not let them. The apostrophe has been in ASCII since 1963; there is no
excuse for this.
Greybeard, “Kay” is the name of the eleventh letter of the alphabet, she would be using the name of her name.
Brian Ashe, how can you know which scripts the operator of your software can comprehend or which parts of the person’s name are of use to them. you seem to think you have a way to generate useful nicknames where the real name does not fit.
good luck with that.
>>>>
If you don’t have a name, why should I consider you a person?
>>>>
>>
That is sure a kneeslapper in the context of abandoned infants, slaves, and refugees.
>>
Not to be insulting but presumably these are all people in dire situation where they don’t need to enter their names in a computer form. So assuming this sundan slave is entering their information into a computer I think most people would allow them to choose their own name.
What I actually find interesting is the 5 year old without names. Over here in North America we’re talking about going to kindergarten by that age. Again I’m trying to imagine a situation where this five year old need to enter their name but the parents refuse to name it.
So I guess my first assumption mistake is assuming that people are entering their own names. Maybe a five year old isn’t at a keyboard but I guess a social working trying to input data on a family that doesn’t name their children? I guess the same could apply to the slave situation and the refugees? Unless they were slaves (and I’m not a poly sci major or anything ) but I’m hard pressed to understand why a refugee wouldn’t have a name in their homeland. Perhaps not a name they’d be wiling to give but to them and the slave I don’t understand why they wouldn’t be allowed to select a name of their choice. It’s not as if those people don’t want names.
I can see room for a possible situation in this global earth where you have to enter data for a series of people some of whom don’t have names. I don’t see that in any system matter though. As far as I can tell every instance where that particular issue comes up is probably prepared for it. You aren’t entering abandoned infants into Tax Forms, or library card privileges. Nameless slaves from the Sudan aren’t applying for Jobs at McDonalds. Again not to make light of the situation but in each of those cases it seems to me the person in question is nameless at that transitory time.
As a programmer if you’re designing ID entry SHOULD you really be making such accommodations? Most people have names and if they don’t you probably are already primed to handle that. I’m sure social services is long been primed to handle people without names. That doesn’t mean when you’re building an iPhone App you need to prepare for people to not have names.
The only area where I could see this being an issue was if you were designing middleware. For instance if the world became crazy and started barcoding everyone and it was so popular it was taking over the world. The designer of the barcoding software would have needed to make accommodations for the nameless, but most people aren’t working on potentially globally used middleware. We tend to work with very specified groups of individuals.
I love these articles about stupid things people (keep) doing, but it deals with real problems that have real solutions.
Very sadly, the final solution is likely to be that our *real* identity will be a number that might, or might not, have a polite handle associated with it. In many countries this appears to be already true.
If you are a romantic traditionalist who likes names and wants to use them then there are a few hard decisions that you have to make.
Sooner or later someone who wants to be difficult will find you. What do you think is a reasonable thing to do when you personally, or your business, or your government, is confronted by a group of people who say, “we have no names”? Is it just a social interaction, or do they want to trade, or get some goods or services, or an old age pension?
If you want to protect yourself (and everyone else) from fraud, if you want to make things reasonably easy for you, your staff, and your fellow citizens to deal with people, you will offend someone who just has an interesting history. Apologize to them, and ask what they would like to be known as.
If you want to use names as a real identifier you have to decide what a real name is.
“Rene” (with an accent) is a perfectly reasonable name for a French birth certificate, but not for a Japanese birth certificate. A UTF string would be an insane decision for a birth certificate; there are far too many glyphs that are too easily confused by humans.
You might be able to change my mind about these, but in the rather specialized case of an Australian birth certificate these rules seem like a reasonable start to me. (What the actual rules are is a mystery to me.) Please, don’t hassle the government if my opinion does not coincide with realty – or your opinion.
Twenty six letters, apostrophes and hyphens allowed, but discouraged.
No diacritical marks.
No embedded spaces.
Case preserving, but not case sensitive.
Nothing from a list of inappropriate names.
At least one name, three preferred, six max.
Maximum of 64 characters including a single space between names.
Each name can only be used once per day. (The second Smith family that want to call their son “John” for any given birth date should be asked for a middle name.)
In the very different case of a web page aimed at a world wide audience a UTF string seems like a good idea – much better than, “put the bar code reader against the tattoo on your forehead”.
What are you trying to do for whom?
Response to Mahmoud Al-Qudsi: In England and Wales (I’m not sure about the law in Scotland), it is perfectly legal for parents not to give a child a name. That’s right: the parents do not have to register a name on the birth certificate.
The child will, legally, never have a name, but instead have a series of aliases.
I don’t know whether anyone has ever done this, but it is legally possible.
It is also possible in England and Wales to change your name without any legal documentation at all. As long as you don’t do it in order to commit fraud, you can just declare that you want to be known by a new name. That’s in theory, though. In reality, you need some documentation, but you can just go to a solicitor and make a statutory declaration. It’s just a legal document declaring your change of name. It’s entirely private, there are no databases of these documents, there are no checks on them, no court gets to see them, nothing like that. They practically come in packets of crisps.
Another mis-rule:
##. All names will be entered correctly, and therefore (coupled with the fact that nobody ever changes their name) there will be no need for a mechanism to change a person’s name on a database record.
Also, for Peter who talks of what he says are reasonable restrictions for Australian birth certificates:
1. No accents or other diacriticals. No, in this age of international travel, unless Australia does not provide birth certificates for medium-term temporary residents (e.g. a couple comes to Australia for a two-year secondment, and she has a baby while in the country), you will have to allow such foreigners to name their Australian-born children using foreign conventions. The same can be argued for non-Roman scripts such as Greek, Chinese, etc.
2. No embedded spaces. What do you mean by this? Do I have to call myself Stevethecynic?
3. “Six max” is not compatible with traditional names given by seconded Spaniards, where a person’s name contains a potted history of his ancestor’s names. And this type of name does not sit well with the 64 character limit either.
4. Only one person named with a particular combination of full name and date. How do you propose that the registrar is going to tell? And if two couples on the same day need to register the birth of their firstborn son, and they both promised that said sons would have the same first and middle names as the respective maternal grandfathers (so both newborns have to be John Adam Smith), what do you tell the second couple?
44. A person’s given name always comes before their family name.
Yes! I knew someone who was an example of #40. She said many times, when people called her “no name” : “NO, my name is not No Name. I have no name.” Now granted, this was 30 years ago, so maybe she’s got a name now. But back then, she was adamant: Her name was NOT No Name. She had no name. Srsly.
Seriously dude, do not post a criticism without supplying a solution. I wasted my time reading this.
I have had many problems since I changed the spelling of my name
Let’s break this down:
1. People have exactly one canonical full name.
Yes, if you want to enter your name when filling out a form, pick ONE fucking name! You have plenty more names? Cool, have a beer.
2. People have exactly one full name which they go by.
Yes, when writing their name in That form, they go by That name. Again, you have more names? Write a fucking book about it.
3. People have, at this point in time, exactly one canonical full name.
Stop it.
4. People have, at this point in time, one full name which they go by.
5. People have exactly N names, for any value of N.
Trying to sound like a mathematician?
6. People’s names fit within a certain defined amount of space.
Their legal name registered in at least one of the countries they are a citizen in do, yes, since that country’s system for book keeping names probably have such a limit. Need more? Vote for change.
7. People’s names do not change.
8. People’s names change, but only at a certain enumerated set of events.
Please accept that your previous name lasts in some systems, or continue your life miserable complaining at practically everything.
9. People’s names are written in ASCII.
Americans might believe that, the rest of us don’t.
10. People’s names are written in any single character set.
Yes, in unicode.
11. People’s names are all mapped in Unicode code points.
Yup. Or they are undefined symbols which cannot be entered, parsed or displayed in computerized systems in standardized methods used to interchange information with practically any other computer system. We have all agreed upon unicode, get used to it, cry baby. It’s not a programmers fault that type setters haven’t drawn that weird old chinese character in Arial, or that international committees haven’t put it in the unicode table. After all, unicode grows, so either your name fits, will fit in the future, or is just a symbol, hence not a name.
Names in computer systems (you know, those programmers deal with) are about _written_ names, not spoken or carved in wood.
12. People’s names are case sensitive.
13. People’s names are case insensitive.
who cares? people have stopped using caps on the internets for ages, i guess case insensitivety can be assumed always. my name is “case sensitive” in my country, but i don’t give a fuck which case you use. When is this a problem? Use case insensitive searches always, and there is no problem.
14. People’s names sometimes have prefixes or suffixes, but you can safely ignore those.
Honestly, you can safely ignore this whole blog post and go on with your life.
15. People’s names do not contain numbers.
16. People’s names are not written in ALL CAPS.
17. People’s names are not written in all lower case letters.
Blog post get’s out of control here and rambles about nuts.
Next up, “programmers who believe the directory ‘Program Files’ is called the same on all languages of Windows”. Who knows, maybe that directory has a name that doesn’t fit in unicode in some countries! OMG, itstheendoftheworld…
Thanks for an entertaining read on a sleepless night!
For a long time, our remote ancestors had no names. I have spent much time pondering what the name of the first person to have a name might have been.
I have a second first name (no, not a middle name), which funny enough comes *before* my real first name. Actually not that uncommon in German. Untold are the troubles this has cost me in my life.
> Half the commenters are really outraged that the other half exists.
Grypo, I think that it is worse than that, most are outraged that the other half exist. :-( Perhaps only fanatics comment on blogs. :-(( Am I a fanatic too? :-(((
Steve The Cynic,
1. What actually happens at an official level is a mystery to me, but I would expect temporary residents to get their real paperwork organized through the appropriate embassy, probably with Australian paperwork having a near transliteration. I have met someone who claimed to be the child of a British diplomat and to have multiple birth certificates.
Would you expect an ordinary Australian human to cope with Klingon? I would not. The local lingua franca is English. Where would you draw the line? Many Australians can read Chinese, but most can not. Vietnamese? That uses a Latin script with diacritical marks all over it.
Call me Peter, Pierre, Pedro, Poida, Rock, whatever, they are all good translations.
2. You can call yourself anything your like. Steve The Cynic, seems like a good description for you – especially if your name is Steve. Or, are you claiming the same middle name as Alexander The Great? If you really want *people* to parse that as one three word name, make it easy for them – use Steve-the-cynic or SteveTheCynic. If you want to name your child that I would suspect you of child abuse.
3. Australia is not a Spanish colony. We have many laws that are not compatible with foreign customs. When in Rome, do as the Romans do.
4. Everything should be computerized now. Type in what you want, and maybe it will say “no, somebody beat you to it, think again”. Add a fourth or fifth name, change the order, decide which grandmother is richer and more important. My guess is that there is no such check, and one of them will have no end of trouble with debt collectors looking for the other one (who is a scoundrel that exploits the situation).
To everyone,
This Blog should have been “Falsehoods that *People* believe about names”. Some code has bugs, but mostly it does what someone somewhere thought that it should.
I know someone with only one name. He puts it in all three boxes. That one name is his first, last, and middle name. Asking for given names and family name(s) would be more sensible.
In some places “Dee” is girl’s name, in some places “de” means “the”. If you have a confusing name people will be confused.
If you have a confusing history you might want to make out your important documents as, “Eunice, known as Nin” or whatever.
I know people who have had to be careful that the names (including shortenings, likely nick-names and initials) that they give their children do not sound silly in four different languages. That is part of being a good parent.
Reading all of troubles people have with names don’t give your child a name that will cause them trouble. If they choose trouble as an adult that is their problem.
Well off topic, for gender, tick one box if you are sure, neither if you don’t know, and both for complex cases.
41: Peoples’ names do not contain commonly used wildcard characters
Yes, we had someone who’s name began with %, the operators complained that they could never find his account…
To all the ‘programmers’, and I use the word in its loosest sense, who have said “Oh, who cares about all these issues, I don’t have time to think about this and you’ll use ‘my’ system the way ‘I’ want”. I am very curious if their *employer* is aware of their attitude. If they were working for my organization and spouted out such nonsense, then they would definitely acquire a new name.
Fired.
Common LDAP directory schemas have an interesting approach to handling the many names people are known by. They allow you to store every title, surname, initial and all the forenames a person may be known by. This data is used to return the user in a search query.
The user has the option of configuring a display name, which is displayed in applications.
Judging from several of the comments here, anyone who wants to, or has to, deal with someone who carries a database of names, will also in the future have to go back in time to each and every occasion where a clerk somewhere tries to enter your name according to local rules and customs, wrestle the keyboard/pen out of their hands, and type in/write the name according to the wishes of the database you encountered back in the future – because otherwise there will be inconsistencies in the spelling. (And yes, thereby several canonical spellings/forms depending on the source).
All these “But these restrictions are perfectly valid for my community” implicitly assumes that there is no trade nor migration between this community and any other. As far as I understand, North Korea *might* get away with that, but the rest of us… not so much.
The only way to circumvent this dilemma is to assign unique numerical identifiers to each individual. Since there are soon to be 7 billion of us mucking about the planet, you can safely assume that those numerical identifiers will be ten digits long…at least for the time being. Make all UNIDs (unique numerical ID) 12 characters long, with as yet unused first digits zeroes. You won’t need to go higher than that because the planet’s population capacity is less than 1 trillion (median = 10 billion).
Not exactly as practical as building more robust software.
Many of the useless comments here arise out of ambiguities in the use of a computerized name field. Is the intent of the field to specify how the person wants to be addressed, or is it how the person needs to be identified? The name field is a weak identifier, but sometimes is used for one. So, we have the first, last middle problems when we try to cram what a person is called into how the person will be identified.
Name field requirements vary. One style doesn’t fit all. Some databases need normalization. Some inputs require cleaning. Some fields require sorting. You might need a display name to address the user, but use a sort name or Soundex to sort and find. Names aren’t primary keys, aliases exist, and NOT NULL
sometimes needs to be allowed.
So, another rule: What a person is called is not how they are identified.
I remember a government DB having to be restored from tape as a result of someone changing gender.
I am Kzinti; please refer to me by my occupation, until I have earned a name by performing a heroic deed.
May in comment #4539 from 2010‐06‐17: No, people do *not* have only one “last” name, nor is it true that that surname has no spaces in it. Spanish poet Federico del Sagrado Corazón de Jesús García Lorca’s surname is García Lorca, not just Lorca — that’s his mother’s name! That’s why Spanish‐speaking countries’ entrance forms have “sobrenombres” in the plural where English‐language countries have “surname” alone.
People have an inherent and inalienable right to be called by whatsoever it pleases them to be called: the exonym is rightfully abhored as the repugnant cultural chauvinism that it is.
If someone tells you that their name is “Madonna” or “Cher” or “Elizabeth R” or “Laȝamon” or “ᚱᚢᛋᚾᚲ” or “☧” or “13 O’Clock” or “Ævar Arnfjörð Bjarmason” or “Þórinn Eikinskjaldi” or “Πηληϊάδεω Ἀχιλῆος” or “Леони́д Ильи́ч Бре́жнев” or “मोहनदास करमचंद गांध” or “pəʎəqO əq ʇsnƜ oɥM əɥS” or “
You have an idiotic bug in your database system. It blows up on perfectly valid Unicode that just happens to be above the Basic Multilingual Plane, truncating the remainer of the string when it first encounters a non-BMP codepoint. You ate my username and half my posting!! I smell some dumbass UCS-2 bug. Blame Microsoft. Unicode hasn’t been stuck at 16 bits for 15 years now. Welcome to the new Millennium! Rimnods.
Number of words in name: 1 [] More than 1 []
Last word of name: [ ]
First word of name: [ ]
Whole name (optional): [ ]
256 maximum length UTF-8 or 32-bit Unicode characters should
be more than sufficient for a maximum length for one word of
anyone’s name. Any printable character is valid. That length limit
could be violated, but is it actually violated now by naming conventions
in any current cultures with a written language?
The length limit could be much longer for “Whole name”, but that
is merely informational. First word of name and last word of name
are used for label printing, billing, check cutting, etc. User ID (assigned
by the system, like a Customer ID, Vendor ID, etc) are used for searching
and sorting. If your credit card, bank, PayPal account, etc do not
recognize that form of your name, we will not doing business with you.
Just out of curiousity, do right-to-left writing scripts also write
multi-digit numbers right-to-left? How about vertical scripts?
Multi-digit numbers vertically same direction as characters,
or encoded in a single symbol?
Do we have Unicode code points for Cunieform? What about
Sanskrit?
Patrick my granpa put two lines or hashes under the small c in McK? I think I see your subject is code and your last name as mine. What is with lines under the c? My granpa was Albert E. McKenzie he past in 1957 same year I was born. I know its not the subject but hope you will get back to me. R Mc/K Las Vegas, Nevada
Regarding #11:
– We found a number of Chinese names containing characters not in Unicode, and so we submitted the characters to the Unicode consortium–they were added after a 5-7 year vetting process.
– In the meantime, we were able to support these names by assigning them to codepoints in the Unicode Private Use Area. To do this, we had to edit our font to draw the character and assign it to one of the private use codepoints, modify the Chinese IME to allow input of the characters, and then distribute the font to our users. This only works if you have a closed system–if you share your name data with other systems–they’ll need your custom font too.
– The Chinese government recently passed a law limiting parents to using computer-supportable characters in baby names. (see – http://www.nytimes.com/2009/04/21/world/asia/21china.html?hp). This doesn’t help if you have to support the names of people who were named before this law came into effect.
– The nature of Chinese is that new characters are added over time–so including all of them in Unicode is a never-ending task. The Unicode consortium and big software vendors (like Adobe) are working on ways to deal with this–like by creating an XML file that describes the shape of a character, or by using ideographic variation sequences.
Fallacious assumptions non-programmers make about database systems:
1) If I can input the data, your system should be able to handle it
2) All databases should be optimized for all possible inputs, environments, domains, etcs.
3) See #1. Standardization of the data is less important than letting me be creative.
I believe that, in the interest of privacy, all communications should be anonymous by default, with only the individual people at each end having the option to reveal their identities, totally ad lib. No corporate entity — commercial or government — should be permitted to record individuals’ names at all, and there should be strict limits, both legal and social, on the recording of identities by private individuals. There is no moral reason for the state or any business to know your name, or your identity, at all. The use of identity as a qualifier is a mistake begun under oppressive regimes and carried over by default because people haven’t given the issue enough thought.
Just today, I saw a quote from Bruce Schneier. “It is poor civic hygiene to install technologies that could someday facilitate a police state.” Into this category, I would insert this requirement to demonstrate one’s identity. I believe that humanity as a whole needs to rethink this entire issue — and probably will.
M
Thank you Patrick for original article, and all contributors.
this discussion resonates with me coz as an software developer, the ‘assumptions’ problem is neverending. Not just names, but as others have mentioned, there are all kinds of things that are assumed to be unique or conform to a single standard, and this is almost never true.
a pet dislike of mine is date formats, D M Y in australia M D Y in US, etc. yes this is EASILY fixed, is yesterdays news, is sorted. but the first 12 days in a month, i must always check.
Names, whatever. let them type what they bloody like.
the real issue is even when I (the oft-criticized software geek sitting in the dark) realize the assumptions made are not true ALWAYS, the amount of arguing and providing proofs and the whole sh*tfight, well sigh.. when all else fails, letting the assumption stand and let them sort out the mess later, especially by paying me to fix a problem i already told them about.
I try my best
_______________
incidently, my birth surname was not Strikes. I made it up, and i use it, and although my real name is still in use (i not bother to change it legally), its generally accepted. I think i’m clever because when i answer my phone “Matty Strikes”, i can pretend i used strikes as a verb, not as a name. This is yet to be tested legally (i don’t have high hopes), but since i live in Australia – well, we pretty casual about most things.
Hello, Neat post. There is a problem with your website in web explorer, may check this? IE still is the marketplace chief and a big element of other folks will miss your great writing because of this problem.
Needed to create you the little bit of word to help say thanks a lot again considering the gorgeous thoughts you have discussed in this case. It’s certainly particularly generous of people like you to convey freely exactly what a few individuals might have distributed as an ebook to generate some cash for themselves, certainly considering the fact that you could have done it in the event you decided. These things additionally served to provide a easy way to fully grasp that other individuals have the same dream really like my very own to understand a lot more with regard to this issue. Certainly there are several more enjoyable moments in the future for folks who start reading your website.
What is the percentage of your users that is likely to face any of these problems? What is losing those users costing you?
What is the percentage of development time you’re spending on trying to code these mutually exclusive limitations? What is that costing you?
I think the solution is obvious.
whoah this weblog is great i like studying your posts. Keep up the good work! You recognize, lots of persons are looking around for this info, you could help them greatly.
You can order Human Growth Hormone natural supplement pills online from our HGH store with lowest prices. HGH is revolutionary antiageing supplement.
Our drug store, offers you the world’s biggest in-stock range of generic rx drugs unequalled value for your money, and private, qualified, and caring customer service. We are faithful to helping you deliver the very best patient care possible.
Online Pharmacies present cheap generic drugs. If you are looking for a store where you can buy prescriptions, without prescription being required, extra bucks charged or questions asked, our meds shop is just what you need.
Cheap Propecia is used to cure androgenetic alopecia of men. Baldness, hair loss, androgenetic alopecia of men is a common process in which the density of hair becomes sparse day after day and eventually formed hairless zone on head.
Its like you learn my thoughts! You seem to grasp a lot about this, like you wrote the book in it or something. I feel that you just can do with a few percent to pressure the message house a little bit, but other than that, that is fantastic blog. An excellent read. I will definitely be back.
Find and buy best prepaid telephone cards for international telephone calls. Search best rates from a variety of phone cards. Buy card online and receive instantly. Fast, Easy, Cheap, and Secure order. You can be used cards from any telephone. We provides only high quality and low price phone cards..
I suppose it would be safe to assume that Google has either not seen this or does not care.
Great items from you, man. I’ve be aware your stuff prior to and you’re just too great. I really like what you’ve bought here, really like what you’re stating and the best way in which you are saying it. You are making it enjoyable and you still care for to keep it wise. I can’t wait to read far more from you. This is actually a wonderful site.
F*ckin? amazing things here. I?m very satisfied to see your article. Thank you so much and i am taking a look ahead to touch you. Will you kindly drop me a mail?
Hey there, You’ve done a fantastic job. I will definitely digg it and in my view suggest to my friends. I am sure they will be benefited from this website.
I am extremely impressed along with your writing talents as neatly as with the format in your weblog. Is that this a paid subject or did you customize it your self? Anyway stay up the excellent quality writing, it is rare to look a great blog like this one nowadays..
In our site you can order cheap finasteride online without a prescription. You can purchase cheap finasteride 1mg and finasteride 5mg tablet. Finalo online with lowest prices.
Rx No Rx dot com drug store offers brand name and generic rx drugs with lowest prices and without a rx. All of our pharmaceutical products must pass stringent quality control before they are shipped. We work only with FDA approved manufacturers.
Purchase prescription drugs at wholesale prices and with no prior prescripton needed. Order Safely and Securely through our secure transaction server Mastercard and Visa accepted. Only the high quality products and lowest prices.
Detox foot patches are used to easily take out toxins from your body. Detox Patch include an all natural and herbal combination of ingredients and components. In our store You can buy foot detox patches worldwide shipping available and online.
This page gives info on pain relievers – obtaining guidebook, prescribed amount, side effects, interactions, and notices. Pain Relievers also called Pain reliever, pain medicines, painkillers, pain tablets. Information about prescription analgesic.
Drugstore offers private way to order generic rx pills on internet with no prescription. In fact large choice of the fda permitted medicines in our store.
With our online drugstore You can buy generic prescription drugs without rx. Onlygenerics.Net offers only food and drug administration permitted medicines. Cheap generic tablets is a finest alternative for costly branded medications.
Herbal drug store offers herbal energy booster pills and other supplements manufactured in FDA approved naturaceutical laboratories, across Asia, Europe and USA. Keep healthy, lose weight, build muscle or increase libido. Full money back guarantee.
AmmoPills.com offers wide assortment, lowest prices and fast shipping for generic erectile dysfunction drugs. All erectile dysfunction drugs FDA approved. Order erectile dysfunction pills by mail.
Research of people who have a growth hormone deficiency show that hgh, human growth hormone can: increase bone density, increase muscle weight, reduction body weight, increase exercise power.
In our Internet Pharmacy You can find and buy low cost and safe generic prescription drugs online without a prescription. Generic drugs have the exact same effective medication as brand name prescription drugs. However, they cost a fraction of the price.
In our store You can purchase low-cost quality drugs online without a prescription. We also provide free medical consultations and free worldwide delivery. We provide top-quality products, world-class customer service, excellent value for money, and we welcome your feedback.
At this instant Vardenafil, Sildenafil, Tadalafil and Kamagra oral jelly accessible and above all used by men who are having impotence. This small cheap generic drug will ultimately rescue your relation.
Planeta Medicamentos – Farmacia en internet, compra medicamento de marca y genericos sin receta. Envio rapido y discreto a todo el Mundo. Somos orgullosos poder traerle nuestra seleccion amplia de las medicinas, todas estan disponibles para usted en linea.
Buy cheap sildenafil citrate online for treatment of Erectile Dysfunction in men. Viagra are blue pills that helps men suffering from Erectile Dysfunction by increasing blood flow.
Buy erythromycin online from licensed overseas pharmacies with no prior prescription and save your money. Overseas drugs online it’s great saving and high quality. All medications FDA approved. Free, fast shipping. Generic and brand name overseas medicines.
Comprehensive first aid products, supplies reviews, information, guide. At this time you can obtain 1st aid bag designed for all situation and at all type or quality. Great info on necessary health supplies for office, car, travel, RV, home.
Buy low carb weight loss diet pills by mail. Weight loss carb is among the best weight loss pills on the market today. Fast shipping and a money-back guarantee up to six months of your original diet pills purchase
We offers cheap generic medications for the treatment of ED (erectile dysfunction). Active ingredients for our pills: sildenafil citrate, tadalafil, vardenafil which is a well proven treatment for ED. No prescription needed.
To obtain fast medical insurance, attempt finding quotes for health insurance policies online. Look for sites which let you to collate quotes from numerous plans to make convince you are choosing the most profitable possible value.
The White Light teeth whitening system is a teeth whitening procedure you can do at home. The best thing about it is that White Light products offers all the advantages of a laser teeth whitening procedure, while being quick, and easy to use.
Our internet shop offers natural breast enhancer capsule for enhance your breast size. Your can get breast enhancement pills online with international delivery. We accept all major credit card, satisfaction guaranteed.
First aid kit bags online store offers a wide selection of First Aid Kits. You can buy emergency kits online for your home and car. Top quality, highest standards at great prices. Business first aid kits, first aid cabinets, outdoor and camping first aid kits.
Buy pain medication via internet without a prescription and get it next day. Our team strives to make happen you the express turn-around period on your orders. Free medical consultation and physician review.
This site offers generic health products for online buying without prescription to US customers. Fast discreet shipping to your address guaranteed. F.e. You can purchase butalbital, buspar, prilosec, imitrex, soma and lipitor.
In our drugstore you can buy pills via internet with free prescription. Really low-priced medications available on our stock approval sale point catalogue which is constantly modernized in request to satisfy the needs of our potential buyer base.
Attract Women or Attract Men is doesn’t have to be rocket science if you use pheromone cologne. Improve attractive – buy pheromones to attract the opposite sseexx.
Shop and find the lowest prices on fioricet from online pharmacies. Soma price comparison, soma reviews, and drugstore ranking. Soma consumer reviews, news and buyer guides. Articles about prescriptions and other.
Pheromones are a naturally occurring chemical compound found in insects, animals, and supposedly humans. Once pheromones are secreted they directive sexual behavior and sexual desire. The term ‘pheromone’ was coined in 1959 by German scientists to describe the sex attractants of insects. The word ‘pheromone’ is based on the Greek words pheran which means to transfer and horman which process to excite.
Pheromone cologne prepared specially for sexual hits beginning differing gender, before build a brilliant party and sexual presence, that succeed you apear additional charming. Our spray contain natural pheromones.
Buy Vardenafil 20mg online without prescription. You can order Vardenafil 20mg is a generic equivalent for Levitra online. We accept Mastercard, Visa and other payment. Also available Tadalafil 20mg and Sildenafil 100mg – ED medications online
Farmacia online en Internet Farmacia2u – venta de medicamentos sin receta. Compar medicamento generico: Antibiotico, Antidepresivos, Gastrointestinales y otros. Envio rapido y discreto a todo el Mundo.
The miracle white teeth whitening pens, is a authority teeth whitening pen, which has been designed and contains tooth bleaching gel recommended by dentists. At this time you can buy whitening pen online, it’s safe and most importantly it works!
Search engine friendly human edited general website directory. Submit your web site to gain link popularity and traffic. Website Directory is having wide range of category to submit your site.
African Hoodia Program provides an entirely natural effective weight loss system. Hoodia Gordonii has a magnificent effect your brain really are telling “You were full”.
What Chief Nursing Directors & Managers have to tell about the contests of administration in the nursing location. Find out how to lead, survive, and thrive in the disordered and crazy nursing environment.
Providing products, information, solution on traditional hair loss treatment with entertaining and helpful critiques, greatly helpful resources for male or ladies. Stop hair loss also restore lost hair right now.
Are you looking for an cheap, trusted, qualitative and efficient pain medicine? You must certainly think about the prescription medicine Tramadol. This medication is reliable by medical specialists to cure even the most intense hurt.
At this information resource, we accept as true so as to there is extra to living than “coping” along with RA. There is enough of issues available there to assist you manage your RA — we would like you to be skilled to manage your health.
GalaMed offer a wide selection of the most popular medicines: esgic plus, imitrex etc. online free prescriptions, fast shipping, low prices and toll-free customer support.
In our drug store you can buy brand name medications such as: ranitidine hcl, prevacid, renova, prozac, synalar without a prior prescription online. Prescriptions available only for USA castomers, fast shipping and satisfaction guaranteed.
The drug store sells only FDA-approved medication. Our licensed pharmacists available to answer any questions. You can buy drugs without a prescription.
NoRxLine.com offers high quality prescription generic drugs by mail. NoRxLine do not require any prescription from
customers. The medications are manufactured in India. The orders are shipped to almost all countries of the world.
Urine drug tests is often a unexpected, you need to be fully ready. Synthetic urine is the perfect solution for random, unannounced urinalysis tests. It has got high efficiency, small size, special technique, and inexpensive price.
Online drugstore offers prescription drugs. Authorized pharmacists physicians who calculate your request, after that fill and dispense your prescription in twenty four hours. Your prescription drugs will be sent to your door.
There are countless causes that cause deficient productiveness levels in female. The possible reasons to infertility can be endless. Fortunately, there are also a lot of manners on how to boost fertility efficiently.
Useful guide, various articles, facts, tutorials about HGH. Plus recommend many reviews on Growth hormone prescription products officially approved in the United States.
Complete appetite suppressant reviews, information and guide. At this moment you can find OTC or natural appetite suppressants at all features. Cool facts on healthy weight loss and mass manage with diet pills appetite suppressants at office, home.
Detox pads, sap sheet, vinegar patches or detox patches naturally cleanse toxins out of the body, support the immune system; it treats reflexology and acupressure, which are basis on Chinese medicinal methods that date back more than a millennium.
Our store offer a premier branded line of drug testing products, the supreme quality of home drug testing kits & business drug testing kits available on the market. For example:alcohol test kits, ecstasy testing kit, nicotine drug test kits, opiates drug testing kits.
You can order cheapest Winston, Parliament, Davidoff, Marlboro, Dunhill and Kent tobacco online with no taxes. We provided that quality European cigarettes to customers through Internet.
This online store offers best choice of skin creams and skin care products are prepared from only the best natural component and created to excellence from years of research. Our skin creams are both effective and affordable.
Scrubs-one.com offers greatest assortment of medical scrubs and medical uniform. In this medical store you can buy cheap hospital uniforms with secure and easy order process from your house or work. Printed and coloured scrubs available for your choice.
Pure infertility treatment for women can assist a couple conceive after the source of their fertility is due to a deficit of minerals and vitamins
Our site offers great range of CMS templates. You can get templates online from very artistic and skilled web designers. No membership needed. Free Templates and Clipart kits available
Cum Pills – Morgasm is a revolutionary method designed for male of all ages to support great sexual pleasure, and duration of, as well as extremity of orgasms. Buy Pills Online and recover orgasm today.
PE also known as Rapid climax is a so common complaint that has involved men all over the earth. Discover how to overcome premature ejaculation and how to buy the best herbal early ejaculation pills for this purpose
Teeth bleaching planet present an resources where people can instantly and without problems observe information on tooth bleacher. Tooth whitening is fantastically popular, many people are still naive about the various products and process out there.
Hair remover product has proven to eliminate regular shaving, waxing and the use of tweezers, not to mention the hassle and the expense of Electrolysis and Laser treatments. Hair Removal lotion is the most effective alternative to expensive laser treatments and electrolysis.
Loss weight program with LYSE XL natural weight loss pills. LYSE XL herbal diet pills will assist in the thermogenic processes allowing you to naturally and safely burn fat and loose unwanted weight. LYSE XL safe weight loss formula without Ephedra.
You can use long distance and international calling cards for global calls. Prepaid cheap calling cards can help out you save significant money with no losing the quality of communication.
Purchasing long distance and prepaid cheap call cards can be a excellent method to communicate together with your family, kids. You may even save money, since it is the least expensive way to make international phone calls.
We provide cheap phone calls for You with finest quality & clear connections! Low-Cost international calls at fantastic rates! Easy to use PC2Phone service.
Kphonecard.com offer the cheapest and most qualitative international prepaid telephone cards. Buy your virtual phone card online and call immediately. No hidden costs, lowest telecommunications prices.
We carry wide selection of prepaid calling cards that satisfy any consumer and meet every calling need. Our prepaid calling services evolved into much more than just phone cards: Speed Dial – You can make calls by pressing three keys only, see more.
People’s surnames do not contain spaces.
A contractor will have innumerable kitchen renovating options to prefer from. They can recommend you choice to stay within financial plan and review a wide assortment of products to complete your room renovate to perfection.
Buy our Winston cigarettes online at our cigarette store and you will save your time and money. You don’t pay any tax for cigarettes in our discount cigarette store.
Hi!
I like number 21 or 22. People’s names are globally unique or almost globally unique. Because people aren’t likely to remember names that are ordinary.