<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Untitled RSS Feed]]></title><description><![CDATA[Untitled RSS Feed]]></description><link>https://dougwebb.site</link><generator>metalsmith-feed</generator><lastBuildDate>Wed, 15 Jul 2026 18:16:07 GMT</lastBuildDate><atom:link href="https://dougwebb.site/rss.xml" rel="self" type="application/rss+xml"/><author><![CDATA[Doug Webb]]></author><item><title><![CDATA[Position Statecharts]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">Position Statecharts</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>5th Jul 2026</time>
                    
                        — Version 1.0.0
                    
                </p>
                <h2>Abstract</h2>
<p>The power and responsibility one has in a situation is formalised by one's position within it; positions and the ways of entering/exiting them — <em>position systems</em> — are thus a foundational governance concern. Constitutional ambiguities may remain hidden and newcomer empowerment may be obstructed if a position system is not clearly understood. This article aims to make such information more easily understandable through visualisation with appropriate diagrams. To establish a grounded understanding of position systems and their context within governance, the Institutional Analysis and Development framework is examined. The state machine model, which represents system behaviour as states and transitions, is then considered as a fit for position systems. The argument is made that position system can be modelled as state machines, with positions and their entry/exit events being mappable onto states and transitions respectively. The extension of state diagrams to statecharts are well-suited to visualize position systems. The planning and production of such a position statechart for a real-life case using pen &amp; paper and free and open-source software is demonstrated.</p>
<figure>
	<img src="excalidraw/3_KanthausPositionStatechart-chartOnly.excalidraw.png" class="excalidrawPNG" alt="A somewhat intricate chart. A large, orange rectangle is titled 'Kanthaus', within which are 3 further rectangles, from left to right: a greenish one titled 'Visitor', a pinkish one titled 'Volunteer' and a bluish one titled 'Member'. Outside the 'Kanthaus' rectangle, to the left, is a small rectangle title '(No position.)' - Hello alt-text reader/listener! I am honestly a bit overwhelmed how to continue with this article, since article focuses on visualising text. For now I am going to intentionally leave the alt-text blank for images where I feel the text + figure caption sufficiently describes the image. Happy for feedback and suggestions.">
    <figcaption><strong>Figure 1. </strong>A position statechart of the Kanthaus position system. (Position changes which are voluntary or result from conflict resolution intervention not shown.) <a href="/excalidraw/3_KanthausPositionStatechart.excalidraw">Source 🗡️</a></figcaption>
</figure>
<h2>Introduction</h2>
<p>In 2025 I initiated a change to the <a href="https://git.kanthaus.online/kanthaus/kanthaus-governance/src/branch/master/documents/constitution/constitution.en.md">Kanthaus constitution</a>. (<a href="https://kanthaus.online">Kanthaus</a> is a &quot;project house&quot; I co-founded in 2017.) The system of positions had some <a href="https://wiki.kanthaus.online/User:Doug/(Archive)_2025_position_system_proposal">long-standing issues</a> I wanted to fix. During the discussion to find a solution, David posted a &quot;state/flow chart&quot; he had sketched to clarify the <em>status quo</em> (Figure 2.)</p>
<figure>
	<img src="img/David's diagram.png" alt="A large diagram with many nested boxes and arrows going inbetween. Boxes and arrows are labelled." loading="lazy">
    <figcaption><strong>Figure 2. </strong>David's state/flow chart of the Kanthaus position system.</figcaption>
</figure>
<p>I had made vague sketches in that direction in the past, but nothing so comprehensive. Although graphically a bit confusing, the chart helped make the somewhat challenging text of the constitution easier to understand, and highlighted some ambiguities: could a person become a Visitor through an evaluation at a higher position without a host? Without conclusively resolving every issue, we came to a good-enough consensus and changed the constitution. David's diagram sank into memory.</p>
<p>Then in early summer 2026 I went to friend's doctoral defence. As the debate over the philosophy and history of ideas washed over me, I leafed through a hard-copy of the thesis. The utility of diagrams sprang back to my attention when I read, and re-read:</p>
<blockquote>
<p>It is important to note that all Young Hegelians were Left Hegelians, however, not all Left Hegelians were Young Hegelians.</p>
</blockquote>
<p>While I understand such claims as text, it takes noticeable effort. In comparison, an equivalent diagram, in this case an Euler diagram, feels almost effortless (Figure 3.)</p>
<figure>
	<img src="mermaid/1_Set-of-Hegelians.mermaid.png" class="mermaidPNG" alt="A simple diagram of one rounded rectangle nested within a larger one. The bigger one is labeled 'Left Hegelians', the smaller one is labeled 'Young Hegelians'" loading="lazy">
    <figcaption><strong>Figure 3. </strong>Set relation of Left and Young Hegelians. <a href="mermaid/1_Set-of-Hegelians.mermaid">Source 🧜</a></figcaption>
</figure>
<p>And with that prompt, David's chart and the difficulty of comprehending the constitution came back to haunt me.<sup><a href="#user-content-fn-inspirationouborous" id="user-content-fnref-inspirationouborous" data-footnote-ref="" aria-describedby="footnote-label">1</a></sup></p>
<p>An argument for clear and transparent governance is made on egalitarian grounds by Jo Freeman in <em>The Tyranny of Structurelessness</em> (1972). In her reflection on the US feminist movement, Freeman describes their rejection of formal governance (&quot;structure&quot;) in reaction to the over-structured society women found themselves dispossessed by. While this approach did have some liberatory effects, the outright refusal to make <em>de facto</em> power structures transparent ultimately contributed to the formation of elites. The argument would be made on economic and ecological grounds with empirical justification some time later by Elinor Ostrom in <em>Governing the Commons</em> (1990), which we'll come back to shortly.</p>
<p>History and theory aside, anyone who's done any amount of organising will simply know how critical it is that everyone knows the rules, structures, governance. While text will likely remain the primary medium, could accessibility and comprehension be improved through visualisations? I say <em>yes</em>.</p>
<h2>1 Position systems</h2>
<p>I use the term <em>position system</em> to refer to the set of roles available in some context and the procedures for entering and exiting them. This section grounds that hopefully intuitive concept in some of the deep research done on that topic.</p>
<h3>1.1 Ostrom and the IAD</h3>
<p>Elinor Ostrom spent decades studying and meta-studying <em>common-pool resources</em> — extensive, natural resources like forests and fishing grounds — and the communities using them. She conclusively demonstrated that people can and do successfully self-organise to share such resources sustainably without state management or privatisation. While I hope you don't find this conclusion so surprising, in the economic debate of the 1970's the <em>opposite</em> idea was ascendant, feeding political narratives to justify distrust in communities and dispossession of indigenous people — and that idea is still alive.<sup><a href="#user-content-fn-toc" id="user-content-fnref-toc" data-footnote-ref="" aria-describedby="footnote-label">2</a></sup> Ostrom brought her work together in the book <em>Governing the Commons</em> (1990). She (co-)won the the Nobel Memorial Prize for Economics in 2009 for this work, the first woman to do so.<sup><a href="#user-content-fn-prizetechnicality" id="user-content-fnref-prizetechnicality" data-footnote-ref="" aria-describedby="footnote-label">3</a></sup></p>
<p>While economics has come to focus on money and markets, Ostrom focused on institutions, which she broadly described as &quot;the prescriptions that humans use to organise all forms of repetitive and structured interactions&quot;.<sup><a href="#user-content-fn-uidpg3" id="user-content-fnref-uidpg3" data-footnote-ref="" aria-describedby="footnote-label">4</a></sup> This broad understanding includes family structures, government committees and everything in between. It is with this lens of institutionalism she approached all her work, which was not limited to the commons. In her less famous but equally important book, <em>Understanding Institutional Diversity</em> (UID) (2005), Ostrom presented the Institutional Analysis and Development (IAD) framework, synthesised out of years of work to try and identify &quot;universal building blocks&quot;<sup><a href="#user-content-fn-uidpg5" id="user-content-fnref-uidpg5" data-footnote-ref="" aria-describedby="footnote-label">5</a></sup> for the incredibly varied institutional situations we find in our world.</p>
<h3>1.2 Action situations: Participants and Positions</h3>
<p>The IAD framework focuses on Action Arenas and the many Action Situations that occur within them. An Action Arena is some kind of space in which repeated institutional activity occurs. An Action Situation is a discrete interaction event between participants, some slice of day-to-day activity. To give some examples:</p>
<table>
    <caption><strong>Table 1.</strong> Example Action Arenas and Situations.</caption>
    <tr>
        <th>An Action Arena</th>
        <th>An Action Situation in that arena</th>
    </tr>
    <tr>
        <td>A school</td>
        <td>The headteacher changes the dress code, making ties now optional.</td>
    </tr>
    <tr>
        <td>A chatroom</td>
        <td>After warning them twice about spamming, a moderator bans a user.</td>
    </tr>
    <tr>
        <td>A co-housing syndicate</td>
        <td>At an assembly, members accept the entry of a new group.</td>
    </tr>
