<daluno>
hey all! new user here, trying to configure roundcube within sandstorm. is it as simple as finding the config.inc.php file on the server and editing it?
<paulproteus>
Hi daluno!
<paulproteus>
What sort of configuring are you trying to do?
<paulproteus>
There's the supported way of configuring a thing like RoundCube on Sandstorm, which is to use the web interface to make customizations.
<paulproteus>
The other supported way is to take the Sandstorm package and rebuild it with your modifications and make a custom SPK file.
oao has joined #sandstorm
<daluno>
i just want to allow it to connect to IMAP servers that i specify. if it's configurable in the web UI, i couldn't find it!
<paulproteus>
The third way which is not super-duper supported but I can tell you how to do if you really want, is you can find the unpacked code and modify the files in it.
<paulproteus>
But I don't think you'll get super-duper far that way.
<paulproteus>
daluno: Oh! If what you want is outbound network access for RoundCube, you won't get very far yet, because apps don't have network access.
<daluno>
i'm ordinarily comfortable editing config files; i just want to do it the right way wrt sandstorm
<daluno>
aha, well then!
<daluno>
waitasec, but i installed and configured an RSS reader. is it getting all that data from my *client*? !
kepod has quit [Ping timeout: 240 seconds]
<paulproteus>
Yeah I need to figure out how Tiny-Tiny-RSS works.
<paulproteus>
One sec.
<paulproteus>
But basically it has some limited exception.
<oao>
will a sanstorm restart also restart all the apps? (and is there a better way to just restart a single app?)
simonv3 has quit [Quit: Connection closed for inactivity]
<paulproteus>
What sort of restarting would you want to do to an app?
<oao>
for example, if i have to muck with the app's config file directly and it has one or more ongoing processes which do not automatically detect the change
<paulproteus>
Eek
<paulproteus>
So the following _might_ work but it's not really supported.
<paulproteus>
The supported way to do that is, if you need to make a new package, make a new package, install the package, and start using it rather than the other thing you had installed.
decipherstatic has quit [Quit: No Ping reply in 180 seconds.]
jorge has joined #sandstorm
jacksingleton has joined #sandstorm
decipherstatic has joined #sandstorm
<jorge>
asheesh, you by?
<oao>
that's good to know, but may represent a deeper level of involvement than i am prepared for at the moment
<oao>
and thank you!
<paulproteus>
jorge: Hi! Yeah, sup.
<paulproteus>
oao: Thanks for asking all these questions.
<jorge>
Nothing, sadly. I haven't been able to use the new easy method. Weird, because my old manual one worked first time and I wrote it up. Do you have some relevant new docs for it now? I know I haven't been around for a few days since we started that etherpad one.
<paulproteus>
Interesting. What new easy method?
<paulproteus>
Sorry if I forgot what we were talking about!
<paulproteus>
What you need is the "Enabling HTTPS for an existing sandcats.io Sandstorm server" section of that doc.
<jorge>
OK, thanks, I'll go read. thx very much.
<paulproteus>
Great -- let me know how it goes for you.
<paulproteus>
It's easy to mess it up -- I've already seen a couple people make typos -- so if you run into any issues, then do ping me.
<paulproteus>
If I have to run off, I'll let you know here at least.
<jorge>
Just to document. My problem is being unable to create the initial admin user. To remind you, I'm trying behind nat for sport. I think that would help the most people. I map fine and save config, but... it doesn't take. Hopefully your link already answers the problem.
<paulproteus>
Oh interesting.
<paulproteus>
If you can view the site, but saving config doesn't work, then we're in a bit of a mess.
<jorge>
Everything is always 'interesting' until it's fixed ;-)
<oao>
i couldn't create the initial admin user until i realized that i had to enable one of the apparently all-optional auth methods while using the admin-token session
<paulproteus>
Yeah, I need to make that easier.
<jorge>
thx oao, sec
<oao>
my assumption had been that without enabling any of those, i would get to use a native auth mechanism that was not disablable
<paulproteus>
jorge: OH I see
<jorge>
OK, which is the all-optional auth method? The dangerous looking enable passwordless email? I have 3 options.
<paulproteus>
You need to then click "Sign in" after enabling something
<paulproteus>
Try that.
<jorge>
did that
<paulproteus>
Oh huh.
<paulproteus>
What happens then?
<jorge>
all looks ok until I try to visit and it tells me no users.
<paulproteus>
Are you willing to send me a private message with an admin token link for me to poke at it? I'll promise to be nice (although in theory freenode could conspire against us).
<jorge>
sure
<jorge>
k?
<paulproteus>
Hey jorge I'm sending you private messages, let me know if you see them
<paulproteus>
Hey dwrensha
<dwrensha>
hi
<paulproteus>
I have no idea why jorge's OAuth isn't working, but it sure isn't. I wonder if you'd be willing to try his admin token URL.
<dwrensha>
ok
<paulproteus>
jorge: Can you send the link to dwrensha too?
<dwrensha>
I haven't gotten then link from jorge, and I'm turning in for the night. Good luck!
<dwrensha>
The GitWeb and GitLab apps do this, for example
<dwrensha>
though they use "offer templates", which are currently undocumented
<michaelt>
I read that
<michaelt>
I wasn't sure if there was documentation
iangreenleaf has left #sandstorm ["Leaving"]
<michaelt>
I'll look at it more and see if I can figure it out
<michaelt>
I just found SandStorm.io from the Meteor hackathon page
<michaelt>
and i am trying to figure out if it will work for my app
jadewang has joined #sandstorm
<michaelt>
I want to build something like etherdraw
<michaelt>
Except you will create a new "document" from the home page of my website
<michaelt>
then when your done editing, you can save the document and export it as static so that it will scale
<michaelt>
and if someone wants to make edits then they can click an edit button which will open the document in a live environment that multiple people can edit
rchrd2 has joined #sandstorm
rchrd2 has quit [Client Quit]
<dwrensha>
michaelt: that's an interesting setup. I like how it would encourage new users to try your app.
<dwrensha>
I'm not sure how it would fit into Sandstorm's features
<dwrensha>
one problem is that currently the only way for grains to get created is by users clicking on icons inside the Sandstorm shell
<dwrensha>
We have do have something vaguely similar to your edit button in our "appdemo" links. However, they don't receive any starting data; they can only create an empty grain.
deadfish has joined #sandstorm
mort___ has joined #sandstorm
mort___ has quit [Client Quit]
<deadfish>
Hi guys. Very stupid question: in capnproto, which would be the most natural way to define a type of a MAC address type (6 x uint8_t)? A List<Uint8> seems a botch. afaik there is no "array" support, and the only thing it comes to my mind is a struct with each byte as a member of the struct
fonfon has joined #sandstorm
<deadfish>
it would be nice to be able to do a raw memcpy too
<dwrensha>
deadfish: we eventually want to have fixed-length arrays
<deadfish>
aha... next release?
<dwrensha>
for now, member-per-(byte/word) is what we've been doing
<deadfish>
would it be portable to define it uint64_t and memcpy just 6 bytes?
<dwrensha>
note that in C++ there is a getDataSection() method that gives you a memcpy()-able pointer
neynah has joined #sandstorm
<neynah>
Btw! I will be coming to the office after the meeting. Feel free to leave my lunch out / put it in the fridge. :D
<kentonv>
dwrensha, deadfish: 6 bytes is an awkward size for doing my getDataSection hack (which requires using AnyStruct, btw)
<dwrensha>
I guess getDataSection() returns a word array?
<kentonv>
no, it returns Data, but the problem is it's harder to guarantee that the bytes will be in the right order
<dwrensha>
how so?
<kentonv>
I mean if you defined it as 6 UInt8 fields, for example... it's a bit weirder to rely on those being the first 6 bytes of the struct. I think they will be, but it's less obivous then in the UInt64 case.
<kentonv>
I guess if you define it as a single UInt64 maybe that's safe
<kentonv>
I also am not really inclined to recommend my hack in general. :)
<kentonv>
should really come up with a proper fix... if only I had time
<kentonv>
FWIW, I think using "Data" as the type is reasonable, too. You'll need to validate that input is 6 bytes, of course, but Data is memcpy()-friendly.
<dwrensha>
if you have `macAddress: UInt64`, it's not portable to do `getMacAddress()` then `memcpy()`.
<deadfish>
humm... why shouldn't it?
<dwrensha>
getMacAddress() will swap the bytes on a little-endian machine
<deadfish>
right
<dwrensha>
er... big-endian
<deadfish>
I was just thinking about the same endianess on both
<dwrensha>
Cap'n Proto data is always little endian
<deadfish>
you'd have to align according to endianess during the memcpy
<deadfish>
even if the peers are BE
<deadfish>
?
<deadfish>
(like, both)
<dwrensha>
Cap'n Proto data is always little endian. On the wire and in memory.
<kentonv>
application code really shouldn't be thinking about endianness. Trust Cap'n Proto to take care of it for you, and don't try to memcpy() bytes out of int64 values in your own code.
<dwrensha>
When you call a get() method, it will swap the bytes as necessary
<deadfish>
I understand this. Dealt with these crap of endianess with incomplete types (like 6 bytes). I really was not thinking when I made the stupid question
<kentonv>
if you encode in an int64 and then get() that int64 and want to pull the bytes out, use bit shifts to do so, not a memcpy
<kentonv>
the compiler will actually optimize bit shifts to a memcpy when possible. :)
<deadfish>
I understand that, if any, one should optimise for LE, but I am curious why if capnp can negociate the endianess during stablishment, if both peers are BE, why converting at all
<kentonv>
using AnyStruct's getDataSection() and memcpy() from there is "safe" because it always consistently returns bytes in little-endian order even on big-endian machines.
<deadfish>
Noted kenton
<deadfish>
I will have a look to AnyStruct
<kentonv>
it's a huge hack though.
<deadfish>
I think we all agree the smartest solution would be to have fixed length arrays. But, it's fine, capnp is just growing :)
<kentonv>
Cap'n Proto doesn't attempt to negotiate endianness because that would actually make the code slower: we'd have to have an if() in every getter to do different things based on the endianness of the input data, which probably would negate any benefit from being able to use native endianness
<kentonv>
big-endian architectures generally all have special instructions for reading little-endian data anyway, so they shouldn't be harmed by everything being little-endian
<deadfish>
while that's true, the cost of that branch is likely equal or less than a 32 or 64 conversion if it cannot be optimised at compile time (which generally it cannot, unless constants)
<kentonv>
assuming good prediction, the biggest cost of the branch would perhaps be code bloat, which leads to instruction cache inefficiency. Hard to predict the effects.
simonv3 has quit [Quit: Connection closed for inactivity]
bb010g has quit [Quit: Connection closed for inactivity]
gopar has quit [Quit: Leaving]
fonfon has quit [Remote host closed the connection]
skay has joined #sandstorm
<paulproteus>
Hey everyone, I met a person who claims that automatically working HTTPS is the main reason they got around to bothering to run a Sandstorm anywhere, which is pretty cool.
<skay>
o/
<skay>
that's me.
<skay>
also I hve a question about the ipython grain. I'd like to run ipython with some packages installed
<paulproteus>
The "easiest" thing to do is to make a custom SPK.
<paulproteus>
In theory what we should do is support your use case better.
<paulproteus>
But it doesn't have a .sandstorm/ so it doesn't use vagrant-spk so the build process is not super automated.
<skay>
I'd like to be able to share an ipython notebook with a couple of coworkers. I'll be teaching them some basic python and then introducing some topics
<paulproteus>
But it is semi-reasonably well documented.
<skay>
so I'll want requests at minimum
<paulproteus>
And you'd also therefore want outbound network access, not just a HTTP client library with no outbound network access, yeah?
<skay>
yes, if possible
<skay>
(I'd need help figuring that part out)
<skay>
I might give up the idea of teaching this way
<paulproteus>
Right now the way to get that is by doing some Cap'n Proto RPC on a semi-undocumented method called httpGet of "HackSession."
<paulproteus>
Which is to say it's sort of a pain, but absolutely doable. The Tiny-Tiny-RSS package works that way.
<skay>
ok, so plans are 1. look at the existing ipython, 2. look at Tiny-Tiny-RSS to see how it works
<paulproteus>
What's your time budget for this ("I want it to work in less than 2 hours' time total") and what's your ETA for it? And are you willing to blog about the results?
<paulproteus>
"what's your ETA for it" as in "what's your deadline?"
<skay>
I would like to be able to set things up in half a day? I can spent part of my friday on experimental stuff
<skay>
I want to be able to present materials to my coworkers sometime next week
<skay>
If I manage to write something that isn't horrid prose I might be willing to write a post for you
<paulproteus>
Screenshots and bullets would also be great.
<skay>
my etherpad story is pretty awesome
<paulproteus>
Heh (-:
<paulproteus>
So I think my story is that if today and tomorrow go well for me, I can probably spend some time on Friday morning trailblazing and identifying/removing obstacles for you to successfully do all this.
<skay>
the only problem I had was when I tried to install sandstorm on my scaleways account, which is arm. and your script was helpful and interrupted me at the very beginning
<skay>
I set up a dev account even though I don't have a reason to
<paulproteus>
In terms of IPython stuff, if it works out for me to ping you at 1pm Pacific (maybe I could do noon? 11am?) with an email on what you should expect, then I can try to trailblaze a bit.