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

jy[B]log

Journal d'un geek

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

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.

mardi, novembre 13 2007

Templates avec sqlite : dans le trunk !

Ça y est, mon patch est dans le trunk de Mozilla. On pourra donc faire dans Firefox 3 des templates XUL avec des données issues d'une base sqlite.

Bon, l'intégration du patch ne s'est pas super bien passé. Voici ce qui peut arriver quand on oublie de tester une compilation en mode optimisé, et donc avec un include manquant :

Oui,c'est moi qui ai mis le feu aux tinderboxs[1] :-) Et là on ne voit que celles pour firefox, il y a aussi celles pour xulrunner, sunbird, seamonkey...

M'enfin, ça a été vite corrigé, tout est bien qui fini bien.

PS: les possibilités apportées par mon patch ne sont pas présentes dans Firefox 3.0 beta 1, mais le seront dans les versions suivantes.

Notes

[1] les tinderboxs sont les machines qui compilent en permanence les produits Mozilla, et qui lancent des tests unitaires. Et quand une compilation échoue, c'est indiqué en rouge vif avec des jolies flammes.

jeudi, novembre 8 2007

Templates avec sqlite : c'est pour bientôt.

J'ai terminé la semaine dernière mon patch pour pouvoir utiliser sqlite comme source de donnée pour les templates XUL. Il est un peu tard pour qu'il soit intégré dans Firefox 3 beta 1, mais il le sera il faut l'espérer, avant la sortie de Firefox 3 final. C'est pas forcément joué, car normalement, l'ajout de fonctionnalités dans Gecko 1.9 est gelé depuis plusieurs semaines. Mais je reste optimiste, quand je lis les commentaires enthousiastes de certains :

Mark Finkle (de mozilla.com) :

this may not affect Firefox to a high degree, but the potential for extension developers and XUL application developers is huge, Huge, HUGE!

Philip Chee :

SeaMonkey wants this too as it's holding up a key SM bug that depends on this.

Robert Kaiser (l'un des lead developer de SeaMonkey) :

I know a bunch of people anxious to see this landing ;-)

Bref, l'inclusion du patch dans Gecko 1.9 va se décider dans les prochains jours, et il y a des chances que l'issue soit positive :-)

jeudi, octobre 25 2007

Amélioration de mon patch sur les templates XUL avec sqlite

Après presque un mois d'attente, j'ai pu enfin avoir une superreview sur mon patch. Hélas, il n'est pas passé :-) En effet, il est possible de modifier la requête en y injectant des valeurs non vérifiée, ce qui peut entrainer des problèmes de sécurité. Il m'a donc été demandé d'améliorer ça, en permettant de pouvoir déclarer des requêtes paramétrées. Cela n'empêche pas le développeur de trafiquer la requête à la main, mais au moins il a un moyen pour faire des modifications de façon simple et sûre, évitant les problèmes d'injection SQL.

J'ai fait la modif, et voici donc maintenant ce qu'on peut faire :

   <grid>
       <columns>  <column flex="1"/> <column flex="3"/>  <column flex="2"/> <column flex="1"/>  </columns>
       <rows datasources="tests.sqlite" querytype="storage" id="rows" ref="?">
       <template>
           <query>
               select product_id, label, price, cat_id from products where price > :price
               <param id="price-param" name=":price" type="int32"/>
           </query>
           <action>
               <row uri="?">  <label value="?product_id"/>  <label value="?label"/>  <label value="?price"/>   <label value="?cat_id"/>   </row>
           </action>
       </template>
       </rows>
   </grid>

La nouveauté c'est la balise param, dont le contenu doit être la valeur du paramêtre. Ici il s'agit d'un paramètre nommé, c'est pourquoi il a un attribut name. On peut indiquer le type de la donnée avec l'attribut type. Et bien sûr, on peut avoir autant de paramètres que l'on veut.

Et ensuite, avec un petit bout de script, on indique la valeur du paramètre et on régénère le contenu du template :

   document.getElementById("price-param").textContent = "270";
   document.getElementById("rows").builder.rebuild();

Il s'affichera tous les produits dont le prix est supérieur à 270. Si on ne veut pas que le contenu du template s'affiche dès le départ, il suffit de ne pas mettre l'attribut ref tout de suite, mais seulement après que l'on ait fini de mettre les valeurs dans les paramètres.

Je n'ai pas encore mis à jour le patch sur le bug, j'ai encore 2-3 choses à vérifier, mais ça se fera au plus tard demain. En espérant que la superreview soit enfin positive :-)

dimanche, septembre 16 2007

Pas de XUL-like au W3C

Le groupe de travail sur les formats d'applications web vient de publier une note, indiquant qu'ils arrêtaient leurs travaux sur un format d'interface utilisateur (de type XUL donc).

