Archives pour la catégorie Informatique

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.

Usages des technologies du web sémantique

L’éditeur Intellidimension (dont on peut regretter que les très intéressants produits constituent une offre tellement fermée qu’elle ambitionne de remplacer les environnements d’exécution du type PHP), présente un rapide panorama des principaux usages des technologies du Web Sémantique : l’intégration de l’information d’entreprise (EII), les portails d’information d’entreprise (EIP), la GED, la business intelligence, la syndication de contenus, l’agrégation d’actualités, les carnets Web, les outils de Personal Information Management.

Des téléphones-appareil photo pour scanner des codes-barres

Network Edge signale que plusieurs éditeurs logiciels proposent des solutions pour transformer votre téléphone portable-appareil photo numérique en scanneur de codes-barres. De multiples applications en perspectives, impliquant la collaboration d’éditeurs de contenu, à commencer par le marketing produit dans la distribution : dans un magasin, vous scannez avec votre téléphone portable le code-barre d’un produit que vous envisagez d’acheter et le fabriquant ou le distributeur vous propose des informations produits complémentaires voire vous recommande d’autres produits, etc.

Sortir de Microsoft Access

Comment extirper le contenu (tables, requêtes, formulaires, états, macros, modules, …) d’une base Access pour le faire migrer vers une base plus saine en vue d’en faire une appli Web ? Il existe plusieurs logiciels qui permettent d’effectuer l’opération d’export :

  • MDBTools, logiciel libre (licence GPL) en version beta, fonctionne sous linux
  • DBTools, freeware qui permet d’importer dans MySQL des schémas et données provenant d’Access, sans requérir de connexion ODBC
  • MySQLFront, freeware similaire à DBTools, permet d’importer des schémas et données dans MySQL, requiert une connexion ODBC à Access, mais ne serait plus supporté par son auteur
  • Access converter, Java Edition, 695$, convertit en Java les macros, modules et autre code VB d’une application Access, convertit les états Access en états Crystal Reports, mais ne semble pas faire migrer les tables et requêtes
  • Access to MySQL v.1.5, shareware à 39.85 $, fonctionne sous Windows, n’extrait que les tables (et sans les jointures), importe le schéma dans une base MySQL
  • MyAccess, shareware. de 30$, add-in pour Access qui convertit le schéma de données en schéma MySQL à condition de disposer d’une connexion ODBC vers la base MySQL cible, ne semble faire migrer que les tables et peut-être les requêtes

Une explication de la problématique de migration d’applications Access est proposée ici. Voir aussi ceci.

Ontology Works

« Ontology Works » fait partie de ces quelques éditeurs de logiciels pionniers dans l’intégration sémantique de données. Cette société commercialise une boîte à outils composée de :

  • un environnement intégré de développement d’ontologies
  • un « fédérateur » dont la fonction est de router des requêtes vers les différentes bases de données intégrées dans le dispositif, à la manière d’un « bus de connaissances »
  • un système de base de données dit « déductif » (et non relationnel) privilégiant la flexibilité et le support des natifs des ontologies à la performance
  • un générateur de schémas de données pour bases relationnelles de manière à rigidifier sous une forme performante (relationnel) un modèle de donnée incarnant des ontologies et donc accessible facilement depuis le « bus de connaissances »
  • un « médiateur » rendant une base relationnelle existante accessible depuis le fédérateur de requêtes (bus)

Cette boîte à outils est un étrange mélange entre d’une part des outils ressemblant aux modélisateurs et générateurs de code à la Rational Rose et d’autre part des composants rappelant les moteurs de jointure et connecteurs des méta-annuaires.
Je regrette qu’il ne s’agisse que d’une boîte à outils « pour l’entreprise » qui suppose notamment que l’entreprise utilisatrice hiérarchise ses ontologies comme autant d’extensions locales d’une ontologie globale. Le dispositif n’est pas apparemment pas conçu pour faciliter le traitement des incohérences ou des contradictions entre ontologies. Par ailleurs, Ontology Works semble faire un usage abusif du terme « OWL ». Chez eux, OWL désigne un « Ontology Works Language » qui n’a peut-être rien à voir avec le « Ontology Web Language » du W3C. De plus, l’offre de cette société semble s’ancrer directement sur XML, sans passer par la case RDF. Ceci explique-t-il cela ?
Pour en savoir plus sur l’offre d’Ontology Works et les concepts tels que le « bus de connaissances », l’intégration sémantique de données, les caractéristiques des bases de données déductives et le rôle de la gestion d’ontologies dans l’entreprise, la foire aux questions de cette société se révèle une source d’information très didactique.

