Posts|Comments
Jan 25 2009

Réparer son toit

D’après notre couvreur notre toiture a été refaite lors des reconstructions massives effectuées après la dernière guerre. C’est son état général et surtout la taille des ardoises, introuvables en France mais communes en Angleterre, qui lui fait dire cela.

Elle tient encore le coup. Ce sont les crochets métalliques qui tiennent les ardoises qui lâchent lorsque le vent est trop violent comme cela a été le cas ces derniers jours en Normandie et cinq ardoises avaient été déplacées.

Ce n’est pas bien compliqué de replacer des ardoises : il suffit de remplacer les crochets et de les glisser à leur place.

Réparer mon toit fait partie des occupations simples et fondamentales que j’ai toujours plaisir à faire par moi-même tout comme faire mon pain.

C’est aussi l’occasion de voir notre terrain et les alentours sous un angle inhabituel et spectaculaire et le plateau qui nous entoure est d’une grande beauté bien que les agriculteurs aient fait disparaître le bocage normand dont on devine encore quelques traces.

Jan 19 2009

Algorithmes génétiques

Un aspect inattendu du magasin le Retour à la Terre créé par ma femme Catherine est qu’il me donne l’opportunité de travailler dans des domaines connexes à ceux que je connais sur des projets intéressants parce que directement valorisables et à taille humaine.

C’est le cas du système de gestion des emplois du temps dont je viens de terminer une première version.

La gestion des emplois du temps dans une entreprise gérant une dizaine de personnes avec des rôles et des contraintes d’emploi du temps très variées est un véritable casse-tête et Catherine passait chaque semaine plus d’une demi-journée à constituer l’emploi du temps de la semaine suivante.

Les recherches que j’ai fait sur Internet pour essayer de dénicher un logiciel pouvant gérer cela sans modifier les habitudes déjà prises au magasin (j’estime que c’est aux logiciels de s’adapter aux organisations et non l’inverse) et de préférence disponible en Open Source se sont soldées par un échec et après l’avoir vu une nouvelle fois gâcher son week-end à travailler sur l’emploi du temps je me suis résolu à écrire mon propre système pour gérer cela.

Ce type de problème me rappelait pourtant de mauvais souvenirs, l’optimisation sous contraintes restant pour de nombreux centraliens de ma promotion synonyme de “Simplexe“, un des points les plus obscurs du cours d’analyse numérique…

Pour éviter cela, j’ai décidé de mettre en pratique les rudiments d’algorithmes génétiques que j’avais récemment acquis grâce au livre fascinant de Toby Segaran : “Programming Collective Intelligence“.

Et ça marche!

C’est sans doute un des problèmes les plus complexes que j’ai dû résoudre et l’efficacité de cette méthode est simplement ahurissante.

En deux mots, les algorithmes génétiques appliquent à la recherche de solutions des techniques empruntées à l’évolution naturelles des espèces : on part d’une population de solutions générées aléatoirement que l’on note et on les améliore, génération après génération par des sélections et des mutations et croisements aléatoires.

Les deux principales difficultés sont la modélisation et la notation des solutions, le reste étant de la programmation classique sans grande difficulté.

C’est une manière de programmer - et de raisonner! - totalement nouvelle pour moi. Elle est fascinante par le parallèle entre ces populations de solutions et la biodiversité du monde qui nous entourent et l’observation de la manière dont convergent ces solutions alimente toutes sortes de réflexions…

J’aime beaucoup ce type de projets courts dont la richesse repose sur quelques idées simples.

Dec 16 2008

Un demi siècle

J’ai cinquante ans depuis dimanche et me propose de faire un rapide survol de ces cinq décennies…

1958

Je suis né en au Raincy en 1958 mais n’ai pu rester que quelques mois dans cette commune du “neuf trois” qui s’appelait encore Seine et Oise : mes parents louaient un meublé chez une vieille dame qui ne supportait pas les enfants et nous a expulsé peu après ma naissance.

Les effets du baby boom se faisaient encore cruellement sentir et nous avons du revenir habiter chez mes grands parents dans un petit deux pièces pendant plusieurs années avant de pouvoir trouver un appartement dans un HLM.

1958 c’est aussi (entre autres) :

1968

Un matin de printemps je découvre que les portes de l’école primaire Jean Jaurès de Villeneuve la Garenne dans laquelle je suis élève en classe de CM2 sont verrouillées par de grosses chaînes. Une affiche nous informe que l’école est fermée jusqu’à nouvel ordre et je rentre chez moi.

J’apprécie beaucoup ces vacances imprévues pendant lesquelles nous suivons fébrilement les informations à la radio et où tout le monde discute politique et se prend à refaire le monde. Peu de temps après, c’est au tour de mon père de rentrer à la maison. Je n’ai jamais compris s’il faisait grève ou s’il avait simplement été empêché d’aller travailler, mais le laboratoire de Saint-Gobain dans lequel il travaille est lui aussi fermé.

L’essence se met ensuite à manquer et nous redécouvrons un monde sans voiture où l’on se déplace à pieds et en vélo. Le temps est comme suspendu et Villeneuve la Garenne semble loin de tout.

1968 c’est aussi (entre autres) :

1978

A la fin du printemps, je passe les concours d’entrée aux grandes écoles et entreprend seul en vélo un long périple de Viarmes dans le Val d’Oise aux portes de la Picardie jusqu’à Tarragone au sud de la Catalogne.

Ce voyage me permet de tourner la page de deux années de “taupe“.

C’est en Auvergne que mon père me donne au téléphone les résultats des concours et que j’apprends que je suis accepté à l’Ecole Centrale de Paris et je profite pleinement de ces moments de liberté avant une orientation que j’ai choisi par défaut de vocation.

