telecomunication

The meta-federated social network

Today’s social network are all introvert in a way or an other at varying degrees. Some are fully centralized where interaction is done only with users from the same network and server. Some are decentralized and interactions occur between users on the same network spread on different servers. Some others go even further and let interactions occur between users from different networks and servers. This is the federation. Networks falling in the last category are few and a real federation is not there yet.

The fediverse is not federated

Networks should settle on a common protocol in order to understand each other. This certainly won’t happen. Years have passed and no unified protocol have been defined yet. Who said OStatus? XMPP you say?

I might say that each network speaks its own language and doesn’t do any effort to learn a foreign one. It eventually learns a word or two as a second languages like « Hello », and « show me your picture pelase ». Please take note of the typo the the second sentence.

A huge hindrance to federation on the one hand is jailing networks like the Eff, Tee or Gee+ ones that are completely centralized and introverts by design. On the other hand federated networks provide the poorest and outdated documentation possible making it difficult for other developers to bypass the lack of a standard protocol.

The current state of things is that if a network talks to another, the communication is poor. For example, a user from GNU Social can subscribe to a user from diaspora* but not the inverse. More than that, the GNU Social user would stop receiving updates from that diaspora* user after a period of time.

You cannot subscribe to a user living in a jail network.

There exist bridges that allows a user post on a jail network and have his updates mirrored on an open network and vice versa. Even though, you still need to have two accounts to use a bridge.

My proposition

I propose to create a network that is polyglot. A network that thinks in its own way and expresses itself in the language of the one it communicates with. Lets name this social network The Polyglot.

A polyglot account would provide access to as many networks as network-languages it can speak. E.g. A polyglot account gives an account on GNU Social, diaspora*, Redmatrix, pump.io, friendica, and XMPP all in the same place under one user identifier. Speak to it in OStatus, it replies in OStatus. Ask it in pump.io, it answers in pump.io.

The polyglot, like humans, can understand (read-only) what jail networks say, but is too afraid to speak to them. It may resort to brokers or intermediaries to speak to them.

How to achieve this is rather simple. The polyglot needs to know the basics of all the networks-languages it wants to talk to. Those basics are:

  1. Get a user’s profile including his avatar, header, bio, location, email and URL
  2. Get a user’s publications. Also known as notices, dents, updates, statuses, queets, tweets, etc.
  3. Post a publication

These basics can be extended by basics level 2:

  1. Post a reply
  2. Get replies to a notice.

A post has a textual content, a posting user, a created at date and can have a type or not. It has also many meta-data.

A reply is a post that replies to another post. Depending on the network, a reply may be considered a comment.

The polyglot is intelligent enough to understand if it dealing with posts, replies, comments, photos, videos, check-ins or a personalized post type.

When the polyglots learns how to talk to enough networks, it can then formulate complex sentences and take complex actions like one-click remote subscriptions, reply to any post anywhere or populate a user photo gallery from a user on a network with no gallery notion. It is real smart a polyglot, isn’t it?

On a more technical side this polyglot should know all the important API end-points and how to use them. The polyglot should be developed in Object Oriented Programming and makes extensive use of Inheritance and abstraction.

This network is better written in a framework like symfony2 so it benefits from a strong MVC architecture, routing and templating. By templating I mean it either replies in HTML5, JSON, plain XML, Atom, RSS, RSS2, ActivityStream or anything.

Lets say we have an abstract base class Polyglot defining all the vital and necessary operations. This is what I referred to as thinking in its own way. The common parts would take care of storing updates, profile information and all the data in a unified and structured way. The remaining methods will all be abstract, obliging any class inheriting from it to implement the basic operation we want.

What I want to come to is that if we need our polyglot to speak a new network-language, we just create a new class defining how those basic operations work on that new network.

When we have all the data we want, we do what ever we want with it like translating it to other networks in their own languages.

For jail networks, we only need an API key and secret that would power a broker. This broker will get a list of users, read what they say, and replicate their statements locally. In other words, the broker monitors the subscription process and look for all the remote that are in the jail it is in charge of, and dresses a list of them. It will then, depending on the configuration of the local server, retrieve all the updates and data of the selected users in real-time, near real-time or at intervals. Once the brokers does its work, the polyglot knows what the jailed users said, and inform its local users. Local users might also ask the broker to transmit messages to jailed users.

Practically, you might subscribe to @user@twitter.com, mention him and the broker will take care of informing the polyglot and thus the local user of all what @user@twitter.com says, and even transmit queets to him inform tweets. Obviously, those tweet will be posted by a bot, the broker, and contain the original user username and all the data needed by the jail network in the format it wants. Given enough permissions, the broker can do the same for any network of any kind as long as it has public API or is decentralized.

