It’s been a few months since my last major update so I wanted to fill in what’s going on. As usual, a lot has been happening, and it’s been hard to cover it all as we go. There’s some particularly huge news in this update, including something about funding something oh hey this should help us get MediaGoblin 1.0 out the door, plus something about the standards work we’re doing, something something. So let’s dive in and resolve all those somethings, right?
Support organizations that support freedom!
Okay, wait, a brief intermission! We’ll get to the cool MediaGoblin related news in a moment, but we’ve got something very important to cover first. Two organizations I really care about are running funding campaigns. Okay, well, it’s that time of year, and a lot of organizations are running funding campaigns, but these two especially could use your kind contributions!
The first is Software Freedom Conservancy. They’re close friends of ours, and do great work. They’re also pushing hard to try to build up a supporter program, and they could really use your help. Conservancy does a lot of work around many things, from running Outreachy (hey, we were lucky to get Jessica Tallon working on our stuff through that!) to enforcing the GPL to hosting a whole lot of useful free software projects. Become a supporter today!
Support the FSF!
Next up is the Free Software Foundation. Hey you probably know these folks right? The FSF is the steward of GNU, and MediaGoblin is a GNU project, so success for the FSF is success for MediaGoblin. They’re running their annual fundraising campaign and they could really use your donation. The FSF has the long-standing history of being the anchor of the free software world, and they continue to do great work year after year. Help the FSF continue far into the future… get your donation in today!
Did I say two organizations? What’s with three sections? In fact, our friends at the FSF are also teaming up with our friends in the GNU Guix project to run a special campaign to raise funds for new servers. I’m highlighting this for two reasons:
- I believe Guix is very important to the long run of “deployability” in free software network services (which you may know I believe to be an extremely important issue…)
- Guix is using a similar funding model of going through the FSF as fiscal sponsor. This is the same route we took for the MediaGoblin campaigns and I think is a great way for free software projects, and particularly GNU projects, to go. I’d love to see further examples of success for it in Guix.
Okay, whew… sorry about that distraction, but these things are really important! But I know, I know, you came here for the MediaGoblin news. Well, let’s get to that!
MediaGoblin selected for the Stripe Open Source Retreat
So this is some big news! MediaGoblin has been selected to be a participant in Stripe’s Open Source Retreat 2016!
What does this mean? It means that I’ll be moving to San Francisco from mid-January to mid-April 2016, working from Stripe’s office, and Stripe is going to pay me to focus totally on getting MediaGoblin 1.0 out the door and advancing our federation work. This is a huge opportunity for us; getting such ~unrestricted funding is, as anyone who has ever done fundraising knows, enormously difficult. We should be able to use this to bring MediaGoblin to the next level.
When I filled out the application for this I was interested but skeptical of Stripe’s claim that this would be “no strings attached” funding. I’m happy to say this seems to be true: they’ve paid us to do the work, and Stripe is making no claim to copyright or asking us to change any of our existing policies. Contributing upstream to MediaGoblin happens as usual for the time I’m there, which is great.
So what do we hope to get out of it? Well, my goal is by the end of the retreat, we’ll have MediaGoblin 1.0 out the door with the basics of server to server federation in place. I’ve also talked with the Stripe team about using that time to advance work on our federation standards work, and if there’s time, some deployment work too. But MediaGoblin 1.0 comes first!
(In the meanwhile I just booked a bunk bed for $1000 USD per month, which it turns out is cheap for San Francisco housing. Egads! How do people afford to live there? Luckily it’s well covered by the retreat’s stipend! Are you in the area during that time? Maybe we should meet up!)
I’m very excited about this opportunity. Thanks again to Stripe for supporting our community. I promise that the grant will go to good use, and we’ll have exciting things to report!
Our work to standardize federation technology within the Social Working Group continues. Just a few weeks ago another face to face meeting was held at Mozilla’s San Francisco offices (thus giving me an excuse to test-run the bunk bed I’ll be sleeping in for several months for the Stripe retreat). The meeting was extremely productive… in fact I would say it was the most productive time the Social Working Group has ever had. You can read the minutes for Day 1 and Day 2 if you like that sort of thing. But here are some highlights:
- Most of the work towards making ActivityStreams 2 a Candidate Recommendation document was put in place, and in a couple of weeks this I expect it will achieve that goal. Candidate Recommendation is a big step in a standards process, and AS 2.0 is the heart of ActivityPump, so this is huge for us.
- ActivityPump, the standard we are pushing for server to server federation and client to server communication has moved to Editor’s Draft state! The objective of moving to First Public Working Draft by mid-January has been set, and we are pushing hard towards it.
- Because of increased push on moving ActivityPump to this state, I have been added along with Jessica Tallon as co-editor on the specification.
- The “IndieWeb stack” (for lack of a better grouping) standards have all also advanced to Editors Draft status, including Webmention, Micropub, and Post Type Discovery. These standards are also on track for First Public Working Draft in mid-January.
- Amy Guy’s work on a “convergence” standard has been renamed to Social Web Protocols and also (are you noticing a trend?) advanced to Editors Draft and is on track to First Public Working Draft in mid-January.
- I demoed ActiviPy, which went over really well. ActiviPy started out as a method of representing and working with ActivityStreams for Python, but I realized in developing it that since it was using json-ld with an implied context to handle ActivityStreams anyway, I could also extend it to support the Microformats vocabulary by using the JF2 context being developed for JF2. So I showed off a demo where I loaded ActivityStreams2 documents, demonstrated the method dispatch system ActiviPy uses (which is fairly interesting but I won’t bore readers with it), but most excitingly, I loaded ActivityStreams and Microformats documents side by side in the same system and then converted them both to linked data! This got a fairly strong reaction from the room, since this was all three of the “directions” of achieving federation we’ve been working towards, with a real live demo of convergence! I was very proud to show this off.
Maybe most importantly was the “spirit of the room”, and how much this has changed from prior meetings. This group was formed to work on some very challenging domains with the goal of bringing initial participants with some historically very differing backgrounds. But both the last face to face (which we mentioned in the last state of the goblin post) and this one have really done tremendous things towards propelling this group forward, and unbelievably, towards something that might actually be convergence (without requiring that).
Those who know enough historical detail of this space may be astounded to read that last sentence, but I believe it is true. In a sense, agreeing that convergence was not mandatory helped bring us towards a greater possibility of it. The agreement that ActivityStreams, Linked Data, and the “IndieWeb Stack” (for lack of a better term) were not required to work together, and that we could produce multiple deliverables, has eased that tension in the group and allowed us to work collaboratively. Everyone has worked hard to understand each other. But one person in particular has been doing a stand-up job of trying to bridge the cognitive gap and that person is Amy Guy. This can be seen immediately with her work on the Social Web Protocols document, but I believe she has done a great job otherwise in mapping the space.
So anyway, optimism can only bring you so far. There’s a ton of work to be done in this space, and we’ll be pressing hard.
See you at FOSDEM!
Are you going to FOSDEM? So will I! I’ll be giving two talks in the Guile/Guix room, and I may be giving one more in another room, depending on acceptance or not. It would be good to meet other MediaGoblin community members or enthusiasts of MediaGoblin.
I should also say that I was really not sure if I could make FOSDEM originally, but a number of people very kindly donated to send me on my way. Thanks very kindly! I’ll be sure to put it to maximum use for our community’s sake. :)
We’re also thinking of running some sort of dinner (or lunch?) for those who donate between now and FOSDEM to MediaGoblin, so hey, by the way, our donate page still works! ;)
Goblinoid, you may remember, is the result of this year’s Google Summer of Code, and is a neat MediaGoblin application for Android. Here’s an update (thank you Laura Arjona and Dylan Jeffers for writing this up):
Dylan Jeffers, our GSoC 2015 student, is working in an Android app for GNU MediaGoblin.
Current features include viewing the recent activity feed, comment about media, upload photos from file… taking advantage of the Pump API.
The code is under heavy development, (repo here), and binaries for each release can be found (along with checksums) hosted at Goblin Refuge, a third party site kindly offered and maintained by SalmonLabs LLC, who also host the goblinrefuge.com MediaGoblin public instance.
Meanwhile we get the app in the popular free software repository F-Droid (it’s taking a while because it’s the first app in F-Droid built using the Python-based Kivy framework), we encourage everyone to test the app. The most up to date release is always available at https://files.goblinrefuge.com/download/Goblinoid/MediaGoblin-latest.apk) and report feedback in our IRC channel or the repository issue tracker).
We are very excited to make MediaGoblin part of your mobile life, and the Android app development is allowing improvements in Mediagoblin itself too (mainly fixes/improvements in the API-related code and the database and database migrations). Help us with your testing to improve that experience!
Wrapping up this year, onto next!
It’s been a busy year. Here are some highlights:
- We took initiative on the challenges of user-centric hosting.
- We got out a new release of MediaGoblin and dug in for the hard work ahead of getting towards 1.0.
- We put your money to good use and funded Jessica to plow ahead with federation in MediaGoblin. This is well on its way, and we anticipate server to server federation to land in the next couple of months. Jessica just landed a massive overhaul to our database structure which was required to make this work, and that should make its way into the next release (coming soon).
- We became more engaged with the work to bring federation beyond MediaGoblin itself. Jessica and I both joined the W3C Social Working Group and have become co-editors on the ActivityPump specification and have devoted much time to advance these initiatives. This includes building tooling such as ActiviPy which will be critical for putting federation to real use within and outside of MediaGoblin.
- For the second year in a row, a major MediaGoblin member has received the O’Reilly Open Source Award largely (though not only)in recognition for their work on MediaGoblin. This year I (Chris Webber) received the award and last year Deb Nicholson received the award, which is rather incredible given the list of previous recipients of the award.
- Both Deb Nicholson and I (but especially Deb) have given talks at prominent conferences and have spoken on podcasts on issues of network freedom.
- We had a successful Summer of Code project resulting in Goblinoid, a free software client for MediaGoblin, which is Android and Replicant compatible. (It can run on GNU/Linux also!)
- And as we said, we were accepted as recipients for the Stripe Open Source Retreat! (Well, accepted this year, and the results of that should play out into 2016!)
That’s a lot of stuff… what a year!
Well that’s it from this update! See you in 2016, and happy hacking, fellow goblins!