The Object Network

The Onex app and programming system

Onex allows us to run spreadsheet-like cells and formulae everywhere - on the devices, machines and servers all around us - and join them up over the internet!

What if you could run a little tiny spreadsheet on your smart lamp, that would set its light colour and brightness via cells; these cells could run a formula that referred to the value of a dimmer switch seen over a local network. Or refer to dials on a mobile phone screen. Or even to the angle you held the phone, because the accelerometer sensor state is also available in spreadsheet cells!

How about being able to write a little formula on the smart lamp that said "turn the light red while it's past the time that those hot concert tickets go on sale"? The time and date that the box office opens could be available in a couple of spreadsheet-like cells published on the internet on the ticket seller's server!

What do you mean "spreadsheet-like"?

Onex really has just one simple concept - the linked Object.

An Object is like a collection of spreadsheet cells.

There are also Rule Objects that are like collections of spreadsheet formulae for describing your data dependencies.

Onex enables you to chunk up both your data and your formulae into separate Objects, which can then be linked together.

In Onex, you build collections of Objects for your data then link them up to each other. You then link these data Objects to Rule Objects.

A spreadsheet formula describes how a cell value depends on another cell value...

...An Onex Rule Object describes how the values of a data Object depend on other values in that Object - or in other linked Objects.

You can link to any Rule Object from any other Object, so you only need to change the Rule Object once and all linked Objects will behave differently. A single Rule Object can simultaneously set multiple cell values of an Object, plus many Rule Objects can potentially set any given cell value.

All this collecting and linking of cells and formulae makes it easier to manage more complex programs by collecting related formulae that work together.

But more importantly, it enables all your devices to be programmed like a spreadsheet that has been split up across the network.

What does that look like for the smart lamp example you just described?

There is a sketch of a similar application to the ticket example above on this page. Here, the light goes red when a bargain is available in a local pet shop.

Show me more!

Here's a couple of examples that are more like traditional spreadsheet applications:

And here's a Todo app:

What's the release plan for the Onex app?

The first target of Onex is A Better Way Of Programming the BBC Micro:Bit.

Then we'll probably move into A Better Way Of Programming your Smart Home.

Next may be A Better Way Of Programming your phone.

Then, probably sort out A Better Way Of Programming virtual worlds.

Onex isn't ready to be useful just yet, but if you're actually technically-inclined, you can watch the development progress of the open source Onex App on GitHub!

While I'm waiting, can I read reams of rambling philosophical articles instead?

Sure thing: go here!

Duncan Cragg, 2017

Contact me and/or subscribe to my blog and/or follow me on Twitter.