20170304 Log
Jump to navigation
Jump to search
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 ;)