« first day (1145 days earlier)      last day (2682 days later) » 

1:10 PM
@tripleee no, not me. Actually, looking at the recent chat history I don't see any 'university' at all. Most 'The University of' spam is caught by the Chinese character filter.
 
I was wondering...
 
@Glorfindel indeed, I just had the link open still from visiting it this morning ... sorry for my poor short-term memory
 
No problem.
 
there was one of those Chinese spams this AM (3:something) which I guess is what triggered the discussion in the first place
 
This one probably but it has a weight of 452 already.
 
1:18 PM
@tripleee (?<!at |of |At |Of )(the|The) University of
 
maybe ( [Tt]he)?
 
I don't know if that works within a negative lookbehind group
 
it's outside the group
the spaces are somehow off, you need to decide if you want to group before or after
 
(?<![Aa]t |[Oo]f )([Tt]he) University of
This seems to work for the purpose I designed it for
 
I'd still like to make "the" optional which means you have to refactor the spaces
 
1:20 PM
That is: Match any occurence of "[Tt]he University of" except the cases where it's preceded by a "at" or "of"
I'm in way over my head for this one though
 
the spams in question often have a different pattern anyway
metasmoke.erwaysoftware.com/reason/59 has "state university of new york", "university of california, berkeley", "monash university", etc
 
Mhm
 
e.g. metasmoke.erwaysoftware.com/post/46687 only got a weight of 91 but the university-themed ones generally seem to trip many heuristics already
only 11 in the last month anyway
 
[ SmokeDetector | MS ] Bad keyword in body: Are you allowed to use another company's logo for a graphic design project? by Sana Raeesa on graphicdesign.stackexchange.com
fp- by Glorfindel
 
uh, which rule exactly triggered that? looks like probably a regex bug
 
1:26 PM
Nike
We have had some Nike spam in the past (before my time here, though).
 
but the metasmoke report captured the first 141 characters, not just "Nike"
yeah, I've seen my share of sneaker spam
 
Yeah, that's weird.
 
Seems like it only counts "Nike" if it's mentioned in the first 200 chars
 
the regex should probably be refactored to have a lookahead or something then
 
I propose to remove the "nike" check alltogether now, since it has a thoroughly disastrous accuracy currently
cc @ArtOfCode @Undo
 
1:31 PM
@Magisch +1
 
@Magisch +1
 
The fire extinguisher remains unlocked.
 
@ArtOfCode ?
 
13 hours ago, by Undo
if something's on fire, there isn't a lock on the extinguisher.
 
@Magisch +1, but can you check which TPs we'd 'lose' if we drop Nike? And if there are alternatives, like blacklisting flyknit and/or other terms.
 
1:34 PM
[ SmokeDetector | MS ] Few unique characters in answer: Why are plant cells rectangular and animal cells spherical shaped? by kaitlyn on biology.stackexchange.com
naa- by Glorfindel
tpu- by tripleee
 
@ArtOfCode You know I can't python
I guess I should be able to delete the thing alltogether
 
@Glorfindel based on brief review of the search results from Magisch, the majority seem to be quite coicidental (i.e. "nike" is a substring in an email address and not at all related to the brand)
(for example)
 
@Magisch I know, just making that point that anyone with code access can do it
 
@ArtOfCode I don't have code access, but I created a PR
 
looks good
 
1:43 PM
CI on f0a68df succeeded.
[ SmokeDetector | MS ] URL in title, bad keyword in body, bad keyword in title, pattern-matching website in body, pattern-matching website in title, repeated URL at end of long post: www.dermayouth.org/hl12-scam/ by user83486 on graphicdesign.stackexchange.com
 
!!/pull
 
@SmokeDetector autoflagged?
 
Restart: API quota is 5749.
 
@SmokeDetector k
 
1:46 PM
@ArtOfCode That post was automatically flagged by Metasmoke.
 
!!/test textgears.com
 
> Would not be caught for title, body, and username.
 
