#social 2017-04-26

2017-04-26 UTC
timbl, tantek, KevinMarks, mariano and eprodrom joined the channel
#
eprodrom
urgh
#
eprodrom
ok just set up my IRC client on my phone to connect to this channel.
#
eprodrom
cwebber, when you get a chance let's talk testing
#
eprodrom
cwebber do you use artanis
timbl joined the channel
#
cwebber
eprodrom: hi!
#
cwebber
eprodrom: let's talk indeed
#
cwebber
eprodrom: artanis, the guile web framework?
#
cwebber
eprodrom: no, IMO it has some issues in its design
#
cwebber
eprodrom: so, the core of the web stuff is pretty simple, but then there are layers from there that make it trickier. If you want to do a super quick web server to get a sense of how that stuff works in Guile, there's a tutorial in the Guile manual at the end of the web section
#
cwebber
I recommend it
#
cwebber
but if you don't have time for that, no problem
#
cwebber
eprodrom: I'm using the following:
#
cwebber
- plain ol' pattern matching to do the "url routing" (using (ice-9 match))
#
cwebber
- sxml for the html templating (comes with guile)
#
cwebber
- 8sync for when you need things to be more asynchronous, eg the test suite uses both a web server and websockets server
#
cwebber
that's the core of the web stuff, there are things layered on top of there which I mention in HACKING
#
eprodrom
OK I'll take a look
#
eprodrom
I didn't realize that you already had a test server going
#
cwebber
eprodrom: the way the test suite works is there's a single static page loaded up in pubstrate/aptestsuite.scm, and all it does is set up the scaffolding... that's it (aside from assets) in http
#
cwebber
eprodrom: everything else is javascript + websockets
#
cwebber
so the UI will ask a question when it needs to
#
eprodrom
oh right this is the question thing
#
cwebber
and the javascript shoots it back over the websocket, runs tests, spits out info as its produced, and then will ask another question
#
cwebber
but the user can press back
#
eprodrom
ok I will check this
#
cwebber
that code is kind of gnarly because in order to get that back behavior I built it on top of delimited continuations
#
eprodrom
I don't get the question ui
#
eprodrom
did you get my email from this morning?
#
cwebber
eprodrom: I haven't checked my email, will look
#
cwebber
eprodrom: so the reason for the questions
#
cwebber
eprodrom: is that in the client tests you have to prompt the user to "do things" and the server has to verify it happened
#
cwebber
and it took me a long time to figure out an interface that woudl work for that, this is the best I could come up with
#
eprodrom
ok
#
cwebber
eprodrom: also oops I left an error in one of the files so it probably wasn't compiling
#
cwebber
pushing that now
#
eprodrom
all right
#
eprodrom
read my email
#
cwebber
some late night hacking
#
cwebber
ok reading
#
cwebber
fix pushed for that
#
eprodrom
why not have a set recipe of things the client has to do
#
cwebber
eprodrom: I'm not sure what you mean
#
cwebber
eprodrom: anyway yep I agree with your email of the breakdown, I was assuming I'd test 3 and 4 at the same time
#
cwebber
eprodrom: so I've started to break out what all the tests are based on the implementation reports
#
eprodrom
recipe = post a note, edit that note, delete that note
#
eprodrom
follow a user, unfollow a user
#
cwebber
eprodrom: yeah, I agree there should be that, but don't you think we need to prompt the user?
#
eprodrom
no
#
cwebber
eprodrom: take a look at server-outbox-items, you can see this is trying to capture extracting what all those items are from the test suite
#
cwebber
eprodrom: ok, how do you suggest to do it
#
eprodrom
"Fake server just for tests. Starting a test, the server creates a throwaway account with a fake username and password. The client code then performs a list of tasks: post a note, follow another user, delete an object. When the user clicks a button to say the test is complete, show successes and failures and offer to create an implementation report."
#
eprodrom
so can you tell me what tests already exist?
#
cwebber
eprodrom: ok, that's probably fine, but I'm not sure about "client code", wouldn't a lot of these involve a user having to click a bunch of buttons on their android app to make sure things work
#
eprodrom
I'm not interested in discussing this
#
cwebber
eprodrom: ok, I'm just trying to understand what we're doing
dmitriz joined the channel
#
eprodrom
is there currently a test server for the server side of the c2s
#
eprodrom
I could start working on that
#
cwebber
eprodrom: sure, take a look at test-outbox-activity-posted... those are the scant tests there
#
cwebber
eprodrom: there isn't, I hadn't started working on that yet
#
eprodrom
ok
#
eprodrom
maybe I can take that on
#
eprodrom
is it your plan to have live servers on the internet that people can test against
#
cwebber
eprodrom: eventually
#
cwebber
those are two different questions right, to be clear?
#
cwebber
I do have a demo server in pubstrate too
#
cwebber
but I figure the test server would want to be paired down
#
eprodrom
they are related questions
#
eprodrom
so activitypub.rocks right now is a static site on Github correct
#
cwebber
eprodrom: static site, not on github, I'm hosting it on mediagoblin.org
#
cwebber
but yes static
#
eprodrom
cool
#
cwebber
it uses Haunt
#
eprodrom
right
#
cwebber
eprodrom: but
#
eprodrom
don't care
#
cwebber
I figure the test suite will run on the same server
#
eprodrom
ok
#
eprodrom
docker?
#
cwebber
just the current stuff will be static, and the test suite will be reverse proxied through nginx
#
cwebber
eprodrom: I'll probably use guix to do the deployment, but
#
cwebber
eprodrom: if you want a docker image, guix can generate them
#
cwebber
or you can generate one :)
#
eprodrom
so, here's what I can do
#
eprodrom
I can set up a docker server
#
eprodrom
build a c2s test for servers
#
eprodrom
and deploy it to docker
#
eprodrom
I'll build it with Artanis
#
cwebber
eprodrom: we're going to split the tests? ok
#
eprodrom
and you can map test.activitypub.rocks to it
#
eprodrom
this seems like the biggest bang for buck to me
#
eprodrom
or c2s.activitypub.rocks or whatever
#
cwebber
ok
#
eprodrom
when it's all set you can move the code somewhere else
#
eprodrom
do you definitely want to keep all the test code in the pubstrate repo
#
cwebber
eprodrom: if you're doing something in Artanis I suggest just making a new repo
#
eprodrom
is there any chance we could move it to the W3C github area
#
cwebber
eprodrom: your new repo or both?
#
cwebber
eprodrom: I can move pubstrate and activitypub.rocks if you think appropriate
#
eprodrom
I guess if the test code is supposed to test lots of different implementations you'd want to have it separate from pubstrate
#
eprodrom
but it's up to you
#
cwebber
eprodrom: putting it in pubstrate was mostly a matter of time so that I could get things implemented and reuse some of the code I had
#
cwebber
eprodrom: wait are you working on the c2s test for servers, as in testing servers on that end?
#
cwebber
eprodrom: that's the part I had started on
#
cwebber
eprodrom: but, I didn't have too many of the tests, I had mainly gotten it to the point where tests were running and I felt like things were in a good structural state so you could join in
#
cwebber
eprodrom: anyway, you'll at least need a json processor ... your options are pretty much https://savannah.nongnu.org/projects/guile-json/ or https://gitlab.com/dustyweb/guile-sjson
eprodrom_ joined the channel
#
ben_thatmustbeme
as2.rocks is still down
eprodrom, timbl, tantek, eprodrom_ and elensil joined the channel
#
Loqi
[JanKusanagi] ActivityPub libraries
dmitriz joined the channel
#
ben_thatmustbeme
looks, huh, it has mf2 in it
#
cwebber
and thanks for all these PRs
#
tantek
Very cool on all parts! Good to see so much of our complementary work getting adopted
#
JanKusanagi
still just in the planning stage :p
timbl joined the channel
#
JanKusanagi
so what I'm thinking is a generic ActivityPub client library, but I'm thinking
#
JanKusanagi
as long as an "ActivityPub-capable server" supports the "AP client API", an AP client should be able to act as a client for any of the networks that move to it, right?
#
ajordan
cwebber: sure thing :)
#
ajordan
comments directly on commit diffs show up in PRs, btw. and vice-versa
#
ajordan
JanKusanagi: generally speaking yes
#
ajordan
barring problems with different auth schemes
#
JanKusanagi
so if Pump.io moves to AP, and GNU Social moves to AP, an updated GNU Social client should be usable for a Pump.io server, and an updated Pump.io client should be able (ideally) to be used as a GNU Social client
#
ajordan
not sure what our story is there given the extensive discussion that happened on Monday
#
JanKusanagi
ok
#
ajordan
tantek: it helps that mf2 is so very easy to implement/maintain :)
#
tantek
ajordan the result of many many years of painful lessons ?
#
JanKusanagi
assuming that maybe there are 2 or 3 "client auth methods", if a client is prepared to use them all, it should work with any server from any previously-different-network, correct?
#
ajordan
hahaha
#
ajordan
I'm sure tantek
#
Loqi
nice
#
JanKusanagi
(like XMPP clients support several auth methods and any XMPP client may be used with any XMPP server, whatever the underlying server software is)
#
ajordan
thx Loqi
#
Loqi
you're welcome
#
ajordan
JanKusanagi: right
#
JanKusanagi
ok
#
ajordan
generally speaking
#
JanKusanagi
yes, I imagine there will be plenty of things to iron out, exceptions and whatnot
#
JanKusanagi
but I'd rather not call my thing "QActivityPub" if it's really only going to be able to connect to Pump.io servers :D
#
JanKusanagi
*libqactivitypub
#
ajordan
go ahead and use that name :)
#
JanKusanagi
I'm also thinking of putting it on our pump.io group on gitlab.com, not under my personal "umbrella"
#
JanKusanagi
hopefully Sazius will be able to contribute something to it =)
eprodrom_ joined the channel
#
ajordan
that'd be neat!
#
aaronpk
https://micro.blog is rolling out to people this week, and supports webmention, micropub, and websub!
#
aaronpk
pretty cool to see!
#
aaronpk
it has a really nice iOS app for posting and following people
eprodrom and eprodrom_ joined the channel
#
csarven
I don't think I quite understand their usage of the phrase "own your content" meanwhile appear to (only?) offer a service. Is the underlying software publicly available/reusable somewhere other than micro.blog? What's different about micro.blog than say Twitter? Is it possible to assign different licenses and access controls to objects that the user creates?
#
csarven
or closer to the Wordpress model where you can use your own domain name using their infrastructure?
#
cwebber
not related to the above, but I just ran into this
#
cwebber
while I support "owning your own website", http://boffosocko.com/2017/04/05/mastodon-social-isnt-as-federated-or-as-decentralized-as-the-indie-web/ is kind of a bummer article
#
aaronpk
it's an interesting hybrid actually
#
cwebber
not everyone is able to do that, and regardless, having working federation between instances should probably be celebrated rather than shut down
#
aaronpk
you can have micro.blog host your site similar to wordpress.com. you get a subdomain on micro.blog, and you can map your domain to it
#
aaronpk
and then the service at micro.blog is more of an aggregator/reader
#
aaronpk
for example, https://micro.blog/aaronpk is actually pulling content from my website
#
aaronpk
so in that sense, I own my content, and now everyone else who is using micro.blog can follow me
#
tantek
yep, same with micro.blog/t - worked great without any work, using existing WebSub + Atom.xml support / standards
#
csarven
What's the license on the content that the user creates at micro.blog or fetches via other means?
#
tantek
what's the license on a random blog?
#
csarven
Good question. Most likely unset or the classic (c) I presume. Otherwise, it may default to the juristiction it is in if there are any disputes.
#
csarven
or those that care or have the means, they set it themselves.
#
tantek
csarven: out of curiosity, do you do per-post licensing on your own posts? It's been a low-level itch for me and I'm looking into existing real world examples
#
csarven
I can.. but I actually default to CC BY
#
csarven
I have CC BY on my cross-site template (footer)
#
tantek
I'd be interested in any examples where you changed it, e.g. a CC0 post, or All Rights reserved
#
tantek
and how (if?) you modify the footer or global license or anything somehow
#
csarven
But for some type of articles (usually "scholarly" stuff), I actually set it in that article too.
#
tantek
I'm definitely interested in how you present such differences / exceptions
#
csarven
The template one is sort of like.. unless otherwise stated, the site is CC BY.
#
csarven
That URL is CC BY.. whereas http://csarven.ca/faipdaaf#agreement is CC0
#
tantek
reads
#
csarven
Perhaps that doesn't address your question.
eprodrom_ joined the channel
#
tantek
That addresses a different question (licensing part of a page) but still useful!
#
tantek
Which is in particular potentially useful for giving individual comments, or the display thereof, different copyrights (since they come from likely different authors)
#
csarven
I can't recal.. checking..
#
csarven
Yes, certainly.
#
csarven
ok.. found one with CC BY SA. Not going to paste the URL here because I don't want it indexed :) but you can type it in if you like /paper-user-interface-did-not-read . it is actually a draft that I was playing around with which probably won't see the light of day now since parts of that doc is resued in other articles. In any case.. the template is CC BY, the article is CC BY SA
#
csarven
Coming back to being able to assign licenses/rights: it helps users be more aware of the implications of their work. less concerned about which license they use or rights they assign but the fact that it is in their radar.
#
csarven
re what you saig about presenting the differences. that'd be a nice to have. Right now I don't have a clear UI for that i.e., it is not visually (or even contentwise) possible to distinguish between license on the whole document from the parts
dmitriz joined the channel
#
csarven
I was using bridgy which was pulling in data from places. I can't recall if that was accompanied with any license/rights info. probably not.
#
csarven
if bridgy folks are not doing that already, they should consider it.
#
cwebber
hey sandro https://github.com/w3c/activitypub/issues/202 where should/can we host images for the spec?
#
Loqi
[mray] #202 SVG version tutorial Illustrations
#
cwebber
I think activitystreams did this
#
aaronpk
i hosted them in the spec itself
#
aaronpk
looks like as2 did that too
#
csarven
LDN as well
#
cwebber
oh, base64 encode it and put it in the doc?
#
cwebber
ah it's an svg
#
aaronpk
no, there's a mechanism to upload files
#
aaronpk
but yeah you could inline it too
#
cwebber
oic
#
cwebber
aaronpk: have a link to it? or know where to find it?
#
aaronpk
it took me a while to dig up... let me think
#
csarven
tantek: Oh, the example URL with CC BY SA is clearly wrong now b/c it also has CC BY from the template. I presume the more restrictive would apply. In any case, I wouldn't release such thing. Makes things complicated.
#
tantek
ah, that's the challenge I was wondering about. like if there was someway you had in-page that overrode the footer for the whole page for just that page
#
csarven
cwebber: If you want the object to be referable or retrievable go with the URL and upload to the server. Otherwise, inline data URL is fine.
#
csarven
I wanted LDN's SVG to be reusable (eg kinda nice ot have for slides if anyone wanted to)
#
cwebber
aaronpk: awesome, ty :)
#
csarven
cwebber: I hate to be that guy (well sometimes) but I suggest running those illustrations through colour accessibility tests. Some of the foreground/backgrounds don't have sufficient contrast in my opinion. I would also lean on them being monochrome friendly so that if the spec is printed in greyscale, it'd be still legible =)
#
tantek
csarven++ for a11y concerns about W3C specs themselves. Thank you.
#
Loqi
csarven has 17 karma in this channel (32 overall)
#
cwebber
csarven: I raised it on the issue
#
cwebber
I hope it can be adjusted without losing the high quality of the illustrations as they look now
eprodrom, timbl, eprodrom_ and tantek joined the channel