<?xml version="1.0" encoding="ISO-8859-1" ?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://planete.xulfr.org/">
  <title>Planète Xulfr</title>
  <description></description>
  <link>http://planete.xulfr.org/</link>
  <dc:language>fr-fr</dc:language>
  <dc:creator></dc:creator>
  <dc:rights></dc:rights>
  <dc:date>2010-03-15T09:40:00+00:00</dc:date>
  <admin:generatorAgent rdf:resource="http://planete.xulfr.org/" />


  <items>
  <rdf:Seq>
             <rdf:li rdf:resource="http://joliclic.free.fr/blog/index.php?post/2010/03/15/XULRunner-on-Maemo-%3A-Mozcards"/>
                <rdf:li rdf:resource="http://blog.renevier.net/index.php?post/2010/03/13/installation-de-google-weave-minimal"/>
                <rdf:li rdf:resource="http://confiture-cake.blogspot.com/2010/03/la-recherche-du-xul-perdu.html"/>
                <rdf:li rdf:resource="http://xulfr.org/news/2010/03/09/290-les-ameliorations-a-venir-au-niveau-performances"/>
                <rdf:li rdf:resource="http://xulfr.org/news/2010/02/26/289-plus-de-xul-pour-les-applis-web"/>
                <rdf:li rdf:resource="http://xulfr.org/news/2010/02/26/288-xulrunner-192"/>
                <rdf:li rdf:resource="http://www.befox.be/firefox-desactiver-le-zoom-intempestif-de-la-magic-mouse"/>
                <rdf:li rdf:resource="http://www.befox.be/une-solution-au-bug-de-double-fenetre-sur-mac-os-x"/>
                <rdf:li rdf:resource="http://xulfr.org/news/2010/02/02/287-demo-sur-les-avancees-technologiques-de-firefox-36"/>
                <rdf:li rdf:resource="http://www.befox.be/thunderbird-3-0-1-disponible-au-telechargement"/>
                <rdf:li rdf:resource="http://www.befox.be/firefox-3-6-disponible-au-telechargement"/>
          </rdf:Seq>
  </items>
