« first day (1250 days earlier)      last day (2575 days later) » 

@SmokeDetector looks like an honest mistake, cat on keyboard?
 
@quartata no
 
@tripleee gif or didn't happen
 
no animation there, sorry
 
I can't see how that relates.
 
2:04 PM
@ArtOfCode Regarding flat files that's the reason why I wanted SQLite at first -- no real user setup required for that
 
@quartata you've still got to install it, which is the major bit of setup
 
@JanDvorak ahhh, my bad, fooled by the answer vs question dichotomy
 
you don't have to do much more than that for MySQL - sudo apt-get install mysql-server, follow the config prompts, then sudo mysql_secure_installation
 
I really wish links to nonexistent answers wouldn't simply take you to the question ...
 
it took me to the question's revision page
 
2:05 PM
tpu- by tripleee
 
@quartata pickles/flat file would be much easier than a full blown DB. Also, privileges could possibly be stored in the code like they are now, but we need to have a discussion on that (GH issue?). Also, isn't MySQL going to be a pain to set up on windows if we want windows compatiability?
 
@ArtOfCode Install SQLite? Or MySQL?
 
I mean, I'd like a gif of an actual cat sending a message like this
 
@angussidney no, you can run it on Windows. Just.
@Andy either
 
@angussidney No. MySQL/Maria is easy on windows
 
2:06 PM
@ArtOfCode And most people probably dispense with the latter command anyway... :p
 
@ArtOfCode SQLite doesn't require set up
 
@Andy sudo apt-get install sqlite, no?
 
@angussidney Another good point which is what makes SQLite more appealing
 
@ArtOfCode Built into Python: docs.python.org/3/library/sqlite3.html
 
@ArtOfCode doesn't it come preinstalled with Python or something like that?
 
2:07 PM
@Andy Oh, sweet
Okay, in that case the question becomes why not SQLite
 
Syncronization across instances is a pain
 
The trouble is how we sync it. With MySQL we could open a connection to MS's DB and just do a join
 
Anyway, I'm going to sleep now, I'll be back to discuss this in the morning. o/
 
'Night
 
\o
 
2:08 PM
@quartata no we couldn't
Direct remote database access is not a risk I'd be willing to take, and I doubt @Undo would either
 
Agreed
 
For cross-sync, you'd just have to dump to SQL and share the dump somehow
 
The way I see sync'ing needing to work: Local instances use whatever (SQLite, MySQL, carrier pigeons), it doesn't matter. A "master instance" would need to have an API wrapped around it. When an instance fires up/needs to sync, it hits that API to pull/push data
 
[ SmokeDetector | MS ] Bad keyword in body, bad keyword in title, blacklisted website in body, link at end of body, repeated URL at end of long post: Sexuality in spite of slant muscle by Houst on superuser.com
 
@ArtOfCode hrmmm
 
2:13 PM
[ SmokeDetector | MS ] URL in title, bad keyword in body, bad keyword in title, pattern-matching website in body, pattern-matching website in title: Phallyx Male Enhancement: healthpowerzone.com/phallyx/ by sewardshane on graphicdesign.SE
tpu- by Henders
 
@Andy I was thinking something sort of like this, except less centralised and more distributed. What if we had a sync_data.py script that you could call from the command line with an address to get data from? So, if you fired up an instance and wanted to sync from mine because mine was the last active instance, you could run python sync_data.py 52.36.87.122:28564, and it'd connect to my instance and copy the data across?
 
@ArtOfCode Are you going to open your firewall for that?
Because I'm not :)
 
That sounds like an even bigger risk not to mention it involves port forwarding
 
Speaking of, I still need to set up my copy of Smokey.
 
Requires careful firewalling and port-forwards, but outside of using MS I don't really see a better way. Someone has to open a firewall, whether it's MS or a master instance or whatever.
 
2:15 PM
If one Smokey instance is compromised all of the other's data can be poisoned, and I'm assuming the security of a Smokey instance is weaker than that of MS
 
Let me think about ideas for a bit. I don't like the idea of needing to open my firewall/forward ports to run smokey though
 
@quartata Smokey is remote-code-execution-as-a-feature.
 
@quartata That's going to be an issue as soon as instances are syncing, no matter what architecture we use.
 
Anyone with code access here can push code and have it run on my server without me ever seeing it happen.
 
@Andy If MS is the syncer the risk goes down quite a bit
That is MS has the final say on everything
 
