Saturday, December 6, 2008

Blog Meme: combien de mots de passes retenez vous ?

La nécessité de choisir un nouveau mot de passe pour protéger ma clé privée GPG, m'a amené à la reflexion suivante: au fait combien de mots de passe dois-je retenir en permanence ?

Pour ma part c'est
  • Huit mots de passe pour les comptes personnels ( mail, compte de mon ordinateur personnel, wikis). Sur ces huit mots de passe, le gestionnaire de mots de passe de Firefox en connait 4.
  • Trois mots de passe pour les comptes professionnels
  • Trois mots de passe partagés avec d'autres personnes pour libera.cc
  • Un mot de passe partagé pour un compte webmail
Ce qui nous donne tout de même 15 mots de passe. Comme beaucoup de personnes, j'utilise un schéma de difficulté graduelle avec des mots de passe communs pour différents comptes, mais:
  • parfois je connais le mot de passe, et pas le nom d'utilisateur
  • beaucoup de sites web ont des contraintes différentes quand à leur exigences de sécurité: certains vous recommandent l'emploi des caractères spéciaux (!#+?), d'autres les refusent.
  • les mots de passe à partager en commun sont une plaie: personne ne souhaite réutiliser un mot de passe personnel pour le donner à quelqu'un d'autre ce qui oblige à générer une nouvelle hiérarchie de mots de passe comptes web / compte utilisateur système / compte administrateur système
  • aucun de ces mots de passe n'est écrit sur papier, bien que j'y réfléchisse pour certains comptes comme le recommande le cryptologue Bruce Schneier (en)
Après avoir lu les meme des blogs de planet.debian.org, je lance donc le meme suivant:
et vous combien de mots de passe retenez vous en permanence ?

Saturday, November 22, 2008

Extension du domaine de la lutte: un firmware libre sur votre balladeur MP3

Après avoir lu que le projet Rockbox venait de sortir une nouvelle version stable, je me suis décidé à jeter un coup sur Rockbox et à l'installer sur mon baladeur MP3. Rockbox est un firmware alternatif sous license GPL, qui s'installe à côté du firmware original en modifiant le boot loader du baladeur.
Rockbox est écrit en C et en assembleur pour certaines routines low-level, et le résultat est très impressionnant. Je pensais notamment que l'interface serait plutôt complexe avec des dizaines d'options de configuration, mais non, même si les dizaines d'options de configuration sont là, les réglages par défaut sont corrects, le thème de base plutôt joli et l'interface intuitive.



