Gadgets sociales en Eclipse

Si el otro día comentaba mi impresión general acerca de las redes sociales y la necesidad de algún tipo de integración de las mismas, el otro día me encontré con esto. Se trata de un proyecto bajo el paraguas del proyecto e4 que permite añadir OpenSocial gadgets (como los típicos gadgets de iGoogle) a una vista de Eclipse.

Los gadgets sociales son pequeños componentes web que tienen la particularidad de poder añadirse a webs o a otros gadgets. Esta es la forma en la que diferentes redes sociales pueden colaborar entre sí. Por ejemplo, mi cuenta LinkedIn muestra mis tweets en un gadget al efecto, y tengo una cuenta en HootSuite para integrar Tweeter, Facebook y LinkedIn, de forma que puedo cambiar mi estado simultáneamente en estas tres redes. Esta entrada en el blog de Boris Bokowski da algunos detalles más.

Al parecer la mayoría de los contenedores de gadgets están basados en Apache Shinding. Es decir, que lo que yo estaba pidiendo anteriormente ya existe de alguna forma, y la mayoría de las redes sociales (y otras webs) contemplan esta posibilidad de interactuar unas con otras. Esto es especialmente interesante, porque parece que por una vez es el usuario el que decide cómo componerlas y no le viene impuesto.

Volviendo al tema que nos ocupa, la gente detrás del proyecto e4 ha estado trabajando en la integración de gadgets en Eclipse, con un resultado que ya es al menos usable. Es interesante ver qué tipo de cosas nos va a permitir e4. La web de E4/OpenSocialGadgets nos sugiere algunos gadgets para probar, pero en principio, podemos añadir cualquier gadget.

Si tienes cuenta de iGoogle, puedes probar con los diferentes gadgets. Busca algún gadget que te parezca interesante y copia la url (la url debería apuntar a un fichero xml que describe el gadget).

Nota: no he sido capaz de ejecutar e4 bajo mi Linux 64 ni con la JVM de 32 ni con la de 64. Algún problema con las librerías nativas de 64 bits, supongo.

Tweeting

Últimamente he estado resucitando desde el punto de vista social-virtual, es decir, ahora existo en Facebook y en Twitter. Creo sinceramente que una de las cosas que tendrá que suceder con las redes sociales es un cierto grado de integración, tanto entre ellas, como con otras aplicaciones. En este sentido, Twitter ha dado un paso importante, proporcionando una API mediante la cual podemos consultar una cuenta twitter o twittear en ella. Otras aplicaciones pueden utilizar esta API para integrarse con Twitter.

Esto está sucediendo cada vez con más aplicaciones web de este estilo. Bugzilla, por ejemplo, incorpora desde la versión 3 una API basada en WebServices. Esta API está en evolución, y en cada nueva versión aparecen nuevos métodos.

La posibilidad de integrar estas herramientas, cada vez es mayor, y creo que veremos aparecer más y más aplicaciones enfocadas a gestionar toda nuestra «información social» de una manera integrada.

En este sentido, teniendo en cuenta que el principal objetivo de Twitter es compartir tu información de estado (lo que estás haciendo en cada momento), qué mejor manera de hacerlo que publicando directamente en twitter los bugs que vamos creando en Bugzilla. Estos bugs a veces están relacionados con el software que desarrollamos en nuestro día a día. Pero sólo a veces. Otras veces utilizamos Bugzilla para mantener de manera compartida las tareas que tenemos que realizar como grupo. A título personal, yo lo utilizo también para gestionarme mis tareas individuales.

Hasta donde he podido ver, esto puede hacerse de dos maneras. Por un lado, Bugzilla permite guardar una búsqueda y después obtener información de la misma a través de RSS. Esto es posible si el acceso a la información no requiere autenticación. Por otro lado, se puede acceder a Bugzilla a través de su API de WebService.

Esta último es el enfoque que pretendo seguir para publicar en mi twitter los bugs en los que me encuentro involucrado. La idea es que si creas un nuevo bug o modificas uno existente, estás indicando que estás trabajando en eso, al menos momentáneamente. Entonces, ¿por qué tener que twittear lo que ya has indicado de todas formas en el bug?

Existen diferentes implementaciones de la API de twitter. Yo escogí una de ellas, y hasta ahora lo que tengo es un jar descargado de aquí, y el siguiente código:

public class TwitterPostTest {

	public static void main(String[] args) {
		Twitter twitter = new Twitter("<twitter_account>", "<twitter_pass>");
		String name = twitter.getName();
		Status status = twitter.getStatus();
		System.out.println("User: " + name + "; Status=" + status);
		status = twitter.setStatus("Feliz Navidad");
		System.out.println("Status=" + status.getStatus());
	}
}

No podía ser más sencillo. El siguiente paso es obtener de Bugzilla los bugs nuevos y los cambios en los bugs existentes relacionados con un determinado usuario. Esperaba que hubiera alguna API Java para ello al estilo de la de Twitter, pero no es así. Existe la posibilidad de utilizar el conector Bugzilla de Mylyn, pero tiene demasiadas dependencias con cosas que realmente no me interesan para este proyecto en concreto.

Así que toca pelearse directamente con la API WebService de Bugzilla, pero eso es harina de otro post.