Año: 2008

  • control gestual y más allá

    Estaba repasando un video antiguo sobre control gestual, bastante interesante que trata sobre un ejemplo de control gestual basado en una webcam, que están realizando en los laboratorios de Microsoft. Se trata un experimento relativamente sencillo, el programa analiza las formas que hay en una imagen captada en una webcam y al hacer un círculo con tus dedos, puedes arrastrar y hacer acciones de ratón en el escritorio.

    El control gestual tiene posibilidades de desarrollarse cómo alternativa al control táctil. Aunque por la disposición de la cámara, el control táctil puede tener más sentido en teléfonos móviles y ordenadores portátiles pequeños,  el control gestual parece más apropiado para ordenadores de escritorio y quizá para portátiles grandes, dado que es más fácil determinar la posición de la webcam y encontrar las mános del usuario.

    Aún así, el control gestual visual, podría mejorarse si no sólo se tiene en cuenta la imagen sino también el sonido, aunque desconozco si se está investigando en esta línea (en robótica se conoce como fusión sensorial). En el ejemplo del vídeo, me planteaba si pudiendo dar golpecitos en el escritorio, que no son muy diferenciables mediante la imagen, la detección podría mejorarse mediante el sonido (el «tap» de los dedos en una mesa me parece un sonido bastante distinguible).

  • fotos, videos, código fuente

    Acabo de terminar una página específica para presencebot, dónde dejaré las últimas fotos, vídeos y código fuente según vaya avanzando en este mini proyecto.

    La página de presencebot es esta.

  • la red social cómo recurso

    Últimamente se está abusando del concepto de red social. Casi todas las aplicaciones, sitios web, foros, recursos o cualquier cosa nueva que se cree en internet incluye la palabra red social de alguna forma. No hablo, ni recuerdo ningún ejemplo concreto, se trata de una impresión general al pensar en los últimos meses en las aplicaciones que aparecen en  loogic.com. Pero no creo que todo lo que se cree ahora (o en el futuro) tenga que ser social por naturaleza, ni todas la aplicaciones que se creen tienen que ser redes sociales (verticales o horizontales) a pesar de que ahora mucho de lo que se está haciendo tenga el apellido «red social».

    Sin embargo, entiendo que la simple presencia del conocimiento social de los usuario de una aplicación, mejora  la calidad de la misma. Pero la presencia de estos datos, no convierte a cualquier aplicación en red social. Me recuerda a la discusión planteada  sobre el término bloguero en orsai. Por mucho que una aplicación sea «social network aware» y saque partido de la red social de un usuario, eso no la convierte en red social. Una analogía simple: muchas aplicaciones mejoran su funcionalidad simplemente por el hecho de hacerse «location aware», hacer uso de la localización del usuario. Sin embargo no se les aplica ningún término distintivo: «redes de localización», «redes geolocalizadas».

    La culpa de esta confusión la tiene Facebook, ya que su visión del problema es hacerse propietarios de la red social de sus usuarios para ofrecer a los desarrolladores la posibilidad de integrarse en Facebook. En su visión, la red social es la base de construcción de una aplicación, y todas las aplicaciones deberían pasar por Facebook para tener acceso a los datos sociales de un usuario.

    Una propuesta un poco antigua pero muy interesante es la de Brad Fitzpatrick, Thoughts on the Social Graph. Brad propone hacer que el conocimiento social sea accesible de manera libre (hasta el límite que cada usuario imponga a sus datos). También se propone conseguir que no sea necesario cargar los datos sociales en cada aplicación nueva que te registres y hacer que el acceso a los datos socuales se permita con aplicaciones  y apis «open source». Cómo explica Brad, no se pretente sustituir Facebook, sino evitar que Facebook (o Google o el que sea) monopolicen el uso de los datos sociales sólo el hecho de convertirse en guardianes de los mismos.

    Además evitaría la «red socialitis», ya que para que una aplicación sea «social» no sería necesario convertirse en «red social», sino acceder al grafo social de un usuario.

  • ¿qué esperar de los agentes inteligentes?

    Hace unos años, los agentes inteligentes eran la gran promesa de la inteligencia artificial. Pero esa promesa, al igual que ha pasado históricamente con la propia inteligencia artificial, parece que no ha podido hacerse realidad. Y la razón de ese fracaso, en mi opinión es que la propia inteligencia artificial no ha avanzado lo suficiente, no el paradigma de agente inteligente.

    Según la wikipedia, un agente inteligente es (a grandes rasgos) una entidad que observa y actúa en un entorno para intentar alcanzar unos objetivos. Los agentes inteligentes hay que entenderlos más cómo un paradigma de diseño que cómo una solución a un problema. Y entendidos como un paradigma de diseño, son innegablemente  útiles, ya que sirven para modelar un programa siguiendo un comportamiento inspirado en el de los seres vivos. También sirven para implementar la noción de agente situado en un entorno, que permite definir los límites en el sistema y así mejorar el rendimiento nuestro agente: no es necesario diseñar un agente que opere en cualquier entorno, sino uno que lo haga en el entorno que hemos definido. Lo importante para diseñar el agente no es sólo los objetivos, sino el entorno y la interacción con el mismo.

    Sin embargo, el hecho de usar este paradigma no ayuda a resolver por sí mismo los problemas. Hay otro factor importante: a veces se plantea un problema en términos de agentes inteligentes y se espera que el simple planteamiento en estos términos sirva para resolver el problema. La realidad es que el problema es complejo de resolver empleando cualquier paradigma, el problema es complejo en términos absolutos, da igual cómo lo resolvamos.

    Los agentes son una forma de modelar una solución problema, que ayudan en la división de problemas complejos y en la comunicación entre distintas entidades. Sin embargo mi opinión es que no mejoran por sí mismos la inteligencia del sistema. Podrían mejorar la inteligencia global por agregación de varias entidades inteligentes, apareciendo un comportamiento complejo por emergencia (varias mentes sencillas cooperando en paralelo en el mismo problema). Pero en general, si los agentes no son lo suficientemente inteligentes, es difícil que su inteligencia colectiva mejore lo suficiente por emergencia.

    Así que mientras no mejoren los algoritmos en bruto de la inteligencia artificial, no creo que mejore la capacidad de los agentes inteligentes. Es por eso que si la inteligencia artificial no ha terminado de tener éxito, tampoco los agentes inteligentes lo tendrán.

    Al final la realidad es que necesitamos otras técnicas de inteligencia artificial cómo el aprendizaje automático, las redes neuronales, redes bayesianas, o los motores de reglas. Quizá tengamos que descubrir algo nuevo, cómo por ejemplo, la memoria jerárquica temporal de numenta.

    Lo que sí creo que facilitan los agentes inteligentes, aunque desconozco si se está utilizando o no, es la implementación de sistemas mixtos. El uso de varias técnicas se puede aunar utilizando agentes inteligentes, al usar los objetivos del agente cómo criterio unificador. Por ejemplo, en el caso de perseguir unos objetivos u otros se puede emplear unas técnicas de inteligencia artificial u otras. O se podrían mezclar los resultados de diferentes técnicas aplicadas al mismo problema, evaluando los resultados de cada técnica en vista de los objetivos del agente.

    Éste es el sentido más apropiado que veo al diseño de aplicaciones mediante agentes, la unificación de distintas técnicas de inteligencia artificial, pero en cualquier caso los agentes están limitados por la capacidad de las distintas técnicas de inteligencia artificial.

    Quizá cuándo se consiga dar ése salto de calidad, es posible que la emergencia de un comportamiento agregado de agentes nos lleve a otro nivel de inteligencia artificial colectiva más avanzada, pero por ahora es especulación.

  • lectores pdf

    Acaba de aparecer un artículo en TechCrunch sobre el tema de los lectores pdf online. Se trata de una característica específica para embeber lectores en páginas web, lo que es interesante desde el punto de vista de los creadores de contenidos (por ejemplo para publicar revistas o artículos en formato pdf), pero no lo es tanto para los lectores si carece de una opción de «añadir a mis libros» o algo parecido.

    En cualquier caso, menciona 3 lectores que tendré que echar un ojo para ver qué tal cumplen cómo lectores de documentos pdf. Me da la impresión de que se centran demasiado en la faceta de «visor de documentos» y no entran en la faceta de «lector de libros».

    Creo que mantener la faceta heredada del escritorio del lector de documentos generalista es errónea, deberíamos ir más a un entorno dónde se conoce el tipo de documento y aún más se accede a una aplicación concreta e ignoramos que por debajo hay documentos.

    El enfoque de las aplicaciones de la web 2.0 ó 3.0 o cómo quiera llamarse, en mi opinión debería ser más hacia actividades (leer, escribir, analizar) antes que a documentos (pdf, word, excel).