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

mardi, septembre 22 2009

De la 3D dans Firefox

L'extension canvas 3D permet depuis 2 ans, d'utiliser l'element <canvas> pour faire de la 3D, en profitant de l'accélération matériel apportée par openGL.

S'en est suivi la naissance d'un groupe de travail en mars dernier, au Khronos Group, pour normaliser une API, appelée communément WebGL, dérivée d'OpenGL ES 2.0, qui sera adaptée aux application web. Mozilla et d'autres éditeurs participent à ce groupe.

En juin dernier, le code de l'extension Canvas 3D a été intégré dans le trunk de Mozilla, et ce n'est que depuis quelques jours que ce code a été activé par défaut dans les compilations nocturnes de Firefox (en l'occurence, cela sera disponible pour Firefox 3.7, il est trop tard pour Firefox 3.6 qui sortira d'ici la fin de l'année). Il y a eu aussi des changements dans l'API du contexte 3D de l'élement <canvas>, afin de coller au plus près aux derniers brouillons de WebGL.

Nous voilà donc avec des nightlies de Firefox permettant de faire de la 3D. Le développeur de canvas 3D, Vlad Vukićević, vient de publier une démo, qui permet de visualiser une creature en 3D.

J'ai fait un screencast de la demo executée avec une nightly de Firefox (fichier Ogg/Theora, et désolé, pas d'utilisation de la balise video dans ce billet, impossible de l'utiliser avec dotclear ! grrrrrr)

Mise à jour : deux nouvelles démos ! À voir ici et .

vendredi, septembre 11 2009

XRX, un doux rêve ?

Tangi vient de publier un billet très intéressant sur une nouvelle façon de faire une application web, une architecture XRX, qui utilise XForms, Rest, et XQuery. Vu de loin, ce triplet à l'air sexy, et fait renaître l'idée de faire du XML de bout en bout, sans avoir à taper une ligne de code "fonctionnelles". Et pour Tangui, cela apporte beaucoup de simplicité par rapport au triptique Javascript/PHP/MYSQL. Sur ce point, je ne suis pas d'accord avec lui.

Lire la suite...

mercredi, août 19 2009

Khromaxul 0.4 on the road

Dans la nouvelle version de ZoomCreator que nous sommes en train de réécrire, nous voulions ajouter de beaux colors pickers. Pour cela, j'ai trouvé Khromaxul, un ensemble de color pickers sous forme de composants XBL (avec du SVG), crée par Joliclic. La demo et les tests m'ont fait bonne impression, ainsi que le code en général.

Mais un souci s'est posé à l'intégration. Pour synchroniser les color pickers (mise à jour des pickers quand vous changez la couleur dans un), il faut se taper des tonnes de lignes de code javascript, avec des event listeners sur chacun des pickers. À cela il faut ajouter que chaque composant a sa propre API. Ainsi il y a des pickers pour les couleurs RGB, d'autres pour HSV etc. Et donc lors de cette synchronisation "à la main", il faut aussi se taper les conversions d'un format de couleur à un autre.

Bref, d'un point de vue du développeur, ce n'était pas très sexy à utiliser. J'ai donc décidé d'améliorer tout ça (vive les licences libres !). J'ai d'abord harcelé Joliclic pour qu'il crée un dépôt des sources quelque part, en lui proposant BitBucket. Vous pouvez ainsi accéder aux dernières modifications. Et voilà les améliorations principales que j'ai apporté :

  • uniformisation de l'API des pickers : ils héritent tous du même XBL de base que j'ai dévelopé, avec une propriété "color" contenant une chaine avec le code couleur en CSS (rgb, hsl, hexa...), et une propriété colorObject qui est un objet permettant de manipuler la couleur en question.
  • cet XBL de base intégre la communication avec un dispatcher. En fait, Joliclic a crée un broadcaster similaire au broadcaster XUL, mais spécialisé pour nos besoins. Ainsi, pour synchroniser les pickers, il suffit juste de créer une balise kh-colordispatcher, et d'indiquer son id dans un attribut "dispatcher" sur chacun des pickers. Plus une seule de code JS à écrire !
  • j'ai aussi ajouter support de la transparence dans les couleurs: rgba, hsla, hsva.
  • J'ai développé également un picker pour choisir la transparence, une colorbox affichant la transparence, un textbox pour saisir un code couleur etc....

Bref, la version 0.4 n'apportera pas de grande nouveauté pour l'utilisateur, mais un grand bouleversement pour le développeur désirant intégrer un ou plusieurs color pickers dans son application XUL.

vendredi, août 14 2009

De la bonne redaction des messages d'avertissements

J'ai eu un truc que je ne comprenais pas avec Mercurial. J'avais créé une branche nommée sur mon dépôt local, et fait des commits. Du coup, tout logiquement, j'avais deux "heads", une pour la branche nommée, et une autre pour la branche "default". Au moment de faire mon push, Mercurial a ralé, comme quoi ça allait créer des nouvelles têtes sur le dépôt distant, et me disait qu'il faudrait faire un merge avant de faire le push. Le problème, c'est que je ne veux pas fusionner les deux branches !

Du coup, j'ai eu un gros doute sur ma compréhension de ce qu'était un head, une branche nommée et à quoi ça servait. Mais j'avais beau lire la doc, il me semblait bien avoir compris tout ceci. Et ça ne m'avançait pas sur le pourquoi de l'erreur de Mercurial. Pourquoi fallait-il absolument faire un merge ? Pourquoi avoir un système de branches si c'est pour les fusionner systématiquement ?

Et puis j'ai expliqué mon problème sur le channel irc de Mercurial, et je fus plutôt rassuré. Ou presque. Parce qu'en fait, c'est moi qui n'ait pas tout à fait compris le sens du message d'erreur. Je l'ai trop pris au pied de la lettre. Ce n'est pas une erreur, mais un avertissement, et l'ordre qu'il faille fusionner, n'est pas un ordre, mais une simple proposition pour résoudre le problème (parmis d'autres non explicitées). Et on m'a expliqué qu'en fait, je devais forcer[1] le push avec l'option -f , et que dans les prochaines versions, le message sera plus explicite (pas seulement indiquer qu'il faut merger) ou n'apparaitra plus tout simplement (j'imagine, seulement dans les cas où il s'agit que de têtes de branches, et pas plusieurs têtes sur une même branche).

Bref, voilà mes doutes levés. Je peux continuer à travailler :-)

Notes

[1] ce qu'en fait j'hésitais à faire avant, parce que quand on force les choses, bien souvent ça apporte des ennuis

mardi, août 11 2009

Moment de faiblesse

J'ai ouvert un compte twitter. Pour rigoler. Ou pas.

Mise à jour: j'ai aussi ouvert un compte sur identi.ca

mercredi, août 5 2009

Jelix.org down

Bon, il suffit que je me déconnecte quelques jours pour que le serveur du projet Jelix décide de ne plus répondre. Malheureusement, je n'en sais pas plus pour le moment. J'ai contacté son propriétaire pour qu'il le redémarre, mais j'ai bien peur que lui aussi soit parti quelque part sous le soleil.

Désolé donc pour les utilisateurs de Jelix, il va falloir patienter quelques jours. Je retourne sur la plage.

C'est bête, j'avais quelques nouveautés intéressantes à "pusher" sur le dépôt Mercurial pendant ce brêve temps de connectivité :-)

jeudi, juillet 23 2009

Code Rush sous CC

Le documentaire qui raconte la naissance du projet Mozilla, Code Rush, est maintenant disponible sous licence CC, donc librement visualisable et redistribuable. Il est disponible sous différents formats. Une version numérique (certainement haute qualité) reproduite à partir des rushs originaux est en cours de montage.

Même si je n'ai pas vécu ces débuts (je n'ai commencé à m'intéresser au projet Mozilla qu'en 2002), ça me fait quelque chose de revoir[1] ce documentaire sur ce projet dans lequel je m'investis depuis 2003. Je considère cette naissance comme un grand moment historique en informatique (Netscape Navigator fut tout de même le premier logiciel propriétaire d'envergure à être libéré..).

