4 ms·
Not super relevant or anything but I just can't help but share my favorite profanity filter story, so here you go. I worked at a place that had a profanity fil
by boring_twenties 6y ago
Not super relevant or anything but I just can't help but share my favorite profanity filter story, so here you go.
I worked at a place that had a profanity filter in two parts.
The first part was in C, several pages of if (!strcmp(x, a)) return 0;
After all that, it then invokes popen() to ssh to another machine and run a shell script there, which contains several more pages of string comparisons, this time in shell.
- siltpotato 6y agoHold on, what? Okay, return false if they aren't equal, then open another process to repeat this method once again in the shell... I can't guess the reason. Would you know if there is any reason this might have been done?
- saagarjha 6y agostrcmp returns 0 if the strings are equal.
- boring_twenties 6y agoI wouldn't know the real reason for sure, but this seems plausible: 1) They got tired of having to modify C code and wait for the deploy cycle to modify the filter 2) Using, for example, the database would be more work than calling a shell script. On top of that, it might actually be beyond the abilities of the programmer involved. 3) The C code executes on an arbitrary machine. Hence the ssh to a specific machine, so that the shell script would only have to be maintained in one place
- tyingq 6y agoDoesn't popen() pass strings to a shell? Sounds dangerous, as you would have to escape semicolons, quotes, etc.
- ljm 6y agoI might be wrong but I think it's about censoring the 'hell' in 'shell'. Because some parts of the world consider words like 'hell' and 'damn' to be profane.