@benpate@mastodon.social
@benpate@mastodon.social avatar

benpate

@benpate@mastodon.social

Thoughtful comments on at least one irrelevant topic. #writing #software #democracy #pirates.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

benpate, to random
@benpate@mastodon.social avatar

In one session of , I said that I really needed "a map" of the tools and communities for building apps on the Fediverse.

To follow up on that, I've posted a first draft of what this looks like to me.

If you know more about the Fediverse than me (that's most of you) please take a look and let me know how I could make this list better:

https://emissary.dev/fediverse-resources

Hopefully it's a starting place that'll help other to get their projects moving.

benpate,
@benpate@mastodon.social avatar

@jesseplusplus Yes, thank you. I remember “thinking about adding FediDB” but not actually “adding FediDB” 🫤

I’ll get that on here too. Thank you!!

devnull, (edited ) to fediverse
@devnull@crag.social avatar

Can an instance operator running a derivative of Misskey (Sharkey, firefish, or maybe even Misskey itself) get in touch with me? I can't seem to federate with that entire pie of the fediverse... 401 Unauthorized 😬

Alternateively, if you've run into this type of issue before, any tips? Heh.

✅ Resolved! — https://crag.social/@devnull/112135536070616187

benpate,
@benpate@mastodon.social avatar

@devnull I ran into this on the flagship FireFish site and assumed it was because they’re requiring “Authorized Fetch” - though I put it on the back burner and haven’t dug deeply enough to confirm my assumption.

tariq, to fediverse
@tariq@absolutelyhar.am avatar

Something I've been pondering about is if there is a good parser, anybody know some good resources for that?

benpate,
@benpate@mastodon.social avatar

@tariq This could mean lots of things.What do you want to do with RSS and ActivityPub?

Maybe this will help:

I’m building a personal server called that sends and receives both and - so if you want an all-in-one server, check out https://emissary.dev

If you’re building with , you can also use my AP and RSS libraries directly

RSS+ActivityStreams parser: https://github.com/benpate/sherlock

ActivityPub API: https://github.com/hannibal

yatil, to accessibility
@yatil@yatil.social avatar

When the client has put tabindex="0" on all links with href but not on the <a> elements without an href that have the role button.

Chef’s kiss!

benpate,
@benpate@mastodon.social avatar

@yatil I do my best to make accessible sites, but it’s hard -- and I don’t trust my future self to always add the right attributes.

Plus, sometimes I NEED to use role= to make non-anchor-or-button elements interactive.

So I put a little javascript at the top of every page to add tabIndex=0 to elements with role of “link” or “button” to cover my bases.

Did I unlock a cheat code to better , or have I done something unholy?

aral, to SmallWeb
@aral@mastodon.ar.al avatar

🍞 Kitten toast, anyone?

A fifteen-second demo of how you can create a toast message in 42 lines of code¹ without writing any client-side JavaScript using Streaming HTML² in Kitten³.

Video:

https://vimeo.com/925828491

Source code:

https://codeberg.org/kitten/app/src/branch/main/examples/streaming-html/toast/index.page.js

Enjoy!

:kitten: 💕

¹ Almost half of which is CSS.
² https://ar.al/2024/03/08/streaming-html/
³ https://codeberg.org/kitten/app

benpate,
@benpate@mastodon.social avatar

@aral Kitten looks pretty cool. Aimed mostly at JavaScript/HTML developers?

benpate,
@benpate@mastodon.social avatar

@aral Well keep it up. It looks super fun!

ricmac, to random
@ricmac@mastodon.social avatar

Lots of great demos at today. Particularly looking forward to Emissary by @benpate, which was described as an "RSS Server", but it seems to be a lot more than that. I like that it brings the indie web and ActivityPub together. https://github.com/EmissarySocial/emissary

benpate,
@benpate@mastodon.social avatar

@ricmac Thanks, Richard! I'm pretty excited about this, too (and a little scared, tbh)

is a personal / small group server that sends and receives ActivityPub, RSS, and IndieWeb (MicroFormats, WebMentions, etc)

It's also a programmable toolkit for others to build their own Fediverse apps. To anyone who's interested: I'm looking forward to helping you build cool stuff with Emissary. :)

sass, to threads
@sass@mastodon.social avatar

How do we think will play with single-user instances in the Fediverse? I'm considering standing one up and using it as my main point-of-presence but curious whether future threads users will be able to see single-user instances or if Meta will simply auto-mod those out for some reason...

benpate,
@benpate@mastodon.social avatar

@sass Okay, I understand that they could.. but why would Facebook limit interaction with single user instances? Is there a technically reasonable that they wouldn’t want to deal with them?

Yes, they’re a self-serving, for profit company. But what self-serving reason would they have to intentionally limit the reach of this new, expensive product?

benpate, to random
@benpate@mastodon.social avatar

So, it seems that watching me type is incredibly boring. So, even though I could live-code a custom Fediverse app in the first 10-15 minutes of a session, it's probably better to just show it working.

It's only ~100 lines of JSON config, and less than than in HTML templates. You all won't mind if we skip my typos and get to the good stuff, will you?

Looking forward to Day 2 of the online unconference tomorrow, my speed demo, and hopefully some good follow up discussions after.

benpate,
@benpate@mastodon.social avatar

If you've ever wished there was some custom Fediverse app that served your specific community, we should talk.

is new, and still needs some work, but it's ready for devs and other bleeding edge radicals to start building the next:

music sharing...
workout tracking...
garage selling....
location posting...
neighborhood gossiping...

Fediverse app.

benpate,
@benpate@mastodon.social avatar

@andypiper Thank you! Please let me know how it goes? I've experimented with making a container, but just came away hating Docker. I'm going to ask a friend who's competent with containers to help me make one.

In the meantime, the install should be pretty smooth, but I'm happy to jump in if you need help.

julian, to random
@julian@community.nodebb.org avatar

NodeBB is at this year's FediForum, and one of the breakout sessions centred around the Theadiverse, the subset of ActivityPub-enabled applications built around a topic-centric model of content representation.

Some of the topic touched upon included:

  • Aligning on a standard representation for collections of Notes
  • FEP-1b12 — Group federation and implementation thereof by Lemmy, et al.
  • Offering a comparatively more feature-rich experience vis-a-vis restrictions re: microblogging
  • Going forward: collaborating on building compatible threadiverse implementations

The main action item involved the genesis of an informal working group for the threadiverse, in order to align our disparate implementations toward a common path.

We intend to meet monthly at first, with the first meeting likely sometime early-to-mid April.

The topic of the first WG call is: Representation of the higher level collection of Notes (posts, etc.) — Article vs. Page, etc?

Interested?

  • Publicly reply to this post (NodeBB does not support non-public posts at this time) if you'd like to join the list
  • If you prefer to remain private, please email julian@nodebb.org

As an aside, I'd love to try something new and attempt to keep as much of this as I can on the social web. Can you do me a favour and boost this to your followers?

benpate,
@benpate@mastodon.social avatar

@julian This is an awesome idea. Thank you for making it happen. I would love to be a part of this, so please include me when you set up the group.

The more real-world interop discussions we can have among developers, the better EVERYONE’S Fediverse will be.

manlycoffee, to fediverse
@manlycoffee@techhub.social avatar

Is ActivityPub considered to be synchronous "request/response" specification/protocol, or is ActivityPub considered to be an asynchronous fire-and-forget specification/protocol?

benpate,
@benpate@mastodon.social avatar

@manlycoffee I can’t speak for the official spec, but when you send an ActivityPub message (like a Follow request) there’s little to no useful information in the HTTP response beyond “yep, I got your request” or “begone, unauthorized scallywag.” Any useful information (like an Accept message) is sent as a separate HTTP request to the original sender’s inbox. So, I’m going with “asynchronous.”

benpate, to mastodon
@benpate@mastodon.social avatar

Hey - anyone have a common solution for minimizing the load from 's Delete/Person messages?

I'm working on a standalone ActivityPub server and OH MY GODS Mastodon sends an Imperial Tonne of junk messages.

I don't know what I'd do if I hadn't heard that accounts like mastodon.social/users/fghgh5tr had been deleted....

benpate, to random
@benpate@mastodon.social avatar

If anyone had paid attention in psychohistory class, Hari Seldom would have told you that the current uproar was unavoidable. SOMEONE was bound to make a bridge to BlueSky as soon as they opened up.

And, SOMEONE was bound to complain about it from a position of fear and ignorance.

I just want to say that @snarfed.org@snarfed.org has done tons good work for the Fediverse, and I appreciate his latest project.

Ryan, you’re awesome. Ignore the haters.

benpate, to random
@benpate@mastodon.social avatar

I figure it's about time to post more about progress on .

Tonight I'm working on the Mastodon API. My goal for February is for the API library to be robust enough to use third-party Mastodon clients with an Emissary server.

Right now, I'm actually able to publish some basic messages to Emissary using https://semaphore.social/ - which is an absolute godsend for developing a server API because it shows me every API call going through the browser. Glorious!

alcinnz, to random
@alcinnz@floss.social avatar

What to expect from your framework - Johan Halse:
https://johan.hal.se/wrote/2023/02/17/what-to-expect-from-your-framework/

benpate,
@benpate@mastodon.social avatar

@alcinnz Love this article. Thank you for sharing!

Under the “no solutions” section, I’ll suggest https://htmx.org as a potential option. Yes, socials are filled with silly memes, but that’s only to reinforce the point that today’s “front end” devs have taken themselves way too seriously.

The library itself has been a breath of fresh air for me, in an otherwise absurd world where simple things are obfuscated into oblivion by layers of meaningless abstractions.

taylorlorenz, to random
@taylorlorenz@mastodon.social avatar

Meta is downranking/hiding political content on Threads. The company says Threads will “not recommend any content/accounts that post about politics.”

Here’s the issue: what counts as “politics” is often any news abt people who have had their whole existence politicized, such as news about Black people, LGBTQ people, disabled ppl, women, etc. Climate scientists, public health experts etc also considered “political” https://www.axios.com/2024/02/09/meta-political-content-moderation-threads

benpate,
@benpate@mastodon.social avatar

@taylorlorenz Without saying anything good about Facebook, it’s totally reasonable for them to choose what goes on their platform. Arbitrarily. Capriciously. And unfairly. IT’S THEIR PLATFORM that you’re using for free in exchange for data about your private life.

If you want to own your voice, you need to own the platform from which you broadcast. That will never change. It’s not as hard as it seems, and it’s getting easier every day.

gabek, to random

I was never going to share this, because I feared for aggressively being fought with and being labeled as problematic or anti-moderation. But I think it’s worthwhile to offer different viewpoints, and datapoints.

I hear a lot of discussions about shared blocklists on the Fediverse. And I know some of them are about instances blocklists, but I’ll tell you about my experience with shared account blocklists.

One day I made an, admittedly stupid, comment on Twitter, about Wil Wheaton. It was just an opinion, but I should have said nothing at all. But it was no big deal.

He saw what I said and he blocked me, as he 100% has the right to do. That’s what it’s there for. What I didn’t know was he was a part of some kind of shared Twitter blocklist that would completely change my experience on Twitter after that day.

It started slow, I’d click on somebody’s profile and see that they had blocked me, even though we didn’t know each other. As time went on an increasingly growing number of people I had never met were blocking me, until it was materially impacting my usage of the platform. I’d click on people’s profiles multiple times a day and see they were already blocking me and they wouldn’t even know why. Over time I felt like Twitter was borderline unusable for me because I simply couldn’t talk to some percentage of the users.

The system worked as it was designed. The design was faulty. I’d hate to see that replicated here.

benpate,
@benpate@mastodon.social avatar

@gabek Thanks for posting this. It’s the kind of real world experience that we need when designing something better.

benpate,
@benpate@mastodon.social avatar

@gabek As for a better design, I think the issue in your story was that it was all or nothing, with no context about why someone is blocked.

I’m working on a design to make blocks public or private, to share them automatically but still allow a human to manually import them, and to give end users a range of actions to take when they DO use a shared block (label, 1-way mute, or 2-way block)

In your experience, do you think that would have worked better for you?

benpate,
@benpate@mastodon.social avatar

@gabek Yes, that makes sense. Do you have any ideas about what might be better?

benpate,
@benpate@mastodon.social avatar

@gabek Thank you. This helps a lot 😀

Edent, to fediverse
@Edent@mastodon.social avatar

I'm trying to accept a follow request from Mastodon.social, but the server keeps coming back with the error "found an invalid character in header name".

I'm sending my response to <https://mastodon.social/users/Edent/inbox>

What trivially obvious thing am I missing?

benpate,
@benpate@mastodon.social avatar

@Edent HTTP signatures are the worst. I’m so sorry you’re struggling with this. They’re so delicate, I can’t offer any help aside from the standard “break everything down into tiny steps, then test with known data at every step along the way.” Hopefully, something sticks out.

For me, HTTP sigs easily accounted for 1/3 of the overall pain of implementing ActivityPub. JSON-LD is another 1/3, btw…

So the (good news?) is that once you cross this hurdle, you’re VERY close. I’m rooting for you!

benpate,
@benpate@mastodon.social avatar

@Edent Hey Terence, I’m so sorry, I just saw this notification now. I’m working in Go, so my code may not be that useful to you. But in case it is:

All my ActivityPub code is here: https://github.com/benpate/hannibal
And my HTTP Signature code is here: https://github.com/benpate/hannibal/tree/main/sigs

Hopefully, some of my test cases will be useful for you :)
Let me know if anything pops out where I can help you out.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • cisconetworking
  • DreamBathrooms
  • InstantRegret
  • mdbf
  • khanakhh
  • magazineikmin
  • Durango
  • Youngstown
  • slotface
  • rosin
  • everett
  • kavyap
  • Leos
  • megavids
  • ngwrru68w68
  • tacticalgear
  • osvaldo12
  • GTA5RPClips
  • ethstaker
  • thenastyranch
  • cubers
  • anitta
  • tester
  • modclub
  • normalnudes
  • provamag3
  • lostlight
  • All magazines