via Tristan.

Notes

[1] je l'avais déjà vu

lundi, juillet 20 2009

En plein dans le Mercure

En ce moment, je m'amuse pas mal avec Mercurial.

Chez Zoomorama, parce que Subversion devenait limitant pour nous, nous avons décidé de migrer vers Mercurial. On a pas mal recherché et discuté des différents avantages et inconvénients entre git et mercurial, et hg nous semble plus approprié pour nos besoins.

  1. Mercurial nous semble plus propre d'un point de vue des commandes (Il n'y a pas 144 scripts différents avec des dépendances dans tout les sens comme dans Git) et il est presque aussi simple à utiliser que subversion. Cela nous fera gagner du temps pour s'approprier l'outil.
  2. Il y a une très bonne documentation (bien que celle de Git semble s'améliorer), entre autre ce guide
  3. Et surtout il a un bon support sur toutes les plateformes, ce qui est important pour nous puisqu'on fait, entre autres choses, des applis multi plateformes basées sur Mozilla.
  4. On utilise Gecko, en le modifiant, et Gecko étant sous Mercurial, ça ne nous fait pas apprendre un nième outils.

Au niveau fonctionnalités, Git et Mercurial se valent je trouve, surtout dans les fonctionnalités de base. Mercurial a beaucoup progressé et comblé son relatif retard ces derniers temps. Et vu qu'on ne va pas forcément utiliser les fonctionnalités super avancées de ces outils ce n'est pas sur ce point qu'on a pu les départager (quoique, j'apprecie beaucoup l'extension mq de Mercurial)... D'un point de vue performance, on n'a pas des projets de plusieurs dizaines de millions de lignes de code, aussi je ne pense pas que Mercurial va nous pénaliser (bien qu'il parait qu'il est plus lent que Git sur certaines opérations).

Le seul inconvénient qu'on lui trouve : le site officiel est moche par rapport à celui de git :-), mais heureusement, il y a un nouveau site plus propre : http://hg-scm.org/.

Un bon comparatif (sans troll et assez objectif je trouve) qui a fini par nous convaincre : Git vs Mercurial.

Et puis, du coté de mes projets perso, je suis en train aussi de passer aussi à Mercurial. Pour Jelix, je viens de monter http://hg.jelix.org. Je dois encore configurer les droits d'accés pour le push via ssh (c'est moins classe à configurer que pour subversion [1]) et quelques autres broutilles (comme modifier les cron des builders de nightlies). Je vais enfin pouvoir commiter dans le train !

À propos de gestionnaire de sources, le projet PHP vient de changer lui aussi de système. Ils ont enfin délaissé CVS pour utiliser Subversion. Je m'étonne toutefois qu'ils ne se soient pas orienté vers Git, Mercurial ou un autre système décentralisé. Surtout que je n'arrive pas à mettre la main sur leurs arguments en faveur de Subversion par rapport à Git/Mercurial.

Notes

[1] en fait non, une fois compris le truc, c'est bien plus puissant, en utilisant http://hg.opensource.lshift.net/mercurial-server/ et je viens de terminer sa configuration :-)

vendredi, juillet 17 2009

Transformations 2D et 3D en CSS

Ainsi donc, webkit supporte maintenant les transformations 3D en CSS. Je trouve ça génial. J'apprécie déjà les transformations 2D (que j'utilise sur la page d'accueil de jelix.org). Mais là, ça ouvre encore plus de perspectives (c'est le cas de le dire ;-)).

