Aller au contenu | Aller au menu | Aller à la recherche

mercredi, février 11 2009

En vrac

La flemme de faire un billet pour chaque chose à dire, donc voici en vrac quelques news, en particulier sur mes projets...

Lire la suite...

lundi, juillet 7 2008

Retour des RMLLs

C'était la première fois que je participais aux RMLLs, et cette édition 2008 me laisse une bonne impression, malgré quelques frayeurs Mardi lors de mon arrivée :

Heureusement le temps s'est rafraichit dans la semaine, les visiteurs sont venus, et j'ai pu avoir une solution de secours pour faire mes conférences. Comme à chaque meeting sur les logiciels libres, c'est l'occasion de revoir ou de rencontrer d'autres libristes, de troller discuter entre nous, en particulier lors des "nocturnes". J'ai pu aussi serrer la pince à deux contributeurs de Jelix, Bast et Bibo.

Lors de mes présentations Jeudi sur Etna et Jelix, il y avait je pense une quinzaine-vingtaine de personnes environ, ce qui est relativement positif, vu le nombre de conférences qu'il y avait pendant ces 5 jours. Par contre, à l'atelier Jelix de Vendredi : 2 personnes, en plus de 2-3 autres spectateurs arrivés par la suite. Faut dire aussi que jeudi soir c'était festif (le "repas du libre"), et l'atelier commençait tôt, à 9h00...

J'ai assisté à la conférence sur Copix, mais aussi sur "Webkit vs Mozilla". Très intéressant, car cela m'a permis d'en savoir plus sur le projet webkit, et sur les grosses différences "philosophique" et techniques, malgré l'objectif commun des deux projets : faire du web un web encore plus ouvert. Et contrairement à ce que peut laisser penser le titre, la conférence ne fut pas un champs de bataille pour trolls en tout genre. Les deux conférenciers, Julien Chaffraix (qui développe actuellement l'implémentation de XBL2 dans Webkit) et Paul Rouget (de Xulfr et contributeur Mozilla), ont bien préparé cette conférence de manière à avoir un "débat" équilibré (M'enfin, on a bien chambré ce pauvre Julien pendant ces 5 jours, lui tout seul face à 5 Mozilliens :-) ).

