The XUL Factory

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

vendredi 5 mars 2010

Un sondage pour les barbus

Le Touilleur Express (alias Nicolas Martignole), dont je lis toujours le blog avec beaucoup d'intérêt, a lancé un sondage sur les communautés s'adressant aux geeks qui travaillent en SSII, chez les éditeurs de logiciels et autres employeurs de la même branche. Comme il cherche a avoir un maximum de réponse et compte-tenu de la nature de ce blog, je me permet de mette le lien ici.

C'est par là : https://spreadsheets.google.com/vie...

Ça prend juste 5 minutes pour y répondre, et en plus c'est anonyme.

lundi 22 février 2010

Les attibuts data-* de HTML5

On lit (et écrit également, c'est fatal) beaucoup de choses sur HTML5 depuis quelques années. Au programme des réjouissances on trouve pêle-mêle le tag canvas pour faire du graphisme programmatique, le stockage local pour, par exemple pour le mode offline des applications web, les désormais célèbres tags audio et video déjà utilisés par dailymotion et youtube, le drag and drop... J'en passe et des meilleurs.

Par contre une nouveauté à propose de laquelle je n'avais jamais rien lu et que j'ai découvert hier ce sont les embedded custom non-visible data attributes, c'est là dire des méta informations sous forme d'attributs que l'on peut ajouter à loisir sur n'importe quel élément d'une page HTML et qui peuvent être lus et interprétés par un script dans la page. C'est un peu équivalent à ce qu'il est possible de faire avec XHTML en ajoutant des attributs définis par ses propres namespaces.

Un exemple :

<ul id="pointsOfInterest">
  <li data-latitute="48°51" data-longitude="2°17">La tour Eiffel</li>
  <li data-latitute="48°38" data-longitude="1°30">La mont Saint-Michel</li>
</ul>

Ensuite avec un script on peut utiliser ces coordonnées. Par exemple on peut monter où se trouve le lieu sur une carte.

/* par exemple avec jQuery */
$("#pointsOfInterest > li").click(function() {
    var lat = $(this).dataset("latitude");
    var long = $(this).dataset("logitude");
    showOnMap(lat, long);
}

Un autre exemple : utilisation d'un attribut data-at pour afficher des sous-titres en fonction d'un time-code dans une présentation audio (lue avec le tag audio il va sans dire) : http://www.toolness.com/wp/?p=772.

Je trouve cette nouvelle façon de passer des données supplémentaires très intéressante ; elle est surtout plus simple à mettre en œuvre que les namespaces en XHTML. Toutefois, et c'est sans doute la raison pour laquelle on en parle peu, les navigateur ne l'implémente pas encore. Pour ceux qui sont tout de même pressés de jouer avec, il existe un plugin jQuery qui permet de simuler l'objet dataset : HTML5 Dataset jQuery Plugin.

vendredi 17 août 2007

Tabulation, focus et JTextComponent

Problème : dans un composant de texte Swing (JEditorPane, JTextPane, JTextArea) lors de l'appui sur la touche [TAB], comment faire pour que le focus passe au composant suivant au lieu d'insérer une tabulation ?

Solution :

JTextPane pane = new JTextPane();
Set<AWTKeyStroke> focus = pane.getFocusTraversalKeys(
    KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
Set<AWTKeyStroke> newFocus = new HashSet<AWTKeyStroke>(focus);
newFocus.add(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0));
pane.setFocusTraversalKeys(KeyboardFocusManager.
    FORWARD_TRAVERSAL_KEYS, newFocus);

Et pour le aller dans l'autre sens (backward focus) :

JTextPane pane = new JTextPane();
Set<AWTKeyStroke> focus = pane.getFocusTraversalKeys(
    KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS);
Set<AWTKeyStroke> newFocus = new HashSet<AWTKeyStroke>(focus);
newFocus.add(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
    KeyEvent.SHIFT_MASK));
pane.setFocusTraversalKeys(KeyboardFocusManager.
    BACKWARD_TRAVERSAL_KEYS, newFocus);

vendredi 12 janvier 2007

Javascript, objets et prototypes

Voici un petit billet qui présente rapidement le modèle objet de Javascript.

Objets

La majorité des langages objets utilisent la notion de classes. Pour reprendre une image fréquemment utilisée, la classe est le moule dans lequel on cuit instancie l'objet. Donc les classes et les objets vivent dans des mondes séparés.

En javascript c'est différent, il n'existe pas de classes, tout est objet. Voilà une façon de créer un objet en javascript[1] :

Notes

[1] Habituellement j'utilise l'interpréteur javascript Rhino de mozilla. Rhino est multi-plateforme et écrit en Java.

Lire la suite...

samedi 5 août 2006

Wikipedia Search

Wikipedia Search est une extension pour firefox (à partir de la version 1.5.0.2) que j'ai développé quand je me suis rendu compte que la plupart de mes recherches dans wikipedia concernaient des termes lus sur une autre page web. Wikipedia-Search permet donc de faire rapidement une recherche contextuelle dans l'encyclopédie libre wikipedia à partir de n'importe mot lu sur une page web. Il est possible de choisir la langue principale de recherche ou de faire une recherche dans plusieurs langues simultanément.

Quelques captures d'écrans

caps1.png

caps2.png

Pour le moment c'est en version 0.9-beta2 donc pas encore complètement stable même si elle pas mal a été testée avec les différentes versions de firefox sous Windows et Linux.