The Emotion Machine: Emotional States, Attachments and Goals, From Pain to Suffering

Alguna vez publiqué algo de información sobre el libro de Marvin Minsky, La Máquina de Emociones _(_The Emotion Machine), pero nunca había tenido la oportunidad de leerlo en profundidad. Finalmente, a través del paso del tiempo, fui avanzando sobre las páginas – si es que es válida la expresión – del mismo.

El libro es en extremo interesante, pero desafortunadamente la versión online tiene muchos rasgos que nos hacen notar que se trata de un borrador previo a la publicación, debido a la forma poco explicativa de ciertos conceptos, pero no por eso deja de ser muy entendible, siempre cargadísimo de ejemplos y explicaciones que nos permiten comprender lo explicado.

El primer capítulo, Emotional States (Estados Emocionales) plantea principalmente la teoría que se desarrollará durante el resto del libro: las teorías de ciencias cognitivas por lo general fallan porque buscan explicar la mente bajo reglas simples, siendo que posiblemente sea más compleja de lo que estas leyes plantean. Entonces, ¿por qué no plantearla como una combinación de elementos que se relacionan de forma compleja?

Introduce la idea de los recursos, que son (según su teoría) elementos que producen distintas respuestas dentro del comportamiento humano, y cada recurso puede a su vez generar acción en otros recursos. A medida que el tiempo pasa y aprendemos a controlarnos, estos recursos tienen reforzadas o disminuidas las relaciones entre sí, lo que formaría nuestra personalidad. Las emociones fuertes son aquellas que más recursos despiertan, o que generan cascadas de gran intensidad, dejando salir entonces aquellos recursos que más se manifiestan en nosotros de forma más fuerte.

El segundo capítulo, Attachments and Goals (Afectos y Logros) habla de esto, de la forma en la que aprendemos a enlazar ciertos comportamientos con ciertas situaciones. Se introduce el concepto de planificación, el cumplimiento de submetas subyugadas a una meta principal, y el concepto de impresor (imprimer), como aquél agente externo del cual aceptamos el premio o el reproche para modificar nuestra conducta. Finalmente los contrasta contra los conceptos de modelos o impresores ficcionales que modelan nuestra conducta de otra forma.

El tercer capítulo, From Pain to Suffering (Del dolor al sufrimiento) comienza tratando algo de lo que el primer capítulo trató: ¿Cómo es que una emoción fuerte comienza a despertar muchas sensaciones distintas? ¿Cómo es que una emoción o sensación fuerte puede hacernos perder completamente la noción de dónde estamos o qué estamos haciendo? ¿Qué tiene de bueno eso? Aquí también vuelve a hablarse un poco de cómo es que un recurso puede accionar otros y cómo es que la mente puede inducirnos a ciertos estados provechosos para nosotros, aprendiendo de esa misma relación entre recursos (aunque queda pendiente todavía la explicación de cómo la mente tiene auto-conciencia sobre su funcionamiento). Finalmente se hace una contraposición entre las teorías de la conciencia de Freud con la teoría de los recursos activándose.

Hasta aquí ha llegado mi lectura del mismo, pero espero pronto poder continuarla.

Soy un zorrinito con recursos.


Once ago I published some information about Marvin Minsky’s book, The Emotion Machine, but I never had the chance to get to read it deeply. Finally, with time flying by, I kept on crawling through along the pages.

The book itself it extremely interesting, but sadly the online version has lots of quirks that makes us realize it is just a draft prior to publication, due to some of the poor explanation of certain concepts, but it still is quite understandable, always full of practical and simple examples and explanations that allow us to comprehend the concept being developed.

The first chapter, Emotional States proposes the theory that will be developed further in the remaining parts of the book: some cognitive sciences may fail because they want the explain mind’s behavior with simple rules, whilst probably it is really more complex than these rules may call. Then, why not treat it as a complex related element combination?

The idea of resources is introduced here, which are (according to its theory) elements that produce certain responses on human behavior, and each resource may in turn generate action on another ones. As time goes by and we learn to control ourselves, these resources will have their relationships enhanced or decreased, that would define our personality. Strong emotions that those that arise more resources, o that generate great intensity cascades, letting out those resources that are more manifested in us.

Second chapter, Attachments and Goals speaks further on this, about the way we learn to link certain behaviors to certain situations. The concept of planification is introduced here, the achieving of sub-goals subjugated to primary goals, and the concept of imprimer, as that external agent that we’ll accept the reward or the reproach in order to modify our conduct. Finally, it contrasts them against the concepts of models or fictional imprimers that model our behavior on different ways.

