Jy[B]log

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

vendredi, octobre 3 2008

Komodo Edit 4.4

Depuis deux semaines, j'utilise Komodo Edit pour développer. Je l'avais essayé l'année dernière mais je ne l'avais pas gardé malgré ses fonctionnalités qui me plaisaient, car l'interface manquait beaucoup de réactivité. Ce défaut n'existe plus dans cette version 4.4, et j'ai décidé de le garder, en abandonnant donc l'éditeur Kate[1]

Tout ce qu'il propose me convient, surtout qu'il prend en charge tout les langages que j'utilise (HTML, CSS, XBL, XUL, javascript, C++ et PHP) non seulement au niveau de la coloration syntaxique, mais aussi de la complétion de code. Autre point positif : il est aussi disponible sous Mac et Windows[2], ce qui m'arrange car je n'ai jamais trouvé d'éditeur libre à mon goût sous l'OS de redmond.

Seul bémol, j'ai horreur de sa boîte de recherche : elle s'affiche dans une fenêtre séparée. Alors que dans kate, elle apparaît en dessous de l'éditeur, ce que je trouve très pratique car on peut la laisser ouverte en permanence.

Mais je pense que ça ne va pas être un souci très longtemps : Komodo est une application XUL, donc extensible de la même manière que Firefox. Et comme vous le savez, les technos Mozilla n'ont plus vraiment de secret pour moi. Dés que je trouve un moment donc, je me ferais une extension qui m'affiche cette boite de recherche où je veux :-)

Et j'ai d'autres idées d'extensions dans ma tête ;-)

Notes

[1] Un éditeur sous KDE que j'utilise depuis quelques années déjà. J'ai aussi essayé Eclipse, mais c'est trop lourd à mon gout, J'ai aussi essayé pendant plusieurs semaines le récent Geany, un IDE sous GTK, mais ses raccourcis clavier à la noix, ses bugs, et son manque de fonctionnalités m'agacent

[2] bah oui, développant des applis multi-plateforme, j'ai besoin de compiler, tester et debugger mes applis sur les trois OS majeurs que sont Linux, MacOs et Windows

mardi, septembre 30 2008

BlueGriffon™

This is now official, the successor to Nvu is BlueGriffon™.

Daniel has already done a lot of work on it, but we are not ready yet to release a first public version. However, you can take a look at our svn repository for the source code.

Of course, I will work on this project :

  • I will develop some patches on Gecko to improve the editor. I began with a big revamp of the serializer, so XHTML will be much better serialized
  • I will work on the web front-end : software update, web tools, etc..

lundi, septembre 29 2008

Jelix 1.1 beta est dispo

Ce week-end, j'ai sorti une beta de Jelix 1.1. Plein de nouveautés au programme, surtout dans le système de formulaire jForms, qui gagne en souplesse, et en fonctionnalités :

  • de nouveaux contrôles : captcha, champ caché, groupe, choix avancé, éditeur html...
  • modification dynamique du formulaire : ajout/suppression et activation/désactivation de contrôles
  • possibilité de connaître les valeurs modifiées
  • intégration de jQuery
  • générateurs sous formes de plugins, vous permettant de choisir plus facilement le format de sortie, ou la manière dont sont générés les champs du formulaire

Il y a également :

  • une nouvelle version du système de droit, jAcl2, plus facile à utiliser et à configurer. Un module est fournie pour gérer les droits.
  • le support SOAP
  • la nouvelle réponse htmlfragment pour les réponses ajax html
  • le nouveau moteur d'url basic_significant
  • des nouveaux plugins pour le moteur de template
  • les nouvelles classes utilitaires jIniModifier, jHttp, jMessage, jDuration (pour jDateTime)...

La doc en français est presque complète, et est dispo en téléchargement en pdf comme d'habitude.