En seconde, j’avais essayé en vain de convaincre mes parents de quitter la région parisienne pour reprendre une ferme dans les Cévennes et avais ensuite caressé l’idée de devenir menuisier mais avait fini par me laisser guider par mes professeurs vers une voie plus conforme à mes “capacités”.

C’est à l’Ecole Centrale que je rencontrerai deux ans plus tard ma femme Catherine et le bilan des trois années que j’y passerai ne sera donc pas entièrement négatif mais j’aurai du mal à supporter le discours dominant nous répétant à longueur de temps que nous étions l’élite de la jeunesse française.

Ma réaction à ce matraquage consistera dans un premier temps à me réfugier au CTI (Centre de Traitement Informatique) dans lequel nous programmions un vénérable Iris 45 au moyen de cartes perforées avant de me consacrer au journal de l’école, le PI (Piston Information) dans lequel j’exposais mes idées de manière aussi polémique que violente.

1978 c’est aussi (entre autres) :

1988

Après trois ans d’études à l’Ecole Centrale et dix huit mois de travail pour le CNRS dans le cadre du service national dont un an passé à l’île Amsterdam, je suis entré dans la vie “active”. J’ai travaillé pendant cinq ans chez TRT, une filiale du groupe Philips.

J’ai beaucoup hésité avant de quitter le CNRS où je travaillais sur la mesure du taux de CO2 dans l’air et où le problème de réchauffement climatique était déjà bien connu, mais le laboratoire dans lequel je travaillais n’embauchait en moyenne d’une demi chercheur par an et il m’aurait fallu faire au moins trois ans d’études pour obtenir un DEA et un doctorat payé en dessous du SMIC avant d’avoir une chance sur deux d’intégrer l’équipe… J’ai donc cédé à la facilité en acceptant une des offres d’emplois qui nous arrivaient de manière quasiment spontanée à notre sortie de l’école.

Je me suis bien intégré chez TRT et trouvais mon travail plutôt intéressant mais je ne me sentais pas bien à ma place dans une société de cette taille et en janvier 1988 je rejoins Anator, une petite société indépendante d’une vingtaine de personnes.

Je suis marié avec Catherine, nous avons deux enfants de un et trois ans et nous vivons rue Ginoux, dans le 15ème arrondissement de Paris.

1988 c’est aussi (entre autres) :

1998

Après deux petites entreprises, Anator et Esterel, j’ai rejoint Sybase en 1993 et au début 1998, j’y suis responsable européen du support de deuxième niveau de la gamme serveurs de données.

Bien qu’étant plutôt allergique aux grands évènements sportifs, il m’est difficile d’ignorer la coupe du monde cette année là : l’architecture informatique de son système de gestion utilisait beaucoup de produits Sybase et mon équipe aurait été en première ligne en cas de problème technique.

Il faut donc organiser les astreintes et le fonctionnement du support technique 24 heures sur 24 en utilisant le réseau de support “follow the sun” permettant de mobiliser des équipes Sybase se relayant sur tous les continents.

En marge de toute cette excitation, il faut gérer des tâches moins prestigieuses : Sybase qui a été pendant un temps la société croissant le plus vite sur le Nasdaq paie le prix de sa stratégie de croissance forcenée. Le mot d’ordre “get big fast” s’avère insuffisant sur le long terme, le chiffre d’affaire se met à stagner et chaque manager doit donner des noms pour le prochain plan social.

Je décide de tenter ma chance et à l’automne 1998, j’ajoute mon nom sur la liste ce qui me permet aussi de ménager mon équipe…

Chez Sybase, j’ai découvert Internet et les logiciels libres. J’ai aussi beaucoup aimé l’ambiance et le travail du support technique et j’essaye d’abord de lancer une société de support technique autour des logiciels libres.

Mon idée est de proposer aux grands comptes des contrats de supports similaires à ceux qu’ils souscrivent auprès des éditeurs de logiciels classiques et portant sur l’ensemble des logiciels libres qu’ils utilisent. Je suis convaincu que l’absence d’une telle offre freine l’adoption des logiciels libres et que l’arrivée d’internet permet de faciliter les communications avec les clients et avec les développeurs et donc de réduire les coûts.

Puisque le projet se nourrira du développement des logiciels libres qu’il favorisera à son tour, je l’appelle Amphyprion en référence au poisson clown de la famille des amphiprioninae qui vit en osmose avec son anémone.

Avec deux complices, je pars à l’assaut des sociétés de capital risque et la première que nous contactons semble intéressée. Nous discutons assez longuement avec elle avant qu’elle nous dise qu’elle ne donnera pas suite parce que notre projet semble manquer d’”effet de levier”. Nous sommes avant l’éclatement de la bulle internet et les capitaux risqueurs cherchent des niveaux de gain qu’une société de service ne peut pas assurer!

Après ce premier revers, mes deux acolytes se découragent et trouvent un homme miracle, un investisseur prêt à financer le projet à ses débuts et à en prendre la direction, ce qui m’enchante moins. Ne voyant pas ma place dans le projet tel qu’il se redessine, je les laisse poursuivre créer open care sans moi.

Après cette péripétie, je me tourne vers une activité plus classique de conseil et crée Dyomedea au début de l’année 1999.

Catherine et moi avons maintenant quatre enfants de cinq, huit, onze et treize ans. Nous habitons toujours dans le 15ème arrondissement mais nous avons déménagé rue Edgar Faure.