The third chapter, From Pain to Suffering starts with some of what the first chapter dealed with: How is it that a strng emotion arises many different sensations? How is it that a strong emotion or sensation may makes us loose the notion of where we are standing or what are we doing? What’s the benefit of all this? Also some of how a resource may activate anothers and how mind may induce us to certain states helpful to us is detailed here, although the explanation on how the mind may learn about the relation between resources and how is it self-aware on its inner working is still missing. Finally, a contraposition between Freud’s counscience theories and the activating resources theory is described.

That’s how much I’ve managed to get on with my reading on this book, but I hope to be able to continue it soon.

I’m a resourceful little skunk.

(Read more →)

Windows Azure

Varios de mis últimos proyectos han tenido que ver con Windows Azure, la versión Microsoft de cloud computing. Azure se divide en algunas secciones básicas, que al comienzo pueden ser difíciles de entender pero luego se hacen bastante naturales.

Por un lado tenemos los servicios de almacenamiento de datos en Azure, storage services, que pueden dividirse en blobs (datos de tipo blog, divididos en blobs y blogs containers), queues (colas, un tipo de dato cualquiera que se encole en forma FIFO para su consumo por otro lado) y tables. El caso de table suele ser el más útil para el programador común, ya que permite mantener todo el esquema de datos para una aplicación completa en él. Desgraciadamente, el nombre de “table” (tabla) es algo confuso, ya que no existen tales cosas como tablas o menos aún, entidades relacionales. En realidad se trata de un conjunto de elementos estilo property bags, en donde cada entidad se identifica por algún campo que designemos como RowKey y se pueden ordenar (indizar) según algún campo o combinación de campos que indiquemos como PartitionKey. Hay que estar atentos al momento de diseñar la estructura de nuestra aplicación y tener en cuenta esto, ya que de otra forma podría caerse en fallas de performance por tener necesidad de tratamiento relacional entre datos.

Otro de los servicios ofrecidos en la plataforma de Azure son los servicios .NET. Los servicios .NET de Azure pueden comportarse equivalente a una aplicación. En este caso, es el tiempo de ejecución por lo que pagaremos, cuando antes, en el caso del storage, lo que pagábamos era por el almacenamiento y la transferencia de los datos. Los servicios .NET de Azure pueden funcionar como aplicaciones web con interfaces interactivas con usuarios (web roles), como también podrían funcionar como servicios en constante ejecución en background (worker role). También, por supuesto, podemos implementar web services.

Finalmente, el tercero de los pilares para Windows Azure es Live Services, que es una integración con los servicios de Live que Microsoft ha estado desarrollando (y continúa desarrollando) a lo largo de estos años. No he indagado prácticamente nada respecto de este tipo de servicios, pero parece ciertamente prometedor, siempre que uno pueda integrar su unidad de negocios a través de las redes de Live.

Soy un zorrinito celeste.

(Read more →)

Link del día: Web Usability Guidelines

Para aquellos que desarrollan web, estaría muy bueno un listado de puntos a tener en cuenta para desarrollar / evaluar / medir qué tan bien está hecho un sitio web en base a su usabilidad, o en base a la experiencia del usuario. Para eso una tentativa es usar el documento de Web Usability Guidelines disponible desde UserFocus. Es un listado de 247 puntos a tener en cuenta para el desarrollo de una aplicación o sitio web, divididas en categorías.

Soy un zorrinito web.

(Read more →)

Link del día: CrossBrowserTesting.com

Este es otro servicio que sirve mucho a los desarrolladores web, más que nada para lidiar con el problema de tener que probar el HTML desarrollado en distintos navegadores, cuando no siempre es posible tener instalados localmente todos los navegadores para probar. Es el caso, por ejemplo, de los Internet Explorer, en donde tener una versión determinada nos impide tener las demás.

Para eso está CrossBrowserTesting, que es un servicio que nos permite acceder via VNC (tanto basado en web - lo que significa que no hace falta que instalemos nada) como con un cliente VNC local, a un sistema pre-configurado por ellos con una variedad de navegadores. Una vez dentro, podemos probar lo que queramos.

En la versión gratis, cada sesión VNC está limitada a 5 minutos y cuando hacemos un pedido de conexión, nuestro pedido queda en espera, pero en la versión paga, nuestro pedido tiene prioridad sobre los gratis, y la conexión VNC puede ser ilimitada. También tenemos la posibilidad de sacar snapshots de la pantalla y guardarlos como documentación de algún proyecto.

