NeXT, OOP, WWW, HTML

The article link URL was missing a 2 at the end:

Democracy as a form of end-user programming. Maybe the analogy breaks down somewhere, but it brings up correspondences like: society as a global-scale computer running ideological software (nations, governments); the web as our collective brain and embodiment of the noosphere; an individual as a function, or living object with mutable state; language as communication protocol (HTTP: Human Thinking Transfer Protocol).


From “Do Artifacts Have Politics?”

At issue is the claim that the machines, structures, and systems of modern material culture can be accurately judged not only for their contributions to efficiency and productivity and their positive and negative environmental side effects, but also for the ways in which they can embody specific forms of power and authority.

..In what follows I will outline and illustrate two ways in which artifacts can contain political properties.

First are instances in which the invention, design, or arrangement of a specific technical device or system becomes a way of settling an issue in the affairs of a particular community.

Second are cases of what can be called ‘‘inherently political technologies,’’ man-made systems that appear to require or to be strongly compatible with particular kinds of political relationships.

Summarized by Cogito-1 8B:

  1. Technical arrangements designed to settle issues in specific communities

    • Example: Robert Moses’ low bridges on Long Island, NY, intentionally built to exclude buses (typically used by poor people and minorities) from parkways, thus limiting their access to Jones Beach.
    • Similar examples include Parisian thoroughfares engineered to prevent street fighting during the 1848 revolution.
  2. “Inherently political technologies” that require or are compatible with particular kinds of political relationships

    • Example: The mechanical tomato harvester, which not only changes harvesting practices but also produces tomatoes that are harder and less tasty, benefiting large-scale agribusiness while disadvantaging small farmers and agricultural workers.
    • Another example is the history of industrial mechanization, where technologies were designed to break labor unions rather than simply for efficiency.

An interesting example was the contrast between nuclear power plants and solar energy.

Many advocates of solar energy have argued that technologies of that variety are more compatible with a democratic, egalitarian society than energy systems based on coal, oil, and nuclear power; at the same time they do not maintain that anything about solar energy requires democracy.

Their case is, briefly, that solar energy is decentralizing in both a technical and political sense: technically speaking, it is vastly more reasonable to build solar systems in a disaggregated, widely distributed manner than in large-scale centralized plants; politically speaking, solar energy accommodates the attempts of individuals and local communities to manage their affairs effectively because they are dealing with systems that are more accessible, comprehensible, and controllable than huge centralized sources.

..Thus environmentalist Denis Hayes concludes, “The increased deployment of nuclear power facilities must lead society toward authoritarianism. Indeed, safe reliance upon nuclear power as the principal source of energy may be possible only in a totalitarian state.”

..A similar view is offered by a contemporary writer who holds that ‘‘if you accept nuclear power plants, you also accept a techno-scientific-industrial-military elite. Without these people in charge, you could not have nuclear power."

Well.. I can’t say whether that’s right or wrong, which technology is better or worse for society. Of course I’d prefer local-first, modular decentralized energy production that’s under my control, just like I prefer free and open-source software. But apparently that’s not scalable or robust enough for communities and societies, like food production requires global infrastructure under centralized authority and control of nation states. It seems inevitable, like capitalism.


There’s a punk-ish subculture of circuit bending.

Circuit bending is the creative customization of the circuits within electronic devices such as children’s toys and digital synthesizers to create new musical or visual instruments and sound generators. Circuit bending is manipulating a circuit to get an output that was not intended by the manufacturer.

  • Reed Ghazala, the Father of Circuit Bending: Sound Builders

I like this kind of “subverting the narrative” and questioning the built-in assumption of authority in technology. Well, I enjoy a healthy creative expression of this, because it can certainly go too far and disturb the social order.

Similarly, pirate radio has always fascinated me. It asks, “Who owns the air waves?”

The airwaves are considered a public resource owned by the people, but they are licensed to private broadcasters by the government, specifically the Federal Communications Commission (FCC). This means that while the airwaves belong to the public, companies can use them under certain regulations to serve the public interest.

The early days of BBS (bulletin board systems) and WWW (world-wide web) had that kind of rebellious, subversive social atmosphere. Why it attracted the counterculture types is certainly related to “inherently political technologies” discussed by Langdon Winner.

In 1926 WJAZ in Chicago, Illinois, challenged the U.S. government’s authority to specify operating frequencies and was charged with being a “wave pirate”.


..Apple’s Swift has moved to a reactive model from the NeXT/Objective C object model for UX elements.

One of the most powerful ways to simplify toolbuilding isn’t to hide state in objects but to eliminate state - either through ephemeral functions or immutable values.

I’ve been reading this thread on the forum:

In general I find the C-style of primitive programming refreshing, working with plain data structures and functions; in contrast to C++/Java-style of OOP, which is the dominant paradigm with proven scalability (?), seemingly being dethroned. But there are different takes on what “object oriented” means, and I imagine Swift’s Functional Reactive model is not necessarily mutually exclusive with some variant of the object model. Though the linked article has a single instance of the word “object”, saying:

[The Reactive model] rises up the level of abstraction, so you are able to manipulate the streams instead of objects or functions.

Oh, there’s even a Reactive Manifesto.

We believe that a coherent approach to systems architecture is needed, and we believe that all necessary aspects are already recognised individually: we want systems that are Responsive, Resilient, Elastic and Message Driven. We call these Reactive Systems.