La venu de cette beta vient un peu tard, c'est pourquoi je pense qu'il n'y aura pas de beta2 et qu'on passera directement à une RC, Les plus gros trucs prévus pour la beta2 seront probablement repoussés à une version 1.2. Mais vu le rythme du développement, vu que le trunk, utilisé par de nombreuses personnes, est particulièrement stable dans le temps, je pense que l'on va se permettre d'avoir un cycle de sortie plus court. (max 6 mois par exemple, on verra).

vendredi, septembre 26 2008

Retour du MAOW 2008

Avec un week-end et un début de semaine chargé, je n'ai même pas eu le temps de vous parler du Mozilla Add-ons Workshop qui s'est passé samedi dernier.

Hé bien ça s'est super bien passé. Les conférences se sont déroulés sans problèmes. Je pense que la plupart des personnes présentes ont aimé la journée. Si des participants me lisent et n'ont pas apprécié certaines choses, qu'ils n'hésitent pas à nous le faire savoir.

La cantine est un endroit superbe pour ce genre de manifestations, avec des écrans un peu partout retransmettant les conférences, permettant donc de les suivre où qu'on veut (du bar, de la salle...). Le seul truc négatif, c'est la taille des salles. Vu le monde qui voulait venir, je pense que l'année prochaine on essaiera de trouver plus grand, et tout aussi bien.

Gros merci à Paul (xulfr.org) et à William (Mozilla Europe) pour l'organisation de cette manifestation, ainsi qu'à tout ceux qui ont aidé.

mercredi, septembre 24 2008

Nouvel hébergement et utilisation de Dotclear 2

Voilà, mon site perso est sur une nouvelle machine. Depuis le temps que je me disais qu'il fallait que je le fasse, c'est l'occasion : j'ai enfin migré mon blog de Dotclear 1.2 à Dotclear 2. Migration impeccable. Aucun soucis. Rien. Que du bonheur :-) Merci à l'équipe de Dotclear :-)

J'ai mis des règles de redirection et de réécriture pour ne pas que les anciennes urls tombent en 404 (je n'ai pas réussi à faire fonctionner le fameux plugin dc1redirect, et de toute façon, je ne pouvais pas faire tout ce que je voulais avec). les voici à titre d'information, si ça peut aider d'autres "migrateurs" :-)

Exemple pour les catégories :

RedirectPermanent /blog/Standards_Web            http://ljouanneau.com/blog/category/Standards_Web

j'ai ainsi mis toutes les redirections pour chaque categorie, car cela va me permettre de rediriger ou je veux pour chacune d'entre elles. En effet, je vais faire une réorganisation : soit du renommage, soit des catégories vont devenir des tags.

Pour le reste :

RedirectPermanent /dotclear/rss.php               http://ljouanneau.com/blog/feed/rss2
RedirectPermanent /dotclear/atom.php              http://ljouanneau.com/blog/feed/atom

RedirectMatch 301 /blog\/(\d{4}/\d{2}/\d{2}/.+)$  http://ljouanneau.com/blog/post/$1
RedirectMatch 301 /blog\/(\d{4})$                 http://ljouanneau.com/blog/archive/$1/01
RedirectMatch 301 /blog\/(\d{4}/\d{2})(/\d{2})?$  http://ljouanneau.com/blog/archive/$1

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog(.*)$ dotclear/index.php$1 [L,QSA]

À part la réorganisation des catégories, il me reste aussi à migrer mon thème. Ou à en refaire un autre. Ça va dépendre du temps et du degré de mon inspiration...

mardi, septembre 23 2008

cat hebergeur > /dev/null

Mon site va certainement être inaccessible je ne sais pas trop quand (et il l'a été dans l'après midi déjà), mon généreux[1] hébergeur maniaque fermant boutique. Mais ne vous inquiétez pas. Je vais migrer le site ce soir sur une autre machine. En attendant, fermeture des commentaires et tout, pour le transfert de la base..

Notes

[1] non ce n'est pas ironique, gros merci à lui pour ces quelques années d'hébergement

lundi, septembre 15 2008

Transformations en CSS3