Soy un zorrinito VNC.

(Read more →)

Link del día: Texto y Javascript

Arranquemos primero por el lado de Javascript, para lo cual tenemos una pequeña aplicación llamada Text Escaping and Unescaping in Javascript (del cual una extraña traducción podría ser “Texto en Javascript que escapa y regresa.”).

Una segunda historia relacionada a Javascript es una noticia llamada Una simple linea de Javascript desechó una venta millonaria. De todos modos, considero que el titular es un poco tendencioso, ya que no era una sola línea, sino que, de no estar esa línea, bastantes otras cosas ya la habrían desechado.

Y ahora divirtiéndonos un poco más con el texto les traigo Text Utilities, que es, básicamente, una colección de utilidades misceláneas para trabajar con texto, todo en una simple página.

Y por último, para los programadores: Hidden Features of Perl, PHP, Javascript, C, C++, C#, Java, Ruby, Python, And Others [Collection of Incredibly Useful Lists]… el título lo dice todo.

Soy un zorrinito útil.

(Read more →)

Link del día: IE6 Upgrade Warning

Este link del día, debo confesar, va acompañando un remordimiento propio y en representación del de muchos programadores web. Muchos de nosotros sabemos que Internet Explorer es uno de los navegadores más difundidos, y que más tiempo ha estado presente desde 1997 en su versión 4, que fue una de las más difundidas. Tiempo después, muchas cosas cambiaron y en el 2001, la versión 6 vio la luz.

Hoy, ocho años (ocho años!) después, todavía hay mucha gente que utiliza Internet Explorer 6. Esto es un problema para muchos programadores y diseñadores, ya que este navegador desactualizado no se comporta de la misma forma con las páginas que los nuevos. Tratar de hacer un sitio, página o aplicación web que se vea correctamente en todos los navegadores ya de por sí es difícil, pero teniendo un lastre como este se vuelve casi imposible.

Es por eso que existe un proyecto de software libre llamado IE6 Upgrade Warning, que es un script que podemos agregar a nuestros sitios que de forma muy diplomática le hace saber al usuario que su navegador se encuentra desactualizado, y le brinda opciones de otros navegadores o de versiones más nuevas del mismo navegador para descargar e instalar.

…yo creo que voy a comenzar a usarlo.

Soy un zorrinito actualizado.

[EDIT] GC me pasó este dato:

Hay un plugin de Wordpress que hace lo mismo: http://wordpress.org/extend/plugins/ie-warning/

Aunque te da la posibilidad de ser diplomático y de ser un forro (directamente no cargar la pagina si detecta IE6)

(Read more →)

Link del día: Let's Make the Web Faster

Let’s make the Web Faster es el nombre de un conjunto de artículos disponible en Google Code, que explican muchas formas de optimizar una página web, cubriendo muchos aspectos, desde la codificación misma a la configuración del servidor. Las explicaciones son simples y fáciles de seguir, y están ejemplificadas y con muestras de sus resultados.

La mejor parte para mí es la de los artículos, que es en donde está toda la información compilada. Notesén las grandes categorías: CSS, gráficos, compresión, PHP, HTTP caching, prefetch, herramientas, browsers, javascript, latencia percibida (esto es, lo que el usuario tiene la sensación de lo que tarda la página)… y luego un montón de charlas técnicas sobre estos temas en Google.

Por supuesto, cualquiera de nosotros puede participar de la parte de comunidad y sugerir cambios y nuevas ideas a todo esto, con lo cual en cierta forma (y sólo en cierta forma) se vuelve un proyecto colaborativo, o al menos nos dan la oportunidad de opinar.

Soy un zorrinito rápido.

(Read more →)

Link del día: Un poquito sobre el email

EPH o “Extra Pair of Hands” es el nombre de un servicio de tercerización de atención telefónica, que se supone nos brinda la posibilidad de sacarnos un peso de encima si es que eso toma mucho del tiempo de nuestra estadía en la oficina. Pero eso no es lo interesante de hoy, sino un FAQ que publicaron sobre el tamaño de direcciones de email. El pequeño informe está bastante completo para tratar de un tema tan específico, llegando a hablar incluso de cuánto en memoria se reserva por los programadores en general y cuánto requerirían los estándares. Algo curioso de conocer.

Como extra, les dejo el blog de Cellular Obscura, que es la forma en que este fotógrafo (Shawn Rocco) sigue el mundo. No sé si tenga algo de especial, pero me gustaron las fotos que tiene.

Soy un zorrinito reservado.

