Decentralized Next-level Collaboration Apps with Syn

Usually I am more energized by building tech than by talking about it, but I am so excited about what my son and I did over winter break, that I just have to share about it here.  In an odd kind of busman’s holiday, I spent a good chunk of my time off writing a Holochain application.  Coding with my kid is just pure pleasure for me, but I have to describe the additional incredible experience of having spent 4 years building a tool, and now suddenly being able to use that tool to build what it was meant for: creating collaboration applications.

My passion for Holochain has always been sourced in upgrading our collective intelligence, which means making it easier and more joyful to collaborate together.  In early December, Art and I sketched out, in an afternoon, a generalized pattern on Holochain for real-time collaborative apps like Google docs where you can type in the same document as others simultaneously, and see their cursor moving around.

Over the holiday break, it took qubist and me just one week to prove out SynText, a peer-to-peer collaborative text editing application


Not only will it be incredibly easy to add other such applications on top of the UI pattern and Holochain DNA that we built, but this pattern will allow git-like branching, forking, and merging, in a user-friendly way for any type of collaborative work, not just code.  

My deep excitement in this achievement is two-fold: it’s both practical and also deeply philosophical:  

  1. Syn demonstrates the technical threshold that we’ve crossed in landing Holochain.  It was just easy and fast to build it, and things are working like a charm.  
  2. The patterns in the app bring a level of awareness and embodiment of the deep principles of Holochain’s architecture to the forefront. These patterns are all about creating thrivable social-coherence.  And by that I mean the kind of social-coherence that arises not from structural coercive centralization, but from peers collaborating by consent.  This matters to me.  

So, here’s the story about Syn, and bear with me through some back-story because it’s important.

Back-story: Agent-Centric Data Enables Collaboration

If you’ve been following the Holochain/Holo story at all, you’ve probably heard that Holochain is “agent centric.”  Strictly speaking this is true, but unfortunately it has hidden a deeper truth about Holochain.  Let me explain: we used the term *agent-centric* to distinguish Holochain from other software architectures (especially in the blockchain world) that are philosophically *data-centric*.  The prime concern of blockchain ledgers is to create a single “consensus” view on a data reality in the distributed peer-to-peer world, where that’s a known hard problem.  In the case of Bitcoin, the idea is to create a data reality of the location of digital coins: who spent them and with whom.  In the case of Ethereum, the idea is to create a data reality of not just coin locations, but also the state of a global computer that you can write and run programs on, i.e. “smart-contracts”.  

The reason creating these data realities is a hard problem in the decentralized network world is that it’s impossible to determine the absolute ordering of events.  This is a simple fact of physics.  In the client–server paradigm this isn’t even a problem, because we start from a centralized server where there is a canonical notion of what the data is and a canonical time.  The central server stores the data reality.  The brilliance of blockchain is that it provides a protocol for distributed peers to hold data reality together, be it the order of transaction of Bitcoins, or the ordering of computation steps on Ethereum. But it does this by enforcing a single ordering of events.  The stupidity of blockchain is that the protocol it uses to enforce this single ordering of events is incredibly expensive, extremely wasteful of computation power, and generates obscene amounts of greenhouse gases. On top of all that, for almost all distributed collaborative applications it’s not even necessary to keep one single global ordering of events. It’s easy to make this mistake of thinking so if your purpose is a trust-less system that’s trying to track the location of digital coins, but it turns out that you can still solve that same problem a different way.

Where is true data? Ordering of…. Merge of Perspectives?
Centralized client-server 
Central server, canonical version content is absolute as performed by the central server. Forced (There is only one central perspective.)
Data-Centric, Bitcoin All peers hold copies of data processed via a validation protocol transactions is based on randomized selection of one miner’s sequencing for each block to construct Consensus of token reality. Forced (One perspective is kept for each block, all others discarded)
Data-Centric, Ethereum All peers hold copies of data processed via validation protocols content is based on randomized selection of one miner’s or staker’s sequencing for each block to construct Consensus of a global computer and smart contracts. Forced (One perspective is kept for each block, all others discarded)
Agent-centric, Holochain Peers hold data they’ve authored, as well as data they’ve validated from other peers. Agents can see or create different realities/times content is based on its actual local order, since data is only truly sequential in the experience of an agent.  Relative ordering across many people’s local state orderings can be established by explicit protocols and agreements to create shared reality in a case-appropriate way. Merges only when needed, functions like git. All perspectives are preserved.

