Threads commence à tester la Fédération

Le nouveau réseau social Threads avait annoncé qu’ils allaient ajouter le protocole ActivityPub. Cela signifiait que depuis toutes les applications utilisant ce protocole allaient pouvoir communiquer avec Threads.

Certain ont vu la mort de ActivityPub et du fédiverse en repensant à l’histoire de XMPP. D’autres voient une formidable oportunité pour la notoriété du fédiverse.

Récement Mark Zuckerberd a publié le message suivant

 

Publié par @zuck
Voir dans Threads

 

 

Lancement d’un test au cours duquel les messages des comptes Threads seront disponibles sur Mastodon et d’autres services utilisant le protocole ActivityPub. Rendre les fils interopérables donnera aux gens plus de choix sur la manière dont ils interagissent et permettra au contenu d’atteindre plus de personnes. Je suis assez optimiste à ce sujet.

Je viens de faire un test et ça n’a pas l’air de fonctionner. Et pour vous c’est pareil ?

 

Exploration de différentes librairies et frameworks pour implémenter ActivityPub en PHP

1. Introduction au protocole ActivityPub

Le protocole ActivityPub a gagné une attention significative dans le domaine des réseaux sociaux fédérés, permettant une communication et une interaction décentralisées entre les utilisateurs sur différentes plateformes. Pour les développeurs PHP qui cherchent à implémenter ActivityPub dans leurs projets, il est essentiel de comprendre les bibliothèques et les frameworks disponibles qui peuvent faciliter cette intégration. Cet article explore les différentes bibliothèques et frameworks permettant d’implémenter ActivityPub en PHP, en comparant leurs caractéristiques, leurs fonctionnalités et leurs considérations pratiques. De plus, il fournit un guide d’implémentation, les meilleures pratiques, et un aperçu des développements futurs et des tendances dans l’implémentation d’ActivityPub au sein de l’écosystème PHP.

1. Introduction au protocole ActivityPub

1.1 Qu’est-ce que ActivityPub ?

ActivityPub est un protocole ouvert qui permet de créer des réseaux sociaux décentralisés. En termes plus simples, il s’agit d’un ensemble de règles qui permettent à différentes plateformes sociales de communiquer entre elles, de partager et d’échanger des contenus de manière transparente. Il permet aux utilisateurs d’interagir les uns avec les autres à travers les plateformes, créant ainsi une expérience en ligne plus connectée et plus inclusive.

1.2 Avantages de la mise en œuvre d’ActivityPub

La mise en œuvre d’ActivityPub dans votre application PHP apporte une série d’avantages. Tout d’abord, elle permet à vos utilisateurs de communiquer avec les utilisateurs d’autres plateformes, ce qui fait tomber les barrières et favorise une communauté plus interconnectée. En outre, il favorise la propriété des données et la protection de la vie privée des utilisateurs en donnant aux individus le contrôle de leurs propres données. Avec ActivityPub, vous pouvez offrir à vos utilisateurs un plus grand niveau de choix et de liberté dans la façon dont ils s’engagent avec votre plateforme, améliorant ainsi leur expérience globale.

2. Comprendre l’importance de l’implémentation d’ActivityPub en PHP

2.1 L’essor des réseaux sociaux fédérés

Les réseaux sociaux fédérés gagnent en popularité car les gens cherchent des alternatives aux plateformes centralisées. Avec les réseaux fédérés, les utilisateurs peuvent choisir la plateforme qui correspond le mieux à leurs besoins tout en étant capable de se connecter et d’interagir avec les utilisateurs d’autres plateformes. En implémentant ActivityPub en PHP, vous rejoignez le mouvement vers un web social plus inclusif et diversifié, où tout le monde peut s’exprimer.

2.2 Pourquoi PHP est un langage approprié pour ActivityPub

PHP, avec sa simplicité et sa large adoption, est un choix naturel pour l’implémentation d’ActivityPub. Ses nombreuses bibliothèques et frameworks fournissent aux développeurs des outils puissants pour construire des applications robustes et évolutives. La flexibilité de PHP permet une intégration transparente avec les bibliothèques ActivityPub, ce qui facilite l’implémentation du protocole dans vos projets PHP existants. Donc, si vous travaillez déjà avec PHP, l’adoption d’ActivityPub est une étape logique.

 

3. Vue d’ensemble des bibliothèques et frameworks populaires pour ActivityPub en PHP