</table>
<p>The IAD identifies seven &quot;clusters of variables&quot; in Action Situations, which aim to cover all institutionally relevant elements of such interactions, named: Participants, Positions, Actions<sup><a href="#user-content-fn-actions" id="user-content-fnref-actions" data-footnote-ref="" aria-describedby="footnote-label">6</a></sup>, Information, Control, Net Costs and Benefits, and Potential Outcomes. The first two describe what I mean by position systems, with <em>Positions</em> referring to the recognised roles participants could hold and <em>Participants</em> referring to the specific individuals who hold specific positions (Figure 4.)</p>
<figure>
	<img src="excalidraw/1_ActionArena.excalidraw.png" class="excalidrawPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 4. </strong>The IAD Action Arena elements relevant to position systems. <a href="/excalidraw/1_ActionArena.excalidraw">Source 🗡️</a></figcaption>
</figure>
<h3>1.3 Rules: Boundary and Position</h3>
<p>But where did the positions come from? And how did the participants get to hold theirs? The IAD framework defines a region outside of the Action Arena it calls <em>Exogenous Variables</em>.<sup><a href="#user-content-fn-exovar" id="user-content-fnref-exovar" data-footnote-ref="" aria-describedby="footnote-label">7</a></sup> This region contains three elements that systematically affect a given Action Arena, and all the Action Situations within it:</p>
<ol>
<li>the physical and biological conditions of the environment</li>
<li>the culture of the community, and</li>
<li>the rules in use</li>
</ol>
<p>While all elements are significant, rules are most clearly in conscious control of the participants determine position systems. The IAD has seven rules categories, one corresponding to each of the Action Situation variables.</p>
<p><em>Position Rules</em> correspond to the <em>Position</em> Action Situation variable. They create positions, which Ostrom refers to as &quot;anonymous slots&quot; or &quot;holders&quot; for participants to enter (and exit). Positions are collective fictions which act as bridges between individual people and acceptable actions, turning position holders into members of a political class. Position Rules are restricted to cover <em>only</em> the creation of positions, mostly just naming them, and are therefore &quot;often not by themselves intrinsically interesting&quot;!<sup><a href="#user-content-fn-uidpg193" id="user-content-fnref-uidpg193" data-footnote-ref="" aria-describedby="footnote-label">8</a></sup></p>
<p><em>Boundary Rules</em> correspond to the <em>Participants</em> Action Situation variable. They define who is eligible to hold a position, and how eligible people can enter and exit positions and/or the group. Eligibility often refers to attributes people can't voluntarily change, like age, or location and will not be of further interest here. Rules may be compulsory (such as a defendant in a court case) but are typically voluntary (the participant may chose to enter, if allowed, and exit freely). Rules defining entry may be invitational (if participants may only enter via an extension from existing members) or competitive (if new members are selected by some competition, like a vote).</p>
<figure>
	<img src="excalidraw/2_IADextract.excalidraw.png" class="excalidrawPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 5. </strong>All IAD elements relating to position systems. <a href="excalidraw/2_IADextract.excalidraw">Source 🗡️</a></figcaption>
</figure>
<h3>1.4 Position systems — summary</h3>
<p>Elinor Ostrom &amp; co. developed the Institutional Analysis and Develeopment (IAD) framework to inspect diverse social interactions. It focuses on Action Situations, discrete events of participant interaction, which are situated within an Action Arena. Action Situations have seven internal clusters of variables. Rules, one of three Exogenous Variables, systematically affect the Action Situations, with one category of rules for each variable. Position Rules create positions and Boundary Rules define how participants can enter and exit those positions.</p>
<h2>2 Statecharts</h2>
<p>Now we turn to computers. I did not study computer science, and only heard about statecharts from a passing comment. But the more I looked into them and the state machines they depict, the more I became convinced they weren't too complicated — and a perfect match for position systems.</p>
<h3>2.1 State machines: states and transitions</h3>
<p>State machines are abstract models of system behaviour first introduced by Claude Shannon in <em>A Mathematical Theory of Communication</em> (1948). They are composed of only two elements:</p>
<ol>
<li><em>states</em> -  stable patterns of behaviour, and</li>
<li><em>transitions</em> - transient events that shift the system from one state to another</li>
</ol>
<p>A state machine can be used to model a system at different levels. It forces modellers to explore the possible states of the system in question, and in doing so identify unintended or troublesome situations.</p>
<h3>2.2 State diagrams — and explosions</h3>
<p>State diagrams are graphs depicting state machines where states are displayed as nodes (i.e. boxes) and transitions as directed edges (i.e. arrows.) A state diagram for a light switch could be:</p>
<figure>
	<img src="mermaid/2_Light.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 6. </strong>State diagram of a light. <a href="/mermaid/2_Light.mermaid">Source 🧜</a> </figcaption>
</figure>
<p>The black-filled circle in the above diagram represents an <em>initial pseudostate</em>, a symbol to indicate where the state machine starts.</p>
<p>OK, so no one really needed a diagram for a light switch. Here's a more complex state diagram for a fan which blows constantly when switched on, and can then be toggled to an &quot;auto&quot; mode:</p>
<figure>
	<img src="mermaid/3_Fan.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 7. </strong>State diagram of a fan. <a href="mermaid/3_Fan.mermaid">Source 🧜</a></figcaption>
</figure>
<p>The issue with state diagrams like these is that they quickly get unreadable with more complex systems. To demonstrate this, let's extend the fan example to an air-conditioner which can heat or cool in either fan mode:</p>
<figure>
	<img src="mermaid/4_AirConditioner.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 8. </strong>State diagram of an air conditioner. <a href="mermaid/4_AirConditioner.mermaid">Source 🧜</a></figcaption>
</figure>
<p>The addition of one extra mode doubled the number of active states. If &quot;beep/silent&quot; mode was further added, the number of active states would again double to 8, and so on. The phenomenon of up-to-exponential increase in states and transitions is known as <em>state explosion.</em></p>
<h3>2.3 Statecharts: hierarchy and concurrency</h3>
<p>The issues with the initial state diagrams for anything more than simple systems became widely known. In 1987, David Harel published the paper <em>Statecharts: A visual formalism for complex systems</em> in which he elaborated on the issues of state diagrams arranged in a &quot;‘flat’ unstratified fashion&quot;, then went on to present a set of extensions to &quot;transform the language of state diagrams into a highly structured and economical description language&quot; which he differentiated as <em>statecharts.</em></p>
<p>We'll look at those extensions by returning to the air-conditioner. The first major statechart element is hierarchy (a.k.a. depth or nesting.) This is hierarchy in a technical sense, not a social one, and describes the relations between states. If a state is only reachable through another state, it is a substate or child state of the first state (it's superstate or parent state). Substates are depicted as boxes within their respective superstate.</p>
<p>With the air-conditioner, all of the active states require the machine to first be switched &quot;On&quot;, and from all active states can it be switched &quot;Off&quot;. We can thus separate &quot;On&quot; as a parent state for all the active states, and nest them under it:</p>
<figure>
	<img src="mermaid/5_AirConditioner+hierarchy.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 9. </strong>State diagram of an air conditioner with hierarchy element. <a href="mermaid/5_AirConditioner+hierarchy.mermaid">Source 🧜</a></figcaption>
</figure>
<p>The second major element of statecharts is concurrency (a.k.a orthogonality or parallelism.) This refers to the ability for subsystems or sub-machines to run at the same time, in parallel. Concurrent subsystems are depicted as regions divided by a dashed line within their respective parent state. Important to note is that all subsystems start immediately when their respective superstate is entered.</p>
<p>Since &quot;temperature&quot; and &quot;fan&quot; modes of the air conditioner run simultaneously and can be toggled independently, they are more accurately modeled as 2 parallel subsystems within the &quot;On&quot; state:</p>
<figure>
	<img src="mermaid/6_AirConditioner_statechart.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 10. </strong>Statechart of an air conditioner demonstrating both hierarchy and concurrency elements. <a href="mermaid/6_AirConditioner_statechart.mermaid">Source 🧜</a></figcaption>
