Archive for August, 2004

Lobbying distribué par le Web

Tuesday, August 31st, 2004

Pour les associations qui souhaitent coordonner l’action de lobbying d’un grand nombre d’adhérents (“écrivez à votre député”, “envoyez un fax au maire”, …), un produit Plone vient de voir le jour : Public Action Manager (PAM). Il est notamment utilisé sur le site activiste Public Knowledge. Voici comment ça marche :

Lorsque des militants s’inscrivent dans un site web équipé de P.A.M., le PAM identifie les coordonnées de leurs élus locaux et les garde en mémoire. Lorsqu’une actualité législative suscite l’intérêt de l’organisation, le gestionnaire du site créé une action à travers un jeu de formulaire Web. Une alerte est envoyée à chaque militant, avec une description du sujet qui est en jeu et une méthode simple pour contacter leurs élus.

    Fonctionnalités

  • Gère des listes de diffusion
  • Promeut la participation par fax, email, télégramme ou autre.
  • Propose aux militants une grande diversité de lettres-type de manière à s’assurer que le message, tout en restant cohérent, ne devient répétitif.
  • Mesure l’efficacité des actions grâce à des formulaires d’évaluation inclus dans les emails et grâce à des statistiques de mobilisation.

Il sera intéressant d’attendre le recul de quelques années pour évaluer si de tels logiciels rencontrent des usages importants en Europe. Est-ce que l’activisme à l’américaine est suffisament proche du militantisme à la française pour qu’un tel logiciel trouve ses usages en France ?

XML.com: Implementing REST Web Services: Best Practices and Guidelines

Monday, August 30th, 2004

On me reproche parfois d’être un peu trop théorique. Alors, concernant le style architectural REST, voici quelques bonnes pratiques et guide de conduite pour construire des services Web conformes au style REST.

The Pyramid Principle

Friday, August 27th, 2004

The Pyramid Principle est le titre d’un livre de Barbara Minto (ancienne de chez McKinsey) que je n’ai pas pris le temps de lire… Il m’a été recommandé par mon actuel chef, qui a une grande expérience de consultant. Il m’avait prêté ce bouquin mais je dois le lui rendre maintenant, alors j’en garde ici la trace en vue d’une éventuelle lecture future. C’est sensé être “the international bestseller on logic in writing and thinking”. Il s’agit d’une sorte de livre de recettes pour savoir comment organiser la rédaction d’un document ou d’une présentation PowerPoint. Points forts hypothétiques (j’en saurai plus quand je le lirai dans le détail) : peut permettre d’apprendre vite à faire les choses bien. Points faibles hypothétiques (idem) : peut-être un peu trop “cookie-cutter” dans le style. A rapprocher des sites critiquant la “pensée powerpoint” qui règne dans les grandes entreprises et fait la fortune des cabinets de conseil.

Carnets Web en entreprise

Monday, August 23rd, 2004

Petit à petit, l’idée que les carnets Web (“weblogs” ou “blogs“, si vous préférez) introduisent une forme de communication utile (nécessaire ?) à l’entreprise fait son chemin. On m’a récemment demandé de sélectionner des pointeurs sur le sujet. Voici donc ma sélection. Et si je l’envoyais au directeur de la communication interne de mon employeur ?

Qui profitera de l’open source ?

Friday, August 20th, 2004

A l’occasion d’un très stimulant déjeuner avec Nicolas Chauvat, de Logilab, nous avons évoqué à coups de machettes les différents modèles économiques pour l’open source et la quantité d’innovation portée par chaque modèle (“l’open source permet-il d’innover ?”) :

  • comme les éditeurs propriétaires : développer une fois, revendre plusieurs fois => mais cela suppose que ni l’entreprise ni ses clients ne publient le code, du coup on perd certains bénéfices du modèle open source (open scrutiny, mutualisation des coûts de maintenance, notoriété, …), de plus l’objectif est alors de rentabiliser l’existant (“vaches à lait”) avant/plutôt que de développer du nouveau donc pas trop d’innovation à attendre
  • comme les SSII : vendre du jour.homme => mais cela n’apporte pas de différence essentielle avec le fait de vendre du jour.homme sur des technos propriétaires, l’entreprise ne capitalise pas sur le code ou la communauté, pas d’innovation de la part de l’entreprise qui se “contente” de répondre au besoin du client ; est-ce vraiment le cas chez un Cap Gemini ou Unilog par exemple, qui ont eu tendance à vendre du J.H open source ces derniers temps ?
  • développer un produit (capital), vendre du jour.homme pour l’intégrer et le personnaliser (voire le développer) puis le maintenir/supporter => c’est le modèle que semblent suivre les SS2L françaises : IdealX, Ingeniweb, Nuxeo, Linagora, Clever AgeLogilab et les autres ; de l’innovation mais… reste encore difficile à vendre (sauf, peut-être au secteur public, et encore) !
  • utiliser des outils open source pour porter une offre innovante de services non informatique => exemple : nombreux fournisseurs d’accès, comme Free, de l’innovation, mais y a-t-il une réelle contribution open source (ou au contraire/uniquement des modifications privées du code) ?