Enter Holochain.  The **
agent-centric** view point starts from the understanding that data is derived from agency. It does not have “primary” ontological status.

Data is essentially and fundamentally a record of a particular agent’s experience, be that a human, a sensor, or a device. In reality, agents see/sense/detect different things and receive feedback in different orders representing different realities. If any record’s provenance is separated from it, then the “data” represented by that record is fundamentally broken.  We can only make sense of data if we know who sensed the data.  This is why absolute ordering of massively simultaneous computation is impossible.

But herein lies the “unfortunate” part that I mentioned before.  I have seen people jumping on Holochain’s agent-centricity as if it were an ideological stance about the supremacy of individual rights.  It is true that the agent-centric approach will help achieve some crucial goals in individual rights, especially around privacy, and preventing inappropriately centralized entities (corporate or governmental) from abusing data privilege. But this is only the first part of the story.  

A Holochain application’s architecture is better described as **collaboration-centric**.  Start with the reality of agency. Don’t dis-empower these agents.  Instead fully empower them to enter into non-coercive play together with agreed upon rule-sets. Then what you get is thrivable social-coherence.  This is what Holochain is designed to embody.  And it’s working!

So, enough back-story on the philosophy and infrastructure, now for the “front-story.”

Front-Story: Combining the two mother apps of collaboration

So here’s the big deal for me about Syn: It creates the possibility of merging the two most powerful aspects of collaboration software and doing so in the fully decentralized world. This merge, will, I believe have some really interesting consequences, but first the aspects are:

  1. Real-time multi-user “document” editing
  2. Alignment of multiple realities: i.e. branching and merging

I’m assuming that point #1 above isn’t controversial, as I will bet that upwards of 75% of everyone reading this has switched from a local word-processor to Google Docs or HackMD for almost all of their text editing.

Point #2 probably ought not be controversial as indicated by the prevalence of git in software development, but it might need a little explanation for those readers that don’t do team coding and therefore aren’t making code commits and branching, forking, and merging many times a day. Even for those of you who are, if you grew up doing so always with your git repos centralized on GitHub, you may be missing a key part of the decentralization story.

For me, the first time I understood what distributed software and peer-to-peer really meant as an architectural reality was when I switched from Subversion to Git for version control.  Subversion was based on the mental model of a centralized repository (a database of changes to the code’s text files) from which coders would 1) make local check-outs of that source code 2) edit the files, 3) and then make a commit (which is storing back into the database a set of such changes), but 4) you might have to merge your changes before you could make the commit if someone else had committed first, which entailed resolving any conflicting changes.  Coders could also make a branch (which was a copy of the repository) and create a bunch of commits on that branch and merge those in too, but the mental model was still of some central place with a single “canonical” reality that the group of coders was updating.

Git was different.  Git assumes no center point.  It assumes that each coder has their own copy of the code repository and can pull and push changes to any other distributed copy of the repo they have permission to access.  It assumes that all changes are made to local branches and that branches will be created and merged all the time.  It embraces locally divergent realities and eventual group consistency. 

If you think that your git repository on GitHub is somehow special, well from git’s perspective it isn’t.  It’s just a repo that a bunch of agents have agreed to use in a hub-and-spoke synchronization pattern.  Your “git push” could be directly to your friends repos if they gave you access and you added them as a remote.  In that case you would just be agreeing to a more mesh-like collaboration pattern.  

