<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>gordonbrander.com</title>
  <link>https://gordonbrander.com/</link>
  <description>Learning to build living software</description>
  <item>
    <title>3 Horizons</title>
    <link>https://gordonbrander.com/notes/3-horizons/</link>
    <guid>https://gordonbrander.com/notes/3-horizons/</guid>
    <pubDate>Sat, 01 Aug 2026 12:24:09 +0000</pubDate>
    <description>From Three Horizons, The Patterning of Hope , by Bill Sharpe Horizon 1: The status quo. The current, dominant business or system, which should be maintained and improved. Horizon 2: The transition zone. The contested space where innovations are…</description>
    <content:encoded><![CDATA[<p>From <span class="nolink">Three Horizons, The Patterning of Hope</span>, by <span class="nolink">Bill Sharpe</span></p>
<ul>
<li>Horizon 1: The status quo. The current, dominant business or system, which should be maintained and improved.</li>
<li>Horizon 2: The transition zone. The contested space where innovations are tested and nurtured to eventually replace the status quo system.</li>
<li>Horizon 3: Emerging future. The envisioned, transformative future state, built on the foundation of the innovations from Horizon 2. Sensed via weak signals.</li>
</ul>
<p>Transformative plot twists begin to reveal themselves as weak signals in horizon 3, and develop in horizon 2.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Decomplecting actors</title>
    <link>https://gordonbrander.com/notes/decomplecting-actors/</link>
    <guid>https://gordonbrander.com/notes/decomplecting-actors/</guid>
    <pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate>
    <description>How would Rich Hickey decomplect the actor model ? I’m thinking: Messages: immutable values Queues: actor inboxs (and outboxes) become queues State: state is stored by ID in a KV store (see Decomplecting means using IDs ) Router: a name system that…</description>
    <content:encoded><![CDATA[<p>How would <span class="nolink">Rich Hickey</span> <span class="nolink">decomplect</span> the <span class="nolink">actor model</span>? I’m thinking:</p>
<ul>
<li>Messages: immutable values</li>
<li>Queues: actor inboxs (and outboxes) become queues</li>
<li>State: state is stored by ID in a KV store (see <a class="wikilink" href="/notes/decomplecting-means-using-ids/">Decomplecting means using IDs</a>)</li>
<li>Router: a name system that routes messages to named queues</li>
<li>Actor logic: becomes a pure function (behavior) that returns the next state and effects</li>
<li>Effect runner: performs effects</li>
<li>Actor system: ties all of these slices together</li>
</ul>
]]></content:encoded>
  </item>
  <item>
    <title>Decomplecting means using IDs</title>
    <link>https://gordonbrander.com/notes/decomplecting-means-using-ids/</link>
    <guid>https://gordonbrander.com/notes/decomplecting-means-using-ids/</guid>
    <pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate>
    <description>If you&#39;re going to decomplect a class into a bunch of component slices, you&#39;re going to need a way to tie those slices together. You need identifiers that you can use across multiple systems. So you&#39;ll be using a lot of globally-unique identifiers…</description>
    <content:encoded><![CDATA[<p>If you're going to decomplect a class into a bunch of component slices, you're going to need a way to tie those slices together. You need identifiers that you can use across multiple systems. So you'll be using a lot of globally-unique identifiers and hashmaps (or other lookup tables).</p>
<p>Examples:</p>
<ul>
<li><span class="nolink">Entity Component System</span>: in true ECS, game objects are decomplected into Entities, Components, and Systems. An entity is just an ID (or a position in an array). The ID is used to get component data structures and pass them to systems.</li>
<li><span class="nolink">Database normalization</span>: normalization decomplects a record into tables, and foreign keys are what let you join them back.</li>
<li><a class="wikilink" href="/notes/decomplecting-actors/">Decomplecting actors</a></li>
</ul>
<p>Benefits:</p>
<ul>
<li>Each decomplected slice does one thing. This clarity of purpose often leads to a more correct implementation, as well as performance optimization opportunities.</li>
<li>You don't end up re-implementing. For example, you can build a name system once, and use it everywhere you need to dereference a name. You can build a queue once, and use it everywhere you need queueing semantics.</li>
<li>Decomplected slices are decoupled, making it easy to swap out implementations.</li>
<li>The boundary between slices is typically just an ID and some data, so you can swap for any backend that can consume that shape. You can even address things across network boundaries.</li>
</ul>
<p>Tradeoffs:</p>
<ul>
<li>You now have a lot of related, but decoupled resources that you need to manage. You have to enforce invariants with code (e.g. delete all resources for an ID together). This is usually done by a <strong>system</strong> that coordinates the decomplected slices.</li>
<li>Layers of indirection. ID-through-hashmap is going to be slower than memory pointer. But then again, Python builds its whole class abstraction on top of this kind of hashmap indirection.</li>
</ul>
<h2><a href="#related" aria-hidden="true" class="anchor" id="related"></a>Related</h2>
<p><span class="nolink">Decomplecting</span>, <span class="nolink">Functional programming</span></p>
]]></content:encoded>
  </item>
  <item>
    <title>Ecosystems are smarter than we are</title>
    <link>https://gordonbrander.com/notes/ecosystems-are-smarter-than-we-are/</link>
    <guid>https://gordonbrander.com/notes/ecosystems-are-smarter-than-we-are/</guid>
    <pubDate>Tue, 28 Oct 2025 07:31:16 +0000</pubDate>
    <description>Beer thought that ecosystems are smarter than we are—not in their representational cognitive abilities, but in their performative ability to solve problems that exceed our cognitive ones. The quote above is from Andrew Pickering, The Cybernetic…</description>
    <content:encoded><![CDATA[<blockquote>
<p>Beer thought that ecosystems are smarter than we are—not in their representational cognitive abilities, but in their performative ability to solve problems that exceed our cognitive ones.</p>
</blockquote>
<p>The quote above is from Andrew Pickering, <span class="nolink">The Cybernetic Brain</span>.</p>
<blockquote>
<p>Somewhere along the line when one tries to get grips with Beer on biological computing, an apparent paradox surfaces. Beer’s goal, all along, was to improve management. The cybernetic factory was supposed to be an improvement on existing factories with their human managers. And yet the cybernetic brain of the factory was supposed to be a colony of insects, some dead leaves for them to feed on, the odd leech. Did Beer really think that his local pond was cleverer than he was? In a way, the answer has to be that he did, but we should be clear what way that was. Recall that Beer thought that the economic environment of the factory was itself an exceedingly complex system, ultimately unknowable and always becoming something new. He therefore felt that this environment would always be setting managers problems that our usual modes of cognition are simply unable to solve. This connects straight back to the above remarks on Beer’s skepticism toward representational knowledge. On the other hand, according to Beer, biological systems can solve these problems that are beyond our cognitive capacity. They can adapt to unforeseeable fluctuations and changes. The pond survives. Our bodies maintain our temperatures close to constant whatever we eat, whatever we do, in all sorts of physical environments. It seems more than likely that if we were given conscious control over all the parameters that bear on our internal milieu, our cognitive abilities would not prove equal to the task of maintaining our essential variables within bounds and we would quickly die. This, then, is the sense in which Beer thought that ecosystems are smarter than we are—not in their representational cognitive abilities, which one might think are nonexistent, but in their performative ability to solve problems that exceed our cognitive ones. In biological computers, the hope was that “solutions to problems simply grow” (1962a, 211).</p>
</blockquote>
<p>See also: <a class="wikilink" href="/notes/outcome-over-representation/">Outcome over representation</a>, <a href="http://www.dubberly.com/articles/cybernetics-and-counterculture.html">Dubberly on Cybernetics and Counterculture</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Outcome over representation</title>
    <link>https://gordonbrander.com/notes/outcome-over-representation/</link>
    <guid>https://gordonbrander.com/notes/outcome-over-representation/</guid>
    <pubDate>Tue, 28 Oct 2025 07:29:12 +0000</pubDate>
    <description>But Beer started from this realization: in a world of exceedingly complex systems, for which any representation can only be provisional, performance is what we need to care about. ( Andrew Pickering , 2010, The Cybernetic Brain ) Stafford Beer and…</description>
    <content:encoded><![CDATA[<blockquote>
<p>But Beer started from this realization: in a world of exceedingly complex systems, for which any representation can only be provisional, performance is what we need to care about. <br />
(<span class="nolink">Andrew Pickering</span>, 2010, <span class="nolink">The Cybernetic Brain</span>)</p>
</blockquote>
<p><span class="nolink">Stafford Beer</span> and <span class="nolink">Gordon Pask</span> both insisted on defining <em>thinking</em> as <em>actual performance</em>, producing an observable outcome. From an evolutionary perspective, performance is what matters. Whether the &quot;thinking&quot; is accomplished via conscious symbolic cognition or stigmergic pheremone trails or trophic networks is irrelevant, as long as you're getting information and doing something about it.</p>
<p>The cybernetic focus on performance offers a pragmatic rejoinder to the <span class="nolink">Cartesian Theater</span> model of thinking, which tends to insist that &quot;actual thinking&quot; somehow happens outside of the performative system, in a kind of infinite regress. Little guys, all the way down. It seems more likely that the Cartesian way of thinking about thinking is a misframing born out of our lived experience as symbolic cognizers.</p>
<p>Beer had a deep skepticism toward representational forms of knowledge. On their biological computing project:</p>
<blockquote>
<p>In the sort of machines that [Pask] and I have been concerned with, you cannot get at the intermediate answer... you do not know what the answer is. Now this sounds absurdly naïve, but it is not, because you do not want the answer. What you do want is to use this answer. (Stafford Beer)</p>
</blockquote>
<p>This perspective lead Beer to believe that <a class="wikilink" href="/notes/ecosystems-are-smarter-than-we-are/">ecosystems are smarter than we are</a>.</p>
<p>See also: <span class="nolink">The purpose of a system is what it does</span>, <a class="wikilink" href="/notes/ecosystems-are-smarter-than-we-are/">Ecosystems are smarter than we are</a>, <span class="nolink">Cybernetics</span>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Zoom in, zoom out</title>
    <link>https://gordonbrander.com/notes/zoom-in-zoom-out/</link>
    <guid>https://gordonbrander.com/notes/zoom-in-zoom-out/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Smaller story arc s can be composed into larger ones, or woven together. Try this: zoom into a small story arc about one or two people. Then zoom out to a larger related story arc. Then zoom back in. This works well when trying to communicate a…</description>
    <content:encoded><![CDATA[<p>Smaller <a class="wikilink" href="/notes/story-arc/">story arc</a>s can be composed into larger ones, or woven together.</p>
<p>Try this: zoom into a small story arc about one or two people. Then zoom out to a larger related story arc. Then zoom back in.</p>
<p>This works well when trying to communicate a massive change that is happening in the world. We need to see the mass movement, but anchor on the meaning at <a class="wikilink" href="/notes/human-scale/">human scale</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>When data is bad, use simple models</title>
    <link>https://gordonbrander.com/notes/when-data-is-bad-use-simple-models/</link>
    <guid>https://gordonbrander.com/notes/when-data-is-bad-use-simple-models/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Simple models outperform complex models when data is bad or sparse. Simple models work better in VUCA environments. From the SFI Podcast Apr 6, 2020 , discussing Jurgen Jost and Luu Hoang&#39;s paper on making the most of bad data : When data is really…</description>
    <content:encoded><![CDATA[<p>Simple models outperform complex models when data is bad or sparse. Simple models work better in <a class="wikilink" href="/notes/vuca/">VUCA</a> environments.</p>
<p>From the <a href="https://overcast.fm/+UtNTXuFsE/24:50">SFI Podcast Apr 6, 2020</a>, discussing <a href="https://www.santafe.edu/news-center/news/transmission-luu-hoang-duc-and-jurgen-jost-making-most-bad-data">Jurgen Jost and Luu Hoang's paper on making the most of bad data</a>:</p>
<blockquote>
<p>When data is really bad, you should use the simplest model at hand. When data is very good, you can use complicated models.</p>
</blockquote>
<p>And:</p>
<blockquote>
<p>There's been a lot of conversation about this early prognostication that came out of the Imperial College model. It had, in retrospect, wildly over-estimated the number of fatalities. And now, of course, that model has been modified so as to reduce that number. One of the problems with that model, philosophically, is it was vastly too complicated given the data that we had. There was a temptation, because of policy, to put everything in. So we're going to put in the number of schools, the age distribution of the households, the number of hospitals, their spatial locations, the position of airports... These are these very complicated agent-based models. These models are absolutely critical when you have really good data, but what Jurgen and Luu Hoang are saying is, what if you don't? Well now what you should do is the paradoxical opposite. Use the simplest model you possibly can, because they're much less sensitive to fluctuations in the data. They don't overfit the data. The last thing you want to do is overfit, or parameterize the model on bad or sparse data.</p>
</blockquote>
<p>A good rule of thumb for regression model is: 10 outcomes per variable.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Write the press release</title>
    <link>https://gordonbrander.com/notes/write-the-press-release/</link>
    <guid>https://gordonbrander.com/notes/write-the-press-release/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Amazon.com has a product development process they call Working Backwards . Rather than starting from an idea or a technology, you start by writing the press release for the product. The target audience is the customer. The press release is…</description>
    <content:encoded><![CDATA[<p>Amazon.com has a product development process they call <em>Working Backwards</em>. Rather than starting from an idea or a technology, you start by <strong>writing the press release</strong> for the product.</p>
<ul>
<li>The target audience is the customer.</li>
<li>The press release is circulated internally.</li>
<li>If the press release isn't compelling, you don't have a strong product hypothesis. Iterate! Iterating on a press release is less expensive than iterating on a product.</li>
</ul>
<p>References:</p>
<ul>
<li><a href="https://www.allthingsdistributed.com/2006/11/working_backwards.html">Working Backwards</a>, Werner Vogels, CTO - Amazon.com</li>
<li><a href="https://www.quora.com/Amazon-company-What-is-Amazons-approach-to-product-development-and-product-management">Quora — What is Amazon's approach to product development and product management?</a></li>
</ul>
<hr />
<p><span class="nolink">Product strategy</span></p>
]]></content:encoded>
  </item>
  <item>
    <title>VUCA</title>
    <link>https://gordonbrander.com/notes/vuca/</link>
    <guid>https://gordonbrander.com/notes/vuca/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>We live in a networked world, a world governed by asymmetry, feedback loops , and power laws . The US Army and Navy War College has an acronym for this kind of world: VUCA . Volatile Uncertain Complex Ambiguous</description>
    <content:encoded><![CDATA[<p>We live in a networked world, a world governed by asymmetry, <span class="nolink">feedback loops</span>, and <span class="nolink">power laws</span>. The US Army and Navy War College has an acronym for this kind of world: <strong>VUCA</strong>.</p>
<ul>
<li>Volatile</li>
<li>Uncertain</li>
<li>Complex</li>
<li>Ambiguous</li>
</ul>
]]></content:encoded>
  </item>
  <item>
    <title>Three-act story structure</title>
    <link>https://gordonbrander.com/notes/three-act-story-structure/</link>
    <guid>https://gordonbrander.com/notes/three-act-story-structure/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>The three act story structure is a framework used in screenwriting and novels. Act 1 — Setup Beginning Inciting incident Second thoughts Climax of act 1 Act 2 — Confrontation Obstacle Obstacle (ascending action) Midpoint (big twist!) Obstacle…</description>
    <content:encoded><![CDATA[<p>The three act story structure is a framework used in screenwriting and novels.</p>
<ol>
<li>Act 1 — Setup
<ol>
<li>Beginning</li>
<li>Inciting incident</li>
<li>Second thoughts</li>
<li>Climax of act 1</li>
</ol>
</li>
<li>Act 2 — Confrontation
<ol>
<li>Obstacle</li>
<li>Obstacle (ascending action)</li>
<li>Midpoint (big twist!)</li>
<li>Obstacle</li>
<li>Disaster!</li>
<li>Crisis!</li>
<li>Climax of act 2</li>
</ol>
</li>
<li>Act 3 — Resolution
<ol>
<li>Climax of act 3</li>
<li>Obstacles (descending action)</li>
<li>Denouement (wrap-up)</li>
<li>End</li>
</ol>
</li>
</ol>
<hr />
<p>Looking at Star Wars through the lens of the three-act story structure:</p>
<ol>
<li><strong>Act 1</strong> — Setup
<ol>
<li><strong>Beginning</strong> — &quot;A long time ago, in a galaxy far, far away...&quot;, Rebel ship flees Star Destroyer.</li>
<li><strong>Inciting incident</strong> — &quot;Help me Obi-wan Kenobi, you're my only hope!&quot;</li>
<li><strong>Second thoughts</strong> — &quot;I can't get involved. I've got work to do. It's not that I like the Empire, I hate it! But there's nothing I can do about it right now.&quot;</li>
<li><strong>Climax of act 1</strong> — returns to destroyed farm, resolves to join the Rebellion.</li>
</ol>
</li>
<li><strong>Act 2</strong> — Confrontation
<ol>
<li><strong>Obstacle</strong> — Cantina fight.</li>
<li><strong>Obstacle</strong> (ascending action) — Escape in the Falcon.</li>
<li><strong>Midpoint</strong> (big twist!) — &quot;That's what I'm trying to tell you kid. Alderaan ain't there.&quot; &quot;That's no moon. It's a space station.&quot;</li>
<li><strong>Obstacle</strong> — Tractor beam</li>
<li><strong>Disaster</strong> — Trash pit</li>
<li><strong>Crisis</strong> — Obi-wan Kenobi dies</li>
<li><strong>Climax of act 2</strong> — Escape from the Death Star</li>
</ol>
</li>
<li><strong>Act 3</strong> — Resolution
<ol>
<li><strong>Climax of act 3</strong> — Trench run</li>
<li><strong>Obstacles</strong> — &quot;Use the Force Luke&quot;</li>
<li><strong>Denouement</strong> (wrap-up) — &quot;Remember the Force will be with you. Always.&quot;</li>
<li><strong>End</strong> — Medal scene</li>
</ol>
</li>
</ol>
<hr />
<p><a href="http://boingboing.net/2011/08/05/write-an-adventure-novel-in-three-days-the-michael-moorcock-way.html">Write an adventure novel in 3 days — the Michael Moorcock way</a></p>
<p><a href="https://en.wikipedia.org/wiki/Three-act_structure">Three-act structure on Wikipedia</a></p>
]]></content:encoded>
  </item>
  <item>
    <title>Time consciousness</title>
    <link>https://gordonbrander.com/notes/time-consciousness/</link>
    <guid>https://gordonbrander.com/notes/time-consciousness/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>What is time? Our modern sense of time is homogenous. It divided and measured in &amp;quot;units&amp;quot; to be filled. Clock time. These time units have no meaning themselves. They are empty containers, filled with meaning by us, through activities we do…</description>
    <content:encoded><![CDATA[<p>What is time? Our modern sense of time is homogenous. It divided and measured in &quot;units&quot; to be filled. Clock time. These time units have no meaning themselves. They are empty containers, filled with meaning by us, through activities we do within them.</p>
<p>This is how I think of time. Or rather, how I think of time, before I <em>really think about it</em>. It's likely that you think of time this way too. It's part of our <span class="nolink">social imaginary</span>. Time is an asset to be managed through instrumental reason.</p>
<p>But this is not the only way to think about time, and it's a relatively new way of seeing time. Before the advent of precise time-keeping, dividing and engineering time in this way would have been hard to imagine.</p>
<p>In a <span class="nolink">A Secular Age</span>, Charles Taylor identifies several types of time-consciousness that have been part of our <span class="nolink">social imaginary</span>.</p>
<p><strong>Modern &quot;ordinary&quot; time</strong> we already know.</p>
<h2><a href="#higher-time" aria-hidden="true" class="anchor" id="higher-time"></a>Higher time</h2>
<p>A higher calendar time that inflects ordinary time with symbolic meaning. Liturgical time is an example. Anniversaries are another kind of higher time.</p>
<blockquote>
<p>What did higher times do? One might say, they gathered, assembled, reordered, punctuated profane, ordinary time.</p>
</blockquote>
<h2><a href="#time-of-origins" aria-hidden="true" class="anchor" id="time-of-origins"></a>Time of origins</h2>
<p>A time-before-time that sets the template for how society and ordinary time ought to be ordered. This is a time of legendary figures and mythical deeds.</p>
<p>The Garden of Eden, Noah's flood, the Exodus belong to a time of origins.</p>
<p>The Founding Fathers, The Declaration of Independence, the midnight ride of Paul Revere belong to a quasi-mythical time of origins in the US. This is why appeals to the Constitution have a religious tenor in some circles.</p>
<h2><a href="#platonic-time" aria-hidden="true" class="anchor" id="platonic-time"></a>Platonic time</h2>
<p>Platonic time is time-as-corruption. Platonic Forms are changeless. Time, decomposition and change hold sway in the sublunar, which has fallen short of the Forms. As you approach the heavens, time falls away, until you reach the unchanging realm of the Forms.</p>
<h2><a href="#augustinian-time" aria-hidden="true" class="anchor" id="augustinian-time"></a>Augustinian time</h2>
<p>St Augustin developed a concept of time as potentiality. We gather from past experience to will into the future by acting in the present. For Augustin, God, who is pure potentiality, sits at the moment where all time is gathered, past and present, into an eternal <em>now</em>.</p>
<h2><a href="#deep-time" aria-hidden="true" class="anchor" id="deep-time"></a>Deep Time</h2>
<p>The unfathomable reaches of time we now grapple with, as our understanding of the universe unfolds. Time unmoored from any human refrence point. Billions and billions.</p>
<p>Deep Time is a new time-consciousness. It is awe-inspiring and disorienting. Many contemporary people consciously disavow it.</p>
<p>Deep Time caused the floor to drop out from the medieval cosmos picture. All of history used to fit within the stained glass story windows of a cathedral. Now we have... what? A dark abyss.</p>
<p>Nietze's Parable of the Madman captures the unmooring effect of this time-consciousness:</p>
<blockquote>
<p>How could we drink up the sea? Who gave us the sponge to wipe away the entire horizon? What were we doing when we unchained this earth from its sun? Whither is it moving now? Whither are we moving? Away from all suns? Are we not plunging continually? Backward, sideward, forward, in all directions? Is there still any up or down? Are we not straying, as through an infinite nothing? Do we not feel the breath of empty space? Has it not become colder? Is not night continually closing in on us?</p>
</blockquote>
]]></content:encoded>
  </item>
  <item>
    <title>The Feynman method</title>
    <link>https://gordonbrander.com/notes/the-feynman-method/</link>
    <guid>https://gordonbrander.com/notes/the-feynman-method/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Richard Feynman was a polymath , who did pioneering work in the Manhatten Project, quantum physics, parallel computing, and nanotechnology. One would expect he knows a thing or two about learning. Lucky for us, he boiled his technique down into 4…</description>
    <content:encoded><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Richard_Feynman">Richard Feynman was a polymath</a>, who did pioneering work in the Manhatten Project, quantum physics, parallel computing, and nanotechnology. One would expect he knows a thing or two about learning. Lucky for us, he boiled his technique down into 4 steps.</p>
<p>The Feynman method of learning:</p>
<ol>
<li>Find a concept</li>
<li>On a piece of paper, write an explanation of the concept using simple words — the way you would teach it to a first-grader.</li>
<li>When you encounter a gap, or find yourself resorting to big words and tricky concepts, go back to the source material. Re-learn, until you can explain it in simple terms.</li>
<li>Share it!</li>
</ol>
<p>Also: <a class="wikilink" href="/notes/learn-to-learn/">learn to learn</a>, <a class="wikilink" href="/notes/be-approximately-right/">be approximately right</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Story arc</title>
    <link>https://gordonbrander.com/notes/story-arc/</link>
    <guid>https://gordonbrander.com/notes/story-arc/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>The elements of story: Situation Conflict Climax Resolution This is the traditional story arc, and it has many incarnations: Hero&amp;#39;s journey — Joseph Campbell&#39;s Monomyth Once there was a — fairytale structure Three-act story structure Lost and…</description>
    <content:encoded><![CDATA[<p>The elements of story:</p>
<ol>
<li>Situation</li>
<li>Conflict</li>
<li>Climax</li>
<li>Resolution</li>
</ol>
<p>This is the traditional story arc, and it has many incarnations:</p>
<ul>
<li><span class="nolink">Hero&#39;s journey</span> — Joseph Campbell's Monomyth</li>
<li><a class="wikilink" href="/notes/once-there-was-a/">Once there was a</a> — fairytale structure</li>
<li><a class="wikilink" href="/notes/three-act-story-structure/">Three-act story structure</a></li>
<li><a class="wikilink" href="/notes/lost-and-found/">Lost and found</a></li>
<li><a class="wikilink" href="/notes/what-is-what-could-be-call-to-action/">What is, what could be, call-to-action</a></li>
<li><a class="wikilink" href="/notes/platform-tilt-resolution/">Platform, tilt, resolution</a></li>
</ul>
<p>While the traditional story arc is powerful and reliable, other approaches are possible.</p>
<p><a class="wikilink" href="/notes/in-medias-res/">In medias res</a></p>
<p>Different story structures produce different results.</p>
<p><a href="http://www.youtube.com/watch?v=oP3c1h8v2ZQ">Kurt Vonnegut has fun with story shapes</a>.</p>
<p>For more on technique, see <a class="wikilink" href="/notes/storytelling/">storytelling</a>. For visual storytelling, see <a class="wikilink" href="/notes/panel-to-panel/">panel-to-panel</a> transitions.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Structure by plot</title>
    <link>https://gordonbrander.com/notes/structure-by-plot/</link>
    <guid>https://gordonbrander.com/notes/structure-by-plot/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>When telling a story, structure by plot, not by order of information. &amp;quot;Plot&amp;quot; means &amp;quot;one thing leads to another&amp;quot;. See also: storytelling , story arc .</description>
    <content:encoded><![CDATA[<p>When telling a story, structure by plot, not by order of information. &quot;Plot&quot; means &quot;one thing leads to another&quot;.</p>
<p>See also: <a class="wikilink" href="/notes/storytelling/">storytelling</a>, <a class="wikilink" href="/notes/story-arc/">story arc</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Systems are counterintuitive</title>
    <link>https://gordonbrander.com/notes/systems-are-counterintuitive/</link>
    <guid>https://gordonbrander.com/notes/systems-are-counterintuitive/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>The human mind is not adapted to interpreting how social systems behave. Social systems belong to the class called multi-loop nonlinear feedback systems. In the long history of evolution it has not been necessary until very recent historical times…</description>
    <content:encoded><![CDATA[<blockquote>
<p>The human mind is not adapted to interpreting how social systems behave. Social systems belong to the class called multi-loop nonlinear feedback systems. In the long history of evolution it has not been necessary until very recent historical times for people to understand complex feedback systems. Evolutionary processes have not given us the mental ability to interpret properly the dynamic behavior of those complex systems in which we are now embedded. (Jay Forrester, 1971. “<a href="https://ocw.mit.edu/courses/15-988-system-dynamics-self-study-fall-1998-spring-1999/65cdf0faf132dec7ec75e91f9651b31f_behavior.pdf">Counterintuitive behavior of social systems</a>”)</p>
</blockquote>
<p>Related: <span class="nolink">Club of Rome</span>, <span class="nolink">Jay Forrester</span>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Slowly, then all at once</title>
    <link>https://gordonbrander.com/notes/slowly-then-all-at-once/</link>
    <guid>https://gordonbrander.com/notes/slowly-then-all-at-once/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>How complex systems fail: slowly, then all at once. All complex sytems are full of non-linear feedback loops . In a healthy complex system, these will have balancing feedback loops, holding each other in dynamic equilibrium. Given a small…</description>
    <content:encoded><![CDATA[<p>How complex systems fail: slowly, then all at once.</p>
<hr />
<p>All complex sytems are full of non-linear <span class="nolink">feedback loops</span>. In a healthy complex system, these will have balancing feedback loops, holding each other in dynamic equilibrium. Given a small purturbence, these systems tend to fall back toward equilibrium, but a complex system is only ever <span class="nolink">metastable</span>. If the purturbation is too intense, the feedback loops that make it up will fly apart, resulting in a sudden failure.</p>
<hr />
<p><a class="wikilink" href="/notes/pace-layers/">Pace layers</a>: different systems seem to boom and bust on different timelines. Failures at lower layers tend to create catastrophic discontinuities for those above.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Split edit</title>
    <link>https://gordonbrander.com/notes/split-edit/</link>
    <guid>https://gordonbrander.com/notes/split-edit/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>In film, a split edit is a cut that changes the audio and visuals at different times. This helps with continuity between cuts. The audio acts as an off-ramp from the previous scene, or an on-ramp to the next. An L Cut overlaps audio from the…</description>
    <content:encoded><![CDATA[<p>In film, a <em>split edit</em> is a cut that changes the audio and visuals at different times. This helps with continuity between cuts. The audio acts as an off-ramp from the previous scene, or an on-ramp to the next.</p>
<ul>
<li>An <strong>L Cut</strong> overlaps audio from the previous scene on to the next. It's an off-ramp.</li>
<li>A <strong>J Cut</strong> overlaps audio from the next scene on the previous. It's an on-ramp.</li>
</ul>
<p>Also: <a class="wikilink" href="/notes/storytelling/">storytelling</a>, <span class="nolink">filmmaking</span>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Scenius</title>
    <link>https://gordonbrander.com/notes/scenius/</link>
    <guid>https://gordonbrander.com/notes/scenius/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Like genius, except it is imbedded within the scene, and not the individuals that make it up. I was an art student and, like all art students, I was encouraged to believe that there were a few great figures like Picasso and Kandinsky, Rembrandt and…</description>
    <content:encoded><![CDATA[<p>Like genius, except it is imbedded within the scene, and not the individuals that make it up.</p>
<blockquote>
<p>I was an art student and, like all art students, I was encouraged to believe that there were a few great figures like Picasso and Kandinsky, Rembrandt and Giotto and so on who sort-of appeared out of nowhere and produced artistic revolution.</p>
<p>As I looked at art more and more, I discovered that that wasn’t really a true picture.</p>
<p>What really happened was that there was sometimes very fertile scenes involving lots and lots of people – some of them artists, some of them collectors, some of them curators, thinkers, theorists, people who were fashionable and knew what the hip things were – all sorts of people who created a kind of ecology of talent. And out of that ecology arose some wonderful work.</p>
<p>So I came up with this word “scenius” – and scenius is the intelligence of a whole operation or group of people. And I think that’s a more useful way to think about culture, actually. Let’s forget the idea of “genius” for a little while, let’s think about the whole ecology of ideas that give rise to good new thoughts and good new work.</p>
<p><cite><a href="http://www.synthtopia.com/content/2009/07/09/brian-eno-on-genius-and-scenius/">Brian Eno</a></cite></p>
</blockquote>
]]></content:encoded>
  </item>
  <item>
    <title>Schein's model of organizational culture</title>
    <link>https://gordonbrander.com/notes/schein-s-model-of-organizational-culture/</link>
    <guid>https://gordonbrander.com/notes/schein-s-model-of-organizational-culture/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Edgar Schein&#39;s posits three levels of organizational culture: Artifacts and behaviours : any equipment and processes you can point to. Espoused values : stated values and rules of behavior. How the organization presents itself to itself (and…</description>
    <content:encoded><![CDATA[<p>Edgar Schein's posits three levels of organizational culture:</p>
<ol>
<li><strong>Artifacts and behaviours</strong>: any equipment and processes you can point to.</li>
<li><strong>Espoused values</strong>: stated values and rules of behavior. How the organization presents itself to itself (and others).</li>
<li><strong>Assumptions</strong>: behaviors that are assumed, unconscious, and unquestioned.</li>
</ol>
<hr />
<p><a href="https://en.wikipedia.org/wiki/Edgar_Schein">Edgar Schein on Wikipedia</a></p>
]]></content:encoded>
  </item>
  <item>
    <title>Second System Syndrome</title>
    <link>https://gordonbrander.com/notes/second-system-syndrome/</link>
    <guid>https://gordonbrander.com/notes/second-system-syndrome/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Second System Syndrome is the curse by which a simple system is doomed to be replaced by an excessively abstract, over-engeered, or bloated successor. You hack together a small simple program to solve a problem. Congratulations! It&#39;s wildly…</description>
    <content:encoded><![CDATA[<p>Second System Syndrome is the curse by which a simple system is doomed to be replaced by an excessively abstract, over-engeered, or bloated successor.</p>
<hr />
<p>You hack together a small simple program to solve a problem.</p>
<p>Congratulations! It's wildly successful. Now you have a community, and the limits of your hasty work are starting to show. Time for a rewrite!</p>
<p>You've been keeping a list of all the features you would like, limitations you would like to surpass, and you want to avoid getting boxed into a corner again, so you design a super abstract architecture.</p>
<p>Fast forward a few weeks, and you're tangled up in abstractions. The features you have built out don't add up to a product-market fit. You're still weeks away from a finished product. Hmm.</p>
<hr />
<p>The phrase was first coined in the book <a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month">The Mythical Man-Month</a>.</p>
<hr />
<p>How do you avoid it? <a class="wikilink" href="/notes/start-with-a-toy/">Start with a toy</a>, and <a class="wikilink" href="/notes/modularize-later/">modularize later</a>.</p>
<hr />
<p>See also: <a href="https://en.wikipedia.org/wiki/Second-system_effect">second system effect on Wikipedia</a>, <span class="nolink">Gall&#39;s Law</span>, <a class="wikilink" href="/notes/design-patterns/">design patterns</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Series graphs</title>
    <link>https://gordonbrander.com/notes/series-graphs/</link>
    <guid>https://gordonbrander.com/notes/series-graphs/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Smoothing and Downsampling For large enough datasets, Simple Random Sampling is a way to prune datapoints while avoiding systematic bias. In cases where the dataset is small enough, this may cause line visualizations to look different. For…</description>
    <content:encoded><![CDATA[<h2><a href="#smoothing-and-downsampling" aria-hidden="true" class="anchor" id="smoothing-and-downsampling"></a>Smoothing and Downsampling</h2>
<p>For large enough datasets, <a href="https://en.wikipedia.org/wiki/Simple_random_sample">Simple Random Sampling</a> is a way to prune datapoints while avoiding systematic bias. In cases where the dataset is small enough, this may cause line visualizations to look different.</p>
<p>For downsampling timeseries data, try the Largest-Triangle-Three-Buckets algorithm.</p>
<ul>
<li>(JavaScript) <a href="https://github.com/sveinn-steinarsson/flot-downsample">Flot Downsample</a> implements largest triangle three buckets.</li>
<li><a href="https://github.com/troxel/LargestTriangleThreeBuckets">Perl LargestTrangleThreeBuckets</a></li>
</ul>
]]></content:encoded>
  </item>
  <item>
    <title>Questions are places in your mind where answers fit</title>
    <link>https://gordonbrander.com/notes/questions-are-places-in-your-mind-where-answers-fit/</link>
    <guid>https://gordonbrander.com/notes/questions-are-places-in-your-mind-where-answers-fit/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Questions are places in your mind where answers fit. If you haven’t asked the question, the answer has nowhere to go. It hits your mind and bounces right off. You have to ask the question – you have to want to know – in order to open up the space…</description>
    <content:encoded><![CDATA[<blockquote>
<p>Questions are places in your mind where answers fit. If you haven’t asked the question, the answer has nowhere to go. It hits your mind and bounces right off. You have to ask the question – you have to want to know – in order to open up the space for the answer to fit.</p>
</blockquote>
<p>— Clay Christiansen</p>
<p>Also: <a class="wikilink" href="/notes/learn-to-learn/">learn to learn</a>.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Prime Movers of Globalization</title>
    <link>https://gordonbrander.com/notes/prime-movers-of-globalization/</link>
    <guid>https://gordonbrander.com/notes/prime-movers-of-globalization/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>Smil looks at the Diesel engine and its impact on civilization. Globalization is basically Diesel-powered.</description>
    <content:encoded><![CDATA[<p>Smil looks at the Diesel engine and its impact on civilization. Globalization is basically Diesel-powered.</p>
]]></content:encoded>
  </item>
  <item>
    <title>Project management map</title>
    <link>https://gordonbrander.com/notes/project-management-map/</link>
    <guid>https://gordonbrander.com/notes/project-management-map/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>If you don&#39;t have a proper project manager, you could do worse than to fill in the blanks in this punchlist. It&#39;s useful to have resources lined up to solve these problems. Strategy, research Who do we think our customer is? What is their…</description>
    <content:encoded><![CDATA[<p>If you don't have a proper project manager, you could do worse than to fill in the blanks in this punchlist. It's useful to have resources lined up to solve these problems.</p>
<ul>
<li>Strategy, research
<ul>
<li>Who do we think our customer is? What is their <a class="wikilink" href="/notes/job-to-be-done/">job-to-be-done</a>?</li>
<li>Strategy research</li>
<li>Competitive analysis</li>
<li>Lean business canvas <span class="nolink">Lean canvas</span></li>
<li>User interviews</li>
<li>Field research</li>
<li>Market segments (for established product categories),</li>
<li>Trend-spotting research (for fashion)</li>
<li>Futures forecasting (pdf reports), <span class="nolink">ScenarioPlanning</span>, for startups.</li>
</ul>
</li>
<li>Kickoff, framing
<ul>
<li>Exploration, scoping (pdf reports)</li>
<li>Project brief (client services)</li>
<li>Branding guidelines (if any preexisting brand)</li>
</ul>
</li>
<li>Customer stories, user stories, job stories
<ul>
<li><span class="nolink">Job Stories</span></li>
<li><span class="nolink">User Stories</span></li>
</ul>
</li>
<li>Design Hypothesis</li>
<li>Sitemap</li>
<li>Wireframes
<ul>
<li>Information architecture</li>
</ul>
</li>
<li>User testing
<ul>
<li>Keynote interactive, etc</li>
</ul>
</li>
<li>Prototypes (test design hypothesis)
<ul>
<li>More User Testing</li>
<li>Loop back to Design Hypothesis</li>
<li>Make as many loops as necessary, each one should resolve risks and move you closer to finding product-market fit.</li>
</ul>
</li>
<li>Moodboards</li>
<li>Interaction design, graphic design, motion design</li>
<li>Styleguide</li>
<li>Asset sharing and versioning (Drive? GH? Something else?)</li>
</ul>
<h2><a href="#brand" aria-hidden="true" class="anchor" id="brand"></a>Brand</h2>
<ul>
<li>Brand guidelines</li>
<li>Copy guidelines/voice</li>
<li>Brand colors</li>
<li>Applications</li>
</ul>
<h2><a href="#frontend-development" aria-hidden="true" class="anchor" id="frontend-development"></a>Frontend Development</h2>
<ul>
<li>Mobile or web or something else?</li>
<li>UI framework/toolkit <span class="nolink">React</span> <span class="nolink">Elm</span></li>
<li>Build tooling <span class="nolink">Rollup</span> <span class="nolink">Babel</span></li>
<li>Integration testing <span class="nolink">Selenium</span></li>
</ul>
<h2><a href="#user-research" aria-hidden="true" class="anchor" id="user-research"></a>User Research</h2>
<ul>
<li>Automated (tool needed)</li>
<li>Customer feedback in-app (tool needed)</li>
<li>Metrics</li>
<li>Analytics</li>
</ul>
<h2><a href="#backend-development" aria-hidden="true" class="anchor" id="backend-development"></a>Backend Development</h2>
<ul>
<li>REST API</li>
<li>Database structure</li>
<li>Scaling/sharding/replication, <span class="nolink">Serverless</span></li>
<li>Security/authentication/<span class="nolink">oAuth</span></li>
<li>CDN/asset server</li>
<li>Payments</li>
<li>Real-time communication <span class="nolink">Websockets</span></li>
<li>Unit tests</li>
</ul>
<h2><a href="#devops-release-engineering-release-management" aria-hidden="true" class="anchor" id="devops-release-engineering-release-management"></a>DevOps, Release engineering, release management</h2>
<p>Release engineering:</p>
<ul>
<li>Farm out as much devops as possible by using <span class="nolink">serverless</span>, AWS, etc</li>
</ul>
<p>Release management:</p>
<ul>
<li>Build scripts</li>
<li>Nightly builds</li>
<li>Continuous Integration <span class="nolink">TravisCI</span></li>
</ul>
<p>Development process:</p>
<ul>
<li>Code peer review</li>
<li>Someone else lands your code. Better yet, a bot. See the <a class="wikilink" href="/notes/not-rocket-science-rule/">not rocket science rule</a></li>
<li>Git branching strategy. <span class="nolink">Train model</span> or <span class="nolink">master must always be deployable</span></li>
<li>Automate everything: build bots, merge bots, CI bots</li>
</ul>
<h2><a href="#documentation" aria-hidden="true" class="anchor" id="documentation"></a>Documentation</h2>
<ul>
<li>Wikis are an excellent way to capture institutional knowledge, but require buy-in from a critical mass of the team. Making them a habit is key.
<ul>
<li><span class="nolink">Dokuwiki</span> is pretty good. <span class="nolink">MoinMoin</span> is spam-prone. <span class="nolink">Team documentation wiki</span></li>
</ul>
</li>
<li>Markdown files in a GitHub repo can function as a pretty good documentation hub. Leverage the GitHub pull request workflow.</li>
<li><a href="https://usecanvas.com/">https://usecanvas.com/</a></li>
</ul>
<h2><a href="#building-a-team" aria-hidden="true" class="anchor" id="building-a-team"></a>Building a Team</h2>
<ul>
<li><span class="nolink">Charlie Kindel&#39;s 5 Ps</span></li>
</ul>
<h2><a href="#project-management" aria-hidden="true" class="anchor" id="project-management"></a>Project management</h2>
<p><span class="nolink">Project management</span></p>
<ul>
<li>Kanban <span class="nolink">Trello</span></li>
<li>Communication <span class="nolink">Slack</span> or <span class="nolink">IRC</span>, but be sure to implement team scrollback server for your channels.</li>
<li>Automate as much grunt-work as possible with bots</li>
</ul>
<p>Meetings:</p>
<ul>
<li><span class="nolink">Daily standup</span></li>
<li><span class="nolink">Weekly Retrospective</span></li>
<li><span class="nolink">1:1 meetings</span></li>
</ul>
<p>Avoiding the morass:</p>
<p>Teams need special breaks with routine to stay sharp. Otherwise you get stuck wandering in the wilderness. Tools:</p>
<ul>
<li>Work week</li>
<li>Milestones</li>
<li>Sprints</li>
</ul>
<p>Remote:</p>
<ul>
<li>Google Hangouts</li>
<li><span class="nolink">Etherpad</span></li>
<li><a href="https://usecanvas.com/">https://usecanvas.com/</a></li>
<li>Slack</li>
</ul>
<h2><a href="#community" aria-hidden="true" class="anchor" id="community"></a>Community</h2>
<ul>
<li>Forum <span class="nolink">Discourse</span></li>
<li><span class="nolink">RFC</span></li>
</ul>
<hr />
<p><span class="nolink">Programming</span>, <span class="nolink">Development</span>, <span class="nolink">Project Management</span></p>
]]></content:encoded>
  </item>
  <item>
    <title>Peaks and troughs</title>
    <link>https://gordonbrander.com/notes/peaks-and-troughs/</link>
    <guid>https://gordonbrander.com/notes/peaks-and-troughs/</guid>
    <pubDate>Tue, 28 Oct 2025 07:13:28 +0000</pubDate>
    <description>People remember: The emotional peak experience The emotional troughs (low) experience The beginning The end This has implications for everything from service design to storytelling .</description>
    <content:encoded><![CDATA[<p>People remember:</p>
<ul>
<li>The emotional <strong>peak</strong> experience</li>
<li>The emotional <strong>troughs</strong> (low) experience</li>
<li>The beginning</li>
<li>The end</li>
</ul>
<p>This has implications for everything from <span class="nolink">service design</span> to <a class="wikilink" href="/notes/storytelling/">storytelling</a>.</p>
]]></content:encoded>
  </item>
</channel>
</rss>
