20170304 Log

From GNU MediaGoblin Wiki
Revision as of 19:19, 4 March 2017 by Ayleph (talk | contribs) (Created page with "<pre> 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 ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 ;)