Of course github has loaded lots of collaboration value-add on top of just being a place to embody the hub-and-spoke pattern, with issues, pull requests, kan-ban boards, integrated CI, etc.  This is an important part of the story which is part of a pattern that repeats: decentralized public-domain protocols spawn centralized proprietary value-add silos built on top of those protocols.  The detailed story of another example of this—about how AOL, GEnie, and Prodigy created chat-rooms, news services and all kinds of proprietary value-add on top of the primary feature of the internet’s SMTP protocol that provided the core service, email—is one I will tell some other time. But the key there is that proprietary value-add was erased by the arrival of another set of open protocols: http and HTML.  And I think that Holochain/Syn may be yet another example of this story of the orders-of-magnitude value level-up that happens in this evolutionary process.

I’ll show how in a bit, but first it’s important to understand what it takes to build Syn apps.

To make a Syn app you have to do just a few things:

  1. Define a state model that represents your application.  In the case of a text document this state model might be just two strings, the title and the document body.
  2. Create patch grammar that defines all the transformations that you can do to the state.  In our text doc example that might be just three things: insert a character at a position, remove a character from a position, and set the value of the title.
  3. Create a delta function which, given a state and a transformation, produces a new state. This is pretty easy to do with simple patch grammars.
  4. Create a UI that:
    • renders the state when it gets notified that the state has changed, and 
    • creates Syn transformations when the user would like to make a change.

Once you’ve done that, Syn takes care of the heavy lifting of coordinating between all the agents making and synchronizing changes, all without a central server.

That’s aspect 1 from the consequences of collaboration software above:real-time multi-user collaboration.  With one additional app-design task, Syn’s architecture also handles aspect 2, Alignment of multiple realities, in a general way:

5. Define a merge strategy for resolving differences between states and transformation sets.

This last task is where things get tricky to do well, and in general can’t always be done in a fully automated way. However, the idea is that when necessary, a merge strategy would include human intervention: manually (i.e. using human judgement) resolving the differences between conflicting change sets.  This is nothing new to git users who handle merge conflicts all the time! Note that it’s important that merge strategy is not generalized and specified per-app.  This is part of the power of the Syn approach. 

Once this fifth task is done, Syn becomes a general framework for adding branching and merging to any collaborative app.  At any given time, Syn has the notion of a session, which is just like a branch in git.  It’s a commit to treat as a starting point for a series of changes.  Unlike Google Docs which just has a single revision history, Syn provides, at the low level, a space for multiple version histories based simply on which session users join and start making changes.  With merging, the realities these branches represent can become aligned.  Because Syn supports generalized UI for creating/viewing/switching sessions and can insert the merging strategy defined by the particular app, this is a powerful pattern that used to be available only to coders using git. Now, suddenly, it can be applied to arbitrary collaboration apps.  In a way, it’s two-level collaboration, synchronously on the “same” state, and asynchronously on divergent/convergent state.

To me this is a big deal.  If collaboration is about empowered agents entering into non-coercive playing together by agreed upon rule-sets, then this pattern in Syn is a massive level up meta-rule-set for doing so.

Imagine Wikipedia articles with multiple branches that reflect the true differences we have rather than just being fights in the talk pages, frozen around the assumption that there is a single, neutral point-of-view.  And because of their many branches, they can actually merge when people find a way to represent those divergences in ways that can be understood by those who were arguing.  That’s next-level collaboration.

Imagine creating branched spreadsheets where each branch models entirely different scenarios off of a core set of assumptions that can then get merged together as reality shows us what happens.  That’s next level collaboration.

Imagine the concrete vocabulary of conflict resolution that emerges as we develop new and interesting merge strategies for conflicting change sets in different application contexts. What does it mean to resolve two different color choices applied to the same object by different people in a drawing program?  I can imagine an ad-hoc Syn app spinning up that lets people on the fly make proposals and vote, or do rock-paper-scissors, or whatever… all as part of resolving a merge conflict in another Syn app!  That’s next level collaboration.

Do you see the implications?  I’m excited.

