Tweekers' Blog

Aller au contenu | Aller au menu | Aller à la recherche

Balise - Planet-Libre

Fil des billets

Quel avenir pour la video en ligne ?

La video en ligne est un domaine ou beaucoup de travail reste a faire. D'une part parce que ce moyen a de bonnes chances, à terme, de remplacer la télévision, et d'autre part parce que la situation actuelle est complètement absurde.
La suprématie de Flash a poussé de nombreux utilisateurs de logiciels libres a complètement tourner le dos a la vidéo en ligne, ce qui semble montrer qu'il y a un réel problème. Un utilisateur de logiciel libre ayant refusé d'installer le player Flash est tout autant, sinon encore plus, victime du coté propriétaire de ce format puisqu'il se voit interdit de 95% de la video en ligne. Certes il existe des solutions libres (gnash et swfdec) mais elles ne sont actuellement pas a la hauteur du logiciel d'Adobe et techniquement elles ne sont pas meilleures.
En 2009,soit plus de 15 ans après les premières video MPEG en plein écran, visionner une vidéo de qualité médiocre sur 1/8 de l'écran occupe entre 25% et 50% du temps de calcul d'un processeur moderne, voila où on en est arrivé...
Sur une machine plus modeste (le XO Laptop par exemple), visionner une video Flash dans le navigateur est juste impossible. Le format flv utilisé n'est pas en cause, celui est lisible par les lecteurs videos standards (totem, mplayer, vlc) sans aucun problème. C'est bien la lecture dans le navigateur qui pose un problème.
J'ai mis beaucoup d'espoirs dans le tag <video> implémenté dans le futur Firefox 3.5, afin de développer une alternative libre aux plateformes d'échange video, un peu comme ce que propose http://tinyvid.tv/ mais déployable sur n'importe quelle serveur aussi simplement qu'un Dotclear. Actuellement, j'ai principalement travaillé sur la récupération de video au format Flash via des scripts Python, ce qui n'est pas très compliqué mis a part pour le nouveau protocole rtmp qui pose énormément de problèmes. (Le même protocole utilisé pour débats de l'assemblée nationale).
La conversion dans un autre format, ne pose pas de problèmes non plus, donc il ne reste plus qu'a écrire l'interface Web pour regrouper tout cela. Mais avant de me lancer dans l'écriture de ce projet, j'ai bien évidemment voulu tester ce qui allait être la base de mon application : le tag <video>. J'ai malheureusement très vite déchanté, le support de la video par la beta de Firefox 3.1 est désastreux, avec une occupation du processeur allant de 50 à 70% sur un dual core (une charge partagée entre Firefox et Xorg sur GNU/Linux et limitée a Firefox sur Windows XP). Sur le XO Laptop, la lecture d'un ogg sur Firefox 3.1b3 occupe 100% du CPU avec un framerate d'environ 0.5 image par seconde ... Le bug est bien entendu connu comme on peut le constater sur le bugtracker de Mozilla ici ou ici. La question que je me pose actuellement est celle de savoir si je dois persévérer dans la conception de mon application avec l'espoir que le bug soit résolu pour la version finale de Firefox 3.5 (ce dont je doute) ou alors m'orienter vers d'autres solutions.
Je peux en effet me rediriger vers une solution utilisant le bon vieux tag <embed> qui n'a jamais posé de problèmes (puisque que ce sont des plugins qui vont s'occuper de la lecture et non le navigateur) ou encore, laisser tomber l'application en ligne pour uune application de bureau, comme ce que propose Miro mais avec la gestion de tous les principaux sites de streaming (youtube, dailymotion, wat.tv, videojug,etc ...). D'ailleurs mes essais sur ce domaine sont plutôt concluants, avec un programme qui permet de récupérer les video de Canal+. Capture-Canal_Plus_Ripper.png Ce script python est disponible ici et peut être démarré en exécutant openvish_gui.py (il faut patienter au démarrage pour la récupération des "chaines").
La vidéo sur le net, a encore beaucoup de chemin a faire avant de trouver une solution satisfaite pour l'utilisateur et tout espoir repose entièrement sur le logiciel libre étant donné la médiocrité proposée par le logiciel propriétaire (protocole RTMP, sites de VOD fonctionnant avec IE et WMP, etc...). Je relève aussi avec une certaine déception l'inutilité de nombreux détracteurs de Flash qui ont beau cracher sur les solutions existantes, n'apportent absolument rien comme solution libre. Si vous appréciez tant Richard Stallman, sachez que celui ci n'a pas formaté son système Unix propriétaire alors qu'il était en train de développer son système GNU !

HADOPI in the middle

Les réactions a la loi HADOPI ont été tellement nombreuses que j'ai jugé inutile de faire un billet la dessus étant donné que tout à déja été dit et que de toutes manières cette loi n'a pas changé le point de vue que j'ai depuis des années. Sur Internet et en particulier dans la communauté du logiciel libre, j'ai pu lire de très bons articles, beaucoup de chose inutiles (le blackout ... sérieusement, si vous voulez faire quelque chose d'utile passez tout en HTTPS , la au moins ça servira a quelque chose, un carré noir n'apportera rien a personne.) et quelques énormités. Ce sont donc ces quelques énormités ou plutôt une seule qui m'a poussé a écrire ce billet.
J'ai plusieurs fois lu des choses du genre "oh, le mouchard du gouvernement je m'en fous, je le mettrai dans une machine virtuelle et il verra rien", par exemple chez Swâmi Petaramesh.
Alors je vais pas y aller par quatres chemins, je vais juste montrer qu'une attaque du type man-in-the-middle est la chose la plus simple du monde a réaliser...
D'abord le concept : Sur votre réseau local, une machine veux attaquer le reste du réseau, l'attaquant va lancer des requêtes ARP sur l'ensemble des machines, en gros pour dire "coucou, je suis le routeur". Suite a cela, tout le trafic va passer par la machine de l'attaquant. Pour la démonstration, j'ai utilisé le logiciel ettercap qui facilite grandement la tache. Ettercap, en plus de réaliser l'attaque MITM a quelques fonctionnalités sympatiques, voyez plutôt le screenshot suivant (cliquez pour agrandir)

