Authentification pour Atom

Atom est un protocole de syndication de contenu concurrent de RSS. Il s’agit d’une invention bien pensée (quoique la méfiance de ses concepteurs à l’égard de RDF me laisse perplexe) mais dont le succès reste à mesurer. Toujours est-il qu’il fallait bien accompagner ce protocole d’une solution convenable pour assurer l’authentification des agents aggrégateurs de contenu. Et comme l’authentification HTTP basique ne pouvait pas convenir, Atom recourt à une extension de cette authentification appuyée sur la technologie WSSE. Résultat : une authentification HTTP qui ne requiert ni installation de modules Apache, ni accès aux fichiers .htaccess et permet une utilisation en environnement mutualisé, via des CGIs, le tout avec un bon niveau général de sécurité.

Carnets Web en entreprise

Les carnets Web font progressivement leur apparition dans le monde de l’entreprise. Ils viennent notamment prendre la place des « cahiers de labo » et autres carnets à spirale qui ne quittent pas les mains des ingénieurs et autres cadres en réunion et dans lesquels ceux-ci prennent note de l’avancement de leurs travaux, de leurs idées, des questions qu’ils se posent, des points restant à travailler. L’émergence de ce type d’outils se ferait « en douce », de la même manière que la messagerie instantanée est arrivée sur le poste de M. Tout le Monde avant que les responsables informatiques ne se saisissent du sujet.

Qu’est-ce que le couplage faible ?

Qu’est-ce que le « couplage faible » ? Le couplage faible, c’est « comme la pornographie » : tout le monde en parle, mais c’est bien difficile à définir :

Je n’essaierai pas aujourd’hui de définir ce qu’est la pornographie… mais je sais que c’en est lorsque j’en vois.

Citation du juge Potter Stewart de la Cour Suprême des USA dans l’affaire Jacobellis contre l’Etat d’Ohio, en 1964.

REST vs. RPC ou REST + SOAP ?

Sur Interwingly, on a essayé de réconcilier le style architectural « REST » et les technologies d’appel à des procédures distantes (RPC). Les arguments d’une possible réconciliation sont les suivants :

  • croire que faire du HTTP GET suffit pour faire du REST, c’est une erreur
  • croire qu’avec SOAP, on ne peut faire que du RPC, c’est une erreur
  • si vous êtes un RESTafarien, vous devriez vous demander pourquoi la plupart des systèmes de bases de données relationnelles modernes incluent un mécanisme de procédure stockée (l’équivalent du RPC)
  • tout serait question d’enveloppe : qu’est-ce que je mets dessus (la référence de ce que j’invoque) ? qu’est-ce que je mets dedans (les paramètres…?)
  • si vous êtes dans le cas d’une application pour laquelle il faut privilégier l’évolutivité (« scalabilité ») et pour laquelle les données sont davantage en lecture qu’en écriture (tiens, ça fait penser aux annuaires LDAP, ça), alors l’approche REST s’impose
  • si vous êtes dans le cas d’une application pour laquelle il convient de gérer des écritures/mises à jour non atomiques, alors c’est peut-être dans SOAP que réside votre solution
  • un point fort de REST par rapport à SOAP + WSDL, c’est la facilité avec laquelle on peut lier des ressources entre elles
  • un point fort de SOAP par rapport à REST serait un gain de performance similaire à celui-ci qui résulte de l’emploi de procédures stockées dans le cas d’une base relationnelle

Bloguons le marché

Le cluetrain manifesto annonçait avec les mots de l’ancienne nouvelle économie que le marketing nouveau prenait la forme de conversations, que les nouvelles technologies permettaient d’abattre la façade commerciale « langue de bois » des entreprises telles qu’on les connaît, que demain, le ciel serait plus bleu et l’herbe plus verte. Dans le même esprit mais de manière plus pragmatique, « Blogging the market » fait le point sur l’émergence des carnets web en tant que support privilégié de la « relation client ».

SolutionsLinux 2004