Systems built as Reactive Systems are more flexible, loosely-coupled and scalable. This makes them easier to develop and amenable to change. They are significantly more tolerant of failure and when failure does occur they meet it with elegance rather than disaster. Reactive Systems are highly responsive, giving users effective interactive feedback.

A library I’m learning recently, Dear Imgui, is based on the concept of IMGUI (Immediate Mode Graphical User Interface), from the subculture of game developers and graphics software. There’s a wiki page (About the IMGUI Paradigm) explaining the difference between this and the classic paradigm of “retained mode” GUI.

The crux of it is about how to manage state.

…At its core immediate mode is about how this state is updated. In classical gui the state of the application was synchronized to the gui state by modification. On the other hand immediate mode is closer to functional programming. Instead of mutating state, all previous state is immutable and new state can only be generated by taking the previous state and applying new changes. Both in dear imgui and nuklear there is very little previous state and most is build up every “frame”.

..Counter intuitively this is often less complicated than the traditional “retained mode” style of GUI libraries because there is no duplication of state. That means no setup or teardown of widget object trees, no syncing of state between GUI objects and application code, no hooking up or removing event handlers, no “data binding”, etc.

The structure and function of your UI is naturally expressed in the code of the functions that draw it, instead of in ephemeral and opaque object trees that only exist in RAM after they’re constructed at runtime. You retain control over the event loop and you define the order in which everything happens rather than receiving callbacks in some uncertain order from someone else’s event dispatching code.

Well, we went from the state as a political entity to the state as a program’s data about itself which determines its next actions and state changes.

A state is a description of the status of a system that is waiting to execute a transition. A transition is a set of actions to be executed when a condition is fulfilled or when an event is received.

In some programs, information about previous data characters or packets received is stored in variables and used to affect the processing of the current character or packet. This is called a stateful protocol and the data carried over from the previous processing cycle is called the state.

In others, the program has no information about the previous data stream and starts fresh with each data input; this is called a stateless protocol.

3 Likes

On the relation between technology and democracy, the recent experiments in Taiwan look very interesting. For an overview, I recomment this podcast interview with Audrey Tang, former (and first) Digital Minister of Taiwan. There’s a whole book about this story, which I didn’t find time to read yet.

That story is about technology for democracy. The converse, democracy about technology, matters as well. Ideally, in a democratic society, everyone should have a say about how high-impact technology is designed and deployed. At a small scale, that leads to Ivan Illich’s convivial tools, which are roughly the equivalent of direct democracy. There’s also the conservative and mostly defensive approach of the Amish, which decide collectively which technology from the outside world they accept in their lives. I am not aware of any attempts to get something like representative democracy about industrial-scale technologies. They have always been designed, and often also deployed, by a small elite, with varying levels of feedback from the people affected.

3 Likes

I hope I am on point, I don’t follow the conversation closely.

Pia Mancini is one activist that tried to create democratic tools. In Argentine, there was a political party that vowed to enact the législation that was constructed through a software platform where people could participate.

She is also one of (the) founders of the open collective, a way for open source software to have legal status and accept donations, avoiding all the beraucracy that laws could require.

Both are inspiring projects. Both are hacks of the current social structures to allow new ones to form.
In the first case, we have injected liquid democracy in a representative democracy. In the second, communities have freedom to have any structure they want.

2 Likes

This could be a stretch - but perhaps the current hot topic of agentic agents qualify?

We are doing some work on permissioned agents at my company. The basic gist is that the industrial-scale technologies run by a small elite have no choice but to accept it; the alternative is dealing with armies of bots posing as humans doing the chores that people want to get done. This sort of adversarial interoperability is worse for the megacorps than a protocol.

I’d pair Counterculture to Cyberculture with Yasha Levine’s Surveillance Valley: The Rise of the Military-Digital Complex. JCR Licklider is commonly positioned as a benign figure behind the utopian idea of the benefits of sharing information on a computer network. But Levine documents that his celebrated published papers were quietly propped up with military meetings that promised the Pentagon a great surveillance network that would identify Communists even before they became a problem.

What are the politics of building a network with no primitives for privacy? I think Langston Winner answers that conclusively. Christopher Alexander (speaking here at OOPSLA 1996 to connect all our threads) would come to a similar conclusion as Winner, but through different means.

Completely agree. Specifically on the bit about message-passing, Kay’s original intent. And as he said (paraphrased), he certainly didn’t imagine C++ when he thought of OOP.

Indeed. Two other alternatives to consider - Common Lisp Object System gives the most control over how to define the concept of the object. Or Carp - which gives you some of the performance compromises you mention (control over specific parts of the execution primitives) wrapped in a Lispy approach.

Maybe I’ll put it another way: Common Lisp and C++ are both huge. Lisp and C are small. And I think you’re gesturing towards large States (and other large enterprises) managing complex state have invested in languages like Common Lisp and C++ (and Java, Ada, etc…). C and Carp seem comparatively egalitarian.

2 Likes

@khinsen Thank you for recommending the interview with Audrey Tang, I’m watching it with great interest.

A crucial difference is that we’re not protesters who only demand something, or against something. We’re demonstrators that show an alternative. And so we developed a lot of tools..

Shivers. I also liked what he said about our vocabulary shaping the way we think. Examples he gave of how we can intentionally create and use words:

  • internet of things → internet of beings
  • virtual reality → shared reality
  • machine learning → collaborative learning
  • user experience → human experience