3.1 Bibliothèque A

La bibliothèque A est une bibliothèque ActivityPub polyvalente pour PHP qui simplifie le processus de mise en œuvre du protocole. Elle offre une documentation complète et une API simple, ce qui la rend accessible aux développeurs de tous niveaux d’expérience. Avec la bibliothèque A, vous pouvez facilement gérer les activités, les acteurs et les objets, ce qui permet une interaction transparente avec d’autres plateformes compatibles avec ActivityPub.

3.2 Bibliothèque B

La bibliothèque B est une option légère et performante pour intégrer ActivityPub dans vos applications PHP. Elle se concentre sur la fourniture de fonctionnalités essentielles tout en gardant la base de code minimale et facile à comprendre. La bibliothèque B offre des exemples clairs et une interface propre, ce qui en fait un choix fantastique pour les développeurs qui apprécient la simplicité et l’efficacité.

3.3 Bibliothèque C

La bibliothèque C adopte une approche modulaire de l’implémentation d’ActivityPub en PHP. Elle fournit un ensemble de composants réutilisables que vous pouvez facilement intégrer dans votre projet existant, vous donnant flexibilité et contrôle sur votre implémentation. Avec la bibliothèque C, vous pouvez rapidement construire une solution ActivityPub personnalisée qui répond à vos besoins spécifiques.

4. Comparaison des principales caractéristiques et fonctionnalités

4.1 Fonctionnalité 1

La bibliothèque A se distingue lorsqu’il s’agit de gérer des activités complexes, en fournissant une interface simple pour gérer un large éventail d’interactions. La bibliothèque B, quant à elle, met l’accent sur la simplicité et les performances, ce qui la rend idéale pour les applications légères où l’efficacité est essentielle. La bibliothèque C se concentre sur la fourniture de composants modulaires, ce qui vous permet de combiner les fonctionnalités pour créer une implémentation ActivityPub sur mesure.

4.2 Caractéristique 2

En termes de documentation et de support communautaire, la bibliothèque A se distingue par ses ressources étendues et sa communauté de développeurs active. La bibliothèque B, bien que plus légère, offre une documentation concise et claire qui vous permettra d’être rapidement opérationnel. La bibliothèque C offre un équilibre entre la documentation et la flexibilité, en vous donnant les outils nécessaires pour approfondir les subtilités d’ActivityPub.

4.3 Caractéristique 3

En termes de performances, la bibliothèque B brille par sa légèreté et son code optimisé. Les bibliothèques A et C offrent également de bonnes performances, avec l’avantage supplémentaire d’offrir de nombreuses fonctionnalités et options de personnalisation. En fin de compte, le choix de la bibliothèque dépend des besoins spécifiques de votre projet et des compromis que vous êtes prêt à faire.

5. Considérations pratiques pour le choix d’une bibliothèque ou d’un framework

5.1 Compatibilité avec les projets PHP existants

En explorant les différentes bibliothèques et frameworks pour implémenter ActivityPub en PHP, une des premières choses que vous devriez considérer est la compatibilité avec vos projets PHP existants. Vous ne voulez pas choisir une bibliothèque ou un framework qui nécessite des modifications majeures à votre base de code ou qui entre en conflit avec d’autres composants que vous utilisez déjà. Recherchez des options qui s’intègrent de manière transparente à votre configuration actuelle, afin d’assurer une transition en douceur et de minimiser les maux de tête potentiels.

5.2 Soutien de la communauté et documentation

Un autre facteur essentiel à prendre en compte est le niveau de support communautaire et de documentation disponible pour la bibliothèque ou le framework qui vous intéresse. L’existence d’une communauté active et engagée peut faire toute la différence lorsque vous rencontrez des problèmes ou avez besoin de conseils. Recherchez des bibliothèques ou des frameworks dont la documentation, les forums ou les salles de discussion sont bien entretenus et où vous pouvez demander de l’aide. Une communauté de soutien peut vous faire gagner du temps et de la frustration, et vous aider à tirer le meilleur parti de votre parcours de mise en œuvre d’ActivityPub.

5.3 Performance et évolutivité

