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 ;)
10:11:44 breton #endmeeting