I started reading Tools for Conviviality.

Tools for Conviviality is a 1973 book by Ivan Illich about the proper use of technology. It was published only two years after his previous book Deschooling Society.

In this new work Illich generalized the themes that he had previously applied to the field of education: the institutionalization of specialized knowledge, the dominant role of technocratic elites in industrial society, and the need to develop new instruments for the reconquest of practical knowledge by the average citizen.

Reconquest, what a word. In the history of Spain there was La Reconquista, or the Fall of al-Andalus, when European Christian kingdoms “reconquered” the Iberian peninsula after seven centuries of Muslim rule. Culturally it’s not far from conquistadores who conquered parts of the Americas, Africa, and Asia.

In the context of industrial society, it sounds like a call to action for the public to reclaim and “reconquer” their agency, production of knowledge and tools for living.

He wrote, "Elite professional groups have come to exert a ‘radical monopoly’ on such basic human activities as health, agriculture, home-building, and learning, leading to a ‘war on subsistence’ that robs peasant societies of their vital skills and know-how.

Illich proposed that we should “invert the present deep structure of tools” in order to “give people tools that guarantee their right to work with independent efficiency.”

The book’s vision of tools that would be developed and maintained by a community of users had a significant influence on the first developers of the personal computer.

I see, this is part of the philosophical heritage behind the creation of personal computers, the world-wide web, and the free software movement.

It’s perhaps an irony of history that much of this was funded as military research, related to what @schmudde said about the “military digital complex”.

In Surveillance Valley, Yasha Levine traces the history of the internet back to its beginnings as a Vietnam-era tool for spying on guerrilla fighters and antiwar protesters–a military computer networking project that ultimately envisioned the creation of a global system of surveillance and prediction. Levine shows how the same military objectives that drove the development of early internet technology are still at the heart of Silicon Valley today.

That reminds me of: Using 6G to sense objects in the real world (network as a sensor).

In contrast, Dynamicland is a more convivial vision of networked computing integrated with the environment and objects in the real world.

2 Likes

Dillo+ browser. It’s small, true to the original spirit of hypertext, and opinionated in a good way - implementing a curated subset of web standards.

[It] supports the lightweight protocols gopher and gemini in addition to http and https.

It aims to become your default browser for accessing the smol web.

Lightweight browsers are beneficial for loading websites quickly. They can work on older hardware where common browser would take up too many resources. ..Because Javascript is not used, extra bloat is not needed to be downloaded.

Your online experience can be more secure with Dillo+. Not only does it not use Javascript, rules can also be defined per website domain. These rules can block connecting to certain domains, block ads and trackers, and require sites to use encryption.

It respects user agency by design, muy convival.

Additional supported URI schemes include:

  • zip:// - File browser for zip archive and EPUB
  • man:// - Man page viewer

And it offloads media playing to the host system.

Dillo+ does not play media, such as audio and video, in the browser. Instead you can run media using your preferred desktop media player. The benefit is that playback will usually be more streamlined


With this kind of modular and minimalist approach, I get the feeling a “web browser” could be even smaller, like the tiny hypertext browser in Freewheeling Apps.


As a footnote, I didn’t realize how many commonly used URI schemes there are, some proprietary (Google, Microsoft Teams, Sony, Apple, Slack, Zoom).

And Gemini is not (yet) one of the official IANA-registered schemes. But I guess it doesn’t matter because applications are free to implement the protocol, and people can use it without permission from a central authority.

..I remember Beaker Browser (post mortem) had beaker:// and dat:// protocols. What about onion:// or torrent://? (I’m learning as I go, the latter is actually called Magnet URI scheme.) Pretty sure none of these are officially registered either. And ipfs://, it may be interplanetary but was too slow for practical use last time I tried it. So all this is about:

2 Likes

Common Lisp and C++ are both huge. Lisp and C are small. And I think you’re gesturing towards large States (and other large enterprises) managing complex state have invested in languages like Common Lisp and C++ (and Java, Ada, etc…). C and Carp seem comparatively egalitarian.

Rust seems like an example of a huge language, with a steep learning curve, surface area of syntax, complexity of concepts; and Go would be an example of a small language, with a constrained design, intentionally limited syntax, a handful of concepts to learn. Well, they serve different purposes and the design reflects the needs of each language.

That’s strange how the former is a community effort, seemingly egalitarian project, and the latter is (or started as) a Google project. If that law whose name I forget (Conway?) about how the structure of software is correlated with the organization that produces it..

Conway’s law describes the link between communication structure of organizations and the systems they design. It is named after the computer scientist and programmer Melvin Conway, who introduced the idea in 1967. His original wording was:

[O]rganizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.

— Melvin E. Conway, How Do Committees Invent?

Ah, it’s talking about “communication structure” of organizations. Maybe Go was incubated in a skunkworks-like small group with a focused vision; and Rust might have been “designed by committee”, after it left the hands of the original creator.

In 2009, Mozilla decided to officially sponsor Rust. The language would be open source, and accountable only to the people making it, but Mozilla was willing to bootstrap it by paying engineers. A Rust group took over a conference room at the company; Dave Herman, cofounder of Mozilla Research, dubbed it “the nerd cave” and posted a sign outside the door. Over the next 10 years, Mozilla employed over a dozen engineers to work on Rust full time, Hoare estimates.