Seulement, à travers les demos que j'ai ouvert dans mon Firefox (qui ne supporte pas les propriétés transform3D), j'ai remarqué que l'utilisation de ces transformations avaient un écueil : ça se dégrade très mal dans les navigateurs ne supportant pas ces propriétés. Du genre, les éléments s'affichent les uns sur les autres. Il y a certainement des améliorations possibles dans ces démos pour que ça se dégrade un peu mieux. Mais c'est certain qu'il va falloir faire attention...

Pour les plus curieux d'entre vous, les brouillons des spécifications sont disponibles sur le site du W3C : CSS3 3D transforms, CSS3 3D transforms.

jeudi, juillet 2 2009

Theora, après Firefox et Chrome : Opera

Après Firefox et Chrome, Philip Jägenstedt, un développeur du navigateur Opera annonce que ce dernier embarquera en natif le support pour Ogg Vorbis/Theora. Un autre développeur d'Opera, Anne Van Kesteren, apporte des précisions sur ce choix en expliquant qu'embarquer H264 n'est pas très bon pour le web, et que le web a besoin de format ouvert, libre d'utilisation (sans avoir à payer des royalties), et libre de tout brevet logiciel. Theora est donc le format idéal pour diffuser de la vidéo sur le web.

Beaucoup de développeurs et d'utilisateurs préfèrent cependant H264, sous prétexte que les fichiers sont moins gros, et la qualité meilleure qu'avec Theora. Ils ne savent pas cependant (ou ne veulent pas savoir parfois) que Theora n'est pas si mauvais que ça, et que les encoders pour ce format s'améliorent !