P.S. The holo-hosting team has been using an online-stickies tool to manage choosing topics for our virtual retros.  On seeing Syn one of our team members dove right in and got this working in no time:


P.P.S. teaser for the hyper-nerdy reader:


P.P.P.S  A number of folks helped with this article:  Thanks first of all to Will for being a co-conspirator-in-syn-itself and for detailed edits and clarifications here. Thanks Jean Russell for supporting and pushing me to get this out, and especially for the initial draft of the comparison table.  Thanks to Pospi, Guillem Cordoba, Siddharth Sthalekar, Hedayt Abedijoo, Emaline Friedman for comments edits and suggestions that made this article much better.  And finally thanks to Art Brock for the usual co-creative sketching of things out that we can then turn into reality.

Supremacy Consciousness, Grammatic Capacity, & Play

As is pretty obvious I don’t write much here.  My focus for the last 4 years has been pretty singular on getting Holochain and Holo built.  And writing takes me a long time.  I also have a hard time writing to the void of the Internet, I need to be in a direct conversation to share well.  Recently a friend made an open invitation to respond  “about what you’re seeing and thinking in the world right now.”  and he provided these prompts:

  • What are you seeing more clearly now? What seems less clear or certain to you now than it did previously?
  • What are the biggest/most interesting/most urgent open questions on your mind at the moment?
  • What issues do you think the world isn’t paying enough attention to?
  • What could we be doing that we aren’t doing right now to move towards more positive outcomes for the world? What do you think is standing in the way of us doing that?

Given that we’ve recently crossed some major development thresh-holds in Holochain land, and I’m feeling really positive about where things are going, I felt that I had the spaciousness over my end-of-year break to actually sit down a respond.  Here’s what I wrote (along with some images to spice it up):