</figure>
<p>While the use of hierarchy and concurrency increase the number of boxes in this example, the number of arrows significantly decreases and the reduced visual complexity is self-evident.</p>
<h3>2.4 UML: development and standardisation</h3>
<p>The extensions set out in Harel's paper were influential. The next years saw a boom in computational diagram methodologies including state diagrams, sequence diagrams, activity diagrams, class diagrams, etc. The diversity of diagrams created communication issues.</p>
<p>To try and standardise things, a consortium of major tech companies was founded in 1989 called the Object Management Group (yes, really: OMG.) In 1997 OMG adopted the then newly created Universal Modelling Language (UML) standard. UML aimed not only to bring standardisation to different technical diagram methods, but to also maximise the coherence between those diagram types. With the consortium's backing, UML was published as <a href="https://www.iso.org/standard/32620.html">ISO/IEC 19501</a> in 2005. Although its popularity has waned, UML remains hegemonic in the diagramming world.<sup><a href="#user-content-fn-umlpopularity" id="user-content-fnref-umlpopularity" data-footnote-ref="" aria-describedby="footnote-label">9</a></sup></p>
<figure>
	<img src="img/OO_Modeling_languages_history.svg.png" alt="" loading="lazy">
    <figcaption><strong>Figure 11. </strong>"History of Object-Oriented Modeling languages." Guido Zockoll, Axel Scheithauer & Karland90 (CC-BY-SA-4.0) <a href="https://commons.wikimedia.org/wiki/File:OO_Modeling_languages_history.svg"> Wikimedia commons</a></figcaption>
</figure>
<p>UML state diagrams are mostly identical to the statecharts defined by Harel.<sup><a href="#user-content-fn-statediagramnames" id="user-content-fnref-statediagramnames" data-footnote-ref="" aria-describedby="footnote-label">10</a></sup> One difference worth highlighting is the use of a diamond for &quot;choice&quot; pseudostates. As the name implies, choice pseudostates are not states (the state-machine cannot &quot;rest&quot; at them) but are rather a conceptual and visual aid to show that several transitions are linked as the result of some choice. Harel had originally proposed a &quot;C-in-a-circle&quot; symbol for what he called &quot;conditional&quot; pseudostates. The diamond adopted by UML leans into the popularity of flowcharts, where the diamond is used to indicate a decision.</p>
<figure>
	<img src="mermaid/7_Morpheus-pill-offer.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 12. </strong>Statechart with UML-style choice/conditional pseudostate. <a href="mermaid/7_Morpheus-pill-offer.mermaid">Source 🧜</a></figcaption>
</figure>
<h3>2.5 Statecharts summary</h3>
<p>State machines are a model from computer science used to describe the states a system can be in and the transitions between those states. Early state diagrams only had elements for &quot;flat&quot; states, meaning that diagrams for more complex systems rapidly became unreadable due to state explosion. David Harel published an influential paper in 1987 presenting statecharts: a set of extensions bringing hierarchy, concurrency and other elements to state diagrams. UML developed state diagrams heavily inspired by statecharts, which became an international standard.</p>
<h2>3 Position statecharts</h2>
<p>The rest of this article rests on the following 3 claims:</p>
<ol>
<li>that <em>positions</em> (as defined by IAD Position Rules) can be modelled as <em>states</em> in a state machine, and;</li>
<li>that <em>entry into or exit from positions</em> (as defined by IAD Boundary Rules) can be modelled as <em>transitions</em> in a state machine, and therefore;</li>
<li>that <em>position systems</em> can be modelled as <em>state machines</em> and graphically depicted as <em>statecharts</em></li>
</ol>
<h3>3.1 Seeing like a state machine</h3>
<p>Describing a position system with the constraints imposed by state machines can be challenging. The first challenge is finding an appropriate way of looking at things, because it is not so clear how a person entering a position is like a light being switched on.<sup><a href="#user-content-fn-slasm" id="user-content-fnref-slasm" data-footnote-ref="" aria-describedby="footnote-label">11</a></sup></p>
<p>One way of looking that might help is by thinking of a board game, say Monopoly. Each player's figure starting position is &quot;Go&quot; (initial state.) With every turn, a player rolls the dice and moves their figure (transition) to the relevant position (next state).</p>
<p>Another way, arguably more useful, is to think of entering and moving around a house. You start outside (initial state) and when you use the right door code and enter the house (transition), you are immediately and simultaneously inside the house, on the ground floor and in the entrance (next state(s)).</p>
<h3>3.2 Defining requirements</h3>
<p>I set out to make a position statechart for Kanthaus with the aim of describing the position system as clearly and comprehensively as possible. But when I got started, this turned out not to be so easy.</p>
<p>Firstly, there are many different free (and open-source) tools for generating statecharts, each offering enticing features. If you are like me, your wide eyes may slowly lead to aim-creep unless you are very clear about what is required and what is simply nice-to-have. After spending too many hours going round in circles, I realised that none of the newly discovered features were requirements.</p>
<p>Secondly, I rediscovered that clarity and completeness may be conflicting. Even though statecharts manage to present information far more clearly than the initial state diagrams, things still get confusing when arrows start to cross and are there are too many boxes. I ended up deciding not to show some of the less important transitions on the statechart, but rather explain them in a note beside.</p>
<p>My final requirements were to make a statechart:</p>
<ul>
<li>that describes the entire position system</li>
<li>that explicitly depicts all positions and all major transitions</li>
<li>that would fit as nicely as possible onto A4 paper</li>
<li>that is as clear as possible, beautiful as a bonus</li>
</ul>
<h3>3.3 Tools for prototyping</h3>
<p>Here I will recommend two tools for prototyping before getting started. More tools are discussed later on.</p>
<p>The first is pen and paper. While you have to do all the work yourself - no copy or paste - there are also no limitations to your creative urges. The directness of drawing by hand engages a completely different part of my mind than anything intermediated by a keyboard. Through my process, I scrawled over at least 6 sides of A4 and 1 envelope.</p>
<figure>
	<img src="img/One hand-drawn sketch.png" alt="" loading="lazy">
    <figcaption><strong>Figure 13. </strong>One of the many pages I filled with sketches.</figcaption>
</figure>
<p>The second is Mermaid: a notation language for state diagrams as well as a javascript library for rendering them, conveniently available as a <a href="https://mermaid.ai/live">webapp</a> — all free and open-source. All of the diagrams in this article with curved arrows were made with it. The notation is relatively straightforward and described in detail in their <a href="https://mermaid.ai/open-source/syntax/stateDiagram.html">guide</a>, but to give one small example, here is the notation that was used to generate the first mermaid diagram of the light switch:</p>
<pre><code class="language-mermaid">stateDiagram-v2
    [*]
    state &quot;Off 🌚&quot; as Off
    state &quot;On 🌝&quot; as On

    [*] --&gt; Off
    Off --&gt; On : switch on
    On --&gt; Off : switch off
</code></pre>
<p>Mermaid engaged a completely different part of my mind than drawing: not only by being constrained by the notation, but also that the generated diagrams had unexpectedly different layouts. The latter was initially quite frustrating, but when I accepted I was only prototyping, I found being forced to engage with different perspectives quite helpful.</p>
<p>For me, the use of both pen &amp; paper and mermaid was quite illuminating, and I recall several points of confusion I was only able to disentangle through using both.</p>
<h3>3.4 Basic position statechart</h3>
<p>One can zoom in or out of a system to describe it at any level of detail. Here I will go through the creation of a &quot;basic&quot; statechart, one that goes into only enough detail to describe the whole system broadly.</p>
<p>Identifying all relevant states is arguably the core of the exercise. Perhaps your organisation has only one position (e.g. &quot;part of the group&quot;) in which case you will have a relatively simple statechart. The Kanthaus constitution explicitly specifies 3 positions: Visitor, Volunteer and Member. Each of these positions is a distinct state.</p>
<figure>
	<img src="mermaid/8_Kanthaus_positions_base.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 14. </strong>The 3 Kanthaus positions: Visitor, Volunteer and Member. <a href="mermaid/8_Kanthaus_Visitor_base.mermaid">Source 🧜</a></figcaption>
</figure>
<p>Anyone who holds one of these positions is also &quot;in&quot; Kanthaus, which although not explicitly mentioned in the constitution is at least a nominal group. The positions may be associated through an organisation superstate.</p>
<figure>
	<img src="mermaid/9_Kanthaus_positions-grouped.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 15. </strong>The Kanthaus positions nested within the organisation. <a href="mermaid/9_Kanthaus_positions-grouped.mermaid">Source 🧜</a></figcaption>
</figure>
<p>But how does someone get in? The transition from &quot;outsider&quot; to &quot;insider&quot; is perhaps the most important one, and requires the explicit recognition of a &quot;non-position&quot; state:</p>
<figure>
	<img src="mermaid/10_Kanthaus_positions-grouped+non.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 16. </strong>Explicit recognition of person without organisational position. <a href="mermaid/10_Kanthaus_positions-grouped+non.mermaid">Source 🧜</a></figcaption>