Ouhla, la, quel salon que Solutions Linux 2004 ! Rien de que des gens très intéressants :

  • le directeur d’une SS2L qui a atterri à ce poste après de nombreuses années de bons et loyaux services au sein d’un groupe du CAC40 qui m’emploie actuellement et qui est réputé pour sa gestion « bon père de famille », ou comment reprendre une société qui a été mal en point en nommant à sa tête une personne incarnant l’idée de « croissance durable »,
  • un réseau d’ « entreprises agiles » (Ingeniweb, Pilot Systems, Blue Dynamics, …), les Zope Service Providers de l’EuroZope Association, animé par le gourouisé Paul Everitt
  • Paul Everitt lui-même, qui non seulement déniche grâce à son réseautage permanent des projets commerciaux qui me font baver d’envie, mais prophétise également avec conviction un bel avenir pour les ZSP
  • d’autres spécialistes Zope mais qui n’ont pas rejoint le courant Plone ; je retiens notamment le travail de la société Emencia sur le léger Zwook ; Zwook cible la gestion de contenu plus bas de gamme que Plone (ce n’est pas péjoratif) : morale de l’histoire, bien que moins flexible et moins puissant, Zwook offre des fonctionnalités intuitives (quoique d’ergonomie moyenne) qui permettent par exemple de créer/modifier des skins via le Web sans avoir à toucher une ligne de code (sans bidouilles les ZPT ni même les CSS). Mais ce n’est sans doute qu’une question de temps avant que Plone propose quelque chose d’équivalent.
  • la SS2L (Société de Services en Logiciels Libres) Linagora qui m’a impressionné par son expérience autour de la gestion d’annuaires ; ils semblent avoir développé une approche open source de la problématique de la gestion des droits ainsi que de l’intégration de données d’annuaires (méta-annuaires) qui semble empreinte de pragmatisme, mais si elle manque de maturité pour donner lieu à la distribution de produits bien packagés pour y répondre.
  • des copains d’école ! Chez Nexen, on fait aussi dans la « croissance durable » et leur réputation dans le monde PHP francophone n’est plus à faire ; on annonce la publication d’un magazine ciblant les usages de PHP dans le monde de l’entreprise… prometteur !
  • une preuve vivante que le monde est petit : sur le stand de mes copains d’école, j’ai croisé un type qui a eu le culot de me prétendre que l’offre de Gitoyen était pourrie et que les gens de Globenet étaient tous des nazes incompétents alors que primo ce sont aussi des copains à moi et secondo j’admire leur présence au sein le monde associatif ; il m’a suffit de l’entendre pour comprendre qu’il s’agissait du dévoué Benjamin, maître des systèmes de Globenet ! heureux d’avoir enfin pu mettre un visage sur ton nom Benjamin.
  • le Monsieur Linux d’IBM pour l’Europe de l’Ouest avec qui j’ai eu une discussion très intéressante sur l’avenir de l’open source vu par LE géant de l’informatique : linux est un standard incontournable pour qui veut maintenir son leadership sur le marché. Par contre, autant les solutions open source pour l’infrastructure et la sécurité ont fait leurs preuves, autant l’offre open source sur la couche applicative n’est pas encore assez visible sur le marché pour retenir l’attention des titans. Et c’est délibérément qu’IBM ne veut pas anticiper les choses en la matière et se contente de se concentrer sur l’infra, en lorgnant un peu du côté du poste de travail histoire de suivre les initiatives de Novell et de SUN. D’où la juste prophétie de Paul Everitt :
    I picked a deal size (50-250k) that excludes the Sapients and IBMs. That’s just too small for their radar. Which is good, because (sadly) as open source crosses the chasm into the mainstream market, the new customers are going to want a cathedral on the supplier side to balance the bazaar on the software side.
    I say sad, because it means spectators will show up, after all the small companies did all the work, and these big boys will take all the money. I think this is unfair. But, so what, life is unfair, and this happens all the time.

  • des gens de chez Jouve, tiens, tiens… mais eux aussi intéressés sans doute avant tout par les offres pour l’infrastructure plus que pour l’applicatif

Bref, un salon stimulant et qui promet des années à venir riches en rebondissements pour l’avenir de l’open source dans la couche applicative.

Modèles économiques du logiciel libre

Jacques Prades compare le modèle organisationnel et économique des « Community Development Corporations » (coopératives territoriales à but social) et celui des logiciels libres (open source). Il explique que si les modèles économiques keynesiens de fixation d’un prix par les mécanismes d’équilibrage de l’offre et de la demande ne s’appliquent pas efficacement aux logiciels libres (les licences d’utilisation sont gratuites), ce n’est ni faute d’offre ni de demande ; les mécanismes d’auto-renforcement des technologies de réseau se révèlent plus efficaces :