Au niveau organisation, ce n'était pas mal dans l'ensemble, pas de gros problèmes de mon point de vue (sauf les problèmes techniques pour filmer les conférences, et donc vous n'aurez pas la vidéo de mes présentations, ni celle sur Webkit vs Mozilla). Le seul souci je trouve est qu'il y avait des sites éloignés des uns et des autres. Quand on est à pied, ce n'est pas évident, même si il y avait des navettes... Bravo quand même aux organisateurs, je pense qu'à l'heure actuelle ils doivent tous être sur les rotules :-)

Pour ce qui est des slides, vous les trouverez sur le site des RMLL : Jelix, Etna.

mardi, octobre 9 2007

New validator progress 20071009

I finished to port the javascript prototype of my new validator, into a C++ version. Performances are increased by 43% : the javascript version takes 7 seconds[1] to parse 373 schemas and to validate 529 documents (the James Clarks's tests suite) . The C++ version takes only 4 seconds. I think I can still increase this performance by doing improvements in the algorithm. But I must fix before all the 7050 memory leaks which appeared during the launch of the tests suite :-) (I think I have circular references...).

This new validator is not embedded into Etna yet. I have to do some works:

  • rewriting the blank content generator
  • rewriting the implementation of the diIValidationSchemaQuery interface. This feature is needed by the editor to query the validator in different contexts ("can this element be added as a child of the current element ?", "can text be inserted here ?", "is this attribute value valid ?" etc.)
  • implementation of our RelaxNG extensions in the new RelaxNG parser.

See the meta bug #164 for details.

Notes

[1] In a previous post, I said it took 27.7 seconds, but it was with my own test suite framework, which shows each result in a html document. I use now the test framework of Mozilla, which is launched in a command line, and which doesn't show any result, except when a test fails.

mardi, juillet 10 2007

New validator progress 20070710

My new prototype of a relaxng parser/validator in javascript is finished :-). It passes all tests !

UnitTest'O'Meter
schema parsing document validation
passed tests 373 (100%) 529 (100%)
failed tests 0 (0) 0 (-110)
total 373 529

(Previous status).

I will make other tests with my own tests suite, and I will begin to develop the C++ version.

lundi, juillet 9 2007

New validator progress 20070709

My new relaxng parser pass now all tests !

UnitTest'O'Meter
schema parsing document validation
passed tests 373 (100%) 419 (79%)
failed tests 0 (-39) 110 (-0)
total 373 529

(Previous status).

I'm going to finish the validation part and will make certainly little optimizations (for the moment, all tests take 27.7 seconds on my PC).

jeudi, juin 28 2007

New validator progress 20070628

My new RelaxNG parser is almost finished. I still have to implement the checking of string sequence restrictions. I didn't really work on the validator it self.

Here is the current status of tests.

UnitTest'O'Meter
schema parsing document validation
passed tests 334 (89%) 419 (79%)
failed tests 39 (-63) 110 (-24)
total 373 529

(Previous status).

mercredi, juin 6 2007

New validator progress 20070606

New improvements on the relaxng parser and on the validator. Here is the current status of tests.

UnitTest'O'Meter
schema parsing document validation
passed tests 271 (72%) 395 (74%)
failed tests 102 (-58) 134 (-150)
total 373 529

(Previous status).

mercredi, mai 30 2007

New validator progress 20070530

I continue to work on my new validator. Here is the current status of tests.

UnitTest'O'Meter
schema parsing document validation
passed tests 213 (57%) 245 (46%)
failed tests 160 284
total 373 529

(Previous status).

vendredi, mai 25 2007

New validator progress 20070525

I worked hard on the prototype of my new validator. The architecture of the RelaxNg parser is nearly finished, and it uses the sax parser of Mozilla. I'm happy of this new architecture because it's cleaner, I don't have to use ugly hacks to do some things since it is less complex...

Here are current results of my "UnitTest'O'Meter" showed in a little app I made to launch James Clark's test suite (little xulrunner application based on the RelaxNG Validator Extension for Etna) :-)

UnitTest'O'Meter
schema parsing document validation
passed tests 168 (45%) 138 (26%)
failed tests 205 391
total 373 529

update: sorry, there aren't 286 documents to test, but 529. I updated the table.

vendredi, mai 18 2007

Etna progress 20070518 : rewriting the validator

Since it is impossible to fix some few bugs in the current RelaxNg validator in Etna, I decided to rewrite it and use an other algorithm. The future algorithm might ask more resources but it will be more robustness and could valid in all cases (in theory :-) ). I began the development of a prototype in javascript. For the moment it passes 15% of tests of James Clark's tests suite, but first results are encouraging. At the end of this development, I will develop a version entirely in C++.

By the same time, as I explained in a previous post, I rewrite the RelaxNG parser and use now the sax parser component which exists in Gecko since 1.8.1 version.

vendredi, mars 23 2007

Etna progress 20070323

  • fixed bug 159 : Script of test suite was too long
  • closed bug 115 : no more segfaults with the trunk version, when parsing CNXML 0.5 schema
  • Worked on bug 162 : impossible to edit elements on which a default blank content is defined in the schema (regression)
  • New public repository. It contains only the source code of the current version i'm working on (future 0.4a). And there isn't any previous change : i didn't migrate the history. But of course, it will contain futur changes :-) This is a subversion repository (i'm tired of CVS). To do a checkout : svn checkout http://sources.disruptive-innovations.com/etna/trunk. Then follow instructions of the README.txt file, to build Etna.

mardi, mars 13 2007

Etna progress 20070313