Great Chain of BeingI see the “the world” (as you called it) as mostly people living inside a certain form of consciousness (or what’s sometimes called a “dominant meta narrative”) coupled with a slew of embodied forms that work together in a self-perpetuating feedback loop that creates a reasonably stable and coherent set of social organisms that all together we call “society”.  I also think the dominant meta-narrative is fairly uniform across the broadest range of cultures on the planet, i.e. it holds true for most of us.  I would call this meta-narrative, Supremacy Consciousness, in which humans experience a hierarchy of supremacy, usually putting themselves near the top.  This overarching narrative leads to all kinds of the sub-supremacies, human, national, white, male, etc. It creates a reality in which it feels reasonable, even “natural” to create nation-states that colonize the “undiscovered” world.  It creates a reality in which it feels reasonable to run an economy on businesses that permanently enclose value while externalizing costs as much as possible.  It creates a reality in which it makes sense that our main embodied token on value: Money, has the properties it does: tracking only tradable wealth, issued as debt such that the interest helps catalyze and perpetuate the supremacy hierarchy.  It creates a reality in which it makes sense to separate classes, races and genders and order their valuation, and inside this meta-narrative, it makes sense that those orderings are even internalized and held by the people who suffer under them.  And by “sense” I don’t mean anything good, I just mean it creates a coherent set of stories and embodied forms that self-perpetuate.
The good news is that this meta-narrative, which has mostly been successfully hidden from view, is becoming more and more apparent.  The bad news is that at scale the consequences of the Supremacy Consciousness is self-destruction. This comes largely because the coherence it creates, one of dominance and extraction, has met the real planetary boundaries of both natural and social ecosystem health.  The worse news is that the system dynamics in play are, I think, very similar to those of addiction, where all the solutions available to the current embodied forms only make things worse.  For example, a core problem of the world is using money to measure value.  But almost nobody can envision a world without money, only a world in which money is somehow differently distributed.  Even thinking about a “world without money” is mostly considered idealistic political utopic speculation rather than a serious systems theory problem about how to measure and build different classes of value.
Another, perhaps even more simple way to put the above is this:  I’m interested in a world where greater collective intelligence is possible.  The current underlying patterns of collective intelligence, although pretty darn incredible in some respects, are leading us to collective suicide at scale, which I’d like to avoid.
So then, what’s to be done?  What creates greater collective intelligence?  What, in the words of your prompts “could we be doing that we aren’t doing right now to move towards more positive outcomes for the world? What do you think is standing in the way of us doing that?”
Here’s the story of _what_ I’m doing to that end, _why_ it makes sense to me, _how_ I’m going about it, including the _blockers_ I see in getting there and what might be done about them:
What: I believe the world needs a new grammatic capacity.  We need a _grammar_ that can express social organisms with as much complexity and composibility as that provided by the grammar we call DNA for expressing biological life. We need the embodied _capacity_ to bring them into being with as much ease as the cell has in cranking out assembling the protein complexes and expressed in genes.
Why: It seems to me that all large-scale fundamental systemic change comes about because of the arrival of new grammatic capacities.  Some examples at the small scale: DNA is the grammatic capacity that allows for life, hormone-complex-signaling is the grammatic capacity that allows for multi-celular organisms, neuronal signaling is the grammatic capacity that allows for animalia. Some examples at the familiar human scale: human language (subject/object/predicate utterances) is the grammatic capacity that allows for culture.  Writing (phonetic and ideographic) is the grammatic capacity that allows for coordination that leads to human planetary scaling.  And I hope I don’t need to mention the grammatic capacity we call networked computers and the changes they lead to. If large-scale systemic change is the goal, a new gramatic capacity is, at the very least, part of the game, if not _the_ game.
How: So, if we need a new grammatic capacity that works for representing, and expressing social organisms into being, how do we go about that?  Well, let’s look at grammatic capacities in general. What are they like?
First, the powerful fundamental ones all look like a stack built out of, guess what, other grammatic capacities.  Stories, the high level expressions the grammatic capacity we call Language, are built out of paragraphs, which our built out of sentences, which are built out of sentence fragments, which are built out of words, which are built out word-parts, which are build out phonemes, which are built out phones.  Each of these levels have their own distinct grammatic integrity which are related to the capacity in play for expressing and receiving the grammatical units at that level.
Biological organisms are built out of protein complexes, so it makes sense that the lowest level code in DNA is for single amino-acids such that virtually any kind of protein complexes can be built.   This demonstrates another key aspect of grammatic capacities: they provide a template for composibility of fundamental parts. What are Social organisms built out of?  We can certainly argue about this, but, at least roughly speaking, they appear to me to be built out of agreement complexes.  Sometimes people call these “social contracts.”  Thus, it seems likely that the lowest level of our grammatic capacity should code for “micro-agreements” in a way that allows them to be composed.
Another way of looking at such “micro-agreements” in the social space is that they are patterns for interaction between agents that allows the agents to come into alignment on a shared reality, what we can call a Protocol.  Protocols are exactly these patterns for interactions between agents.  They are templates that create shared contexts so that we can understand each other better and more efficiently.  We are all very familiar with both formal and informal protocols, from the pattern of a Pilots repeating back what Air-traffic-controllers say, to the patterns of thank-you-you-are-welcome of politeness, to Diplomatic protocols of behavior at state dinners, these are all little micro-agreements that allow us to act within a pre-defined shared context instead of having to hash everything out in each interaction.
So, our new grammatic capacity then would provide a grammar for creating and composing such Protocols, such that it’s easy for groups of people to build larger agreement complexes out of them.  Here’s where things get fun.  A Protocol as just defined is just another way of talking about a grammatic capacity:  DNA provides the protocol stack for cell agents to align on a shared genetic reality and build organisms together.  Language provides the protocol stack for human agents to align on a shared expressivity reality and build meaning together.  If so the grammatic capacity we need is one in which we can create grammatic capacities.  A Protocol for Protocols.
So that’s the focus of all my endeavors.  How to do that in big and small ways.  Gameshifting as used in Agile Learning Centers is an example.  It’s a protocol for knowing and shifting which social protocol is in play.  The MetaCurrency ProjectCeptr and Holochain are all about bringing this into the world for use at scale.
A final note about “How” and this has to do with “blockers”.  The how of landing such a protocol for protocols matters.  There are different global scale social dynamics that will arise depending on whether this grammatic capacity is owned or enclosed, vs if it’s held as a commons.  If the carriers on which the signals in the grammar are sent are owned, then then that creates a huge power-imbalance.  Thus, the unenclosability of the fundamental carriers of the grammatic capacity makes a huge difference in what will evolve there.  The deep pattern of enclosure that’s built into the capitalist approach is a huge blocker to making this all land in the world.  There’s a lot more to say about this, but I think this is long enough for now.
To end this screed, I’d like to come back to the beginning and connect grammatic capacities to Supremacy Consciousness.  Achieving supremacy always relies on coercion of one sort or another.  Violence is the word we use for coercion on the physical level.  We also recognize other forms of non-physical coercion as violent, or at least we call it abusive. We recognize coercive manipulation of media and information, “Fake News” etc.  These are all practices inside Supremacy Consciousness.
So the other way seems fairly clear.  If I base all my actions in the spirit of non-coercive conversation, I will be living outside of Supremacy Consciousness.  So many things I do require coercion of others.  Extracting myself from the coercive life is non-trivial.  But I believe that in the end, this will feel, interestingly, like play.  As James P. Carse says in Finite and Infinite Games:  “he who must play, cannot play”.  Play cannot happen inside the context of coercion.  But play is also all about temporarily creating finite boundaries, and rules by which to enter into consentfull play. And this is the role of the Protocol for Protocols.  It could be, by consent, a temporary game for creating more temporary games, knowing that we will always want to expand the horizons of our game playing together.