Quel est l'intérêt d'un firmware libre en lieu et place de celui de iriver/archos/apple ? D'abord évidemment on pourra supporter les codecs supplémentaires ( ogg, flac ) que les lecteurs du marché n'embarquent pas. Ensuite comme dit précédemment, on dispose de beaucoup plus de thèmes et d'options de configuration, ce qui vous permet de personnaliser le mode de fonctionnement de votre vecteur MP3 très finement ( au niveau des fondus/enchainement, du fonctionnement des playlists, des réglages d'égalisation des fréquences) De plus Rockbox intègre en standard de nombreuses applications absentes d'un balladeur mp3 standard, depuis l'économiseur d'écran Matrix, au chronomètre, jusqu'à un port de Doom parfaitement fonctionnel, chose assez inattendue sur un baladeur mp3 de cinq ans d'age. Enfin Rockbox dispose d'un installateur graphique multi plateformes ( je l'ai testé sur Mac OS X ) et d'une excellente documentation utilisateur.

Rockbox montre que si les gros projets du libre (noyau Linux, X, Gnome, glibc ) sont maintenant essentiellement le fait de salariés d'IBM, Redhat, Novell, Nokia, ou Sun, les hackers indépendants peuvent aussi faire de bien belles choses !

Thursday, October 2, 2008

Systèmes d'authentification centralisés: LDAP et OpenID

Une des mes dernières activités professionnelles a été de prendre un main un système d'authentification centralisé, utilisant OpenLDAP. Les utilisateurs n'ont ainsi qu'un seul couple username/password à retenir pour les applications suivantes:
  • login unix
  • domain windows
  • serenpidity (blog)
  • trac via le module mod_auth_ldap de apache
  • svn
  • jabber
  • email
  • alfresco (cms)
L'avantage en terme de gestions des droits est aussi evident. Pour ajouter par exemple le droit d'écrire dans le blog, il suffit d'ajouter le nom de l'utilisateur dans le groupe LDAP Serenpidity. Mon objectif est maintenant d'intégrer openvpn dans cette liste.

Pourquoi ce petit retour par ldap ? Aujourd'hui j'ai changé l'adresse email que j'utilise pour mes comptes internet ( wikis, etc ... ) Pour connaitre la liste de mes comptes internet, je me suis servi de la liste des mots de passe stockés sur Firefox. Et ca en faisait des comptes d'ouverts, et des formulaires à revalider !

Cela va du sympathique, incluant un mail de confirmation dans votre nouvelle adresse avec un lien à cliquer (dailymotion, netvibes, ebay ) au plutôt mauvais genre fon, qui ne vous donne pas la possibilité de changer en ligne l'adresse email de votre compte. J'ai ouvert un ticket chez eux, peut être est ce le moyen standard de changer l'adresse mail. Certains en profitent à l'occasion pour vous imposer de nouveaux champs "obligatoires" qui ne l'étaient pas à la création du compte, comme Dailymotion qui veut maintenant connaitre ma date de naissance.

Tout ceci m'a bien évidemment fait réfléchir à OpenID, qui est déjà utilisée par les géants de l´internet ( Yahoo, Google, IBM, MSN ) mais pas encore par les "petits", et qui devrait remplacer ce bazar.

Cependant à la différence de LDAP qui sert à consolider les services proposés par un seul fournisseur ( en l'occurrence l'admin sys d'une strucuture), OpenID consolide l'authentification de fournisseurs de services différents, ce qui pose bien sûr la question de l'étanchéité des processus d'authentification. Je vois que d'autres ont déjà franchi le pas, et j'attends de voir leurs conclusions avant d'utiliser OpenID pour mes comptes et sur mes serveurs.

Wednesday, September 10, 2008

Hardware compatible Linux: problèmes et solutions possibles


L'absence d'informations émises pas les constructeurs de périphériques quant à la compatibilité du matériel est un problème rebutant pour les débutants sur Linux, qui découvrent avec surprise que leur imprimante ou leur webcam ne fonctionne pas out-of-the box comme espéré. Même si les utilisateurs plus avancés savent en général faire fonctionner leur matériel après une recherche sur wikis et make / depmod / modprobe , la recherche d'une clé wifi ou de telle carte son compatible revient donc régulièrement dans les forums et les listes de diffusion.

Examinons les étapes nécessaires pour l'achat d'un nouveau périphérique, en prenant comme example un dongle wifi.

Sous Windows
:
Nous allons sur Rue du Commerce où nous avons nos habitudes et nous prenons un dongle Linksys "parce que c'est de la marque"; le dongle est livré avec un CD comportant les drivers pour Windows, on met le CD, on clique suivant-suivant-suivant, on reboote et l'affaire est entendue.

Sous Linux:

L'acte d'achat est quelque peu différent. Tout d'abord il faut demander à quelque gourou hardware sur ubuntu-fr quel dongle wifi est compatible Linux, et ceux ci répondent "tous ceux qui ont un chipset Ralink, Atheros ou Zydas". Une recherche naïve dans la foulée sur Amazon ne donnera pas grand chose, car le nom du chipset est seulement le nom du circuit électronique contenu dans le dongle USB , et pas celui du produit commercial.
Il faudra donc, une fois le chipset choisi, par exemple Zydas, aller sur la page du driver linux consacrée au chipset Zydas ZD1211, pour trouver quels produits du commerce contiennent le chipset.
Nos avons alors de la chance car 121 produits du commerce contiennent le chipset, du A-LINK WL54USB au Zyxel ZyAIR AG-225H !
Nous nous décidons alors pour le Zyxel ZyAIR AG-225H car nous avons déjà un routeur Zyxel à la maison, puis allons sur Rue du Commerce. Pas de chance aucun produit n'a été trouvé pour la recherche " Zyxel ZyAIR AG-225H ". Le A-LINK WL54USB non plus d'ailleurs. Et le Buffalo WLI-U2-KG54L non plus. Et le Cable&Wireless CW/108/USBA non plus. Une laborieuse recherche sur Google/Yahoo finit par nous apprendre que sur les 121 modèles du wiki la plus grande partie a été retirée du marché ou n'a sans doute jamais été commercialisée en France.
Finalement le ZyXEL ZyAIR AG-225H apparaît sur "Ciao la communauté shopping". Au moment de cliquer un doute nous saisit. Le driver Linux ZD1211 supporte bien cette carte, mais ce driver est il inclus dans mon Ubuntu ? La page du wiki mentionne cependant que le driver est inclus dans Linux depuis la version 2.6.18. Un petit tour a nouveau sur wiki.ubuntu.com, et nous apprenons que la version d'Ubuntu que nous utilisons est Linux 2.6.24 et donc que ce driver est bien inclus dans notre installation. Le dongle coûte 55 euros, deux fois et demi plus que le Linksys, mais au moins devrait-il fonctionner sous Linux.

Ce chemin laborieux je l'ai parcouru plusieurs fois, lors de l'achat d'une carte mini pci compatible FreeBSD/NetBSD pour un routeur Soekris, puis lors de l'achat d'une imprimante multifonction, et à nouveau lors de l'achat d'un dongle wifi. Je me suis finalement dit qu'il y avait quelque choses à faire, et avec une petite équipe nous avons donc créé libera.cc, une plateforme de vente en ligne de matériel compatible Ubuntu et FreeBSD. En surfant sur libera, on peut en quelques clics choisir son matériel et le commander directement sur LDLC, Gros Bill et Amazon avec qui nous avons établi des partenariats d'affiliation. Pour chaque produit acheté suite a une visite en provenance de Libera, les web marchands nous reverserons une commission de l'ordre du centime d'euros.
Ces quelques centimes sont pour nous la carotte qui récompense les laborieux efforts de saisie et d'expansion du catalogue.

Le site est encore en beta, car nous souhaitons intégrer en version définitive un comparateur de prix, mais il est déjà fonctionnel, et rempli dès à présent sa mission d'aide à l'achat.
Alors si dans la salle quelqu'un rêve d'un lance missile USB compatible Linux, c'est le moment d'aller faire un sur libera.cc !

NB: Linux dans son système de base supporte un nombre de périphériques bien plus important que Windows. Mais cela ne couvre pas encore tous les périphériques existant sur le marché, sans parler des BSD et autres systèmes d'exploitations libres.

Saturday, August 9, 2008

Essai d'un nouveau paradigme: Tiling window managers (tiwm)

L'avantage d'un système modulaire comme les Unix libres, une fois passé le coté "usine a gaz" pour les débutants, est la facilité avec laquelle vous pouvez remplacer les parties du système qui ne vous plaisent
pas. Vous aimez bien apt-get mais préférez pf au lieu de iptables ? Vous pouvez utiliser le noyau FreeBSD avec Debian/kFreeBSD. Vous n'aimez pas le système d'init Systeme V, utilisé dans la plupart des distributions
Linux ? Vous pouvez le remplacer par runit sous Debian, utiliser upstart sous Ubuntu ou l'init BSD sous Slackware. Gnome trop gourmand en RAM ? Il existe Xfce. Xfce trop gourmand en RAM ? Il existe Equinox Desktop Environment. X trop gourmand en RAM ? Vous pouvez travailler en console ( ce qui double par exemple l'autonomie de mon portable ) étant donné que tous les outils Unix existent en version texte : navigateurs web, lecteurs de flux RSS, clients mail, clients p2p ...

Limites de gnome
Je me suis intéressé aux gestionnaires de fenêtres en tuiles ( Tiling windows manager, notés après tiwm ) après avoir rencontré des problèmes de productivité sous Gnome. Classiquement, en faisant du développement web, j'avais besoin d'avoir sous les yeux un Terminal avec un éditeur ou une console mysql ouverte, et le navigateur web pour suivre les modifications que je faisais. De la même façon, j'avais besoin de façon récurrente de lire une doc sur le web tout en tapant des commandes dans le shell. Alors que mon
navigateur web est en plein écran, j'ouvre donc un xterm. Tout d'abord pour une raison que j'ignore Gnome lance la nouvelle fenêtre derrière mon focus actuel, et se contente d'un clignotement légèrement irritant dans la barre des taches.
Je commence donc par cliquer sur la barre des taches pour donner le focus a xterm. Ensuite je diminue la taille de la fenêtre du navigateur web pour faire de la place a xterm, et je réaugmente la taille de xterm dans l'espace correspondant.
Maintenant j'ai besoin d'un deuxième xterm pour avoir la consommation cpu avec "top" sur mon serveur. Je reclique sur la barre des taches pour donner le focus, et cette fois c'est trois fenêtres que je dois
réarranger a la main sur mon espace de travail. N'y aurait-il pas moyen de laisser le gestionnaire de fenêtre ranger les fenêtres qu'il a créé ?

Les avantages
Les tiwm partent d'un paradigme différent: tous les programmes ouverts sur un bureau donné doivent être visibles simultanément. Le premier programme que vous lancez, par exemple un terminal, sera toujours
en plein écran.

Puis je lance firefox. Le gestionnaire de fenêtre
redimensionne automatiquement firefox pour laisser de la place au
terminal.

Besoin d'un gestionnaire de fichiers ? De même le gestionnaire de fenêtre
découpe l'écran en trois parties.

Besoin de plus de place sur un des xterm pour lire un log ? Si j'augmente la taille de la fenêtre xterm avec la souris, le gestionnaire de fenêtre redimensionne les deux autres programmes dans l'espace restant.
L'utilisation d'un tiwm m'a incité à organiser mon espace de travail de façon plus rationnelle ( ce que j'aurais pu faire sous gnome ceci dit ) Le fait d'avoir les fenêtres des applications en permanence ouvertes
incite au rangement. Une fois que j'ai défini la bonne taille de mes fenêtres, je laisse les programmes ouverts en permanence, ranges sur des bureaux virtuels différents, et je ne passe pas mon temps à minimiser/maximiser les programmes, ou à ouvrir/fermer 15 fois par jour les mêmes applications.