Eventual problem we might face

We might have a problem if two networks use the same API end point while using different data structure and format. API end points are the principal indicator of the protocol. If a social network doesn’t identify itself in the headers, which certainly no network does, then there is no other way than the API end point to identify it. This can be problematic. Really.

An eventual solution is to give a Schrodinger reply. We first determine all networks using this API endpoint and generate a response to all of them. Then if all those networks use the same data structure. e.g. all use JSON, try to put somehow all the response one after the other hoping the network would choose the right one for it. If they use different data structure, it is more problematic. We may give a response using some kind of separator, or multiple successive replies. If the network doesn’t understand the response will drop it but hopefully takes the next one in consideration.

A real solution is prefixing APIs with the name of the protocol. Instead of having example.com/api/ as the base, we would have example.com/ostatus and example.com/diaspora as bases. This is possible since networks have absolutely no clue on how that base should look like and just search for it in the <head> section of a DOM page.

Conclusion

Only a polyglot can decide what language (protocol) is the most practical and efficient. So while nobody knows what any protocol should look like, how efficient it should be federation wise, lets all feed our polyglot so it tells us. This proposition is practical and feasible. Clients like Andstatus can operate on many networks, but they don’t do so under one and same identity.

 

Update

Friendica apparently does most of what I describe and is the most federated. It can interact with, GNU Social, diaspora, redmatrix and itself. Why isn’t as wide spread as others?

INWI lance le service Twitter par SMS – Maroc

INWI, vien de lancer le service Twitter par SMS. Se service ne requiert aucun abonnement spésial, tout comme elle a déjà fait avec Facebook.

Activation du service (selon INWI)

Vous pouvez activer ce service via SMS ou à partir de votre page Twitter. Il vous suffit de suivre ces étapes :

Via SMS :

  • Envoyez  » commencer  » par SMS au 404 pour recevoir le message de bienvenue et poursuivre votre inscription.
  • Si vous avez déjà un compte Twitter, répondez avec votre identifiant et votre mot de passe. Ensuite, envoyez un message au 404 pour confirmer votre inscription.
  • Si vous êtes un nouvel utilisateur, répondez avec « inscrire ». Créez votre identifiant et votre mot de passe. Ensuite, envoyez un message au 404 pour confirmer votre inscription.

Via web :

  • Connectez-vous à votre compte personnel Twitter, puis sélectionnez l’option « Mobile »,
  • Sélectionnez « Maroc » puis introduisez votre numéro de téléphone, et choisissez inwi comme opérateur,
  • Envoyez le mot clé « GO » par SMS au 404. Vous recevrez par la suite un SMS de confirmation

Utilisation

Si vous avez un compte en français : (si non il faut traduire en anglais)

Pour poster un tweet Envoyez par exemple: Je suis à Rabat ! Au 404
Activer toutes les notifications SMS Envoyez le mot clé « on »
Désactiver toutes les notifications SMS Envoyez le mot clé « off »
Suivre un utilisateur Envoyez « Suivre pseudo »
Arrêter utilisateur Envoyez « desabonner pseudo »
Activer les notifications SMS pour un utilisateur spécifique Envoyez le mot clé « on pseudo»
Désactiver les notifications SMS pour un compte spécifique Envoyez le mot clé « off pseudo»
Obtenir le dernier tweet d’un utilisateur Envoyez « Obtenir pseudo »
Retweeter le dernier tweet d’un utilisateur Envoyez « RT pseudo »
Envoyer un message privé à un utilisateur Envoyer « MP pseudo votre-message »

Sécuriser son compte facebook.

Plusieurs sont ceux qui se font voler leurs comptes facebook avec différente manières. La méthode la plus connue est le phishing.

En gros, cette dernière méthode consiste à envoyer à la victime une fausse page de connexion facebook. La victime doit alors enter ses identifiants sur cette fausse page qui se charge de les récupérer et redirige la victime vers un autre contenu.

Facebook a donc pensé à nous et a mis au point un système de sécurité, que je trouve assez bien fait. Ce système consiste à vous envoyer un SMS sur votre mobile contenant un code de vérification, s’il s’agit d’une connexion à partir d’une machine ne figurant pas dans votre liste de machines reconnues. Ce code est alors nécessaire en plus du mot de passe pour pouvoir se connecter sur le compte. Une sécurité bien accrue.

Ce qui est bien avec ce système c’est que même si quelqu’un connait votre mot de passe, il ne pourra se connecter sur votre compte, car il ne dispose pas du code de vérification envoyé par SMS sur votre mobile.

Pré-requis

Vous devez avoir un mobile lié a votre compte.

Pour moi, j’ai simplement envoyé ‘F’ au 600, puis j’ai rentré le code reçu dans « Paramètre de compte » onglet « Mobile ».