The App: from Killer to Mother

Killer AppThe Wikipedia defines “Killer App” as a marketing term for “any computer program that is so necessary or desirable that it proves the core value of some larger technology.” Not surprising that the term comes from marketing, that branch of business devoted to competing for customers and trying to kill off the competition. But if we remove ourselves from the context of dog-eat-dog, and then start from that definition and work backwards to come up with a single word that it defines, well, “killer” hardly seems right. “Mother” fits much better. Those applications that seed the growth of whole new realms, we ought to call Mother Apps.

VisiCalc, the first spreadsheet app, often gets used as the prime example of a Killer App. Lots of folks bought Apple II computers just so they use VisiCalc. More broadly e-mail (as a category of App) frequently gets nominated as the Killer App for the Internet. Pretty obviously nothing was killed in either of these examples but lots got birthed.  More recently the term Killer App has become diluted in common usage to mean any indispensable computer program. Just try typing into google “X is the killer app”, and substitute for x with Facebook, Twitter, Instagram, etc, and you’ll see what I mean.

But I find it really useful to maintain that distinction of source or spring-board. So I offer this definition of “Mother App”: a computer program (or class of program) that uses a technology in a new way to both reveal and unleash its power.” I hope it catches on!

Current-see and Death Straight Talk

I haven’t written much lately, I guess I’ve been busy… mostly with two things: Cancer & Ceptr.

Currently, my time is about living with a spouse with stage 4 metastatic breast cancer and all that it takes to support her as well I can. My work is about building tools for a post-monetary society; creating a new meta-language to allow a vast expansion in social forms that is currently limited primarily by the world’s current statement of value: money.  These two worlds have recently come together in ways worth writing about.

WhDeath Straight Talk Stickeren describing my work-in-the-world, people are always asking me for more examples.  Because abstract descriptions like the one in the paragraph above don’t really do it for folks. I get it.  But it’s hard for me!  When what you are designing is like grammar for a kind of language that doesn’t exist, it’s pretty hard to give examples of sentences in that language, because it doesn’t exist yet!  But there are openings into what that language looks like and what it might feel like to “speak” it.  Here’s the one that comes from the intersection of my two lives.  It’s called DST (Death Straight Talk).