Ce week-end, l'implémentation des propriétés de transformations CSS ont été incluses dans la version de développement de Firefox 3.1 (proposé par David Hyatt dans webkit il y a un an, et en partie au CSS working group, il y a 10 ans).

La propriété transform permet d'appliquer des transformations sur un élément : rotation, décalage, zoom, déformation, perspective. Je me suis amusé donc à faire quelques essais.

Je veux placer ce titre verticalement à gauche de la page :

Voici alors les styles appliqués :

 position: absolute;    /* pour sortir l'élement du flux normal */
 top:0; left:0;   /* on le place tout en haut à gauche */

 /* on fait une rotation de -90 degré, suivi d'une translation vers la gauche de 10em 
   10em étant à peu prés la longueur du texte */
 -moz-transform: rotate(-90deg) translate(-10em,0);

/* le centre de rotation se situe en haut à droite de la boite h1 */
 -moz-transform-origin: top right;

Et le résultat :

Imaginons maintenant que je veuille mettre une belle icône "nouveau" sur un article, en travers du titre de cet article. Plutôt que de faire une image comme on doit le faire dans les navigateurs actuels, faisons tout ça en CSS/HTML. Le HTML est le suivant:

 <h2><span>Nouveau ! </span>Lecteur MP3 Syno XZ-789</h2>

Appliquons maintenant le style de transformation :

 -moz-transform: rotate(-20deg);
 -moz-transform-origin: center center;

On obtient ceci :

Habillons le maintenant en utilisant border-image et cette image

 border-width: 15;
 -moz-border-image: url(etoile.png) 15 15 15 15 round round;

Et voici notre super logo :

Vous remarquerez qu'il apparaît de fines lignes blanches en pointillé, je suppose que c'est un bug qui j'espère n'existera plus dans Firefox 3.1 :-)

J'ai essayé rapidement aussi d'avoir des en-tête de colonnes obliques dans un tableau :

Mais ça ne donne pas un résultat vraiment interressant. Déjà la taille des colonnes restent les mêmes, mais aussi les bordures entre cellules ne sont pas prisent en compte...Il faudrait que je triture un peu plus la feuille de style je pense...

vendredi, septembre 12 2008

Hg ou Svn ? That is the question...

Vu que je bosse sur le code de Mozilla, je suis bien obligé d'utiliser Mercurial. Et plus j'utilise, plus j'adore. Surtout son système de pile de patch (l'extension Mq).

Se pose à moi alors la question : pour mon projet Jelix, devrais-je remplacer totalement Subversion par Mercurial ? Ou simplement utiliser Mercurial en local avec hgsvn qui me permettrait de mettre à jour mon dépot Mercurial local à partir du dépot Subversion central ?

En fait, personnellement, je n'ai pas de souci à utiliser Mercurial, bien au contraire, il apporte beaucoup de chose. Mais c'est vis à vis des contributeurs, et surtout des contributeurs potentiels. Je trouve l'utilisation d'un système de gestion de version distribué un poil plus compliquée qu'un centralisé comme Subversion, avec des concepts pas forcément évident à appréhender, surtout quand on est habitué à Subversion ou CVS. En clair, j'ai peur qu'imposer l'utilisation de Mercurial fasse peur (Déjà que j'ai l'impression que l'utilisation d'un outil de versionning ne semble pas encore être la norme en entreprise et que j'ai rencontré pas mal de développeurs web qui savaient à peine ce que c'était que cvs, svn...).

Mais peut-être me fais-je des idées ?

Et vous, qu'en pensez-vous ?

mercredi, septembre 10 2008

La folle histoire des User Agent Strings

Si vous vous demandez pourquoi tout les navigateurs mettent "Mozilla" dans leur identification, ou pourquoi Google Chrome prétend être Safari, Khtml et Gecko à la fois, lisez ceci : l'histoire des chaînes d'identification. C'est hilarant :-)

mardi, septembre 2 2008

Google Chrome