Between two customer projects, I'm working on Etna. The future version, Etna 0.4, will be based on Gecko 1.9/Xulrunner 1.9. Each day, I synchronize the source code of Etna with the Mozilla trunk. Here are some bug fixes and improvements since few months:

  • Almost all the regression bugs which appeared during the gecko 1.9 port, are fixed. This port is a hard work because
    1. The source code of Etna 0.3.1 is based on Gecko 1.7. Many things have changed between Gecko 1.7 and 1.9. Last year I produced an experimental version based on Gecko 1.8/XulRunner 1.8, but I decided to migrate to gecko 1.9, because of all big changes in the Mozilla trunk.
    2. the DOM implementation of Gecko 1.9 has improved and it respects now the DOM Level 3 specification. So I had to find and modify all code which use old behaviors of the DOM Level 2 implementation. For example, see bug 140, bug 141..
    3. the build strategy has changed in gecko 1.9 : I tried to build my components as external components, not into the new big library "libxul". But my code uses too many internal API of Gecko, and it seems that the libxul exports less and less internal API. However, I had to change many things (headers, makefile options etc..) to build my components into the libxul (and when you see that the documentation about the build system is closed to nothingness or is deprecated..).
    4. Fortunately, the source code of the mozilla editor (libeditor) have not been improved very much (just bug fixes, improvements about accessibility, or IME), so I didn't have much work on parts related to this libeditor.
  • I fixed other bugs on the RelaxNG parser, the validator and the UI :
    • bug 146 : the validation of time datatype was wrong
    • bug 155 : problem during the namespace setting on a new document
    • bug 151 : there wasn't dialog when we closed the window and the document was modified.

Now the gecko 1.9 port is almost finished, I will try to fix old bugs before doing improvements into the UI or the API. I think the 0.4 version will be only a maintenance release with few improvements and of course a better rendering engine (gecko 1.9). The 0.5 version will have new editing features and a better validator. For example, I plan to use the new sax parser API of gecko to read relaxNG schema, instead of loading a DOM : so the relaxNG parser will be faster and will use less memory. And finally, the 0.6 version will have many improvements on the user interface.

No date for all this release. I will publish a zip of my current source code.

I will try also to publish such post more often :-).

jeudi, février 8 2007

En vrac

  • Dans le cadre de l'adaptation sur Gecko 1.9 (trunk Mozilla), d'Etna, l'éditeur XML wysiwyg que je développe chez DI, je suis donc tous les jours les évolutions du futur moteur de Firefox 3. Je peux vous assurer que ça va vraiment dépoter. De nombreuses refontes internes, meilleure prise en charge des standards (CSS avec test acid2, SVG avec les filtres et pas mal d'autres améliorations, DOM etc.), meilleures précisions dans l'affichage, meilleures perfs, moins de leaks...
  • À propos de Gecko 1.9, la version 1.9a2 est sortie
  • Comme tous les ans, je prévois d'aller à fosdem, le meeting de logiciel libres. J'y vais bien sûr avec la double casquette Xulfr/Mozilla-europe, pour assister aux confs Mozilla et tenir le stand Mozilla.
  • J'ai corrigé pas mal de bug dans Jelix 1.0 beta 1. J'hésite alors à sortir Jelix 1.0 beta 1.1. Mais ça fait un peu lourd comme intitulé :-). Je me demande si je n'aurais finalement pas dû utiliser la notation 0.1, 0.2, 0.3 etc, bien que je n'aime pas trop.
  • Le week-end dernier, presque 4 mois aprés la 3.0 RC1 (manque de temps :-)), j'ai sorti la version 3.0 finale de Wikirenderer, ma classe php de transformation de texte wiki en ce-que-vous-voulez, avec quelques bugs corrigés en plus.
  • On a commencé le développement d'un dépôt/catalogue de composants (xbl, javascript, xpcom..) pour le site xulfr.org. Y aura peut être même finalement pour chaque projet, un dépôt subversion + trac, puisqu'un gentil contributeur a fait des scripts d'administration de tous ça, dans le cadre de la forge pour Jelix (eh oui, on prévoit une forge de module pour jelix ;-) ). Je compte bien mutualiser les devs sur les deux sites.
  • Bon, mais, problème toutefois : mon enveloppe charnelle m'a bien fait comprendre, mardi, qu'elle n'avait plus 20 ans, et qu'en gros, il fallait que j'arrête absolument de coder jusqu'à pas d'heure tous les soirs. Donc dorénavant, je vais faire des vraies nuits, ce qui aura pour conséquence un ralentissement de tous mes projets persos. C'est trop injuste :-/.