Formations Python/Zope/Plone

En 2004, une série de formations Python/Zope/Plone est organisée sur quatre continents par une coallition de huit sociétés prestataires de services spécialisés dans ces technologies. Le cursus complet représente 15 jours pleins (depuis l’initiation Python jusqu’au développement avancé avec Zope et Plone). Les pays dans lesquels ce cursus sera enseigné sont l’Afrique du Sud, la Suisse, l’Allemagne, le Danemark, Irlande, la Grande-Bretagne, l’Australie et les USA (Californie). Ces formations auront lieu, pour la plupart, dans le premier semestre 2004.

How to aggregate news from wiki sites

Wiki engines often provide RecentChanges pages that list the wiki pages that were recently modified on a given site. These wiki engines progressively include a syndication feature that publish a RSS feed reflecting this RecentChanges content. But they may not implement syndication properly. Therefore, in a discussion about the ZWiki engine syndication feature, I posted the following enhancement request :

This is an enhancement suggestion for the RSS feeds above (I don’t
feel confident enough in my Zope/Zwiki skills to implement it right
now, and I am a little bit to lazy to do it…). My suggestion is
that, in these feeds, the URL of an RSS item should not be the URL of
the wiki page but the URL of the last historical revision of this
page.
Example : when the page MyPage has been modified, the RSS file should
not link to http://www.mysite.com/MyPage but to
http://www.mysite.com/MyPage/HistoricalRevisions/850.15891.51176.22809
Explanation : The current RSS feeds (see above) link to MyPage. Let’s
say that 5 users change MyPage in the morning of a given day. The
problem is that my RSS aggregator will check the RSS feed, let’s say,
once a day at noon. Then, my RSS aggregator will link to MyPage and
may provide a link to the latest diff of MyPage. It is OK. But, during
the afternoon, 5 additional users come and further change MyPage.
Then, when my RSS aggregator checks the RSS feed again (the day
after), it will not notice that further changes have happened to
MyPage ! The current RSS feed does not allow the aggregator to detect
that new changes have happened because the current RSS feed is not
using the proper resource. The current resource used is the page
itself whereas the paradigm of syndication/aggregation suggests that
the proper elementary resource is the message (the revision or the
diff itself). Or the users of aggregators may not be notified of
recent changes of the wiki resources. And wiki pages will only appear
in a given aggregator once during their whole life. Further changes
may be ignored by the aggregator (because it may say : « I already have
aggregated this URL before ») which is not a good thing and which is
not the fault of the aggregator !
What do you think ?

Another step toward a semantic wiki / bliki / bloki / wikilog

L’agrégation de contenus raconté par la FING

La Fondation Internet Nouvelle Génération a publié une interview de deux promoteurs francophones des technologies informatiques de syndication puis d’agrégation de contenus (formats RSS). Quelques extraits :

…les agrégateurs de news sont en train de modifier notre façon de collecter et d’organiser l’information numérique.

Les gros sites d’information n’ont pas à s’inquiéter s’ils se contentent de mettre les titres et résumés des articles dans leurs sources RSS. Les lecteurs doivent toujours aller sur le site Web pour lire l’article, et les publicités affichées sur le site. Les éditeurs doivent donc saisir l’opportunité de tester sans grand investissement une source RSS sur une zone de leur site. RSS est si simple à mettre en oeuvre que ça ne sert à rien de tergiverser pendant des mois, essayez et analysez l’impact

RSS constitue une alternative aux newsletters email :

Avec RSS, […] c’est l’utilisateur qui contrôle son abonnement. […] vous pouvez surveiller les actualités d’un volume de sites beaucoup plus important. Ceci sans le stress associé aux emails. […] Les newsletters email sont […] de plus en plus vécues comme une agression […]

Et la boucle de la production-syndication-agrégation de contenus est bouclée grâce aux carnets web :

Grâce à RSS, chacun peut en effet à la fois publier sa propre source d’informations et s’abonner à d’autres sources.

Comparaison des éditeurs HTML WYSIWIG en ligne

Les éditeurs HTML WYSIWIG (What You See Is What You Get) en ligne sont des logiciels qui permettent à des utilisateurs de mettre en forme des pages Web simplement à l’aide de leur navigateur Web habituel, sans avoir à installer de produit sur leur poste de travail (sans avoir à installer des produits tels que Dreamweaver de Macromedia par exemple). Pour faire plus simple, on appelle ces logiciels, des éditeurs TTW (Trough-The-Web). Cette étude universitaire compare les meillleurs éditeurs TTW actuels, parmi lesquels le fameux Epoz.