Alors, toujours avec ma question en tête “chez quelle boîte est-ce qu’il faut aller travailler pour surfer sur la (future ?) vague open source ?”. Chez les éditeurs propriétaires : ne profitent pas assez du modèle open source ? Chez une SSII classique : pas de stratégie d’innovation ? Chez une SS2L : trop tôt pour avoir une activité avec des volumes suffisants ? Chez un fournisseur de services exploitant l’open source : y en a-t-il de respectables qui aient choisi l’open source ?

Je pense que l’avenir se montrera rose pour ces deux dernières catégories : les SS2L, une fois qu’elles auront appris à vendre leur offre au CAC40 (et que le CAC40 aura appris à la leur acheter !), les fournisseurs de services innovants utilisateurs de l’open source une fois que je saurai si ça existe. Ces deux modèles semblent être les plus “stables” comme dit Nicolas, les plus “durables” je dirais.

Tiens, une idée qui fait plop : le développement/la maturation de l’open source part de l’infrastructure (Linux, Apache, …) et “monte” vers l’applicatif (Evolution, Plone, …) ; de nombreux ISP ont choisi l’open source pour monter une infrastructure permettant de monter des offres de services innovantes ; quelles seront les entreprises qui choisiront l’open source pour s’équiper en applicatifs permettant de monter des offres de services innovantes. Autrement dit, qui fera d’un Plone le même usage qu’un Free peut faire des linux (ou quel que soit le BSD qu’ils utilisent…) ? Est-ce qu’un Sharing Knowledge décidera d’open sourcer ses outils logiciels ? Est-ce qu’un Ingeniweb pourrait tenir une telle position ?

Visualizing social networks

Monday, August 16th, 2004

Social networks are (were ?) trendy these days. What’s missing with social networks is a nice interface so that you can easily browse through one’s social network. This is what this MIT research project was exploring and trying to implement (thank Gouri for the link).

Here are some output my own experiments and implementations on this topic.

Computer Associates a misé sur Zope. Pourquoi ?

Monday, August 16th, 2004

Computer Associates a misé sur Zope, de manière notamment à prendre position dans la tendance open source du moment. De tous les points de vue, je suppose que c’est une très bonne chose (pour Zope, pour Plone, pour CA, …)

Cependant, je suis étonné par ce que j’entends dire par mes collègues au sujet de Computer Associates. On me décrit cette société comme une entreprise de requins : en France, un repaire de commerciaux aux dents longues pour lesquels seul le chiffre compte ; et surtout une entreprise dont la stratégie consisterait à racheter des acteurs innovants pour les étouffer dans l’oeuf. Bref, les différents échos que l’on m’a rapporté à leur sujet font état d’une caricature de gros éditeurs sans âme et poussant à l’extrême les pratiques anti-concurrentielles si souvent décriées dans le secteur.

J’imagine que ces échos comportent sans doute une bonne part d’exagération et peut-être une once de mauvais esprit (ils ne peuvent pas être si mauvais, dites-moi ???). Néanmoins, il doit bien y avoir aussi une part de vrai. Alors que penser d’un acteur de ce type qui se rapproche du monde de l’open source. Comment un éditeur aux dents longues peut-il espérer profiter de communautés open source ?

Ma question n’est pas de savoir si CA est “gentil” ou “méchant”, “bon” ou “mauvais”. Ma question est plutôt de savoir : est-ce qu’un acteur de ce type peut réellement lier des liens profitables et durables avec une communauté open source ? Un éditeur tel que CA peut-il réellement trouver sa place dans un écosystème open source sans le dégrader ou, plus vraisemblablement, s’en faire gentiment éjecter avec le temps ? Ou bien, au-delà de l’effet d’annonce, les gens de Computer Associates ont-ils réellement pris conscience des spécificités et de l’intérêt stratégique de l’open source ? Sont-ils prêts à faire les sacrifices (investissements et conduite interne du changement) nécessaires pour réellement profiter des opportunités de l’open source ? Autrement dit : CA = profiteur qui fait un mouvement par effet de mode ? ou bien CA = visionnaire ?

