Benjamin Schwerdtner is software artist and developer with multidisciplinary background.
User interfaces, Emacs, Clojure, Lisp, Interactive Programming, Dreaming, The Magic of Software and the Computer,
Information processing? How about The soul that lives inside the computer.
Figure 1: Elements of Braitenberg Vehicles
(more of that on youtube)
Unanswered Questions
- What is brain software?
- What are virtual realities?
- What is a user? What are interfaces?
- What can be learned form developing artificial software animals?
- What are
Dan Dennett
's design spaces? - What are
Chiara Marletto
's counterfactuals? - What is the nature elegance, competence, artistic swag, design and creativity?
- Will it be a philosophy of programming?
Valentino Braitenberg
called it the spirit (Geist). That is the organisation principle,
the principle of living, the good idea (Dennett), or perhaps the soul of a thing.
Wizards, scientists, detectives, artists, hackers and biology have something in common. They create knowledge about the magic system of the reality they run on.
A spell is a technology. In computing, that is a procedure. In biology it's subprograms.
David Deutsch
: Any sufficiently understood magic is indistinguishable from technology.
(about possible worlds in The Fabrik of Reality).
Other main influences are
Richard Dawkins
's abstract replicator theory,
Marvin Minsky
, Seymour Papert
philosopy of programming and AI.
Algorithms
Most excited currently about hyper dimensional computing: current stuff.
- post transformer architectures (accidentally)
- biological plausible neuronal nets (Brownian Local Explorer Resonator Particle - Blerp)
- a-life, embodied, self-organizing, robust-first and alternative approaches to AI
- Living computation (Dave Ackley),
- Agental, computational substrate their development and regeneration (Turing, Levin)
- coarse graining (Jessica Flack),
- biologically principled modes of computation.
- Non deterministic computation and programing in superposition (current stuff).
Currently I am thinking about a hyperdimensional version of copycat, current: Exploring "Programing with Analogies", to gain some software skills neccesary for solving the ARC.
My early neurophilosphy stuff is here: "neuronal ensemble memetics".
Also, I'm interested in:
- Category theory: seems like it is a way to formalize design
- Constructtor theory: Perhaps it can provide a physics of design
- it is closely aligned with the theory of computation (Turing, Church, Von Neuman, …).
- But it might be a framework for formalizing biological morphogenesis, unconvential forms of computation, virtual realities, memetics.
Art
- Art Diary
- Humble beginnings (gallery).
Elegance?
Pardon me, Your Honor, the concept is not easy to explain – there is an ineffable quality to some technology, described by its creators as a concinnitous, or technically sweet, or a nice hack – signs that it was made with great care by one who was not merely motivated but inspired. It is the difference between an engineer and a hacker.
Judge Fang and Miss Pao in Neal Stephenson
's The Diamond Age, or, A Young Lady's Illustrated Primer
Pareidolia
Leonardo da Vinci:
If you look at any walls spotted with various stains or with a mixture of different kinds of stones, if you are about to invent some scene you will be able to see in it a resemblance to various different landscapes adorned with mountains, rivers, rocks, trees, plains, wide valleys, and various groups of hills. You will also be able to see divers combats and figures in quick movement, and strange expressions of faces, and outlandish costumes, and an infinite number of things which you can then reduce into separate and well conceived forms.
from the wikipedia article of Pareidolia (fascinating).
That thing where you see a face in the clouds? That also works for hearing words and music in static audio.
Musico-Rhythmic Pareidolia
I'm not sure if there is work on this.
- Experiment:
- Look at the picture below, or open it fullscreen (if it's blank, refresh page)
- Put on any kind of music, I did it with this track by Courtesy
- Simply watch the picture, let it be on it's on terms. (if it flies away you can refresh the page)
Why shouldn't it decide to dance with the music?
It's kinda like in harmony or rhythm or something.
It's like the picture knows what to do or something.
- After a short while, I feel that the picture dances, vibes, is in rhythm or knows the music.
- The rules for updating the shape is seemingly simple, at every update there is a normal distribution for the next update.
- Similarly for the rotation and the small amount of movement.
- My interpretation is that Pareidolia also works for rhythm
code.
This common language of rhythm, maybe it relates to the idea that cognition is musical.
Also:
- Flash lag illusion
- The Heider-Simmel Illusion, it is easy for us to percieve "agentness" and there is even a story line
For the Gestalt psychologists a perception was made from wholes.
Such a gestalt is made from neuronal ensemble trajectories at G. Buzsáki The Brain from Inside Out (2019) - highly recommend.
I think they were on to something; A part of a perception retrieves the whole.
Figure 2: Abstract associatve memory structure, rerieved completely at t0, but stretches across t0-tn.
I think this can implement David Spivak's self fulfilling prophecies.
The cell assembly (ensemble) hypothesis might be that the brain is full of "self fulfilling prophecy" spaceships, which are made from activity.
They try keep themselves alive by having the right downstream effects - including, but not exclusively, top down modification of the incoming sensor data.
- Activate your activators
- /Inhibit your alternatives/
That they can survive die, that they can have random wires and subsequent selection. That makes them abstract replicators, neuronal memes that have competence without comprehension (Dan Dennett),
The neuronal ensemble memetic hypothesis is that the datastructures of brain software are made from agental memes. Implemented as neuronal ensembles, developed via neuronal darwinism (Gerald Edelman).
My idea is that this means that agentness is the most primitive aspect of neuronal datastructures. Even objectness is the memes playing the game of "looking" like something that follows the laws of physics.
I have to admit I still need to check out Karl Fristons free energy principle, it might be the same idea.
Development must be some kind of software synthesis (Synaptic pruning is only done at age 24).
Cajal said synaptic pruning is the settling of the cement of the brain. (Yuste, Lectures in Neuroscience 2023).
Francis Crick said dreaming is for getting rid of parasitic thought.
Some of the mysteries of neuroscience:
- Why synaptic pruning?
- Why neuron failure rate? (40%)
- Why intrinsic firing rate?
- Why are brain injuries filled with glia, not neurons?
- Some mechanism of development must prevent neurons from being added after the fact.
- What is the purpose of sleep and dream?
The 'Toy' Approach to Artificial Biological Intelligence
A theory of creativity and brain software is not figured out.
One might as well play around with outlier ideas. I think it's true that the humblest mechanisms can surprise us.
My vision are some Braitenberg-like agental entities that participate a game-like physics. But it's a toy physics and rules are made up on the fly.
Computation and physics must somehow be the same thing. An algorithm is creating a mini world, with a mini-physics.
Conversely, nature is an interpreter, slavishly computing the next step (physics update), given the arrangement (syntax) of whatever the stuff of physics is. (Particles and their arrangement or something, I'm not a physicist.).
If all those things are equivalent, one might as well go with whatever seems aesthetically pleasing. Modeling neuronal networks is completely arbitrary in a way.
Also, there is a Hofstadter-like subcognitive modeling [Copycat describes the slipnet] available, which is under explored.
Figure 3: Toy Braitenbergs
Using game engine physics for cognitive modeling is something that is used in the space Probabilistic / Bayesian approaches. [Probabilistic Models of Cognition].
Brownian Local Explorer Resonator Particle - Blerp
When I close my eyes I am not blind. There is a shimmering there. Vaguely colorful blobs swirling. Perhaps manifesting into the hints of edges, then ebbing and flowing, washed away by some force of nature which they are not able to whithstand. Perhaps no more than the ideas of an idea of an object.
Figure 4: Blerp fields with different parameters. Cyan has higher attenuation, making the elements move. Blerps are inspired by neuronal ensembles.
This is part of my current hammocking on how to make random, local, memetic, self-organising mechanisms, inspired by neuronal ensembles and biological principled approaches to computing.
My goal is to provide useful, resourceful randomness to a hyper dimensional computing framework. (I expect that Neuronal Ensembles are isomorphic to hypervectors).
particle-field
is a directed graph (on a 2d grid).- Each node is connected to itself and it's immediate neighbours (local).
- Time is discrete, at each time step
A
(activation) particles are selected (global inhibition model). - This makes ensembles.
- They are in some ways a little bit like the gliders of this physics system.
- With
adaptation
(attenuation
): Each node has a lower chance to fire when it is active (making it move like an ameaba). vacum-babble
: Random elements fire (analogous to intrinsic firing rate).decay
: Random elements are erased (neuron failure rate).- This gives ensembles a half-time.
- Activity must survive this decay assault, it must regenerate. (or die).
- the resonator part is the idea that top-down processes constrain which nodes are especially excitable for the blerp. (how to do this is to be figured out).
- There would be at least a second element, a top down element, similar to the slipnet in Hofstadter + Mitchel copycat [1988].
- emphasis on internally generated dynamics (Buzsáki)
- weights with log normal distribution, this makes 'hubs' / 'backbones' of activity
- intrinsic firing rate and failure rate are part of the algorithm
- A brain network would have the dynamics to make stable trajectories (sequences) of hubs (ensembles, attractor basins), which are active for roughly 1 second. (Buzsáki The Brain from Inside Out).
- Since I want to model neuronal codes with hypervectors, I'm not sure if I need the trajectory dynamics
- Those are for the neuronal syntax, which is a rhythm encoding. But we don't need a rhythm encoding, we need only get the essential concepts right.
random?
- Called path of least assumption, by Pentii Kanerva. At the bottom, we can require randomness with impunity.
- Dan Dennett called it Darwnism, a very general idea, that complex things must be made from simpler ones.
David Deutsch
:
It [Creativity] has to be in the broadest sense an evolutionary process. It has to work by variation and selection. Or as Popper calls that in the case of science "conjecture and refutation" or "conjecture and criticism".
But we need to know the details, and the devil is in the details.
I guess that once we understand what it is, we will be able to program it.
There is an analogy here with Darwin's theory of evolution. Darwin's contribution in my view is not his scientific theory of evolution.
It is the philosophical progress that he made in inventing a new mode of explanation not just a new explanation, but a new mode of explanation.
[…]
Paraphrasing:
It is explaining the process that could make things like elephant trunks, not explaining elephant trunks. That is left to the myriad details of the process.
Science Saturday: A Plan to Dye One's Whiskers Green | John Horgan & David Deutsch
This mode of explanation is Dennetts Darwinism, that you can get design via a mechanism that is not designed by itself.
This is required for a theory of life, the fundamental problem of design has to be solved.
Chiara Merletto
(Constructor theory of life), delegates a bottom layer of generic tasks and generic resources to physics.
It is the same idea, in order to make something complicated, at the bottom you need something that is not complicated by itself.
As remarked by George C. Williams, ‘Organisms, wherever possible, delegate jobs to useful spontaneous processes, much as a builder may temporarily let gravity hold things in place and let the wind disperse paint fumes’,
These are called the primitives in a computing system. In computing, all tasks bottom out to be executed by physics, via the arrangement of circuits.
In biology, we also have to explain where the design of any circuit-like thing could come from.
Guiding idea:
Biology is mining the randomness at the bottom; This is how it leverages the resourcefulness of physical reality.
(also called noise or babble, is the same thing).
'Randomness' comes up in theories of self-organisation:
Discussion w/ Kevin Mitchell, Nick Cheney, & Ben Hartl on evolution, development, generative models
Micheal Levin
s favorite example is the Galton board.
This is a mechanism that leverages mathematical truth or something. It's strange, wild and simple. Very intriguing.
There is something about this 'algorithmic resourcefulness' or something, that is a feature of physics and enables biology.
Apparently, the same concept exists in physics as vacuum babble
.
Levin Λ Friston Λ Fields: "Meta" Hard Problem of Consciousness
Generally, babble is one aspect of an evolutionary process, the second is selection.
Together, they implement a search process.
Where I changed my mind recently
Prof. Mark Solms on how you don't need a neocortex for feeling and some animal-like awareness.
Here is what I used to think:
This is just wrong.
Apparantly, what I would label user is there even if the neocortex is gone!
Maybe we can say nuclei of the reticular formation and the superior colliculus are the 2 "lower" control centers, and the cerebral cortex, basal ganglia and cerebellum are the 3 "derived" ("higher") control centers.
Perhaps the "user" are the 2 lower ones, a kind of minimal animal moving and feeling processing unit.
And it has the derived 3 as resources or advisors at it's disposal, which happen to be information processing devices. But perhaps less 'alive' in a sense.
That you actually don't want your computer system to be alive is something I called The Living Language Problem.
- Naturally, you wonder if the reticular formation and superior colliculus already have a complete set of neuronal computation?
- In the computationally complete form, you would expect there to be a mini cerebullum for instance.
- In the functionally complete form, you would expect there to be "cognition modules", which got further and further adviced by the upper centers, using new (presumably more adapative) principles of computation.
- In both cases, it would be more of an externalizing of cognition so to say from the perspective of the lower 2 centers.
- The previous view would have been more like: the cortex, as computational system, evolves on top of some animal part
- The animal part advices this computationall system and perhaps and enables feeling, but ultimately, the cortex is what makes a person.
- With the danger of sounding wooby-schwooby holistic; Perhaps it is the animal that makes the person, and the person has a computer system to use at their disposal.
In this context, I'm becoming a fan of Panksepp-sytle emotion-control systems (Panksepp 1982).
This makes a lot of sense to me, thinking about how to make more complicated Braitenberg vehicles. The obivous move is to flip between a discrete (low dimensional) set of states, activating a 'generalized' behaviour 'scheme'.
(Like Braitenbergs 'love', will find light sources in the environment).
The thalamus is more than just a relay. Talk: Thalamocortical System.
I consider Prof. Murray Sherman one of the most relevant neurophilosphers of our time.
It is the wiring that says How the brain relates to the world.
- Action and perception are totally intertwined, and the wiring reflects this
Information flow is feedforward from cortical areas, and zigzags with higher order thalamic relay nuclei.
- all cortex is making motor outputs
- Messages and modulators are 2 different kind of things, messages drive activity
- The thalamus is the driving input to all cortical areas
- Cortex cannot be understood without understanding cortex and thalamus (my conclusion)
- Consequently, the only way for a lower cortical area to drive activation in a higher area, is by outputing some kind of motor data! I find this quite remarkable.
Analysing the wiring is much in the spirit of V. Braitenberg, too. Vehicles are only one example.
Cognition is musical
Gyorgy Buszaki - Neural syntax is organized by a hierarchy of brain rhythms Dr. György Buzsáki (NYU) - Keynote Lecture: Brain-inspired Computation: by which Brain Model?
I consider Dr. György Buzsáki one of the most relevant neurophilosphers of our time.
Inside out is the idea that the brain primarily stabilizes it's own dynamics. This is counterintuitive because the previous view says that a brain is a vessel filled with knowledge from the outside.
As David Deutsch is pointing out, a "vessel theory of knowledge" doesn't work. Knowledge needs to be evolutionary in principle, you need some kind of randomness at the bottom, that is matched or criticized with action and perception.
Neuronal Syntax, neuronal code, neuronal interpreters
The genetic code is definend by it's interpreter, the ribosome. It's syntax are triplets of 3 base pairs, called codons. They could also be called genetic words, they say where to put the spacings between the genetic letters, to decipher the code.
Just like letters make words and there are spaces between words. Elsetextwouldbehardtounderstand.
The project of figuring out what the neuronal code is, means understanding what a neuronal letter, a neuronal word and a neuronal interpreter is.
I'm still figuring out what Buzsáki has to say, here is a paper.
Long story short:
- Neuronal ensembles (cell assemblies) firing in gamma frequency are the putative neuronal letter.
The reader centric cell assembly.
- Neuronal ensembles are best described by their reader, with a timewindow.
- Everything in cognition is relational. Nothing can mean anything, unless it has a reader, unless it has an effect. 👈
- This is a cleaning up of the cell assembly concept by Buzsáki that makes it easy to equate it to P. Kanerva's address decoder neuron (Sparse Distributed Memory).
- I wrote this down here: current stuff.
- A Neuronal word are ~7 elementary ensembles firing in time during a theta cycle.
- How this then combines further up the hierachy, how it supports mental navigation, zooming etc is not figured out.
- Presumably, neuronal words represent both the complete vocation and the zoomed in notion of that one evening, and the further zoomed in story line of how you went to that restaurant and so forth and so forth.
- In terms of SCIP, the means of combination and the means of abstraction are not figured out.
- A neuronal interpreter or interpreters is/are a hypothetical brain mechanism that has neuronal words as input and has outputs, which might be values in output registers, side effects, memory updates, data transformations, state changes, presumably motor data outputs.
- That the input and output registers might be in the same neuronal net but across some time step is an idea already at hand from the cognition is musical guiding idea.
How neuronal codes and interpreters work, how they relate to (wired up) the control centers of the brain, to the animals behaviour and the world, is in some ways the central question of neuroscience.
John Von Neuman (died to early), The Computer and the Brain, could have been the most relevant neurophilosopher ever.
This is the real deal, some groundwork for thinking about neuronal computation.
This is truly a line of thinking that goes between computer science and neuroscience;
And I can highly recommend P. Kanervas Sparse Distributed Memory as continuation to this.
It's truly mind blowing.
(I'm into associative, distributed memory models and hyper dimensional computing: latest stuff)
Neuronal computation is distributed, energy efficient and trades powerful logic for degraded arithmetic 👈
Poweful logic?
In some ways, hyperdimensional computing and associative memories allow for a symbolic processing that is more LISP than LISP.
In LISP, symbols are points (point-pointers, hehe). Whatever you want to do with the symbols needs machinery.
In hyperdimensional computing, the symbols are data themselves. And there is a rich symbol-algebra (the Vector Symbolic Arithmetic).
It allows symbolic processing in superposition. It is like programming with pieces of pointers. Kinda strange stuff. A philosophy and practical usage of this programming in superposition is largely unexplored. (latest stuff). Here is a nice overview.
Also:
- MeTTa is a non-deterministic metagraph rewriter. I think this enables some similar criteria.
Biological Intelligence is Intelligence that grows
Alan Turing (died to early) could have been the most relevant neurophilosopher ever.
I think Turing was onto something like:
"Growing cognition means growing a biological system, it's a kind of morphology."
He went into morphogenesis with the same goal as before, to make machines that think.
I think his intuition was that biological intelligence must self-organize, so he wanted into studying self-organization.
See Turing patterns.
Micheal Levin is coming from the other end:
He says that morphology is a collective intelligence problem. Collective intelligences are biological software, it's all the same thing.
So morphology is a kind of cognition.
Biological intelligence is collective and self-organized. 👈
A modern form of this that truly goes a different route is Dave Ackley robust first and 'living computation'.
The Hourglass model of collective computation (Jessica Flack). Talk.
Outdated view:
Behaviour of simple elements make emergent, complex behaviors (kinda the physics stance to take). In physics, you have the statistical behavior of for instance gas molecules, which make the emergent behaviours of for example gasses. (Erwin Schrödinger talks about this in What is Life?).
Updated view:
- A course grainend mesoscale allows the system to communicate efficiently.
- This is a kind of information bottleneck
- It allows the subsystems to inferface,
- ? it allows short codes, (same thing as program source code).
- Micheal Levin also talks about this concept.
- Examples:
- Dominance hierachies (low dimensional ordering),
- Money (scalar value reflecting high dimensional concept of value),
- Calcium concentration (in Morphology)
Naturally, my idea here is that the mesoscale is the neuronal code.
Because cognition is musical this means in some strange way that the mesoscale, the code is made from something like rhythm.
It would say that rhythm and simultaneity or perhaps whatever dancing in harmony is; That this is how the subsystems in the brain communicate, accross scales of hierachy.
Time, rhythm and synchronizity in neuronal computation comes up: Moshes Abeles, Von Der Malsburg, Elie Bienenstock, Earl Miller.
I'm sure this is an idea that keeps coming up since ancient times. And perhaps there is just something true about it.
(Doesn't mean that you need a rhythm encoding for a neuronal code implementation. But that the brain is using a rhythm encoding for it's implemenation).
Also:
I used to think backprop in brain doesn't make sense. But I was naive about the science. Now I think that Lillicrap is cool and nuanced. Talk. I mean seriously he is cool.
Afaik it's Hintons opinion that the brain is doing some form of backprop.
Where I didn't change my mind recently
Neo-Lamarckism is more confusing than useful.
In recent times, transgenerational epigentic inheritance prompts biologists to say something like "Lamarck was not so wrong after all.".
Lamarckism as a theory of complex adaptation is still wrong. It's confusing to bring forth the name. Let is rest in history.
What system knows that a muscle is used, and how to tell the muscles in the offspring to be bigger?
This by itself is a complex adaptation, making Lamarkism plop in a small cloud pink dust, floating prettelly in the air before quickly dispersing from a gust of wind.
On it's own terms, 'the use of transmitting information to the offspring made the capacity to transmitt information to offspring more pronounced'.
What? How does it know how to design itself to do that? Also, this sounds almost like abstract replicator theory to me. The replicator knows how to transmit information to the offspring.
No. Transgenerational epigentic inheritance is a form of a Baldwin effect, where the dynamism is across generations.
One should have brought forward Baldwins name from the get-go, and there would be no confusion, but solid theoretical evolutionary biology.
It would have been, "wow, look at those transgenerational adaptation effects, Baldwin effects and extended phenotypes are so powerful, evolution learns how to learn across time and even individuals".
A More or less correct philosophy of programming
I am going through Porgramming with Categories (with Brendan Fong, Bartosz Milewski and David Spivak), which is very cool. I expect the whole category theory to be a powerful tool.
There is this notion "The types help you make correct programs". The way Bartosz says it in one of first lectures makes it sound like it's common knowledge for software engineers.
But it is totally not!
It is not the case that software engineers agree that static typing helps with the real problems of software engineering.
The philosophy of programing diverges here roughly into a camp that has the feeling that software should be provable and mathematical. As the pinnacle of this, its correctness would be proved.
Proponents include Edsger W. Dijkstra, Leslie Lamport, John McCarthy.
And another camp that emphasizes interactivity, growing the program as you go, bottom up programming.
Proponents include M. Minsky, S. Papert, G. Sussman, Hal Abelson, Rich Hickey, Paul Graham, JCR. Licklider, Alan Kay.
This emphasizes that software is a participant of the real world. Applications are situated [Hickey 2015].
To the user and the client, the software artifact is what matters. Not the way it was made.
Unless they are an isolated calculation, shielded from the real world, like a smart contract. (In that case something like Haskell does make sense).
Sources of bugs usually stem from misunderstanding. Understanding and design is the main work of the programmer in the first place.
In this philosophy of programming, Software engineering is the art of dealing with the real world.
- Situated software is a system of sub components, that deal with edges and requirements of the world.
As a rule, software is not prestine. Just like in biology, exceptions are the rule.
This is almost opposite to the percieved power of computing, the abillity to create worlds, to make all rules as masterminder.
In reality, the masterminded, simple worlds are only at the core of applications (also, domain model). They are important and powerful, but not the main job of programmers, they don't comprise complete systems, and they usually not the reason why software projects succeed or fail in the real world.
Because of fallibilism (Popper), programs are in a perpetual state of misunderstanding and incorrectness.
It is the speed with which one engages with this incorrectness (also called debugging), that proponents of interactivity see as the defining aspect of the power of a programing paradigm.
G. Sussman sees the actual thing programmers are doing to "make best guesses and subsequently debug, until some satisfactory state of correctness is achieved".
Debugging
, is a central concept in the philosophy of programing of the MIT AI lab (origins with Minsky and Papert).
This is essentially Poppers conjecture and criticism.
Programming, the task of creating software, is a form of conjecture and criticism.
When Papert says that "Debugging teaches children to think", this is a epistemological claim. That software and by extension "mental technology" is actually created by debugging.
So debugging is a meta technology. It is the technology that the mind uses to create itself. Since it must create it's own software, it must execute a programming task.
This is a philosophy of how software is actually made. The claim is that a Haskell programmer is doing the same thing. But that languages that emphasize interactivity actually follow the correct epistemology of software and hence are truly powerful.
The relationship between programmer and program is most useful, if it is akin to a painter with their painting.
A seminal "case for interactivity" is Bret Victor - Stop Drawing Dead Fish.
Also:
- The dream machine : J. C. R. Licklider and the revolution that made computing personal, Waldrop M. Mitchell
- Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)
- ClojureScript in the Age of TypeScript — David Nolen
- Lisp
What Does a philosophy of programming say about biological modes of computation?
"Math is hard for people not because it is so complex, but because it is so simple" - Minsky.
My feel is that seeing the goal of software as navigating the world is already much closer to something that has the chance to unify computer science and biology.
- A correct epistemology of where the biological software comes from (what programming actually is)
- Realistic expactations about what a biological software is actually doing in the world
Older stuff:
Micheal Levin is one of the most important philosophers of our time
(future blog post)
We already know evolution is a tinkerer, engineer and designer but what are the principles, what is tinkering?
Here is this world view suddenly, what is good programming is what works for evolution and complex adaptive systems, too.
This is a historical fact.
From the science of evo-devo, we have this view, the genetic toolbox (Evo-devo gene toolkit) of animal body plans. This kind of stuff is only roughly 15 to 20 years old. Unless you are deeper in biology, there is little chance you have heard of this.
Now Micheal Levin comes and in the narrow sense, he talks about how there is an additional dynamic layer of abstraction between genes and morphology, the cellular electric field his lab is studying. This thing is a map of the territory of morphology. It is a language to speak and if you speak it, you can make cells grow into this or that. Without modifying the genes.
+-----------+ +------------+ +---------------+ | | + | | | | |--> layer, layer, ----> | |-----------------> | | | | | | | | +-----------+ +------------+ +---------------+ genetics cellular electric field, dynamic morphology
And here is the wider view: These abstraction jumps, these new layers of dynamic content coming out of a lower layer of static form is a principle of how evolution makes more capable systems.
The genetic algorithm people have stumbled on the same principle: Building block hypothesis.
+---------------------------------+ higher layer | | map | +-+ +-+ | essentials | +-+ +-+ | body plans +----+----------------------------+ dynamic, content, symbols | ----------------------------------------- | aboutness abstraction barrier +----+----------------------------+ screens, prompts, interfaces, maps, languages, levers | | | bottom layer | v | territory | +------+ | details | +------+ .... | body parts +---------------------------------+ static, form, referents
The whole thing is also called stratified design.
Levin mentioned this about the nature of genetics, where everything is about regulating other genes. This is again the same thing, where a more dynamic layer is built on top of a more detailed, static form.
Now evolution can tinker on the orchestration
, not the form. And it is not a coincidence that the development
of these higher layers in genetics overlaps with the Cambrian explosion of 500Mio. years ago.
See Michael Levin: Biology, Life, Aliens, Evolution, Embryogenesis & Xenobots | Lex Fridman Podcast #325. It blew my mind.
The crazy thing to me here is that this is the magical power of computer science and Lisp. To make a language, so you can speak without being concerned by details.
There is something deep in cybernetics and how the world works spanning across biology, civilization, computers and engineering. And it makes languages and levers the most powerful thing in the world or something.
There is something else here, how maybe now we are the generation of people that are both programmers and biologists. So we can think of the thoughts of good design and see it happening in biological systems.
If biologists had known more programming, I think I would have gotten a different view of something like biochemistry for instance. It would have been way more about the essentials that make it go and not about details. Biologists appreciate the essentials but then are careless about suddenly bringing in implementation details. It takes (currently, more or less) a programmer's mind to be careful about such mixtures of levels of analysis.
Good biologists have this, too. It is the hacker mentality from another perspective.
But since we don't have programming the way we have reading and writing in school, all this thinking is hazy and unrefined. It is only deep in programming engineering, design and craftsmanship that this level of analysis starts being explicit.
See Rich Hickey, Structure and Interpretation of Computer Programs, Eric Normand.
The reason I am interested in this is because I want to build minds, and it seems like maybe minds work because of this nature of abstraction jumps. What is an abstraction jump, can I fabricate one, how do I know if I see one, how do I differentiate it from something else? What do I need to do to make a computer program that makes abstraction jumps and builds its capabilities until it has ideas the way human brains do?
—
The mind is powered by abstractions. After all, I have an experience of a world, an inner world, some social stuff going on, a situation, affordances of my environment, an interface to my muscles, a map of my body sensations, levers on my attention, etc. etc.
I experience the highest layers of these interfaces of the mind to itself. It has to do with the neurons the way transistors have to do with software.
But I am not the neurons, the neurons are an ocean of detail with which I am not concerned.
Hence, it is obvious that there are at least 2 layers of abstraction in what the mind is. Minsky has 6 or 7 or something, is that enough…?
A Hippie with a computer
My goals for the world are togetherness and harmony, the end of death and suffering. I will not rest until this wound in the world is healed! Computers and programming are the most powerful tools in the world currently.
I plan to claim the heritage of the hackers of the computer age. Continuing the vision of human-computer symbiosis. Until we can put our minds into the computers and reach for the stars together.
We evolved on this planet with the rest of the animals being our small brothers and sisters. I cannot imagine being a spacefaring civilization that kills animals for food.
Joyful ideas
The best thinkers are playful. The most powerful way of thinking is when the mind is vibrating with the joy of the ideas.
The most powerful programming language, Lisp
is simple, beautiful and joyful.
My biggest intellectual hero, Marvin Minsky, has been called
the world's oldest 3-year-old. His partner Seymour Papert developed the play programing language Logo
and researched juggleling.
My favorite books of joyful, clear-thinking ideas:
- The Society Of Mind
- Vehicles, Valentino Braitenberg
- The Selfish Gene, Richard Dawkins
I like magic tricks, juggling, Rubik's cube speed solving, and in general, finding things that I am not good at yet. A mind palace is a joyful mind-expanding way to spend your imagination.
Curiosity and imagination are the most powerful aspects of human intelligence.
Joy is the best state to think useful thoughts. Joy is power.
A joyful programming language lets me express what I want to express in a powerful, succinct way. Without things between my ideas and the computer program.
It is not a coincidence that the most powerful language is also the most joyful.
Lisp
Lisp is not a language, it is a building material - Alan Kay
A hacker is somebody who is using a computer for the joy of using a computer.
Lisp was an elegant cleaning up of computer science back then.
McCarthy wanted to play and build/grow programs interactively
on the computer, in order to think about
how to build AI.
Lisp is the only language that supports dialects because it is made of pure ideas, unimpeded by implementation baggage. With Lisp, the ideas were there first, then there was an implementation.
It is an abstract description of process
. It has been called the Maxwell equations of computer science.
A Lisp program is alive, it grows as it evaluates Lisp code.
In batch-oriented languages, the program is about what you talk about in the source code.
In (on) Lisp, the Lisp program is a program about ideas, about Lisp programs. And the Lisp hacker is expressing themself not in the domain of what programs are about, but in the domain of what the ideas are.
This allows the Lisp hacker to think higher-level thoughts about how to solve their problems. Making programs that write programs. Making languages to express the kind of problem you are solving and then expressing your problem in terms of that. Seeing and feeling the program as it grows is the brainchild of the programmer. It is said that Lisp programming is 100 to 50,000 times more effective than current mainstream languages.
Because Lisp is fundamentally about code, and it is beautifully simple and elegant, Lisp code is expressed in Lisp data. It makes it trivial and common sense to write programs that write programs.
Its fundamental core idea is interactivity
, which allows for a style of exploratory programming called
bottom-up programing
. It is the power of joy, of toys, of scientific, childish curiosity.
It is a great and useful tool for thinking.
Lisp is where software and thought stuff meet and this gives intimacy with (computer) process
.
Where will we be able to go when we build better interactive programming environments?
See Lisp.
Clojure
The modern, practical Lisp. Here is one of my Love letters to Clojure.
I see data oriented programing
as an important evolution of how to write good Lisp code.
Next
Maybe one of the next evolutions is us putting our code more into databases, Malcolm Sparks was mentioning this recently. In site, you put the the database code into xtdb (a bitemporal db, so you can query stuff like what was the code at 8am when this request came in).
REPL-acement
is another idea in this space but on the tooling angle.
Finding the next meaningful layers of dynamism and how to get more powerful, interactive programming, are some of the things that are on my mind.
How to make programming tools that mesh with your thinking?
Essentially, I want to complete Lick's Human-Computer Symbiosis.
most of the significant advances in computer technology—including the work that my group did at Xerox PARC—were simply extrapolations of Lick's vision. They were not really new visions of their own. So he was really the father of it all
Its the ultimate hacker dream to be as close to the computer as possible.
Related: Musings On Interactive Programming
Source code colors
The source code
on this website has the same colors as in my Emacs:
(ns happy) ;; comments are much visible (defn happy [] {:happy/color :green :peaceful? true})
Using htmlize.el
. See build-site.el.
I love looking at this heliotrope
everywhere in my Clojure code.
Functions, which are 99% pure functions in Clojure are green, peaceful, with a promise of power.
Is this not beautiful? Also: What Theme Are You Using?
Unix
The best operating system because it is not cluttered with garbage.
Its heritage, also, is interactive computing. The creators of Unix knew the freedom of joy that comes with timed shared systems (they worked on Multics, s History of Unix).
The soul of Unix is to be clean, lean and efficient.
Emacs
…It is written in Lisp, which is the only computer language that is beautiful. It is colossal, and yet it only edits straight ASCII text files, which is to say, no fonts, no boldface, no underlining. In other words, the engineer-hours that, in the case of Microsoft Word, were devoted to features like mail merge, and the ability to embed feature-length motion pictures in corporate memoranda, were, in the case of emacs, focused with maniacal intensity on the deceptively simple-seeming problem of editing text. If you are a professional writer… emacs outshines all other editing software in approximately the same way that the noonday sun does the stars. It is not just bigger and brighter; it simply makes everything else vanish.
Neal Stephenson, In the Beginning was the Command Line
Emacs is not a computer program. Emacs is the stuff of thought.
Emacs is Lisp
molded into the space between brain and machine.
Emacs is a sheet of brain-idea-software stuff that allows us to think intimately with
the computer - a real tool.
Because Lisp gives you the freedom to define your own operators, you can mold it into just the language you need. If you're writing a text editor, you can turn Lisp into a language for writing text editors.
Paul Graham, On Lisp
Juggleling
See here.
Claude Shannon, Seymour Papert. Some of the coolest people in the history of cybernetics and computing were into juggling. Also Richard Feynman, another joyful thinker.
Juggling is an amazing little playground into the psychology and the mechanics of learning a skill.
I can currently juggle 4 balls.
Rubics Cube
Speedcubing has taught me that I can do anything if I follow what others have put out there on how to go about it.
Speedcubing in the extreme shows you there are 2 aspects to performance. One is the speed of movement and learning a motor skill, and the other is deliberate thinking about what one does during the performance.
With the cube, we can pause, look and think (not so with juggling or running).
The cube is impossible to solve without well thought-through technique, technique becomes an obvious citizen of the skill.
See The Quick Eval for how I am translating the intuitions gained into my practice of programming Lisp with Emacs. See the humble beginnings of my Emacs Meow Lispy screencasts. I take no compromises when it comes to using the computer masterfully, sensually. Standing on the shoulders of giants, I try to feel the aesthetics of my system to make it smooth like coconut. Removing, until there is nothing to take away. Finding the right levers to pull. The quiet competence of the computer makes the simple easy, the complex possible and the impossible thinkable. Like a spaceship responding to mere thinking.1
I spent some time learning to blind solve a while back (video from 8 years ago when I was ~20). This is a nice overlap of precise technique - with memory technique (mind palace is amazing).
Everything could still be different
Computer science is like 60 years old at this point.
We are still figuring out what software design and the soul of the computer even are.
There might be transformative ideas still left and right to be thought. This is why logic programming and alternative programming paradigms are interesting in their own right.
Let's build memexes for thinking
https://en.wikipedia.org/wiki/Memex
Mr. @Teodurlu has recently convinced me, we should have a system of interconnected knowledge graphs.
Expressing the nodes is org, markdown or Clojure namespaces. By enabling markdown we are making the system inclusive to non Emacs and non Clojure persons.
The Grandour of Life
This quote gives me a shudder of epicness every time:
There is grandeur in this view of life, with its several powers, having been originally breathed into a few forms or into one; and that, whilst this planet has gone cycling on according to the fixed law of gravity, from so simple a beginning endless forms most beautiful and most wonderful have been, and are being, evolved.
Charles Darwin
Mostly the writings of Richard Dawkins did a lot for me to convey the uncompromised beauty of life to me.
Dawkins also has an audiobook of On The Origins of Species where he reads this passage - makes me tear up.
Life and civilization is an epic rollercoaster psychedelic trip of the craziest thing happening ever. It is on us that it turns out to be great.
More thinkers: Richard Feynman, Neil DeGrasse Tyson, Carl Sagan, Daniel Dennett and Bachir Boumaaza (a philanthropist that made my generation of computer gamers aware of the bigger picture).
You might be surprised but the Harry Potter fanfic Harry Potter And The Methods Of Rationality conveys this and a whole way of thinking with it. This book is fucking amazing.
Reclaiming The Soul
A few years ago I stumbled across the Wim Hof Method. When I do the breathing, I sometimes cry because I think of the epicness of this whole project which is life on earth.
Being a human means being an animal, being an animal means being a survival machine. We are all into this together.
I am much inspired by Andrew Hubermans recent public thinking. Laying out a vast landscape of understanding the human mind and body. With amazing twists, nooks and crannies.
Because of him, I go outside in the sun first thing in the morning.
Sam Harris's meditation app made me realize what meditation could be about. It is the difference between being absorbed in thought and paying attention.
It was Anil Seth2 recently who talked about how we can now reclaim the term Soul.
The survival instinct that connects all of life, the underlying logic and machinery, the way the living substrate has an intelligence in its own right. Navigating, and regulating inner states and behaviors.
From the single-mindedness of reproducing information came endless forms most beautiful, organismic life.
An organism is the configuration of matter with one goal, to keep on going.
Called The breath, the inner aliveness, the fire, information processing and collective achievement of so many mindless processes, that separate us from death.
The unique flavor of our consciousness is shaped into being by the logic of life and survival.
Which connects us primarily with the rest of the Tree of Life.
Why not call this most interior, this most primordial aspect of our minds, The Soul?
I love neuroscience
Thinking about how the brain works is one of the great joys in life to me.
Biology is my first passion. But I won't go back to the lab after experiencing the joy of building software (little experiments are a dopamine ride…)
I am formally educated in general biology, biochemistry, genetics, cell biology, tree of life etc. I was emphasizing neurophysiology and contemporary neuroscience in my studies.
I can recommend brain science podcast, Huberman Lab, Oliver Sachs, V.C. Ramachandran, Robert Sapolski, textbooks, General stuff like Pinker, and Sam Harris.
Want to read:
- The Expression of the Emotions in Man and Animals, Charles Darwin
- everything from Valentino Braitenberg
- Aaron Sloman
- Freud
Dreaming
I practice lucid dreaming and try to be in touch with my dreams. So I know they are stupid and don't matter. Except for sort of experiencing the mind with a different twist.
In order to solve a hard programming problem, I need to sleep on it for a night, having loaded up my brain with the problem to the point of vibrating.
Clear Thinking
The best ideas are laid out beautifully simply and clearly. Also, Joyful ideas.
Great programming, great philosophy and great science are alike.
They introduce common sense ideas. And then build a world of ideas that can be explored by the user.
The brain has the capability of instantly parsing a visual scene, and so too it is with obvious concepts. A great communicator of ideas will present your brain with obvious concepts, using the quiet competencies of your brain to build towers and worlds of ideas.
Examples:
- The Society Of Mind
- Vehicles, Valentino Braitenberg
- The Selfish Gene, Richard Dawkins
- Consciousness Explained, Daniel C. Dennett
- Rich Hickey Talks
- The Stoics
- I guess Aristotle
- I guess Freud
Wizards, scientists, hackers and detectives
(work-in-progress ideas)
Is it just me or is Sherlock Holmes about science and programming?
Imagination is a valuable asset when it comes to detective work, Watson. It is the bridge that allows us to perceive connections between different facts and events. Without imagination, we might never be able to see beyond the surface of things and pierce the veil of reality.
From my notes:
Reality does not by itself reveal its inner workings to you. You only see little glimpses and pieces of it. Your job as a scientist, coder or wizard is to use your imagination of how these pieces can fit together.
Consider the theory of evolution by natural selection. On the surface, there are animals, fossils, etc. It takes a creative genius to discover the underlying workings of reality.
It is imagination that allows us to explore this realm of possible worlds.
In programming, as in science, we are looking for good explanations:
I hypothesize that this is the problem because the user wants to do XYZ…
I hypothesize that this bug is an issue in this part of the code, because else x
would happen.
My current understanding is that this is a good design because it is better in those regards to the alternatives.
Science, engineering, programming, detective work and wizardry are all in the business of creating good explanations.3
Sherlock Holmes, like a good scientist, keeps a tree of possible worlds in his mind. For Holmes, clues are extremely meaningful, they are infused with the meaning of possible alternatives in the budding tree of explanation that he is holding in his mind.
A great scientist is excited about any kind of outcome for their experiments. Ah, reality is on this branch of possible worlds….
This intellectually humble and imaginative mindset is indispensable for being a good programmer, also.
A powerful wizard must craft a spell using (possibly intuitive) knowledge of the underlying reality and magic system.
From the Harry Potter And The Methods Of Rationality:
One of the requisites for becoming a powerful wizard is an excellent memory, Professor Quirrell had said. The key to a puzzle is often something you read twenty years ago in an old scroll or a peculiar ring you saw on the finger of a man you met only once…
A good wizard, like a hacker or a detective, feels no shame in their source of information. A distant memory, a note about a bug previously fixed, an intuitive feeling…
To become obsessed with the field of inquiry and to make it what the whole brain is about, is the Sherlockholmsian genius.
To develop solid reasoning and imagination, to build a model of the underlying reality, in a feedback loop with the givens, and to have the taste and aesthetics to make this model beautiful, simple and elegant is the Sherlockholmsian genius.
I recently realized Albert Einstein was all about this imagination, too. So too with multiverse theory, it is simply taking the givens at face value and deriving the underlying reality, using imagination and the power of simple explanations - making an elegant and useful model for how the world works.
If biologists had the attitude of contemporary physicists, we might not even have the theory of evolution. Seriously, the fact that the outward perception of quantum physics is still this narrative of confusion is embarrassing. It's like a whole field not growing up for 60 years to the power of simple explanations.
The Pale Blue Dot
Push Singh: EM-ONE
I recently learned about Push Singhs' thesis under Minsky, programming some of Minskie's mental agents for common sense reasoning.
One of the next things I want to do is implement in Clojure.
EM-ONE: An Architecture for Reflective Commonsense Thinking Push Singh.
Read by Aaron Sloman and Gerald Sussman isn't this super cool?
What is missing from the human-computer symbiosis
Fascinating read:
The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal.
Every programmer should read this, seriously it is an amazing ride through the history of computers.
I feel J. C. R. Licklider
was a kindred spirit to mine.
Same with the cybernetically minded people.
Lick understood the power of interactive computing and was one of the first hackers, spending time on a computer terminal just for the fun of it.
He had an amazing talent for being intuitive about which people and which technology lead to his the vision of computing, which is more or less our modern computing environment (with very interesting deviations).
One of the next things I want to do is go through Man-Computer Symbiosis and make a list of what is still missing.
The Stuff Of Thought
Ah, the power and spirit of Lisp. What is it? There are good reasons why it is hard to say what it is. It has to do with taste and aesthetics. But when you know it, you know it. Hence the ominous claims on its power.
The most important part is, that it is about interactive programing
. It's about having a program one step further dynamically.
Simplicity
Organizing thought is what programming is about.
Philosophy, like programming, is about organizing thought. To keep things simple, to find the essence of the problem, and to express ideas in terms of common sense reasoning.
These are hallmarks of well-organized thought.
Controlling complexity is the essence of computer programming.
Brian Kernighan
To say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, and of what is not that it is not, is true.
Aristotle
I like how simple this definition of truth is.
Ethics
Eliezer Yudkowsky said somewhere on Less Wrong:
Live is good, death is bad.
To do what yields more life is good;4 While to fail to do what yields more life, or to do what yields death, is bad.
Good ethics, like good philosophy and good programming, is simple.
Should we cure a 35 old of cancer - Yes
Should we cure a 95 old of cancer - Yes
Should we cure cancer for good? - Yes
At no point in my ethical reasoning must I be confused.
It is the habit of a great programmer to smell out confusion early and from afar. It is the primary hustle of the computer programmer, as Kernighan said, to manage complexity.
The best scientists and philosophers are keeping their thoughts plain and simple.
Emacs and Clojure
I want to get into scimacs and start thinking about this:
Can I enable Clojure developers to write Clojure to program Emacs in a useful way?
This might potentially unlock a huge wave of beautiful Emacs functionality, especially for Clojure tooling.
I want a front-end for my programs
Audio Diary
I have kept a diary for ca. 10 years.
I have like 7 or 8 years of audio diary that I treasure. It follows the journey of my thinking.
Maybe at some point, I try to publish it in some form. Of course, this website is already an expression of my thinking so it's already happening.
If for some random reason you decide to get close and personal with my raw thinking:
Joy
, curiosity
and spirit
. Not supernatural, but subtrate independent, biological, principles of organisation,
Footnotes:
That is from Issac Assimovs Foundation (the last 2 books I think). The spaceship is called the Farstar and has a cognitive interface via the hands.
Why not the hands?.
See Being You, by Anil Seth
Also, Antonio Damasio is all about how the nervous system is built out of living tissue, which is this self-regulating, sort of steermansship-like intelligent substrate with a relationship to its environment, with little kinds of memory, control, goals and purpose by itself.
I am thinking of David Deutsch's definition of knowledge and good explanation.
A program is a piece of knowledge that is an attempt at satisfying a problem. Genetic information is a piece of knowledge that satisfies the problem of replication.
Maybe I should call this human flourishing.
- More live might be mistaken for a claim about population ethics, but not so.
- Interpreting what it is about life that matters, what it is that should be maximized, is not simplistic.
See also
- The Moral Landscape, by Sam Harris
- Rationality From AI To Zombies, by Eliezer Yudkowsky
- My goals for the world
- How I think that life is about ideas