(Read more →)

Link del día: IPInfoDB

Aquellos que no están mucho en el tema de la geolocalización, lo que más cerca habrán estado de encontrar el link del día de hoy útil es preguntarse algo como: ¿Puedo saber de qué ciudad se mandó un email? ¿Puedo saber en qué parte del mundo está alguien?

Para aquellos que están un poco más adentro, saben que un determinado rango de IPs está asignado a determinadas empresas, que por lo general lo utilizan en cierta parte del mundo, y no sólo eso, sino que también distribuyen sus redes en subredes (valga la redundancia) utilizando rangos menores, de forma tal que a veces es posible, con el IP de una determinada computadora, saber desde qué parte del mundo está conectada.

Para eso el día de hoy tenemos a IPInfoDB, un servicio de geolocalización gratuito que tiene dos variantes muy interesantes.

La primera de ellas es la versión web, en donde podemos verificar nuestra localización o la localización de algún IP o dominio.

La segunda de ellas es la posibilidad de bajar una base de datos IP-localización, a nivel de país o a nivel de ciudad. Sí, sí, y no sólo eso, sino que, según prometen ellos, la base de datos se actualiza todos los meses. Nos permiten bajar la versión grande o chica, según lo que nos convenga más. Por último, interesante para aquellos que quisieran agregar esto a sus aplicaciones: no hace falta tener la base de datos localmente, ya que ellos ofrecen una API gratuita utilizable para propósitos de consulta.

Soy un zorrinito geolocalizado.

(Read more →)

Seminario ASP.NET con VS 2008

El día de hoy tuve el gusto de poder participar como disertante en un seminario que se dio en la Universidad FASTA, junto a Adrián Cura, presidente de MUG Argentina, quién se encargó de explicar la parte teórica, y yo dando demostraciones en vivo y en directo de cómo funcionan muchas de las características o fundamentos mencionados.

Si bien el tema de la charla, en lo que se publicó originalmente, trataba del nuevo modelo de programación de ASP.NET con .NET Framework 3.0 o 3.5, ASP.NET AJAX y Windows Communication Foundation, en realidad el temario fue un poco más extenso.

Comenzamos a las 9.15 de la mañana, presentándonos y mostrando un video, la publicidad de Proyecto Natal de Microsoft. Hablamos de la experiencia del usuario, y cómo las nuevas tecnologías apuntan a mejorar esa experiencia y tratar de naturalizar la interacción del usuario con los sistemas, en lugar de adaptar el usuario a los paradigmas de programación. Esto se enlazó con la facilidad que el programador debe tener para poder tener una buena experiencia como desarrollador y las herramientas que posee. Esto a la vez se enlazó y comenzó la exposición sobre .NET Framework 2.0, 3.0 y 3.5 y se explicó qué tiene de nuevo y en qué nos beneficia.

Entre estas cosas, se mencionó ASP.NET AJAX y la gran diferencia que genera en la experiencia del usuario la presencia de AJAX, y la gran diferencia de desarrollo que genera que todo esto esté presente en una herramienta existente, sin necesidad de reinventar la rueda. Tras una breve pausa para tomar un café, se hizo una exposición en vivo de algunos pequeños ejemplos mostrando el funcionamiento de ASP.NET AJAX, explicando cómo funcionaban internamente y cómo hacían transparente al desarrollador y al usuario un montón de cuestiones que siempre fueron necesarias tener en cuenta para el desarrollo web.

Pasamos a una segunda sección, que fue WCF (Windows Communication Foundation). Se habló del paradigma de programación orientado a servicios brevemente, y cómo este pilar de la arquitectura .NET nos provee de herramientas para poder afrontar dicho paradigma. Se habló de los servicios, sus características, y tras haber refrescado todo eso, una breve demostración en donde se podía ver un servicio funcionando, y la manera en que este era implementado a través de las herramientas que Visual Studio 2008 provee.

Finalmente, se pasó a una explicación introductoria a Silverlight y Windows Presentation Foundation, otro pilar de la arquitectura .NET, que se basa en enriquecer la experiencia del usuario y generar una interfaz amigable para cualquier tipo de aplicación, y de qué forma Microsoft provee nuevas herramientas y estándares para no hacer de esto una tarea imposible para los desarrolladores y los diseñadores.

La charla terminó a las 13:00 como se encontraba previsto, aunque nos quedamos un rato más hablando sobre ciertas inquietudes particulares de alguna gente, tras lo cual efectivamente nos retiramos.

Soy un zorrinito ASP.NET.

(Read more →)