Plone as a semantic aggregator

Thursday, August 12th, 2004

Here is an output of my imagination (no code, sorry, just a speech) : what if a CMS such as Plone could be turned into a universal content aggregator. It would become able to retrieve any properly packaged content/data from the Web and import it so that it can be reused, enhanced, and processed with the help of Plone content management features. As a universal content aggregator, it would be able to “import” (or “aggregate”) any content whatever its structure and semantic may be. Buzzwords ahead : Plone would be a schema-agnostic aggregator. It would be a semantic-enabled aggretor

Example : On site A, beer-lovers gather. Site A’s webmaster has setup a specific data schema for the description of beers, beer flabours, beer makers, beer drinkers, and so on. Since site A is rich in terms of content and its community of users is enthusiastic, plenty of beers have been described there. Then site B, powered by a semantic aggregator (and CMS), is interested in any data regarding beverages and beverages impact on human’s health. So site B retrieves beer data from site A. In fact it retrieves both the description of beer1, beer2, beerdrinker1, … and the description of what a beer is, how data is structured when it describes a beer, what the relationship is between a beer and a beer drinker. So site B now knows many things about beer in general (data structure = schema) and many beers specifically (beers data). All this beer data on site B is presented and handled as specific content types. Site B’s users are now able to handle beer descriptions as content items, to process them through workflows, to rate them, to blog on them, and so on. And finallly to republish site B’s own output in such a way it can be aggregated again from other sites. That would be the definitive birth of the semantic web !

There are many news aggregators (RSSBandit, …) that know how to retrieve news items from remote sites. But they are only able to aggregate news data. They only know one possible schema for retrievable data : the structure of a news item (a title + a link + a description + a date + …). This schema is specified in the (many) RSS standard(s).

But now that CMS such as Plone are equipped with schema management engines (called “Archetypes” for Plone), they are able to learn new data schema specified in XML files. Currently, Plone’s archetypes is able to import any schema specified in the form of an XMI file output by any UML modelizing editor.

But XMI files are not that common on the Web. And the W3C published some information showing that any UML schema (class diagram I mean) is the equivalent of an RDF-S schema. And there even is a testbed converter from RDF-S to XMI. And there even are web directories inventoring existing RDF schemas as RDF-S files. Plus RSS 1.0 is based on RDF. Plus Atom designers designed it in such a way it is easily converted to RDF.

So here is my easy speech (no code) : let’s build an RDF aggregator product from Plone. This product would retrieve any RDF file from any web site. (It would store it in the Plone’s triplestore called ROPE for instance). It would then retrieve the associated RDF-S file (and store it in the same triplestore). It would convert it to an XMI file and import it as an Archetypes content type with the help of the ArchGenXML feature. Then it would import the RDF data as AT items conforming to the newly created AT content type. Here is a diagram summarizing this : Plone as a semantic aggregator

By the way, Gillou (from Ingeniweb) did not wait for my imagination output to propose a similar project. He called it ATXChange. The only differences I see between his proposal and what is said above are, first, that Gillou might not be aware about RDF and RDF-S capabilities (so he might end with a Archetypes-specific aggregator inputting and outputting content to and from Plone sites only) and that Gillou must be able to provide code sooner or later whereas I may not be !

Last but not least : wordpress is somewhat going in the same direction. The semweb community is manifesting some interest in WP structured blogging features. And some plugins are appearing that try to incorporate more RDF features in WP (see also seeAlso).

Is the Semantic Web stratospheric enough ?

Friday, August 6th, 2004

Did you think the Semantic Web is a stratospheric concept for people smoking too many HTTP connections ? If so, don’t even try to understand what Pierre Levy is intending to do. He and the associatied network of people say they are preparing the next step after the Semantic Web. Well… In fact, I even heard Pierre Levy saying he is preparing the next step in the evolution of mankind, so this is not such a surprise. The worst point in this story is that his ambitious work may be extremely relevant and insightful for all of us, mortals. :)

Free Text-to-speech technologies

Thursday, August 5th, 2004

