jueves, 15 de octubre de 2026

¿Cómo Juego Simcity en la Terminal de Ubuntu?

En Manual Práctico del Segundo Plan Quinquenal, Juan Perón expone cómo persuadir para su realización, a la vez que enseña cómo instalar el simulador de ciudades ttycity para la terminal de Ubuntu.

(...)

Eramos una sociedad en que una Clase minoritaria rica y prepotente, oprimía a otra pobre e indefensa, privada de las cosas más necesarias mientras que a los poderosos les sobraban las cosas superfluas. Grandes extensiones de tierra estaban abandonadas y desiertas, y numerosas riquezas naturales esperaban inútilmente la mano del hombre industrioso que las pusiera al servicio del bienestar común. El trabajo era una especie de esclavitud; el trabajador era despreciado.

La desorganización era, en suma, poco menos que total. Los gobernantes no sabían o no querían saber qué quería ni qué pensaba el Pueblo. Entre el Pueblo y sus gobernantes había un completo divorcio. Y como el Pueblo no estaba organizado, tampoco podía hacer conocer sus aspiraciones. Resulta así que cada uno hace lo que le parece mejor o lo que más le conviene, y la Nación se convierte en una especie de torre de Babel, en la que nadie se entiende.

Algo similar había ocurrido en nuestro país. Por eso, la primera tarea fue organizar. La organización - puede decirse - comenzó antes de asumir el gobierno, en la Secretaría de Trabajo y Previsión, gestando la unión de los obreros en sindicatos libres, realmente representativos de cada gremio. Hemos emprendido la tarea de deshacer lo hecho y establecer un orden que permitiera desarrollar una labor orgánica y constructiva, sin pérdidas de tiempo ni dispersión de esfuerzos. 

Si un plan es necesario para cualquier empresa particular que se emprenda, tanto más lo será para el desarrollo y el progreso de las naciones, que deben -día a día -engrandecerse con el esfuerzo común. Cuando se gobierna sin un plan previo, la desorganización malogra los esfuerzos y los buenos deseos de los gobernantes y de los pueblos.

Los peronistas sostenemos que al hombre mejor que obligarlo es persuadirlo. El Plan Quinquenal es también tarea de persuasión sobre la necesidad de construir y realizar, en un país en que está aún todo por hacerse. Es a la vez persuasión para realizar con sentido nacional y con sentido social.  

Hemos dicho también los peronistas que concebir un plan no es una obra de arte. La verdadera obra de arte está en realizarlo. Para ello, el primer paso es conocerlo; el segundo, difundirlo, para que todos lo conozcan; el tercero, que cada uno lo sienta como propio, se persuada de la necesidad de llevarlo a cabo y lo realice, en la parte que a él le corresponde, con decisión, con honradez y con patriotismo. 

De aquí surge la necesidad de una gran difusión para que nadie pueda alegar ignorancia; de una profusa propaganda que lleve la comprensión y la persuasión a cada argentino; y, finalmente, de una observación continua y una vigilancia permanente de cada uno, para asegurar su cumplimiento de conjunto.

Una de las maneras de lograr dicha comprensión es aprovechar un sistema GNU con Linux e instalar en él ttycity. Se trata de un juego de simulación de planeamiento urbano - y como es de prever - se trata de uno mas de los varios clones de Micropolis (a su vez inspirado en el clásico Simcity, de Maxis). La particularidad de este es la de haber sido concebido para la terminal de nuestro sistema GNU. El objetivo es lograr la Felicidad del Pueblo, haciendo que los Sims - habitantes de nuestra urbe - vean colmados sus anhelos de vivir en una Comunidad Organizada, constituyendo un pueblo de entidades digitales de simulada dignidad, salud y felicidad.

Para instalarlo y jugar podremos utilizar la terminal. Basta con abrir una con Ctrl+Alt+t y descargar su código fuente en lenguaje C, compilarlo automáticamente e instalarlo por única vez. Para hacer de todo ello una realidad efectiva, ingresamos:

cd /tmp ;
git clone https://github.com/tenox7/ttycity ;
cd /tmp/ttycity/src/ ;
make ;
sudo mv /tmp/ttycity/src/ttycity /usr/local/games/ttycity

Conforme tengamos preparado el juego en nuestro sistema, ya podremos darle ejecución:

ttycity

Normalmente ttycity intentará detectar el ambiente de nuestra terminal para dilucidar el tipo de representación. Si todo va bien y encuentra una terminal compatible con Unicode, intentará presentar gráficas UTF8 (capaz de presentar emojis).

Si no puede presentar estos, intentará con una representación más atemperada en base a los típicos caracteres de terminal a color, algo bastante típico en nuestro sistema GNU.

Al igual que el Simcity 1, la interfaz del juego consta de una barra superior con menúes desplegables tipo pull-down, y a la izquierda cuenta con una barra de herramientas. En la parte inferior una barra de status, y por supuesto, una ventana principal de edición (donde  podremos observar y editar la ciudad).

El juego responde a los lineamientos de planificación urbanística del Simcity clásico, en la medida que va pasando el tiempo. Desde el punto de vista lúdico, la ciudad está formada por escaques o "baldosas", que representan varios elementos. Los principales son tres tipos de zonificación de 3x3 escaques: residencial, comercial e industrial (estas pueden lograr dos tipos de densidad denotadas por el uso de letras minúsculas o mayúsculas o diferentes emojis gráficos). También contaremos con elementos de 1 escaque, como las carreteras, vías férreas, o líneas de electricidad, y zonas de utilidad (estaciones de bomberos y policías, puertos, aeropuertos, plantas de generación eléctrica a carbón o nuclear, etcétera).

Es de destacar que las opciones gráficas también podremos cambiarlas desde el menú Options / Graphics del juego. Si contamos con un terminal monocromático, también podremos hacer uso de una presentación especial ASCII. En ella tendremos que adecuarnos a ver los árboles representados como ^, el agua como ~, las estaciones de policía como P y las de bomberos como F, etcétera.  (todas ellas pueden alterarse también dentro del juego, gracias al menú Options).