Par ailleurs étant donné que les fenêtres sont affichées en permanence, les tiwm se marient très bien avec les programmes utilisant des onglets ( firefox, gnome-terminal, screen avec sa barre de statut )
vous n'avez jamais a cliquer sur une barre des tâches pour comprendre ensuite, zut mon onglet n'était pas dans cette fenêtre.
Ce mode de fonctionnement est a mon avis adapté au développeur qui a en général besoin de deux fenêtres
lisibles simultanément plus qu'à l'utilisateur de base, qui passe d'une tâche à une autre sans overlapping ( traitement de texte, puis surf sous le web, puis regarder un film puis surf sur le web )

Les inconvénients
Le principal défaut que je vois au tiwm est lié à la taille de nos écrans standards. Pour surfer sur le web confortablement il vous faut maintenant du 1024x768, si vous n'avez pas envie de faire joujou avec la
barre de scrolling latéral en permanence, surtout depuis que Ruby on Rails et Wordpress ont mis à la mode les grosses polices sur le web.
Vu que mon écran fait du 1280x1024, la place disponible pour plusieurs fenêtres _lisibles_ est limitée. Après
divers tentatives je me suis fixé comme taille 1024x600 pour le navigateur web. Malheureusement cela ne me laisse pas la place d'avoir un xterm en 80 x 25 caractères avec une taille de police
correcte ( la monospace 12 de gnome-terminal) .
J'ai donc un mini xterm avec sur le cote droit, Nautilus.
Vais je devoir acheter un écran plus grand ?

Ensuite les tiwm ne possèdent pas de menu "Start" avec la liste des programmes comme sur un environnement de bureau classique. Sous wmii par exemple on tape Alt-P et les premières lettres du nom du
programme, les complétions possibles s'affichant dans la Status Bar de wmii. De cette façon on lance très rapidement ce dont on connaît le nom ( firefox, xterm, gnumeric ) mais pour cela devient problèmatique pour
les programmes qu'on utilise peu ou qu'on vient d'installer ( C'était quoi déjà mon programme de gravure de
CD ? gnome-foo-write, gnome-burn, graveman-mon-cd ? )
Enfin et c'est a mon avis le plus grand défaut des tiwm étant donné le paradigme employé: la maximisation d'une fenêtre suivie d'une démaximisation de cette fenêtre ignore l'ordonnancement antérieur des
fenêtres. Supposant que j'ai besoin par exemple tout d'un coup de mon xterm en plein écran, pour chercher visuellement dans le long résultat d'un select SQL une valeur. Je passe wmii en mode plein écran, ce qui
donne temporairement à la fenêtre active la taille maximale. Mais quand je sort du mode plein écran, ma fenêtre de xterm, ne trouve pas la taille antérieure que lui avait fixé avec la souris. La fenêtre xterm reprend
la taille par défaut que lui avait assignée wmii au lancement du programme. Pas très clair ? Il ne tient qu'a vous d'essayer.

Conclusion
Si vous voulez tenter d'améliorer votre productivité sur un ordinateur, je vous conseille vivement d'essayer un tiwm, cela aura au moins le mérite de vous faire réfléchir à la façon dont vous utilisez une
interface graphique. Dans l'archive Debian et dans les ports FreeBSD se trouvent dwm, larswm et wmii, cet article ayant été écrit après deux semaines d'utilisation de wmii.

Wednesday, June 18, 2008

Un accès au web sous contrôle d'Adobe


C'est une chose bien curieuse que la disponibilité d'un plugin web de 3 Mo détermine le choix de l'architecture hardware que vous pouvez employer sur votre poste de travail. Car si votre combinaison CPU/Système d'exploitation ne se trouve pas dans la liste bénite du support d'Adobe vous allez pourtant passer a coté de tous les sites web utilisant Flash, c'est a dire 20% du contenu du web de nos jours.
Et malheureusement c'est mon cas puisque j'utilise Debian GNU/Linux sur PowerPC.