On attendait un ouragan du coté de la Nouvelle Orléans. Finalement il a plutôt dérivé sur le web. Et il fait très mal : Google annonce la sortie prochaine de son propre navigateur web, qui aura pour nom Google Chrome. Les rumeurs depuis plusieurs mois sur un "GBrowser" étaient donc fondées.

Coté technique :

  • Le rendu sera effectué par le moteur Webkit (utilisé par Safari et Adobe Air)
  • Le moteur javascript a été réécrit from scratch, portant le doux nom "V8", et embarquant une machine virtuelle et un optimisateur de code (ça me rappelle TraceMonkey et Tamarin tiens... ;-))
  • La grosse nouveauté par rapport à la concurrence[1], sera que chaque onglet aura son propre processus, donc une page web ne pourra pas "geler" le reste du navigateur, même si elle fait n'importe quoi. Chaque onglet sera une "sandbox".
  • On peut détacher un onglet pour en faire une fenêtre dédiée à une appli web (même finalité que Mozilla Prism donc..)
  • Intégration de Google Gears (api pour développeurs web)

Une BD orienté technique explique toutes les caractéristiques de ce nouveau navigateur.

Cependant, à y regarder de plus prêt, il n'y a pas multitudes d'innovations dans ce navigateur. La machine virtuelle pour le javascript, les applis indépendantes, le support des standards, et les autres fonctionnalités pour l'utilisateur, sont des choses vers lesquelles presque tout les éditeurs de navigateurs intégrent déjà ou sur le point de le faire.

Bref, mis à part Microsoft, je ne pense pas que les autres éditeurs aient du soucis à se faire au niveau technique. Par contre, cette annonce est tout de même un ouragan, parce que... c'est Google. Imaginez un lien "téléchargez Google Chrome" sur chaque page du moteur de recherche Google, moteur qui je le rappelle est utilisé par une grosse majorité des internautes... Même si la communication de la concurrence à l'égard de cette annonce semble calme, je pense que dans certaines équipes, ça doit être le branle bas de combat[2].

Et puis, pour les fournisseurs d'applications en ligne, ça va être un gros concurrent, car je doute que Google Chrome sera fourni sans des liens vers Google Docs, Google Maps, Google Mail et cie...

Cette annonce marque le commencement d'une nouvelle phase dans la guerre des navigateurs déclenchée par Mozilla avec Firefox 1.0. Niveau DEFCON 2 je dirais. Voir 1 à Redmond, le principal concurrent :-)

Notes

[1] quoique, IE8 parait-il le fait aussi

[2] Pas chez Mozilla, car ils sont très très certainement au courant depuis des lustres, d'autant plus que leur deal avec Google vient d'être re-signé pour 3 ans. D'ailleurs, ce ne serait pas étonnant qu'il y ait anguille sous roche, comme le pense Daniel

vendredi, août 29 2008

Drag and drop HTML5 dans Firefox

Après les améliorations qui viennent d'être apportées sur le moteur Javascript qui fait repasser Gecko 1.9.1 devant Webkit au niveau des performances de l'execution des scripts JS, voici que Neil Deakin (développeur Mozilla de son état), vient de terminer l'implémentation de l'API drag and drop de HTML5.

On peut donc apporter des fonctions de drag'n'drop dans une page web, tout aussi facilement que ce que l'on peut faire avec des bibliothèques comme jQuery. Sauf qu'il n'y a plus besoin de charger des kilos de scripts JS :-)

Lire la suite...

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.

samedi, août 2 2008

Thank You Mozilla !

The Summit2008 was a great event for me. I was very enjoyed to meet many contributors. Behind a keyboard, it is not obvious to realize how the Mozilla project has become huge, how it has become very important for the web, and how the community is so big now. This is this kind of event which opens our eyes on the realities of the project.

Thank you Mozilla for this Summit! Thanks to Mitchell Baker to lead the project with so much contagious enthousiasm!

Special thanks too to Dan Portillo and his staff, for the organization of the summit. It was very well organized despite the landslide. All was great!

vendredi, août 1 2008

Summit 2008 : troisième jour

