Items tagged with: activitypub

Search

Items tagged with: activitypub


Internationalise The Fediverse
shkspr.mobi/blog/2024/02/inter…

We live in the future now. It is OK to use Unicode everywhere.

It seems bizarre to me that modern Internet services sometimes "forget" that there's a world outside the Anglosphere. Some people have the temerity to speak foreign languages! And some of those languages have accents on their letters!! Even worse, some don't use English letters at all!!!

A decade ago, I was miffed that GitHub only supported some ASCII characters in its project names. There's no technical reason why your repo can't be called "ഹലോ വേൾഡ്".

Similarly, I'm frustrated that Mastodon (the largest ActivityPub service) doesn't allow Unicode usernames and has resisted efforts to change.

So I built a small ActivityPub server which publishes content from an Actor called @你好@i18n.viii.fi - it is only a demo account, but it works!

Some ActivityPub clients report that they are able to follow it and receive messages from it. Others - like Mastodon - simply can't see anything from it. Take a look at the replies on Mastodon to see which services work. You can also see some of its posts on the Fediverse.

What Does The Fox Spec Say?


The ActivityPub specification says:

Building an international base of users is important in a federated network.
Internationalization


I can't find anything in the specifications which limits what languages a username can be written in. But there are a few clues scattered about.

The user's @ name is defined by preferredUsername which is:

A short username which may be used to refer to the actor, with no uniqueness guarantees.
4.1 Actor objects


There's nothing in there about what scripts it can contain. However, later on, the spec says:

Properties containing natural language values, such as name, preferredUsername, or summary, make use of natural language support defined in ActivityStreams.
4. Actors


So it is expected that a preferred username could be written in multiple scripts. Which implies that the default need not be limited to A-Z0-9.

The ActivityStreams specification talks about language mapping.

Finally, the ActivityPub specification has some examples on non-Latin text in names.

So, I think that it is acceptable for usernames to be written in a variety of non-Latin scripts.

But What About...?


There are usually a few objections to "Unicode Everywhere" zealots like me. I'd like to forestall any arguments.

What about homograph attacks?


Well, what about them? ASCII has plenty of similar looking characters. I doubt most people would notice when a capital i is replaced by a lower L - and vice-versa. Similarly the kerning issue of an r and n looking like an m is well known. Are mixed language homographs more dangerous? I don't think so.

What if people make names that can't be typed?


Well, what if they do? Maybe not being found by people who can't type your language is a feature, not a bug. But, anyway, clients can let users search for other people, or copy and paste their names.

What about weird "Zalgo" text?


It is up to a client to decide how they want to render text input. The "problems" of strange Unicode combinations are well known. This is not a hard computer-science problem.

What about bi-directional text?


The spec makes clear this is allowed.

Do people even want a username in their own script?


I have no evidence for this. But I bet you'd get pretty frustrated if you had to switch keyboard just to type your own name, wouldn't you? In any case, why can't I have a username of @😉

What's Next?


If you build ActivityPub software, give some thought to the billions of people who don't have names which easily fit into ASCII.

If your software can see @你好@i18n.viii.fi and its posts, please let me know.

shkspr.mobi/blog/2024/02/inter…

#ActivityPub #fediverse #i18n #mastodon #unicode


We’ve just published an update about this Mastodon trial which has been running for the last 6 months – you can read it here: bbc.co.uk/rd/blog/2024-02-exte…

We are going to continue our trial here for at least another six months while we share our findings internally and seek more engagement from other BBC teams. We are also planning to start researching ways to publish more BBC content using ActivityPub.

#mastodon #ActivityPub #socialmedia


Rebuilding FourSquare for ActivityPub using OpenStreetMap
shkspr.mobi/blog/2024/01/rebui…

I used to like the original FourSquare. The "mayor" stuff was a bit silly, and my friends never left that many reviews, but I loved being able to signal to my friends "I am at this cool museum" or "We're at this pub if you want to meet" or "Spending the day at the park".

So, is there a way to recreate that early Web 2.0 experience with open data and ActivityPub? Let's find out!

