I’ve felt the exact same things about Mastodon – the underlying philosophical idea of keeping the platform distributed is awesome, but that’s about it. The heavy web interface is a pain, and I regularly have issues when I try to follow other people on other instances. Didn’t realize that protocol was an undocumented modification of activitypub :(
Honk looks cool though. The lightweight interface is so much more appealing than Mastodon’s infinite-scroll-with-heavy-js-and-random-cdn-resources abomination that’s almost as bad as Twitter’s website. Good luck @tedu – I’m interested in seeing what you build :)
I’ve felt the same thing about Mastodon. Writefreely (which runs https://chargen.one/) goes some way towards addressing these issues, but isn’t quite in the direction I want to go.
Consequently I’ll keep an eye on this. I’m working on a replacement for writefreely for chargen using django, but the more fediverse implementations around, the better.
I’d love to have an ActivityPub server that was analogous to an SMTP server: it talks to the network to receive and send messages, but the inbox and outbox are just directories in $HOME filled with files in a standard format (JSON? Some RFC2822-like encoding?) and we can write our own tools to read and write messages instead of having to do everything in a browser.
This is not possible because activities have side effects that a server needs to handle. It’s not just ‘sending and receiving’, the AP server has to do a lot more. The closest thing you can have is AP Client-to-Server, which will give you just a stream of json in your inbox (pleroma supports this, mastodon doesn’t).
It can’t quite be like SMTP, because an SMTP server delivers a message once then forgets about it, while (as I understand it) ActivityPub servers need to be able to answer questions about that message forever, so they need to keep a copy of it. That doesn’t seem fundamentally impossible, though — that’s what /var/lib/ is for.
Everyone keeps beating this drum, but honestly scuttlebutt and Mastodon are apples and oranges. Mastodon is a traditional client/server based architecture. Runs great on mobile devices so can be checked/interacted with anywhere.
Scuttlebutt is awfully neat but is basically designed around the idea that your identity if bound to THIS physical device. So forget mobile or working behind a corporate firewall. Just not happening.
Does that make Scuttlebutt bad? Hell no it’s an amazing tool for what it does, but what it does it VERY different from what Mastodon does, and IMO comparing the two is misleading.
(I’d love to be proven wrong and taken to school on this BTW. Somebody know of tech that lets me use Scuttlebutt in a device independent fashion? e.g. start conversation on laptop, continue on mobile phone? Don’t tell me “That’s not what Scuttlebutt is/does” because you’re just making my point for me :)
I never understood why they say this. It’s just a keypair. What happens if you try to use the same keypair on multiple devices? How and why does that not work, if that actually doesn’t work?
Because as an end user that’s not made clear in the docs? Because there are no mobile apps that I can find / see? Because copying around said keypair would be a manual operation with no support in software?
Note I’m not saying this is a technical problem, but a usability one.
uh, Manyverse is probably the most well known Scuttlebutt app — the only one with professional-looking design and a little bit of marketing I think… However, it’s not very good yet. It doesn’t support channels, it only shows one feed, and if you add a pub, you’ll get everyone’s posts in one giant feed.
technical problem
It is one, turns out it’s not documented or advised for a reason (see other comment subthread)
To be clear, I LOVE the scuttlebutt idea. I just think it needs a lot more work and polish to be usable by a lot of people. I’ve gotten it running, played with it a bit, but have never really ‘moved in’ because the amount of time I am at:
My personal (non work) computer and thus
Not behind a corporate firewall and thus
Willing to load potentially morally ambiguous content onto said machine is vanishingly small.
Whereas I can browse the Fediverse from just about anywhere I happen to be with zero retained footprint.
Well in my defense I didn’t claim that it was anything like Mastodon. They wanted a feature that was also unlike mastodon but is more like secure scuttlebutt from my understanding, so I gave them secure scuttlebutt to look at. I’m also tired so maybe what they were talking about is nothing like SSB. Wasn’t intending to liken the two.
The Mastodon situation right now is a mess. Gargon has published a blog post on the different standards Mastodon uses, but right now it uses ActivityPub only for server-to-server federation but not for clients.
I could be wrong but I got the feeling when It tried to run my own instance a few months back and it blew up in some subtle way that nobody could diagnose that the complexity of the project is running amok and even the core devs don’t have a really solid grasp of how all the moving parts work and interact.
I think the core devs have a handle on what’s going on, but the complexity is so high, and the devs’ bandwidth is low enough (this is free software after all!) that errors are abound.
Sort of? If you use the AP C2S standard, your client is responsible for a lot of the user experience, and, at a certain level, business logic, whereas the Mastodon client API dictates a lot about the shape of your application.
Pleroma does support AP C2S, though I don’t think it’s documented yet. I’m waiting on a blog post from kaniini about it. If all goes well, I’m wanting to write a threaded newsreader that speaks AP C2S to Pleroma.
I think the fediverse is worth iterating. Not to be dismissive of this work, but I’m not really interested in a competing standard. If we think Mastodon is too heavyweight (and there’s a good case to be made that it is) then let’s come up with lighter implementations and evolve the ActivityPub protocol to be simpler and more responsive.
The problem is that ActivityPub is almost too simple. It ensures people can communicate just as much as “you must use an Earth language” does. You must build on top of AP to make real apps.
Of course Moxie has a point too: federation means you get crap implantations that don’t play nicely with others, or don’t accept capital letters where they should. Who knows, there might even be a subset of implementations that accept Unicode smart quotes. This is inherent in using federation, and the only solution is to use good implantations that somehow confirm with the bad ones.
Oh this doesn’t even federate with everyone else? An imperfect solution that actually works is a lot better than one that doesn’t even work. “I federate only with myself and don’t follow standards” is as good as “I don’t federate”. If they can find a way to coordinate with other instances to improve the standards or their usage that’s great, otherwise this mostly just exists as a little hobby project.
Forgive my ignorance here, is that really federation or is it just that the ActivityPub protocol needs to be tightened up to allow for less interpretation in the implementations?
The ActivityPub protocol is extremely generic. It simple defines a vocabulary for transmitting actions and behaviors in a JSON payload, according to a very generic schema. Think of it as a small bit of window dressing over RDF. There’s also a few gaps, and some missing features that were added in later (such as with signatures), and you end up with standards hell.
I think ActivityPub does need some major tweaks at its core, something that seems already hard to do given the traction it has gained.
I’d actually like to see more adoption of a lesser-known protocol, Zot ( as used by Hubzilla and Zap ). It has a slightly different take on the entire concept of sharing content, where it starts out with the idea of sharing things just with those you want to share them with, but also e.g. only allow them to share things with you if you agree to this (or, of course, accept all incoming messages). Privacy by default, basically.
This, in my opinion is something where ActivityPub falls short.
Maybe adoption is ‘t necessary – maybe AP is flexible enough to shift to something like Zot… If so I’d definitely be interested in that.
I think you greatly overestimate the complexity of running Pleroma. With the releases we have now installing is just following the instructions (which are just: install elixir, install postgres, run the configuration tool), updating will be the same (all recent updates didn’t need any instructions beyond ‘download the new release and restart’).
My information on running Pleroma is … at this point maybe 6 months stale? After my instance imploded I thought about trying to switch but the install process at that time was a bit too daunting / unclear.
Glad some work and thought has been put into it! Maybe at some point in the future I’ll have the time to try again :)
We were always kind of a ‘code first’ project and missed a lot of opportunities to promote and write good documentation and things. We’re working on it :)
This is great, would love to see some code once you consider things ready for a wider audience. I’d be curious to know if this is written in Lua or Go considering your recent rewrite everything in Go post.
I’ve felt the exact same things about Mastodon – the underlying philosophical idea of keeping the platform distributed is awesome, but that’s about it. The heavy web interface is a pain, and I regularly have issues when I try to follow other people on other instances. Didn’t realize that protocol was an undocumented modification of activitypub :(
Honk looks cool though. The lightweight interface is so much more appealing than Mastodon’s infinite-scroll-with-heavy-js-and-random-cdn-resources abomination that’s almost as bad as Twitter’s website. Good luck @tedu – I’m interested in seeing what you build :)
If it’s mostly the UI that you don’t like there is an alternative lightweight UI: https://pinafore.social/
I’ve felt the same thing about Mastodon. Writefreely (which runs https://chargen.one/) goes some way towards addressing these issues, but isn’t quite in the direction I want to go.
Consequently I’ll keep an eye on this. I’m working on a replacement for writefreely for chargen using django, but the more fediverse implementations around, the better.
I’d love to have an ActivityPub server that was analogous to an SMTP server: it talks to the network to receive and send messages, but the inbox and outbox are just directories in
$HOME
filled with files in a standard format (JSON? Some RFC2822-like encoding?) and we can write our own tools to read and write messages instead of having to do everything in a browser.This is not possible because activities have side effects that a server needs to handle. It’s not just ‘sending and receiving’, the AP server has to do a lot more. The closest thing you can have is AP Client-to-Server, which will give you just a stream of json in your inbox (pleroma supports this, mastodon doesn’t).
What kinds of side effects?
It can’t quite be like SMTP, because an SMTP server delivers a message once then forgets about it, while (as I understand it) ActivityPub servers need to be able to answer questions about that message forever, so they need to keep a copy of it. That doesn’t seem fundamentally impossible, though — that’s what
/var/lib/
is for.liking, repeating, following, blocking, unfollowing, joining, leaving, voting, deleting…
check out secure scuttlebutt
Everyone keeps beating this drum, but honestly scuttlebutt and Mastodon are apples and oranges. Mastodon is a traditional client/server based architecture. Runs great on mobile devices so can be checked/interacted with anywhere.
Scuttlebutt is awfully neat but is basically designed around the idea that your identity if bound to THIS physical device. So forget mobile or working behind a corporate firewall. Just not happening.
Does that make Scuttlebutt bad? Hell no it’s an amazing tool for what it does, but what it does it VERY different from what Mastodon does, and IMO comparing the two is misleading.
(I’d love to be proven wrong and taken to school on this BTW. Somebody know of tech that lets me use Scuttlebutt in a device independent fashion? e.g. start conversation on laptop, continue on mobile phone? Don’t tell me “That’s not what Scuttlebutt is/does” because you’re just making my point for me :)
I never understood why they say this. It’s just a keypair. What happens if you try to use the same keypair on multiple devices? How and why does that not work, if that actually doesn’t work?
Sync errors, broken account state, etc.
(If you make a post with device 1, and another with device 2 before the post from 1 syncs onto 2, interesting problems occur.)
Discussion here: http://viewer.scuttlebot.io/%25q6qYcAlqig%2B3fqDxvBjaUzLyCoxG1yNUd4focPVSXhI%3D.sha256
Oh, right, they’re doing the
bLoCkChaInhash chain thing. I wonder…Because as an end user that’s not made clear in the docs? Because there are no mobile apps that I can find / see? Because copying around said keypair would be a manual operation with no support in software?
Note I’m not saying this is a technical problem, but a usability one.
uh, Manyverse is probably the most well known Scuttlebutt app — the only one with professional-looking design and a little bit of marketing I think… However, it’s not very good yet. It doesn’t support channels, it only shows one feed, and if you add a pub, you’ll get everyone’s posts in one giant feed.
It is one, turns out it’s not documented or advised for a reason (see other comment subthread)
To be clear, I LOVE the scuttlebutt idea. I just think it needs a lot more work and polish to be usable by a lot of people. I’ve gotten it running, played with it a bit, but have never really ‘moved in’ because the amount of time I am at:
Whereas I can browse the Fediverse from just about anywhere I happen to be with zero retained footprint.
Well in my defense I didn’t claim that it was anything like Mastodon. They wanted a feature that was also unlike mastodon but is more like secure scuttlebutt from my understanding, so I gave them secure scuttlebutt to look at. I’m also tired so maybe what they were talking about is nothing like SSB. Wasn’t intending to liken the two.
8 gigs ought to be enough for anybody.
But my machine is brought to its knees with just a VM, web browser, and two electron apps.
Thank you, tedu, for caring about those of us who don’t offload all our computation to Amazon.
The Mastodon situation right now is a mess. Gargon has published a blog post on the different standards Mastodon uses, but right now it uses ActivityPub only for server-to-server federation but not for clients.
I could be wrong but I got the feeling when It tried to run my own instance a few months back and it blew up in some subtle way that nobody could diagnose that the complexity of the project is running amok and even the core devs don’t have a really solid grasp of how all the moving parts work and interact.
I think the core devs have a handle on what’s going on, but the complexity is so high, and the devs’ bandwidth is low enough (this is free software after all!) that errors are abound.
AP C2S standard is woefully insufficient and probably won’t get fixed, so that’s why they have their own client API
Sort of? If you use the AP C2S standard, your client is responsible for a lot of the user experience, and, at a certain level, business logic, whereas the Mastodon client API dictates a lot about the shape of your application.
Pleroma does support AP C2S, though I don’t think it’s documented yet. I’m waiting on a blog post from kaniini about it. If all goes well, I’m wanting to write a threaded newsreader that speaks AP C2S to Pleroma.
I think the fediverse is worth iterating. Not to be dismissive of this work, but I’m not really interested in a competing standard. If we think Mastodon is too heavyweight (and there’s a good case to be made that it is) then let’s come up with lighter implementations and evolve the ActivityPub protocol to be simpler and more responsive.
The problem is that ActivityPub is almost too simple. It ensures people can communicate just as much as “you must use an Earth language” does. You must build on top of AP to make real apps.
Of course Moxie has a point too: federation means you get crap implantations that don’t play nicely with others, or don’t accept capital letters where they should. Who knows, there might even be a subset of implementations that accept Unicode smart quotes. This is inherent in using federation, and the only solution is to use good implantations that somehow confirm with the bad ones.
Oh this doesn’t even federate with everyone else? An imperfect solution that actually works is a lot better than one that doesn’t even work. “I federate only with myself and don’t follow standards” is as good as “I don’t federate”. If they can find a way to coordinate with other instances to improve the standards or their usage that’s great, otherwise this mostly just exists as a little hobby project.
Forgive my ignorance here, is that really federation or is it just that the ActivityPub protocol needs to be tightened up to allow for less interpretation in the implementations?
Maybe a reference test suite or something?
This is essentially what litepub (https://litepub.social/litepub/) is trying to do.
The ActivityPub protocol is extremely generic. It simple defines a vocabulary for transmitting actions and behaviors in a JSON payload, according to a very generic schema. Think of it as a small bit of window dressing over RDF. There’s also a few gaps, and some missing features that were added in later (such as with signatures), and you end up with standards hell.
Sounds like this is what @mercer was talking about with Litepub and both Pleroma and Pixelfed currently support it based on that page.
This is essentially what I was advocating. Don’t throw the baby out with the bathwater. Fix it! :)
(Wait I’m not sure whether that analogy extends in that direction but.. You get the idea :)
I think ActivityPub does need some major tweaks at its core, something that seems already hard to do given the traction it has gained.
I’d actually like to see more adoption of a lesser-known protocol, Zot ( as used by Hubzilla and Zap ). It has a slightly different take on the entire concept of sharing content, where it starts out with the idea of sharing things just with those you want to share them with, but also e.g. only allow them to share things with you if you agree to this (or, of course, accept all incoming messages). Privacy by default, basically. This, in my opinion is something where ActivityPub falls short.
Maybe adoption is ‘t necessary – maybe AP is flexible enough to shift to something like Zot… If so I’d definitely be interested in that.
You could have just used the Gopher interface that Pleroma comes with :p
If Pieroma were easier to install and maintain I think it would silence a lot of people’s issues with the fediverse.
it’s far smaller and lighter weight than Mastodon, and has the option to switch out to a lighter weight front end as well.
However I felt like I had to be an Elixir hacker to get it running which I’m not :) (I have a grasp of Ruby and Python :)
I think you greatly overestimate the complexity of running Pleroma. With the releases we have now installing is just following the instructions (which are just: install elixir, install postgres, run the configuration tool), updating will be the same (all recent updates didn’t need any instructions beyond ‘download the new release and restart’).
My information on running Pleroma is … at this point maybe 6 months stale? After my instance imploded I thought about trying to switch but the install process at that time was a bit too daunting / unclear.
Glad some work and thought has been put into it! Maybe at some point in the future I’ll have the time to try again :)
We were always kind of a ‘code first’ project and missed a lot of opportunities to promote and write good documentation and things. We’re working on it :)
Oh believe me there was NO judgement inherent there (though I can see where it could read that way) - just stating my experience at the time.
I think Pleroma is awesome work and I’m psyched you folks are working on the polish aspect.
Oo, I like that. :)
I ended up sticking brutaldon in front of Mastodon.
I have the pleroma source checked out, too, of course, though not being familiar with it I find elixir difficult to follow.
Mastodon does this too…
a honk in German is someone who does stupid things ;-) but looking forward to it :-)
Excellent, the German translation is already complete.
:-)
This is great, would love to see some code once you consider things ready for a wider audience. I’d be curious to know if this is written in Lua or Go considering your recent rewrite everything in Go post.
It’s in go.