Ainsi, la 1.1 alpha 2 de l'encoder 'Thusnelda' réalisé par la fondation Xiph vient de sortir. Sans changer le format Theora, il permet de produire des vidéos de meilleure qualité, et des fichiers moins gros. (voir ce comparatif sur ce blog). Bien entendu, la prochaine version de Firefox utilisera cette future version de la libtheora, si elle est prête à temps.

Ogg Theora vaincra ! :-)

mardi, juin 30 2009

Sorties majeures aujourd'hui

D'abord celle de Firefox 3.5. Et puis celle de PHP 5.3. Ils apportent chacun leur gros lot de nouveautés.

Notez les chiffres des versions de ces deux logiciels :-)

Sans oublier TwitFactory, la nouvelle appli de Daniel.

dimanche, juin 28 2009

De la 3D dans Firefox

Énorme ! Le coeur du code de l'extension qui apporte un contexte 3D dans la balise <canvas> vient d'être intégré dans le trunk de Mozilla. Dans une version future de Firefox, on pourra donc faire de l'affichage 3D via cette balise, avec semble-t-il une API proche d'openGL.

Voir la news sur xulfr.

vendredi, juin 26 2009

Chantiers: XBL2 et multi processes

Je l'avais déjà annoncé sur xulfr le mois dernier, le développement du support des multi-processeurs dans Gecko a démarré. Ce projet a même un nom maintenant : Electrolysis.

Benjamin Smedberg avait annoncé le projet "officiellement" il y a 10 jours, et peu de temps après, Chris Jones publiait une vidéo d'une première expérience, avec une simple fenêtre XUL dans lequel le contenu HTML était affiché via un processus différent.

Pour la petite anecdote, ils ont repris la bibliothèque de communication inter-processus de Chromium. Vive l'open source :-).

Autre bonne nouvelle, le développement de l'implémentation du langage XBL2 va bientôt démarrer, dixit Jonas Sicking, le développeur qui va s'en occuper. Pour en savoir plus sur XBL2, voir mon billet précédent sur ce sujet et les slides de la conférence sur XBL2 que j'avais donné à ParisWeb 2007.

J'aime bien ses périodes de release de Firefox, les développeurs n'ont plus trop de bugs à corriger pour la version qui sort, et du coup plus de temps pour développer des nouveaux trucs.

mardi, juin 23 2009

Pas de support DirectShow et Quicktime dans Firefox

À l'origine, dans le cadre de la balise video, il était prévu d'intégrer le support de DirectShow et de Quicktime dans Firefox, pour ses versions respectives sous windows et mac, en plus du support natif du format OGG/Theora. Finalement, cela ne se fera pas, comme l'explique Robert O'Callahan l'un des core-developer de Mozilla. Voici en gros les raisons :

  • Mozilla veut se concentrer sur la promotion des formats ouverts comme OGG/Theora
  • Apparemment, peu d'utilisateurs ont les codecs installés pour H264, par défaut, il n'y a que des codecs pour des "vieux" formats (sauf dans Windows 7 qui fournira un codec H264 en standard)
  • DirectShow est sous-spécifié, contient des bugs, et les codecs disponibles pour DirectShow sont de qualités très inégales, et ne fournissent pas tous tout ce qu'il faut pour que l'API de la balise video fonctionne correctement. C'est à dire, qu'avec certains codec, des scripts dans les pages web ne pourraient pas fonctionner, et l'auteur de la page web ne pourrait rien y faire. Déjà que la compatibilité cross-browser est un cauchemar, alors si il faut aussi se préoccuper des problèmes cross-codec...
  • Vu la qualité inégale des codecs, cela veut dire bugs potentiels, que les utilisateurs attribueraient à tord à Firefox. Les développeurs de Firefox ont assez de problèmes à régler comme ça
  • Il y a des codecs "malware"
  • Il y a des codecs avec des trous de sécurité, que Firefox ne pourrait pas "contrôler"
  • Deux backends en plus, c'est du boulot en plus, de la maintenance en plus etc.
  • Mozilla ne peut fournir des codecs par défauts avec le support Quicktime ou DirectShow (pour H264 notamment), à cause des royalties qu'il faudrait payer, et des problèmes de brevet.

