Entradas con la etiqueta google

Hacia dónde van las redes sociales, Google vs Facebook

Hacia dónde van las redes sociales, Google vs Facebook

Últimamente estamos viendo mucho burbujeo de redes sociales, o derivados, ya que no sé hasta qué punto éste término seguirá siendo válido. Google Buzz

Ya que la tendencia se está desviando, de crear contenido online a reunir, resumir, filtrar y gestionar éste contenido. Recientemente se presentó Google Buzz , un servicio que se integra con Gmail y que pretende aglutinar todo el movimiento social que generan nuestros amigos, previamente importados de nuestros contactos y que disponen de Gmail, Google Reader y/o otros servicios de Google.

Al ver éste movimiento de Google no he podido evitar recordar un extenso pero interesantíssimo artículo de Wired , que explica el plan de 4 pasos de Facebook para hacerse con el dominio del mundo online, que resumiendo explica cómo en el futuro ya no nos conformaremos con los resultados de un buscador global, sino que querremos saber qué contenidos han visitado nuestros amigos, cuales recomiendan y en definitiva buscar en referencia a lo que nuestros amigos creen que nos puede interesar.

El primer paso es reunir una masa crítica, cosa que Facebook con sus 250 millones de usuarios y contando ya ha conseguido con creces, pero la pieza clave aquí es que igual que Google busca en contenido público de forma pública, Facebook es propietaria de todos los datos de sus centenares de millones de usuarios, una gran cantidad de información a la que Google no puede acceder en sus búsquedas y servicios. Y no se para ahí ya que con su Facebook Connect los usuarios ya no tienen que estar en la web de Facebook para añadir contenido o hablar con sus amigos lo pueden hacer en las más de 10,000 páginas adscritas al servicio. A lo que Google respondió con su Google Friend Connect (que hoy estreno en el blog, por cierto) con el mismo fin que su competidor.

Es decir que de alguna forma Facebook se está haciendo poco a poco propietario de gran parte del trafico web mundial, un trafico que Google no va a ver.

Aunque Google no se da por vencido tan fácilmente, ya hemos visto las increíbles nuevas herramientas que están presentando como por ejemplo Google Wave del cual podéis leer varios posts en éste blog, y ahora hace un tímido intento de dar una alternativa empobrecida a Facebook con Google Buzz, aunque de forma pública sólo tiene el perfil de cada uno para compartir ésta información.

Aunque Buzz me parece más una rendición que una alternativa, ya que no tiene página principal propia, sino que se integra en Gmail, y está más encarada a recopilar nuestros movimientos en otras redes sociales que crear contenido en la propia herramienta (que por cierto se puede conectar con todas las grandes redes sociales excepto Facebook). Como si de alguna forma dieran por sentado que ya están inventadas todas las redes sociales que podríamos necesitar.
Enlaces relacionados

Etiquetas: , , , , ,

No hay comentarios

Cómo embeber Waves en tu blog (I)

Cómo embeber Waves en tu blog (I)

Ya dimos un repaso a los robots en Google Wave (y II) a cómo funcionan y cómo programar uno, hoy nos fijaremos en la Wave Embeded API o cómo embeber un Wave dónde nosotros queramos.

En ésta primera parte vamos a contemplar el caso que usemos un Wordpress (como es mi caso), ya que nos ahorraremos mucho tiempo.

Embeber un wave en Wordpress

Instalando y configurando Wavr

Configuración de Wavr

Configuración de Wavr

En Wordpress es muy sencillo ya que existe un fantástico Plugin llamado Wavr que nos hará todo el trabajo sucio, sólo tenemos que bajarlo, descomprimirlo y subir la carpeta Wavr a la ruta /wp-content/plugins/, una vez subido sólo tenemos que activarlo en el panel de Pluggins y ya estaremos listos para configurarlo.

Como veis en la imagen de la derecha podemos configurar las opciones por defecto pero también se añade un botón al editor de entradas para configurarlo al instante (aunque yo recomiendo escribir nuestros parámetros por defecto).

Como vemos podremos configurar si queremos usar el servidor de Sandbox (para desarrolladores) o el servidor de Preview (beta cerrada), también podremos adaptar el color del fondo a nuestro blog, el color de la letra, el tamaño de la letra y lo más importante, el tamaño del WavePanel que será lo que contendrá nuestro wave, en mi caso al tener un tema con márgenes líquidos pongo el width a 100% así se adaptara a la pantalla de cada usuario que visite el blog, y el height a 500px.

Preparando el wave

Una vez todo configurado ya podemos insertar un wave en un post poniendo el siguiente tag wave id=”ID_del_Wave” entre corchetes [ ]. Ahora sólo nos falta la ID del wave, que podemos conseguir fácilmente a partir de la URI en nuestro navegador (en la barra de direcciones), en nuestro Google Wave clicamos el wave que queramos y vemos que la URI tiene ésta pinta:

https://wave.google.com/wave/?pli=1#restored:wave:googlewave.com!w%252BGc7ZDyH5A

Tenemos que quedarnos con la parte después de wave: es decir con googlewave.com!w%252BGc7ZDyH5A.

Leer el resto de esta entrada »

Etiquetas: , , , , , ,

No hay comentarios

Crear un robot en Python para Google Wave (II)

Crear un robot en Python para Google Wave (II)

Bueno, continuando con mi anterior post , hoy nos meteremos de lleno en el código del robot, y cómo manipular todas las posibilidades de un Wave.

Si hacemos un poco de memoria en el anterior post hablamos de definir qué eventos escuchamos y qué funciones llama cuando se da ése evento :

facey.RegisterHandler(events.WAVELET_PARTICIPANTS_CHANGED, OnParticipantsChanged)
facey.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded)
facey.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmit)

Vemos que los eventos a escuchar en éste caso son 1) cuando los participantes cambian, 2) cuando el robot se añade al Wave y 3) cuando alguien escribe un blip (texto).

Vamos a ver primero el evento que pasa antes, cuando añadimos el robot a un Wave se llama la función OnRobotAdded:

def OnRobotAdded(properties, context):
  """El robot ha sido añadido."""
  root_wavelet = context.GetRootWavelet()
  root_wavelet.CreateBlip().GetDocument().SetText("Hi I'm Lasty, if you have a Last.fm account you can type 'YourLastFMUser-is-listening' and I will tell you what song are you listening! Example Beldar-is-listening")

Debemos tener claro la estructura de un Wave: está formado de Wavelets (agrupación de blips) y de Blips que son el texto que escribimos, pero en todo Wave hay un Wavelet raíz, que es el que tendremos que conseguir para añadir un nuevo blip al final del resto.

Así pues vemos que en la línea 3 conseguimos el Wavelet raíz, y a continuación creamos un nuevo blip e insertamos un texto dentro, en éste caso, cuál es la función del robot y cómo se usa.

Hemos visto un ejemplo muy sencillo de cómo crear un blip e insertar texto dentro, pero algo que debéis saber es que las conversaciones en Wave se envían y guardan en XML puro, por lo que hay una separación total de contenido y formato, es decir se guarda el texto pero no si es un link, está en negrita o qué tamaño tiene, eso se hace mediante las Annotations (anotaciones).

Ahora mismo están muy limitadas las opciones de formato en Wave, ya que se basan en su editor de texto WYSIWYG y siguen unas opciones un tanto extrañas, así como la forma de aplicar un estilo en el editor es seleccionar el texto y darle al botón de negrita, para hacerlo vía código tenemos que hacerlo de la misma forma, definiendo el rango de texto al que queremos aplicar estilo.

Como expliqué en el anterior artículo tenemos que importar el objeto Range para usarlo:

from waveapi.document import Range

La forma de aplicar una Anotación es un poco incómoda porqué siempre debemos saber el tamaño del string que queremos transformar, tomaremos por ejemplo el blip que genera el robotito Lasty, que tiene ésta pinta:

Blip que general Lasty

Blip que general Lasty

Como vemos haremos un repaso a cómo insertar negritas, diferentes tamaños de letras, links e imágenes.

Explicaré sólo el trozo de código que se refiere a las anotaciones, aunque podéis ver el código completo en Google Code que intento mantener actualizado.

Como he dicho, en el XML del Wave no se guardan los estilos del texto, pero tampoco las imágenes y otros elementos embebidos, ya que el protocolo de Wave guarda éstas anotaciones como operaciones que el editor aplica una vez cargado el texto, así lo hace en todos los editores y es una de las razones por las cuales se puede dar un intercambio de información a tiempo real tan rápido, ya que no se envía el contenido y el formato por separado, aunque esto signifique hacerle la vida más complicada a los desarrolladores.

Leer el resto de esta entrada »

Etiquetas: , , , ,

3 Comentarios

Crear un robot en Python para Google Wave (I)

Crear un robot en Python para Google Wave (I)

Voy a intentar explicar paso a paso cómo se crea un robot en Python desde mi propia experiencia, es decir a partir del robot que creé yo.

AppEngine Dashboard

AppEngine Dashboard

El robot que creé yo, Lasty está pensado para mostrar la canción que estás escuchando a través de Last.fm, más tarde llegaremos a cómo se hace eso.

Preparación

El primer paso, es crear una cuenta en App Engine, ya que por el momento Google sólo deja usar éste servicio para los robots en Wave, éste servicio aparte de dejarnos alojar nuestro robot, también tiene una completa interfaz de uso (estilo Analitycs), control de versiones, logs para debugar, servicios para configurar cron jobs, incluso un pequeña base de datos, y nos deja alojar hasta 10 aplicaciones.