A su vez, de contar con un terminal monocromático, podremos escoger entre tres patrones de tonalidades para la tierra/árboles/agua, dependiendo de nuestro gusto.

Podemos empezar de cero con un mapa al azar, o bien cargar un escenario (una ciudad prearmada para continuar). Cualquiera sea el caso, nuestra labor será gestionar el problema en cuestión de la mejor manera posible dadas las circunstancias. Para ello debemos planificar un presupuesto anual balanceado de acuerdo a las necesidades sociales de los habitantes y de las capacidades de la geografía del terreno.

Normalmente iniciaremos en una zona baldía, la cual podremos conurbanizar. Para ello reformamos por medio de la topadora. Para comenzar a operar, podemos usar Mayúsculas+una letra para elegir una de las herramientas (por ejemplo, b para el bulldozer). Moviendo el cursor en el mapa podremos designar un área y activar la herramienta elegida con la tecla intro. Para buscar urbanizar un terreno, podremos presiona Mayúsculas+r para escoger la herramienta de zonificación residencial, y situamos la zona donde queremos (recordemos que tendrá 9x9 escaques). También podremos zonificar con Mayúsculas+c para comercial, o Mayúsculas+i para industrial, , Mayúsculas+w sirve para tirar cables, etcétera). El uso del teclado también nos resultará útil para conducirnos en ttycity:

Teclas Resultado
Flechas / hjkl Mueve el cursor
Mayús + letra Toma una herramienta (ver paleta)
Intro Construye en el cursor
m cicla el mapa / zonas
u Escoge modo gráfico
Barra Espaciadora pausa
Esc / F10 Barra de menú
g Nueva Ciudad · q quit

Si tenemos dudas de qué representa un escaque, podemos usar la herramienta "investigar",  con Mayúsculas+? y haciendo clic en el escaque a consultar, lo que nos presentará una pequeña ventana con la información (se la cierra con cualquier tecla):


Una vez transcurrido un año virtual, recibiremos un reporte presupuestario, o bien podremos ajustar el mismo de acuerdo a las necesidades. 

En la ventana de status tendremos resúmenes gráficas con la demanda de zonas residenciales, comerciales e industriales, así como la cantidad de años transcurridos, el dinero en caja, cantidad de habitantes, y puntajes. Sin embargo, existen versiones expandidas de los mismos: podremos activarlas desde el menú Views.

Tras un periodo determinado, los habitantes de la ciudad evaluarán nuestra conducción mediante una elección especial. Si nuestro desempeño ha sido excelente, es posible que recibamos las llaves de la ciudad; por el contrario, si la gestión es deficiente ¡podríamos tener que irnos en helicóptero!


Uno de los clásicos despioles del Simcity eran los desastres: terremotos, incendios, accidentes aéreos, y hasta un monstruo. Estos también aparecen replicados en ttycity.

El programa ttycity es finalmente un juego de estrategia y planificación. Hay que comprender que el bien común es superior al bien individual y que, en consecuencia, el individuo ha de renunciar a veces a alguna ventaja, en beneficio de la comunidad de la que forma parte y con cuyo bienestar él mismo se beneficia. Al igual que en la vida real que intenta simular, en ttycity los Planes Quinquenales suelen ser sumamente pródigos en resultados. Aún así, nunca viene mal recordar estas máximas del Arte de la Conducción de Simcitys:

  • Inicia un lento crecimiento. Vigila tus fondos.
  • Para generar ingresos fiscales debes desarrollar zonas. Todas las zonas necesitan suministro eléctrico para desarrollarse. Para que una zona se desarrolle plenamente, debe contar con acceso logístico mediante carreteras o vías férreas.
    Cada tramo de carretera, vía férrea, puente o túnel conlleva un coste de mantenimiento anual. Estos costes pueden acumularse rápidamente; evita construir demasiadas infraestructuras antes de que los habitantes de tu ciudad te provean de ingresos fiscales suficientes para cubrirlos.
  • Coloca las zonas, carreteras y otros elementos con cuidado: no se pueden mover, por lo que, si decides cambiarlos de lugar, se deberá pagar su demolición y reconstrucción.
  • Como regla general, el número de zonas residenciales debe ser aproximadamente igual a la suma de las zonas comerciales e industriales. En las primeras etapas, necesitarás más zonas industriales que comerciales; a medida que la ciudad crezca, necesitarás más zonas comerciales que industriales.
  • Mantén separadas las zonas residenciales de las industriales.
  • La proximidad a bosques, parques y masas de agua aumenta el valor del suelo, lo que a su vez incrementa la recaudación fiscal. No elimines más bosque del estrictamente necesario. Una línea de costa natural eleva el valor de las propiedades más que una línea de costa creada artificialmente con rellenos.
  • Ten en cuenta que la proximidad al centro de la ciudad incrementa el valor de los inmuebles. Ttycity define zonas céntricas como “el centro de masa de la densidad de población”; es decir, calcula el centro geográfico promedio de la población.  
  • Las centrales eléctricas adicionales y las líneas de suministro redundantes resultan costosas, pero pueden evitar que las zonas pierdan energía -y se deterioren- durante un desastre o una emergencia.
  • Las vías férreas pueden soportar mucho más tráfico que las carreteras. Si prevés que una zona generará un tráfico intenso, instala vías férreas en lugar de carreteras durante las primeras etapas del desarrollo.
  • Si recibes muchos avisos de tráfico intenso, sustituye las carreteras por vías férreas. ¡Puedes crear una ciudad sin carreteras, incluso si no eres un entusiasta de los trenes!
  • Agrupar las zonas —colocando cuatro o cinco seguidas, una junto a otra— permite reducir considerablemente el número de segmentos de líneas eléctricas necesarios.
  • Los aeropuertos, puertos marítimos y estadios no contribuyen al crecimiento de una ciudad pequeña; ahorra tu dinero hasta que la ciudad sea más grande. Los Sims te indicarán cuándo necesitan este tipo de instalaciones.
  • Una ciudad más grande y poblada no es necesariamente mejor. Es preferible contar con una ciudad autosuficiente y rentable, con un entorno agradable, antes que con una metrópolis enorme que esté siempre en bancarrota y carezca de bosques o costa.
  • Inicia el desarrollo para la Felicidad del Pueblo. Utiliza los diversos mapas y gráficos para planificar el crecimiento urbano en perfecto equilibrio, detectando problemas y realizando un seguimiento del progreso. Identifica sobre la marcha las áreas que requieren cobertura policial y de bomberos; así evitarás tener que demoler zonas ya desarrolladas más adelante para hacer espacio a comisarías o estaciones de bomberos.
  • Guarda tu partida antes de implementar cualquier medida importante; de ​​este modo, podrás revertir los cambios si el plan no funciona como esperabas.
  • Imprime tu ciudad en sus distintas etapas de evolución para realizar un seguimiento y planificar el crecimiento.
  • Consulta a menudo la ventana de evaluación. Los Sims te indicarán cómo va todo. Las estadísticas también pueden ser útiles: si tu población está disminuyendo, no designes nuevas zonas que quizás nunca lleguen a desarrollarse.
  • Busca problemas en las zonas ya existentes y dedica tu tiempo y dinero a resolverlos.
  • No olvides grabar la partida en el disco con frecuencia, con File / Save. 

