Archives pour la catégorie Ecrit en français

Projet Internet de rue: Appel à nos amis roumains !

Y a-t-il des roumains de Roumanie dans la salle ? En France, il y en a dans la rue, qui n’ont pas forcément beaucoup de moyens mais
ont l’audace de goûter aux nouvelles technos
. [Je précise après coup qu’il s’agit de roumains gitans car un lecteur roumain s’est senti offensé de l’absence de cette précision, cf. la discussion plus bas.] Ils aimeraient bien communiquer par Internet avec leur famille restée au pays, pour échanger quelques photos du fils que l’on a pas revu depuis deux ans… Problème : au pays, qui pourra donner (prêter ?) à cette famille un accès à l’Internet ? Faites passer cet appel à vos contacts en Roumanie, ça pourrait être sympa. Au passage, découvrez le formidable projet Internet de rue.

Consultant-in-a-box

Je travaille actuellement avec des consultants d’une très grosse SSII indienne en vue de l’externalisation offshore d’un projet informatique. Le consultant avec qui je travaille sur site pratique le yoga depuis de nombreuses années. Il ne sait pas encore entrer dans une boîte, m’a-t-il avoué. Mais le concept d’un « consultant-in-a-box » ou encore d’un « Commercial-Off-The-Shelf » Consultant a de quoi séduire ! Imaginez un peu, vous allez sur votre site de e-business favori, du style consultantinabox.com et là, vous cochez les compétences du consultant indien dont vous avez besoin : un peu de J2EE par ici, un peu d’intégration de middleware de sécurité par ici, etc. Vous validez votre devis en ligne et payez avec votre carte de crédit corporate. Ensuite, UPS vous livre en 24H, par avion, une boîte avec votre consultant yogi dedans. Pas mal, non ? Bien sûr, en fin de mission, le consultant sait se repackager tout seul et retourne à Bangalore pour poursuivre la mission à distance (en mode offshore, ça coûte bien moins cher que sur place).

Trève de plaisanterie, voici quelques notes en vrac glanées lors d’une discussion avec la société Pivolis, spécialisée en accompagnement de sociétés européennes souhaitant travailler avec des indiens (cf. également cet ancien article citant Mr Pivolis, aka Vincent Massol).

Les sociétés d’accompagnement du type Pivolis peuvent assurer un rôle :

  • logistique : infrastructures (VPN, …), voyages et visites, arrivées et départ (gestion des identités, provisioning des nouveaux entrants dans le projet)
  • de médiateur/facilitateur/organisateur des communications entre français et indiens
  • de conseil méthodologique (et outils)

Typiquement, pour un projet représentant 100 équivalent plein temps (50 français et 50 indiens), la charge de coordination par ce type de société pourrait représenter 2 équivalents temps plein (soit 2%). De plus, dans l’équipe française, certaines personnes sont également dédiées à des tâches de support à l’équipe indienne, i.e. à la facilitation du transfert de connaissances. Dans une première phase de projet, cela peut représenter une personne pour 6 indiens. Ensuite, les choses deviennent plus routinières et le ratio se stabilise à un français en support à l’offshore pour 10 indien.

Contrairement à ce à quoi on pourrait s’attendre, il ne faut pas chercher outre mesure à spécialiser les équipes françaises et indiennes. Mieux vaut organiser et entretenir une certaine redondance des rôles sur site et à l’offshore, au moins pendant une (longue) période de transfert de compétences. La communication s’établit alors à de multiples niveaux : de project leader français à project leader indien, de lead developer français à lead developer indien. Cette similarité des rôles et la multiplicité des canaux de communication qui s’en suit sont des facteurs de clefs de succès pour la coopération franco-indienne sur un projet informatique. Le facteur clef de succès, selon Pivolis, c’est de s’efforcer de garder les gens heureux de part et d’autre. Le second principal facteur de succès réside dans la rigueur et la discipline des équipes notamment quant à l’utilisation des outils de coordination (principalement un issue-tracker, un outil de gestion de builds et un wiki).

De multiples outils sont souhaitables pour faire collaborer des équipes distantes. On peut les analyser selon leur fréquence d’utilisation et leur efficacité relative. Concernant leur fréquence, on trouvera par exemple, pour un projet de 100 personnes :

  • Voyages (de la France vers l’Inde ET vice-versa) : 3 personnes toutes les 6 semaines
  • Echange de documents bureautiques : rédaction d’un document important par mois
  • Téléphone : 1,5 conférence téléphonique par semaine et par équipe de 10 personnes
  • Wiki : 1 modification par jour et par équipe de 10 personnes
  • Emails : plusieurs par jour et par personne
  • Instant messaging : continu et omniprésent

On pourrait grosso modo grouper tous ces outils en 4 catégories :

  • fréquemment utilisés et très adaptés à ces modes de collaboration : issue tracker, mailing list, wiki
  • fréquemment utilisés mais moins riches en efficacité : mails individuels, instant messaging, conférence téléphonique
  • plus rarement utilisés mais très riches et efficaces : documentation, voyages sur site
  • rarement utilisés et relativement inefficaces : video-conférences

Trois différences culturelles entre indiens et français, à prendre en compte pour faciliter la compréhension mutuelle :

  1. les indiens ont un respect très profond de leur interlocuteur, attitude respectueuse qui n’est pas forcément compatible avec la propension française à s’engager dans des combats de coqs, à tenter une révolution française à chaque réunion ; les français peuvent avoir l’impression de travailler avec des personnes manquant de répondant ou de franchise alors que les indiens peuvent avoir l’impression de travailler avec des personnes impolies, négatives ou agressives
  2. les indiens ont une forte culture de l’hospitalité, de l’accueil et des habitudes culinaires particulières (végétariens…) ; les français sont-ils prêts à accueillir leurs interlocuteurs indiens dans leur famille pendant le week-end ou à passer leur week-end complet à leur faire visiter le château de Versailles ? comment manger un vrai repas végétarien dans un resto Sodexho ?
  3. les indiens appréciraient les félicitations et les remerciements formels, les signes de gratitude (ou de bienvenue, tels que des cadeaux) ; les français peuvent trouver cela superflu ou « chi-chi », et passer des gens indifférents voire ingrats