</channel>
  <item rdf:about="http://joliclic.free.fr/blog/index.php?post/2010/03/15/XULRunner-on-Maemo-%3A-Mozcards">
    <title>XULRunner on Maemo : Mozcards</title>
    <link>http://joliclic.free.fr/blog/index.php?post/2010/03/15/XULRunner-on-Maemo-%3A-Mozcards</link>
    <dc:date>2010-03-15T09:40:00+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>Joliclic blog - mozilla</dc:creator>
    <dc:subject></dc:subject>
	<description></description>
	<content:encoded><![CDATA[    <div class="tabbox">
<ul class="tabs">
<li class="selectedTab" title="english version">en version</li>
<li title="version française">version fr</li>
</ul>
<div class="tabpanel" lang="en">
<p><em>english version</em></p>
<p>
I have
<a href="http://joliclic.free.fr/blog/index.php?post/2009/12/15/Yummy-s-won">won an N900</a>,
and I have installed
<a href="http://www.mozilla.com/en/mobile/">Firefox Mobile</a> on it of course.
<br />
So I have XULRunner. And that's really cool ;) .
</p>
<p>
Here's an example, let me introduce
<strong><a href="http://joliclic.free.fr/mozilla/mozcards/en/">Mozcards</a></strong>.
</p>
<p>
It's an adaptation for Maemo and a XULRunner port of the extension
<a href="https://addons.mozilla.org/fr/firefox/addon/1562">Cards</a>,
for Firefox, by Stephen Clavering. A collection of really good
patiences (card games).
</p>
<p>
I found no real license informations
in the original sources, so I asked to Stephen and all the contributors
(Derek Seabury and Neil Rashbrook)
if they're OK for tri-license their code into <strong>MPL/GPL/LGPL</strong>.
And they're accepted :) . <strong>Thank you very, very much!</strong>
</p>
<p>
So I can propose to you this version adapted for Maemo. There's
a new card theme, inspired of Tango, wich expect to be more readable
on the little screen. And some UI improvements for the touchscreen,
inspired of Fennec.
<br />
The application starts a little slowly (especially the first
time), but after the responsiveness is good.
</p>
<p>
<img src="http://joliclic.free.fr/mozilla/mozcards/en/screenshots/klondike.png" alt="klondike screenshot" />
<img src="http://joliclic.free.fr/mozilla/mozcards/en/screenshots/games-choice.png" alt="games choice screenshot" />
</p>
<br />
<h3>Some technical informations</h3>
<p>
Let me share some points of this experience, playing with XULRunner
on Maemo.
</p>
<h4>XULRunner is easy</h4>
<p>
First of all, the XULRunner port was trivial, and the code of Cards
rocks ;), it was playable as is.
</p>
<h4>Guidelines</h4>
<p>
To create my extension Yummy, I had already looked at the
<a href="http://mxr.mozilla.org/mobile-browser/">Fennec
sources</a>, it's a really good sources of inspiration, and code snippet
to reuse. The guidelines and informations for Fennec and little touchscreen
devices, available on the <a href="https://wiki.mozilla.org">mozilla wiki</a>,
are precious too.
</p>
<h4>Theme</h4>
<p>
For the UI and general theme, I have reused parts of the CSS of Fennec.
There're 2 main files to look at, platform.css, for general theming on
Maemo, and browser.css for Fennec specific theme.
</p>
<h4>Popup</h4>
<p>
Popup windows are not relevant on small devices, instead I used a main
stack with some "panels" boxes, wich are hidden/showed upon request,
like in Fennec.
As all the cards games were already in a stack, it was easy to insert.
</p>
<h4>Menulist</h4>
<p>
XUL elements like <code>&lt;menulist&gt;</code> give not the best user
experience on small devices, so I reused code of Fennec here too.
<br />
The menulist are associated with CSS to a new binding, wich extend the original
chrome one. It implement a nice mechanism, the content of the menulist
is displayed in some boxes wich looks like a richlistbox, on the fly,
and adapted to the small screen. You have just to copy the code
of the js objects SelectHelper and MenulistWrapper, and create the
appropriate panel <code>&lt;vbox id="select-container"&gt;</code>
in your XUL.
</p>
<h4>Kinetic scrolling</h4>
<p>
Kinetic scrolling is <strong>really easy</strong> to implement with
some code of Fennec, again.
<br />
There's a js file named InputHandler, wich implement an object with
the same name. It can handle all elements with a nsISCrollBoxObject
available (i.e. scrollbox elements). Fennec initialize it with the box
which display the main browser view. But I just initialize it with
one of the scrollbox of my window:
</p>
<pre>var gIH = new InputHandler(document.getElementById("myscrollbox"));            </pre>
<p>
And that's all!
<br />
All scrollboxes of the document have now kinetic
scrolling. In particular, the box used to display the menulist contents.
<br />
The only modification I made is to deactivate the zoom handling.
</p>
<h4>Special case: iframe</h4>
<p>
I display the "about" page in a <code>&lt;xul:iframe&gt;</code>,
I wanted kinetics on it, but a iframe box doesn't implement
nsIScrollBoxObject, and so InputHandler isn't relevant on it. So I
have made a hack. I created a XBL, a stack with the real iframe,
and a xul:box over it. And I mimic the nsIScrollBoxObject. The methods
in fact pilot the scroll of the contentWindow of the iframe.
<br />
I wanted to show the scrollbars for visual information, so I have
restyle them. There were 2 choices, minimize them for simple visual
information, or render them bigger to be manipulable. I have choosed
the latter.
</p>
<h4>Create an executable</h4>
<p>
Last point, the executable to launch the application.
</p>
<p>
The application is launched like this:
<br />
<code><em>pathToXULRunner/xulrunner pathToMozcards/application.ini</em></code>
</p>
<p>
Fennec 1.0 on Maemo install 2 packages, Fennec itself, and XULRunner.
But there's no link to the XULRunner executable in /usr/bin/.
</p>
<p>
Fennec 1.1ax on Maemo install 1 package, XULRunner reside in a folder
inside the fennec folder. There's no xulrunner executable. But we can
use xulrunner-bin instead.
</p>
<p>
Here the content of my executable 'mozcards', a bash script:
</p>
<pre>#!/bin/sh<br /><br />INI=/opt/joliclic/mozcards/application.ini<br /><br />XULRUNNER=$(find /opt/mozilla/xulrunner*/xulrunner -type f | head -1)<br /><br />if [ -x "$XULRUNNER" ]; then<br />    $XULRUNNER $INI<br />else<br />    XULRUNNERBIN=$(find /opt/mozilla/fennec*/xulrunner/xulrunner-bin -type f | head -1)<br />    if [ -x "$XULRUNNERBIN" ]; then<br />        $XULRUNNERBIN $INI<br />    else<br />        echo "unable to find XULRunner!"<br />    fi<br />fi</pre>
<p>
The script just try to find the xulrunner executable available,
and use the first found.
<br />
Any improvement or suggestion are welcome of course.
</p>
<h3>Try it</h3>
<p>
Wanna try ?
<br />
You can get a deb here, just open it with the file manager on the N900
to install it:
</p>
<p>
<a href="http://joliclic.free.fr/mozilla/mozcards/en/"><strong>Mozcards page</strong></a>
</p>
<p>
The sources are available too.
</p>
<p>
Feel free to report any remarks or bug. Have fun ;) !
</p>
</div>
<div class="tabpanel" lang="fr">
<p><em>version française</em></p>
<p>
Donc j'ai
<a href="http://joliclic.free.fr/blog/index.php?post/2009/12/15/Yummy-s-won">gagné un N900</a>,
et j'ai bien sûr installé
<a href="http://www.mozilla.com/en/mobile/">Firefox Mobile</a> dessus.
<br />
Et donc j'ai XULRunner. Et c'est vraiment cool ;) .
</p>
<p>
En exemple, je vous propose
<strong><a href="http://joliclic.free.fr/mozilla/mozcards/en/">Mozcards</a></strong>.
</p>
<p>
C'est une adaptation pour Maemo et un port XULRunner de l'extension
<a href="https://addons.mozilla.org/fr/firefox/addon/1562">Cards</a>,
pour Firefox, par Stephen Clavering. Une collection de bonnes
patiences (jeux de cartes).
</p>
<p>
Comme je ne trouvais pas d'informations claires sur la licence des
sources originales, j'ai demandé à Stephen et aux contributeurs
(Derek Seabury and Neil Rashbrook)
s'ils acceptaient de tri-licencer leur code en <strong>MPL/GPL/LGPL</strong>.
Et ils ont accepté :) . <strong>Merci du fond du coeur!</strong>
</p>
<p>
Je peux donc vous proposer cette version adapté à Maemo. Il y a un
nouveau thème, inspiré de Tango, que j'espère plus lisible sur un petit
écran. Et quelque améliorations pour les écrans tactiles, inspiré de Fennec.
<br />
Le démarrage de l'appli est un peu lente (surtout le 1er), ensuite c'est fluide.
</p>
<p>
<img src="http://joliclic.free.fr/mozilla/mozcards/screenshots/klondike.png" alt="klondike screenshot" />
<img src="http://joliclic.free.fr/mozilla/mozcards/screenshots/games-choice.png" alt="games choice screenshot" />
</p>
<h3>Quelques informations techniques</h3>
<p>
Voici quelques retours d'expérience pour jouer avec XULRunner sur Maemo.
</p>
<h4>XULRunner c'est facile</h4>
<p>
Tout d'abord, porter l'extension sur XULRunner fut trivial, et le code
de Cards est vraiement bon, c'était directement jouable.
</p>
<h4>Généralités</h4>
<p>
Pour créer mon extension Yummy, j'avais déjà regardé les
<a href="http://mxr.mozilla.org/mobile-browser/">sources de Fennec</a>,
c'est une très bonne source d'inspiration, et de bouts de code à "repiquer".
Les lignes directrices (guidelines) et informations pour Fennec et les
appareils à écrans tactiles (touchscreen), disponibles sur le
<a href="https://wiki.mozilla.org">wiki mozilla</a>,
sont également précieuses.
</p>
<h4>Thème</h4>
<p>
Pour l'interface utilisateur et le thème général, j'ai réutilisé des
portions des CSS de Fennec.
Il y a 2 fichiers principaux à regarder particulièrement, platform.css,
pour le thème général à Maemo, et browser.css pour le thème spécifique
à Fennec.
</p>
<h4>Popup</h4>
<p>
Les fenetre popup ne sont adapté aux petits appareils, à la place
j'ai utilisé un élément stack principal avec des boites qui sont
cachées/affichées à la demande, comme dans Fennec.
Comme les différents jeux de cartes étaient déjà dans un stack, c'était
facile de rajouter d'autres éléments.
</p>
<h4>Menulist</h4>
<p>
Les éléments XUL comme des <code>&lt;menulist&gt;</code> ne sont pas forcément
très pratiques sur les petits appareils, j'ai donc réutilisé du code de
Fennec ici aussi.
<br />
Les menulist sont associés par CSS à un nouveau bindind (xbl), qui
étend celui originel. Il implémente un chouette mécanisme, le contenu
des menulist est affiché à la volée dans des boites avec une allure
de richlistbox, adapté aux petits écrans. Vous avez juste à copier
le code des objets js SelectHelper and MenulistWrapper, et de créer
le panneau approprié <code>&lt;vbox id="select-container"&gt;</code>
dans votre XUL.
</p>
<h4>Scroll aux doigts</h4>
<p>
Le défilement cinétique (Kinetic scrolling), est <strong>très facile</strong>
à implémenter avec du code de Fennec, de nouveau.
<br />
Il y a un fichier js nommé InputHandler, qui implémente un objet
du meme nom. Il peut prendre en charge tous les éléments qui ont
l'interface nsISCrollBoxObject disponible (i.e. éléments scrollbox).
Fennec l'initialise avec la boite qui affiche la vue du navigateur
principal. Mais je l'initialise juste avec un des scrollbox de ma fenetre:
</p>
<pre>var gIH = new InputHandler(document.getElementById("myscrollbox"));            </pre>
<p>
Et c'est tout!
<br />
Tous les scrollbox du document peuvent étre dorénavant
défiler au doigt. En particulier, la boite qui affiche les contenu des menulist.
<br />
La seule modification que j'ai faite et de désactiver la prise en charge du zoom.
</p>
<h4>Cas special : iframe</h4>
<p>
J'affiche la page "À propos" dans un <code>&lt;xul:iframe&gt;</code>,
Je voulais le défilement au doigt dessus, mais un iframe n'implémente
pas nsIScrollBoxObject, et donc InputHandler n'a aucune action.
Donc j'ai bidouillé. J'ai créé un XBL, un stack contenant l'iframe
réel et un xul:box par dessus. Et j'y simule nsIScrollBoxObject.
Les méthodes pilote en fait le contentWindow de l'iframe.
<br />
Je voulais afficher les barres de défilement pour une formation visuelle,
donc je les ai restylées. Il ya avait 2 possibilités, les minifier
pour une simple info visuelle, ou les grossir pour les rendre manipulables.
J'ai choisi la seconde.
</p>
<h4>Créer un exécutable</h4>
<p>
Dernier point, l'exécutable pour lancer l'application.
</p>
<p>
L'application est lancée de cette manière :
<br />
<code><em>pathToXULRunner/xulrunner pathToMozcards/application.ini</em></code>
</p>
<p>
Fennec 1.0 sur Maemo installe 2 paquets, Fennec lui-meme, et XULRunner.
Mais il n'y a pas de lien vers l'exécutable de XULRunner dans /usr/bin/.
</p>
<p>
Fennec 1.1ax sur Maemo installe 1 paquet, et XULRunner réside
dans un dossier à l'intérieur du dossier de Fennec. Il n'ya pas l'executable
xulrunner. Mais on peut utiliser xulrunner-bin à la place.
</p>
<p>
Voilà le contenu de mon exécutable 'mozcards', un script bash :
</p>
<pre>#!/bin/sh<br /><br />INI=/opt/joliclic/mozcards/application.ini<br /><br />XULRUNNER=$(find /opt/mozilla/xulrunner*/xulrunner -type f | head -1)<br /><br />if [ -x "$XULRUNNER" ]; then<br />    $XULRUNNER $INI<br />else<br />    XULRUNNERBIN=$(find /opt/mozilla/fennec*/xulrunner/xulrunner-bin -type f | head -1)<br />    if [ -x "$XULRUNNERBIN" ]; then<br />        $XULRUNNERBIN $INI<br />    else<br />        echo "unable to find XULRunner!"<br />    fi<br />fi</pre>
<p>
Le script essaie juste de trouver l'exécutable xulrunner disponible,
et utilise le premier trouvé.
<br />
Toute amélioration ou suggestion est bienvenue bien sur.
</p>
<h3>Essayer le</h3>
<p>
Vous voulez l'essayer ?
<br />
Vous pouvez avoir un fichier deb là, vous avez juste à l'ouvrir dans
le gestionnaire de fichier dans le N900 pour l'installer.
</p>
<p>
<a href="http://joliclic.free.fr/mozilla/mozcards/"><strong>Mozcards page</strong></a>
</p>
<p>
Les sources sont dispanibles également.
</p>
<p>
N'hésitez pas à me rapporter vos remarques ou bug. Amuser vous ;) !
</p>
</div>
</div>]]></content:encoded>
</item>
     <item rdf:about="http://blog.renevier.net/index.php?post/2010/03/13/installation-de-google-weave-minimal">
    <title>installation de google weave minimal</title>
    <link>http://blog.renevier.net/index.php?post/2010/03/13/installation-de-google-weave-minimal</link>
    <dc:date>2010-03-13T22:19:00+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>dadadi blog - mozilla</dc:creator>
    <dc:subject></dc:subject>
	<description></description>
	<content:encoded><![CDATA[    <p>Je me suis intéressé récemment au <a href="https://mozillalabs.com/weave/" hreflang="en">projet weave</a> de mozilla. Il s'agit principalement d'une <a href="https://addons.mozilla.org/en-US/firefox/addon/10868">extension Firefox</a> qui permet la synchronisation de données (historique, marque-pages, etc) entre différents postes de travail.</p>
<p>Ce type d'outil <a href="http://en.wikipedia.org/wiki/Comparison_of_browser_synchronizers" hreflang="en">est très répandu</a>, mais le premier intérêt de weave, c'est que les données sont chiffrées avant envoi au serveur; il lui est donc impossible  de lire nos données, de les diffuser ou de les revendre. Le deuxième intérêt, c'est qu'en plus de proposer le service de synchronisation, Mozilla met à disposition, sous licence libre, le logiciel du serveur de synchronisation. Il devient ainsi facile de synchroniser des profils Firefox de manière totalement indépendante, c'est à dire sans dépendre d'un service que l'on ne maitrise pas.</p>
<p>Pour cela, j'ai d'abord commencé par créer mon sous-domaine <code>weave.renevier.net</code> et attendu que les dns soient mis à jour. Ensuite, j'ai téléchargé une copie du <a href="http://tobyelliott.wordpress.com/2009/09/11/weave-minimal-server/">minimal server</a>. À priori il existe une version plus complète et plus compliquée à installer, mais le minimal server est adapté à un usage domestique pour lequel les nouveaux utilisateurs sont ajoutés manuellement.</p>
<p>J'ai ensuite décompressé l'archive<br />
<code>tar zxf weave_minimal.tgz</code><br />
puis j'ai déplacé le répertoire extrait dans le répertoire de mon choix<br />
<code>mv weave_minimal /var/http/</code><br />
J'ai ensuite donné les droits en écriture à l'utilisateur qui fait tourner le serveur web, afin que la base de données sqlite puisse être crée puis mise à jour correctement.<br />
<code>chgrp -R /var/http/weave &amp;&amp; chmod g+w /var/http/weave</code><br />
Weave a besoin d'une installation de php qui supporte json, mbstring et sqlite, j'ai donc du installer, sur mon serveur en debian stable, le paquet <code>php5-sqlite</code><br />
J'ai ensuite configuré et redémarré le serveur web. J'utilise lighttpd, voici le contenu de mon fichier de configuration</p>
<pre>server.modules += ( "mod_alias", "mod_redirect", "mod_auth" )<br /><br />$HTTP["host"] =~ "^weave.renevier.net$" {<br /><br />    server.document-root = "/var/httpd/weave/"<br />    alias.url = ("/weave" =&gt; "/var/httpd/weave/index.php")<br /><br />    $SERVER["socket"] == ":80" {<br />        url.redirect = ( "^/(.*)" =&gt; "https://weave.renevier.net/$1" )<br />    }<br /><br />}</pre>
<p>
Pour que weave soit disponible en https, il faut créer un certificat.
Idéalement, il faudrait le faire certifier par une autorité de certification,
mais pour un usage personnel, un certificat auto-signé fait très bien
l'affaire. Comme j'en avais déjà un, je n'ai pas eu à en recréer, je ne vais
donc pas décrire cette étape, mais des bons tutoriels existent sur le web.
</p>
<p>
Ensuite, je me suis rendu avec mon navigateur à l'adresse
<code>https://weave.renevier.net/weave/1.0/blah/info/collection</code> et mon navigateur m'a
demandé login et mot de passe. On peut rentrer n'importe quoi, cette étape ne
sert qu'à initialiser la base sqlite. Ensuite, le navigateur redemande en
boucle login et mot de passe, c'est normal, il suffit juste de répondre une
seule fois.
</p>
<p>
On peut maintenant créer les utilisateurs du service grâce au script
create_user disponible dans le dossier <code>weave<code>: <code>php
create_user</code>.
</code></code></p>
<p>
Il ne reste plus maintenant qu'à installer l'extension sur les postes de travail que l'on veut synchroniser. Avant
d'installer l'extension, il m'a été nécessaire, vu que j'utilise un certificat
autosigné, de visiter l'url https://weave.renevier.net/ afin d'<a href="http://www.konqi.fr/?pri=articles&amp;sec=ff3_sec">ajouter une exception de
sécurité</a> pour chacun des postes que je vais synchroniser. Lors de la configuration de l'extension, j'ai du choisir l'option <q lang="en">Use a custom
server</q>, et configurer l'url suivante:
<code>https://weave.renevier.net/weave/</code>
</p>
<p>
Voila, weave est maintenant installé&nbsp;!
</p>]]></content:encoded>
</item>
     <item rdf:about="http://confiture-cake.blogspot.com/2010/03/la-recherche-du-xul-perdu.html">
    <title>À la recherche du XUL perdu</title>
    <link>http://confiture-cake.blogspot.com/2010/03/la-recherche-du-xul-perdu.html</link>
    <dc:date>2010-03-09T23:47:20+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>./confiture &amp;&amp; cake</dc:creator>
    <dc:subject></dc:subject>
	<description></description>
	<content:encoded><![CDATA[Comme expliqué dans un <a href="http://confiture-cake.blogspot.com/2010/02/cest-lhistoire-dun-make.html">épisode précédent</a>, après une dizaine d'années de fidélité aux autotools je suis récemment passé à <a href="http://www.cmake.org">CMake</a> et l'essayer c'est l'adopter. Du coup, je me suis demandé si <a href="http://www.okawix.com">Okawix</a> pourrait être construit avec ;  et qui dit construire Okawix, dit compiler des composants XPCOM et la... pas de bol, CMake ne fournit pas de module pour faire du XPCOM. Enfin... pas encore :)<br /><br />J'ai donc travaillé sur un module CMake permettant de détecter XUL ; en fait, sur plusieurs modules : un pour XUL lui même, un pour NSPR et un dernier module "utilitaire" qui fait une bonne partie du sale boulot. Ces modules sont maintenant à un stade ou ils permettent de compiler les composants d'Okawix sous Linux, Mac et Windows.<br /><br />Sous Linux, la détection est faite grâce à pkg-config ; sous Mac et Windows aucune détection n'est tentée pour l'instant et l'utilisateur doit spécifier un chemin vers un SDK.<br /><br />En plus de détecter les chemins des fichiers d'en-tête, des bibliothèques et des paramètres de compilation, le module XUL recherche l'emplacement des fichiers IDL, de l'exécutable xpidl et fournit même des macros pour faciliter la génération des fichiers .h et .xpt à partir des IDL.<br /><br />Enfin, lorsque plusieurs SDK sont disponibles (ie les SDK "stable" et "unstable" proposés par pkg-config), le module permet de choisir un SDK suivant la disponibilité de certains composants. Par exemple, Okawix utilise nsIRunnable qui n'est pas dans le SDK "stable" ; il est alors possible de trouver le "bon" SDK en lui indiquant que l'on veut ce composant.<br /><br />Le code est disponible sur un <a href="http://code.google.com/p/soupcon/wiki/FindXUL">projet google</a> et inclut un exemple de composant avec le CMakeLists.txt permettant de le compiler. Maintenant, je suis à la recherche de gens intéressés pour tester (voir utiliser) le truc et je suis preneur de tout retour : commentaire, suggestion, rapport de bug, etc.<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8179591547982413721-1589223314466252775?l=confiture-cake.blogspot.com' alt='' /></div>]]></content:encoded>
</item>
     <item rdf:about="http://xulfr.org/news/2010/03/09/290-les-ameliorations-a-venir-au-niveau-performances">
    <title>Les améliorations à venir au niveau performances</title>
    <link>http://xulfr.org/news/2010/03/09/290-les-ameliorations-a-venir-au-niveau-performances</link>
    <dc:date>2010-03-09T11:05:04+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>News Xulfr</dc:creator>
    <dc:subject></dc:subject>
	<description>Deux gros chantiers dans Gecko sont en cours : l'accélération matérielle graphique, et une nouvelle version majeur du moteur javascript.</description>
	<content:encoded><![CDATA[<p>Deux gros chantiers dans Gecko sont en cours&nbsp;: l'accélération matérielle graphique, et une nouvelle version majeur du moteur javascript.</p> <p>Tout d'abord, l'accélération matérielle. La version windows de Gecko utilise maintenant, expérimentalement (dans les nightlies), Direct2D pour certaines opérations graphique. En fait ce support a été ajouté par Mozilla dans la bibliothèque graphique Cairo, utilisée par d'autres projets en plus de Gecko. Le support pour OpenGL 2.1 est prévu pour les autres plate-formes. Il y a déjà un support pour OpenGL, mais uniquement au niveau de l'API Canvas3D (WebGL), qui permet de faire de la 3D via l'élément Canvas (voir <a href="http://xulfr.org/news/2009/06/28/283-de-la-3d-dans-gecko">notre précédente news à ce sujet</a>).</p>


<p>Ce support de l'accélération graphique servira à tout ce qui est "dessin 2D". Mais n'est pas suffisant. Le moteur de rendu dans Gecko est en train d'être ré-architecturé, en utilisant un système de layers. Chaque type de layer pourra avoir son propre type d'accélération graphique. C'est ainsi que les layers de type "video" pourront être accélérées en utilisant les spécificités des cartes graphiques pour les vidéos. Ainsi chaque partie d'une page web sera affichée d'une manière optimum. Pour en savoir plus, je vous recommande la lecture de <a href="http://libre-ouvert.toile-libre.org/?article13/firefox-et-l-acceleration-materielle-sous-gnu-linux">cet article paru sur libre-ouvert, expliquant plus en détails ce système de layer</a>.</p>


<p>Autre chantier, le moteur javascript. Jusqu'à la version 3.0 de Firefox, nous avions simplement le moteur SpiderMonkey, qui interprète à la volée le javascript, le transforme en bytecode et exécute ce bytecode. Dans la version 3.5, une évolution est apparu&nbsp;: le tracing. Le moteur JS (appelé  TraceMonkey) repère les parties de codes répétitives, tout en tentant de détecter les types des valeurs utilisées. À partir de cela, il génère du code machine optimisé, ce qui évite de réinterpréter le javascript à chaque passe d'une boucle. Ce traitement est effectué précisément par Nanojit, un composant issue du projet Tamarin. Cependant, tout le code javascript ne peut être optimisé de la sorte, ce qui ne permet pas d'avoir des grandes améliorations de performances dans certain cas.</p>


<p>La prochaine évolution, pour le code qui ne peut être exécuté par le biais du tracing, va être de transformer celui-ci en code machine. C'est le projet JägerMonkey. Ils vont réutiliser pour cela Nitro Assembler, un "compilateur" issue de la version de webkit issue d'Apple. Celui-ci ne fait pas les mêmes types d'optimisations que NanoJit, mais le résultat sera le même&nbsp;: exécution direct de code machine. Il se pourrait bien que Mozilla rattrape, voir dépasse ses concurrents, en particulier le moteur V8.</p>


<p>Pour plus de détails, <a href="http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/">voir cet article en anglais du site hack.mozilla.org</a>.</p>]]></content:encoded>
</item>
     <item rdf:about="http://xulfr.org/news/2010/02/26/289-plus-de-xul-pour-les-applis-web">
    <title>Plus de XUL pour les applis web</title>
    <link>http://xulfr.org/news/2010/02/26/289-plus-de-xul-pour-les-applis-web</link>
    <dc:date>2010-02-26T11:07:20+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>News Xulfr</dc:creator>
    <dc:subject></dc:subject>
	<description>Mozilla a décidé de supprimer le support de XUL dans les pages web. Cela signifie que l'on ne pourra plus utiliser des éléments XUL dans application &quot;distantes&quot;, hors chrome.</description>
	<content:encoded><![CDATA[<p>Mozilla a décidé de supprimer le support de XUL dans les pages web. Cela signifie que l'on ne pourra plus utiliser des éléments XUL dans application "distantes", hors chrome.</p> <p>Cette décision a été prise à cause des trop nombreux problèmes de sécurités que XUL offre sur le web. Les développeurs de Mozilla veulent s'enlever une charge de travail et voudraient profiter de ce temps pour travailler plus sur HTML5 et XBL2. On ne sait pas encore si cette suppression interviendra dans la prochaine version de Firefox ou d'autres version futures. Vous pouvez suivre l'évolution via <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=546857">le bug 546857</a>.</p>


<p>Bien entendu, cette suppression n'intervient <strong>que</strong> pour les pages web. Il n'est absolument pas question de supprimer XUL pour les extensions ou les applications XULRunner.</p>


<p>Cela va tout de même poser des problèmes pour tout ce qui est démonstration en ligne de XUL (en particulier celles qui sont hébergées sur xulfr.org). Et puis bien sûr, ceux qui auraient développé des applications web en XUL, celles-ci ne fonctionneront plus. Il y a toutefois des alternatives.</p>

<ol>
<li>Il est tout à fait possible de réaliser une extension, comportant le minimum de fichiers, et ouvrant des pages XUL délivrées par un serveur web profitant des privilèges chrome. Par exemple, le nouveau CMS <a href="http://www.rbschange.fr">RBSChange</a> utilise une telle technique. Certes, il faut installer une extension, mais l'essentiel de l'application se trouvant sur un serveur web, il n'y a pas besoin de mettre à jour l'extension à chaque évolution.</li>
<li>Vous pouvez continuer à profiter du modèle de boîte flexible de XUL, utiliser les propriétés <code>-moz-box-*</code> sur des éléments HTML (ainsi que <code>display:-moz-box;</code>). Ces propriétés CSS sont d'ailleurs spécifiés <a href="http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/">dans un brouillon du W3C</a>, donc amenées dans le futur à devenir un standard, tout comme <code>-moz-appearance</code>. À noter que Webkit (donc Safari et Chrome) a une implémentation similaire de ces propriétés.</li>
</ol>

<p>D'ailleurs, les éléments XUL seront conservés dans le DOM par Firefox lors du chargement du document. Rien ne vous empêche de vous faire donc une feuille de style xul.css pour rétablir les propriétés CSS pour XUL. Vous perdrez cependant les comportements et fonctionnalités par défaut des éléments XUL. Et il n'y a pas vraiment d'alternative. HTML5 prévoit bien quelques balises pour les menus et commandes (pas encore implémenté dans Firefox), mais rien pour un équivalent des templates, des trees etc...</p>]]></content:encoded>
</item>
     <item rdf:about="http://xulfr.org/news/2010/02/26/288-xulrunner-192">
    <title>XulRunner 1.9.2</title>
    <link>http://xulfr.org/news/2010/02/26/288-xulrunner-192</link>
    <dc:date>2010-02-26T10:44:02+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>News Xulfr</dc:creator>
    <dc:subject></dc:subject>
	<description>Une nouvelle version de XulRunner est disponible. Elle contient Gecko 1.9.2, le moteur de Firefox 3.6, et contient donc toutes les nouveautés du navigateur, en particulier tout ce qui est lié à XUL et les extensions.


Vous pouvez télécharger XulRunner sur cette page et lire les notes de cette...</description>
	<content:encoded><![CDATA[ <p>Une nouvelle version de XulRunner est disponible. Elle contient Gecko 1.9.2, le moteur de Firefox 3.6, et contient donc <a href="https://developer.mozilla.org/en/Firefox_3.6_for_developers">toutes les nouveautés du navigateur</a>, en particulier <a href="https://developer.mozilla.org/en/Firefox_3.6_for_developers#For_XUL.c2.a0and_add-on_developers">tout ce qui est lié à XUL et les extensions</a>.</p>


<p>Vous pouvez <a href="http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.9.2/">télécharger XulRunner sur cette page</a> et lire <a href="https://developer.mozilla.org/en/XULRunner_1.9.2_Release_Notes">les notes de cette sortie</a>.</p>]]></content:encoded>
</item>
     <item rdf:about="http://www.befox.be/firefox-desactiver-le-zoom-intempestif-de-la-magic-mouse">
    <title>Firefox : désactiver le zoom intempestif de la Magic Mouse</title>
    <link>http://www.befox.be/firefox-desactiver-le-zoom-intempestif-de-la-magic-mouse</link>
    <dc:date>2010-02-04T15:26:52+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>BeFox</dc:creator>
    <dc:subject></dc:subject>
	<description>Si comme moi vous utilisez un Mac avec une Magic Mouse, il y a de fortes chances pour que vous soyez confronté au même souci que moi. La Magic Mouse induit un défilement de page avec intertie, dans le sens où lorsqu&amp;#8217;on la lache, le défilement s&amp;#8217;adoucit peu à peu.
Ça pose un souci si on [...] &lt;p&gt;Contenu initialement publié sur &lt;strong&gt;&lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;BeFox&lt;/a&gt; - &lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;www.befox.be&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
	<content:encoded><![CDATA[Si comme moi vous utilisez un Mac avec une Magic Mouse, il y a de fortes chances pour que vous soyez confronté au même souci que moi. La Magic Mouse induit un défilement de page avec intertie, dans le sens où lorsqu&#8217;on la lache, le défilement s&#8217;adoucit peu à peu.
Ça pose un souci si on [...] <p>Contenu initialement publié sur <strong><a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">BeFox</a> - <a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">www.befox.be</a></strong></p>]]></content:encoded>
</item>
     <item rdf:about="http://www.befox.be/une-solution-au-bug-de-double-fenetre-sur-mac-os-x">
    <title>Une solution au bug de double fenêtre sur Mac OS X</title>
    <link>http://www.befox.be/une-solution-au-bug-de-double-fenetre-sur-mac-os-x</link>
    <dc:date>2010-02-03T10:35:07+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>BeFox</dc:creator>
    <dc:subject></dc:subject>
	<description>Mise à jour (14h15) : après quelques temps ça ne fonctionne de nouveau plus. Toujours aucune idée du pourquoi mais je pense que c&amp;#8217;est en rapport avec le bug de Firefox 3.5, qui faisait que celui-ci n&amp;#8217;avait pas le focus au lancement et terminait en arrière-plan.
En fait pour être tout à fait honnête je n&amp;#8217;ai [...] &lt;p&gt;Contenu initialement publié sur &lt;strong&gt;&lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;BeFox&lt;/a&gt; - &lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;www.befox.be&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
	<content:encoded><![CDATA[Mise à jour (14h15) : après quelques temps ça ne fonctionne de nouveau plus. Toujours aucune idée du pourquoi mais je pense que c&#8217;est en rapport avec le bug de Firefox 3.5, qui faisait que celui-ci n&#8217;avait pas le focus au lancement et terminait en arrière-plan.
En fait pour être tout à fait honnête je n&#8217;ai [...] <p>Contenu initialement publié sur <strong><a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">BeFox</a> - <a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">www.befox.be</a></strong></p>]]></content:encoded>
</item>
     <item rdf:about="http://xulfr.org/news/2010/02/02/287-demo-sur-les-avancees-technologiques-de-firefox-36">
    <title>Demo sur les avancées technologiques de Firefox 3.6</title>
    <link>http://xulfr.org/news/2010/02/02/287-demo-sur-les-avancees-technologiques-de-firefox-36</link>
    <dc:date>2010-02-02T17:30:36+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>News Xulfr</dc:creator>
    <dc:subject></dc:subject>
	<description>Firefox 3.6 est sorti en version finale il y a une dizaine de jour, ainsi que sa version mobile pour Maemo.


Le coeur de Firefox 3.6, gecko 1.9.2, apporte de nombreuses nouveautés au niveau des technologies web, et permettent, avec les autres avancées HTML5 présentes dans les versions précédentes de Firefox, de réaliser maintenant des applications web vraiment puissante.


Pour le montrer, Paul Rouget vient de sortir une nouvelle démo. Cependant, c'est plus qu'une démo, c'est une véritable petite application concrète.</description>
	<content:encoded><![CDATA[<p><a href="http://blog.mozilla.com/blog/2010/01/21/firefox-3-6-release/">Firefox 3.6 est sorti en version finale</a> il y a une dizaine de jour, <a href="http://blog.mozilla.com/blog/2010/01/29/firefox-for-maemo-now-available/">ainsi que sa version mobile</a> pour Maemo.</p>


<p>Le coeur de Firefox 3.6, gecko 1.9.2, apporte de nombreuses nouveautés au niveau des technologies web, et permettent, avec les autres avancées HTML5 présentes dans les versions précédentes de Firefox, de réaliser maintenant des applications web vraiment puissante.</p>


<p>Pour le montrer, Paul Rouget vient de sortir <a href="http://hacks.mozilla.org/2010/02/an-html5-offline-image-editor-and-uploader-application/">une nouvelle démo</a>. Cependant, c'est plus qu'une démo, c'est une véritable petite application concrète.</p> <p>Il s'agit d'un outil, qui permet d'envoyer des images sur twitpic et comportant un éditeur d'image. Vous sélectionnez les images que vous voulez envoyer, vous les retouchez éventuellement, et vous les envoyez. <a href="http://videos.mozilla.org/serv/marketing/html5_img_uploader/html5_img_uploader.ogv">Visualisez la video</a>, c'est carrément génial, d'un point de vue technique. C'est du jamais vu dans une application web HTML (si on met de coté les applet java ou flash, souvent lourdes et peu ergonomiques).</p>


<p>Coté technique donc, voici ce qui est utilisé&nbsp;:</p>

<ul>
<li><a href="http://hacks.mozilla.org/2009/06/pushing-pixels-with-canvas/">HTML5 Canvas</a>: on ne présente plus l'élement <code>&lt;canvas&gt;</code>, qui permet d'avoir une zone dans la page web où l'on peut "dessiner" programmativement. Les images que l'on a glisser dans l'application sont "injectées" dans un canvas. Cela permet alors de les modifier, de proposer à l'utilisateur une mini application de retouche, avec des fonctions de découpage, de décoration, de mirroir etc. Avec Canvas, on peut aller très très loin. Voir par exemple cet outil, <a href="http://mugtug.com/sketchpad/">sketchpad</a>, un paint-like bien plus beau que l'original :-)</li>
<li><a href="http://hacks.mozilla.org/2009/12/file-drag-and-drop-in-firefox-3-6/">HTML5 Drag and Drop</a>: Paul utilise les <a href="https://developer.mozilla.org/En/DragDrop/DataTransfer">évènements drag-and-drop</a>, pour permettre, d'une part, de glisser des fichiers de votre bureau ou explorateur de fichiers vers l'application, mais aussi de glisser les images à l'intérieur de l'application entre les différentes fonctionnalités (glisser une image précédemment sélectionnée vers la poubelle par exemple).</li>
<li><a href="https://developer.mozilla.org/en/DOM/FileReader">File API</a>&nbsp;: permet dans l'application d'avoir des informations sur les fichiers, à partir de ce qui est indiqué dans un <code>&lt;input type="file"&gt;</code> ou un évènement drag and drop qui concerne un fichier. Ça permet à l'application de réagir ensuite en fonction du type du fichier, de sa taille etc..</li>
<li><a href="http://hacks.mozilla.org/2009/06/localstorage/">HTML5 localStorage</a>: localStorage est un objet javascript qui permet de stocker ce que l'on veut, durablement, coté client. Il est utilisé ici pour stocker les images sélectionnées, en attendant de les envoyer vers twitpic. L'image, affichée en fait via un canvas (ce qui permet de la modifier), est en fait transformée en data URL. Cette URL est alors stockée dans localeStorage.</li>
<li><a href="http://hacks.mozilla.org/2010/01/offline-web-applications/">HTML5 Application Cache</a>&nbsp;: toute la machinerie permettant de continuer à faire fonctionner l'application même en étant déconnecté, est utilisée. En particulier, un manifest "offline" est utilisé pour indiquer les fichiers de ressources (js, css) à stocker durablement dans le cache du navigateur, de manière à pouvoir recharger l'application, même en étant déconnecté. En fait, c'est comme si l'application était stockée en local. De plus, les évènements offline et online sont écoutés, pour pouvoir autoriser ou non la publication des images.</li>
<li><a href="http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/">Cross Site xmlHTTPRequest</a>, un mécanisme http permettant d'autoriser ou non à une application web (ici la demo)  de communiquer avec une autre application web (ici twitpic).</li>
</ul>

<p>Toutes ces technologies, dorénavant présente dans Firefox 3.6 et déjà plus ou moins dans d'autres navigateurs (à vérifir, si ça ne l'est pas encore, ça ne devrait pas tarder), offrent de bien belles perspectives en matières d'applications web puissantes et agréables à utiliser, que ce soit pour les CMS ou pour les sites e-commerce.</p>


<p>Bien sûr, tout ceci est aussi utilisable dans une extension, facilitant alors leur développement.</p>


<p>Pour en savoir plus sur les nouvelles possibilités de Firefox 3.6/Gecko 1.9.2, n'hésitez pas à consulter la page <a href="https://developer.mozilla.org/en/Firefox_3.6_for_developers">Firefox 3.6 for developers</a>.</p>]]></content:encoded>
</item>
     <item rdf:about="http://www.befox.be/thunderbird-3-0-1-disponible-au-telechargement">
    <title>Thunderbird 3.0.1 disponible au téléchargement</title>
    <link>http://www.befox.be/thunderbird-3-0-1-disponible-au-telechargement</link>
    <dc:date>2010-01-22T11:04:21+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>BeFox</dc:creator>
    <dc:subject></dc:subject>
	<description>On parle beaucoup de Firefox et pour cause, une nouvelle grosse mise à jour vient de sortir. Mais c&amp;#8217;était oublier que Thunderbird a également vu son numéro de version être augmenté cette semaine.
C&amp;#8217;était la veille de la sortie de Firefox 3.6 et, pour être tout à fait complet, nous avons donc maintenant Thunderbird 3.0.1. Il [...] &lt;p&gt;Contenu initialement publié sur &lt;strong&gt;&lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;BeFox&lt;/a&gt; - &lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;www.befox.be&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
	<content:encoded><![CDATA[On parle beaucoup de Firefox et pour cause, une nouvelle grosse mise à jour vient de sortir. Mais c&#8217;était oublier que Thunderbird a également vu son numéro de version être augmenté cette semaine.
C&#8217;était la veille de la sortie de Firefox 3.6 et, pour être tout à fait complet, nous avons donc maintenant Thunderbird 3.0.1. Il [...] <p>Contenu initialement publié sur <strong><a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">BeFox</a> - <a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">www.befox.be</a></strong></p>]]></content:encoded>
</item>
     <item rdf:about="http://www.befox.be/firefox-3-6-disponible-au-telechargement">
    <title>Firefox 3.6 disponible au téléchargement</title>
    <link>http://www.befox.be/firefox-3-6-disponible-au-telechargement</link>
    <dc:date>2010-01-21T10:33:17+00:00</dc:date>
    <dc:language>fr</dc:language>
    <dc:creator>BeFox</dc:creator>
    <dc:subject></dc:subject>
	<description>Comme annoncé cette semaine un peu partout autour du globe, Firefox 3.6 est aujourd&amp;#8217;hui disponible. Cette version, appelée Namoroka, compte entre autres nouveautés le support intégré des Personas et des polices WOFF. Du côté du moteur de rendu, Gecko, c&amp;#8217;est la version 1.9.2 qui est intégrée au navigateur.
Ce ne sont pas les seules nouveautés de [...] &lt;p&gt;Contenu initialement publié sur &lt;strong&gt;&lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;BeFox&lt;/a&gt; - &lt;a href=&quot;http://www.befox.be&quot; title=&quot;blog &amp;amp; news : firefox, mozilla &amp;amp; co.&quot;&gt;www.befox.be&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
	<content:encoded><![CDATA[Comme annoncé cette semaine un peu partout autour du globe, Firefox 3.6 est aujourd&#8217;hui disponible. Cette version, appelée Namoroka, compte entre autres nouveautés le support intégré des Personas et des polices WOFF. Du côté du moteur de rendu, Gecko, c&#8217;est la version 1.9.2 qui est intégrée au navigateur.
Ce ne sont pas les seules nouveautés de [...] <p>Contenu initialement publié sur <strong><a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">BeFox</a> - <a href="http://www.befox.be" title="blog &amp; news : firefox, mozilla &amp; co.">www.befox.be</a></strong></p>]]></content:encoded>
</item>
     </rdf:RDF>