</figure>
<p>At this point, all states are accounted for. The next step is to add all state transitions, including the initial pseudostate and its transition. It helped me to really focus on one position at a time, and exhaustively note all outgoing transitions from that position.</p>
<figure>
	<img src="mermaid/11_Kanthaus_Position-Statechart_basic.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 18. </strong>All position transitions. <a href="mermaid/11_Kanthaus_Position-Statechart_basic.mermaid">Source 🧜</a></figcaption>
</figure>
<p>A basic position position statechart is achieved by then labelling the transitions:</p>
<figure>
	<img src="mermaid/12_Kanthaus_Position-Statechart_basic+labeled.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 19. </strong>Basic Kanthaus position statechart. <a href="mermaid/12_Kanthaus_Position-Statechart_basic+labeled.mermaid">Source 🧜</a></figcaption>
</figure>
<h3>3.5 Advanced position statechart</h3>
<p>The statechart above, while comprehensive, obscures many details. To create a statechart that accounts for these details, it is necessary to descend into the position states and identify substates and transitions within them. As I said in the requirements section, I will only show <em>major</em> transitions, which in the case of Kanthaus means leaving out voluntary downward/outwards transitions and those resulting from conflict resolution interventions (the latter only happening a couple of times over almost 10 years).</p>
<p>The position of Member is in fact the least complex, so we'll start there. A central procedure in the Kanthaus position system is the <em>evaluation</em>, a periodic appraisal through which community members determine the appropriate position for the person in question to continue with. A Member becomes due for evaluation 180 days after becoming a member, which can be modelled with the substate &quot;due for evaluation&quot;. Before this, the Member can be considered to be in the a &quot;default&quot; substate. Substates can be thus used to model position <em>attributes</em>.</p>
<figure>
	<img src="mermaid/13_Kanthaus_Member_base.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 20. </strong>Member position substates. <a href="mermaid/13_Kanthaus_Member_base.mermaid">Source 🧜</a></figcaption>
</figure>
<p>At their evaluation, a Member can apply to remain a Member or become a Volunteer or Visitor. The evaluation procedure itself determines the result through a vote of the other current members. If accepted as a Member, they reenter the &quot;default&quot; substate and the countdown starts again. If accepted as a Volunteer, they leave the Member position altogether and become a Volunteer. If accepted as a Visitor, they enter the &quot;no Kanthaus position&quot; state: this is because the Visitor position is determined exclusively by being hosted. (If before the end of the evaluation someone is willing to host, the person would instantaneously transition through &quot;no Kanthaus position&quot; to the Visitor position.)</p>
<figure>
	<img src="mermaid/14_Kanthaus_Member+evaluation.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 21. </strong>Member transitions arising from different evaluation outcomes. <a href="mermaid/14_Kanthaus_Member+evaluation.mermaid">Source 🧜</a></figcaption>
</figure>
<p>The evaluation and its outcomes have a clearer visual association by using the choice pseudostate:</p>
<figure>
	<img src="mermaid/15_Kanthaus_Member+evaluation-choice.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 22. </strong>Member evaluation transitions grouped with choice pseudostate. <a href="mermaid/15_Kanthaus_Member+evaluation-choice.mermaid">Source 🧜</a></figcaption>
</figure>
<p>Additionally, if a Member does not have an evaluation within 365 days since (re)entering the position they timeout, becoming a Volunteer. This completes a detailed view of the Member position.</p>
<figure>
	<img src="mermaid/16_Kanthaus_Member_full.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 23. </strong>Full description of member state, including evaluation timeout. <a href="mermaid/16_Kanthaus_Member_full.mermaid">Source 🧜</a></figcaption>
</figure>
<p>The Volunteer position operates quite similarly to Member, with different evaluation time periods. The Visitor position is however quite different. It is entered not via evaluation, but via hosting - this is when a Volunteer or Member agrees to take over technical and social responsibility for onboarding the person into the community. Should this agreement end for whatever reason, the position is lost. To keep up communication between the Visitor, Host and other community members, a checkin is due after every seven days. The checkin has no hard timeout, unlike evaluations, and therefore no formal impact on position.</p>
<figure>
	<img src="mermaid/17_Kanthaus_Visitor_base.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 24. </strong>Visitor position entry/exit and substates. <a href="mermaid/17_Kanthaus_Visitor_base.mermaid">Source 🧜</a></figcaption>
</figure>
<p>After having completed 3 checkins, the Visitor is eligible for evaluation and may choose to have one at any point going forwards. At their evaluation they may apply to continue as a Visitor or become a Volunteer.</p>
<figure>
	<img src="mermaid/18_Kanthaus_Visitor_full.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 25. </strong>Complete Visitor position. <a href="mermaid/18_Kanthaus_Visitor_full.mermaid">Source 🧜</a></figcaption>
</figure>
<p>It would be an option to use the concurrency element within the Visitor state to deal with checkins and evaluation separately. (This is noticeable since 2 transitions have the identical event &quot;[3+ checkins?] evaluation&quot; and end on the same state.)</p>
<figure>
	<img src="mermaid/19_Kanthaus_Visitor_full-concurrent.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 26. </strong>Complete Visitor position, using concurrency. <a href="mermaid/19_Kanthaus_Visitor_full-concurrent.mermaid">Source 🧜</a></figcaption>
</figure>
<p>Ultimately I decided against the concurrent representation.<sup><a href="#user-content-fn-thanktimber" id="user-content-fnref-thanktimber" data-footnote-ref="" aria-describedby="footnote-label">12</a></sup> My impression is that hierarchy and its nested box representation are far more intuitive than concurrency and its representation. Using concurrency would have made the statechart more complex altogether, which goes against requirements.</p>
<p>Applying this more detailed view of the Volunteer position and bringing the system together results in an much more advanced statechart:</p>
<figure>
	<img src="mermaid/20_Kanthaus_Position-Statechart_advanced.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 27. </strong>Advanced Kanthaus position statechart. <a href="mermaid/20_Kanthaus_Position-Statechart_advanced.mermaid">Source 🧜</a></figcaption>
</figure>
<h3>3.6 Tools for finalising</h3>
<p>The statechart above leaves a lot to be desired. I count at least two unnecessary arrow overlaps, and it is generally quite ugly. Here I will briefly cover some options for finalising a statechart, including the one I used to create the statechart at the beginning of the article. What constitutes 'final' is contingent on your requirements and preferences. (Perhaps the result of your prototyping is already satisfactory.)</p>
<p>In general, there are two approaches: generating (like with mermaid) or drawing (by hand or digitally.)</p>
<p>There are many statechart generators<sup><a href="#user-content-fn-generators" id="user-content-fnref-generators" data-footnote-ref="" aria-describedby="footnote-label">13</a></sup> all requiring the statechart to be described with some particular notation. This article has looked at mermaid which has fairly simple notation that is shared with some other tools (notably <a href="https://plantuml.com/">PlantUML</a>, upon which it is based). There is also a W3C standard for statechart notation, <a href="https://www.w3.org/TR/scxml/">SCXML</a>, but few tools support it and it is not easy to write. Most tools use their own Domain Specific Language (DSL), a unique notation intended for that tool only.</p>
<p>Once the generator has parsed the notation, it will use some layout algorithm to decide where to place state boxes and direct transition arrows. Mermaid uses the popular <a href="https://github.com/dagrejs/dagre">Dagre</a> algorithm by default, the results of which you see in most of the generated diagrams in this article. It's tried and tested and produces curved arrows which often unnecessarily overlap. Another increasingly popular layout algorithm is <a href="https://eclipse.dev/elk/">ELK</a>, which gives angled arrows that avoid overlapping at all costs and creates a generally different box layout. Some tools allow the selection of different layout algorithms (e.g. mermaid <a href="https://mermaid.js.org/intro/syntax-reference.html#selecting-layout-algorithms">also supports ELK</a>.)</p>
<figure>
	<img src="mermaid/12_Kanthaus_Position-Statechart_basic_ELK.mermaid.png" class="mermaidPNG" alt="" loading="lazy">
    <figcaption><strong>Figure 28. </strong>Basic Kanthaus position statechart (Figure 11.) layed out using ELK instead of Dagre.</figcaption>
