« first day (1521 days earlier)      last day (2292 days later) » 

6:02 PM
@SmokeDetector mod-flagged, let's see what happens.
 
Hmm.. I think the conflicts_with is too tough to work with
I think a good/neutral/bad classification might be better
 
Does the green bar on suggested edits ever move across?
 
@ArtOfCode Is there a way to make AR use some size of tinyint or am I stuck with regular integers?
 
sure
specify tinyint
 
...oh
 
6:09 PM
but if you want a boolean then use boolean
 
Is this for inferno? @ArtOfCode
 
I assume so
 
Looks like I want smallint
Or is that 2 bytes
Wait
Nevermind haven't had any coffee today...
 
Look at the attached image on this post I found on SO. Is that X Factor?
 
API quota rolled over with 7887 requests remaining. Current quota: 19999.
math: 519
stackoverflow: 464
superuser: 112
physics: 97
serverfault: 79
codegolf: 68
askubuntu: 66
security: 48
english: 48
unix: 47
apple: 38
drupal: 34
salesforce: 30
electronics: 29
webapps: 28
es.stackoverflow: 26
scifi: 25
bitcoin: 25
wordpress: 25
gaming: 23
workplace: 22
worldbuilding: 22
mathoverflow.net: 20
interpersonal: 19
ell: 19
money: 19
academia: 19
sharepoint: 18
dba: 17
gis: 16
android: 16
travel: 16
ethereum: 16
stats: 16
meta: 15
graphicdesign: 15
rpg: 15
mathematica: 15
islam: 14
 
6:21 PM
Interesting. Smokey appears to be one of the few bots that actually listen to the realtime websocket currently
Everything else fetches latest questions from SO
So it's occurred to me one of the biggest advantages could be allowing easy expansion to other sites
 
-1
Q: Super Basic Docker and Angular2 Setup

AlandroidI need a simple working example of Docker + Node/Angular2. If anyone can find one that actually works i will pay you.

Pay on a free site, that works :)
 
@quartata How do you figure that?
 
@Mithrandir Figure what?
 
The meaning of life?
 
@quartata How do you know how many bots watch the socket?
 
6:35 PM
Reading their source code
I went through most of the SOBotics code to know what Inferno needed
Which was rough because most of the bots are in Java
 
7:02 PM
Any thoughts on that ^ before I submit?
Not too happy with the flame yet, but don't have the time to try and fix it
 
That flame looks a bit pixelated
 
Yeah the 3d effect is messing up the individual shapes
I wanted to make it look as if it was it's own element, not simply "painted" on the shield
Like how on shields the coat of arms is crafted seperately, then stuck/bolted/whatever onto the shield
 
7:20 PM
@CalvT븃 two thoughts: can you make a flat version as well as the gradient version, and have you got a design file that I can have a copy of
maybe a drop shadow around the flame instead of the 3D effect might work?
 
user image
6
@ArtOfCode was going to submit that ^
But can give you the AI file if you want
 
@CalvT븃 go for it
wouldn't mind the AI file anyway, so I can play with it, but submit away :)
 
@ArtOfCode any prefered way?
As in sending you the file
 
@CalvT븃 whatever's easiest. There's an email address on my profile if that's the easiest, or Drive, or whatever
 
hello @ArtOfCode yeah?
 
7:27 PM
aye
 
Ok sent
 
ta
 
@SmokeDetector k (was mod flagged and deleted)
 
^ @ArtOfCode FYI that conflicts with your feedback.
 
7:39 PM
that would be because my feedback is wrong
 
@CalvT븃 SNAZZY.
I like it!
Submit to what though? Is there a smokey logo competition going on?
 
@doppelgreener yup --->
 
8:07 PM
[ SmokeDetector | MS ] Bad NS for domain in body: Blank bar on mobile site, panel far too thin on mobile by Thomas O. Anderson on stackoverflow.com (@iBug @TetsuyaYamamoto)
 