Bref, dans Firefox, il n'y aura que le support natif de OGG/Theora (et OGG/Vorbis), ainsi que la backend GStreamer (au moins pour la version mobile, il n'est pas encore sûr qu'il le soit dans la version desktop).

lundi, juin 22 2009

Passage à Firefox 3.5RC

Ça y est, je viens de basculer définitivement de Firefox 3.0 à Firefox 3.5 (la release candidate). Malheureusement, j'ai encore la moitié des extensions qui ne sont pas compatibles, dont celle que je me sers pour lire mes flux RSS...

Vivement les extensions dans jetpack !

vendredi, juin 19 2009

Jelix 1.0.9, Jelix 1.1.3 et WikiRenderer 3.1

Dans le courant de la semaine, j'ai publié des nouvelles versions correctives des deux branches actives de Jelix, le framework PHP. Vous pouvez mettre à jour vos installations Jelix sans risque. Il est même hautement recommandé de mettre à jour votre Jelix 1.1 si vous utilisez les modules d'interfaces de gestion de droits et de gestion d'utilisateur, à cause de problèmes critiques lorsque l'on change les droits (des droits peuvent être enlevés inopinément), et sur l'édition d'un profil d'un utilisateur.

Et puis aujourd'hui, je viens de sortir une nouvelle version de WikiRenderer, la 3.1, qui corrige quelques bugs, et qui apporte quelques facilités pour les développeurs de règles de transformations. Pour rappel, WikiRenderer est une classe qui permet de transformer un texte wiki dans une autre syntaxe wiki, ou en XHTML, ou tout autre langage de markup. Elle m'est très utile dans les petits modules de CMS, ou encore récemment, pour migrer le contenu wiki de XULFR d'un vieux wiki vers un nouveau wiki qui a une syntaxe différente. Et pour l'occasion de cette sortie, le site de WikiRenderer est maintenant disponible en Anglais, avec une documentation pour les développeurs.

jeudi, juin 18 2009

De la com' débile chez Microsoft

Franchement, Microsoft tombe de plus en plus bas[1]. Pour l'australie, ils font un espèce de jeux concours, où il faut trouver $10 000 quelque part sur le web, et on ne pourra le trouver qu'en utilisant IE8. Voir la page du concours sur le site de Microsoft[2].

Bon déjà, limiter la navigation à un seul navigateur, alors que le web est supposé être universel, c'est vraiment un contre sens.

Mais ils font pire. Franchement, ce sont vraiment des boulets[3].

Déjà pour le contenu du message, totalement affligeant. Se moquer ouvertement des autres navigateurs en utilisant des termes comme "Vieux Firefox", "Chrome ternis", c'est idiot. Parce que se moquer du navigateur, c'est se moquer de l'internaute qui utilise ledit navigateur et qui arrive sur le site. Et il me semble que d'un point de vue communication et commerciale, ce n'est pas en se foutant de la tête du client qu'on arrivera à lui faire acheter ce qu'on lui propose.

Mais il y a aussi la page web. C'est assez hallucinant d'utiliser quasiment une seule image pour afficher tout le contenu de la page web. Franchement, leur message ne tient plus la route, est totalement vidé de son sens. Messieurs de Microsoft, merci, mais tout les navigateurs savent afficher une image. Et faire une page web, ce n'est pas qu'avec des images.

Alors qu'ils auraient pu faire bien mieux, en profiter pour utiliser toute la technologie disponible dans IE8 en matière de CSS standard (même si leur implémentation est en deça des autres navigateurs), mais aussi en matière d'extensions propriétaires, leurs filtres et cie. Ils auraient même pu à la limite faire un truc qui s'affiche niquel dans leur browser, et qui est tout cassé dans les autres, pour essayer de prouver qu'ils peuvent faire mieux (le message passerait bien en tout cas envers des non technophiles).