2:17 PM
@quartata Does it, though? If one instance is compromised, it can still push poisoned data to MS.
 
^
 
We could use MS to sync, but it would have to be via an API on the Rails server, not remote DB access.
 
I'm saying that all we'd be doing is pulling not pushing
 
The only way to prevent that is adding more complexity/validation before something is sync'd
 
@quartata something's got to push, if you want to sync data
 
2:18 PM
That is MS's copy is the master, any posts made during MS downtime is SOL
 
@quartata No, he's saying that if we update a blacklist or privileges or other data the other instances need, it needs to be pushed to the master. That is the point of poisoning.
Downtime is another issue, but one that can be solved/mitigated by caching data on each instance
 
MS is reasonably stable these days, particularly now Undo's set up logrotate
 
Then we don't update the privileges or blacklist locally. We only modify that on MS when it's up and let everyone else pull from it
The only thing that can and should be pushed from an instance to MS is the list of previous messages
 
@quartata We shouldn't forget about caching things locally entirely, though - having some insurance against downtime is worthwhile.
 
That's what we're doing
 
2:25 PM
3 mins ago, by quartata
Then we don't update the privileges or blacklist locally. We only modify that on MS when it's up and let everyone else pull from it
what am I missing?
that seems to be saying you think we shouldn't cache things locally
 
Assume that metasmoke can die for eight hours a day, and we're just lucky when it doesn't. Don't have a ton of important stuff off it
 
Once an instance has its data it uses only that data and does whatever it wants to it. But if MS is up and Smokey reports something MS updates its blacklist for the next time an instance starts. If MS is down then the reporting instance can add it to its blacklist like normal but no one else gets that change
 
In related news, what's the story on github.com/Charcoal-SE/SmokeDetector/issues/…?
When you say "reporting instance", what's that?
 
@Undo currently active instance
 
The SmokeDetector that caught the post
 
2:28 PM
Yeah, so we'd need to actually have that concept. It's not enforced anywhere right now
 
@Undo we have a resident troll who definitely isn't me on a sock account
 
Gotcha. Figured it was something like that.
 
In effect the only way a Smokey can modify MS's blacklist is by reporting a post which is not a silent operation
And if Smokey blacklisted something while MS was down MS just doesn't get that
 
@ArtOfCode yeah, no. One option could be to use websockets to move data around instances, that'd allow cross instance communication that doesn't require anything to be stored or firewalls opened
 
proxied by Metasmoke?
 
2:33 PM
Crap I remembered that addblu is a thing...
 
Kinda, and enforces the idea that it's only about four percent reliable
 
It'd have to go through MS, otherwise the instances still need an open firewall/forward to get the incoming web socket connection.
 
You could use a plain TCP proxied by MS as well, I guess
 
For that that use IPython and Python 2.7. Don't upgrade to IPython 6.0. It drops support for Python 2. It does add other new features though.
 
Here are my priorities for most any new change: (1) is this a real solution to a material problem, and (2) is this the simplest way to solve the problem, including factors like resource use and ease of setup.
When setting up a Smokey instance now includes SQL anything, that's a whole new level of resource requirements.
Both technically and human-ly.
 
2:37 PM
what would we be storing in this database, @quartata, and what do we need that data for?
 
@JanDvorak @Andy Nah, just use the websocket connection we already have. Just turn it on during standby. Have metasmoke rebroadcast stuff.
 
[ SmokeDetector | MS ] Username similar to website in answer: Rendering to multichannel .exr has empty rgb layer by Joel Howe on blender.SE
 
@Undo Right, so it's going through MS. That's all I was saying. Instances can't talk directly to one another.
 
@Andy Not technically, no.
 
Which is fine with me :)
 
2:40 PM
@ArtOfCode Previous messages blacklists previous posts and privileges at minimum
 
No reason to even think about direct communication when we have websockets
@quartata There's a GitHub post somewhere where I ran numbers on user blacklist effectiveness
 
fp- by DavidPostill
 
@quartata I can see a pretty good argument for keeping privileges in a database, because it would let us modify and check them on the fly without code edits or reboots, and it would let us have multiple privilege levels.
 
My thoughts on databases/syncing - if we are going to move away from flat files, local instances should use SQLite. Then instance owners don't need anything other than Python and required smokey libraries. No Mysql required. Syncing with whatever turns out to be the master needs to be done via API calls (not direct DB access) and changes pushed out to other instances so they can update their local SQLite databases.
@ArtOfCode waves celebratory "multiple levels" flag
 