Envie de revoir le but du jour ? Flash. Envie de suivre Maddox ? Flash. Envie de voire des stats Google Analytics ? Flash. Envie d'écouter ce mp3 sur la page du groupe vu hier en concert ? Flash. Envie de postuler a un emploi ? Flash. Envie de voir une demo d'un logiciel opensource ? Flash.
J'ai utilisé pendant plus d'un an Gnash 0.8.1, mais sa compatibilité reste encore limitée ( essentiellement les bandeaux publicitaires de libé ... ) De plus depuis que youtube a sorti la nouvelle version de son player, je ne peux plus lire aucune video en ligne. Et la libstdc++ de Debian 4.0 est apparemment trop ancienne pour compiler la nouvelle release 0.8.2 de Gnash.

Bien sûr si vous avez des ressources et de l'entregent il est toujours possible d'acheter le SDK Flash pour le porter sur votre plateforme exotique préférée comme je suppose que Nokia l'a fait pour sa tablette Internet N810. En attendant force est de constater qu'après la qualité des filtres d'OpenOffice pour les documents MS Office et l'apparition du couple IcedTea/java-gcj-compat-plugin pour les plugins javas, Flash reste le dernier bastion des formats de données propriétaires; mais plus qu'un bastion c'est une vraie Bastille !
Et pour paraphraser Rochefoucauld à Louis XVI c'est plus qu'une révolte qu'il nous faut, c'est une révolution.

Tuesday, May 20, 2008

Quand on prête son portable ...

à une copine polonaise c'est agréable de pouvoir lui fournir un environnement de travail 100 % polonais ( y compris Gnometris ... ) La démarche à suivre sur Debian/Ubuntu en trois commandes sur le wiki gcu:

Mon bureau à l'origine:


Version polonaise:

Tuesday, April 22, 2008

Worse Is Better versus The Right Thing dans le logiciel libre

Worse is better, qui pourra se comprendre schémaiquement en "le plus c'est simple, le mieux ce sera tire son nom d'un article du spécialiste Lisp Richard Gabriel. Dans cet article écrit en 1989, Richard Gabriel explique comment Unix et le C l'ont emporté commercialement et dans la recherche par rapport à Lisp et aux machines Lisp, bien que celles ci semblaient initialement bien mieux conçues. Pourquoi ? Le développement Worse is Better met l'accent sur la rapidité du développement et la simplicité de l'interface, ce qui permet au logiciel de croire rapidement en fonctionnalités et d'être porté facilement, alors que le développement "The Right Thing" met d'abord l'accent sur la perfection de la conception et de l'implémentation. Un exemple est Mysql versus Postgres, où Mysql a représenté longtemps un SGBDR simple et rapide, mais qui implémentait peu de fonctionnalités SQL ANSI.

Le tableau suivant propose suivant une gradation Worse is Better versus the Right Thing, dans le stack du logiciel libre, suivant ma propre expérience d'administrateur système et diverses lectures.


Références externes:

NB: en aucun cas ce tableau ne représente un quelconque jugement de valeur des logiciels mentionnés.
Un désaccord ? Des exemples a rajouter ? Le document source est disponible ici.

Tuesday, April 1, 2008

Installer une console série pour NetBSD

En ce moment je teste un certain nombre de procédures de migration machine physique ==> machine virtuelle, la dernière en date étant la migration d'un routeur Soekris 4801 dans une machine qemu.
Seulement voila je n'aime pas trop la console SDL sur laquelle boote qemu par defaut et je préfère bien mieux avoir les messages de démarrage de NetBSD dans un terminal X.
Pour cela il faut configurer NetBSD pour utiliser une console série, ce que j'ai documenté sur le wiki gcu (le logiciel libre, ça se documente mieux dans un wiki ) et lancer qemu avec la ligne de commande suivante:

qemu -nographic -hda /fatc/qemu/soekris.img -redir tcp:2222::22

Ce qui nous donne le résultat suivant:

PS : Je suis a la recherche d'un wiki anglophone sympa pour laisser un Multiboot killing Howto qui explique comment migrer votre installation windows existante dans une machine virtuelle utilisable avec vmware player. Si vous avez des idées ...

Friday, February 29, 2008

Xen p2v howto: migration d'un OS d'une machine physique vers une machine virtuelle

Il existe beaucoup de docs sur internet expliquant l'installation from scratch d'une machine virtuelle, mais bien peu montrant comment migrer un OS déjà installé vers une machine virtuelle.
Cette doc est base sur mon expérience de migration d'un serveur Debian tombant en ruine sur un server Xen Suse, cependant il n'y a rien de distro spécifique la dedans, et l'équivalent devrait même être possible sur Solaris et NetBSD.

Wiki versus Blog / Forum pour la documentation libre

Il serait difficile de reprocher aux systèmes libres leur manque de documentation. Entre les pages de man, les fichiers de conf largement commentés, les verboses modes et autres howto, wiki, blogs, forums, on a affaire a une prolifération de documentation malheureusement pas toujours organisée. Une tendance actuelle est de documenter dans son blog pas mal de choses intéressantes qui serait bien mieux placée dans un wiki. Pourquoi écrire de la doc technique dans un wiki plutot qu'un blog ou une page perso ?
  • le wiki est maintenu par une communauté, ce qui fait que sa pérennité est plus assurée sur le long terme qu'un blog qui depend de votre bon vouloir ou de celui de votre hebergeur.
  • le wiki est modifiable par quelqu'un d'autre a commencer par vous meme, contrairement par exemple a de nombreux forums en lignes qui ne permettent pas de reéditer vos propres posts
  • pourquoi ne pas s'essayer des maintenant a une expérience de travail collaboratif plutôt que de faire les choses dans son coin ?
Il y a cependant deux obstacles a l'utilisation du wiki en general.
Le premier est que la plupart du temps un contributeur de wiki reste anonyme par rapport a un auteur de blog qu'on peut contacter directement pour signaler une erreur ou demander une explication. Le deuxième est que la contribution a un wiki étant bien plus anonyme qu'un beau blog ou l'avatar personnalisé d'un forum, la "part de gloire" de l'auteur est bien moindre. Je connais plusieurs blogs techniques incluant des tutoriels bien detailles, dont je peux citer le nom de l'auteur, mais je serais bien en peine de citer le nom d'un contributeur Wikipedia