La principale raison évoquée est le manque de temps et de personnes. Seuls deux membres du W3C ont vraiment planché sur le sujet. De plus, le groupe de travail a considéré que cet ex-futur format pourrait faire double emploi sur plusieurs points, vis à vis d'autres spécifications qui, elles, avancent plus vite et sont largement plus supportés par d'autres membres (Widgets 1.0, Web Forms2, HTML5...).

Ils préconisent alors de recréer un groupe de travail (mais plus tard), de réfléchir sur les besoins réèls auxquels devra répondre ce format etc...

Bref, pour le moment, plus de format normalisé de type XUL au W3C avant quelques années...

Mais heureusement, il y a XBL2, et avec XBL2, on peut tout faire ! D'ailleurs, je l'expliquerai à Paris Web 2007 au cours d'un atelier ;-) Réservez les 15,16 et 17 novembre sur vos agendas !

mercredi, septembre 12 2007

Templates avec sqlite : ça avance

J'ai pu avancer sur l'implémentation de l'usage de SQLite dans les templates XUL (pour rappel, il s'agit du bug 321172). Après quelques reviews qui m'ont permis de corriger et d'améliorer certaines choses, je viens de demander une "superreview", ultime étape avant que le patch soit inclus dans le trunk de Mozilla.

Bien que l'ajout de fonctionnalité/nouveauté dans Gecko soit gelée en ce moment, pour cause de sortie "imminente" (dans quelques mois) de Firefox 3, on m'a tout de même expliqué qu'il y avait des chances que le patch soit intégré, vu qu'il ne modifiait pas le comportement de Gecko, et qu'il pourrait être utile pour des interfaces de Firefox 3 (vu que SQLite/MozStorage est de plus en plus utilisé dans le navigateur). Si toutefois par malchance il n'était pas intégré, je pense que je livrerais une extension provisoirement. Cela ne devrait pas me faire beaucoup de travail grâce au niveau système de template qui est "évolutif" : il suffirait d'en faire un composant XPCOM.

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

jeudi, juillet 12 2007

Templates avec mozstorage/sqlite

Après avoir travaillé sur le bug 321170, j'ai pu avancé sur le bug 321172 (voir les explications sur un vieux billet). Je viens donc de finir un premier patch qui fonctionne (adapté d'un précédent travail de Neil Deakin), permettant d'ajouter la prise en charge d'un nouveau type de source de données pour les templates XUL : SQLite. Avec ce patch, on peut donc maintenant faire ça en XUL :

 <vbox   datasources="file:///home/laurent/mabase.sqlite"  ref="?" querytype="storage">
   <template>
       <query>select name, firstname from users</query>
       <action>
           <hbox uri="?">
               <label value="?name"/>
               <label value="?firstname"/>
           </hbox>
       </action>
   </template>
 </vbox>

J'ai aussi ajouté la prise en charge d'un type d'url spécial, qui permet d'indiquer facilement une base sqlite qui est dans le profile de l'utilisateur :

  datasources="profile:places.sqlite"

Ici on utilise la base du nouveau système de bookmarks de Firefox 3 ;-) Je ne sais pas encore si ce type d'url sera accepté, on verra.

En attendant, faut que je fasse une petite série de tests unitaires pour en vérifier tout le bon fonctionnement.

mardi, juin 19 2007

Un webmail en XUL chez gandi

Le registrar Gandi.net diversifie un peu plus ses activités. Après avoir ouvert une plateforme de blog (basé sur dotclear 2 ;), voilà maintenant qu'il propose un webmail pour ses clients. Quand on achète un nom de domaine chez eux, on peut alors se créer une boîte aux lettres chez eux (1 Go de stockage, 1000 alias et redirections, antispam et antivirus etc...).

Le plus fort dans cette offre, c'est le choix de l'interface. On peut choisir d'avoir une interface toute simple (pour tout navigateur), une interface tout en ajax et cie, une autre optimisée pour IE6 et... une interface optimisée pour les utilisateurs de Firefox. Et cette interface est réalisée en XUL !! Du vrai de vrai !

Avec des vrais menus déroulants, des vrais onglets, des vrais arbres etc.. Une vraie interface, comme dans les clients mails desktop. Et bien sûr, plus efficace et plus réactive que son homologue tout en ajax... Au niveau fonctionnalités, tout le principal est là.

Quelques captures d'écran (cliquez sur les images pour les voir en grand) :

L'écran principal : miniature de la capture d'écran de la fenêtre principale

La fenêtre d'écriture d'un mail : miniature de la capture d'écran de la saisie d'un mail

Le carnet d'adresse : miniature de la capture d'écran du carnet d'adresse

