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
- core.async
- Clojure : Deep Walking Macros (wtach this before the videos on the go macro internals)
- Core Async Go Macro Internals - Part I
- Core Async Go Macros - Part II
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