Between the yuge and the smol, complex and the simple. The role of entropy in software and the tendency toward disorganization. As a program or language grows larger, how can it maintain simplicity and clarity. That’s for academics, practitioners, and creators of systems to solve as best practices.. By imposing ordered structure, modularity, encapsulation; by keeping the building blocks simple, their relationships explicit and dependencies few..

It’d be better if that constraint to simplicity follows from the design of the system, instead of having to impose it in a top-down manner. I suppose Go’s standard formatter and Rust’s borrow checker are examples of how using a language and its tooling as they’re designed naturally leads the user toward success, scalable and simple software. (Simple to understand, not necessarily simple of structure or scale.)


I heard about a programming language where errors are not possible to make.

Maybe it was one of those visual block programming languages like Sketch or Blockly. This latter is a Google project, a visual programming editor with drag-and-drop blocks, used in educational applications like Scratch, MIT App Inventor, code.org, Microsoft MakeCode. Though I’m a bit skeptical of their corporate interest in educating a new generation of programmers and shaping how they think.

On the surface I like the idea of a language where errors don’t exist by design. The concept of an error, a mistake, often displayed in a scary red message, is discouraging for a learner - like they did something wrong. Maybe it’s only about the vocabulary and presentation: “Congratulations, you’ve broken the program! That’s totally alright, let’s figure out how to make it work.”

On the other hand, errors are useful and necessary to catch unintended behavior, for fixing bugs. So a new programmer should get used to seeing a lot of them. The other day I was running a huge Makefile for someone’s big C project, and it threw hundreds of errors - and I just laughed. Eventually I figured it out (conflicting versions of a dependency on the local system). When the build completed successfully, it was satisfying. If there were never any errors, there wouldn’t be as much of a learning experience and satisfaction of solving a problem.


Blockly internally uses an engine called JS-Interpreter, a sandboxed JavaScript interpreter written in JavaScript. Some neat properties emerge from a language interpreter/compiler written in itself. This particular implemenation I’m intrigued by these features.

Serialization
A unique feature of the JS-Interpreter is its ability to pause execution, serialize the current state, then resume the execution at that point at a later time. Loops, variables, closures, and all other state is preserved.

Uses of this feature include continuously executing programs that survive a server reboot, or loading a stack image that has been computed up to a certain point, or forking execution, or rolling back to a stored state.

That sounds useful in any language. I think related to serializing the entire environment - I’ve also been thinking about hot module replacement, the ability to update an application while it’s running.

Hot reloading gameplay code means that you swap out the code that controls the behavior of your game while the game is running. Why? To improve and tweak your gameplay code without having to restart the game.

Gameplay programming is one of the most creative types of programming, especially when you’re figuring out and tweaking the design while implementing the gameplay, as may often happen for solo developers. Having hot reload helps you in this creative process by minimizing the interruptions to your creative flow.

Threading
JS-Interpreter allows one to run multiple threads at the same time. Creating two or more completely independent threads that run separately from each other is trivial: just create two or more instances of the Interpreter, each with its own code, and alternate calling each interpreter’s step function. They may communicate indirectly with each other through any external APIs that are provided.

A more complex case is where two or more threads should share the same global scope.

I suppose any interpreter can theoretically support stepping through each instruction of a running program. I actually tried this with the Wasm/Emscripten build of uLisp, where the Lisp virtual machine would call an asynchronous callback to the host (JavaScript side) on every step. It slows down the running Lisp program significantly, but I think a useful optional feature for education or during development, to be able to visually step through (pause/resume) the program.

1 Like

Removing entropy requires work to move it elsewhere. If you made a mess in your kitchen, you have to clean it up, which requires work (and heats up the universe). If you let your software turn into a mess, you have to clean it up as well (and heat up the universe a bit more in the process). Maintaining simplicity and clarity requires revisiting your code periodically and make it simpler and clearer. Work that has no immediate economical reward in most situations. Technical debt is cheap, and defaulting on the debt rather than paying it back is an easy option for individuals, though usually not for the organizations that are in charge of maintaining the code in the long term.

Did anyone ever try to create an explicit incentive for clarity and simplicity? For example, award a prize to the clearest code in a company, in an internal competition.

That sounds impossible unless you restrict the meaning of “error” to some narrow and technical definition.

Nice to have indeed. Many modern Smalltalks have it (my experience is with Pharo). You can serialize a stack trace and send it to someone else for debugging.

The best reason for never using Smalltalk is that once you have done it, everything else suddenly seems very painful to use.

1 Like

Maybe it’s restricted to syntax errors and other build-time errors that a compiler or linter can catch (and automatically fix if possible). That doesn’t include logic errors and other bugs of unintended behavior, like infinite loops (halting problem), which might be mathematically impossible to determine.

An example that comes to mind: as part of my uLisp adventure, I’m preparing a code editor based on CodeMirror. I learned about an editor extension, or rather a feature concept for any Lisp editor, called Parinfer.

It’s a set of rules that an editor can apply to Lisp code as it’s being edited, to balance parentheses, quotes, and indentation. It makes it impossible to have unbalanced parantheses because matching pairs are edited (insert/delete) at the same time.

record-2025-06-02_16.11.14

It’s a bit similar to the Blockly visual block editor, where some kinds of syntax errors are not possible to make due to the design constraints of the interface.