Nous avons acheté une maison de campagne aux Préaux en 1994 lorsque nous nous sommes aperçus que nos enfants étaient ébahis quand ils voyaient une vache. Nos week-ends sont donc consacrés au jardinage et nous entreprenons de planter des arbres fruitiers sur le terrain de 1,7 ha qui l’entoure.

L’effet sur la santé des enfants est surprenant : depuis que nous les emmenons régulièrement à la campagne, la plupart des maladies bénignes qu’ils avaient auparavant disparaissent et le rythme de nos visites chez le pédiatre diminue fortement!

1998 c’est aussi (entre autres) :

2008

Après “du côté de” un projet de site web de quartier pour lequel je n’ai pas réussi à trouver de modèle économique viable, j’ai développé une activité de conseil et de formation autour des technologies XML et suis rapidement devenu un expert international reconnu dans mes domaines d’excellence.

Cela va faire dix ans que je travaille comme indépendant et c’est Catherine qui décide de franchir le pas et de quitter Renault pour créer sa société. Cherchant un projet qui soit utile à l’amélioration de la condition humaine et à la protection de la nature, elle décide de créer un magasin de produits biologiques et rejoint le réseau Biocoop dont elle partage les valeurs éthiques.

Le magasin a ouvert ses portes le 20 août et le succès est au rendez-vous puisque tous les objectifs ont été largement dépassés et Catherine a ainsi pu créer une dizaine d’emplois directs.

Il fait partie d’une démarche plus large et nous voulons réorienter notre vie pour être plus proches de la nature et plus respectueux de l’environnement. Le magasin se double ainsi d’une activité de production de fruits : ceux de notre maison de campagne dont le verger est maintenant certifié AB et labellisé Nature & Progrés et à terme ceux d’un second verger que nous avons acheté et commencé à planter au printemps.

Je me suis également lancé dans l’apiculture sous l’impulsion de notre fils cadet et nous avons des ruches depuis 2004.

Il faut donc que j’arrive à trouver un équilibre entre mes activités de conseil et de formation et mes nouvelles activités dans nos vergers qui demanderont de plus en plus de travail à mesure que les arbres grandiront et au magasin dans lequel je ne travaille pas à plein temps mais aide ponctuellement, notamment pour ce qui est de l’informatique et du site internet.

Lorsque nous ne sommes pas à la campagne, nous habitons toujours dans rue Edgar Faure.

2008 c’est aussi (entre autres) :

Nov 17 2008

RSS en campagne

Les agriculteurs AB sont rares en Haute-Normandie dont les bocages ont été transformés en grandes culture partout où c’était possible. Pour briser l’isolement, ils se sont rassemblés au sein de groupements et cherchent à garder le contact par tous les moyens.

En tant qu’arboriculteur AB, nous ne faisons pas exception à la règle et rendons volontiers visite à Paola et Benoît Lelièvre de la ferme de Pincheloup qui sont nos plus proches voisins AB, mais depuis le mois d’août et l’ouverture du magasin, nous avons du quelque peu espacer ces contacts.

Catherine a reçu hier un mail de Paola lui donnant quelques nouvelles et lui disant que nos aventures étaient suivies avec attention par la ferme de Pincheloup grâce… au flux RSS de notre site!

Lorsque j’ai participé à la rédaction de la spécification RSS 1.0 en 2000, j’étais loin de me douter que ce vocabulaire dont j’avais tant de mal à expliquer l’intérêt à mon entourage serait un jour utilisé dans les campagnes et me servirait à mener à bien un projet de nature si différente!

Aug 18 2008

Le Retour à la Terre ouvre le 20 août

Logo du Retour à la TerreIl aura fallu la détermination sans faille de Catherine et la motivation exceptionnelle de son équipe pour maintenir le cap et respecter cette date d’ouverture fixée depuis plusieurs mois en dépit de tous les obstacles que l’on rencontre sur ce type de projet…

Le pari est en passe d’être gagné et son magasin « Le Retour à la Terre » ouvrira ses portes le 20 août.

Cette ouverture imminente nous a conduit à mettre en ligne dès ce week-end le site du Retour à la Terre bien qu’il soit encore en construction.

Pour ce site qui présentera non seulement le magasin mais également notre démarche et nos vergers, j’ai souhaité privilégier la facilité de mise à jour et ai choisi de le « motoriser » avec WordPress que Catherine connaît bien puisque c’est également le moteur de son blog.

Le style a été réalisé par Laurent Henriot et appliqué au site sous forme d’un « thème » WordPress spécifique.

May 20 2008

Mangez vos mauvaises herbes

Si la promotion assurée à son insu par la DGCCRF a sorti l’ortie de l’ombre et contribué à réhabiliter cette plante y compris dans ses usages alimentaires, beaucoup d’autres “mauvaises herbes” sont non seulement comestibles mais également délicieuses.

Comme Catherine l’a déjà mentionné, nous consommons régulièrement la consoude qui pousse près de la rivière qui coule en bas de notre verger et ce week-end j’ai essayé de consommer d’autres plantes sauvages qui se sont révélées tout aussi délicieuses.

Il existe beaucoup de livres consacrés aux plantes sauvages comestibles ou aux légumes oubliés (beaucoup de nos mauvaises herbes sont en effet des légumes anciens passés de mode) et nous en avons plusieurs dans notre bibliothèque mais j’ai préféré me munir de l’encyclopédie des plantes bio-indicatrices de Gérard Ducerf que je n’avais encore jamais utilisée de cette façon.

J’ai suivi en septembre 2007 la formation de Gérard Ducerf sur les plantes bio-indicatrices organisée par le GRAB-HN et n’ai pas manqué d’utiliser ce guide pour évaluer les terrains que nous avons eu l’occasion de visiter mais je n’avais pas encore tiré parti des indications sur l’usage culinaire de ces plantes. C’est maintenant chose faite…

