Leverage Points
Adapted list, originally from Leverage Points: Places to Intervene in a System - Donella Meadows (PDF). Whole Earth, Winter 1997. “In increasing order of effectiveness.”
- Parameters
Constants, parameters, numbers - such as subsidies, taxes, standards. Changing numbers in a system, like physical constants or financial incentives, can alter system behavior. - Buffer size
The sizes of buffers and other stabilizing stocks, relative to their flows. Adjusting the size of buffers, like inventories or capacities, within a system can stabilize or destabilize it. - Structure
The structure of material stocks and flows - such as transport networks, population age structures. Changing the physical layout or structure of a system affects how it operates. - Delays
The lengths of delays, relative to the rate of system change. Modifying the time delays in feedback loops can change the behavior of a system. - Negative feedback loops
The strength of negative feedback loops, relative to the impacts they are trying to correct against. - Positive feedback loops
The gain around driving positive feedback loops. - Information flows
The structure of information flows - who does and does not have access to what kinds of information. Altering who does and does not have access to information can have a big impact on the system. - Rules
The rules of the system - such as incentives, punishments, constraints. - Adaptation
The power to add, change, evolve, or self-organize system structure. Systems can gain resilience or adaptability by changing themselves or evolving. - Goals
The goals of the system. Changing the goal or purpose of a system can lead to very different outcomes. - Paradigm
The mindset or paradigm out of which the system, its goals, structure,rules, delays, parameters arise. A paradigm shift can change every aspect of a system, as it alters fundamental assumptions. - Transcendence
The power to transcend paradigms, the current ways of thinking.
I like the direction of thinking that the list expresses, but would prefer a more mathematical model - the definition of a “leverage point” in a system, how to map the structure and dependencies of a system, to quantify and visualize it.
For example, I want to take LÖVE2D project’s source code and use static analysis to generate a map of all its dependencies, runtime and build toolchain, as a measure of its boostrappability. ..Couldn’t find an automated way to do it, but here’s the list to get an idea.
Dependencies
- C and C++ compiler toolchain
- SDL3
- OpenGL 3.3+ / OpenGL ES 3.0+ / Vulkan / Metal
- OpenAL
- Lua / LuaJIT / LLVM-lua
- FreeType
- harfbuzz
- ModPlug
- Vorbisfile
- Theora
It’s a C++ codebase, with the new version 12 of LÖVE2D using SDL3, that makes sense.
For each of the dependencies in the above list, there can be a similar list of dependencies (if any), and recursively until everything is identified.
C++, I’ve occasionally written in it but the language is too big for comfort for my primate brain. If I want a stack I can understand, customize and extend - I suppose I’d prefer most of it written in C99 (or a cross-platform Lisp, or Lua, or maybe a subset of TypeScript) - simple enough to build executables with a minimal compiler to Wasm. And then I’d need a minimal Wasm runtime written in C, I have a fork of iwasm. But how would I build the C-to-Wasm compiler from source without a precompiled binary of the compiler itself..
Back to study Stage 0.
- bootstrappable/stage0.md
- stagex - A container-native, full-source bootstrapped, and reproducible toolchain to build all the things - codeberg.org
- live-bootstrap - An attempt to provide a reproducible, automatic, complete end-to-end bootstrap from a minimal number of binary seeds to a supported fully functioning operating system.
The Bootstrapping Wiki has good articles and links, it talks about Stage 0 and similar efforts, exploring related topics like: small C compilers, virtual machines, minimal operating systems. Make-a-Lisp is mentioned under Ubiquitous Implementations.
Is that enough to rebuild a practical system for daily computing? There’s an ocean of great open source projects written in all kinds of languages, that I’d want to use and interface with. Would I be able to use SDL3?
It’s a big library but written in C and built with CMake, I can at least read through it and have a basic understanding of its internals.
What about sokol, a cross-platform C library with graphics and audio - it’s part of my uLisp stack I’m exploring. In its build and test script (workflows/main.yml#L40), I see:
sudo apt-get install libgl1-mesa-dev libegl1-mesa-dev mesa-common-dev xorg-dev libasound-dev libvulkan-dev
Dependencies
- Mesa 3D Graphics Library https://mesa3d.org/
- X Window System https://www.x.org/
- ALSA (Advanced Linux Sound Architecture) https://www.alsa-project.org/
And the operating system. Each has its own dependencies, not only in terms of software but social aspects, groups, members, funding, goals.
In a general sense, one could look at the dependency graph of the self, or a group of human beings in its biological/social/cultural/political/ecological contexts, to get an overview of the system and help identify its potential risks and leverage points. I suppose a negative example would be companies like Palantir at the forefront of such social network analysis and data visualization. Similarly with other innovations like large language models - is there a way such corporate technology and research can be repurposed for good, to benefit humanity? With open-source transparency and collaboration, community governance, ethical funding - socially responsible, mutally beneficial, symbiosis and synergy.
Cybernetics seems like a mix of hippie-ish philosophizing and government/military interest in the human use of human beings, to study principles of control that applies to animals and machines. It was an intellectual trend that passed, and there are newer fields, concepts and frameworks. But there’s a continuous lineage of thought and influences, how related concepts and sciences developed over decades and centuries, shaped by historical forces.
It’s the same river that produced “Augmenting Human Intellect: A Conceptual Framework” - Douglas Engelbart (1962). The research was funded by Air Force Office of Scientific Research, then later ARPA (Advanced Research Projects Agency). At the lab he founded, Engelbart embedded a set of organizing principles which he termed “bootstrapping strategy”. He designed the strategy to accelerate the rate of innovation of his lab.
These diagrams are like “enterprise woo”, they’re arbitrary constructions of plausible words, but no science to it. In a way it’s the same kind of magical thinking in the Renaissance or medieval age, with hierarchies of angels and seven levels of heaven.
Somewhere I read that the computer/technology “augmenting the human” approach was in contrast to another stream of thought that approached it from the other side, the human augmenting the machine, or becoming integrated within a mechanically designed system.
there were two main philosophical approaches to human-machine interaction:
Augmentation Theory - Engelbart’s Approach
- Focuses on enhancing human capabilities
- Views technology as an external tool that extends and amplifies human potential
- Emphasizes maintaining human agency and autonomy
- Seeks to reduce manual work while increasing cognitive/creative capacity
Cybernetics/Theory of Integration - Wiener, McCulloch’s Approach
- Focuses on integrating humans into mechanistic systems
- Views technology as an extension of the human system itself
- Emphasizes control mechanisms and feedback loops
- Seeks to optimize the entire human-machine system as a unified whole
Maybe a false dichotomy, I see they largely overlap.
Where did I see the name McCulloch recently.. This thread:
Neural nets use synthetic neurons as the base computational unit. A McCulloch-Pitts neuron uses threshold saturation, excitatory and inhibitory fibers.
It’s an alien concept, I want to take more time getting to understand this.
I wonder if there could be a program that crawls through a software project of any language, mapping its dependency graph. I’m guessing researchers have explored the open-source corpus on GitHub and elsewhere using static analysis over large amounts of code of various languages.
How about a project that takes the 100 most used software libraries and inter-translate them to a set of the 10 most used languages. Theoretically that’d benefit all those ecosystems - but practically, probably not.
In 1943 American neurophysiologist and cybernetician of the University of Illinois at Chicago Warren McCulloch and self-taught logician and cognitive psychologist Walter Pitts published “A Logical Calculus of the ideas Imminent in Nervous Activity,” describing the McCulloch-Pitts neuron, the first mathematical model of a neural network.
Building on ideas in Alan Turing’s “On Computable Numbers”, McCulloch and Pitts’s paper provided a way to describe brain functions in abstract terms, and showed that simple elements connected in a neural network can have immense computational power. The paper received little attention until its ideas were applied by John von Neumann, Norbert Wiener, and others.
Before I forget, I wanted to highlight a phrase from earlier in the thread, about how the slime-mould’s learning and memory are an “alternative architecture” for processing information.
the oscillating networks of slime moulds are not precursors of nervous systems but, rather, an alternative architecture. Here, we argue that comparable information-processing operations can be realized on different architectures sharing similar oscillatory properties.
It makes me think that a “computer” or “programming language” in their current form is an implementation detail, one of many different architectures and mediums (media) that can perform the same computation and flow of logic, data and algorithms.
So why don’t we have a collective library of common algorithms and data structures expressed in a universal and ubiquitous language, that can be compiled to the whole range of programming languages, runtimes, platforms. “Write once, run anywhere.” I suppose package managers and central code repositories is an answer to that need, while accepting/respecting that people will use all kinds of languages they prefer.
From the abacus to quantum computers, to smart living spaces that think with and for you. A cyberpunk writer wrote decades ago, how a city is a giant computer we walk around in. Augmented with a network of satellites, drones, data centers, processors (a trillion semiconductor chips manufactured globally every year) - a human-machine system of astronomical scale, a cybernetic planet. If there is a kind of brain for the planet, how the whole can direct the will of the parts - it’s through us humans, we are the neocortex layer. And how are we doing as self-promoted captain of spaceship Earth, our stewardship of the living system travelling through the universe. The ones at the helm steering it aren’t worthy of trust, and there’s a smell of mutiny in the air, a phase transition.
Unconventional computing
According to the Center for Nonlinear Studies at Los Alamos National Laboratory announcing the conference “Unconventional Computation”:
It is an interdisciplinary research area with the main goal to enrich or go beyond the standard models, such as the Von Neumann computer architecture and the Turing machine, which have dominated computer science for more than half a century.
These methods model their computational operations based on non-standard paradigms, and are currently mostly in the research and development stage.
This quest, in both theoretical and practical dimensions, is motivated by the huge gap between information processing in nature and in artifacts and by the hope that certain challenges that computational sciences face today might be tackled efficiently by alternative paradigms.
- Models of computation
- Mechanical computer is a computer built from mechanical components such as levers and gears rather than electronic components.
- Analog computer is a type of computer that uses analog signals, which are continuous physical quantities, to model and solve problems. These signals can be electrical, mechanical, or hydraulic in nature, behaving according to the mathematical principles in question (analog signals) to model the problem being solved.
- General
- Physical objects, such as billiard-ball computer and domino computer
- Reservoir computing
- Claytronics and Tangible user interface
- Human computer
- Human–robot interaction and Cobot
- Swarm robotics and swarm intelligence
- Physics
- Biology and chemistry
- Mathematics