l’information a ceci de particulier que lorsqu’on ne connaît pas l’information, on ne veut pas la payer puisqu’on ne voit pas pourquoi on payerait quelque chose qu’on ne voit pas ; et lorsqu’on a l’information, on ne voit plus pourquoi on la payerait puisqu’on la possède. […] lors de l’échange d’un bien matériel, celui qui acquière perd l’objet tandis que pour un bien immatériel, celui qui vend l’information la conserve […] Si personne ne veut en payer le prix, alors chacun peut collaborer à la construction de cette information en échange de quoi il jouit de son usage. Or, plus la communauté s’agrandit sur cette base et plus l’utilité de la technologie progresse selon les mécanismes d’auto-renforcement des technologies de réseau. Et comme le coût d’entrée dans la communauté est faible, il n’y a pas de raison pour que cela s’arrête.

Clavier virtuel UNICODE

Pour faire un annuaire international qui identifie les gens de manière permanente (même si la personne s’en va et revient, on sait que c’est bien la même personne), rien de mieux que de s’appuyer sur le prénom, le nom et la date de naissance de l’individu. Quel nom ? Le nom d’état civil de naissance et pas un autre. Dans quel alphabet ? Dans l’alphabet « officiel » de l’état civil de naissance de l’invididu ! En effet, M. Müller en Allemagne risque de se faire appeler M. Mueller en France. Et telle personne née en Chine aura du mal à faire saisir sous nom sous forme idéographique dans un système de paye français… Morale de l’histoire, il faut recourir à la translitération et normaliser celle-ci (ISO proposent un certain nombre de normes en la matière). Mais les difficultés ne sont pas terminées. Car pour pouvoir garantir la normalité de la translitération, il est nécessaire de ne pas laisser tout un chacun procéder à la translitération. Il est donc nécessaire de disposer d’un service centralisé de translitération (une appli web). Et pour pouvoir tout de même saisir les prénom et nom de l’individu dans son alphabet d’origine dans cette machine à translitérer, encore faut-il pouvoir saisir des caractères et idéogrammes non supportés par le clavier de l’opérateur de saisie. Là encore, il y a des solutions : les claviers virtuels UNICODE. Ces petits morceaux de code permettent d’afficher un clavier virtuel dans un navigateur Web, clavier supportant tous les jeux de caractères existant (dans la norme UNICODE). Voici les claviers virtuels UNICODE que j’ai repérés :

Ticle and Rope

The Ticle project is going on. It tries to add semantic abilities to Plone. But do the Ticle guys realize that they are kind of reinventing RDF ? or is it just me ? Wouldn’t they better rely on an existing RDF implementation as the ROPE project is trying to do on a lower layer (trying to equip Zope instead of Plone) ? I’m confused… and impatient to see a semantic Plone (or even Zope) in action ! Anyway, keep on the enthusiastic work guys !

Isonymie ! Isonymy !

Quel bonheur (tout est relatif) ! J’ai trouvé la clef qui va me permettre d’évaluer la probabilité de doublons dans les identifiants que nous utilisons pour nos annuaires… La clef, c’est le terme d' »isonymie ». Ce terme désigne le concept de doublon de patronyme et permet d’évaluer la probabilité que dans un ensemble donné d’individu (un annuaire), il existe deux personnes physiques ayant le même nom de famille. Je cherchais comment évaluer cette probabilité, et c’est en cherchant « patronymes probabilité » sur Google que j’ai trouvé le terme académique : « ISONYMIE ». L’étude de l’isonymie à travers les différentes régions du monde permet d’évaluer cette probabilité de doublons. Pour en dire plus sur l’utilité de la chose : cela permet d’évaluer le risque de doublon d’identifiant calculé à partir des données signalétiques d’un individu. « C’est-à-dire ? » me demandez-vous …
Allez, je vous dis tout : dans un (gros) annuaire de personnes, plutôt que d’attribuer des noms d’utilisateurs sur une concaténation de morceaux du prénom et du nom (jchirac, jacquesc), ou bien afin de créer un matricule dont l’unicité est garantie (même si elle n’est pas absolue), il est souhaitable d’utiliser un algorithme de hashage que l’on applique à certaines informations signalétiques intangibles de l’individu (avec toutes les mesures de protection de la vie privée que cela impose) : prénom et nom (d’état civil, de naissance et sous forme translitérée) et date de naissance. La probabilité de collision de matricule et donc de nom de connexion est calculable à partir des taux d’isonymie observés dans le monde et à partir de la probabilité de collision générée par l’algorithme de hachage (elle-même calculée par le théroème des anniversaires). Il me manquait la première de ces données car j’ignorais le terme d’isonymie et nous n’arrivions pas à trouver des données statistiques sur les probabilités de doublons de patronymes. Maintenant que l’on a tout ça, ya plus qu’à !