J’ai commencé par une plante que je connaissais déjà. Une affreuse mauvaise herbe connue sous le nom de “laiteron” que j’avais eu l’occasion de goûter à l‘île Amsterdam. Les ouvriers Réunionnais qui hivernaient avec nous n’avaient pas leurs pareils pour tirer parti des ressources naturelles de l’île et ils nous avaient appris à utiliser cette plante pour parfumer les plats de riz. Depuis, je m’étais rangé à l’avis général et avais réappris à considérer cette plante qui ressemble à un chardon mâtiné de pissenlit comme “mauvaise”…

Gérard Ducerf affirmant que cette plante est comestible crue, j’ai essayé des salades composées constituées de laiteron et d’autres plantes sauvages.

Il n’y a plus beaucoup de laiteron dans notre verger et dans la mesure où ce sont des plantes indicatrices “d’engorgements en eau et en matière organique provoquant des hydromorphismes et des anaérobioses” je ne m’en plaindrai pas! J’ai tout de même trouvé deux beaux pieds, l’un qui est vraisemblablement un laiteron rude (sonchus asper) et l’autre un laiteron des champs (sonchus arvensis).

Leurs feuilles sont fermes, un peu dures et légèrement amères. Elles sont également légèrement épineuses sans aller jusqu’à piquer la langue ou le palais.

Pour les accompagner, j’ai aussi cueilli :

  • des feuilles de pissenlit qui sont un peu plus amères que le laiteron en cette saison,
  • des feuilles d’épilobe hirsute (epilobium hirsutum), une autre “mauvaise herbe” que nous avons tendance à arracher parce qu’elle se montre volontiers envahissante et dont les feuilles un peu duveteuses se révèlent avoir un goût proche de celui de la mâche,
  • des feuilles de petite oseille (rumex ocetosella) au goût agréablement acide,
  • du mouron blanc (stellaria media) au goût très fin,
  • de jeunes feuilles de plantain lancéolé (plantago lanceolata) au léger goût de champignon,
  • des fleurs d’églantine (rosa canina) au goût fruité et sucré
  • des fleurs de pâquerette (bellis perennis).

J’ai essayé plusieurs combinaisons qui se sont avérés aussi bonnes les unes que les autres accompagnées d’huile d’olive et de vinaigre de miel…

Le très léger goût de champignon des jeunes feuilles de plantain m’a donné envie d’essayer autre chose et j’ai tenté une omelette au plantain qui a été un véritable régal.

Que retenir de tout cela?

Tout d’abord, bien entendu, que nos jardins regorgent de ressources culinaires qui poussent naturellement et attendent que nous les cueillons.

Mais ce qui m’interpelle le plus c’est la manière dont nous avons non seulement oublié ces ressources et préféré acheter dans des magasins ce qui pousse naturellement (ce n’est qu’un des nombreux exemples de “marchandisation” de la nature) mais également été poussés à les détruire en utilisant au besoin des herbicides de synthèse plus dangereux les uns que les autres. Nous avons été véritablement conditionnés pour être non seulement des consommateurs mais également les complices de ce processus.

Feb 12 2008

Insaisissables identités numériques

J’ai passé un après midi passionnant à l’atelier “Apparaître, paraître, disparaître” organisé par la Fing.

Les exposés de Dominique Cardon, Philippe Rigaut, Arnaud Belleil et Pascal Levy-Garboua étaient intéressants et, combinés à la discussion qui a suivi, cela me confirme qu’en matière d’identité numérique je dois faire figure de dinosaure puisque je m’obstine à entretenir une seule et même identité numérique et à la rattacher à mon identité physique par des artifices tels que mon éternel tee-shirt XMLfr!

Plutôt que d’essayer de faire un compte rendu qui ferait double emploi avec celui que devrait publier la Fing, je préfère retranscrire ici quelques réflexions qui me sont venues alors que je rentrais chez moi.

Ces discussions ont mis en lumière un besoin de mieux définir la notion d’identité numérique.

Alors que j’ai tendance à considérer mon identité numérique comme la somme de tout ce que l’on trouve à propos de moi sur le web, il m’a semblé que beaucoup de personnes considèrent une identité numérique comme un « compte » sur un site Web. Ainsi, quand il a été question de savoir combien d’identités numériques chacun d’entre nous possédait, il a semblé naturel de compter le nombre d’applications sur lesquelles nous avons créé des comptes.

Michel Desbois a fait remarquer que les choses n’étaient pas si simples et que l’on pouvait avoir plusieurs comptes et donc plusieurs identités sur une seule application.

Certes, mais on peut également, ce qui est mon cas, être dans la situation inverse et avoir une seule et même identité numérique sur plusieurs applications et même sur le Web en dehors de ces applications. Partager une même identité numérique sur plusieurs applications est assez simple : il suffit d’utiliser le même nom ou pseudonyme et de créer des liens entre ces applications.

Quelque soit le rayonnement des grandes applications Web 2.0, il me semble également très important de prendre en compte ce qui est publié sur le Web en dehors de ces applications.

Je suis consultant indépendant et mon identité numérique est ce qui me sert d’action marketing. C’est quelque chose que je constitue patiemment depuis 1999 et j’ai tendance à considérer qu’elle est trop importante pour en confier plus que des bribes à ces sites.

Certains de ces sites ont des conditions d’utilisation qui leur permettraient s’ils le souhaitaient de l’exploiter sans mon accord et d’autres peuvent y ajouter des publicités qui pourraient être contre productives.

