« first day (1483 days earlier)      last day (2338 days later) » 

8:01 PM
[ SmokeDetector | MS ] Pattern-matching website in answer: Does "display:none" prevent an image from loading? by Kemist on stackoverflow.com
fp- by ArtOfCode
 
surprisingly enough
that page is not NSFW
just a blank page
 
@ArtOfCode uhh.. then the page doesn't load properly for you
 
@Floern bah, no, I just didn't look at it for long enough
opened it, was blank, closed it
but it redirects after 5 seconds or so
shhh
 
8:29 PM
beeps randomly at Smokey
 
 
1 hour later…
9:32 PM
!!/tea
 
@quartata brews a cup of chamomile tea for @quartata
 
!!/beer
 
@Glorfindel No such command 'beer'.
 
!!coffee
!!/coffee
 
@ByteCommander brews coffee for @ByteCommander
 
9:34 PM
at least that
 
fp- by ByteCommander
[ SmokeDetector | MS ] Link at end of body: Python Scrapy Without Splash by amir arabnezhad on askubuntu.com
fp- by Glorfindel
 
10:02 PM
[ SmokeDetector | MS ] Bad keyword in answer, bad keyword with email in answer, blacklisted website in answer, email in answer: Is it better to spread debt out on multiple credit cards or consolidate it to just a few? by mike larry on money.SE
tpu- by Videonauth
 
@ArtOfCode and @quartata you are both getting way ahead of what Helios will do initially. It is designed to pull out the things that can be shared between instances - blacklists and notifications initially. Both can be accesssed without a key. Updating without a key will not be possible
 
[ SmokeDetector | MS ] Offensive answer detected: Javascript function is not working on radio button onclick by user8997980 on stackoverflow.com
naa- by thesecretmaster
tpu- by Glorfindel
 
@Andy ...exactly?
We're talking about Smokey using Helios
 
I'm not sure what your point is then. We don't want unauthorized instances of Smokey to update Helios.
 
And how whatever the new datahandling is should be structured so that it can work with pickles or Helios
 
10:09 PM
Hm... maybe that should be tpu. Rude, I guess. I will change my feedback.
 
@thesecretmaster I went NAA as well
 
@SmokeDetector n
 
@quartata to be fair, that does weaken my reasoning slightly. A persistence layer may still be useful to cover the unauthorized case, but it'd just need to merge the Helios list into a pickle with any additions made.
 
@quartata Very brief work flow: Smokey starts (or an update command is issued) -> Query Helios end point -> Get JSON data back -> This data is put into the exact same formats as the existing blacklist/watchlists/notifications as currently exist. Smokey uses those files to do it's work...just like today
To update: Send data to Helios end point -> helios magic to save it -> Add record to local file for caching. This saves a repull after you update and will just "be faster".
Those local files are completely overwritten when you issues an update command to pull the new data or when Smokey comes out of standby/start up
If, for whatever reason, Helios isn't available then don't update those files with nothing
From a Smokey perspective, it is still using the same files
The notifications become global though, because those aren't currently saved. We lose the git complications we currently have
 
Why bother writing to the pickle at all though?
 
10:15 PM
Blacklists and notifications aren't in a pickle
They are text files
That
And it's siblings
 
Notifications are indeed in a pickle, but that's not the point
 
Well, I'll probably remove that then.
You're right, it doesn't need to be a pickle to be used in this case
 
If we have it in memory, why save a local copy if we have Helios?
 
shrugs Because half of our instances run on a pi?
 
we keep it in memory currently
no mmap, the pickle is just for persistence
 
10:20 PM
Cool. Then that makes this even easier, we don't really need the files at all then
 
@Andy how demanding is smokey on a pi?
 
No idea. I don't run it on a pi :)
 
@Videonauth about as demanding as it is on any other system ;)
 
The only time we need the local files is if we don't have write access to Helios, which is basically dev use
That's what I meant
 
No.
That's not true.
Helios will be read only to the whole world
Why do you need write access in your dev instances?
Right now, we don't allow non-authorized instances of smokey to write to metasmoke or to github
If a dev needs those, they get the keys
Just like Helios will be
 
10:23 PM
@ArtOfCode well so i need liquid oxygen cooling then? :P
i ask becasue i have a pi running here 24/7 serving a webpage but it could for sure run an instance of smokey if it is not too demanding
 
@Videonauth cc @NobodyNada @Undo
^ they actually run Pis, unlike me :)
I don't think it's too demanding, but it may have changed since I heard last
 
My point is that if you don't have Helios access, you still want to keep at least local records of notifications or previous messages
otherwise you don't have any form of persistence available
 
@quartata you'll be able to have those. Helios will let you read the data without a key.
 
@Videonauth I've never run into any problems with the load, but I don't have anything else running on them besides a couple other bots
 
write
 
10:26 PM
sigh I'm obviously not understanding something. I said we'd be keeping local txt files of everything for caching
You said we should keep it in memory
 
@NobodyNada well then if you in need of another instance of smokey just let me know
 
Smokey spends most of its time sleeping anyway; it just wakes up periodically to process chat messages and scan posts
 
Pretend Helios doesn't exist for a second
 
Ok. Then the files that existed at your last run will be what you have to work with
 
@Videonauth Will do, although it's probably better to talk to the admins than me
 
10:27 PM
Additionally, when you turn on the news, you'll see "AMAZON IS DOWN!" and the world will be on fire
 
If Smokey logs a few messages, and then restarts, unless those messages were made persistent somewhwere we won't have them
 