Le projet Knol de Google est supposé résoudre ces deux problèmes en associant chaque article de sa base de connaissance a un auteur clairement identifie, qui pourra se remunerer en plaçant des google ads sur son article. Outre le problème qu'un moteur de recherche s'occupe maintenant de generer du contenu, il existe une facon beaucoup plus simple d'identifier vos contributions.
Il suffit d'annoncer sur votre blog/forum préféré les articles que vous avez écrits, et en indiquant votre nom/pseudo et votre email dans l'entête de votre article wiki ( comme le font par exemple certains membres de gcu, suivre les liens tips )

En conclusion pour documenter quelque chose, le mieux serait de commencer essayer de l'inclure dans la documentation officielle de son système ou dans un wiki et enfin d'utiliser son blog/forum/page perso pour des astuces courtes ne depassant pas quelques lignes.

Tuesday, January 29, 2008

Les 5 raisons du succès d'Ubuntu Linux

Il n'existe pas de mesure vraiment fiable de la diffusion d'un logiciel que chacun peut soi même distribuer, et le seul site web cherchant a mesurer la popularité des différents systèmes libres, distrowatch, remarque lui meme que ses méthodes n'ont pas grand chose de fiable. D'après le CEO de Canonical, Mark Shuttleworth, Ubuntu comptait 8 millions d'utilisateurs en Decembre 2006, un chiffre significatif, même si ile ne représente qu'une goutte d'eau compare au 800 millions d'ordinateurs personnels dans le monde. Si on utilise un indicateur tel que Google Trends on observe une croissante quasi contenu du mot clé ubuntu. Un troisième indicateur intéressant serait de connaître les résultats de Canonical, mais celle ci n'est pas cotée et ne communique pas sur ses résultats.
Cette percée d'Ubuntu sur le marché bien chargé des distributions linux s'explique par plusieurs facteurs, certains non spécifiques a Ubuntu, mais dont la combinaison a ete decisive.

  1. Démarrage sur une base robuste
    Comme remarque precedemment sur ce journal, Ubuntu a beaucoup emprunté a Debian: developpeurs, systeme de packaging, wiki, philosophie du libre. Ce fait est largement connu et partagé par ailleurs avec Linspire et Mepis. La où Ubuntu a innové c'est en se présentant comme une continuation de Debian plutôt qu'un fork, et en faisant de leur contribution a Debian un argument de marketing ( sans intention péjorative dans le terme)
  2. Expédition de CD ubuntu dans le monde entier à titre gracieux
    Je peux dire que quand on reçoit ses deux CD ubuntu dans une belle jaquette marron, expliquant ce qu'est le logiciel libre, que le contenu du CD est librement expiable, on n'a qu'une envie c'est de l'installer et de le passer autour de soi. Dans un monde de l'immatériel comme celui du logiciel libre, l'arrivée dans le réel d'un objet de logiciel libre avec un superbe packaging et idéologie humaniste est quelque chose d'assez rare. Combien de CD ont été envoyés par Canonical ? Dans ce thread un employé de Canonical annonce le chiffre de 500 000 CD fin 2004.
  3. des nouvelles releases tous les 6 mois
    La recommandation "release early, release often" d'Eric Raymond est appliquée a la lettre par Ubuntu qui de surcroît gate ses utilisateurs avec des versions alpha dans l'intervalle des releases principales. Plusieurs autres projets comme Gnome et OpenBSD fonctionnent aussi suivant ce modèle depuis plusieurs années. Personnellement, je préféré les projets qui font des releases moins fréquentes axée sur la stabilité, mais il semble que la majorité des utilisateurs préfèrent avoir les dernières fonctionnalités a tout prix. Un autre avantage méconnu de ce mode de développement est tout simplement ... la publicité. En effet tous les 6 mois, sites d'informations, blogs, et chats vont parler de la nouvelle release et finalement entretenir un buzz quasiment permanent autour de la distribution. Si une nouvelle release survient tout les deux ans, voire tous les trois ans, il est évident que vous aurez comme publicité les utilisateurs mécontents de l'attente. La version release d'Ubuntu est justement survenue en Octobre 2004 quand l'attente de la nouvelle version officielle de Debian ( 3.1 dite Sarge ) se faisait sentir.
  4. le produit d'une entreprise
    Même si les utilisateurs d'Ubuntu jouent un rôle important dans le packaging et la promotion d'Ubuntu, une équipe de développeurs payés permet de faire des choses qui rebutent des volontaires, comme s'engager a travailler sur des délais précis. Historiquement il semble que dans le logiciel libre, le développement d'interfaces graphiques ( et le desktop a été le fer de lance d'Ubuntu ) ait été traditionnellement pris en compte dans les versions "pros" développées par des programmeurs rémunérés , comme le montre le cas de Xen, MySQL. Les développeurs Ubuntu ont ainsi développe gnome-app-install un front-end graphique a apt-get très simple d'emploi.
  5. la prise en compte du phénomène communautaire des le debut
    Il fut un temps ou le topic du channel IRC #debian-fr sur freenode affichait lors de la connection:

    #debian-fr :Ce chan n'est pas un channel de support, ni d'entraide, ni rien, foutez le camp ||
    Si t'as besoin d'aide, c'est #debian-fr@oftc ou #debianfr ou #gcu||
    Merci de vous taire, vous ne servez à rien, alors fermez-là.||
    Ces propos ne doivent pas être pris pour insulte, on vous aime. sauf toi.

    Comme il l'explique sur la page du wiki Debian consacrée a Ubuntu, Benjamin "Mako" Hill a été embauche par Mark Shuttleworth spécifiquement pour organiser la communauté des utilisateurs et des développeurs, et donc prendre en charge les problèmes que peuvent susciter un topic de chat comme celui-ci. Venant de Debian où les "flame wars" sont fréquentes sur les listes de discussion, Mako a tout d'abord créé le Code de conduite Ubuntu pour la communication interne. Ce code de conduite reconnaît que les désaccords dans la communauté Ubuntu sont inévitables, mais essaye d'empêcher que ceux-ci deviennent des conflits majeurs.
    Ubuntu a aussi pris en charge lui meme la création de communautés locales d'utilisateurs, les LoCo teams via un Howto et un processus de validation qui les rend officielle vis a vis du reste du projet. Ces deux initiatives permettent rapidement au non-développeur de se sentir partie prenante du projet, sans savoir coder, et aussi de garder le controle sur les groupes officiels d'utilisateurs. Enfin Mako a mis en place les syndications de blogs pour Debian et Ubuntu qui sont devenus maintenant un des canaux de conversations courant des developpeurs.
Conclusion:
Ubuntu a finalement réussi là où Mandriva en France a globalement échoué, sur le terrain du user-friendly et de la communauté. Ubuntu cherche maintenant a étendre son développement dans le monde du serveur et de l'embarqué, usant en cela d'une stratégie faisant pensant a celle d'Opera. Opera propose gratuitement la version desktop de son navigateur web, et tire ses revenus de ses partenariats dans l'informatique embarquée. Reste a voir si ce mode de développement pourra fonctionner dans le cadre du logiciel libre.

Thursday, January 17, 2008

Comment communiquent les Unix Libres ? Comparaison entre NeBSD, Debian, Gentoo, Ubuntu

BSD Unix 4.2, le système unix contenant la première implémentation fonctionnelle de TCP/IP est sorti en 1983, il y a maintenant 25 ans. TCP/IP a suffisamment été bien conçu pour n'avoir jamais subi d'évolution majeure, le plus grand changement étant le passage a IPv6 qui commence seulement a atteindre le grand public, avec la recente offre de Free en France.

Par contre au niveau de la couche applicative, qui tourne au dessus de TCP/IP chaque année apporte son lot de nouveautés. Dans les années 80 TCP/IP a servi à échanger du courriel avec lendemains, des fichiers en mode texte avec FTP, et a se connecter sur une machine distante avec rsh et telnet. Puis à la fin des années 1980 et au début des années 1990 Usenet, via le protocole nntp est devenu le moyen de communication préféré pour échanger de l'information , et de nombreux projets de cet époque ont démarre suite a une annonce sur Usenet (Linux, Samba, CVS, Debian). En 1993 la sortie de Mosaic propulse internet dans le grand public, les sites web se multiplient. La popularisation d'internet dans le grand public entraîne alors une foule de nouvelles applications tournant autour de TCP/IP: en 1994 Netscape avec SSL rend possible les connections TCP/IP sécurisées, en 1995 RealPlayer popularise le streaming de musique et Ward Cunningham met en ligne le premier wiki, en 1996 sort UBB:Classic, le pionnier des forums web, en 1998 apparait OpenDiary la première plateforme d'hébergements de blogs, en 1999 l'apparition de Napster lance la vague du peer-to-peer, en 2002 Macromedia inclut dans Flash 6 un premier codec vidéo pour lire des vidéos en lignes, le social networking explose avec Facebook créé en 2004, et en 2007 le format de syndication Atom devient un standard officiel de l'IETF.

Les moyens de s'échanger de l'information, ne manquent donc pas, lesquels allons donc nous employer ? Tour d'horizon de NetBSD, Debian, Gentoo et Ubuntu.

NetBSD
NetBSD est intéressant à plus d'un titre. En effet de tous les unix libres existant, il s'agit du projet ayant l'histoire la plus ancienne, la première release de NetBSD remontant a Mars 1993.
La quasi totalité de la communication chez NetBSD se passe sur les listes de diffusion, archivées en ligne et remontant jusqu'en 1993. Les développeurs utilisent officiellement IRC depuis 2006 lors des "hackatons", des sessions de codage sur un point precis qui regroupent sur un channel IRC des développeurs du monde entier. Pendant longtemps NetBSD n'indiquait pas de channels IRC sur le site officiel, depuis la refonte du site en 2007 ils sont maintenant indiqués, ainsi que le wiki non-officiel de Zafer Eydogan.
Le site web de NetBSD est lui même entièrement écrit en XML avec DocBook, les pages html sont générées statiquement avec XSLT avant d'être mises en ligne. Sûrement le meilleur de ce qui peut se faire en terme de documentation ( standards, portabilité ) mais une barrière d'entrée assez forte pour les contributeurs potentiels. Le package NetBSD netbsd-www qui installe les dépendances requises pour l'environnement DocBook necessite l'installation de plus d'une quinzaine de paquets.
En résumé, on a donc surtout du mail et depuis peu wiki et IRC.

Debian GNU/Linux
Lancé en août 1993, Debian est aussi un des Unix libres les plus anciens encore en activité.
Le principal mode de communication de Debian est depuis toujours les mailing lists debian-devel et debian-users, ainsi jusqu'en 2006 que les debian weekly news de Joey Schulze. Les debian weekly news étaient essentiellement d'ailleurs un compte rendu des discussions importantes ayant eu lieu sur les mailing lists.
Debian est un grand utilisateur de chat IRC, depuis ses débuts. La fondation tutelle de Debian, SPI ( Software in the Public Interest ) patronne aussi le réseau OFTC, sur lequel les channels officiels IRC de Debian ont migré . Ce qui fait que Debian dispose presque de son propre reseau IRC.
IRC est par exemple utilisé par Debian lors de l'élection du leader du projet, avec un debat public sur IRC, et suscite des contreverses parfois aigues, ce qui montre l'importance qu'on lui accorde.
Debian dispose aussi d'une syndication des blogs des développeurs, gérée par Mako Hill, un développeur Debian et Ubuntu, avec environ 150 blogs actifs. Depuis peu le wiki de Debian est aussi devenu un support officiel de Debian ( passage de l'adresse de debian.net en debian.org) mais le contenu reste encore un peu maigre, et le look plutôt spartiate.
Enfin Debian dispose aussi depuis peu de forums web, bien qu'une partie des développeurs les ait critiqués comme non pertinents lors de leur lancement, rappelant que le développement comme le support de Debian doit pouvoir se faire entièrement en mode texte.