Ces dernières semaines de travail avec des consultants indiens m’ont déjà permis de vérifier quelques-uns de ces conseils ou observations confiés par la société Pivolis. Et je sens qu’il serait plus que judicieux, pour aller plus loin, d’avoir recours aux services de ce type de société pour un accompagnement sérieux sur le long terme.

Unique identifiers get Febrl

When dealing with identity management, one really appreciate having unique identifiers for describing individual identities. Having a common unique identifier available accross a whole information system is a terrific asset for the management of IT security. The problem is that information systems usually don’t have such a global naming convention or these naming conventions are too weak to ensure uniqueness and permanence of these identities. The usual solution is to define a more clever naming convention, to invent a new unique identifier and to associate any individual data with it so that people identities get managed.

But then the deployment of this unique identifiers raises a new problem : how to guarantee that a given data record describing a person is really related to that person you already know with a unique identifier. You have to decide matches and non-matches accross your data.
The art of doing such decisions was called « record linkage » by the biomedical community because this is a common issue in health information systems for example for epidemiological studies.

Therefore this community developped several approaches (deterministic or probabilistic) to record linkage that can also be applied to field of identity management. Febrl is a very nice open source package that implement state-of-the-art methods for record linkage and that may be applied to the deployment of unique identifiers in IT security systems.

Social software for skyscrapers

(Via Designing for Civil Society). iSociety was exploring the idea of using social software in local contexts, specifically in a local residential area (a set of skyscrapers). They see the potential of social software in its ability to

  • facilitate better face-to-face [communication] : create introductions between people who recognise their shared interests and want to meet
  • circumvent face-to-face [communication] : enable weak norms of cooperation between people who don’t want to meet, or can’t, but still have shared interests (which they may not even be aware of)

I would call this last case « loosely coupled communication » in the same way the blogosphere enables distributed conversation.

They identified three fields of use for local social software :

  • infrastructure : transforming your local facility manager into a blogger so that residents get involved in managing shared facilities (elevators, shared areas, …)
  • tasks : facilitating the scheduling of activities such as sport, local trade or childcare with an online reputation system and group forming features
  • culture: for people interested in linkage with neighbours for it’s own sake

They think the higher potential is in the « task » field because

studies show that activities such as these which require cooperation have a better impact on social capital than projects such as community centres, which promote cooperation.

In other words, as they say :

Social capital is best pursued obliquely

Their conclusion that local residential areas may not need generic social software but task-oriented social software.

This reminds me of a community project I ran when I was younger : the volunteer team I was part of wanted to socialize with some youngsters who lived in nearby slums because we were curious about how it was to live in such poor districts. The best way we found to get into this distant social context was to first identify a very concrete project that would require us to meet these other teenagers. We heard a local association in such a slum was training volunteers in improvised acting. My team was poor on acting but we were strong in video technical skills. So we had in hand a reason to go to this association and ask for help to complete our task/project : making a short video fiction with other young volunteers. We made this short movie together (it took one year of work during our week-ends) and it was a lot of fun ! Moreover, this project was a success in building local social capital because it was task-oriented and its success required strong cooperation.

Identification and naming practices

States have been precursors in building registers of persons. Here are some national practices and projects in civil registration systems, vital statistics and other administrative identity systems :

You are building an international directory of persons, you know that you will record names, surnames, given names. But what does « surname » mean ? Will you be understood when you ask a foreigner his given name ? Here come culture, society and naming practices :

You’ve got existing databases that you want to link to your fresh new directory of persons. But how to build that link ? How to match records coming from different databases when they don’t share a common unique identifier ? This is the art of record linkage :

Transliteration

I wanted to give Alban and others pointers to my resources on the topic of transliteration. But I can’t find my transliteration documents any more ! Anyway, my experience is that transliteration is a tough problem and after having thought a little bit on this topic, we decided not to automate the transliteration of individual names but to make people input their name according to their own habits in a more or less transliterated form. It would have been great if you were able to automate transliteration (maybe with the help of a virtual Unicode keyboard ?). The main advantage of standardized transliteration is that it is supposed to give you a standardized representation of the name of a person. You might then rely on this standardized naming elements in order to build a unique identifier. But the problem is that many language transliterations are not standardized, plus these standards evolve too much. A greek colleague of mine told me that his name was transliterated many times with many different output (creating problems at the airport, I let you imagine). Transliteration definitely remains as a problem for strong identity management. At the moment, you should just try to workaround it until transliteration standards are more robust and widely adopted…

Anyway, here are some pointers on how to process non-latin documents and maybe transliterate them :

Using social software locally

Yet another idea of innovation that has been floating around, in the blogosphere and in my wish list : inventing/deploying systems that connect people one with another in local contexts.

The main idea of such systems is that they are

  • useful locally : they stimulate the development of connexions between persons on a given place or neighborhood :
    • their output = development of new projects, partnership building, local business transactions, meeting new people, involvement and participation in local activities and projects
    • they connect people who share :
      • a common event (exhibition, meeting, forum, conference, trade show)
      • or a common area (district, city, business area, public place or infrastructure)
  • tools in the hands of facilitators and mediators, people who act as hubs and networkers, so that these people can generate a wider and more efficient scope of socialization
  • technical innovations because they rely on emerging technologies such as social software (including blogging), advanced identity management, semantic technologies, knowledge technologies, …