Association mobile facebookVous trouverez des informations supplémentaires pour lier votre mobile dans cette même section si ce que j’ai dit plus haut ne marche pas.

Activé la sécurité

Pour activer cette sécurité, rendez-vous dans les paramètres de compte. Allez ensuite dans l’onglet sécurité et cliquez sur « Approbation de connexion ». Cochez la case et enregistrez les modifications et le tour est joué.

J’en profite aussi pour vous conseiller de vous faire notifier par e-mail à chaque connexion. On ne sait jamais, un portable déchargé au mauvais moment. Activez aussi la navigation sécurisé. Elle vous permettra d’éviter firesheep et ses frères (Un outil qui scanne un réseau local et fait des choses pas trop bien avec votre compte) Ces deux options sont juste en haut de l’entrée de l’approbation. Ce sont les deux premiers paramètres comme sur la figure suivante.

Activation sécurité facebook

Vous pouvez gérer la liste des appareils reconnus (bah oui, les téléphones, tablettes et enfin les ordinateurs qui peuvent se connecter sur votre compte sans vérification). C’est très utile si vous aviez eu confiance en une mauvaise personne.

Appareils reconnus facebook

Mis à jour du 09/09/2011 :

Si vous n’arrivez pas a supprimer un appareil, il est fort probable que se soit Internet explorer la source du probleme. Esseyez donc avec Google Chrome, Firefox, Opera ou Safari.

Et voilà, votre compte est hautement sécurisé. Vous n’avez plus de raisons pour venir pleurnicher pour un compte volé. Car même en possession de votre mot de passe, le pirate, ou hacker ne peut utiliser votre compte.

Partagez cet article avec vos amis pour qu’ils soient eux aussi à l’abri. Ils vous seront très reconnaissant et moi aussi d’ailleurs.

Je suis ouvert a toute vos questions et observations.

QR code : Lecture, création et utilisation

Les QR code sont de plus en plus utilisé de nos jours.

En effet un QR code est comme un code barre mais en 2D. Il contient donc beacoup plus d’informations. Il contient 250 caractères pour être plus précis.

Un QR code ressemble a ceci :

Dragnucs mohamed touhami mahdiCette image contien des information sur moi, tel que mon nom et mon emai.

Utilisation d’un code QR

Un code QR a plusieur utilisation. La plus courrante est celle ou on fournit des liens de téléchargement d’applications pour mobile. Des URL sur des magazines. Mais il existe d’autre utilisations diverse et variés. Certin internautre préfére la mettre dans leur image de profile. Comme ça, ils leur information de contacte sont plus façilement repérable. Il y a aussi des société qui les mette dans leur produits.

Voici quelques exemples :

Lire un QR code

Pour lire un code QR, il faut avoir un smartphone sur lequel est installer un logiciel qui permet de les lire tel que RedLaser pour iPhone, QR droid pour android et finnallement pour nokia qrReader, scanLife 2D barcode reader et UpCode
Il suffit de lancer l’application sur le mobile et de photographier avec le code sur un ecran ou directement sur un produit physique. L’application annalyse le code pour savoire si c’est une URL, un numéro de téléphone, un SMS ou du texte.

Note : Ces logiciels lisent également le code barre simple et autres type de codes.

lecture code QR

Création d’un code QR

Pour créer un code QR il y a de outis gratuit et façile d’utilisation. Le plus façile et qui permet plsu d’option est qrcode.kaywa.com, c’est celui que j’utilse pour créer les meins. C’est d’ailleur avec lui que j’ai créer le code qr de l’exemple si-dessus.

Voici d’autres liens pour créer des codes QR.
Générateur en ligne de CodeQR
Création gratuite de Codes QR
Générateur de codes Datamatrix

Il existe aussi un plugins pour firefox : Mobile barcoder

Et même une application facebook Application Facebook ZXing

Je peu vous donner des invitations Google+

Le nouveau service de google, à savoir google+ est un réseaux social encore en phase éxpérimentale. Mais il est déjà bien puissant. Il compte déjà plus d’un millions de memebrs. Il faut dire que c’est un enorme exploit que de réunir tout ce monde en si peu de temps.

Comme Google+ est encore en expérimentation, Google a décidé de restreindre l’accés à ce service. Mais ils ont tout de même pensé mettre en place un systeme d’invitation.

Si vous voulez rejoindre Google+, laissez votre e-mail en commentaire et je vais vous envoyer une invitation le plus vite possible.

 

Nouveau (6/08/2011)

Suivez simplement ce lien pour vous inscrire : par ici

 

Vous n’attendrais plus que je vous invite manuellemnt. Ce sera donc instantané. Super non ?