Un plan minucioso, meditado, lógico, racional, como este que ha formulado nuestro Presidente, no puede por menos que ser considerado con gratitud por los buenos argentinos.

sábado, 10 de octubre de 2026

¿Cómo instalo el Editor de Thomson Davis en Ubuntu?

Durante la presentación de su Modelo Argentino, Juan Perón concibe las necesidades del mismo, toda vez que explica cómo compilar e instalar el editor portable TDE en Ubuntu. 

¡Trabajadores!

Nuestra Argentina necesita un Proyecto Nacional perteneciente al País en su totalidad. Estoy persuadido de que si nos pusiéramos todos a realizar este trabajo, y si entonces comparáramos nuestros pensamientos, obtendríamos un gran espacio de coincidencia nacional.

El Modelo Argentino precisa la naturaleza de la democracia a la cual aspiramos, concibiendo a nuestra Argentina como una democracia plena de justicia social, y en consecuencia, concibe al Gobierno como la forma republicana representativa federal y social. Social por su forma de ser, por sus objetivos, y por estilo de funcionamiento.

Definida así la naturaleza de la democracia a la cual se aspira, hay un solo camino para alcanzarla: gobernar con planificación. 

Esta planificación debe obedecer a un orden y una organización emanada de planes bien redactados. Para su redacción podremos recurrir a herramientas que todos puedan ejecutar, tanto el que usa Linux como el que usa Window$, sin distinción.

TDE http://adoxa.altervista.org/tde/ es un editor de ficheros de texto y binarios simple, de dominio público, escrito por Frank Davis y Jason Hood y para IBM PC y sus clones, y es compatible con GNU con Linux. TDE resulta adecuado para editar ficheros por lotes, binarios, documentos de texto simple, y código fuente de varios lenguajes de programación (con resaltado de sintaxis). El único límite que a resultas de su ejecución se presentan es la cantidad y tamaño de los ficheros que puede gestionar TDE, aunque estos varían de acuerdo a la memoria del sistema.

Su código fuente es lo suficientemente limpio como para permitir - incluso a quien poco sabe de las minucias del código fuente - compilarlo y correrlo con éxito tanto en GNU con Linux, DOS o Window$.

Específicamente, para hacer dicho menester en nuestro sistema GNU con Linux habremos de emparchar el código fuente propuesto originalmente para 32 bits. Para ello abrimos una terminal de sistema con Ctrl+Alt+t e ingresamos el siguiente bloque de Comandos de Organización: 

cd /tmp ;
wget -O tde51vs.tar.gz http://adoxa.altervista.org/tde/dl.php?f=targz ;
tar xvzf tde51vs.tar.gz ;
cd /tmp/tde-5.1v/ ;
wget http://adoxa.altervista.org/tde/linux64.patch ;
patch -p1 < linux64.patch ;
make

Esto se encargará de inicializar la compilación. Al finalizarla llegará al momento de emparchar, por lo que cuando el sistema nos pregunte al respecto, debemos responder inicialmente que no y luego que sí, de la siguiente manera:

Reversed (or previously applied) patch detected!  Assume -R? [n] n
Apply anyway? [n] y 

...ante lo cual compilará el resto del código fuente.


Una vez que nos devuelva al prompt, ingresamos:

mkdir /tmp/tde-5.1v/man ;
mkdir /tmp/tde-5.1v/man/man.1/ ;
cd /tmp/tde-5.1v/man/ ;
wget -O tdeman.zip http://adoxa.altervista.org/tde/tdeman.zip ;
unzip tdeman.zip
cp tde.txt tde.1 ;
gzip tde.1 ;
mv tde.1.gz man.1/ ;
cd /tmp/tde-5.1v/ ;

sudo make install

Y ahora podremos ejecutar el editor ingresando en la terminal:

tde

Thomson Davis Editor opera en "modo consola"; es decir, que funcione directamente en la terminal en lugar de ejecutarse como una aplicación externa con interfaz gráfica (GUI). 

En este sentido, TED oficia como editor de pantalla, con ciertas similitudes al estilo Borland. Lo primero que hará será solicitar el nombre del fichero de trabajo (si es que no hemos ingresado alguno). Una vez indicado esto, nos encontraremos con un buffer de edición, que ocupa un lugar central de pantalla (delimitado por marcadores no imprimibles de inicio y fin de fichero). También contaremos con una barra de status inferior, y una barra de menús superior con opciones desplegables tipo pulldown (esta se activa con Ctrl+\).

Normalmente, en la medida que redactemos, TDE nos resaltará la línea activa con un color distintivo. 

A la vez que aquellas líneas modificadas normalmente las nomenclará de color amarillo a la Borland, hasta que guardemos los cambios, lo que puede ser de utilidad cardinal.


Asimismo, podremos dividir ventanas (tanto horizontal como verticalmente), lo que puede resultarnos útil para tareas de comparación o simplemente de edición de distintos ficheros.