Another example is HTML (aside from the fact that it’s not a programming language), whose specification requires the browser/renderer to accept malformed syntax and not blow up. The commonly used word is “forgiving”, which implies that an error is a kind of sin or breaking the law, with implied guilt. I remember a quote from Tim Berners-Lee about it.. Mm, no, it was in this interview:

HTML is messy by design | Marc Andreessen and Lex Fridman

Lex: That was fundamental to the development of the web, to be able to have HTML just right there, all the ghetto mess that is HTML, all the almost biological messiness of HTML and then having the browser try to interpret that.

Marc: Yeah exactly, to show something reasonably well. There was this internet principle that we inherited which was emit conservatively interpret liberally.

(Known as the Robustness principle: “Be conservative in what you send, be liberal in what you accept.”)

The design principle was, if you’re creating a web editor that’s going to emit HTML, do it as cleanly as you can, but you actually want the browser to interpret liberally. You want users to be able to make all kinds of mistakes and for it to still work.

Then he goes on to give an example of a child, using View Source to see how a website is built, doing copy & paste to build his own page.

.. they’re trying to make a web page for their turtle or whatever, and they leave out a slash and they leave out an angle bracket, they do this and they do that and it still works.

Here’s where I think errors are actually more useful than silently ignoring them. It’s better to learn how to do things correctly, than to have the computer fix things without you even knowing about it. (Maybe a compromise is to highlight the mistakes while fixing them with a click, or tolerating and making best effort to guess the intention.)

Lex: HTML is allowed to be messy in the way biological systems could be messy. It’s like the only thing computers were allowed to be messy on for the first time.

Marc: It used to offend me..

I’m guessing there are other examples of fault tolerance in programming languages and computers in general, like the circuitry designed for “dirty electricity” with voltage stabilization, fuses, etc.

A scarier notion: a society where it’s impossible to break its laws, or certain classes of crimes are prevented, not by force but by design.


To be honest I’ve never experienced Smalltalk (or a Lisp machine), I’ve read about Pharo before but I think I’ll set aside some time to actually run and explore it. (Also with uxn, Freewheeling Apps, Glamorous Toolkit, Guile Hoot, etc.)

Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).

This last part is intriguing, an editor environment integrated with the operating system. It’s kind of what I imagine I want to develop with my fantasy Lisp machine, written in a single language all the way to the bottom (bedrock abstraction level).

The Pharo Wiki is informative.

If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.

2 Likes

..I’m glad some of threads in this rambling series of posts are coming together. I was feeling a bit guilty for my free-association style of writing, spamming the forum with whatever comes to my mind or found by chance. What I was hoping to achieve was:

Narrative weaving is the technique of intertwining multiple storylines and character arcs into a cohesive narrative, creating a rich tapestry of interconnected tales that enhance the overall storytelling experience.

But without a coherent plan or outline, it’s always on the verge of falling apart. I kinda like the thrill and uncertainty of winging it, improvizing my way through topics I find interesting; but it might be frustrating to read since there’s no clear line to connect all the dots. Some tangents are just left hanging without a resolution.

Why this focus on story? Perhaps it’s easier to consider things from the opposite view: what happens when an account has absolutely no narrative thread?

..The effect of having information presented in this way is, at the risk of sounding harsh on my daughter, stultifying. Olson (2015) labels it as the ‘And, And, And’ (AAA) approach.

That describes my writing style.

A brain dump is a technique where you write down all your thoughts, worries, and tasks onto paper or a digital tool to clear your mind and reduce stress. This practice helps organize your thoughts and can improve focus and productivity.

I have a Markdown file think.md that’s tens of thousands of lines where I just note down my fleeting thoughts and impressions. When it gets too long, I rename it with a date and move it to an archive (of many years). I often grep in that folder to recall specific information, or browse around to (re)discover poetic phrases, few lines of song lyrics, half-formed stories and concepts waiting to be developed further.

The first step in deploying narrative is knowing what the essence of a story is.

To effectively tell your story, Olson advocates the ‘And, But, Therefore’ (ABT) approach.

There’s an idyllic coastal resort and it’s really popular with holidaymakers. But a monstrous shark is eating swimmers and the mayor is in denial. Therefore, someone with a boat needs to go out and save the day.

In the ABT approach:

  • A provides context—it sets your story in place and time.
  • B is the contradiction: the problem / issue / conundrum.
  • T is the consequence of successfully identifying B—it’s the change in behaviour / practice / attitude that will result in the problem being surmounted.

Basically the dialectic method: thesis, antithesis, synthesis.

In the context of this post thread, I think:

  • A: Invention of the personal computer and the web, designed to empower individuals and communities.
  • B: It spread through society but gradually became colonized by commercial and political interests, where certain technologies are designed to disempower people (“users”).
  • T: Therefore we can improve things by understanding the situation, developing tools for conviviality, designing more malleable systems.

That over-simplifies the complexity and nuance of the story, though. It’s not so clear cut, like: what am I going to do about it personally. Creating my own microcosmos and software stack is fun, but does that help anybody? Well, I should “think globally, act locally.” To first help myself and also enjoy the process of taking back control. But I also want to participate in a larger effort, community projects. Maybe one day I’ll help out at a Maker Space, teaching children to hack (positively) on electronics and computers.

A hackerspace (also referred to as a hacklab, hackspace, or makerspace) is a community-operated, often “not for profit” workspace where people with common interests, such as computers, machining, technology, science, digital art, or electronic art, can meet, socialize, and collaborate.

