Permacomputación: principios ============================ Estos son principalmente principios de diseño/práctica y no filosóficos, así que siéntete libre de estar en desacuerdo con ellos, reestructurarlos y (re)interpretarlos libremente. La permacomputación no es prescriptiva, sino que favorece la situacionalidad y la conciencia de la diversidad de contextos. Dicho de otra manera, sus principios de diseño pueden ser tan útiles como una forma de guiar la práctica en una situación específica, como pueden ser utilizados como un dispositivo para ayudar a resaltar problemas sistémicos en la relación entre la tecnología informática y la ecología. Además, esto es un gran trabajo en progreso :) ## Cuidar la vida Esta es la base ética sobre la que se construye la permacomputación. Se refiere a los principios permaculturales de "cuidar la tierra" y "cuidar a las personas", pero puede considerarse como el axioma básico para todas las decisiones. Crea sistemas de bajo consumo que fortalezcan la biosfera y usa la red de área amplia con moderación. Minimiza el uso de energía artificial, combustibles fósiles y recursos minerales. No crees sistemas que oculten el desperdicio. ## Cuidar los chips La producción de nuevo hardware informático consume mucha energía y recursos. Por lo tanto, necesitamos maximizar la vida útil de los componentes de hardware, especialmente los microchips, debido a su baja reciclabilidad material. - Respeta las peculiaridades y singularidades de lo que ya existe y repara lo que se pueda reparar. - Crea nuevos dispositivos a partir de componentes recuperados. - Apoya el tiempo compartido local dentro de tu comunidad para evitar comprar cosas redundantes. - Presiona a la industria hacia la longevidad planificada. - Diseña para el desmontaje. ## Mantenlo pequeño Los sistemas pequeños tienen más probabilidades de tener requisitos de hardware y energía reducidos, así como una alta comprensibilidad. Son más fáciles de entender, gestionar, reestructurar y reutilizar. - Las dependencias (incluyendo los requisitos de hardware y cualquier software/biblioteca externa que el programa requiera) también deben mantenerse bajas. - Evita la pseudosimplicidad, como interfaces de usuario que ocultan su funcionamiento al usuario. - Acumula sabiduría y experiencia en lugar de código. - La baja complejidad es hermosa. Esto también es relevante, por ejemplo, en los medios visuales, donde la "alta calidad" a menudo se considera que proviene de altas resoluciones y grandes tasas de bits. - Escala humana: un nivel razonable de complejidad para un sistema informático es que pueda ser completamente entendido por una sola persona (desde los detalles de hardware de bajo nivel hasta las peculiaridades a nivel de aplicación). - La escalabilidad (hacia arriba) es esencial solo si existe una necesidad real y justificada de escalar; la escalabilidad hacia abajo puede ser más relevante a menudo. - Pensamiento de abundancia. Si la capacidad informática se siente demasiado limitada para cualquier cosa, puedes reconsiderarla desde el punto de vista de la abundancia (por ejemplo, llevándote cincuenta años atrás en el tiempo): decenas de kilobytes de memoria, miles de operaciones por segundo – ¡piensa en todas las posibilidades! ## Espera lo mejor, prepárate para lo peor Es una buena práctica mantener todo lo más resistente y tolerante al colapso posible, incluso si no crees en estos escenarios. - Mientras seas resistente y construyas sobre una base sólida, mantente abierto a posibilidades positivas y utópicas. Experimenta con nuevas ideas y ten grandes visiones. - Diseña para el descenso. ## Mantenlo flexible La flexibilidad significa que un sistema puede ser utilizado en una amplia gama de propósitos, incluidos aquellos para los que no fue diseñado principalmente. La flexibilidad complementa la pequeñez y la simplicidad. En un sistema ideal y elegante, los tres factores (pequeñez, simplicidad y flexibilidad) se apoyan mutuamente. Si es posible imaginar todos los casos de uso posibles al diseñar un sistema, el diseño puede ser demasiado simple y/o demasiado inflexible. La pequeñez, la simplicidad y la flexibilidad también forman parte del ideal de "herramientas pequeñas y afiladas" de la línea de comandos de Unix. Aquí, la clave de la flexibilidad es la capacidad de combinar creativamente pequeñas herramientas que hacen cosas pequeñas e individuales. - La tecnología informática en general es muy flexible debido a su programabilidad. La programación y la programabilidad deben ser apoyadas y fomentadas en todas partes, y los bloqueos artificiales que impiden la (re)programación deben ser eliminados. - Diseña sistemas que puedas modificar y mejorar gradualmente mientras los ejecutas. ## Construye sobre una base sólida Es bueno experimentar con nuevas ideas, conceptos y lenguajes, pero depender de ellos suele ser una mala idea. Aprecia las tecnologías maduras, las ideas claras y las teorías bien entendidas al construir algo que está destinado a durar. - Evita dependencias poco confiables, especialmente como dependencias duras (no opcionales). Si no puedes evitarlas (en el caso del software), ponlas disponibles en el mismo lugar donde tienes tu programa disponible. - Es posible apoyar varias plataformas objetivo. En el caso de programas duraderos, una de estas debería ser una plataforma base que no cambie y, por lo tanto, no cause deterioro del software. - No des nada por sentado. Especialmente no esperes que la infraestructura, como la red eléctrica y la red global, continúe funcionando indefinidamente. - También puedes leer esto como "haz crecer raíces en un terreno sólido". Aprende cosas que perduren, enriquece tu tradición local, conoce la historia de todo. ## Amplifica la conciencia Las computadoras fueron inventadas para asistir a las personas en sus procesos cognitivos. La "amplificación de la inteligencia" era un buen objetivo, pero la inteligencia también puede usarse de manera estrecha y ciega. Por lo tanto, puede ser una mejor idea amplificar la conciencia. - La conciencia significa conciencia de lo que está sucediendo concretamente en el mundo/entorno, pero también conciencia de cómo funcionan las cosas y cómo se sitúan en sus contextos (culturales, históricos, biológicos, etc.). - No necesitas manipular todo para entenderlo. El hacking yin enfatiza la observación. - Rambién puede ser una buena idea a menudo amplificar la conciencia de la computadora de su entorno físico con cosas como sensores. ## Expón todo Como una extensión de "amplifica la conciencia": ¡No ocultes información! - Mantén todo abierto, modificable y flexible. - Comparte tu código fuente y filosofías de diseño. - Visualización del estado: Haz que la computadora visualice/sonorice su estado interno, así como todo lo que sabe sobre el estado de su entorno físico. Considera esta visualización/sonorización como un paisaje de fondo: facilita la observación pero no robes la atención. Además, no uses demasiados recursos informáticos para esto (actualizar un paisaje de fondo a pantalla completa decenas de veces por segundo es un exceso total). ## Responde a los cambios Los sistemas informáticos deben adaptarse a los cambios en sus entornos operativos (especialmente en relación con la energía y el calor). No se debe requerir la disponibilidad las 24 horas del día, los 7 días de la semana de todas las partes del sistema, ni un rendimiento operativo constante (por ejemplo, la velocidad de la red). - A largo plazo, los sistemas de software y hardware no deben quedar obsoletos por las necesidades y condiciones cambiantes. Se puede escribir nuevo software incluso para computadoras antiguas, se puede modificar software antiguo para responder a nuevas necesidades, y se pueden construir nuevos dispositivos a partir de componentes antiguos. Evita tanto el deterioro del software como la retrocomputación. ## Todo tiene un lugar Sé parte de tus ciclos locales de energía/materia, ecosistemas y culturas. Valora la localidad, evita la centralización. Fortalece las raíces locales de la tecnología que usas y creas. Mientras operas localmente y en el presente, sé consciente del contexto mundial en el que se desarrolla tu trabajo. Esto incluye el contexto histórico varias décadas hacia el pasado y el futuro. Comprender el pasado es la clave para vislumbrar los futuros posibles. - Nada es "universal". Incluso las computadoras, "calculadoras universales" que pueden readaptarse a cualquier tarea, están llenas de peculiaridades que provienen de las culturas que las crearon. No las tomes como la única forma en que las cosas pueden ser, o como la forma más "racional" o "avanzada". - Cada sistema, no importa cuán omnipresente o "universal" sea, es solo una pequeña mota en un vasto océano de posibilidades. Intenta entender todo el espacio de posibilidades además de las motas individuales sobre las que tienes experiencia concreta. - Aprecia la diversidad, evita la monocultura. Pero recuerda que los estándares también tienen un lugar importante. - El utilitarismo estricto empobrece. La inutilidad también tiene un lugar importante, así que apreciala. - También puedes leer este principio como: Hay un lugar para todo. Nada es obsoleto o irrelevante. Incluso si pierden su significado original, los sistemas programables pueden readaptarse a nuevos propósitos para los que no fueron diseñados originalmente. Piensa en la tecnología como un rizoma en lugar de una "autopista de progreso y obsolescencia constante". - Hay un lugar para lo lento y lo rápido, para los procesos graduales y los de una sola vez. No mires todas las cosas con los mismos lentes. ## Traducción del original: https://permacomputing.net/Principles/