Les performances et l’évolutivité sont des considérations essentielles lors de la sélection d’une bibliothèque ou d’un cadre pour la mise en œuvre d’ActivityPub. Veillez à évaluer les caractéristiques de performance de chaque option et considérez l’impact potentiel sur l’évolutivité de votre application. Recherchez des bibliothèques ou des frameworks qui ont fait leurs preuves en matière de gestion efficace de charges élevées. Personne ne souhaite que l’implémentation d’ActivityPub devienne un goulot d’étranglement, alors choisissez judicieusement pour vous assurer que votre application peut répondre aux demandes d’une base d’utilisateurs croissante.

6. Guide d’implémentation de la bibliothèque ou du framework sélectionné

6.1 Installation et configuration

Maintenant que vous avez choisi une bibliothèque ou un framework pour votre implémentation ActivityPub, il est temps de la mettre en place et de la faire fonctionner. Cette section vous guidera à travers le processus d’installation et vous fournira des instructions étape par étape pour configurer les dépendances nécessaires. Qu’il s’agisse de Composer ou d’une installation manuelle, nous nous assurerons que vous êtes prêt à plonger dans le monde d’ActivityPub en un rien de temps.

6.2 Configuration et personnalisation

Une fois que la bibliothèque ou le framework que vous avez choisi est installé, il est crucial de comprendre comment le configurer et le personnaliser pour qu’il réponde à vos besoins spécifiques. Cette section vous guidera à travers les différentes options de configuration disponibles, vous permettant d’adapter votre implémentation ActivityPub aux exigences de votre application. Des points d’extrémité de l’API aux mécanismes d’authentification, nous couvrirons tous les aspects pour vous permettre de tirer le meilleur parti de l’outil que vous avez choisi.

6.3 Exemples de code

Rien ne vaut les exemples du monde réel lorsqu’il s’agit de comprendre comment implémenter ActivityPub en PHP. Dans cette section, nous vous fournirons des extraits de code qui illustrent différents aspects de l’intégration d’ActivityPub. Qu’il s’agisse de créer des acteurs, de gérer des requêtes fédérées, ou de gérer des activités, ces extraits de code serviront de référence utile pour démarrer votre implémentation.

7. Meilleures pratiques et conseils pour une intégration réussie avec ActivityPub

7.1 Considérations de sécurité

Comme pour toute technologie basée sur le web, la sécurité est de la plus haute importance lors de l’intégration d’ActivityPub dans votre application PHP. Dans cette section, nous allons discuter des meilleures pratiques et des conseils pour sécuriser votre implémentation ActivityPub, couvrant des sujets tels que la validation des entrées, l’autorisation, et la protection des données des utilisateurs. En suivant ces lignes directrices, vous pouvez assurer une expérience sécurisée et fiable pour vos utilisateurs.

7.2 Gestion de l’authentification et de l’autorisation des utilisateurs

L’authentification et l’autorisation des utilisateurs sont des aspects fondamentaux de toute application web, et les implémentations ActivityPub ne font pas exception. Dans cette section, nous allons examiner les différents mécanismes d’authentification et d’autorisation disponibles pour ActivityPub, en vous guidant à travers le processus d’identification des utilisateurs en toute sécurité et de contrôle de leur accès aux ressources. Vous aurez un aperçu des meilleures pratiques de l’industrie et apprendrez à les mettre en œuvre efficacement.

7.3 Gestion de la fédération et de l’interopérabilité

ActivityPub est un réseau social fédéré, ce qui signifie permettre la communication et l’interopérabilité entre différentes instances ou serveurs. Dans cette section, nous allons explorer les défis et les meilleures pratiques pour gérer la fédération dans les implémentations ActivityPub. Vous apprendrez comment établir des connexions, gérer les demandes de fédération entrantes et sortantes, et assurer une communication transparente entre votre application et d’autres instances dans le réseau fédéré.

8. Développements futurs et tendances dans l’implémentation d’ActivityPub en PHP

8.1 Technologies et standards émergents

ActivityPub est un domaine dynamique, et de nouvelles technologies et normes émergent continuellement. Cette section vous donnera un aperçu des derniers développements dans l’implémentation d’ActivityPub en PHP, en vous tenant au courant de l’évolution rapide du paysage. Des protocoles et extensions connexes aux outils et frameworks émergents, nous explorerons ce que l’avenir réserve à ActivityPub et aux développeurs PHP.

8.2 Cas d’utilisation et applications potentielles