I was wondering if the ? was required or not.
 
@SmokeDetector this message should include the usernames that flagged it, instead of "metasmoke"
 
@Art do you need privileges to use that command?
 
1:49 PM
not a clue
 
@SmokeDetector autoflagged
 
@tripleee That post was automatically flagged by Metasmoke.
 
Ctrl-F search for command_autoflagged in chatcommands.py, and see if it's got a @checkprivileges decorator before it
 
seems no, if that's what you're asking
 
@ArtOfCode Does not require permissions: github.com/Charcoal-SE/SmokeDetector/blob/master/…
 
1:53 PM
@Magisch cool
 
I smell a waft of british sarcasm
:D
 
CI on 9638a4d succeeded.
[ SmokeDetector | MS ] Bad keyword in answer, bad keyword with email in answer: Algorithm to determine the "usual" cash payment amounts for a given price by tara kline on stackoverflow.com (@dorukayhan)
tpu- by Glorfindel
CI on 988122e succeeded.
 
!!/pull
this may break
 
[ SmokeDetector ] SmokeDetector started at rev 988122e (ArtOfCode: Include flagger names) (running on teward/Aurora)
Restart: API quota is 5595.
 
@SmokeDetector autoflagged
 
2:07 PM
Restart: API quota is 5593.
 
@ArtOfCode Looks like it did
 
!!/errorlogs 50
 
ValueError: invalid literal for int() with base 10: 'users'
2017-01-04 18:55:41.526860 UTC
  File "ws.py", line 51, in <module>
    GlobalVars.smokeDetector_user_id[GlobalVars.meta_tavern_room_id] = str(GlobalVars.wrapm.get_me().id)

  File "/home/smokey/SmokeDetector/ChatExchange/chatexchange/client.py", line 127, in get_me
    assert self._br.user_id is not None

  File "/home/smokey/SmokeDetector/ChatExchange/chatexchange/_utils.py", line 104, in __get__
    method()

  File "/home/smokey/SmokeDetector/ChatExchange/chatexchange/browser.py", line 241, in _update_chat_fkey_and_user
 
@ArtOfCode s/may/will/
 
oh, deploys
@Undo metasmoke needs a deploy
forgot those don't apply immediately
@ThomasWard if you're around, it'd be awesome if you could run a git reset --hard HEAD~1
 
2:28 PM
[ SmokeDetector | MS ] Bad keyword in body, link at end of body, pattern-matching website in body, repeated URL at end of long post: Benefits associated with HL12 by user71306 on drupal.stackexchange.com
tpu- by Magisch
 
2:55 PM
[ SmokeDetector | MS ] Bad keyword in body, link at end of body, pattern-matching website in body, repeated URL at end of long post: Style Sometimes, the sebaceous by user71307 on drupal.stackexchange.com
tpu- by Glorfindel
[ SmokeDetector | MS ] Link at end of answer: Is there a TeamViewer for the Linux console? by DJ. on superuser.com
 
@SmokeDetector fp
 
@Mithrandir Registered answer as false positive.
fp- by Glorfindel
 
who is glorfindel
 
A member of charcoal
 
A user.
 
3:06 PM
What have I done wrong? :)
 
It's glorfindel :o
 
huh. My friend's username is also glorfindel, didn't know people could have the same username
 
:o the glorfindels are multiplying
 
Attack of the Clones ...
But it's true, there are even multiple Jon Skeets.
 
I had a nightmare about an Ewok last night...
4
 
3:10 PM
is there a way to make an array of tables in a database like mysql?
 
@EwokNightmares This is not a chatroom to ask your programming questions
 
@EwokNightmares welcome to Charcoal HQ. Unfortunately, we only deal about spam detecting here, and not programming problems.
Unless said problems involve our own infrastructure, of course.
 
then I guess my question is spam
sorry
 
We mostly talk about and deal with spam here
 
3:12 PM
There's a separate SQL chatroom. However, you need to ask your question IN CAPITAL LETTERS there.
</joke>
 
