The first Activity Pub Conference happened in Prague the 7-8th of September 2019. This is a fairly big deal as Activity Pub is quite a new standard within the federated software space, but also because it’s gotten too big to present all the different software in one slide (as per cwebbers keynote) with 50+ implementations. I attended and spoke at the conference. This post goal was the reflect on how it’s all connected, but ended up mostly discussing some topics which came up, and drew a few lines between topics, but not all.
The Activity Pub Conference
The event had one day of scheduled and pre-planned talks and speakers and a second day of unconference, which was partially or to a large degree about getting groups of people together to have conversations about certain subjects or ideas which came up during the first day. Unconferences have always appealed to me, but this felt like an interesting combination of doing both a normal conference, and an unconference in one, especially since a lot of ideas will come up during people’s talks.
The first day’s talk was a wide range of topics, and I noticed as I was listening to each of them how they all intersected with one another, and that it seems like overall we all want to work towards the same direction.
Below are the talks as summarized on the website, and if you follow this link you can actually watch all the recordings of the talks. After that I’ll start actually talking about the conference and my thoughts about it.
1. “ActivityPub: past, present, future”
Keynote by Christopher Lemmer Webber.
This talk gives an overview of ActivityPub:
How did we get to this point? Where are we now? Where do we need to go? We’ll paint a chart from past to a hopeful future with better privacy, richer interactions, and more security and control for our users.
Other talks on day 1
2. “Advice to new fediverse administrators and developers” by Luc Didry
Hosting an ActivityPub service is not like hosting another service and it’s the same for developing ActivityPub software.
Here is some advice based on Farmasoft’s experience. We host a Mastodon instance and develop two ActivityPub software: PeerTube and Mobilizon – the last one is not yet out.
Errors and Observations.
3. “Is ActivityPub paving the way to web 3.0?” by maloki (me)
A talk about how we’re walking away from Web 2.0, and paving the way to Web 3.0 with ActivityPub development.
We’ll discuss what this could mean for the future of the web. We’ll look at some of the history of the web, and also consider the social implications moving forward.
4. “The Semantic Social Network” by Pukkamustard
ActivityPub uses JSON-LD as sterilization. This means @context field all over the place. But really there is more behind this: ActivityPub speaks Linked Data.
In this talk we would like to show what this means and how this can be used to do cool things. We might even convince you that the Fediverse is a huge distributed graph that could be queried in very interesting ways – that the Fediverse is a Semantic Social Network.
5. “Keeping Unwanted Messages off the Fediverse” by Serge Wroclawski
Spam, scams and harassment pose a threat to all social networks, including the Fediverse. In this talk, we discuss a multilayered approach to mitigating these threats. We explore spam mitigation techniques of the past as well as new techniques such as OcapPub and Postage.
6. “Decentralised Hashtag Search and Subscription in Federated Social Networks” by Schmittlauch
Hashtags have become an important tool for organising topic-related posts in all major social networks, even having managed to spark social movements like #MeToo. In federated social networks, unfortunately so far the view on all posts of a hashtag is fragmented between instances.
For a student research paper I came up with an architecture for search and subscription of hashtag-posts in federated social networks. This additional backend for instances augments the Fediverse with a little bit of P2P technology.
As this architecture is still at a conceptual stage, after presenting my work I’d like to gather ideas and feedback from various Fediverse stakeholders:
What do global hashtags mean for marginalised people and moderation, are they more a took of empowerment or of harassment? How can this concept be represented in the ActivityPub protocol? And what stories do server devs have to tell about common attack scenarios?
7. “OSS Compliance with privacy by default and design” by Cristina DeLisle
Privacy is becoming more and more central in shaping the future of tech and the data protection legislation has contributed significantly to making this happen. Privacy by default and design are core principles that are fundamental to how software should be envisioned. The GDPR that came into the spotlight has a strong case to become a standard even outside European Borders, influencing the way we protect personal data. However its impact might be its implementation is still it its infancy. OSS has found itself facing the situation and one aspect which is particularly interesting on the tech side is how to incorporate the principles of privacy by default and design into the software that we build.
This talk is going to be an overview of how the GDPR has impacted FOSS communities, what do we mean by privacy by default and by design, how could we envision them applied in our OSS. It will bring examples from which we might find something interesting to learn from, regardless if we are looking at them as mistakes, best practices or just ways of doing things.
8. “The case for the unattributed message” by Caleb James DeLisle
Despite it’s significant contribution to internet culture, the archetype of the anonymous image board has been largely ignored by protocol designers. Perhaps the reason for this is because it’s all too easy to conflate unattributed speech with unmoderated speech, which has shown itself ot be a dead end.
But as we’ve seen from Twitter and Facebook, putting a name on everything hasn’t actually worked that well at improving the quality of discourse, but what it does do is put already marginalized people at greater risk.
What I credit as one of the biggest breakthroughs of the fediverse has been the loose federation which allows a person to choose their moderator, completely side stepping the question of undemocratic censorship vs toxic free speech.
Now I want to start a conversation about how we might marry this powerful moderation system to a forum which divorces the expression of thought from all forms of identity.
9. “Federated Blogging with WriteFreely” by Matt Baer
We’re building out one idea of what federated blogging could look like with separate ActivityPub-powerd platforms, WriteFreely and Read.as—one for writing and one for reading.
Beyond the software, we also offer hosting services and helping new instances spring up to make community-building more accessible, and get ActivityPub-powered software into more hands.
In this talk I’ll go over our approach so far and where we’re headed next.
10. “I don’t know what I’m talking about” by Michael Demetrious (qwazix)
A newbie’s introduction to ActivityPub:
I have just started my development journey in ActivityPubLand, and I hope to have a first small application ready before ActivityPubConf.
I was thinking that since I have close to zero experience with ActivityPub development, I could document my first month of experience, describe the onboarding process and point out useful resources and common pitfalls.
In the end I can showcase what I’ve done during this period.
Day 2 – Keynote and Unconference
11. “Architectures of Robust Openness”
Keynote by Mark S. Miller
As social systems grow, we need patterns to allow us to grow social connections while maintaining safety and trust.
Ocaps (object capabilities) fill this void by allowing consensual connections between parties, and even allows participants to intentionally share those connections with others.
But how can we allow for the establishing of new connections without opening us up to runaway abuse?
This talk discusses Horton, a “whodunnit” layer built on top of object capabilities, allowing us to establish connections while preserving accountability and the ability to reason about trust with a reduction of fear.
The unconference part had a few different segments, but all in all we ended up with 4 sessions each (an hour sessions at the time).
The three I attended were “What is Web 3.0 and how do we get there?”, “OcapPub”, “Activity Pub Community Coordination” (This wasn’t the title, but the results). I will try to tie them into the rest of this post, but here are a write up of each talk.
How do we get to Web 3.0, and what is it to us?
For this session we had a small roundtable of various people talking about our own thoughts and concerns about how do we get to this next step of the web. How do we get away from advertisements, sold data etc. ?
There was a conversation about how the state could help out by providing infrastructure (similar to roads), and help people take the first steps onto the web. Which also raised some concerns about what if the government isn’t to be trusted anymore, and everyone is on-boarded to the web through them, then we’re in trouble.
There was a point to be made here though, the government is supposed to be for the people, while private companies are often for profit. Part of the point was to identify that, that there needs to be another option than private companies which want to offer you a “free” service, but instead sell your data, and you possibly not being aware of it.
As per my talk, I elaborated a little bit on the subject, and said that I believe that there are several different parts of the web which will take us into web 3.0 together. It’s all connected (as per this blog posts title), and I will elaborate on some of the connections later in this post. But things I recognized was the semantic web, and blockchain technologies. They are all looking forward wanting to build a better web.
It has also been suggested that we may be on Web 5 or higher already, but are we really, has there been as big of a paradigm shift from Web 2.0 as from Web 1.0 yet?
OcapPub not a new standard, but a different way to work with Activity Pub
OcapPub was a discussion about how we can inject Object Capabilities into Activity Pub (without creating a new standard) and create a possible safer space. We received some commentary regarding stamps, as in making it more difficult for nefarious messages to get traction or get through to the target (adding cost to the transaction of spam or other harmful messages, with the burden on the sender, not receiver). This would create some barriers of entry, but also possibly allow for some types of protection from harassment as well as spam. This clearly connected to Serge’s talk about future harassment and spam mitigation on fedi.
There was some concerns about if OcapPub was supposed to be a replacement for Activity Pub, but no, that’s not the intent, it’s supposed to be an addition to the standard (from my understanding).
We also discussed the issues with the Shared Inbox, which I currently do not fully grasp. But rather we’ll be looking towards Multi-Inbox (MultiBox?) which will help create layers of what kind of content you choose to receive. Look at it as advanced filters, both on a personal level and a server level.
Organizing the Activity Pub Community, and preparing for a FOSDEM devroom
This session had quite a few things on it, one was “we need a shared space to coordinate”, do we want a devroom at FOSDEM, and there’s an opening to apply for grants via an organisation.
Mainly we decided that we want to apply for a devroom at FOSDEM, and we checked in with who’d be interesting in attending and helping out. Work is in progress for this. Call for Papers will be published soon.
We also decided to revive socialhub.activitypub.rocks for communication between different folx within the fediverse and their different projects.
It’s all connected
What became very clear to me, as I sat there listening the first day, was that all of these talks are connected, even if some may seem less connected than the rest. The image I drew was to help me confirm to myself that indeed it’s all connected. And I realized that it very much resembles the logo for the Fediverse (as per the header/feature image of this post).
Since the image is not a perfect representation, I want to try to put into words and explain to you some of these connections, and maybe inspire some hope that we are indeed looking to drive development in the same direction, even though we may talk past each other at times. We want a lot of the same things for the future of the web, the Fediverse, and development of ActivityPub, but we may have slightly different ways of getting there. It may even be tempting to disregard other’s paths towards a new web because of the way they are doing it is so vastly different from your own path, but the way I see it we can still learn a lot from each other.
ActivityPub as the foundation
I attempted to indicate the strength of the connections by the lines between them, some are single straight lines, some are dotted and some are double lines. As you can see the first keynote by cwebber (1) more or less connected to everything else. Mainly I’d argue that this is because their talk was about what led us here and what’s on the horizon for ActivityPub (you can watch it in full here, unfortunately there was some audio issues with this one). It would make sense if the rest of the talks at a conference about ActivityPub would connect to that in some way.
Webber’s talk and Mark S. Miller’s talk strongly connect, so does Serge Wroclawski’s. I know that some of the reasons for this is quite personal, and Webber even asked Miller to sign a printed copy of his own dissertation in front of everyone. That said, these personal connections will also drive development, because when we connect, we want to work together and forge ahead together.
These three talks were mainly connected by the fact that Serge showed how we can utilize the idea of Robust Openness which Miller spoke about, and all the while doing it on top of ActivityPub as Webber spoke of. There’s a synergy here, which will allow us to create robuster, more open, and safer and more personalized experiences on the federated web of ActivityPub implementations. They also were showing us a possible way to move forward by providing a clear suggestion on how it can be used. At some point (during the unconference I believe) someone asked “Would anyone be interested in using OcapPub”, and thanks to these three talks I saw that it can be used for my own project (Florence) in order to provide some of the things especially when it comes to anti-harassment features and filtering that we’ve been looking to implement. At the same time, someone said “do we really know enough yet to say yes, we’re interested”? Which is a valid question.
For further reading: The conversation about OCAP with ActivityPub has been ongoing for quite a while, and I think that kaninii’s introduction “What is OCAP and why should I care?” to it is quite useful to read when put into this other context.
The Known Universe
While there are over 50 implementations of Activity Pub, we’re definitely not aware of all of them, and Webber’s even stopped adding any to the slide, so it’s just “over 50 implementations” on there now. As this was a rather small conference we did not have even close to 50 represented, but we had a few different ones attending, and some giving talks. In the Fediverse we already have equivalents of YouTube (PeerTube), Twitter (Mastodon/pleroma), Facebook (Hubzilla/Diaspora), SoundCloud (FunkWhale), Instagram (Pixelfed), Medium (WriteFreely/Plume) to mention a few.
Some of the talks were about what people are already doing within this space, for example Federated Blogging with WriteFreely, the Advice for new fediverse administrators, and “I don’t know what I’m talking about—The newbie guide to ActivityPub“.
WriteFreely / Write.as
I think WriteFreely is one of the exceptions in a lot of the ActivityPub software I’ve seen, and that because it’s already been around for so long, without the ActivityPub implementation, so them joining us in the fediverse was definitely a bit more of a unique story. It wasn’t built to federate in the beginning, but Matt Baer (founder of Write.as) eventually realized what an interesting aspect that would be to his software. They provide both hosted ways of using, and allowing others to host it on their own as it’s also open source. It was interesting to see the route they took to eventually join the the community.
WriteFreely’s thoughts about adding links from other blogs as comments reminded me of the old blog-o-sphere which there’s been a few different ones through the years and times, I partook in a Swedish and political one. There’s this importance on the web to feel connected with other people I think, when we provide our thoughts and posts, and put ourselves out there. I think WriteFreely among with other blogging tools coming with ActivityPub integration will be an important part of allowing people to do this again.
At the same time, write.as provides a great example of alternative funding of a AP project. Who best to host their own software than the developers? This way you can direct contact with the customers, and can fix bugs and stuff for people who are paying you for hosting etc. This can be a very beneficial relationship to have, and also help pay for development, even when it’s open source.
Joining the fediverse and learning all about it
The talk about advice for new fediverse admins, as well as the newbie guide to ActivityPub talks helped provide us with additional legs to stand on when getting acquainted with the Fediverse, and ActivityPub as a standard, but also a bit of support for new people coming in and offering it as a gateway.
I feel like these conversations are incredibly important, because we should always strive, to some extent to be newbie friendly, or to have newbie friendly spaces. “We were all noobs once“. An example, not actually represented at the conference, but a very comprehensive, not so short, Mastodon Guide written by Noelle volunteering her time to help people understand this wide-spread software just a little bit better.
GDPR and compliance for OSS
This talk isn’t actually visible in my little drawing, because it’s outside the main graph and just circling everything else, as it is all-encompassing. This take helped me understand the scope of GDPR, and how much there is to understand about what role a server may play in that landscape, and as a result from what what responsibilities we may have.
I think this talk, while I can’t explain the details of why it connects with everything should be viewed by everyone, and you can watch it here.
The Future—Moving forward with new possibilities
To loop back to Webber’s talk, they also covered some possible futures for how to improve both ActivityPub as it is (OcapPub as an example, which I elaborated on further up), but also from a software perspective. Each implementation can work to be better with their UI, an example would be to make sure that the UI is easily understood by the layfolx who are maybe not on as much a technical side as some of us are, and if that fails, try to make sure it fails safely. As in lowering the risk of people outing themselves or hurting themselves because they thought the features worked a certain way and it turns out it did not at all (there’s some historical examples of this with Direct Messages on Mastodon, among other things).
While the last keynote (11) does not seem to be as strongly connected because when I drew the graph we hadn’t listened to Mark Miller’s keynote yet, so it was not added immediately. And I did not get as much clear data immediately after his talk, as compared to Webber’s which then was followed by all other talks that day.
That said, Miller speaking about Object Capabilities, as part of a more robust way of allowing an open network (as per the fediverse), helped me grasp and comprehend some of the concerns we’ve been having for a long while. Some of you may, similarly to myself, have heard Ocaps be thrown around and how it’s going to fix every issue we currently have on fedi, but feel a bit overwhelmed by the technicalities of it all.
Closing remarks and reflections
I think it was quite a relief for myself, who also spoke at this event, that I felt connected with everyone else, and felt that my talk was still part of this community in some way, and that I’m not alone in some of these ideas.
Something that came up during this conference was the following “revolutions are run by the people who show up”, and this actually worries me. Not because of the people who attended, but rather who would not be able to attend. We need to make sure that we have advocates in attendance who can help represent marginalized groups. Be it BIPOC, disabled, quiltbag or others. This will mean that we should invite, and provide both travel and accommodations for a few positions of people who would be able to do that. There’s different ways of doing stuff like this, but I feel like it’s something we need to think about and consider early on and that’s why I’m bringing it up now.
That said, I’m aware that the next event will not be organized by the same people, but rather we will probably have different teams of people inviting to different ActivityPub Conferences over the coming years, I still think it’s incredibly valuable for us to keep in mind the lessons learned from previous ones, and asking each other for help to improve over time. I know there’s a Fediverse conference in the making for 2020, which I hope to attend, and I’ll make sure you hear about as soon as it’s been officially announced.
Further, I think there’s room for improvement on the ActivityPub standard, and how we use it. This is an ongoing conversation, that will definitely not only be covered during a conference, but all the time. I think we all should consider joining that conversation, and I think these two blogposts about securing ActivityPub and “What would ActivityPub look like with capability based security anyway?” are a good start to keep that conversation going. I know we’ll be talking about it with the team on Florence.
Thank you for reading through this beast of a post, and I hope it gave you some light for where we’re currently going when it comes to possibilities for better filtering and anti-harassment tools on the Fediverse still using ActivityPub.
If you enjoyed this blog post it’s part of my effort to relaunch my Patreon with new types of content and goals, if you want to support this and see me go to more conferences and do write-ups feel free to head over my patreon and pledge your support!
Alternatively, check out my support page for more info.
Featured image can be found here.