Live data from Hacker News

People with names that break computers

bbc.com

281–288 of 288 posts

Re: People with names that break computers

#281

Earlier quoted context omitted.

If at any point in the process they need to bill you for something, they have to ask for your first and last name because that's exactly what the credit card companies require. So there are use cases. Personally, I don't see why any company is asking for a name if they aren't billing you for something or they aren't a social network.

> they have to ask for your first and last name because that's exactly what the credit card companies require No they don't, they ask for a single field, name on card which is a single string containing everything on the card.

Sometimes I think Hacker News forgets the world doesn't start with LA and end with Miami.

http://developer.authorize.net/api/reference/

firstName

First name associated with customer’s billing address. Required only when using a European Payment Processor.

Re: People with names that break computers

#282

Earlier quoted context omitted.

For the database at least, I don't see why you need unit tests or any testing at all. Assuming that you're going to require at least two names (no single-name names allowed), then a string for First Name and a string for Last Name should be sufficient. If this is a decent database, where the string can have any Unicode character, including a space, and you don't set a limit on the string length (modern databases don'…

Your comment is a perfect example of the kind of incomplete and normative reasoning about names that causes systems to fail. The problem isn't that you're not careful, the problem is that your fundamental assumptions are based on incomplete knowledge. For instance, you mentioned accommodating Cyrillic letters, but you didn't know you'd need to include a field for patronym, which is not the same thing as a middle name…

No, I addressed this. It's really simple: you don't need fields for different names!! Just have a single field: "name". That's it. People can put whatever name they want there, using any character set. If they want a "patronym", whatever the hell that is, no problem, just stick it in there! If they want a suffix like a bunch of Southerners here in America insist on for some archaic reason (like "Jimmy Bob Dalton III" or "Joe Smith Jr."), no problem, just put it there.

For mailing addresses, this is all you need. Postal organizations do NOT care about your name, they just want your address and some kind of name as a check in case there's a delivery problem (or there's been a forwarding address filed for a particular name). Payment processors may need something more defined, but those are frequently more standardized by country, but usually, at least here in the US, all they care about is "enter your name as it's written on the card here...". They don't care about your actual name, they just want to match the string you enter with the string the credit card has.

Re: People with names that break computers

#283

Earlier quoted context omitted.

Websites that insist on forcing me to enter a first and last name always get abuse in the latter. What I call myself on websites is my business, not yours.

If at any point in the process they need to bill you for something, they have to ask for your first and last name because that's exactly what the credit card companies require. So there are use cases. Personally, I don't see why any company is asking for a name if they aren't billing you for something or they aren't a social network.

That would require the user information to exactly match the credit card information - which is dumb because it blocks a whole swathe of use cases (multiple payment methods, different person paying, paying by Paypal, paying by Apple Pay, etc.)

Re: People with names that break computers

#284
post #98

Earlier quoted context omitted.

Perhaps you should read, or if you have read, really internalize the "Falsehoods Programmers Believe About Names" link referenced above. Here's some choice excerpts: 5. People have exactly N names, for any value of N. 11. People’s names are all mapped in Unicode code points. 18. People’s names have an order to them. Picking any ordering scheme will automatically result in consistent ordering among all systems, as lon…

I already addressed many of these by just advising to have arbitary-length strings (and maybe just a single one). That takes care of #5, #11, and #20. I don't see how #32 - 36 are even relevant: your system should just take whatever name they give you. How long they've had the name is irrelevant (as long as you have a mechanism to change it). #40: Sorry, but how can you not have a name? Good luck getting an ID docume…

> Sorry, but how can you not have a name? Good luck getting an ID document without a name. That doesn't make sense.

That's what 32-36 are referring to, cases where children aren't given a name for an extended period of time. Even without extreme cases. what about a Hospital system meant to be used to track newborn children? It's necessarily not going to be able to rely on a name, because it's not uncommon for children not to be named for a few days. A system such as that might want to track the children by the mother, date of birth, and birth ordering (in case of twins, triplets, etc).

> This just sounds dumb: Unicode has thousands upon thousands of characters. Only with Chinese can I see this possibly being a problem, but even here I thought Unicode did account for that. Unicode was designed to have every conceivable glyph that every language on Earth uses.

Just because it was designed to accommodate every conceivable symbol, doesn't mean it currently has every conceivable symbol. What about the symbol Prince used for his name[1]? What about a language that's not in Unicode yet?

> There really isn't that much to it: you need to have two strings (and one can be null as I said above)

If someone has a single name, does it go in the first name, or second name spot? Is this enforced, and where?

It's not that you won't generally be served well by your suggestions, it's just that the problem space is complex enough that it's worth thinking about a little before falling back on that. It might be that you don't even need a name, or only need it for billing, and your requirements may change depending on what payment processors expect (is it okay to just save a single string for whatever full name they submit?) These are all worth giving a little thought to up front, because changing the schema after it's in use is always harder, and that goes both ways, Splitting a string into multiple name parts is hard for many of the same reasons listed here.

1: http://parkerhiggins.net/2013/01/writing-the-prince-symbol-i...

Re: People with names that break computers

#285
Speaking of web form, I always think it's more 'universal' to use 'Given Name' and 'Surname' instead of 'First Name' and 'Last Name'. Many languages (Chinese, Japanese, Korean, etc) put surname in front of given name. Your thought?

