A holistic approach to computing and sustainability inspired from permaculture.

The abundance of digital storage and processing power has caused an explosion in wastefulness, which shows in things like ridiculous hardware requirements for computing even the most trivial tasks. Permacomputing aims at only using computing when it has a strengthening effect on ecosystems.

— Pictographic instructions to decode the Voyager Golden Record engraved on its cover.

Permacomputing does not advocate for going back in time, despite advocating a dramatic decrease in use of artificial energy, but trusts in human ingenuity to finding clever hacks for turning problems into solutions, competition into co-operation, and waste into resources

It values maintenance and encourages the refactoring of programs to keep them efficient, instead of counting on Moore's law to compensate for software bloat. Instead of planned obsolescence, permacomputing practices planned longevity, reuse and repair of existing technology and approaches waste as a resource.

Articulating the value of absence

Computation in this context is intrinsically self-obviating, which is to mean that the computational system, by design, tries to make itself less and less necessary to the realization of its purpose, and gradually allow people to provide for their own welfare.

Frugal Computing Salvage Computing Collapse Computing
Utilizing computational resources as finite and precious, to be utilised only when necessary, and as effectively as possible. Utilizing only already available computational resources, to be limited by that which is already produced. Utilizing what has survived the collapse of industrial production or network infrastructure.

It is telling of the age in which we live, that some will find themselves shopping for the most permacomputing apps to download or computers to buy. There are attempts at drawing a line at the edge of one's computing needs, and personalized systems to address those needs, but these are by no means "permacomputing products". Permacomputing is concerned about finding these limits, and not their artifacts.

Asking for the most suitable programming language for permacomputing is akin to asking for the most suitable plant for permaculture — the entire question contradicts itself.

Figuring out how to make the best possible use out of the millions of devices which already exist.

Salvage computing believes that the end of a computer product's lifecycle should be seen as a moment of celebration, a moment when its socioeconomic context can finally be reclaimed. Scavenge-friendly electronics are parts that are no longer manufactured, but that are available by the billions in landfills. Those who can manage to create new designs from scavenged parts with low-tech tools will be able to preserve electronics.

Designing for Disassembly ensures that all elements of a product can be disassembled for repair and for end of life. This allows for and encourages repairs, with the result that a product's life cycle is prolonged; and it allows for a product to be taken apart at the end of its life so that each component can be reclaimed. Among other shifts in thinking and making, this means minimizing materials, using simple mechanical fasteners instead of adhesives, clearly labeling components with their material type, and ensuring components can be disassembled with everyday tools.

That which cannot be repaired is already broken.

Unlike the nebulous goal of designing a sustainable product, designing a product for disassembly is a more concrete, quantifiable approach to ecologically sound making and to consumption. ~

MigrationPeriodically convert data to the next-generation formatsData is instantly accessibleCopies degrade from generation to generation
EmulationMimicking the behavior of older hardware with software, tricking old programs into thinking they are running on their original platformsData does not need to be alteredMimicking is seldom perfect; chains of emulators eventually break down
EncapsulationEncase digital data in physical and software wrappers, showing future users how to reconstruct themDetails of interpreting data are never separated from the data themselvesMust build new wrappers for every new format and software release; works poorly for nontextual data
Universal virtual computerArchive paper copies of specifications for a simple, software-defined decoding machine; save all data in a format readable by the machinePaper lasts for centuries; machine is not tied to specific hardware or softwareDifficult to distill specifications into a brief paper document

Emulation is a way of preserving the functionality and access to digital information which might otherwise be lost due to technological obsolescence. One of the benefits of the emulation strategy compared with migration is that the original data need not be altered in any way. It is the emulation of the computer environment that will change with time.

A universal virtual computer needs to be well documented, contain a bare minimum of functionality, be easily testable for compliance, and have very, very few special cases in the specification, since special cases are opportunities for incompatibility; but despite that, it needs to be a reasonable target to write a compiler for. Finally, I argue that a UVC ought to have predictable performance.

Wait. What nostalgia? This is not about reliving fond memories or fetishize about an imaginary past, it's about being tactical in our choice of medium, so as to propagate a political perspective efficiently.~

Taking advantage of today's abundance in computing power to prepare for a future in which infrastructures have collapsed.

Collapse computing prioritizes community needs and aims to contribute to a knowledge commons in order to sustain the practice of computation through infrastructure collapse, it is the practice of engaging with the discarded with an eye to transform what is exhausted and wasted into renewed resources.

Four Concepts Of Resilience
Agility The capacity to adapt or respond rapidly to a changing environment.
Preparedness The ability to reflect on past threats, and bouncing forward by enacting new ideas for development after a crisis event.
Elasticity Increasing the exchangeability and flexibility of relationships among people and things within an organization and a wider ecosystem.
Redundancy The intentional duplication of critical components with the goal of increasing the reliability of a system.

A post-collapse society that has eventually lost all of its artificial computing capacity may still want to continue the practice of computer science for various reasons.

Designing for Descent ensures that a system is resilient to intermittent energy supply and network connectivity. Nothing new needs producing and no e-waste needs processing. If your new software no longer runs on old hardware, it is worse than the old software. Software should function on existing hardware and rely on modularity in order to enable a diversity of combinations and implementations. It is about reinventing essential tools so that they are accessible, scalable, sturdy, modular, easy to repair and well documented.

And one voice, with sublime disregard for the situation, read poetry aloud in the firey study, until all the film spools burned, until all the wires withered and the circuits cracked. Ray Bradbury, There Will Come Soft Rains

incoming uxn about solarpunk hundred rabbits oscean