Clochix

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

mardi 14 avril 2009

Une favorite, un robot et un singe sont dans un bateau...

Ubiquity est devenu mon terrain d'expérimentation favori. Avec son éditeur intégré, ses bibliothèques de fonctions utilitaires et son intégration de jQuery, il rend de nombreuses manipulations extrêmement simples et rapides. Créer une commande, bidouiller un site, mixer des données se fait en quelques minutes, c'est du bonheur. Mais Ubiquity m'a aussi fait re-découvrir Greasemonkey, et ça a un peu douché mon enthousiasme.

Je me suis en effet souvenu d'avoir eu le même enthousiasme il y a des années quand Greasemonkey avait fait ses premiers pas. Et encore Greasemonkey n'était qu'un moyen de donner un peu plus de puissance aux bookmarklets avec lesquelles je jouais déjà depuis quelque temps. Bien des années ont passées, et mes petits hacks n'ont pas beaucoup changés. Finalement, Ubiquity n'est qu'une interface très sexy (puisqu'en ligne de commande) à des scripts GM, voire à des bookmarklets[1]. Et pour le coup, je regrette le manque de compatibilité entre ces trois techniques complémentaires pour hacker le web, pourtant si proches. Certes, Ubiquity permet (avec CmdUtils.makeBookmarkletCommand) de "convertir" une bookmarklet en commande. Mais chacune des trois techniques garde ses spécificités, ses syntaxes particulières, qui rendent malaisé de passer de l'une à l'autre. Et je me prend à rêver d'une convergence. Un premier pas sympathique serait par exemple de pouvoir utiliser partout le jQuery embarqué dans Ubiquity.

En ce moment, je bidouille de petits scripts pour me passer du lecteur Flash. Gnash et swfdec ont encore parfois du mal (par exemple avec slideshare) donc j'utilise des hacks JavaScript pour récupérer les contenus et les lire avec d'autres programmes. Mais à chaque fois j'hésite. Coder avec Ubiquity, pour bénéficier de jQuery ? Mais je ne veux pas à proprement parler de commandes, ce sont plutôt des scripts liés à certains sites, donc plutôt dans la logique GM. Mais je ne me souviens plus trop de la syntaxe de GM. Est-ce qu'une bookmarklet ne suffirait pas ? Vraiment, le logiciel libre, c'est chiant, on a le choix, il y a toujours plusieurs méthodes pour faire la même chose, et comme je suis incapable de choisir je finis toujours par ne rien faire !

Blaguapart, essayer de faire converger les bookmarklets, GM et Ubiquity, vous en pensez quoi ?

Notes

[1] oui, je force un peu le trait, inutile de me démontrer les réelles avancées qu'elle apporte

vendredi 27 mars 2009

Taskfox, intégrer le meilleur d'Ubiquity dans Firefox

Taskfox est un nouveau projet dont le but est de faciliter l'exécution de certaines tâches dans Firefox. Il a été annoncé il y a quelques heures par Blair Mc Bride, un des développeurs d'Ubiquity. C'est le début de l'intégration dans le prochain Firefox (3.6 ou 4 ?) du meilleur de quelques-uns des projets des Laboratoires Mozilla, ici Ubiquity

Lire la suite...

samedi 14 mars 2009

Et en plus il parle !

Toujours fâché avec la RATP, ses caméras, ses puces Navigo, ses publicités omniprésentes qui vous regardent et ses contrôleurs aimables, je continue contre bourrasques et voitures à me déplacer essentiellement en vélo. Le principal inconvénient du vélo sur les transports en commun est qu'il est difficile de lire en pédalant (je ne suis pas multi-tâche), et que je perd donc une heure et demi par jour. Et je n'ai encore trouvé ni émission de radio intéressante aux heures ad hoc, ni podcast à me mettre sur les oreilles pour masquer les klaxons des automobilistes. D'où l'idée, qui m'est venue en pédalant, d'écouter des articles à défaut de pouvoir les lire...

Lire la suite...

mercredi 25 février 2009

Le panda pour les amis du python

Firefox est codé en C++ et en JavaScript, mais, c'est moins connu, il est également possible d'utiliser Python pour développer des modules. Petit tour d'horizon des différents solutions.

Lire la suite...

lundi 23 février 2009

Actus Mozilla

Participez à l'aventure d'Ubiquity

Chez Mozilla, la liberté des internautes ne s'arrête pas à celle du code source. Elle consiste aussi à permettre à chacun de donner son avis sur les évolutions du logiciel. Les projets des laboratoires en sont un bel exemple. L'enjeu est d'importance: concevoir de nouvelles façons d'utiliser le web. Cette conception se fait via un processus relativement collaboratif. Les développeurs ne cessent de susciter l'avis de la communauté sur leurs idées. Si vous pensez qu'Ubiquity a le potentiel de changer en profondeur notre usage de la toile, n'hésitez pas à participer, à débattre, à donner votre avis pour en faire le meilleur outil possible.

Exemple des dernières questions posées par Aza Raskin:

  • communiquer avec son navigateur en langage naturel est un excellent moyen de faciliter la prise en main de l'outil. Encore faut-il que ce langage soit le plus naturel possible, et non une nouvelle langue à apprendre, comme les languages de programmation. Une des conditions est évidemment la disponibilité des commandes dans la langue naturelle de chacun et chacune. Vaste chantier auquel il est grand temps de s'atteler ! Si vous avez des idées sur la façon d'adapter Ubiquity à votre langue, c'est le moment d'aller les partager. Je pense que ça peut aussi être l'occasion de réfléchir à l'accessiblitité de ces mécanismes pour les personnes qui ont des soucis avec l'écrit (mauvaise maîtrise de la langue, dyslexie, etc);
  • Aza s'interroge sur le design et la meilleure façon d'intégrer Ubiquity à Firefox pour rendre sa découverte et son apprentissage les plus simples possible. Il propose par exemple d'intégrer Uniquity à l'awesome bar, c'est à dire d'utiliser la barre d'adresse pour taper les commandes. Il a réalisé cinq maquettes, allez y jeter un œil et donnez votre avis;
  • pour faciliter l'écriture de commande, il propose également de se rapprocher au maximum des technologies plus connues, à savoir l'utilisation de JavaScript dans des pages web. Les commandes pourraient être présentés comme des scripts dans une page web, et utiliser d'autres page HTML, par exemple pour gérer la pré-visualisation. Vous en pensez quoi ?
  • connaissez-vous Pixastic ? C'est une bibliothèque JavaScript libre de manipulation d'images. Elle utilise Canvas et propose déjà de nombreux filtres. Elle va probablement être intégrée dans une prochaine version pour permettre d'éditer directement des images dans Ubiquity sans passer par un service externe. Imaginez: vous trouvez une photo amusante sur le Net, vous pouvez en quelques commandes et sans sortir du navigateur la recadrer et l'envoyer par mail à vos contacts ! Encore une fois, si vous avez des idées sur la façon d'intégrer des fonctions de manipulation d'image à Ubiquity, c'est le moment ! (si vous voulez voir de quoi Pixastic est capable, une démo sous forme d'éditeur d'image en ligne est disponible);

Bonus

Une petite commande Ubiquity pour ajouter aux liens de votre sélection les marqueurs de la syntaxe wiki de Dotclear. Ca ne fonctionne qu'à moitié et génère une exception si jQuery n'arrive pas à parser le HTML de la sélection (à cause de balises en trop ou manquantes), mais ça peut être pratique quand vous copiez-collez des trucs vers votre blog.

CmdUtils.CreateCommand({
 name: "todotclearlink",
 description: "add dotclear wiki markers to all links in the selection",
 execute: function() {
   res = '';
   CmdUtils.setSelection(jQuery("<div>" + CmdUtils.getHtmlSelection() + "</div>").find("a").each(function(){
     var sel = jQuery(this);
     sel.text("[" + sel.text() + "|" + sel.attr('href') + "]");
   }).parent().html());
 }
});

Calendrier dans Thunderbird 3

Thunderbird 3, qui arrivera dans les prochains mois, ne devrait finalement pas posséder par défaut de fonctions de calendrier. Celles-ci seront comme actuellement disponibles sous la forme d'une extension, Lightning.

David Ascher en explique les raisons sur son blog. Des raisons techniques d'abord:

  • l'architecture de Thunderbird a connu de profondes modifications ces derniers mois, fusionner l'agenda avec le cœur du logiciel aurait donc été difficile;
  • il y a encore pas mal de boulot dans Lightning pour qu'il prenne en compte ces changements architecturaux, afin de s'interfacer au mieux avec Thunderbird;
  • la fusion des deux projets est une tâche complexe, les ressources manquent pour s'y ateler pour l'instant;
  • en fusionnant les deux projets, on associe aussi leur évolution. De nouvelles fonctionnalités d'agenda devraient par exemple attendre une nouvelle sortie majeure de Thunderbird pour être disponibles.

Mais aussi une raison de fond : les développeurs de Thunderbird veulent laisser à l'utilisateur choisir le système de calendrier qu'ils préfèrent et ne pas lui en imposer un. Des alternatives à Lightning sous forme d'autres extensions pourront ainsi plus facilement apparaître.

Par ailleurs, Simon Paquet a signalé sur le blog du projet de calendrier, que celui-ci rencontre actuellement des difficultés: pour diverses raisons, le nombre de contributeurs à temps plein a récemment fortement diminué. Première conséquence, le projet Sunbird va être mis en sommeil (actuellement, le calendier est disponible sous deux formes: comme extension à Thunderbird, sous le nom de Lightning, et comme application autonome, Sunbird). Les développeurs lancent donc un appel au peuple pour les aider. Comme le fait remarquer Tristan, la faiblesse des fonctions d'agenda dans Thunderbird l'empêche depuis des années d'être un concurrent sérieux à Outlook dans les entreprises, et c'est vraiment très dommage. Si de plus en plus de petites et moyennes boîtes migrent hélas vers Google Calendar, les clients lourds de messagerie ont encore de beaux jours devant eux, et il est vraiment dommage que le Libre ne propose pas d'alternative avec au moins autant de fonctionnalité que les logiciels privateurs.

lundi 9 février 2009

Ecrire sa première commande Ubiquity

Ubiquity est ce projet des laboratoire Mozilla pour essayer de renouveler l'interface en proposant aux internautes d'effectuer des actions en tapant des commandes dans un langage relativement naturel.

Créer de nouvelles commandes est très simple, à la portée de n'importe qui ayant quelques notions de JavaScript. Comme Ubiquity n'en est qu'à ses balbutiements, et va sans doute évoluer rapidement, plutôt que de tenter une traduction de la documentation, qui risque d'être bientôt obsolete, je vais essayer de présenter rapidement les bases pour vous permettre de commencer à créer des commandes.

Lire la suite...