Potential issues : Privacy of data generates important legal and technical difficulties ; data describing individual is precious and difficult to access and manage with good-enough privacy guarantees ; there is a high risk that these systems won’t be used the way they were intended to ; change management is an issue when working with local organizers/networkers/mediators who tend to discard technical innovations as not-enough-human and/or fear for their jobs ; these technologies are far from mature !

Potential market #1 : social networking during events :

  • Sector : professional events marketing and organization, with organizers of trade shows, of conferences, meeting events
  • Profile of a sponsor : a company with a very « high-tech » profile on its market, with the will and characteristics of an innovator
  • Issues at stake : Event makers say the main value they provide is the social connexions their event provides to their customers ; they want to facilitate the connexion between exhibitors and participants or between participants themselves ; they want to make these connexions persistent after the end of the event ; their purpose may be to enhance the satisfaction of exhibitors and/or participants.
  • But… I don’t know this sector so your feedback and ideas are appreciated !
  • Example of such a business : Jambo for conferences

Potential market #2 : social network for local development

  • Sector : urban planning and local development, with a public agency (national agency for urban renewal, regional council, public institution), or para-public organization (non-profit, « hybrid economy company » delivering services to cities) in charge of the development of a given area
  • Issues at stake : In the field of local development, one big target is to develop sustainable social or business relationships in a given area. But local developers only act indirectly on these relationships : urban planning, area marketing, public services, … In the best situations, their mediation and networking efforts hardly rely on human handcraft. The issue at stake is to systematize and extend these networking practices and to exploit the address books of local actors at their best.
  • But… social software are « hard » industrial tools applied to a « soft » issue ; they aren’t seen as useful because the tools are here but the profitable uses are not validated. And fortunately, public agencies don’t invest money on « soft » issues handled with industrial tools !

Une voix en vrac

La philosophie des carnets web, c’est d’écrire « avec sa vraie voix« . Gilles (celui qui est en vrac), fait encore mieux : il parle sur son carnet, avec sa vraie voix. Voici donc le premier carnettier francophone (que je connaisse) qui se met au screencasting, grâce au logiciel Camtasia. Du côté anglo-saxon, c’est Jon Udell qui a ouvert la voixe du screencasting. Ne loupez pas l’excellente démonstration de la wikipedia en screencasting par Jon Udell.
Gilles, tu as une voix délicieusement québécoise !

An open source foundation for Fortune 500 companies

Another un-used business idea to recycle… please follow me :

  • Fortune 500 companies produce a lot of in-house developments, reinventing the wheel again and again, especially in the field of non-critical, non-business applications : reporting applications, technical asset management, collaborative tools, IT security, identity management, content management… Each of them is sitting on a consequent catalog of custom-made « commodity » applications that they develop and maintain on their own.
  • Most of these non-critical-non-business-in-house developments have a limited value but a high cost for businesses.
  • The main priority of corporate IT departments is to reduce their costs ; most of them rely on outsourcing applicative developments to some extent.
  • Open source is now somewhat trendy even among Fortune 500 corporations ; it is reaching a high level of visibility and acceptability.
  • The open source model proposes an optimization of the costs sketched above by sharing them among several users of commodity applications, i.e. by open sourcing them.
  • The « open sourcing » of custom-made applications by Fortune 500 companies would be an alternative to the classical outsourcing of these development and maintenance costs.
  • The offshore outsourcing of corporate development is seen as a threat on jobs for IT programmers in northern countries ; but the open sourcing of this software could be seen as more acceptable.
  • These IT departments are currently converging to common technological frameworks : .Net, J2EE, open source scripting ; that movement enhances their capability to absorb « foreign » developments ; and the standardization of their architectures tends to enhance the re-usability of their in-house developments.
  • Open source foundations are legal entities designed to own the intellectual property of open source applications, to guarantee that the open source licence they are distributed under will be enforced, to promote these applications so that their communities are thriving and the applications make gains in terms of reliability, quality and sustainability.
  • The distribution of software under open source licences is said to represent the highest value transfer ever from rich countries to developping countries.
  • The open sourcing of these Fortune 500 applications would be a positive change both for big corporations themselves and for smaller companies especially in third world countries.
  • Social entrepreneurship is becoming a hot topic today even in mainstream media ; this initiative might qualify as a social entrepreneurship initiative ; the public usefulness of such a move might justify the legal creation of a foundation in France.
  • Recently, in France, foundations have gained in acceptance by big businesses since a new tax law offers higher opportunities for tax reductions.
  • I still work as an IT manager in the global IT department for a Fortune 100 company in France ; our CIO would see such an open source foundation as a positive initiative but, as a cautious manager, he is dubious regarding the willingness of other CIOs of Fortune 500 companies (in France) to share their custom codes under an open source licence.

You work in/for a big corporation willing to reality-check this idea ? What do you think ?

Recycling un-used business ideas

As a former entrepreneur and a compulsive innovator, too many ideas of new businesses tend to leak out of my mind. Most of them are very so-so and I will not implement them. But it would be stupid not to recycle them in my process of open-sourcing my quest for networked intelligence. In simpler words : let’s share with you some more or less stupid business ideas. They will come into my usual wishlist. Your comments will be very much appreciated. Let’s start with an idea on … recycling laptops into digital frames.

