miércoles, 27 de agosto de 2008

Ubiquity, quebrando los paradigmas de las extensiones de Firefox

Firefox lanza una nueva extensión: Ubiquity. Esta es una interfaz de linea de comandos para Firefox que ofrece una cantidad considerable de ventajas.

Este es el gran paradigma que Firefox rompe. Hasta ahora las extensiones ofrecían servicios o te conectaban a un servicio web a través de una interfaz gráfica. Ubiquity ofrece un linea de comandos, una nueva interfaz para usar o conectarse a los mismos y a nuevos servicios. La ventaja de tenerlos de este modo, es que estan todos juntos en un solo sitio y no en una increible cantidad de iconos o barras de herramientas. En otras palabras, su ventaja es la usabilidad.

Sin embargo su mayor ventaja y lo que lo hace una gran extensión para Firefox, es que los comandos son de codigo abierto. Esto quiere decir que cualquier persona puede programar cualquier comando. Ahora, ¿Que tan facil es programar estos comandos? Bueno, se ofrece un excelente tutorial para esto y las otras extensiones existentes son de codigo abierto con lo que se tiene una excelente fuente de ejemplos.

A modo de ejemplo incluyo el código de este comando. Lo que hace es guardar la pagina en los marcadores de delicious.com. Debo decir que esta extension la conocí hace solo cuatro horas. Ahora preguntense que tan dificil es hacer el comando que desean.
(Edicion: También hicé un comando para reddit)

CmdUtils.CreateCommand({
name: "delicious",
homepage: "http://www.dcc.uchile.cl/~msanchez/delicious.html",
author: { name: "Marcelo Sánchez", email: "censored"},
license: "MPL",
help: "Leads to the bookmarking page. If you selected text it gets in the notes. It puts the page title in the title field",

_getDeliciousUrl: function() {
var bookmarkUrl = "http://delicious.com/save?";

var params = {
title: context.focusedWindow.document.title,
url: context.focusedWindow.document.location.href,
notes: CmdUtils.getSelection(),
};

return bookmarkUrl + jQuery.param(params);
},

preview: function( pblock ) {
var msg = "save to delicious:";
pblock.innerHTML = msg;
},

execute: function( ) {
Utils.openUrlInBrowser(this._getDeliciousUrl());
}
})

No hay comentarios: