Friday, March 22, 2019

So, tell everyone what's been happening with this Clique Space(TM) thing of mine...

Well might you ask...

Neurons appear to do almost everything a Neuron of any type is supposed to do. The relay Neuron, (I used to call these naked Neurons on account of the fact that they implement nothing more than the basic Neural implementation) seem to work fine on my laptop. Instances of relay Neurons are started in separate JVM's so each Neuron exists as a separate process.

The Java sockets API regards each process as being "out there" in a world completely separate from each other. They must communicate using TCP/IP socket connections, and hence, when (or if) I do get to run Neurons (or Client Devices more generally) on separate physical devices, there should be little more work needed on the core Clique Space concept; everything should be about extending the core concept to capture the specific nature of the host device.

With my most recent commit, I think I have worked out the process that allows the life cycle of quale and other content to be managed.

Content? Other content? Well, yes, as it turns out, all content has a container, and these containers must be managed in a way that prevents deadlock. Indeed, I think I have solved this with a simple anonymous inner class (something that can perhaps be re-implemented as a lambda) called a keeper.

Content and containers are an abstraction: keepers are used to lock containers before access and ensure that any content retrieved or created is not disposed until the current thinker - instances of Java threads used throughout the Clique Space code - has finished with it. A Keeper can only be used to create or retrieve a single content instance. The keeper's container (and no other container) must be the container that is accessed.

A thinker uses a keeper to lock the container before it acquires the content, and then releases the container for the next keeper. Thinkers manage a stack of keepers. This stack allows the thinker to release content in the reverse order in which it was acquired so content can be disposed of in an orderly way. A thinker can only access a container to add or get its content when it has a keeper that is ready to acquire an instance of its container's content; a keeper cannot be used after it has already acquired content.

Quale are content to quale containers; a Neuron (a Client Device more generally) manages a single quale container. Subscribers are content to subscriptions; a subscription is also a type of quale and subscriptions are accessible from features. Deliberators are content to subscribers; apart from expressing the characteristics of both content and container, subscribers are nothing else. Deliberators are a type of thinker; they process (they deliberate) what should follow when a signal is received from another Client Device.

Deliberators behave in accordance with the instructions given in the implementation of the methods used to deliberate messages or signals internally for a given feature. Features and Connections are some of the extensible components of the Clique Space concept. These components give an individual the ability to transmit and control the state of a device within Clique Space.

I wonder if anyone else will take notice of this before I'm dead? I wonder if there indeed is anything to take notice of? I'll be pleasantly surprised if there is. I'll wait to be pleasantly surprised only until I die, and then I won't care.