Je me dis parfois qu'un jour il faudra que j'arrête d'avoir cette vie de fou. Je m'en suis rendu compte il y a quelques années, après les quelques mois passés en Polynésie. La vie en région parisienne est aliénante, complètement folle, voire débile. Je passerais bien à nouveau quelques mois sous les tropiques, à me laisser vivre, à vivre tout simplement. Encore faut-il en avoir la possibilité...

mercredi, mai 24 2006

Gecko 1.8 migration done

I finished the work on the gecko 1.8 version of Etna. There are still few little issues but it works well.

screenshot of Etna 0.4a

I also finished implementing all XMLSchema datatypes. I'm going now to improve the API for extension author, to improve the editor component (support of semantics attribute in schemas, support of the enter key etc..).

Update: of course, this version of Etna is a XulRunner application ;-).

lundi, mai 22 2006

Retour de Xtech

Ces 3 jours aux conférences XTech à Amsterdam ont été trés sympathiques malgré quelques points négatifs : une chambre d'hotel avec une odeur nauséabonde (j'ai pu changer heureusement), et surtout des prix prohibitifs. 24 euros le petit déjeuner, 200 euros la nuit, pour un service finalement pas si exceptionnel que ça et un confort relatif : j'ai déjà vu mieux et moins cher (voir les billets de Daniel ici et ). Apparement, c'est comme ça à Amsterdam : une vie relativement chère (Mais une ville trés jolie).

Cependant, le voyage en première classe dans le Thalys (avec en plus du repas, le détail pour geek qui tue : LA prise éléctrique pour le portable), les conférences auquelles j'ai assisté, les personnes que j'ai rencontré, ont fait oublié ces quelques désagréments.. J'ai pu faire la connaissance de personnalités importantes du web, mettre des visages sur des noms que l'on retrouve en signature de specs du W3C, du WHATWG, ou dans les copyrights des sources de Mozilla, et nouer quelques contacts. Assez impressionnant et excitant je dois dire, de cotoyer autant de "pointures", de "gourous", de gens exceptionnels en un seul endroit. Et puis bien sûr, j'ai retrouvé des personnes que je connaissais déjà du coté des Mozilliens (dont "tonton" Nitot, Peterv, Gerv, Alex Hecht...). Il faut savoir que Mozilla Corp n'a pas fait dans le détail : les Mozilliens ont débarqué en force. Ils sont pour la plupart (y compris moi), restés scotché dans la salle dédiée aux technologies de navigateurs, salle qui eut le plus de succés apparement. À noter l'absence remarquée de Microsoft : pas une conf, pas un seul representant. Étrange... Ils ne voulaient peut être pas se rendre ridicule à coté d'Opéra et Mozilla, dans le domaine des navigateurs ? Ils auraient toutefois pu parler d'autre chose dans le domaine XML...

La conférence sur notre éditeur XML Etna, présentée par Daniel s'est trés bien passée, malgré l'inévitable effet démo :-), et malgré que le temps qui nous était imparti fut trop court, vu le nombre de question. Elle a visiblement interressé beaucoup de monde ! Il n'y a rien de plus motivant pour continuer sur ce projet ! J'ai pu aussi discuter des problèmes d'Etna avec Chuck Bearden, membre du projet Connexion, de Rice University (pour laquelle donc, nous avons réalisé Etna). Comme le reste de l'équipe du projet Connexion, c'est quelqu'un de trés sympathique et ce fut un plaisir de parler avec lui.

Au passage, je remercie Disruptive Innovations (donc Daniel ;-) ) pour m'avoir envoyé à ces trois jours de conférences. Ce n'est probablement pas dans une SSII que j'aurais eu la chance de participer à ce genre d'évènement, ni de cotoyer toutes ces personnes qui font le web. C'est professionnellement et humainement trés enrichissant.

Je n'ai fait que de trés rares photos. Je les mettrais en ligne plus tard. En attendant, vous pouvez regarder celles de Daniel.