This quest is divided into two parts.

  1. Get nearby "Points of Interest" (POI) from OpenStreetMap.
  2. Share a location on the Fediverse.


OpenStreetMap API


OpenStreetMap is the Wikipedia of maps. It is a freely available resource which anyone can edit (if they're skilled enough).

It also comes with a pretty decent API for querying things. For example, nw["amenity"]({{bbox}}); finds all "amenities" near a specific location.

Map of a part of London. Some parts are highlighted.

As you can see, it has highlighted some useful areas - a pharmacy and a pub. But it has ignored other useful locations - the train station and the park. It has also included some things that we may not want - bike parking and a taxi rank.

What API call is needed to get useful locations of of OverPass?

It's possible to specify the type of thing to find using nw["amenity"="restaurant"]; - but adding every single type of thing would quickly end up with a very large query containing hundreds of types.

It is also possible to exclude specific types of places. This retrieves all amenities except for fast food joints:

nw["amenity"]({{bbox}});-nw["amenity"="fast_food"]({{bbox}});

Again, that would be complex.

Perhaps one solution is just to return everything and let the user decide if they want to check in to a telephone kiosk or a fire hydrant? That's a bit user-hostile.

Instead, this query returns everything which has a name nw["name"]({{bbox}});

Map of London with several bits highlighted.

That cuts out any unnamed things - like park benches and car-sharing spots. But it does add named roads and train lines.

It is possible to use filters to exclude results from OverPass. The best that I can come up with is: nw["name"][!"highway"][!"railway"][!"waterway"][!"power"]({{bbox}});

That gets everything which has a name, but isn't a highway or railway or waterway or powerline. It isn't perfect - but it will do!

This is the query which will retrieve the 25 nearest things within 100 metres of a specific latitude and longitude. It includes the name and any other tags, the location, and the OSM ID.

;nw%5B%22name%22%5D%5B%21%22highway%22%5D%5B%21%22railway%22%5D%5B%21%22waterway%22%5D%5B%21%22power%22%5D(around:100,51.5202,-0.1040);out%20center%20qt%2025;]overpass-api.de/api/interpreter?data=[out:json];nw["name"][!"highway"][!"railway"][!"waterway"][!"power"](around:100,51.5202,-0.1040);out center qt 25;

ActivityPub


There's good news and bad news here. Firstly, ActivityStreams (which are subscribed to in ActivityPub) supports the concept of "Place" and "Location".

Once the user has a latitude and longitude, the can share it - along with a message, photo, or anything else.

Something like:

{    "@context": "https://www.w3.org/ns/activitystreams",    "type": "Note",    "content": "Here in NYC! <a href=\"https://www.openstreetmap.org/way/958999496\">John Lennon's Imagine Mosaic</a>.",    "attachment": [        {            "type": "Image",            "mediaType": "image\/jpeg",            "url": "https:\/\/fastly.4sqi.net\/img\/general\/590x786\/56367_9pxuZJD7d1hgPdaMFcFq1pipvTTMynBJsYcpHH-b8mU.jpg",            "name": "A photo of a mosaic which says 'Imagine'."        }    ],    "location": {        "name": "John Lennon's Imagine",        "type": "Place",        "longitude": 40.77563,        "latitude": -73.97474    }}

For example, here's a PixelFed post with an attached location - and this is the JSON representation. That status can be reposted into other social networks.

It is worth noting that Mastodon doesn't (natively) support location - if you view my repost of that PixelFed post you'll see there's no location metadata attached. That's OK! It just means that the status needs to include human-readable data.

Similarly, Mastodon doesn't support the arrive vocabulary. So this will be limited to a message with a location attached.

Other ActivityPub services do support location.

Putting it all together


Well… that's a job for next week. Probably!

  • Building a web site which gets the user's location is easy.
  • Getting the data from OverPass should be straightforward.
  • Creating an ActivityPub server which can post geotagged notes into the Fediverse might be a little beyond my skillset! Some testing with Darius Kazemi's AP Glitch suggests this should work.

If you'd like to help, please leave a comment.

