123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- <html>
- <head>
- <title>ActivityPub and MediaGoblin at TPAC 2016 (or: ActivityPub needs your review!)</title>
- <meta name="date" contents="2016-10-05 11:45" />
- <meta name="author" contents="Christopher Allan Webber" />
- <meta name="tags" contents="activitypub, standards, w3c, tpac" />
- </head>
- <body>
- <p class="centered">
- <a href="https://www.w3.org/TR/activitypub/">
- <img src="/blog_images/activitypub_wd_2016-09-04.png"
- alt="Screenshot of ActivityPub Working Draft" />
- </a>
- </p>
- <p>
- Hello everyone!
- We have a lot of news to cover, but I'm going to jump right into the
- thick of it: we've been working hard on a new federation (as well as
- client to server) standard called
- <a href="https://www.w3.org/TR/activitypub/">ActivityPub</a>
- (formerly ActivityPump).
- We've made tremendous progress, and I was just recently at a face to
- face meeting at <a href="https://www.w3.org/2016/09/TPAC/">TPAC</a>,
- the W3C's big technical conference.
- </p>
- <p>
- The good news: ActivityPub is aiming to hit Candidate Recommendation
- status by October 11th.
- (That's less than a week away!)
- However, in order to enter that stage, we need <i>your review!</i>
- If you have any interest in the decentralized web, you can help.
- All you have to do is
- <a href="https://w3c.github.io/activitypub/">read the latest editor's</a>
- draft and provide feedback.
- (The earlier the better... maybe a fun weekend project?)
- You can do this by any of the following:
- </p>
- <ul>
- <li>
- Post
- <a href="https://github.com/w3c-social/activitypub/issues">issues on the issue tracker</a>
- (yes, I think it's ironic and problematic that we're using GitHub,
- I picked my battles here, whether right or wrong).
- </li>
- <li>
- Email the
- <a href="http://lists.w3.org/Archives/Public/public-socialweb-comments/">social working group comments</a>
- mailing list.
- </li>
- <li>
- You can email me directly.
- Email cwebber AT dustycloud DOT org, and include "ActivityPub" in
- the subject.
- Note that I will be publishing your comments publicly, probably
- on the Social Working Group wiki!
- </li>
- </ul>
- <p>
- If you have feedback, we want to hear it!
- (From anyone, but <i>especially</i> from those who are interested in
- implementing ActivityPub!)
- Thank you!
- </p>
- <h2>ActivityPub live</h2>
- <p><i>
- Note, the rest of this post is a bit of a dive into behind the scenes
- decisions and activity in MediaGoblin and ActivityPub... there's no need to
- read this part to submit a review!
- </i></p>
- <p>
- I'm kind of traveling through time in all the wrong order in this post...
- but it's worth jumping forward a bit to see the results of what we've done.
- Over the last many months there's been a huge push on ActivityPub as a
- standard, as we'll talk about.
- But in order to succeed, I also needed implementations, both of client to
- server and server to server.
- Well, I'm happy to say that those did come together...
- </p>
- <p class="blog_image">
- <a href="/blog_images/pubstrate-2016-09-14.png">
- <img src="/blog_images/pubstrate-2016-09-14-scaled.png"
- alt="Pubstrate in action!" /></a>
- </p>
- <p>
- This is <a href="https://gitlab.com/dustyweb/pubstrate">Pubstrate</a>,
- an implementation of ActivityStreams and ActivityPub for
- <a href="https://www.gnu.org/software/guile/">GNU Guile</a>.
- Sorry for the sappy embedded love-note, though what's nice about this
- is that it's the first demo I gave to someone else of the client to
- server functionality working in Pubstrate.
- But wait, what was the client?
- </p>
- <p class="blog_image">
- <a href="/blog_images/soci-el-2016-09-14.png">
- <img src="/blog_images/soci-el-2016-09-14-scaled.png"
- alt="Soci-El in action!" /></a>
- </p>
- <p>
- This is <a href="https://gitlab.com/dustyweb/soci-el">soci-el</a>,
- an ActivityPub client written in... you guessed it... emacs lisp.
- You can see the rendering of the user's outbox here as well as the
- buffers from which the message was composed.
- </p>
- <p>
- Pretty nerdy!
- I don't expect everyone to be using emacs as an ActivityPub client of
- course... I hope to see various desktop, web, and mobile clients
- made available.
- But, Emacs is the most fun for me, and I was time pressed, so
- there we are.
- </p>
- <p>
- Everyone loves seeing screenshots, but maybe not all of this stuff
- makes sense without context.
- What does this mean for MediaGoblin?
- </p>
- <h2>So what's been going on?</h2>
- <!-- - So what's been going on?
- Talk about despite an appearance of absence, I've been working furiously...
- -->
- <p>
- It seems a recurring meme in MediaGoblin land to say "we've been quiet, because
- we've been busy" (or maybe historically on every tech blog ever), but I guess
- I can't resist repeating the mantra.
- It's true!
- Though the weight of my focus has been shifted from where I expected it to be.
- From the
- <a href="http://mediagoblin.org/news/mediagoblin-0.9.0-three-goblineers.html">last</a>
- <a href="http://mediagoblin.org/news/stripe-retreat-state-of-the-goblin.html">few</a>
- <a href="http://mediagoblin.org/news/state-of-the-goblin-september-2015.html">updates</a>
- over the last year, you would be right to anticipate that the main thing I would
- be working on would be merging the
- <a href="http://mediagoblin.org/news/state-of-federation.html">federation code Jessica
- has written</a>
- and getting 1.0 out the door.
- That was the plan, and we're still working towards that, but
- priorities shifted as we realized the opportunities and time
- pressures we were under with ActivityPub.
- After the Social Working Group
- <a href="https://www.w3.org/wiki/Socialwg/2016-06-06">face to face meeting in June</a>,
- Jessica and I sat down and talked about what we should do.
- Jessica had recently started working at
- <a href="https://www.igalia.com/">Igalia</a> (great people!) and
- was busy with that and other transitions in her life, so we discussed
- whether we thought it was most sensible to focus my energy on MediaGoblin
- or on ActivityPub.
- It was clear that ActivityPub was shaping into a solid specification,
- but it was also made clear that the Social Working Group's charter was
- running out by the end of 2016.
- We both think ActivityPub is key to MediaGoblin's success and didn't want
- to see our invested time go to waste, so decided my immediate focus
- should switch to ActivityPub so it could successfully make it as
- a standard.
- </p>
- <p>
- Which isn't doom and gloom for MediaGoblin!
- MediaGoblin development has continued... the community is good enough that
- people have been able to work while I've been busy.
- I'm happy to say we also appointed longtime contributor Boris Bobrov as
- co-maintainer to help reduce me being a bottleneck.
- (Thank you Boris, and congrats!)
- Other contributors have also stepped up to the plate.
- I'm especially thankful of Ben Sturmfels for hosting MediaGoblin hackathons
- and being so responsive to community members.
- (And of course, there are many others to thank, too!)
- </p>
- <!-- + I realized I was going to have to go head down... so I spent my effort on
- ActivityPub, and ActivityPub implementations...
- -->
- <p>
- Anyway, I'm not going anywhere, I've just been shifting focus to standards
- work for a bit... but it's all for the greater good of MediaGoblin.
- (Well, and the greater federated social web!)
- Soon, we'll be putting the work we're doing on ActivityPub directly
- into MediaGoblin.
- When we merge Jessica's work on federation, we will also retool it so that
- the first federated release of MediaGoblin will be blazing the trails with
- ActivityPub.
- </p>
- <!-- + Amy visiting... -->
- <!-- TODO: Amy photo here -->
- <p>
- Both ActivityPub and I personally got a significant boost by a happy visit
- from friend and Social Working Group co-conspirator Amy Guy.
- Amy dropped by for an intense four days of standards hacking and scheming,
- and came up with several significant ways to restructure and improve the
- document.
- With her help, we now have much clearer distinction between the use of
- ActivityPub as a client to server protocol (think mobile applications and
- desktop applications connecting to your server) vs the server to server
- protocol (federation).
- Both of these are now clearly intertwined in the document, but are distinct
- enough where they can be used and understood separately if desired.
- We also more clearly established the connections between ActivityPub and
- the linked data community by explaining ActivityPub's relationship with
- <a href="https://www.w3.org/TR/ldn/">Linked Data Notifications</a>.
- </p>
- <p>
- Amy has a gift for composing standards language, something I'm still
- struggling to learn (but hopefully getting better with over time).
- ActivityPub is much better with her hard work.
- Thank you Amy!
- </p>
- <!-- + hopefully I could get them ready in time for... -->
- <p>
- In addition to the standards side of things, in order to get ActivityPub to
- the next level, we needed to be able to present real live demonstrations
- of the standard in action.
- Hence the work on Pubstrate and soci-el mentioned previously.
- For most of the months before TPAC, I was working furiously day and night
- to get things ready to show...
- And then, it was time to head off, and hope it was good enough...
- </p>
- <!-- - TPAC! -->
- <h2>TPAC</h2>
- <p class="blog_image">
- <a href="https://www.w3.org/wiki/File:2016-09-21-socialwg-breakout.jpg">
- <img src="/blog_images/2016-09-21-socialwg-breakout-by-aaronpk-scaled.jpg"
- alt="Live demo image, by aaronpk" />
- </a>
- <br/>
- <em>
- TPAC demo room photo by
- <a href="https://aaronparecki.com/">Aaron Parecki</a>
- </em>
- </p>
- <p>
- Fortunately, all that hard work paid off.
- The Social Working Group kicked off TPAC with live open-viewing
- demonstrations of the various standards we've been working on.
- We got in a really solid set of demos from everyone in the
- group.
- </p>
- <!-- + Giving live demos -->
- <p>
- From my end, I managed to demo all the core parts of the ActivityPub
- spec: I wrote a note in my client (soci-el), fired it off to the server
- (Pubstrate), where it rendered successfully.
- Then I explained, well, what if you want someone on another machine to
- see it?
- So I had another user on a separate Pubstrate instance, added
- the user over there to the recipients list on my message, shot
- the message over to the server, crossed my fingers and hey!
- The live demo of federation succeeded.
- (Whew!)
- </p>
- <!-- + State of the specs post-meeting -->
- <p>
- In the actual main Social Working Group meeting, we hammered things
- forward pretty nicely.
- As said, ActivityPub was positioned to move ahead towards
- Candidate Recommendation by the 11th.
- Again, your feedback is most valuable at this time!
- </p>
- <!-- + One more thing: at Amy Guy's suggestion, I showed off the
- MediaGoblin campaign video -->
- <p class="blog_image">
- <a href="/pages/campaign.html">
- <img src="/images/campaign/video2_poster-surveillance.png"
- alt="Spying image from the campaign video" /></a>
- </p>
- <p>
- Oh, one more thing.
- On the second day of the main Social Working Group meetings,
- at Amy's suggestion (apparently she was impressed when I showed her
- at her visit), I showed off the MediaGoblin campaign video to
- the group.
- Apparently I had never done so previously, so it was really nice
- to hear the reaction: "Holy cow, this is describing exactly the
- type of stuff we're working on in the working group!"
- Yep, exactly... all that stuff you see illustrated in that video,
- we're working on putting into code and standards.
- The dream lives!
- </p>
- <p>
- So, all this Social Working Group stuff... things are happening!
- We're not just goofing off!
- </p>
- <p class="blog_image">
- <a href="https://www.w3.org/wiki/File:2016-09-23-socialwg-group-animated.gif">
- <img src="/blog_images/2016-09-23-socialwg-group-animated-by-aaronpk.gif"
- alt="TPAC 2016-09-23 goofoff gif by aaronpk" />
- </a>
- <br/>
- <em>
- Super serious TPAC group "photo" by
- <a href="https://aaronparecki.com/">Aaron Parecki</a>
- </em>
- </p>
- <p>
- ... er, right.
- Not <em>just</em> goofing off! :)
- </p>
- </body>
- </html>
|