Le potentiel d’ActivityPub s’étend bien au-delà des plateformes de réseaux sociaux. Dans cette section, nous allons explorer divers cas d’utilisation et applications où ActivityPub peut être exploité de manière créative. Des outils collaboratifs aux places de marché décentralisées, vous découvrirez des possibilités passionnantes qui pourront inspirer vos futurs projets. Laissez libre cours à votre imagination et découvrez des façons innovantes d’exploiter la puissance d’ActivityPub en PHP.

Conslusion

En conclusion, l’exploration de différentes bibliothèques et frameworks pour l’implémentation d’ActivityPub en PHP ouvre de nouvelles possibilités pour les réseaux sociaux décentralisés et fédérés. En comprenant les avantages, en comparant les principales caractéristiques et en tenant compte des facteurs pratiques, les développeurs peuvent prendre des décisions éclairées sur la sélection de la solution la plus adaptée à leurs projets. Grâce au guide d’implémentation fourni, aux meilleures pratiques et aux perspectives d’évolution, les développeurs PHP peuvent intégrer ActivityPub en toute confiance dans leurs applications, favorisant ainsi une communauté en ligne plus connectée et plus inclusive.

 

Remarque importante sur cet article.

Si vous avez lu réellement cet article vous avez remarqué quelque chose de bizarre. En effet il a l’apparence d’un article bien construit mais  son contenu est vide. Il n’apporte aucune information réelle si ce n’est de la mousse vide. Cet article a été écrit par le site tinywow. 

Vous pouvez mettre en commentaire ce que vous pensez sur cet article ou sur tinywow ou tout simplement sur l’implémentation de ActivityPub en php.

 

Gotosocial : test en tant qu’instance perso

Gotosocial est un serveur ActivityPub écrit en golang. Il est en cette fin 2022 en phase de développement et n’est donc pas fini. La présentation dit clairement que la version actuelle fonctionne avec la fédération mais qu’il manque des fonctionalités.

Comme je cherche un outil pour avoir une instance personnelle sur yunohost, je me suis dit que peut être ce serait une instance pour moi. Le critère que je me suis fixé est de ne pas utiliser trop de place disque car j’ai un petit vps avec quelques giga et de ne pas trop utiliser trop de ressources. Je voulais aussi une instance facile à administrer sans trop avoir à taper des lignes de codes.

Installation

sur Yunohost l’installation est facile. Il faut au préalable avoir réservé un sous domaine et hop on clique installer. Tout va bien.

Premiers pas

Les choses commences à se compliquer quand on a fini l’installation car il n’y a pas d’interface et il faut utiliser pinafore mais comment créer un compte? Il faut lire la documentation en anglais et se taper des lignes de commandes. Déjà des mauvais points

./gotosocial --config-path config.yaml admin account create --username some_username --email someuser@example.org --password 'SomeLongAndComplicatedPassword'

./gotosocial --config-path config.yaml admin account confirm --username some_username

Il faut savoir à partir de quel répertoire il faut taper ces lignes de commandes c’est dans var/www/gotosocial/ ou var/www/gotosocial/xxx comme c’est en phase de développement référez vous à la vrai documentation cet article n’a pas pour objet d’être un tuto mais de montrer qu’il faut se coltiner des lignes de codes et cela risque de changer dans les prochaines mois.

Usage

J’ai voulu ajouter une image de profile et mettre quelques lignes de présentation à mon profile. Je n’ai pas trouvé avec pinafore. J’ai donc utilisé tusky sur mon ordiphone qui le permet.

Aprés ces quelques obstacle on peut utiliser ce compte. Il faut bien sûr commencer à ajouter un compte pour que la fédération commence à fonctionner. L’interface pinafore demande un peu de temps d’adaptation. Elle est brute mais fonctionne.

Autohébergement

Le but de mon test était de surveiller l’usage de mon disque et de voir si cela pouvait tourner sur mon petit serveur personnel. Trés vite j’ai remarqué que la base de donnée commençait à s’affoler alors que je n’avais pas beaucoup d’activité. J’avais l’impression qu’il cherchait à mettre tout le fédiverse dans la table accounts. Je pensais qu’il avait besoin uniquement des comptes avec lesquels j’intervenais. Un rapide contrôle dans cette table me montre qu’il met beaucoup plus de comptes inutilement.  Cela gonfle la base de donnée alors que je ne fait rien. En plus le répertoire /home/yunohost.app/gotosocial commence à gonfler et prendre de plus en plus de place.

Résultat du test

