PicoLabs
- Picolabs
- Wednesday 4G
Convener: Bruce Conrad
Notes-taker(s): Bruce Conrad
- Tags for the session - technology discussed/ideas considered
Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:
A pico is a "persistent compute object" and they've been available for about a decade. We are working now on an easy-to-install pico engine running in node JS, as an open source project located at github.com/Picolab/node-pico-engine for which documentation can be found at picolabs.io which will lead to the wiki page at https://picolabs.atlassian.net/wiki/display/docs/Pico+Engine+re-write
We had a great discussion, with Phil describing a live and functioning applications implemented with picos, and Bruce demonstrating the node pico-engine and showing how a registration system could be constructed, that would scale into thousands of picos with hundreds of thousands of interconnecting channels.
Some basic description, including: Each pico persists it state, and provides lock-free concurrency. It is a "first-class" Internet citizen, receiving and processing events which may affect its internal state and/or cascade to further events, and responding to queries about its internal state. When an event arrives for a pico, the pico engine selects the rules which apply by using declarations called event expressions. Rules may conditionally take actions and update the state of the pico.
Several application spaces were discussed. Objects which don't have any silicon at all can be represented by a pico in the cloud, as a kind of disembodied, state equivalent surrogate, allowing that object to participate by proxy in the IoT.
The question came up, "why have a new programming language for picos?" which Phil answered with something like this quote from his blog post, "to get pico functionality, you need to add event expressions, persistent data, a runtime environment, accounts and identifiers, channels, and the ability to manage the pico lifecycle dynamically, including the JavaScript installed in each one. By the time you're done, JavaScript is a very small part of the solution." (http://www.windley.com/archives/2015/11/reactive_programming_with_picos.shtml )
We invite contributions, consumption, and/or competition.