De plus et cela semble encore plus important, je ne suis pas certain de pouvoir leur faire confiance pour assurer la pérennité de mon identité électronique.

Depuis 1999, bien des services que l’on croyait immuables ont disparu, ont changé de formule ou ont été achetés par d’autres sociétés.

J’ai écris récemment deux articles l’occasion du huitième anniversaire de XMLfr et du dixième anniversaire de XML et ai eu l’occasion de faire quelques recherches de ressources Web ayant huit ou dix ans. Certains jouent remarquablement le jeu et c’est le cas par exemple de Yahoo! qui assure toujours la redirection des URIs des messages egroups.com vers le même message sur yahoogroups.com. J’espère que ce sera également le cas si Yahoo! est acheté par Microsoft mais la plupart des liens ont disparus, y compris des liens de billets postés sur les blogues O’Reilly.

Si j’avais utilisé plus massivement les services offerts en 1999 ou 2000, beaucoup des documents que j’ai produit à cet époque et qui constituent aujourd’hui mon identité numérique auraient disparu.

Aussi paradoxal ou prétentieux que cela paraisse, je pense donc prendre moins de risques en gérant mon identité numérique en dehors des grands sites Web 2.0!

Ceci dit, aussi simple soit elle, ma définition de l’identité numérique comme étant l’ensemble des informations disponibles sur une personne ou un pseudonyme ne va pas sans poser problème…

J’ai la chance d’avoir un nom suffisamment peu répandu pour que l’on puisse facilement repérer sur le Web ce qui fait partie de mon identité numérique. Les choses ne seraient pas si simples si j’avais un nom beaucoup plus courant, ou pire, si j’avais le même nom de quelqu’un de beaucoup plus connu. Dans ce cas, comment définir les contours de mon identité numérique?

Jan 31 2008

HTML 5 turns documents into applications

 Voir aussi la version française de cet article sur XMLfr.

HTML 5 is not just HTML 4 + 1

This announcement has been already widely commented and I won’t come back on the detail of the differences between HTML 4.1 and HTML 5 which are detailed in one of the documents published with the Working Draft. What I find unfortunate is that this document and much of the comments about HTML 5 focus on the detail of the syntactical differences between these versions rather than commenting more major differences.

These differences are clearly visible as soon as you read the introduction:

The World Wide Web’s markup language has always been HTML. HTML was primarily designed as a language for semantically describing scientific documents, although its general design and adaptations over the years has enabled it to be used to describe a number of other types of documents.

The main area that has not been adequately addressed by HTML is a vague subject referred to as Web Applications. This specification attempts to rectify this, while at the same time updating the HTML specifications to address issues raised in the past few years.

This introduction does a good job in setting the context and expectations: the goal of HTML 5 is to move from documents to applications and this is confirmed in many other places, such as for instance the section titled “Relationship to XUL, Flash, Silverlight, and other proprietary UI languages”:

This specification is independent of the various proprietary UI languages that various vendors provide. As an open, vender-neutral language, HTML provides for a solution to the same problems without the risk of vendor lock-in.

To understand this bold move, we need to set this back into context.

Nobody denies that HTML has been created to represent documents, but its success comes from its neutrality: even if it is fair to say that Web 2.0 is the web has it was meant to be, the makers of HTML couldn’t imagine everything that can be done in modern web applications. If these applications are possible in HTML, this is because HTML has been designed to be neutral enough to describe yesterday’s, today’s and probably tomorrow’s applications.

If on the contrary, HTML 4.01 had attempted to describe, in 1999, what was a web application, it is pretty obvious that this description would have had to be in the best case worked around and that it might even have slowed down the development of Web 2.0.

This is the reason why I would make to HTML 5 the same kind of criticism I made to W3C XML Schema: over specifying how to use a document is a risk to block creativity and increase the coupling between applications.

While many people agree that web applications should be designed as documents, HTML 5 appears to propose to move from documents to applications. This seems to me to be a major step… backward!

Flashback on HTML’s history

Another point that needs to be highlighted are the relations between HTML 5 and XML in general and XHTML in particular.

HTML 5 presents itself as the sibling of both HTML 4.01 and XHTML 1.1 and as a competitor of XHTML 2.0.

To understand why the W3C is developing two competing standards, we need a brief reminder of the history of HTML.

HTML has been originally designed as a SGML vocabulary and uses some of its features to reduce the verbosity of its documents. This is the case for instance of tags such as <img> or <link> that do not need to be closed in HTML.

XML has been designed to be a simplification of SGML and this simplification does not allow to use the features used by HTML to reduce its verbosity.

When XML has been published, W3C found themselves with a SGML application in one hand (HTML) and a simplification of SGML in the other hand (XML) and these two recommendations were incompatible.

To make these recommendations compatible, they decided to create XHTML 1.0 which is a revamping of HTML to be compatible with the XML recommendation while keeping th exact same features. This lead to XHTML 1.0 and then XHTML 1.1 which is roughly the same thing cut into modules that can be used independently.

One of the weaknesses of HTML being its forms, W3C did also work on XForms, a new generation of web forms and started to move forward working on a new version of XHTML with new features, XHTML 2.0 still work in progress.

The approach looked so obvious that W3C has probably neglected to check that the community was still following its works. With the euphoria that followed the publication of XML 1.0 many people were convinced that the browsers war was over, the interest for HTML which was partly fueled by this war started to decline and the W3C works in this domain didn’t seem to raise that much interest compared to let’s say XML Schema languages or Web Services.

