Sheeva plug commandé

Bon allez trêve de bavardages, passons aux choses sérieuses ! Je viens  de commander un Sheeva Plug ainsi que deux cartes de boot avec un OS différent chacune : Debian et Ubuntu.  Une fois la boîte reçue, j’aurais deux objectifs :

  1. Installer les logiciels cités dans mon post précédent.
  2. Faire tourner Diaspora.

En attendant j’ai un peu parcouru le site plugcomputer.org pour trouver quelques ressource  et découvrir que ce que j’ai décrit existe déjà ! Malheureusement ce sont tous des logiciels propriétaires…

  • Tonidoplug : semble être exactement ce que je propose mais en propriétaire (snif).
  • Pogoplug : idem mais avec un design plus sexy.
  • Quadaxis : idem mais peu de choses sont visibles.
  • Amahi : logiciel libre permetttant de mettre en place rapidement un serveur privé (plus orienté vers une utilisation entreprise avec blog interne, bug tracker, CRM etc..)
  • Le plugwiki : plein d’infos pour ceux que ça intéressent.

Bon voilà tout ça peut donner des idées. Je me lancerai dans une review quand je recevrai la bête !

Advertisements

Réseaux sociaux décentralisés : choix techniques

Maintenant parlons de choses un peu plus concrètes : quelles technos utiliser ?
Pour rendre ce scénario réalisable, voici les technos et logiciels que je propose :

  • Ubuntu 10.4 pour OS : La version EEEPC est très simple d’utilisation, si l’utilisateur doit s’en servir via une interface graphique cela sera plus agréable pour lui. A voir si le sheeva la supporte. D’après le site il y aurait une version 9.04 spécial pour Sheeva. A voir.
  • Lighttpd : serveur web léger pour accueillir les applications.
  • Django : c’est un très bon framework pour développer des applications webs. L’ajout de modules au sein de l’application est très aisé à réaliser.
  • Couchdb : base de données non relationelle réplicable facilement et gérant bien le versionnement. Ce qui à mon avis sera sans doute utile pour des cas d’utilisation plus évoluées.
  • jQuery : pour réaliser des interfaces sexys.

Ceci implique que le script d’installion  décrit dans le scénario d’utilisation effectuera les opérations suivantes :

  • installation lighttpd
  • installation démon lighttpd (pour le démarrer à chaque reboot du serveur)
  • installation couchdb
  • installation python
  • installation pil (pour gérer les images dans python)
  • installation django
  • installation jquery
  • installation neweb
  • Paramétrages lighttpd
  • Paramétrages couchdb
  • Paramétrages django
  • Paramétrages Newebe

Bon voilà il y a finalement peu de choses à faire. Je ne sais pas si j’aurais le temps de réaliser un premier prototype. J’aimerais bien et dans ce cas je proposerai les sources en accès libre dès les premières lignes de code.

Evidemment si Diaspora remplit déjà le scénario que je décris, je ne ferai rien et essaierai de contribuer directement à Diaspora. Au fait Diaspora c’est quoi ? C’est un réseau social avec serveur décentralisé développé par quatre étudiants américains. Beaucoup de choses sont promises sur le site web du projet mais pour l’instant rien n’apparait. Toutefois ils ont bien précisé que rien ne sortirait avant septembre. On espère que ça vaudra le coup et que je n’aurai plus à me préoccuper de ce sujet.

Réseaux sociaux décentralisés : scénario d’utilisation

A la suite de mes posts précédents sur les réseaux décentralisés, je me permets d’écrire un scénario d’utilisation de réseau social décentralisé. Ce scénario démarre par l’installation de l’outil utilisé jusqu’au premier partage d’informations.

Par commodité on appelera le logiciel utilisé Newebe (new web + newbe).

Résumé en étapes

  1. Installation
  2. Paramétrages
  3. Ajout de contact
  4. Partage et consultation

Prérequis

  • Connexion haut debit permanente ;
  • Ordinateur basse consommation ;
  • Ecran.

NB : L’ordinateur utilisé pour ce scénario sera le Sheeva Plug.


