An important milestone has been reached today: messaging between processes works and displays in Mimas as in the example below:

‘a’ and ‘b’ are different processes, possibly on different boxes
The connection between process “a” and “b” does not depend on the order in which the processes are started and does not require complicated IP configuration. The link is simply defined in the source (sender) with a fully qualified url. For example, this is the yaml definition for the counter in process “a” :
counter: x: 30 y: 45 hue: 0 links: count: /b/play/in/trigger: true params: tempo: 580
The links are defined as a dictionary so that link removal can be managed by setting the url to false.
If “a” or “b” goes offline, the link goes into “disconnected” state. When the missing process comes back, the link automatically reconnects and the messages are transmitted on the line.
As highlighted in the image above, links properly display in the editor, even if we cannot create them there yet and there are some display bugs.
The receiver has a single zmq “PULL” socket announced by ZeroConf and the sender pushes the data through this socket along with the target url. When an object is taken offline, ZeroConf informs the other party and the sender stops sending.
Funding from the Swiss Federal Office of Culture to write the graphical frontend to rubyk !
Moving from a global mutex to a global select/poll loop.
comments