<dwrensha> yeah, I should probably rename my MallocMessageBuilder to HeapMessageBuilder or some such
natea has joined #sandstorm
<dwrensha> dcb: If `x : OutputSegments` then `&*x : &[&[Word]]`, no?
<dcb> dwrensha: yes, but the borrow checker yells because the OutputSegments doesn't live long enough
<dwrensha> can you show me an example?
<dcb> like if you do SegmentArrayMessageReader::new(&*my_message_builder.get_segements_for_output());
<dwrensha> can you add a let binding
<dcb> the borrow is not of `my_message_builder` but the anonymous OutputSegments
<dwrensha> to force it to live longer?
<dcb> not generally
<dcb> I'm not actually blocked by this, I'm going the round trip route
<dwrensha> `let x = met_message_builder.get_segments_for_output(); SegmentArrayMessageReader::new(&*x)` does not work?
<dcb> It works, but it
<dcb> but it's impossible to make a method that takes a &MallocMessageBuilder and returns a SegmentArrayMessageReader, which was what I was trying
<dwrensha> ah, right
<dcb> fn into_reader(message: &MallocMessageBuilder) -> SegmentArrayMessageBuilder
<dwrensha> you can't return it
<dcb> yep
<dwrensha> can we switch something to pass-by-move to get around this?
<dcb> oh, I think the issue is with Deref actually
<dcb> If you had a get method, you could return &'a [&'a [Word]], where 'a is the MessageBuilder's lifetime
<dcb> But deref forces it to be &'b [&'a [Word]] where 'b is the OutputSegments lifetime
<dwrensha> The deref thing is convenient though. Maybe I can just add a get() method?
<dcb> yah, I wouldn't remove it
<dcb> oh wait, maybe you can do it with deref
<dwrensha> I was thinking `pub fn get(self) -> [&'a [Word]]`
<dcb> does it work to get rid of 'b here and just use 'a http://docs.capnproto-rust.org/src/capnp/lib.rs.html#223?
<dwrensha> error: lifetime name `'a` shadows a lifetime name that is already in scope
<dcb> fn deref(&self) -> &'a [&'a [Word]] {
natea has quit [Quit: natea]
<dcb> I doubt deref lets you get away with that
<dwrensha> I agree
<dcb> but anyway an additional get would solve it
<dwrensha> heh, I guess I can't return something that's not sized
<dwrensha> maybe I should take a step back
<dwrensha> dcb: what does into_reader() accomplish that you couldn't do with get_root() and as_reader()?
<dwrensha> (I think you meant `fn into_reader(message: &MallocMessageBuilder) -> SegmentArrayMessageReader` above)
<dcb> dwrensha: I have a state machine that takes OwnedSpaceMessageReaders and returns MallocMessageBuilders (meant to be applied to another state machine). To test this I have to do the conversion
<dcb> dwrensha: yes, thanks
<dcb> but basically the actual message unpacking is done behind the interface I'm testing
<dwrensha> Lol, I just accidentally typed a "~" when I meant "Box<>". Old habits die hard.
<dcb> Maybe it's simpler to think of it as testing a networked objects, locally. So I have n object A that sends messages to object B. So A outputs MessageBuilders and B takes in MessageReaders. Normally the conversion is done on the network bits, but I want to test without the network
jadewang has joined #sandstorm
<dwrensha> I can definitely do `pub fn get(self) -> Box<[&'a [Word]]>`
<dwrensha> for OutputSegments
<dcb> What's the issue with &'a [&'a [Word]]?
jadewang has quit [Ping timeout: 244 seconds]
<dwrensha> things won't live long enough
<dwrensha> the function should be called `into_boxed_slice()`, like this: https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.into_boxed_slice
<dwrensha> ( that's the function you would call if OutputSegments were just Vec<&[Word]> )
<dwrensha> It'd be nice if there were a way for you to design your function to take typed messages, rather than untyped root containers.
<dwrensha> I understand there are ownership issues
<dcb> ah because the internal Vec is still owned by the OutputSegments
<dcb> yah that's not going to work
<dcb> Probably easiest to just make a new MessageReader type that takes ownership of an OutputSegments
<dwrensha> hm. I guess into_boxed_slice() doesn't actually solve your problem unless there's a way to construct a message reader that takes ownership of the Box<[&[Word]]>
natea has joined #sandstorm
<dwrensha> dcb: since you only need this for testing, would be a big deal just to copy the message to convert from a builder to a reader?
<dcb> dwrensha: that's what I'm doing, serializing to a Vec and then back. It will be fine for that use case
<dcb> I can write an OutputSegmentsMessageReader if I need it
<kentonv> Major new etherpad release.
<dwrensha> kentonv: in case you're curious, the change we made today in capnproto-rust would translate back to c++ as changing the signature of `writeMessage` to be `void writeMessage(OutputStream& output, const MessageBuilder& builder)`
<dwrensha> (at least I think that's where the const-qualifier would go)
natea has quit [Quit: natea]
<dwrensha> etherpad has comments now!?
<dwrensha> and we have a "commenter" role!?
<dwrensha> \o/
paroneayea has quit [Read error: Connection reset by peer]
jadewang has joined #sandstorm
<kentonv> :D
paroneayea has joined #sandstorm
jadewang has quit [Ping timeout: 256 seconds]
<kentonv> dwrensha: what do you think of the sidebar authorship highlighting?
<kentonv> note that all the new stuff in this release is from adding plugins.
<dwrensha> oh
<dwrensha> does that mean the colors are always to the side now? never directly on the text?
<kentonv> the side color is the primary author of the paragraph. There is inline highlighting for other editors.
<dwrensha> heh, beat me to it
joshbuddy has joined #sandstorm
<kentonv> ok so who was the anonymous user? :P
* XgF raises hand
joshbuddy has quit [Ping timeout: 240 seconds]
dcb has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<dwrensha> kentonv: I think "YYYY.MM.DD (upstream version)" is a nice choice for appMarketingVersion
<kentonv> heh, yeah, I wasn't sure what to write since there hasn't been a new Etherpad release
<kentonv> also I rebased to Etherpad's "develop" branch since the comments feature depends on it
natea has joined #sandstorm
mcpherrin has quit [Ping timeout: 244 seconds]
<ocdtrekkie> kentonv: Look at the appMarketingVersion you set. :P
<ocdtrekkie> Closely.
<kentonv> goddammit
<ocdtrekkie> Sidebar authorship highlighting is awesome. Way better than the rainbow color text.
<kentonv> "2014" would have been one thing but how the hell did I type 2012?
<dwrensha> 2012 how did I not notice that?
<paulproteus> That was the year they shut down Google Wave.
<paulproteus> Must be for that reason.
<ocdtrekkie> lol
Guest1 has joined #sandstorm
<kentonv> ok everyone that never happened. You can't prove anything.
<kentonv> ok gtg watch GoT now
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 256 seconds]
Guest1 has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Guest1 has joined #sandstorm
natea has quit [Quit: natea]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 255 seconds]
<kentonv> ocdtrekkie: congrats, you can now make grains on testrock. zarvox didn't log in, no grains for him.
<ocdtrekkie> lol
<zarvox> kentonv: okay, okay, I'll log in :P
<kentonv> IT'S TOO LATE HAHAHAHAHAHA
<zarvox> nooooooooooo
<ocdtrekkie> It looks just like the alpha server, just without all my :stuff:
<kentonv> note that at this time I estimate 95% chance it will crash at some point and I won't notice for a day, and maybe 50% chance all data is randomly deleted at some point. (That should go down quickly over the next few days though.)
<zarvox> also haha at the buildstamp
<zarvox> "Build [kenton@megaman Sat May 30 21:13:07 PDT 2015]"
<ocdtrekkie> That has the right year in it. :)
<kentonv> I mean I am kenton, and I built in on megaman, so I don't know what you want. :P
<kentonv> it's funny, if you crack the frontend and run arbitrary code, you won't be able to tell it isn't sandstorm, except that /var/sandstorm is eerily empty.
<zarvox> I mean, normally that's a major.minor, not a "[$user@$host $date]"
<kentonv> zarvox: if you build sandstorm from source without pushing a release you normally see that kind of build stamp.
<kentonv> testrock will get non-official buildstamps. The actual hosting service, when it goes live, will get normal buildstamps.
<kentonv> and will be updated in sync with Sandstorm
<zarvox> Ahhh, I guess I've mostly spent time with vagrant-spk, which uses packaged releases, so I never noticed that!
<kentonv> so basically no one will be able to tell that they're not on Sandstorm. Not that I'm trying to hide it, I just like the symmetry.
<kentonv> maybe it'll throw off some competitors too. :)
<ocdtrekkie> I had kinda figured Blackrock was "a thing that ran Sandstorms" as opposed to an entirely separate backend.
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 258 seconds]
<zarvox> ocdtrekkie: There's a bunch of APIs that are decently well-defined in Sandstorm! Which API did you expect that Blackrock would provide an alternate implementation of?
<ocdtrekkie> I just mean like, the way I visualized Sandstorm and Blackrock in my head were like... ESXi and vSphere. ESXi is free, and you can run apps and stuff on it, but vSphere allows you to do a lot more things with your ESXis, including cluster management and stuff.
<ocdtrekkie> kentonv: Wouldn't your About page be "About Blackrock" and "Blackrock Server" and such?
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 276 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 276 seconds]
<kentonv> ocdtrekkie: it's effectively equivalent to a thing that runs Sandstorms, but a few orders of magnitude more efficient than literally running a Sandstorm VM for every user. Since most users aren't using their resources most of the time, we can distributed them far more effectively with a few tricks.
<kentonv> so basically we can give you the equivalent of a $50/mo private VM for $6/mo.
<ocdtrekkie> Well, I didn't suppose it was making a whole VM for each user.
<kentonv> then it's pretty much what you expect. FWIW, pretty much all of the open source Sandstorm code is used by Blackrock. There's just some added plumbing to distribute nicely over a cluster of machines.
<ocdtrekkie> I mean that when you use vSphere, you're still using the same ESXi. My analogy was that I didn't think Blackrock would actually run a different build of Sandstorm. Just more something telling which Sandstorm to run which grain and such.
<ocdtrekkie> But then, ESXi is closed source, so I assume they can easily put the "enterprise" code in there, and just disable it, moreso than one can do with an open source free program.
<ocdtrekkie> I'm pretty excited though, Blackrock working + Etherpad looking a lot more professional with the plugins really makes everything feel a lot closer to 'done'.
<kentonv> Blackrock is only kind of working, but yeah. :)
<kentonv> backup/restore and web publishing are still not working. The former obviously being pretty important for beta users, the latter a little less but still important.
joshbuddy has joined #sandstorm
<kentonv> hopefully will get that figured out this week then start the beta
<ocdtrekkie> Some sort of meta-backup of "all your stuff" would probably be helpful too.
<ocdtrekkie> I try to back up my halfway-decently-valuable grains on occasion, but if I could script a download of it every day, I'd probably do it every day.
<kentonv> my plan is to make an API so you can have "backup apps"
<kentonv> and we'll actually back up Blackrock's data that way, but also you'll be able to back up your self-hosted data to Blackrock (encrypted)
<kentonv> but perhaps someone will write an app for dropbox, etc.
<zarvox> speaking of dropbox, I'm still eagerly awaiting the day that the hackpad source gets released
<kentonv> me too, though having discovered etherpad plugins reduces that pain quite a bit
<kentonv> I feel like it's actually reasonably close to Hackpad now, just needs some design work and polish
<zarvox> yeah, the new release feels way better
<kentonv> bed time here, 'night
gopar has quit [Quit: Leaving]
erikoeurch has joined #sandstorm
Guest1 has quit [Read error: Connection reset by peer]
jadewang has joined #sandstorm
erikoeurch has quit [Ping timeout: 276 seconds]
jadewang has quit [Ping timeout: 256 seconds]
mquandalle has quit [Ping timeout: 256 seconds]
mquandalle has joined #sandstorm
joshbuddy has quit [Quit: joshbuddy]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 272 seconds]
itscassa|away is now known as itscassa
jadewang has joined #sandstorm
itscassa is now known as itscassa|away
jadewang has quit [Ping timeout: 240 seconds]
mort___ has joined #sandstorm
keturn has quit [Ping timeout: 250 seconds]
keturn has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 246 seconds]
erikoeurch has joined #sandstorm
paroneayea has quit [Read error: Connection reset by peer]
paroneayea has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 255 seconds]
decipherstatic has quit [Remote host closed the connection]
amyers has joined #sandstorm
amyers has quit [Read error: Connection reset by peer]
amyers has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 264 seconds]
amyers has quit [Read error: Connection reset by peer]
amyers has joined #sandstorm
mort___ has quit [Ping timeout: 256 seconds]
mort___ has joined #sandstorm
erikoeurch has quit [Ping timeout: 256 seconds]
mort___ has quit [Quit: Leaving.]
erikoeurch has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 256 seconds]
<erikoeurch> any updates on when the beta might launch?
natea has joined #sandstorm
<dwrensha> erikoeurch: there was some discussion last night http://logbot.g0v.tw/channel/sandstorm/2015-06-01#143
mort___1 has joined #sandstorm
<erikoeurch> dwresha: thanks, seems close then -- just need to get rid of high probability of all data getting erased :D
erikoeurch has quit [Quit: Leaving]
natea has quit [Ping timeout: 256 seconds]
natea has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 246 seconds]
paroneayea has quit [Read error: Connection reset by peer]
paroneayea has joined #sandstorm
mort___ has joined #sandstorm
mort___1 has quit [Ping timeout: 256 seconds]
natea has quit [Quit: natea]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 258 seconds]
mort___ has quit [Quit: Leaving.]
natea has joined #sandstorm
gopar has joined #sandstorm
natea has quit [Quit: natea]
gopar has quit [Quit: Leaving]
natea has joined #sandstorm
natea has quit [Client Quit]
aldeka has quit [Quit: No Ping reply in 180 seconds.]
ocdtrekkie has quit [Quit: No Ping reply in 180 seconds.]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 256 seconds]
bb010g has quit [Quit: Connection closed for inactivity]
natea has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Read error: No route to host]
jadewang has joined #sandstorm
bb010g has joined #sandstorm
<maurer> Went to my sandstorm instance today and suddenly it's deconfigured its ability to do google log in?
<kentonv> maurer: did you change BASE_URL?
<maurer> kentonv: No, I've touched nothing
<kentonv> strange
<maurer> When I run 'sandstorm admin-token' as the page suggests to get back at the admin page to repair it, it throws an exn
<kentonv> try with sudo
<kentonv> we should improve that error
<kentonv> but I think it's actually because you don't have permissions
<maurer> Generated a token. Now to find out why it won't let me enable google login
<maurer> kentonv: oddly, I could _read_ the token file as low priv
<maurer> So if I had known where to put it in the url I would have been fine
<maurer> Oh, nvm, evidently there's an expiry
<kentonv> well, the token expires after a few minutes
<kentonv> yeah
<kentonv> if you're in the sandstorm group then you can read the token. We plan (probably) to make it so you can also write the token, if you're in the group.
<maurer> So, the page gives http://pastebin.com/kG3K89p8 but the log file in question doesn't seem to have anything relevant
<maurer> http://pastebin.com/xKBKbk2i is the last bit of it
<kentonv> you need to click "configure" next to "google login"
<kentonv> and fill in the client ID and secret
<maurer> Oh.... it deleted my client ID and secret?
<kentonv> apparently
<maurer> :()
<kentonv> we should improve that error message too
<maurer> OK, it appears to work again. I'm mostly annoyed that it seems to have randomly deleted my google API keys so that I had to navigate my way back in
<maurer> (and that it didn't tell me that was the problem :P
<dwrensha> maurer: that's troubling :/
<dwrensha> I think that this https://github.com/sandstorm-io/sandstorm/pull/439 prevents the confusing "file exists" error.
<dwrensha> If unlinking the admintoken fails with "permission denied", then trying to open it will also fail with "permission denied"
<paulproteus> So basically GitWeb Pages is the coolest thing, and XgF, can I possibly interest you in doing some publicity around it? e.g. I can help you write a blog post and try to get it on Hacker News
<dwrensha> (the check for which apparently happens before the O_EXCL check)
<XgF> I wasn't expecting to have to do publicity for a 1 hour 30 minute hack :P
<paulproteus> Yeah XgF, it's fine, I can do your publicity for you (-:
<paulproteus> https://alpha-gloz5llu9pgh7zpwudx0.sandstorm.io/ for kentonv 's amusement
<paulproteus> That's my personal GitWeb Pages site.
<kentonv> maurer: we do have code which auto-deconfigures OAuth after BASE_URL changes, by comparing BASE_URL against a value stored in the database. The code is pretty simple, though, and I'm not seeing how it could have screwed up unless Mongo was corrupted or something...
<maurer> >mongo was corrupted
<maurer> well that could have happened if I breathed on it wrong >_>
<maurer> Do we have another backend that can be chosen?
<maurer> I hear good things about postgres jsonb as a documentstore
<dwrensha> I hear (from maurer) that it has joins!
<paulproteus> I wonder if that code logs anything; if not, tha tmight be useful at least.
<XgF> Postgres' JSON support is amazing as far as I'm concerned
<maurer> (but seriously, I haven't reconfigured sandstorm since it went from working to not working)
<XgF> Like, you can even do proper indexes on it and such
<XgF> You can do pretty much full fidelity SQL queries into it, its' nuts
<dwrensha> so here's our code that automatically clears oauth config when ROOT_URL changes: https://github.com/sandstorm-io/sandstorm/blob/58f616b8170ef3b634fb3794d7386d64b0a51e29/shell/server/startup.js#L28
<dwrensha> maurer: maybe you could grep for "resetting oauth" in the log?
<maurer> k
<paulproteus> XgF: Can you submit a pull request to add GitWeb Pages to the app list?
<maurer> dwrensha: http://pastebin.com/9KTW9mU4
<XgF> paulproteus: sure
<paulproteus> Yay!
<maurer> dwrensha: It looks like there was some issue with the perms on that token file again?
<maurer> but that happened afterwards, so it doesn't seem very causal
<maurer> I can also definitely say it has worked since then.
<maurer> Since I used my RSS reader instance 3 days ago
<maurer> and the most recent logged instanc eof "resetting oauth" was May 15
<dwrensha> did you log out since 3 days ago. are you logging in from the same computer?
<kentonv> yeah if you were logged in at the time the reset happened, it wouldn't have logged you out, so you might not have noticed until the next time you logged out for some other reason
<maurer> dwrensha: it's the same machine
<maurer> dwrensha: I have not initiated a logoff, but it's possible some token or other expired
<kentonv> or your browser purged the local storage, which it will do from time to time
<maurer> Yeah, well in this case I think I triggered a manual update about 2 weeks ago which corresponds with this time
<maurer> I was mostly blindsided because everything appeared to be working afterwards and suddenly stopped
joshbuddy has joined #sandstorm
<kentonv> hmm, well updating shouldn't have caused an oauth reset, so that's still odd.
<dwrensha> tiny static binary included inline in a shell script
<paulproteus> dwrensha: Yeah -- hopefully you appreciate the comment.
<paulproteus> AKA sorry about the nonsense.
<dwrensha> I wonder whether this means we can claim to "use Rust in production"?
<paulproteus> 1: D
<paulproteus> er no 1
<paulproteus> just
<paulproteus> : D
shachaf has joined #sandstorm
<shachaf> I saw that there were some TODOs in KJ for implementing some sort of userspace threading. Are there plans for that?
<shachaf> Oh, it's in the road map.
<XgF> paulproteus: whats data-package-id supposed to contain
<XgF> ?
<paulproteus> XgF: It's the "Package ID", which is SHA256 of the SPK truncated to 128 bits, displayed as hex, as I recall.
natea has quit [Quit: natea]
<dwrensha> sha256sum <spk> | head -c 32
<kentonv> shachaf: honestly I don't expect I'll have time to work on in any time soon, since it's not blocking anything.
<kentonv> XgF: spk verify --details <spk>
<paulproteus> kentonv++
<kentonv> although I'm not sure if that has been pushed in a release yet. >_>
mortehu has joined #sandstorm
<XgF> kentonv: Well its in whatever version of spk my Vagrant install is using
<XgF> v84. Not documented, though
<kentonv> XgF: where do you expect to see it documented?
<XgF> kentonv: in --help
<kentonv> it's in there...
<XgF> Oh, it's not in the top level help, duh
<kentonv> with kj::Main it's actually hard to _not_ document flags. :)
<paulproteus> Thanks XgF!
<paulproteus> I have a question for you, which is -- if we were to switch the way gitweb were packaged to use something like vagrant-spk instead (details here: https://github.com/sandstorm-io/sandstorm/wiki/Porting-an-app-with-vagrant-spk ) , do you think that might have improved, or worsened, your experience modifying dwrensha 's gitweb package?
<paulproteus> The wiki page I just linked you to is a little hard to read, but I hope you can give reading it a shot, to have a sense of how it works.
<paulproteus> https://github.com/zarvox/vagrant-spk is another, arguably clearer, page.
<dwrensha> paulproteus: is there an example app that uses vagrant-spk?
<paulproteus> There is github.com/paulproteus/php-app-to-package-for-sandstorm which if you follow the instructions at https://github.com/zarvox/vagrant-spk gives you an SPK.
<paulproteus> : D
<zarvox> haha beat me to it
natea has joined #sandstorm
<dwrensha> so requirements.txt is the only configuration?
<dwrensha> and it's just a list of Debian packages?
<dwrensha> I guess I should read the docs...
<paulproteus> requirements.txt is a list of Python/PyPI things.
<paulproteus> The use of "setupvm uwsgi" causes you to get a particular list of packages installed.
<paulproteus> Which gets written to .sandstorm/something-i-forget
<paulproteus> I think the state of vagrant-spk docs is that I want to write a nice tutorial for using vagrant-spk which explains how it works, but zarvox thinks it should be better before we spend time documenting it, with the result that we're the only ones using it and/or finding issues, or well us plus JamborJan who has been emailing with zarvox.
<paulproteus> Which is to say, any further feedback that indicates "Yes this is basically useful" or "No this is not" would be very useful, since I think it decreases our uncertainty and incentivizes us to write docs.
<paulproteus> Let me know zarvox if I mis-stated your opinion there!
natea has quit [Quit: natea]
<paulproteus> It's designed so that vagrant-spk can change, but your package will still build, since "all" vagrant-spk does is create shell scripts etc. in the .sandstorm/ directory.
<paulproteus> If this were Debian package, I'd say vagrant-spk is the dh-make of the Sandstorm world.
<paulproteus> i,i It's This For That
<paulproteus> i,i It's This For Thatcher
<XgF> paulproteus: TBH I have no idea how vagrant-spk would have affected things. 70% of what I was doing was hacking shellscripts, so :p
<XgF> (30% was hacking C++ :-))
<kentonv> I get the feeling XgF is like me and likes to do everything at the lowest level possible. :)
<paulproteus> Yeah I get that feeling too (-:
<XgF> If this was a node app or something with a big stack of dependencies behind it...
<paulproteus> I guess the one thing that vagrant-spk would have added to your workflow would be that it would have insisted that you use Sandstorm-inside-a-VM-with-the-app as where the app was running.
<paulproteus> And it would run that Sandstorm-inside-a-VM-with-the-app via Vagrant (which would mean, via VirtualBox).
<paulproteus> We can seemingly make that use LXC reasonably easily, rather than VirtualBox, but I don't know that we've tried it.
<XgF> I was already running Sandstorm inside Vagrant :p
<XgF> I don't actually have any non-ARM linux machines around
<dwrensha> correction of something I said earlier: gitweb-sandstorm does indeed have a checked-in version of gitweb.cgi. It's totally unmodified from upstream, though.
<paulproteus> XgF: Would it have been noticeably painful you had to stop the Vagrant-in-Sandstorm you had, and use one specific to the app?
<paulproteus> s/painful you/painful if you/
<XgF> paulproteus: No, as long as that works on OS X :p
<paulproteus> Cool; I think that's the only thing that would seriously change for you, then.
<kentonv> what, I totally expected you'd be a desktop linux user XgF. :P
<paulproteus> zarvox: ^ OK so 30% serious conclusions from the above: (1) "Even among Sandstorm fans, no one runs desktop Linux" and (2) you have a carte blanche to make everything use vagrant-spk
<paulproteus> (don't take #2 _too_ seriously)
<XgF> kentonv: I got fed up of things like Bluetooth breaking for the umpteenth time and bought a MacBook because sod it, they just work damnit (also I wanted a laptop, and PC laptops all suck, or did in 2010)
<XgF> My desktop has since been a Windows machine, because I also got sick of WINE
<XgF> Though it seems the battery in my MacBook is on its' way out, so I guess we'll see where I go this time
aldeka_limechat has joined #sandstorm
<paulproteus> Howdy aldeka_limechat
<aldeka_limechat> Hi paulproteus :)
ocdtrekkie has joined #sandstorm
aldeka has joined #sandstorm
aldeka_limechat has quit []
ocdtrekkie has quit [Read error: Connection timed out]
ocdtrekkie has joined #sandstorm
amyers has quit [Ping timeout: 246 seconds]
gopar has joined #sandstorm
ragesoss has quit [Ping timeout: 265 seconds]
ragesoss has joined #sandstorm
natea has joined #sandstorm
joshbuddy has quit [Quit: joshbuddy]
jadewang has quit [Ping timeout: 256 seconds]
kentonv has quit [Ping timeout: 258 seconds]
kentonv has joined #sandstorm
jadewang has joined #sandstorm
joshbuddy has joined #sandstorm
<ocdtrekkie> Random oddity. I checked that sandstorm.io/apps has the etherpad8 URL. I updated on the Alpha server, and I'm still seeing the old date.
<ocdtrekkie> I even tried uploading the SPK manually, and that didn't update it. I refreshed the page (which seemed like common sense), and that didn't change it either.
<kentonv> you see "2012" still?
<ocdtrekkie> Yeah
<ocdtrekkie> I'm wondering if it's some weird caching thing for some reason.
<ocdtrekkie> Or if there's a reason my account on Alpha won't accept the update.
<ocdtrekkie> Testrock shows the correct date.
<ocdtrekkie> Which means the etherpad8 marketing version isn't to blame.
<kentonv> hmm that doesn't make any sense
<ocdtrekkie> Equally interesting, on the Alpha server (please don't kill my grains), my action is duplicated, I just realized.
<kentonv> ... that probably has something to do with it
<kentonv> I bet you actually have both versions installed. >_>
<kentonv> now how that happened, I'm not sure
<ocdtrekkie> I was going to ask next.
<ocdtrekkie> "How'd I manage that?"
<paulproteus> Impressive.
<ocdtrekkie> I have now caused weird things to happen on your Alpha server. That is my helpful contribution to the Sandstorm project for today.
<ocdtrekkie> :D
<paulproteus> Agreed!
achernya_ has quit [Ping timeout: 248 seconds]
natea has quit [Ping timeout: 264 seconds]
<ocdtrekkie> So, is there a safe way for me to fix my Etherpad install?
<ocdtrekkie> Perhaps, given the current client-side implementation, a console command?
<paulproteus> Don't actually do this, but: UserActions.delete({something: somethingElse});
<paulproteus> Like probably actually don't do this (-:
achernya has joined #sandstorm
<ocdtrekkie> UserActions.delete{*} ?
<paulproteus> don't do ittttttttttttt
<ocdtrekkie> Yeah, I'm not going to, lol.
<ocdtrekkie> Even with the important grains backed up, the :effort: required to restore everything would be :(.
<ocdtrekkie> And it'd mess up all my sharing links.
<kentonv> actually deleting all UserActions would just mean you need to re-install each app, but your grains would be fine
<kentonv> still, don't do it
<XgF> jparyani: shiny
<XgF> jparyani: So I guess the mirror isn't running under Sandstorm itself?
<jparyani> unfortunately no
<jparyani> but soon :)
ragesoss has quit [Ping timeout: 256 seconds]
ragesoss_ has joined #sandstorm
joshbuddy has quit [Quit: joshbuddy]
<ocdtrekkie> kentonv: Could I get like a targeted command to delete the Etherpad7 action?
<kentonv> UserActions.find({appTitle: "Etherpad"}).fetch() will find all your etherpad actions, then do UserActions.remove("<id>") with the _id for the bogus one.
<ocdtrekkie> Okay, back to one action and the correct version now displays.
gopar has quit [Remote host closed the connection]
<paulproteus> "Update Etherpad with plugins and move to top because it's awesome now." -- kentonv
<paulproteus> I lol'd
<paulproteus> (not that he's wrong, merely the glee was infectious!)
<kentonv> though the startup time is still crappy
<kentonv> so maybe not the best first app experience
<kentonv> so maybe I should move it back down a slot
<kentonv> or two
<kentonv> or profile it and find out why the heck it's so slow.
Dwrensha-kiwiirc has joined #sandstorm
<zarvox> kentonv: do you have any suggestions for profiling apps under sandstorm, in the sandbox?
<zarvox> just gprof the binaries and log somewhere in the grain sandbox?
<kentonv> gprof is terrible. :P
<zarvox> Agreed!
<kentonv> but really it depends on the language
<kentonv> use the appropriate profiler for the language, write to the log or /var or something, pull it out ad hoc
joshbuddy has joined #sandstorm
<kentonv> FWIW, for C++ google-perftools is a way way way better profiler than gprof
<Dwrensha-kiwiirc> I just wanted to say: clicking the uninstall button and then reinstalling etherpad would likely have fixed ocdtrekkie 's double install
<paulproteus> I like that you're a kiwi today!
<kentonv> dwrensha impostor: you are probably right
<zarvox> that brings me to part 2: is there a way to (sanely) interactively debug/singlestep applications under sandstorm? I guess you could nsenter the sandbox, and if spk dev is working right, all the host binaries are within reach, so you can just attach gdb?
<kentonv> there's not anything sane right now.
<kentonv> arguably we should write a tool
Dwrensha-kiwiirc has quit [Client Quit]
<zarvox> (also I should maybe write sandstorm grain-sh <grainId> to get a shell in a running grain's environment)
Dwrensha-kiwiirc has joined #sandstorm
<zarvox> (since ubuntu 14.04 doesn't have nsenter ;_;)
<kentonv> zarvox: be sure that this doesn't cause the shell and gdb and such to be brought into sandstorm-files.list
Dwrensha-kiwiirc has quit [Client Quit]
<zarvox> kentonv: oh, I'm sure that they would be, but at the point where you're attaching an interactive debugger, you're probably not worried about sandstorm-files.list so much ;)
<kentonv> zarvox: I'm just saying a flag should be flipped that prevents sandstorm-files.list from being updated on `spk dev` exit for that particular run, since it's clearly going to be bogus.
<zarvox> Yeah, perhaps that should exist. Longer-term, I'd like to get away from relying on spk dev's tracing to be the source of truth on what should be included in spks in favor of something more declarative
<zarvox> for functional reproducibility by other devs, continuous integration, automatic building/testing of SPKs, etc
<kentonv> yes, I agree the tracing is pretty hacky and we should get away from it if we can.
<dwrensha> jparyani: should Dockerfile.dev be updated with `apt-get discount` after your changelog addition?
<zarvox> `apt-get install discount`, even
<paulproteus> apt install discount !!!???
<paulproteus> crazytown
<dwrensha> I'm right now trying to figure out how to install it on Arch
<dwrensha> `pacman -S markdown` gave me something that didn't work
<paulproteus> Also wow pell dot portland dot or dot us
<dwrensha> shouldn't there be a meteor markdown package that we could pull in instead?
<dwrensha> paulproteus: is there a way to tell the install script to use a certain pre-existing sandstorm.conf?
<dwrensha> that's nearly always what I want to do
<zarvox> dwrensha: hmmm, I usually sed the default-generated one in vagrant-spk and friends
<zarvox> I suppose things will break whenever we change the config file either way
decipherstatic has joined #sandstorm
<dwrensha> I always install accepting (most) defaults, then copy the old conf, then restart
<paulproteus> dwrensha: I think that it does that by default if you use "Developer" mode.
<paulproteus> But I haven't carefully tested that case. )-:
<paulproteus> Good thing I plan to write more installer tests.
<dwrensha> by default?
<dwrensha> you mean if there is already a sandstorm.conf in the install location?
<paulproteus> Yeah.
<dwrensha> usually my install location doesn't exist because I've just done `rm -rf /opt/sandstorm/`
<zarvox> Usually I test in VMs, but that's largely because my kernel crashes when supervisor runs
<zarvox> though maybe that's fixed now?
<kentonv> fwiw, using the existing sandstorm.conf is probably wrong, because the most likely reason a user would re-run the installer when the directory already exists is because they messed up their choices
<kentonv> (this is my mistake for doing it that way originally)
<kentonv> So I think we should probably change that. But it makes sense to have an option for specifying an existing config file.
<dwrensha> note: if I do `pacman -S markdown`, installing non-discount-flavored markdown, I get this error: "client/changelog.html:1: unclosed <template>"
paroneayea has quit [Read error: Connection reset by peer]
<dwrensha> I'd be almost okay with there being so many markdowns, if they just didn't insist on being invoked by the same command `markdown`