Now that we have the standard "Haha, you don't know shit about names, and your program sucks!" pitch, where's the library/framework that developers can use that will take care of ALL these name issues? As a developer, I just want to record a person in my system, I don't want to learn about all the different cultures, character sets, name orderings, etc. that exist in this world. So, Patrick of Kalzumeus Software and other HN commenters who are disgusted that names can be truncated and whatnot, show us your respect for the culture of all Earth people and release a project that will accept any name (or no name, #40) for anyone ever without a single fault.
Until then, can we agree that getting things right for 99.999% of people in your target market is good enough, and that, although unfortunate for people with culturally different names, the time and cost of getting all 40 points right would be too damn high?
1) Names are context-sensitive, so ask for a person's name by giving the context you intend to use it in. Something like, "How should we address you in an email?" or "How should we display your name to other people on the site?".
2) Do not apply any sort of transformation to a name. Don't parse it, don't truncate it, don't lowercase it. Treat it like an opaque string and use it verbatim.
3) Databases do need limits on the length of a column (unless you use a blob...) so be generous with the width of the columns. The longest recorded name is 746 letters long (http://en.wikipedia.org/wiki/Wolfe%2B585,_Senior), so make sure it's longer than that.
4) I think the no-name case (#40) and the not-in-unicode case (#14) are fairly obscure, but if you want to handle them then then make names optional but require an avatar if they do not provide one.
5) Allow a person to change their name at any time.
There is one kind of normalisation that I think would be useful though, that is to normalise whitespace. That is trim leading and trailing whitespace, convert all whitespace to space and remove multiple spaces. Otherwise, as someone with a non-trivial surname, I agree. Facebook has always driven me insane in this regard.
I don't know if it's still the case, but Facebook used to have this annoying bug where they'd not only capitalise the first letter of my surname (incorrect!), they would then not allow for me to correct it because it seemed to have been treated case insensitively. They don't seem to enforce the capitalisation now since I've created a new account though. I know it was just a bug, but it was so disrespectful somehow.
The answer is to allow a single unicode text column for names, and don't try to validate it.
That's not very hard, and is in fact easier than trying to validate or restrict names. You don't have to learn about all the different cultures etc, just don't assume they are like yours.
Then what if someone starts putting in unicode control characters? What if you display their name as the title of a window and they made their name start with two right to left control marks, causing Windows to invert the entire window contents?
names are no different from any other form of user input in this regard. Any time you include user input in a document you should follow it with a direction override character to restore the text direction, just in case the user changed it. You could also strip these characters out, but some people really do want their name to show up backwards, and for that to be consistent across all cases.
What if you need to call out to a third party API like a payment system which requires a first name and a surname? If you've not collected those things, you're screwed.
Billing names are a separate problem from user names. If you're collecting for payment, obviously you have to conform to whatever your API requires, but often it's better to keep billing details separately.
Sorting is another area where it'll vary a lot depending on locale (perhaps you want to sort on last name for example, or not depending on your users) - it might be best to try to guess that from whatever they enter, rather than imposing a structure on them.
Personally I'd choose the simplest solution which works, so no last name/first name, just a name field for display, depending on the requirements, a website/app might need to collect more of course, but for most websites there's no reason to try to control user names or split them up into arbitrary first/last pairs.
But that's exactly the issue here; there aren't many people with names as long as Janice's, but when these people have problems with computer systems, we get to hear about it.
I don't know about your first question, but the reason you need a character limit is because each time a row is added to a database, enough space is set aside to contain that row.
Each row contains the same columns. For example:
table Person:
col1 label: name / type: text / size: 10
2 label: age / type: int / size: 3
3 label: address / type: text / size: 200
the type tells the database how to encode the data found in that column - an int takes less space than a string, so this is a space saving measure. The size refers to how many characters are allowed in that field, because that is how much space will be allocated when the row is created. If you don't need 200 characters of space, it's wasteful to allow it. But you kind of have to put a number in there, even if it's a big one.
Correct me if I'm wrong, all my knowledge comes from Dr. Marla Weston's 2nd year Databases Design course.
A very poor course indeed if it told you to use fixed-size data types for arbitrary string data, or implied all string types in databases were fixed-size. SQL string types like VARCHAR and TEXT are assuredly variable, using only the storage necessary to hold the actual data (plus bookkeeping overhead). CHAR is fixed-size, but I can't remember the last table I created with a CHAR column. They're quite uncommon in comparison.
Not all databases store varchar differently from a text column, for example I don't think PSQL distinguishes between the two in storage and there are no performances improvements from using varchar.
Learn to fix the problems you can fix, and only the problems you can fix. Ignore the problems you cannot fix because, as per hypothesis, you cannot do anything about them.
In other words, what if you get hit by a micrometeorite on your way to the bathroom tomorrow?
I'm not sure there's anything we can do about point #11 - do do you have a suggestion without fixing unicode? Like a few of the last points it's not possible to satisfy every possible problem, but using unicode without restrictions at least gets you most of the way there, it's better than other encodings if you need worldwide support though it has recognised issues with more complex character sets.
Apparently you should use an infinite-length Unicode-compatible textarea with no validation whatsoever. I think the point is that it's wrong to think you can validate names.
But should we really worry about the 0.01% outlier who has seven different names, each consisting of some kind of personal scribble that changes depending on the phase of the moon?
More on topic, why should official systems allow for names of arbitrary length? Obviously your 1800 character preference for last name is not going to fit on all standard forms of identification. A standards-compliant name should be issued and you can use your preferred name for personal matters.
The real issue is that too many programmers apply their own cultural norms to the issue of naming, in ways which privilege their particular culture at the expense of others'.
(You want to be able to identify people uniquely? Fine: allocate them a globally unique ID string within your own system. Then let them link this to whatever the hell they want -- be it an Anglophone forename-middlename-surname string sequence, or something entirely different that fits their cultural requirements. Once you get into designing a procrustean name storage architecture and insisting that everyone uses their true name, then you are inflicting your own culture's naming requirements on them, which is offensive at best. Especially when it isn't necessary.)
Sure. You go ahead and create a "culturally sensitive" system that allows people to create randomly changing names based on multiple character sets and unlimited length. On an infrastructure that was put in place in 1980 with a minimal budget just to get something running quickly because it was supposed to be temporary.
Most systems aren't going to be built with infinite flexibility. Some might argue that wouldn't even be possible. And perhaps it has absolutely nothing to do with the programmer's own cultural norms, but the system they are programming on, the budget they are dealing with, and their level of competency. Not every action that is offensive to a particular group is done deliberately to offend that group or even with the knowledge that it could be offensive.
Meh. The .01% comment is perfectly relevant. Should the system be re-organized from the ground up and new licenses issued to everyone in the USA to accomodate last names of her length? I can't wait to carry around my postcard size license in my back pocket.
The system was written to work for the 99.9% of users it serves, the other 0.01% will unfortunately have to deal with the problem of being outliers.
Wrong. My argument is that there are constraints we have to deal with when programming. Those constraints make it difficult or impossible to investigate and satisfy every possible naming convention on the planet. If you happen to exclude some possible naming scheme or the one character set system you're working with won't tolerate much flexibility, that doesn't make you an offensive, rude human. And if you happen to make a judgement call and limit naming flexibility to a certain reasonable expectation, that also doesn't make you an offensive, rude human. We are under no ethical obligation to expend orders of magnitude more cost and effort to satisfy orders of magnitude fewer individuals. There's a limit. Flexibility isn't free.
It's only non-deliberate while you are ignorant of their problem. As soon as you are, it becomes part of your equation, and you're liable for underestimating its importance.
Where's that quote about lack of empathy masquerading as "brutal honesty/pragmatism/anti-PC-ness"...
But that's culturally insensitive to the Anglophone forename-middlename-surname string sequence, which cause users to expect "Zebediah Anderson" to sort before "John Smith".
There's no such thing as a free lunch. Optimize for the use cases you expect: if you're making a phone book for middle America, that's a different problem than a social network for Russia.
Requiring people to remember their ID numbers reeks of prison and/or Hitler; that would be substantially more offensive than asking people to do business under a name that can be entered on a keyboard and matched without cutting-edge image processing algorithms.
You're right, thank god US citizens aren't given a unique number at birth that they'd later need to attend school, get a driver's license, buy a house, or get a job.
Social Security Numbers are applied for voluntarily by the parents of the baby. Usually the hospital puts together the application from what I understand, but the parents can request that the hospital not do that. If a parent makes such a request, they usually have to educate the nurses that Social Security Numbers are not required by law, and are voluntary. If required for taxing purposes, a person without a Social Security Number will have to apply for an Individual Taxpayer Identification Number (ITIN). There is even a process to remove yourself from the Social Security program once you are 18, or convert to a religion that does not approve of it.
I would also venture to guess that not having a SSN or even an ITIN to use in place of the SNN is an automatic disqualification for attending school, getting a driver license, buying a house, or getting a job.
That's needed to verify unique identities when doing specific official business with institutions. It's not what's going to show up when you log into your work computer, send an email, use Facebook, or any of the thousands of places that computers use our names.
> People’s names are all mapped in Unicode code points.
At this point we've gotten into absurdity. Yes, supporting Chinese people and Hawaiian people with superlong names and people with first/last vs last/first or hyphenated or non-alphanumeric or whatever... all the stuff that can be supported with a single string of UTF-8? That's all reasonable, and there's a very real progrem with programs that don't support those kinds of names.
But going over the line into names that can't be expressed in any form of text known to a computer? At this point, the ludicrous exaggeration is only barely further than the silliness included in the "Falsehoods" list.
He's not mocking "you have to support a half-German half-Chinese person who was raised with an Inuit nickname". I'll happily support Prof. Dr. Ms. 陳 (ᒥᓂᔅᑕ) Wolfeschlegelsteinhausenberdorft III. That's fine.
But the "Falsehoods" article says that isn't enough, and is pretty much describing "seven different names, each consisting of some kind of personal scribble that changes depending on the phase of the moon".
Normally I'm the first to complain about racism and those kinds of insults, talking down to people who are just too much trouble to bother with. But that "scribbles" comment is literally outlining the lengths the article describes.
Did you read the link in cstross' reply? I'm not mocking anything. Some combination of those rules would actually require this type of naming situation.
Did you really just rationalize this using a blog post? To quote #36 on the list you are referencing: "You’re kidding me, right?"
Scribble: to cover with scribbles, doodles, or meaningless marks. Names aren't meaningless, and TMK names don't change depending on the time of month. By phrasing things the way you are, you are making generalized (and fictitious) blaming statements about something that is very personal. And you got called out on it.
This entire sub-thread is a reply to part of my response that is centered around that blog post, so yes, I rationalized it using said blog post. Did you really just ask that question because you wanted to pretentiously infer some kind of unreasonable rationalization?
Addressing all of the issues on the list pretty much boils down to accepting a scribble as a valid name. And if you are going to accept point 8 on the list that people's names change at any non enumerable event, then that is just as difficult as a name that changes based on the phase of the moon. Worse, actually. Moon phases are at least predictable. The point is, I'm creating a plausible scenario that fits the suggestions in the list. It is not necessarily fictitious, and it is absolutely in no way worse than the list's expectations.
Please identify how I made any type of "blaming statement". If you're going to call me out then go ahead and call me out. As far as I'm concerned I've been accused, not called out.
The "scribble" may have been given meaning by becoming this person's name, but if it's not in any character set, it probably doesn't already have meaning as a character in any known written language.
My wife took my surname when we married, but rather than hyphenate she decided to go with a space. Although the names are each quite short (e.g. "Jones" and "Smith"), this has proven to be a significant challenge for our bank, and even on her drivers license (which compressed her name to JONESSMITH). It never occurred to either of us that a ten character last name with a space in the middle would be problem to anyone other than people who want to cite her research.
It never occurred to either of us that a ten character last name with a space in the middle would be problem
Really? Because a space is commonly used as the delimiter between first, middle and last names. Wouldn't you think that, at a minimum, there would be some ambiguity about whether Jones was (one of) her middle name(s) or the first part of her last name?
> A computer system that assumes that Wernher von Braun's middle name was "von" is ridiculous.
Of course, apart from using the proper name/title when composing a letter (something like Freiherr von Braun), which is easy if you know the ‘last name’, the computer system in question would also have to sort this guy properly next to Werner Braun.
But de, la, von, zu, and af are not themselves distinct last names. If fact it would be reasonable to assume there is case-sensitive logic in said fictitious computer system to determine what the last name is.
The following mostly-identical names read very differently:
- Sarah Anne Jones Smith
- Sarah Anne Jones-Smith
- Sarah Jones Smith
- Sarah Jones-Smith
That may be your experience, but it's not universal. My surname is 'Van den Brande' (yes, capitalized like that please). It's a very, very common name, pages and pages of it in the local phonebook. My daughter's surname is 'Van den Brande - Isaacson'. It would be nice if programmers could get it right, it's just a string after all.
(PS Not our actual names, but they follow that pattern).
Here's mine: "[FirstName] [SecondName] e [FirstFamilyName] [SecondFamilyName]". That article ("e") in the middle gives me trouble all the time. First time I went to NYC I got asked by the passport guy what that "e" meant. I told him it was just an article connecting the first part of the name to the second. He didn't really believe me and started asking if it meant something like Edward. After a couple of minutes trying to explain it's not that rare in my country he let me go.
Seems easy enough, right? They don't have one big field for [ANN BETH SMITH JONES] and then try to guess what name is forename or surname.
Some systems don't like hyphens, or don't like spaces, or appear to accept them but silently drop them kludging the two names in SMITHJONES.
Add the 'scunthorpe problem' and things get even more frustrating.
One of the Google feedback pages declined my feedback because my (legitimate, linked to my Googlemail account) email address and name contains "Cocks".
Google+ currently even chooses to disbelieve that a person's first and last names can be the same. Oddly, this wasn't the case a few years ago, since I managed to create an account with my real name, then. Trying to consolidate all my accounts under one failed recently, though.
This doesn't work for people with suffixes very well, or with the "last name" not being at the end. Back when I was into genealogy a lot, about ten years ago, the "family name" was typically indicated by slashes. So in that format I am "Christopher Mark /Gore/". Your example would be "Ann Beth /Smith Jones/". It also works for people like "James Michael /Smith/ Jr." or "/Kim/ Jong-il" or "/Kim/ Il-Sung".
Spaces are also common in last names. Among our friends and neighbors we have surnames like La Rosa, Van Meter, Del Toro, Di Giovanni. We expected that there would be ambiguity around whether the two names were middle and last, and even joked about the poor grad students trying to figure out how to cite her work. We did not expect that major institutions (like the state we live in or a multinational bank) would be incapable of storing a last name that contained a space.
> ... is commonly used as the delimiter between first, middle and last names...
Where? Everywhere in the world?
Anyway, I thought that the reasoning that a customer could not be served because address or name "does not fit into the system" were frowned upon since the time of COBOL mainframes, but seeing this whole thread with its resort to a hyperbole of "0.01%" cases is a welcome contrast to the otherwise high aiming goals plastering the homepage of this site.
It's great seeing all the replies about how systems should be designed to handle this situation. But given the scope of the pedantry, it's surprising that my point was missed.
That point being that I was surprised that it wouldn't even occur to someone that there would be some difficulties with this in the world in which we currently live.
Here in semi-small-town USA, I hear a couple traffic stops a day with spaced double-lasts on my scanner. They're quite common, and don't give the cops, dispatch, or the Washington State DMV any trouble at all, even in the company of a middle name. Why would you expect something so mundane to be problematic?
Apparently because I have a more realistic expectation than you of the limitations and annoyances of many of the things encountered in day to day life.
That would have surprised me as well. I would've thought that at least any combination of ascii letters and spaces up to a certain length would be fine. It might piss me off enough to change banks.
>why should official systems allow for names of arbitrary length?
> A standards-compliant name should be issued
>More on topic, why should official systems allow for names of arbitrary length?
These are really incendiary statements (a local may accuse you of being insensitive[1]) that places the fault of the issue on the aboriginals of Hawai'i for observing their traditions rather than the programmers who should have known better. From what I understand DB's get re factored all the time and if the drivers license can fit her name I fail to see the issue.
It can fit her name; however, the way they stored her name in the db cut it off by a few letters or so. Your reading comprehension doesn't seem to be very good.
Agreed. For those of you who are offended, do you provide a graphics tablet, AutoCAD, 3D printer, reference-quality microphone, synthesizer, full spectrum analyzer, and every instrument known to humanity every time someone needs to be identified by your software?
If we can't expect the name to be in a character set, why can we expect it to even be two dimensional? What if it's an object? What if it's a sound that Western voices can't make without years of training, ala Tuvan throat singing, with no written form? What if it's a sound that needs to be played on an instrument known only to the person's tribe/nation/whatever, and the only one in existence is a family heirloom halfway around the world? What if it's something like a particular pattern of brainwaves created by meditating a certain way? Maybe a little extreme. There's an African language which is primarily location-based. People are raised from birth with an extremely accurate innate sense of spatial position through dead reckoning. Greeting someone and identifying yourself requires specifying your location and the direction you're facing. Fascinating stuff. There's a great Radiolab segment about it: http://www.radiolab.org/2011/jan/25/birds-eye-view/ So is it racist to choose a column type for holding names that isn't designed for GIS? If you did, isn't it racist to use a system based on Cartesian coordinates instead of the native way of representing locations?
My point is that you cannot possibly cover all the edge cases for the ways people identify themselves, and calling that offensive is just silly. Giving people identifiers that you created is also offensive - that's prison/Nazi crap. So what do you expect us to do?
A blank box in the character set of the primary language(s) where the application is used with zero validation and zero transformations is a reasonable demand. Calling it racist and offensive to fail to cover every edge case is a bit of a stretch.
1. Yes, this is sometimes known as discrimination.
2. Yes, you have no way of knowing the size of the market if you are excluding them - this may be disguising a group that's significantly larger than 0.01%.
3. Yes, if you cater to these people when your competitors cannot/do not, you have a captive market.
4. Yes, everyone is 0.01% in some fashion - if you continue to apply this reasoning, you will eventually exclude everyone other than yourself.
1. We discriminate all the time when building systems with finite resources and there's nothing wrong with setting reasonable limitations. Just because you use a politically sensitive word doesn't automatically make it wrong.
2. If you want to argue for an arbitrary budget increase to satisfy an unknown market size that may be larger than 0.01% whose requirements are drastically different than the others - go for it. I'm not going to do that.
3. Congratulations, you win the possibly larger than 0.01% market that I ignored. In the meantime I've iterated on several other useful bits that the vast majority of users care about.
4. The number of input fields in my dataset isn't infinite.
I think your tone is a bit condescending towards people who have names that don't fit our norms, but to some extent I agree with you. Let's be honest, for every person with five hundred characters in their real name there's going to be a thousand people who accidentally pasted a bunch of text into the wrong field, and at least ten jackasses who are just trying to see if they can break your app in some interesting way.
Accommodating everybody is a pretty tall order (see: Prince). Where's the appropriate place to draw the line?
To be fair, these often are coming from business requirements.
Half the times it's "falsehoods a programmer back in the '80s believed about names and I have to operate with that goddamned system".
That and we have to support all the cavemen that want to sort by last-name. I'm perfectly happy to just use one 1000-length UTF-8 field for names and skip all the stupid abbreviations and worrying about firstname/lastname, but for some reason the BAs insist on supporting "Mr. So and so" and being able to write "Lasty, Firsty" as if that is in any way useful when you've got a searchable document.
I suppose you might occasionally need the Lasty, Firsty when printing into dead-tree-form, but when have programmers ever cared about that?
Yes. My preferred name for example, is over a million million characters. You have to accomodate me. How is it my fault that you don't have O(ln) complexity on your string comparisons, or have trouble swapping out a gigabyte or two and are trying to keep it on the stack.
I identify very strongly with mathematics, so I have chosen my name to be the full expression of pi. I will not reproduce it here, since the HN servers lack the appropriate storage to contain it.
I am a U.S. citizen who recently moved to Japan. When I entered the country, my first and middle names were combined to create a 20 character given name that appears on my Japan-issued ID.
Ignoring the more common issues of computer systems not accepting non-Japanese names, it has been a bureaucratic nightmare, struggling with applying for credit cards, opening banking and investment accounts, and linking things together, as each system has different lengths limits for names, and in some systems my name is input as Unicode "double width romaji", which in some systems will not match the otherwise identical ASCII version of the name.
I truly wish I was offered the ability during immigration to just drop the middle name, but even then my first name is longer than some systems' 5 character limit, where I am often put in as "Cortl".
The double-width latin characters are the bane of every data analysis using Asian data. It's a roll of the dice whether any given Latin character will be in typical ASCII form or double-width form.
I'm sure there's some "seriously insensitive character comparison" library out there, but it's not built into my SQL server's "LIKE" operator, that's for sure.
You would probably be able to normalize all your strings before putting them into your database. You'd lose no functionality unless at some point later you really did need to distinguish "C" from "C".
I had a similar problem. I have a Brazilian name which means I have multiple middle names which normally means it can't fit in the required space.
When I renewed my UK Passport they just decided to lose one of my names. I was furious, but it became clear I'd need to go through administrative hell to correct it, and I needed the passport at the time.
Some time later, I've just given up on having my full name. I prefer just to give out a firstname lastname and ignore my middlenames. Its just far too much hassle to go through. As far as I am concerned, I have an external name which fits in ASCII and complies with anglo-centric formulae and an internal name which doesn't.
Thats just my personal choice though. My sister is defiant and managed to get her full name on by demanding that it was an unhyphenated triple barreled surname.
Is what your sister claimed sort-of correct anyway? An English middle name is generally a given name that can perfectly well be totally unrelated to family history.
It's my understanding that Brazilian (and Portuguese) "middle names" are usually if not always family names, are they not?
Insisting that they are part of your surname sounds like it might be the easiest way to get it accepted - it is common enough in Europe to have surnames with spaces. E.g. a Dutch surname like "Van der Vaart", or "Van Helsing", so it's quite likely various agencies etc. run into that often enough.
It's quite usual to have two family names, one from your mother's side and another from your father's. Usually the father's family name comes last, but it's by no means a rule, more of a social norm (and somewhat fading).
Additionally, it's also perfectly reasonable to have two or more "first names".
The consequence of all of this, and having four names myself, is that I'm always confused what I'm supposed to fill in as my first and last names. I end up using just my very first and very last, but i always feel like I'm being disrespectful towards my mother's family for the omission.
Something similar used to be common with the english too. My great-great-great-great grandfather was "Thomas Tindall Gore", and Tindall was his mother's maiden name. This sort of thing was quite common all throughout the 1700's and 1800's, but seems to have went out of style in the last hundred years or so.
I actually assumed, well into my teenage years, that people's middle names were their mother's maiden name, as that's the case for me, my sister, and my cousins.
Another interesting one I would see a lot is <mother's father's name> <father's father's name> <last name>.
For example, My dad was Charles Marvin Gore.
His mother's father was Charles Maltbie.
His father's father was Marvin Gore.
I don't think I ever saw the two modes combined though, so no example of a Charles Marvin Maltbie Gore. Although that is just in my family. It might have happened in others.
As the sibling comment says, yes she is sort-of correct. Our names are in the format:
<First name> <Middle name> <Grandmothers first name> <Grandfathers first name> <Surname>
So its kinda like a family name, but its not like everyone in our family will have the same family names. My cousins don't share any names with me as they are named after different people.
It causes trouble insisting they are all part of your surname. She recently had issues because the officials dealing with her medical exams assumed only the last name was a surname. So she had call and find someone with the necessary authority and present her birth certificate to get them to cancel the previous transcripts and issue new ones under the correct name.
I have a similar but different problem--I have 3 names, but I go by my middle name. Every form that I have to fill out has a "First Name", "Middle Initial", and "Last name" section and I cringe. I eventually just dropped my first name completely and now fill things out with my middle name in the "first name" section and skip the initial as if I don't have a middle name.
Except for my driver's license which the government insists match my birth certificate. Which hasn't been too much of a problem except always having to tell cops my name is "David" when I get pulled over. Recently, though, the TSA has been getting all stressy if you don't have your exact name on the boarding pass. I've still been obstinately refusing to do that–They just keep telling me "next time use your real name". Yeah, ok.
I do wish the world accommodated me better, but I know I'm an outlier and don't expect it to.
Brazilian here, and I repeatedly have the same problem. To complicate matters, my documents have my middle name as a first name, which means officially I have two first names. When I went to get a driver's license in WA, the system would generate a bad license ID because of that, and they had to do some manual patching or something to make it work.
I also have two last names, which makes it a pain every time someone asks for my last name. I always have to explain I have two of them and sometimes people are puzzled by that.
If I stay in the US indefinitely and eventually get citizenship, I think I'll change my name and drop one of the first names and one of the last names :P
Indeed. Brazilian names can be huuuge, with lots of parts. It's really rather amusing, when someone applies for a credit card or whatnot, to see what parts the credit-card company decides to include/initialize/exclude to fit. It's pretty much up to their bank's whim.
But in Brazil, I've never once heard anybody complaining that it offended their heritage, or that their "name means everything" -- it's obvious and common sense there's only so much space on the card.
As Portuguese that lived in a few European countries, I already had my share of having to choose names to leave out of cards due to lack of space.
Additionally it is always fun (not) when you need to use one of those cards together with the ID card, while trying to convince the clerk or police that although some names are missing it is your card.
Sounds like something just got messed up when they renewed it. I'm from the UK, and have two middle names, both of which are on my passport and drivers license.
Its a space limitation. I have three middle names. My middle names take up 26 characters so I think its quite reasonable that it doesn't fit given that most people don't even have a middle name in the UK. I remember I needed to attach extra paper to write it all out on my passport application.
On my Passport they lost my last middle name. On my Drivers Licence they intialised two of my middle names but kept the first one. One bank dropped all my middle names and another decided to initial them all. I think its up to the particular admin on the day how to deal with it. I'd much rather it was consistent across everything, because that way "What is the name on your credit card?" doesn't end up being a trick question.
Let's for a minute assume that we as developers will be able to agree on some sort of best practice. The "Falsehoods" article and the W3C page mentioned in the comments are good, valuable resources and I really hope developers across the world will take them into consideration.
Then it is time to show your form to the client and he/she goes nuts!
"People must enter their full name". Okay they can just write their full name into this text input. "No they must enter both first and last name". But not everyone in the world has a first and last name. Icelandic people? "Just require a space in the name". Like nobody in China has? "Don't argue with me, I am the client, require a space!!!ONE!"
It's discussions like these I feel I can't really win. Most clients aren't technical, they are chock full of assumptions and they are not paying me to argue with them, they are paying me to require first name and last name and quick!
I understand that education needs to happen but there are limits as to how much education your client accepts from you before he goes to a different shop.
I try to explain to my clients that one of the advantages I bring (one of the reasons they pay me the "big bucks") is that I have knowledge about these kinds of things and I can bring that to the table.
Of course, that means I have to be judicious. I am NOT going to tell the US bank that I work for that they should support people without a separate first and last name when that is FAR more rare among their customers than people who type wrong and SHOULD have entered a space, so checking for a space will annoy 2 customers while protecting 1000 from stupid typing errors.
Iceland has both first and last names, afaik. It's just the inheritance (first name + suffix becomes child's last name) and sorting that changes (usually by first rather than last name).
China has first names and last names too. I don't see why that client is a problem. Especially since I'd have no idea how to isolate the family name without having multiple fields or a space. It seems like either half could be 1-2 characters, so what do you do with a three character full name?
I love the level of ignorance in the comments on that article. e.g.:
> I doubt she can even pronounce it.
or:
> I am surprised her first name is Janice? She should change it to IamsofullofmyselfbecauseIamsospecialbecauseImarriedahawainman.
...and the list goes on. Just because your heritage has shorter names or names that don't sound anything like hers doesn't mean your culture is "right" or something. People need to learn to be more open-minded.
I've tried to promote one of their suggestions -- having just one big name field, plus another for "How do acquaintances address you?" to let the user enter what they want to be called in an email greeting. So far, not one employer has gone for it. Just too radical an idea -- to let the user self-identify.
The one I've considered adding is: "How would people would expect to find you in the phone directory?"
Which covers the Icelandic given-name first scenario, as well as the matronymic vs patronymic issue. This puts the person in control of what to sort on, while how to sort it would be controlled by the active user's culture settings.
I've work with names and other demographic data darn near my entire career. I've also had name issues due to the length of one of my names.
Things are better and more accommodating than twenty years ago when every byte was precious. But some cultures and individuals get ridiculous. I'm not allocating 400 characters of space in a standard name field just because you want to include your family tree, PGP key, DNA sequence and homeland geology in your name. (I will put this in another table, and link it relationally so the software and the people can access your true name.)
Yes, who cares about those ridiculous cultures. Why can't they just use normal names that can be represented by 10 or fewer ASCII characters like the rest of us? They're just being difficult.
Software can be made to be very accommodating. Most systems I work on allocate a 50 character nvarchar for a full name, various fields for prefix, first, last, multiple middles, suffix, maiden, titles, informal salutation, aliases, nick names, gender change issues, etc. And various flags and other fields/tables for exceptions, notes and warnings, etc...
But you wouldn't believe the bad data and crap people put in name fields unless you've worked with a huge number of sources over the years. I've seen every bad variation possible. And that's not including address fields. Or combined name/address fields with multiple names and multiple addresses in the same record with a complexity that would vex a dyslexic Talmudic scholar.
> But some cultures and individuals get ridiculous. I'm not allocating 400 characters of space in a standard name field just because you want to include your family tree, PGP key, DNA sequence and homeland geology in your name. (I will put this in another table, and link it relationally so the software and the people can access your true name.)
This attitude boils down to "I write software that is easy for me to write, not easy for you to use." Why should any user want to use the software a developer that is hostile to their existence?
The key is obviously to make some trade-off between usability and difficulty during creation. If the software is never finished because running test cases with 10e10 chars-long names takes too long, users won’t even be given the choice of not using it.
That said, I’d love to have my PGP fingerprint on my ID :)
I've a more detailed comment below, but the issue isn't new databases per se, but the huge number of legacy systems out in the world. I have no control of those, I end up building software that has to work with them and help the users and their clients.
You deal with questionable quality data that comes from hundreds of different systems running software that may be decades old with demographics from around the world that may have no common conventions. And you fight for the extra disc space and processors to handle an extra hundred characters per record, because with a huge number of records, even that may cause issue with storage, backups and time to process.
And yes, I have to write code to deal with all of the "Little Bobby Tables", too.
As much as I want to agree, there needs to be some standardization. Whether its the supported character set or the name lengths, it's literally impossible to support everything. Personally I think every state should have a list of legal constraints for a name - maybe they already do.
For god's sake. It's just a piece of paper. If a name is too long for it, well, damn, spend some additional time and customize it and print this one special id.
This. Whether for this specific case or in general, the rigidity of these sort of governmental/administrative systems dehumanize us. We are engaged in a conversation about the standardization of names, about applying limits to our given, or chosen names because of? What? Suppressing cultural or personal identities...why? So everyone can parse your name on an ID?
For a community that routinely cries out against national ID laws and champions the right to anonymity, many of the comments on this thread surprise me.
It's the implementation of this that's the difficult part.
You also need to standardize how names are canonified into these legal constraints for when someone moves into the state.
Worse, there are lots of expectations that your state and federal IDs will have matching names (or at least, names that match in the ways people expect: First and Last, with some leeway for a middle to not be there at all or be truncated to an initial).
See also this discussion of naming in Japan for the difficulties people run into when there is a system with both Nicknames and Legal Names:
https://news.ycombinator.com/item?id=6145768
Hawaiian is one of Hawaii's official languages (the other being English). Drivers licences in Hawaii are issued by the state, so they should have to support the Hawaiian language. In effect, the state of Hawaii has already come up with standardization: English or Hawaiian.
Hawaiian is written in the Latin alphabet, like English, so supporting the language is not the problem.
The length is the issue, and that's more a cultural issue than a language one. (English names could also be very long.)
If Hawaiian names are typically very long, then this could be interpreted as a cultural bias against traditional Hawaiian names. However, in looking around for Hawaiian names, it does not seem that they are typically so long.
There is not enough information for me to get a sense if this is discrimination on the basis of cultural, or a one-off case.
In the Hawaii Tribune-Herald, they publish baby names. For September 23, there was a boy named Tyren-James Keolapulamamekaha‘aheookekaimalie Viernes. His name wouldn't fit on the Hawaii State Drivers License. Neither would Kainoa Kamakanaiho‘unamaikalaniakeakua Azaziah Espaniola Branco's full name.
Hawaiian is partially written in the Latin alphabet, but it also includes five vowels with macrons (the kahako) and the 'okina for glottal stops.
I thought that some people were just sending comedy names because, well, that's what some people do.
But some parents aren't joking around:
> Four years ago, a 9-year-old girl was taken away from her parents by the state so that her name could be changed from "Talula Does the Hula From Hawaii."
> A family court judge, Rob Murfitt, gave the order after hearing that the child was embarrassed about her name and had refused to reveal it to friends. "She told people her name was K because she feared being mocked and teased," the child's lawyer, Colleen MacLeod, told the court.
> The judge criticised parents who give their offspring bizarre names, saying it exposed children to ridicule among their peers.
> "The court is profoundly concerned about the very poor judgment that this child's parents have shown in choosing this name. It makes a fool of the child and sets her up with a social disability and handicap, unnecessarily," he said.
My full name is "Fırat Batuhan İçöz", it is 17 characters (including the space between my first and middle name). And Twitter didn't have a problem with it, when I used my full name in the past.
And just tried adding my first name again, it works.
On most days start-up programmers think about carving out a solution for a large enough serviceable, available, market. Time to market matters. Mark it as an open issue and move on. Etc. On other days, programmers are advised that it is culturally insensitive to leave anyone behind. People are mock-scolded that if they don't allocate their efforts to the 0.01% subset of their name system, they are bad people, whatever start-up dream they had.
BTW, my family used the Scandinavian "-sen" system of naming, until the government told everyone they had to stop, that heritable names made tracking easier. I'm one of the thousands/millions of people worldwide locked in as "son of Jens."
She should live in India, all her identification cards will have shortened names automatically because the data entry operator names the citizen here and not parents. I have so much trouble with Isaac and Issac :(
That reminds me that SAP has yet to respond to my question "Is SAP Business One not sold in Sweden". For some reason it has been decided that 50 characters are enough for a field that contains first middle- and last- name. Normally you can just deal with the extremely long name when and if they occur, but 50 characters is pushing it a bit.
I've had arguments with people in the past about this sort of thing: names are overrated and not a unique identifier. If the UID on the identification card matches the info in the system, the card ID is valid and up-to-date, the face matches, and the name is close, it's a match.
Similarly: here in Iceland your official full name cannot exceed 32 characters, including spaces, due to legacy database constraints. It's retarded and has been highly debated recently.
On a tangent - NP really need to obfuscate those ID's better. Pixellating is pretty readily reversible - you just need the base card image (find it or shop it), and you can then brute-force by iterating through numbers/letters as needed for each field, pixellating, and comparing the outputs.
Edit: in fact, as they've included two images with the same info, pixellated differently, you could almost certainly heuristically solve without brute-forcing. Eigenvectors, baby.
I wonder if you did reverse out her name if it would have all the right characters in it, and if it didn't, what sort of changes to would make her family heritage in the process? :)