En TDE es posible reasignar todo el teclado; así, si optamos por  cambiar la función de una tecla de control o de una combinación de teclas, podremos lograrlo  editando un archivo de configuración estándar. No es necesario complicarse la vida modificando el código fuente; basta con ajustar el archivo de configuración de TDE: en sistemas GNU con Linux normalmente se encuentran en $HOME/.tdecfg y $HOME/.tdehlp).

Al mecanografiar es fundamental desarrollar una "memoria dactilar" para las acciones de edición habituales (eliminar, mover, copiar, buscar, etc.), de la misma manera que un músico desarrolla la memoria de sus dedos al tocar un instrumento. Entre los editores de texto, existen algunas configuraciones de teclado clásicas - siendo vi y Emacs los dos mejores ejemplos - que permiten convertirse en un usuario avanzado mediante la memorización profunda y el uso constante de estas combinaciones de teclas. El objetivo es no tener que pensar qué teclas pulsar para desplazarse tres oraciones hacia arriba; la acción surge de forma automática, instantánea y natural.

TDE incluye su propia configuración de teclado, pero existe la posibilidad opcional de agregar otra que la deja similar a la conocida distribución de teclas de WordStar. Para adoptarla, ingresamos:

wget -O ~/.tdecfg https://www.pement.org/tde/tde_cfg.txt 


TDE ofrece también la posibilidad de automatizar determinados comandos que luego pueden asignarse a una tecla personalizada. Entre otras opciones interesantes encontramos la función de "modo de dibujo", usando caracteres de dibujo de líneas de IBM.

Algunos de sus atajos son:

Ctrl+j    Ayuda
Ctrl+\ (Ctrl+altgr+' en el teclado castellano): 
Alt+F4    Abrir
Mayús+Ctrl+F4    Nuevo fichero.
Mayús+Alt+F4
F2    Guardar
Mayús+F2    Guardar como...
F3    Cerrar fichero
F4    Guardar y salir
F8    Dividir la pantalla verticalmente
F9    Dividir la pantalla Horizontalmente
F10    Siguiente ventana
Mayús+F10    Ventana anterior
Alt+F2    Atributos del fichero
Cltr+-

Alt+r    Regla
Cltr+l    Demarcado de sintaxis
Mayús+Alt+n    Números de línea
Mayús+Alg+g    Caracteres gráficos
Mayús+Ctrl+b    Formatear párrafo

Moverse

Ctrl+Inicio    Inicio del fichero
Ctrl+Fin    Final del fichero
Ctrl+RePág    Primera linea en pantalla
Ctrl+AvPág    Última línea en pantalla
Alt+RePág    Ventana a la derecha
Alt+AvPág    Ventana a la derecha 


Formato

Alt+F8    Justificado Izquierda
Alt+F9    Justificado derecha
Alt+F10    Justificado centrado
Alt+i    Indentado
Alt+v    Wordwrap
Alt+j    Unir línea

miércoles, 29 de julio de 2026

¿Cómo instalo RapidRAW en Ubuntu?

Concentrado en lograr la independencia económica, Juan Perón expone sobre cómo instalar RapidRAW en Ubuntu para editar fotografías con elementos de Inteligencia Artificial local.  

(...) 

¡Trabajadores! 

Los grandes países no llegan a la independencia económica consumiendo el 20 % de su producción y exportando el 80. Llegan con lo inverso, es decir, consumiendo el 90 y exportando el 10% de la misma. Ese es el índice de Estados Unidos, de Inglaterra y de los grandes países que han alcanzado un alto grado de prosperidad económica. Para los argentinos debe hacérsenos carne que lo mismo vale un peso que nos paga un santiagueño que el que nos paga un londinense, un francés, un italiano o cualquier habitante de otra parte del mundo, con una ventaja: que no estamos subordinados a la economía extranjera, porque cuando exportamos en la proporción en que lo hemos estado haciendo nosotros para vivir - arriba del 60% de nuestra producción - somos una colonia, aunque no lo queramos, porque ese cordón umbilical de la exportación y de la colocación de nuestra riqueza nos comunica las variaciones de la otra economía. Y cuando nuestros compradores estornudan, nosotros sentimos la conmoción. No puede haber independencia económica sin asegurar un ciclo interno que satisfaga las necesidades y la vida de la propia economía en la producción, industrialización y comercialización.

Los problemas de divisas agitados políticamente son totalmente ficticios. Dicen que el peso vale poco, pero a mí qué me importa que valga poco el peso con relación al dólar o a la libra esterlina, si acá yo no compro ni vendo nada en el orden internacional en pesos. Todo lo vendo y lo compro en dólares y en libras esterlinas.

El peso es para el orden interno, porque no tiene cotización en el orden internacional. Y yo pregunto: sacando el dólar, la esterlina, el franco suizo y la corona sueca, ¿qué moneda tiene cotización en el orden internacional? ¿Quién compra y vende en otra moneda en el mercado internacional? El peso sirve al mercado interno. Para comprar en el mercado internacional tampoco empleamos nosotros ni libras ni dólares; empleamos trigo y carne, que es una moneda que no se desvaloriza en todos los tiempos.

Lo que la gente no entiende, o no quiere entender, es que en el actual estado económico caótico del mundo, todos los valores antiguos y el fetichismo del oro y de las monedas han desaparecido totalmente. Hoy se cotizan valores en productos y trabajo, no en monedas, porque la solución del mundo ha de venir con la alimentación y no con el oro.

Por nuestra parte, podemos afirmar que trabajaremos conjuntamente con el agro argentino para que no retornen los monopolios, que son los que han asfixiado durante casi un siglo a la economía argentina. Ello lo podremos conseguir de una sola manera: trabajando en cooperación, en entendimiento y en absoluta unión los agricultores argentinos, por intermedio de sus representantes cooperativistas, y el gobierno. El gobierno necesita tener el campo organizado social y económicamente, que es lo único que interesa para que podamos recibir del campo la sensación de sus necesidades y de sus aspiraciones, y para que podamos poner en marcha las medidas de gobierno destinadas a satisfacer esas necesidades y a colmar esas ambiciones.

Es necesario reaccionar contra el estado inorgánico de la producción argentina. Para el aumento de la producción, deberemos trabajar, codo a codo, los organismos del gobierno y los productores agrarios. Ello es necesario para alcanzar un cierto grado de cientificismo en la producción, para lograr también un estudio de las tierras, para obtener la selección de semillas para el riego y para cincuenta mil circunstancias a las cuales habrá que recurrir para conseguir el máximo de rendimiento con el mínimo de fatiga y de sacrificio. Esa es la forma de aumentar la producción.

No se trata de tomar ahora todos los campos y comenzar a sembrarlos, porque con eso, quizás, vamos a disminuir la producción. Se trata de asegurar, de estudiar, de organizar científicamente la producción y, con ello, sin gran esfuerzo, vamos a obtener el aumento paulatino y seguro de la misma.

Yo soy, como he dicho, partidario de la industrialización regional cooperativa, y el gobierno ha de ayudarla en todo lo que sea necesario. No habrá esfuerzo que no realicemos, tanto en el sentido de los transportes, como de los transbordos, transportes de ultramar, seguros, reaseguros, créditos, etcétera. Repito que no habrá esfuerzos que no realicemos para posibilitarles a ustedes esa aspiración tan justa: que sean ustedes mismos quienes industrialicen gran parte de sus propios productos.

Esto que he llamado cientificismo, es un método que debe aplicarse como meta en la mayoría de las cosas que podemos emprender. La programación es una de ellas. ¿En qué consiste y qué es cada una de las partes del método de la programación? Primeramente especificar la situación, segundo, la apreciación de esa situación; y tercero, la resolución que surge de esa apreciación de la situación que hemos contemplado. Vale decir, que de la situación y de la apreciación (o sea del fenómeno y del análisis) fluye el código fuente.

Podremos esquematizar todo tipo de producción bajo las mismas premisas. No podemos someternos al alquiler de Inteligencia Artificial en centros de cómputo del extranjero, si podemos llevarlas a cabo en nuestras propias CPUs. Nos quieren hacer creer que esto enfrentaría la practicidad que nos permite recurrir a máquinas foráneas, pero podremos lograr Soberanía Económica empleando software liberado bajo licencias libres en nuestros propios equipos, y sistemas GNU.

¿Cómo podremos visualizar ello? Tomando un ejemplo que nos satisfaga. Normalmente suelo recomendar LightZone o bien el Darktable para menesteres de edición de fotografías en formato RAW. Sin embargo, la inclusión de IA de las nuevas versiones puede ser positiva para facilitar aquellas tareas, siempre y cuando se hagan localmente en nuestro sistemas, u en otros remotos que sean procedentes para los hackers.

La estructura de RapidRAW responde a tales premisas. Se trata de un software de edición de fotografías en RAW, que en principio se inspira en clásicos como el Adob€ Lightroom, pero más del Hass€lblad Phocus, del cual se ejemplifica como un claro sucedáneo. Sin embargo, se demuestra superador a todos ellos gracias a su licencia GNU GPLv3 Affero, la cual libera el código en local y del servidor para tornar el dúo en Mazo y Yunque para la Liberación de los Pueblos del Tercer Mundo.

Podremos hacerlo abriendo una terminal con Ctrl+Alt+t e ingresando el comando necesario para nuestro sistema.

Si usamos Ubuntu 22.04LTS Jammy Jellyfish ingresamos: 

cd /tmp ;
wget https://github.com/CyberTimon/RapidRAW/releases/download/v1.5.7/03_RapidRAW_v1.5.7_ubuntu-22.04_amd64.deb ;
sudo dpkg -i 03_RapidRAW_v1.5.7_ubuntu-22.04_amd64.deb

...en cambio, si usamos Ubuntu 24.04LTS Noble Numbat ingresamos:

wget https://github.com/CyberTimon/RapidRAW/releases/download/v1.5.7/03_RapidRAW_v1.5.7_ubuntu-24.04_amd64.deb ;
sudo dpkg -i 03_RapidRAW_v1.5.7_ubuntu-24.04_amd64.deb 

Conforme se haya instalado, podremos ejecutarlo desde Aplicaciones / Gráficos / RapidRAW, con lo que nos encontraremos con la ventana de inicio de RapidRAW en idioma inglés.


Afortunadamente es sencillo cambiarlo al español. Tan sólo basta con tocar el engranaje, y elegir Español en el campo de idioma (hay 20 idiomas más). También podremos cambiar el tema de la interfaz gráfica (que por defecto es oscuro), así como varios aspectos generales más.

En el apartado Procesamiento de las Opciones de RapidRAW es importante podremos escoger si deseamos utilizar un motor de IA generativa, y el tipo del mismo. De establecer la opción en "CPU" - como viene por defecto - se recurrirá a un motor local que correrá en nuestra propia máquina. Dicho "jardín vallado" se presenta adecuado para responder al etiquetado automático de protagonistas por reconocimiento facial, el enmascaramientos del sujeto y síntesis de imágenes generativas simples. En tanto, el empleo de AI Connector gratuito permitirá establecer contacto con una instancia externa de IA que podría sernos útiles para mayor potencia.

El flujo de trabajo es similar a Phocus o Lightroom, con una sección Biblioteca donde podremos importar directorios de trabajo o bien crear álbumes con colecciones de imágenes. La biblioteca nos permite obtener una visión a vuelo de pájaro del contenido editable.

En la ventana de miniaturas podremos escoger una imagen que se abrirá en la pantalla de edición con secciones laterales y un slider inferior con contactos de las imagenes. 

Las herramientas de edición básica se encuentran a la izquierda, y van encabezada por un histograma interactivo con varias presentaciones posibles. 

Como ayuda de control de exposición encontraremos por defecto con una visualización auxiliar basada en un histograma de luminancia esfumado, aunque también podremos recurrir a un histograma RGB esfumado, o un histograma RGB tradicional (incluso con indicadores tonales de recortes para luces altas y sombras). Este último es más amigable con máquinas de escasa potencia y a menudo el que prefiero.

En cuanto a la sección de retoque, presenta sobre el panel derecho los ajustes que se aplican a la imagen en general. Contaremos con función de ajuste "automático" (que a pesar de presentar una aproximada interpretación para emparejar tonos,  en ocasiones puede resultarnos muy aceptable). Luego pasamos a los ajustes manuales de retoque, que se ajustarán según dos modos operativos excluyentes que alteran la colorimétrica: puede ser Básico para un acabado digital, o Agx, que empareja la sensitometría considerando una emulsión de película relativamente tradicional, del estilo Agfa XPS o similar).