Re: People with names that break computers

#286

Earlier quoted context omitted.

Might be a factor of certain systems. I was registered with NMI (not having a middle name) on IBM computers in the early 1970s. Not seen it since.... We were still using punch cards back then.

Star Trek memorably listed LT CDR NFN/NMI DATA, see the screenshot at http://memory-alpha.wikia.com/wiki/Data (third from the top, on the right).

Ah, thanks!

Re: People with names that break computers

#287

Earlier quoted context omitted.

I already addressed many of these by just advising to have arbitary-length strings (and maybe just a single one). That takes care of #5, #11, and #20. I don't see how #32 - 36 are even relevant: your system should just take whatever name they give you. How long they've had the name is irrelevant (as long as you have a mechanism to change it). #40: Sorry, but how can you not have a name? Good luck getting an ID docume…

> Sorry, but how can you not have a name? Good luck getting an ID document without a name. That doesn't make sense. That's what 32-36 are referring to, cases where children aren't given a name for an extended period of time. Even without extreme cases. what about a Hospital system meant to be used to track newborn children? It's necessarily not going to be able to rely on a name, because it's not uncommon for childre…

>What about the symbol Prince used for his name

You don't need to support that. You don't need to cover every single edge case, and that certainly includes people who make up some crazy symbol to be their "name". I'm quite sure Prince didn't file his taxes to the IRS using that symbol, in fact, according to Wikipedia, "1993 also marked the year in which Prince changed his stage name to Prince logo.svg, which was explained as a combination of the symbols for male () and female ()." So that wasn't even his name at all! That was just a stage name. If you're making a system for anything official at all, then you don't have to worry about silly stuff like that.

(On the other hand, if you're making a system for artists which has a field for stage name, then you're going to have to figure out a solution to this one. As you can see with Wikipedia, their solution was to use a SVG file of the symbol and insert that into the text as necessary.)

>What about a language that's not in Unicode yet?

This again probably depends on exactly what your application is. If it's a US government database, then you don't need to worry about stuff like that, because they're not going to care about people using some obscure language that isn't covered by Unicode. Is there even such a language? I doubt it, not any that are in actual use.

Don't forget, just about every language has been Latinized now, so you can always fall back to Latinized characters.

>If someone has a single name, does it go in the first name, or second name spot? Is this enforced, and where?

Irrelevant. Do it however you want, it really doesn't matter.

Now again, as I mentioned before, a lot of this depends on exactly what your application is, so it's pretty hard to come up with any ideas or rules without knowing this. Are you making a database for US government use? Or something for shippers to ship packages around the world? And from what country? Something for payment processors? Based out of what country? Something for the Chinese government? The requirements will change depending on the answers.

If the government forms require a first name and a last name, for instance, and that's the law, and you only have one name, then you have to get yourself a second name. If you have a Chinese name and this is for a US government form, then most likely you have to use a Latinized version of your name. The possibilities are endless.

Re: People with names that break computers

#288

Earlier quoted context omitted.

> Sorry, but how can you not have a name? Good luck getting an ID document without a name. That doesn't make sense. That's what 32-36 are referring to, cases where children aren't given a name for an extended period of time. Even without extreme cases. what about a Hospital system meant to be used to track newborn children? It's necessarily not going to be able to rely on a name, because it's not uncommon for childre…

>What about the symbol Prince used for his name You don't need to support that. You don't need to cover every single edge case, and that certainly includes people who make up some crazy symbol to be their "name". I'm quite sure Prince didn't file his taxes to the IRS using that symbol, in fact, according to Wikipedia, "1993 also marked the year in which Prince changed his stage name to Prince logo.svg, which was expl…

> If it's a US government database, then you don't need to worry about stuff like that, because they're not going to care about people using some obscure language that isn't covered by Unicode.

Why, because immigration isn't tracked in US government databases? Liaisons in other countries aren't tracked in US government databases?

> Is there even such a language? I doubt it, not any that are in actual use.

A simple google search shows that yes, there are[1]. They may not be common, but you know where uncommonly used languages see use? In names, from people trying to preserve their heritage.

> Now again, as I mentioned before, a lot of this depends on exactly what your application is

Actually, you're saying that now. I've been saying it from the beginning. Actually, that was the point of my first comment, and the point of my second comment, and the point of this comment. You said "Assuming that you're going to require at least two names (no single-name names allowed), then a string for First Name and a string for Last Name should be sufficient." and I was trying to point out that even if we accept the assumption that you need to require at least two names, there are cases where depending on your purpose you should really examine what you really need an build your schema around that, not some simple rule summarized as two database fields of unlimited length Unicode text.

I said this explicitly in the first comment with "What this really means is, depending on the application and how important the name is to you, you will have different requirements."

The entire last paragraph of my second comment was about this.

> so it's pretty hard to come up with any ideas or rules without knowing this.

Which is my point, and the point of the linked post about names. You need to know your problem domain, and the data you are expected to encounter. It's also not what you stated in your original comment. I'll just assume you were being a bit overly assertive initially, and it's not really the entirety of your stance, because you're making the opposite argument now. We've wasted a lot of time when you could have just said, "Yeah, if name fidelity is important, know your expected data and make plans for special cases if it's important." Which, again, is exactly what I said in my second comment.

1: http://unicode.org/standard/unsupported.html

Post reply on HN