Bon, après la route coupée qui nous a obligé de changer les plannings de retour avec un supplément de 5h pour le voyage de retour, voilà maintenant qu'un camion, vers 6h du matin, percute le transformateur électrique de l'hôtel, provoquant donc une coupure de courant. Il n'aura été rétablie que 8h plus tard, laissant 400 pauvres contributeurs regarder la batterie de leur laptop agoniser.

Cela n'a pas empêché les sessions de se poursuivre (mais sans projecteurs). Celle sur XulRunner fut assez animée, avec les plaintes de quelques utilisateurs/contributeurs, à propos de patchs non acceptés ou du manque de visibilité sur l'avenir du "produit". Il est cependant devenu clair que Mozilla ne veut pas en faire un produit comme Adobe le fait avec Air ou Microsoft avec Silverlight. XulRunner reste, et restera, la plateforme de développement des produits Firefox et Thunderbird[1]. Libre à quiconque de l'utiliser pour ses propres applications, et de proposer des patchs pour améliorer la "généricité" de la plateforme, ce qu'encourage en particulier Mark Finkle. Mais si des API doivent changer pour les besoins des produits Mozilla, elles changeront, et il faudra donc faire avec. Cela n'empêche pas XulRunner d'être une bonne plateforme avec des technologies innovantes et solides.

Le soir, nous avons eu droit à un diner festif dans un restaurant au sommet d'une montagne (il y neigait !). Déco "Mozilla", orchestre, buffet copieux, ce fut une très agréable soirée, avec le discours de cloture de Mitchell Baker et le court mais émouvant discours d'adieux de Mike Schroepfer qui part chez Facebook..

Notes

[1] Pour rappel, Firefox 3 repose sur XulRunner et permet de lancer des applications XulRunner

jeudi, juillet 31 2008

Summit 2008 : deuxième jour

Coté fatigue et jet lag, ça va mieux. Coté sessions, toujours aussi intéressantes. Ce matin, il a été question du futur de Firefox 3.1, de Fennec[1] et de Mozilla Labs. Pour Firefox 3.1, on a eu confirmation que certaines avancées dans Gecko seront bien incluses, dont le support natif de OGG/Vorbis et OGG/Theora pour la balise <video> (activé dans les nightlies build). FF 3.1, ça va dé-chi-rer ! On a pu voir aussi une demo de Fennec sur un Nokia N810, avec son interface totalement repensée : très sympathique.

Sinon, j'ai assisté à une session sur les probables avançées en matière d'interface utilisateur dans Thunderbird 3, et une autre sur les communautés en Europe. À ce propos, sachez que nous (Moz-Europe et Xulfr, accompagnés de quelques partenaires) vous préparons une XulParty like puissance 10, pour Septembre. Stay tune !

À part ça :

Notes

[1] la version mobile de Firefox

mercredi, juillet 30 2008

Summit 2008: première journée

17h10 de voyage de chez moi jusqu'à Whistler : c'est long. Et sans vraiment dormir : c'est vraiment fatiguant. Arrivé vers minuit et demi à l'hotel, j'ai pu toutefois récupérer un peu et être suffisamment frais pour suivre les sessions cette première journée du Summit2008 de Mozilla, même si la fin d'après midi est plutôt dure, jet lag oblige.

