Mes: febrero 2009

  • control homeostático

    Un recurso interesante para el control de un robot es el control homeostático. Según la RAE, la definición de homeostasis es:

    1. f. Biol. Conjunto de fenómenos de autorregulación, que conducen al mantenimiento de la constancia en la composición y propiedades del medio interno de un organismo.

    2. f. Autorregulación de la constancia de las propiedades de otros sistemas influidos por agentes exteriores.

    En robótica, significa básicamente mantener una variable dentro de un rango aceptable de valores mediante algún tipo de mecanismo de autocontrol. El ejemplo más sencillo es el control del nivel de las baterías dentro de un rango apropiado. Cuando el robot detecta que el nivel de baterías es demasiado bajo, se disparan los mecanismos apropiados para mantener el nivel de energía. Si nuestro robot es capaz de buscar la estación de recarga, se pondá a buscarla para recargarse, otros robots sin esa capacidad, pueden entrar en un modo de funcionamiento de bajo consumo. Por el contrario, si consigue recargarse y llegar a un nivel alto, entonces abandonará la estación de recarga y continuará con otras tareas, cambiando su comportamiento de acuerdo con el nivel de baterías.

    En una arquitectura híbrida reactiva-deliberativa, una forma de implementar un mecanismo homeostático es la activación de los comportamientos adecuados a cada situación. Continuando con el ejemplo de las baterías, si el nivel es muy bajo, se puede activar el comportamiento «buscar estación de recarga». Cuando el nivel se ha restablecido, entonces se pueden activar otros comportamientos adecuados a la misión del robot.

    El robot kismet del MIT usa un sistema homeostático en una parte de su sistema emocional. Las emociones están controladas parcialmente por unas motivaciones internas («drives» en inglés) que funcionan en modo homeostático. Las motivaciones internas (interacción social, estimulación y fatiga) pueden estar en régimen normal, saturado ó insuficiente y de acuerdo con estos niveles, el sistema emocional reacciona con los mecanismos apropiados. Por ejemplo, si la fatiga está saturada, el robot puede activar los sistemas emocionales de enfado ó cansancio. Una descripción más detallada del sistema emocional incluyendo el control homeostático se encuentra en el libro Designing Sociable Robots de Cynthia Breazeal.

    El control homeostático se puede anidar en varios niveles. Por ejemplo, un robot que intenta mantener un buen nivel de señal de comunicación con una estación central y que además mantiene un nivel de estrés de falta de comunicación que aumenta con el tiempo. En un primer momento tiene el comportamiento adecuado para mantener el nivel de comunicación. Pero si no consigue restablecer el nivel adecuado, el nivel de estrés aumentará provocando que al final se tomen otro tipo de medidas que pueden ser más arriesgadas, cómo adentrarse en terreno inexplorado, o más conservadoras, cómo quedarse quieto emitiendo una señal de auxilio.

    Resumiendo, añadir un control homeostático a un robot es interesante para conseguir que ciertas propiedades vitales (nivel de batería, nivel de señal de comunicación) se mantengan en un nivel apropiado. Pero no sólo se puede usar este tipo de control con propiedades medibles, sino que puede ser interesante establecer el control sobre otras propiedades intangibles que pueden formar parte del control «emocional» de un robot.

  • nuevas arquitecturas de publicidad en internet

    La plataforma de publicidad dominante en internet en la actualidad es google adsense. Desde el punto de vista de la arquitectura de la aplicación, adsense se basa en la inserción de un pequeño código en javascript que se ejecuta en el navegador del cliente. En última instancia, el cliente tiene el control sobre lo que visualiza, por lo que existen plugins para firefox como Adblock plus que hacen que no se ejecuten estos scripts. La mayoría de los usuarios que instalan estos plugins lo hacen porque la publicidad resulta molesta y hacen que las páginas tarden más tiempo en cargar. Ésta es la misma situación ante la que se desarrollaron los «pop-up killer», cuando algo resulta molesto para el usuario, éste termina buscando soluciones alternativas.

    Desde el punto de vista del proveedor de contenidos, es necesario insertar cierto nivel de publicidad para mantener los ingresos. Una forma de evitar el bloqueo de scripts de publicidad es que los anuncios estén integrados en el contenido, evitando que la publicidad se inserte a partir de un script ó imagenes en otro servidor aparte. Para eso hacen falta api’s de comunicación entre el proveedor de contenidos y el proveedor de publicidad, para hacer que al generar el contenido, se integre parte de publicidad en el mismo. La integración en vez de hacerse con javascript en el cliente, se haría a través de, por ejemplo, php en las páginas del servidor web.

    Esto nos llevaría a la situación parecida a la que se encuentra Text-Link-Ads, una empresa que se dedica a la venta de enlaces. TLA le entrega enlaces al proveedor de contenido, que los integra en sus páginas, con lo que para google forman parte del contenido y son relevantes para su motor de búsquedas. Con este sistema se consigue que por medio de invertir dinero promocionemos los resultados de búsqueda de google, lo cual es negativo para google y en ultima instancia para los usuarios. Actualmente, Text-Link-Ads está «perseguido» por Google (una situación un tanto injusta) y Google penaliza a aquellos que publican enlaces de forma poco clara.

    Una posible solución es que los proveedores de contenidos actuasen de forma responsable y marcaran los enlaces publicitarios con el atributo rel para indicar la relación, usando por ejemplo rel=»ad» para indicar que se trata de un anuncio. De esta forma, google podría descartar estos enlaces cómo no válidos para calcular la relevancia de un sitio web, los usarios verán los anuncios adecuados al contenido y no podrían evitar fácilmente eliminar los anuncios por medio de plugins.

    Aunque esta última arquitectura de la publicidad presenta bastantes ventajas, de nuevo estaríamos en la situación inicial: el abuso de la publicidad, tratando de exprimir la atención de los usuarios, resultará en la búsqueda de nuevas formas de saltarse las limitaciones tecnológicas. Así que por ahora parece que la mejor forma de hacer que la publicidad sea relevante e interesante es respetando el contenido y al usuario que accede a ese contenido.

  • open id en el navegador

    Estaba repasando una idea de David Recordon del radar de O’Reilly, que propone integrar la autenticación de los sitios que usen OpenID automáticamente en el navegador. Al acceder a internet, el navegador nos pedirá nuestra clave una única vez y se deberá encargar de autenticarse en todos los sitios con OpenID. Es una forma de simplificar la navegación a los usuarios, se ahorrarían la repetición de usarios/claves y muchas autenticaciones duplicadas en multiples sitios.

    No es un objetivo nuevo, por ejemplo explorer desde hace mucho tiempo tiene autenticación integrada en el sistema de Windows que se usa a nivel corporativo, también Microsoft lleva tiempo proponiendo el sistema de autenticación Live ID y hay más iniciativas similares de Sun, IBM, etc. La idea de David se centra en mejorar la usabilidad delegando la autenticación en el navegador, evitando repetir el mismo password varias veces y usar un servicio abierto como el de OpenID, cuyo control no está centralizado.

    En este sentido, las condiciones que debería reunir un buen servicio de autenticación son:

    • Que sea seguro, obvio, pero sin esta condición no tiene sentido el resto.
    • Que no dependa de un único proveedor, es necesario que los usuarios puedan cambiar de proveedor fácilmente.
    • Que pueda usarse de forma abierta en varios sitios web y dominios de autenticación. Si el servicio sólo sirve a un proveedor o a un grupo, no es útil para el usuario.
    • Que su uso sea lo más transparente posible para el usuario, con el menor número posible de autenticaciones. Con una sola autenticación, deberíamos poder acceder a todos los sitios que estén adheridos al mismo sistema y a las misma credenciales.
    • Que permita el control del usuario. Debería permitir el uso de varias credenciales diferentes y además debería permitir elegir en qué sitios/aplicaciones debería usarse cada credencial de autenticación.

    Dave comenta que existe algun plugin para Firefox que cumple este objetivo, pero en mi opinión ésta función debería estar integrada en el sistema operativo, debería ser un servicio disponible para cualquier tipo de aplicación no sólo web. Aunque partiendo de la situación actual, la forma más rápida de llegar a este objetivo es comenzar por el navegador, que actualmente es el componente más abierto de los escritorios. Concretamente a través de un plugin cómo Gears podría desarrollarse de forma multiplataforma para varios sistemas operativos y navegadores.

    Además añadiría a esta función la posibilidad  de permitir el acceso a su grafo social, siempre de forma controlada por el usuario. Por poner un ejemplo, si me autentico como Fulanito en un sitio a través de OpenID, por ejemplo gmail y le podría dar permiso a este sitio para acceder a mi grafo social de Facebook, a través de OpenID e importar mis contactos.

    Es innecesario cargar con mis credenciales de autenticación (usuario/password) y mi lista de amigos de un sitio a otro, deberían estar compartidos de forma abierta entre las distintas aplicaciones, siempre bajo el control del usuario que es el propietario de sus datos.