Il y a toutefois quelques fenêtres en HTML, comme la fenêtre de réglage des paramètres ou la fenêtre d'ajout d'un contact : miniature de la capture d'écran d'ajout d'un contact
Vu que ce sont de simples formulaires, c'est tout de même plus simple que de faire en XUL.

Bien sûr, ce n'est encore qu'une beta... Mais c'est un très bon exemple supplémentaire d'usage des technologies Mozilla !

À quand Gmail en XUL ?

mercredi, mai 30 2007

Amélioration des templates Xul

Neil Deakin avait amélioré il y a plusieurs mois déjà le moteur de template XUL : il permet ainsi de pouvoir utiliser des sources de données autre que RDF. Il suffit de réaliser un composant qui sert de "plugin", respectant une interface précise, pour pouvoir fournir au template des données en provenance d'une base de donnée, d'un fichier xml etc..

Le seul souci, c'est que ce n'est pas encore très opérationnel, à cause du bug 321170 : le comportement de l'attribut datasources, qui permettait d'indiquer l'url du fichier RDF, n'a pas été modifié et de ce fait, on ne peut pas y indiquer l'url d'un autre type de source de donnée. Et comme c'est lors de l'analyse de cet attribut que le moteur de template déclenche la génération du contenu, et donc appel les composants "plugins", le nouveau système est en fait inutilisable en dehors de RDF.

Je m'en suis rendu compte quand j'ai voulu m'occuper du plugin pour Storage/Sqlite (bug 321172). Donc en plus de ce bug 321172, je me suis attelé au bug 321170. J'espère résoudre ces bug assez rapidement. Ce serait dommage qu'on n'ait pas tout ça dans Gecko 1.9/Firefox 3.0. Sachant que j'ai aussi sur le feu, entre autres choses, la gestion des formulaires dans Jelix, le nouveau validateur dans Etna... ;-)

mercredi, avril 4 2007

L'avenir de XUL et XulRunner

Fabien Deshayes m'a proposé une interview sur les technologies Mozilla, ce que j'ai accepté bien sûr. Vous la retrouverez sur son blog.

J'y parle donc ce qu'est XUL, XulRunner, mais aussi ce que je pense de leur avenir. Voici quelques compléments.

Lire la suite...

vendredi, mars 30 2007

La différence entre Xul et XulRunner

Suite à des commentaires sur mon dernier coup de gueule, et à divers lectures sur d'autres sites web, j'ai remarqué qu'il y avait une confusion entre XulRunner et XUL. Je tiens donc à préciser :

XUL n'est pas XulRunner

et

XulRunner n'est pas XUL

XUL est un langage. XulRunner est un lanceur d'application (ces applications devant être faites avec les technos mozilla, en particulier en XUL).

Autrement dit, l'avenir de XUL n'est pas lié à XulRunner. Aussi, quoiqu'il advienne au projet XulRunner, XUL et toutes les autres technologies inclusent dans Gecko continueront d'évoluer, à s'améliorer, à devenir toujours plus innovantes. Une simple raison : elles sont utilisées par les deux projets phares de Mozilla, Firefox et Thunderbird, et elles sont utilisées par les centaines d'extensions disponibles pour ces deux produits ;-)

Donc pas d'inquiétude à avoir pour la langage XUL, pour le langage XBL[1] et tout autre technologie de Mozilla (SVG, Javascript2, XPCom...).

Pour ce qui est de l'avenir de XulRunner, il n'est pas aussi sombre que mon précédent billet pourrait laisser croire, même pas du tout. Je vous en parlerai dans un prochain billet ;-) .

Notes

[1] Au passage : les spécifications de XBL2 sont passées en "candidate recommandation" au W3C, ce qui signifie qu'il ne reste plus qu'avoir deux implémentations du langage pour que ça devienne un "standard" au W3C. D'ailleurs l'implémentation dans Mozilla aurait déjà débuté.

mercredi, mars 28 2007

Mozilla et Adobe m'agacent

Adobe a annoncé la sortie de sa plateforme de dev Apollo. Et voilà que tout le monde s'intéressent à ce truc, trouve ça génial et tout.

Alors que finalement, Apollo, c'est une vulgaire copie de XulRunner à laquelle ils ont rajouté du flash (fallait voir la première version de leur langage Flex : copie 100% de XUL). Aucune innovation technologique, mais tout le monde découvre et adore. Ça m'enerve.

Et pendant ce temps là, Mozilla n'en a rien à fiche, ne fait pas évoluer XulRunner. Alors que depuis longtemps on tente de leur faire comprendre qu'ils ont de l'or en barre, qu'ils ont un truc avec un potentiel énorme. Mais ils ne font rien (il y a peut-être une lueur d'éspoir).

J'en ai ras le bol.


Mise à jour 30/03 : ceci est un coup de gueule impulsif, bien entendu :-) et ne présage en rien de l'avenir de XulRunner, ni d'ailleurs de XUL comme certains le pensent. Comme je le précise dans un billet suivant, Xul n'est pas XulRunner et il n'y a pas à s'inquiéter de l'avenir de XUL ;-)

