Names of People
-
Because, once stored in a database, we will need to look up names and the person doing the search is not the person who entered the name. Having rules for names allows us to compare partial names to locate the records for the person we are trying to look up.
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
Humans' names are in no way unique nor immutable. If your system imposes rules above and beyond those of the domain it is modelling then there will always be problems. Better to allow fuzzy-logic searching (or use some other unique key if you are able so to do)
-
The other "falsehoods" blogs are worth a read as well:
- Falsehoods programmers believe about time[^];
- More falsehoods programmers believe about time[^];
- Falsehoods programmers believe about geography[^];
- Falsehoods programmers believe about addresses[^];
- Falsehoods programmers believe about gender[^]; (site currently down; try the backup Gist[^])
- Falsehoods programmers believe about networks[^];
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
Many of the time assumptions listed are stupid.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013 -
The rule is that you use nvarchar to store names in the database. You could also do away with names altogether and just assign everyone a GUID at birth. Problem solved.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013Like here in Sweden[^]
Wrong is evil and must be defeated. - Jeff Ello
-
The rule is that you use nvarchar to store names in the database. You could also do away with names altogether and just assign everyone a GUID at birth. Problem solved.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013John Simmons / outlaw programmer wrote:
You could also do away with names altogether and just assign everyone a GUID at birth. Problem solved.
:thumbsup:
-
Over at the Kalzumeus Software website, an article was posted Falsehoods Programmers Believe About Names[^] which, in a somewhat tongue-in-cheek manner, describes some of the bad assumptions made about peoples' names that make websites difficult to use.
We, as programmers, have seen the problems with last names (surnames or family names) such as d'Agastino, O'Dell, McDonnell, Rice-Davies, !Mbeki, la Fayette, von Helstien, duBois, Peñia, Dönitz or Null (Yes, that is a real last name! :-D ). Although not as common, similar problems exist with first names, middle names, honorifics, suffixes (Sr., Jr., II, III, et. al.)
Can we, being serious for a whole minute, come up with a set of sensible rules for handling all names of people that can be written in ASCII? — Adding rules for non-ASCII UniCode characters is an exercise best left for the future. Let's keep this to a discussion of rules and, for now, avoid the question of writing code to implement them – that belongs in other forums!
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
There is no point in establishing rules for ASCII names - simply because most systems now use Unicode which allows Chinese, Persian, Hindi, Russian, Japanese, Korean, Thai, ... you get the idea. OK - I agree that name lookup is a problem with non-European names (and even some European style ones) but establishing rules for something that has pretty much been superseded already seems liek a waste of time and effort! :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
The rule is that you use nvarchar to store names in the database. You could also do away with names altogether and just assign everyone a GUID at birth. Problem solved.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013Can I have a matching bar-code?
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"As far as we know, our computer has never had an undetected error." - Weisert
"If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
-
Why do you need any rules at all?
Duncan Edwards Jones wrote:
Why do you need any rules at all?
Agreed. It's one of those conclusions that seems to take devs a while to get to. Rules for names? I don't even implement rules for email addresses. If I need your email to be genuine I'll send you an activation link, otherwise I'll make it optional and couldn't care less what you put in it. Of course I always use "int" to store phone numbers cos that's just common sense!
-
Over at the Kalzumeus Software website, an article was posted Falsehoods Programmers Believe About Names[^] which, in a somewhat tongue-in-cheek manner, describes some of the bad assumptions made about peoples' names that make websites difficult to use.
We, as programmers, have seen the problems with last names (surnames or family names) such as d'Agastino, O'Dell, McDonnell, Rice-Davies, !Mbeki, la Fayette, von Helstien, duBois, Peñia, Dönitz or Null (Yes, that is a real last name! :-D ). Although not as common, similar problems exist with first names, middle names, honorifics, suffixes (Sr., Jr., II, III, et. al.)
Can we, being serious for a whole minute, come up with a set of sensible rules for handling all names of people that can be written in ASCII? — Adding rules for non-ASCII UniCode characters is an exercise best left for the future. Let's keep this to a discussion of rules and, for now, avoid the question of writing code to implement them – that belongs in other forums!
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
Well, here's the framework:
- A person has zero or more names, each consisting of zero or more characters.
- Surnames are given last, except in cultures where they are given first. In cultures that give you names like those given to horses by breeder, have fun.
- Everything else must remain unspecified lest we run into "year 2000-ish" problems when something new comes along.
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"As far as we know, our computer has never had an undetected error." - Weisert
"If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
-
Over at the Kalzumeus Software website, an article was posted Falsehoods Programmers Believe About Names[^] which, in a somewhat tongue-in-cheek manner, describes some of the bad assumptions made about peoples' names that make websites difficult to use.
We, as programmers, have seen the problems with last names (surnames or family names) such as d'Agastino, O'Dell, McDonnell, Rice-Davies, !Mbeki, la Fayette, von Helstien, duBois, Peñia, Dönitz or Null (Yes, that is a real last name! :-D ). Although not as common, similar problems exist with first names, middle names, honorifics, suffixes (Sr., Jr., II, III, et. al.)
Can we, being serious for a whole minute, come up with a set of sensible rules for handling all names of people that can be written in ASCII? — Adding rules for non-ASCII UniCode characters is an exercise best left for the future. Let's keep this to a discussion of rules and, for now, avoid the question of writing code to implement them – that belongs in other forums!
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
I can't see why should be any problem with any name - the only rule we have in our system, that the name can contain only printable characters...beside it it can be anything from the Unicode range... If a system has problem with names, that's a problem with the developer and not with the name...For instance the name Null. After reading some articles about it, I'm still can't understand how it can be any problem...
Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.
-
Well, here's the framework:
- A person has zero or more names, each consisting of zero or more characters.
- Surnames are given last, except in cultures where they are given first. In cultures that give you names like those given to horses by breeder, have fun.
- Everything else must remain unspecified lest we run into "year 2000-ish" problems when something new comes along.
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"As far as we know, our computer has never had an undetected error." - Weisert
"If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
What about "the artist previously known as Prince, now known as this rather odd looking squiggle"? :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
What about "the artist previously known as Prince, now known as this rather odd looking squiggle"? :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
I don't go on social media. It makes you itch.
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"As far as we know, our computer has never had an undetected error." - Weisert
"If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
-
I can't see why should be any problem with any name - the only rule we have in our system, that the name can contain only printable characters...beside it it can be anything from the Unicode range... If a system has problem with names, that's a problem with the developer and not with the name...For instance the name Null. After reading some articles about it, I'm still can't understand how it can be any problem...
Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.
Kornfeld Eliyahu Peter wrote:
After reading some articles about it, I'm still can't understand how it can be any problem...
Spending some time in QA will cure you of that! ;)
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
What about "the artist previously known as Prince, now known as this rather odd looking squiggle"? :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
Except he changed back to "Prince" in 2000. :)
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
-
Except he changed back to "Prince" in 2000. :)
"These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer
Only when he realised even he couldn't read his signature! :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
I can't see why should be any problem with any name - the only rule we have in our system, that the name can contain only printable characters...beside it it can be anything from the Unicode range... If a system has problem with names, that's a problem with the developer and not with the name...For instance the name Null. After reading some articles about it, I'm still can't understand how it can be any problem...
Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.
-
I agree with the lack of a problem with Null as a last name at least as far as typed languages, but I suspect javascript or php may have issues depending on the kind of checks being done.
"Go forth into the source" - Neal Morse
I can't see how...Even in JavaScript, where you not explicitly define types a string still a string and can not be confused with the predefined null...
Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.
-
Because, once stored in a database, we will need to look up names and the person doing the search is not the person who entered the name. Having rules for names allows us to compare partial names to locate the records for the person we are trying to look up.
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
Which doesn't change original question. But that said you want to make something deterministic which cannot be. If the person that first entered the first name as "nine" it is unlikely to help the second person if the actually spelling of the last name is "9" or "mine" (they heard it wrong.) The only real rules - Name cannot start with nor end with spaces - Name cannot consist of nothing but spaces, which is basically same as first rule. - Name must exist. After that work on something much more important like insuring that each person gets a bill every month and that they actually pay it.
-
Over at the Kalzumeus Software website, an article was posted Falsehoods Programmers Believe About Names[^] which, in a somewhat tongue-in-cheek manner, describes some of the bad assumptions made about peoples' names that make websites difficult to use.
We, as programmers, have seen the problems with last names (surnames or family names) such as d'Agastino, O'Dell, McDonnell, Rice-Davies, !Mbeki, la Fayette, von Helstien, duBois, Peñia, Dönitz or Null (Yes, that is a real last name! :-D ). Although not as common, similar problems exist with first names, middle names, honorifics, suffixes (Sr., Jr., II, III, et. al.)
Can we, being serious for a whole minute, come up with a set of sensible rules for handling all names of people that can be written in ASCII? — Adding rules for non-ASCII UniCode characters is an exercise best left for the future. Let's keep this to a discussion of rules and, for now, avoid the question of writing code to implement them – that belongs in other forums!
__________________ Lord, grant me the serenity to accept that there are some things I just can’t keep up with, the determination to keep up with the things I must keep up with, and the wisdom to find a good RSS feed from someone who keeps up with what I’d like to, but just don’t have the damn bandwidth to handle right now. © 2009, Rex Hammock
Those of us who started work before computers and had to dig through whole drawers full of files marked J. Smith only to find that the one you actually wanted was on somebody else's desk in the other building find your need for 'rules' more than a touch amusing whilst also infinitely sad. Lord alone knows what you young people would do if you actually had to work for a living! ;P
I am not a number. I am a ... no, wait!
-
What about "the artist previously known as Prince, now known as this rather odd looking squiggle"? :laugh:
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
-
Duncan Edwards Jones wrote:
Why do you need any rules at all?
Agreed. It's one of those conclusions that seems to take devs a while to get to. Rules for names? I don't even implement rules for email addresses. If I need your email to be genuine I'll send you an activation link, otherwise I'll make it optional and couldn't care less what you put in it. Of course I always use "int" to store phone numbers cos that's just common sense!
F-ES Sitecore wrote:
Of course I always use "int" to store phone numbers
And ZIP codes! :rolleyes:
The difficult we do right away... ...the impossible takes slightly longer.