Daremos entonces con los parámetros escalares para el postprocesado de la  exposición a las luces. Aquí podremos hacernos cargo de modificar la compensación de EV de toma, y alterar los centros de los ejes cruzados típicos en estos programas: Exposición, Contraste, Altas luces, Sombras, Blancos y Negros. Todo ello nos permite ya un notable control sobre el registro tonal de la imagenes RAW individual (ya sean tomas con gradaciones a 12 o 14 bits), y eventualmente logra un acercamiento aceptable sobre exposiciones en JPG de 8 bits. Recordemos que las tomas realizadas en JPG cuentan con una latitud de exposición que se reduce con suerte a un 15% comparado con las tomas en crudo.

La colorimétrica está mas lograda y responde a cualquier necesidad que le cuadremos. Los ajustes realizados a una de las tomas podrán copiarse cómodamente entre varias imágenes recurriendo a las teclas asociadas tradicionalmente, como Ctrl+c, y Ctrl+v para copiar y pegar los ajustes, a la vez que Ctrl+z y Ctrl+w deshacen y rehacen los ajustes.

El resto de los atajos son configurables, pero encontraremos los básicos del Phocus: la tecla a nos permitirá conmutar entre versión editada y la original, en tanto que la tecla f nos permitirá ir a pantalla completa y la tecla c activar la función de recorte y enderezamiento.


Puesto que RapidRAW cuenta con funcionalidades de enmascaramiento (aplicables a sectores particulares de la imagen), el uso de IA local logra taponar sujetos de manera veloz, lo cual no deja de ser muy útil en ciertos escenarios: nuestra CPU detecta al sujeto, lo enmascara y permite afectarlo según los ejes paramétricos ya mencionados. 

Eventualmente podremos invertir el enmascarado realizado para afectar el segundo plano para su tratamiento particular.
Podremos lograr apantallados paramétricos más complejos simplemente sumando enmascarados a mano de distinto tipo. Tenemos enmascarados radiales (circulares), rectangulares, o lineales, que nos permitirán completar una obra  ciertamente más compleja, producto de la combinación de varios apantallados.

Sin embargo, la cosa no termina allí pues bajo el apartado "Otras..." encontraremos más máscaras: pincel, flujo, luminancia, color y profundidad.

Si deseamos recurrir a IA más potente, podremos conectarnos a Internet y descargar modelos con una complejidad acorde a las tareas de corrección de escala mayor, donde activar dicho motor podría oficiarnos dichas mejoras. Sin embargo, el dilema ético de contar con modelos de IA de ejecución remota debe ser afrontado.

La exportación en masa de los resultados es otro de los aspectos sumamente convenientes de este tipo de aplicaciones, donde los cambios de la edición no destructiva pueden aplicarse a copias de los originales en bruto de manera automatizada según distintos parámetros (incluyendo marcado o remoción de metadatos o marca de agua). 

Los formatos de salida incluyen JPG y PNG, pero también AVIF y WebP, lo que redondea una aplicación excelente para este cometido, y donde comprendemos lo adecuado de su nombre RapidRAW.

jueves, 25 de junio de 2026

¿Cómo emulo el SAIL WAITS en Ubuntu?

Interrogado por el director Pino Solanas en Puerta de Hierro, Juan Perón expone cómo instalar y emular el mítico sistema operativo de tiempo de cómputo compartido WAITS, del Laboratorio de Inteligencia Artificial de Stanford en Ubuntu.

(...) 

¡Trabajadores!

Los movimiento revolucionarios suelen ser gregarios, construidos por un realizador tras el cual cien mil predicadores caminan, que es como lo hemos hecho nosotros. En eso - sin que yo perdiese la conducción - me he preocupado de ir conformando, por simbiosis, una organización  para que en el momento en que yo desaparezca, quienes desean la organización y los grupos que desean ser gregarios, puedan elegir su método de conducción en el momento oportuno.

Si aparece un hombre que pueda reemplazarme a mí, no habrá problema. Si ese hombre no aparece, será necesario reemplazarlo con una organización revolucionaria que permita al Movimiento - a través de organismos - ir conformando y cumpliendo los objetivos que nosotros hemos trazado hace muchos años, más los objetivos que las nuevas circunstancias vayan planteando. Hemos tratado de alcanzarlo y creo que - en este momento - tenemos una organización.

El hombre no vece al tiempo, lo único que puede vencer al tiempo es la organización. Pues bien, un sistema de cómputo responde a las mismas premisas. Por este motivo yo he creado los sistemas operativos de tiempo compartido, que sí pueden vencer al tiempo, merced de la organización de sus tareas de cómputo.

WAITS fue precisamente uno de los sistemas de tiempo de cómputo compartido concebido como extensión del software MONITOR que corría en las minicomputadoras DEC PDP-6, y luego ampliado a lo largo de sucesivas versiones en el rango de máquinas PDP-10 con memoria virtual. Fue concebido orgánicamente en la primer encarnación del Laboratorio de Inteligencia Artificial de Stanford (SAIL) a partir de 1966 tras un cisma producido por John McCarthy, Lester Earnest y Arthur Samuel. Merced de la organización, pudo sobrevivir a estos y la comunidad hacker crearon, funcionando de manera continuada incluso hasta 1991. Fue así que las particularidades de este entorno de cómputo en mainframe dieron apoyo a lo que podríamos llamar "la Era de Oro de la investigación de la Inteligencia Artificial", donde la telemática, la robótica, la síntesis de sonido y voz colocaron a Stanford como frontispicio, y unieron a esta a otras instituciones a través de la red de datos Arpanet.