Gentoo
Quand on arrive sur le site de gentoo, par rapport aux deux ancêtres évoqués plus haut, on est tout de suite frappe par le design plus récent du site web, et la place accordée aux forums web, en quatrième position sur la barre de navigation. Les forums web de gentoo sont très populaires, actuellement plus de 110 000 utilisateurs, 10 fois plus que debian qui tourne autour de 11 000. IRC est également extrêmement populaire avec une impressionnante liste de channels allant de Komunitas Pengguna Gentoo Indonesia ( pour les utilisateurs de gentoo en indonesie ) au Gentoo Lisp related chat.
Cette popularité des forums web et d'IRC, ainsi que peut être l'age moyen des développeurs, fait que Gentoo est un des rares Unix libres, où il est plus fréquent de citer un développeur par son avatar que par son nom réel. Gentoo possède aussi comme debian, une syndication des blogs des développeurs, qui bien que moins fournie en flux rss/atom est plus mise en valeur par un lien direct sur la page d'accueil du site. Enfin Gentoo tout comme NetBSD ne possède pas de wiki officiel, mais d'autres ont su profiter de ce vide pour créer un wiki non-officiel particulièrement bien fourni.

Ubuntu
Dans le logiciel libre comme dans beaucoup d'autres domaines, on atteint le ciel en marchant sur les épaules des géants qui nous ont précédé. Ceci est particulièrement frappant pour Ubuntu. A son lancement Ubuntu a embauché un certain nombres de développeurs Debian et mis en place à son démarrage une infrastructure de gestion du projet qui est très proche de celle de Debian.