</figure>
<p>I spent a lot of time trying out different generators, tweaking options and switching layout algorithms to try and get the result I was looking for, which often came close but remained frustratingly out of reach. This lead me to understand that layout is a fundamentally hard problem. What if it is important that two particular boxes are on the same level? Or that certain arrows go in certain directions? There are some ways to pass this information to some generators, but when I realised this would pretty much mean coding a diagram, I realised I would rather <em>draw</em> one.</p>
<p>In comparison, my search for an appropriate drawing tool was much simpler, despite there being many more options. I didn't really consider hand-drawing, on account of editing and reproduction costs being so high. I then looked at the venerable <a href="https://inkscape.org">Inkscape</a>, my go-to for all things visual, but I found the connector tool a little clunky and realised that Inkscape was generally overkill. Then I turned to <a href="https://excalidraw.com/">Excalidraw</a>, a very nicely designed whiteboard webapp I've used to make other diagrams in the past. Excalidraw has almost perfect feature constraint for creating statecharts very quickly. I created the statechart at the beginning of the article using Excalidraw, and it took a fraction of the time I'd spent on generators.</p>
<h2>Conclusion</h2>
<p>Position statecharts make position systems more accessible and can contribute to more coherent, fair and sustainable governance. The constaint of describing a system as a state machine brings a simplicity and therefore clarity. Yet there may be situations where breaking that constraint is worth it. In situations where holding multiple formal positions simultaneously is the default, a different paradigm may be more fitting (such as &quot;circles&quot; diagrams in Sociocracy.)</p>
<p>Thanks for reading, get in touch if you have questions or ideas. Happy charting!</p>
<h2>Disclaimers</h2>
<p>I received no money or other renumeration for writing this. I am not a member of any of the groups making the software I mentioned although I have had some friendly interactions. The only things generated in this article were the mermaid diagram: old-school, deterministic generation. Oh, and structure is necessary but <em>not sufficient</em> for good governance.</p>
<h2>References</h2>
<ul>
<li>Freeman, J. (1972). The Tyranny of Structurelessness. <em>Berkeley Journal of Sociology</em>, <em>17</em>, 151–164. <a href="http://www.jstor.org/stable/41035187">http://www.jstor.org/stable/41035187</a></li>
<li>Hardin, G. (1968). The Tragedy of the Commons: The population problem has no technical solution; it requires a fundamental extension in morality. <em>Science</em>, <em>162</em>(3859), 1243–1248. <a href="https://doi.org/10.1126/science.162.3859.1243">https://doi.org/10.1126/science.162.3859.1243</a></li>
<li>Harel, D. (1987). Statecharts: A visual formalism for complex systems. <em>Science of Computer Programming</em>, <em>8</em>(3), 231–274. <a href="https://doi.org/10.1016/0167-6423(87)90035-9">https://doi.org/10.1016/0167-6423(87)90035-9</a></li>
<li>Object Management Group. (2017). <em>Unified Modeling Language, Version 2.5.1</em>. <a href="https://www.omg.org/spec/UML/">https://www.omg.org/spec/UML/</a></li>
<li>Ostrom, E. (1990). <em>Governing the commons: The evolution of institutions for collective action</em>. Cambridge University Press. <a href="https://doi.org/10.1017/CBO9780511807763">https://doi.org/10.1017/CBO9780511807763</a></li>
<li>Ostrom, E. (2005). <em>Understanding institutional diversity</em>. Princeton Univ. Press. <a href="https://doi.org/10.2307/j.ctt7s7wm">https://doi.org/10.2307/j.ctt7s7wm</a></li>
<li>Polletta, F. (2002). <em>Freedom is an endless meeting: Democracy in American social movements</em>. University of Chicago Press. <a href="https://doi.org/10.7208/chicago/9780226924281.001.0001">https://doi.org/10.7208/chicago/9780226924281.001.0001</a></li>
<li>Scott, J. C. (1998). <em>Seeing Like a State: How Certain Schemes to Improve the Human Condition Have Failed</em>. Yale University Press. <a href="https://doi.org/10.2307/j.ctvxkn7ds">https://doi.org/10.2307/j.ctvxkn7ds</a></li>
<li>Shannon, C. E. (1948). A Mathematical Theory of Communication. <em>Bell System Technical Journal</em>, <em>27</em>(3), 379–423. <a href="https://doi.org/10.1002/j.1538-7305.1948.tb01338.x">https://doi.org/10.1002/j.1538-7305.1948.tb01338.x</a></li>
</ul>
<!-- ## Footnotes <-- automatically generated! -->
<section data-footnotes="" class="footnotes"><h2 id="footnote-label" class="sr-only">Footnotes</h2>
<ol>
<li id="user-content-fn-inspirationouborous">
<p>Funnily enough, when I wrote David to ask if I could publish his diagram, he claimed he was inspired by something I had said earlier... an inspiration Ouroboros. <a href="#user-content-fnref-inspirationouborous" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-toc">
<p>This trend can be partly attributed to the massive impact of Garrett Hardin's <em>The Tragedy of the Commons</em> (1968). Ostrom met with and debated Hardin, and her <em>Governing the Commons</em> is in part a refutation of his paper. <a href="#user-content-fnref-toc" data-footnote-backref="" aria-label="Back to reference 2" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-prizetechnicality">
<p>The fortune Alfred Nobel amassed through the invention, development and sales of explosives and armaments only established 5 prizes. In 1968 the Bank of Sweden donated a large sum of money to establish a separate prize for Economics in his memory. <a href="#user-content-fnref-prizetechnicality" data-footnote-backref="" aria-label="Back to reference 3" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-uidpg3">
<p><em>Understanding institutional diversity</em>, pg. 3 <a href="#user-content-fnref-uidpg3" data-footnote-backref="" aria-label="Back to reference 4" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-uidpg5">
<p><em>Understanding institutional diversity</em>, pg. 5 <a href="#user-content-fnref-uidpg5" data-footnote-backref="" aria-label="Back to reference 5" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-actions">
<p>The Action Situation variable <em>Actions</em> covers the things that holders of a given position are legally allowed or required to do. This is something usually bundled into the concept of positions, but the IAD deliberately abstracts the identity of a position from its attributes. (A visualisation of Actions (as defined by their accompanying <em>Choice Rules</em>) can be adequately achieved with a table such as this example for Kanthaus positions: <a href="https://wiki.kanthaus.online/Position_attributes_table">https://wiki.kanthaus.online/Position_attributes_table</a>) <a href="#user-content-fnref-actions" data-footnote-backref="" aria-label="Back to reference 6" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-exovar">
<p>&quot;Exogenous&quot; to the the Action Arena, that is. Still, a bit confusing. In my mind I rename them <em>system variables</em>. <a href="#user-content-fnref-exovar" data-footnote-backref="" aria-label="Back to reference 7" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-uidpg193">
<p><em>Understanding institutional diversity</em>, pg. 193 <a href="#user-content-fnref-uidpg193" data-footnote-backref="" aria-label="Back to reference 8" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-umlpopularity">
<p>UML is here to stay, but it's popularity has waned since the 2000's. Several of the people who worked deeply on it published articles reflecting why, mentioned in this Mermaid blog post: <a href="https://mermaid.ai/blog/posts/sequence-diagrams-the-good-thing-uml-brought-to-software-development">https://mermaid.ai/blog/posts/sequence-diagrams-the-good-thing-uml-brought-to-software-development</a>. The overlapping point they make is that UML, in an attempt to be <em>universal</em>, got too complex. UML Version 2.2 was over 1000 pages long, with the bulk of volume covering niche cases that were mostly not encountered. And since few diagram tools managed to implement all aspects of the standard exactly, each one essentially developed a different flavour of the standard... See <a href="https://xkcd.com/927/">xkcd 927</a> <a href="#user-content-fnref-umlpopularity" data-footnote-backref="" aria-label="Back to reference 9" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-statediagramnames">
<p>The naming gets a bit confusing. So, <em>state diagrams</em> are used to refer to the initial diagram method which suffers from state (and transition) explosion. Harel coined the term <em>statechart</em> to recognise the significant differences which he'd made, which preserving &quot;state&quot; in the name. UML chose to use <em>state diagram</em> to refer to the extended state diagram, pretty much what Harel called <em>statechart</em>. It seems that the initial state diagram is not really used any more, so it's presumably not confusing for those in the industry. I chose to stick with <em>statechart</em> primary because I think it sounds cooler... and I like that it has a navigational feeling. <a href="#user-content-fnref-statediagramnames" data-footnote-backref="" aria-label="Back to reference 10" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-slasm">
<p>The title of this section is a half-joke made after James C. Scott's <em>Seeing like a state</em>. He looks at how nation states' efforts to control their domain has typically lead them to try and standardise things, including their subjects, often with significant coercion. Considering a position system as a state machine could induce a desire to simplify things. <a href="#user-content-fnref-slasm" data-footnote-backref="" aria-label="Back to reference 11" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-thanktimber">
<p>This is thanks to Timber. I was excited to use all the statechart elements; they wisely recommended me not to. <a href="#user-content-fnref-thanktimber" data-footnote-backref="" aria-label="Back to reference 12" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-generators">
<p>See the comprehensive lists on <a href="https://modeling-languages.com/">https://modeling-languages.com/</a> as well as the 'awesome finite state machines' list on GitHub <a href="https://github.com/leonardomso/awesome-fsm">https://github.com/leonardomso/awesome-fsm</a> <a href="#user-content-fnref-generators" data-footnote-backref="" aria-label="Back to reference 13" class="data-footnote-backref">↩</a></p>
</li>
</ol>
</section>
            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/position-statecharts/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/position-statecharts/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[A8 micronotepad]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">A8 micronotepad</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>20th Dec 2022</time>
                    
                </p>
                <p>If you've met me in the last years, there's a good chance you've seen me whip out a tiny notepad at some point to write something down. This notepad is pretty much two bank cards, with a bit of duct tape as a 'spine' and an elastic band to keep the paper in. This design came out of a need to have a completely portable way to take notes.</p>
<figure>
	<img src="img/a8micronotepad_closed.png" alt="A mostly white bank card on a wood veneer table. A piece of silver duct tape is visible on the left side, joining it to another bank card behind. A notch is cur out at the right hand side, and an indent is visible into which a magnet is recessed.">
</figure>
<figure>
	<img src="img/a8micronotepad_opened.png" alt="The notepad opened. A small piece, folded in half, rises upwards. The magnet and corresponding metal strip of the closing mechanism are visible in corresponding sides, masked with duct tape. The elastic band holding the paper to the notepad is visible vertically." loading="lazy">
</figure>
<p>Yes, I do have my phone with me most of the time, but not all the time, and sometimes it's out of power, and I usually like to have it off—especially when I'm having interesting conversations. Even when it's on 'do not disturb' mode, I feel the temptation to break conversation to check a fact or find a link, which noticeably harms my attention span and imagination. (I also keep my devices out of the room I sleep in, try to turn them on as late into the day as possible and off as early into the evening as possible. Digital health, yeah!)</p>
<p>I added the notches to make it a bit easier to open. The indent for the magnet I think I just made with brute force and a round object... doing so allows the notepad to close more tightly, and less likely to open in error. In case you're interested, the 'standard' bank card size is 85.6 mm × 53.98 mm, as per the ID-1 format of <a href="https://en.wikipedia.org/wiki/ISO/IEC_7810">ISO / IEC 7810</a>.</p>
<figure>
	<img src="img/ISO_IEC_7810.png" alt="A diagram showing the overlapping format of ISO/IEC 7810. ID-1 is smaller than ID-2 or ID-3, but much bigger than ID-000" loading="lazy">
	<figcaption><i>By <a href="https://commons.wikimedia.org/w/index.php?curid=26228099">Someone&#039;s Moving Castle</a>, CC BY-SA 3.0</i></figcaption>
</figure>
<p>A piece of A7 (<a href="https://en.wikipedia.org/wiki/Paper_size">ISO 216!</a>) folded in half, fits nicely inside to give four sides of A8. A7 can be made by cutting a piece of A4 in half, lengthwise 3 times, or by cutting a piece of A5 in half, lengthwise twice.</p>
<figure>
	<img src="img/A_size_illustration2.png" alt="A size chart illustrating the ISO A series, from A0 to A8. Each increasing number is half the size of the previous number, lengthwise." loading="lazy">
	<figcaption><i>By <a href="https://commons.wikimedia.org/w/index.php?curid=1369452">User:Bromskloss</a>, CC BY-SA 3.0</i></figcaption>
</figure>
<p>I'd love to find other low-tech personal information management enthusiasts! Improvements to this design? Let me know! (I especially dislike using duct tape for the spine, which needs to be replaced every ~year)</p>

            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/micronotebook/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/micronotebook/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Custom is consent]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">Custom is consent</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>16th Dec 2022</time>
                    
                </p>
                <p>I used to think that customs were bad. Unwritten, unspoken rules, only there to separate the uninitiated from the elders.</p>