1. Installation (hardware)
L’installation hardware est simple mais onéreuse. Elle consiste à commander un ordinateur de type Sheeva plug, de le brancher et de lui raccorder un cable réseau.
On lui branche un écran pour l’installation du logiciel. L’écran n’aura plus d’utilité après.

1 bis. Installation (software)
L’utilisateur télécharge l’application depuis le Sheeva Plug puis lance le script d’installation. Il attend ensuite que l’application soit téléchargée puis installée.

2. Installation (paramétrages)
Le script d’installation termine par deux étapes :

  • Paramétrage des identifiants pour le compte d’administration. Ce compte permet de gérer l’ensemble des applications décentralisées installées sur le serveur. D’autre comptes pourront être créées pour n’autoriser que la consultation.
  • Affichage de l’url de connexion. Newebe étant une application web, il faudra utiliser une URL pour s’y connecter.

A partir de ce moment, l’application ne sera accédée que via un navigateur et non depuis le Sheeva Plug. L’écran devient donc inutile.

2 bis. Ajout d’applications
L’utilisateur s’authentifie via un écran de login classique.

Newebe offre un portail d’accueil permettant de sélectionner l’application à laquelle on souhaite accéder. Par défaut aucune application n’est disponible. L’utilisateur passe donc dans le Newebe store accessible via un bouton. Le store propose une série d’applications. L’utilisateur sélectionne une application. Newebe télécharge l’application puis l’installe. Elle est désormais disponible.

L’utilisateur installe une application permettant d’échanger des messages courts (équivalent de Twitter).

3. Ajout de contacts
L’utilisateur accède à sa page de contacts. Il enregistre les urls de ses contacts. Sa propre URL de contact est celle qui lui a été proposée au départ. Il indique à quelles applications ce contact aura accès.

4. Partage
L’utilisateur envoie son premier message partagé via un champ texte. Il apparait dans sa liste de messages échangés.

4 bis. Consultation
Un contact accepte la demande de notre utilisateur. Le contact envoie un message à son tour.
Le message apparait sur l’écran de l’utilisateur à la suite de son propre message.  La même série de message apparait sur l’écran du contact.

L’utilisateur consulte les mises à jours depuis son mobile ou d’un ordinateur ne lui appartenant pas.

Fin du scénario.


Conclusion
Ce scénario, certes un peu banal, décrit bien le fait que l’utilisation de ce type d’outils doit rester simple. Notamment dans l’étape d’inscription/installation. Il est vrai qu’on ne pourra envisager faire plus simple que de créer un compte Facebook. Toutefois, les réseaux sociaux à serveur décentralisés devront promettre une prise en main aisée et une installation très facile sans quoi ils ne seront jamais adoptés (notamment par les utilisateurs peu à l’aise avec l’informatique).

Reseaux sociaux décentralisés (résumé)

Voici un post éclair résumant mon post précédent sur les réseaux sociaux décentralisés. Pas mal de mes amis l’ont jugé trop long, celui ci sera donc plus facile à lire.

Le problème
Les réseaux sociaux (Facebook, Twitter…) permettent de faire plein de choses formidables et de partager beaucoup d’informations personnelles avec ses amis. Malheureusement toutes les infos déposées sur ces sites sont stockées sur des ordinateurs appartenant à des inconnus. Elles peuvent donc être utilisées de manière non désirée et sans que cela soit dit.

La solution
Plutôt que de faire transiter les informations par un serveur appartenant à un inconnu, il serait plus logique de stocker les informations chez soit et de partager ses informations en se connectant directement chez ses amis, un peu comme on le fait avec bittorent.
J’installe un serveur chez moi. Mes amis installe un serveur chez eux. Je désigne quel serveur (quel ami) peut accéder aux données, j’indique à quel serveur (à quel ami) je voudrais que le mien se connecte pour collecter ses données. Mon serveur me fournit une page web résumant l’activité de mes amis.  Je consulte ainsi les données partagées, et je publie les informations que je veux partager.

On conserve donc les mêmes avantages qu’avec Facebook tout en préservant la confidentialité des données mais au prix d’un peu de paramétrages.