It is also fair to say that the practical interest to move from HTML to XHTML wasn’t (and still isn’t) obvious for web site developers since the features are the same. Migrating a site from HTML to XHTML involves an additional work which is only compensated by the joy of displaying a “W3C XHTML 1.x compliant” logo!

This is also the moment when Microsoft stopped any development on Internet Explorer and Netscape transferred their development to Mozilla.

The old actors from the browsers war, well represented at the W3C which was one of their battle fields led the way to new actors, Mozilla, Opera and Apple/Safari younger and less keen to accept the heaviness of W3C procedures.

At the same time, the first Web 2.0 applications sparkled a new wave of creativity among web developers and all this happened outside the W3C. This is not necessarily a bad thing since the mission of standard bodies such as W3C is to standardize rather than innovate, but the W3C doesn’t appear to have correctly estimated the importance of these changes and seems to have lost the contact with their users.

And when these users, led by Opera, Mozilla and Safari decided that it was time to move HTML forward, rather than jump into the XHTML 2.0 wagon, they decided to create their own Working Group, WHATWG, outside the W3C. This is where the first versions of HTML 5 have been drafted together with Web Forms 2.0, a sister documentation designed to be an enhancement of HTML forms simpler than Xforms.

Microsoft was still silent on this subject and the W3C saw themselves as editor of a promising new specification, XHTML 2.0 which didn’t seem to attract much attention while, outside, a new specification claiming to be the true successor of HTML was being developed by the most promising outsiders in the browser market.

At XTech 2007, I had a chance to measure the depth of the channel that separates the two communities by attending to a debate between both working groups.

Tim Berners-Lee must have found that this channel was too deep when he took the decision to invite the WHATWG to continue their work within the W3C in a Working Group created for this purpose and distinct from the XHTML 2.0 Working Group that continues their work as if nothing has changed.

HTML 5 or XHTML 2.0?

So, the W3C has now two distinct and competing Working Groups.

Missons are very close

The XHTML 2.0 Working Group develops an extensible vocabulary based on XML:

The mission of the XHTML2 Working Group is to fulfill the promise of XML for applying XHTML to a wide variety of platforms with proper attention paid to internationalization, accessibility, device-independence, usability and document structuring. The group will provide an essential piece for supporting rich Web content that combines XHTML with other W3C work on areas such as math, scalable vector graphics, synchronized multimedia, and forms, in cooperation with other Working Groups.

The HTML Working Group focuses on the continuity with previous HTML versions:

The mission of the HTML Working Group, part of the HTML Activity, is to continue the evolution of HTML (including classic HTML and XML syntaxes).

The conciseness of this sentence doesn’t imply that the HTML Working Group isn’t worried about extensibility and cross platform support since the list of deliverables says “there is a single specification deliverable for the HTML Working Group, the HTML specification, a platform-neutral and device-independent design”and later on “the HTML WG is encouraged to provide a mechanism to permit independently developed vocabularies such as Internationalization Tag Set (ITS), Ruby, and RDFa to be mixed into HTML documents”.

The policy is thus clearly, taking the risk to see a standards war develop, to develop two specifications and let user choose.

XHTML 5 is a weak alibi

We find this policy within the HTML 5 specification that proposes to choose between two syntaxes:

This specification defines an abstract language for describing documents and applications, and some APIs for interacting with in-memory representations of resources that use this language.

The in-memory representation is known as “DOM5 HTML”, or “the DOM” for short.

There are various concrete syntaxes that can be used to transmit resources that use this abstract language, two of which are defined in this specification.

The first such concrete syntax is “HTML5″. This is the format recommended for most authors. It is compatible with all legacy Web browsers. If a document is transmitted with the MIME type text/html, then it will be processed as an “HTML5″ document by Web browsers.

The second concrete syntax uses XML, and is known as “XHTML5″. When a document is transmitted with an XML MIME type, such as application/xhtml+xml, then it is processed by an XML processor by Web browsers, and treated as an “XHTML5″ document. Authors are reminded that the processing for XML and HTML differs; in particular, even minor syntax errors will prevent an XML document from being rendered fully, whereas they would be ignored in the “HTML5″ syntax.

This section, which by chance is non-normative, appears to exclude that a browser might accept any other HTML document than HTML5 or any XHTML other than XHTML5!

Furthermore, with such a notice, I wonder who would want to choose XHTML 5 over HTML5…

This notice relies on a frequent misunderstanding of the XML recommendation. It is often said that XML parsing must stop after the first error, but the recommendation is much more flexible than that and distinguishes two types of errors:

  • An error is “a violation of the rules of this specification; results are undefined. Unless otherwise specified, failure to observe a prescription of this specification indicated by one of the keywords MUST, REQUIRED, MUST NOT, SHALL and SHALL NOT is an error. Conforming software MAY detect and report an error and MAY recover from it.”
  • A fatal errors is “an error which a conforming XML processor MUST detect and report to the application. After encountering a fatal error, the processor MAY continue processing the data to search for further errors and MAY report such errors to the application. In order to support correction of errors, the processor MAY make unprocessed data from the document (with intermingled character data and markup) available to the application. Once a fatal error is detected, however, the processor MUST NOT continue normal processing (i.e., it MUST NOT continue to pass character data and information about the document’s logical structure to the application in the normal way).”

We see that on the contrary, the XML recommendation specifies that a XML processor can correct simple errors.

One may argue that what XML considers as a fatal error can be considered by users as simple errors, this would be the case for instance of a <img> tag that wouldn’t be closed. But even for fatal errors, the recommendation doesn’t stipulate that the browser should not display the document. It does require that the parser report the error to the browser but doesn’t say anything about how the browser should react. Similarly, the recommendation imposes that normal processing should stop because the parser would be unable to reliability report the structure of the document but doesn’t say that the browser shouldn’t switch to a recovery mode where it could try to correct this error.