<p>I've made a U-turn—with caveats.</p>
<p>Customs are perhaps the freest expression of self-organization. Like the stigmergy of ants, who in following the pheromone trail laid by previous ants, form orderly lines towards desirable destinations. Or like those well-used yet unpaved paths through parks: we don't know who starts them, but in following we contribute.</p>
<figure>
	<img src="img/antline.jpg" alt="A mass of ants, walking in a broad line together.">
	<figcaption><i>It's unclear who started it, but it's apparently worth following...</i></figcaption>
</figure>
<p>Not all action can be coordinated beforehand: we don't (yet!) have a hive-mind. Even in the most communicative groups, individuals will sometimes need to make decisions without consulting the others. A fraction of these autonomous actions will 'stick' — customs are inevitable.</p>
<p>Customs provide a space to iteratively experiment. One might slightly rearrange a living room, and the next a little more, until a steady-state is achieved without discourse or explicit agreement. It is in the space and freedom given by minimal coordination we reach maximal agency.</p>
<p>The custom can therefore be seen as a chain of consent, to be changed or ended also by consent. It is not a collective decision, even if all members of a collective follow it. From this perspective, in a non-hierarchical association, a person who doesn't consent to a custom may not be sanctioned.</p>
<p>A custom can become so well accepted by a group it assumes the status of a rule. That is, when someone (usually a new person) doesn't follow it, they can be sanctioned by anyone in the group with collective authority. This is tradition creep, and that's bad, because tradition is an archive, not an authority. If the traditionalist can say <em>&quot;but we've always done it that way!&quot;</em>, slowly the hierarchy of memory takes over.</p>
<figure>
	<img src="img/antspiral.jpg" alt="A mass of ants, rotating in a spiral." loading="lazy">
	<figcaption><i>... blind/short-sighted following not so much.</i></figcaption>
</figure>
<p>The consent argument against traditionalism rests on there never having been an explicit agreement. It seems obvious not to be held accountable for breaking an agreement you never made. However, if customs hold no power at all, all decisions must be made collectively. If the legalist can say <em>&quot;but it's not written anywhere!&quot;</em>, slowly the living group is replaced by a bureaucracy.</p>
<p>A respectful dialogue between the positions is possible, assuming the custom-holder accepts the custom-breaker never consented to follow, and the breaker acknowledges some wisdom may lie in the chain of consent. The holders may invite others to join the custom, <em>&quot;We normally do X because Y, is that OK with you?&quot;</em>, and if the answer is no... well, no means no. The holder can then consent to the non-compliance as an alteration of the custom, or initiate a collective process.</p>
<p>It should be telling if new people regularly deviate from a custom that it lacks sufficient intuitiveness and may the issue may be better addressed with a design intervention (e.g. affordance, restriction, signage) or governance intervention (e.g. rule)</p>
<p>Customs are living consent.</p>

            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/custom-is-consent/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/custom-is-consent/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Contribute upstream]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">Contribute upstream</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>11th Jul 2022</time>
                    
                </p>
                <p>I've been getting more into editing Wikipedia. Despite all of its shortcomings, it is <em>the</em> encyclopedia; you can be sure a thing really exists if there's a Wikipedia page of it.</p>
<p>What motivated me was the topic that's been motivating me for years: collective organization. But rather than writing yet another opinionated, unreferenced blog post, I thought it would be better to contribute upsteam, all the way up the stream, to Wikipedia.</p>
<p>You don't need to advertise the platform: people come to it, audience is almost assured. You don't need to worry about hosting, and can indeed be fairly secure it'll be up for years to come. You're forced to write better than you would on your blog, or else people will revert your work. For better than worse, you're forced to collaborate.</p>
<p>Of course, there are limits to what you can do. <a href="https://en.wikipedia.org/wiki/Wikipedia:No_original_research">&quot;No original research&quot;</a>, prevents you from expressing The Amazing Idea You Just Had, and you can't write in a lyrical, poetic or polemic prose: there is still room for blogs. But for anything encyclopedic enough, why not go all the way? It is unquestionably more work—following rules, customs and working with internet strangers—but the value of your contribution is almost certainly way higher to the universe.</p>
<p>A friend of mine recently packaged something for Debian. Said it was horrendous, that he'd never had to do so much testing, auditing and feedback integration. But now it's in Debian, which means it's in Ubuntu and a thousand other distros and thus installed in millions of computers around the world. Certainly more work, but an almost exponential impact compared to some hobby code on your machine.</p>
<p>I'm curious to think about other ways I can contribute further upstream in different ways. Political institutions in particular. I fear the very low barrier to entry for Wikipedia is exceptional.</p>

            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/contribute-upstream/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/contribute-upstream/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Borg backups]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">Borg backups</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>17th Mar 2020</time>
                    
                </p>
                <p><strong>2024-08-21 update:</strong> I now use and recommend <a href="https://vorta.borgbase.com/">Vorta</a>, a GUI for borg which I mention later</p>