If you read Slashdot, you will be familiar with this kind of digital frame. The idea is that many do-it-yourself guys can turn old laptops into digital frames displaying holiday pictures as slideshows in the living room. Let’s consider the facts :

  • laptops are expensive to recycle and a dangerous waste for the environment ; users companies and retailers (or cities) pay for getting rid of them
  • DIY guys can turn them into digital frames
  • I’d like to have such a digital frame equipped with a wifi connexion in order to display the pictures freshly taken from my digital camera
  • the digital frame might be the ideal companion for digital cameras (more than printers ?)
  • this business idea has already been implemented but I imagine this is a quite a small niche market.
  • In France, the Envie company « recycles » jobless people into experts in recycling electronic equipment.

Why not implement this business in Europe with a lower cost solution : either offshore or locally within the social economy sector ?

Neutre à positif pour Ecartype ?

Ecartype est une forme originale de carnet web : il s’agit d’un carnet de conseils boursiers. A ajouter à la longue liste des usages innovants des carnets Web. Je suis neutre à positif sur Ecartype tant qu’ils s’inscrivent dans leur triangle haussier en matière d’usages innovants. Et, tant que j’y suis à découvrir un vocable abscons : attention au pull back au niveau de la ligne de cou, ça peut donner le torticolis. A quand un ecartype qui donnent des conseils boursiers au sujet du marché des communautés open source (« je suis neutre à positif sur Drupal », « Plone s’inscrit dans un long triangle haussier », etc.) ?

Innovation : du client vers la R&D

Lorsque Dave Pollard ne nous invite pas à l’aider à sauver le monde, il chronique sur le thème de l’innovation. L’un de ses credos, très tendance, mais à forte teneur en pertinence il me semble, est que l’innovation n’est pas l’apanage des laboratoires de R&D. L’innovation résulte de la confrontation avec des clients imaginatifs, en amont de la conception produit. Bien sûr, les labos R&D objectent : « Les clients ne sont pas des experts et donc ne savent ce qu’ils veulent à moins qu’on ne leur montre quelque chose. Si vous leur demandez ce qu’ils veulent, ils vous répondent simplement : qu’avez-vous à offrir ? ». Ce à quoi Dave Pollard leur répond :

[…] Vous ne devriez pas demander aux gens quel [produit] ils veulent parce que ce n’est pas un produit qu’ils cherchent [mais plutôt] les attributs et bénéfices que le produit a à offrir : confort, […] prestige, [sécurité, …]. […] [De plus,] vous avez besoin d’un processus itératif pour appréhender ce dont les gens ont besoin, veulent ou utiliseraient […] Ce processus suppose une combinaison d’exercice d’imagination, de questionnements du type « et si ? » et d’une manière générale cela suppose d’aider les clients à imaginer la situation future de leurs propres organisations et besoins et la manière dont ils réagiraient si quelque chose de nouveau devenait tout à coup disponible. Si vous demandez aux gens « que voudriez voir sur l’intranet de l’entreprise », vous obtiendrez probablement des réponses sans intérêt (ou pas de réponse) […]. Par contre, vous pourrez obtenir des résultats si vous les aidez à se figurer comment sera le futur de leur métier, si vous travaillez ensuite sur cette vision en posant un ensemble itératif de « et si ? » pour déterminer les types de [produit] qu’ils pourraient utiliser avec efficacité dans cet environnement et si vous travaillez avec eux en étroite collaboration pour concevoir ce produit.

Dave Pollard partage également son expérience de missions de conseil en innovation sous la forme d’autres découvertes et conseils :

  • se focaliser sur la technologie et négliger la dimension émotionnelle des produits conduit à l’échec commercial
  • les meilleurs produits sont conçus lorsque les employés sont eux-mêmes des utilisateurs du produit
  • la « recherche anthropologique » (rendre visite aux clients pour voir comment ils utilisent – ou détournent – les produits) peut considérablement éclairer les besoins et les possibilités d’innovation
  • pour entrer dans de nouveaux marchés, il est utile de disposer de partenaires locaux « de terrain » pour adapter les produits aux besoins spécifiques à ce marché
  • les équipes pluri-disciplinaires et transverses et le fait de « faire sortir plus souvent » les équipes de R&D permet de réduire l’aveuglement au client
  • le fait de répartir ses efforts de R&D à travers le monde permet aux multinationales d’améliorer leur capacité de veille et de saisir des idées et des adaptations qui ne sont pas forcément évidentes pour le siège
  • les questionnaires qui collectent des données sur le comportement du client ne sont pas suffisants ; il est plus important de savoir pourquoi les clients se comportent ainsi pour déterminer leurs véritables besoins et demandes et cela suppose généralement des contacts en face à face et un travail en étroite collaboration
  • lorsque l’on développe un produit, il est important de comprendre chez les clients leur résistance au changement et à une trop grande multiplicité des choix possibles
  • les qualités clefs de ceux qui facilitent le dialogue entre la R&D, la vente et les clients sont l’humilité et la curiosité

Web scraping with Python (part II)

The first part of this article dealt with retrieving HTML pages from the web with the help of a mechanize-propelled web crawler. Now your HTML pieces are safely saved locally on your hard drive and you want to extract structured data from them. This is part 2, HTML parsing with Python. For this task, I adopted a slightly more imaginative approach than for my crawling hacks. I designed a data extraction technology based on HTML templates. Maybe this could be called « reverse-templating » (or something like template-based reverse-web-engineering).