First, go and read my post about DST on Ellen’s cancer blog.  There I share the concrete personal story, when you get back here I’ll tell the current-see story that connects it to my work:

In the post-monetary world, value coordination isn’t reduced to a unidimensional bottom-line of money.  We actually already live with one foot in that world.  We are swimming in non-monetary current-sees like grades, credits, degrees, e-bay/Amazon/Uber ratings, food certifications of all sorts (USDA Organic, Fair-Trade, Non-GMO, etc)–the list goes on.  We just normally don’t recognize them as “parts-of-speech” in a single “language.”  When we do, new things become possible.  

This is what happened to me around DST.  Pretty much everywhere I go now I look at the world through the lens of seeing all the information token systems we use to coordinate our actions.  Movie and train tickets are current-sees, so are postage stamps, and buy-10-get-1-free coffee cards, intake-forms, passports, and licenses, the list goes on and on.  I look for the current-see life-cycle, the issuer, the redeemer, other co-functioning current-sees, and I look for the level of wealth the current-see corresponds to in our living systems model of wealth.

In December, Ellen got diagnosed with malignant pleural and pericardial effusions, which required hospitalization to get drains inserted to relieve fluid buildup in the sacs around her lung and heart (cancer cells muck up the usual flow paths).  While in the hospital a protocol around a slightly lowered blood sodium level involved giving her “some fluids.”  Seemed innocent enough.  Well, in Ellen’s case, those IV fluids ended up causing pretty extreme swelling in her feet (she renamed her feet manatees).  The swelling was bad enough on its own, but due to neuropathy from previous chemotherapy, meant that thereafter walking was almost impossible due to the pain in her feet.  It took three weeks for the swelling to go down, and for Ellen to do more than hobble.  This had a cascade effect on loss of muscle which still hasn’t returned.

It’s pretty clear to me that the protocol that triggered the IV fluids didn’t take into account increased swelling risk, that, it turns out, comes from protein loss from pleural fluid drainage.  I really doubt it took into account added pain due to neuropathy.  And I know for certain that it didn’t take into account quality-of-life assessment around the questions of balancing risk of loss of mobility for a person possibly in the last months of their life, because no-one asked.

At the end of January, I went to California to help co-facilitate a workshop on Deep Wealth Design principles.  On the last day of my trip, I got word that Ellen was back in the hospital again.  After the previous hospitalization we had talked lots, and felt pretty good, about how to communicate with the medical world about her specific risk around IV fluids to prevent immobilization by swelling.  But this time around there was much more going on.  The short version: I could tell that lots of hospital protocols weren’t going to take into account Ellen’s situation, and what she wanted given her prognosis of limited life span.  

Then it hit me, probably because I was primed by the workshop:  Medical staff have a current-see that they know how to pay attention to, the Do-Not-Resuscitate order (DNR).  And it’s issued by the patient!  I knew we need something like that, and that I had to have an acronym to refer to it.  That’s how DST came to be. The rest of the story you know from my post on Ellen’s blog, but from a current-see perspective here’s the take-home:  Adding a token issued by the patient allows re-evaluation of risks built into other protocols based on that patient’s stated understanding of what will create well-being for them.

Note that DST so far isn’t a real current-see, because, unlike a DNR, there’s no social agreement on its issuance, use and life-cycle.  But just my words to nurses “pretend like she has a DST sticker in her chart” made it work as if it were.  It connected the main current-see hospital staff has to work with, the chart, with Ellen’s particular place in the flow.  It’s a pretty powerful example of the effect of current-sees on social systems, and my own beloved’s well-being in the midst of them.

I want this story to give you a visceral sense of how the social body gets built out of the formal information tokens we create  Yes, underneath it’s the humans and their compassion and love and all that great gushy stuff that really matters.  But the social body is built out of communication tokens and the agreements around their use –things like DST.  We will lose what really matters if we don’t understand this.  When we understand it, really and deeply, then we will also develop a kind of “language”, that can all “speak” to allow us to spin up various DST-like current-sees, and to evolve them on the fly.

