20170304 Log

09:02:40      breton  #startmeeting 09:02:48      breton  where is the bot? 09:03:03      breton  #startmeeting mediagoblin 09:03:11      breton  oh well 09:03:18      ayleph  i haven't seen chaosgoblin in quite a while : 09:03:24  paroneayea  womp womp 09:03:33  paroneayea  well, we could record the log and just post it to the list ourselves 09:03:53      breton  hi everyone, welcome to our monthly meeting 09:03:59      breton  todays agenda 09:03:59  paroneayea  \o/ 09:04:03      breton   - GSoC 09:04:16      breton  what else? 09:04:35  paroneayea   - Federation and ActivityPub progress 09:04:43  paroneayea  it ties in with at least one GSoC option 09:05:40  paroneayea  maybe we should do the federation / activitypub update first since it impacts the gsoc discussion? breton, wdyt? 09:06:26      breton  paroneayea: sounds good, go for it :) 09:06:29   paroneayea  ok :) 09:06:37  paroneayea  so let's open up with some Good News 09:07:29  paroneayea  ActivityPub relies on ActivityStreams, and ActivityStreams just got signed off to "go to PR", ie "Proposed Recommendation" 09:07:51  paroneayea  ActivityStreams is our whole vocabulary, etc in ActivityPub, so this is good 09:07:58  paroneayea  PR means the group has spent a lonnnnnng time vetting the spec 09:08:13  paroneayea  and it's now ready to be sent to the w3c advisory committee to review 09:08:23  paroneayea  and hopefully make it an official spec 09:08:27  paroneayea  so that's good news \o/ 09:09:29  paroneayea  in helping to make sure that we didn't have any important vocabulary dropped from the spec, we                        had to prove implementation of all the terms, which means I've done a TON of implementation of                        ActivityStreams terms in Pubstrate, the ActivityPub testbed server I've been working on 09:09:34   paroneayea  http://dustycloud.org/gfx/goodies/video-in-pubstrate.png look, video! :) 09:09:46  paroneayea  Pubstrate isn't doing anything like MediaGoblin's processing tooling 09:10:05   paroneayea  but it can read the metadata that MediaGoblin will publish once MediaGoblin supports ActivityPUb 09:10:32   paroneayea  so I already have a good idea of what that'll be "shaped" like once we switch MediaGoblin's                        federation code over to ActivityPub 09:11:18   paroneayea  in the meanwhile, as for ActivityPub itself, it's still at Candidate Recommendation stage,                        pre-CR.  The group got a 6 month extension for ActivityPub, but in order to meet that 09:12:00   paroneayea  we need implementation reports (the template for which I'm just now about to merge https://github.com/w3c/activitypub/pull/174#issuecomment-284131233 ) 09:12:13  paroneayea  and we need a test suite implementations can test against 09:12:19   paroneayea  my whole next month will mostly be spent on that test suite. 09:12:42   paroneayea  after that's done, I'll be helping with MediaGoblin's switch over to ActivityPub, but the test                        suite needs to happen first 09:12:50   paroneayea  so that's the update. 09:12:54   paroneayea  questions? :) 09:13:01      ayleph  when do you sleep? 09:13:36      ayleph  sounds like you've been extremely busy, and very productive. 09:13:44  paroneayea  thanks ayleph :)  I appreciate that 09:13:49       breton  there should be more docs for dumb people like me 09:14:01       breton  or blogposts 09:14:14   paroneayea  breton: have you read the AP spec? https://www.w3.org/TR/activitypub/ 09:14:24   paroneayea  we've tried to make it fairly readable 09:14:54   paroneayea  breton: and yes I'd like to do more blogposts, I haven't gotten to it yet 09:15:06       ayleph  i'm really excite about that pubstrate screen shot with video 09:15:07       breton  paroneayea: yes. But it's 40 pages :( 09:15:38  paroneayea  though! If you want a fun distraction https://archive.org/details/feb_2017-live_network_coding_8sync 09:15:41  paroneayea  watch this after the meeting :) 09:15:52   paroneayea  it'll tie together the federation work with some other things ;) 09:15:56  paroneayea  that's not important though. Okay! 09:16:03  paroneayea  any other questions, or on to GSoC? 09:16:18  paroneayea  ayleph: glad you're excited to see it... I was excited to get it working :) 09:16:53  paroneayea  ayleph: btw if you want a rendering of what that AS2 object is before it's rendered in fancy                        HTML, I could pull it up... 09:17:22   paroneayea  no questions?  maybe we should move on to GSoC 09:17:35       breton  yes, lets move on 09:17:38   paroneayea  #topic GSoC 09:17:41   paroneayea  breton: why don't you lead this one 09:17:48       breton  GNU was accepted to GSoC 09:17:58       breton  we participate under GNU umbrella 09:18:36       breton  https://wiki.mediagoblin.org/GSOC_2017 -- is our GSoC page, please fix it if you see something                        wrong there 09:19:26       breton  we have several students who contacted us early! 09:19:33   paroneayea  breton: cool :) 09:20:10      breton  so if some of them are here, we could talk about the projects 09:20:31  paroneayea  let's do it! 09:20:51      breton  one thing i wanted to discuss is access control project 09:21:04      breton  paroneayea: how do you see it tied with activitypub one? 09:21:22  paroneayea  breton: let's look at an example ActivityStreams object to see how! 09:21:26  paroneayea  let me pull it up, one sec 09:22:57  paroneayea  http://dpaste.com/1PDDHR3 09:23:00  paroneayea  here are two examples 09:23:14  paroneayea  taken from the ActivityPub document 09:23:41  paroneayea  you can see a couple of things: a) objects are nested, the first one shows that we are                        Create'ing a Note 09:24:09   paroneayea  usually a stream will consist of Activity related to an Object (by an Actor) 09:24:46   paroneayea  b) you'll notice that there's these fields for "to" or "cc" (and also "bcc" and "bto" in case                        you don't want to disclose those recipients) 09:24:54  paroneayea  so we're sending things to those specific users 09:25:02  paroneayea  or even possibly to collections of users! 09:25:16  paroneayea    "to": ["https://example.org/~john/"], 09:25:16  paroneayea    "cc": ["https://example.com/~erik/followers", 09:25:17  paroneayea           "https://www.w3.org/ns/activitystreams#Public"] 09:25:37  paroneayea  in this example, "example.org/~john" is an actor on the network 09:25:53  paroneayea  whereas "https://example.com/~erik/followers" is a collection of all the followers 09:26:10  paroneayea  "https://www.w3.org/ns/activitystreams#Public" is kind of a special meta-collection that says "actually anyone can see this" 09:26:16  paroneayea  if we pretend the Public wasn't there 09:26:27  paroneayea  we'd only want the original author, john, and erik's followers to read this 09:26:43  paroneayea  that implies some fine-grained access control on an object level 09:27:10  paroneayea  and indeed, for the Like by Mallory in Example 2, sarah and john presumably are the only people who read it 09:27:21      breton  so like email 09:27:24  paroneayea  yes exactly. 09:27:35  paroneayea  so to and cc and etc are *primarily* used for delivery 09:27:40  paroneayea  but they also *imply* access control. 09:28:07  paroneayea  so, let's say we had two GSoC students at once, one working on access control and one working on                        ActivityPub federation! How could we get them to work together? 09:28:37  paroneayea  well I think it isn't so terrrrrribly hard actually, but it will require they are willing to                        work together a bit. they don't have to work from the same branch. 09:29:16      ayleph  paroneayea: do you think that ActivityPub implied access control should be *the* access control method for MediaGoblin? Or do you see it as just one possible implementation? 09:29:18  paroneayea  we'd have to make sure the access control branch was set up with the *intent* of doing this kind of fine grained access control: things are either public (anyone can see them), or they're                       restricted to individuals and collections 09:29:29      breton  i am opposed to students working together then 09:29:30  paroneayea  ayleph: I think it should be *the* basis, and maybe there can be some hooks. 09:29:46      ayleph  I'm wondering if some people just want to make an instance they can share with family member without having to figure out ActivityPub stuff 09:29:51      breton  ayleph: so mg switches to activitypub 09:30:05      breton  ayleph: i think we shall mask all activitypub stuff 09:30:12      breton  ayleph: hide it behind web-interface 09:30:14  paroneayea  ayleph: I think it'll be possible 09:30:26  paroneayea  you could add extra access checks 09:30:29  paroneayea  via plugin hooks 09:30:44  paroneayea  but it's just, the primary "how do I say this person has access" *starts with* the AP side of                        things. 09:30:46  paroneayea  make sense? 09:31:14  paroneayea  so AP access control ideas start as foundation, and if you want to add some plugin hook that gives broad sweeping access via some other authenticated mechanism, go for it 09:31:40      ayleph  okay, i think i get it. (it's still a little early for me on a saturday morning...) 09:31:46      breton  ok, that's actually nice 09:32:07      breton  here is what we need to do 09:32:10   paroneayea  so, what I imagine the person working on the ActivityPub implementation for the summer focusing primarily on delivery 09:32:21  paroneayea  so it's possible for them to focus on delivery, and not access control 09:32:39  paroneayea  but we need the actor and actor collections stuff put in place before GSoC for that to work 09:32:47  paroneayea  or else it's going to be a gnarly merge. 09:32:47      breton  1. drop access control project for now 09:33:00  paroneayea  breton: or we can do that :) 09:33:08       breton  2. add more description about activitypub stuff to the project 09:33:20       breton  activitypub looks scary 09:33:25   paroneayea  here's the other thing about activitypub 09:33:30       breton  i know it isn't, but it is. 09:33:33   paroneayea  I think this is going to be an unusual GSoC 09:33:37       breton  *but it looks 09:33:42   paroneayea  the person working on GSoC this year will in some ways be my "assistant" 09:33:47   paroneayea  I will be actively working with them 09:34:31   paroneayea  I think that could reduce the scariness a bit 09:34:48   paroneayea  so whoever is working on it this year will have to be willing to do a lot of collaboration, more                        than most GSoC 09:34:58   paroneayea  breton: does that make sense to you? 09:35:01       breton  paroneayea: yes 09:35:11   paroneayea  I figure I've been doing this ActivityPub stuff and getting it to a stable state for a couple of                        years 09:35:27  paroneayea  so it's time to land it, and I can certainly use help, but I think it'll go smoothest with direct guidance 09:35:33  paroneayea  tsyesika also said she'd be willing to help mentor 09:36:46  paroneayea  ok 09:36:52   paroneayea  so I guess one question is 09:37:44   paroneayea  since this is kind of an unusual GSoC, do we need to do anything to help students prepare or                        help check before GSoC stuff even starts? 09:38:03  paroneayea  breton: do you have ideas? 09:38:16  paroneayea  one tricky thing is I'm doing this test suite all month so that's going to be a bit overwhelming already :) 09:38:17      breton  the first thing i will do is update description of the task 09:39:04       breton  the worst thing about the whole federation stuff is lack of description readable in 5-10 minutes 09:39:41   paroneayea  ha 09:39:43   paroneayea  yeah 09:39:56   paroneayea  breton: maybe we should link to the part of the mediagoblin 2nd campaign video where federation                        is explained ;) 09:40:22      breton  the second worst is ambiguity of word "federation" 09:41:57  paroneayea  http://mediagoblin.org/pages/campaign.html 1:45-2:20 on the video for talking about federation :) 09:42:10   paroneayea  then it goes into some outdated stuff about the Pump API.  but that was all pre-standardization! 09:42:20       ayleph  the description mentions that there's a federation branch...is the idea to first try to merge                        that branch, and then to convert it to activitypub? 09:42:37   paroneayea  ayleph: hauuuuugh, I need to review it. 09:42:38       ayleph  i imagine merging the branch alone may be a big task 09:42:44   paroneayea  yes that's true 09:42:54   paroneayea  maybe I need to devote weekends to getting up-to-date on that this month 09:43:18   paroneayea  so we have two other gsoc tasks also 09:43:19       breton  isn't it merged yet? 09:43:25   paroneayea  breton: no :) 09:43:30      breton  but 09:43:34  paroneayea  it's been sitting there, burning on the back burner :) 09:43:48       breton  why did the switch from user to actor happened? 09:44:34   paroneayea  breton: *part of* the federation stuff landed 09:44:37   paroneayea  but there's still more 09:44:40       ayleph  there were certainly a lot of changes to the API code a year or two ago, but it was a pretty                        basic implementation 09:44:50       ayleph  images only, most clients couldn't successfully connect 09:44:53   paroneayea  the complete federation branch is still sitting in tsyesika's branch 09:44:56       breton  oh well. 09:45:00   paroneayea  so 09:45:03   paroneayea  I guess that's a task for me. 09:45:08   paroneayea  assess the state of federation stuff 09:45:14            *  paroneayea piles it on a towering heap 09:45:17       ayleph  hehe 09:45:32       ayleph  is that branch on savannah? 09:46:05      ayleph  yeah, appears to be 09:46:06   paroneayea  nope, notabug https://notabug.org/tsyesika/federated-mediagoblin.git 09:46:07  paroneayea  oh 09:46:10   paroneayea  maybe there too 09:46:33      ayleph  oh, i probably shouldn't assume the one on savannah is the same one 09:46:34  paroneayea  we might have pushed it to sannah 09:46:43  paroneayea  another thing to look into! 09:47:03  paroneayea  ayleph: breton: ok, so I'm going to be crazy busy for the next 1.5 weeks on this test suite 09:47:13      adfeno  Savannah is the most respectful of the two repository hosts so far. 09:47:18  paroneayea  in 2 weeks, can I ask one of you to pester me, "hey how's reviewing that federation code going"? ;) 09:47:35      ayleph  hmm, it looks like the one on notabug is many commits behind the one on savannah 09:47:58   paroneayea  ok, savannah is most up to date then.  noted! 09:48:15       ayleph  oh, but then i noticed the "federation" branch on notabug 09:48:31       ayleph  they look about the same? 09:49:00   paroneayea  meh, I'll look :) 09:49:08      breton  ok, other GSoC projects 09:49:11  paroneayea  yes 09:49:15  paroneayea  there are 2 others! 09:49:25      breton  Multiple qualities of video 09:49:48      breton  i think it is pretty clear what to do there 09:50:11      breton  this is the one i would love to mentor 09:50:13      ayleph  maybe we could tack on some advanced user upload limit stuff to that one? 09:50:15  paroneayea  great :) 09:50:25   paroneayea  ayleph: don't we have a user upload limit thing? 09:50:33   paroneayea  maybe it's not advanced :) 09:50:33      ayleph  i think the current user upload limit code only looks at the size of the uploaded video (which                        may or may not stick around), not the size of the transcoded video 09:50:46      ayleph  and if we have multiple transcoded video sizes, that's a lot more disk space 09:50:59  paroneayea  ahhh 09:51:03  paroneayea  yes ayleph, good point. 09:51:15  paroneayea  I think that's a reasonable thing to add to it 09:51:15       breton  ayleph: lets just make a list of possible video qualities configurable 09:51:47      breton  ayleph: also, if original video is 480p, there is definitely no reason to transcode it to 720p 09:53:42      breton  ok, anything else aout multiple video qualities? 09:54:04  paroneayea  breton: seems pretty good 09:54:19      breton  cool. Our next project is "Chunked uploads / multi-upload UI" 09:54:41  paroneayea  I think we have like, three branches that have attempted this and I've failed to review any of                        them, like the terrible maintainer I am 09:54:47   paroneayea  well wait 09:54:51  paroneayea  I did review one once I think! 09:54:52      breton  this one looks like an easy one actually 09:55:56      ayleph  looking at the comments on the wiki, this may already be working code 09:56:15      ayleph  i didn't realize that someone had updated the VenKamikaze multi-upload code to work with 0.9 09:58:31      breton  so... there is no project? 09:59:04      ayleph  i'm not sure, but at a quick glance, it seems that most of the work is already done 09:59:10      breton  the code also doesn't look too complex for GSoC project 09:59:17      ayleph  unless we want someone to create a new method 09:59:43      ayleph  this code may need some adjustments; i'm not sure what happens if a browser doesn't support html5 09:59:50      ayleph  but i don't think that's worthy of GSoC 10:00:31      breton  i agree 10:00:34  paroneayea  ok :) 10:00:40       breton  lets drop the project 10:00:53   paroneayea  also, one more thing 10:01:06   paroneayea  is there any reason not to generalize multiple quality types? 10:01:18   paroneayea  eg, multiple image quality, multiple audio quality 10:01:20   paroneayea  all seems related. 10:01:27   paroneayea  just thinkin' out loud here. 10:01:45       breton  weeeell 10:01:55       breton  multiple audio qualities -- meh 10:02:10       breton  maybe just 2 -- high-quality and low-quality 10:02:26       breton  well actually yes 10:02:30       breton  this could be a thing 10:03:23       breton  i am now thinking how i would do this project 10:05:36       ayleph  totally different subject just popped into my head, but isn't there some issue with celery                        moving forward? is this something that we could turn into a project? 10:05:56   paroneayea  ayleph: yes... so our Celery stuff is kind of a mess 10:05:59      ayleph  i seem to recall celery 4 dropped support for something that we need 10:06:19  paroneayea  it dropped our crappy default solution that used an sqlite database as a message queue ;) 10:06:24   paroneayea  I think we agreed to move to RabbitMQ 10:06:28       ayleph  oh okay 10:06:45   paroneayea  this might not be that big of a project, not sure if it's a whole summer's worth, but it needs                        to be done 10:08:23       breton  ++ 10:09:17       breton  maybe it will be done as part of multiple audio qualities 10:09:19   paroneayea  (also, if the chunked upload stuff really is ready, why haven't we merged it? :) probably my                        fault...) 10:09:32  paroneayea  too bad "odds and ends" style GSoC's never seem to work out 10:09:59      breton  because the project requires priorities in video transcoding 10:10:19      breton  paroneayea: i will think about generalizing the qualities 10:10:42      breton  we are 10 minutes out of our time and i need to go :) 10:11:18       breton  thanks everyone for coming 10:11:25   paroneayea  yes, time to wrap up 10:11:43   paroneayea  #endmeeting ;) 10:11:44      breton  #endmeeting