In fact, if browsers are so strict when they display XML documents, this isn’t to be conform to the XML recommendation but because there was a consensus that they should be strict at the time when they implemented their XML support.

At that time, everyone had in mind the consequence of the browsers war that was one of the reasons why browsers accepted pretty much anything that pretended to be HTML. While this can be considered a good thing in some cases, this also means implementing a lot of undocumented algorithms and this leads to major interoperability issues.

The decision to be strict when displaying XML documents came as a new era good resolution and nobody seemed to dissent at that time.

If this position needs to be revisited, it would be ridiculous to throw away XML since we have seen that it isn’t imposed by the recommendation.

The whole way in which the two HTML5 syntaxes are presented is a clear indication thet the XML syntax which was not mentioned in the first HTML5 drafts has been added as a compromise so that the W3C doesn’t look like if they rejected XML, but that the idea is to maintain and promote a non XML syntax.

HTML 5 gets rid of its SGML roots

Not only does HTML 5 rejects XML, but it also abandons any kind of compatibility with SGML and says clearly “while the HTML form of HTML5 bears a close resemblance to SGML and XML, it is a separate language with its own parsing rules”.

This sentence is symptomatic of the overall attitude of the specification that seems to pretend to build on the experience of the web and ignore the experience of markup languages, taking the risk once again, to freeze the web to its current status.

The attitude of the XHTML Working Group is better balanced. Of course, XHTML 2.0 is about building on the most recent web development, but it doesn’t do so without keeping the experience acquired while developing XML and SGML vocabularies.

Technical approaches radically different

Without entering into a detailed comparison, two points are worth mentioning.

XHTML 2.0 is more extensible

Both specifications acknowledge the need to take into account the requirements that have appeared since HTML has been created when these are not correctly supported, but the method to do so is totally different.

HTML 5 has adopted a method that looks simple: if a new need is considered important enough, a new element is added. Since many pages contain articles, a new <article> element is added. And since most pages have navigation bars, a new <nav> element is added…

We have seen with the big vocabularies in document applications what are the limits of this approach: this leads to an explosion of the number of elements and the simplicity turns into complexity. It becomes difficult to choose between elements and pick the right one and since these elements are specialized, they never meet exactly your needs

Using this approach with HTML is more or less a way to transform it into a kind of DocBook clone for the web in the long term.

XHTML 2.0 has taken an opposite approach. The idea is, on the contrary, to start with a clean up and remove any element from XHTML that isn’t absolutely necessary.

It relies then on current practices: how do we do to represent an article or a navigation bar? The most common approach is to use a standard element, often a <div> and hijack the class attribute to apply a CSS style or a JavaScript animation.

The downside is that the values of the class attribute aren’t standardised and that the class attribute is used to convey information about the meaning of an element rather than define the way it should be displayed. This kind of hijack is pretty common since this is also the foundation of microformats.

To avoid this hijack while keeping the flexibility if this approach, XHTML 2.0 proposes to add a role attribute that defines the role of XHTML elements. This attribute can take a set of predefined values together with ad hoc values differentiated by their namespaces.

This method is a way to introduce the same kind of features that will be added to HTML 5 without adding new elements. This is more flexible since anyone can create new values in new namespaces. This also gives microformats a way to build upon something more solid than the class attribute that can be used again to define how elements should be presented.

Documents versus applications

Another important point that differentiate these two specification is their balance between data and applications or treatments.

XHTML 2.0 is built upon the XML stack:

  • The lower level is syntactical and consists of the XML and namespaces recommendations.
  • On top of this layer, the XML infoset defines a data model independent of any kind of treatment.
  • APIs, specific languages (XPath, XQuery, …) and schema languages are built on to of this data model.

It took some few years to build this architecture and things haven’t always been that clear and simple, but its big benefit is to separate data and treatments and be just the right one for a weak coupling between applications.

We’ve seen that HTML 5 has cut all its links to XML and SGML and that means that it doesn’t rely on this architecture. On the contrary, this specification mixes everything, syntax, data model and API (DOM) in a single specification.

This is because, as we’ve already seen, HTML 5 is a vocabulary to develop web applications rather than a vocabulary to write documents.

The difference seems important to me in not only in term of architecture but also in term of sustainability. Everyone agrees that XML is one of the best formats for long term preservation of documents. What is true of documents is probably not true of applications and I don’t think a HTML 5 application with a good proportion of JavaScript will be as sustainable as a XHTML 2.0 document.

The architecture on which XHTML 2.0 is built doesn’t prevent people from developing applications, but it dissociates more clearly these applications from the content.

Furthermore, XHTML 2.0 is also trying to develop and promote declarative alternatives such as XForms to define web applications that should be a better fit than JavaScript for documents.

Will the best specification win?

For all these reasons, HTML 5 looks to me as a big step backward and XHTML 2.0 seems to be a much better alternative.

Does that mean that XHTML 2.0 will be the winner or on the contrary, does the fact that HTML 5 is written by those who develop web browsers mean that XHTML 2.0 is doomed?

XHTML 2.0 has a strong handicap, but the battle isn’t lost yet. The HTML Working Group doesn’t expect that HTML 5 becomes a recommendation before Q3 20010 and before that date everything can happen.

It is up to us, the users, to vote with our feet and pen and start by boycotting the HTML 5 features that are already implemented in some browsers.

And short term, certifying that a page us XHTML 1.x valid is a good way to certify that it doesn’t contain HTML 5 features!

Jan 24 2008