<hr />
<p>Long overdue a proper backup setup, prompted by a housemate's presentation on the topic, I decided to give Borg a bash.</p>
<p>Until now I've been periodically/sporadically backing up my home folder to an external harddrive with <code>rsync</code>:</p>
<pre><code class="language-bash">rsync -r -t -v -p -t -E --progress --delete -l -H -s /home/doug/ /run/var/media/harddisk 
</code></pre>
<p>This is definitely better than copy-pasting, but:</p>
<ol>
<li>it is not encrypted, meaning anyone with access to the drive can read my data</li>
<li>it takes quite a lot of time</li>
<li>it gives only one monolithic backup, meaning I only have the option of reverting to the last backup.</li>
</ol>
<p><a href="https://www.borgbackup.org/">Borg</a>, a.k.a. 'Borgbackup' is a <em>&quot;Deduplicating archiver with compression and encryption&quot;</em>. It is the de facto successor of <a href="https://en.wikipedia.org/wiki/Attic_(backup_software)#Borg">Attic</a> since 2015, from which it was forked <em>&quot;to allow some different approaches to development, goals and policy&quot;</em>[<a href="https://github.com/borgbackup/borg/issues/1">ref</a>] From a user perspective, it lets you make <strong>quick, space-efficient, password-protected backups.</strong></p>
<p>For Debian/Ubuntu users, installing Borg is a simple <code>sudo apt install borgbackup</code>. Borg is a command line tool! For those not so keen on The Black Box, there is <a href="https://vorta.borgbase.com/">Vorta</a> which provides a nice graphical user interface for Borg. However the Vorta team <a href="https://vorta.borgbase.com/usage/">notes</a> that it <em>&quot;is currently in beta-testing and shouldn’t be your only backup solution.&quot;</em> (2020-03-17) which put me off using it for now (although I know at least one person who is happily using it.) There is also <a href="https://torsion.org/borgmatic/">Borgmatic</a> which essentially allows borg via config files: although this provides some convenience, I couldn't justify the additional complexity for my relatively modest requirements.</p>
<p>So to start with I'm just using plain Borg. There is some very nice <a href="https://borgbackup.readthedocs.io/en/stable/">documentation</a> and even a couple of <a href="https://asciinema.org/~borgbackup">screencasts</a>. The <a href="https://borgbackup.readthedocs.io/en/stable/quickstart.html">Quick start</a> is as concise as I can imagine one could be, so I won't repeat that here. Rather I'll just go over a couple things that were of particular interest to me</p>
<h2>Viewing backups via <code>borg mount</code></h2>
<p>After always having done unencrypted backups, where I could directly see the results, it's important for me know I can really access the archive contents later. The simplest way to do so seems to be with <code>borg mount ...</code>. If you're backing up files which require root access there are some quirks:</p>
<p>Create a temporary mount directory...</p>
<pre><code class="language-bash">mkdir /tmp/tempBorgMount
</code></pre>
<p>Mount the borg archive. Get the names of your archives with <code>borg list ...</code>. Use the special <code>::</code> to indicate a particular archive...</p>
<pre><code class="language-bash">sudo borg mount /path/to/archives::a-particular-archive /tmp/tempBorgMount
</code></pre>
<p>View files by 1) navigating as root...</p>
<pre><code class="language-bash">sudo su &amp;&amp; cd /tmp/tempBorgMount
</code></pre>
<p>or 2) opening a file browser with root permission...</p>
<pre><code class="language-bash">sudo nemo
</code></pre>
<p>The last two points threw me a bit, because when I tried to access the mount point with <code>sudo</code> I received <code>sudo: cd: command not found</code>. <code>cd</code> is not available for <code>sudo</code>, because if you need root privileges to access a folder, you continue to need it to view it's contents!</p>
<h2>Regular pruning</h2>
<p>Pruning, like the horticultural act, is about removing unwanted bits. As time passes, you might be happy to get rid of more backups. <code>borg prune ...</code> allows you to do this programmatically. You can specify the number of backups you keep over a time interval with options <code>--keep-weekly</code>, <code>--keep-monthly</code>, etc. These options specify <em>the number of copies to keep within that time period</em>.</p>
<p>For example <code>borg prune --keep-weekly 2</code> will remove all of the oldest backups which exceed 2 for a given week. If you made a backup every day for a week, then ran this command, it would prune Monday to Friday and keep just Saturday and Sunday. By combining daily, weekly, monthly and yearly options, you can have a nicely tapering set of backups, ensuring you always have enough space.</p>
<h2>Scriptification</h2>
<p>I don't like remembering loads of commands :) Fortunately there is a nice borg script templated in <a href="https://borgbackup.readthedocs.io/en/stable/quickstart.html#automating-backups">the docs</a> I made some modifications, such as excluding trash and downloads folders from being backed-up. I also didn't include my password: I'll still be 'manually' doing back ups for now, and don't mind entering my password every time.</p>

            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/borg-backups/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/borg-backups/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Talk: Post-consensus, cooperative decision-making]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">Talk: Post-consensus, cooperative decision-making</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>10th Jul 2018</time>
                    
                </p>
                <p>What should we do when consensus can't be reached? What if cooperative decision-making is better achieved in such cases with practices other than &quot;reaching consensus&quot;?</p>
<figure>
    <img src="img/pccdm_dmexpanded.png" alt="">
