<dwrensha>
hm. I guess that basically any useful git hook addon is going to need to make a powerbox request
<dwrensha>
in its initial setup
<paulproteus>
For which power?
<dwrensha>
e.g. web publishing for GitWeb Pages
<dwrensha>
or outbound Http for webhooks
<paulproteus>
FWIW OpenGrok wouldn't necessarily.
<paulproteus>
I would imagine making an OpenGrok instance private by default, with git as the way to send data to it, where you use "Sharing" to grant access to the OpenGrok.
<dwrensha>
yeah, that sounds right. OpenGrok is more than just a hook
<dwrensha>
I don't see it fitting into the app addon model I'm imagining
<dwrensha>
You might have your main repo grain
<dwrensha>
which is GitWeb or GitLab or something
<dwrensha>
and then you register a hook that pushes to opengrok
<paulproteus>
Yeah, and I'd love it if this grain had the smarts to auto-import from GitHub.
<dwrensha>
autoimport what?
<dwrensha>
issues?
<paulproteus>
Auto-mirror a git repo from GitHub to a Sandstorm githubmirrorgitweb grain, and then push events from the Sandstorm githubmirrorgitweb grain into other Sandstorm grains e.g. OpenGrok grain.
<paulproteus>
Could push directly from GitHUb web hook to Sandstorm OpenGrok grain, but I'm fine having a layer in the middle.
<paulproteus>
I'd vaguely prefer if OpenGrok had no outbound network access so it would have a harder time leaking my corporate code, or something, though.
<dwrensha>
Is it possible to register a "push" hook on GitHub?
<paulproteus>
Like auto-push-the-last-push?
<paulproteus>
I don't think so.
<paulproteus>
So you'd need the Sansdtorm githubmirrorgitweb grain in the middle to replay the push.
<dwrensha>
I wonder why not
<paulproteus>
AFK a few min, fwiw.
natea has joined #sandstorm
natea has quit [Quit: natea]
natea has joined #sandstorm
mrshu has quit [Ping timeout: 255 seconds]
<neynah>
ocdtrekkie: would you happen to know if scrumblr has design assets? (e.g. logo)
natea has quit [Quit: natea]
natea has joined #sandstorm
heliostatic_ has joined #sandstorm
heliostatic_ has quit [Ping timeout: 272 seconds]
<simonv3>
Hey all, Iām going to try installing sandstorm - but in case of wanting to move to another server in the future, how hard is migrating?
jadewang has quit [Remote host closed the connection]
treyhunner has quit [Quit: No Ping reply in 180 seconds.]
treyhunner has joined #sandstorm
heliostatic_ has joined #sandstorm
jadewang has joined #sandstorm
heliostatic_ has quit [Ping timeout: 240 seconds]
jadewang has quit [Ping timeout: 240 seconds]
YuviPanda is now known as Yuvi|Vacation
mort___ has joined #sandstorm
mort___1 has joined #sandstorm
mort___1 has left #sandstorm [#sandstorm]
mort___ has quit [Ping timeout: 246 seconds]
xcombelle has quit [Ping timeout: 256 seconds]
maurer has quit [Ping timeout: 265 seconds]
xcombelle has joined #sandstorm
heliostatic_ has joined #sandstorm
heliostatic_ has quit [Ping timeout: 246 seconds]
maurer has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 265 seconds]
heliostatic_ has joined #sandstorm
heliostatic_ has quit [Ping timeout: 246 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 256 seconds]
mnutt_ has joined #sandstorm
heliostatic_ has joined #sandstorm
unamed has joined #sandstorm
heliostatic_ has quit [Ping timeout: 244 seconds]
<unamed>
Hi folks
<unamed>
Quick question; is this channel the appropriate channel to discuss some issues with capnproto?
<unamed>
I see there is no one in #capnproto
heliostatic_ has joined #sandstorm
heliostatic_ has quit [Ping timeout: 245 seconds]
<dwrensha>
unamed: yes, this is a good channel for capnproto issues
<unamed>
OK thanks. I have a rather trivial issue, but is making me waste a lot of time. I need (for the moment) to use capnproto + ZMQ. I have something like:
<unamed>
(shitty code ahead)
<unamed>
42 auto chello = mbuilder.initRoot<vproto::ds::session::Hello>(); 43 tid = tid_gen.get_next(); 44 fprintf(stderr, "TID: %llu\n", (long long unsigned int) tid); 45 chello.setTid(tid);
<unamed>
(that's where all the multi-segment stuff came)
<unamed>
I will have to come back to that sooner than later
heliostatic_ has quit [Ping timeout: 240 seconds]
<unamed>
dwrensha: works like a charm... damn
<unamed>
thanks a ton
<dwrensha>
yay!
natea has quit [Quit: natea]
natea has joined #sandstorm
heliostatic_ has joined #sandstorm
heliostatic__ has joined #sandstorm
heliostatic_ has quit [Ping timeout: 244 seconds]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 265 seconds]
mort___ has joined #sandstorm
natea has quit [Ping timeout: 240 seconds]
natea has joined #sandstorm
treyhunner has quit [Read error: Connection reset by peer]
treyhunner has joined #sandstorm
mattl has quit [Ping timeout: 244 seconds]
mattl has joined #sandstorm
<unamed>
yet another perhaps stupid question; generally you tend to use a MessageBuilder (MallocMessageBuilder) in stack and generally per message, as far as I read. The point is zmq might access the buffer (either the flat or segments) at any time before the free hook is called. Afaiu a destruction of the MessageBuilder implies the destruction of the segments allocated by that Builder. Therefore I guess the only reasonable way to go here i
<unamed>
and have a lambda function call the destructor?
<unamed>
does not sound ideal
* paulproteus
waves from an airplane
<paulproteus>
unamed: I'll leave that to e.g. dwrensha
<unamed>
or a pool of MessageBuilders
<unamed>
have a nice flight paulproteus
<paulproteus>
Thanks (-:
<dwrensha>
unamed: I'm not sure I understand the question. Are you trying to get zero-copy working?
<unamed>
not yet
<unamed>
but the same would apply for the Array of words that flatArray returns I guess
<dwrensha>
so you are still using messageToFlatArray()?
<unamed>
let
<paulproteus>
Also dwrensha and/or others, ist there an easy way to look up a user and delete them from e.g. `meteor shell` in Sandstorm?
<paulproteus>
I guess I could `sandstorm mongo` instead.
<paulproteus>
> Accounts.find({})
<paulproteus>
TypeError: Object #<Object> has no method 'find'
<unamed>
let's assume the 0 copy case
<paulproteus>
Meteor.users.find({}), thanks, sorry for the noise!
dcb has quit [Remote host closed the connection]
<dwrensha>
unamed: the messageToFlatArray() case is going to be simpler. I'd like to understand what the issue is in that case first
heliostatic__ has quit [Quit: Be back later ...]
<dwrensha>
I suppose you end up doing two copies? One in the call to messageToFlatArray(), and then another to transfer the kj::Array<word> to a zmq buffer
dcb has joined #sandstorm
<dwrensha>
I'm not that familiar with the zmq interface
<unamed>
no, just one
<dwrensha>
does it let you just pass in a pointer to the message that you want to send?
<unamed>
the message_t is initialized with the Flat array pointer
<unamed>
right
<unamed>
I see the Flat array actually allocates in heap; isn;t it?
PMT has joined #sandstorm
<dwrensha>
okay, and you need to make sure that the Array<word> lives longer than the zmq thing
<dwrensha>
because the zmq thing refers back to it
jadewang has joined #sandstorm
<unamed>
right, there is a free hook
<dwrensha>
Yes, the data of Array<word> is heap-allocated
<unamed>
so I guess the only way is putting a destructor / return to pool method / lambda method
<dwrensha>
ah, so "free hook" is something that zmq provides?
<unamed>
yes
<unamed>
you can optionally provide a callback
<dwrensha>
yeah, I suppose that one solution is to track a context of in-use Array<word>s in some outer scope
<dwrensha>
and your callback would free the appropriate one
jeffmendoza has joined #sandstorm
jadewang has quit [Ping timeout: 256 seconds]
mort___ has quit [Ping timeout: 246 seconds]
<unamed>
sounds not that optimal. In the 0 copy case, one could prealloc some builders in heap, and create a pool, and during the free hook, cleanup the builder current segments. Something like that..
<unamed>
I guess with capnproto rpcs this is automatically done
<dwrensha>
unamed: are you hoping to reuse the MallocMessageBuilder objects? I don't think they are designed to support that.
<dwrensha>
can zmq handle allocation/freeing for you? Is there a way to say, "give me some memory into which I will write my message, and then you handle freeing it when you are done"?
<unamed>
Looking into this right now. I suspect yes, and that would be the right way. Prealloc based on "serialized size" and then convert to flat array directly in the zmq message
<unamed>
however 0-copy would be a completely different story
heliostatic__ has joined #sandstorm
<dwrensha>
if zmq lets you preallocate like that, then maybe you should write a custom implementation of MessageBuilder
<dwrensha>
overriding allocateSegment()
<dwrensha>
(though I worry about alignment issues)
heliostatic__ has quit [Client Quit]
<unamed>
agree. Honestly, I know the efforts are on capnproto RPC and makes sense. For portability to current ZMQ applications, though, it would be quite interesting to have a sample with it. I am still trying to figure out the consequences of putting together these techs.
mnutt__ has joined #sandstorm
jadewang has joined #sandstorm
<unamed>
thanks dwrensha, and have a nice day
unamed has quit [Quit: Page closed]
simonv3 has joined #sandstorm
<paulproteus>
Howdy simonv3
<paulproteus>
BTW will you be at CCC Camp?
<simonv3>
Heya!
<simonv3>
I wonāt be, Iām in Alaska :P
<simonv3>
Wish I was though
<PMT>
paulproteus: I'm using etherpad for work on sandcats and i blame you
<paulproteus>
I hope dwrensha doens't mind me filing small UI papercuts as bugs.
<paulproteus>
Also dwrensha if there's a good way to tag you on these (should I assign to you? Add a label? @-notify you?) that's something I can do to avoid these getting lost.
<PMT>
paulproteus: if I want to whine about draw.io on sandstorm not being collaborative in updating, should i file a bug with anyone in particular
<paulproteus>
PMT: Yeah, the draw.io upstreams, since they maintain the package
<paulproteus>
BTW they will be legit excited you're using draw.io on Sandstorm.
<PMT>
i believe it
<paulproteus>
I don't have a bug tracker URL for them, sadly, but can do an email intro if you can't find their contact info.
<paulproteus>
BTW cool that you're using Sandstorm. I hope that's working out for you.
<PMT>
so far etherpad hasn't burnt down
<paulproteus>
BTW do you know that each Etherpad document in Sandstorm is a separate _install_ of Etherpad?
<simonv3>
paulproteus: yeah I feel like filing ui bug papercuts (like that term) on the github issues is not ideal (on any project), but itās the best weāve got for a lot
<paulproteus>
So this has the upside that
<paulproteus>
each one can burn down independently, or something.
<PMT>
paulproteus: I can't find anything remotely like a bugtracker for draw.io
<PMT>
I found a 3y-old-last-commit github
<paulproteus>
"that's a start"
<XgF>
Support.draw.io?
<paulproteus>
Seems sensible. The package is maintained by upstream so that's probably right.
<PMT>
Is there a link I overlooked for that from their page?
<paulproteus>
BTW PMT remind me what work is?
<paulproteus>
Oh BTW simonv3 w/r/t data export:
<PMT>
paulproteus: my company, or ?
<paulproteus>
Yeah, your company.
<paulproteus>
We like to get a sense of where people are using Sandstorm at work.
<paulproteus>
jadewang especially, but me at least slightly.
<paulproteus>
Have I mentioned Tor uses Sandstorm? I still find that really exciting, http://storm.torproject.org/
<paulproteus>
simonv3: /opt/sandstorm contains the entire state of your Sandstorm. Copy that to a new machine and you've migrated.
<PMT>
sensorstar.com is currently employing me
<PMT>
though we do not have a company deployment of any sort, we're just playing with it personally for collaborating
<paulproteus>
Neato.
<paulproteus>
Are there apps that would make it more useful?
<paulproteus>
BTW my hidden agenda for Sandstorm is I want it to be a thing that makes "shadow IT" a safe thing for people to do with company data.
<PMT>
Just started trying it today, but "if draw.io supported collaborative editing that updsated" would be one :)
<paulproteus>
Ah hah, yes (-:
<PMT>
paulproteus: you know, "hidden" agendas are supposed to be hidden at all
<paulproteus>
You could try EtherDraw fwiw
<paulproteus>
PMT: o
jadewang has quit [Remote host closed the connection]
<XgF>
EtherDraw is about scribbling, not disgramming :(
<PMT>
paulproteus: what XgF said
<paulproteus>
i,i maybe Hacker Draw would do the right thing
<paulproteus>
(kidding)
<PMT>
i,i appreciate the explanation of i,i in the subject
<paulproteus>
BTW yesterday I learned about how Chromium special-cases *.localhost
treyhunner has quit [Read error: Connection reset by peer]
treyhunner has joined #sandstorm
jadewang has joined #sandstorm
<paulproteus>
morning jadewang from a plane
<maurer>
paulproteus: I wonder if tor could use sandstorm to make hidden services more difficult to discover by using it as a small-size migration system
<paulproteus>
small-size migration system?
<paulproteus>
But yes, hosting hidden services in Sandstorm would be glorious.
<maurer>
normal ways of migrating webapps tend to be bandwidth expensive
<maurer>
e.g. moving a VM or docker image
<maurer>
this is relevant for trying to shift a hidden service from one machine to another
<paulproteus>
Ah hah, interesting.
<maurer>
Basically, tor relies on meet-in-the-middle to hide hidden services, but it'd be much harder to try to track it back using accumulated data if the "to the server" leg of that journey became useless after a day
neynah has joined #sandstorm
<maurer>
And while transferring gigabytes over tor is no good, transferring 5-6M is generally fine
<paulproteus>
Howdy neynah
<paulproteus>
It's interesting being in the sky
<paulproteus>
I'm fighting with Jenkins to make it approve my pull request at the moment.
<neynah>
:D
<neynah>
I'm glad you made it onto the plane!
<paulproteus>
(-:
<neynah>
Unfortunately, I got delayed and didn't make it onto my train. But less important.
<chromeproteus>
I'm going offline for a bit, but others here can hopefully help you out!
<neynah>
chromeproteus: have fun!
natea has quit [Quit: natea]
chromeproteus has quit [Ping timeout: 246 seconds]
NOTevil has quit [Quit: NO CARRIER]
isd has joined #sandstorm
GeorgeHahn has joined #sandstorm
<zarvox>
kentonv: looks like it's the CSP header that's causing SVG to show in black and white
<kentonv>
wat
<zarvox>
Refused to apply inline style because it violates the following Content Security Policy directive: "default-src 'none'".
simonv3 has quit [Quit: Connection closed for inactivity]
isd has quit [Quit: Leaving.]
jeffmendoza has quit [Ping timeout: 265 seconds]
<ocdtrekkie>
neynah: I can look and see if assets exist for anything I ported, though I never paid attention. I don't recall any logoage for Scrumblr.
<ocdtrekkie>
paulproteus: Re: Tor uses Sandstorm: That's really awesome.
unamed has joined #sandstorm
<neynah>
ocdtrekkie: thanks, I would appreciate that. Alternatively, I can put together graphics (possibly using the typeface for "scrumblr"), and see if the like it/allow us to use it on Sandstorm.
<ocdtrekkie>
neynah: Scrumblr appears to have no logos. Also derivative works are forbidden on images in it.
<ocdtrekkie>
As far as my porting goes, I'm happy to include whatever you need, all of my ports were for fun or 'because someone might want it or find it cool'.
<ocdtrekkie>
EtherDraw uses the Etherpad favicon by default, which seems to be about as far as that goes.
<unamed>
HI guys. Quick question (still battling with zmq+capnp); I have an issue with kj::Array<word> messageToFlatArray(kj::ArrayPtr<const kj::ArrayPtr<const word>> segments). The actual buffer is allocated in heap, but not the Array itself, which produces the deletion of the buffer once it goes out from stack. Is there any trivial way of preventing this without reimplementing this method?
natea has joined #sandstorm
<neynah>
Thanks ocdtrekkie.I initially used the green map (that you start out with) for meteor blocks, but having this graphic makes this simpler.
<ocdtrekkie>
(In the case of Meteor Blocks, I need to repackage it anyways sometime soon because the upstream updated it to Meteor 1.x and the existing package doesn't even have appName or appMarketingVersion fields in it.)
<zarvox>
unamed: are you returning kj::mv(thatArrayInstance)?
<unamed>
I need it in stack: return by move (rvalue) doesn't work for me (I need the array to be in heap)
<zarvox>
and you're allocating with kj::heapArray()?
<unamed>
was trying: kj::Array<capnp::word>* res = new kj::Array<capnp::word>()
<unamed>
then mv to res the result of messageToFlatArray
<unamed>
and finally reset the original array (to 0 size and null)
<unamed>
this did not work, apparently
<ocdtrekkie>
Those are great too, neynah!
<neynah>
:D
<ocdtrekkie>
I noticed one of the other apps you made a set for on Github, where one had square corners and one had rounded. Do you have a set of icon guidelines you're working off of?
<ocdtrekkie>
Market icons should be x, launcher icons should be x, etc. for backgrounds and sizes and stuff?
<neynah>
For the mini grain icon we're likely going with 24x24px, 128x128 for the launcher(shell), and 160x160 for the app market
<zarvox>
unamed: sorry, but my C++11/14 and kj are probably a little too weak to help here; perhaps kentonv can nudge you in the right direction
<neynah>
With the mini grain icon and the app market, anything goes. For the launcher, if we're provided with a square app we're going to do a 6px round of the edges.
<unamed>
zarvox, thanks!
<zarvox>
I generally suggest using kj::heap() and kj::heapArray() rather than allocating with new, so you get owned-pointers even on the heap and avoid leaks
<kentonv>
unamed: you should move the Array<word> to live wherever you would otherwise store the array pointer
<unamed>
the problem is, the array has to be destructed by a callback of zmq
<zarvox>
if the zmq callback can nullptr the reference, that'd do the trick :)
<unamed>
right, that's what I was trying by allocating the Array in heap directly with new
<kentonv>
unamed: does the zmq callback only pass through a void* pointer for context?
<unamed>
yes
<unamed>
strict void*
<ocdtrekkie>
And tag paulproteus that we need a "app publishing" section with details on icon guidelines and stuff.
<neynah>
Yes, we are working on adjustments to the SPK guidelines which @kentonv and @paulproteus @chromeproteus would be able to tell you more about.
<kentonv>
unamed: that's too bad. You'll have to allocate Array<word> directly on the heap, then (or a struct containing it)
<neynah>
I dunno why I put @'s there. Twitter habit.
<unamed>
yes, I was suspecting this.. and trying. Somehow I am not able to properly do it...
<unamed>
I will try it sometime more otherwise go to bed! (2am here :))
<kentonv>
Array<word>* onHeap = new Array<word>(kj::mv(arrayOnStack));
<kentonv>
though I'd actually suggest creating a struct CallbackContext to use, even if the Array<word> is the only thing it contains -- easier to extend later.
<kentonv>
note that when using new/delete directly, you now have to think extra-hard about exception-safety to avoid memory leaks.
<kentonv>
which is why KJ tries very hard to avoid it
<kentonv>
ocdtrekkie: I'm building a new publishing pipeline now. Soon there will be an `spk publish` command.
<kentonv>
ocdtrekkie: all app store metadata will be declared inside sandstorm-pkgdef.capnp
<unamed>
thanks kenton. What you suggested is what I first tried, but for whatever reason doesn't work, so it might be somewhere else the problem. Just to make sure; kj::mv does cleanup the origin, isn;t it? Or I should clean it up manually (i.e. put size to 0 and first item to nullptr)