Entreprise 2.0, serions nous déjà demain?

J’ai déjeuné aujourd’hui avec Christian Fauré qui fait partie des membres fondateurs de notre planète XMLfr et que je ne connaissais encore que par Internet interposé.

Christian est responsable d’une cellule SaaS (Software As A Service) chez Atos-Origin, une situation idéale pour observer l’impact du Web 2.0 dans les grands groupes.

Il affirme que le bouleversement que j’avais prévu il y a bientôt deux ans dans mon billet Web 2.0 et entreprises 1.0 est en de se produire même si ce n’est pas pour les raisons que j’évoquais.

Ce n’est tant par le biais des usages que cette révolution a commencé que par celui de réduction de coûts. Et cette réduction de coûts qui était le deuxième facteur que j’envisageais dans mon billet ne porte pas tant sur l’utilisation de logiciels libres ou de méthodes agiles que sur l’externalisation de logiciels sous forme de services.

Quel est le lien entre SaaS et Web 2.0?

Ce lien est multiple et porte sur les trois volets du Web 2.0 tels que je les ai décrits :

  • c’est le volet social du Web 2.0 et la convivialité retrouvée sur le Web qui rend acceptable l’externalisation sous forme de services de logiciels à forte interaction avec les utilisateurs tels que les suites bureautiques;
  • le concept de SaaS est indissociable du volet architectural du Web 2.0 qui consiste à considérer le Web comme une plateforme;
  • SaaS s’appuie sur le volet technique du Web 2.0 (XML, HTTP, REST, Ajax, …).

De plus, c’est l’expérience acquise en développant leurs applications Web 2.0 grand public qui donne leur crédibilité aux Google et autres Amazon qui sont aujourd’hui les acteurs incontournables de la lame de fond SaaS.

Si cette analyse se confirme, et je ne vois rien qui puisse l’infirmer, nous sommes à la veille d’une véritable industrialisation de l’informatique qui va profondément bouleverser les services informatiques des entreprises.

Il n’y a rien de très nouveau dans ce que j’expose ici, mais je ne pensais pas que cela se produirait aussi rapidement et que des grands groupes étaient en train de franchir le pas aujourd’hui même.

Jan 21 2008

Des nouvelles de XSV (XML Schema Validator)

Henry Thompson vient d’annoncer une nouvelle version (3.1) de son processeur de schémas XSV.

Pourquoi s’intéresser à XSV alors qu’il y a d’autres implémentations du langage de schémas W3C XML Schema?

XSV est écrit par Henry Thompson et Richard Tobin et Henry Thompson est l’éditeur le plus emblématique de la recommandations W3C XML Schema. XSV est donc une implémentation de référence qui devrait être particulièrement respectueuse de la recommandation et c’est un des outils qui m’ont servi de juge de paix lorsque j’ai écrit mon livre sur ce langage.

L’autre raison pour laquelle vous pourriez vouloir vous intéresser à XSV est qu’il est écrit en Python et que Python manque très cruellement d’implémentations décentes de W3C XML Schema.

Enfin, XSV permet de visualiser, sous forme d’un document XML suivant un schéma assez peu lisible il est vrai, le fameux « PSVI » (Post Schema Validation Infoset), ce qui est assez rare pour être souligné.

Malheureusement, XSV avait jusqu’à présent deux gros défauts :

  • Henry Thompson a toujours été beaucoup plus intéressé par la première partie de la recommandation dédiée à la structure des documents qu’à la deuxième partie dédiée aux types de données et que l’implémentation de la deuxième partie était très incomplète.

  • XSV exigeait l’utilisation d’un parseur XML (PyLTXML) partiellement écrit en C dont l’installation me laissait des souvenirs épouvantables.

L’annonce mentionnant que ce dernier point était levé, j’ai pensé qu’il était intéressant de tenter à nouveau l’expérience.

J’ai donc essayé d’installer XSV à partir de sources puis à partir de son package Debian sur mon poste de travail (Ubuntu Gusty) et dans les deux cas, les installations se sont passées sans problème notable.

Quelques points méritent toutefois d’être signalés :

  • S’il est vrai que XSV peut se passer de parseur spécifique, il faut dans ce cas installer une version ancienne de « PyXML », un module nécessaire au support de XML sur les premières versions 2.x de Python. La plupart des fonctions de PyXML ont maintenant été intégrées à Python, PyXML n’est plus maintenu et son utilisation peut poser des problèmes de coexistence avec les fonctions intégrées.

  • L’installation du parseur spécifique (PyLtXML) se fait maintenant sans problème que ce soit à partir des sources ou du package Debian. Je pense que cette option est moins risquée que l’utilisation de PyXML.

  • Les packages Debian pour XSV et PyLtXML installent ces bibliothèques sur Python 2.4. Pour les utiliser avec Python 2.5, il faut donc les recopier ou utiliser l’installation à partir des sources.

  • XSV ne semble pas tenir compte de la variable PYTHONPATH pour rechercher les DTDs de XML Schema dont il a besoin. Ce problème peut être résolu en créant des liens symboliques sur ces DTDs.

Sans être parfaite, l’installation est donc effectivement beaucoup plus facile que sur les versions que j’ai utilisé en 2001 et devient à la portée d’un être humain!

En ce qui concerne le support des types de données, la documentation ne mentionne plus dans la liste des restrictions que « le reste des types de données simples notamment les types xs:duration ».

XSV semble donc devenir petit à petit une bibliothèque réellement utilisable, que ce soit pour les programmeurs Python en quête d’une implémentation W3C XML Schema ou pour les gourous XML cherchant une implémentation de référence.