En vrac :

  • Hôtel très sympa, chambre confortable (avec cheminée s'il vous plait !)
  • Temps pourri (il pleut :-( )
  • Nourriture correcte, avec rafraichissants, café et collations à volonté toute la journée
  • tout est fait pour que les participants puissent se connaître et échanger : on sent le coté "communauté" du Summit :-)
  • une organisation sans faille jusqu'à maintenant
  • du wifi gratuit bien entendu (mais avec 400 geeks dessus, c'est parfois lent)
  • Très bonne idée ce site qui regroupe tous ce qui se passe sur le Summit, tout comme la salle spéciale détente pour geek mozillian, ouverte 24/24 h, avec babyfoot, jeux vidéos, tennis de table, fauteuils, musique etc... (Ils ont vraiment pensé à tout chez Mozilla)
  • Des sessions "ouvertes" : beaucoup de discussions et d'échanges.
  • Mais difficile de participer à toutes les sessions qui m'intéressent, vu que bon nombre se passe en même temps.
  • Le speech de Mitchell Baker fut très intéressant. Je ne pense pas qu'il a été filmé, ce qui est dommage car cela aurait été instructif pour ceux qui ne connaissent pas trop le projet Mozilla. Elle a entre autre expliqué en quoi Mozilla n'est définitivement pas un projet Open-Source comme les autres (j'y reviendrai peut-être).

Et pour résumer : supère ambiance, journée riche :-)

dimanche, juillet 27 2008

Summit 2008

Cette semaine, il y a un grand évènement organisé par Mozilla : le Summit2008. C'est un rassemblement d'environ 250 400 contributeurs à Firefox et Thunderbird, venant du monde entier. Il se situera dans un grand hotel à Whistler, qui est situé à environ 130 kilomètres de Vancouver, au Canada.

Ça va être le plus gros rassemblement je pense depuis la naissance du projet Mozilla. L'année dernière (ou 2006, je sais plus), il y avait bien eu des "developper days" mais l'audience était moins importante il me semble, et cette année au Fosdem, il y avait "seulement" eu une centaine de contributeurs européens.

Durant ces quelques jours, il sera question de discuter sur les avançées de Gecko, de Firefox, de Thunderbird, et de Fennec [1], que ce soit le présent, mais surtout le futur, tant en terme de technologie pure, qu'en terme d'interface utilisateur, de fonctionnalités etc.. Sans oublier aussi tout ce qui est localisation des applications : comme d'habitude, Mozilla n'oublie pas les contributeurs qui traduisent les applications Mozilla, ils seront nombreux au summit. Des sessions sont prévues aussi pour parler de la documentation (MDC, SUMO etc..), des divers sites (addons par ex) ainsi que de l'évangélisme/marketing. Voir la liste complète des sessions sur le wiki de Mozilla. Pour ma part, je vais surtout assister aux sessions sur le coeur de Gecko, mais aussi Fennec.

Bref, je sens que cela va être très très sympathique. Surtout que j'y suis invité (comme la plupart des contributeurs participants, dont bien sûr d'autres Mozilliens français de chez xulfr.org, frenchmozilla, mozilla-europe etc..). On sera dans un cadre géographique qui semble très beau, mais on n'aura pas trop le temps de se faire croquer par les ours, car cela ne va pas être de tout repos quand même. J'ai hâte d'y être.

Enfin voilà, je finis de préparer ma valise, de régler les derniers détails, et puis direction Vancouver. Ne comptez donc pas sur moi cette semaine (bien que joignable par email, et peut être via IRC sporadiquement), et encore moins les deux suivantes, durant lesquels j'irais faire un repos bien mérité dans le Finistère...

Je vais toutefois essayer de vous tenir au courant des évènements via mon blog :-)

Notes

[1] le navigateur pour mobile de Mozilla, je vous en causerai probablement plus tard

Avancées dans Gecko 1.9.1

Malgré les 3 ans de développement qu'a necessité Gecko 1.9.0 (le moteur de Firefox 3), il n'a pas été possible d'implémenter certaines choses qu'ont déjà Safari et Opera, bien que toutefois les nouveautés pour les développeurs soient très alléchantes, avec des morceaux de HTML5 dedans :-). En effet, les développeurs du "coeur" s'étaient concentrés principalement sur la gestion de la mémoire, les performances, la refactorisation de gros morceaux de code, et la correction de bugs pour passer le test Acid2. C'était donc beaucoup de travail sur des choses "qui ne se voient pas". Mais une des conséquence de ces développements "sous-terrains", c'est que Gecko 1.9.0 est devenu une bonne base pour avancer bien plus vite sur l'implémentation des standards.