You may be used with HTML templates for producing HTML pages. An HTML template plus structured data can be transformed into a set of HTML pages with the help of a proper templating engine. One famous technology for HTML templating is called Zope Page Templates (because this kind of templates is used within the Zope application server). ZPTs use a special set of additional HTML tags and attributes referred to by the « tal: » namespace. One advantage of ZPT (over competing technologies) is that ZPT are nicely rendered in WYSIWYG HTML editors. Thus web designers produce HTML mockups of the screens to be generated by the application. Web developpers insert tal: attributes into these HTML mockups so that the templating engine will know which parts of the HTML template have to be replaced by which pieces of data (usually pumped from a database). As an example, web designers will say <title>Camcorder XYZ</title> then web developpers will modify this into <title tal:content= »camcorder_name »>Camcorder XYZ</title> and the templating engine will further produce a <title>Camcorder Canon MV6iMC</title> when it processes the « MV6iMC » record in your database (it replaces the content of the title element with the value of the camcorder_name variable as it is retrieved from the current database record). This technology is used to merge structured data with HTML templates in order to produce Web pages.

I took inspiration from this technology to design parsing templates. The idea here is to reverse the use of HTML templates. In the parsing context, HTML templates are still produced by web developpers but the templating engine is replaced by a parsing engine (known as web_parser.py, see below for the code of this engine). This engine takes HTML pages (the ones you previously crawled and retrieved) plus ZPT-like HTML templates as input. It then outputs structured data. First your crawler saved <title>Camcorder Canon MV6iMC</title>. Then you wrote <title tal:content= »camcorder_name »>Camcorder XYZ</title> into a template file. Eventually the engine will output camcorder_name = « Camcorder Canon MV6iMC ».

In order to trigger the engine, you just have to write a small launch script that defines several setup variables such as :

  • the URL of your template file,
  • the list of URLs of the HTML files to be parsed,
  • whether you would like or not to pre-process these files with an HTML tidying library (this is useful when the engine complains about badly formed HTML),
  • an arbitrary keyword defining the domain of your parsing operation (may be the name of the web site your HTML files come from),
  • the charset these HTML files are made with (no automatic detection at the moment, sorry…)
  • the output format (csv-like file or semantic web document)
  • an optional separator character or string if ever you chose the csv-like output format

The easiest way to go is to copy and modify my example launch script (parser_dvspot.py) included in the ZIP distribution of this web_parser.

Let’s summarize the main steps to go through :

  1. install utidylib into your python installation
  2. copy and save my modified version of BeautifulSoup into your python libraries directory (usually …/Lib/site-packages)
  3. copy and save my engine (web_parser.py) into your local directory or into you python libraries directory
  4. choose a set of HTML files on your hard drive or directly on a web site,
  5. save one of these files as your template,
  6. edit this template file and insert the required pseudotal attributes (see below for pseudotal instructions, and see the example dvspot template template_dvspot.zpt),
  7. copy and edit my example launch script so that you define the proper setup variables in it (the example parser_dvspot.py contains more detailed instructions than above), save it as my_script.py
  8. launch your script with a python my_script.py > output_file.cowl (or python my_script.py > output_file.cowl)
  9. enjoy yourself and your fresh output_file.owl or output_file.csv (import it within Excel)
  10. give me some feedback about your reverse-templating experience (preferably as a comment on this blog)

This is just my first attempt at building such an engine and I don’t want to make confusion between real (and mature) tal attributes and my pseudo-tal instructions. So I adopted pseudotal as my main namespace. In some future, when the specification of these reverse-templating instructions are somewhat more stabilized (and if ever the « tal » guys agree), I might adopt tal as the namespace. Please also note that the engine is somewhat badly written : the code and internal is rather clumsy. There is much room for future improvement and refactoring.

The current version of this reverse-templating engine now supports the following template attributes/instructions (see source code for further updates and documentation) :

  • pseudotal:content gives the name of the variable that will contain the content of the current HTML element
  • pseudotal:replace gives the name of the variable that will contain the entire current HTML element
  • (NOT SUPPORTED YET) pseudotal:attrs gives the name of the variable that will contain the (specified?) attribute(s ?) of the current HTML element
  • pseudotal:condition is a list of arguments ; gives the condition(s) that has(ve) to be verified so that the parser is sure that current HTML element is the one looked after. This condition is constructed as a list after BeautifulSoup fetch arguments : a python dictionary giving detailed conditions on the HTML attributes of the current HTML element, some content to be found in the current HTML element, the scope of research for the current HTML element (recursive search or not)
  • pseudotal:from_anchor gives the name of the pseudotal:anchor that is used in order to build the relative path that leads to the current HTML element ; when no from_anchor is specified, the path used to position the current HTML element is calculted from the root of the HTML file
  • pseudotal:anchor specifies a name for the current HTML element ; this element can be used by a pseudotal:from_anchor tag as the starting point for building the path to the element specified by pseudotal:from_anchor ; usually used in conjunction with a pseudotal:condition ; the default anchor is the root of the HTML file.
  • pseudotal:option describes some optional behavior of the HTML parser ; is a list of constants ; contains NOTMANDATORY if the parser should not raise an error when the current element is not found (it does as default) ; contains FULL_CONTENT when data looked after is the whole content of the current HTML element (default is the last part of the content of the current HTML element, i.e. either the last HTML tags or the last string included in the current element)
  • pseudotal:is_id_part a special ‘id’ variable is automatically built for every parsed resource ; this id variable is made of several parts that are concatenated ; this pseudotal:is_id_part gives the index the current variable will be used at for building the id of the current resource ; usually used in conjunction with pseudotal:content, pseudotal:replace or pseudotal:attrs
  • (NOT SUPPORTED YET) pseudotal:repeat specifies the scope of the HTML tree that describes ONE resource (useful when several resources are described in one given HTML file such as in a list of items) ; the value of this tag gives the name of a class that will instantiate the parsed resource scope plus the name of a list containing all the parsed resource