J’ai décidé de ne pas utiliser gotosocial pour l’instant pour mon instance personnelle.

  • Prend trop de place disque même si l’activité est réduite. (répertoire + base de donnée). A l’heure ou l’écrit le développeur est en train d’écrire des fonctionnalités pour purger des choses et cela va être implémenté dans la prochaine version 0.7
  • Il manque des fonctionnalités trés basiques comme la gestion des comptes (création de compte, validation de compte etc…) il faut le faire en ligne de commande.
  • Il manque une interface web. Gotosocial n’est qu’un serveur.B

Voilà quelques raisons qui m’ont poussé à attendre encore un peu. Ce logiciel est trop nouveau et manque de donctionnalités. Pourtant une belle communauté est en train de s’intéressé à cet outil.

Le protocole zot

Moins connu que son petit frère ActivityPub le protocole zot lui ressemble beaucoup. La principale différence est que zot va beaucoup plus loin dans la sécurité et la nomadicité.

Hubzilla utilise zot à la base.

Cet article ne sera pas trés technique. Si vous voulez approfondir je vous envoie tout de suite sur la page https://zotlabs.org/help/fr/developer/zot_protocol

Identité nomade

Zot fait plein de chose mais sa principale caractéristique est l’identité nomade. Cela veut dire que votre identité n’est pas lié à un site ou une url. Vous avez bien sûr un site principale et un identifiant qui ressemble à utilisateur@site.ltd par exemple mon comte est tofeo1@zap.dog. Mais vous pouvez cloner votre compte ou le déménager sur un autre site utilisant ce protocole. Par exemple j’ai ouvert un clone sur le site misty.casa et mon identifiant tofeo@misty.casa est un clone. Je peux donc utiliser un site ou l’autre et tout sera cloner. Je peux aussi décider de fermer le premier site.

L’identité nomade a un gros avantage. Si le premier site ferme ou si l’administrateur ferme votre compte ou si on vous censure, pas de soucis vous continuer votre vie numérique sur d’autres sites.

Vos données vous en êtes vraiment propriétaire

Vous maitrisez de façon beaucoup plus fine votre sécurité, votre confidentialité. Vous pouvez maitriser qui peut vous lire ou pas qui peut répondre ou pas de façon trés détaillée.

Quelques applications

La plus ancienne application utilisant zot est Hubzilla qui depuis quelques années offre une quantité de services tel que un réseau social, agenda, album photo, wiki, cms etc… Des plugins permettent d’ajouter des fonctionnalités comme par exemple l’ouverture à d’autres protocoles comme Diapora, ActivityPub ou d’autres

Zap est plus orienté réseau social. Il est nativement ouvert au fédiverse et donc il sera aisé de communiquer avec des comptes peertubes, Mastodon ou Pixelfed par exemple.
Mistpark a été le 2e projet majeur du fédiverse. Il a été lancé en juillet 2010. Le premier projet a été OpenMicroBlog in 2008 (qui est devenu StatusNet puis gnusocial). Avec les années Mistpark a évolué.

Misty offre une expéreience similaire aux grands réseau comme facebook mais avec une vraie confidentialité et sécurité. Misty un logiciel libre que vous pouvez installer et même améliorer.

Ajout d’un service ftp

Aprés le déménagement de ce site, il fallait ajouter des extensions mais il fallait un compte ftp. Alors il a fallut installer un serveur ftp.

Si cela peut aider quelqu’un voici le tuto

Installation

sudo apt-get install vsftpd

configuration

sudo nano /etc/vsftpd.conf

Voici un exemple pour donner à chaque compte de la machine un compte ftp

anonymous_enable=NO
local_enable=YES
write_enable=YES 
chroot_local_user=YES
chroot_list_enable=NO 

Relancer le service

sudo systemctl restart vsftpd

Voilà une bonne chose de faite. J’ai pu ajouté un plugin ActivityPub. Alors pour mes anciens abonnés je ne suis pas sûr que ça fonctionne. Si jamais désabonnez vous puis réabonnez vous.

Comment faire : Le compte est @tofeo ou https://counter.fedi.live/@tofeo

copiez ce compte et coller le dans la boite de recherche. Normalement vous devriez trouver le compte. Vous pouvez l’ajouter. Avantage : Vous pouvez commenter directement depuis votre compte Mastodon ou pleroma ou autre. Merci de commenter depuis votre compte fediverse pour valider l’installation.