Permacomputing
Permacomputing is an approach to computing inspired by permaculture, aiming to be more sustainable than our current consume-and-throw-away approach to building hardware and software systems.
“Permaculture is an approach to land management and settlement design that adopts arrangements observed in flourishing natural ecosystems”
It is related to Solarpunk which is a lifestyle movement and genre of art and fiction that envisions how the future might look if humanity adopted solutions that emphasised sustainability and human impact on the environment, in which humanity is re-integrated with nature, and where technology is used for human- and eco-centric purposes (as opposed to capital-centric).
Permacomputing aims to:
- Create systems that minimize the use of non-renewable resources and strengthen human connection.
- Maximise the longevity of that which has already been produced, repair and salvage broken systems, and encourage cooperation in communities to avoid excessive consumption
- Keep things simple such that they can be reasonably understood by a single person (human-scale). Simple systems tend to have smaller hardware and energy requirements and are easier to maintain and manage.
- Build resilient software, hardware, and a vision/outlook that can withstand interruptions in resource flows, the collapse of the internet or power grid, and other disastrous scenarios. In essence: hope for the best, prepare for the worst.
- Design flexible systems that can be built upon, molded, and shaped. Support programmability and hacking instead of trying to imagine every possible use case. Allow users of your systems to mold it to their needs.
- Appreciate mature technologies, clear ideas, and well-understood principles when designing systems that are intended to last (i.e. systems that are not experimental or exploring new technologies).
- Build long-lasting systems upon stable platforms that are unlikely to significantly change in the future so that programs will continue to work for many decades to come, avoiding the phenomenon of software rot.
- Amplify awareness of the concrete world, how things work, and in what context things operate. Instead of shutting ourselves away in blind pursuits of knowledge and progress, explore the world that exists and create systems that amplify awareness of that world.
- Expose everything about the workings of a system. Things should be open, modifiable, and flexible, and nothing about the state of a system should be completely hidden from the user or programmer.
- Avoid pseudo-simplicity, where things are simple only in appearance.
- Design systems that adapt to changes in operating environments. Constant availability or operating performance should not be required. Software and hardware systems should not be obsoleted by changing needs and conditions. New software should be able to be written for old systems and old software should be able to be modified to respond to new needs. New hardware should be buildable from old components, and old components should continue to be integratable into new systems.
- Be present in the place and moment, but not ignorant of the past or future. Nothing is obsolete or irrelevant.
- Eschew the concepts of universality. Nothing is universal and there is no one correct way of doing things.
- Embrace uselessness and fun. Strict utilitarianism impoverishes and degrades the soul and spirit.
- Appreciate diversity, avoid monocultures, but recognize that standards are useful tools (e.g. UTF-8). There is a place for slow and fast, gradual and one-shot processes, and not everything should be examined from the same perspective.
- Cherish locality and avoid centralisation. Each community should have software and hardware systems that fit their needs and which they can adapt, maintain, and grow to serve themselves.
Note that although Permacomputing heavily involves the ideas of simplicity, using what is stable, and generally goes against the current way we think of and treat computing, it does not advocate for going back in time, “living in the dark ages”, or standing still and never improving what already exists. It advocates for a complete reframing of the way we think about computing to more carefully consider the effects, longevity, performance, maintainability, and sustainability of the systems we create.
It combines the ideas of frugal computing (using computational resources only when necessary and as effectively as possible), salvage computing (making use of what has already been produced), and collapse computing (utilizing what can survive the collapse of industrial production or processes).
Some Permacomputing Technologies
Infrared ports and audio-cable-based data communication. They might be slow but they are simple and easy to hack on. (NOT Bluetooth. Anything but Bluetooth.)
Resources
- Permacomputing 2020
- Permacomputing Update 2021
- XXIIVV Wiki on Permacomputing
- Unplanned Obsolescence: Hardware and Software After Collapse
- A pluriverse of local worlds: a review of Computing within Limits related terminology and practices
- Regenerative Computing: De-limiting hope.
- Abstraction, Indirection, and Sevareid’s Law: Towards Benign Computing
- Frugal Computing
- Rustic Computing
- Larry Wall’s Quest for a 100-Year Programming Language
- CivBoot
- Simple Systems Manifesto
- Maximalism and Virtualism
- Design for Disassembly and Deconstruction
- Collapse Informatics and Practice: Theory, Method, and Design
- On Cosmotechnics For a Renewed Relation between Technology and Nature in the Anthropocene
- Simple Made Easy - Rich Hickey
- Re-evaluating technology
- A New Old Idea
- Tools For Thought by Howard Rheingold