[ SmokeDetector | MS ] Offensive answer detected: How can I split a string into words in Java without using String.split()? by pokemon on stackoverflow.com (@dorukayhan)
tpu- by Glorfindel
 
3:51 PM
@ArtOfCode will reset soon - woke up and was not feeling good so went back to bed heh
 
Fair enough
 
[ SmokeDetector | MS ] Bad keyword in body: Galaxy s2 stuck in flight mode by abrackers on android.stackexchange.com
fp- by Glorfindel
 
4:16 PM
[ SmokeDetector | MS ] Bad keyword with email in answer: Silence/dismiss all non-contact calls by Leslie Keeth on apple.stackexchange.com
tpu- by Glorfindel
 
@SmokeDetector tpu
 
spam is the same as tpu-, see the command list.
 
@ArtOfCode Done
 
@ThomasWard reset no longer required :)
@SmokeDetector autoflagged?
 
@ArtOfCode That post was not automatically flagged by metasmoke.
 
4:26 PM
@SmokeDetector autoflagged
 
@Glorfindel That post was automatically flagged, using flags from: ArtOfCode.
 
Looks good, I say.
 
@ArtOfCode Why, though?
I tend to agree, but I can't figure out why we need to
 
@Undo there are some things - like managing your own API keys - that you need to be logged in to do, but that shouldn't need a reviewer role
 
@ArtOfCode True. As a counterargument, should anyone have API keys that we don't trust with the most basic privileges?
meh. Small thing, should be easy to require it on just /review
 
4:35 PM
@Undo And as a counter-counter-argument, API keys don't give you any abuse vectors
 
@ArtOfCode This is true
 
well, apart from DOSing the server, but you can do that without an API key
 
DDoS is real, but you could do that by just loading /graphs
 
Are those graphs remote-loading, or inline?
 
inline, probably
 
4:36 PM
should probably change that
 
why?
 
doesn't mitigate the DoS risk, but it'd make the page load faster
 
True
yeah, we can do that
 
that's what I did for the graphs on the flagging dash, so that it didn't take ages to load
 
71 autoflags last night. Not bad.
 
4:40 PM
[ SmokeDetector | MS ] Manually reported question: Why is the moderation on this site so bad? by RoyC on meta.cooking.stackexchange.com
tpu- by Glorfindel
 
meh
 
has mod attention
 
^ fp that, since it has been edited?
 
sd f
 
@Undo [:34569984] That message is not a report.
 
4:46 PM
@SmokeDetector f
 
Conflict it, will look at it later
 
In it's old version, it was certainly rude.
We can probably remove the user from the blacklist.
!!/alive
 
Smokey's dead.
!!/coffee
 
Wonder how that happened
 
4:50 PM
Status orange
@ThomasWard you're down
 
i.stack.imgur.com/SdiAI.gif (condition no longer red)
 
That means rebooting from the Tavern / SOCVR is not possible, right?
 
[ SmokeDetector ] SmokeDetector started at rev 988122e (ArtOfCode: Include flagger names) (running on teward/Aurora)
Restart: API quota is 4322.
 
!!/errorlogs 100
 
[ SmokeDetector | MS ] Pattern-matching website in answer: Prevent small dog from eating crippled cat's food by Angela Bronson on pets.stackexchange.com
  File "ws.py", line 51, in <module>
    GlobalVars.smokeDetector_user_id[GlobalVars.meta_tavern_room_id] = str(GlobalVars.wrapm.get_me().id)

  File "/home/smokey/SmokeDetector/ChatExchange/chatexchange/client.py", line 127, in get_me
    assert self._br.user_id is not None

  File "/home/smokey/SmokeDetector/ChatExchange/chatexchange/_utils.py", line 104, in __get__
    method()

  File "/home/smokey/SmokeDetector/ChatExchange/chatexchange/browser.py", line 241, in _update_chat_fkey_and_user
    self._load_user(favorite_soup)
 
