Falsehoods Programmers Believe About Names (2010)(kalzumeus.com) |
Falsehoods Programmers Believe About Names (2010)(kalzumeus.com) |
Also, Armenians didn't have last names until recently, so you'll meet lots of people with names like "Gevork Gevorkian" or "Ohan Ohanesian", or their name will be shifted to the right, adding an "ian" to the end (think the prefixed O' in irish names), and give them anglicized names.
Some of our software didn't like that, so we checked her passport, and sure enough, her full name was merely her first name.
This bugs me, because if a name is supposed to be a unique identifier, then part of it's existence is to feed the ego. "This is ME! I am Jean Valjean!"
When you then you change somebody's name to fit your short-sighted database constraints you're pretty much saying, "You don't matter as much as our programmers' decisions matter, now move along 9430"
Falsehoods programmers believe about addresses: https://www.mjt.me.uk/posts/falsehoods-programmers-believe-a...
Falsehoods programmers believe about time: http://infiniteundo.com/post/25326999628/falsehoods-programm...
Fell free to send pull requests! :)
35. The rate that time passes at one point in the universe is the same relative to any other point in the universe.
I once talked to some co-workers of mine who doubted that relativity is real.
https://news.ycombinator.com/item?id=11370046 (1 comment)
https://news.ycombinator.com/item?id=10255610 (13 comments)
https://news.ycombinator.com/item?id=10094603 (1 comment)
https://news.ycombinator.com/item?id=9239656 (3 comments)
https://news.ycombinator.com/item?id=7365517 (2 comments)
https://news.ycombinator.com/item?id=4079837 (5 comments)
https://news.ycombinator.com/item?id=1438472 (138 comments)
Also:
https://news.ycombinator.com/item?id=8909878
https://news.ycombinator.com/item?id=7063812
She suffered quite a bit, any call to a government agency, especially FASFA student loans (btw fuck you FASFA, fuck you), would often end up in tears after hours of pleading to them she was a real person, or explaining "just freaking search me this way, it's how they did it the last time I spent 2 hours on the phone with you). The only benefit is that having only one name makes it rather difficult to google/facebook stalk you.
tl;dr: Not everybody has a name like yours. Don't use "first name", "last name" for somebody's name. Just give it a 512-byte or larger UTF8 field, and move on.
Basically do you want the the string returned by name.split()[0] or do you want the string which is the most commonly used identifier for me?
E.g. if they want a display name, they should ask for a display name. Most of the time people need only a few different roles, and you can always pre-populate default values based on doing a simple name split and letting people suggest more approriate alternatives.
Upside is that asking for specifically what they need addresses other concerns, such as e.g. parents signing up to something on behalf of their children, or someone needing to put another name of a shipping label.
Name on Invoices John Miller, PhD John Miller, PhD / Ocean Drive 13 / Tahoa 12345
Name for Phone Calls Mr. Miller Hello Mr. Miller, how may I help you?What if I decide my "name" is the first billion digits of PI? Are you going to add that to the list of names that you need to support? No?
names are central to our identities
I have never experienced this.- https://news.ycombinator.com/item?id=1438472 (138 comments)
- https://news.ycombinator.com/item?id=10255610 (11 comments)
We design apps to collect names by default, even when we don't need them and will never use them for any purpose, or at worse, the purpose we use them for is violation of privacy.
In economics, people talk about the problem of 'sorting and labeling' and how that is an unconscious reaction (which does unfortunately lead to bias) but it helps immensely in the overall productivity of an entire system.
When people expect you to design special systems which increases the overall entropy, I wonder if they realize that you too incur a cost for creating that system. I say this as someone whose name is constantly butchered during my dealings with American entities, and I am not generally asking them to modify their system to accommodate my name so it remains unaffected. Thankfully, in most cases, I actually have a choice of whether I should continue having dealings with such entities. (I don't know what happens in cases where you don't, like, say the DMV).
That is the wrong way to handle this. You don't have to support everything in the list. If your product is only for people in America you can expect them to have a name written in latin letters. You can ask them for a surname and a given name, and they will be able to fill it in, but may be slightly annoyed. You should allow apostrophes and accented letters, but it's really not hard these days with UTF-8. ASCII is too limited.
As you support more countries you will need to support more kinds of names.
At least in the states, legal regulations on names vary from place to place. In the state of Texas, if you're a lawyer, you are legally required to tell people this, most commonly done by adding the Esq abbreviation for Esquire at the end of your name. I have a friend who's official name (of course I've obfuscated this) is "Dr. Firstname b. Lastname PhD, Esq.".
How many latin letters are there anyway, 26? 600? I read the latter number in an essay on what typesetters used to keep. Is ' an English letter, as in O'Malley?
While designing or refactoring an app, ask yourself, "Do I really need her name or address? Will I risk their privacy and security if my database is compromised? What will I do with this information? Will I sell it to advertisers, or will I ignore it? Will I alienate any potential customers by following the first-name last-name standard?
Really, this has me thinking, WHY do we have a last name? It's basically nationalism for families. "I am Eric, the son of John Smith!" .. So what? Who cares what your family's name was? Think about it. The only time anybody has ever addressed me with my full-name it was in a government context. Are two names really required for a UUID? Why only two? Why not four?
If you need to make you address pretty much free form anyway, it makes practically no difference to ask people to put their address including name. If you ask for a name, the problem is that the name they may want you to use in other contexts is not necessarily the same name that people they live with will recognise them by.
E.g. consider a trans person that want you to know them as one gender, but isn't out to their family.
The safest in general is to not ask for "just" a name, but ask "what should we call you in context X?" but in many cases you can forgo the name by not synthesising data items (such as an address) from multiple parts, but letting users provide the whole thing as one entity (you can still pre-populate based on most common patterns), which as a bonus saves you from other stupid mistakes.
When you store it as a single string, which order will you choose? Will you have delimiters between them? Would they still be in effect when the person's name has more than 2 parts? If you are ever in a situation where you need to sort by name, will you do it by first or last name? What if there is a need for the other option to the one you chose? Can you reasonably guarantee that you can identify family members if you ever need to? When the customer tells their name over the phone, will it slow down your customer service people if you display the entire name in a way which they are not usually familiar with?
2. Sort by the whole thing
3. No you can't guarantee identifying family members any more than with a first name last name system. If you need that it should be an additional part of the system. Presumably for the 90% of people who does have a typical first name, last name combo you can still identify family members in the same way.
4. Just introduce free text search for this field if you need to find people.
But suppose you are working at a place where people are keen on getting 'smart with the data', your replies do increase the entropy if only to the extent that 'we have this idiot programmer who thinks he is too smart to use first and last names as we have always done and is breaking all our reporting systems and is causing hell for our customer service agents'.
:-)
To add to my previous comment, what if two or more people from the same address are signed up for your service? How would you help them distinguish between the correspondence each one gets from your company?
> To add to my previous comment, what if two or more people from the same address are signed up for your service? How would you help them distinguish between the correspondence each one gets from your company?
By asking "what should we call you when mailing you?" (if you insist on a name field) or "which address (including name) should we use when mailing you?" You could then if you wish pre-populate any variation of name you might have on file for them in those fields; the point is that the more you focus on gathering the specific information you need for that specific context, the fewer wrong assumptions you will be making about what the user would actually prefer.