home.social

#brutalinks — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #brutalinks, aggregated by home.social.

fetched live
  1. @tom I considered that for the #Brutalinks link aggregator built on top of #GoActivityPub, but then I realized that the fediverse already has a pretty serious spam problem, and pretty poor tools for admins to deal with it, to add a fully anonymous way of posting.

    It can of course be done by restricting the reach to the instance where it's enabled, but even so, I feel like it's not worth it.

    I was envisioning it more as a single user per instance that people can post as, not as separate actors created for each post, which feels like would create an even bigger challenge to moderate.

  2. It's a painful realization that I come to that no matter how much effort I put into making my #ActivityPub server be fast it's still going to suck if in order to build a meaningful page for a user the client needs to do many requests.

    So the #brutalinks link aggregator now makes use of asynchronous collection fetching and then content rendering is being done from local storage.

    This decreased the loading times to probably less than half of what they were before.

    However I still need to find a good model for aggregating and balancing all the sequential loads with an eventual asynchronous sequential sending of activities.

    #FedBOX #GoActivityPub

  3. After what seems like a thousand years I have started replacing some synchronous client to server #ActivityPub fetch requests with loading the same information from an indexed cache in my link aggregator.

    I think I've started the work on inbox/outbox async fetch and indexing around 3-4 months ago, and only now I am able to make proper use of it.

    I guess I should have used a real RDBMS instead of reinventing the wheel on every turn. :D

    #brutalinks #GoActivityPub #golang

  4. @naturzukunft the server (the one I'm most focused on) is called #FedBOX: github.com/go-ap/fedbox

    As a client I'm working on a link aggregator called #brutalinks: github.com/mariusor/brutalinks

  5. The experiment of using roaring bitmaps as the foundation for indexing #ActivityPub objects is half successful and half not.

    The good news is that soon I'll be able to replace the #brutalinks client access to it's activitypub backend with something that's built on top of local storage that makes use of the indexes, therefore being much, much faster.

    The bad news is that adding indexing to the storage backends themselves didn't result in too much performance gains, but I just suspect I'm doing something wrong.

    #GoActivityPub #golang

  6. Due to the long time I neglected brutalinks.tech, tech debt overwhelmed the server and I had to put it down.

    It's currently in maintenance mode for the near-medium future, until I manage to get back to it and bring it in working order.

    It's likely that the only people disturbed by this development are random spammers, but still, apologies.

    #GoActivityPub #brutalinks #FedBOX

  7. @linos my project #FedBOX supports multiple values for the attributedTo property on ActivityPub objects.

    The use case this was required for, even though it's not implemented at the moment, was when mods would edit an object that came under scrutiny on the main client that uses FedBOX as a backend, the #brutalinks link aggregator.

    Collaborative editing would also work, but there are no clients capable of that at the moment.

  8. @ernest I see you posting more and more about community management and server/service maintenance than coding on the project.

    How do you deal with doing both: a maintainer for a project and a community manager ?

    I was trying to push people interested in #BrutaLinks in starting their own instances instead of using mine, and seeing how nobody took me up on that, it feels like it's the losing strategy. :D

  9. I keep being on a roll today. I discovered the mystery of why #BrutaLinks doesn't show follows coming from Mastodon.

    It actually does, but because they don't have a published date they are ordered at the end of the inbox, so I had to go all the way to the end of the listing to find them. Sigh...

    Another one to put on top of the pile of #mastoquirks

  10. One of the small things I managed to do while sick this week was to add support for <link rel=alternate type="application/activity+json"> for all the pages where this makes sense.

    So now the instance and the individual users are directly discoverable on Mastodon instances by entering the URL in the search box. (Accepting the follows is not functional at the moment... oops)

    Ex instance: brutalinks.tech/

    Ex user: brutalinks.tech/~marius

    #BrutaLinks #GoActivityPub #FedBOX #ActivityPub

  11. @weirdwriter could you look at #brutalinks also? I always wondered if I got reply threading right for screen readrs but never managed to properly test. Example thread: brutalinks.tech/~ild/e469b98e-

  12. So, it seems that the #Littr (littr.me) project rebranded into #Brutalinks (brutalinks.tech). (Thanks to fosstodon.org/@heyd/1105352062 for finding Brutalinks.)

    Littr is the second “link aggregator” type of Fediverse software, after #Lemmy, as far the list in #Wikipedia is concerned: en.wikipedia.org/wiki/Fedivers

    The newest additions in that list is #Lotide (sr.ht/~vpzom/lotide/) and #Kbin (Kevin?!).

  13. For people invested in the migration from #reddit. Here's some details about #BrutaLinks one of the projects I'm working on, which is a reddit-like discussion platform, built on top of #ActivityPub.

    It didn't benefit from the attention and funding that lemmy got, so probably it's overall less polished and performant, but some love from the community would do it good.

    brutalinks.tech/~ild/e469b98e-

  14. The daily grind of fixing bugs and small iterative work took me by surprise today, when I finally had a look at how #BrutaLinks and #FedBOX integrate with Mastodon, (which used to be "not very well") and I finally have a working webfinger resolver that covers actors for both projects.

    So if you're searching for the accounts on brutalinks.tech, you can actually find them now.

    There are still bugs, but, I'm happy for small blessings. :)

  15. @Tim_Eagon @kreig another option, is one of the projects I work on, called #BrutaLinks.

  16. For people that haven't been following me:

    #FedBOX is a generic ActivityPub service with client to server support

    #BrutaLinks is a link aggregator and discussion platform similar to old Reddit and Lobsters

  17. I haven't talked about #BrutaLinks and #FedBOX in quite a while, as I was focusing on a different #ActivityPub project.

    Today I fixed some long-standing bugs thanks to some interest from a long time user that stumbled upon some of the problems. 🙇

  18. @J12t I have the server side (on #FedBOX) and client side on the link aggregator that uses it as a backend, called #brutalinks

    But sadly I didn't interop with other clients/servers for either of them.

    The main challenges that I can think of:

    1/ when a user wants to login using a new client to the server it should be dynamically created on the server.
    2/ discoverability of OAuth2 endpoints for each actor - this is handled somewhat by the AP spec.

  19. > At its core I suspect some form of Server-Server handshake will be required.

    @hrefna this can be as easy as opt-in follows requests between the servers, which are requested/accepted from the administrative panels of the respective instances.

    I am using this mechanism for federating between #brutalinks instances.

  20. @hrefna this is the way I plan to implement federation in my projects. The discussion platform #brutalinks requires explicit following other instances by admins in order for their posts to get pulled into the local timeline.

    I achieved this by having every instance have a corresponding activitypub actor, and the "federated" part is done by explicitly follow/accept-ing from other instance actors.

  21. > We need a proper ActivityPub Server first

    @helge funny you should say that. I'm working on #fedbox - a generic ActivityPub server written in Go: github.com/go-ap/fedbox

    It's not ready for general usage yet, though it serves (hah) as a backend for a couple of other projects: #brutalinks - a link aggregator and discussion platform, and some bots that use it's client to server capabilities.

  22. Started back some work on #Brutalinks and #FedBOX. Fixed some bugs, added some minor functionality. So far so good.

  23. Began a big chunk of work for the Go-ActivityPub library by stripping the custom storage backends from #FedBOX to their own separate packages that can be used independently.

    This will allow me to reach a compromise with regards to being compatible with Mastodon: I previously resisted the idea of having a local webfinger route on #FedBOX, but now I'll be able to have a separate binary that only does that and will be available from both it and #brutalinks by calling into the same storage logic.

  24. @lil5 this is #brutalinks a go server side application (there's very little JS there) modeled after old reddit and lobste.rs.

    It uses the ActivityPub client to server API (with some specific extensions) to communicate with another go application, called #fedbox - which is a generic #ActivityPub server.

    If you want to see it in action check littr.me

    Caveat, they are not Mastodon compatible (yet).

  25. A threaded discussion between my alter-egos on two different #brutalinks instances. Only complaint is that I need to improve the UI of the remote accounts.

  26. Great milestone today for #fedbox and #brutalinks: Like/Dislike activities and replies work as intended between two federated instances.

    Cue #np: Blur - Song 2.

  27. Taking advantage of a very long winter vacation, #FedBOX, the generic #ActivityPub service, and #brutalinks, the link aggregator are seeing great improvements (and set backs) with regards to federation with other instances.

    I'm happy that I can focus full time on this work for the next month and a half.