4:52 PM
@SmokeDetector a whole second before I pressed the button to boot my copy :)
 
@SmokeDetector fp
 
@Mithrandir Registered answer as false positive.
 
TypeError: 'bool' object has no attribute '__getitem__'
Old, but that's a new one
 
[ SmokeDetector | MS ] Offensive answer detected: Locate printer on the network using command line by G. L. on stackoverflow.com (@dorukayhan)
 
@Undo that's the error I caused earlier
 
4:52 PM
tpu- by Glorfindel
 
needed a metasmoke deploy to fix, but that's done now
 
@Glorfindel User removed from blacklist (53416 on meta.cooking.stackexchange.com).
 
@ArtOfCode Why that?
 
@Undo I updated the autoflagged subcommand, which relies on the MS API, which I'd also updated
 
4:54 PM
oh, but it wasn't something we couldn't revert remotely
 
yeah, we don't have a revert command
 
git revert <sha> is awesome
 
git reset --hard HEAD~1
or ~2, ~3 etc
 
revert actually makes a new commit, it doesn't rewrite history
reset --hard does
destroys history, actually, which then leads to rewriting
 
aye, but then you run !!/master or git checkout master or git reset --hard origin/master and you're all good again
 
4:59 PM
@ArtOfCode smokey's been bounced with a git reset hard to HEAD~1, and i've pulled the updated master branch again because it was behind-ish. what do we immediately need now?
 
@ThomasWard Shouldn't need anything
 
@ArtOfCode yeah I killed it for the bounce, but that was before I could get online here :p
 
Deployed metasmoke, so we're good now
 
!!/rev
 
5:01 PM
sd f
translate: La Befana vien di notte con le scarpe tutte rotte
(from Italian) La Befana vien di notte con le scarpe tutte rotte
thx
 
In Italian folklore, Befana (pronounced [beˈfaːna]) is an old woman who delivers gifts to children throughout Italy on Epiphany Eve (the night of January 5) in a similar way to St Nicholas or Santa Claus. A popular belief is that her name derives from the Feast of Epiphany or in Italian La Festa dell'Epifania. Epifania (Epiphany in English) is a Latin word with Greek origins. "Epiphany" means either the "Feast of the Epiphany" (January 6) or "manifestation (of the divinity)." Some suggest that Befana is descended from the Sabine/Roman goddess named Strina. In popular folklore Befana visits all...
 
@Undo "The Befana comes at night in worn out shoes"
"Dressed like a Roman
Long live the Befana!"
 
Huh. Not sure what that hat is about, then
 
Just a shawl, because it's freezing.
 
@Undo Epiphany
 
5:06 PM
Right
 
meta.stackoverflow.com/questions/340960/… (Whoops, didn't mean to one box)
 
I just upvoted something on Skeptics, and got the hat.
 
That's information about the Dev Story information leak ^
@Undo Google translate translate it as this:
> La Befana comes by night with broken shoes all
 
Still don't understand the link between upvoting an answer and the hat
 
@DavidPostill is a better translator than Google.
 
5:07 PM
@ArtOfCode is Smokey where you need it now?
 
@ThomasWard Yes
 
cool
goes back to resting
 
@Undo it's the same as Buche de Noel, Mmmm Bacon and I Have a Little Dreidel.
Just 'participation' at a certain moment.
 
@Glorfindel Not really. I just have better google-fu than Google :)
Note: I don't speak or read Italian (or Latin)
 
5:12 PM
@SmokeDetector spam
 
5:36 PM
[ SmokeDetector | MS ] Bad keyword in answer, bad keyword with email in answer: Simple ATM program with various options by Carta Robert on codereview.stackexchange.com
tpu- by Glorfindel
 
5:52 PM
[ SmokeDetector | MS ] Bad keyword in answer, bad keyword with email in answer: Using JavaFX to build a GUI for an ATM but having trouble getting primary stage to change scene by Carta Robert on stackoverflow.com (@dorukayhan)
tpu- by Glorfindel
 