Du coup, les développeurs peuvent se concentrer sur le futur. Et ils ne s'en privent pas depuis un mois et demi. Je vous avez parlé de l'implémentation de la balide video, de l'implementation du style CSS border-image, mais aussi évoqué l'implementation complète des selecteurs CSS3 (modulo 2-3 bugs), le support de text-shadow (pour créer des ombres sur du texte), de box-shadow (pour faire des ombres sur des boîtes).

Et ces derniers jours, voici les nouveautés :

  • Implémentation de la propriété CSS3 word-wrap
  • Implémentation des propriétés CSS3 column-rule-*, pour styler les séparations entre les colonnes CSS. Souvenez-vous que depuis sa version 1.5, Firefox permet de créer des colonnes en CSS, ce qui évite de faire appel à des tables pour avoir des colonnes de texte. J'en avais parlé à l'époque.
  • Implémentation de l'objet NodeIterator dans l'API DOM traversal, permettant de parcourir un arbre DOM de manière séquentiel, contrairement au TreeWalker qui propose plutôt une vue arborescente de la navigation.
  • Implémentation des toutes nouvelles fonctions DOM querySelector et querySelectorAll : elles permettent de récupérer un ou plusieurs noeud DOM en utilisant un sélecteur CSS, ce qui est plus simple que d'utiliser un selecteur XPath (fonction evaluate sur les objets document). Voici un exemple issue de la spécification. Voici ce qu'il faut faire en temps normal quand on veut récupérer la deuxième cellule de chaque ligne d'un tableau (ayant pour id score) :
var table = document.getElementById("score");
var groups = table.tBodies;
var rows = null;
var cells = ;

for (var i = 0; i < groups.length; i++) {
  rows = groupsi.rows;
  for (var j = 0; j < rows.length; j++) {
   cells.push(rowsj.cells1);
  }
}

Et voici maintenant l'équivalent avec querySelectorAll :

 var cells = document.querySelectorAll("#score>tbody>td:nth-of-type(2)");

Sympa non ? :-)

Parmis les développements actifs en ce moment, et qui vont donc aboutir d'ici quelques semaines, voici ceux là :

  • Les propriétés CSS de transformation proposées par Webkit, permettant de faire des animations en CSS.
  • L'implémentation des medias queries de CSS. (mise à jour : en fait ça vient juste d'être intégré dans le trunk !)
  • Fonctions javascript trim, ltrim, et rtrim
  • DOMWorkerThreads : la possibilité de faire, en javascript, de vrai traitement en parallèle...
  • Une partie de l'implémentation de @font-face

Bien sûr, cette liste est loin d'être exhaustive :-)

jeudi, juillet 24 2008

Les progrès des machines

Sur mon nouveau portable, il a fallu que j'installe mes projets courants, les outils dont j'ai besoin etc. L'une de mes priorités : pouvoir compiler Etna et Firefox. J'ai été très agréablement surpris par les performances de cette nouvelle machine pourtant modeste au niveau du materiel : je met autant de temps pour compiler firefox, que sur une des becanes du boulot pourtant plus puissante sur le papier. Et voici une comparaison grossière :

Compilation de Firefox
Machine processeur mémoire vive disque dur processus Temps
Desktop (4.5 ans) Pentium 4 dual core 3Ghz 1Go 150Go IDE make en -j2 49 min
make en -j6 + distcc :
2 processus en local + 4 sur le serveur dell
25 min
Autre desktop dell (serveur) (2,5 ans) Pentium D dual core 2.80 Ghz, cache 2Mo 2Go 150Go sata make en -j2 24 min
Mon portable Dell 1525 (1 semaine) Pentium dual core T2390 1.86 Ghz, cache 1Mo 2Go 80Go sata make en -j2 26 min

Ainsi :

  • Le portable a un processeur moins rapide et avec moins de cache mémoire, mais il arrive à aller aussi vite que les autres machines plus puissantes.
  • Pour les performances "désastreuses" du desktop, je pense que c'est à cause du fait d'avoir un seul giga-octet de mémoire (il swap pas mal j'ai l'impression, surtout lors du link de la libxul qui est assez énorme), mais aussi certainement le disque dur, un "vieux" truc en IDE (il y a des dizaines de milliers de fichiers à lire pour compiler le code source de Mozilla). Ce n'est que grâce à distcc que j'arrive à avoir un temps de compilation correcte.