mardi, novembre 28 2006

xulfrparty : cool

Apparement, notre première xulfr party samedi dernier, a plu. Mandriva nous avait laissé une grande salle à notre disposition. Il y a eu presque une vingtaine de personnes qui sont venues, du développeur freelance à des développeurs de grosses boîtes comme Renault F1 ou tf1.

Chacun a pu discuté, découvrir des applis XUL, découvrir XUL, poser des questions, partager son expérience.

Cela s'est bien passé et donc on recommencera :-)

jeudi, novembre 23 2006

Xulfr Party et Solutions Linux

Un petit rappel : le petit meeting/barcamp like pour développeurs XUL aura bien lieu, à Paris, dans les locaux de Mandriva ( Merci Mandriva et merci à Atmaniak), samedi prochain, à partir de 14h30 jusqu'en fin d'aprés midi.

Il y aura une bonne quinzaine de personnes, ça sera déjà pas mal :-) Voir les détails dans le wiki de xulfr.

Pour ceux qui regrettent de ne pas pouvoir venir, vous pourrez vous rattraper en allant au prochain salon Solution Linux qui se tiendra fin janvier, et durant lequel il y aura une table ronde Mozilla/Xul, avec des professionnels utilisant les technologies Mozilla ;-)

samedi, novembre 11 2006

Interview sur le journal du net

Dans le cadre d'un dossier sur le client riche qui vient de sortir sur le journal du net, j'ai été interviewé sur XUL :-)

mercredi, mai 10 2006

Offre job dans les technologies Mozilla

Chez DI, nous recherchons un développeur maîtrisant les technologies Mozilla (XUL, XBL, Javascript, XPCom en C++...). Il participera à la réalisation d'applications sympas, innovantes, ce qui pourrait d'ailleurs l'amener à contribuer au projet Mozilla, offrant donc de belles perspectives. Il rejoindrait une petite équipe de deux personnes, passionnées, expertes, dans une ambiance cool, décontractée et sans prise de tête.

Pour avoir plus de détails, lire l'annonce sur le blog de Daniel.

jeudi, mars 23 2006

AjaxWrite

  • Quelques balises XUL pour l'interface, histoire d'éviter de se trainer des tonnes de scripts JS pour faire des widgets et éviter donc d'avoir des widgets, pauvrement accessible, qui ressemblent de loin par temps de brouillard à ce que l'utilisateur à l'habitude d'utiliser dans des applications "normales".
  • un peu de xmlhttprequest pour envoyer ou reçevoir le document édité à partir du serveur
  • quelques scripts coté serveur pour réaliser la convertion du document que vous voulez éditer vers HTML (ou à partir de HTML pour la sauvegarde)
  • un peu de javascript pour programmer les quelques traitements sur les actions de l'utilisateur

Et vous obtenez un traitement de texte en ligne : AjaxWrite.

Certains y verront un éditeur simpliste mais ce n'est qu'un début.

Et n'en doutez pas, on va voir débarquer de plus en plus d'applications online en XUL. Pour les développeurs, XUL facilite beaucoup les choses pour la réalisation d'interface utilisateur.

Et cela apporte aussi énormément de souplesse !

Un exemple : imaginez que dans AjaxWrite, on puisse indiquer l'url d'un overlay XUL (url qui serait stockée dans un cookie). (Pour rappel, un overlay est un fichier XUL qui indique des éléments XUL à ajouter à une interface déjà définie. C'est le coeur même du système d'extension de Firefox.)

Bref, on indiquerait cet overlay, et hop : vous rajoutez ainsi vos propres fonctionnalités à une application distante, sans avoir à modifier les sources sur le serveur ! (et sans rien à installer en local). Si c'est pas du "Web 2.0" ça ... ;-)

Bref, XUL, c'est TOTALEMENT DEMONIAQUE !!

Les applis en HTML, ce n'est pas l'avenir. Moi j'vous l'dit ! (Surtout quand XUL sera normalisé par le W3C).

PS: ah ! On me souffle dans mon oreillette que l'auteur de AjaxWrite trouve trés bonne mon idée de pouvoir indiquer ses overlays dans l'application... ;-)

PS2: Tiens, et pourquoi pas réaliser une extension pour Firefox, qui permettrait d'indiquer les overlays à ajouter à telle ou telle application web quand on les utilise, même quand cette fonctionnalité n'est pas explicitement prévue par leurs auteurs ? À étudier...

- page 1 de 4