The current version of the engine can output structured data either as a CSV-like output (tab-delimited for example) or as an RDF/OWL document (of Semantic-Web fame). Both formats can easily be imported and further processed with Excel. The RDF/OWL format gives you the ability to process it with all the powerful tools that are emerging along the Semantic Web effort. If you feel adventurous, you may thus import your RDF/OWL file into Stanford’s Protege semantic modeling tool (or into Eclipse with its SWEDE plugin) and further process your data with the help of a SWRL rules-based inference engine. The future Semantic Web Rules Language will help at further processing this output so that you can powerfully compare RDF data coming from distinct sources (web sites). In order to be more productive in terms of fancy buzz-words, let’s say that this reverse-templating technology is some sort of a web semantizer. It produces semantically-rich data out of flat web pages.

The current version of the engine makes an extensive use of BeautifulSoup. Maybe it should have been based on a more XMLish approach instead (using XML pathes ?). But it would have implied that the HTML templates and HTML files to be processed should then have been turned into XHTML. The problem is that I would then have relied on utidylib but this library breaks too much some mal-formed HTML pages so that they are not valuable anymore.

Current known limitation : there is currently no way to properly handle some situations where you need to make the difference between two similar anchors. In some cases, two HTML elements that you want to use as distinct anchors have in fact exactly the same attributes and content. This is not a problem as long as these two anchors are always positioned at the same place in all the HTML page that you will parse. But, as soon as one of the anchors is not mandatory or it is located after a non mandatory element, the engine can get lost and either confuse the two anchors or complain that one is missing. At the moment, I don’t know how to handle this kind of situation. Example : long lists of specifications with similar names where some specifications are optional (see canon camcorders as an example : difference between lcd number of pixels and viewfinder number of pixels). The worst case scenario would be when there is a flat list of HTML paragraphs. The engine will try to identify these risks and should output some warnings in this kind of situations.


Here are the contents of the ZIP distribution of this project (distributed under the General Public License) :

  • web_parser.py : this is the web parser engine.
  • parser_dvspot.py : this is an example launch script to be used if you want to parser HTML files coming from the dvspot.com web site.
  • template_dvspot.zpt : this is the example template file corresponding to the excellent dvspot.com site
  • BeautifulSoup.py : this is MY version of BeautifulSoup. Indeed, I had to modify Leonard Richardson’s official one and I couldn’t obtain any answer from him at the moment regarding my suggested modifications. I hope he will soon answer me and maybe include my modifications in the official version or help me overcoming my temptation to fork. My modifications are based on the official 1.2 release of beautifulsoup : I added « center » as a nestable tag and added the ability to match the content of an element with the help of wildcards. You should save this BeautifulSoup.py file into the « Lib\site-packages » folder of your python installation.
  • README.html is the file you are currently reading, also published on my blog.

No comments / pas de commentaires