One way this line of thinking has affected me is, I’m now noticing around me the inherently political technologies and anti-convivial designs in society. What Ivan Illich said about peasant society losing touch with knowledge and tools for living, “health, agriculture, home-building..” We’re unnecessarily dependent on large external systems beyond our control, and much of that is by design.

Like automobiles and how they require us to depend on the oil industry (and war I guess), multinational corporations, factories, roads.. Roads for cars everywhere, cutting through forests and mountains, covering the living ground with asphalt, constantly pumping the atmosphere with toxic fumes.

Or large language models. I’m starting to get in the habit of using local LLMs for fun and maybe profit, but I can’t help noticing the inherent political nature of how these models were produced, how they’re being used for pattern recognition in mass surveillance, how it can take away personal agency and literally deprive us of the power of thinking for ourselves.

3 Likes

I do the same thing too! I am enjoying your series of posts very much.

I was a kid who got to play with BASIC computers in the 1980s. A decade where we constantly feared large computing companies ruling our lives or even destroying it. (The Terminator was not a fantasy film: it was what we all expected to inevitably happen).

The small BASIC machines in the 80s, and then the Web in the 1990s, and then Open Source in the early 2000s, gave me a burst of optimism and hope that that bleak techno-dystopian vision was wrong. That we now had small, distributed… malleable… tools that would ensure that automation remained shaped by humans, for humans.

But first Mobile, then Cloud, and then Generative AI have all taken that feeling away. Our small open machines are now locked down and they report all our activities back to faceless distant owners. The Web, which I thought would remain free forever, is run on giant central servers. Open Source still doesn’t let us change the automation that controls our life. And the billionaires running that automation are, apparently, actual literal cultists, who believe they’re summoning some kind of machine god/demon, and who talk seriously and approvingly about human extinction. We’re back on that familar 1980s doom track of my childhood.

But despair is easy. Hope is resistance, and hope is often more powerful when it’s small. Even if it’s just a fantasy console or a reimplementation of Lisp, it all matters. It’s practicing the act of reimagination that’s important.

5 Likes

Recommended: re:publica 25: Robin Berjon - How We Can Finally Make The Digital World Democratic

2 Likes

Our digital sphere is authoritarian and as the internet is infrastructure for society this makes our world authoritarian too. In this talk, we’ll see how to use open protocols, pro-democracy technical architectures, and our understanding of digital infrastructure to build democratic social media.

Woo, that talk really hit the spot. He connected the dots and tied the loose ends from my recent learnings and musings about the history of the web; how artifacts have politics; and the call to develop tools for conviviality. I feel I have a clearer understanding of our current situation and the hopeful way forward for society and personally. I’m going to watch it again and take notes.


That’s an excellent way to put it, thank you - I’ll take it to heart. It’s like a journey of learning to become a better wizard.

Funny how this story is about technology run amok.

Tired of fetching water by pail, the apprentice enchants a broom to do the work for him..

It’s a warning about the power of magic, the origin of modern science.


From the description of the Glass Bead Game:

Playing the game well requires years of hard study of music, mathematics, and cultural history. It proceeds by players making deep connections between seemingly unrelated topics. The game is essentially an abstract synthesis of all arts and sciences.

I think computational media is an interdisciplinary nexus of art and science I’d like to pursue deeper as a means of creative expression.

computational media is the art of using the computer as a medium of expression, whether it be through designing and developing software, games, films, animations, and other kinds of art.

Mm I’m not satisfied with this definition. It’s more than art, it’s about a way to think beyond the brain, of freeing the thinking process out into the environment, where the thinking is made visible and manipulable through tangible media, including but not limited to computers, microcontrollers, sensors, programming languages - and also any available material, paper and pencil, paint, rocks, optical projectors, sound systems, 2D plotters and 3D printers, fabrics woven with soft circuitry, organic robots, cell cultures in petri dishes..

That reminds me of the scientist Andrew Adamatzky and his field of study called unconventional computing.

Andrew Adamatzky is a British computer scientist, who is a Director of the Unconventional Computing Laboratory and Professor in Unconventional Computing at the Department of Computer Science and Creative Technology, University of the West of England, Bristol, United Kingdom.

He is known for his research in unconventional computing. In particular, he has worked on chemical computers using reaction–diffusion processes. He has used slime moulds to plan potential routes for roadway systems and as components of nanorobotic systems, and discovered that they seek out valerian tablets, a herbal sedative, in preference to nutrients. He has also shown that the billiard balls in billiard-ball computers may be replaced by soldier crabs.

Adamatzky is also known for his continued research on fungal electrical spiking behavior. Notably publishing the book Fungal Machines, which compiles many years of work into one book.

  • Andrew Adamatzky in conversation with Merlin Sheldrake

Fungal Machines: Sensing and Computing with Fungi explores fungi as sensors, electronic devices, and potential future computers, offering eco-friendly alternatives to traditional electronics.

Fungi are ancient, widely distributed organisms ranging from microscopic single cells to massive mycelium spanning hectares. They possess senses similar to humans, detecting light, chemicals, gases, gravity, and electric fields. The book covers fungal electrical activity, sensors, electronics, computing prototypes, and fungal language.

..there is distant information transfer between fungal fruit bodies. In an automaton model of a fungal computer, we show how to implement computation with fungi and demonstrate that a structure of logical functions computed is determined by mycelium geometry.