Podríamos decir que esto coloca a WAITS - retrónimo de Western Artificial Intelligence Time Sharing - en el mismo pedestal que otros míticos sistemas operativos de tiempo de cómputo compartido aplicables a los 36 bits de la PDP-10 de los que ya os he hablado, tales como el ITS, o el TOPS-20 "TWENEX". A diferencia de aquellos y de manera única, el sistema de archivo de SAIL WAITS ha sido preservado al completo como imagen de sistema, y - gracias a los esfuerzos de varios investigadores - es capaz de correr, aún bajo emulación en un sistema del Tercer Mundo, como nuestro moderno GNU.

Os demostraré entonces como obtener la imagen 6.17 del SAIL WAITS (1974) y ejecutarla con SIMH, así como correr un programa de inteligencia artificial de dicha época, escribir un programa corto, y utilizar su consola de operación para presentar gráficas vectoriales del período.

Primero instalamos las dependencias en nuestro sistema GNU con Linux. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos:

sudo apt install cmake unzip libsdl2-dev git

En segundo término, clonamos el repositorio y nos dirigimos a él y lo compilamos mediante el siguiente bloque de comandos de organización:

mkdir ~/.simh/ ;
cd ~/.simh/ ;
git clone https://github.com/timereshared/stanford-waits-simh-quickstart.git ;
mv stanford-waits-simh-quickstart/ waits/ ;
cd ~/.simh/waits/ ;
./build.sh

Esto guion de intérprete de comandos se encargará de preparar el emulador OpenSimH para funcionar como una DEC PDP-10-ka virtualizada, tras lo cual descargará una copia de las imágenes de disco con el sistema operativo WAITS del SAIL, y le aplicará algunos ficheros de sistema faltantes. Todo se indicará como salida en la pantalla del terminal de GNU:

Una vez finalizado la compilación nos lo advertirá indicando algo como:

DART VERSION 5  TAPE TRAILER
Goodbye

simh and WAITS have been set up.. 

Concluido esta puesta en forma, podremos dar arranque al mítico entorno multiusuario de la Costa Oeste en nuestro emulador. Para ello lo ejecutamos con:

cd ~/.simh/waits/ ;
./run.sh 

Aparecerá una ventana con una pantalla de terminal III que funcionará como consola gráfica de framebuffer para la operación del WAITS en la DEC PDP-10. Esta indicará el incentivo a los hackers natural a este tipo de entornos multiusuario ("Tómame, soy toda tuya").

En tanto, en la consola de GNU nos aparecerá la consola de administración del Stanford WAITS.

Como esta es una imagen de un sistema WAITS vivo, ya tiene configuradas varias cuentas de usuarios históricos. Usemos por ejemplo la cuenta REG otrora perteneciende al usuario Ralph Gorin (programador de sistemas en el Laboratorio de Inteligencia Artificial de Stanford durante el período). Podremos loguearnos a ella usando el comando LOGIN, que bien podremos abreviar con L. Para ello, presionamos la tecla de Retorno de Carro - la actual tecla Intro - para que WAITS nos presente su prompt de comandos consistente en un punto ".". Ante él, ingresamos:

L 1, REG

...y presionamos Intro.

Nos será posible apreciar que la ausencia de contraseñas demostraba por entonces  la liberalidad del entorno de programación hacker de mediados de los setentas. Si nos logueamos sin errores, SAIL imprimirá EXIT y ^C, denotando la finalización del proceso de logueo, y presentará el punto del prompt de comandos.

Para permitir el ingreso de mayúsculas y minúsculas en nuestra terminal, ingresamos el comando:

TTY FULL

Ante cualquier eventualidad podremos cerrar la sesión de usuario que estamos empleando con:

logout

En tal caso, nos volvemos a loguear. Si somos peritos en el uso de TOPS-10, veremos que la interfaz de WAITS opera de manera familiar. La mayoría de los comandos de éste operan de hecho, de forma similar. Tipeando DIR obtendremos un listado de directorio, al cualk podremos operar con comodines para expander o limitar la búsqueda. Ante la noción de desear encontrar todos los programas de SAIL (cuya extensión es .sai) podríamos ingresar:

dir *.sai 

De la misma forma, nos será posible contemplar los contenidos de los ficheros recurriendo al comando type. De este modo, para ver el contenido del programa fortune.sai del WAITS, podremos indicar:

type fortun.sai 

