DBus Instructions In Terminal, dbus-daemon --fork --print-address --session Copy the mess, and set environment variable DBUS_SESSION_BUS_ADDRESS to that: for OSX in Terminal: (for both tabs - python and lisp!) export DBUS_SESSION_BUS_ADDRESS="unix:path=/tmp/dbus-TPB6otEYhX,guid=64541960e7c06df645501f00474339c6" don't need this in lisp after all: (require :sb-posix) (sb-posix:putenv "DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-ATsZEbyMym,guid=7658085a86260c15efea5b0047c9f80c") set environment variable for OSX in Terminal: export DBUS_SESSION_BUS_ADDRESS="unix:path=/tmp/dbus-TPB6otEYhX,guid=64541960e7c06df645501f00474339c6" need to run python from command line - specifically, /opt/local/bin/python2.4 sbcl --load load-act-r-6.lisp main.lisp prints out all names visible on the bus (prototype client) service.lisp offers service (prototype - doesn't yet handle introspection) test.py interfaces with service in service.lisp currently takes 60 seconds to wait for introspection error to timeout prints "Hello World" **Why not use TCP/IP? Serialization CL-JSON Javascript object notation Mike Byrne is on record saying that UDP packets sometimes just disappear Structuring services synchronization problems with Python (no threads!) Reusability and modularization Language neutral published standard, only need to do it once