Here is a short review of freely available (open source or not) “text-to-speech” technologies. I digged in this topic because I wanted to check whether anyone invented some software package turning my RSS aggregator into a personalized radio. More precisely, while I am doing some other task (feeding one of my kids, brushing my teeth, having my breakfast, …) I would like to be able to check my favorite blogs for news without having to read stuff. My conclusion : two packages come near to the expected result.

Regarding features, the most advanced one is NewsAloud from nextup.com. It acts as a simple and limited news aggregator combined with a text-to-speech engine that reads selected newsfeeds loud. But it still lacks some important features (loading my OPML subscription file so that I don’t have to enter my favorites RSS feeds one by one, displaying a scrolling text as it is read, …) and worst : it is NOT open source.

The second nice-looking package going in the expected direction is just a nice hack called BlogTalker and enabling any IBlogExtension-compatible .Net aggregator (RSSBandit, NewsGator…) to read any blog entry. But it is just a proof-of-concept since it cannot be setup so that it reads a whole newsfeed nor any set of newsfeeds. It seems to me that adding TTS abilities to existing news aggregators is the way to go (compared to NewsAloud which is coming from TTS technologies and trying to build a news aggregator from there). And BlogTalker passes successfully the “is it open source ?” test.

Both packages depend on third party text-to-speech engines (the “voices” you install on your system). As such, they are dependent on the quality of the underlying TTS engine. For example, if you are a Windows user, you can freely use some Microsoft voices (Mike, Mary, Sam, robot voices, …) or Lernout & Hauspie voices or many other freely available TTS engines that support the Microsoft Speech API version 4 or 5 (or above ?). The problem is that these voices do not sound good enough to me. As a native French speaker, I am comfortable with the LH Pierre or LH Veronique French voices even if they still sound like automat voices. But for listening to English newsfeeds on the long run, the MS, LH or other voices are not good enough. Fortunately, AT&T invented its “natural voices” which sound extremely … natural according to the samples provided online. Unfortunately, you have to purchase them. I will wait for this new kind of natural voices to become commoditized.

Meanwhile, I have to admit that TTS-enabled news aggregators are not ready for end-users. You can assemble a nice proof-of-concept but the quality is still lacking with the above three issues : aggregators are not fully mature (from a usability point-of-view), high-quality TTS engines are still rare, nobody has achieved to integrate them well one with the other yet. With the maturation of audio streaming technologies, I expect some hacker some day to TTS-enable my favorite CMS : Plone. With the help some of the Plone aggregation modules (CMFFeed, CMFSin, …), it would be able to stream personalized audio newsfeed directly to WinAmp… Does it sound like a dream ? Not sure…