Dear reader, I sincerely apologize to you : my weblog engine may have been ignoring any of your comments for one month. Its anti-spam features was so efficient it discarded any comment posted (without even notifying the comment poster) ! Sure I was satisfied not receiving any spammy comment notification any longer ! But it seemed suspicious to me that I also had received no new normal comment since I upgraded my weblog engine… Well, now the problem is identified and fixed. Beloved reader, please come and comment again ! I NEED your feedback. I’m so sorry for that… :(

By the way, I adopted the new default layout of my upgraded weblog engine (WordPress), published the RSS feeds for every category and started publishing my blogroll. What do you think ?

Cher lecteur, je te prie d’accepter mes excuses les plus sincères : depuis un mois, mon carnet web a royalement ignoré tous tes commentaires. Sa fonction « anti-spam » était tellement efficace qu’elle a refusé tous les commentaires (sans même le signaler à l’auteur du commentaire) ! Pour sûr, j’étais très satisfait de ne plus recevoir de notification concernant des commentaires spammeux ! Mais ça m’a paru suspect de ne pas recevoir de nouveau commentaire normal depuis que j’avais upgradé mon logiciel de weblog… Bon, maintenant le problème a été identifié et résolu. Lecteur bien-aimé, s’il-te-plait, revient et fais-moi à nouveau part de tes commentaires ! J’ai BESOIN de ton feedback. Je suis vraiment navré de tout ça… :(

Au fait, j’ai adopté la présentation par défaut de la nouvelle version de mon logiciel de weblog (WordPress), j’ai publié les flux RSS de chaque rubrique du carnet et j’ai commencé à publier mon blogroll. Qu’en pensez-vous ?

P2P + Web Sémantique + Réseaux sociaux + Bureautique = ?

Prenez une once de peer-to-peer, trois coudées de web sémantique, deux livres de bureautique et un denier de réseau sociaux, malaxez avec énergie et vous obtenez… le « Networked Semantic Desktop ». Ca c’est de la convergence où je ne m’y connais pas… Projet de recherche, circulez, il n’y a rien à télécharger ! Vu également ici.

Economie de communion : utiliser l’entreprise pour rendre le monde meilleur

L’économie de communion est un concept issu d’un mouvement  de l’Eglise catholique appelé les Focolari. Autant les Focolari semblent avoir une saveur un peu hippie-catho/communautaire/charismatique qui peut faire peur ou rigoler, autant l’Economy of Communion (EoC) est un concept que je trouve très percutant et pertinent, notamment mis en perspective du phénomène open source avec lequel il partage de nombreux points communs du point de vue idéologique tout du moins. Il s’agit d’un concept d’autant plus percutant qu’il a déjà été adopté et mis en oeuvre au sein de plus de 700 PME en Italie, au Brésil et ailleurs.

Les ambitions de l’EoC

L’Ecole pour les Entrepreneurs de l’Economie de la Communion propose à des dirigeants d’entreprise de les aider à comprendre

comment il [leur a été] possible de […] faire les bons choix : en étant les premiers à aimer les autres, en induisant ainsi un amour réciproque au sein de la firme, ce qui à son tour attire l’attention des cieux et l’action de notre partenaire caché et divin directement au sein de l’entreprise

Tout un programme théologico-économique ! Mais qu’est-ce qui se cache sous ce jargon catho ? Les entrepreneurs de l’EoC se donnent comme objectif de

démontrer qu’il est effectivement possible d’appliquer la communion dans l’économie et montrer ainsi que ce nouveau comportement économique est basé sur une rationnalité plus large qui anticipe un modus operandi qui deviendra inévitable dans un futur raisonnable.

D’après le professeur Bruni,

L’EoC espère transformer les structures d’entreprise de l’intérieur en réussissant à éclairer les relations internes et externes des sociétés à la lumière d’un style de vie basé sur la communion c’est-à-dire sur le ‘don réciproque’ que ce terme implique […] Le challenge de l’EoC est de relire les pratiques organisationnelles quotidiennes à la lumière de cette notion de don et de communion.

Tout cela a vraiment l’air d’avoir quelque chose en commun avec les challenges (et l’idéologie) de l’économie open source : économie du don, pratiques communautaires, comportement et rationnalité économiques paradoxaux mais promis à un large succès… L’économie de la communion est-elle l’open source de l’Eglise catholique ?

Les difficultés auxquelles s’affronte l’EoC

Si les entreprises telles qu’on les connaît ne sont pas toujours des petits nids d’amour, c’est que

le raisonnement moral des gens [y] est coupé des réalités profondes de leurs vies, créant ainsi ce que de nombreuses personnes appellent « une vie fracturée ». C’est je pense l’une des raisons principales pour lesquelles construire des communautés authentiques au travail est si difficile. […] Il y a une forte tentation dans l’organisation de voir toute chose professionnelle […] comme un simple instrument d’accès aux profits ou au succès individuel. […] L’ubiquité [de ce type de rationnalité] exclut toute forme de rationnalité morale […] Cette rationnalité instrumentale tend à concentrer la responsabilité sociale de l’entreprise sur […] le don de bénéfices à des pauvres [(mécénat caritatif)], le don de temps personnel à des activités caritatives, la fourniture d’avantages divers aux employés, etc. au détriment de la manière dont s’effectue réellement le travail [quotidien] telle que la manière de rémunérer les gens, de concevoir les postes de travail, les processus de prise de décision, le marketing, les structures de propriété [(d’actionnariat)], la stratégie, le gouvernement d’entreprise, etc. L’instrumentalisme ambiant empêche la transformation morale et spirituelle de la manière dont chacun appréhende son travail et sa manière de travailler.

Du point de vue théorique, les tenants de l’EoC défendent que la théorie économique entre dans le champ plus large des théories morales, que l’idée selon laquelle la rationnalité économique est guidée par l’optimisation de ses stricts intérêts par l’individu a ses limites, qu’il n’est pas théoriquement impossible qu’un système économique tout entier puisse petit à petit voir des formes de rationalité économiques paradoxales devenir monnaie courante et qu’enfin une rationalité économique basée sur la notion chrétienne de communion (ou, plus largement, sur le don réciproque) est tout à fait… rationelle. Finalement, du point de vue théorique, l’EoC essaie de renvoyer l’homo economicus à la responsabilité morale qui guide forcément ses comportements économiques.

L’EoC en pratique

Les entreprises de l’EoC pratiquent la distribution d’une partie de leurs bénéfices à des oeuvres caritatives. Mais Lorna Gold explique que

la logique de communion [qui sous-tend l’EoC] ne se limite à cette dimension de distribution. Elle concerne la manière dont on traite les clients, la structure de tarification, la gestion de crises, la gestion des débiteurs etc. Très clairement, l’efficacité globale est essentielle, mais l’approche « au cas par cas » domine et est guidée par le désir de comprendre les besoins de son prochain.

En prenant l’exemple des politiques de rémunérations, Naughton note que

les rémunérations sont génératrices d’insatisfaction et non de satisfaction. Les rémunérations en elles-mêmes ne peuvent bâtir une communauté mais peuvent empêcher une communauté. […] [Du point de vue chrétien] le travail ne peut jamais être réduit au salaire versé. […] Il vaut mieux éviter de parler des salaires comme un échange [économique] mais plutôt comme éléments d’une relation de travail entre employeur et employé, relation qui a en son centre une dimension de don qui peut servir à renforcer une communauté professionnelle. [Cependant, il faut bien noter que] certains postes sont conçus tellement mal, de manière tellement idiote et bureaucratique qu’il devient très difficile [pour l’employé] de pouvoir faire preuve de don dans une telle situation. [Selon l’EoC, trois principes doivent guider les décisions de rémunérations :] satisfaire les besoins des employés (salaire minimal), reconnaître leurs contributions (salaire équitable), permettre un ordre économique durable pour l’entreprise (salaire durable).

Pour Michael Naughton, cet exemple des politiques de rémunérations illustre bien du point de vue de l’EoC

l’art de la réflexion de niveau intermédiaire qui fait le lien entre la théologie de la communion et les pratiques opérationnelles et quotidiennes de l’entreprise

Leo Andringa illustre la question des relations hiérarchiques dans l’entreprise et des modèles organisationnels en évoquant le fait que

l’organisation des entreprises est un « résidu de la société féodale ». Les idées révolutionnaires de liberté et d’égalité ont influencé l’Eglise, la famille et les institutions mais […] à l’opposé, n’ont pas touché l’essence capitaliste du système de l’entreprise. [… ] Du point de vue de la théorie de l’organisation, il est clair qu’une organisation […] ayant une finalité unique exprimée en cibles financières (chiffre d’affaires, bénéfices, trésorerie, valeur pour l’actionnaire) peut être relativement simple et […] très hiérarchique. [Mais] la principale motivation de l’entrepreneur EoC est de vivre la communion dans un environnement commercial. […] Plus l’objectif d’une organisation est complexe […] plus sa forme organisationnelle le sera.

Benedetto Gui précise que, dans l’EoC,

être un entrepreneur (ou un dirigeant ou quiconque ayant des responsabilités dans l’entreprise) est vu comme une véritable vocation : la vocation d’atteindre des valeurs élevées (et même des valeurs spirituelles) à travers l’accomplissement de tâches séculaires.

M. Andringa cite son expérience personnelle et ses relations en tant que patron avec son assistant :

Chaque fois que j’avais une décision importante à prendre pour l’entreprise, je lui faisais part de mes motivations et arguments. Il était une sorte de miroir pour moi. Lorsque je lui exposais mes arguments, je sentais immédiatement si ils tenaient ou non la route. En tant que directeur, c’était une expérience particulière que de prendre les décisions en [communion]. C’était une réalité que je vivais déjà dans ma vie privée et dans ma famille mais je la transposais pour la première fois dans la réalité de la direction d’une entreprise. […] En pratique, on voit qu’un grand nombre d’entrepreneurs veulent confronter leurs décisions d’importance avec autrui. […] Il est clair qu’une telle vision de l’entreprise ne peut se concrétiser sans la coopération de la majorité des actionnaires et la coopération ou la connaissance de la plus grande part des employés. Ce n’est que dans les entreprises où la communion est à tous les niveaux que ceux qui ont les rênes de l’entreprise peuvent être l’expression de la solidarité plutôt que celle de leur vision personnelle.

Le lien entre l’EoC et la responsabilité sociale des entreprises

Leo Andringa rappelle que

bien que de nombreuses multinationales ont gardé leurs oeillères fixées sur la croissance de leurs profits, nombre d’entre elles se sont impliquées dans l’augmentation de leur responsabilité sociale d’entreprise. […] La philosophie de l’EoC ne coïncide pas avec ce que l’on appelle maintenant la « Corporate Social Responsability » : en fait l’EoC a une responsabilité environnementale « par vocation » et non pour des buts de communication, d’image ou de [réponse à une] pression sociale. [L’EoC] exige beaucoup plus. […] Comment l’entreprise peut-elle réconcilier les intérêts de tous ceux qui dépendent d’elle : les actionnaires, les clients, les fournisseurs, la société civile ? Du point de vue [de l’EoC] il n’y a pas de réponse théorique à ce problème. Lorsqu’il est impossible de résoudre ce problème méthodologique à un niveau matériel, une solution est à trouver à un autre niveau [(spirituel, moral)].

Les atouts des entreprises EoC

Benedetto Gui explique que

les préoccupations [éthiques] des entreprises EoC font peser une charge additionnelle sur les dirigeants qui se sentent dans l’obligation implicite de garantir à leurs employés non seulement de bons emplois mais également des occasions de développer des relations interpersonnelles positives et de s’engager dans leurs activités professionnelles en accord avec leurs valeurs morales. Cependant, il y a un avantage à cet inconvénient : celui d’un surplus de motivation et de mobilisation de ressources volontaires. C’est grâce à ce phénomène que de nombreuses entreprises EoC survivent ou même connaissent le succès, malgré le « handicap » que représente leur adhésion à des principes de comportements telles que le respect de l’environnement, de la loi, etc.

Un témoignage dans le magazine de l’EoC illustre ce phénomène : Marcelle, responsable d’une toute petite exploitation agricole en Côte d’Ivoire, raconte sa surprise lorsqu’elle a constaté que ses ouvriers venaient prendre soin des plantations pendant leurs congés ou lorsque les événements politiques l’ont éloignée de son exploitation…

Avez-vous déjà repéré des sociétés françaises pratiquant l’économie de la communion ?

Jointure d’identité et réseaux sociaux

IBM a récemment acquis SRD, éditeur d’un logiciel qui met en correspondance :

  • diverses descriptions informatiques d’un même individu (jointure avancée d’identités),
  • les relations établies entre individus d’après leurs points communs (établissements de réseaux sociaux)

Bref, un logiciel tout à fait adéquat pour qui veut se constituer la parfaite panoplie du petit big brother.
Cette technologie semble un peu similaire aux méta-annuaires qui se sont spécialisés dans la jointure simple d’identités électroniques. Mais elle semble trouver ses principales applications dans le domaine du data mining pour le marketing et la CRM, dans l’analyse du risque crédit et dans le renseignement d’Etat et la sécurité privée. Elle me fait penser à Semagix qui, tout en ciblant des champs d’application similaires (CRM, détection d’opérations financières frauduleuses et déconstruction de réseaux sociaux mafieux), mise sur une approche « web sémantique ».
Il serait sans doute intéressant de savoir sur quelle approche technologique s’appuie SRD et si cette techno est suffisamment robuste, fiable et automatisée pour apporter des éléments de solution dans des problématiques très opérationnelles de gestion des identités électroniques.

Quels gadgets pour 2010 ?

Des auto-collants wifi pour retrouver vos clefs grâce à votre google domestique, une lame de rasoir inusable, un robot domestique abonné à Internet, un téléphone portable qui projette des films sur un mur, la télé en 3D, un club de sport informatisé et… le tant attendu papier électronique… voici les gadgets que nous réservent pour 2010 les grosses boîtes high-tech.