The Sorcerer’s Apprentice is very well known in Germany. Everyone reads it at school. But I doubt that Germans are therefore better prepared to understand today’s issues in tech.

1 Like

Perhaps Goethe’s Faust is a more suitable story of modernity’s relationship with technology.

On a positive note, I’ve always liked the concept of Gesamtkunstwerk, “total work of art”.

Wagner used the exact term Gesamtkunstwerk on two occasions, in his 1849 essays “Art and Revolution” and “The Artwork of the Future”, where he speaks of his ideal of unifying all works of art via the theatre. He also used in these essays many similar expressions such as “the consummate artwork of the future” and “the integrated drama”.

It feels like that’s the direction we would be going if humanity was more focused on collective creative expression through all arts and sciences; instead of our current state of affairs where most of our collective energy is wasted on..gestures broadly at everything.


A utopia typically describes an imagined community or society that possesses highly desirable or near-perfect qualities for its members. It was coined by Sir Thomas More for his 1516 book Utopia, which describes a fictional island society in the New World.

On the Beautiful Green, a distant utopian planet, rural vegans master telepathy and mental abilities for interstellar travel. As part of an intergalactic coalition, Mila volunteers to bring a message of self-actualization and harmony with nature to the one planet rejected by all her peers as incorrigible–Earth.

Stranger in a Strange Land tells the story of Valentine Michael Smith, a human who comes to Earth in early adulthood after being born on the planet Mars and raised by Martians, and explores his interaction with and eventual transformation of Terran culture.

Smith becomes a celebrity and is feted by the Earth’s elite. He investigates many religions, including the Fosterite Church of the New Revelation, a populist megachurch in which sexuality, gambling, alcohol consumption, and similar activities are allowed and even encouraged and considered “sinning” only when they are not under church auspices. Smith has a brief career as a magician in a carnival, in which he and Gillian befriend the show’s tattooed lady.

Smith starts a Martian-influenced “Church of All Worlds”, combining elements of the Fosterite cult with Western esotericism.

Steppenwolf (originally Der Steppenwolf) is the tenth novel by German-Swiss author Hermann Hesse. The novel was named after the German name for the steppe wolf. The story in large part reflects a profound crisis in Hesse’s spiritual world during the 1920s.

As the story begins, Harry is beset by reflections on his being ill-suited for the world of everyday, regular people, specifically for frivolous bourgeois society.

Anarchist evening entertainment at the magic theater. Entrance not for everyone, for madmen only. Price of admittance: your mind.

In his aimless wanderings about the city he encounters a person carrying an advertisement for a magic theatre who gives him a small book, Treatise on the Steppenwolf. This treatise, cited in full in the novel’s text as Harry reads it, addresses Harry by name and strikes him as describing himself uncannily.

It is a discourse on a man who believes himself to be of two natures: one high, man’s spiritual nature, the other low and animalistic, a “wolf of the steppes”. This man is entangled in an irresolvable struggle, never content with either nature because he cannot see beyond this self-made concept.


..OK, that boat veered way off course, not sure what common thread weaves through these stories. About humanity’s potential for good and evil, between the angel and the beast.

1 Like

Imagineering. A portmanteau of imagination and engineering.

The term was introduced in the 1940s by Alcoa, and used by Union Carbide in an in-house magazine in 1957.

Aloca is an American industrial corporation and the world’s eighth-largest producer of aluminum. Union Carbide Corporation is an American chemical company, a wholly owned subsidiary of Dow Chemical Company. It is known for the Bhopal disaster in 1984, when over half a million people in the vicinity of a pesticide plant in India were exposed to the highly toxic gas methyl isocyanate, in what is considered the world’s worst industrial disaster.

Disney filed for a trademark for the term in 1989, claiming first use of the term in 1962. Imagineering is a registered trademark of Disney Enterprises, Inc.


How about Creative Technology.

Creative technology is a broadly interdisciplinary and transdisciplinary field combining computing, design, art and the humanities.

The field of creative technology encompasses art, digital product design, digital media or an advertising and media made with a software-based, electronic and/or data-driven engine.

Examples include multi-sensory experiences made using computer graphics, video production, digital music, digital cinematography, virtual reality, augmented reality, video editing, software engineering, 3D printing, the Internet of Things, CAD/CAM and wearable technology.

Right, that sounds like a similar direction as I was thinking about computational media.

Creative technology has been defined as “the blending of knowledge across multiple disciplines to create new experiences or products” that meet end user and organizational needs. A more specific conceptualization describes it as the combination of information, holographic systems, sensors, audio technologies, image, and video technologies, among others with artistic practices and methods. The central characteristic is identified as an ability to do things better.

Better for whom?

Creative technology is also seen as the intersection of new technology with creative initiatives such as fashion, art, advertising, media and entertainment.

As such, it is a way to make connections between countries seeking to update their culture; a winter 2015 Forbes article tells of 30 creative technology startups from the UK making the rounds in Singapore, Kuala Lumpur and New York City in an effort to raise funds and make connections.

It feels like the potential of this phrase is being exploited for the purposes of control, profit, and passive consumption instead of actual creativity by the people as participants and co-creators. Fashion, advertising, entertainment.. These all embody a top-down power structure where the “creators” are impersonal corporations with the public as the “spectators”.

The wording of “countries seeking to update their culture” is creepy too. Who is designing this new version of the collective mental operating system we call culture.