Mais non. Là, c'est juste de la COM' nullissime, d'une boite qui ne sait même pas mettre en avant son navigateur. Ou plutôt, peut être qu'elle saurait le faire, mais elle admet qu'ils ne peuvent pas faire mieux au niveau communication, parce qu'elle sait pertinemment que la concurrence promet bien plus de choses aux développeurs et aux utilisateurs.

Et le summum dans cette COM' nulle, c'est que sur la page il est indiqué le nom du site, http://www.tengrandisburiedhere.com/ et il est même utilisé sur certains liens dans le source de la page. Hélas, triple fois hélas, cette adresse ne mène nulle part. Elle est bien enregistrée, mais il n'y a pas de serveur derrière, elle ne redirige même pas sur la page du concours sur le site de Microsoft. Des boulets je vous dis.

En attendant, des petits malins ont réservé le nom de domaine http://www.tengrandisburiedthere.co... (notez le T avant "here" qui fait la différence), et il suffit de zoomer pour savoir qu'elle est le navigateur meilleur que IE8[4] ;-).

On pourra aussi aller sur http://hacks.mozilla.org pour se délecter de ce que nous proposent ou proposeront nos "vieux Firefox", nos "chrome ternis" et autres navigateurs trop "exotiques", et en particulier ce que proposera Firefox 3.5 qui sortira d'ici 2-3 semaines.

Notes

[1] Toute ressemblance de ce billet avec un de mes commentaires sur linuxfr n'est pas du tout forfuite :-)

[2] Si par hasard la page n'etait pas disponible, et c'est arrivé hier, vous pouvez aller voir des captures d'écrans ici

[3] Que ce soit réalisé par Microsoft lui-même ou par un prestataire externe, le résultat est le même pour la boîte : catastrophique selon moi

[4] en tout cas, l'un des meilleurs ;-)

La technologie Zoomorama

Une fois n'est pas coutume, je vais vous parler de ce qu'on fait dans la boîte où je travaille, Zoomorama, ou plus exactement, de la technologie que l'on a crée ou utilisé.

Lire la suite...

mercredi, juin 17 2009

Des articles intéressants sur hacks.mozilla.org

Zut, j'ai oublié de vous signaler la publication de ma démo sur hacks.mozilla.org, que je vous avez promis. Je ne suis plus au point en matière de teasing, vous avez connu mieux sur ce blog, n'est-ce pas ? :-)

Donc voilà ma démo, à tester avec Firefox 3.5b99 au moins. Si des développeurs spécialisés sur Webkit (Riiiiik !), Opera ou Konqueror, pouvaient jeter un coup d'oeil voir si je peux améliorer ça pour leur navigateur préféré respectif... (Ouai, je m'y prend un peu tard, mais là, je n'ai plus la tête hors de l'eau, tellement ma todo list est lourde, et j'ai un tuba pour éviter de me noyer).

Bon sinon, sur hacks.mozilla.org, il y a des articles que j'ai vraiment aimé jusqu'ici, et finalement bien plus impressionnant que ma petite démo, et que je veux vous faire partager (pour ceux qui ne suivent pas hacks.m.o) :

Et puis il y a aussi ce débat (ici et ) sur la qualité de Theora par rapport à ce qu'on peut avoir dans YouTube par ex. Conclusion, Theora, c'est bon, mangez-en !

Et ce n'est pas fini, mon petit doigt me dit qu'il va y avoir encore de belle demo sur les nouvelles technologies web :-)

mardi, juin 9 2009

Les nouveautés de Firefox 3.5 en 35 jours

Mozilla vient d'ouvrir un site, hacks.mozilla.org. Pendant 35 jours, nous allons vous montrer les nouvelles possibilités du moteur de Firefox, tant en terme d'API javascript, qu'en terme de support de HTML5 et de CSS3. J'ai réalisé une démo qui sera publié sur ce site. Ce sera une démo sur CSS, qui utilisera des fontes téléchargeables (propriété font-face), les ombrages sur les textes (text-shadow) et les boites (box-shadow), accompagné d'une pincé de bords arrondis (border-radius).

Stay tuned !

Mise à jour: comme promis...

- page 2 de 44 -