Agree. Big bold 'if'
 
2:44 PM
So the question becomes: Is it worth moving away from flat files?
Art has a good reason above, reduces code edits for certain things that really don't need to be edits
 
Pickles are just as hard to sync, harder to work with programmatically and are lots of files vs one file
 
Flat files, not pickles
 
Pickles are what we're using currently though
for posts that is
 
<--- Background: If it's not a database, it's a flat file. I call Excel documents, CSVs, TSVs, HDF5, etc. "flat files" at work.
 
Blacklisted websites are a different story. I was planning on just doing blacklisted users in storage
@Andy I assume he means text
 
2:49 PM
Side note: I know it seems like I oppose everything suggested for this project, and it's probably because I do. I've seen a lot of silly stuff happen because no one ever asked "why". It's not a question many people are used to answering, so it's a fun one to ask until someone gives a straight answer. Ideally, all I need to see to be convinced of anything is a simple, honest cost benefit analysis. There a subjective human involved, but I do try.
 
Fun fact: .ods (open-document spreadsheet) is just a giant gzipped xml table, with a couple of small satellites holding the configuration
 
@Undo You'll do well, and be hated by coworkers, at work.
 
We've got a thing that mostly works right now, so I'm going to default to the known good until something is shown otherwise.
2
 
No I totally understand. I appreciate it actually since it gives me motivation to work the kinks out before implementing
 
@JanDvorak I think I've heard that xlsx files are the same, but I haven't looked to confirm that.
 
2:52 PM
or even thinking about implementing
@JanDvorak Pages docs too.
 
And I do appreciate all the work you're doing on this, even if I'm still skeptical about some of it.
Still need to get acceptance conditions lined out. Forgot about that.
 
I'm going to agree with that sentiment. I've been throwing lots of critical questions your way too. I still think that Smokey could handle a huge upgrade, done in pieces. But, in the meantime, maybe some of what NG is working on can be ported over. If not directly, the ideas.
 
Totally unrelated: if the fabled SmokeDetector-SE integration ever happens, do you think they'll rewrite it all in C#? :P
 
no
they'd probably interface a python service using FFI or - more likely - a TCP loopback
 
I guess they could use IronPython
 
2:58 PM
Python does run on Windows ;)
 
Yeah but all their stuff is in C#.
They need something to interface with it
 
An HTTP loopback would suffice
 
if it happens, the link will be from MS where everything can be done over HTTP
 
3:14 PM
So, what benefits do we get from using a database? Assume SQLite for now, because of the setup thing.
There's the thing about live-editing things without needing to modify code or restart.
 
@ArtOfCode feature: i can steal ur dataz
 
good luck with that :P
 
@ArtOfCode thx
 
[ SmokeDetector | MS ] Bad keyword with email in body: Need instructions (help) in MATLAB by user156262 on math.SE
tpu- by Henders
 
3:44 PM
45
A: Is Documentation a failed experiment?

Shog9I haven't been closely involved with the Documentation project. I've been watching it from afar with some interest, and I pitched in here on meta for a few weeks after the public beta rolled out, but outside of a few really frustrating discussions about reputation I haven't really been a part of ...

Smokey you're badass and I'm jealous.
 
@M.A.R. Yeah that's what Rand al'Thor was saying :P Smokey as a dirtbike! chat.stackexchange.com/transcript/message/36819116#36819116
 
Oh
My sidebar is too cluttered to see that.
 
I like that SOCVR is the shredder for getting rid of bad questions :D
 
I wonder how long he thought about those analogies
 
Hours :P
 
3:51 PM
5 milliseconds?
@Henders Oh, not the Shog I know
 
I only know of Shog so I'll defer to your judgement :P
 
1
Q: Should moderators be able to view deleted posts across network?

AJ HendersonWhen dealing with a problematic user, it is beneficial to be able to see if they have behaved badly in general. Especially in the case of spammers, one of the greatest indicators that a post is promotional is if they are making similar posts across multiple sites, however, if other sites have re...

 
@ProcessedMeat don't give us more power. Ugh.
 
@Seth What is wrong with you? Where's that power-hungry mad-scientist instinct thingy?
LET YOUR INNER SETH FREE
Or upside down Seth
I forgot which is which
 
me too.
 
