Thinking About Value

36f1: A given multidimensional intrinsic motivation space will intersect the complement of a given multidimensional affordance space.

95a1: A multidimensional extrinsic motivation space is a non-affine projection of the former.

187e: Dimension-reducing extrinsic motivation space is a (mathematically!) degenerate projection of that.

0ecb: Monodimensional extrinsic motivation space (…money) is a (mathematical!) singularity.

f61d: (Points, badges and awards are as extrinsic as cash. Intrinsics may be culturally or historically determined or influenced.)

9833: Topological extrinsic motivation spaces with extrinsic motivational singularities are perverse (…incentives) to a degree that is a function of the relation of their centroid to that singularity.

cfe6: Extrinsic value command and market economies are (pretty much affine) reflections of each other, as they themselves argue, given this.

747a: Libertarian/market anarchists and socialist anarchists are probably extrinsic/intrinsic anarchists.

1c85: Intrinsic motivation may be learnt. Extrinsic motivation may be projected.

e2f5: Neither intrinsic nor extrinsic motivation is avoidable. They may complement or clash.

Ethereum – Hot Cold UI

One of the example contracts from “Identity, Ownership and Authenticity” was a conceptual art homage called hot_cold.se . Here’s an updated version:

init:
    contract.storage[1000] = "hot"
    contract.storage[1001] = "cold"

code:
    // Swap
    temp = contract.storage[1000]
    contract.storage[1000] = contract.storage[1001]
    contract.storage[1001] = temp

When it receives a message, it swaps the strings “hot” and “cold” in its memory.

We can access the contract’s memory in AlethZero using JavaScript and build an HTML UI for the contract. Here’s part of the code:

// The hot_cold contract
var contract = "0x84ea345a8c5ca28abee46681ff3a7cee526bb4e4";

// Update the spans with the data from the contact
var fetch = function() {
  document.getElementById("_1000").innerText = eth.storageAt(contract, 1000).bin();
  document.getElementById("_1001").innerText = eth.storageAt(contract, 1001).bin();
};

It fetches the values from the contract’s memory and assigns them to HTML elements. Like so:

hot-cold

Further JavaScript allows you to update the contract’s state (first warning you that doing so costs Ether in the form of Gas for the transaction):

gas

Once the transaction goes through, the JavaScript code is notified of a change to the contract’s state and updates the UI:

cold-hot

There’s only one version of the properties, so if someone else updates the contract you’ll see the results in your UI. And vice versa.

You can find the code in the repository for this series:

https://gitorious.org/robmyers/artworld-ethereum/

hot_cold.se is in the contracts directory, and hot_cold.html in the ui directory.