Interface web de navigation des paquets:

Debian: http://packages.debian.org/stable/shells/pdksh

Ubuntu: http://packages.ubuntu.com/gutsy/shells/pdksh

Nom de quelques listes de diffusion:
Debian: http://lists.debian.org
Ubuntu: http://lists.ubuntu.com

DebianUbuntu
debian-announceubuntu-announce
debian-develubuntu-devel
debian-userubuntu-users
debian-changesgutsy-changes

Le wiki Ubuntu est aussi basé sur moinmoin, tout comme le wiki Debian. Mais Ubuntu est allé beaucoup plus loin que Debian, en utilisant massivement le wiki depuis le début, le site initial d'Ubuntu étant lui même au départ une simple page wiki. La majeure partie de la documentation Ubuntu est contenue dans le wiki, et a permis une grande implication des utilisateurs des le début.
Canonical a finement joué dans l'organisation de la communauté des utilisateurs, en mettant en place un cadre général, dans lequel les utilisateurs peuvent ensuite s'auto-organiser suivant leurs intérêts. Les exemples les plus frappants sont les LoCoTeams, les groupes d'utilisateurs d'Ubuntu dans différents pays,
ou l'équipe Marketing. Les ubunteros peuvent aussi directement participer a l'écriture des spécification pour les releases suivantes d'Ubuntu, pétitionner sur telle ou telle feature, ou poster les logs de conversation IRC. Un simple compte sur le wiki suffit pour modifier ces documents, on est bien loin de la rigidité des droits de commits CVS, nécessaires par exemple pour contribuer a la documentation html de NetBSD.

Ubuntu possède aussi un nombre respectable d'utilisateurs sur les channels IRC, mais proportionnellement aux nombres d'utilisateurs la popularité d'IRC reste relative pour Ubuntu. Ceci est peut être dit au fait qu'IRC reste un médium pour utilisateurs de l'informatique avertis, contrairement aux forums webs.

Comparaison des utilisateurs d'IRC par projet, sur le canal #user
ProjetUtilisateurs sur EFnetUtilisateurs
sur Freenode
NetBSD51124
Debian GNU/Linux122791( +701 sur OFTC)
Gentoo179933
Ubuntu1761384

C'est sur les forums web que les utilisateurs d'Ubuntu se ruent avec le plus d'empressement: 480 000 comptes utilisateurs sur les forums anglophones ! 61 748 sur ubuntu-fr ! Si l'on cherche une preuve de la popularité d'ubuntu, elle est bien la. Au début de ce post je vous parlais de nouvelles technologies internet récemment popularisées: et bien Ubuntu possède un site (non-officiel mais mis en place avec l'equipe Marketing d'Ubuntu ) de streaming video, et fais même du social networking.
Comparer par exemple une page de launchpad et une page de myspace ? Photo, amis/karma, contact accessible seulement aux personnes membres du réseau ....
Le cas launchpad est suffisamment novateur, j'y reviendrai dans une post suivant. Rappelons seulement qu'a la différence des technologies sus mentionnées launchpad n'est pas un logiciel libre.

Conclusion:
Ce qui frappe dans ce tour d'horizon, c'est que les dates de lancement des technologies employées par les projets unix libres coïncident avec les dates de popularisation des technologies qu'ils emploient. Ainsi quand NetBSD est apparu le principal moyen de communication sur internet était le mail, et NetBSD en est resté peu ou prou la. Gentoo est apparu après l'explosion des forums web, et Ubuntu après le succès de Wikipédia. Il semble donc que les têtes de projets mettent un place une infrastructure correspondant a l'état actuel de la technologie au lancement du projet, et aient bien du mal ensuite a en sortir. Ceci est parfaitement compréhensible, mettre un place un nouveau moyen de communication, c'est devoir ensuite hiérarchiser pour savoir quel canal sera officiel, et lequel ne le sera pas. Et garder la communication sur les médiums que l'on connaît deja, c'est aussi garder plus facilement le contrôle sur le projet lui même.






Tuesday, January 8, 2008

De l'usage du wiki pour la documentation interne

Pendant longtemps a Cocoon Technologies, nous avons utilisé comme documentation de développement un répertoire de documents HTML, le tout dans un repository CVS et nous en étions globalement satisfaits.
Cependant cette documentation souffrait de plusieurs défauts:
  • obsolescence: comme dans beaucoup d'environnements de développement, les personnes qui écrivent le code se soucient assez peu de le documenter, ceci étant une tache ingrate et peu valorisante. Dans le monde du logiciel libre et non libre c'est un problème récurrent, mais pas inévitable. Par exemple les systèmes BSD sont excellemment documentés de même que le projet Gentoo Linux.
  • difficulté d'accès: il faut donc avoir un accès au moins en lecture au repository CVS de notre application, et donc les technico-commerciaux n'ont jamais un accès instantané a la dernière version de la documentation
  • difficulté de mise a jour: les développeurs écrivent directement le code HTML, sans utiliser d'éditeur WYSIWYG, ce qui demande un effort supplémentaire pour passer a l'écriture directe de la documentation.
