asheesh changed the topic of #sandstorm to: Welcome to #sandstorm: home of all things sandstorm.io. Say hi! | Channel glossary: "i,i" means "I have no point, I just want to say". b == thumbs up. | Public logs at https://botbot.me/freenode/sandstorm/ & http://logbot.g0v.tw/channel/sandstorm/today
<frigginglorious> mrdomino: Sorry for buggin you bout the local networking thing on twitter. Mr Loroia helped me fix it :D
<frigginglorious> Hey yall, whats the best way to download every Sandstorm App from the market?
<frigginglorious> i want to have them all locally, offline. And preferably available by default to all the dev accounts. is that a thing?
<zarvox> frigginglorious: app index lives at https://app-index.sandstorm.io/apps/index.json ; start with that and fetch all the packages from there?
<zarvox> not sure how to advise doing the task of automagically installing every package for a user
isd2 has joined #sandstorm
<frigginglorious> zarvox: thats some pretty json
<zarvox> I usually pipe to jq for pretty-printing, but yeah.
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<frigginglorious> im gonna have to do some thinking… Im gonna see how much of sandstorm I can keep entirely offline
<frigginglorious> including dev tools. It might be rough going. And since theres no way to authenticate otherwise, im pretty sure everyone has to have a passwordless dev account, right?
<dwrensha> we've gotten requests for the preinstalled-app feature before
<zarvox> you could set up a local LDAP server or (I don't wish this on anyone) a local SAML server, with a Sandstorm for Work key. But otherwise, local email and dev accounts are the easiest "totally self-hosted" login mechanisms.
isd2 has quit [Remote host closed the connection]
<frigginglorious> wait a tick… if someone gets access to a shared grain, do they then have permissions to spin up a new one of the same app?
<dwrensha> no
isd2 has joined #sandstorm
<isd2> Aha! irc-idler is doing something not totally useless!
isd2 has quit [Client Quit]
<frigginglorious> ohhhh. hm… i may just end up having a site with downlaods for all the .spks. but that seems silly
<isd> (namely, proxying and repsonding to pings). Sorry for the outburst
<frigginglorious> isd: apology accepted.
<isd> :P
<dwrensha> it'd be cool if there were something in the admin panel where you could select some apps, and all new accounts would automatically have those apps installed
<frigginglorious> dwrensha: heck yes it would.
<frigginglorious> would all that stuff be in C++?
<dwrensha> I think the only nontrivial part would be implementing the UI in the admin panel
<dwrensha> this would all be javascript
<frigginglorious> i’m afraid it’s been awhile since i C++’d
<frigginglorious> oh, well then that’s good news!
<isd> Is there something similar to sandstorm-http-bridge but for raw network connections? I'd like to rig up my app directly to Sandstorm's network API, but it might be good to have something usable before I've wrangled all of the API gluing myself.
<zarvox> isd: I think jparyani had a tcp bridge at one point; not sure if it's published anywhere
<isd> There's this: https://github.com/jparyani/sandstorm-tcp-listener-proxy, but that's for listening. Oh well.
<zarvox> Hmmm, I wonder how hard it would be to write a program that takes an IpNetwork, host, and port as command-line arguments and otherwise is like netcat.
<isd> zarvox: Beyond just getting talking to the IpNetwork object in the first place, I expect not very.
<zarvox> isd: the Python test app does both: https://github.com/zarvox/sandstorm-test-python
<zarvox> the flow is:
<zarvox> 1. JS sends a postmessage to the parent frame requesting an IpNetwork
<zarvox> 2. Sandstorm shell prompts user to grant a capability
<zarvox> 3. shell postmessage's back a token to the grain frame
<zarvox> 4. client JS sends HTTP POST with the token to the backend
<zarvox> 5. backend calls restore() on that token to get an IpNetwork liveref
<zarvox> 6. backend can invoke other methods on that liveref: https://github.com/zarvox/sandstorm-test-python/blob/master/main.py#L331
frigginglorious has quit [Ping timeout: 276 seconds]
<isd> Other question: I'm trying to rig up a WebSession in Go, but go-capnpc has a few limitations: https://github.com/zombiezen/go-capnproto2/issues/2
<isd> Can someone more familiar with the API tell me definitively if that's something that can be worked around without the full fix?
frigginglorious has joined #sandstorm
neynah has joined #sandstorm
neynah has quit [Client Quit]
isd has quit [Quit: Leaving.]
frigginglorious has quit [Ping timeout: 250 seconds]
frigginglorious has joined #sandstorm
JimVFD has joined #sandstorm
jemc has quit [Ping timeout: 276 seconds]
rgrinberg has quit [Ping timeout: 260 seconds]
rustyrazorblade has joined #sandstorm
isd has joined #sandstorm
jemc has joined #sandstorm
rustyrazorblade has quit [Quit: rustyrazorblade]
jadewang has quit [Remote host closed the connection]
jemc has quit [Ping timeout: 276 seconds]
isd has quit [Ping timeout: 276 seconds]
isd has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 244 seconds]
jemc has joined #sandstorm
frankier has joined #sandstorm
jemc has quit [Ping timeout: 276 seconds]
neynah has joined #sandstorm
neynah has quit [Client Quit]
tannerco1lin has quit [Ping timeout: 252 seconds]
jadewang has joined #sandstorm
ecloud has quit [Ping timeout: 260 seconds]
jadewang has quit [Ping timeout: 276 seconds]
<isd> The compiled go library generated from grain.capnp is 19MiB O.O
tannercollin has joined #sandstorm
<asheesh> (a) wow that's substantial, isd
<asheesh> (b) hi!
<isd> asheesh: hey!
<asheesh> (c) I see at https://github.com/zombiezen/go-capnproto2/issues/2 you have a conversation with Ross about if things will work, which is good.
<asheesh> I haven't personally looked into the golang capnproto implementation.
<isd> I suspect code size tends to large because go-capnpc generates more types that it otherwise needs to get type safety -- no generics, so you get a List_* for every * (though if you want nested lists you have to cast).
<isd> but I haven't dug into it
<isd> Go binaries tend to be big, but wow.
<asheesh> I don't suppose now is a good time to try to convince you to learn Rust, eh? (-;
<isd> That's not actually causing problems at hte moment. Just O.O
<asheesh> Ah, good (-:
<isd> 12 MiB stripped, and I haven't looked at the SPK but that will be smaller (the executable is the only thing in there).
<isd> (the whole executable is pretty much dominated by that one lib.
<isd> )
<isd> asheesh: rust is on my TODO list.
<isd> but probably not this project.
<asheesh> Nod (-:
<isd> Right now working on the sandstorm-independent functionaltiy. Will pick at the capnp stuff again soon.
<asheesh> Cool.
<isd> Fun bit of awkwardness in the design: IRC doesn't actually send timestamps, so if you reconnect to the proxy, it doesn't have a clean way to convey when the messages it's accumulated were sent. I'm thinking of just inserting NOTICEs when there are significant jumps in timestamps while the user is disconnected, maybe on an optional basis
<asheesh> Yeah - IRC is an interesting protocol.
<asheesh> ctrlproxy iirc prefixes things with [23:32] or whatever the time was when the msg was rcv'd.
<isd> Right now it just parses and re-serializes messages, and also auto responds to PINGs
<asheesh> Which is admittedly a little sad.
<isd> which is totally enough to make telnet a reasonable IRC client! :P
<isd> only half kidding
<asheesh> Maybe a channel NOTICE on day change is minimal and sufficient.
<isd> asheesh: yeah, you could play with the granularity. I'll probably have experiment to figure out what makes sense.
<asheesh> Did you still need your question from ~7h ago answered?
* isd doesn't remember what that was, and can't look at the scrollback because his app isn't done yet
<asheesh> Hah.
<asheesh> 00:48 < isd> Other question: I'm trying to rig up a WebSession in Go, but go-capnpc has a few limitations: https://github.com/zombiezen/go-capnproto2/issues/2
<asheesh> 00:49 < isd> Can someone more familiar with the API tell me definitively if that's something that can be worked around without the full fix?
<isd> Ah, yes an answer to that would still be useful, if you happen to know.
<asheesh> I definitely don't but likely kentonv does, and will maybe see this ping when he wakes up.
* isd looks at clock
<asheesh> Good thinking.
<isd> O.O
<asheesh> See you tomorrow!
<isd> It's 4 am in Boston. Whoops.
<isd> kentonv: good chance I won't been in the channel when you see that ^; if you have useful thoughts, I'll see them if you post to the github issue.
<isd> night all.
isd has quit [Quit: Leaving.]
ecloud_ has quit [Ping timeout: 264 seconds]
ecloud has joined #sandstorm
_iwc has quit [Ping timeout: 250 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 246 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 240 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 244 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 276 seconds]
rgrinberg has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 264 seconds]
frigginglorious has quit [Quit: frigginglorious]
gelnior has quit [Remote host closed the connection]
gelnior has joined #sandstorm
frigginglorious has joined #sandstorm
gelnior has quit [Remote host closed the connection]
gelnior has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 240 seconds]
jemc has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 240 seconds]
jadewang has joined #sandstorm
rgrinberg has quit [Ping timeout: 264 seconds]
jadewang has quit [Ping timeout: 276 seconds]
rgrinberg has joined #sandstorm
[d__d] has quit [Remote host closed the connection]
[d__d] has joined #sandstorm
amyers has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 276 seconds]
amyers has quit [Ping timeout: 240 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 272 seconds]
jadewang has joined #sandstorm
<frew> so this is bizarre
<frew> my feed reader on the oasis gets a 403 from one of the feeds
<frew> but I don't locally
<frew> does anyone know what the javascript stuff is about in the log for TTRSS?
<frew> TTRSS is php so I have no idea why there'd be a JS stacktrace in the logs
<frew> if interested
<frew> it has to have something to do with the meteor stuff
<frew> that's my guess anyway
<cmr> frew: judging by the presence of hack-session and streams, I'd guess that's from Sandstorm, not the app.
<zarvox> That timestamp is suspect
<frew> zarvox: I was assuming that in sandstorm the app doesn't get access to the actual time
<zarvox> perhaps
<zarvox> this is using the httpGet call on HackSessionContext?
<frew> I have to assume so
<frew> the rss reader seems to be doing that to access feeds?
<zarvox> the code suggests that the 403 is coming from the remote server
<frew> yeah I know
<frew> but I can't see that here. I mean, you can try to hit that url yourself and it should work
<zarvox> yes, curl seems to work okay
<frew> I'm making a little proxy myself to fix it but I suspect there's something weird about the meteor thing to cause this.
<frew> I was wondering if it was na https thing
<zarvox> my browser does not like their cert
<frew> yeah that's what I saw.
<zarvox> probably the sandstorm shell does not like their cert either
<frew> yeah; that's exactly what I was thinking is the issue; I just figured making it a 403 seems unhelpful
<zarvox> (and the request library we're using probably translates that into a 403?)
<frew> apparently
<sknebel> wouldn't all HTTPS verification fail with that timestamp? or is that a different layer?
<frew> sknebel: I had that same thought, but I think that timestamp is inside the container and that the https happens in the browser
<frew> ok well I fixed it by writing my own little ghetto proxy
<frew> but it would be nice for this to be more obvious in the future
jadewang has quit [Remote host closed the connection]
rgrinberg has quit [Ping timeout: 260 seconds]
<frew> so the guy who runs that blog told me that this is a symptom of not having a User-Agent?
fdgfdg has joined #sandstorm
<frew> is that something that would be sandstorm's fault or TTRSS'?
<frew> I know that the TTRSS code is super sloppy with stuff like that
fdgfdg has quit [Client Quit]
<asheesh> Howdy frew
<asheesh> Hilarious re: symptom of no user-agent
<asheesh> That's probably Sanstorm; let me pull up the code.
dgdf has joined #sandstorm
dgdf has quit [Client Quit]
<frew> asheesh: good morning :) (or w/e time it is for you)
<asheesh> Seemingly we delegate to http://docs.meteor.com/api/http.html which I don't know what headers it sends, but could be no user-agent by default, let me see...
<frew> so am I correct that if there is no browser the application cannot reach out at all?
<asheesh> Sandstorm apps' server-side code have a concept of a "session."
<asheesh> Today, that is a "HackSession" because we don't like the quality of the session.
<asheesh> The server-side code of the app uses this Sandstorm session to ask questions like (a) which Sandstorm user is viewing this? and (b) hey Sandstorm make an outbound HTTP GET call
<asheesh> The session expires over time if you're not looking at it in a web browser, but it's not literally a connection to your web browser.
<asheesh> I hope that helps somewhat. Seems like I should write a doc at some point about what the "Session" is for Sandstorm.
rgrinberg has joined #sandstorm
JimVFD has quit [Quit: Nettalk6 - www.ntalk.de]
<frew> ah ok
<frew> so if I connect via a non-web browser client, over http, it can still make requests
<asheesh> In that case you have an ApiSession, which is slightly different; let me check if it can make requests based on that.
<asheesh> OK, the answer is yes, it can make requests based on that!
<asheesh> (This is because ApiSession extends WebSession.)
<frew> makes sense
<frew> ok I assumed the browser was making requests on behalf of the application
<frew> which seemed crazy bizarre to me
<frew> but could be sensible if you wanted to block the app from doing things on it's own I guess
<frew> asheesh: should I open an issue to default a User-Agent?
<asheesh> +1 frew, thanks for offering to do that!
<frew> no probs
<asheesh> It does look good, but I would add something, which is the specific steps you used to reproduce the problem.
<asheesh> A copy-paste of your remarks here on IRC would be fine, or a link to them via botbot.me or another public log service.
<asheesh> That way, when we work on prioritizing it, we'll know how it impacted you.
<asheesh> And when we work on fixing it, we'll know how to verify that someone in your position is no longer experiencing the problem.
<asheesh> I appreciate you asking me if it's good!
<asheesh> If you want, I can try to do the above; just let me know.
rustyrazorblade has joined #sandstorm
jemc has quit [Ping timeout: 250 seconds]
rustyrazorblade has quit [Quit: rustyrazorblade]
JimVFD has joined #sandstorm
decipherstatic_ has quit [Quit: Leaving]
jadewang has joined #sandstorm
rustyrazorblade has joined #sandstorm
decipherstatic has joined #sandstorm
rustyrazorblade has quit [Client Quit]
jadewang has quit [Remote host closed the connection]
jadewang has joined #sandstorm
jadewang has quit [Remote host closed the connection]
<frew> on it
xet7 has quit [Ping timeout: 276 seconds]
frigginglorious has quit [Quit: frigginglorious]
xet7 has joined #sandstorm
dwrensha has quit [Ping timeout: 250 seconds]
<asheesh> Hi there. Is anyone here running Windows as your OS? If so, I have something I want you to test out, if you can.
<asheesh> If not, then I will try emailing people (-:
<asheesh> Oh yeah hi ocdtrekkie , around?
dwrensha has joined #sandstorm
JimVFD has quit [Quit: Nettalk6 - www.ntalk.de]