Economie solidaire et TIC

Jacques Prades, de universitaire toulousain, étudie la faisabilité de l’exploitation des technologies de l’information pour le bénéfice de projets relevant de l’économie solidaire. Il évoque le « bluff technologique » des discours sur la « démocratie électronique », les « autoroutes de l’information », les « technopôles » ou la « fracture numérique » et considère que :

utilisées sur des terrains en marge où cherchent à se construire de nouvelles socialités, les nouvelles technologies peuvent participer à des logiques économiques novatrices lorsque l’outil nourrit un projet politique.

Jacques Prades place le développement des TIC comme la poursuite du mouvement de la révolution industrielle, qui a permis l’apparition des prothèses physiques que sont les machines mécaniques, les TIC offrant des prothèses cognitives.
Inspiré par l’image des prothèses cognitives, je soumets à votre sagacité une autre image, mais de mon invention : celles des machines cognicoles. Cette idée consiste à établir un parallèle entre d’une part la mécanisation de l’agriculture qui a permis de passer d’une agriculture « artisanale » à faible productivité à l’agriculture « industrielle » moderne (avec toutes les problèmes sociales et économiques associées et d’autre part l’informatisation de l’économie des services. Plus particulièrement, dans un domaine comme le développement open source, qui me semble relever de mécanismes de développements à caractère d’artisanat à grande échelle, n’y a-t-il pas une opportunité de gains de productivité grâce aux « machines cognicoles » que constituent des outils comme les wikis, les logiciels de bug tracking (bugzilla, …), les logiciels de gestion de source ? De même que l’on parle d’agriculture, peut-on parler de cogniculture pour désigner l’activité qui consiste à produire, manipuler et transformer des savoirs ? Je pense par exemple aux activités d’enseignement, de formation, de conseil, de création de contenus, de recherche, de création de logiciels. Fermons la parenthèse pour poursuivre avec Jacques Prades…
Il évoque le risque de glissement de motivation qui menace les structures de l’économie solidaire :

plus l’activité devient pérenne et plus le fonctionnement quotidien de l’activité économique l’emporte sur le combat politique, phénomène renforcé par l’observateur qui tend à gommer l’acte militant pour ne retenir que les logiques qui fonctionnent. Ces logiques sont toujours tiraillées par l’attraction du marché qui garantit une autonomie de décision vis-à-vis de l’Etat et celle de l’Etat qui tend à institutionnaliser les structures.

Jacques Prades présente ensuite un panorama de l’économie solidaires en distinguant différentes structures économiques dont le mobile est d’ordre politique : des entreprises « classiques » se prétendant solidaires en se dotant de chartes éthiques, l’Etat qui adopte une gestion associative des politiques publiques en déléguant à des associations certaines de ses prérogatives « solidaires », les structures combinant marché et Etat telles que les crèches parentales et les régies de quartier, et certaines structures coopératives innovantes (LETS, …).
La différence principale entre l’économie « classique » et l’économie « solidaire » relèverait de la relation de ces structures à l’innovation. Pour les structures de l’économie classique, l’innovation est un moteur de profit car elle permet le captage de rentes temporaires. Et cette innovation peut être radicale, d’où l’importance managériale de la conduite du changement. Pour les structures de l’économie solidaire, l’innovation est la traduction immédiate d’un mobile politique. Elle porte généralement sur des objets sociaux (innovation sociale). Mais sa mise en oeuvre est rendue plus difficile par des pratiques managériales d’ordre démocratique. Elle prend donc la forme d’innovations incrémentales ou « secondaires ».
L’innovation dans l’économie solidaire émergerait à la frontière entre différentes catégories : à la frontière entre le marchand et le non marchand (l’acteur public gérant des objectifs de marché, et l’acteur privé abusant des ressources publiques), à la frontière entre producteur et consommateur (avec l’émergence de mode de production « raisonnés » et de modes de consommation « militants »). Le modèle de développement des structures d’économie solidaire serait basé sur la multiplication des structures (développement en rhizomes) plutôt que par grossissement par investissement fondé sur des économies d’échelle.
Cette dernière idée suggère que l’application sur le champ de l’économie solidaire des techniques classiques de financement par capital risque ne serait pas pertinente. Pourtant, ces tentatives se multiplient (voir aussi ceci).

Développement externalisé à l’offshore

Vincent Massol, un ancien d’Octo Technologies semble-t-il, fait le point sur l’utilisation des méthodes de développement dites « agiles » dans le cadre de projets de développement externalisés à l’offshore. J’avoue que je n’ai pas encore consulté cet entretien (video). Mais j’ai déjà lu la discussion qui s’en est suivie. J’en retiens les points suivants :

  • les outils d’issue tracking jouent un rôle déterminant dans la mise en place d’un processus efficace de communication avec le sous-traitant
  • à l’offshore, il est plus difficile (voire impossible) pour un chef de projet de deviner l’aisance ou les difficultés rencontrées par les développeurs au quotidien ; d’où le risque de passer à côté d’erreurs graves
  • même en faisant des itérations rapides (livraisons toutes les 2 semaines), il est nécessaire de formaliser (via UML par exemple) les use cases de manière détaillée à chaque itération
  • de fréquents voyages allers-retours sont nécessaires
  • l’équipe offshore doit avoir un chef d’équipe : il n’est pas possible de gérer des relations individuelles multiples à distance
  • il est nécessaire d’avoir des cycles de livraisons courts et d’intégrer chaque livraison de manière continue
  • les tests doivent constituer « l’ultime documentation »
  • les décalages horaires constituent davantage un frein qu’un facteur positif
  • les logiciels de messagerie instantanée sont un moyen très apprécié de coordination quotidienne
  • dès qu’une personne sur site doit travailler en relation avec une personne distante, il est nécessaire d’organiser une rencontre physique préalable faute de quoi la relation interpersonnelle ne peut s’établir correctement et le travail échoue
  • le moindre détail doit être documenté, jusqu’à la position de chaque bouton à l’écran, la police des libellés affichés, etc. faute de quoi la société offshore qui travaille au forfait fournira un résultat ayant des « finitions » défectueuses
  • il est souhaitable d’organiser une réunion quotidienne d’une durée d’au moins une demi-heure avec téléphone + videoconf ou chat + videoconf, à l’heure qui convient le mieux aux deux équipes ; cette réunion doit être préparée à l’avance chaque jour et, sauf exception planifiée, la réunion doit s’interdire tout travail du type « brain storming » (ce n’est pas une réunion de créativité)
  • les échanges en vue de créativité « brain storming » doivent avoir lieu sous forme de texte (wikis, mails, chat, …)

Le carnet Web DCLab fournit des notes et indications complémentaires pour bien travailler avec des sociétés à l’offshore.
Mais… j’apprends que ma société revient sur ses ambitions initiales d’externalisation à l’offshore et adopte un discours plus prudent suite à quelques expérimentations et, surtout, suite à l’apparition d’objectifs stratégiques considérés comme plus prioritaires que l’externalisation à l’offshore. Les inquiétudes sociales liées à la délocalisation d’emplois informatiques contribuent sans doute à ce revirement. Est-ce un signe des temps ? Le signe que les sociétés ajusteraient leurs ambitions aux possibilités réelles des modes de fonctionnement avec des sociétés offshore ? Ou bien le signe d’une prudence dans le discours pour ne pas effrayer la populace ? Ou tout simplement le signe que le gain à espérer de l’externalisation à l’offshore ne suffit pas à placer ce genre d’opérations parmi les top priorités d’une direction informatique ? L’avenir le dira sans doute.