mardi, mai 16 2006

Un petit tour du coté d'Amsterdam

Nous allons aux conférences Xtech durant le reste de la semaine. Nous allons retrouver (voir faire connaissance) pas mal de Mozillien, dont des "grosses pointures".

Les conférences qui m'interressent le plus, sont celles dans la catégorie Browser Technology : les technologies Mozilla tiennent le haut du pavé. Il y a aussi une conférence interressante qui expliquera en quoi XForms peut être une alternative sérieuse à Ajax dans certains cas de figure, comme je l'avais d'ailleurs expliqué dans un précédent billet et une autre qui expliquera l'activité Rich Web Client au w3c.

À noter que cette année, il y a une avalanche de conf sur Ajax, dont une sur l'utilisation conjointe de XUL et Ajax chez Sixt Car Rent (XUL se démocratise ;-) ).

Je ne pourrais pas assister à tout, mais il y a une conférence que je ne raterais pas, la notre durant laquelle nous présenterons Etna, notre éditeur XML wysiwyg;-)

À ce propos, la migration d'Etna vers Gecko 1.8 est sur le point d'aboutir. J'ai encore quelques problèmes avec l'objet chargé de gérer les sessions d'édition dans Gecko, nsEditingSession, mais le reste devrait aller : j'arrive maintenant à tout compiler et à lancer Etna.

vendredi, mai 5 2006

First launch of Etna with gecko 1.8

This is a very first version of Etna, based on Xulrunner 1.8.0.1 sources. For the moment, only the chrome works. I haven' t built the validator or others of my components, and my patch on the libeditor, to add the xml version of nsEditor, is not applied. But i hacked some file of the mozilla build system (configure.in, allmakefiles.sh etc.) and i think i have done a clean job on it now (compared to my previous work with gecko 1.7 sources). So now i can set in my mozconfig file :

mk_add_options MOZ_CO_PROJECT=etna
ac_add_options --enable-application=etna

(well, etna is not in the mozilla repository, so perhaps the first line is useless, i'm not sure..). And there is now this flag :

 ac_add_options --enable-xml-editor

So the build will contain the xml version of the libeditor. It is enabled by default for Etna, and this could be used for other projects :-)

jeudi, avril 27 2006

Etna 0.3.1

I released a new version of Etna, our wysiwyg XML editor. This 0.3.1 version fixes tons of bugs on the RelaxNG parser and on the validator. In fact, i rewrote my test case engine, to use the Jame Clark's RelaxNG test suite. With this test suite, included in a new version of my RelaxNG validator extension, i discovered many bugs and fixed them. Another consequence, is that i finished to implement all the Relax NG patterns, so the support of RelaxNG is complete. However, there are still few minor bugs, but Etna 0.3.1 is more stable than 0.3...

There isn't any new feature, except that you can provide now your own datatype library. I will write a documentation on that.

I'm working now on the UI, on the editor API (for the extensions). I will work also on a new web site with a forum, and i will perhaps begin a migration to Gecko 1.8.

lundi, février 27 2006

Docbook files

In order to test the internal validator of Etna with the docbook schema, i would like to find many docbook files (normal or huge, but not some little examples). Please tell me if you have got such files or if you know where to find some :-) Thanks.

lundi, février 20 2006

Etna 0.3

Cette nouvelle version de notre éditeur XML wysiwyg corrige des bugs dans le validateur et le parseur RelaxNG : on peut maintenant charger des schémas comme DocBook. Il y a également une meilleur prise en charge des datatypes XML-Schemas (QName, hexBinary, NMTOKENS, IDREFS, ENTITIES).

Etna 0.3 propose une boite de dialogue "new" améliorée : on peut choisir maintenant un document blanc parmis ceux proposés par un schema, pour créer un nouveau document.

Elle propose également

  • Un gestionnaire de schéma amélioré
  • La possibilité d'imprimer les documents
  • Un sélecteur de feuille de style

Enfin, une version pour MacOSX 10.4 10.2+ fait son apparition !

Mise à jour : j'ai refait un build MacOS compatible 10.2 et plus.

- page 1 de 2