In the early 80s I worked with a guy who wanted an unlisted phone number (back in the days of paper telephone directories). He was really miffed at the idea that the phone company would charge him an extra $10 (or similar) per year for this "service". ("Ten dollars to NOT do something?!? That's extortion!") He couldn't believe this so he asked for a list of service charges which they mailed to his home. Apparently changing your name was free. So, for several years you could call "Kirk, James T., Capt." I guess he showed them.
Bonus: saved $10 per year.
Extra bonus: frequent crank calls at all hours, for free.
People have been complaining about HN turning into Reddit for at least 10 years. In fact, the HN guidelines used to ask people not to complain about HN turning into Reddit ("it's a semi-noob illusion"). But when we augmented the guidelines a year or so ago, we took out that one to preserve brevity.
The mods discourage humor because it tends to metastasize into tedious offtopic threads, which I guess is true enough.
Readers think they punish bad jokes and reward good ones, but the stupid Butts pun is doing great while the absurdist gem about Leonard Nimoy secretly wanting to be Kirk and living it out for a year in the white pages (and then someone working with him forgetting his name!) was nuked from orbit.
A similar problem happens when the name itself is only considered offensive in certain cultures, but is completely benign in the culture of the person with the name. I remember two gaming related incidents where people were blocked from making accounts; one was a south american using "negro" as his username being prevented from creating an account, even though english speakers with the username "black" are fine; the other was a muslim with the first name "Jihad" who couldn't create a playstation account. A muslim coworker told me that "jihad" being synonymous with "holy war" is pretty much just a western thing, it could also be referring to an internal struggle, so it's similar to christians naming a child "Chastity".
I think the real problem that is totally overlooked is the whole authoritarian nature of this paternalism of monitoring people as to their "offensiveness". It's pure and unadulterated authoritarianism and controlling to declare yourself as the moral arbiter of what is and isn't offensive and what should and shouldn't be allowed. And no, it's not a matter of whether you CAN legally do so, it's a matter of whether you SHOULD be an authoritarian dictator.
How about giving people a choice instead of playing Little Lord Fauntleroy and controlling everyone's actions. How about just giving users the option to block "offensive" or even just possibly "offensive" names and terms and words, instead of going all paternalistic jerk.
It is something that has bothered me for a long while now, especially in places like Reddit, where the whole fundamental concept of the site was totally and utterly undermined by the authoritarian mod squad that makes the whole community voting/self-regulation a facade when it's not being used by the angry mob to metaphorically burn the witch that dared to say something that wasn't their favorite thing to hear.
There is also this idea in the US that typing somewhere fuck or shit is unacceptable.
I am French and we have our dirty words which can be pit to good use or misused. An adult using them judiciously may help their message going through. It must not be overused, there is a specific balance to find.
Nobody will, however, type m....e because it means that the word should not have been there in the first place.
Bleeping such words looks like fake puritanism to me. Either use them and face the music or say crotte.
> A muslim coworker told me that "jihad" being synonymous with "holy war" is pretty much just a western thing, it could also be referring to an internal struggle, so it's similar to christians naming a child "Chastity".
Which actually explains a lot about the infamous quote, "The main character, Spongebob, lives inside a giant pineapple. How do you think he acquired that house? Through jihad."
He struggled in life to improve his standard of living to the point where he managed to accomplish having an undersea pineapple to live in? I don't know, man.
I actually wrote a full-stack web service to handle people's names, specifically to help avoid situations like this. My best advice: treat people's names as a potentially very long and entirely arbitrary text field. Don't assume anything without their confirmation, even if it seems obvious, because somewhere out there someone's name will violate that assumption. My research did conclude that nearly all names are below 500 characters, so that's a reasonable upper bound, though I would at least double it to be safe.
There's a couple of people for you with legal names well past 500 characters, and that's just of Western European descent, where German-style compound words are rare.
Most certainly, percentile wise, they're the 99th. Nearly every case where I encountered a name that long though, there was a shorter form. Generally really long names are either patronymic/matronymic (listing ancestors) like many Arabic names, or names following Hispanic conventions. Hawaiian names can also sometimes be rather impressive.
For instance Pablo Picasso's full name is 103 characters (without whitespace): Pablo Diego José Francisco de Paula Juan Nepomuceno María de los Remedios Cipriano de la Santísima Trinidad Ruiz y Picasso
Worked with a guy with a really long set of names. Found out much later that what I thought was his first name (which he went by) was actually the initials of his names before the family name.
That's a pretty common way for people to modify their names into a more practical form (I'm sure typing all that out is a pain). This is why you shouldn't ever assume properties of people's names, and should instead write UIs which confirm the name's properties with the user.
Just for fun, I wrote a quick query to pull the head from my DB.
NAME_LENGTH_CHARS, NAME_TEXT
91 'Mary Abigail KawenaʻUlaokalaniahiʻIakaikapoliopelekawahineʻAihonuaināleilehuaapele Wiggin Pukui'
85 'Upatissa Atapattu Bandaranayake Wasala Mudiyanse Ralahamilage Shirani Anshumala Bandaranayake'
83 'Wanisekara Bandaranayake Wasala Mudiyanse Ralahamilage Aluwihare Uda Walauwe Alick Aluwihare'
68 'Guido Georg Friedrich Erdmann Heinrich Adalbert Graf Henckel von Donnersmarck'
66 'Wasalakulathunga Wijekoon Mudiyanselage Duleeka Kumari Wijekoon Marapana'
65 'Clemens Erwein Heinrich Karl Bonaventura Freiherr von und zu Franckenstein'
59 'Guillaume Joseph Hyacinthe Jean-Baptiste Le Gentil de la Galaisière'
58 'Weerasooriya Dissanayake Mudiyanselage Punchi Banda Dissanayake'
56 'Charles de Marguetel de Saint-Denis, seigneur de Saint-Évremond'
56 'Venerable Professor Kollupitiye Mahinda Sangharakkhitha Thera'
...
(EDIT TO ADD: These are all names initially sourced from Wikipedia)
No these are all names of public figures pulled from Wikipedia, not names submitted by individuals, because of the obvious privacy violations. Each name has a corresponding Wikipedia article. I should have clarified initially though.
What does "naturally" even mean here? Everyone these days seems to be giving their kids unique names. Some people name their kid Obi-wan Kenobi. That's not really any different than these people, is it?
Obi-wan Kenobi isn't all that odd --- to someone unknown to Star Wars, it wouldn't stand out among a list of other foreign-sounding names.
On the other hand, an ultra-long name that seems to be designed for testing overflows, in buffers mental or physical, is like a very different category to me.
But surely there must be some point where it’s okay to build a software application that expects some sort of personal identification, right? At some point surely it’s okay to cover some vast majority of people’s names and allow the rest of people to type in whatever they want? I don’t really see a problem unless you require a name to conform to some specific format while also having a policy against users using “fake” names.
While still in the Unicode realm, some people have names that can only be spelled in their native script vertically. For instance people with Manchu names. This case breaks Wikipedia's formatting in comical ways.
languages with logo graphic writing systems, such as Chinese and Japanese. I think for governmental purposes there is a set of allowed characters, but people may consider the true form of their name to be written with a rare character that's not in unicode.
> treat people's names as a potentially very long and entirely arbitrary text field
The problem is that you still need to deal with unicode attacks, sql attacks, js attacks, css attacks, regex attacks, etc. There's nothing 'arbitrary' about sanitizing any user-inputted text field, and it's especially difficult to do so a culturally sensitive way.
It's a good problem you're solving though. It's a great job interview question to have people write some code and talk through, since to get someone's first name given their full name it takes maybe 20 minutes to write something that works 99% of the time, but then to write something that works 99.99% of the time it takes maybe 20 years.
> since to get someone's first name given their full name
I never understood why that's necessary in the first place. Simply have inputs called "full name" and "address" and let people type in whatever, similar to how many websites now have "name" and "title" (as in Mr, Mrs, Reverend, ...), which is a partial and culturally insensitive solution to a similar problem.
The biggest problem with this strategy is it isn't idiomatic to refer to someone by their full name in many contexts. However given its simplicity, and cultural neutrality, a single full name field should be the default choice IMO.
This is basically what Alphanym does, though it presents the nickname field conditionally, to optimize the sign up flow for fewer fields whenever possible.
If you have sanitize the name field because then you're doing everything wrong. Nothing should break no matter what characters a user puts in their name. Even if they use punctuation or null bytes or control characters.
> If you have sanitize the name field because then you're doing everything wrong.
If you don’t write software under the assumption that every other developer and all your users are at best wildly incompetent and at worst outright malicious then you’re doing everything wrong.
Native Americans have the fun problem of taking a lot of grief (and some Facebook deletions[3]) for last names like "Yellow Bird", "Good Iron", "Walking Eagle", and "Has No Horses". In fact, I was a little disappointed with a thread on this and some of the logic[1][2].
Hmmm, I mean, on Wikipedia, does anyone want to see user names that aren’t pseudonymous?
I think the policy is more likely to favor names that are not identifiable in the real world.
So nonsense like “Snarf_Yorble” is preferred to “Danny_DeVito” even if Danny DeVito himself is trying to help write an article about the TV show, Taxi, by citing some good sources to fill in blanks and rectify some subtle errors via the talk page.
Favoring handles and nicknames keeps attention focused on the content or data, and not the authors, to retain a degree of objectivity. Merit badges are there, not to promote credit, but credible accuracy and reliable behavior.
I worked at an ISP in the '90s, and our first paid customer was John Blank. On several occasions, a well-meaning biller would delete his account because it was "obvious a test".
The only safe thing to assume about the validity of family names is that people may or may not have one, and that if they do, it is probably (but not guaranteed to be) composed of a series of Unicode-space characters.
The name I was born with, Burkimsher, is always misspelled when people type it.
I had a chance to choose my own Chinese name. I had friends with amusing names: Yi-ting was eating, Wei-ting was waiting, and let's not mention Shi-ting. Those are all quite normal names there! I laughed at first, but realised that I remembered their names much better than other friends.
So I chose my name to be 台平, Tai-ping. Because I'm typing. This is now my legal name on my ID card there!
As George Carlin pointed out[1], it's the context of the use of language that determines whether it's good or bad. So machine learning just sucks at determining context. Trying to get people to stop being offended by the utterance of arbitrary sounds probably will never happen, but at least we can make computers less stupid.
This sparked a memory of sprinter Tyson Gay’s last name being automatically edited[0] to be “less offensive”(?) by a religious org’s news website. Simply searching for and replacing certain words is bound to fail.
It's only going to get worse - more and more systems are replaced with "AI" which in return produces the worst case of "computer says no" - with the older systems, customer service could at least override the system, with the newer ones it becomes increasingly difficult to do so. Even simpler technologies like voice recognition are incredibly shit if you have an accent or a surname that's not recognised by English "speaking" voice recogniser(support lines where you have to say your surname to get connected to someone are the worst).
On the topic of voice recognition systems, my old flip phone had a voice recognition system where you had to first record yourself saying the name of your contact before being able to call said contact.
Once you got past that initial step it was much much more reliable than today's voice recognition systems on Android phones, especially for "foreign" names.
I wish that was a list like that could be added to because I would add:
41. Full adjectives and adverbs can appear in names. Some folks didn't get fancy and add prefixes and suffixes like the Europeans. You might even encounter a family name that is a whole phrase.
I have an ø in my name. It is especially annoying when entering payment details and I have to input my name as it appears on my credit card. It is surprisingly often that only ascii is accepted. I would guess the anglo-internet is hell if you're from Asia.
In Germany, transliterations are widespread and officially accepted. Ö=OE, Ä=AE, Ü=UE, ß=SS makes it fine to write Hübner as Huebner even in the passport and other official documents. I wonder why other countries do not allow transliterations as a legal way to deal with anglo-centric character sets?
Romanization/anglicization can be tough for many languages. Thai for example has vowels that do not have an equivalent in English, and presents the added difficulty of being tonal, which means even if the pronunciation is anglicized, the tonality will be lost. Former example, the name of the former king of Thailand was typically written "Bhumibol Adulyadej" but the pronunciation is closer to the alternate "Phumiphon Adunyadet" and neither really hits all the notes in the way it actually sounds when spoken (although I admit I can't think of a better way to write it in the English alphabet).
I pretty much never input my name as it appears on my credit card. I have yet to have anyone (in person or online) complain about this, despite instructions saying to do so.
(Specifically, my middle initial appears on my credit card, but I never fill it in when buying stuff online.)
"I have to input my name as it appears on my credit card"
This is only true with AMEX as they are the only major processor that checks the inputed name.
Visa and Mastercard do not check on the name at all - you can use any strings you like.
All of the online shopping and ordering I do (including Amazon, etc.) is with a made up First/Last. I have done this for almost 15 years with various Visa cards with no problems.
I have dealt with this specific problem before and it is a quite difficult problem. I actually use it as an interview question often for prospective programmers and it is a decent gauge of someone’s general problem solving abilities. If you ask this problem of any programmer generally the people who come up with the common “gotchas” and some suggested solutions quickly are the kind of people that are likely to be able to quickly solve problems in a pragmatic way generically.
The two most difficult parts of this problem are the subset problem and the localization problem.
The subset problem is highlighted by Scunthorpe. When looking for bad words, how do you whitelist the places like Scunthorpe where the subset can contain a bad word? I.E. how can we allow Scunthorpe while also disallowing .:)(B.adw0r3d ?
The localization problem is easily described in this thread as well. In French, ass might mean a completely beningn word that’s completely different from the meaning in English.
In the end the current solutions aren’t great and involve a shit ton of heuristics with a lot of human intervention. I don’t see that changing in the near future.
I haven't run into this problem yet, but I certainly expect to at some point. Especially since my last name is even a bit more suggestive than simply 'butts' or 'weiner'.
I used to work on the project, where we had a filter like this on people's names, to prevent abuse.
We quickly learned that showing message like "Name cannot contain profanity" is a bad idea, because we'd show this due to names that happen to be "questionable in some contexts". People get pissed off real quick, if you tell them they have "profanity" in their name.
We changed it to something like "you're using a word we don't allow" (avoiding mentioning of "profanity" altogether), PLUS, we added a way for users to quickly contact support, if they're in this pickle.
TL;DR
"We spent several weeks building a UI that used pop-downs to construct sentences, and only had completely harmless words – the standard parts of grammar and safe nouns like cars, animals, and objects in the world."
"We thought it was the perfect solution, until we set our first 14-year old boy down in front of it. Within minutes he’d created the following sentence:
I want to stick my long-necked Giraffe up your fluffy white bunny.
I think it's interesting that the article mentions that they "haven't solved the Scunthorpe problem". I always thought of the Scunthorpe problem less as something to be solved and more as a cautionary tale about the folly of attempting to implement censorship software.
It's like the DRM problem. It's incredibly difficult if not impossible, and the goal itself is dubious.
When I was in elementary school, the Vice Principal's name was Mr. Butts. That was uproariously funny to my young self. Now I kind of feel bad for the guy, being the brunt of an endless stream potty humor from "clever" pre-teens..
True although that doesn't mean they're getting what they deserve. If you want to be an educator, or have any normal occupation, you shouldn't be forced to change your identity.
The 2 vice principals in my Junior High at one point were James Slaughter (he did the paddling) and Seymour Butz. Butz had this huge James Earl Jones voice that just boomed down the hallways... No one made fun of him within his hearing.
I've known families with surnames like Weiner and Skanky (who had a bunch of girls, I always felt sorry for them with a last name of Skanky). I imagine they must have this same issue.
I was good friends with a daughterful Skanky family growing up - almost wonder if it was the same one.
Much in the same way that the pronunciation of harassment over-corrected to "hare-es-ment" for a while in the 90s (avoiding "her-ass-ment"), they led the pronunciation of their name towards Skanchy, like Scrunchy, or Crunchy before relenting.
I’m guessing fread looks like an attempt at code injection (fread() is a POSIX C function to read from a file handle, but also present in e.g. PHP), and WAF stands for Web Application Firewall.
I had the same issue with Facebook. I could not write by birth first name (in a language other than English).
It was considered "offensive" by the filters in that specific language.
I ended up including some non-printable unicode characters in my first name, and after a few tries, it worked :). At least my name is now shown properly, even though the bits are not correct.
I must admit this article brought forth my inner 5 year old. This reminds me of James Mickens’ USENIX keynote about the hazards of security and AI. We are deploying poorly reasoned and poorly tested technologies that are harming individuals. When will we take a step back and think about the consequences of the technology we are developing?
It's really amazing how often I meet people today who think world filters are in any way, shape or form effective against abuse and trolling.
And this isn't niche software either, this happens in AAA game releases, all the time. I've encountered this in software that had been developed for millions of dollars.
>Sadly most lists of unpleasant words are pretty aggressive.
Either that or they contain words that look like someone was sitting in front of the screen and making a scrunched face trying to remember any more offensive words.
They're also usually very US-centric and completely ignore other cultures, languages or societies.
I think the it is more that they cross cultural boundaries. As someone looking through a list I feel like I see a lot of odd...non US centeric words and slang.
An interesting project would be to consult with cultural anthropologists and create a localization library for names. That way once a person selects the appropriate country we can just consult the localization for name formatting and cultural taboos then validate based on that.
Ahhh, I'm being down voted for saying this isn't actually hard.
Maybe having the last name Butts on the internet IS hard after all.
(In case it's not clear, this is my last name)
The only trouble I have ever had was Facebook locking me out of my account in 2011 and making me send them a photo of my ID before being let back in. Took a month.
The funny thing is I have a random Facebook account with a totally fake city and name for a character in a game I play, and never had any trouble with that!
Never had a registration problem on any site, though.
> Take the case of Jennifer Null, for instance, whose name was frequently rejected in input fields because the program treated her last name as a form of code, rather than text
For all those who say javascript the language is fine: ^^
She should change her first name to
'or 1=1;drop table customers;commit;--', sit back, and watch the fireworks.
by the way, best use case of this I've ever seen? It was pasted on a sticker on a car's bumper, right below the license plate, in a nice easy to read/OCR font. Now, I've no idea if the speed/traffic/tracking cameras read it and acted on it or not, but the idea amused me.
As for JavaScript, I recall how I registered an account with user name "undefined" for TheDailyWTF article comments. Later they moved their comment system and forums to Discourse and due to some bug my account was linked under every item in the list of likes under every post.
If you have already coerced the variable to be a string, then you can end up with with a null value becoming the string "null". E.g. the below statement evaluates to true:
new String(null)=="null"
And it used to be a lot easier to make that mistake like something with:
I believe this is a dying problem. The next social media will be based around a real life user.
First name, last name, photo, home address(or similar). Everything verified or at least enough for people to feel like they are talking to real people.
Given how easily reddit is astroturfed by Aldi, Tmobile, Samsung, Tesla, Donald Trump, and more, the next gen social media will revolve around real people rather than usernames and corporate accounts.
Even accepting your premise as as true (which I don't necessarily), social media isn't the only space in which this problem appears.
The article itself mentions "members of British Parliament [being] blocked from viewing the Sexual Offences Bill they had proposed by a government spam filter"[0] and "the London Horniman museum’s emails [being] flagged because systems thought they meant 'horny man'"[1].
I don't think that accounts for lazy or ignorant programmers trying to limit joke/abusive accounts, though. And that's what the problem has always been.
> First name, last name, photo, home address(or similar). Everything verified or at least enough for people to feel like they are talking to real people.
In the early 80s I worked with a guy who wanted an unlisted phone number (back in the days of paper telephone directories). He was really miffed at the idea that the phone company would charge him an extra $10 (or similar) per year for this "service". ("Ten dollars to NOT do something?!? That's extortion!") He couldn't believe this so he asked for a list of service charges which they mailed to his home. Apparently changing your name was free. So, for several years you could call "Kirk, James T., Capt." I guess he showed them. Bonus: saved $10 per year. Extra bonus: frequent crank calls at all hours, for free.
Funny thing is I can't remember his real name.