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

Mot-clé - mozilla platform

Fil des billets - Fil des commentaires

mercredi, octobre 14 2009

L'utilité de l'API de l'accéléromètre dans les navigateurs

Paul Rouget nous a fait de jolies demos (que vous pouvez voir en vidéo sur hacks.mozilla.org), pour montrer ce qu'on peut faire avec la nouvelle API qui permet de profiter de l'accéléromètre embarqué dans votre laptop ou tablette.

Les réactions n'ont pas tardé un peu partout sur le web, et en gros, j'en ai retiré 3 différentes :

  • "vous feriez mieux de travailler sur autre chose"
  • "c'est inutile, ça sert à rien"
  • "c'est génial !"

Pour le "vous feriez mieux de travailler sur autre chose", on va passer vite fait, c'est du pur troll. Il y a plusieurs dizaines de développeurs qui bossent à temps plein sur Firefox, et il est évident que chacun bosse sur des sujets différents. Le support de l'accéléromètre a été fait par un seul gars, pas 250. Bref, ce n'est pas une perte de temps.

Les deux autres remarques sont plus intéressantes. Et en analysant (à l'arrache) les réactions, j'ai remarqué qu'en fait la première semblait être faite principalement par des non-développeurs, et la deuxième par des développeurs.

En fait, beaucoup de gens, en voyant une des démos qui montre une page web s'orienter ou se tordre en fonction de l'orientation du laptop, n'ont pas vu l'intérêt technique de la chose. Ils ont regardé la démo "au premier degré" pourrait-on dire. Il y en a qui ont cru comprendre que dans les prochaines versions de Firefox, les pages web s'orienteront en fonction de l'orientation du laptop. Du coup, ils disent que ça ne sert à rien, qu'ils ne bougent de toute façon pas leur laptop, ou encore que c'est une horreur, parce que quand une image s'affichera dans le mauvais sens, ils ne pourront plus basculer leur laptop pour voir l'image dans le bon sens, etc...

Et en fait, ce n'est pas du tout ça, et effectivement, la démo est peut être mal choisie au final. Car en fait, l'intérêt de la démo se trouve sous le capot, dans le code source de la page, pour montrer avec quelle facilité on peut utiliser l'accéléromètre. C'est pourquoi la plupart qui ont trouvé cette démo géniale sont je pense des développeurs, ils ont regardé le source de la page.

Il faut donc juste comprendre que Mozilla a mis à disposition un outil, pour les développeurs web. Et il est tellement nouveau que des usages concrets de cet outils restent à inventer. On sait que l'une des premières utilités est pour les jeux, sur Fennec, la version mobile de Firefox, ou pour la version desktop sur les tablettes, comme on peut voir dans les jeux pour IPhone. Pour d'autres utilités, surtout sur le desktop, nul doute que des développeurs vont en trouver ! C'était pareil pour <canvas>, <video>, l'api de géolocalisation etc.. On ne voit pas toujours l'intérêt d'une nouvelle techno quand elle débarque. Mais au final, des usages sont inventés, créés.

Ça me rappelle d'ailleurs la conférence de Paul et Tristan à Paris Web, durant laquelle Paul fait plein de démos sur des nouvelles technos présentes ou à venir dans Firefox, et ajoutant à un moment donné, "j'ai pas dit que ça servait à quelque chose", suivi d'un grand rire dans la salle. Oui, au visionnage des démos (genre une vidéo de Tristan Nitot tournant en rond), un utilisateur lambda, voire un développeur web, peut effectivement se demander l'intérêt de tel ou tel truc. Mais en y réfléchissant, ou quand il sera confronté à un besoin précis, peut être bien qu'il en trouvera.

Si d'ailleurs vous avez des idées de l'utilité de l'accéléromètre dans une appli web, signalez les à Paul ou ici dans les commentaires, cela lui permettra de faire des démos "plus utiles" du point de vue de l'utilisateur :-)

jeudi, août 7 2008

Mozilla Addons Workshop

Il y a plusieurs semaines, au sein du bureau de Xulfr.org, j'avais relancé l'idée d'organiser cette année, une seconde édition de la "Xulfr party", la première s'étant déroulé il y a un peu moins de deux ans. Mais petit à petit, cette "Xulfr Party", à l'origine une reunion dans le style des barcamp, s'est transformé en véritable journée de conférence. Paul avait d'abord contacté quelques éventuels interressés, qui ont voulu un peu plus qu'un simple barcamp, puis Mozilla Europe a été mis dans la boucle, et William, le p'tit nouveau de Moz-Europe qui s'occupe de la communauté, s'est très vite intéressé au projet. Après quelques heures de discussion, William, Paul et moi, on a fini par boucler le format et le nom de l'évènement, dans le coin détente du Mozilla Firefox+ Summit 2008.

Cela donne donc l'évènement Mozilla Addons Workshop, une journée complète pour tout ceux intéressés par le développement XUL, en particulier le développement d'extension pour Firefox, et le développement d'application XulRunner.

Ça se passera le Samedi 20 septembre[1]. Voyez la news sur Xulfr.org, ou encore le billet de William, pour quelques détails supplémentaires. Nous allons vous donner plus détails dans les jours à venir, donc restez à l'écoute du fils rss des news de xulfr.org !

Notes

[1] On a déjà eu des remarques sur le jour de la semaine, il y a du pour et du contre, et de toute façon, il y aura toujours des mécontents que cela se passe en semaine ou un samedi; pour ma part, je pense que la majorité des intéressés sont des développeurs en SSII ou des étudiants, donc avec peu de possibilité de se libérer en semaine, sauf à prendre sur leur congé, donc je pense que le samedi n'est pas une mauvaise chose. Maintenant, je peux me tromper, et si la demande est forte, on fera ça en semaine la prochaine fois.

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.

mercredi, septembre 5 2007

Démarrage d'OpenKomodo

Depuis que je fais des applis XUL, j'ai toujours vu un potentiel énorme de la plateforme Mozilla pour réaliser un environnement de développement. En effet, imaginez un Eclipse like, mais en XUL. Personnaliser alors son environnement serait vraiment aisé grâce au système d'extension XUL. On pourrait même aller beaucoup plus loin qu'Eclipse en matière de personnalisation et de configuration (vive les overlays !). Ce n'est pas qu'Eclipse n'est pas bien, mais il faut tout de même avouer que c'est un bordel sans nom pour rajouter des plugins par rapport à l'installation d'une extension XUL. Et je ne parle même pas du développement de ladite extension/plugin qui est quand même plus simple pour Mozilla que pour Eclipse.

Lire la suite...

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 :-).

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 3