Unhosted

Aventures Unhosted

Une traduction approximative du Journal de bord officiel du No Cookie Crew

d’après Unhosted Adventures
by Michiel B. de Jong

1. Les Logiciels hébergés menacent la liberté du logiciel

Le système d'exploitation Linux et le navigateur Firefox ont une chose importante en commun : ce sont des logiciels libres. En un sens, ils appartiennent à l'humanité tout entière. Tous deux ont joué un rôle important dans la résolution de la situation qui prévalait dans les années 90, où il était devenu à peu près impossible de créer ou d'utiliser des logiciels sans payer un tribut à l'empire Microsoft.

La possibilité de créer librement, améliorer, partager et utiliser des logiciels est appelée “Logiciels Libre” (dans le sens de liberté). Cette idée, par exemple, peut-être comparé à la liberté de la presse. Et au fil du temps le logiciel devient de plus en plus présent au sein de notre société, et donc, le Logiciel Libre aussi. Nous avons parcouru un long chemin depuis que le mouvement du logiciel libre a commencé, mais au cours des cinq ou dix dernières années, une nouvelle menace se profile : le logiciel hébergé.

Lorsque vous utilisez votre ordinateur, vous utilisez des logiciels qui s'exécutent sur votre ordinateur, mais vous utilisez aussi des logiciel qui s'exécutent depuis des serveurs. Les serveurs sont des ordinateurs semblables à ceux que nous pouvons utiliser tous les jours, à la différence près qu'ils sont bien rangés et empilés dans des racks au sein de grandes chambres climatisées, dépouillés de leur écran et de leur clavier, ne gardant comme seule interface qu'un câble réseau. À Chaque fois que vous vous “connectez”, votre ordinateur rentre en communication avec un ou plusieurs de ces serveurs à travers le réseau Internet, ce sont eux qui fournissent ces choses que l'on qualifie de sites Web. Malheureusement, une grande majorité de ces serveurs sont contrôlés par de puissantes sociétés tel que Google, Facebook et Apple, et de ce fait, ces entreprises exerce un puissant contrôle sur une grande partie de ce qui transite en ligne.