During my tests, I encountered several other TTS utilities that are open source (or free or included in Windows) :

  • Windows Narrator is a nice feature that reads any Windows message box for more accessibility. It seems to be bundled in all the recent Windows releases. Windows TTS features are also delivered with the help of the friendly-but-useless Microsoft Agents.
  • Speakerdaemon‘s concept is simple : it monitors any set of local files or URLs and it speaks a predefined message at any change in the local or remote resource (“Your favorite weblog has been updated !”). Too bad it cannot read the content or excerpts (think regular expressions) of these resources.
  • SayzMe sits in your icon tray and reads any text that is pasted by Windows into the clipboard. Limited but easy.
  • Clip2Speech offer the same simple set of features as SayzMe plus it allows you to convert text to .WAV files.
  • Voxx Open Source is somewhat ambitious. It offers both TTS features (read any highlighted text when you hit Ctrl-3, read message boxes, read any text file, convert text to .WAV or .MP3, …) and speech recognition. Once again, it is “just” a packaging (front-end) of third party speech recognition engines. As such, it uses by default Microsoft Speech recognizer which is not available in French (but in U.S. English, Chinese and Japanese if I remember properly). I have still to try it in its U.S. English with a headset microphone since my laptop microphones catches too much noise for it to be usable. The speech recognition feature allows the user to dictate a text or to command Voxx or Windows via voice. So it is an open source competitor to IBM ViaVoice or ScanSoft Dragon Naturally Speaking.
  • PhantomSpeech is middleware that plugs into TTS engines and allows application developers to add TTS capabilities to their applications. It is said to be distributed with addins for Office 2000. Indeed I could display a PhantomSpeech toolbar in Word 2003. It could read a text but only using the female Microsoft voice. And this toolbar had unexpected behaviors and errors within Office. Not reliable as a front-end application. Anyway, the use and configuration of speech engines is really a mess. The result is that PhantomSpeech does not look as really intended for end-users but maybe just for developers.
  • CHIPSpeaking is a nice utility for “the vocally disabled” (people who cannot speak). It allows the user to dictate sentences with a virtual keyboard and to record predefined sentences that are read aloud with one click.
  • ReadPlease (the free version) is just a nice simple text reader made by developers who played too much with Warcraft (click on the faces and you’ll see why). The word being read is highlighted. Simple options allow users to change the voices with one click (which is cool when you switch between several languages) or to customize the size of the text, …
  • Spacejock’s yRead is another text reader that includes a pronunciation editor (read km as “kilometers” please) and also allows the download of public domain texts available from Project Gutenberg. The phrase being read is highlighted, you can easily switch from one voice (and language) to another. Too bad its Window always sucks the focus when it reads a new phrase.
  • For the *nix-inclined people, I should also mention the famous Festival suite of TTS components (Festival, FLite, Festvox). For the java-inclined people, don’t miss the FreeTTS engine (that is based on Festival Lite !) and the associated end-user applications. An example of an end-user application based on Festival is the CMU Communicator, see its sample conversation as a demo.
  • Last but not least, do not miss Euler and the underlying MBROLA package. Euler is a simple open source reading machine based on MBROLA that implements a huge number of voices in many many languages plus these voices can include very natural intonations and vocal stresses. Euler + MBROLA were produces by an academic research program. They are free for non-commercial use and their source code is available (BTW, it is said that MBROLA could not be distributed under an open source license because of a France Telecom software patent !). Beware : the installation of MBROLA may be quite tricky. First, download the MBROLATools Windows binaries package, download patch #1 and read the instructions included, (I had problems when trying patch #2 so I did not use it), download as many MBROLA voices as you want (wow ! that many languages supported !), then download Win Euler (or any other MBROLA compatible TTS engine from third parties ; note that MBROLA is supported by festival).

Further ranting about TTS engines : I feel like the ecosystem of speech engines is really not mature enough. Sure several vendors provide speech engines. But they are not uniformly supported by the O.S.. There was a Microsoft S.A.P.I. version 4 (SDK available here) which is now version 5.1 but people even mention v.6 (included in Office 2003 U.S. ?) and a v.7 to be included in LongHorn (note that there also is another TTS API : the Java Speech API 1.0 – JSAPI- as implemented by FreeTTS… bridgeable with MS SAPI ?). But as any Microsoft standard, these API are … not that standardized (i.e. they seem to be Microsoft-specific). Even worst : they seem rather unstable since the installation of various speech engines give strange results : some software detects most of the installed TTS engines, other only detect SOME of the SAPI v.4 TTS engines, some other display a mix of some of your SAPI4 TTS engines and some of your SAPI5 TTS engines…. In order to be able to use SAPI5 engines and control panel I had to install Microsoft Reader and to TTS-enable it (additional download). What a mess ! The result is that you cannot easily control which voices you will be using on your computer (which one will be supported or not ?). As a further example, I could not install and use the free CMU Kal Diphone voice and I still don’t know why. Is it the API fault ? the engine’s fault ? Don’t know… Last remark on this point : Festival seems to be the main open source stream in the field of TTS technologies but it does not seem to be fully mature ; and the end-user applications based on it seem to be quite rare. Let’s wait some more years before it becomes a mainstream, user-friendly and free technology.

More precisely, the TTS puzzle seems to be made with the following parts :

  • a TTS engine made with three parts :
    • a text processing system that takes a text as input and produces phonetic and prosodic (duration of phonemes and a piecewise linear description of pitch) commands
    • a speech synthesizer that transforms phonemes plus a prosody (think “speech melody”) into a speech
    • a “voice” that is a reference database that allows the speech to be synthesized according to the tone, characteristics and accent of a given voice
  • an A.P.I. that hosts this engine and publishes its features toward end-user applications and may provide some general features such as a control panel
  • an end-user application (a reading machine, a file monitor with audio alerts, a audio news aggregator, …) that invokes the dedicated speech API

You can get more detailed information from the MRBOLA project site.

These were my notes and ranting about text-to-speech technologies. Please drop me a comment if you feel like my explanations were wrong or biased as I don’t know this field in details and I may have made a lot of errors here. Thanks !