El siguiente paso es obviamente tener Python instalado la versión 2.5 o mayor, si eres usuario de Mac OS X seguramente ya lo tendrás instalado, para asegurarte, abre un terminal y escribe:

~usuario$ python --version
Python 2.5.1

Ahora que sabemos que tenemos Python instalado, debemos bajar la Wave Robot Python Client Library que es simplemente una carpeta con la API que debemos colocar dentro de nuestro proyecto.

Google AppEngine Launcher

Google AppEngine Launcher

Ahora es hora de crear nuestra aplicación en App Engine , nos pedirá la identificación de la aplicación (es lo que se usará en la dirección Wave de nuestro robot), el mío por ejemplo fue last-robot, y luego la Application Title que será el nombre de nuestro robot, en mi caso Lasty, al darle a Save se creará nuestra aplicación y tendremos acceso al Dashboard y todas las opciones.

Ahora que ya tenemos nuestra aplicación creada, tenemos que bajarnos el SDK de AppEngine , en ésta parte si que cambia bastante el hecho de tener Windows o Mac OS X, yo explicaré la versión para Mac OS X, pero para el resto de usuarios hay una documentación bastante completa sobre como hacerlo en otras plataformas. En Mac OS (a diferencia de Windows) han creado una interfaz gráfica bastante agradable y completa para subir el código a los servidores de AppEngine, pero también te permite ejecutarlo montando un pequeño servidor local (útil sólo para gadgets o robots con interfaz web). Cómo veis en la imagen de la derecha la interfaz es sencilla, el botón [+] para añadir una aplicación y el botón Deploy para subirla.

Mi consejo es que creéis la aplicación con el botón [+] ya que te crea la mayoría de archivos y estructura de carpetas necesarias (te ahorra tener que hacerlo tu y a mi explicarlo). Leer el resto de esta entrada »

Etiquetas: , , , , ,

6 Comentarios

Google Wave, primeras impresiones

Google Wave, primeras impresiones

Pues si, hace 3 días me llegó la esperada invitación, soy uno de los aproximadamente diez-mil desarrolladores de todo el mundo que están probando,

Google Wave

Google Wave

toqueteando, creando y debugando sobre todo!

Las primeras impresiones podríamos decir que son bastante buenas, hay muchas posibilidades nuevas de comunicación que hasta ahora no existían y que costará un poco que la gente se acostumbre, pero seguro tendrán mucho éxito en el futuro.

Al principio era un poco caótico ya que existía un robot que enviaba un Wave a toda la gente, entonces había demasiado movimiento, por suerte ya lo deshabilitaron y el hecho de usar filtros de búsquedas permite organizar los Waves que quieres ver en cada momento.

El único inconveniente (del que estábamos avisados) es que falla constantemente, hay que actualizar, a veces pierdes algún Wave en la inmensidad (aún estoy buscando un par que escribí ayer), pero es lo que tiene una versión alpha y hay que apechugar.

Creo que la novedad en la comunicación que me ha gustado más han sido las conversaciones tipo IM con más de dos personas, hasta ahora tenía la experiencia del Messenger o GTalk que permite tener conversaciones multitudinarias, el esquema clásico de éstas conversaciones (por ejemplo con 3 personas) podría ser:

  • Persona1: ¿Has ido al supermercado?
  • Persona2: ¿Has ido a la playa?
  • Persona3:
  • Persona2: Sí, he ido al supermercado
  • Persona1: No he ido a la playa

Como podemos ver, al ser la conversación lineal es difícil seguir el hilo, la Persona3 no sabemos a cuál de las dos preguntas responde, y las respuestas cortan el ritmo de conversación, en Google Wave la historia cambia, ya que las conversaciones no son lineales, son anidadas, es decir cada participante puede responder al trozo del mensaje que quiera, así la anterior conversación en Wave sería algo así:

Ejemplo de conversación anidada

Ejemplo de conversación anidada

  • Persona1: ¿Has ido al supermercado?
    • Persona3:
    • Persona2: Sí, he ido al supermercado
  • Persona2: ¿Has ido a la playa?
    • Persona3:
    • Persona1: No he ido a la playa

Así vemos que la conversación va por los caminos correctos y es más clara, y además se da un fenómeno curioso que experimenté el otro día, diferentes conversaciones paralelas que ocurren al mismo tiempo, ya que cada una de ésas preguntas puede evolucionar, anidarse más y desarrollarse, mientras más abajo se desarrolla otra conversación totalmente diferente incluso con participantes diferentes.

Ahora mismo, al haber sobretodo desarrolladores es un hervidero de Robots, Extensiones y Gadgets así que hay mucho movimiento y seguramente cambiará bastante cuando salga al público a finales de año y por fin pueda compartirlo con mis amigos y familiares.

Yo ya he empezado a hacer mis pinitos con un robot en python, pero eso lo dejo para otro post.

Etiquetas: , , ,

4 Comentarios