4:02 PM
@ArtOfCode One file, easier and more efficient tools for manipulating the data
 
[ SmokeDetector | MS ] Bad keyword in body, bad keyword in title, link at end of body, link following arrow in body, pattern-matching website in body, +1 more: How Does Genuine Colon Cleanse Detox Work? by Hannah Ryan on superuser.com
tpu- by Ferrybig
 
@Seth lol
 
@quartata I think we should continue using the flatfiles, maybe in the csv format, they look nicer in git commit summaries, and can they can be easely ret in multiple languages
 
though looking at metasmoke, that may actually serve my needs without needing anything else.
we just have to deal with a whole lot of product promotion spam on video production, but there are also a lot of little cheap small utilities that people may have actually found useful too and without going through them all to figure out which are actually legit recommendations and which are link spam to promote up GPL software being reskined and sold and making us look like crap for having links to them as answers is rather labor intensive
but I'd rather not nuke a new user's legitimate recommendation that just happens to be to a non-major product by accident if I can avoid it
 
4:20 PM
@ArtOfCode We don't need to have code updates to do things like adding user permissions, black listing a user, unblacklisting, etc. Instead, it's an entry into the database and having the application pull the new data into memory (if it needs to be in memory). It pulls, essentially, configuration data out of the repository and potentially eliminates the 100s of commits we have for simple things like blacklisting (assuming that's in the DB as well)
 
@Ferrybig Not stored in the repo.
Blacklisted websites will still be a text file most likely
This is blacklisted users (and other stuff)
 
@Andy if we have a db, I'd vote to put as much as possible in it, partially because of what you mention there and partially just to make it worth having
 
@Andy The problem I have with having blacklisted websites in the DB is right now we have a nice system where pull requests are used as a democratic-ish system for blacklisting things. We'd lose that
 
@ArtOfCode I agree. If we go to a DB, I don't want something that is a weird mashup of flat files/git pulls and a database. One or the other.
 
@quartata only for not-code-admins
 
4:26 PM
Do you not then get the same problem in reverse? You pull at some predefined interval even if nothing changed. The bonus being that it means you no longer have to commit and automatically pull when a blacklist happens?
 
Which you could solve with an approve-blacklist command
 
Right which is most everyone
 
That can easily be a part of the database structure - an is_active field on the blacklist table
Blacklisting by not-code-admins starts inactive until a code admin approves it
Key the approve command on the table primary key
 
@AJHenderson wat
people are reskinning GPL software and trying to sell it?
regularly?
 
@Seth very regularly
 
4:34 PM
that's crazy.
 
like I probably nuke 4 or 5 spammers a month for it. It's 95% of the spam we get on both video and sound
and that isn't a ton of volume, but relative to the volume those sites see plus the fact that I don't do all the nuking
but yeah, video and sound software is so expensive that (generally foreign) companies decide to reskin GPL software and sell it for $30 or so
often marketed as "free" but actually having a cost to make real use of
it's depressing
most of the time they are obvious, but there are a few that get good at trying to make it subtle
it might even be the same guys, but they change names regularly which makes them hard to pin down
 
4:56 PM
Dear SmokeDetector developers! Please, add JSFiddle to a list of exceptions for warning “Link at end of answer...”. I hope that alarming on a links to code example is inappropriate on programming QA site.
An example of such false alarm:
The answer being mentioned:
-1
A: Добавленный div не смещается вниз JQuery

Yaroslav KurovПодключи стили ниже бустрапа не нужно будет ничего перебивать. Дай всем элементам которые появляются .goods {display: block;} Если не получится залей на http://jsfiddle.net

 
!!/test-a ...................... <a href="https://jsfiddle.net">try this fiddle online</a>
 
> Mostly dots in answer
----------
Post - Post contains 22 dots out of 45 characters
 
?
 
jsfiddle seems to have large number of false positives: metasmoke.erwaysoftware.com/…
 
Let me see
 
5:01 PM
@Ferrybig Yes but overall not many occurences
 
!!/test-a Подключи стили ниже бустрапа не нужно будет ничего перебивать.
Дай всем элементам которые появляются

.goods {display: block;}
Если не получится залей на http://jsfiddle.net
 
> Would not be caught as an answer.
 
Can't use Markdown
It looks like there's only one TP that's link at end of answer with jsfiddle
and the link in question wasn't a jsfiddle link anyways
the jsfiddle link was in the middle of the post
 
Link at end of answer is one category that is being tested, I think it comes natural that it has a higher FP rate. Do we really need the extra complexity to exclude certain domains from that category? Are there other spam rules that are enabled/disabled per site?
 
@ArtOfCode @Undo I'd like to run my Py3 Smokey alongside existing Smokey on the SmokeDetector account in CHQ Only mode, and I can adjust the chat prefix to show Py3 Test or such, so we can avoid the 404 errors on other chat sites. Unless that's a bug I'd like to be able to 'test' alongside actual smokey, since AquariusOne adds additional errors due to chat.so and chat.meta.se
objections?
(it's 404ing on other rooms >.<)
 
5:17 PM
@ThomasWard it doesn't have enough rep to talk in MSE (I saw it just joining)
 
@rene I know
and it fails on 404s and forcibly restarts
that's the core problem - in testing ithe Py3 fork it needs to NOT get the 404s
otherwise it just dies horribly
oops
looks like it exploded
>.<
FIGURES
oh my syntax failed no wonder
wtf
6 messages moved to Trashcan
seriously
urgh
oh
that's why
 
Hello!
 
jesus wth
3 messages moved to Trashcan
 
5:36 PM
@rene It's just one negative lookahead
 
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
Restart: API quota is 19987.
 
yay that looks better.
at least it doesn't 404 now :P
whoops i have to stop closing the windows lol
 
@ThomasWard Just use tmux, so you can't kill it by accident
 
@Ferrybig can't when in an IDE
i closed the IDE by accident :P
it's running in a Debugger
 
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
Restart: API quota is 19980.
 
5:42 PM
now that's gonna complain about no MS socket, but that's fine lol
 
@ThomasWard ArtOfCode/EC2
 
!!/location
 
@ThomasWard The Call of Midnight
 
good. GOOD.
it's not dying now muahahah
TCOM is only in here so blah :p
@ArtOfCode @Undo I've got TCOM running the Py3 fork next to Smokey on the same chat, but CHQ Only and without MS integrations
 
@QPaysTaxes I check a box in Xcode
 
5:44 PM
!!/coffee
 
@KrijnToet brews coffee for @KrijnToet
 
You can do it from the command line by compiling with -fsanitize=address
 
@KrijnToet brews coffee for @KrijnToet
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
@QPaysTaxes ArtOfCode/EC2
 
!!/alive
 
Restart: API quota is 19956.
@NobodyNada Kinda sorta
@QPaysTaxes The Call of Midnight
@NobodyNada You doubt me?
 
5:44 PM
They're sure getting rate-limited
Thomas's debugging right now
the Call is his debugging instance
 
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
 
@QPaysTaxes yes we let them both go and one died so blah
 
Restart: API quota is 19918.
 
TCOM died so lol
oh that's why it didin't trigger lol
 
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
Restart: API quota is 19911.
 
5:49 PM
@QPaysTaxes i'm side-by-side testing the Python 3 fork over
if it all works okay, and doesn't blow up majorly then we're good to go heh
'course whenever i change the breakpoint rules in TCOM it needs to be restarted lol
 
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
Restart: API quota is 19896.
 
@ThomasWard So how's this workaround? Too horrifying? :p
 
@ThomasWard I must say, smokey has a weird commit message, is this intentional?
 
@Ferrybig which weird commit message, you mean PY3 Test at the beginning lol
@NobodyNada a valid workaround. Just do it.
 
k, thanks
 
5:53 PM
PY3 Test [ SmokeDetector ] SmokeDetector started at rev a925231 (Thomas Ward: Merge pull request #1 from Charcoal-SE/master) (running on The Call of Midnight)
 
@ThomasWard Merge pull request #1 from Charcoal-SE/master, why did it decide to merge the first pull request? That pull request is just a fixed regex
 
Restart: API quota is 19876.
 
@Ferrybig ah, that one. Yeah when you look at the fact it says Py3 test, I had to rebase from the original codebase
because we had a huge set of blacklist changes since the last push to the fork, so the rebase became a 'merge' so blahg
wow it died without error wat
probably because it tried to call MS and the socket doesn't exist
 
Restart: API quota is 19854.
 
we'll see this time though what the error is muahahah
ah yeah it's dying on socket failures. Figures.
there we go that will be fixed now...
 
5:59 PM
Restart: API quota is 19832.
 

« first day (1250 days earlier)      last day (2575 days later) »