Le meilleur / le pire de la gestion de contenu

CMSWatch a établi une synthèse des principales fonctionnalités attendues pour un logiciel de gestion de contenu et a attribué des mentions aux principaux produits du marché. Pour prendre deux produits que je connais, voici ce qu’il en sort :

  • Teamsite d’Interwoven : bon en « services de bibliothèques », et en dynamisme du club des utilisateurs, mauvais en gestion des utilisateurs et des rôles, en gestion des métadonnées et des taxonomies
  • Zope : bon en gestion des utilisateurs et des rôles, en indexation et capacité de recherche, en niveau de compétences des équipes de support, en « Good Value » (va savoir ce que ça veut dire…), mauvais en gestion des métadonnées et des taxonomies et en ergonomie

Un commentaire personnel : le fait d’avoir rangé Zope parmi les outils de gestion de contenu me semble démontrer une mauvaise connaissance de Zope, de la part de CMSWatch. En effet, Zope n’est pas un produit de gesion de contenu mais un serveur d’application (ou encore un environnement d’exécution). Certes, Zope est souvent utilisé pour construire des applications de gestion de contenu. Mais si CMSWatch avait voulu faire un travail vraiment professionnel, ils auraient noté Plone plutôt que Zope. Plone est effectivement un produit de gestion de contenu. Du coup, Plone n’aurait sans doute pas eu de point négatif en matière d’ergonomie puisque la qualité de son interface utilisateur est justement l’un de ses principaux points forts (sans compter tous les avantages du serveur Zope sous-jacent).

Comprendre REST

Pour répondre à une question posée sur ce carnet, voici ma collection de liens vers les ressources que j’ai trouvées les plus abordables pour comprendre ce qu’est le modèle architectural REST (REpresentational State Transfer) (par ordre décroissant de digestibilité) :

Semantic Wiki

This is an attempt to translate this other post into English
Charles Nepote, as he notified me, builta prototype of a wiki engine based on some of the semantic web technologies and providing some somewhat « semantic » features. I appreciated this prototype a lot. It lets me imagine how the wiki of the future would look like. Here are some pieces of a dream on this topic. The wikis of tomorrow would…

  • …provide the semantic features of Charles Nepote’s prototype : complying to the REST style, one URL for every page, publishing both HTML and RDF representations of this page (it would be better to provide RDF within XHTML rather than beside, would’n it ?)
  • … be Blikis (also known as Wikilogs) with pingback and/or trackback and so on
  • …implement syndication of recent changes ; therefore they should produce distinct URLs for every update (every « diff » : as an example with URL like http://www.monsite.toto/2004/01/01/12/WikiPage for the 12th modification of the WikiPage, on 1st January 2004, whereas the URL of the WikiPage still remains http://www.monsite.toto/WikiPage).
  • « wikify » remote semantic data ; thus the page http://www.monsite.toto/DcTitle would contain a RDF statement (an OWL one ?) that would mean that this URL is the equivalent to the dc:title property of the Dublin Core
  • …allow users to easily produce metadata with the help of an extension of the Wiki syntax ; as an example, when a WikiPage contains the statement « DcKeywords::MyKeyword », the wiki engine automatically adds the RDF triplet with subject being the page itself (its URL), predicate being the URL of the « keywords » property as defined by the Dublin Core and object being the URL http://www.monsite.toto/MyKeyword.
  • …have search engine allowing users to explore the Wiki with a navigation mode similar to sourceforge’s Trove Map based on the semantic data published by the Wiki ; as an example, the user will be able to display all the pages that are related to MyKeyword and are written in French (because they contain the RDF statements equivalent to the following explicit statement made by users within the page : DcKeyword::MyKeyword and IsWritten::InFrench)
  • …have search engines allowing users to save their queries and explorations as agents (with their own WikiNames) so that other users can browse the same path of exploration as the user who defined the agent

I implemented these two last features as a draft of micro-application pompously called RDFNavigator for Zope, and base don the RDFGrabber product. It is very drafty so it is very incomplete, not documented, instable (because RDFGrabber is not particularly stable itself in my environement), so it may be difficult to make it run. Nevertheless, if someone dares trying it, I am eager to hear comments and critics ! :) By the way, I hope some day to make a more honorable product based on the integration of rdflib into Zope, i.e. based on Rope unless the Ticle project quickly provides a similar result within Plone.