Voici a quoi ressemblait une page de l'ancienne documentation:



Finalement nous sommes passes a un wiki, plus exactement a DokuWiki que je connaissais en bien pour l'avoir vu en action chez gcu squad. Cela permet de résoudre au moins les points 2, et 3 , et en résolvant le point difficulté de mises a jour, j'espère que le point obsolescence va s'améliorer.
Le grep dans les fichiers de documentation est donc maintenant remplace par la boite de recherche intégrée, et la gestion des révisions avec cvs -r se fait maintenant avec une interface web. L'aspect esthetique est bien sur a ne pas négliger avec des pages valides XHTML 1.0.

La même page dans Dokuwiki:



Le seul inconvénient que je vois a l'utilisation d'un wiki interne est la nécessite d'apprendre Yet Another Markup Language, mais peut être cela incitera plus les gens a contribuer a Wikipedia, dont la syntaxe wiki est très proche.

Thursday, January 3, 2008

Pourquoi utiliser ext3 comme systeme de fichiers

A cause de ca:


kernel BUG at mm/slab.c:3434!
invalid opcode: 0000 [#1]
SMP
Modules linked in: nfs lockd nfs_acl sunrpc ppdev lp smbfs button ac battery ipv6 nls_iso8859_1 isofs ext3 jbd mbcache dm_snapshot dm_mirror dm_mod loop snd_via82xx snd_ac97_codec snd_ac97_bus snd_pcm_oss snd_mixer_oss i2c_viapro snd_pcm snd_page_alloc snd_mpu401_uart tuner snd_seq_dummy snd_seq_oss tsdev snd_seq_midi snd_seq_midi_event snd_seq via_ircc saa7134 irda video_buf compat_ioctl32 ir_kbd_i2c analog crc_ccitt shpchp pci_hotplug via_agp agpgart i2c_core ir_common snd_timer snd_rawmidi snd_seq_device floppy videodev v4l1_compat gameport rtc parport_pc parport v4l2_common psmouse serio_raw pcspkr snd soundcore evdev xfs ide_generic ide_cd cdrom ide_disk uhci_hcd usbcore via82cxxx generic ide_core via_rhine mii thermal processor fan
CPU: 0
EIP: 0060:[] Not tainted VLI
EFLAGS: 00010206 (2.6.18-5-k7 #1)
EIP is at kmem_cache_free+0x36/0x6d
eax: 80000080 ebx: ef32f9c0 ecx: ef7ff7a0 edx: c122fbc0
esi: eeee0804 edi: d17de834 ebp: 00000001 esp: eee07f34
ds: 007b es: 007b ss: 0068
Process xfssyncd (pid: 966, ti=eee06000 task=ef2c5550 task.ti=eee06000)
Stack: ef32f9c0 eeee0804 00000000 f096abe4 ef32f9c0 f0982e72 00000002 ef32f9c0
e38eb560 eee89530 eee89400 f0982ef0 00000001 00000000 00000000 eee89400
00000071 f097fe7d 00000000 eee07f94 00000002 eee89400 f09800a8 eee07fb8
Call Trace:
[] xfs_idestroy+0x4f/0x5c [xfs]
[] xfs_finish_reclaim+0x106/0x10e [xfs]
[] xfs_finish_reclaim_all+0x76/0xaa [xfs]
[] xfs_syncsub+0x51/0x227 [xfs]
[] xfs_sync+0x0/0x17 [xfs]
[] xfs_sync+0x15/0x17 [xfs]
[] vfs_sync+0x17/0x1a [xfs]
[] vfs_sync_worker+0x17/0x31 [xfs]
[] xfssyncd+0xba/0xfa [xfs]
[] xfssyncd+0x0/0xfa [xfs]
[] kthread+0xc2/0xef
[] kthread+0x0/0xef
[] kernel_thread_helper+0x5/0xb
Code: c1 ea 0c 56 c1 e2 05 03 15 90 23 37 c0 53 8b 02 f6 c4 40 74 03 8b 52 0c 8b 02 84 c0 78 08 0f 0b 53 02 81 e0 29 c0 39 4a 18 74 08 <0f> 0b 6a 0d 81 e0 29 c0 9c 5e fa 89 e0 25 00 e0 ff ff 8b 40 10
EIP: [] kmem_cache_free+0x36/0x6d SS:ESP 0068:eee07f34


J'avais installe XFS sur un serveur non critique pour voir un peu. Après un mois et trois-quatre coupures de courants, c'est la deuxième fois que j'ai mon système de fichier corrompus. Un système de fichier journalisé n'était il pas censé minimiser ce genre de problème ? Je n'ai jamais vu ça en tout cas avec ext3 sous Linux et soft updates sous BSD. Comme le dit le maintainer de ext3, le job n°1 d'un système de fichiers est de conserver les données, la vitesse vient seulement après.

Tuesday, January 1, 2008

Faire bon usage de usage de google mail

Il y a peu, le RAID 5 du serveur de mail de no-log a crashé, entraînant en ce me qui concerne la perte de 200 mails. Bien que no-log soit de l'associatif sympa et je soutiens leu démarche, j'ai fini par créer une adresse gmail. Mais qui adresse gmail ne dit adresse finissant par gmail.com ....

Utiliser google sans leur faire de publicité:
  1. créer une adresse email standard sous google, la mienne est par exemple iron.maedels
  2. créer sur mailclub.fr une adresse de redirection. Mailclub possède des dizaines de nom de domains differents et la faire pointer sur l'adresse google. J'utilise un alias soleil.org depuis maintenant plusieurs années, le spam de leur part est inexistant et le service tres bon.
  3. créer une identité supplémentaire sur gmail avec votre alias mailclub et activer pop/imap
  4. Paramétrer Thunderbird pour utiliser votre compte gmail, avec comme identité votre alias mailclub.
et voila vous avez maintenant 6 GB de mails a stocker sur des serveurs dont l'uptime, est hum, plutôt bon.
De plus vous pouvez toujours paramétrer votre alias mailclub sur un autre compte mail si ça vous chante, vous n'êtes pas lies a vie avec google.