When we have that new “language,” then we will have stepped fully into the post-monetary world.  That’s why I work on Ceptr and the MetaCurrency project.


Behold, the magpi…

And, YAAP (Yet Another Arduino Project), the Micro Arduino Gaming Platform Interface. Finally I’ve done the “shareable value” part of putting together an instructables for how to make the retro-game controller I built for (and with) Will for Christmas. I love this video of Will demoing it:

Das Blinken Bonken!

Seems like end of the year is DYI electronics projects time for me as the Sound Alarm happened round this time last year too.  Well, I’ve been having a ball making Arduino stuff, this time as Christmas presents.  This time I got my documentation act together even more and made a construction tutorial on instructables too!   The code for Das Blinken Bonken is on github, and here’s a video of Jesse showing off the game:

Arduino Sound Alarm

I’ve just completed my second Arduino project, a sound level detector which sets off an “alarm” when there’s the sound level is to high for too long.  I built it for use in a school that wants to provide visual feedback to students when they are being too loud.  The “alarm” is a string of flashing LEDs that’s controlled by an IR-remote, which I reverse engineered using the the arduino itself and the excellent IRremote library to figure out which codes activate the LED string. The IRremote library includes an example that dumps the codes and code types that remotes typically use.  So I just ran that example with my arduino hooked up to an IR detector from adafruit.  It was really quite easy to do.

It’s been a fun project because it’s quite flexible and configurable.  Here’s a short video of the finished product:

For anyone who wants to build one of these here’s a bread-board diagram that I made using the very cool Fritzing package:

The Adruino sketch that powers this is available on github.

Here are some details on the circuitry.  The sound detector is based on the ZX-Sound board. Here’s a nice post on the site that I used as my starting place for building the sound part of this board.  The video helpfully includes a parts list which I sourced from Allied electronics, all except for the mic.  The LCD is the $10 16×2 from Adafruit (their tutorial on wiring it up was great), and I also used their electret microphone.  One note about the microphone is that it’s polarity matters.  If you get it in backwards, it’s much less sensitive.  I found this out purely by accident!  I also used their IR LED.

Here are some photos of assembling the project.

First the prototyping phase:

Then building the connector for the LCD:

Then drilling holes and installing the configuration controls (push-button and pot)

Then assembling and soldering the board with the sound circuit and the trim pot for the LCD as well as the resistor for the IR LED.

Finally, just before enclosing..

The completed project.  Note that I left the mic and IR LED lose because I’m not sure exactly where the alarm is going to be installed and the way they face could matter.

Some lessons learned:

  1. When soldering a header for an LCD remember to take into account that if you copy the wiring order as you have plugged it into the bread-board, you will actually be doing it backwards because the connecter will be attached upside-down!
  2. You will need to drill a little extra hole in your case to accept the tab on the pot that keeps it from rotating when you spin the shaft.
  3. Electret microphones have a polarity.
  4. Hot-glue is great for attaching push-buttons.
  5. Ask you children for UI advice!  Will had the excellent idea of using the setup-pot to spin between the different settings.  In the original code I had it so you had to press the button to toggle between the setup parameters and then do a long-press to actually set one.  The way it ended up is much better.

Parts List:

Arduino Uno: ($29.95)

Makershed Arduino Enclosure: ($15.00)

9V powersupply: ($6.95)

100K Potentiometer: Radioshack ($1.69)

pushbutton switch: Radioshack ($.99)

Breadboard PCB: ($3.00)

Electret Mic: ($1.50)

IR LED: ($.75)

LCD 2×16: ($9.95)

Components: (~$5)

  • resistors: 1k ohm x 2; 100k ohm x 2; 12 ohm; 39k ohm; 22k ohm; 230 ohm (for IR led)
  • capacitors: 470uf 16v; 0.1uf 50v; 22uf 25v
  • Dual op amp IC: TLC272

Total Price: ~$70