</figure>
<p>For decades people wishing to organize in more cooperative ways have been encouraged to make decisions by consensus, and for good reason: when it works well, it's awesome. However—when it doesn't work—it can lead to  guilt, frustration; organizational paralysis or disintegration.</p>
<p>In these talks I will explore how score voting can provide a simple, scalable and systematically cooperative alternative to the often utopian ideal of consensus—and explain how to do it.</p>
<h3>Edinburgh</h3>
<ul>
<li>When: Thursday the 26th of July, 18:30 - 20:00</li>
<li>Where: <a href="https://www.openstreetmap.org/node/3972572583#map=19/55.94823/-3.18844&amp;layers=N">Shrub, 17 Guthrie Street, Edinburgh EH1 1JG</a></li>
<li>Links: <a href="data/2018-07-26_Post-consensus,_cooperative_decision-making_talk_@_Shrub.ics">iCal</a>, <a href="https://www.facebook.com/events/251221582324340/">Facebook event</a>, <a href="https://www.eventbrite.co.uk/e/post-consensus-cooperative-decision-making-tickets-47851556293?aff=efbeventtix">Eventbrite event</a></li>
</ul>
<h3>Glasgow</h3>
<ul>
<li>When: Monday the 30th of July, 18:30 - 20:00</li>
<li>Where: <a href="https://www.openstreetmap.org/way/169761241">Glasgow Autonomous Space {GAS,} Unit 11, 53 Kilbirnie Steet, Tradestone, Glasgow G5 8JD</a></li>
<li>Links: <a href="data/2018-07-30_Post-consensus,_cooperative_decision-making_talk_@_GAS.ics">iCal</a>, <a href="https://www.facebook.com/events/197830640883115/">Facebook event</a></li>
</ul>
<h3>London</h3>
<ul>
<li>When: Thursday the 16th of August, 18:30 - 21:30</li>
<li>Where: <a href="https://www.google.co.uk/maps/place/Newspeak+House/@51.5250985,-0.0734279,17z/data=!3m1!4b1!4m7!1m4!3m3!1s0x48761cb7f97779b1:0xdd191795dcc3bd07!2s135+Bethnal+Green+Rd,+London+E2!3b1!3m1!1s0x48761cb7f0bd369f:0x8e14db13c9e8ae7f?shorturl=1">Newspeak House, 133-135 Bethnal Green Road, Shoreditch, London E2 7DG</a></li>
<li>Links: Please book through <a href="https://www.eventbrite.co.uk/e/round-table-on-post-consensus-cooperative-decision-making-tickets-48757539112">Eventbrite</a>. Also viewable on <a href="https://www.nwspk.com/events">Newspeak House Events page</a> and <a href="https://www.facebook.com/events/253216935292961/?notif_t=plan_user_invited&amp;notif_id=1533410894807171">Facebook event</a></li>
</ul>

            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/post-consensus-cooperative-decision-making/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/post-consensus-cooperative-decision-making/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item><item><title><![CDATA[Talk: Introducing Kanthaus]]></title><description><![CDATA[<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Doug Webb's site</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/sanitize_12.0.1.css">
    <link rel="stylesheet" href="/assets/css/main.css">
    <link rel="shortcut icon" type="image/png" href="/assets/img/icons/favicon-256.png">
  </head>
  <body>
    
    <div class="scrollBuffer"></div>
<nav>
    <a href="/" class="nav__tab ">
        Home
    </a>
    <a href="/projects" class="nav__tab ">
        Projects
    </a>
    <a href="/slides" class="nav__tab ">
        Slides
    </a>
    <a href="/posts" class="nav__tab ">
        Posts
    </a>
</nav>
    <main class="post">
        <div class="scrollBuffer"></div>
        <article class="serif">
            
                <h1 class="noBottomMargin">Talk: Introducing Kanthaus</h1>
                <p class="textAlignCenter noBottomMargin">
                    <time>4th Dec 2017</time>
                    
                </p>
                <p>Two shabby buildings in a German town you've probably never heard of before have become home for a group of post-waste activists: we call it <a href="https://kanthaus.online">Kanthaus</a>.</p>
<figure>
    <img src="img/sunnyDayKH.png">
</figure>
<p>Located within the mesh of global challenges is the fact that 1/3 of edible food isn't eaten. The issue of waste is a focal point for our project, inherited from our involvement with <a href="https://yunity.org/en">yunity.org</a> and <a href="https://foodsharing.de/">foodsharing.de</a>. We believe that waste can be avoided, and relationsips built, through sharing. Kanthaus is a platform for people to promote sharing and/or reduce waste.</p>
<p>I fell into this project early on and I'll present about the history, the first 6 months and future plans—</p>
<ul>
<li>on Friday 15th December, 17:30 as a standalone event at The Shrub, 13 Guthrie Street, Edinburgh EH1 1JG. This will be an interactive ~45 minute presentation with time for further discussion afterwards. Add it to your <a href="http://www.google.com/calendar/event?action=TEMPLATE&amp;dates=20171215T173000Z%2F20171215T193000Z&amp;text=Introducing%20Kanthaus&amp;location=The%20Shrub%2C%2013%20Guthrie%20Street%2C%20Edinburgh%20EH1%201JG.&amp;details=Two%20shabby%20buildings%20in%20a%20German%20town%20you've%20probably%20never%20heard%20of%20before%20have%20become%20home%20for%20a%20group%20of%20post-waste%20activists%3A%20we%20call%20it%20Kanthaus.%0A%0ALocated%20within%20the%20mesh%20of%20global%20challenges%20is%20the%20fact%20that%201%2F3%20of%20edible%20food%20isn't%20eaten.%20The%20issue%20of%20waste%20is%20a%20focal%20point%20for%20our%20project%2C%20inherited%20from%20our%20involvement%20with%20yunity.org%20and%20foodsharing.de.%20We%20believe%20that%20most%20waste%20is%20due%20to%20outdated%20economics%20and%20that%20sharing%20provides%20solutions.%20Kanthaus%20is%20a%20platform%20for%20people%20promote%20sharing%20and%2For%20reduce%20waste.%0A%0AI%20fell%20into%20this%20project%20early%20on%20and%20I'll%20present%20about%20the%20history%2C%20first%206%20months%20and%20future%20plans%20in%20a%20~40%20minutes%2C%20interactive%20talk.%0A%0AOriginally%20posted%20here%3A%20https%3A%2F%2Fdouginamug.gitlab.io%2Fpost%2F2017-12-04_introducingkanthaus%2F">Google calendar</a>, <a href="data/15_Introducing_Kanthaus.ics">any other calendar</a> or via <a href="https://www.facebook.com/events/1245750915525444/">Facebook</a>.</li>
<li>on Sunday 17th December as part of the Lightening Lectures event at Glasgow Autonomous Space, 53 Kilbirnie St, Glasgow, G5 8JD, UK. This will be a ~5 minute lecture will a ~5 minute discussion immediately afterwards. This event starts with food at 17:00 and with lectures starting at 19:00. Original event posted on <a href="https://www.facebook.com/events/1494599233959629/?active_tab=about">Facebook</a>, add it to your <a href="http://www.google.com/calendar/event?action=TEMPLATE&amp;dates=20171217T170000Z%2F20171217T220000Z&amp;text=Introducing%20Kanthaus%20%40%20Lightening%20Lectures%3A%20LivingRoomLectures%20turns%202&amp;location=Glasgow%20Autonomous%20Space%2C%2053%20Kilbirnie%20St%2C%20Glasgow%2C%20G5%208JD%2C%20UK&amp;details=%23%20Introducing%20Kanthaus%0A%0ATwo%20shabby%20buildings%20in%20a%20German%20town%20you've%20probably%20never%20heard%20of%20before%20have%20become%20home%20for%20a%20group%20of%20post-waste%20activists%3A%20we%20call%20it%20Kanthaus.%0A%0ALocated%20within%20the%20mesh%20of%20global%20challenges%20is%20the%20fact%20that%201%2F3%20of%20edible%20food%20isn't%20eaten.%20The%20issue%20of%20waste%20is%20a%20focal%20point%20for%20our%20project%2C%20inherited%20from%20our%20involvement%20with%20yunity.org%20and%20foodsharing.de.%20We%20believe%20that%20most%20waste%20is%20due%20to%20outdated%20economics%20and%20that%20sharing%20provides%20solutions.%20Kanthaus%20is%20a%20platform%20for%20people%20promote%20sharing%20and%2For%20reduce%20waste.%0A%0AI%20fell%20into%20this%20project%20early%20on%20and%20I'll%20present%20about%20the%20history%2C%20first%206%20months%20and%20future%20plans%20in%20a%20~5%20minute%20flash-talk.%0A%0AOriginally%20posted%20here%3A%20https%3A%2F%2Fdouginamug.gitlab.io%2Fpost%2F2017-12-04_introducingkanthaus%2F%0A%0A------%0A%0A%23%20Lightening%20Lectures%0A%0AWE'VE%20MADE%20IT%20TO%20LIVING%20ROOM%20LECTURES'%202ND%20BIRTHDAY%20!!%20%26%20we're%20going%20to%20throw%20a%20shindig%20to%20celebrate!%0A%0ASunday%2017th%20December%0AG.A.S%2F%2F53%20Kilbirnie%20St%2C%20Glasgow%20G5%208JD5%0AThere%20will%20be%20food%20from%205%20and%20a%20cheap%20bar%20running%20from%208PM%0AFree%20in%20but%20donations%20welcome%0A%0A5-6PM%0AThere%20will%20be%20FOOD%20%5B!%5D%20and%20an%20exhibition%20of%20our%20anniversary%20pamphlet%2Fzine%20with%20contributions%20from%20past%20lecturers%2C%20artwork%2C%20stories%20and%20anecdotes%20on%20learning%2C%20living%20rooms%20and%20more%20besides.%0A%0A7-8.30PM%0Awe'll%20get%20on%20with%20the%20LIGHTENING%20LECTURES%20!!%20a%20series%20of%203-5%20minute%20talks%20followed%20by%20a%205-7%20minute%20discussion.%2010%20MINUTES%20MAX%20to%20test%20any%20ideas%2Fprojects%2Fthoughts%20you've%20had%20going%20on.%0Aso%20far%20we've%20got%20..%0ACee%20Smith%20with%20some%20period%20chat%20%2F%20Victoria%20McNulty%20with%20a%20lightening%20lecture%20about%20Capitalism%20and%20Travel%20%2F%20James%20McAveety%20discussing%20the%20album%20'The%20La's'%2C%20by%20The%20La's%20%2F%20Adam%20Cheshire%20with%20some%20chat%20about%20mimetics%20%2F%20Gabe%20Featherstone%20with%20a%20song%20about%20moral%20hygiene%20and%20vegetables%0AMORE%20YET%20TO%20BE%20ANNOUNCED%20!%20%2F%20give%20us%20a%20message%20if%20u%20want%20a%20shot%0A%0A8.30-10PM%0ALive%20music.%20We've%20got%20some%20interested%20acts%20lined%20up%2C%20which%20we'll%20be%20revealing%20over%20the%20next%20few%20weeks%0A%0A10%20-%20till%20whenever%20we%20chuck%20you%20out%20PM%0AA%20DJ%20set%20from%20Natasha%20Lal%0A%0Agive%20us%20a%20message%20on%20here%20or%20an%20email%20over%20to%20livingroomlecturesglasgow%40gmail.com%20if%20you're%20up%20for%20doing%20a%20living%20room%20lecture%20or%20playing%20music%20on%20the%20night%20!%20there's%20still%20space%20going%20%0A%0AOriginally%20posted%20here%3A%20https%3A%2F%2Fwww.facebook.com%2Fevents%2F1494599233959629%2F">Google calendar</a> or <a href="data/17_Introducing_Kanthaus.ics">any other calendar</a>.</li>
</ul>
<p>Hope to see you there!</p>

            
        </article>
    </main>

  </body>
</html>]]></description><link>https://dougwebb.site/posts/introducing-kanthaus/index.html</link><guid isPermaLink="true">https://dougwebb.site/posts/introducing-kanthaus/index.html</guid><dc:creator><![CDATA[Doug Webb]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>