Live data from Hacker News

The naughty username checking system used by Twitch

ghostbin.com

81–90 of 348 posts

Re: The naughty username checking system used by Twitch

#81

Poor Bilbo and Frodo - they'll never be allowed to use Twitch: CREATE OR REPLACE FUNCTION is_hateful (VARCHAR) RETURNS BOOLEAN STABLE AS $$ SELECT ... OR replace($1,'_','') LIKE '%aggin%'

Or designer of the first commercial microprocessor, Intel's 4004 https://en.wikipedia.org/wiki/Federico_Faggin

Re: The naughty username checking system used by Twitch

#82
Reminds me of the black words service at apple that checks for explicit or non printer friendly stuff for iPhone engraving. It was hilarious looking at the advanced linguistic engine they developed to filter out asshole and 30+ variations of it with snarky comments added by devs in the past.

Re: The naughty username checking system used by Twitch

#83
post #74

So what is a good practice for this kind of thing? I’ve got an app where users create a display name. Is there a legit service I can use or some actual well tested library that can help me? I’m using node and Go so either languages.

Give me a few weeks

Re: The naughty username checking system used by Twitch

#84

Earlier quoted context omitted.

This seems like the kind of thing that would be horribly specced and be a user story along the lines of "the user must not be allowed to make an inappropriate username." The engineer would write something for every test case the product manager complained about, anything else computationally easy, and call it a day. I once had to implement an audit logging system. What was supposed to be logged? "Important actions."…

Bad, old memory: "Every transaction must have a line written to the printer" Tracking down "why is the antique system suddenly slow". Power went out, system came back up fine, everything but the one ancient but vital app is fine. Dig, dig dig, there's this old dot matrix printer in another room (because it used to be loud and annoying) that no on has fed or looked at in years. It finally died with that outage, and it…

Holy cow how old was this system, circa 1975 or something?

Re: The naughty username checking system used by Twitch

#85

We had to do this for a link shortening system (to make sure random base64 didn't contain profanity). It was a pretty fun problem. Not just the implementation, but doing the math to make sure it didn't make our shortened links easily enumerable. The implementation wasn't too bad, but we set up logging initially to spit out any random strings it decided to block. I demo'd this in front of the whole company and live ta…

When it comes to censoring randomly generated strings, I like simply to omit vowels from the alphabet. Usually I'll omit some of the more obvious lookalikes too, e.g. [1 0 v]. It's a simple solution. Sure, it is still possible for something to slip through that looks similar to something bad. But the potential to strongly offend is greatly reduced.

Yeah there was an article I read a while back about a company looking to prevent the use of 'naughty' words in randomly-generated strings used as event IDs. Apparently someone with some pull had seen a message with an offensive word. Some management committee spent a long time trying to figure out how to solve the problem including proposing keeping a list of bad words, and then worrying about what should be in it and who would maintain it. At some point an engineer got a chance to speak and said something like "just use base-31 and omit vowels". The story as I remember it didn't mention the use of v or l33t-speak, but they were randomly generated, not maliciously constructed, values.

Also note that if you're too naive about checking for 'naughty' words, you get https://en.wikipedia.org/wiki/Scunthorpe_problem

Re: The naughty username checking system used by Twitch

#86
post #31
post #22

Earlier quoted context omitted.

Some near the end looked like they might be in another language, but I won't be the one to find out. It used to be "if I search for this term, am I accidentally going to wind up getting goatse or something?" The good old days. Now it's "if I search for this term, is the FBI going to kick my door in?"

I was pedantic about it in the good old days too, it's goatse.cx and not goatse you need the domain to make the goat-sex joke work

There was a lot more horrifying stuff on that site besides hello.jpg, but most everyone recoiled in horror before they saw anything else.

Re: The naughty username checking system used by Twitch

#87
post #11

Earlier quoted context omitted.

It also mostly checks for English naughty words and not much else. People can have fun in lots of other languages, so it would seem this is a small sample.

And specifically Italian blasphemy for some reason…

One word, that starts with V, and isn't Vagina.

Re: The naughty username checking system used by Twitch

#88
post #76

Ah, so that's the Word Filter that Twitch directly mentioned as the majority of their effort to fight hate comments (as cited in the main thread on the leak). Also, Lisa Pedro is not welcome there.

Let's not jump to conclusions. We don't know where this specific filter was used, is it an automated blocker or just flagging for moderation, is it the only layer, or is it even the currently used one.

Re: The naughty username checking system used by Twitch

#90
post #12

If you liked this chaos, you'd love my 15+ years of cobbled-together efforts at limiting forum spam and the like. I suddenly don't feel quite so alone in the myriad efforts needed to tackle this sort of thing.

It's an endless arms race. I spend a lot of time studying unsavory people and a great deal of effort goes into the development of new dogwhistles that are designed to either provoke or connect with peers while maintaining deniability. You might like this paper on the evolutionary dynamics of covert social signaling: https://www.nature.com/articles/s41598-018-22926-1

If they're covert and only members of the group using them know what they mean, then why fight it? Seems like a helpful way to communicate about things that others might not like to hear. The paper you linked said that too - "Such signals may allow coordination and enhanced cooperation while also avoiding the alienation or hostile reactions of individuals with different preferences.".

This happens all the time in cartoons that appeal to children but also contain subtle adult jokes so everyone can enjoy them on different levels.

Post reply on HN