Blockchain: A Shared Noun

  • Guest post: Aaron Symanski, CTO, Change Healthcare

    In many of the discussions that I have had regarding blockchain, business models are a frequent topic. Why use a new technology like blockchain instead of an existing, well understood, proven, cost effective technology? What makes blockchain radically different?

    To answer, let’s start with a simple history of the evolution of communication, the evolution of how one person shared a concept with another person. What was visual (point at it), became verbal (speak and hear), became written (write and read), and then became an electronic transmission. Telegraph became radio became television. Each approach was essentially the same: describe something in enough detail such that the listener could create the same picture in their mind or on their device.

    In these approaches, the sender strives for enough detail that the listener can create an identical view. Complete accuracy is difficult. Differences are basically guaranteed, especially if changes occur to the picture by either party. Reconciliations attempt to repair the differences. Doubts gather whether the sender and receiver are staying on the same page. In some cases, the cost of reconciliation is so high that it is simply ignored and differences accumulate.

    Some mitigations have arisen. The simplistic sending of a flat file, as a description of the object, has moved to the use of APIs. Systems now agree to the verbs used with an object and to use the verbs to communicate actions about the object. These verbs make up an API. With such, two or more systems can communicate about an object without actually exchanging the object. Color the car red, Credit the account $500.

    Blockchain technology adds a new approach to our toolkits. Blockchain technology enables the sender and receiver to always interact with the same object, the same noun. The local copy of the object is complete and synchronized across each participant of the blockchain network. No explicit interpretation or reconciliation needed. We now have a new tool, a new ability to share the noun, a single noun**.** The historic approaches of trying to describe, create, and work through verbs are not limiters any more.

    By sharing the noun, blockchains create opportunities for new paradigms where all participants see the same object and every change to the object. The verbs do not need to be agreed upon. This freedom to interact with the noun, a shared object, without agreement as to how, is a very different and new approach.

    How do we think about existing business models in a model of sharing the noun? Submitting a medical claim becomes simply placing it on the blockchain. After that, all participants can edit, approve, pay, reject, bundle, and take any action they want on the claim. Imagine six companies, sharing a blockchain. Each has connected their systems to the blockchain to take action as changes are seen on the chain, and to submit their own changes to the chain. Everyone on the network can work simultaneously. As every participant sees every change on the claim, taking action on edits becomes easy and automatic.

    This model of sharing a noun is unlike any business process today. No longer restricted by previous modes of communication, we can each see the same noun and operate on it together. We have an opportunity to move from linear, assembly-line workflows to constant and simultaneous interaction. This is an exciting opportunity and to explore it, we must begin using blockchains in our production processes. We should not seek the “killer app.” Instead, we should create a thousand new opportunities for new interactions, value creation, and niches in our ecosystems. As these opportunities succeed and some fail, we will learn. Let’s begin exploring the uncharted areas of our maps.

    This article originally appeared at Hyperledger.

    The post Blockchain: A Shared Noun appeared first on The Linux Foundation.


Tmux Commands

screen and tmux

A comparison of the features (or more-so just a table of notes for accessing some of those features) for GNU screen and BSD-licensed tmux.

The formatting here is simple enough to understand (I would hope). ^ means ctrl+, so ^x is ctrl+x. M- means meta (generally left-alt or escape)+, so M-x is left-alt+x

It should be noted that this is no where near a full feature-set of either group. This - being a cheat-sheet - is just to point out the most very basic features to get you on the road.

Trust the developers and manpage writers more than me. This document is originally from 2009 when tmux was still new - since then both of these programs have had many updates and features added (not all of which have been dutifully noted here).

Action tmux screen
start a new session tmux OR
tmux new OR
tmux new-session
re-attach a detached session tmux attach OR
tmux attach-session
re-attach an attached session (detaching it from elsewhere) tmux attach -d OR
tmux attach-session -d
screen -dr
re-attach an attached session (keeping it attached elsewhere) tmux attach OR
tmux attach-session
screen -x
detach from currently attached session ^b d OR
^b :detach
^a ^d OR
^a :detach
rename-window to newname ^b , <newname> OR
^b :rename-window <newn>
^a A <newname>
list windows ^b w ^a w
list windows in chooseable menu ^a "
go to window # ^b # ^a #
go to last-active window ^b l ^a ^a
go to next window ^b n ^a n
go to previous window ^b p ^a p
see keybindings ^b ? ^a ?
list sessions ^b s OR
tmux ls OR
tmux list-sessions
screen -ls
toggle visual bell ^a ^g
create another window ^b c ^a c
exit current shell/window ^d ^d
split window/pane horizontally ^b " ^a S
split window/pane vertically ^b % ^a |
switch to other pane ^b o ^a <tab>
kill the current pane ^b x OR (logout/^D)
collapse the current pane/split (but leave processes running) ^a X
cycle location of panes ^b ^o
swap current pane with previous ^b {
swap current pane with next ^b }
show time ^b t
show numeric values of panes ^b q
toggle zoom-state of current pane (maximize/return current pane) ^b z
break the current pane out of its window (to form new window) ^b !
re-arrange current panels within same window (different layouts) ^b [space]
Kill the current window (and all panes within) ^b killw [target-window]
  • Make ISO from DVD

    In this case I had an OS install disk which was required to be on a virtual node with no optical drive, so I needed to transfer an image to the server to create a VM

    Find out which device the DVD is:



    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 464.8G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 11.8G 0 lvm [SWAP] └─centos-home 253:2 0 403G 0 lvm /home sdb 8:16 1 14.5G 0 disk /mnt sr0 11:0 1 4.1G 0 rom /run/media/rick/CCSA_X64FRE_EN-US_DV5

    Therefore /dev/sr0 is the location , or disk to be made into an ISO

    I prefer simplicity, and sometimes deal with the fallout after the fact, however Ive repeated this countless times with success.

    dd if=/dev/sr0 of=win10.iso

    Where if=Input file and of=output file

    I chill out and do something else while the image is being copied/created, and the final output:

    8555456+0 records in 8555456+0 records out 4380393472 bytes (4.4 GB) copied, 331.937 s, 13.2 MB/s


    read more
  • Recreate postrgresql database template encode to ASCII

    UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';

    Now we can drop it:

    DROP DATABASE template1;

    Create database from template0, with a new default encoding:

    CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; \c template1 VACUUM FREEZE;

    read more