shkspr.mobi/blog/2024/01/rebui…

#ActivityPub #fediverse #FOURSQUARE #geolocation #OpenStreetMap



We just released version 2.0.0 of the #ActivityPub plugin for #WordPress (WordPress.com release is planned for tomorrow).

Main feature: Full bidirectional/threaded comment federation 🎉

Full Changelog: github.com/Automattic/wordpres…

Thanks #Automattic @mattwiebe @kanru @linos @mediaformat @mat @webrocker @sentynel and @janboddez for your contributions

wordpress.org/plugins/activity…








The JSON-LD Playground web app is very useful for validating or exploring #ActivityPub data. However, if you prefer the command line or want to integrate Playground-like functionality into scripts, the ld-cli program could be useful. It’s definitely been useful for me. Features include: expand, compress, flatten, frame and conversion to/from RDF (N-Quads).

github.com/filip26/ld-cli github.com/filip26/ld-cli6



I've created a new git repository with JSON Schema definitions for several Fediverse protocols and data formats, including Activity Streams 2.0, #ActivityPub, JSON Resource Description (Webfinger, Nodeinfo), and Mastodon [WIP]. There are automated tests that validate the W3C AS2 test corpus (a fork with bug fixes), examples from the AP spec and Mastodon AP docs, and others.
github.com/steve-bate/fedivers…


friendica VPS setup on ubuntu 22.04 LTS


@Friendica Support

Hi,
I'm working on my first #friendica #VPS installation, here you'll find my initial post about general thoughts like what distro to use, size and costs.
I'm using the tutorial "creating a friendica server - ubuntu" by @Hank G ☑️.

As of now I'm doing well in the process and want to start this post to document differences and questions while installing the server.

This server is going to host an already existing friendica node I have to move from another hosting provider. That means that for example the DB doesn't have to be created from scratch but moved and other smaller details.

I will try to address the different steps of installation in answers to this post and appreciate help, ideas and observations.

I'm doing this from a #linux desktop environment from the console but there shouldn't be differences if you want to do this from a #windows machine.

#fediVerse #tutorial #fediHelp #activityPub


Integrujte WordPress nejen s Mastodonem

Tento týden společnost Automattic oznámila dostupnost pluginu ActivityPub na Wordpress.com. Tento plugin si ale můžete nainstalovat i do vlastní instance Wordpressu, udělat ze svého blogu součást sítě Fediverse a přímo komunikovat nejen s uživateli Mastodonu. Přečtěte si, jak na to.

#ActivityPub #blog #fediverse #Mastodon #sociálníSítě #wordpress

blog.eischmann.cz/2023/10/14/i…


@jachym Je to náhrada Instagramu. Pixelfed je také #fediverse a #ActivityPub podobně jako Mastodon. Jsou tam otevřené registrace. Platba je dobrovolná, jinak je zdarma. Zatím nejsou oficiální aplikace, je zatím v testování, ale funguje dobře.
Místo Google Photos je super Immich. Mám ho také na serveru. Ten jsem chtěl nabízet za menší poplatek na provoz na subdoméně jmeno.mycloud.photos. Třeba někdo využije s rodinou.


Tomorrow I'll be doing a presentation about the #ActivityPub API at the O'Reilly Media event "APIs: Possibilities and Pitfalls". I'm excited!

oreilly.com/live-events/apis-p…




I’ve promised enough people this, so I had to do it! 😁

Here’s my write-up of how I added client-side Fediverse-powered comments to my Jekyll blog using the Mastodon API.

Huge props to @jwildeboer for the initial inspiration, as well as @julian and everyone who provided feedback for inspiring the design improvements.

cassidyjames.com/blog/fedivers…

✨💬 Reply to this thread then check the blog post comments to see it in action!

#Mastodon #Jekyll #WebDevelopment #ActivityPub #design


Eventually #Meta will have the final say when it comes to #ActivityPub. Like how all word processors must support .docx, and all websites are built with Chromium compatibility in mind.

This is how you take over an open protocol.

"Embrace, extend, extinguish."

7/🧵