Esta operatoria influyó a TOPS-10, éste a CP/M, y este al QDOS, que afectaría de manera similar al MS-DOS y sus interfaces gráficas posteriores, permeando incluso a GNU. Podremos ver el listado de comandos asignado a WAITS simplemente ingresando HELP.
Y no solo eso, también podremos ver qué hacen cada uno de ellos (en una breve descripción en línea, claro), con HELP HELPER. 
Esta imagen histórica de WAITS contiene un sistema operativo WAITS de 1974 con varios comandos disponibles para correr, creados por los investigadores del Laboratorio de Inteligencia Artificial de Stanford. Un ejemplo clásico entre ellos es Parry, un intento del psiquiatra Kenneth Colby para simular el comportamiento de un paciente con paranoia esquizoide. Podremos invocarlo con el comando de ejecución r. Realizará algunas interrogantes para configurar los parámetros de interacción y nos dejará hablarle a Parry. Para salir del mismo debemos presionar Ctrl+c.
El ambiente WAITS tenía como misión primordial la de volverse una incubadora de programación, y a tal fin incorporaba un ensamblador de macros con depurador en vivo, intérpretes de Fortran, y múltiples facilidades que le fueron montando y lo volvieron famoso (LISP, RAID, FAIL, DART, y otros entornos de programación. Usaremos el ambiente de WAITS para crear un programa de Hola Tercer Mundo en Fortran 4. Para eso daremos empleo al editor SOS con el fin de redactar el código fuente, lo guardaremos, y luego lo compilamos y lo ejecutamos.

Para ello ingresamos

create holam.f4

y creamos un nuevo fichero y nos podrá en el editor. Como es un fichero nuevo, el editor SOS nos permitirá ingresarle texto de manera inmediata. Precederá automáticamente toda línea con un número de línea (el cual no es una etiqueta de Fortran, por cierto). De modo que la pantalla adquirirá esta apariencia:

.create holam.f4
00100

Le introducimos el siguiente programa (donde vemos el signo ⭾ debemos presionar la tecla Tab).

⭾	DO 1 J=1,5
1 ⭾	WRITE(5, 2)
2 ⭾	FORMAT(' HOLA TERCER MUNDO!')
⭾	END

Presionando la tecla Esc sandrá del modo de entrada de texto indicándolo con un "$", y nos pasará al modo Alt (de comandos), presentándonos el prompt de comandos "*". En él, presionamos g para activar el Generador Rápido de Programas de WAITS, encargado de guardar el fichero e invocar la correcta secuencia de comandos que compilarán y ejecutarán el programa. La pantalla debería parecer algo así:

.create holam.f4

00100           DO 1 J=1,5
00200   1       WRITE(5, 2)
00300   2       FORMAT(' HOLA TERCER MUNDO!')
00400           END
00500   $
*g


FORTRAN:  HOLAM.F4
LOADING

LOADER 5K CORE
EXECUTION

HOLA TERCER MUNDO!
HOLA TERCER MUNDO!
HOLA TERCER MUNDO!
HOLA TERCER MUNDO!
HOLA TERCER MUNDO!
EXIT
^C
.

El programa aún permanecerá en la memoria de núcleo, por lo que si queremos conservar una copia permanente en el tambor (disco) debemos recurrir al comando save que allí la depositará (en este caso, de manera emulada en nuestro disco duro).

.save HOLAM
JOB SAVED IN 4K

^C

Si deseamos usar el comando dir, ahora podremos ver los ficheros creados por el proceso de compilación de WAITS:

.dir HOLAM.*

26-JUL-74  1122
FILNAM  EXT   SIZE LAST WRITTEN

   [1,REG]
HOLAM   F4      19  26-JUL-74
HOLAM   DMP    3.5  26-JUL-74
HOLAM   REL     57  26-JUL-74
        TOTAL=   3.6

EXIT
^C

El fichero .rel es el código objeto y el fichero .dmp es el ejecutable, que puede correrse nuevamente ingresando:

run HOLAM

(en WAITS debemos recurrir RUN en lugar de R, puesto que R se utiliza para dar ejecución a los programas incorporados con el sistema operativo).

Usando la terminal de operación

Hasta ahora, hemos hecho uso de la consola de gestión, pero probablemente hayamos notado la terminal de vectores que ha aparecido al iniciar SIMH, con el prompt de bienvenida: 

/images/waits/waits-iii-prompt.png  

Ahora nos loguearemos nuevamente como REG en la terminal vectorial de operación, de la misma manera que en el caso anterior. El WAITS permitía para esta varias tipografías vectoriales escalables.

Veremos que en lugar de cursor actual, en la pantalla vectorial el WAITS indica la posición del caracter recurriendo a un índice visual de estilo teletipo (formado por un triángulo pequeño que se desplaza lateralmente).  

Todos los programas de línea de comandos y de inicio de sesión que hemos utilizado hasta el momento funcionarán también en esta terminal. Pero esta es una terminal de vectores que puede dibujar texto y gráficos junto con un teclado, que puede ingresar más caracteres que los típicos de los teletipos.

Esta vez nos loguearemos con BGB, el archivista principal del sitio saildart.org. Ingresamos:

L 1, BGB 

y luego intentaremos algunos comandos.


Notaremos que al presionar Delete, borraremos propiamente el último caracter en lugar de reimprimirlo como lo hacían las teletipos; de hecho, existe un editor de líneas de comando extensible que observaremos más adelante. Aún así, el sistema emulado no maneja los buffers de forma prístina como lo hace UNIX, y resulta mejor mecanografiar lentamente.

El terminal de video puede hacer más que ofrecer una mera interacción con el monitor de líneas de comando. Presionando F2,w  aparecerá un presentador dinámico del uso de sistema en la parte superior de la pantalla, la que se conoce como línea WHO. Si presionamos F3,w la apagamos. También podremos invocar WHO para ofrecernos un conjunto más extenso de información del sistema (debemos presionar cualquier tecla para salir).


A continuación, ingresaremos:

copy mon ← moncom.sh[s,doc]

(La flecha ← podremos obtenerla presionando la tecla Flecha Izquierda de Cursor, y luego mecanografiar tv mon.

Esto abrirá el editor TV en una copia del manual del comando monitor. Presionando Ctrl+p avanzaremos página a página y con Ctrl+- y luego Ctrl+p retrocedemos. Presionamos Ctrl+Alt+e para volver al Prompt de WAITS.

/images/waits/waits-tv-editor.png

También tendremos varias demos gráficas de WAITS, incluyendo la del brazo robot de McCarthy. Podremos probar ejecutarlas con el comando r, por ejemplo, r dazzle. Probemos estas:

  • armdpy
  • dazzle
  • hypno
  • petal
  • repent

Cuando termine de ver cada una de las demos, presione F1,F1 y luego escriba core 0 y presione la tecla Intro a fin de borrar el buffer de video.

El WAITS no era ajeno a algunos juegos para divertir a los desarrolladores del Laboratorio de Inteligencia Artificial. Que mejor que una partida para dos jugadores en la red de datos ARPANET. Para ello podremos recurrir al Go con el comando r IIIGO o bien al Monopolio IA, con el comando r monply.


Detener WAITS 

No existe un procedimiento para desconectar el sistema operativo, que quedó encendido ininterrumpidamente desde 1966 hasta 1991. Para desloguearnos de cualquier terminal, podremos ingresar k, abreviación de kjob, o tal vez podramos obtener un deslogueado más personalizado ingresando:

k/me 

Esto presentará en el terminal de operación el indicador de asesinato de procesos del usuario.

Para hacerlo desde nuestra consola de control, podemos presionar Ctrl+e para interrumpir la emulación, y cuando aparezca el prompt del emulador SIM>, presionar la letra q para salir de él (lo que nos devolverá a nuestro intérprete de comandos de GNU).

Para mayor información, podremos recurrir a la documentación corta del Monitor de Comandos del Laboratorio de Inteligencia Artificial de Stanford (SAIL).

De esta manera ¡habremos logrado Vencer al Tiempo, convirtiéndonos en uno de los Amos del Mainframe, reviviendo el mítico Stanford WAITS, cenáculo de la Inteligencia Artificial!