#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
# cwebber https://haunt.dthompson.us/
# 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
# cwebber https://datamost.com/jankusanagi/note/c85v-86WRQ2kIZD0m9-0sw hey awesome
dmitriz joined the channel
# cwebber ajordan: https://github.com/strugee/activitypub/commit/33113080d2cf2a2c79716fa4e2e2a7aabfe43dfd commented there
# ben_thatmustbeme looks, huh, it has mf2 in it
# cwebber and thanks for all these PRs
# 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?
# 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
# JanKusanagi ok
# 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?
# 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)
# JanKusanagi ok
# 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
# 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
# aaronpk https://micro.blog is rolling out to people this week, and supports webmention, micropub, and websub!
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?
# 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
# cwebber not everyone is able to do that, and regardless, having working federation between instances should probably be celebrated rather than shut down
# aaronpk for example, https://micro.blog/aaronpk is actually pulling content from my website
# csarven An example: http://csarven.ca/faipdaaf
# csarven That URL is CC BY.. whereas http://csarven.ca/faipdaaf#agreement is CC0
eprodrom_ joined the channel
# 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
dmitriz joined the channel
# cwebber hey sandro https://github.com/w3c/activitypub/issues/202 where should/can we host images for the spec?
# cwebber I think activitystreams did this
# cwebber oh, base64 encode it and put it in the doc?
# cwebber ah it's an svg
# cwebber oic
# cwebber aaronpk: have a link to it? or know where to find it?
# aaronpk okay start here: https://github.com/w3c/echidna/wiki/How-to-use-Echidna
# aaronpk cwebber: here it is https://github.com/w3c/echidna/wiki/Preparing-your-document#manifest-file
# cwebber aaronpk: awesome, ty :)
# aaronpk here's the micropub manifest.txt https://micropub.net/publish/pr/manifest.txt
# 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 =)
# 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