Svět #fediverse není jen Mastodon. Možná někdo využije náš PixelfedCZ, který byl vytvořen jako open-source alternativa k Instagramu, která by umožnila uživatelům sdílet své fotografie a videa bez zásahu externích společností. Nebo díky ActivityPub, je možné sledovat uživatelé třeba s Pixelfed na platformě Mastodon.
#pixelfed :pixelfed:
#activitypub
#mastodon :mastoblush:
#tip_mastodon
pixelfed.cz


@Nuno @amitten Well, I'd say it depends a lot on the concrete situation. Many #activitypub devs have seen how historically companies like Meta & Google have applied a Trojan horse strategy, to eventually take over the small spaces that decentralized and/or FOSS projects had opened. The #XMPP case comes to mind, but it also encompasses how the whole web has become.

If to put in place measures to avoid that happening to the #Fediverse is being a fanatic, long live the fanatics! 😃



Wow. Wordpress just announced they have to drop support for Twitter in their Jetpack post sharing plug-in as they haven’t been able to reach agreement with Twitter for access. They are committing to adding support for Mastodon!
The majority of the Web’s individually run websites are Wordpress! It’s ON!!

#TwitterMigration #TwitterBroken #Mastodon #activityPub #Fediverse



Yes, but that is still not good. Within ActivityPub, one cannot write a *message* that, a priori, is known to be correctly readable by any of the intended recipients -- unless it is a short (< 500 bytes) text in plain ascii, with no italics, boldface, or other markup, and no embedded images... >>

#Fediverse #ActivityPub #FediverseFragmentation


Meta: Fediverse


Yes #itWorksLikeEmail but still I really don't understand how #friendica works. For example on this thread libranet.de/display/0b6b25a8-1… the original post was sent to 103 remote servers, my friend digit@iviv.hu commented on it. My response to his comment was sent to 24 servers, but my response to my own comment was sent to 105 servers. I suspect him being on Diaspora* and most of my contacts being on platforms like #Mastodon than only support #ActivityPub has an influence here.

If I try to reference the same post from my Masto account, I thought it would look super weird, like I was talking to myself in a way that didn't make any sense, but I actually only see the OP https://hostux.social/@fu@libranet.de/109835482564374801 while when I search for my later comment I see it libranet.de/display/0b6b25a8-2… and the comment of my own I was replying to, but not the OP !Friendica Support


The #Mastodon server and #Matrix homeserver don't have to be colocated. E.g. you could be on mymastodon.example.com and hook it up to your matrix a/c on matrix.org. The larger #ActivityPub instances could use a small Matrix homeserver for it users without a declared matrix address, and automatically create a matrix a/c for them for the sole purpose of DMing.

The architectural possibilities are quite wide, I suspect.




OK, well this is getting far more interesting for me! 😎
Given the open nature of the #ActivityPub protocol, it is possible to pull in the Instagram alternative, Pixelfed, into your Mastodon Home Timeline.
This is great for those looking for an alternative to Instagram, but not wanting to use yet another app.

Here is another short video on how this works and how you can use it yourself!
#twittermigration #twitterexodus #Instagram #Pixelfed #feditips

youtu.be/iPq-NqtTEqU



4 years using and championing the #fediverse full time and I've never written a #introductions toot. Well, or I have and can't find it.

I'm a #blind guy from 🇬🇧 with a passion for #technology and #programming, particularly #lowLevel #systemsProgramming in #C, #C++, #Rust, etc.

I've been a huge #freeSoftware / #openSource advocate for the majority of my life. I run #Linux and I love open, #decentralised technologies like #ActivityPub, #Matrix, #bitTorrent etc.

In my view, technology is built to make our lives easier, and in many ways, it isn't these days. It is truly my opinion that the only way #tech can be sustainable is if it's built using #FOSS, and does not give ultimate control to any 1 entity, individual or corporate. If technology is to help the people, it must be built *for* the people.

Currently working on odilia.app, various projects with the rest of the Lower Elements gang at lowerelements.club, and a Computing Science BSC at the #University of #stirling