A word I like is autopoiesis, self-organization.

The term autopoiesis (from Greek αὐτo- (auto) ‘self’ and ποίησις (poiesis) ‘creation, production’), one of several current theories of life, refers to a system capable of producing and maintaining itself by creating its own parts.

The term was introduced in the 1972 publication Autopoiesis and Cognition: The Realization of the Living by Chilean biologists Humberto Maturana and Francisco Varela to define the self-maintaining chemistry of living cells.

The concept has since been applied to the fields of cognition, neurobiology, systems theory, architecture and sociology.

Self-organization, also called spontaneous order in the social sciences, is a process where some form of overall order arises from local interactions between parts of an initially disordered system.

The resulting organization is wholly decentralized, distributed over all the components of the system. As such, the organization is typically robust and able to survive or self-repair substantial perturbation. Chaos theory discusses self-organization in terms of islands of predictability in a sea of chaotic unpredictability.

Self-organization occurs in many physical, chemical, biological, robotic, and cognitive systems. Examples of self-organization include crystallization, thermal convection of fluids, chemical oscillation, animal swarming, neural circuits, and black markets.

1 Like
1 Like

How about repurposing “Creative Computing”? Internet Archive: Digital Library of Free & Borrowable Texts, Movies, Music & Wayback Machine

Meshtastic

Oh now that’s very interesting. I was always fascinated by mesh networks, but I thought they were dead. Glad to see they’ve made a comeback!

1 Like

Go did not start as a Google project, Google was paying Bell Labs people to continue a project started outside of Google. Otherwise it Google hasn’t creating any successful languages of their own, but maybe I’m wrong.

Go was a product of the Limbo language from the Inferno operating system, itself a product of Plan9. Inferno and Plan9 were convivial operating systems.

3 Likes

I see.. How fascinating. Bell Labs is a name I often see when studying about innovative technology, a respected and influential research lab like Xerox PARC.

As a former subsidiary of the American Telephone and Telegraph Company (AT&T), Bell Labs and its researchers have been credited with the development of radio astronomy, the transistor, the laser, the photovoltaic cell, the charge-coupled device (CCD), information theory, the Unix operating system, and the programming languages B, C, C++, S, SNOBOL, AWK, AMPL, and others.

The transistor! I’d read about Unix and C, the illustrious crew at Bell Labs that developed them like Ken Thompson, Dennis Ritchie, Brian Kernighan - some of whom, I’m learning now, went on to Plan 9, Inferno, and also invented Go. What a pedigree this language has. It explains the feeling I was getting from learning the language, how the unusually simple syntax is a result of distilled experience.


Plan 9 had a cute logo.

It reminds me of the little creature from uxn.

That makes me want a mascot for my imaginary Lisp machine. It now has a tentative project name am36a, like “amoeba”. I have an old drawing I did for a science fiction story, that might fit..

Heheh, yeah that’s the one. Drawn in pencil would be nice.

The story was called 粘菌人類の一瞬王国 (The Momentary Kingdom of Slime-Mold Humanity).


What I’m learning from uxn and the imaginative world it grew out of, is that there’s a lot of unexplored expressive potential in software, beyond mere utilitarian purpose. There’s room for more whimsy, weirdness, and surreal alien artifacts. Best if it’s technically marvellous and practically useful, at least for the creator.

TempleOS and SerenityOS are examples of that kind of personal software system, where the process of its creation was not only a technical effort but an artistic expression.

By calling this creation an “Artistic Operating System”, we assert that it should be unique and personal, even peculiar in its way of representing and interfacing with the rest of the media world.

In this sense, it is freed from the implicit social requirement that new technological projects conform to standard principles of progress, universality and efficiency. There’s no need to claim to be the “Next Big Thing” or to even suggest that anyone, other than the creators of this device, should use it.

Why Screenless

Looking into the root word of technology, I found:

In Ancient Greek philosophy, techne (Greek: τέχνη, ‘art, skill, craft’) is a philosophical concept that refers to making or doing.

While the definition of techne is similar to the modern use of “practical knowledge”, techne can include various fields such as mathematics, geometry, medicine, shoemaking, rhetoric, philosophy, music, and astronomy.

Also software, hardware, computers, electronics.

One of the definitions of techne led by Aristotle, for example, is “a state involving true reason concerned with production”.


..As I read more about Inferno and Plan 9, I remember I’ve seen this archive of historical documents before. It’s fun to dig around, so many great ideas to learn about, some of which I now understand evolved into modern incarnations that I’m more familiar with.

Much of my learning process is about digging back through history, uncovering the layers that led up to the current situation. I especially enjoy finding forgotten brilliant ideas that didn’t succeed - like Nikola Tesla’s concept for a global wireless power network.

He envisioned transmitting electrical power as well as text, voice/audio, images.. The world wasn’t ready for this idea yet, but he saw the future - and was trying to build towards it.

Help: A Minimalist Global User Interface by Rob Pike

Help is a combination of editor, window system, shell, and user interface that provides a novel environment for the construction of textual applications such as browsers, debuggers, mailers, and so on.

It combines an extremely lean user interface with some automatic heuristics and defaults to achieve significant effects with minimal mouse and keyboard activity. The user interface is driven by a file-oriented programming interface that may be controlled from programs or even shell scripts.

By taking care of user interface issues in a central utility, help simplifies the job of programming applications that make use of a bitmap display and mouse.”

5 Likes