Why do spammers bother setting up profiles with real images for their gravatar?
 
It's meant to deceive us heathens into believing they're real people
 
[ SmokeDetector | MS ] Link at end of answer: search emails by originating IP by guest on superuser.com
tpu- by Glorfindel
 
That's why I keep my geometric shape. Then you know I'm real.
And you all are spammers
I'm on to you
 
[ SmokeDetector | MS ] Link at end of answer: Can't add persons to Rollbar errors in Rails by Dan St. Clair on stackoverflow.com (@dorukayhan)
naa- by Glorfindel
[ SmokeDetector | MS ] Bad keyword in body, bad keyword in title, link at end of body, pattern-matching website in body, repeated URL at end of long post: Dominant Testo is a skin care by Puntrial moor on security.stackexchange.com
tpu- by Glorfindel
 
7:13 PM
[ SmokeDetector | MS ] Pattern-matching website in answer: Meaning of HTML prefix attribute (Open Graph Protocol)? by user6903547 on stackoverflow.com (@dorukayhan)
naa- by Floern
 
8:10 PM
[ SmokeDetector | MS ] Shortened URL in body: Domain mapping to appspot project by Andrei on serverfault.com
 
@SmokeDetector fp
 
@Mithrandir Registered question as false positive.
fp- by DavidPostill
 
@SmokeDetector offensive
 
9:22 PM
 
@SmokeDetector spam
 
9:35 PM
[ SmokeDetector | MS ] Few unique characters in answer, no whitespace in answer, repeating characters in answer: Really simple FOSS CSS for a report? by Shadi Alazhari on webmasters.stackexchange.com
tpu- by ByteCommander
naa- by Jan Dvorak
 
Yeah that's NAA
Do you normally blacklist for NAA?
 
I think half of us flags those kind of posts as NAA, the other half as abusive. A NAA feedback doesn't blacklist the user, but the chance that this user will post a constructive post in the future is minimal.
 
Right but the tpu-
 
It doesn't hurt to pay extra attention to his/her next post. We can always remove the user from the blacklist if their actions warrant that.
 
Fair enough -- good content after something like that would probably be the exception to the norm so :P
I was more concerned that since it tripped three filters it would get autoflagged
 
9:46 PM
My reason for choosing NAA here would be that the user wanted to post a 'thank you' kind of answer, but hit the 30 character limit.
 
but I'm not sure how it works when there is conflicting feedback
 
It's close to being autoflagged: metasmoke.erwaysoftware.com/post/52463 shows that it has a weight of 255, close to the threshold of 280.
 
Did they fix sd autoflag?
 
@quartata nah, it's slightly more sophisticated - it's not done by reason count, but by total reason weight - if the total weights of the reasons a post was caught by exceeds 280 (currently), it gets flagged.
@quartata yes
 
@SmokeDetector autoflagged
 
9:47 PM
@Glorfindel That post was not automatically flagged by metasmoke.
 
Ehm ... why does that still say 'by metasmoke'?
 
Yeah that's the command I meant
 
@Glorfindel because I didn't change the "not flagged" reply text
 
"That post was not automatically flagged." makes more sense.
 
@ArtOfCode Interesting.
 
9:48 PM
because there are no usernames to insert into it
 
@ArtOfCode that's a good reason :)
 
Are the weights fixed or learned?
 
Do I understand correctly the reason weights are being generated semi-automatically?
 
@quartata it also has the convenient side effect that a post caught by only two reasons can never be autoflagged, since the max weight for a single reason is 100
 
wow ninjad
 
9:48 PM
@quartata even then, most mods will not decline an abusive flag on that post, but they might dispute it. So no chance for a flag ban.
 
@quartata weight = (tp_count / total) * 100
there's a task (I think) that calculates those running once a day
 
@ArtOfCode Cool. That's what I figured.
 
Yeah, every 1 day, time not specified
 