Notez qu'en dehors de la compilation, ces machines ne faisaient quasiement rien d'autre, avec au pire seulement un navigateur ouvert.

Conclusions :

  1. Les progrès dans le design des processeurs et des chipsets sont indéniables, puisque à "puissance" inférieur à celle de composants plus anciens, on arrive à avoir des performances équivalentes voire meilleure. Ce n'était pas le cas "dans le temps", où pour avoir plus de performance, il fallait forcément avoir plus de puissance (enfin il me semble). Je reconnais toutefois que mon analyse est très grossière, car je n'ai pas regardé en détails les caractéristiques de chaque machine, de chaque carte mère, ni comparé la qualité des composants. Mais le portable est quand même un modèle d'entrée de gamme, que n'est pas le desktop Dell testé.
  2. Faut que je demande au moins une barrette de Ram de 1Go à mon patron :-)

Sortie de Jelix 1.0.5, futur de la 1.1 et projet de bug tracker

On essaie d'être le plus régulier possible dans la sortie des versions de maintenance, donc voici Jelix 1.0.5 qui corrige des bugs mineurs. La version 1.0.6 sortira dans deux mois. Si il y a de nouveaux bugs bien sûr :-)

Après un calme assez plat dans les développements de la version 1.1, à cause de la préparation des RMLL, et d'autres occupations qui ont accaparé mon temps, l'activité a repris ces derniers jours, avec encore des nouveautés dans jForms, comme la possibilité de grouper des contrôles, une API plus complète sur les contrôles, et un nouveau contrôle <choice> pour avoir une liste de choix contenant des contrôles, comme dans un bug tracker :

  <choice ref="task">
     <label>Task status</label>
     <item value="new">
         <label>New</label>
     </item>
     <item value="assigned">
         <label>Assigned</label>
         <input ref="assignee" required="true">
             <label>assignee name</label>
         </input>
     </item>
     <item value="closed">
         <label>Closed</label>
         <menulist ref="task-done">
             <label>Status</label>
             <item value="done">Done</item>
             <item value="cancelled">Cancelled</item>
             <item value="later">Later</item>
         </menulist>
     </item>
  </choice>

J'ai encore quelques améliorations à faire, pour rendre jForms plus maléable (rajouter des champs de saisie à la volée par exemple), et après ça, probablement qu'une version beta sortira.

Au passage, si j'ai développé cette balise <choice> avec cet exemple d'utilisation pour un bug tracker, ce n'est pas par hasard. Souvenez vous de mon coup de gueule sur Trac, et des résultats de mes recherches d'un nouveau bug tracker, qui sont finalement restées vaines. Au bout du compte, j'avais décidé à l'époque d'en créer un nouveau, je me suis lancé donc dans ce développement.

Cela m'a permis d'utiliser pleinement Jelix, et de découvrir sa force (2 heures seulement pour faire la gestion complete des reports comme dans trac !), mais aussi certaines faiblesses. D'où la création d'un nouveau système de gestion de droits, jAcl2, avec son module d'admin, mais aussi des améliorations dans jForms, dont celles que je viens d'évoquer. Et tout ça est dans le trunk de jelix maintenant. Ces développements ont bien sûr ralenti ceux de mon projet de bug tracker, mais maintenant que je vais presque avoir tout ce qu'il faut, je vais pouvoir me relancer à fond dans ce projet.

Alors bien sûr, je sais que c'est un peu la mode en ce moment de faire un bug tracker en PHP (à cause entre autre je pense du concours sur developpez.com). Mais je me suis lancé dans ce projet bien avant cette mode ;-). Pour le moment, il n'est pas vraiment utilisable, mais ça va le devenir :-) Enjoy !.

- page 1 de 39