@SmokeDetector f
 
8:21 PM
Restart: API quota is 18707.
 
8:46 PM
[ SmokeDetector | MS ] Bad keyword in title, phone number detected in title: is mobile phone number of facebook 1877-202-6081? by mike benic on stackoverflow.com (@iBug @TetsuyaYamamoto)
tpu- by Glorfindel
 
Flags on this post ended up being declined. :/
 
it's just a bad question
 
[ SmokeDetector | MS ] Manually reported question: Best Crypto Currency telegram channels by Ranjit Kathiriya on stackoverflow.com (@iBug @TetsuyaYamamoto)
tpu- by Glorfindel
 
could be a compromised account ...
 
9:02 PM
@ArtOfCode While writing up the README for Inferno I ended up changing how the config is structured to account some of the stuff I've thought of over the past few days:
se pls
oh I see
oh well
    {
        "types": {
            "posts|comments|edits|suggested_edits|reviews": {
                "sites": "*|<site name>",

                "query": {
                    "method": "POST|GET",
                    "route": "...",

                    "response": {
                        "key": "...",
                        "type": "switch|score",

                        "reasons_key": "..."
                    }

                    "templates": {
                        "chat": "...",
                        "web": "..."
@ArtOfCode I know it's long but could you go through it to see if the structure is at least somewhat self-evident?
I'm going to explain what each key does but
This will probably take some restructuring of the models :/
I was hoping to not have to make extra migrations
 
9:17 PM
@quartata what are types.query, types.query.templates, commands.type, and rooms.x.x.deletionwatcher and conditions?
 
types.query is the dictionary defining where to post to and how
types.query.templates contains the template string for formatting the chat report and also the Handlebars template for the web view
 
@quartata where to post what to? for what purpose?
 
for scanning the post
 
these are mostly questions for a README to answer, but they will need to be answered
 
this is the per-bot configuration
@ArtOfCode I'm in the middle of answering them in the README
I'm still writing it
commands.type can be one of three: static, local, remote
 
9:18 PM
@quartata that feels like they should be not part of the config file
 
static will just post the string contained in data
 
views are kinda things that should have their own file
 
@ArtOfCode This isn't a file, it's posted to /bots/create or /bots/update_json
Bot authors will probably store it in a file in their repo
Then post it as part of a deploy (perhaps from CI)
 
the chat template is borderline, I guess, but the web view could still kinda do with being separate
@quartata I'd suggest a separate route for it. /bots/update_template/:type or something, and just take the entire request body as the template - means you don't have to JSON-encode it first
 
for the web template?
perhaps. It probably will be the largest part of the file
aside from any local commands
which I didn't finish explaining
remote will post the message to a given HTTP endpoint and reply with the response
local is the one I haven't fully figured out yet. I intend for data to be some sort of DSL that can do limited database queries and string manipulation
It's to fill the gap for things like why or autoflagged?
It's stuff that Inferno doesn't need to wake up the bot for
It's all based on stuff in the database
Here's the information on the post types by the way:
- `types` Contains one or more keys defining the post types this bot is subscribed to:
    - `questions`: This monitors the SE real-time websocket (`155-questions-active`) and reports all questions bumped, **with their answers included.** If you're only interested in answers, subscribe to this anyways and scan only the answers (children of `"answers"` key).

    - `comments`: This polls the API route `/comments` to retrieve new comments at an allocation-dependent rate (see Allocations). This post type does not support the `"sites": "*"` (all sites) option -- you must specify specific sites.
re the last note: I may consider asking for a "real-time" tab for review queues across all sites where you have review privileges -- this would force them to add a 155-review-dashboard-update that we could listen for all sites
unlikely but
Oh I forgot: rooms.x.x.deletionwatcher is for deleting chat reports if the posts have been deleted
And conditions defines what gets posted to the room (like our msg_types)
basically you can put a key that's in the response, and then have a condition like "key must be greater than 6" or "key must be equal to xyz"
I forgot an in predicate
so you can have "key must not contain All-caps answer" or some such
hmmm I wonder if the rooms dictionary should be under a specific post type
I think I should specify the interface (what each bot route is expected to get/return) first before the configuration
 
9:46 PM
@quartata You aren't going to get it. A month or so ago there was a meta post saying development was frozen.
 
That was for Christmas, no?
I mean, we got a fix for that API bug
 
Bug fix is different than new feature
 
Fair, but you're implying a total freeze
also technically this was a new feature
it needed to not cache empty responses
it wasn't a bug in an existing feature per se
more like a corner case
but I'm being pedantic
 
@Andy how did I miss that
 
I'm looking for the post, but it's a common term. Give me a few
 
9:51 PM
yeah because if shit breaks around christmas you have unhappy customers and unhappy employees
 
Ok. Yes. You are being pedantic.
 
fixing bugs caused by a new deploy on christmas eve is a good way to get resignations
 
DigitalOcean dropping prices and/or adding capacity to instance types. This makes them a possible viable alternative for MS hosting.
$5/no one now has 1G ram.
 
how many cores?
yes I know I'm obsessed with cores
 
Probably one.
 
9:55 PM
well still 1G ram
not bad
of course MS's problem isn't really RAM I wouldn't imagine
Wow, I had no idea how much stuff there was to write for this README...
This is like the ultimate rubber duck
 
@ArtOfCode it was an update, not a brand new post. meta.stackexchange.com/a/291032/186281. They are focusing development effort on Channels
"We appreciate your patience during this period, and we’ll update you again as soon as we have a better ETA on when we’ll be able to start scheduling new features."
 
ah, that would be why I missed it
 
10:30 PM
 
11:04 PM
cc @ArtOfCode @Undo @JF
 
[ SmokeDetector | MS ] Username similar to website in answer: Bypass SSL when I'm using SUDS for consume web service by Lucas Marques on stackoverflow.com (@iBug @TetsuyaYamamoto)
 
@quartata Double quota key is a discussion we need to have if that's something we want to do. 20k was authorized for Smokey specifically, not anything else.
 
@ArtOfCode ok I can take that out
 
already did ;)
 
Wait
You need to edit the Quota Allocation section too
I used 20,000 requests for the calculations
 
11:07 PM
heh, hadn't got that far yet
 
It's very very long, sorry
But it kinda has a lot to cover
 
...this sounds like a bad idea
edited, but...
 
hm?
 
why are we not making bots register on StackApps and give us their own request keys, then splitting requests across those
feels like individual bots should be registered individually, regardless of whether they all use the same service to do their work
 
Regardless of whether we use multiple keys and pool their quota, we still have to dictate how much quota we use for each type
 
11:11 PM
sure
 
That's what that section is about
The post types aren't the bots themselves, they're the routes
 
but that can be something we define as a percentage of total requests, rather than an absolute value
 
Oh, that.
Yeah I thought of that
 
then if we have one bot using inferno, we have 10k requests - if we have 23 bots using it, then we have 230k requests
 
My concern was that if our quota changed, I didn't want the quota allocated to change with
It needs to be updated
 
11:12 PM
why not?
set it as a percentage, calculate the actual values on app startup (and update as necessary), and scale your request rate based on the total available
 
Even if Badges only get 1% of the quota, that doesn't necessarily mean it should be 200 requests per day = polled every 5 minutes if our quota suddenly doubled
That's a waste of quota, we'd want to assign that elsewhere
Well at any rate we can change that fairly simply
It doesn't affect the intent of that section I think
See this is why this README is good. I thought I had already told you about this but I guess I was wrong, so here's my projectile barf of ideas for you :P
 
@quartata that's true enough - you could probably define it as a mathematical function of total instead, to solve that case
 
Ah yeah
Like it can be linear but with a maximum
max(c * total, d)
I posted this to SOBotics by the way. Petter said he'd pin it but I don't think he's on right now
anyways keep reading if you haven't finished it
 
or better, badges_quota = Math.log(total_requests + 1)
 
because I'm sure there's things I missed from the config section
@ArtOfCode ln or log10?
(assuming log10)
 
11:18 PM
@quartata Math.log is log_10
 
Yeah OK that makes sense
Although I think you meant Math.log(total_requests) + 1?
unless you're thinking total requests = 9999
 
no I meant Math.log(total_requests + 1)
for mathematical correctness
 
ohhh gotcha
 
n = 0; log_10(n) = 0; log_10(n + 1) = 1
 
do excuse if I'm a little weird, I just got a bunch of blood drawn
 
11:20 PM
though now I think about it the former would make more sense
 
anyways if I do make that language for local commands we could use that to specify the allocation functions
 
@quartata pinned
 
cheers
 
and you'd want more than plain log_10, but details can be worked out
maybe x = 100 * log_10((t / 10000) + 1)
 
where are you in the README so far?
I have a few questions to direct towards you when you have reached particular sections
 
11:25 PM
I'm not, I'm playing with functions :P
 
figures
 
@quartata question away and I'll answer when I hit 'em
@quartata yeah, literally
 
I like desmos for this sort of thing
@ArtOfCode ok
 
@quartata precisely what I'm using
 
So for the commands I structured it like the traditional prefix/reply command thing we've got
But what I failed to realize is that the SOBotics bots like to do stuff like this:
@SmokeDetector alive
 
11:26 PM
@quartata Post - Username similar to website
 
woops
Or
@Smoke alive
that is, they ping it for their prefix commands
And since it follows the usual ping rules, the actual ping part changes
It could be SmokeDetector or Smoke or Smoked (not SnokeDetector though, sorry angus)
For now I just brushed it off by saying use aliases buuuutt
I don't want to get a bunch of questions why @Natt tp doesn't work anymore, just @Nat and @Natty
Or @FireAla
that is to say, you can only sanely put the most common prefixes in
 
regex
 
Yeah that was my conclusion too but I don't want people to use those for every command because it'll make dispatch slow
 
make the chat auth routes return username as well as ID and regex that
 
Oh
hmmm
 
11:29 PM
@quartata no reason why it should
 
@ArtOfCode Sorry, I thought you meant rather than having the command names be plain have them be regexes
Like "@Nat(\w*?) alive": {...}
 
[ SmokeDetector | MS ] Bad keyword with email in answer, email in answer, pattern-matching email in answer: Is it possible to make a contagious cure to a virus? by Torin martins on biology.SE
 
well you could
that would still not be slow
 
It would be much slower than a trie
I mean I'd do it
but I was hoping only a select few commands would be like that if I did implement it
o shit I just realized I totally left out arity
 
but by "much slower" you mean "much slower" in local-machine terms, i.e. a few milliseconds
 
11:31 PM
yes
 
you're gonna get more variance than that just by sending things across a network :P
 
It could get worse than that if there were a lot of fancy regexes
Like if all of Smokey's had lookbehinds or something
 
@quartata standard social enforcement, "don't be an idiot and your commands won't get disabled"
 
fair
There's already potential for worse
e.g. subscribing to every site for polling
I'm assuming we're going to be working pretty much hand in hand with SOBotics to bring over the bots though
I've been thinking about how I'd port all of them pretty much
just to make sure I'm not leaving anyone in the lurch here
(currently in the lurch: badger, tagwikimonitor)
 
11:57 PM
oh also cc @JF @thesecretmaster on the inferno readme
 
J F
@quartata for templates: have you considered mustache?
 
Possibly. I picked Handlebars because that's what Guttenberg's CopyPastor uses
I like the Mustache could also be used for chat though
and that it's server side
 

« first day (1521 days earlier)      last day (2292 days later) »