Capture-ettercap_NG-0.7.3.png

On voit non seulement la liste des sites visités par toutes les machines du réseau, mais aussi le mot de passe en clair des connections aux sites Web non-sécurisés.
Ce n'est qu'un exemple, il est possible de récupérer absolument toutes les données qui transitent sur le réseau (a l'aide de Wireshark par exemple).
Si vous voulez essayer, voila un tuto, qui explique bien mieux que moi : http://openmaniak.com/ettercap.php

Voila, tout ça pour dire que lorsque je vois des personnes prêtes à autoriser dans leur réseau domestique (que ce soit dans une machine virtuelle ou sur un vieux pc au fond du placard ...) un programme aussi dangereux et intrusif que celui que tout le monde imagine,cela me perturbe vraiment.
La seule présence de la Freebox chez moi (qui se met a jour toute seule, dont le code source est totalement fermé) me dérange suffisamment pour que je n'aille pas empirer les choses avec un logiciel manifestement mauvais pour moi même...
Un tel logiciel, si jamais il existe n'a rien a faire dans le réseau de toute personne qui attache un tant soit peu de valeurs au logiciel libre tellement ses principes en sont éloignés. J'espère que les internautes seront nombreux a faire preuve de désobéissance civile et refuseront, dans leur parc informatique entier, tout logiciel d'insécurisation imposé (ou fortement conseillé) par le gouvernement.

Je profite de ce billet pour soulever certaines questions a propos du chiffrement des sites Web. Est il vraiment nécessaire d'afficher un message d'erreur intimidant et faire cliquer 4 fois l'utilisateur dans Firefox a chaque fois que l'on a affaire a un site utilisant un certificat SSL auto-signé ? Je n'ai rien contre les organismes officiels délivrant des certificats, grâce a eux nous pouvons effectuer des achats sur internet et après tout c'est un peu Verisign qui a permis a Ubuntu de voir le jour. Mais je pense que les sites auto-signés doivent se démocratiser, Si les FAI ne voient que des informations chiffrées alors toute tentative de filtrage sera rendue inefficace. Aujourd'hui nous utilisons essentiellement pour le transfert de données le même schéma que celui de la carte postale : libre a la poste, aux facteurs de regarder les messages. Or dans la réalité nous n'envoyons presque pas de cartes postale, les lettres sont mises dans une enveloppe et ces enveloppes ne sont pas certifiées par un quelconque organisme délivrant des enveloppes payantes. Les correspondances n'en restent pas moins confidentielles. Tout comme les envois postaux, "l'enveloppe" doit se généraliser sur Internet, et les logiciels libres doivent êtres modifiés pour en faire leur comportement par défaut.

Lancement de Open Source Developer Network

Dans le précédent billet, j'exposais certaines difficultés que le développeur novice peut avoir lors d'une première approche dans le monde du logiciel libre.
Une des difficultés est de savoir ou trouver la documentation, car si l'on me dit RTFM je répondrais : WFP ? (Which F**king Paragraph ?).
L'autre rengaine courante est GIYF (Google Is Your Friend), et bien pas vraiment a vrai dire. Google est surtout très fort pour indexer tous les forums, toutes les mailings list, tous les blogs et s'il est facile de trouver des personnes qui ont le même problème que celui posé, il l'est déjà moins de trouver la bonne réponse.
Voila où OSDN (déformation du nom d'un célèbre site de documentation, d'un éditeur logiciel pas très apprécié dans les parages) rentre en jeu.
OSDN, ce n'est rien de bien compliqué techniquement : Un peu de HTML, et d'Ajax mais c'est surtout un travail de recherche et de classification. Cette page vise a regrouper toutes les pages de documentation de tous les langages et toutes les technologies Open Source. Oui, rien que ça... et la page n'a même pas un jour qu'elle commence déjà à être assez fournie.
La page comporte un moteur de recherche qui ira chercher uniquement sur le site en cours de consultation. (ou sur google.com/linux si aucune documentation n'est affichée)
Bien entendu je suis ouvert a toutes les suggestions, n'hésitez pas a m'envoyer dans les commentaires ou par mailavec le formulaire dédié les liens vers les documentations que vous jugez essentielles. Et ne soyez pas limités aux documentations officielles non plus, un bon tutoriel peut avoir sa place.
Aussi, si vous jugez l'organisation de l'arborescence inappropriée a certains endroits, n'hésitez pas a le signaler.
J'espère que cette page Web sera aussi utile pour vous qu'elle l'est déjà pour moi ;)

Des difficultés de la participation aux logiciels libres

L'idée de ce billet m'est venu a la suite de celui de xbright intitulé La difficulté d'exister pour les petits projets de logiciel libre ou son auteur met en avant le manque de contributeurs sur les petits projets Open Source. Hormis le fait d'écrire des rapport de bugs, je n'ai jamais réellement codé pour un projet libre existant, donc j'ai voulu tenter l'expérience en prenant comme projet Bluemindo, le player audio de xbright écrit en Python.
Récupérer un projet et se lancer dans l'analyse de son code source est une tâche très intimidante au premier abord, il faut consacrer un certain temps afin d'apprivoiser les sources, tester le programme, repérer quelle fonction fait quoi, visualiser l'architecture du logiciel. Toutes ces tâches n'existent pas lorsque l'on est le créateur d'un projet puisque l'on est parti de zéro pour arriver au résultat que l'on a en tête.
Il faut dire que les développeurs ne facilitent pas toujours la vie de ceux qui passent derrière. Les difficultés sont multiples : manque de commentaires dans le code, noms de variable peu explicites, identifiants des widgets du fichier Glade laissé avec leur valeurs par défaut (button1, progressbar3, .....).
Un code source ouvert se doit avant tout d'être clair et lisible. Eric S. Raymond évoque ce problème dans le livre "The cathedral and the bazaar" en disant que la clarté du code est plus importante que sa vitesse d'exécution. De mon point de vue, un nom de variable composé d'une seule lettre est toujours un mauvais nom de variable. C'est une perversion venue du monde obscur des mathématiques et qui n'a rien a faire dans la programmation. Les éditeurs de code source modernes supportent tous l'autocomplétion des noms de variable, donc il n'y a aucune raison pour ne pas utiliser des noms explicites qu'ils fassent 15 caractères ou plus.
Une fois que l'on a parcouru une bonne partie du code source de l'application, on commence a saisir le fonctionnement global, et on peut s'attaquer a l'écriture de code... Ouhla, pas si vite ... Ne perdez pas une seule minute a écrire la moindre ligne de code avant d'avoir obtenu l'accord de l'auteur. Open Source ne veux pas dire que c'est la fête et que chacun écrit ce qu'il veut dans un projet, ne contribuez pas avant d'avoir la bénédiction du "benevolent dictator for life", il m'est arrivé de soumettre des patchs qui n'ont pas été accepté et pour plusieurs raisons : l'auteur avait déjà codé la modification de son propre coté ou l'auteur a refusé l'intégration du patch. Ici, on voit la deuxième difficulté : le développeur principal, n'a de comptes a rendre a personne et il ne va pas précéder chaque patch de son cru par un rapport de bug sur sa forge.
J'ai beau avoir trainé dans le monde de l'open source quelques années, avoir quelques bonnes bases en programmation, j'ai toujours l'impression qu'il manque quelque chose d'essentiel afin se saisir complètement le mode de développement du logiciel libre. Les sources sont libres, oui très bien, mais est ce suffisant ? L'exemple de Rhythmbox nous prouve que non, Dans son billet Cyrille Borne exprime ses doutes quand a la viabilité d'un projet Open Source :

Il me semblait pourtant que l'un des intérêts de l'ouverture du code, c'était qu'en cas d'arrêt d'un développeur, un autre apparaît pour prendre la relève. Un système auquel je n'ai jamais cru, tant il est difficile dans le cas de l'écriture d'un code de repasser derrière, si bien que les gens préfèrent créer leur propre application.

Dans les commentaires de ce même billet, RunningTracker cerne très bien le problème :

il est (très) difficile de reprendre un logiciel développé par quelqu'un d'autre. C'est là où la documentation prend tout son sens. Une bonne documentation (avec schémas UML, explication des algos... etc) et un code bien commenté (ce qui est très rare...) facilitent grandement la compréhension et la reprise du code. Je pense qu'en tant que développeurs, nous devrions passer plus de temps sur ces deux aspects (même si c'est parfois rébarbatif).

Dans la communauté, personne ne pense a reprendre le développement de Rhythmbox, et on réfléchi déjà a son successeur. Je peux comprendre : s'il a déjà été compliqué de se plonger au coeur de Bluemindo qui est un projet jeune et écrit en Python, je n'imagine même pas quels efforts il est nécessaire de faire pour comprendre le fonctionnement de Rhythmbox qui est plus mature et codé en C.
La page concernant le développement de Rhythmbox ressemble plus a une mauvaise blague avec ses liens vers SVN et IRC. Avec ces deux éléments, il va être difficile d'aller très loin ...
Maintenant voila ce que je propose :
Utiliser Internet pour ce a quoi il a été construit a la base: permettre a des chercheurs de travailler ensemble. Partager les sources n'est pas suffisant, il faut aussi avoir un système collaboratif permettant d'étudier, d'analyser un projet libre. Il manque un outil qui aide a la compréhension de la programmation, parce qu'il y a un fossé qui est en train de se créer entre les programmeurs vétérans et les novices. Pour reprendre les concepts de Eric Raymond, les plans de la cathédrale doivent être rendus public et le bazaar doit être ordonné.
Il est aussi important a mes yeux d'avoir une documentation centrale, une mère de toutes les documentations, avec tous les langages, toutes les librairies, tous les outils de développement, avec en bonus des tutoriels et des exemples. En quelque sorte l'équivalent de MSDN pour le logiciel libre.
Une grande partie de la communauté reste bloquée dans le test de différentes distributions, la compilation de logiciels, et les rapports de bug. C'est bien mais j'ai envie que les choses aillent plus loin, et pour cela il faut que la marche qui sépare le simple utilisateur du réel contributeur soit plus simple a gravir.

Ubuntu n'est pas libre : Une affirmation absurde

Mettons les choses au clair, quand je dit "une affirmation absurde", cela ne signifie en aucun cas une affirmation fausse. Oui, Ubuntu contient du code fermé, et je veux ici montrer que se baser sur cette caractéristique du système pour le rejeter est totalement incohérent.

Tout d'abord il est bon de savoir quels sont précisément les logiciels installés contenant du code propriétaire. Pour cela j'ai lancé la commande vrms sur une installation fraiche d'Ubuntu 8.10 dans Virtual Box, le résultat est le suivant :

            Non-free packages installed on strider-vbox

fglrx-modaliases          Identifiers supported by the ATI graphics driver
human-icon-theme          Human Icon theme
linux-generic             Complete Generic Linux kernel
linux-restricted-modules- Non-free Linux 2.6.27 modules helper script
linux-restricted-modules- Restricted Linux modules for generic kernels
nvidia-173-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-177-modaliases     Modaliases for the NVIDIA binary X.Org driver
nvidia-71-modaliases      Modaliases for the NVIDIA binary X.Org driver
nvidia-96-modaliases      Modaliases for the NVIDIA binary X.Org driver
tangerine-icon-theme      Tangerine Icon theme

            Contrib packages installed on strider-vbox

nvidia-common             Find obsolete NVIDIA drivers

  10 non-free packages, 0.8% of 1201 installed packages.
  1 contrib packages, 0.1% of 1201 installed packages.


Parmi cette liste ,j'élimine d'emblée les deux thèmes d'icones : Human et Tangerine qui sont sous license Creative Commons Attribution-ShareAlike 2.5 et qui n'ont rien a bénéficier d'une license GPL. Pour les libristes les plus intransigeants rappelons que Stallman lui même ne tiens pas particulièrement a voir des fichiers autre que du code source sous licence libre. Bref, ces thèmes d'icônes sont librement distribuables et c'est le principal. Un parenthèse sur Firefox et son logo qui ne sont pas utilisables librement. Un nom et un logo ne contiennent pas de code source, ils n'ont aucune raison d'être sous licence libre.

Un tour rapide des paquets concernant les drivers ATI et NVidia. nvidia-common est un script Pyhton sous GPL V2, il n'a rien a faire dans cette liste. Les paquets modaliases sont plus subtils : ils disposent d'un copyright d'AMD ou NVidia et ne sont pas sous GPL. Mais il ne s'agit pas des drivers a proprement parler mais uniquement d'une liste d'identifiant de cartes PCI avec le driver le plus adapté. En gros cela va indiquer au gestionnaire de pilote quel est le bon paquet a télécharger pour la carte en cours d'utilisation.

strider@strider-desktop:/usr/share/jockey/modaliases$ head -n2 nvidia-177 
# Listing generated by nvidia_supported. Do not edit manually.
alias pci:v000010DEd00000040sv*sd*bc03sc*i* nvidia nvidia-glx-177


Il nous reste maintenant le plus intéressant : Linux !
Le paquet linux-restricted-modules est le premier paquet comportant réellement du code propriétaire inclus dans trois projets distincts : ltmodem, broadcom et madwifi. Donc sans ce paquet vous aurez très peu de chance de voir votre modem interne avec un chipset Lucent, ou votre carte wifi avec un chipset Broadcom ou Atheros fonctionner. Si vous ne possédez aucun de ces trois type de matérie, vous pouvez désinstaller ce paquet si la présence de blobs binaires sur votre disque dur qui ne seront jamais exécutés vous dérange.
Et puis le meilleur pour la fin, le logiciel le moins libre de la distribution Ubuntu : le noyau Linux.
Je n'ai pas été chercher si les développeurs d'Ubuntu avaient rajouté certains modules fermés au noyau de base car celui ci, celui qui est en téléchargement sur kernel.org, en contient déjà suffisamment. Le noyau contient effet des blobs qui seront chargé sur les périphériques qui en ont besoin pour fonctionner. La FSF a bien évidemment crée un kernel linux libre dépourvu de ces blobs. Pour générer cette version spéciale du noyau, un script bash parcours toutes les sources du noyau a la recherche de microcode écrit en code machine et le supprime.
Kernel-libre
Le code nécessaire au bon fonctionnement du matériel est remplacé par le commentaire /*DEBLOBBED*/ . Le kernel libre offre donc les mêmes fonctionnalités que le kernel de base, les mêmes drivers sont présents, mais le périphérique demandant un microcode risque d'avoir quelques suprises quand il essayera de s'initialiser avec un kernel libre. La FSF n'a pas retiré les drivers propriétaires, elle les a rendu disfonctionnels ! On entre ici dans l'absurde mais on peut facilement continuer plus loin. Regardez autour de vous, essayez de vous faire une représentation de tout les appareils électroniques qui vous entourent et qui comportent un microprocesseur ou un microcontrolleur. Lesquels fonctionnent avec un code totalement libre ? Il y a de grande chances que la réponse soit zéro. La machine la plus "libre" que je connaisse est le XO Laptop de l'OLPC et celle ci demande quand même un microcode propriétaire pour faire fonctionner le chipset wifi...
Sérieusement, quelle est la raison pour laquelle on pousse les utilisateurs de systèmes GNU/Linux a installer des versions 100% libre ? Un noyau de base offre 2 possibilités : soit on a un périphérique nécessitant un microcode fermé et dans ce cas le périphérique fonctionnera, soit la machine n'a pas besoin de microcode (parce qu'elle inclus le code propriétaire dans une ROM, ce qui est encore plus hermétique) et alors le code fermé de Linux ne sera jamais exécuté. Dans le cas d'un kernel libre, on aura beau avoir l'âme en paix du fait de ne pas avoir quelques chaines en héxadécimal sur son disque dur, si on a la malchance de posséder un périphérique qui en a besoin, celui ci n'aura aucune chance de fonctionner.
Rendez vous a l'évidence : le moindre appareil électronique contient du code fermé, et il n'y a aucune raison de punir l'utilisateur parce que ce périphérique offre la possibilité de charger un firmware dynamiquement (en opposition a un firmware écrit de manière permanente en ROM, qui n'aura aucune chance d'être mis a jour). Le noyau Linux n'est pas libre a 100%, nous n'y pouvons rien, et nous pouvons déjà nous estimer chanceux que certains constructeurs aient permis la distribution de leurs firmwares pour assurer le bon fonctionnement de leurs périphériques.
Au final, on se rends compte qu'Ubuntu comporte quatre logiciels contenant du code propriétaire : ltmodem, broadcom, madwifi et linux. Tous concernent la gestion du matériel et il n'y aucun code non libre présent dans les programmes de l'utilisateur. Les alternatives 100% libres que sont BLAG, gNewSense et ututo n'ont aucun avantage par rapport aux autres si ce n'est la garantie de la liberté du code source. Il manque toutefois une liste mise en évidence sur les sites de ces distributions avec en titre "Voici la liste des périphérique qui ne fonctionneront pas sur notre distribution". Hormis les 3 distributions citées, toutes les autres distributions atteignent le même degré de liberté qu'Ubuntu, il est donc complètement absurde de dire "je quitte Ubuntu pour Mandriva/Debian/Gentoo/Fedora/etc... parce qu'Ubuntu n'est pas assez libre pour moi".


PS(1): Je ne souhaite pas m'étendre sur les facilités d'installation que propose Ubuntu pour certains logiciels propriétaires. Ubuntu n'est pas installé par défaut avec ceux ci et il appartient a l'utilisateur d'installer des programmes qui sont susceptibles de lui offrir une meilleure expérience au détriment de l'ouverture du code source. Toute fonctionnalité visant, d'une manière ou d'une autre a faciliter l'usage de la machine ne peut être qu'encouragée.

PS(2): Malheureusement certaines personnes font un amalgame entre logiciels propriétaire et format breveté. La plupart des codecs audio/video sont des logiciels libres, qui sont concus pour traiter des formats sous licence. Ce ce fait leur utilisation n'est pas légale dans tous les pays. Aussi on ne dit pas d'un format qu'il est libre mais qu'il est ouvert. Encore une raison pour insister sur le fait que le terme "libre" doit être appliqué uniquement aux logiciels (et aux documentations qui en découlent).

PS(3): Oui, Mono est un logiciel 100% libre

Web public, web privé : comment évoluer vers le Web 3.0

Une question qui reviens sur le tapis de plus en plus souvent est la question de la protection de la vie privée sur Internet. Le Web 2.0, les réseaux sociaux ont changé le comportement des internautes ces dernières années mais pas forcement dans le bon sens. Le grand public utilise joyeusement tout les nouveaux outils mis a leur dispositions (Facebook, MySpace, Gmail, FlickR,...) sans forcément se soucier des implications qui peuvent se cacher derrière. Les utilisateurs de logiciels libres les plus engagés auront quand à eu une attitude de méfiance pouvant aller au rejet le plus total pour les cas les plus extrêmes.
Les peurs liées aux applications web sont justifiées : Dans la très grande majorité il s'agit de logiciels propriétaires qui contrairement aux logiciels traditionnels, s'exécutent sur un serveur distant au lieu de s'exécuter sur votre machine. Sur ce point la, il n'y a aucune raison de différencier les clients lourds des applications web : un logiciel est conçu pour traiter des données, et que ce que soit votre processeur ou un serveur distant qui s'en occupe est strictement la même chose : vous ne possédez pas de contrôle sur vos données. Pire encore, vous n'êtes plus propriétaires de vos données puisqu'elles ne sont plus stockées sur votre disque dur.
Et inutile de séparer les 'gentils' SourceForge ou Launchpad des 'méchants' Google et Facebook , ils fonctionnent sur le même principe même si l'ont peut spéculer de manière incertaine sur leur motivations par rapport a l'utilisateur final. Et même quand le code source de Launchpad sera ouvert, cela ne changera pas grand chose en pratique. Vos données ne seront pas hébergées sur votre machine et il n'y aura aucun moyen d'aller vérifier que les sources exécutées correspondent en tout point a celles publiées.
Doit on pour autant rejeter en masses tout les outils collaboratifs et toutes les applications du Web 2.0 ? Il est évident que non ! J'irais jusqu'à qualifier cette attitude de paranoïaque, hermétique et stupide.
Sur Internet, c'est avant tout l'utilisateur qui doit être conscient de ses actions, du fait qu'il publie des données personnelles (et non privées, mais j'y reviendrais). L'internaute doit faire le choix de confier certaines données a un acteur tiers afin d'en assurer la visibilité par le plus grand nombre.
Avant de continuer je voudrais faire une parenthèse pour mentionner la conférence de Benjamin Bayard intitulée "Internet libre ou Minitel 2.0" qui cerne très bien le sujet.

Le cas de Marc L. : données personnelles et privées


Le magazine Le Tigre à récemment effectué une expérience très intéressante : On prends un individu lambda choisi au hasard parmi les utilisateurs des réseaux sociaux et on fouille le web a la recherche d'informations le concernant afin d'aboutir à un résumé de sa vie personnelle. Un vrai travail de détective en quelque sorte. Quand Marc L. a pris connaissance de l'article il est est tombé des nues car il ne se rendait surement pas compte à quel point sa vie était exposée sur le net.
Pourtant , le magazine Le Tigre n'a rien fait de mal, il s'est contenter de rassembler des informations visibles par tout le monde et d'en faire la synthèse. Le problème viens en totalité de la 'victime' et de son manque de prise de conscience vis à vis de ses actes sur le Web.
Il n'est pas nécessaire pour autant nécessaire se vivre caché mais le point primordial est de faire la différence entre données personnelles et donnés privées. Les données personnelles sont nominatives, par exemple l'affichage de votre adresse sur les pages blanches, ou le nom des bloggeurs sur Planet April. Le fait d'avoir des données personnelles sur la toile n'est pas un inconvénient, loin de la. Cela nous offre une visibilité par tous, nos 15 minutes de gloire en quelque sorte. C'est a mon avis un élément important et bouleversant du comportement de notre société. Auparavant seule les personnalités sélectionnées par les médias avaient droit a une reconnaissance et une renommée, avec Internet c'en est fini : chacun peut montrer de quoi il est capable sans avoir a subir de discriminations. Espérons que ce changement contribuera a terme à réduire le culte de la personnalité dont jouissent quelques privilégiés choisis par les médias traditionnels.
Les données privées quand à elles sont celles qui n'ont aucune raison d'être vues par d'autres personnes que vos proches, ou des personnes que vous choisissez au cas par cas. Cela signifie qu'il est totalement stupide de faire confiance a un acteur tel que Facebook pour diffuser de telles informations en se disant que son profil ne sera visité que par des personnes de confiance.
D'une manière générale on peut dire que toute information que vous ne souhaiteriez pas voir figurer dans le fichier Edvige, ou dans les pages Blanches ne doit être publiée sur le Web.
Les logiciels propriétaires du Web n'ont aucun défaut de ce point de vue, si Facebook vends vos données a des publicitaires, c'est VOTRE faute, si Google anaylse vos mails de GMail VOUS êtes responsables, si Microsoft censure vos conversations MSN, VOUS ne pouvez vous en prendre qu'a vous même. Personne ne vous oblige a publier telle ou telle information sur le web public et la confiance que vous accordez aux acteurs qui gèrent vos données ne doit jamais dépasser la valeur de ces informations.
Enfin quand je dit que vous êtes responsable de vos agissements sur le net, c'est en théorie bien sur... Dans la réalité, il y a un gros travail de sensibilisation a faire chez les internautes pour contrer le sentiment de mise en confiance qu'offre délibérément les gros acteurs du Web. C'est triste a dire mais il y a eu une réelle régression faite ces dernières années sur l'attitude à avoir sur Internet. Lorsqu'Internet n'était peuplé que de geeks, il existait une réelle séparation entre les communications publiques et privées, aujourd'hui tout est en train de se confondre car les outils propriétaires offrent un confort d'utilisation formidable alors que les outils utilisés traditionnellement n'ont pas bougé en 20 ans alors que le web accueille de plus en plus de nouveau venus néophytes.

Le réseau sous 4 angles différents


On peut voir Internet comme un échange entre un internaute et un ou plusieurs autres internautes a l'autre bout du tuyau. Ces communications peuvent être soit publiques, soit privées. Un émetteur, un destinataire, privé ou public : cela donne 4 configurations différentes.
Il est important de préciser que les communications privées doivent l'être en tout point de la chaine de communication, car vous n'êtes pas sans savoir que les gouvernements souhaitent contrôler le traffic (DADVSI, rapport Olivennes, etc...) et qu'un transfert peut être intercepté à n'importe quel endroit de la chaine.
1. Public - public
Inutile de s'étendre longuement sur ce cas, c'est celui que vous connaissez tous car il est utilisé dans 99% des cas : surf sur le Web, conversations sur IRC ou MSN, échange de mails, P2P non crypté, etc...
2. Public - privé
C'est une configuration a part et qui ne nous intéresse pas dans le cas présent : vous essayez d'intercepter une communication privée et de la décrypter: c'est du cracking. En revanche nous souhaitons nous protéger de ce genre d'attaques et c'est pour cela que nos communications privées doivent l'être réellement et avec des cryptages forts.
3. Privé - public
Vous souhaitez masquer votre identité pour accéder a des données disponibles sur Internet ou pour publier des données sans dévoiler votre identité. Vous pouvez utiliser un serveur proxy anonyme si vous lui faites confiance ou surfer hors de votre domicile ou de votre lieu de travail en n'utilisant aucune information qui puisse vous identifier (login, adresse mail, adresse MAC de votre carte WIFI ...).
4. Privé - privé
C'est a l'heure actuelle le domaine le plus important à développer, Les données doivent sortir de votre carte réseau en étant chiffrées et être déchiffrées chez l'interlocuteur. De nombreux outils et protocoles permettent cela : SSL (HTTPS, FTPS), SSH (connection directe, tunnels, VPN ), clés PGP ou GPG, réseaux friend2friend.

Il est très important de se focaliser sur le dernier point pour que le net pour que le net soit la propriété des internautes et non de quelques sociétés et des gouvernements. Comme je l'ai dit précédemment les outils nécessaires existent depuis plus de 20 ans, il s'agit maintenant de les rendre accessible au grand public comme le sont les outils existants pour le Web 2.0.
Internet a été crée par la communauté du logiciel libre et il est en train de se faire bouffer par des corporations qui ne méritent pas notre confiance même si elles proposent des services avantageux et confortables qui peuvent être utilisés a bon escient. La communauté du logiciel libre doit reprendre la main sur le transfert de données privées et ne pas rester immobile en tombant dans la paranoïa la plus complète.

Test des performances de l'OpenGL avec VirtualBox 2.1

Depuis sa sortie, les annonces ne manquent pas pour annoncer l'évolution majeure de VirtualBox 2.1 : Le support de l'OpenGL. Qu'en est il des performances par rapport a un système natif ? C'est ce que nous allons voir !
L'installation se passe comme les mise a jour habituelles de VirtualBox, je déconseille fortement l'utilisation de la version Open Source car amputé de nombreuses fonctionnalités et bien plus compliquée a installer si vous sortez de la version maintenue par votre distribution. Une fois VirtualBox mis a jour, pensez à réinstaller les Additions Clients sur Windows, qui contiennent les drivers OpenGL. (Il vous faudra aussi activer la case 'Accélération 3D' dans les préférences de la machine virtuelle.
Les tests que j'ai lancés sont ioquake3 (la version libre de quake3) et Warcraft 3 : The Frozen Throne. J'ai voulu tenter le test de Unreal Tournament 2004 mais celui ci ne se lance pas en mode OpenGL mais seulement avec le rendu logiciel, qui est très lent. Je n'ai pas voulu abuser en testant Doom 3 ou Quake 4, on reste tout de même sur une machine virtuelle, mais si un utilisateur téméraire veux faire le test, je serai curieux de voir ce que ça donne.
Passons aux résultats des benchmarks :
Pour Warcraft 3 ,les FPS ont été mesurés avec le logiciel Fraps sous Windows et avec l'option WINEDEBUG=+fps sur Wine. Etant donné la différence des méthodes de mesure il ne faudra pas être trop regardant sur l'exactitude des résultats de Linux VS Windows mais plutot se concentrer sur les différences entre la version native et la virtualisée.
Pour activer l'OpenGL, il faudra ajouter l'option -opengl au lancement. Le jeu a été lancé en 1280x1024 avec les options graphiques au maximum.

Benchmark Warcraft III

Pour Quake 3, le jeu a été lancé en 1024x768, toujours avec les détails poussés au maximum. Dans la console de Quake il faudra taper timedemo 1 , lancer une démo et retourner sur la console pour voir les résultats. A noter qu'il y a un bug de ioquake3 sur Linux qui empeche de voir la console si on ne passe pas son clavier en qwerty...

Benchmark Quake 3

Au final, les résultats sont assez surprenants. En effet il y a tout de même une grosse différence entre la version native et VirtualBox, mais les 2 jeux testés restent utilisables compte tenu des performances. Pour cette première version supportant l'accélération c'est déja un très bon début. Évidement les jeux testés n'ont aucun intérêt a êtres virtualisés étant donné que Quake 3 existe en natif et que Wine donne des performances au moins aussi bonne que Windows sur Warcraft.
Les futures versions apporterons probablement le support de l'OpenGL sur les clients Linux et le support de DirectX sur les clients Windows, ce qui sera tout de suite plus utile.

XRandr enfin fonctionnel sur le XO d'OLPC

L'écran du XO Laptop est en lui même révolutionnaire, avec une taille de 7 pouces et une résolution de 1200x900, c'est l'écran TFT disposant du pitch le plus fin existant. Bien sur il faut prendre en compte le fait que cette résolution n'est réellement effective qu'en mode noir et blanc non rétroéclairé, avec un mode couleur, les pixels d'une ligne sont successivement rouge, vert puis bleu ce qui donne un rendu étrange (qui ne se remarque pratiquement pas grâce à la finesse du pitch.)
Avant la sortie du XO et même encore aujourd'hui, presque tous les sites décrivant les spécifications du XO donnaient 2 résolutions: 1200x900 pour le N&B, et 800x600 ou une autre résolution farfelue pour le mode couleur. N'importe quelle personne qui aura réellement utilisé cette machine saura que c'est totalement faux ! Le XO possède une et une seule résolution de 1200x900 et le Wiki du projet fait bien d'apporter une note sur cela :
Ignore talk of "mono and color modes", and of screen resolutions other than 1200x900. We named things poorly, and immense confusion has resulted. http://wiki.laptop.org/go/Display

Avoir l'affichage le plus fin au monde c'est sur que c'est la classe, dans ce domaine il bat le EEEpc et les autres netbooks a plates coutures, mais cette caractéristique peut aussi être un gros inconvénient. Avec son processeur AMD Geode@433 Mhz, et son chipset graphique intégré ne supportant pas OpenGL, le XO a beaucoup de mal quand on lui demande de lancer des applications plein écran avec cette résolution élevée.
J'ai le projet de répertorier les jeux et émulateurs fonctionnels sur XO et le fait d'être bloqué en 1200x900 limitait beaucoup les résultats. Le passage a une autre résolution n'est pas possible sur l'OS Fedora 9 du XO et sur DebXO , il en résulte un affichage corrompu (voir ici). Suite à une discussion que j'ai lancé a ce sujet, Jordan Crouse, un des développeurs du driver Geode, dit qu'il a corrigé le problème sur le dernier snapshot GIT.
N'ayant pas tout de suite pris connaissance du message, je n'ai pas tenté la compilation mais en y revenant quelques jours plus tard, j'ai découvert par la même occasion que ce driver était disponible pour la distribution DebXO (Une Debian Lenny modifiée pour le XO). En effet le répertoire de DebXO 0.5 contient uniquement des drivers xserver-xorg que je me suis empressé d'essayer. Et la c'est fantastique, toutes les résolutions fonctionnent sans aucun problème ! Les répercutions sont conséquentes : toutes les applications qui étaient trop gourmandes pour fonctionner en 1200x900 fonctionnent sans problème dans une résolution inférieure. J'ai testé quelques émulateurs qui fonctionnent a merveille : Gens (Sega Megadrive), ZSnes (Super Nintendo), ScummVM (Jeux Lucasart) , XMame (Arcade). Ce nouveau driver permet de faire du XO Laptop une véritable console portable, chose que j'attendais depuis presque un an. De quoi faire patienter avant la disponibilité de la console Open Pandora ;)

Un grand merci a Jordan Crouse, Mitch Bradley et Andres Salomon pour leur fantastique travail :)

Ps : J'ai des erreurs a propos de l'extension XF86DGA lors du passage en plein écran de Unreal Tournament et Snes9X, si des connaisseurs passent par la, un coup de main serait le bienvenue.

Installer Windows sans écraser Grub

Un des gros inconvénients de Windows est son incapacité a prendre en compte les installations de Linux présentes sur la machine. En effet, toutes les versions de Windows écrasent les gestionnaires de démarrage présent sur le disque de boot, ce qui implique qu'il faudra réinstaller Grub a l'aide d'un Live CD.
Il existe cependant une solution très simple pour mettre en place facilement un dual boot et dont la seule condition est d'installer Windows sur un disque physique différent de celui qui contient Grub.
Avant l'installation, allez dans votre BIOS pour changer l'ordre de priorité des disques dur et mettez le disque qui va accueillir Windows en premier, de cette façon Grub restera a l'abris.
Installez Windows normalement sans se soucier des autres systèmes présents.
Une fois l'installation terminée, retournez dans le BIOS et rétablissez l'ordre de démarrage de façon a retrouver Grub et vos systèmes Linux.
Démarrez votre système principal et ouvrez le fichier /boot/grub/menu.lst avec des droits administrateur.
Rajoutez a la fin du fichier les lignes suivantes :

title		Windows XP
root		(hd1,0)
savedefault
makeactive
map		(hd0) (hd1)
map		(hd1) (hd0)
chainloader	+1

Testez votre dual boot, si Windows ne démarre pas, revenez sur Linux et jouez sur les numéros de disque (remplacez hd1 par hd2 ou hd3). Au pire si cela ne fonctionne pas vous pourrez toujours démarrer Windows en répétant l'opération effectuée sur le BIOS.
Notez que cette manipulation peut aussi s'avérer utile pour les distributions Linux un peu trop brutales qui ne tiennent pas compte de la configuration Grub déja présente.

Benchmark de ffmpeg Ubuntu 32/64bit , Arch , Seven

Pour aller dans la continuité du précédent benchmark de UT2004 sur différentes distributions, j'ai continué les benchmarks avec FFMpeg. Cette fois ci le test ne se base pas autant sur un unique composant qui étaient les drivers NVidia mais mesure la puissance de calcul de la machine.

Les distributions testés sont :

  • Ubuntu 8.10 32 Bit
  • Ubuntu 8.10 64 Bit
  • Arch Linux
  • Windows Seven pre-beta


Les tests ont étés lancés avec la commande time ffmpeg -i pts-trondheim.avi -y -target ntsc-vcd /dev/null 2>&1
(Le fichier video utilisé est celui inclu dans phoronix test suite)
Sur windows la commande a été adaptée : measure-command {.\ffmpeg -i .\pts-trondheim.avi -y -target ntsc-vcd nul}
J'ai utilisé la commande PowerShell measure-command qui est un équivalent de time sur Unix. Au passage si vous chrechez un bon shell sur Windows, téléchargez PowerShell, il redonne une très bonne opinion de la ligne de commande sur Windows après des années de cmd.exe inspirant le DOS de 1990 et il peut être une bonne alternative a Cygwin (même si je préfère tout de même ce dernier avec son intégration d'une multitude d'outils GNU et qui permet d'écrire des scripts Bash)

Et voila ce que ça donne :
Benchmark FFmpeg
Voila ce qu'on peut en conclure :

  • Quel que soit l'OS, les résultats varient très peu, même le 64Bit n'est pas franchement gagnant bien qu'il soit réputé pour son gain de vitesse pour les taches de calcul mathématique
  • Compiz a un faible impact sur le système, sa désactivation permet de récupérer quelques millisecondes
  • Arch Linux n'arrive pas a se démarquer franchement d'Ubuntu, la mauvaise réputation d'Ubuntu viendrait elle de personnes pouvant ressentir ces quelques fractions de secondes de différence ?