To...the...local...text...files
Write: Send to Helios & write to the local file
 
We have two options for persistence: pickles and Helios. If someone desn't have a Helios key, it should do the former. If they do, it should do the latter and only the latter: pull from Helios on restart and store in menory like normal
vs read from pickle on restart, store in memory
 
If someone doesn't have a github key/metasmoke key how do they persist today?
 
With pickles. We only have local storage for notifications and last messages and why data
No other instance has access to those except for when we trade pickles around which is like almost never
 
10:32 PM
I'm sorry @quartata. I am trying. I think we are talking past each other unintentionally.
 
maybe go back to the beginning of the data flow
I think the most important thing to be synchronized is last messages so try this on for size:
 
Wait
Stop
That is where we are missing each other, I think.
Right now, Helios isn't involved in handling last messages. It's only about handling the blacklists and notifications
Phase N could definately move to that, but this initial step won't be about that
 
Cause it's not finished yet. The kind of data doesn't really matter though
I'll do notifcations instead though:
Scenario 1, no persistence: Smokey starts. Someone registers a notification, it gets put in memory. Smokey restarts, the notification is gone.
 
Ok. Stop
That is not the scenario Helios/Smokey will be written to handle.
 
These scenarios are supposed to express what the code is doing
 
10:38 PM
Smokey starts -> Query Helios for data. No Helios available? Use the last saved notifications.txt, blacklist-websites.txt, etc files. Helios available? Replace those files with the next data
 
I get that.
 
Ok, so that handles Scenario 1, right?
 
It's not supposed to be about handling. It's "how does it behave if wrtten like this"
sorry give me a second
OK. Scenario 2, pickles (the current method) Smokey starts. Someone registers a notification, it's put in memory and the whole structure is flushed to a pickle. Smokey restarts, reads the pickle once, the notification is there in memory.
 
On save to notifications -> Send notification to Helios & write to the local file. No Helios? Well...world is burning. Write to text file. Important note here It does need a way to handle this unwritten record to Helios when it is available again.
Is that the concern?
 
Scenario 3, just Helios with no local files: Smokey starts. Someone registers a notification, it's put in memory. If a Helios key is available, it is also written to a Helios endpoint. Smokey restarts, reads the notifications from Helios once. If we had a key, the new notifiation is there in memory. If we didn't, it is not (just the old ones)
 
10:44 PM
[ SmokeDetector | MS ] Pattern-matching website in answer: Displaying price in BTC based on USD exchange rate by Filippo Martin on bitcoin.SE
 
@SmokeDetector n
 
@Andy In essence, but s/world is burning/we don't have Helios write access/ because that's more likely
 
naa- by Videonauth
 
Ah. A light bulb has flickered. Let's make sure I'm understanding a bit. Dev (let's call them NoobSmoke - yes, a mortal kombat reference) clones smokey and wants to develop a thing. NoobSmoke sets a notification. No write access? So they just write to the local file. NoobSmoke goes to bed and shuts down. Next morning they restart. On query of Helios, their local file is overwritten.
Sound good so far?
 
@SmokeDetector n
? Y U NO record my feedback?
 
10:51 PM
@Andy Yes, pretty much.
This is what I propose instead:
 
Assuming that is correct 1.) Is it a big deal that they need to recreate a notification for their local instance? 2.) Would a command line parameter to not update from Helios be a viable work around? So, on that second start up, if the parameter is passed Smokey just skips the Helios check all together? This would allow them to still issue the update command if they want to
 
@Glorfindel try just naa?
@Andy that's a possibility, but I feel like it can't hurt to also account for the "world on fire" possibility which would presumably occur with an instance that would be expecting to have access to Helios
this is what I was thinking:
 
Smokey starts. Someone registers a notification, it's put in memory. If a Helios key is available, it is written to Helios. If it isn't (or Helios is down inexplicably), it's written to a new pickle instead. Smokey restarts, reads the notifications from Helios and read in the pickle if it's there. If we have write access, write the contents of the pickle to Helios. Either way, smoosh the contents of the pickle and what we got from Helios together and keep it in memory
This also has the benefit of automagically converting our existing pickles into Helios records
If we keep the pickles backwards compatible
When Smokey starts, it'll see the pickle there, read it in and then if it has a Helios key write it all to Helios
@SmokeDetector naa
 
@quartata Recorded answer as an NAA in metasmoke.
 
10:55 PM
Hmm, that worked
and I have n registered as an alias
@Andy just noticed noob saibot on my second read-through hahahaha
 
@quartata It took a while, but we got there in the end. :) I understand now and don't think this is a big problem. It makes sense to do
 
All right cool
It is rather convoluted and I think we were hung up on when you'd write to a pickle
 
The good news is that it doesn't sound that difficult either
My plan is to start a Smokey fork in the next couple days. The problem is december is a busy money for me. I may start but the majority probably won't really get done until the new year
 
That's fine, I'm sure December is a busy month for pretty much all of us
 
[ SmokeDetector | MS ] Offensive answer detected: What kind of switches do non-mechanical keyboards have? by homerisded on superuser.com
tpu- by Videonauth
 
11:04 PM
I'm going to bookmark the conversation for my reference in the future though
 
11:25 PM
@ArtOfCode git pish? Where was I asleep enough to write that?
 
[ SmokeDetector | MS ] Username similar to website in answer: Can I use a PC/Mac keyboard as a Bluetooth keyboard for iPhone? by eyalw on apple.SE
Restart: API quota is 12018.
 

« first day (1483 days earlier)      last day (2338 days later) »