@ArtOfCode Nice
 
9:51 PM
Reason.all.each looks weird
 
Chained method calls
in Python it'd be Reason.all().each(lambda x: ...)
 
@JanDvorak Ruby looks weird ...
 
Ruby's an awesome language
 
That's fine, but why doesn't all accept a block, or why aren't record sets (or whatever it's called enumerable?
 
@ArtOfCode I'm not saying it isn't...
 
9:54 PM
Otherwise it looks like a decent DSL
 
@JanDvorak why should all accept a block? Reason is the model class. all is just a method to give you a list of every record of that type.
You don't always want to iterate over the result of all, so there's no reason it needs to accept a block
that's each's job
 
I can see why it wouldn't, I admit...
Though, I would expect that you often want to iterate over the results of all - and it could save performance if it didn't give you an array but rather an enumerable.
 
@JanDvorak Reason.all.update_all(:weight => 100)
^ no iteration. That's a pretty common use pattern
 
good point
 
update_all iterates internally, of course, but user code doesn't
 
9:59 PM
[ SmokeDetector | MS ] Bad keyword in title: Best way to get MongoDB certification training by Neeraj Somani on stackoverflow.com (@dorukayhan)
 
sd why
 
@quartata [:34578075] Title - Position 25-47: certification training
 
@ArtOfCode I would think it sends a bulk SQL query to the database
 
@JanDvorak Um. Possibly. Couldn't tell you without running it, actually
Yeah, bulk query, returns the number of records affected
 
10:18 PM
3
Q: Why was this question deleted as "spam or offensive"?

Harry JohnstonSee http://stackoverflow.com/questions/41475276. The question as originally posted is here. It's off-topic, and should have been closed (and perhaps deleted) for that reason, but it isn't spam or offensive. It looks to me as if some automated system flagged it because it attracted a spam answe...

 
it doesn't look like that ^ passed through smokey
 
10:34 PM
@JanDvorak we have that too. Post.find_each do |p| works
@JanDvorak Probably not, actually. AR only turns those into arrays lazily; before you try to actually use them as an array they're ActiveRecord::Collections or something like that. I suspect each overrides something and doesn't need to allocation a giant array anywhere.
 
So, it's a type that behaves like an array in every sense except it's faster? Nice!
 
As I understand it, yeah
Okay, so it's ActiveRecord::Relation, which conforms to Enumerable
That class contains other magic too
For example, it'll optimize queries based on what you want from them (where returns that type as well):
Post.where(:user_reputation => 7).last
  Post Load (7.3ms)  SELECT  `posts`.* FROM `posts` WHERE `posts`.`user_reputation` = 7 ORDER BY `posts`.`id` DESC LIMIT 1
 => #<Post id: 51169 ...>
2.3.3 :007 > Post.where(:user_reputation => 7).count
   (44.0ms)  SELECT COUNT(*) FROM `posts` WHERE `posts`.`user_reputation` = 7
 => 36
2.3.3 :008 > Post.where(:user_reputation => 7).where(:is_tp => true)
  Post Load (94.6ms)  SELECT `posts`.* FROM `posts` WHERE `posts`.`user_reputation` = 7 AND `posts`.`is_tp` = 1
 
Lazy evaluation for the win
 
Yep, that's it
 
10:52 PM
Restart: API quota is 1944.
 
sd f, I guess
 
fp- by NobodyNada
 
Rob
@SmokeDetector why
 
@Rob Body - Position 170-198: www.healthynaturallyclub.com
 
Rob
Is that a specifically blacklisted site?
 
11:27 PM
@Rob no, it's a "pattern-matching website"
the domain looks a lot like many spam websites
 
11:52 PM
[ SmokeDetector | MS ] Offensive answer detected: How do the blades on a propeller generate thrust? by POOPY on aviation.stackexchange.com
naa- by NobodyNada
 
Why not TPU?
 

« first day (1145 days earlier)      last day (2682 days later) »