Cela signifie que même si nous pouvons exécuter Linux et Firefox sur notre propre ordinateur, nous (en tant qu'humanité) ne sommes pas encore totalement libre pour créer, améliorer, partager et utiliser n'importe quel logiciel. Dans presque tout ce que nous pouvons faire avec nos ordinateurs, nous devons passer par ces sociétés qui contrôlent ces logiciels hébergés et qui régissent actuellement une part majeure et centralisée de notre infrastructure mondiale. Ces entreprises elles-mêmes ne sont pas à blâmer pour cela, ce sont des entités inanimées dont le but est de faire de l'argent en proposant des produits attractifs. Ce qui est cruellement défaillant actuellement ce sont les offres non-commerciales alternatives à ces services.

Un serveur par personne

La solution pour reprendre la maîtrise de ces logiciels hébergés à travers notre infrastructure est assez simple : il nous faut décentraliser le pouvoir. Tout comme la liberté de la presse peut être réalisé en donnant à chacun les outils pour imprimer et distribuer des brochures “clandestines” (underground), nous pouvons redonner aux gens leur liberté dans l'utilisation de leur logiciels en leur apprenant à contrôler leur propre serveur. La construction d'un système d'exploitation tel que Linux ou d'un navigateur comme Firefox est assez complexe, et il a fallu réunir de nombreux ingénieurs logiciels à travers le monde, et ce pendant de nombreuses années pour y parvenir. Mais construire un serveur web pour que chacun puisse avoir la liberté de choisir les logiciels dont il aura besoin en ligne n'est pas si difficile que ça : du moins, d'un point de vue technique, c'est un problème résolu. Le véritable défi, lui, est plutôt d'ordre organisationnel.

L'effet de réseau

Beaucoup de gens travaillent actuellement sur le développement de logiciels du genre “serveurs personnels”. Beaucoup d'entre eux proposent déjà des solutions fonctionnelles. Aujourd'hui, déjà, vous pouvez rendre visite à la plupart de ces projets, suivre les instructions d'installation, et mettre ainsi en place votre propre serveur personnel, et devenir indépendant des monopole liés aux utilisations de logiciels hébergés. Mais il existe encore un certains nombre de raisons pour lesquelles peu de gens le font. Et cela en raison de “l'effet de réseau”.

Premièrement, il y a la dispersion ; l'ensemble des contributions de la communauté s'éparpillent à travers une multitude de projets indépendants. Mais cela n'est pas un frein, la plupart des projets publient déjà des versions fonctionnelles. Admettons que ce ne soit pas un problème et imaginons que vous choisissiez le logiciel de serveur personnel du projet X, vous l'installez et commencez à l'utiliser.

Et là, un deuxième problème va apparaître : si de mon côté je choisi d'utiliser le logiciel du projet Y, et que je souhaite maintenant communiquer avec vous, cela ne fonctionnera que si ces deux projets ont fait l'effort de rendre leurs solutions compatibles les unes avec les autres.

Heureusement, encore une fois, dans la pratique, la plupart de ces projets de serveurs personnels ont conscience de cette nécessité, et coopèrent pour élaborer des protocoles normalisés qui décrivent la manière dont ces serveurs doivent interagir les uns avec les autres. Mais ces protocoles ne couvrent souvent qu'une partie des fonctionnalité que proposent ces serveurs personnels, on se retrouve alors face à d'interminables discussions et à la multiplication des versions (troisième problème). Cela veut dire que l'on voit maintenant certains projets de serveur personnels se regrouper pour plus d’efficacité. Du coup votre serveur et le mien n'auront pas seulement la nécessité d'utiliser les mêmes protocoles pour communiquer, ils devront également appartenir au même groupe de projets.

Mais le quatrième problème est probablement plus inquiétant que les trois précédents réunis : comme jusqu'à présent, seuls les “pionniers” (early adopters) ont mis en place leur propre serveur, les chances de pouvoir communiquer avec la majorité des autres personnes qui utilisent (encore) les plateformes logicielles des grands monopoles du web 2.0 sont alors maigres. À l'exception notable de Friendica, la plupart des projets de serveurs personnels ne vous fournissent pas réellement les moyens de basculer sur leur serveur sans entraîner vos amis à basculer eux aussi sur un serveur appartenant à un groupe de projets similaires.

Serveurs simples + applications Unhosted

Alors, comment pouvons-nous résoudre tous ces problèmes? Il existe un trop grand nombre d'applications différentes pour choisir, et nous avons atteint une situation où le choix des application que vous souhaitez utiliser vous est dicté, diktat conséquent de cet effet de réseau, — avec quelles personnes serez-vous en mesure de communiquer ? —. La réponse, ou du moins la réponse que nous proposons dans la série d'articles de ce blog, est de sortir l'application hors du serveur, pour la placer dans le navigateur.

Les navigateurs sont devenus aujourd'hui des environnements très puissants, pas seulement pour l'affichage des pages Web, mais également pour exécuter des applications logicielles complètes. Nous les appelons “applications web Unhosted”, parce qu'elles ne sont pas hébergés sur un serveur, mais qu'elles sont encore des applications Web et non des applications de bureau, et qu'elles sont écrites en html, css et javascript, et qu'elles ne peuvent fonctionner qu'à l'intérieur d'un navigateur.

Puisque nous enlevons toutes les fonctionnalités de l'application contenu dans le serveur personnel pour les placer dans le navigateur, le serveur personnel devient alors très simple. Il se réduit essentiellement à une passerelle permettant de prendre en charge les connexions entre les applications web Unhosted et le monde extérieur. Et si un message entrant arrive alors que l'utilisateur n'a aucune application web Unhosted de connectée, celui-ci se place alors en file d'attente et patiente en sécurité jusqu'à la prochaine connexion de l'utilisateur.

Les applications web Unhosted manquent d'un espace adapté pour stocker les précieuses données de l'utilisateur, les serveurs sont très bon dans ce rôle là. Donc, séparément de la prise en charge des connexions avec le monde extérieur, le serveur peut aussi être utilisé comme espace de stockage distant (Cloud) pour vos applications Web Unhosted. Cela permet de s'assurer que vos données sont en sécurité si votre appareil venait à se casser ou que vous le perdiez, et de plus, vous donnera la possibilité de synchroniser facilement ces données entre plusieurs appareils. Nous avons développé le protocole RemoteStorage pour cela, et l'avons récemment soumis comme document de travail à l'IETF.

Les applications web Unhosted que nous utilisons peuvent être indépendantes de notre serveur personnel. Elles peuvent provenir de n'importe quelle source fiable, et peuvent être exécutées dans notre navigateur, sans le besoin de choisir une application spécifique au moment ou nous faisons le choix et l'installation du logiciel pour notre serveur personnel. C'est ce détachement qui va permettre en fin de compte de choisir librement :

No Cookie Crew

Ce blog est le manuel officiel d'un groupe de pionniers des web-apps Unhosted dénomé No Cookie Crew. Nous nous appelons ainsi parce que nous avons désactivé les cookies de notre navigateur, y compris les cookies de premier niveau (first-party cookies). Nous avons configuré notre navigateur de manière à ne laisser que certaines exceptions pour une poignée de cookies de second niveau (second-party cookies). Pour vous donner un exemple : si vous publiez quelque chose "sur" Twitter, alors Twitter agit comme un tiers, parce qu'ils ne sont pas, en tant que société, le public visé. Mais si vous envoyez une question au support utilisateur de Twitter, alors vous communiquer “avec” eux, en tant qu'interlocuteur (second niveau). D'autres exemples d'interactions de second niveau sont les banques en ligne, l'enregistrement en ligne sur le site Web d'une compagnie aérienne, ou l'achat d'un ebook chez Amazon. Par contre, si vous vous connectez à eBay pour acheter une guitare électrique chez un revendeur de guitare, alors eBay n'est plus qu'un tiers dans cette interaction.

Il y a des situations où passer par un tiers est inévitable, par exemple, pour certains revendeurs de guitares qui ne vendent que sur eBay, ou cet ami en particulier qui ne laisse des messages que sur Facebook. Pour chacun de ces “univers”, nous allons développer des modules d'applications ”passerello-sceptique” que nous allons pouvoir ajouter à notre serveur personnel. De manière général, ce procédé nécessitera d'avoir un compte “fantoche” pour chaque univers, compte que ce module passerelle pourra contrôler. Pour certains, il sera nécessaire d'utiliser une clé API avant que votre serveur personnel puisse se connecter pour contrôler votre compte “fantoche”, mais celles-ci sont généralement faciles à obtenir. Pour les personnes de chacun de ces “univers”, votre compte “fantoche” se comportera comme n'importe quel autre compte utilisateur. Quant au module passerelle installé sur votre serveur personnel, il permettra aux applications web Unhosted de le contrôler et de «voir» ce qu'il verra.

D'aucune manière nous ne forcerons les autres personnes à changer leur façon de communiquer avec nous. Une partie de l'objectif de cet exercice est de démontrer qu'il est possible de se déconnecter complètement du Web 2.0 sans avoir à perdre le contact avec ceux qui y restent connectés.

Pour parfaire notre plaisir, nous allons également désactivé Flash, Quicktime, et d'autres plugins propriétaires, et nous n'utiliserons pas d'applications de bureau.

Chaque fois que nous aurons à contrevenir à ces règles, nous ferons une note spécifique et nous essayerons d'en tirer des leçons. Et avant que vous posiez la question, jusqu'à aujourd'hui, le No Cookie Crew n'a toujours qu'un seul membre: moi. :) Se déconnecter du Web 2.0 est actuellement une opération qui occupe presque à plein temps, car tout ce que vous allez faire va tout d'abord nécessité un script que vous allez devoir écrire, télécharger et exécuter. Mais si tout cela vous semble distrayant, vous êtes bien sûrs invités à nous rejoindre! Dans le cas contraire, il vous est tout à fait possible de suivre ce blog du coin de l'œil.

Ce blog

Chaque billet de cette série sera écrit comme un tutoriel, incluant les extraits de code, pour que vous puissiez suivre en utilisant les applications web Unhosted et les outils de serveur personnel dans votre propre navigateur et sur votre propre serveur. Nous allons principalement utiliser nodejs côté serveur. Nous allons publier un épisode tous les mardis. Comme nous allons accumuler des ressources matérielle et discuter de divers sujets, nous allons construire le manuel officiel du No Cookie Crew. Nous espérons, “webnautes” passionnés, que même si vous ne faites pas le grand saut pour rejoindre le No Cookie Crew, vous trouverez ici de nombreux sujets pertinents et variés, mais aussi de la nourriture pour la pensée. Nous allons commencer la semaine prochaine par la construction d'un éditeur de texte Unhosted en partant de zéro. C'est l'éditeur que j'utilise en ce moment pour écrire ce billet, et c'est en effet une application web Unhosted : il n'est hébergé sur aucun serveur.

Depuis deux ans déjà nos recherches sur les applications web Unhosted sont entièrement financées par des dons de nombreuses personnes impressionnantes et généreuses, ainsi que plusieurs sociétés et fondations. Cette série est un compte rendu de tous les trucs et idées que nous avons découvert jusqu'à présent.

Commentaires bienvenus!

Suivant : Un éditeur Unhosted