How replacing callbacks with core.async can make even robots get emotional

One of the issues with callback based programming is the need to coordinate
mutable state among multiple callback handlers. Clojure’s core.async provides
a way to write code in a more sequential style that helps make the interaction
between multiple events clearer. This talk will briefly describe Communicating
Sequential Processes (the theoretical foundation on which core.async and other
languages such as go and occam are based) before giving an overview of
core.async itself.

A lot of the attention on core.async has focussed on its use for web front-
ends with clojurescript. This talk will present an application running on the
JVM that demonstrates how a 3rd-party framework can be adapted to work with a
core.async application in order to control a NAO humanoid robot.

Watch talk on Skillsmatter: <https://skillsmatter.com/meetups/1994-how-
replacing-callbacks-with-core-async-can-make-even-robots-get-emotional>

Computer Science

Communicating Sequential Processs: http://usingcsp.com

Occam: http://en.wikipedia.org/wiki/Occam_%28programming_language%29

Transputer: http://en.wikipedia.org/wiki/Transputer

core.async

Main page: https://github.com/clojure/core.async

Tim Baldridge’s talks on youtube

Robotics

Latitude robot study: http://bit.ly/robotstudy

Rethink Robotics Baxter: http://www.rethinkrobotics.com/products/baxter/

Emotions & Emotional Models

Emotions Revealed: Understanding Faces and
Feelings
by
Paul Ekman

Maslow’s hierarchy of needs:
http://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs

Emotional agents

Toward a comprehensive theory of emotion for biological and artificial agents
Michael Sellers, Biologically Inspired Cognitive Architectures (2013) 4, 3 26

Sellers, M. (2008). Otello: A next-generation reputation system for humans and
NPCs. In Proceedings of the fourth artificial intelligence and interactive
digital entertainment international conference.

Demo code

Core model: https://github.com/davesnowdon/emotions-clojure

Demo: https://github.com/davesnowdon/emotions-clojure-demo