Ubuntu Peronista@TTBP

Este es un espejo en el Tilde Blog Project del blog original Ubuntu Peronista. Se encuentra disponible en Tildeverso únicamente con fin histórico.



30 january 2023

¿Cómo instalo el reproductor de MODs SchismTracker en Ubuntu?

Reunido en el Teatro Colón ante representantes de las centrales obreras latinoamericanas, Juan Perón expone las necesidades de la unión regional y explica cómo instalar SchismTracker en Ubuntu.

¡Trabajadores!

Una Latinoamérica desperdigada, como somos, no se podrá defender. Nos van a quitar las cosas por módem. Entonces, ¿cuál es el problema? Unámonos, organicémonos y preparémonos para defendernos. En un mundo cuya evolución actual lo lleva a la desaparición de todas las divisiones, considero que eso es algo fundamental. ¿No está integrada Europa? ¿No está integrada Sudáfrica? Asia también está integrada. Nosotros somos el último orejón del tarro.

Las organizaciones sindicales deben ser la base esencial para lograr la Unidad Latinoamericana. En este sentido, pienso que las organizaciones obreras de todos los países latinoamericanos deberían proceder como ustedes, es decir, deberán establecer conexiones a efectos de alcanzar esa unidad. Si los trabajadores de América Latina se unen, alcanzarán realmente su destino. Si no lo hacen, las oligarquías, los poderes extraños, las burguesías mismas, se alzarán con el santo y la limosna en poco tiempo. Una masa latinoamericana organizada en sindicatos, unida y solidaria, es un freno para todas esas ambiciones desmedidas de los hombres.

No es difícil cuando ya tenemos una herramienta de unidad: el GNU con Linux.

Este sistema operativo cuenta multitarea y multiusuario dispone - por sobre todas las coass- con aplicaciones nativas con el que podrán hacer todo tipo de tareas. Y no sólo eso: cuenta con sucedáneos nativos de aplicaciones foráneas, que pueden obrar como sustitución de importaciones.

Las organizaciones de trabajadores requieren hacer muchas tareas, todas ellas importantes, pues el objetivo inicial de las mismas es satisfacer las necesidades de los trabajadores. En esto nada puede soslayarse, incluyendo acciones que - por nimias que parezcan - acercan el objetivo ideal de la unidad en pos del triunfo.

Una de ellas es la de reproducir y editar módulos de pistas: aquellos antiguos ficheros que permitían musicalizar en la compañera Commodore Amiga. Estos Módulos - o MODs - constituyen una familia de archivos secuenciadores basados en muestras de sonido digital (módulos de los formatos ST3, STM de ScreamTracker, IT de Impulse Tracker, MOD de Amiga, XM, XM3, y toda la banda) todos los cuales hermanan en pistas ("tracks"). Ya he enseñado cómo instalar MilkyTracker y SunVox para reproducirlos.

SchismTracker constituye otra opción en el mismo tenor, que nos permite otra alternativa notable para alcanzar el mismo objetivo de Unidad, de la misma forma que podemos votar Perón-Perón por el Fre.Ju.Li. o por el F.I.P.

SchismTracker puede ser considerado como una reimplementación liberada bajo GPLv2 derivada del recordado Impulse Tracker, probablemente el último de los trackers escritos para máquinas tipo 386 que corrían en el sistema privativo M$-DO$. Si bien este Impulse Tracker se quedó en el 45 y sólo funciona en esta puesta obsoletas, el remozado SchismTracker correrá en equipamiento de vanguardia, tanto en GNU con Linux como en FreeBSD, OpenBSD, AmigaOS, BeOS y otras plataformas privativas cualquiera. Pues bien señores, instalarlo en cualquier sistema GNU con Linux es más que simple. Unicamente hemos de descargar el ejecutable y descomprimirlo. Esto se puede hacer abriendo una terminal con Ctrl+Alt+T e ingreasndo el siguiente bloque de Comandos de Organización:

cd ~/Descargas/ ; wget https://github.com/schismtracker/schismtracker/releases/download/20221201/schismtracker-20221201-linux.zip ; unzip -d ~/.schism/ ~/Descargas/schismtracker-20221201-linux.zip ; echo '#!/bin/sh' > ~/.schism/startup-hook ; echo '##Descomentar si tiene problemas con teclado español' >> ~/.schism/startup-hook ; echo '#setxkbmap us' >> ~/.schism/startup-hook ; echo '#!/bin/sh' > ~/.schism/exit-hook ; echo '##Descomentar si tiene problemas con teclado español' >> ~/.schism/exit-hook ; echo '#setxkbmap es' >> ~/.schism/exit-hook ; chmod +x ~/.schism/*-hook

En Ubuntu suele facilitar mucho las cosas crear un Lanzador. Para ello hacemos clic con el botón derecho en el panel superior de aplicaciones, escogemos Editar Menús... y tras seleccionar el menú Sonido y Video, presionamos el botón +Nuevo ítem. En la ventana Propiedades del Lanzador Indicamos el el campo Orden la ruta del lanzador /home/usuario/.schism/schismtracker, a la vez que le ponemos Nombre y un Comentario e ícono opcional.

Una vez confirmado la creación del Lanzador con el botón Aplicar, podremos lanzar el programa desde Aplicaciones / Sonido y Video / SchismTracker.

Al correr el programa se nos presentará un splash screen de apariencia tradicional, donde debemos presionar el botón Continuar.

Luego nos encontraremos con la interfaz del SchismTracker. En sí, esta rememora la del Impulse Tracker, a su vez un "homenaje" al Scream Tracker 3.

SchismTracker se eleva glorioso utilizando los mismos comandos del Impulse Tracker del que no puede ni desea.

Naturalmente tras cargar uno con F9, podremos reproducir nuestros módulos tracker mediante F5. Podremos encontrar una buena colección de ficheros tracker en modarchive.org.

Especialmente recordados son sus atajos con teclas de función a las diferentes Secciones del Tracker (operan como "paginas").

F2 - Editor de Patrones
F3 - Lista de Muestra
F4 - Lista de Instrumentos
F5 - Reproducir Canción completa
F6 - Reproducir patrón (únicamente el patrón editado)
F7 - Reproducir desde Línea (desde la linea seleccionada)
F8 - Detener reproducción
F9 - Cargar módulo
F10 - Guardar módulo
F11 - Lista de Patrones y balance.
F12 - Configuraciones varias

Esta presentación del programa despliega los tracks, con información relativa al paneo, y la lista de eventos musicales. En todas las secciones podremos presionar F1 para obtener una ayuda de las opciones disponibles para tal momento.

La composición de secuencias para conformar un módulo es un arte que requiere ya un conocimiento más elevado que hace a la teoría musical. Pero si somos proficientes, podremos cargar muestras (o "samples") instrumentales en la lista con Ctrl+F3.

Luego podremos secuenciar el ametrallado de eventos en el editor de patrones, o - como hace cualquier cristiano - utilizando las teclas del teclado a modo de piano. En este sentido, desde la Q hasta la P y desde la Z hasta la M oficiarán de teclas blancas, mientras que desde el número 1 hasta el 0 y desde la A hasta la L serán las teclas negras. A su vez las flechas del cursor permiten subir o bajar la octava. Parece mentira todo lo que se puede hacer con tan poco, y un músico habilidoso puede sacar así la Marcha Peronista en 10 segundos.

Aunque para dominar Schimtracker cobra especial relevancia el acervo del antiguo y venerable ImpulseTracker, lo cierto es que podrán aprender a utilizarlo siguiendo el excelente Tutorial del compañero ~hora_z. De esta forma contaremos con la posibilidad de desplegar una labor creativa de alta calidad que requiere el Justicialismo para la demoscene.

Es indudable que el código de SchismTracker permitirá la unión de toda Latinoamérica bajo la musical bandera de la Justicia Social.



29 january 2023

¿Cómo juego al pong en red en Ubuntu?

En su La Hora de los Pueblos, Juan Perón expone sobre la política argentina y explica cómo utilizar el juego en red pong2 para evaluar las redes LAN en Ubuntu.

(...)

El problema político argentino, como el de cada uno de los países de nuestro continente, ha dejado de ser intrínseco porque nada de lo que hoy se desarrolla en el mundo se produce en compartimientos estancos. La vida de relación ha aumentado en razón directa al perfeccionamiento de los medios técnicos de las comunicaciones y de los transportes: lo que sucede hoy en el Polo Norte se sabe diez minutos después en el Polo Sud; hoy se almuerza en un hemisferio y se cena en otro sin que a nadie le cause la menor extrañeza. Es como si la Tierra se hubiera empequeñecido.

Este empequeñecimiento inverosímil del planeta ha traído en lo político consecuencias también inverosímiles: a nadie le extraña hoy que los Estados Unidos o Rusia estén empeñados en la solución de un problema interno de Laos o del Vietnam, países que están a más de veinte mil kilómetros de Washington o de Moscú. La política puramente interna ha pasado a ser una cosa casi de provincias; hoy todo es política internacional, que juega dentro o fuera de los países, influenciando la vida de las naciones y de los pueblos en forma decisiva.

Es claro que tal estado de cosas, producto de la lucha entre los grandes imperialismos existentes, ha traído la necesidad de crear los instrumentos necesarios para su manejo. Así han surgido las "grandes internacionales" que actúan abierta o disimuladamente en todas partes. Estas internacionales - en pugna sólo aparente - se unen cuando aparece un "tercero en discordia" como sucedió en la Segunda Guerra Mundial en la que todas las internacionales se aliaron para aniquilar la Alemania de Hitler y la Italia de Mussolini, para terminar finalmente en Yalta repartiéndose el dominio del mundo como un modo viviente de asegurar un poco de paz ya indispensable.

Otros ejemplos, muy aleccionadores, podríamos citar los argentinos en el orden de la política interna, de los cuales hemos recibido una muy amplia experiencia. Estas formas de la acción política ya no son un secreto para nadie. Por eso, los pueblos han comenzado a sentir necesidad de escapar a la férula de las internacionales que, en último análisis, son las grandes centrales de dominación y explotación de los pueblos y de los hombres, ya sea en provecho de otros hombres o del Estado porque, para la explotación, la ideología no cuenta.

Debemos obrar en el mismo predicamento en las redes de datos internacionales. Podremos así evitar la férula de estas empresas sin Patria ni bandera que explotan al hombre a través de sus máquinas. Nuestros pueblos necesitan de la organización local para subsistir. Y ello puede hacerse a través del empleo de redes de área local (LAN).

¿Qué sucede cuando debemos evaluar la calidad de tales conexiones locales? Naturalmente podremos usar herramental de red de nuestro sistema GNU con Linux para comprobar el estado de los enlaces telemáticos. Sin embargo, nada impide utilizar algún juego en red para comprobar el funcionamiento de nuestra red LAN.

Vean señores, en Puerta de Hierro he instalado una red de fibra óptica de alcance hogareño, lo cual me habilita probarla en su medida y armoniosamente. Qué mejor entonces que instalar un sucedáneo ultramoderno y compañero del Pong, el primer videojuego comercial.

En este caso podremos instalar Pong2, iteración tridimensional del pong aparecida en el Commodore Amiga, que si bien no aporta novedades al por entonces remanido título, cuenta hoy con la particularidad de operar en un entorno de red local (y eventualmente redirigirlo a las redes de área amplia).

Para instalarlo en Ubuntu, simplemente abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente Comando de Organización:

sudo apt install pong2

Tras descargarlo, podremos lanzarlo con Aplicaciones / Juegos / Pong2.

El juego ofrece una ventana que presenta un campo de juego en forma de cubo tridimensional con transparencias.

El funcionamiento de esta puesta no ofrece muchas dudas. El primer jugador en iniciar un juego en la LAN oficiará de servidor y quedará a la escucha de una conexión (normalmente al puerto 6642), presentando el cartel "Waiting for Opponent" ("esperando al oponente").

El segundo jugador en la red LAN oficiará de cliente, "llamando" a la máquina del servidor (ya sea por su IP o su nombre de host). Por ejemplo, suponiendo que la jugadora evita desea llamar al server de pong pj.local localizado en la IP 192.168.0.101, podría lograr su conexión con:

pong2 -c 192.168.0.101 -p 6642 -n evita

...o bien:

pong2 -c pj.local -p 6642 -n evita

Los jugadores deben utilizar el mouse para mover una raqueta de forma cuadrangular en su sector del campo de juego. Para lanzar la pelota, se utiliza el botón izquierdo del mouse, tras lo cual hábilmente debemos interceptarla y rebotarla.

Podremos pausar con Esc o Barra Espaciadora.

Asimismo, podremos regular la distancia al campo de juego con haciendo clic con botón derecho y botón izquierdo del mouse, mientras arrastramos hacia adelante o hacia atrás.

La función de pantalla completa se conmuta con la tecla f.

Para salir del juego, podremos utilizar la tecla q.

Cuando contemplamos ante esta perspectiva tridimensinal, el problema argentino a la luz de estos hechos, todo parece verse con mayor claridad: un Pueblo que lucha por su liberación contra las fuerzas reaccionarias interiores apoyadas por los imperialismos foráneos.

Sólo utilizando organizaciones con todos los recursos telemáticos podremos lograr la auténtica liberación del Pueblo antes de que Window$ 2000 nos encuentre Dominados.



28 january 2023

¿Cómo uso el intérprete tcsh en Ubuntu?

En reportaje cedido a la revista Panorama desde la legendaria casona de Puerta de Hierro, Juan Perón expone cómo instalar el intérprete tcsh en Ubuntu.

¡Señores!

Nuestro Movimiento tiene la voluntad de Pacificar la Argentina. Esto lo hemos dicho siempre, y aquí personalmente se lo he dicho a todos quienes vienen a verme, que no han sido pocos. Hemos sido prudentes, y si la imposición de la voluntad popular no se ha producido antes, ha sido sólo por la mala intención de los contumaces quienes - sin el apoyo del Pueblo Argentino - se han sentado en el sillón de Rivadavia solo para hacer desaguisados.

En más de una ocasión esto podría haberse solucionado simplemente por arbitrio de la carta magna por la cual todos debemos regirnos, pero durante dieciocho años estos caballeros sólo se han ido a acostar temiendo "lo que podría pasar con Perón en la Argentina". Pues bien, resulta ahora que el toldo se les ha picado, y para parar el agua vienen a pedirle el cuero a este viejo. [guiña el ojo].

Nosotros de esto tenemos una pila alta como aquél fresno. Lo que nos cuidamos siempre es de la intención, no nos vayan a meter la mula.

Desde la época de los primeros autómatas, los sabios de oriente intentaron descubrir - sin encontrar solución tecnológica - alguna técnica por imperio de la cual fuese posible contextualizar o prever adecuadamente aquello que llamamos intención. Es ésta una condición de la voluntad humana, y sólo ha sido través de un aprendizaje que hemos podido imponernos en tal tesitura, meramente obrando por lógica deductiva. La forma más elevada que nos hemos dado para prever la intención no ha sido otra que la de consagrarnos en una organización social, a la que hemos munido de una Doctrina.

Esta doctrina opera como eje ordenador, que sirva al Pueblo para interpretar lo que él mismo quiere. El Conductor podrá así relanzarlo, con un sentido creador que expresa aquello de que "mejor que decir, es hacer, mejor que prometer es realizar".

Esta máxima también se replica en el mundo de la política, y del software.

Es sabido que en el uso de la máquina existe la posibilidad de generar un programa de análisis que - dentro de normas paramétricas constrictivas - interprete un mandato directo a cumplir, una orden. En Unix estos programas intérpretes de mandatos que operan a través de un enlace de terminal de cómputo reciben el nombre de Shell. Nosotros hemos hecho todo para que nuestros niños - que son los únicos privilegiados - los usen en sus consolas.

Sin embargo, suele ser desconocido que Ubuntu cuenta con un sucedáneo del la shell sh para sus tareas de conexión y ejecución básica: un modernizado y supermínimo dash. Sin embargo, este suele pasar desapercibido frente al portentoso intérprete nativo de GNU, el Bash. Se trata esta de una shell libre inspirada fuertemente en la antigua shell de Bourne, la cual - junto a funcionalidades de la C Shell y la shell de Korn - tiene embutido en su interior un lenguaje de programación interpretado de relevancia.

Pues bien señores: los tontos ignoran la complejidad, los pragmatistas la sufren, algunos pueden evitarla, pero son los genios quienes la eliminan. Esto es patente en el caso de la burda C Shell, intérprete que un desaforado Bill Joy había escrito para su Distribución de Software en Berkeley. Ken Greer de la Universidad de Carnegie-Mellon la apreció peor escrita que el Facundo, y la remozó extendiendo sus lerdas funcionalidades, a la vez que depuraba el código como quien verdaderamente entiende la cosa. No tardó mucho en incorporarle el autocompletado de ficheros y directorios sensible a contexto del que alardeaba el mítico sistema operativo TENEX. Sobre esta base mejor asentada - a la que todos llamaron tcsh - Mike Ellis de la Fairchild Coporation le sumó un sustancial autocompletado de comandos.

Indudablemente que tcsh resultó más veloz y bastante más pequeño para hacer lo mismo. En particular gusto de este intérprete por su velocidad de ejecución remota en equipos de mínimo desempeño. Aunque he de advertir que si bien es mayormente compatible con Bash y otros posteriores, la realidad es que sus escasas diferencias lo tornan idiosincrático.

Afortunadamente, podremos instalar este intérprete de mandatos en Ubuntu, si nuestras necesidades y anhelos así lo estipulan. Es que en lo que hace a estas shell, ha de existir una justa gradación sin la cual la informática no tendría la flexibilidad que la hace grande, y por lo pronto podremos contar con múltiples si a nuestra máquina "le da el cuero". Y con tcsh cualquier enano es grande.

Ya conocemos cómo instalar un moderno intérprete de factura original, el Fish Shell, destinado a equipamiento moderno y sin respetar convencionalismo alguno. Para instalar tcsh hemos de seguir similares procedimientos. Simplemente abrimos un terminal con Ctrl+Alt+T e indicamos el siguiente comando de organización:

sudo apt install tcsh

Conforme ingresemos la contraseña de root, se hará realidad la instalación del nuevo viejo intérprete, sin molestar a los otros parroquianos que pudiéremos tener.

Para ejecutar un tcsh anidado, simplemente lo ejecutamos llamándolo por su nombre y apelativo:

tcsh

...lo que dará inicio a una sesión del shell anidada dentro del Bash, convirtiéndose en el brazo derecho del conductor. Tradicionalmente, el prompt de tcsh es un >, de esta manera:

host:~>

Esto puede ser adecuado para algunos. Para evitar esta llaneza, lo que recomiendo es configurar por única vez un fichero de configuración de usuario ~/.tcshrc. Para ello editamos tal fichero con:

nano ~/.tcshrc

Podremos entonces pegarle el contenido recomendado, guardamos y cerramos.

Todo esto nos permitirá tener ya configurado las opciones necesarias para poder utilizarlo de forma efectiva en Ubuntu.

TCSh dispone de amplias similitudes al C Shell de Bill Joy, pero incorpora algunas funcionalidades embebidas en el mismo intérprete. Podremos consultar sobre estos comandos embebidos ingresando el comando builtins.

Por ejemplo de estos comandos incorporados tenemos a where, que a diferencia al which disponible en sistemas similares a Unix, informa las rutas de un alias determinado pero también las rutas de ejecución de un comando dado:

TCSh cuenta con una función incorporada de historial expansiva de la del C Shell. Los comandos ya introducidos se van incorporando a un stack que podremos revisar con Flecha Arriba y Flecha Abajo. Quien introduzca el comando history, apreciará el registro del stack de comandos previamente introducidos, numerados en sentido descendente y temporizados.

El funcionamiento del historial de comandos es similar al del viejo intérprete de TENEX: !! Ejecuta el comando previamente ejecutado. !n Ejecuta el comando número n del stack. !-n Re-ejecuta el comando número n del stack. !cadena Ejecuta el comando más recientemente ejecutado que comience con cadena !?cadena corre el comando más recientemente ejecutado que contiene cadena

La funcionalidad de autocompletado se activa tecleando parcialmente un comando que deseemos, y autocompletándolo mediante la tecla Tab, o más tradicionalmente, con el uso de Ctrl+d. Esto tipeará automáticamente, o bien nos presentará en la terminal las opciones que podremos continuar solicitando.

También contaremos con la necesaria funcionalidad de Control de Trabajos, requerida en un ambiente multi-tarea. Como es sabido, esta nos permite operar en dos planos: normalmente los programas corren en primer plano, pero podremos ejecutar comandos directamente en segundo plano agregando & al final del comando. Por ejemplo podíamos enviar a top y al editor GNU Nano a que quede en ejecución en segundo plano:

top & ; nano &

Naturalmente, muchos programas puede "suspenderse" y enviarlos a segundo plano durante su tiempo de ejecución, a través de la combinación Ctrl+z.

En cualquier momento podremos consultar el stack de trabajos:

jobs

[1] - Suspended (signal) top [2] + Suspended (tty output) nano

Ahora podremos pasar a primer plano el programa del stack que queramos con fg (o mandarlo a segundo plano con bg). En este ejemplo, si quisiéramos pasar a primer plano el nano, podremos indicar:

fg 2

(Nota: Durante la ejecución de las versiones más modernas de Nano puede enviárselas a segundo plano mediante Ctrl+t, Ctrl+z).

Vean señores, tcsh cuenta con algunas diferencias sintácticas en su lenguaje interpretado con respecto al omnipresente Bash, y notablemnte carece de funciones. Pero fuera de ello, es bastante parecido y adaptable. Es posible conocer mas sobre las idiosincrasias de tcsh con respecto a Bash aquí. Asignar tcsh como terminal por defecto

Existen varias maneras de asignar directamente a tcsh como intérprete. Una forma directa es arrancar el emulador de terminal corriendo tal intérprete. Por ejemplo:: mate-terminal -x tcsh

Sin embargo, en estos casos la más lógica suele ser asignar un perfil al emulador de terminal. En el caso de mate-terminal o gnome-terminal, esto puede realizarse desde la solapa Título y orden, tildando la opción Ejecutar una orden personalizada en vez de mi intérprete, e indicando en su campo /bin/tcsh. Podremos así guardar el perfil para utilizarlo por defecto.

Ambas soluciones permiten dejar a Bash como el intérprete, por cualquier motivo y son las que recomiendo.

En ciertos casos, y tras asegurar que tcsh opera adecuadamente, podríamos queuer directamente asignar como shell de usuario a tcsh en lugar de Bash. Esto sólo debe realizarse si estamos absolutamente aborrecidos de Bash, y no tiene mucho otro sentido.

En primer lugar debemos consultar qué shells están instaladas en nuestro sistema, mediante el comando:

cat /etc/shells

...y este podría devolvernos algo como:

/etc/shells: valid login shells

/bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash /usr/bin/tmux /usr/bin/sh /usr/bin/fish /bin/tcsh /usr/bin/tcsh

(Nota: En negro se indican las shells incluidas por defecto, en rojo aquellas agregadas posteriormente a pedido).

Luego utilizamos el comando chsh ("cambiar shell de inicio"). En este caso si quisiéramos cambiar la shell por defecto del usuario de /bin/bash debemos ordenar:

chsh $USER

Tras ingresar contraseña, indicamos la ruta del shell deseado (ya sea /bin/tcsh o cualquier otra). Los cambios surtirán efecto tras reiniciar el sistema.



27 january 2023

¿Cómo instalo OurPaint para dibujar en Ubuntu?

Reunido en el Consejo Superior del Partido Justicialista, Juan Perón expone sobre la necesidad de instalar OurPaint para dibujar con tableta Wacom en Ubuntu.

(...)

¡Compañeros!

El Movimiento al que pertenecemos es uno que hace al número más que a la calidad de sus miembros. No es necesario ser los mejores, más vale que seamos muchos, y que estemos organizados.

Esto puede replicarse a la cantidad de paquetes de software para sistema GNU que utilizan la GPLv3. Un programa liberado bajo licencia GPL no es de otro, es nuestro.

Nuestro software debe responder a múltiples necesidades, y lo adecuado para ello es compilar múltiples programas, cada uno de los cuales equivale a un derecho que responde a una necesidad. Tras colmar una necesidad, podremos darnos a colmar la siguiente, y así sucesivamente. La organización de prioridades la da el Conductor, en reflejo de los que el Pueblo quiere. Eso es, a grandes trazos, lo que nosotros llamamos Conducción.

Pues bien señores, puede ocurrir que a una necesidad sepan oponérsele varios proyectos de software - todos bien intencionados - con el objeto de darle solución. , Si atendemos a uno de los objetivos nodales, el de la economía de fuerzas, esto no sería deseable. Sabemos que no debemos desperdiciar esfuerzo en enfrentar todo, sino enfrentar lo más importante, y darle con todo.

Sólo en algunas ocasiones justifican desprenderse del principio de la economía de fuerzas. En meras ocasiones - bien estudiadas - podríamos dar respuesta con varias propuestas que coadyuven en suplir lo que queremos realizar. Esto es especialmente válido en el campo de las artes.

Mao, que además de maestro era chino, dijo que no existe ningún conocimiento genuino no se origine de la experiencia directa. Ya he enseñado cómo instalar MyPaint, GIMP, y Krita, y si bien esto parecería dar por resuelto aquél viejo anhelo de dibujar con una computadora dotada de GNU. Sin embargo, existe toda una gradación de maneras de hacer y de flujos de trabajo, y lo cierto es que a gusto de los cocineros comen los frailes.

Por tal motivo el compañero maoísta Yiming Wu ha desarrollado OurPaint, un graficador multiplataforma destinado a la Comunidad de mil millones de hombres libres capaces de implementar aceleración por GPU. Este programa está sobre todo concebido para utilizar con tabletas sensibles a presión.

Por obra de este señor, podremos instalarlo simplemente utilizando nuestra Terminal. Para ello abrimos una con Ctrl+Alt+t y pegamos en ella el siguiente bloque de comandos de organización, dándole entrada:

cd ~ wget https://www.wellobserve.com/Files/OurPaint/Releases/OurPaint_v0.1b_Linux_x64.tar.gz ; tar xvzf OurPaint_v0.1b_Linux_x64.tar.gz ; mv ~/OurPaint/ ~/.ourpaint/ ; touch ~/.ourpaint.sh ; chmod +x ~/.ourpaint.sh ; echo "cd ~/.ourpaint/" >> ~/.ourpaint.sh ; echo "./OurPaint-latest-x86_64.AppImage" >> ~/.ourpaint.sh

Opcionalmente podríamos crear un lanzador para OurPaint, que dirija al fichero /home/$USER/.ourpaint.sh recientemente elaborado.

De esta forma, será sencillo lanzar el programa desde Aplicaciones / Gráficos / OurPaint.

Al iniciar OurPaint por vez primera nos encontraremos con una pantalla de presentación desde donde podremos realizar una donación opcional y acceder a ayudas en línea.

Tras hacer clic en ella, daremos con el lienzo del programa, con una interfaz de manejo bastante similar a de otros programas de índole gráfica. Contaremos con una ventana de programa provista con un lienzo de trabajo inicial para dibujar. Junto a este lienzo encontraremos un panel derecho programable dividido en solapas.

El lienzo de trabajo se encuentra planteado en principio como una capa de transparencia sobre la cual podremos trabajar, dispuesta sobre un fondo o "background" de tono gris neutro.

La solapa de herramientas dispone ya de unos 15 pinceles genéricos listos para usar. Para dibujar simplemente escogemos alguna de estas herramientas plásticas - usando la pluma de la tableta o bien directamente con el botón izquierdo del mouse - dibujamos como si de un papel se tratara.

Podremos utilizar los atajos de corchete abierto y corchete cerrado para disminuir o incrementar el grosor del trazo. Las herramientas plásticas cuentan con función Borrador haciendo clic en el botón Eraser. A su vez, el botón izquierdo del ratón o permite conmutar instantáneamente al recoge-color. Estas funciones están asociadas a los botones de las plumas de la tableta, por lo cual son muy rápidas.

Presionando la rueda de scroll del ratón o haciendo clic en el botón largo de la pluma y desplazando tales dispositivos se nos permitirán desplazamientos lo largo y a lo ancho del lienzo a voluntad, mientras que utilizando . y , disminuiremos o incrementaremos el zoom. Nuevamente, estas funciones se encuentran asociadas a los botones de las tabletas Wacom.

La solapa de capas permite configurar varios modos de fusión para la superposición, e incluso cuenta con novedosa supraposición. La solapa del selector de color cuenta con una rueda tonal.

Finalmente, podremos operar en modo ventana, o bien utilizar la función de pantalla completa con F11. A su vez, podremos remover el panel haciendo clic en la flecha en la parte inferior del lienzo (logrando una muy relajante vista de "todo papel").

Lo más novedoso viene dado por la configuración de nuevas herramientas plásticas. Si bien de momento estas se aplican según un vector redondo, las mismas son programables según un editor nodal paramétrico. Este nos ofrece una manera algo chinesca de alterar y generar nuevos comportamientos plásticos según la presión, velocidad y ángulo del trazo de la pluma, aunado a la simulación de humedad y viscosidad de los pigmentos, pertinentes siempre a la rugosidad y absorción del medio. Estos parámetros constituyen nodos enlazables entre sí, lo que ilustra las relaciones y proporciones de tales características.

Sin duda podremos encontrar útil el manual en línea de OurPaint tanto en el idioma de Braden o en el menos escrutable idioma de Mao.

Podremos usar Options / Show User Preferences para abrir el panel de opciones. En la página Our Paint, podremos cambiar el límite de pasos de deshacer, mientras que en la solapa Resources se podrán agregar más directorios para obtener ficheros de recursos. OurPaint buscará allí las herramientas plásticas que contengan la extensión .ourbrush.

Para guardar nuestro trabajo podremos escoger el formato por defecto .udf, almacenar el avío de herramientas plásticas en formato .ourbrush o bien exportar el lienzo en un fichero estándar .png.

En fin, un gran aditamento que - con lugar a mejoras - es factible de usar ya mismo para elaborar gráficas para la Liberación del Pueblo.



26 january 2023

¿Cómo puedo programar en Pascal en Ubuntu?

Desde su chalet madrileño en Puerta de Hierro, Juan Perón expone cómo instalar el ambiente de programación FreePascal en Ubuntu.

¡Trabajadores!

Reconforta mi espíritu las líneas y mensajes que a diario me hacen llegar de la Argentina, que me persuaden de la contumaz impericia de la que hacen gala estos señores. No hacen más que reverdecer la Doctrina que durante diez años consolidamos en la Argentina. De nada servirán los sacrificios que intentan imponer al Pueblo, si no tienen por objetivo la Liberación Nacional.

A tal fin han intentado sofrenar sus expresiones, disolver sus Organizaciones. Es en balde: todos sabemos que el corazón procesa símbolos, y la CPU dos números. Ellos pueden tener el mango de la sartén, pero de nada sirve si no existe el fuego que le dé sustento. Durante diez años no hicimos más que afianzar el cariño del Pueblo, es este el único que alumbra el designio de hacer grande e inmortal a la Patria.

Sabemos que al igual que esta agotada Dictadura, el software privativo es un monstruo que intenta hacer enjundiar a los programadores entre sí, pero será progresivamente eliminado por quienes compilan software libre, y lo será en un futuro no muy distante. Esto es así pues en el discurrir del tiempo hemos consolidado órdenes para ello suceda, y estas ya, obran por automatismo. Nuestro objetivo es claro, y nada ni nadie nos hará desviar de esta meta, que no es otra que emparchar el código con la Justicia Social que declaman nuestros descamisados.

Vean señores, la programación es un arte que involucra una serie de procesos mujer/máquina para resolver un problema determinado. Esto se aprende, pero también se comprende.

El Profesor Niklaus Wirth creó Pascal con la finalidad de tornarlo un lenguaje de programación que sirviera de base educativa. En él - consideró - se reunirían las buenas prácticas que hacían este arte (aferramiento a un código bien estructurado, seguridad de tipeado, etcétera). Mas de uno consideró que Pascal era totalmente inadecuado para desarrollar "software del mundo real, grande, seguro, y de desempeño". Y es probable que así lo fuera, ya que dar con estas prerrogativas podía equivaler a escalar el Aconcagua en chancletas.

Sin embargo, los distintos dialectos del lenguaje Pascal traspasaron su vertiente educativa, convirtiéndose en un lenguaje adorado por las Masas, que supo ver en él a un entrañable amigo. En una época donde al proyecto GNU no lo conocía ni el loro, con la aparición de la implementación Turbo Pascal de Borland y por moderados 50 dólares se podía tener un compilador, depurador y enlazador ajustados a un ambiente de desarrollo que andaba en una PC con nafta común.

Para su versión 7, el Turbo Pascal de Borland ofrecía un ambiente integrado de de programación (IDE) rico y poderoso, que hacía del desarrollo de software una posibilidad productiva en sumo grado. Con poco se daba rienda suelta a este lenguaje estructurado de alto nivel, pudiéndose diseñar, escribir, depurar y compilar programas de cualquier tupo y factor.

Muchas veces me han preguntado cómo instalar un compilador de Pascal que funcione en Ubuntu, y la realidad es que - en principio - no se necesita hacerlo. En los sistemas de tipo GNU ya contamos con GCC, enorme colección de compiladores profesionales libres y gratuitos, que suele bastar para estos menesteres.

Sin embargo, ante una necesidad nace un derecho, y una solución informática libre para solventarlo. Contamos en GNU con la IDE FreePascal, fuertemente inspirado en el añorado Turbo Pascal 7, pero libre, y que no cuesta una chirola. Hemos de saber que Ubuntu cuenta con una versión empaquetada en sus repositorios oficiales, pero vaya a saber porqué esta no funciona adecuadamente, y en Ubuntu 22.04LTS y falla al compilar.

Afortunadamente podremos descargar e instalar la misma versión de forma manual, superando tal inconveniente. Todo ello se realiza abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente bloque de Comandos de Organización:

mkdir ~/Descargas/fpc/ ; cd ~/Descargas/fpc/ ; wget https://sourceforge.net/projects/freepascal/files/Linux/3.2.2/fpc-3.2.2.x86_64-linux.tar ; tar -xvf fpc-3.2.2.x86_64-linux.tar ; cd ~/Descargas/fpc/fpc-3.2.2.x86_64-linux/ ; sudo ./install.sh

Conforme introduzcamos nuestra contraseña de Conductor, el guión install.sh de instalación nos solicitará indicar dónde queremos instalar el paquete del compilador:

This shell script will attempt to install the Free Pascal Compiler version 3.2.2 with the items you select

Install prefix (/usr or /usr/local) [/usr]

En mi caso lo haré en /usr/local/, como con todos los binarios compilados en mi sistema de forma local.

Acto seguido nos interrogará si queremos instalar la documentación, las demostraciones, y dónde. Podemos presionar Enter para aceptar las opciones por defecto.

Ahora podremos ejecutar el IDE de FreePascal. Para ejecutarlo, podremos utilizar el comando

fp

Con este nos encontraremos con la ventana principal de interfaz textual del fp-ide, el cual - como cabía de esperar - guarda fuertes reminiscencias de la del Borland Turbo Pascal 7 para DO$. La IDE en sí opera en el dialecto FreePascal, pero cuenta cuenta con varios modos de compatibilidad conmutable para diferentes implementaciones de Pascal. En particular, contaremos con el modo TP que activa la compatibilidad Turbo Pascal - activable con el sufijo -Mtp o bien directamente declarando en en el programa el ${mode TP}. También existen declaraciones para optar por los modos de compatibilidad Oject Free Pascal, Delphi, Pascal para Mac, etcétera.

La documentación de dialecto libre FreePascal podremos encontrarla en la Wiki de FreePascal. En tanto, la documentación del Turbo Pascal 7 oficial está disponible en el idioma de Braden y en gran cantidad de volúmenes y artículos que lo trataron en castellano.

En cuanto al uso y comandos del IDE, ya son clásicos. fp-ide nos facilita depurar directamente cualquier programa que use las remilgadas sintaxis de los dialectos de Pascal en busca de errores, presionando F9.

La IDE también nos permitirá ejecutarñp (siempre que el código fuente no contenga errores, claro está). Para ello presionamos Ctrl+F9 o bien vamos al menú Run:

Al igual que el vetusto Borland Turbo Pascal, el ensamblado puede hacerse por medio de Alt+F9, lo que - junto al código objeto - nos dejará un archivo ejecutable para Linux.

A diferencia de los magros 16 bits nativos de Turbo Pascal, la arquitectura por defecto de FreePascal suele ser la x86_64 de 64 bits, facilitando así la inclusión en hardware moderno. Pero podremos portar y realizar compilaciones cruzadas indicándolo desde el menú Compile/Target.

Si todo va bien, deberíamos naturalmente encontrar en nuestro directorio de trabajo el fichero objeto de extensión .o y el fichero ejecutable. Esto permitirá utilizar programas en Pascal en Ubuntu sin más incordio que introducirlo y compilarlo.



25 january 2023

Software como Látigo: Monitoreo y tecno-explotación en el Ámbito Laboral

Con la adopción de medidas de cuarentena en todo el mundo, el COVID-19 ha convertido al teletrabajo en una nueva norma para muchos de los trabajadores. Sin embargo, este cambio facilita la importación de métodos de gestión informales al ambiente del trabajo.

Las nuevas generaciones han sido alcanzadas por una nueva gama de los llamados "software remotos de gestión laboral". Estos incrementan el alcance de las métricas, y en consecuencia permiten a las empresas de Capital registrar todos los aspectos posibles del comportamiento de sus trabajadores.Este despliegue de ña cuantificación está en línea con dos siglos de tradición disciplinaria del trabajo, de ideología productivista y gestión científica. El sentido de estas aplicaciones informáticas debe centrarse el análisis en el contenido y calidad de lo producido.

No obstante estos objetivos declamado, hemos visto cómo la declamada disciplina profesional se ha visto interpuesta como mera excusa para dar lustre a la vetusta inescrupulosidad del Capital. Esta - aunada a timoratos regímenes regulatorios que deberían impedirla - han degenerado perturbadoramente, confabulando novedosas formas de explotación laboral a través de la programación maliciosa de herramientas informatizadas. Su objeto no parece ser otro que detentar el control de la explotación. Este es un nuevo ariete hacia la generalización de un "látigo de explotación digital" de escala global.

No resulta extraño a la mayoría de estos programas de gestión laboral agregar - al tradicional registro temporal - el desglose y filtrado de tráfico telemático, rastreos individualizados del historial de navegación, métrica del mouse y sus clics, así como medidas de incumbencia como las capturas de pantallas de empleados, las apertura de ventanas del sistema operativo y demás. Tal es así que los dispositivos del empleado resultan invadidos con metodologías de rastreos posicional por GPS, biométrica por control de cámaras de video, perfilado, registro y grabación de llamadas y mensajería instantánea, y todo a granel.

Además se han generalizado muy velozmente el acopio y comercialización no autorizada de los metadatos obtenidos a resultas de estos cacheos, por medio de terceros definidos en un maridaje neocolonialista de masivas corporaciones extranjeras (Meta, Google, Amazon, Microsoft). Ante estos casos no es extraño el empleo de biométrica como vector de circunstancialismo social, clasismo y racismo, así como el ingerencismo tercerizado en la gestión de recursos humanos.

En este contexto, los trabajadores han comenzado a percibir que el software no sólo ha sido vectorizado como si de un viejo rebenque se tratara - atizando a los trabajadores con el vacuo fin de producir datos que validen al sistema de métrica estadística en sí - sino que también se lo han convertido en molino y yugo, que combina la meta-producción como matriz extractivista cautiva.

Los efectos nefastos sobre la salud mental, estabilidad económica, de los trabajadores y los múltiples mecanismos de autocensura que estos escenarios promueven en sus Organizaciones no pueden soslayarse.

Combatir al Capital

La explotación laboral está lo suficientemente añejada como para que los Trabajadores reconozcan - por mero reflejo - que su principal arma ha sido siempre la organización en la defensa de sus intereses profesionales. El objetivo estratégico lo constituye el bienestar y felicidad; y el sustento táctico - en mayor y menor medida - ha sido el de evitar la confrontación innecesaria, para dar la lucha necesaria, y darla para vencer.

La ciber-explotación laboral ha de ser combatida según la misma tesitura, a través de lo que puede denominarse "lucha telemática de los hackers organizados".

Los hackers son individuos que han reprogramado sus conciencias para compilar lo que el Pueblo quiere. No es difícil para ellos programar guiones, rutinas, extensiones de navegador, macros de hojas de cálculo y aplicaciones, capaces de contrarrestar - en CPU propia o ajena - los aviesos esquemas de monitoreo y explotación por software en el ámbito de Trabajo.

La automatización que permite el software cuando se la aplica a la lucha telemática de los hackers organizados, es capaz de inflar artificialmente las métricas de control obrero, aliviando así la presión impuesta a los descamisados.

Este método de combate al Capital no puede juzgarse nunca como decisivo, gravita positivamente pues contrarresta la informática al servicio de la explotación. Mas sólo puede prologar la lucha para que no cese hoy. Por tal motivo las Organizaciones han de fijarse como alta consigna de lucha la concreción de un instrumento legal de protección del teletrabajador, que impida, contrarreste y castigue la utilización de métrica invasiva en el ámbito laboral digital.

Armas para el Pueblo

La defensa de los intereses profesionales ha llevado a determinadas técnicas de confrontación para las organizaciones de los trabajadores, en donde no todo está dicho y donde las herramientas mismas de trabajo no pudieron estar ausentes. Fue así que se alimentaban zapatos a la máquina, piedras al buche, y no faltó lo de recurrir al palo, los miguelitos y al cóctel molotov para sofrenar la violencia de matones y patrones.

Sin embargo, la destrucción física del cómputo de vigilancia ya no reviste una importancia análoga a la de circunstancias pasadas. Hoy simplemente basta con reprogramarlo para que haga lo que nosotros queremos. En otras palabras, darnos acceso y control sobre él y lograr que se ajuste a las necesidades de nuestras Organizaciones.

Telecommutters se autoproclama como una colección de guiones de programación, software, rutinas y estrategias para interrumpir los sistemas de gestión y métricas remotas.

De esta forma, acceden a combatir el Capital mediante la simple ofuscación de los sistemas de televigilancia en el ámbito del trabajo.

Entre sus obras de arte se encuentran:

Webcam Manager, que presenta una webcam virtual con un bucle de video para representarse en videollamadas, presentando un nombre de interfaz generico para evitar el escrutinio.I Am Still Working, que automatiza movimientos del mouse simulando presencia en una computadora y disipando sistemas de monitoreo de mouse como Hubstaff, ActivTrack, etc, a la vez que escribe mensajes para los programas de registro laboral. Screenshot claim, envía un correo electrónico al jefe y todo el staff que recuerda los derechos del trabajador, litiga y educa sobre implicancias criminales del registro no autorizado, toda vez que registra actividad de registro ilegal.Gamouflage permite desplegar un overlay transparente irregistrable sobre una interfaz web laboral, permitiendo navegar y jugar juegos a expensas del registro ilegal de actividades de trabajo. *Track My Bot en tanto es un dispositivo que se conecta a la computadora vía USB tomando la guisa de teclado y mouse, permitiendo reproducir en bucle infinito acciones de mouse y tecleos prehechas de tales dispositivos. Esto permite simular un repetitivo trabajo infinito.



24 january 2023

¿Cómo juego al TEG en Ubuntu?

En el largometraje Actualización Política y Doctrinaria para la Toma del Poder, Juan Perón expone sobre los pormenores de la táctica y la estrategia, y sobre cómo jugar al TEG en Ubuntu.

(...)

Decía el Mariscal de Sajonia que tenía una mula que lo había acompañado durante más de diez campañas. Sin embargo, el pobre animal no sabía nada de estrategia. Lo peor es que muchos de los generales que también lo habían acompañado sabían lo mismo que la mula.

Pues bien señores, esto es porque ni la mula ni los generales dilucidaban que la Estrategia es la lucha en conjunto, y Táctica es la lucha directa.

Lo estratégico toma el conjunto de las operaciones, sin detallar. Yo en este momento soy el Conductor Estratégico, y tengo cuatro misiones: mantener la cohesión del Movimiento, consolidar la unidad doctrinaria, dirigir las relaciones internacionales, y revisar las grandes decisiones de carácter táctico que puedan tener influencia en la situación de conjunto.

La conducción táctica maneja la actuación de lucha en el teatro de operaciones. Debe estar en contacto con todas las fuerzas que accionan en cualquiera de los lugares y en cualquieras de los lugares. Es el Comando Superior que está allá en la Argentina dirigiendo el conjunto de la lucha en el propio país. Por eso yo puedo ser el conductor estratégico a 15.000 kilómetros de la Argentina, pero no podría ser el conductor táctico.

Sin embargo, no se puede decir donde termina el escalón táctico y donde comienza el estratégico; están ensamblados. Si no hay tiempo y ante lo imprevisible, si es necesario muchas veces a nivel táctico toma una decisión de carácter estratégico, y la consultará luego de consumada con el escalón superior de conducción. Actúa a partir de la propia interpretación de directivas anteriores que hubiese recibido del comando estratégico, pero en definitiva el comando táctico actúa, ya que es el ejecutor de las decisiones estratégicas.

Esto yo lo aprendí de mis profesores prusianos, pero también jugando al Tenés Empanadas Graciela, clon informatizado para sistemas de cómputo similares a UNIX del juego de mesa de estrategia por turnos argentino TEG ("Plan Táctico y Estratégico para la Guerra", de Yetem), a su vez un sucedáneo del clásico y popular Risk (de Hasbro).

Naturalmente el TEG cuenta con aficionados, quienes comenzaron a compartir su pasión, organizando torneos, y creando asociaciones. En la actualidad existen ligas que organizan torneos competitivos de cariz semanales, mensuales y anuales.

Indudablemente que esto mismo puede hacerse a través de la computadora en una red local. En nuestro sistema GNU podremos desplegar combate entre dos y seis jugadores gracias susodicho Tenés Empanadas Graciela. Este consta de cliente y servidor, todo en uno o dedicado, lo cual permitirá desplegar TEG tanto en una red de área local LAN, como a través de internet gracias a un metaservidor denunciable (debe permitirse el acceso al puerto UDP 2000 u otro).

En cualquier caso, lo primero es instalar los componentes del juego, el servidor tegserver y el cliente de juego tegclient. Esto es sumamente sencillo, simplemente debemos abrir una terminal e ingresar:

sudo apt update ; sudo apt install teg

Luego de ingresar nuestra contraseña se instalarán los paquetes.

Cada jugador podrá abrir el cliente del juego desde Aplicaciones / Juegos / Cliente de T.E.G. Pueden jugar desde 2 a 6 jugadores por sesión.

En el caso de jugar en una red LAN, uno de los jugadores deberá montar el servidor de TEG. Para ello en el cuadro de diálogo Conectarse al Servidor, uno de los jugadores debe indicar "Lanzar servidor localmente", también puede indicar su nombre de jugador y un número de puerto TCP/IP (normalmente se utiliza el puerto 2000, este debe estar de común acuerdo con todos los jugadores de la LAN).

A continuación, el jugador que oficie de servidor deberá escoger uno de los seis colores que definirán bandos en la batalla.

Acto seguido, podremos dar comienzo a una partida de TEG presionando en el botón Comenzar. Este nos permitirá seleccionar la modalidad de juego. Normalmente las opciones típicas permiten recrear el reglamento del TEG tradicional, pero también podremos contar con Niebla de Guerra, desplegar "misiones secretas" para conquistar un territorio determinado, y definir distintas cantidades de ejércitos para desplegar en el primer turno de la jugada (lo que alarga o acorta el juego).

Lo primero será disponer nuestros 8 ejércitos en el planisferio, al fin de determinar sus posición inicial.

Una vez que los demás jugadores se hayan conectado al servidor (deben indicar el mismo número de puerto, usualmente 2000, y un nombre diferente), podremos dar inicio a la partida. A cada turno, el jugador debe colocar los primeros 5 ejércitos iniciales en los países de su color. Conforme se haya hecho, podrá enviarlos al servidor presionando el botón Enviar Ejércitos.

Cada jugador debe aguardar su turno, y localizar los 3 ejércitos restantes en sus países (aparecerán como un número en cada territorio, simulando las fichas circulares coloreadas del TEG). Podrá definir todos los ejércitos en un solo país si lo desea (no existe límite de cantidad de ejércitos por país). Conforme todos los jugadores han desplegados sus 8 ejércitos, podrán comenzar las hostilidades de escala mundial.

Al recibir un turno (lo que es indicado por la luz verde en la esquina inferior derecha de la ventana del TEG), podremos atacar al enemigo colindante a discreción, tantas veces como lo deseemos. Para hacerlo, debemos seleccionar dos países, primero el país atacante, y luego el país atacado (el de su oponente, que debe ser colindante). El país atacante debe contar con al menos 2 ejércitos, pero no existen restricciones en cuanto a la cantidad de ejércitos del país atacado, lo único importante es que deben compartir frontera. El ataque será alertado por el server mismo "cantando" el movimiento en sendas ventanas visibles en los clientes de todos los jugadores ("¡China ataca Kamchatka!").

Si está activa la modalidad "niebla de guerra", la alerta será visible pero los demás jugadores no podrán contemplar el resultado detallado del combate salvo que compartan frontera tripartita.

Al atacar, el cliente simulará el lanzamiento de n dados (siendo n la cantidad de ejércitos con los que cuenta su país menos 1, pero no más de 3). En combate el cliente del defensor lanzará m dados, siendo m es la cantidad de ejércitos que él dispone en su país, pero no más de 3. El sistema ordena los resultados de los dados en el servidor, de forma descendente, y compara los resultados de las tiradas de dados a modo de árbitro, comparando el resultado más grande, con el resultado mayor del defensor, según la rutina de guerra del TEG. En caso de derrota o empate, el país atacante perderá uno de sus ejércitos. Si vence en las tiradas de dados, el destruido será uno de los ejércitos defensor.

Como vemos, estos procedimientos simulan una ventaja al defensor, y hace - en efecto - peligrosísimo atacar a un país con más ejércitos que los atacantes.

Cuando el oponente se queda sin ejércitos en el país correspondiente se produce la conquista. En tal caso se podrá ocupar dicho territorio desplazando allí hasta 3 ejércitos (desde el país atacante).

Una vez consumado un ataque, los jugadores pueden reagrupar sus ejércitos presionando tal botón. Podrá movilizar hasta 3 ejércitos de un país fronterizo al otro, de modo de lograr ventajas posicionales. Sin embargo, quien reagrupe no podrá atacar nuevamente hasta su próximo turno.

También puede sacar una carta de país al azar mediante el botón Obtener Naipe de País. Si el naipe que recibimos representa a un país en nuestro poder, recibirás 2 ejércitos adicionales (o bien permitirá canjearla por 2 ejércitos no bien dicho país sea conquistado por usted).

Existen otros 4 tipos de naipes: galeón, cañón, globo, y comodín. Al obtener cartas coincidentes, podremos canjear las coincidentes por más ejércitos.

Una vez cumpidos los desplazamientos de ejércitos, podrá denunciar el cese de su tirno presionando el botón Finalizar Turno.

Existen bonos de ejércitos por conquistar continentes enteros, y variadas minudencias reglamentarias. Como siempre será útil contar con el Reglamento del TEG Tradicional.

En todo caso, el objetivo final de conquista total es uno alcanzable para el Movimiento.



23 january 2023

¿Cómo juego BatMUD en Ubuntu?

La única verdad es la Realidad.

Ante el desafío de la vigilancia masiva, nuestro Movimiento se ha mantenido inconmovible en sus principios: criptografía, descentralización, código abierto y usabilidad.

Sin embargo, esta máxima no impide que podamos sumergirnos en mundos de fantasía siempre que resconozcamos que son una fantasía. Al fin y al cabo, la fantasía política se termina cuando llega la realidad del Justicialismo.

Las primeras aventuras de texto informatizado surgieron en las DEC PDP-10 y otras máquinas provistos de sistemas operativos multiusuario de tiempo compartido. Indudablemente que este tipo de divertimento a puro texto no permanecería recluído en línea: una vez que las microcomputadoras estuvieron al alcance del hobbista no pasó mucho para que surgieran empresas que desearan implementar estas tramas aventurescas a estas máquinas.

Sin embargo, los sistemas multiusuario eran los que permitían estaeblecer juegos de rol compartidos por decenas o incluso centenares de jugadores al unísono. De ellos pocos han quedado, pero hay algunos que resisten el paso del tiempo.

BatMUD es un juego de fantasía multijugador en el idioma de Braden. Fue desarrollado en 1991 en Finlandia, y está pensado para utilizarse comunalmente a través de terminales remotas. Al continuar operativo, tal vez sea uno de los juegos de "mundos de fantasía interactivos" más antiguos existentes en la Internet.

El objetivo es sobrevivir en esta fantasía de espada y hechicería, e ir ascendiendo de nivel hasta alcanzar el improbable rango máximo de Dios del MUD. A tal fin se navega el mundo desde la terminal (o bien desde un cliente gráfico).

El juego consta de 100 etapas para personajes con títulos especiales, durante los cuales se permite la reencarnación especial (re-especifica el personaje del jugador, incluyendo la posibilidad de cambiar de raza (y renacimiento).

Cuenta con un sistema de habilidades También consta de un sistema de combate matemático muy detallado con posibilidad de formar grupos e incursiones (con enlaces de partidos), a la vez que cuenta con opciones y estadísticas y hechizos extremadamente divcerso, que correlaciona el trasfondo del personaje con la guilda elegidas y las coiedades secretas a la que se pertenezca.

Cuenta con comercio jugador a jugador, con guildas especializadas y carros de compra para facilitar el comercio.

Ítems para construir jugadores, castillos y ciudades. Viaje marítimo y astrilleros, incluyendo batallas navales.

Monturas y mascotas customizables. Cientos de zonas customizables (áreas) provistas con ítems de poder y bonus.

Existe una gran variedad de métodos diferentes para conectarse a BatMUD, y es un juego perfecto para netbooks, computadoras de bajas prestaciones, viejas terminales y sistemas Unix, pero también incluso las estaciones de juego de máxima performance. Como jugar

Por su intrincado empleo de hechicería y logros de caballería andante (típico del genero) BatMUD tal vez esté pensado para los MUDers más recalcitrantes, ya que dispone de cientos de logros a dominar. 44 razas (31 de las cuales son eligibles de inmediato y el resto disponibles a través de etapas de renacimiento, o por invitación. En principio el objetivo de este mundo de fantasía es sobrevivir.

Como este es un juego en línea, para poder participar hemos de crear un jugador (con usuario y contraseña) en https://www.bat.org/play/creation. Esto requiere una casilla de correo electrónico válida.

En la web debemos elegir un trasfondo para nuestro personaje, que puede ser Nómade, Mágo, Civilizado, Religión Benigna, o Religión Maligna. En cada una de ellos contaremos con tres guildas recomendadas, así como muchas razas y puntos de experiencia (los típicos "EXP") para distribuir.

También podrás elegir tu lineamiento (bueno, neutro, o malvado).

Conforme hayas creado tu personaje, indica la dirección de correo electrónico válida y opcionalmente, un país de procedencia.

Activa la cuenta cuando te llegue el correo electrónico a la cuenta suministrada. Conectarse a BatMUD

Conforme has creado la cuenta, accederás al juego utilizando la terminal. En el caso de un sistema GNU con Linux esto es sumamente sencillo, simplemente abre un terminal con Ctrl+Alt+T e ingresa el siguiente Comando de Organización:

telnet bat.org

Una vez dado de alta tu usuario, podrías comenzar tipeando los comandos help getting started o bien help quickstart.

Cuando comencemos el juego, nos encontraremos en Dortlewall, primer habitación tutorial. Allí nos serán ofrecidos varios tutoriales de gran ayuda para habituarnos a los conceptos del juego de fantasía, sus comandos, y como jugar. Quien no conozcla los MMPORGs habrá de seguir este tutorial para comprender el juego.

Los comandos más básicos de VatMUD son:

q - Salir p - Volver a mostrar la página previa b - Vuelve una página n - Página siguiente s - Inicio de documento

Siempre podremos introducir el comando ? para recibir esta lista de los comandos básicos recomendados en la situación donde nos encontremos.

Introduciento la letra de los puntos cardinales n, s, e y w podremos desplazarnos en el mapa recibiendo una descripción (la cual podremos solicitar con l). También podrás comunicarte e intercambiar utilizando las funcionalidades de economía virtual del mundo fantasioso.

La Ayuda del MUD puede conseguirse aquí.

Para ser proficiente en el mundo fantasioso de BatMUD, debes utilizar la mayor cantidad de comandos de su complejo sistema de operación textual. He aquí una breve lista de los comandos del juego

Informativos

help .......... Presenta las páginas de ayuda score ......... muestra estadísticas, experiencia y status en gral. sc ............ muestra su HP (salud) y SP (puntos de hechizos), 'sc on' activa el rastreo automático exp ........... como score, pero solo muestra dinero y experiencia show .......... muestra información del juego, 'help show' i, inventory .. lista items de inventorio que lleva pero que noe stá equipado eq, equipment . Lista el equipamiento en uso quests ........ lista las búsquedas que ha completado tasks ......... listas las tareas en ejecución who ........... Lista a los jugadores logueados finger ........ presenta alguna info de cualquier jugador en BatMUD inform ........ toggles the display of login and logout messages idle .......... Muestra cuanto tiempo estuvo quieto el jugador en el MUD time .......... Presenta la hora actual del MUD date .......... Muestra una lista de zonas de tiempo uptime ........ Muestra el tiempo desde el último reinicio del servidor

Movimiento y Observación

n,e,s,w,u,d ... comandos básicos de movimiento para moverse de habitación en habitación (rosa de los vientos) ne,nw,se,sw ... comandos básicos de movimiento para gaminar de habitación en habitación (rosa de los vientos) exits ......... lista las salidas obvias de la habitación peer .......... espía a través de una salida dada, sin traspasar la puerta brief ......... Conmuta entre descripciones largas o breves de la habitación l, look ....... Presenta una descripción de la habitación o mira un objeto exa, examine .. Mira un objeto bl, blook ..... Presenta descripción breve de la habitación map ........... Presenta un mapa del área en las que estás si está disponible whereami ...... Informa la localización

Comunicación

say ........... Dice algo a todos en la habitación tell .......... envía un mensaje telepático a alguien en cualquier lugar del MUD whisper ....... Susurra algo a sólo una persona en la habitación emote ......... permite expresar sentimientos propios emoteto ....... envía un sentimiento personal a una pesona en cualquier lugar del MUD smile ......... sonríe felizmente. Ver 'help feelings' para más información. ignore ........ bloquea mensajes de una persona o de todos bajo un nivel lite .......... Destaca los mensajes de una persona channels ...... lista tus canales activos de comunicación report ........ reporta tus puntos de daño y magia por medio de say o tell friends ....... Opera la lista de amigos. Ver help friends.

Personaje

title ......... Establece su título, disponible después de LVL17 surname ....... Configura su apellido, a partir de LVL10 desc .......... Descripción de tu personaje plan .......... Escribe un plan (visto con el comando finger) email ......... Configura una dirección de email para ti visible para los inmortales url ........... Configura tu página web visible para todos start ......... Presenta tu localización de comienzo actual, configurala con 'start here' password ...... Configura una nueva contraseña para tu personaje save .......... Guarda el status del personaje ld ............ Corta la conexión del MUD temporalmente quit .......... Sale del MUD term .......... Configura el tipo de terminal lines ......... Número de líneas de terminal (24) get ........... Toma algo del suelo o desde otro objeto drop .......... Suelta un objeto give .......... Da algo a otro jugador put ........... pone algo dentro de otro objeto search ........ Busca objetos ocultos keep .......... marca un objeto para ser "conservado" wear .......... Viste ropa o armadura wield ......... Porta un arma para utilizarla eat ........... Come comida drink ......... Bebe una pócima o botella (ver 'help handling' para mas información)

Combate

kill .......... Ataca un objetivo viviente stop .......... Detiene la caza wimpy ......... Configura nivel de acobardamiento parry ......... configura su cantidad de entrenamiento scan .......... Siempre muestra como está su oponente de lucha (Use 'party help' para obtener ayuda sobre el sistema de entrenamiento en BatMUD)

Habilidades y Hechizos

use ........... usa una habilidad cast .......... casts a spell show skills ... lista tus habilidades conocidas show spells ... lista todos tus hechizos conocidos (help show) (Usa 'help skill/spell



22 january 2023

¿Cómo emulo una Fairlight CMI IIx en Ubuntu?

En una nota del mensuario Panorama, Juan Perón expone cómo instalar QasarBeach IIz, el emulador de la mítica computadora sampler Fairlight CMI IIx en Ubuntu.

¡Masas Descamisadas!

Hemos vencido en las más importantes lides que se nos han presentado, pero no podemos dormitar en los laureles. Ya sabemos lo que sucede cuando dejamos de percibir en las acciones inconfesables de siempre a la imperdonable antipatria y a la traición.

Hemos dicho que todo ha de estar al alcance del Pueblo, para que lo use el Pueblo. Sólo así tendrá un sentido beneficiario. Cualquier otra cosa solo servirá para dominarlo.

Nuestro Movimiento busca la auténtica Liberación del Pueblo, interpretando que ésta puede ser facilitada por quien - como reflejo preclaro de su alma - sea capaz de realizar este anhelo en forma de instrucciones de programación licenciadas en un todo bajo GPL. Esto es lo que hemos comprendido.

Vean señores, una CPU que existe sólo para intermediar en el control oligárquico del Pueblo, debe overclockearse hasta quemarse. Sólo se perderá así un elemento malévolo. Al fin y al cabo ya hemos afirmado aquello de que en cómputo propio, solo basta instalar software propio, y ir de /home a /var y de /var a /home.

Esto no siempre estuvo claro. Cuando nosotros dijimos eso el horno no estaba para bollos, había terminado la Guerra, pero hoy el mundo ha avanzado y este ya es un tango no lo toco yo solo; en este momento toda el África, el Asia, son todas repúblicas socialistas.

Existe cierto hardware que - a pesar de ser concebida con la mente puesta en el Pueblo - siempre fue seña de un Oligarca. Uno de las cocardas más representativas fue el de la Fairlight CMI, de 1979. 

Se trataba de un instrumento musical revolucionario por el hecho de ser computarizado, el primero en contar con la posibilidad de conducir muestras digitales adaptables en tiempo real, y como tal, el primer Sampler de la historia. Esta computadora de 8 bits de factura australiana fue diseñada por los compañeros Kym Ryrie y Peter Vogel del Sindicato del Sintetizador, y operaba un extremadamente potente sistema operativo situado en diskettes de 8 pulgadas. Su novísima interfaz permitía hacer uso de gráficas monocromáticas, e introducir información a través del teclado de sintetizador, el teclado de computadora, un futurista lápiz óptico, y una entrada de línea o micrófono, capaz de registrar y reproducir muestras digitales de entre 8 y 24 Khz. Al adquirir una se le podía hacer cantar la marcha peronista, ya que su nombre indicaba ser una Luz de Justicia Social. Lamentablemente, sólo podía hacerse después de abonar 12.000 libras del momento.

Nuestro Movimiento no se ha hecho fuerte por promesas, sino por sus realizaciones. Es por ello que hoy damos al Pueblo de la Nación el lujo de un sucedáneo fiel de esta máquina, a sólo título de gritar un sintetizado "¡Viva Perón!". Y lo hemos dado como sólo puede hacerse: con todo.

Se trata de QasarBeach IIz, un programa de audio dable de instalar en sistemas GNU con Linux como Ubuntu.

Se trata de una sumamente lograda reproducción de la primigenia estación de composición digital, la Fairlight CMI, especialmente en su iteración IIx. Por otro lado, incorpora nuevas funcionalidades planificadas por los desarrolladores originales, pero que nunca vieron la luz.

Para instalarla en nuestro sistema GNU con Linux debemos dirigirnos a la página de descargas y hacernos con el fichero qasarbeach129g.tar.gz para Linux. Asimismo conviene bajar el fichero QasarBeach.zip que contiene una demo de 25 MB, como la documentación, guide.zip y cookbook.zip.

Si todo va bien, estos ficheros irán a parar a nuestro directorio de ~/Descargas/. Como no tenemos un instalador automático, lo instalaremos a mano. Todo debería salir bien al abrir una terminawl con Ctrl+Alt+T e ingresar el siguiente bloque de Comandos de Organización:

cd ~/Descargas/ tar xvzf qasarbeach129g.tar.gz ; unzip QasarBeach.zip mv ~/Descargas/qasarbeach ~/.quasarbeach/ mv ~/Descargas/QasarBeach/ ~/.quasarbeach/

Una vez instalado, de forma opcional pero recomendable podríamos crear un lanzador para nuestro entorno gráfico. En el caso de Mate o GNOME hacemos clic con botón izquierdo sobre el panel de Aplicaciones, y en el menú contextual elegimos Editar Menús. En el panel de menús elegimos "Sonido y Video" y hacemos clic el botón "Nuevo ítem". Esto abrirá la ventana "Crear Lanzador", en la cual podremos instruir la orden: /home/usuario/.quasarbeach/quasarbeach.

Una vez completada la creación del lanzador, ya pooremos ejecutar fácilmente el programa desde Aplicaciones / Sonido y Video / Qasarbeach.

El humilde Pueblo Trabajador conoce de oído que esta revolucionaria Fairlight CMI operaba a través de un teclado y un señalador en forma de lápiz óptico, dirigiendo una serie de pantallas de control denominadas "Pages" (activables con los números y letras). Ahora podrán manipularlo, ya que al ejecutar por vez primera el peronista QasarBeach IIz, nos encontraremos con la primer Page, el índice, accesible siempre con 1.

Naturalmente, en esta versión acomodada a las Masas del Pueblo, el índice es operable por medio del ratón.

En primer lugar debemos ver la Ayuda, la cual accedemos presionando 9 para acceder a una novedosa Page 9 "Help".

Por medio de la tecla S, que activará la Page S, donde podremos configurar algunos aspectos de visualización de la aplicación - como activar pantalla completa, dar presentación a color o la más clásico tono verde monocromático (incluyendo efecto de video empalizado opcional). Todo esto apunta a ofrecer una lograda reproducción efectista desde lo visual.

La Page M nos permitirá configurar los aspectos MIDI, que se adaptarán si contamos con un controlador conectado al sistema. En caso de no contar con un controlador MIDI, bien podremos usar la fila inferior de las teclas del teclado, con la incomodidad ahorrativa que esto implica.

Hasta aquí las opciones mas o menos únicas de esta implementación modernizada. El resto lo constituye un versionado notablemente transparente del modo de uso y feeling de la Fairlight CMI IIx. Esto va desde la vetusta interfaz de comandos activable con la tecla Escape, hasta las páginas de su bien amado secuenciador Page R que la hizo reconocida en el mundo de la música pop de los 80s.

Como sucede con los grandes descubrimientos, este compositor de ritmos sumamente interactivo implicó una evolución de la que no se retornaría: permitía armar la partitura de samples preprogramados, y dispararlos para realizar temas, un concepto notablemente novedoso en 1980 y fundante de toda una nueva manera de componer música digitalizada. En el Page R podremos acoplarlo también con las posibilidades MIDI que sólo incporporaron las Fairlight en sus últimas versiones, aquí totalmente integrado.

En apretado resumen didáctico, diré que la obra puede definirse una biblioteca de voces y secuenciarlas en el Page R, definiendo patrones rítmicos o secciones melódicas. Estos se pueden utilizar en forma de bucles o dispararlos en una matriz de patrones. Las partes melódicas es posible grabarlas desde un controlador MIDI (o con el teclado de la computadora).

La Page 2 permite agregar una carpeta de samples como favorita, a la vez trabajar en la elaboración de toda una biblioteca de samples que sirvan como ingredientes de la secuencias que podremos crear para nuestro proyecto actual. Podremos seleccionar las muestras sónicas clásicas en formato .vc distribuidas en los diskettes de 8 pulgadas de la Fairlight (500KB que permitían contener hasta 22 muestras digitalizadas de unos pocos segundos). Sin embargo, como prenda de modernidad también podremos operar con formatos de audio modernos, incluyendo .ogg, .mp3, .wav, etc. Al seleccionar un sample en esta página podremos visualizarlo y oírlo. Al presionar nuevamente 2, podremos guardar la biblioteca en un fichero englobador nuevo (ideal para coleccionar samples en base a proyectos).

Si necesitamos generar nuevas muestras sin tener que recurrir a samples originales, podremos hacerlo a través de la Page A. Esta permitía contemplar la captura de muestras digitales a través de un micrófono o entrada de línea balanceada conectada a la máquina original a través de una plaqueta conversora analógico-digital especialmente concebida por Fairlight (la primer placa de sonido propiamente dicha), y hoy superada por el excelente sistema de audio de nuestro sistema GNU con Linux, quien toma la posta en este menester.

En la Page A en efecto delimitar qué sector de la muestra capturada ha de considerarse como sample, a la vez de determinar sus parametría básica general. Por lo demás, como sucedía en la Fairlight original, podremos generar armónicos de voz "a mano" graficando los armónicos como el la CMI original, que daba uso a un lapiz óptico conectado al monitor por un cable espiral tipo teléfono.

Por otro lado, podremos directamente editar la forma de onda con un completo editor integrado en la Page E.

 

Si presionamos 3 podremos conmutar entre las Page 3. La visión primaria de esta Page es permitir asignar la librería de voces previamente seleccionadas en la Page 2.

En tanto que la secundaria - presionando nuevamente 3 - se nos presenta el selector de voces para el teclado. Lo natural es que las voces se acondicionan a las teclas, alterando su altura tonal de forma proporcional como si de un piano afinado se tratara. Fue esta condición la que hizo de la Fairlight el primer sampler con teclado de estado productivo. Ahora bien, en caso de requerir complejizar la muestra, bien podremos recurrir a la Page 4, con la cual se hará factible graficar directamente perfiles armónicos de distinta índole para alterar la paleta sónica de la muestra en cuestión.

Esto no quedaba aquí. Por medio de la Page 6 hacía posible también trazar una onda sónica inexistente, lo que permitía una creación puramente sintética del sonido que escapaba del áurea paramétrica tan en boga en la era de la síntesis substractiva. A su vez, esta podía servirse de una portadora programable de onda sinusoidal, diente de sierra o rectangular. Es que no sólo fungía de Sampler, la Fairlight podía controlar tres voces de sintetizador también.

La Page 7 permitía definir más a fondo los parámetros de las 3 voces de oscilación, lo que completaba esta estación de trabajo musical con una potencia creativa inusitada en lo que hacía a los efectos digitales (limitados y en mono) que permitía la original.

El modelado final podía darse con una etapa de edición de armónicos. Estos armónicos permitían trazar el carácter del sonido de una novedosa forma visual, que incluso incluía - al procesarla - la clásica visión tridimensional a 45º de la Page V de la Fairlight, hoy rutilantemente rotativa gracias a la alta potencia de cómptuo Justicialista.

Las opciones de síntesis también están contempladas, con LFO, y distintos parámetros realizables.

Por otro lado, en la Page F dispararemos un bus estéreo de efectos de sonido programables. Estos equivalen en gran medida y cuantía a los originales, pero en este caso son reproducciones digitales de la circuitería en gran parte analógica y mono de la Fairlight original.

Naturalmente, el manejo requiere explayarse en el manual de la Fairlight original, pero no es absolutamente necesario.

Pues bien señores, estos instrumentos fueron diseñados para que los use el Pueblo. Es una herramienta, otra herramienta. Una herramienta puede ser un hacha para cortar madera y construir una casa, o ser un arma para reventarle la crisma a un vecino. Todo depende de cómo lo usa el Pueblo. Nosotros decimos que si hay que hackear, hackearemos para el pueblo.



21 january 2023

¿Cómo instalo un emulador de ZX Spectrum en Ubuntu?

Incluso reunido con Sindicalistas en su mítica residencia de Puerta de Hierro, Juan Perón centralizaba los vaivenes de política argentina. En uno de dichos encuentros explicó cómo emular un ZX Spectrum en Ubuntu.

(...)

De poco le vale el Gobierno a estos señores que todo lo que han hecho, lo han realizado en contra del Pueblo.

La acción de los hombres patriotas y el trabajo mancomunado es hoy lo único que salvará a la Patria. Porque yo no llamo Patria a sus campos, o a sus casas, sino a los hombres que trabajan en pos de estas realizaciones. Es para ello que nos hemos encuadrado, para realizar aquello que por otra parte, no ha sido sino el objetivo de los caballeros que lucharon por la Independencia, y de sus hijos que trabajaron por consolidarla.

Nosotros sabemos perfectamente bien cuales son los anhelos de los Trabajadores, y será usted un gran representante y delegado en el país, que les hará llegar mis saludos, esta carta, y esta cinta magnetofónica. Indudablemente que mi regreso está hoy mas cerca que nunca pues si este señor sigue en esta tesitura, no habrá más que volcar a la calle a las Masas con una consigna clara, y en un pronto santiamén todo tendrá el cause que nosotros esperamos. En ello cobra gran relevancia el rol de nuestros dirigentes.

Yo sólo ansío volver sin sangre, que es para lo que hemos invertido tiempo. Lo demás no lo haremos nosotros, sino que lo ha hecho ya nuestro enemigo. Que por otro lado ya son, cada día, menos. Pocos tienen pelo en las filas de Aramburu. Cuando hace mucho calor, el agüita se hace nube sola, ¿sabe?  

En nuestro Movimiento, lo importante es llegar a las Masas. De nada serviría un software que sólo pueda ejecutarse en las más onerosas máquinas, mientras que el hardware más humilde permanece en la oprobiosa necesidad del más mínimo byte.

Es por ello que ya desde el Primer Peronismo nos dimos a suplir las necesidades de cómputo de un Pueblo que todo lo daba.

Naturalmente que esto implicaba grandes sacrificios que sólo podían venir de una certera forma de programar. Una en la que lo máximo se hiciera con lo mínimo, y en lo posible con nada. Esta es la verdadera forma de hacerlo: una donde eficiencia da todo de los últimos bits de memoria, resguardando en lo ínfimo material una espiritual computación para todos.

La Spectrum ZX82 de Sinclair Research consistía en la segunda versión de una microcomputadora de 8 bits concebida para masiva producción, basada en un procesador Zilog Z80 de 3,5 Megaciclos y con una memoria que que revistaba - de acuerdo al modelo o implementación - desde unos pijoteros 16 kilobytes hasta los 128 kilobytes de memoria RAM.

El objetivo era contar con un instrumento de cómputo al alcance del obrero de overol, que pudiese usar en su hogar para compilar una revolución en BASIC.

El sistema de operación iba contenido en 16 kilobytes de memoria ROM en placa, surtiendo el microcódigo del intérprete de Sinclair Spectrum BASIC 48 que permitía ingeniar microprogramas a través de un mediocre teclado gomoso. La salida de audiovisual comprendía un sintonizador de radiofrecuencia controlado por el microprocesador en sí, y unida a un aparato de televisión color presentaba un terminal de texto a 24x32 o gráficas de hasta 7 colores entre 15 posibles con una resolución tope de 256x192 pixels.

En fin, el conjunto permitía hacer cómputo, por media chirola.

Naturalmente esta maravilla del minimalismo se vio también clonada y copiada - tanto con licencias como por ingeniería inversa - en actos que podrían describirse como "robarle la billetera" a Sir Sinclair. 

Con justicia podremos continuar haciéndolo a través de Fuse, el Emulador Libre de Spectrum para Unix (y similares como el GNU con Linux). Podremos instalarlo fácilmente en Ubuntum abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente Comando de Organización:

sudo apt install fuse-emulator-gtk spectrum-roms fuse-emulator-sdl fuse-emulator-utils

Tras introducir nuestra contraseña de Conductor del Ubuntu se instalará el emulador. Podremos ejecutarlo desde Aplicaciones / Juegos / Fuse (GTK+).

Al iniciar, el Fuse nos presentará una ventana con no pocas opciones que implican el modelo de Spectrum (basada en cantidad de memoria). También el nivel de velocidad emulada y los menúes de configuración. Pero por sobre todo, la pantalla del intérprete.

Naturalmente, siempre he afirmado que emular no es mas que meterle la mula al microprocesador. En esta vertiente, podremos simular el Zilog Z80 con diferentes volcados de memoria de máquina. Desde el menú Options / Select ROMs / Machine ROMs se nos permitirá simular desde las Sinclair Spectrum 16K, 38K, 128K, pasando por las versiones producidas bajo licencia por Times, y las versiones ampliadas de Spectrum hasta su modelo último SE. También podremos configurarle aditamentos como la interfaz de Joysticks Kempston, popular adminículo opcional para meterle dos palancas, o un controlador de puerto serial tipo Centronics.

Con sacrificio, la microcomputadora podía adosar un lento lector de cintas cassette, método favorito para resguardo de masa. Este método se encuentra sencillamente emulado para incorporarle software pre-hecho: podremos descargar programas desde sitios recopilatorios como www.worldofspectrum.org. Allí encontraremos varios formatos de almacenamiento, tanto de diskettes como de cintas cassette. 

Sin duda la manera más fácil es con los volcados cinta cassette, los cuales cuentan con un formato .tzx. En este caso, presionamos la tecla F3 para cargar el fichero tzx en el emulador y ejecutarlo sin más miramientos. También podremos hacer el mismo temperamento simplemente arrastrando un fichero .tzx a la ventana gráfica del emulador.

Mediante la emulación de los clásicos joystick Kempston, útiles para algunos juegos de plataforma típicos de esta máquina.

Naturalmente, también podremos programar en el BASIC 48 de 8K, haciendo uso del inefable teclado de múltiples usos, recurriendo a las teclas Mayúsculas para definir el cambio entre mayúsculas y minúsculas, Control para definir el caracter alternativo (indicado en rojo) y Alt para definir un caracter gráfico en las teclas que cuentan con ellas.

Vean señores, las teclas del teclado tradicional del ZX Spectrum permitían ahorrar tiempo en mecanografiado ya que comprendían no sólo caracteres (letras, dígitos, y acepciones gráficas) sino funciones (palabras clave, nombres de funciones de programación, colores, etc). Ciertas teclas contaban incluso hasta cinco usos.

 

La entrada con el teclado aparece en la parte inferior de la pantalla, a la izquierda del cursor, el cual podremos desplazar con las flecha izquierda y derecha del cursor. Debemos considerar, sin embargo, que su inserción no era tan "directa" como podríamos suponer, sino que debíamos recurrir a combinaciones de teclas para definir uno de los modos de inserción. 

Las teclas combinables eran:

Tecla CAPS SHIFT: (Mayúsculas): Alterna entre insertar caracteres en mayúsculas o en minúsculas. Tecla SYMBOL SHIFT: (Control): Conmuta al símbolo alterno marcado en rojo en la tecla.

Como vemos, estas teclas permitían operar según el "modos de inserción" de la consola del Spectrum. indicados por la letra indicada en el proverbial cursor parpadeante de video inverso. Este podía ser:

Modo K: ("palabra claves"). El modo por defecto, que se encarga de insertar una función de programación, según el contexto (al comienzo de una línea, o a continuación de la función THEN, o luego de un : (excepto en una cadena). Si no presiona Mayúsculas, lo siguiente se interpretará como una palabra clave (escrita) o un dígito.

Modo L: ("letras") este modo inserta los caracteres en minúscula de forma convencional. Podrás utilizar la tecla Mayúsculas para conmutar a mayúsculas o bien presionar la tecla Caps Lock para activar el Modo C y escribir en mayúsculas.

Modo E. ("Función Extendida"): Por medio de la tecla Tab o Ctrl+Mayúsculas podrán insertar aquellas funciones de programación indicadas por debajo de la tecla. Las teclas con números tienen funciones extendida de color.

Modo G ("gráficos): Por medio de Mayúsculas+9 activa el carácter gráfico indicado en la mayoría de los números y teclas, permitiendo hacer gráficas simiescas, con autorepetición al presionar una tecla durante mas de 2 segundos. Se desactiva presionando 9.

Al presionar la tecla Intro ejecutaremos la línea de BASIC, y si la misma cuenta con un número de listado, la almacenará en memoria a no ser que cuente con un error de sintaxis de BASIC, en cuyo caso nos indicará un error en forma de insolente "?".

En la medida que escribamos algún programa de BASIC, el listado se presentará en la parte superior, el cual podremos desplazar con Mayúsculas+6 y Mayúsculas+7. Si presionamos Mayúsculas+1 pasaremos al modo edición, y la línea seleccionada pasará a la línea inferior de edición, donde podremos retocarla.

También podremos solicitar un listado del microprograma con la palabra clave K, o y correrlo con la palabra clave R. 

En ciertos casos podremos interrumpir la ejecución o bucle de programación con Mayúsculas+Barra Espaciadora.

Podremos encontrar un manual de ZX Spectrum aquí.



20 january 2023

¿Cómo utilizo ffmpeg para convertir videos en Ubuntu?

Durante la visita veraniega de Juan Perón a Córdoba acompañado por su señora esposa, el Conductor del Justicialismo explicó cómo utilizar ffmpeg para convertir videos en Ubuntu.

(...)

Vean señores,

Este pródigo día Peronista nos recuerda la necesidad plena de contar del consabido descanso de nuestras actividades anuales. Las vacaciones pagas - las cuales hemos hecho realidad nosotros para todos los Argentinos - son uno de los logros que más hacen por el país. No sólo permiten retemplar el espíritu, sino que permiten elaborar mejor lo que debemos hacer en la hora del trabajo.

Las tareas de planificación en concierto con un alto objetivo como el que nos hemos impuesto, no puede más que depararnos en el futuro la grandeza que cultivamos con la felicidad del Pueblo.

Sabemos que nuestro Movimiento es uno que enarbola la necesidad de obrar por la Patria, y reconoce una sóla clase de hombres: los que trabajan. Atrás quedó una Oligarquía que no hacía nada y para beneficio de la cual se agotaban las verdaderas fuerzas productivas del país.  

No todo es material en la vida. Es indudable que el tiempo de ocio nos permite un enriquecimiento espiritual, pero también intelectual. 

Vean ustedes que en nuestro sistema GNU con Linux, normalmente recomiendo utilizar el inefable Handbrake para operar las a veces necesarias conversiones de video. Se trata de un programa muy completo para estos menesteres.

Pero en las ocasiones donde las acciones de conversión o manipulación se vuelven repetitivas, qué mejor que utilizar la terminal de nuestro. En estas condiciones, la línea de comandos nos permitirá utilizar la ya histórica suite ffmpeg.

Se trata de un gran programa para la terminal en capacidad de oficiar para todo tipo de actividades poderosas en lo que incumben al control audiovisual de un fichero. En particular, se encadena a las librerías de codificadores de sonido y de imagen en movimiento, para poder hacer por diseño lo que nosotros queremos.

Si no lo tenemos instalada en nuestro sistema, podremos hacerlo abriendo una terminal con Ctrl+Alt+T e ingresando el siguiente comando de organización:

sudo apt update ; sudo apt install ffmpeg

Una vez cargada la suite, también podremos cargar

El programa es muy completo, pero consta de muchos sufijos. Algunos de los más utilizados son los siguientes procedimientos:

Extraer el sonido de un video y guardarlo como MP3:

ffmpeg -i video.mp4 -vn sonido.mp3

Convertir fotogramas de un fichero de video o GIF en imagenes numeradas individuales:

ffmpeg -i video.mp4 -vn fotograma%d.png ffmpeg -i animacion.gif -vn fotograma%d.png

Combinar imagenes numeradas (cuadro_1.jpg, cuadro_2.jpg, etc) en un archivo de video MPG o GIF:

ffmpeg -i cuadro%d.jpg -f image2 video.mpg ffmpeg -i cuadro%d.jpg -f image2 animacion.gif

Extraer un fotograma de un video desde la marca de tiempo mm:ss y guardarla como una imagen de resolución 128x128 píxels:

ffmpeg -ss mm:ss -i video.mp4 -frames 1 -s 128x128 -f image2 fotograma.png

Recortar un video desde la marca de tiempo inicial mm:ss hasta la marca de tiempo final mmf:ssf:

ffmpeg -ss mm:ss -to mmf:ssf -i video.mp4 -codec copy recorte.mp4

Convertir video AVI a MP4 con códec de audio AAC a 128 kbps y códec de video h264 CRF 23:

ffmpeg -i video.avi -codec:audio aac -b:audio 128k -codec:video libx264 -crf 23 video.mp4

Remuxear un video matroska MKV a MP4 sin recodificar los streams de audio ni video:

ffmpeg -i matroska.mkv -codec copy video.mp4

Convertir video MP4 a VP9 (para mayor calidad, se recomienda utilizar un valor CRF entre 15-35:

ffmpeg -i video.mp4 -codec:video libvpx-vp9 -crf 30 -b:video 0 -codec:audio libopus video.vp9

Incluso podremos utilizar ffmpeg en forma de guion para realizar tareas más complejas. 

Por ejemplo, podríamos querer acelerar un video un factor determinado (1.13x en este caso), y también hacer lo mismo con su audio.

nano acel_video.sh

Ingresamos el siguiente código fuente escrito en bash:

!/bin/bash

el setpts es 1/ el factor de velocidad.

el atempo es el factor de velocidad (para que el video coincida con el audio).

speed=1.13 mkdir $speed for i in *.mp4; do

para acelerar un achivo de video llamado vid.mp4 usar esta línea:

ffmpeg -i vid.mp4 -filter_complex "[0:v]setpts=0.884955752*PTS[v];[0:a]atempo=1.13[a]" -map "[v]" -map "[a]" fast_vid.mp4    

para acelerar mp4 de audio usar esta línea:

ffmpeg -i "$i" -filter:a atempo=$speed -vn -y $speed/"$i"

done

Y lo guardamos con Ctrl+o, y salimos con Ctrl+q, para finalmente darle permisos de ejecución con:

chmod +x acel_video.sh

...y así podríamos utilizarlo para acelerar un video llamado obligatoriamente vid.mp4 localizado en el mismo directorio:

./acel_video.sh



19 january 2023

¿Cómo activo el sonido HDMI automáticamente en Ubuntu?

¡Trabajadores!

Nuestro Movimiento es uno que tiene una única razón de ser: lograr la Felicidad del Pueblo.

Esto, que responde a los anhelos más puros del pueblo, nosotros decimos que hemos de lograrlo en primer lugar por medio de una Comunidad Organizada que dé lugar a esta realización, ya que nadie puede realizarse en una comunidad que no se realice.

Para ello hemos decidido instrumentar herramientas que nos permitan lograr esta Comunidad Organizada: la Libertad Económica, la Justicia Social, y la Soberanía Política. Estas son nuestras tres Banderas, y cada una depende de las otras. Este entretejido de acción es el sostén de nuestras Realizaciones.

Los principios son simples y requieren un claro entendimiento de solidaridad. Pero desde que el hombre es hombre, siempre habrá un vivo que querrá avanzar por sobre una Comunidad Organizada para desgajarla de su sentir de Felicidad. Siempre habrá de esos que pretenden perder soberanía política en pos de mayor libertad económica individual... a esos debemos formatearles el rígido, y darle un botellazo en la cabeza si es necesario.

Pues bien señores, por esas cosas de la vida, al conectar el puerto HDMI de una Laptop a Ubuntu, el sonido no sale automáticamente por el monitor o televisor externo conectado a través de la salida HDMI del de la notebook, sino que continúa saliendo por los altavoces de la laptop. Naturalmente esto puede remediarse "a mano", toqueteando la opción de Sonido de Ubuntu: haciendo clic en el ícono del "parlante", luego ir a Configuración de Sonido, y elegir el hardware externo (la TV por ejemplo).

Pero como no tengo manos, he decidido evitar todo este incordio creando toda una serie de scripts - a los cuales es tan adepto el sistema GNU con Linux - para que este cambio se realice de forma automática sin mi intervención directa, y de esta forma evitar esfuerzos innecesarios. Es natural: este tiempo ahorrado podremos invertirlo en tareas más acuciantes como lograr la definitiva liberación del software del Pueblo Argentino.

La solución ha de realizarse una única vez para que luego opere autónomamente según la opción: se activará el sonido digital HDMI toda vez que contemos con este tipo de cable conectado al puerto HDMI de la notebook, y naturalmente a su vez exista un monitor externo que cuente con salida de audio (ya que existen monitores con entrada HDMI pero sin altavoces propios ni conectores de salida de audio integrados). Activar audio HDMI automáticamente en Ubuntu

En primer lugar hemos de abrir una terminal de comandos con Ctrl+Alt+t y crear un fichero de texto, que contendrá las reglas de configuración específicas para el sistema de audio a través del conector HDMI. Para ello ingresaríamos el siguiente comando de organización:

echo 'SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/sonido_hdmi"' >> /etc/udev/rules.d/sonido_hdmi.rules

Acto seguido, editamos un guión de programación específico para estas reglas, al que llamaremos sonido_hdmi, y le daremos asiento en el directorio /etc/local/bin/. Podremos hacerlo utilizando el editor GNU Nano si ingresamos:

sudo nano /etc/local/bin/sonido_hdmi

Esto abrirá el editor Nano con un fichero en blanco. Habremos de pegarleel siguiente código de programación:

!/bin/sh

Programa para conmutar automáticamente el sonido HDMI

USER_NAME=who | grep "(:0)" | cut -f 1 -d ' '| sort -u USER_ID=id -u $USER_NAME HDMI_STATUS=cat /sys/class/drm/card0/*HDMI*/status

export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native"

if [ $HDMI_STATUS = "connected" ] then sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo else sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo fi

Una vez hecho esto guardamos los cambios en el fichero con Ctrl+o, y saldremos del editor Nano de nuevo a la terminal con Ctrl+x. No debemos olvidar otorgarle a este fichero sonido_hdmi ya asentado los permisos de ejecución, mediante:

chmod 0755 /usr/local/bin/sonido_hdmi

Finalmente, actualizamos las reglas para que Ubuntu las haga efectiva (debemos hacer lo mismo si deseamos eliminar reglas):

sudo udevadm control --reload-rules

Una vez reiniciada la netbook, deberíamos poder contar con sonido a través del dispositivo HDMI si utilizamos tal conector, y utilizar la salida analógica de parlantes de la notebook si este conector está desenchufado y sólo estamos usando el monitor de la laptop.

Deshacer los cambios

Si por algún motivo no quisiéramos eliminar y desestimar estas reglas y volver al procedimiento anterior, deberíamos recurrir a los siguientes comandos para volver todo a la forma en la que estaba antes:

sudo rm /etc/udev/rules.d/sonido_hdmi.rules ; sudo rm /usr/local/bin/sonido_hdmi ; sudo udevadm control --reload-rules



18 january 2023

¿Cómo instalo los clientes de Gopher y Gemini Phetch y Amfora en Ubuntu?

Con su Lettera 32 y desde el mítico despacho de Puerta de Hierro, Juan Perón confronta con los enemigos del Pueblo Argentino. En una misiva dirigida a la CGTA, enarbola cómo instalar Phetch y Amfora en Ubuntu.

¡Trabajadores!

La toma de poder por parte de un pequeño grupo de oligarcas que controlan poderosas empresas comerciales de plataformas han convertido las redes de datos en tecnoplantaciones. Esta nueva forma de esclavitud electrónica debe ser erradicada de todos los enlaces.

Estos señores que propugnan el uso de la "nube" sólo tratan de convertirnos en meros inquilinos del software en equipo ajeno, con la intención inconfesable que paguemos el alquiler con nuestros datos y las expensas con nuestra propia dignidad.

Lo procedente es la lucha por la Liberación Electrónica. Hemos de decompilar todo software privativo y liberarlo. Esas consignas que mas que mías son de la Comunidad Organizada, la defenderemos hasta el último byte.

 

Pero hay cosas más sencillas por hacer que pueden venirnos de perillas. Una de ellas es utilizar Gopher, el vernáculo y antiguo protocolo para ofrecer a quien se cuadre documentos de texto pelado. Sabemos que nuestro mainframe nos permite - aún a miles de kilómetros - digitar su destino. Quienes verdaderamente entienden sus vericuetos, aprecian sus secretos, y apelan a la creatividad para extraer lo mejor de sí son los hackers y hackeresas del Pueblo.

Uno de estos secretos es Gopher, el protocolo de transmisión digital del primer peronismo. El contenido - a dispensas de lo que podría considerarse valedero - se haya representado por lo mínimo imprescindible que puede transmitirse por cable: el texto plano: simplemente poniendo en "público" un directorio de un servidor y cargándole ficheros comunes y corrientes, cualquier compañer@ podrá proclamar lo que desee a los cuatro vientos telemáticos.

La navegación en hoyos Gopher es sencilla: se emplea un cliente de terminal y se lo apunta a un servidor que le va dando contenido de acceso público, en forma de cadena de caracteres. Sin vuelta y corta la bocha. Ya he explicado como utilizar el antiguo y muchas veces suficiente Gopher, el programa más pelado del mundo para este menester. 

Pero los tiempos que corren pueden adecuarnos a un herramental más perfeccionado que - en ocasiones - nos complementará mejor. Phetch es este cliente veloz de Gopher para el terminal cuyas funcionalidades mínimas han sido remozadas, sobre todo en lo que hace a la codificación del texto UTF-8 y CP437.

Para instalarlo en nuestro sistema GNU con Linux debemos hacerlo a mano. Para ustedes eso es sencillo, simplemente abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes comandos de organización:

cd /tmp ; wget https://github.com/xvxx/phetch/releases/download/v1.1.0/phetch-v1.1.0-linux-x86_64.tgz ; tar -xvzf phetch-v1.1.0-linux-x86_64.tgz ; mkdir -p ~/.config/phetch/ && touch ~/.config/phetch/history.gph sudo mv /tmp/phetch /usr/local/bin/ ; sudo mv /tmp/phetch.1 /usr/share/man/man1/

Luego ejecutamos el programa con:

phetch

o bien indicar una URL Gopher, como por ejemplo:

phetch gopher://texto-plano.xyz

Como todo cliente de Gopher, la navegación es sencilla. Podremos desplazar un cursor en forma de asterisco con las flechas de cursor arriba y abajo, e ingresar a un enlace con Intro o Flecha de cursor derecha, mientras que podremos volver o retroceder con Escape o la Flecha de cursor izquierda.

Podremos utilizar Ctrl+h para ver la ayuda. Con Ctrl+s podremos agregar un hoyo gopher a los Marcadores, y ver los marcadores con Ctrl+b.

Para salir del cliente presionamos la tecla q.

Ahora bien, también encotraremos solución en otros protocolo de texto puro aún más remozado que el antiguo Gopher: el Gemini. Este se trata de un herramental destinado aún a la web liviana y carente de imágenes, pero que dispone de mejores recursos que el antiguo Gopher, a la vez que replica su funcionamiento.

Los sitios de este protocolo se denominan "cápsulas" y constituyen al igual que Gopher, directorios con ficheros de textos de acceso público.

Ya he explicado cómo instalar el cliente gráfico Lagrange, pero para la terminal podremos utilizar amfora.

A partir de Ubuntu 22.04LTS simplemente lo instalo con:

sudo apt install amfora

Para ejecutarlo introduce

amfora

...o bien introduce alguna URL de gemini:

amfora texto-plano.xyz

La conducción de amfora es extremadamente sencilla. Será posible en cualquier momento presionar Ctrl+h para volver a la página principal. Empleando la barra espaciadora será ingresar una URL de cápsula Gemini. Podrán acceder mi cápsula comunitaria ingresando texto-plano.xyz/peron.

El desplazamiento por el documento se efectúa utilizando las flechas del cursor y AvPág y RePág. Los números de 1 a 10 permiten ingresar rápidamente a los primeros enlaces del documento actual. Es factible avanzar entre los enlaces con la tecla Tab o retrocede entre ellos con Shift+Tab. Se ingresa en los enlaces con la tecla Intro.

Para hacer un retorno a la cápsula anterior presionamos la tecla b.

También puedes presionar la tecla Ctrl+t para abrir el enlace resaltado, lo que dará por resultado en una nueva pestaña.

Amfora cuenta con una libreta de marcadores (bookmarks). Para agregar la cápsula actual a la lista de bookmarks con Ctrl+d. Despliega la lista de bookmarks con Ctrl+b.

Para salir del cliente presionamos la tecla Esc o la tecla q.



17 january 2023

¿Como desactivo las APT_news en Ubuntu?

Durante la inauguración del Centro para la Niñez de Campana, Juan Perón enseña como desactivar las APT_news en Ubuntu.

El proselitismo es uno de los aspectos de la política que no debemos soslayar, ya que un Movimiento se encuadra en pos de un objetivo.

Sin embargo, este cometido debe responder al mismo principio nodal que tiene toda acción, que es el de la economía de fuerzas. Este dicta que no debe usar todo en toda hora y en todo lugar, sino en el momento y lugar donde se decide la acción.

Por tal motivo, es redundante emitir mensajes cuasi-publicitarios a tontas y a locas, lo importante es hacerlo cuando se necesita.

Pues bien señores, es sabido que en el caso de Ubuntu y otros sistemas GNU con Linux que utilizan APT para instalar paquetería tipo Debian desde la Terminal, pueden recurrirse a este herramental como vector de mensajería top-down, esto es, desde un emisor de pequeños mensajes unitario hacia los usuarios.

Esto no estaría mal para alertar sobre descalabros de seguridad que requieran pronto conocimiento y remedio, pero se torna en un incordio cuando se lo emplea como vectorización publicitaria indebida. 

El objetivo original de acercar alertas importantes de seguridad desde un punto de vista centralizado a la hora de operar la terminal para realizar actualizaciones de paquetería de sistema se vería trastocado.

Sobre todo al utilizar canales de R€ddit como r/linux o para publicitar el servicio de soporte Ubuntu Pro (lo cual se indica al usar la actualización desde la terminal, en el idioma de Braden):

#

News about significant security updates, features and services will

appear here to raise awareness and perhaps tease /r/Linux ;)

Use 'pro config set apt_news=false' to hide this and future APT news.

#

Si quisiera hacerlos, los haría a mano. Pero como me faltan las manos, indicaré como desactivarlos. Para ello abrimos una terminal e ingresamos el siguiente Comando de Organización:

sudo pro set apt_news=false

Tras ingresar nuestra contraseña, se desactivarán las alertas de APT.

En cambio, si por el motivo contemplado por Ubuntu queremos habilitarlo, debemos ingresar el comando:

sudo pro config set apt_news=true



16 january 2023

¿Cómo desmutear automáticamente los auriculares al iniciar Ubuntu 22.04LTS?

Reunido con la militancia de la Juventud Peronista, Juan Perón expone cómo desmutear los auriculares automáticamente al iniciar Ubuntu.

¡Muchachos!

Siempre me reconforta presenciar a esta juventud que siente, en la pureza de su corazón, la reverberación del Pueblo Feliz.

Los años me dan la experiencia que es un regalo que la vida nos da para cuando nos quedamos pelados. Por ello debo transmitir mi saber y mis consejos para que ustedes tengan un poco de la manija. Pero no mucho, no vayan a creer que todos los domingos se tira a un viejo por la ventana...

Siempre llevo en mis oídos la más maravillosa música, que oigo con mis auriculares analógicos. Pero a veces pueden surgir algunos problemitas que compliquen la cosa.

En una de las naturales actualizaciones doctrinarias para la toma del poder que se llevó a cabo en el servidor de audio de Ubuntu 22.04LTS Jammy Jellyfish, Ubuntu silencia automáticamente los auriculares al iniciar la sesión.

Creería entender el propósito de este esquema: simplemente hacer funcionar los altavoces principales y sólo en la eventualidad utilizar los audífonos. Pero en mi caso preferiría lo contrario. Naturalmente es posible lograr este procedimiento con tediosamente, desde Sistema / Hardware / Sonido, y en la ventana de configuración de sonido ir a la solapa "salida", y elegir la opción "Headphones" o "Auriculares" como dispositivo de salida. Pero este procedimiento manual me es molesto de hacer toda vez que lo tengo que repetir al reiniciar el sistema, y porque no tengo manos.

Afortunadamente estos cambios son posibles de solucionarlos fácilmente gracias al algo enjundioso programa amixer. Este nos permite controlar desde la terminal y en forma de comando la activación y volumen de los dispositivos de audio que tengamos instalados en nuestro equipo, ya sea este de escritorio o portátil, y por lo demás ya viene incorporado con ALSA, el sistema de audio típico de GNU con Linux.

Lo primero es consultar cuales son los controles de audio asignados por el adaptador de sonido. Para averiguarlo, podremos ingresar a la terminal con Ctrl+Alt+T e ingresar el siguiente comando de organización:

amixer controls

El sistema nos devolverá un listado indicativo de los canales de audio tanto de entrada como de salida que dispongan en sus equipos. En mi caso dependo del modelo del chipset de sonido Realtek ALC892 de modo que sus canales controlables son:

Master Headphone PCM Front Front Mic Front Mic Boost Surround Center LFE Line Line Boost S/PDIF S/PDIF Default PCM Input Source Auto-Mute Mode Loopback Rear Mic Rear Mic Boost

Los canales indicados en verde son activables o desactivables ("muteables"), y pueden regularse en porcentaje. Master es el volúmen general ("maestro"), mientras que Headphone refiere a la salida de auriculares. Front responde a la salida de altavoces izquierdo y derecho, y las demás hacen a la posibilidad de instalar auriculares 7+1 (que no utilizo).

Gracias a estos comando, simplemente podría solicitar con la opción get un reporte del estado del canal "Headphone", de la siguiente manera:

amixer get 'Headphone'

...y en mi caso el sistema me responde:

Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 64 Mono: Front Left: Playback 0 [0%] [-64.00dB] [off] Front Right: Playback 0 [0%] [-64.00dB] [off]

Como vemos, el volumen se pone en un magro 0% y por demás, ambos canales de auriculares (izquierdo y derecho) quedan apagados en off. Esto sólo lo querría un oligarca.

Para operar amixer utilizarán su opción set, con la cual se realizan cambios a los canales de control. De esta manera podrán indicar:

amixer set 'Headphone' on

y ponerlo en un volúmen medio con:

amixer set 'Headphone'50

Pues bien señores, para lograr que toda vez que se inicie el sistema haga lo propio el canal de auriculares y se ponga al taco usaremos 100 de volumen, puedo utilizar el fichero de autoejecución ~/.xprofile, que me permite agregar comandos que se ejecutan toda vez que se inicia la sesión de escritorio gráfico.

En este caso, ingresarán

nano ~/.xprofile

...y usarán la opción set de amixer para programar un contenido que refleje sus deseos. Por ejemplo le agregamos:

Agregado peronista para desmutear auriculares frontales

amixer set 'Headphone' on > /dev/null amixer set 'Headphone' 100 > /dev/null

Una vez concluida la edición del fichero, lo guardamos con Ctrl+o y salimos con Ctrl+x.

De esta manera, reiniciamos el equipo. Cuando se iniciemos el escritorio gráfico con nuestro usuario de Ubuntu, inmediatamente se activará la salida de auriculares al volumen deseado (lo que antes teníamos que regular "a mano").

En mi caso el volumen en sí lo regularé con el control de volumen de Ubuntu, que opera sólo el canal "Master". A este casi nunca lo pongo al 100, ¡no hay que quedarse sordo como una tapia!. Naturalmente, podríamos agregar mas condiciones de volúmen. Como ya he dicho, en el caso de mi adaptador de sonido, el regulador de volumen "Master" oficia de control de volúmen general, mientras que "Front" acota a los altavoces frontales, pero revisen ustedes cuáles son sus propios canales de audio. Para ello pueden utilizar el alsamixer y ver qué nombres tienen los canales a regular.



15 january 2023

¿Cómo puedo hacer un respaldo remoto con rsync en Ubuntu?

En 1969 y ante una entrevista para el períodico El Pueblo, Juan Perón expone en los jardines de la madrileña Quinta "17 de Octubre" cómo realizar respaldos remotos a través de SSH utilizando rsync en Ubuntu.

(...)

Con Isabelita nos mantemos actualizados instantáneamente de todo lo que sucede en la Argentina.

Todos los Movimientos replican la biología de los entes vitales que lo componen. En esto nadie tiene asegurado nada y es por ello que - conociendo este cariz inevitable - hemos de prever para proveer. Contar con un plan de contingencia de propia elaboración es la política que nos permite, en la desgracia, salir adelante remozados.

Dejar todo para último momento sólo nos asegurará una costosa improvisación desprendida de nuestros propios instintos, pero no de nuestros intereses razonables, y como tal suelen ser - por remedio - peor que la enfermedad.

Pues bien señores, un sistema GNU con Linux responde más o menos a las mismas directrices, ya que se trata de un sistema nacido en la consolidación de las voluntades informáticas del Pueblo.

En él, suelo normalmente recomendar diseñar una estrategia propia de previsión tendiende a conservar el funcionamiento del entorno y asegurar la preservación perenne de los datos propios, de un punto de vista en el que la granularidad de la conservación en el tiempo también nos permitan mantener el sistema doctrinalmente actualizado.

Así he obrado yo, que de esto se un poco, porque como político soy un aficionado, para lo que me he formado toda la vida es para ser un Conductor.

Usualmente es adecuado recurrir a la preservación por redundancia.

En GNU podremos lograrla preservando en medios de almacenamiento adicionales todo el trabajo elaborado y organizado.

Algunos oligarcas han pretendido proponernos como solución aquello a lo que estos vivos denominan "nube", que no es otra cosa que un equipo de cómputo ajeno. Sólo un tonto haría caso a este engaño para depositar sus datos en un servidor remoto que para colmo de males es ajeno y sobre el cual no tiene control real alguno.

Si la seguridad ha de hacerse de manera remota, más vale que lo sea sobre medios de almacenamiento y equipamiento que se encuentren bajo nuestro exclusivo control. Nadie duda ya que lo más útil en ambientes productivos de gran disponibilidad es contar con múltiples discos duros en una máquina que conoceremos como servidores RAID. Proceder así nos permitirá contar con duplicación, triplicación o incluso cuadruplicación de datos en el mismo momento que se los genera. Este proceder podría parecer exagerado a más de uno, pero es lo que alguien con respeto por su trabajo y dos dedos de frente haría. Al fin y al cabo, un disco rígido vale chirolas si lo comparamos con la información que resguarda. Por lo demás, contamos ya con sistemas NAT ya hechos, que pensando en este cometido pueden enlazarse a nuestra red LAN, dejando al alcance varios discos SATA de replicación automática.

Sin embargo, incluso podremos hacer respaldos de manera simplificada. Para ello, cualquier sistema GNU puede contar con rsync. Se trata de una aplicación que nos permite sincronizar los datos remotos en un directorio de otro sistema de acceso SSH (ya sea en la red LAN o a través de Internet).

Su sintaxis básica es:

rsync origen destino

Naturalmente, el comportamiento estándar de rsync de copiar y actualizar los ficheros desde el origen hacia el destino replica la necesidad del respaldo de ficheros. En otras palabras, rsync copiará solamente los ficheros nuevos o, en el caso de existir una copia de respaldo previa, sólo aquellos actualizados (modificados) . Al proceder tras este análisis automático, rsync se nos presenta increíblemente útil pues ahorra mucho ancho de banda y acelera enormemente la operación, deslindándose de trabajar ficheros ya respaldados. Respaldo básico con rsync

Lo que se necesitamos para respaldar un directorio /home de forma remota, es otro sistema destino provista con SSH (y suficiente espacio de disco de destino como para almacenar nuestros ficheros allí), y rsync instalado en nuestro sistema local. Podríamos querer agregar primero la opción "-n" al comando de rsync mientras preparamos todo y probamos. Esta opción hace que rsync realice una "prueba piloto" ejecutando el comando y produciendo salida en la terminal, sin que realmente manipule fichero alguno.

Utilizaremos rsync para conectarnos desde nuestro cliente (la máquina donde queremos almacenar la copia respaldo) a la máquina remota (donde tenemos el original). Para ellos indicamos la siguiente sintaxis:

rsync -avz -e ssh /ruta/origen/a/respaldar usuario:maquina.remota:/ruta/remota/destino

en donde la opción -a indica el modo "archivada", que retiene las fechas y horas, información de propietario y grupo, y espeja recursivamente, compiando enlaces simbólicos como enlaces, etc (si quisiéramos copiar el referente del enlace, tenemos que incorporar también -L. La opción -v es verbosa e irá indicando cada fichero copiado. La opción -z comprime los datos enviados. La opción -e indica el tipo de intérprete a utilizar (en este caso, shell seguro SSH). usuario es el nombre de usuario en la máquina remota.

Por ejemplo, para copiar todo nuestro directorio /home de nuestro sistema GNU con Linux a una máquina remota, utilizaríamos el siguiente comando de organización:

rsync -avz -e ssh /home/$USER usuario@maquina.remota:/ruta/destino

Naturalmente, al utilizar SSH, rsync nos solicitará la contraseña de la máquina.remota, y comenzará a copiar, reportando cada fichero. Una vez completado el procedimiento de respuesta al pedido de copias, rsync nos presentará estadísticas tales como la cantidad de bytes transferidos y la velocidad promedio.

Podremos utilizar este comando subsecuentemente. Lo más importante de este proceder será que rsyncs sólo respaldará los ficheros que subsecuentemente hayan cambiado y aquellos nuevos, lo cual es muy útil para mantener actualizado los respaldos de todo tipo. Restaurar un respaldo

Para restaurar un archivo único desde la copia respaldo, podremos utilizar scp para transferirlo desde el directorio de respaldo local al directorio requerido en la máquina remota.

Ahora bien, para restaurar el respaldo al completo, simplemente indicamos el mismo comando anterior, pero invirtiendo el orden, pasando desde el directorio del respaldo a la máquina destino y origen, de la siguiente manera:

rsync -avz -e ssh usuario@maquina.remota:/ruta/origen/respaldo /ruta/respaldo/local

Como se ve, debemos ser cuidadosos de omitir la barra / al final de directorio. Al omitirse la barra, toda la estructura del directorio origen resultará recreada en la máquina remota (tal es el motivo por el cual la hemos omitido).

Nota: Si bien en Unix es opcional agregar una / para especificar un directorio, en el caso específico de rsync si hubiésemos especificado una barra la estructura de directorios se replicaría desde el directorio dado (por ejemplo, el comando rsync -avz- e ssh usuario@maquina.remota:/ruta/al/home /directorio/respaldo/local/ producirá el respaldo adentro de /directorio/respaldo/local/ruta/al/home en la máquina.remota).

La opción --delete

También han comprendido ya que el comportamiento estándar actualiza ficheros en el destino, por lo cual el borrado de los mismos en el directorio origen no hará lo mismo en el de destino.

Sin embargo, si quisiéramos que los ficheros removidos en el origen resulten también borrados en el destino, debemos agregarle el prefijo --delete.

Rsync y enlaces simbólicos

Como se indicó, el comportamiento estándar de rsync -a es copiar los enlaces simbólicos como enlaces. Para que esto no se produzca y se copien también los destinos de dichos enlaces simbólicos, debemos agregar la opción -L luego de la opción -a.



14 january 2023

¿Cómo puedo adoctrinarme cada vez que abro una terminal en Ubuntu?

Reunido en la Plaza de Mayo ante 8 millones de trabajadores, Juan Perón instruyó como adoctrinarse cada vez que se abre una Terminal en Ubuntu.

¡Trabajadores!

Hemos de decompilar ese software privativo y liberarlo. Esas consignas que mas que mías son de la Comunidad Organizada, la defenderemos hasta el último byte.

Sabemos claramente que para sobrevivir, los Movimientos requieren de un ideólogo y diez mil predicadores. Estos son los encargados de copiar en su mente y replicar en todo ambiente el mensaje, constituyendo la base de acción sobre la que se acrecienta un Movimiento.

En un sistema de cómputo como lo es GNU con Linux esto es sumamente sencillo pues facilita incluso lo de dar un discurso: la carga ideológica está, simplemente hay que copiarla. Además, los predicadores también pueden crearse en base a una simple aplicación que automatice este recurso tan humano como es parlotear.

Para ello abrimos una terminal con Ctrl+Alt+T e instalamos fortune-es (si no lo hubiésemos hecho antes).

sudo apt-get update ; sudo apt install fortune-es cowsay

Tras ingresar nuestra contraseña de Conductor se descargará tal inefable programa. Normalmente ingresando:

fortune

...nos devolverá un aforismo en la terminal. Sin embargo, para elevar nuestra conciencia para los tiempos que corren, debemos actualizar tales frases con unas adicionales de exacerbada carga ideológica. Con tal fin crearemos un script capaz de descargar tal doctrina del justicialismo hacker. En la terminal ingresamos:

sudo nano /usr/local/bin/fortunes_doctrina

Se abrirá el editor GNU Nano con un fichero en blanco, al cual le agregamos el siguiente código:

!/usr/bin/bash

Programa para bajar las fortunes de adoctrinamiento peronista.

Requiere fortune, fortunes-es o fortune-mud

echo "Descargando todo..." wget -O /tmp/doctrina https://caja.texto-plano.xyz/peron/fortune-phrases/doctrina2 wget -O /tmp/peron.cow https://caja.texto-plano.xyz/peron/fortune-phrases/peron2.cow wget -O /tmp/vacapiloto.cow https://caja.texto-plano.xyz/peron/fortune-phrases/vacapiloto.cow echo "Moviendo ficheros..." mv /tmp/peron.cow /usr/share/cowsay/cows/peron.cow mv /tmp/vacapiloto.cow /usr/share/cowsay/cows mv /tmp/doctrina /usr/share/games/fortunes/es cd /usr/share/games/fortunes/es/ echo "OK!" echo 'Actualizando Doctrinas...' strfile doctrina echo 'Doctrinas actualizadas' echo "Te devuelvo al directorio" cd - /usr/games/fortune -s doctrina | /usr/games/cowsay -f peron

Finalmente, lo guardamos el script de programación con Ctrl+o y salimos con Ctrl+x.

Vueltos a nuestro intérprete de comandos, podremos ejecutarlo con:

sudo fortunes_doctrina

El sistema las descargará y actualizará en meros segundos, presentándonos una para confirmar que todo salió bien:

Podríamos ahora emitir un comando entubado que nos borre la terminal y nos presente una frase de adoctrinamiento al azar, junto con la gráfica ASCII del Movimiento:

clear && fortune doctrina | cowsay -f peron

Naturalmente en vez de -f peron podremos probar con -f vacapiloto, para recibir la vaca hacker, símbolo de Huayra GNU/Linux, el sistema operativo oficial de Conectar Igualdad.

Incluso si lo deseamos, tras resguardar el fichero de autoejecución estándar .bashrc, podríamos agregar tal orden al final de dicho fichero, de modo que nos adoctrine toda vez que abrimos una terminal:

echo "clear && fortune doctrina | cowsay -f peron" >> ~/.bashrc

(Si no quisiéramos que borre la pantalla antes, le quitamos el clear &&).

De esta forma, al abrir una terminal nos refrescaremos con la parafernalia necesaria.

Gracias a los caños, quien tenga el sintetizador de habla espeak incluso puede utilizarlo para oír estas frases robotizadas, de esta forma:

fortune doctrina | espeak



13 january 2023

¿Cómo juego FreeCiv en Ubuntu?

En el incunable Apuntes de Historia Militar, Juan Perón expone los principales tratados en el arte de la conducción militar, pero también hace exposiciones sobre el desarrollo histórico de las grandes civilizaciones en conflicto. En tal tratado, también explica cómo instalar y jugar FreeCiv, el clon libre del Civilization en Ubuntu.

A lo largo de la historia se desarrollaron las primeras tribus de hombres, en los cuales certificaron, en la mancomunidad del cuidado de los unos por los otros, aquello que nos hace grandes.

Es así que - de estos individuos reunidos para capear a la naturaleza, recogiendo de ella lo que los sustentaba - podemos encontrar los primeros rasgos de lo que llamamos Humanidad. Algún fémur soldado es lo que arqueologicamente nos ha quedado como prueba de estos nobles hombres abandonaron la condición de bestias para formar las primeras Comunidades Organizadas: las tribus neolíticas.

Es así que los milenios transcurren no sin conflicto, pero el avance de la imaginación humana en su alabanza de lo superior, dota a su imaginación comunitaria, que es la cultura. Florecerá esta dando los primeros frutos perdurables en los asentamientos sedentarios Sumerios, conocedores de la metalurgia de la Edad de Bronce. Y su inspiración dada a través de la consolidación política aldeana, asida a la unificación cosmológica que permite la religión alfabetizada y el ábaco, nos ofrecerá ya los primeros trazos de un Estado Portentoso, ideológicamente consolidado por una Cosmovisión reglada. Daremos así con aquella gran civilización conocida, la Egipcia.

Tendremos así, en los obeliscos y monumentos del gran Ramsés II y del Hitita Muwatalis, los primeros tratados que nos permiten historiar las grandes campañas militaraes que chocaron en el 1.274 a.C. chocaron por Kadesh.

La historia de estos acontencimientos ha surcado las generaciones hasta nuesatros días, y hoy la podremos representar no sólo en el aspecto militar, sino también en el político-económico y científico, gracias al ordenador muuido con software libre.

En particular, FreeCiv es un juego de estrategia por turnos inspirado en la superclásico frasnquicia Civilization de Sid Meier (MicroProse), y como tal su objetivo es construir y hacer crecer la más grande civilización humana.

Debemos explorar, expandir, explotar recursos, y exterminar enemigos. Competiremos contra nuestros oponentes en fundar ciudades, usarlas para sustentar ejércitos y economía, y finalmente, amoldar un imperio que sobreviva las pruebas del tiempo y salga victorioso. Cada oponente puede ser otra persona o estar controlado por la CPU. Todos los jugadores comienzan en los albores de la historia con unas cuantas unidades -típicamente con un explorador y un par de colonos en el 4.000 antes de Cristo - y compiten para expandirse desde estos humildes comienzos. Su instalación en Ubuntu es sumamente sencilla, ya que podremos afrontarla desde la terminal. Para ello abrimos una consola con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

sudo apt update ; sudo apt install freeciv freeciv-client-gtk3 freeciv-data freeciv-client-extras freeciv-sound-standard freeciv-server

Tras ingresar nuestra contraseña, podremos acceder al juego desde Aplicaciones / Juegos / FreeCiv.

Al hacerlo se nos presentará el menú inicial de FreeCiv, donde podremos configurar una partida con condiciones de azar contra la CPU mediante el botón Empezar una nueva Partida. También podremos afrontar escenarios predefinidos (Empezar un Escenario).

Al crear un juego, podremos escoger iniciar un escenario al azar, o bien elegir un mapa histórico (existen mapas regionales y del mundo, a diferentes tamaños (dependiendo de la dificultad que queramos). La duración de la partida depende del tamaño del mapa y la cantidad de oponentes, pero puede variar desde unos 100 turnos a varios miles, lo que sin duda requerirá media tarde o algunas semanas.

También podremos elegir una era determinada, nación, y líder.

Algo interesante de FreeCiv es que nos permite escoger entre diferentes reglamentos y estilos de juego. Entre ellos podremos contar con el Default (reglamento de FreeCiv Classic, similar al Civilization II pero con mejoras). Pero también podremos afrontar los más tradicionales Modo Civilization I (antiguo reglamento poco realista, de probabilística pura), el modo Civilization II (mi favorito, más realista gracias al hitpower, cuyo manual está aquí), un híbrido entre Civilization II y Civilization III (con mas micromanagement, zonas de influencia, polución y facilidades y mejoras como auto-mover o auto-producción). A la vez, podremos crear nuestro modos personalizado si así lo deseamos.

Al comenzar la larga partida tendremos la típica "niebla", donde la mayor parte de tu mapa estará en negro, salvo por el terreno explorado; sólo cuando nuestras piezas exploren y descubran los océanos y continentes del mundo, se nos revelarán al resto del mapa (los jugadores pueden compartir sus mapas del mundo conocido mediante un pacto diplomático). Aún así, el mapa sólo presentará el terreno - no estaremos al tanto de los cambios en un área hasta que nuestras unidades la visiten nuevamente - por lo que no podremos observar el movimiento de las unidades del enemigo fuera del campo visual de nuestras unidades y ciudades: ¡es posible la sorpresa estratégica!.

El juego se desarrolla en turnos: los jugadores no consumen turnos, sino que operarán al unísono. Los turnos pueden tener una duración ilimitada mientras pensmos y ejecutamos la movida, cesando sólo cuando todos los jugadores hayan pulsado el botón de finalizar turno. En otras reglas de juego podríamos disponer un tiempo límite al final del cual se fuerza el cese del turno.

Al principio de cada turno todas las unidades reciben puntos de movimiento, los cuales invertiremos en los movidas y las acciones. Si realizamos una movida al principio del turno, una pieza puede quedar sin la capacidad de responder si un oponente luego se aproxima dentro del turno. Las unidades no acumulan puntos de movimiento extras al turno siguiente; cualquier punto de movimiento sobrante al final de la movida se pierde (a menos que la unidad reciba una orden como Fortificar, que sólo hace efecto al final del turno).

Podremos aprender si somos principiantes, aquí.

Las teclas de control representan las ventanas.

F1 Vista general F2 Unidades F3 Naciones F4 Ciudades F5 Economía F6 Investigar F7 Maravillas del Mundo F8 Mayores 5 ciudades F9 Mensajes F10 F11 Desarrollo demográfico F12 Nave Espacial

También podremos hacer acciones con las unidades mediante teclado, con:

G Mover S Vigilar Q Patrullar X Autoexplorar L Cargar en transporte U Descargar de transporte F Fortificarse/atrincherarse

En tanto que las ciudades o los constructores podrán trabajar

W Menú trabajo B Construir (ciudades/unidades/caminos/irrigación) Criterios de Victoria

Para alcanzar el éxito se requiere un equilibrio entre expansión económica, potencia militar y desarrollo tecnológico. Estos deben ser armónicamente promovidos para lograr alguno de los tres criterios de victoria:

Se declara ganador por defecto cuando la última ciudad y la última unidad de todas las demás civilizaciones son destruidas. Este criterio es prácticamente imposible de lograr sin un avasallamiento civilizatorio completo.
Una vez que el progreso tecnológico alcanza la era espacial, es posible lanzar una nave espacial; la primera civilización cuya nave alcance el sistema de Alfa Centauri gana.
No dadas las condiciones anteriores, el juego finaliza en el año 2000 d.C., que nos encontrará Unidos o Dominados. En este caso, esto se determinará por los valores estadísticos las civilizaciones supervivientes, y la que tenga mayor puntuación será la ganadora.

Naturalmente, un gran Conductor fundará un gran gobierno: del tipo de gobierno dependerán los efectos de la civilización en su tratamiento sobre los recursos extractivos y labrables en cada ciudades fundada. Puedremos cambiar de gobierno descubriendo un nuevo tipo y después iniciando una revolución (en el menú de Gobierno; tardará unos cuantos turnos). Los más importantes estilos son:

Despotismo: Es el tipo de gobierno inicial. Cada casilla que obtenga más de dos unidades de algo (alimento, producción o comercio) tiene una penalización de una unidad. Los colonos usan dos unidades de alimento por turno como mantenimiento, las unidades militares no tienen mantenimiento a no ser que haya más unidades asignadas a la ciudad que habitantes. La ciencia solo puede establecerse a un máximo del 60%. Tiene Alta corrupción.

Monarquía: No hay penalizaciones en las casillas. Los colonos usan una unidad de alimento. Las primeras tres unidades de una ciudad no tienen mantenimiento. La tasa máxima de ciencia es del 70%. La corrupción es pequeña.

República: Cada casilla con comercio obtiene otra unidad de comercio gratis. Los colonos usan dos unidades de alimento y una de producción. Solo se tolera una unidad militar en el exterior de la frontera. Las unidades adicionales crean un ciudadano descontento. La corrupción es pequeña.

Estrategias para ganar

Decía el Mariscal de Sajonia que su mula no sabía nada de estrategia de FreeCiv. Pero que sus generales, que la habían estudiado, a veces sabían menos. Es que no seguían estas máximas que hasta una mula podría emular:

Presiona F1, explora el mapa y busca buenos lugares para colonizar. Un buen lugar debe tener al menos 4 unidades de alimento (en las dos casillas usadas) y tanta producción como sea posible. No exploraba más de 3 o 4 turnos. Los mejores recursos son las ballenas y los faisanes. Las praderas y las llanuras son los mejores lugares para colonizar, maíz/oasis/búfalo son aún mejores recursos.
Una vez construida la ciudad, inicia la producción de Colonos. Abre el informe de ciencia con F6 y pon a investigar Alfabeto y como meta República.
Tan pronto como una ciudad alcance tamaño dos, haz click en ella y sitúa a todos los trabajadores en casillas con producción alta usando el minimapa. Si puedes permitírtelo, compra colonos.
Sigue produciendo solo Colonos y construye ciudades cercanas. Deben estar al menos a 1 ó 2 escaques de distancia. No te gastes en construír regadíos, caminos o minas.
Cuando República esté sólo a un paso de ser descubierta, cambia la meta a Navegación. Cuando descubras República, dispón la investigación en Cartografía e inmediatamente haz estallar una Revolución (menú Reino / Revolución). Cuando el gobierno cambie a República, construye caminos en los escaques usados.
VARIANTE: Si eres descubierto por el enemigo, construye unidades defensivas en las ciudades tan pronto como puedas, como Guerreros o Falanges si es necesario por ser un escenario insular, barcos. Puedes elegir colaborar con sus vecinos, use el menú Jugadores para saber con quién puede hablar.
Cuando la navegación esté a solo un paso, pon la meta en Motor de Vapor. Cuando descubras Navegación, construye unas cuantas Carabelas para explorar los alrededores y colonizar las islas cercanas. VARIANTE: A veces es útil investigar Comercio antes que Motor de Vapor para poder construir maravillas.
Cuando la mayoría de los puntos de tu isla están tomados, comienza a crear caminos preferiblemente en praderas y llanuras. Usa los caminos para moverte rápidamente y conseguir comercio.
Tan pronto como el Motor de Vapor sea descubierto, construye un montón de Patrulleras. Incrementa el porcentaje de impuestos para poder comprarlas. Acompáñalas con Jinetes cargados en Carabelas. Busca ciudades costeras de enemigo, ataca a sus defensores con las Patrulleras e invade las ciudades con Jinetes. Sitúa las Patrulleras en las ciudades tomadas como forma de defensa inicial.
Después del Motor a Vapor puedes investigar Electricidad y Acero para poder construir mejores barcos; destructores y cruceros. Cuando tengas Acero, pon los impuestos al máximo e invierte todo en la guerra.

Es importante saber que además de jugar contra la CPU como era típico en antaño, gracias al Justicialismo podremos conectarnos a un servidor multijugador de FreeCiv. Para ello en la ventana inicial deberíamos clic en Conectar con un juego en Red, y definir alguna de las dos solapas que delimitan el funcionamiento multiplayer: en red local LAN o bien a través de internet.

También contarmos con un descargador de mods. Para ello vamos a Aplicaciones / Juegos / FreeCiv Modpack Installer (gtk3).

Entre estos se encuentran modificaciones gráficas, de sonido, pero también del reglamento y gráficas (por ejemplo, similares a la Civilization III, con zonas de influencia, obra hidráulica, etcétera).

El uso de estos paquetes de mods se pueden configurar en el botón Ajustes del Cliente.



12 january 2023

¿Cómo hago radio streaming con butt en Ubuntu?

Ante la injusticia social predominante en la Argentina de mediados de la década de 1940, las radioemisiones se convirtieron en un vector técnico fundamental para el ideario del Justicialismo. En este aspecto Juan Perón instruye como propalar la doctrina stremeando con el butt, el emisor para radio peronista en Ubuntu.

¡Trabajadores!

Un Movimiento que anhela la grandeza de la Patria y el Bienestar de su Pueblo necesita contar con alguien particularmente comprometido con la acción de Masas, individuo capaz de ejercer la unidad de conducción y acción interpretando la voz del Pueblo.

En esto veremos existe lo que podemos describir como una mancomunión simbiótica. El Conductor interpreta al Pueblo, y para ello ha de tener los oídos bien limpios y la retaguardia mas.

Es que para que nuestra Vanguardia descamisada vaya al frente, debe contar con una retaguardia bien cubierta, y esto se logra por medio de una adecuada propalación de adoctrinamiento.

El uso de la radio y el broadcasting nos ofrece una ventaja singular, al permitirnos propalar a través de este medio técnico un mensaje centralizado. El éter nos ha servido de perillas. En la época de las galenas ya esto era una Realidad Efectiva, y no quiero decirle en la época del transistor, donde incluso en la espesura del monte cualquier paisano puede sintonizar con su Spica.

No hay que tirar ningún viejo por la ventana, pero si bien la radio nos permite emitir el mensaje del Justicialismo por las ondas hertzianas, es también evidente que los medios telemáticos nos permiten un perfeccionamiento al que debemos abrazar para Combatir al Capital.

Es que las redes conmutadas de datos - cualquiera sean sus fórmulas - pueden también convertirse en un vector paquetizado de acción full-duplex capaz de transmitir canales de audio digitalizado (recibiendo respuesta por cualquier otro medio que nos cuadre). Para ello debemos operar con que se llama stream, o secuencias de paquetes de datos, en este caso representantes del sonido.

Esto se hace realidad gracias al sistema GNU que he legado al Pueblo. Entre sus opciones válidas encontramos el servidor Icecast, constitutivo de una excelente plataforma. Asumiendo que contamos con este herramental de planta, podremos disponer de algún cliente compatible con el mismo para realizar la emisión paquetizada en tiempo pseudo-real (realmente atravesado cierto mínimo retraso de contención, denominado período buffer).

Pues bien señores, sin duda el Butt es de los ángulos que podemos observar para estos menesteres. Con este curioso nombre, se trata de un emisor que podremos asociar a nuestro escritorio gráfico en Ubuntu, y con el cual podremos transmitir un stream de audio digitalizado hacia un servidor de audio Icecast o Shoutcast.

Lo primero para disponer su acción será configurar la entrada de audio del equipo de cómputo (si no lo tuviésemos hecho ya). Cualquier peronista podrá hacerlo directamente desde el configurador de sonido de sonido del sistema. En el caso de Ubuntu podremos desplegar esta opción desde Sistema / Preferencias / Hardware / Sonido, y en su solapa Entrada podremos escoger el dispositivo de entrada de sonido.

Os recomiendo escoger el "Monitor de Audio Interno estéreo analógico" o similar, que captura todo el audio de nuestra PC y la emitirá. Otra posibilidad es elegir algún conector analógico de audio interno estéreo, como la entrada de línea estéreo o la entrada de micrófono mono) de su placa madre o placa de sonido, y conectar a el micrófonos, reproductores, mesas de mezcla, un celular. En tal caso será importante regular el nivel del volumen de entrada, como lo veremos más adelante.

Naturalmente, si hemos optado por utilizar el servidor de audio JACK (con el cual butt también es compatible), tendemos un ruteo de audio virtualizado mas avanzado con lo cual, podremos configurarle su entrada, pero también podremos utilizar el servidor de audio tradicional.

No bien hayamos cumplido con este paso obvio, en segundo lugar debemos instalar la aplicación de streaming. Esto es simple de hacerlo desde la terminal, abriendo una con Ctrl+Alt+t e ingresando el siguiente comando de organización:

sudo apt update && sudo apt install butt

Una vez instalado este ominoso programa, podremos ejecutarlo desde Aplicaciones / Sonido y Video / butt.

Arrancará y demostrará en el display la indicación "idle" ("en espera").

Para configurar el servidor de emisión manualmente, en la ventana de Butt se hará necesario hacerlo por única vez. Para ello presionamos el botón Settings, lo que desplegará las ventana de configuración.

En su solapa Main y en su apartado Server, debemos presionar el botón Add para agregar un servidor (podemos tener la cantidad que anhelemos).

Se desplegará la ventana server, la cual habremos de utilizar para configurar los datos de un servidor de radio en vivo disponible (butt es compatible tanto con servidores de tipo ShoutCast e IceCast).

Name: Ingresa el nombre del servidor
Type: Elige Shoutcast o Icecast
Address: Dispone la URL del servidor
Port: Numero del puerto
Password: contraseña alfanumérica para el emisor.
IceCast mountpoint: Punto de montaje del fichero de stream
IceCast User: nombre del usuario

Conforme hayamos ingresados los datos del servidor de streaming remoto, guardamos la misma presionando el botón Save.

Acto seguido debemos compatibilizar las opciones de audio. Escoge la solapa Audio y dispone los datos en el apartado streaming que sean indicados por el propietario del servidor que utilices:

Codec: OGG/VORBIS o MP3.
Bitrate Escoge la calidad de audio del servidor en kilobytes por segundo

Opcionalmente podrás presionar el botón Advanced… y elegir un tamaño de Buffer (ms) adecuado para tu velocidad de transmisión. Por defecto es de 50, pero si tu velocidad de conexión es muy lenta puede querer elevarlo a 250 o más si la transmisión se entrecorta.

Ya ahora tenemos todos listo para comenzar a stremear por el butt. Para ello presionamos el botón Play.

El display indicará connecting… y una vez establecido en enlace, informará Streaming e indicará el tiempo de emisión.

A partir de este momento podremos utilizar nuestro reproductor de audio favorito para escuchar y emitir música a la vez. Todo lo que oigas en tu computadora será codificado al vuelo y emitido a nuestra radio en vivo. Si en tu equipo utilizas JACK podrás rutear tus dispositivos, utilizar micrófonos para emitir en vivo, etcétera.

Butt mostrará el audio por medio de sus LED vúmetros. Al respecto debemos tener cuidado de regular el nivel del volúmen entrada para que los niveles más altos de sonido (picos) lleguen únicamente al primer LED ámbar (en lo posible jamás deben llegar al rojo, señal de aturdimiento).

Debemos recordar que en el caso de utilizar el mezclador interno estéreo, todo lo que oigamos en el equipo será emitido por streaming al servidor de audio (probablemente de manera pública). Naturalmente que hemos de ser precavido con lo que emitimos.

El botón Rec nos permitirá utilizarlo como un grabador de audio.

Para detener la emisión, presionamos el botón Stop.



11 january 2023

¿Cómo cambio mi contraseña de Root en Ubuntu?

Hoy está de moda el uso de la biométrica para signar el acceso a los medios electrónicos más diversos, e incluso las huellas dactilares pueden cumplir tal rol. Pero quiero ver cómo entran a un sistema cuando les faltan las manos...

Pero mas vale eso que perder la memoria: olvidar una contraseña de sistema es algo que - a pesar de lo extraño - puede sucedernos sin que podamos preverlo. Es por ello que poder alterar la contraseña de un Ubuntu al cual tenemos acceso físico puede constituir un conocimiento que - en beneficio de todos - debemos llevar en nuestra mochila de mariscal.

Es sabido que en todo Movimiento ha de producirse en una Organización sin la cual, nada puede hacerse de forma duradera. Sólo la organización trascenderá en el tiempo, ya que los hombres, por simple biología, somos perecederos. Un sistema de cómputo de tipo GNU no podía estar ajeno a tal adagio, ya que en él los roles que caben a sus usuarios se basan en una férrea interpretación de una jerarquía doctrinaria. Es que sobre una masa de usuarios convencionales encontraremos a un Conductor, que en el sistema se denomina super-usuario - o en el idioma de Braden, "root". Este se sienta - por decir - en trono de oro, y es capaz de observar las acciones de todos los demás usuarios del ordenador. Su fin es convertirse en máxima autoridad administrativa del sistema y de su autenticación podrá poner coto a las acciones de cualquiera que intente obrar dentro de este software organizado. Es así que este Conductor será capaz por esta vía de sobreactuar o alterar las acciones y permisos de cualquier usuario normal.

Este es el verdadero motivo por el cual - al realizar en GNU acciones tales como la actualización de sistema, instalación de aplicaciones y configuraciones generales - se nos suele requerir certificar el permiso de root, por medio de una una contraseña de root, la cual es chequeada contra una almacenada de forma cifrada en el fichero /etc/shadow.

Pues bien señores, querrán saber ¿qué sucede cuando un usuario normal o un administrador de sistema olvida su contraseña de usuario?. Durante tales incidentes, podríamos considerar reinstalar nuestro sistema Ubuntu "a tontas y a locas". Pero el Justicialismo para todo tiene un backdoor que llena con la potencia de su Doctrina. Os guiaré por tanto para otorgar la penicilina que sane de manera definitiva este inconveniente.

Cambiar la contraseña del testigo de autenticación en Ubuntu, podremos abrir una terminal, e ingresar:

passwd

El sistema nos solicitará la contraseña actual, y tras introducirla a ciegas, nos solicitará la nueva contraseña dos veces. Como es sabido, convienen utilizar una contraseña fuerte que combine caracteres y números, y no sean palabras del diccionario.

Resetear la contraseña olvidada en Ubuntu

La solución a este problema radica reiniciar nuesatro Ubuntu, y acceder al menú de arranque Grub, y dar inicio al sistema a través del Modo de Recuperación.

Para ellos reiniciamos nuestro sistema, y una vez que se apague la pantalla de la computadora, debemos presionar repetida y continuadamente la tecla Esc o la tecla Mayúsculas hasta que nos redirija a la pantalla del menú de arranque Grub.

En la pantalla del menú GNU Grub encontraremos varias opciones de arranque. Debemos utilizar las teclas flechas arriba y flecha abajo del cursor para movernos y navegar hasta el segmento Advanced Options for Ubuntu (Opciones Avanzadas para Ubuntu), y la elegimos con la Tecla Intro.

Al hacerlo nos redirigirá a otra ventana de Grub y en ella debemos elegir la versión del kernel más reciente que nos redirigirá al Ubuntu (recovery mode).

Se cargará el kernel (debemos de esperar varios segundos hasta que la ventana negra termine su ejecución), y tras ello aparecerá la ventana del Menú de Recuperación ("recovery-menu") con varias opciones administrativas:

resume Continuar con el arranque normal clean Intentar liberar espacio dpkg Reparar paquetes rotos fsck Revisar todo el sistema de archivos grub Actualiza el cargador de arranque network Activar la red root Consola de super-usuario system-summary Resumen de sistema

Habremos de navegar hasta la opción nomenclada como root - Consola de super-usuario (o bien "Drop to shell prompt" si está en inglés), y debemos presionamos la tecla Intro.

Debajo de las opciones del menú de recuperación, se nos indicará que podremos ingresar al intérprete del mantenimiento si presionamos la tecla Intro (o bien podremos usar Ctrl+d para abandonarlo y continuar con el arranque).

Una vez que se nos muestre un prompt similar a:

root@sistema:~#

Si por algún caso no tuviésemos la partición de root montada, debemos hacerlo, y con permiso de lecto-escritura (ya que normalmente se carga en modo sólo lectura).

Esto ser hará introduciendo directamente en el prompt # el siguiente comando de organización:

mount -rw -w remount /

(nota: en caso de que el disco ya esté montado, nos lo informará con un error).

Ahora ya podremos resetear la contraseña del root del sistema, e incluso de usuario si lo deseamos. Para poder hacerlo, debemos identificar al usuario asociado con ella. Para ver los usuarios del Ubuntu, los listaremos con:

ls /home

Luego de identificar al usuario administración alteraremos la contraseña de usuario que queramos mediante la siguiente sintaxis del comando passwd:

passwd usuario_root

El programa passwd nos permitirá cambiar la contraseña; nos solicitará ingresar dos veces "a ciegas" la contraseña nueva de modo de re-confirmar esta contraseaña nueva.

Ya hemos logrado resetear la contraseña del root del sistema Ubuntu. Naturalmente, de tener que hacer una copia, debemos resguardarla en un lugar sumamente seguro (una caja fuerte puede ser una buena opción, pero la mejor es contar con buenas neuronas).

Ahora podremos salir del intérprete de administración ingresando:

exit

Esto nos devolverá nuevamente a la ventana Recovery Menu. Debemos elegir ahora la opción resume - Continuar con el arranque normal.

Podemos ignorar tranquilamente cualquier advertencia de modo gráfico, ya que un reinicio completo del sistema la solucionará.

Basado en la contraseña de usuario que hemos configurado, deberíamos ser capaces de reingresar nuevamente a nuestro sistema como usuario administrativo/root.

Con este conocimiento adquirido ya no debemos preocuparnos de perder el control de nuestros privilegios de Conducción en un sistema ubuntu, ya que podremos fácilmente recuperarlos. Sin embargo, debemos saber que la famosa "contraseña de Ubuntu" es fácilmente modificable para quien tenga acceso al equipo en sí. Por tal motivo, si queremos seguridad en nuestro sistema, debemos recurrir a encriptados fuertes del disco rígido.

Quitar el menú de recuperación de Grub

Sin embargo, gracias a esta enseñanza sabemos que esta famosa "contraseña de Ubuntu" es fácilmente modificable para quien tenga acceso al equipo en sí. Por tal motivo, si queremos seguridad en nuestro sistema, debemos recurrir a encriptados fuertes del disco rígido, o bien a quitar directamente la opción del menú de recuperación de Grub.

Esto debe meditarse ya que no podremos dar con estas soluciones de emergencia. Pero si queremos seguridad podremos contar con ella alterando la configuración de Grub. Para ello ingresamos:

sudo nano /etc/default/grub

Y buscamos la opción:

#GRUB_DISABLE_RECOVERY="true"

Y la descomentamos eliminando el #, de modo que quede:

GRUB_DISABLE_RECOVERY="true"

Guardamos los cambios con Ctrl+x y salimos del editor con Ctrl+q y finalmente actializamos el arrancador Grub para que tome los cambios que le hicimos con

sudo update-grub

Al reiniciar el equipo dejaremos de contar con la opción de recuperación y contaremos con un equipo algo más asegurado contra intrusiones (pero sin posibilidad de activar el modo de recuperación).



10 january 2023

¿Cómo instalo Lotus 1-2-3 y WordPerfect para Unix nativamente en Ubuntu?

Juan Perón consagró el nativismo a la política nacional haciéndose partícipe de la experiencia originaria. En una entrevista con su biógrafo, honra tal condición y expone cómo instalar Lotus 1-2-3 y WordPerfect de forma nativa en Ubuntu.

(...)

Me contaba mi abuela que cuando Lobos era apenas un fortín, ellos ya estaban allí… Mi abuela inmemorial era lo que bien podemos describir como una mujer machaza, que conocía todos los secretos del campo. Cuando la vieja solía contar que había sido cautiva de los indios yo le preguntaba: "Entonces abuela… ¿yo tengo sangre india?" Me gustaba la idea ¿sabe? Y creo que, en realidad, tengo algo de sangre india. Míreme: pómulos salientes, cabello abundante… En fin, poseo el tipo indio. Y me siento orgulloso de mi origen indio, porque yo creo que lo mejor del mundo está en los humildes.

De esto he obtenido valiosas experiencias, aunque esta siempre se encuentra situada en tiempo y espacio, y éste es intransferible. El software más privativo puede llegar a ser más evolucionado que el libre, pero cuanta más inteligencia tiene el ser humano, cuantos más medios económicos y culturales disfruta, más peligro puede traer a sus semejantes. En lo que respecta al uso de nuestro cómputo, podríamos fungir el uso de aplicaciones antiguas utilizando un emulador, pero siempre digo que en computación "emular es meter la mula".

Mas vale operar software de manera nativa, y esta indiada es posible lograrla en Linux con cierta maña, siempre que demos rienda suelta a las compilaciones obradas para UNIX, y eficiando aquellos viejos portes de sistemas operativos privativos.

Lotus 1-2-3 Release 3.1 para Unix System V/386 en Ubuntu

Vean señores, pocos pueden albergar dudas aún que Lotus 1-2-3 se convirtió, por mérito propio, en la aplicación asesina del IBM PC, y como tal resultó increíblemente popular ya desde sus inicios en 1982. El programa era como las tres marías: unía una planilla de cálculo, una base de datos, y la interesante función de gráficas estadísticas, en un paquete de ocasión que podía revolearse en cualquier negocio que se cuadrase. Esta inteligente opción, unida a una máquina que era capaz de operarlo, no tardó en desplazar a las microcomputadoras hogareñas más limitadas. Pero fíjese m'hijo como fue esta cosa: lo extendido del programa hizo que Lotus se regodease en dinero, y para 1990 maloneó un Lotus 1-2-3 nativo para Unix, certificado para el prominente SCO Xenix y su hijo SCO UNIX (aquél que incorporaba ya un kernel oficialmente licenciado por la AT&T).

Aún así, podría parecer que adaptar el Lotus 1-2-3 Release 3.1 de AT&T Unix System V/386 para correr nativamente en nuestra toldería Linux actual es tarea insuperable. Al fin y al cabo tendríamos que descargar dependencias de antediluvianas, hacernos con las imágenes de diskettes de Lotus 1-2-3 para este UNIX, engualichar y compilar todo. Pero mi rol como Conductor de Movimiento me ha impuesto hacerlo, y en tal capacidad he de decirle que podrán obrar de manera cristinana gracias al Justicialismo. Esto implica abrir una terminal con Ctrl+Alt+t y pegar en la consola el siguiente grupo de Comandos de Organización:

sudo apt install build-essential git lib32ncurses-dev gcc-multilib -f ; cd~ ; git clone https://github.com/taviso/123elf ; cd ~/123elf ; ./objdump --info | grep coff-i386 ; ./binutils.sh ; ./gzip.sh ; wget https://archive.org/download/123-unix/123UNIX1.IMG ; wget https://archive.org/download/123-unix/123UNIX2.IMG ; wget https://archive.org/download/123-unix/123UNIX3.IMG ; wget https://archive.org/download/123-unix/123UNIX4.IMG ; wget https://archive.org/download/123-unix/123UNIX5.IMG ; ./extract.sh ; make ; sudo make install

Estos procedimientos automatizados solicitarán en primer medida vuestra contraseña de root, y tras ingresarla en el termina, se irá al humo: La CPU obrará en secuencia y tras unos pocos segundos o minutos (dependiendo de lo vivo que sea el microprocesador), ¡tendremos instado Lotus 1-2-3 para UNIX System V/386 nativamente en nuestro sistema operativo Ubuntu!

Para ejecutar ahora Lotus 1-2-3 en la terminal, simplemente le pegamos el siguiente grito:

123

Esta planilla de cálculo era - por entonces - muy amigable de utilizar. La pantalla se componía por un "panel de control" o barra de menú, un área de hoja de trabajo, y una línea de status.

La navegación entre celdas se realizaba moviendo el puntero de celda iluminado con las flechas del cursor, lo que podíamos combinar con la tecla Fin para desplazarnos a la última celda libre.

Debíamos utilizar / para activar el menú con ayuda explicativa y movernos con las flechas del cursor.

Por ejemplo, para cargar un fichero podremos usar /f para ir al menú "File" ("fichero") y escoger la opción Retrieve ("cargar") o bien Save ("guardar"). Lotus utilizaba varios formatos, entre ellos .123, .wks, .wk1, .wk2, .wk3, .wk4, lo que nos permitirá abrir archivos del año del ñaupa (compatibles hoy con la mayoría de las aplicaciones como LibreOffice).

Para introducir el texto podíamos utilizar F2, y podíamos darle cierto formato mínimo con circunflejo, diéresis, o comilla, de esta forma: ^textocentrado, 'justificadoizquierdo, o "justificadoderecho.

Las funciones de cálculo de la planilla utilizaban la @ en lugar del =. Sin embargo, estas solían tener el mismo nombre que las actuales, así que podremos utilizar @SUM, @AVG, @INDEX, e incluso @HLOOKUP sin problemas.

Lotus 1-2-3 contaba con gráficas ASCII, lo que le daban por entonces cierto prestigio.

Incluso podríamos disfrutar de su interactividad en la misma tabla, años por delante del inefable Exc€l.

Una de las funciones típicas era la de poder abrir un intérprete, desde el menú System. (cerrándolo con exit o Ctrl+d volveríamos a Lotus). Para salir de esta clásica planilla de cálculo, nos dirigimos al menú Quit. Tras responder afirmativamente, cerraremos Lotus.

Debemos considerar que las muy extendidos modificaciones con Alt se reemplazan hoy con Ctrl. De este modo:

F1: Ayuda contextual Ctrl+F1: Compone F2: Editar Ctrl+F2: Graba macros F3: Nombre Ctrl+F3: Corre macros F4: Abs Ctrl+F4: Deshacer F5: Ir a. Ctrl+F5: F6: Ventana Ctrl+F6: Zoom F7: Solicitud Ctrl+F7 F8: Tabla Ctrl+F8 F9: Cálculo Ctrl+F9 F10: Gráficos Ctrl+F10

Si bien como todo programa UNIX que se precie, Lotus 1-2-3 Release 3.1 cuenta con una página man de instrucciones (podremos verla ingresando man 123), será útil visitar la Wiki de Lotus 1-2-3 para Unix. Pero no solo eso: tendremos a nuestra disposición la frondosa Documentación original de Lotus 1-2-3 para Unix, especialmente la Guía Rápida Inicial, el Manual de Referencia, el Tutorial (todos ellos en el idioma de Braden).

Una vez realizada estas tareas de compilación, ya no será necesario conservar el código fuente del Lotus. Lo podremos eliminar con:

rm -R ~/123elf

Wordperfect 7.0 para Unix en Ubuntu

Otros de los programas que podremos correr nativamente en Ubuntu es el superclásico procesador de texto WordPerfect.

A diferencia del Lotus 1-2-3, WordPerfect no fue originalmente una aplicación escrita para M$-DO$, sino que fue realizado en la Universidad Brigham Young para la minicomputadora Data General Nova. Sería recién a partir de 1980 que esta notable aplicación resultó portada pensando en los sistemas más pequeños, iniciando con M$-DO$ en 1982, pero otras microcomputadoras hogareñas como las microcomputadoras Atari ST, Commodore Amiga, y la Appl€ II y IIG$ (sobre MacO$ clásico), así como otros entornos tales como DEC OpenVMS, NeXTstep, e incluso IBM OS/2. Junto a todas estas tribus, existieron versiones apuntadas para las estaciones de trabajo provistas de los variados UNIX desperdigados por las Pampas, incluyendo SCO Xenix.

WordPerfect contaba con una interfaz de usuario absolutamente idiosincrática que dependía de una utilización cuasi demencial de las teclas de función y de su manual, un bibliorato de 600 páginas. Cada una de estas teclas contaba con un significado diferente, el cual podía combinarse con Mayúsculas, Alt y Ctrl. Aún así era complicado de recordar, por lo que incluso sus usuarios experimentados debían recurrir a una plantilla de teclado (una tira de cartón perforado adaptable al reborde del teclado IBM estándar del momento, que servía para nomenclar las teclas de función.

Esta plantilla funcionaba como una especie de protección contra copia, ya que como las versiones pirateadas no lo traían, era prácticamente imposible de utilizar sin este ridículo machete. Más de uno fotocopió esta plantilla, la caló con un cutter y aprovechó tal enjundio para reemplazar la original.

En particular gracias a éste, el compañero Tavis Ormandy ha sido capaz de recompilar la versión de Corel WordPerfect 7.0 que lo tenía como destinatario, con lo cual seremos capaces de utilizarlo en ventana de terminal en modo texto (incluso en una consola de Linux).

Podremos instalar este WordPerfect 7 de modo texto en cualquier distribución de Ubuntu o Debian de 32 bits, y correrá feliz en un 256 MB de RAM. Para instalarlo en Ubuntu abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

sudo dpkg --add-architecture i386 ; sudo apt update ; cd /tmp ; wget https://github.com/taviso/wpunix/releases/download/v0.03/wordperfect7.0_i386.deb ; sudo dpkg -i wordperfect7.0_i386.deb

Acto seguido, podremos ejecutarlo por medio de

wp

La primera vez quer lo corramos se nos presentará el splash y estaremos en el clásico editor, ¡en nuestra terminal!

Podremos empezar a ingresar texto a la vieja usanza directamente, notando que no acepta codificación UTF-8.

En particular debemos entender que WordPerfect 7 for Unix contempla cierta combinación extraña de características del WordPerfect clásico (las versiones para PC previas anteriores a la 5): F1 repite caracteres y F3 para Ayuda, y otras que se encontraban a partir de la versión 5 y posterior, incluyendo los menús pull-down, aunque aquí se acceden con Esc+= en lugar de utilizar Alt o F10 como en DOS.

En fin, WordPerfect para Unix es un procesador de texto poderoso y capaz, que no requiere escritorio gráfico alguno y podremos finalmente ejecutar de forma nativa en Ubuntu. De hecho, es el más rico procesador de texto para modo texto que haya existido o existirá.



09 january 2023

¿Cómo compilo la última versión de DOSBox-X en Ubuntu?

¡Trabajadores!

Los cimientos de las realizaciones que hemos instaurado para el pueblo son sólidos y se reflejan en la felicidad de todos los Argentinos. No podía ser de otra manera, en tanto mantengamos el rumbo de la liberación que, hemos de decirlo, es el único camino que nos resultará venturoso.

El año 2000 nos encontrará unidos, o dominados, y esta hoja de ruta que les dejo habrán de recorrerla sin desviarse demasiado. Si lo hacen, no sólo pincharán la goma del auto, sino que se irán a la banquina.

Todo lo que hemos hecho ha sido mirando hacia adelante, y confiando en el momento en el cual otros tengan el volante, podrán conducir de una forma que sin ser la mejor, sea al menos virtuosa.

En esto hay que replicar también lo que hace a sistemas de cómputo. Veamos un ejemplo que podrá ilustrarnos, como decía el Mariscal de Sajonia. DOSBox-X se trata de una versión expandida del famoso emulador de MS-DO$. En particular, a diferencia del DOSBox clásico, DOSBox-X es más simple de configurar e incluye opciones corregidas en cuanto al direccionamiento y virtualización del hardware, además de contar con opciones extras

Para poder utilizarla debemos primero compilarla. En Ubuntu 20.04LTS y superiores esto puede fácilmente con el afán del guión de programación surtido por el compañero Fanta.

Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

cd ~ git clone http://git.56k.es/fanta/compile-Dosbox-x mv compile-Dosbox-x/ .compile-dosbox-x/ cd ~/.compile-dosbox-x/ wget https://dosbox-x.com/images/dosbox-x-logo.svg

...tras lo cual procederemos a compilarlo mediante:

sudo ./compileDosBox-x.sh sudo mv ~/.compile-dosbox-x/dosbox-x-logo.svg /usr/share/icons/

Acto seguido, podremos ejecutar DOSBox-X desde Aplicaciones / Juegos / DOSBox-X.

La primera vez que lo hagamos, nos solicitará un directorio de trabajo. En mi caso prefiero crear uno llamado ~/.jdos. ...cumplido este requisito estaremos inmediatamente en la máquina virtual...

Y tras ella se dará incio al intérprete de DOS. Podremos hacer pantalla completa con F12+F,

También será posible montar un directorio como unidad de disco (C: en el MS-DOS). Por ejemplo, si quiesiera montar un directorio llamado ~/.jdos utilizaríamos en el emulador:

mount c ~/.jdos

De entrada contaremos con un equipo XT compatible, de mediocres performance (emulada a 3 MHz). Pero nada quita que - virtualmente - podamos "meter mano al gabinete" y así configurar los distintos aspectos del emulador con F12+c.

Naturalmente, también podríamos editar a mano el fichero de configuración ~/.config/dosbox-x/dosbox-x-0.84.2.conf. En mi caso me gusta indicarle el montaje automático del directorio .jdos que utilizo para almacenar programas de DOS.

Las teclas de atajo por defecto son:

F12+f Conmuta pantalla completa.
F12+q Lanza un ejecutable de DOS.

F12+r Resetea la máquina virtual DOSBox-X.

F12+b Reinicia el DOS emulado.

F12+c Configuración gráfica.

F12+m Da inicio al mapeador de DOSBox-X.

F12+Esc Conmuta la barra de menú pulldown.

F12+Del Envía un evento de teclas especial (por defecto un reset con Ctrl+Alt+Del) al sistema huésped.

F12+{+} Incrementa el volumen de sonido del DOS.

F12+{-} Disminuye el volumen de sonido del DOS.

F12+] Incrementa los ciclos emulados de DOS

F12+[ Diminuye los ciclos emulados de DOS.

F11+= Incrementa los ciclos de emulación de CPU de DOSBox-X.

F11+- Diminuye los ciclos de emulación de CPU de DOSBox-X.

F12+arriba Incrementa el tamaño de la fuente TrueType.

F12+Abajo Disminuye el tamaño de fuente TrueType.

F12+Izq Resetea la velocidad de CPU actual a la normal.

F12+Der Activa el bloqueo de velocidad de DOSBox-X.

F12+d Cambia entre imágenes montadas de CD.

F12+o Cambia entre imágenes montadas de diskettes.

F12+p Captura la pantalla actual en formato PNG.

F12+I Inicia/Detiene captura de video en AVI.

F12+W Inicia/Detiene captura de sonido en WAV.

Alt+Pause Inicia depurador.

F12+[,] Selecciona el slot previo para guardar o cargar.

F12+[.] Selecciona el siguiente slot de grabación para guardar o cargar.

F12+S Guarda el estado actual en el slot de grabación elegido.

F12+L Carga el estado del slot de grabación.

F12+Pause Pausa la emulación (presione nuevamente para continuar).

Ctrl+F5 Copia todo el texto en la ventana de DOS y la pega en el portapapeles.

Ctrl+F6 Pega el texto del portapapeles en la ventana de DOS.

Ctrl+F9 Sale de DOSBox-X.

Ctrl+F10 Captura el mouse para usarlo en el DOS Emulado.

También podrán pasar DOSBox-X al castellano y configurarlo mediante un fichero de configuración que os dejo a mano:

cd ~/.config/dosbox-x/ ; wget https://raw.githubusercontent.com/joncampbell123/dosbox-x/master/contrib/translations/es/es_ES.lng ; https://caja.texto-plano.xyz/peron/config/dosbox/dosbox-x-0.84.2.conf ;

A diferencia del DOSBOX Clásico, ahora contaremos con menúes pulldown que nos permitirán ajustar variadas opciones (incluyendo montaje más simple de diskettes e imágenes de CD, desde el menú DOS).

También contaremos con opciones avanzadas, como un menú de configuración de sonido más sencillo (con el que podremos utilizar Soundfonts para simular sonido AWE-32 o bien Roland MT-32).

Entre otras novedades se encuentra la implementación de fuentes TrueType. Gracias a ello podremos cambiar la tipografía en el modo de terminal DOS (aunque en general prefiero fuentes PxPlus VGA Square para tal menester).

En definitiva, una excelente opción para jugar con antiguo software DOS por la Liberación del Pueblo y de su Hardware.

Podrán encontrar la documentación en la Wiki oficial de DOSBox-X.



08 january 2023

¿Cómo instalo el sintetizador Surge XT en Ubuntu?

Reunido con representantes de la Juventud Peronista, Juan Perón les enseña cómo instalar el sintetizador virtual Surge XT en Ubuntu.

(...)

Vean muchachos,

La Juventud amerita organizarse. Yo sé que ustedes son bochincheros, pero les voy a responder con un verso del Martín Fierro: "el que gane su comida / güeno es que en silencio coma / ansivo, vos ni por broma / querrás llamar la atención / nunca escapa el cimmarón / si dispara por la loma".

Si han de hacer barullo, que sea en acordes bien sentidos. Yo llevo en mis oídos la más maravillosa música que es para mí la palabra del Pueblo Argentino, y como tal me he aplicado a ejecutarla en sintetizadores emulados por software libre. Ya he explicado cómo agregar instrumentos LV2 a Ubuntu, y hoy vengo a traer a todos los Descamisados un nuevo instrumento que engrosará la burocracia del Movimiento con nuevas posibilidades sónicas.

Se trata de Surge XT, el favorito de la compañera Evita.

Este sintetizador virtual de tipo sustractivo había sido originalmente lanzado comercialmente por los muchachos de Vember Audio como "Surge", y ahora publicado por su creador Claes Joahn amparado por licencia de software libre GNU GPLv3. Gracias a esta libertad y un herramental de excelente factura e inteligentemente pensado, podremos no solo dar salida a ondas sinusoidales puras, sino que podremos controlarlo a través de MIDI.

Podremos descargar la versión empaquetada y utilizarla en Ubuntu 18.04LTS y superiores, utilizando la terminal con Ctrl+Alt+t e ingresando los siguientes comandos de organización:

sudo apt update ; sudo apt install libxcb-cursor0 ; wget https://github.com/surge-synthesizer/releases-xt/releases/download/1.0.1/surge-xt-linux-x64-1.0.1.deb ; sudo dkpg -i surge-xt-linux-x64-1.0.1.deb ; sudo apt install -f

Asimismo, se puede compilar en otras distribuciones.

El plugin quedará instalado en el directorio /usr/share/surge-xt y los parches de usuario se almacenarán en ~/Documentos/Surge XT (aunque este se puede cambiar desde el menú de Surge.

El excelente manual de Surge XT está disponible en forma de PDF aquí.

La interfaz de Surge XT se divide en cuatro secciones que ocupan su ventana (la cual, en un alarde de capacidad para el Pueblo, hace alarde de Zoom regulable, algo que no todos los plugins de la oligarquía pueden decir).

Encabezado: (con las opciones globales y de parches)
Controles de Escena: (modificadores del parche, divididos en sección de generación y de síntesis)
Modulación y Enrutado:
Efectos

De entrada contaremos con una amplísima biblioteca de más de 2000 parches categorizados, lo que nunca viene mal incluso entre los sintetizadores aditivos, ya que poco es más tedioso que buscar parches al vuelo para operar. En este caso, los encontraremos entre los preseteos de fábrica, y los amablemente aportados por terceros.

Cada parche estará formado por dos "Escenas" (escencialmente bancos de osciladores "A" y "B"+efectos. Cada banco cuenta con una salida Mono, y a la vez el parche cuenta con una salida estereo, totalizando así tres salidas (A y B mono + una mezcla L-R, estéreo).

Los controles son efectivísimos. Para los controladores de escena moveremos los deslizadores. La operación normal es rápida, pero si usamos Mayúsculas+arrastre del ratón (o Mayúsculas+rueda de scroll) sobre ellos tendremos ajuste fino. En tanto, al utilizar Ctrl+arrastre del ratón tendremos arrastre cuantizado a pasos fijos. En tanto, si usamos Alt+arrastre del ratón tendremos desplazamiento "elástico" (desplazando el deslizador, y volviendo a la posición de inicio cuando solamos Alt). Su usamos doble clic resetearemos el control a su valor por defecto. En tanto que clic con el botón derecho desplegará el menú contextual.

Ctrl+z y Ctrl+y son Deshacer y Rehacer respectivamente.

Asimismo es posible activar el MIDI Learn, para asignar potenciómetros (ya sean potes o deslizadores) y otros controles a las variables. Por ejemplo, la rueda de modulación.

Desde el punto de vista de su paleta, en Surge XT cada banco cuenta con tres osciladores sustractivos independientes, posibilitados ellos con seis modos de ejecución (PCM, Mono), y dos etapas de filtrado de corte/resonancia, balanceables entre sí.

Esto permite una enorme paleta sonora a la síntesis, pudiendo replicarse desde bajos punchis hasta sinusoidales Mooguianas. Pero no solo eso, entre sus opciones más impresionantes es la de contar - además de las etapas de filtro ADSR (ataque, decaimiento, sostenimiento, y apagado), cuenta con un filtrado por Modulación de Código de Pulso, lo que en cristiano significa que puede operar con entrada de línea o micrófono para emular un dulzarrón vocorder modulado por MIDI. Con el podermos no sólo obtener voces robóticas, sino combinarlo con autotuners para hacer barítono al mas perro de los cantantes.

¡Con su sencilla instalación paquetizada, hasta lo pueden usar ustedes muchachos!

Asimismo, podremos conocer mucho de su uso en cualquier sitio de video agregados.



07 january 2023

¿Cómo instalo y uso el intérprete de comandos Fish en Ubuntu?

En su discurso con motivo de la Fiesta del Pejerrey de 1947, Juan Perón retorna a Junín y expone sobre las bondades del fish, el intérprete de comandos avanzado de Ubuntu.

¡Trabajadores!

Desde los tiempos inmemoriales sabe el Hombre que obtendrá, con el sudor de su frente, los frutos que Dios le ha regalado en la naturaleza. Pero son pocos los que pueden multiplicar tal fruto como hizo Cristo con los peces. Esto motiva que, para que un trabajo sea verdadero, debe multiplicarse el esfuerzo en pescar.

Yo no enseño a pescar, eso lo hacen ustedes. (aplausos). Lo que yo doy son peces. ¡Y qué gordos que han picado!

La organización del trabajo es lo que nos ha dado lo que tenemos, y nos lo dará siempre que lo sepamos defender. Los derechos adquiridos que ha otorgado el Justicialismo emanan de una acción de Justicia que es comprendida por todos: la Justicia Social.

Pues bien señores, sabemos que en los sistemas GNU con Linux la dirección parte del hacker, que obrará indefectiblemente por iniciativa de Justicia Social. Quien en su nombre sirve a una empresa, lo es solo de nombre. Por ello, para que el trabajo se realice, hemos de ingresar órdenes en un intérprete de comandos, que recibe el nombre de shell.

En los Unix de los tiempos de Matusalén, el intérprete de base era el Sh, capaz de operar ya de forma interactiva, pero también como englobador de comandos en ficheros, a los que podemos llamar guiones. De este - diremos - trilobite, surgieron otros más interesantes y poderosos, como el C Shell, o la shell de Bourne. Cada uno de estos pescados presentaba más aletas, y otras características para nadar. En el mar, el pez grande se morfa al chico, y por ello fue que surgió uno que por entonces se estableció como el más pesado e inteligente, el Korn Shell, que hasta tentáculos tiene. Miren si habrá sido de ballena, que de él se inspiraron - en la época del GNU - para combinar un nuevo Bourne nacido de nuevo ("Bash"). Sería este el intérprete de comandos que viene por defecto en la mayoría de las distribuciones modernas de Linux.

El el que más me gusta porque va bien en su salsa, se lo empaniza, se lo sirve en cazuelitas: es compatible con todo lo que se ha hecho, pues está concienzudamente armado para retrocompatibilidad con programas antiguos y terminales teletipo.

Pero a veces conviene pescarse algo nuevo. Tanta arqueología es útil y tiene su lugar, pero no siempre implica lo mejor en agilidad en el mar. Mas de uno habrá percibido que el día de hoy las terminales cuentan ya con muchos colores, y no solamente caracteres de tipo ASCII, sino también hasta emojis, como los que uso para hacer la ✌️. De esta evolución, nació el intérprete Fish Shell. Se trata de un intérprete de comandos orientado a maximizar la amigabilidad interactiva con el usuario, y no tanto en mantener compatibilidad con otros intérpretes más corrientes tales como el Bash que viene por defecto en Ubuntu. De esta manera Incluye muchas funcionalidades que se no encuentran en otros intérpretes modernos, incluyendo el uso avanzado de caracteres UFT-8 y emojis, que simplifican la experiencia de uso en gran medida.

Por otra parte, su sintaxis difiere un poco de la que utilizan otros intérpretes, lo que hay que tener en cuenta. Asimismo, fish abandona la compatibilidad con antiguas terminales teletipo.

Para instarlo abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente comando de organización:

sudo apt update sudo apt install fish xsel git

Podremos ejecutarlo "a mano" para probarlo, para ello lo llamamos con:

fish

Ante un mensaje de bienvenida en el idioma de Braden, nos encontraremos un prompt básico de Fish, que guardará este estilo:

usuario@maquina ~>

Para salir del intérprete podremos ingresar exit, y volveremos al Bash o cualquier intérprete de comandos que estuviésemos utilizando por defecto. Uso de Fish

Vean señores, el uso básico de fish es por generalidad similar a Bash u otros de su especie. Para su configuración básica, Fish utiliza el fichero ~/.config/fish/config.fish. (Introduciendo dicho código contaremos con un mensaje de bienvenida en castellano. Autocompletado

En la medida que comiencen a introducir comandos, Fish nos sugerirá nombres y comandos al vuelo. Para terminar de escribirlos puedes presionar flecha izquierda de cursor.

Por defecto Fish utilizará colores que incluso te indicarán la validez de la entrada sugerida (marcando en rojo si es inválido).

También puedes utilizar la tecla Tab para completar un comando semiescrito.

Al presionar la tecla Tab dos veces, nos deplegará una lista coloreada con opciones, la cual podrás elegir utilizando las flechas del cursor. Con esto podremos nadar en los directorios como pez en el agua.

La más de las veces, Fish cuenta con este completado de comandos con explicaciones. Por ejemplo, si estamos utilizando la orden apt get install y presionamos Tab, nos presentará la lista de paquetes con un resúmen del mismo, situación que se replica con la mayoría de los comandos Unix estándar, espejador de código fuente git, y servidores Web... Trabajar así es un placer que no es esfuerzo... Programación con Fish

Al igual que Bash y Korn Shell, Fish cuenta también con un lenguaje de guionado que guarda grandes similitudes, pero no es 100% similar a estos dos. Afortunadamente es posible aprender más sobre las diferencias del mismo en este Tutorial de Fish. Temas con Oh My Fish!

Si bien la shell Fish no es demasiado compatible con otros intérpretes desde el punto de la programación estricta, es altamente configurable, por lo que podrás instalar temas y plugins paquetizados con el proyecto Oh My Fish!. Instalación

Podrás instalar Oh My Fish! (y su tema “Default” ¡con “pescaditos” en el prompt!) en texto-plano. Utiliza: curl -L https://get.oh-my.fish | fish

El instalador abandonará la sesión, tras lo cual podrás volver a ingresar.

Luego habrán de listar todos los paquetes de plugins y temas individuales del proyecto Oh My Fish! con omf list

Podrán listar únicamente los temas con omf theme

Podrán consultar todos los temas posibles aquí. Unas lindas que puedes probar sin conflicto son:

default boxfish bira coffeeandcode gentoo godfather harleen mokou neolambda scorphish

Instala un tema (por ejemplo gentoo) con omf install bira

Algunos temas requieren ciertos cambios al prompt. Estos requerirían utilizar la orden omf doctor, y luego ingresar el comando rm ~/.config/fish/functions/fish_prompt.fish.

Pues bien si deseamos desinstalar un componente (como un tema instalado) habremos de utilizar:

omf remove bira

Para recibir ayuda del Oh My Fish! utilizaremos: omf --help

Si deseamos desinstalar Oh My Fish! debemos emplear: omf destroy

…con lo cual Fish retornará a su configuración por defecto, o bien podrán eliminar a mano su carpeta de configuración mediante: rm ~/.config/fish/functions/fish_prompt.fish ; rm -r ~/.local/share/omf Convertir a Fish en la shell por defecto

Si han descubierto que Fish es de su agrado y desean utilizarlo siempre en Ubuntu (o sea, convertirlo en la shell por defecto en lugar de Bash) podremos cambiarlo haciendo uso del comando chsh, de la siguiente manera:

chsh -s /usr/bin/fish

Para que surta efecto, habremos de reinciar la sesión en Ubuntu.

Naturalmente, podremos volver nuevamente al intérprete por defecto de Ubuntu: Bash. Para ello debemos utilizar una ruta distinta, en este caso:

chsh -s /bin/bash



06 january 2023

¿Cómo instalo el editor Micro en Ubuntu?

En un discurso en la localidad de Pergamino, Juan Perón expone sobre como utilizar el editor Micro en Ubuntu.

¡Trabajadores! Regocija mi corazón contemplar este Pueblo abigarrado ante los cambios que nos hemos propuesto dar a la República. Es en favor de los humiles que trabajamos, y en ello hemos puesto todas las herramientas de las que disponemos.

En esto hemos hecho lo mismo que la naturaleza, creciendo de lo pequeño a lo grande en forma de núcleos de acción: ya que es nuclear el micro cosmos y el nuclear el macro cosmos.

En cualquier condición que se cuadre sabremos que tenemos a nuestro lado, una compañera ideal. Para un hacker no debe haber nada mejor que una hackeresa.

De poco sirve una herramienta si no puede servirnos para el ideal final al que todos aspiramos, que es la Liberación del Pueblo y de su Software.

En el caso de los procesadores de texto, podremos encontrar en Micro un editor que puede salvarnos las castañas.

Se trata de un editor basado para la terminal, que apunta fundamentalmente a convertirse en un sucesor de Nano, pero que a su ver resulte fácil e intuitivo de utilizar. Como tal, puedo recomendarlo ampliamente para quienes, viniendo de un sistema operativo privativo, anhelen incursionar en la Terminal como senda de Liberación. Al conservar gran similitud a los atajos de Window$ (pueden modificarse también), puede servir como navaja suiza para quien requiera escribir cualquier cosa con gran agilidad.

En particular, además de poderse ejecutar en multitud de sistemas y encontrarse espcialmente apto para su manejo remoto a través de enlace seguro SSH, Micro viene un un sólo binario estático, sin dependencias, de modo que se puede descargar y usarse en cualquier sistema remoto, incluso aquellos en los cuales no gozamos permisos para instalar software de manera local.

En el caso de Ubuntu, hacernos con este maravilloso editor es moco de pavo. Simplemente hemos de abrir una terminal con Ctrl+Alt+t e ingresamos el siguiente comando de organización:

sudo apt update sudo apt install micro wl-clipboard

Nota: En versiones de Ubuntu anteriores a la 20.04LTS debemos utilizar sudo apt install micro xclip)

Conforme se haya instalado, podremos ejecutarlo en la terminal ingresando simplemente:

micro fichero.txt

Y ya estará listo para usarse. Han de mecanografiar para ingresar texto en la ventana actual (denominada buffer en la jerga) y editar tu documento. Utiliza Ctrl+s para guardar, Ctrl+q para salir.

Dando empleo a Ctrl+flechas del cursor es posible desplazarnos palabra por palabra. Utilizando Alt+Flecha izquierda o Flecha derecha es posible mover el cursor hasta el inicio o el final de la línea. Es posible avanzar o retroceder entre párrafos con Alt+{ o Alt+}.

Mayúsculas permite seleccionar, Ctrl+a selecciona todo, Ctrl+f activa la búsqueda, Ctrl+z deshace, Ctrl+x corta y Ctrl+c copia, y Ctrl+v pega, respectivamente, muy à la Window$.

Ctrl+e permitirá abrir el modo de comandos.

Hay muchos que pueden servir, pero los más útiles sin duda respectan a la creación de ventanas.

vsplit Divide ventana verticalmente hsplit Divide ventana horizontalmente vsplit fichero.txt Carga fichero.txt en ventana vertical hsplit fichero.txt Carga fichero.txt en ventana horizontal set softwrap on Divide el texto
set scrollbar on Agrega una barra de desplazamiento vertical

Esto nos permite generar un entorno multiventanas si la necesidad nos lleva a ello (la programación, las traducciones, y la elaboración puede requerirlo). Las funciones útiles están constituidas con Ctrl+w para intercambiar de ventana, o Ctrl+r para activar o desactivar los contadores de líneas del documento.

En el podremos ingresar help topic para desplegar el sistema integrado de ayuda. También puedes presionar Ctrl+g para abrir el fichero de ayuda principal.

Puedes adoptar un tema ingresando Ctrl+e para introducir comandos (autocompletables con Tab y dilucidados con tab+tab, además de contar con historial con flecha de cursor arriba/abajo), y probando con algún esquema de color. Por ejemplo, introduce set colorscheme zenburn. Prueba también los esquemas zenburn, gruvbox, dracula, twilight, railcast, bubblegum (esquema claro). Para terminales clásicas a 16 colores puedes optar por simple, solarized, cmc-16, cmc-paper y geany, o bien sus versiones sufijadas con -tc, para terminales true color. Zenburn:

Gruvbox:

Monokai (por defecto)

En fin, un grato editor que podrá hacer delicias de las compañeras peronistas que caen en los sistemas Unix Públicos...



05 january 2023

¿Cómo puedo utilizar la contraseña de aplicación OAuth2 con Gmail de Google desde Thunderbird en Ubuntu?

Sometido al ostracismo del exilio, Juan Perón explica cómo activar y utilizar la autenticación de dos pasos OAuth2 de Gmail de Google con Thunderbird en Ubuntu.

(...)

¡Trabajadores!

A partir de este 1 de junio, el oprobio ha caído no sólo sobre nuestra Patria, sino sobre todas las tierras habitadas por los hombres de Bien.

Es que el clásico y eficiente procedimiento de conexión al servidor de correo por usuario y contraseña para utilizar Gmail de Googl€ - permisivo durante mucho tiempo - ha sido invalidado por tal abyecto proveedor de servicios telemáticos.

Lo notaremos ya que nuestros clientes de correo electrónico (Thunderbird y Alpine entre otros), el cliente "nos dejará pagando", y no podremos ingresar. A pesar de que indiquemos la contraseña de usuario, el servicio no podrá establecerse, ni para sincronizar una casilla IMAP y mucho menos una POP3.

Por principio, esto no debe amilanarnos. Existen ya múltiples proveedores libres capaces de ofrecernos correo electrónico, tales como https://riseup.net/, https://autistici.org/ o bien https://mailnesia.com/. Y llegado el caso, podremos hacerlo nosotros mismos.

Ahora bien, podremos seguir utilizando la casilla de correo electrónico sin cifrado que provee Googl€ por medio del procedimiento de autenticación de dos pasos, llamado OAuth. Aún así, debemos considerar gravemente que implica proveer un número de celular (normalmente asociado con un país de residencia). A su vez, la tarea de certificación implicaría utilizar el mismo dispositivo que utilizaremos para conectar el cliente (ya sea móvil o un equipo de escritorio). Esta supuesta mejora en seguridad esconde un elevadísimo riesgo a la privacidad electrónica individual y grupal. En particular, toda actividad de correo quedará asociada a una cuenta y a un dispositivo, y para peor, a uno geográficamente rastreable por medio de metadatos y metrías de conexión inalámbrica por ondas abiertas, las cuales son la forma de utilizar las líneas telefónicas celulares.

Sólo este riesgo cabría describirlo como inaceptable y defectuoso por diseño, por lo cual debemos considerar muy seriamente desechar directamente todo uso de Googl€ y sus servicios de opresión y vasallaje.

Sin embargo, en las condiciones en las cuales necesitemos continuar utilizando tan oprobioso mecanismo para un simple correo electrónico - que puede obtenerse de forma mas segura a través de otros proveedores menos invasivos que Googl€ - podremos continuar utilizandolo activando el proceso OAuth2.

En primer lugar en nuestro cliente Thunderbird debemos presionar el botón ≡ y verificar las Preferencias Generales de nuestro cliente de correo electrónico. Para ello vamos a Preferencias y en la ventana elegimos el apartado Privacía y Seguridad. En el apartado Contenido Web normalmente estará tildada la opción la opción Aceptar Cookies de los sitios (opción por defecto.

Sin embargo, podría suceder que querramos destildar esta opción, para evitar absolutamente descarga de cookies por un cliente de correo electrónico.

Si no deseamos Aceptar Cookies de los Sitios, a partir del 1 de junio de 2022 deberíamos utilizar método de OAuth2 para poder acceder desde aplicaciones.

Podremos aceptar todas las cookies (no recomendado), o crear una excepción a la cookie de Google. Para hacer este temperamento, presionamos el botón Excepciones...

En el campo Dirección del Sitio Web del cuadro de diálogo de Cookies - Excepciones, ingresamos la URL https://accounts.google.com y presionamos el botón Permitir.

Una vez que el sitio esté agregado, presionamos Guardar Cambios.

Crear contraseña para aplicación

Pues bien señores, cada aplicación podrá recibir una contraseña pasavante de 16 cifras - creada al azar por Googl€ - que puede emplearse para autorizar la recepción y envío de correo electrónico. Tal método nos permitirá reutilizar el correo electrónico Google IMAP a través de los clientes como Thunderbird y mi favorito, el Alpine.

Es importante recalcar que esta contraseña pasavante sólo cobra utilidad para el servicio de correo Gmail, y no equivale a la del usuario de Googl€. Antiguamente, utilizábamos la contraseña de usuario de Googl€ para "entrar al mail", lo que a partir de ahora no tiene más efecto. La contraseña pasavante para la aplicación de correo puede guardarse en el llavero de contraseñas de Ubuntu, ya que permanece asociada al dispositivo (lo cual nos salva de tener que recordar una contraseña alfanumérica difícil). Es sabido mi recomendación de guardarla en algún medio seguro, entendiendo por esto en un registro papel físicamente protegido.

Para crear la contraseña pasavante, utilizamos un navegador certificado (Firefox funciona bien) desde el mismo dispositivo donde tenemos el cliente. Iremos a las opciones de la cuenta de Google, y generaremos una clave.

Para ello nos damos de alta al usuario de Google, y hacemos clic en el avatar de usuario, seleccionamos la opción "Gestionar tu cuenta de Googl€".

En la web de gestión, seleccionamos el apartado Seguridad, y activamos la sección Verificación de dos pasos. El procedimiento implicará dotar un número de teléfono móvil.

En mi caso denunciaré una línea celular de un proveedor móvil que ya no existe, instalada en un móvil obsoleto que descartaré.

Conforme se ha activado la Verificación de dos pasos, crearemos una contraseña pasavante de aplicación para los clientes de correo de Linux.

Para ello seleccionamos el apartado Contraseñas de Aplicaciones. En el selector desplegable Seleccionar Aplicación elegimos "Correo", y en el selector desplegable Seleccionar Dispositivo será necesario escoger "Otra (nombre personalizado)".

Le damos un nombre de dispositivo (por ejemplo, "Correo IMAP desde Linux") y presionamos el botón Generar.

El sistema OAuth enviará un código de verificación al teléfono móvil sosías, y al introducir el mismo en la web de autenticación de Googl€, se generará un código de contraseña de aplicación (pasavante) de 16 caracteres para la función de correo IMAP de Gmail.

Al mismo tiempo, debería arribar una notificación a la casilla de correo electrónico indicando que "se ha creado una contraseña de aplicación para iniciar sesión en tu cuenta".

Podrás utilizar ahora esta contraseña pasavante asociada a tu usuario de correo electrónico Gmail desde Thunderbird o bien otros clientes compatibles con OAuth2 desde Linux (por ejemplo, funciona también con Alpine).

Cuando aparezca ahora el diálogo de la contraseña, ingresamos la contraseña de 16 dígitos creada en Googl€.

Una vez provista dicha contraseña pasavante, los clientes de correo deberían poder recibir correos y a su vez enviar mensajes. Deberían comprobar el correcto envío y recepción de correo electrónico desde dicha casilla de correo. También podrán agregar dicha contraseña pasavante al Gestor de Contraseñas de Ubuntu ("llavero"), de modo de no tener que ingresarlas toda vez que iniciemos sesión en el escritorio de Ubuntu.

Naturalmente han de notar que una vez que activado el proceso OAuth de la cuenta Google, podríamos nuevamente desactivar las Cookies en Thunderbird, porque recibir y enviar correo electrónico funcionará sin las cookies. Sin embargo, he de decirles que en caso de que el token OAuth de Gmail expirara (en algún momento futuro), el cuadro de diálogo aparecería nuevamente y habremos de generar otra contraseña pasavante.

En conclusión, Googl€ se encarga de erosionar el uso de sus servicios si no proveemos información que les permita el rastreo. No debe usarse este sistema y debe desechárselo en lo posible.



04 january 2023

¿Cómo instalo Moodle en Ubuntu?

Como profesor titular de Historia Militar en la Escuela Superior de Guerra, Juan Perón sobresalió como didacta. En el gabinete enseñó cómo instalar la plataforma de gestión de enseñanza Moodle en Ubuntu Server.

Vean cadetes, en los tiempos que corren, la enseñanza no puede detenerse. El herramental que nos ofrece el cómputo y la telemática puede y debe contribuir a las tarea de hacer de los educandos mejores hombres, pues ellos serán los dueños del porvenir.

La formación aislada no existe: debe plantearse con un método concienzudamente estudiado y aplicado por el titular, y comprendida por sus alumnos. Todo el material de cátedra, evaluación y concreción de los logros educativos no tienen sentido si quedan guardados en un libro, sin aplicarse en la vida real bajo una doctrina que también resulte iluminada. Es que el aprendizaje - por el sólo hecho de aprender "para aprobar" - no sirve. Más barato nos resultaría un calefactor de silla...

Pues bien señores, afortunadamente esta institución nos ha permitido evolucionar. Los profesores alemanes nos han provisto esta técnica a la que han llamado “elektronisch unterstütztes Lernen”, y yo nombro aprendizaje electrónico.

Poner una en el gabinete no es algo tan simple como podría parecer, ya que el mismo debe ser dotado no sólo del hardware y la infraestructura de red, sino del software de servidor, y sobre ella aplicar los conocimientos de operación. Esto - que se extiende a todo programa telemático - cobra especial relevancia cuando debe hacerse en un ámbito educativo, y sobre todo en el educativo militar, donde los resguardos y reaseguros no pueden soslayarse.

Mi puesto es el de tutor, y por tal motivo os enseñaré a desplegar en el terreno educativo operativo a Moodle.

Se trata esta de una plataforma de software liberado bajo GPLv3 orientada a la de gestión enseñanza en línea. Permite crear sitios web privados en los cuales educadores y educandos puedan lograr sus objetivos de aprendizaje.

Como toda instalación de servicios computados, debemos poner en funcionamiento un hardware-máquina, y tomar debida nota de los atributos de los software-maquina (escencialmente los nombres de usuario y las contraseñas que les corresponden. Los estamentos de este escalafón comprenderán:

Contraseña de administración de Ubuntu Server
Nombre de usuario de MySQL y la contraseña que utilizará Moodle
El nombre del administrador de Moodle y su contraseña de moodle.
Un usuario adicional de administración de Moodle y una contraseña adicional de Moodle.

1: Instalar Ubuntu Server

En este caso utilizaremos Ubuntu Server 20.04.05LTS para armar lo que llamamos siempre "pila LAMP" (servidor Linux+web Apache+base de datos MySQL+PHP). Como primer medida deberíamos instalar el Ubuntu Server si no lo tuviésemos instalado ((idealmente un SSD de al menos 120GB), proporcionando ya la contraseña de administrador de Ubuntu.

En la terminal nos aseguramos de actualizar dicho servidor con:

sudo apt update sudo apt upgrade -y 2: Instalar Apache/MySQL/PHP

Abrimos la terminal y cargamos el PPA del lenguaje PHP7 en el servidor, mediante:

sudo add-apt-repository ppa:ondrej/php ; sudo apt-get update

A continuación instalamos el servidor Apache y la base de datos MySQL

sudo apt install apache2 mysql-client mysql-server php7.4 libapache2-mod-php

Estableceremos la contraseña de administrador para MySQL, la cual necesitaremos en el paso 6. Esto se hace con:

sudo mysql_secure_installation 3: Instalar software adicional sudo apt install git graphviz aspell ghostscript clamav php7.4-pspell php7.4-curl php7.4-gd php7.4-intl php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-ldap php7.4-zip php7.4-soap php7.4-mbstring

Reiniciamos Apache de manera que sus módulos se carguen correctamente en memoria:

sudo service apache2 restart 4: Descargar Moodle

Configuramos el repositorio local y descargaremos Moodle. A tal fin utilizaremos el directorio /opt del servidor.

cd /opt sudo git clone git://git.moodle.org/moodle.git cd /opt/moodle sudo git branch -a sudo git branch --track MOODLE_39_STABLE origin/MOODLE_39_STABLE sudo git checkout MOODLE_39_STABLE 5: Copiar el repositorio local en /var/www/html/

Como configuramos un repositorio local en el paso anterior, lo copiaremos al directorio de inicio web luego de hacer las actualizaciones y aplicar cambios. Al contar con un repositorio local fuera del directorio raiz web (mo hemos hecho en /opt) nos permitirá preparar y actualizar por etapas en una manera más eficiente. Por ejemplo, si deseamos hacer cambios o agregar algunos plugins, podríamos descargar el plugin y copiarlo en el repositorio local de moodle. Luego de que agregaramos el plugins e hicieramos cualquier otro cambio, necesitaríamos editar el fichero /opt/moodle/.git/info/exclude. En dicho fichero querrá informaarle a get qué archivos/directorios excluir cuando realiza las actualizaciones cuando ejecute la actualización mediante sudo git pull. Una entrada de ejemplo podría ser el certificado mod localizado en /opt/moodle/mod/certificate de modo que dentro del fichero exclude debería agregar /mod/certificate debajo del último comentario.

Podría agregar entradas adicionales, una por línea, para cada plugin o fichero que querría cambiar. Si desease cambiar el fichero favicon.ico simplemente agregaría "favicon.ico" al fichero exclude. Cumplido esto, al ejecutar sudo git pull para actualizar Moodle a la última versión, excluirá dichos ficheros y directorios y sólo actualizará el código del núcleo de Moodle. Antes de copiar su raiz de web para actualizar, debería asegurarse y descargar y copiar sobre las últimas versiones de los plugins que hubiese agregado.

sudo cp -R /opt/moodle /var/www/html/ ; sudo mkdir /var/moodledata ; sudo chown -R www-data /var/moodledata ; sudo chmod -R 777 /var/moodledata ; sudo chmod -R 0755 /var/www/html/moodle 6: Configurar servidor MySQL

Primero cambiaremos el motor de almacenamiento a innodb y el formato de archivo por defecto a Barracuda. También necesitaremos configurar la variable innodb_file_per_table de MySQL para que Barracuda funcione adecuadamente.Para ello editaremos el fichero mysqld.cnf:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Se abrirá Nano con el archivo de configuración mysqld.cnf. En él buscamos la sección [mysqld] y bajo las configuraciones básicas "Basic Settings" agregamos la siguiente línea al final de la última variable:

Nota: MySQL Versión 8.0 ya no requiere estas tres configuraciones.

default_storage_engine = innodb innodb_file_per_table = 1 innodb_file_format = Barracuda

Guardamos los cambios con Ctrl+o y salimos del editor Nano con Ctrl+q.

Nota: Si para servir MySQL utiliza versiones más nuevas del servidor MariaDB sobre Ubuntu 20.04, estos cambios en su fichero config reportarán un error ("mysql unknown variable 'innodb_file_format=barracuda'"), de modo que agréguelos como comentarios y no aplique estos cambios, estos valores eran recibidos por la variable default.innodb_file_format, que fue deprecada en MariaDB 10.2 y ya ha sido removida de los MariaDB más nuevos.

Reinciaremos el servicio MySQL para que los cambios de configuración cobre resultado, con:

sudo service mysql restart

Acto seguido, crearemos la base de datos Moodle y el usuario de Moodle MySQL con los permisos adecuados. Usaremos la contraseña que creamos el el paso 1.

sudo mysql -u root -p Se presentará el prompt mysql>, y en el ingresaremos los comando de creación de base de datos:

mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; Nota: Utilizaremos 'utf8mb4' para obtener caracteres UTF-8 de 4 bits con soporte completo (incluyendo Emojis). Si no lo hiciéramos, es probable que la web de adminitración de MySQL se queje con molestos errores.

Naturalmente, indicamos el usuariodemoodle y la contraseñademoodle".

mysql> create user 'usuariodemoodle'@'localhost' IDENTIFIED BY 'contraseñademoodle';

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'usuariodemoodle'@'localhost';

mysql> quit;

Nota: Su usa MySQL 5.6+ al crear el usuario se puede recibir un error sobre el hash de la contraseña, por lo cual debe ajustarse la contraseña para usar el valor hash. Podrá hacerlo mediante:

mysql> SELECT password('contraseñademoodle');

Esto presentará en la terminal el hash de la contraseñademoodle, con la forma *AD51BAFB2GD003D3480BCED0DH81AB0BG1712535, querrá utilizar esto en la parte indicada como IDENTIFIED BY ' 7: Completar la configuración

Para configurar el sitio PHP momentáneamente daremos permisos totales de escritura al directorio del servidor, con:

sudo chmod -R 777 /var/www/html/moodle Abrimos el navegador web y lo dirigimos a la URL http://DIRECCION.IP.DEL.SERVIDOR/moodle

Seguimos las instrucciones de la web de configuración: Cambiar la ruta de moodledata

/var/moodledata Tipo de Base de Datos

Elija: mysqli Configuración de Base de datos

Host server: localhost Database: moodle User: usuariodemoodle Password: contraseñademoodle Tables Prefix: mdl_ Revisiones del Ambiente

Esto indicará si algún elemento requerido para la ejecución de Moodle todavía no está instalado.

Presionamos Siguiente-Siguiente-Siguiente hasta confirmar la instalación. Crear una Cuenta de Administrador del Sitio

Creamos nuestra Cuenta de Usuario Moodle que tendrá permisos de administración del sitio. La contraseña que elijamos debe contar con ciertos requerimientos de seguridad obvios. Instalación Completa

Debemos recordar que como habíamos otorgado permisos a la raíz web para poder configurar moodle, ahora debemos revertir tales permisos para blindar la seguridad del servidor. Esto se hace ahora con:

sudo chmod -R 0755 /var/www/html/moodle

Gracias al Justicialismo ya podremos comenzar a utilizar Moodle. Rutas de Sistema luego de instalar

Luego de instalar Moodle, deberíamos configurar las rutas de sistema. Cada entrada en Moodle tendrá su propia explicación.

Con el navegador web vamos a la página web de administración de moodle. Y vamos a Administración de Sitio / Servidor / Rutas de Sistema.

Ingresamos lo siguiente

Ruta de du: /usr/bin/du Ruta de apsell: /usr/bin/aspell Ruta de dot: /usr/bin/dot

...y presionamos el botón Guardar los cambios. Protección antivirus en Moodle

Para configurar la solución antivirus del servidor, en la terminal ingresamos:

sudo mkdir /var/quarantine ; sudo chown -R www-data /var/quarantine

Y en la web de Moodle vamos a Administración del Sitio / Plugins / Plugins Antivirus / Administrar plugins antivirus.

Activamos ClamAV antivirus. Vamos a Configuración, le aplicamos las que querramos, y presionamos Guardar Cambios.

Nota: en versiones antiguas de Moodle se tildaba "Usar ClamAV en ficheros subidos" y la ruta del antivirus ClamAV era : /usr/bin/clamscan Directorio de cuarentena : /var/quarantine y se presionaba Guardar Cambios. Opcional Activar Zend OpCache

Agregamos las configuraciones recomendadas de OPcache al fichero 05-opcache.ini. Lo editaremos usando Nano con: sudo nano /etc/php7/apache2/conf.d/05-opcache.ini

Nota: In Ubuntu 16.04 opcache.ini estava localizado en /etc/php/7.0/mods-available/opcache.ini

...y le consideramos el siguiente contenido:

[opcache] opcache.enable = 1 opcache.memory_consumption = 128 opcache.max_accelerated_files = 10000 opcache.revalidate_freq = 60

; Requerido para Moodle opcache.use_cwd = 1 opcache.validate_timestamps = 1 opcache.save_comments = 1 opcache.enable_file_override = 0

; Si algo no funciona en Moodle ;opcache.revalidate_path = 1 ; Puede corregir problemas con rutas incluídas

; Experimental para Moodle 2.6 y superior ;opcache.fast_shutdown = 1 ;opcache.enable_cli = 1 ; Acelera el cron en CLI ;opcache.load_comments = 0 ; puede disminuir uso de la memoria, podría ser incompatible con add-ons y otras apps.

Reiniciamos el servidor Apache para que surta efecto. sudo service apache2 restart

Con esto tendremos activado Zend OpCache. Cambiar la Raíz de Documentos

También puede instalar una interfaz gráfica para ver el estatus de carga de su Zend OpCache, aunque no está recomendado en servidores de producción: cd /var/www/html/moodle/ ; sudo wget https://github.com/rlerdorf/opcache-status/blob/master/opcache.php

Debemos también agregar este fichero opcache.php al fichero de configuración /opt/moodle/.git/info/exclude para que no resulte eliminado al actualizar la instalación.

Visitamos http://dirección.ip.del.servidor/moodle/opcache.php

Si no queremos que los usuarios finales tengan que ingresar http://servidor/moodle y queremos que directamente vayan a http://servidor para encontrarse con Moodle, habremos de editar la configuración de Apache para indicarle que use /var/www/html/moodle como el directorio raíz en lugar de hacerlo con /var/www/html

Abrimos el archivo de configuración de Apache y cambiamos la raíz de documentos: sudo nano /etc/apache2/sites-available/000-default.conf

Usamos Ctrl+w para buscar la cadena por defecto:

DocumentRoot /var/www/html

...y la modificamos a a:

DocumentRoot /var/www/html/moodle

Guardamo los cambios con Ctrl+o, salimos de Nano con Ctrl+x, y una vez devueltos a la terminal, reiniciamos el servicio web Apache para que surta efecto:

sudo service apache2 restart

Nota: Si ya teníamos Moodle instalado, haremos los cambios a continuación. Editar config.php para Moodle

En las instrucciones de instalación, uno de los cambios sugeridos para raiz de web es usar "localhost". Esto está bien para evaluar el servidor nuevo durante el deployment. Sin embargo, si queremos ver la misma máquina en la red de área local o ver el sitio desde la Internet, habremos de coambiar dicha configuración. En el fichero config.php existe la variable ($CFG->wwwroot en se puede configurar la dirección IP privada del servidor (ej. 192.167.0.1/moodle) como webroot. Dependiendo de la configuración de la red local, suele ser mejor configurar un nombre de red en lugar de la dirección IP privada, ya que estas podrían cambiar de tiempo en tiempo.

Finalmente, si desea usar la instalación en la internet, habrá de utilizar un nombre de dominio o una dirección_ip_publica_fija/moodle como su web root. Editamos el fichero config.php de Moodle con Nano:

cd /var/www/html/moodle/ ; sudo nano config.php

Usamos Ctrl+w para buscar la variable $CFG->wwwroot y le asignamos http://direccion.ip.del.servidor/moodle Documentación

Naturalmente, esto ha contemplado la creación de una puesta de campo y luego puesta a punto del servidor, en una explicación somera.

La aplicación de la plataforma en sí está suficientemente documentada, y podrán encontrar su bibliografía aquí.

¿Aprendieron? Bueno, en cualquier caso mañana les tomo prueba. El que no viene tiene cero.



03 january 2023

¿Cómo puedo leer correo QWK de FidoNet en Ubuntu?

Incluso circunscripto al ostracismo de un exilio panameño, Juan Perón ejercía tareas organizativas tendientes a su retorno a la Patria, y al uso de paquetes QWK de correo diferido de la red FidoNet en Ubuntu.

¡Trabajadores!

La contumacia y la reacción de la oligarquía no ha cejado en sus afrentas al Pueblo, y aquello que es sólo un accesorio, su Conducción.Este brutalismo demostrado no puede más que concertarnos en la acción de resistir inteligentemente, y será preciso hacerlo en todo tiempo y en todo lugar, mientras yo miro desde lejos.

Luchen y retornaré a la patria en un avión negro. Aún así no pongan el cuerpo al ñudo. Permanezan tranquilos, y vayan de /var a /home y de /home a /var. La Conducción estratégica de nuestro Movimiento es absolutamente posible gracias al empleo de correo electrónico gracias a las facilidades de la FidoNet.

Esta red de área amplia está concebida para el almacén y reenvío de correo electrónico. A pesar de los intentos de la camarilla que se hizo con el poder nos será posible intercambiar información computarizada, afianzando este sucedáneo de red social para cualquier objetivo que nos queramos plantear.

Han de saber que en su origen, esta red fue concebida como una alternativa bobbista para quienes no contaban con acceso a las redes de datos (originalmente de alcance mayormente científico-académico). A tal fin se utilizaban los inefables tendidos telefónicas nacionales con el indispensable nexo de módems. La esquematización operativa soslaya por ello llevar al mínimo absoluto el costo de las comunicaciones de larga distancia (pagaderas individualmente en función del tiempo y la distancia de enlace).

Desde el punto de vista funcional, la red se haya jerarquizada en una estructura que imita el despliegue geográfico de las líneas telefónicas: la ubicación en la red se explicaba según una sintaxis numérica con puntuación divisiva, que permite remitir mensajes de texto plano a un nodo particular dentro de la red. Este direccionamiento sigue la sintaxis Zona:Red/Nodo.Punto, donde:

Zona: Representa la zona continental
    Norteamérica
    Europa
    Oceanía
    Latinoamérica
    África
    Asia
Red era el código de área local de la ciudad (o un área más grande si había poca densidad de nodos)
Nodo era un host particular dentro de la red local (normalmente una BBS)
Punto (opcional). representaba el identificador del usuario no registrado (es decir, eran usuarios de BBSs no listados).

Así, la dirección de ejemplo 4:900/125.42 correspondería al usuario 42 del host número ciento veinticinco ("Macondo BBS") dentro de la red local de Capital Federal, Argentina (red 900), que se haya en Latinoamérica (zona 4).

Ahora bien, la red FidoNet sirve en estos casos donde la Lucha, que es una cosa penosa, debe llevarse por todos los medios. Existe aún, y podremos emplearla gracias a las BBS que aún quedan. Los usuarios - conocidos como Puntos o "Points" se conectan a las hosts para descargar y subir paquetes de datos que contenían su correo electrónico y noticias. La participación social primordial en FidoNet está dada por la intervención en salas temáticas de conversación asíncrona por medio del E-mail. Para ahorrar teléfono se descargaba el correo QWK empaquetado y se lo leía "fuera de línea" con un lector de correo fuera de línea.

Afortunadamente, podremos utilizar Ubuntu para hacer lo mismo de forma sencilla y sin gastar una chirola en facturas telefónicas, ya que actualmente muchas BBS que ofrecen servicio de host de Fido están al alcance de Telnet o SSH a través de la red Internet. Para tal fin debemos instalar y utilizar el cliente de BBS Telnet SyncTerm.

Además, instalaremos el lector de correo fuera de línea MultiMail. Para instalar el mismo abriremos una terminal con Ctrl+Alt+T e ingresando los siguientes comandos de organización: sudo apt update ; sudo apt install multimail

Podremos usar Syncterm para conectarnos por telnet a una BBS que ofrezca servicio de FidoNet, como MomiaBBS (telnet momiabbs.no-ip.info -p 2323) o DockSud BBS (telnet bbs.docksud.com.ar -p 23).

Una vez accedida a la BBS que oficie de nodo de Fidonet, podremos listar las áreas que nos interesan.

La mayoría de las salas de la red Fido se encuentran en inglés, pero las salas que comienzan con "esp" se encuentran en castellano. Entre estas están:

esp.argentina esp.adivinanzas esp.ajedrez esp.avisos esp.cine esp.ciencia esp.chistes esp.comics esp.ecologia esp.emuladores esp.fidonet esp.fudam_fido esp.politica esp.pruebas esp.historia esp.literatura esp.linux esp.linux.nue esp.rol esp.seti esp.software esp.seguridad esp.softbbs esp.sexo esp.sonido esp.trueque esp.newsoft esp.windows

Conforme hayamos seleccionado los números de las áreas, podremos descargar el paquete QWK que compila los mensajes de las mismas. Esto se realiza a través de las facilidades de descarga por Zmódem del programa de comunicaciones. La descarga telefónica se lleva a cabo en el tiempo típico de estos paquetes, que podía ser de unos 30 segundos. El archivo .QWK debería quedar copiado en nuestro directorio ~/home.

Tras colgar, podremos leer el paquete QWK con MultiMail. Podremos ejecutar dicho lector fuera de línea.

mm

La vez primera que ejecutemos mm, este nos solicitará contar con el fichero de configuración ~/.mmailrc y interrogará si queremos editarlo, lo cual suele ser innecesario y presionamos y. Nos encontraremos con un programa con interfaz de usuario ncurses, aunque el lector estará vacío; podremos salir con la tecla q.

Naturalmente, hemos de copiar el paquete de correo al directorio de descargas de MultiMail, y podríamos hacerlo con:

cp MOMIABBS.qwk ~/mmail/down/

Ahora, al correr MultiMail podremos encontrar el paquete QWK descargado que ansiamos leer.

Una vez abierto el paquete QWK, se nos presentarán las secciones o salas contenidas en él, indicando la cantidad de correos totales y aquellos sin leer.

Podremos abrir fuera de línea los correos personales que nos hubiesen dirigido.

Una vez en el lector, podremos visualizar fuera de línea el correo, tal como se hacía en la era de Oro de la Fidonet.

También podremos revisar los correos no leídos y ponernos al tanto de todas y cada una de las salas seleccionadas previamente.

O bien leer los correos que deseemos.

Gracias a todos estos procedimientos, podremos continuar participando al día de hoy en la red FidoNet y contar con los clásicos paquetes diferidos QWK en nuestro Ubuntu y en cualquier parte del mundo.



02 january 2023

¿Cómo configuro la hora en Ubuntu?

En su carta del 25 de septiembre de 1970 al líder de la UCR-P Ricardo Balbín, Juan Perón propone instrumentar La Hora del Pueblo, y expone cómo configurar la hora en Ubuntu.

(...)

Puerta de Hierro, 25/9/70

Al Dr. Ricardo Balbín

Estimado compatriota:

El señor Secretario General del Movimiento Nacional Justicialista, Don Jorge Daniel Paladino, me ha enterado de la conversación que ha mantenido con Usted y de las ideas por Usted sustentadas con referencia a la situación que vive el país y deseo manifestarle que las comparto totalmente.

Tanto la Unión Cívica Radical del Pueblo como el Movimiento Nacional Justicialista son fuerzas populares en acción política. Sus ideologías y doctrinas son similares y debían haber actuado solidariamente en sus comunes objetivos. Nosotros, los dirigentes, somos probablemente los culpables de que no haya sido así. No cometamos el error de hacer persistir un desencuentro injustificado.

Separados podríamos ser instrumentos, juntos y solidariamente unidos, no habrá fuerza política en el país que pueda con nosotros y, ya que los demás no parecen inclinados a dar soluciones, busquémoslas entre nosotros, ya que ello sería una solución para la Patria y para el Pueblo Argentino. Es nuestro deber de argentinos y, frente a ello, nada puede ser superior a la grandeza que debemos poner en juego para cumplirlo.

Tanto Usted como yo ‘estamos amortizados’, casi ‘desencarnados’. Ello nos da la oportunidad de servir a la Patria en los momentos actuales, ofreciendo una comprensión que nos haga fuertes para enfrentar, precisamente, la arbitrariedad de los que esgrimen la fuerza como única razón de su contumacia.

La Liberación del Pueblo implica consagrarnos a la creación de las herramientas que la hora imponga. Es por ello que hemos envisionado La Hora del Pueblo. Es un instrumento meramente táctico que el comando estratégico peronista no digita. Yo simplemente intervengo con mi teletipo y un magnetófono. Pero para ser efectivo tengo que tener bien en claro las hora de la CGT de allí y la local de Puerta de Hierro. Usted traerá chizitos.

No es secreto para nadie que podremos dar rienda suelta al manejo de la hora del Pueblo desde la terminal. Para ello abriremos una con Ctrl+Alt+t e introduciremos los comandos necesarios. date

En el caso de los sistemas Ubuntu superiores 18.04LTS y superiores, podré ingresar el programa de control de fecha y hora:

timedatectl

Ahora bien, el programa nos indicará qué hora tenemos configurada. Suponiendo que lo quiera en la hora de la CGT, podría indicar:

           Local time: dom 2022-04-17 11:37:57 -03                
       Universal time: dom 2022-04-17 14:37:57 UTC                
             RTC time: dom 2022-04-17 14:37:56                    
            Time zone: America/Argentina/Buenos_Aires (-03, -0300)

System clock synchronized: yes
NTP service: active
RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone. This mode cannot be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0'.

Como vemos, el reloj está atrasado 1 segundo.

En los sistemas de tipo UNIX es posible configurar la hora por el método estandar del comando date. Por ejemplo:

sudo date +%T -s "14:37:57"

o bien cambiamos la fecha con

sudo date +%Y%m%d -s "20220417"

Para ver el reloj de sistema, podíamos utilizar:

sudo hwclock

Si contábamos con una conexión a internet, podríamos utilizar el servicio NTP, que hace uso de relojes atómicos sincronizados a través de Internet. Para ello ingresaríamos:

sudo hwclock -r

Sin embargo, el demonio correspondiente a systemd nos permite hacerlo con timedatectl. Para poner una hora específica en el RTC del sistema podría podría ingresarla con set-time hh:mm:ss o set-date aaaa-mm-dd: timedatectl set-time 14:47:57

Sin embargo, el problema anunciado no es atraso de un segundo, sino en que el sistema de cómputo particular está configurado para leer la hora de un reloj de la computadora configurado según la zona horaria local. Esto significa que el reloj de la computadora está sincronizado con la hora local del lugar de residencia en lugar de estarlo con la hora universal "UTC".

Esto alberga algunos inconvenientes: la zona de tiempo interna del sistema variaría indefectiblemente al trasladar geográficamente el equipos (caso que nuestro equipos sea portátil y viajemos en el Avión Negro), al igual que el uso estacional de acuerdo a los horarios de verano si estos aplican. En cualquier caso esto provocaría "huecos" en la hora del sistema, y en consecuencia en el registro de archivos.

Esta configuración "fija" tenía sentido en equipos de permanencia geográfica fija, sin acceso a la red de datos y sin acceso remoto, o incluso en aquellos sistemas de cómputo en los cuales su localización debía permanecer como oculto secreto.

Normalmente no es algo gravísimo en un equipo particular, pero que sí podría provocar paradojas temporales que perturben el funcionamiento armónico de un servidor, sobre todo en acciones pre-programadas con fecha y horarios.

Sin embargo, para la mayoría de los casos se propone hoy posible ajustar el reloj de forma dinámica con un servicio de red conectado a un reloj atómico en hora universal UTC, e indicandole al sistema en qué zona horaria nos encontramos. En el caso de GNU con Linux, las zonas horarias se encuentran divididas geográficamente en la carpeta /usr/share/zoneinfo/. Naturalmente que el sistema operativo compensará las diferencias entre el reloj calibrado en UTC conociendo el lugar geográfico en el cual nos encontramos.

Para lograr tal ajuste, debemos contar con una conexión a internet válida. Luego ingresamos.

timedatectl set-local-rtc 0

También podríamos desactivar el ajuste de reloj automático por red con:

timedatectl set-upt no

...y luego lo volvemos a activar:

timedatectl set-upt yes

En tal puesta en línea, "se pondrá en hora" con un reloj atómico de referencia a través de internet. Como vemos, al ingresar el comando timedatectl, ahora nos informa:

           Local time: dom 2022-04-17 11:46:59 -03                
       Universal time: dom 2022-04-17 14:46:59 UTC                
             RTC time: dom 2022-04-17 14:46:59                    
            Time zone: America/Argentina/Buenos_Aires (-03, -0300)

System clock synchronized: yes
NTP service: active
RTC in local TZ: no

Ahora bien, cada usuario del servidor podrá únicamente alterar la hora local si desea proveer una zona horaria.

En el caso de querer hacerlo desde la terminal podremos utilizar también timedatectl. Para configurar la hora del servidor en tiempo universal, introducimos: timedatectl set-timezone UTC

Ahora bien, los usuarios del sistema podrán reglar sus horas convirtiéndolas a hora local, ya sea a través de su entorno de escritorio o bien desde su sesión de intérprete de comandos.

En el primer caso es muy simple: cada usuario podrá elegir la configuración de fecha y hora local (Sistema/Preferenias/Hardware/Gestor de la hora y la fecha):

Presionamos el botón Editar, y elegimos una localización en el planisferio o bien la buscamos una ciudad o zona.

En caso de querer utilizar la terminal, primero listaremos qué zonas horarias se encuentran disponibles con:

timedatectl list-timezones

Se listarán todas por localización geográfica alfabética específica, o bien por denominación genérica (por ejemplo, el área específica America/Argentina/Buenos_Aires o bien la zona horaria Etc/GMT+3 (lo que indicaría que la hora de Greewich Village está adelantada tres horas con respecto a la banda horaria). Una vez que encontramos la que deseamos, podremos abandonar el listado con q.

Finalmente, podremos instruir la zona de tiempo deseada a Ubuntu, mediante:

timedatectl set-timezone Etc/GMT+3

o bien:

timedatectl set-timezone America/Argentina/Buenos_Aires

Podremos configurar ahora la banda horaria deseada en nuestro intérprete de comandos. Por ejemplo, le podríamos agregar al fichero

nano ~/.bashrc

y agregarle el siguiente contenido que especifique la hora local:

export TZ='Etc/GMT+3'

Nota: En BSD esto puede especificarse como UTC-3.

Esto tiene sentido si los usuarios acceden remotamente al sistema desde localizaciones fijas, etcétera.

Encuadrados en estas modificaciones, la Hora del Pueblo se presentará correcta en nuestro sistema, y se actualizará por internet, toda vez que las funcionalidades asociadas a ella - tal como pantalla en modo nocturno, reportes de tiempo, etcétera - se harán agradablemente patentes.

El compañero Paladino podrá ampliarle mis pensamientos al respecto. Le ruego que, con mis saludos de compatriota, quiera aceptar mis mejores deseos.

Juan Domingo Perón



01 january 2023

¿Cómo instalo el paquete DEB de Firefox desde PPA evitando el Snap en Ubuntu 22.04LTS?

¡Trabajadores!

Ante la ignominia de la opresión y la incorporación de los vilipendiados snaps, ¡podremos hacer tronar el escarmiento!

No es secreto para nadie que a partir de Ubuntu 22.04LTS, Firefox viene incorporado en los inefables Snaps. Son estos sucedáneos de máquinas virtuales un enjundio que bajo el pretexto de facilitar la distribución de paquetes de software al programador, no hacen más que cargar y enlentecer nuestro sistema.

Es por este motivo que todos los peronistas han preferido utilizar paquetería Deb, en un ejemplo de liberación.

A pesar de las campañas de la insidia, debemos saber y propalar que es simple reemplazar el lento paquete Snap que viene de fábrica en Ubuntu 22.04LTS con un Deb oficial provisto por los compiladores del equipo de desarrollo Mozilla Team. Esto nos permitirá instalar de Deb el Firefox, con lo cual tendremos tiempos de inicio muy inferiores.

A tal fin abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes comandos de organización:

sudo snap remove firefox sudo add-apt-repository ppa:mozillateam/ppa -y sudo apt update sudo apt install -t 'o=LP-PPA-mozillateam' firefox firefox-locale-es

Ahora bien, para que al actualizar las versiones de los paquetes no se reinstale el Snap de Firefox - la militancia ha de darle prioridad al proveedor de PPA por sobre el Snap de Canonical. Seguir este temperamento es sencillo. Simplemente hemos de ingresar:

sudo nano /etc/apt/preferences.d/mozillateamppa

...y en el fichero de configuración que se nos abre hemos de pegar este contenido:

Package: firefox* Pin: release o=LP-PPA-mozillateam Pin-Priority: 501

No debemos olvidar guardamos los cambios y cerrar el editor GNU Nano con Ctrl+o y Ctrl+q.

Luego correr un update para guardar cambios.

sudo apt update

Ya podremos iniciar Firefox.

Si Firefox sale en inglés, podremos pasarlo a castellano buscando la lista de idiomas en sus preferencias.

Agregamos el paquete de idioma alternativo en español. Y tras aceptarlo Firefox quedará ya en castellano.

Naturalmente, como Ubuntu 22.04LTS con Gnome Shell, podremos agregar las extensiones de Gnome Shell solicitándolas como Gnome Shell Extensions (https://extensions.gnome.org/).

¡Con esto habrán logrado la Justicia Social de eliminar el lento snap de Firefox de Ubuntu 22.04LTS!



31 december 2022

¿Cómo optimizo Chromiun para que funcione en equipos de bajos recursos?

Durante su exposición sobre la relación entre los sueldos y salarios en el edificio de la CGT, Juan Domingo Perón expone cómo limitar el uso de recursos de Chromiun en Ubuntu.

¡Trabajadores!

(,..)

Los humildes de la Patria han de recibir todos los beneficios que pueda ofrecernos nuestra desinteresada labor y la conciencia de grandeza que alberga el Pueblo. Esto lo merecen los jóvenes, pero también estos estos carcamanes quienes como yo - ya se tienen que hacer la carmela.

Esto incluye también al hardware más humilde, so pena de verlo caer en la ignominia de la comprensión.

No pasará desapercibido a sus cálidos corazones que un equipo de escasa potencia como puede ser un netbook muchas veces guarda en su génesis las limitaciones propias de un equipo minimalista. No sólo potencia de cómputo humilde, sino discos rígidos mecánicos y escasas cantidades de memoria de trabajo, la RAM.

Todos estos ejes son plausibles de actualizarse si nos proponemos la acción como lo hizo la Fundación Eva Perón: llevar a quien lo necesite la asistencia social que otorga nuestro Movimiento Justicialista.

Es sabido que los discos rígidos mecánicos de 5400 revoluciones por minuto no son algo "para tirar cohetes". Si tenemos ganas de instalar de cero, no será mala idea reemplazarlos ya con un disco de estado sólido provisto por la Fundación. Pasaremos de tener una lanchita put-put a contar con un verdader Pulqui II a reacción.

Por otro lado, podremos ampliar la memoria RAM. Normalmente estas netbooks podían venir munidas de un escaso Gigabyte de memoria. Esto es un chiste que hace caso a la visión Billgatista del cómputo, donde "640K deberían alcanzar para todo el mundo". Pero mejor que decir es hacer: desatornillando la puertita de abajo de la netbook (algunas requieren sacar el teclado), se puede intercambiar el SO-SIMM original de 1GB de memoria RAM, reemplazandolo por otro de 2GB o - en el mejor de los casos - incluso hasta 8GB. Con 4GB u 8GB tendremos un equipo con GNU/Linux que nos ofrezca la dignidad del cómputo de potencia.

Ahora bien, este aumento depende del modelo de Netbook. Lamentablemente no son extrañas las situaciones - en un mundo donde la obsolescencia se planifica pensando en el lucro - en el cual la o las ranuras de memoria y la placa madre de dichas máquinas no permitan superar cierta cantidad de memoria dada. Muchos de estos equipos portátiles están limitados por diseño a los 2GB o 4GB, donde el primer caso reviste un desafío acuciante.

Vean señores,contar con 2GB es siempre mejor que 1GB, pero el avance de los tiempos y el consumo mismo de las redes de datos nos impondrá la necesidad de un pronto trasvasamiento generacional que aplique también al hardware.

Existen, sin embargo, ocasiones donde esto ya es difícilmente posible, y para ello hemos de hacer efectivos los Derechos de la Ancianidad. Todo lo que haremos debe estar pensado en un minimalismo funcional que requiera el menor esfuerzo a la máquina. Una netbook con 2GB aún puede ser útil, pero su talón de aquiles sin duda estará en el navegador Web.

Afortunadamente, aún podremos intentar ciertas configuraciones de nuestro navegador Chromiun para que omita opciones de alto consumo, y que nos permita un mejor uso crítico para sitios webs livianos y conscientes del bajo consumo de recursos.

Para ello abrimos una terminal con Ctrl+Alt+T y abrimos con un editor el fichero de configuración para usuario del navegador Chromiun. Por ejemplo:

nano ~/.config/chromium-flags.conf

Si ya hemos modificado dicho fichero con configuraciones, este debería contener información. De lo contrario, es muy probable que esté vacío. En cualquier caso agregamos al final del fichero el siguiente contenido:

Modificado por peron para netbooks poco potentes:

--ignore-gpu-blocklist --enable-gpu-rasterization

--enable-zero-copy

--disable-sync-preferences --disable-reading-from-canvas --disable-smooth-scrolling --wm-window-animations-disabled --enable-low-end-device-mode

Guardamos los cambios con Ctrl+o y cerramos el editor con Ctrl+x.

Naturalmente, para que estos cambios específicos para Chromiun surtan efecto, hemos de reiniciar dicho navegador.

Para navegar con Chromiun con estas cantidades limitadas de memoria, también es recomendable pensar en un sistema operativo más pistero posible. Window$ quedará desterrado para siempre, y apuntaremos a un Linux que de cuenta de los mínimos consumos. Huayra GNU/Linux puede ir bien, pero también Trisquel (dependiendo del chipset de Wifi) o Linux Lite. En todo caso, siempre recomiendo no utilizar más de dos solapas para navegar.

Si aún con esto nos queda chico, siempre podremos reemplazar Chromiun con el pináculo de la navegación mínima, el browser para terminal elinx. Con sólo 2 megabytes de consumo, este nos permitirá navegar desde cualquier lado.



30 december 2022

¿Cómo utilizo TOPS-20 "TWENEX"?

El 17 de marzo de 1953 Juan Perón inaugura la Universidad Obrera Nacional, cuyas facultades regionales permitieron instrumentar una política de crecimiento educativo. En la primer Clase Magistral, el presidente enseñó cómo utilizar remotamente TOPS-20, el sistema operativo basal de la cultura Hacker conocido como TWENEX.

(...)

Compañeros:

Invitado por el decanato de esta casa para dirigiros la palabra en este acto, no he querido preparar ningún discurso. Yo soy de los que creen que la verdad habla siempre sin artificios y, en consecuencia, prefiero conversar con los amigos que me escuchan, que espectarles un discurso, quizás muy lleno de adornos, pero muy falto de fondo y de sinceridad.

No escapará la comprensión de los compañeros que me escuchan cual es la emoción que me embarga al iniciar los cursos de la primera Universidad Obrera de nuestra patria. Probablemente podrá haber muchos que sientan una inmensa satisfacción al disponer de esta nueva casa de estudios en esta Nueva Argentina, pero no habrá ninguno que la sienta con más sinceridad y con mayor profundidad que yo mismo, que en 1945 entreví la posibilidad de desarrollar en esta forma una mayor elevación cultural de nuestro pueblo.

Cuando hablamos de la justicia social no dijimos que había que llevar solamente un poco más de dinero a los hogares del pueblo argentino o un poco más de comida a sus hijos; hablamos también de nutrir más abundantemente el alma y la inteligencia de nuestro pueblo. No es un fenómeno nuevo que en las etapas en que la humanidad se ha dedicado a explotar las masas como carne de cañón en la guerra o como brazo de trabajo en la paz, las clases dirigentes no se hayan dedicado también a hacerles faltar la necesaria cultura y preparación. Siempre el pueblo ha sido una víctima privada de felicidad, de alimento y también de cultura y ciencia. Por eso la justicia social, como nosotros la entendemos, no consiste solamente en dar a nuestro pueblo lo material, sino también en prepararlo intelectual y espiritualmente.

La formación de universidades de carácter técnico en el país presupone, no solamente la formación de un técnico, sino también la conformación de un ciudadano de la Nueva Argentina. La ciencia y la cultura deben servir a las virtudes de los hombres y de los pueblos, sino serán siempre mal empleadas.

Cuando en el estudio de los numerosos problemas a que el panorama interno e internacional nos empuja en los momentos presentes encontramos a cada paso un ejemplo que confirma lo que termino de decir. Cuando vemos que la política internacional de las naciones es un medio para preparar la guerra, se nos está demostrando que la política internacional está en manos de malvados. Cuando la política interna de los países, en vez de servir para la felicidad del pueblo y la grandeza de la Nación, se desvía hacia el servicio de una clase dirigente, mediante la explotación del pueblo, de su miseria o de su desgracia, estamos viendo que la política interna está en manos de malvados. Cuando la ciencia se dedica a los progresos para exterminar a la humanidad y no para servir a su felicidad y a su grandeza, estamos viendo que la ciencia también está en manos de malvados.

Lo que nosotros queremos, en esta Nueva Argentina, es que la ciencia y la cultura sean del pueblo, y que el pueblo esté formado por hombres que amen a los hombres y no que preparen su destrucción o su desgracia. Cuando la cultura y la ciencia, instrumentos maravillosos de la humanidad, estén al servicio del bien, manejados por hombres buenos y prudentes, recién podremos decir que la ciencia y la cultura son elementos positivos y no negativos de la humanidad. Y eso no será posible ni realizable hasta que la ciencia y la cultura estén en manos del pueblo y solamente del pueblo.

Por esa razón, nosotros, en nuestros planes de gobierno, luchamos por una ciencia y una cultura populares.

No podemos decir que un país sea culto ni tenga gran adelanto en su ciencia, porque cuente con tres, cuatro o diez sabios u hombres cultos, mientras el resto es un mudo y torpe rebaño de ignorantes. La cultura del pueblo está en que, aún cuando no poseamos ningún sabio ni ningún hombre extraordinariamente culto, tengamos una masa popular de una cultura aceptable. Por eso hemos establecido entre nuestros objetivos, que tanto la cultura como la ciencia son elementos al servicio del pueblo y esgrimidos por la mano del pueblo.

Esta Universidad Obrera pone un jalón de avance en la cultura social del pueblo argentino. Pone, quizás, uno de sus más importantes jalones, porque da amplitud y extensión a la cultura popular, y porque sus puertas están abiertas a todos los hombres del pueblo que sientan la necesidad de elevar su cultura; está abierta a todos los hombres y mujeres que tengan inquietudes intelectuales y quieran realizarlas.

Las universidades argentinas, por otra parte, son todas de estas características; pueden los hombres humildes del pueblo ir a cualquiera de las universidades argentinas, donde recibirán el mismo tratamiento, sean ricos, sean pobres, sean hijos de poderosos o sean hijos de humildes hombres del pueblo. La cultura que es el pan del espíritu y el pan de la inteligencia, no se le puede negar a ningún hombre del pueblo en un país que se sienta civilizado.

En 1944, cuando lanzamos la primera disposición estableciendo la organización de la mano de obra y de la capacidad técnica para la industria argentina. Fue entonces, que pensamos en que nuestros obreros no habían de formarse más en el dolor del taller o en el abuso patronal de los aprendices de otros tiempos, explotados y escarnecidos, en los lugares mismos de trabajo que ellos deber amar y enaltecer. Fue entonces cuando dijimos: ¿cómo es posible que un médico, un abogado, un militar se formen en una escuela donde el Estado les paga sus estudios y un pobre obrero que no tiene medios, que vive en la miseria, tenga que ir a aprender en el dolor del taller o en el maltrato que recibe de sus patrones? Y de esa idea surgieron las escuelas de orientación profesional donde nuestros muchachos, respetando y haciendo respetar los lugares de trabajo, debían ir conformando el espíritu de la mano de obra argentina, para que después, en la combinación de las concepciones técnicas y de nuestras máquinas, pudieran surgir los productos industriales perfectos, como hay que perfeccionarlos hoy para que sean útiles.

Habíamos observado en todos los horizontes del mundo una limitación inaceptable: operarios que no tenían otra suerte que morir de operarios, después de sufrir y luchar durante toda su existencia sin ninguna posibilidad de progreso. Entonces pensamos que era necesario hacer posible que esos muchachos tuviesen sus escuelas de aplicación donde fueran cumpliendo etapas técnicas de progreso.

El caldo de cultivo más extraordinario para que proliferen clases de pensamientos y de doctrinas extremistas y otras ideas extrañas, está justamente en la limitación del horizonte de aspiraciones de la clase trabajadora. Los hombres del pueblo – todos los hombres – deben tener ampliamente abierto el horizonte de aspiraciones para los que sean capaces. Y en esta tierra nosotros hemos afirmado que cada uno de los ciudadanos argentinos que durante la vida acumule méritos suficientes para llegar a ser dirigente máximo de la República y presidente de la Nación, si es necesario.

Para que esto no sea una mentira criolla, es necesario brindar las posibilidades para que cada uno se realice a sí mismo; para que cada uno tenga en sus manos la posibilidad de ir ilustrándose y llenando los espacios culturales de su imaginación y de su inteligencia, en la medida de su capacidad.

Yo he sido profesor de Historia. Esta es importante pues nos permite comprender el pasado para estudiar el presente, y avisorar - por extrapolación - lo que podría suceder en el futuro. Un historiador militar ha de contar entonces con todo el influjo informativo que le permite la biblioteca, y también notar las condiciones actuales del Arte de la Conducción. Es este proceder el que nos hará peritos.

Sin embargo, lo mismo también aplica al arte del cómputo, que también se enseñará aquí. Vean señores, los sistemas GNU con Linux actuales no son mas que una ramificación que los tiempos han dado de otros sistemas anteriores. La Evolución - tan innegable como adecuada - es la que nos coloca en una senda de avance y progreso, una que en el caso de la informática tiende a la velocidad y al acceso irrestricto de la información electrónica.

Pues bien señores, TOPS-20 - más conocido como "TWENEX" - consistió en un sistema operativo de tiempo compartido de 36 bits desarrollado por DEC desde 1970 para sus mainframes de la serie DEC PDP-10 ampliados con paginado de memoria. De su parcial inspiración creció UNIX, y también encontramos su propia génesis en el anterior sistema TENEX - entorno que la compañía BBN había programado insatisfecha con el MONITOR (luego TOPS-10) - software "oficialísimo" de la DEC para sus PDP-10.

Las grandes posibilidades en el uso de redes de datos ofrecidas por las PDP-10 con "TWENEX" lo convirtieron en uno de los sistemas operativos de tiempo compartido mas influyentes, y el favorito de la era de los 36 bits (c1970-1985). La interactividad, aunada a un manejo excelente de las técnicas de compilación cruzada le permitieron ser incubadora de los Unix y BSD (mayormente de 16 y 32 bits), a la vez que del Justicialismo en red, el movimiento del software libre, la colaboración y cooperación en línea, etc.

Indudablemente que estos sistemas operativos del ayer, cimiento de la Cultura Hacker, pasarían al olvido si no fuese por la labor de las Organizaciones del Trabajo. En tal aspecto es encomiable la labor de TWENEX.ORG, parte del cluster de la SDF, de shell público. Esta organización sin fines de lucro cuenta desde hace más de dos décadas con una propuesta de emulación (denominada "Panda") del TWENEX, pero ha concluido la puesta en línea de un servidor TOADS-2 sobre hardware real accesible en línea. Esto permite a los Trabajadores correr el antediluviano TOPS-20.

Se completó la puesta en línea de un sistema TOPS-20 en la SDF.org, que permite acceder remotamente a dicho sistema operativo, como invitado o como usuario activo. Tutorial de TWENEX

Indudablemente acceder remotamente a un sistema operativo nos salva de tener que instalarlo en nuestro propia máquina. Por tanto, os instruiré gracuas a las facilidades del Proyecto TWENBX.ORG. Indudablemente que será de suma utilidad del Manual de Usuario de TOPS-20. Acceder a TWENEX.ORG

se puede acceder como usuario invitado desde Linux utilizando Shell Seguro (SSH), mediante:

ssh twenex@sdf.org

Al establecerse en enlace se presentará la pantalla de registro en la máquina TOAD-2 “KANKAN” de TWENEX.ORG:

No bien recibamos en el terminal el prompt de sistema “@”, podrás ingresar como “usuario invitado nuevo”. Para ello introduce NEW seguido de la tecla INTRO. Cuando se te solicite la contraseña (“password?”) ingresa también NEW. Salir del sistema TWENEX

Podrás usar KJOB para salir del sistema TWENEX. Registrar un usuario

Podremos solicitar la creación de una cuenta usuario registrado de TWENEX en http://www.twenex.org/mkacct/, proveyendo el Nombre de Usuario deseado (llamado "LOGIN") - una casilla de correo electrónico válida - y un nombre completo. Recibirás un correo electrónico indicando el alta de tu LOGIN, y te será proporcionada una contraseña pasavante. Una vez cumplimentado esto, al acceder a TWENEX.ORG y recibir el prompt @ podremos indicarlos.

Para cambiar la contraseña pasavante provista por una contraseña propia habrán de utilizar el comando

SET DIRECTORY PASSWORD

…donde LOGIN habrá de ser reemplazado por tu nombre de usuario (debes conservar el uso de <>). Deben evitarse letras acentuadas, los espacios y y eñes en la contraseña. Comandos Básicos de TOPS-20

En TOPS-20 son importantes los caracteres de control para manejar el flujo de datos a tu terminal. Control Resultado
CTRL-S detiene (pausa) la salida de la terminal.
CTRL-Q continúa con la salida en la terminal.
CTRL-O ignora la salida de la terminal CTRL-U borra lo ingresado. CTRL-C sale de un trabajo. CTRL-F autocompleta (intente también)
CTRL-T Presenta el Status del trabajo
CTRL-\ Cuando ejecute el comando 'LOGOUT' use esto para cerrar la sesión TELNET. Intérprete de comandos EXEC

El intérpretes de comandos de nivel usuario de TOPS-20 se llama EXEC. Al arrancar TOPS-20, este correrá ficheros de autoejecución localizados en vuestro directorio de usuario. El fichero básico es LOGIN.CMD.

El prompt del sistema TWENEX estará configurado como:

[KANKAN] PUBLIC:<~>@

Comandos no interactivos en EXEC

Los comandos más simples no son interactivos; se trata de programas que entregan un resultado directo en la terminal. Veamos algunos:

En TOPS-20 podrá utilizarse el programa TYPE que cumple similar función al cat de GNU: presentar en pantalla el contenido de un fichero. Por ejemplo:

TYPE LOGIN.CMD

mostrará el contenido de este fichero por lotes de sistema - en el cual el ; sirve para comentar, de la misma forma que se utiliza el # en Unix. Este podría ser el siguiente:

Como TOPS-20 es un sistema multiusuario a tiempo compartido y en línea, podrás usar SYSTAT para ver quién se encuentra conectado.

TWENEX podría llenar la pantalla de vuestra terminal con la información solicitada. Al llenar la pantalla, podréis continuar la presentación de más información con Ctrl+q. Este comportamiento es un remanente de la época de las teletipos, donde se imprimía un poco y era posible cancelarlo. De momento la dejaremos así, luego podremos alterar este proceder según convenga.

Podremos emplear el comando DAYTIME para ver la fecha del Reloj de Tiempo Real (RTC). Autocompletado con Esc

EXEC ha sido influyente por contar con reconocimiento de tecla Escape, similar a la tecla Tabs en Bash. Podrán utilizarla para autocompletar o presentar solicitudes (“noise words”) de los comandos parcialmente escritos. Imaginemos desear ingresar el extenso comando INFORMATION (ABOUT) MONITOR-STATISTICS, para lo cual podríamos escribir:

infor tecla ESCAPE mon tecla ESCAPE

…EXEC terminaría "de tipear lo necesario". Tras comprobar los propuesto, produciremos la introducción de la orden con la tecla Intro:

Ayuda con ?

Otra opción recordada de EXEC fue su operador del signo de interrogación ?. Al presionar la tecla ? (no es necesario oprimir ENTER con ella), EXEC devolverá la ayuda o bien las opciones o sufijos que disponibles para el comando TWENEX propuesto.

Por ejemplo, la opción de largo de la terminal permite identificar el largo de las líneas de la termimal antes de que pause automáticamente. Usualmente estas eran 24 líneas.

terminal (FEATURE OR TYPE) page (MODE) ?

Las palabras entre paréntesis (FEATURE OR TYPE, MODE) eran palabras de guía, y se hayan incorporadas en el intérprete para producir su autocompletado presionando la tecla Escape.

Por ejemplo, para el caso anterior, podrás hacerlo escribiendo:

TER [ESCAPE] page [ESCAPE] ?

Será adecuado conocer el equivalente a carpetas o directorios: la “Estructura” de TOPS-20. Dispongamos de comandos no interactivos para ver cuántas “páginas” (PAGES) de memoria estamos utilizando en nuestro almacenamiento de usuario:

INFORMATION (ABOUT) DISK-USAGE (OR DIRECTORY)

En TOPS-20 el directorio se denomina “STRUCTURE” (estructura), y al iniciar sesión en TWENEX seremos localizados del directorio de usuario dentro de la estructura PUBLIC: (PUBLIC:).

El sistema de archivos de TOPS-20 suporta versionado de ficheros, y cuenta con dos niveles de borrado de archivos (similar a una “papelera de reciclaje”), funcionalidad de la cual UNIX carece. De esta forma, los nombres de archivo de TOPS-20 cuentan con tres componentes:

NOMBRE.EXTENSIÓN.VERSIÓN

Utiliza el comando DIR para listar directorios, de manera similar al ls de UNIX. También contaremos con una opción más completa, VDIR o VDIRECTORY. Podrás utilizar comodines * como atajos para abarcar “todo”. Si decides introducir el comando:

@directory PS:..*

…TWENEX listará todos los archivos, con todas las extensiones, y todas las versiones que se encuentren dentro del directorio de usuario MENGANO. Si sólo le ingresa un . y omite el comodín * referido a la versión, entonces EXEC listará únicamente generación más actual de TODOS los archivos. Trabajos en TOPS-20

TWENEX contó con una destacable funcionalidad para gestionar la realización de tareas de cómputo (Trabajos o “JOBS”). Aprendamos de ellos.

Utiliza ahora el comando FINGER para consultar el LOGIN y nombre de los usuarios conectados, el número de trabajo que estén ejecutando (“Job”), y el número de terminal asignada (TTY) conectada en el sistema compartido, además de otras informaciones. Esta información es muy útil para operar en un sistema de cómputo de tiempo compartido como TWENEX. Conectar y Desconectar Terminal

En TOPS-20 es posible desconectar virtualmente la terminal teletipo simulada de un trabajo, y podríamos conectarla a otro trabajo, incluso de otro usuario si sabemos su contraseña. Para desconectar la terminal emplearemos Ctrl+c y luego el comando DETACH.

Esto deja el trabajo activo pero le “desconecta” la terminal, como si de un conmutador telefónico antiguo se tratara. Esto te permitirá iniciar un trabajo distinto en una sub-instancia de EXEC.

Para volver a “conectar” la terminal al trabajo que quedó “DETACH” (desconectado), usamos el comando FINGER para consultar el número de trabajo (JOB) del usuario, y luego empleamos ATTACH con la sintaxis del usuario y del numero de trabajo. Por ejemplo:

ATTACH usuario 32

...“reconectará” la terminal para “controlar” lo que hace el usuario peron con el trabajo número 32.

Este proceder será útil para procesos largos (como compilaciones), donde podremos iniciar el proceso, DETACH la terminal, y volver luego cuando la termine, o hacer algo mientras ello sucede.

Podrás utilizar el comando KILLJOB y el número de trabajo para eliminar un trabajo suelto. Multitareas

TOPS-20 cuenta con la posibilidad de “elevar” o “descender” trabajos, lo que equivale a enviar trabajos al segundo plano o elevarlos a primer plano (de forma similar a los comandos bg y fg de UNIX).

Para abandonar un trabajo debemos presionar Ctrl+c. Esto “descenderá” el trabajo actual y ejecutará un intérprete EXEC nuevo. Para volver a “mandar arriba” o elevar el trabajo anterior para continuar utilizándolo, en lugar del comando fg, en TOPS-20 usaremos el comando POP. Para “mandar abajo” y pasarlo a segundo plano (bg), usaremos el comando PUSH.

fg=POP
bg=PUSH

Comandos Interactivos en EXEC

Además de los comandos no interactivos, podrás utilizar aplicaciones más complejas en el EXEC. Estos reciben la jerga de “Subsystem” o subsistema, pero son esencialmente programas interactivos ejecutables, tal como las aplicaciones tradicionales de UNIX. Correo electrónico: MM

Utiliza el subsistema MM para enviar y recibir correo electrónico. Podrás recibir correo desde el mundo exterior. Es muy recomendable usar texto plano para los envíos. El prompt del subsistema de correo es:

MM>

Introduce el comando MAIL para redactar un mensaje. Se te presentará el indicador TO: (“para:”), al cual debes introducir la dirección de correo según el siguiente criterio.

Si deseas enviar correo electrónico interno dentro del sistema compartido TWENEX (que cuenta con la dirección usuario@twenex.org), simplemente ingresa usuario@twenex.org (también funciona el host @kankan.twenex.org).

Si deseas enviar correo electrónico a direcciones sitas en @sdf.org, envíalas a usuario@sdf.org.

Para enviar desde TWENEX.ORG al mundo exterior a través de internet, debes reenviarlas a través del servidor de correo sdf.org intermediando el signo %. Por ejemplo, para enviar un correo a un usuario@texto-plano.xyz, utiliza usuario%texto-plano.xyz@sdf.org

El funcionamiento es autoexplicativo. El editor de líneas del correo nos permitirá escribirlo, y cesar la edición con Ctrl+z.

Una vez escrito el correo finaliza la edición del mismo con Ctrl+z, y quedará en la bandeja de salida (“Qued”). Para proceder al envío del correo, ingresa el comando SEND. Leer el correo

En el subsistema MM, usa el comando HEADERS ALL para ver todos los correos recibidos en tu bandeja de entrada, y usa el comando TYPE seguido por el número del correo que desees leer, o bien usa TYPE NEW para leer los correos nuevos. Podrás responderlo con REPLY.

Tras la edición de la respuesta, quedarás en el prompt de envío “S>”. Para producir el envío, ingresa el comando SEND.

S> SEND

Podrías borrar el correo usando DELETE 1, y luego expungar la papelera con EXPUNGE.

Ten en cuenta que la dirección TWENEX.ORG no es demasiado compatible. Podría tener problemas para utilizar MIME64, HTML y otros tipos de correo electrónico. Privilegia el uso de texto plano. BBOARD

Es una cartelera electrónica interna al sistema TWENEX, en forma de bandejas para el subsistema de correo. Ingresa al subsistema de correo:

MM

y solicita la carpeta BBOARD:

BBOARD

Verás que hay distintos tablones. Editores en TWENEX Emacs

En TWENEX podrán encontrarse múltiples editores de texto. El editor por defecto es Emacs, pero también tendremos a Vi, y los más antiguos SOS y TECO. Editor VI

Antes de utilizar el editor visual vi habrán de activar la terminal en modo ANSI con el comando

TERM ANSI

y luego ejecutar el editor con

vi

Editor SOS

SOS es el editor de líneas Son Of Stopgap. Para obtener ayuda de un comando tipea “H,”. Por ejemplo, la información en todos los comandos de alteración está disponible ingresando “H,A”. Comando Resultado A (Alter) Edición entrelíneas B (Begin) Va al principio del fichero BP(Begin Page) GVa al principio de la pág C (Copy) Copia texto CC(Co-Copy) Copia de coedición CT(Co-Transfer) Mueve texto de coedición CX(Co-edit) Comienza/conmuta coedición D (Delete) Borra texto E (Exit) Sale del editor F (Find) Busca una cadena G (Go) Sale y corre un programa H (Help) Presenta la ayuda I (Insert) Inserta nuevo texto J (Join) Une líneas JC(Justify Centered) Centra el texto JL(Justify Left) Justif izq JR(Justify Right) Justif der JU(Justify) Fully justificado letras JW(Justify Word) Justifica palabras K (Kill) Borra marcas de pág L (List) Lista las líneas en LPT: M (Mark) Inserta marca de pág N (Number) Renumera líneas NA(Number And open) Abre un hoyo NF(Number file) Renumera fichero NP(number page) Renumera pág O (Output) Guarda la salida a un fichero P (Print) Presenta las líneas en la TTY R (Replace) Borra e inserta S (Substitute) Busca y reemplaza T (Transfer) Mueve texto VL(inVert Lower) Convierte a min VU(inVert Upper) Convierte a may VV(inVert inVert) Conmuta may/min W (World) Salva el mundo (fichero) X (eXtend) Agrega al final de la línea ; (comment) Resto de línea ignorado @ (indirect) Ejecuta desde un fichero = (give) Imprime valores de parámetros / (set) Establece valores . (move) Mueve el puntero de línea Herramientas de Chat

Si desea utilizar estos comandos para conversar con otros usuarios conectados al sistema de cómputo TWENEX.ORG, debe tener configurados TERMINAL RECEIVE LINKS.

Para ello ingresa:

TERMINAL RECEIVE LINKS

Si no desea recibir mensajes en su terminal o desea cesar tal posibilidad momentáneamente, ingrese:

TERMINAL NO RECEIVE LINKS

COMMODE

Se trata de un programa pensado para terminales teletipo, utilizado para chatear con otros usuarios de TWENEX.org.

Asegúrate de activar la recepción de enlace de terminal con

TERM REC LINK

. Debes conocer también el número de terminal (TTY) al que deseas enlazar para la charla. Utiliza el comando FINGER revisa qué usuarios están utilizando el subsistema COMMODE y qué número de terminal (TTY) tienen.

Ejecuta el programa:

COMMODE

Enlázalo con Ctrl+L.

TTY:

Ingresa el número de terminal.

El otro/s usuario/s deberá/n aceptar el enlace.

Para empezar a hablar educadamente, presiona la barra espaciadora y se presentará tu nombre de LOGIN. Considera que la conversación es half-dúplex, lo que significa que todas las terminales enlazadas podrían escribir al mismo tiempo. Túrnate para chatear.

Si oprimes la tecla ESC se escribirá GO AHEAD (“Continúe”).

Ctrl+x te permitirá salir a EXEC. Retornarás al subsistema COMMODE con el comando POP. SEND

El subsistema SEND permite enviar mensajes de texto a otro usuario en otra terminal. Una vez que haya recibido un mensaje por parte de un usuario, podrá utilizar el comando REPLY para responderte.

Inicia el subsistema SEND para enviar mensajes a otro usuario. Para ello utiliza:

send usuario

Responde usando:

REPLY usuario

Sal del subsistema SEND mediante Ctrl+z. Protección de Ficheros y Directorios

TOPS-20 permite protección de DIRECTORIOS y ARCHIVOS de 18 bits, lo que incluye funcionalidades encontradas bajo los permisos de 9 bits de UNIX, asñi como protecciones adicionales que son únicas a TOPS-20.

Las PROTECCIONES están agrupadas juntas en un conjunto de 3, y corresponde a:

@SET DIRECTORY PROTECTION 777700 ^ ^ ^ | | \ todos los demás usuarios | __ usuarios en su grupo ____ su propio usuario (propietario)

Como tal, usted y los usuarios en su grupo tendrán acceso completo al directorio , mientra que todos los demás usuarios no tendrán acceso alguno.

Si está acostumbrado a los permisos de fichero de UNIX, debería resultarle impresionante el manejo que hace TOPS-20, ya que es posible crear un archivo que:

Los ficheros tienen atributos de permisos como en Unix, pero en octales.

77 es acceso completo 52 solo lectura 00 acceso denegado

El espacio se indica en “PAGES” (páginas). Bash en TOPS-20

Se puede llamar a esta función totalmente espúrea, pero puedes ejecutar el intérprete BASH del proyecto GNU compilado para TOPS-20.

Para ello ingresamos:

SH

Obtendrás el intérprete Bash con su prompt:

bash$

No es posible utilizar todas las facilidades de Bash pues no todas están integradas, pero si ingresas SET o ENV obtendrás los datos de ambiente que dilucidan a BASH sobre TOPS-20.

Para salir del intérprete Bash, ingrese exit. Programar en TOPS-20

TWENEX era recordado por sus facilidades de programación, de modo que existen muchos subsistemas pensados para compilar y programar. Macro-10

Macro-10 era el ensamblador nativo de la DEC PDP-10, y TWENEX naturalmente contaba con él.

Ingresemos un programa en MACRO-10. Creamos el código con el editor emacs para un fichero llamado vpc.mac

emacs vp.mac

Pega el código fuente:

TITLE VPC
SEARCH MONSYM

EVEC: JRST START JRST START EXP 0

START: RESET% HRROI 1,[ASCIZ / Viva Peron, carajo!/] PSOUT% HALTF% JRST START

    END     <3,.EVEC>

Y guárdalo con Ctrl+x, Cttrl+s, y sal con Ctrl+x,Ctrl+z. Compila el código con:

compile vpc

y lo guardamos para obtener el binario ejecutable vpc.exe.

load vpc

Ejecútalo con

vpc

Lenguaje C

C es el lenguaje típico portable. Podrán escribir un programa llamado llamada vp.c con el siguiente código fuente:

void main(){ printf("Viva Peron!!!\n"); }

Lo compilamos con:

compile vp.c

y lo cargamos con con

save vp

Una vez finalizado, lo corremos con:

vp

LISP

LISP era una serie de dialectos de lenguajes de programación concebidos para tareas de desarrollo de inteligencia artificial en el MIT. MACLisp

Para usar MACLispP:

@DEFINE MACLISP: PS: @ maclisp:maclisp

InterLISP

@ define interlisp: ps: @ interlisp:lisp

C Lisp

@ clisp

Uppsala Common Lisp, Version of 15-Dec-1987, (c) 1985, C. Hedrick CL>(+ 2 2) 4 CL>(quit)

Uso de FTP en TWENEX

Podrás usar el el subsistema FTP desde SDF.org u otro host para cargar y descargar ficheros a tu instancia TWENEX. Ingresa al subsistema de transferencia de ficheros con:

ftp sdf.org

Nos logueamos con:

login ftp

Al encontrar el prompt FTP> del cliente de transferencia de ficheros, presiona ? para ver los comandos en uso en el subsistema FTP. Podremos usar open para conectarnos a otros servidores FTP anónimos. Habremos de tener en cuenta estas reglas de uso:

Para transferir fichero de texto o no compilados, utiliza el modo ASCII con el comando SET TYPE ASCII,
Para binarios, debemos usar modo PAGED, con

FTP>SET TYPE PAGED

Los comandos son los tradicionales de FTP. Utiliza CD y DIR para moverte en los directorios, y utiliza GET para descargarlo.

Podremos también participar de clases en video en el canal de Twich de SDF, o bien ver los videos de las bootcamp (en inglés).

Sin duda, aprender TWENEX nos transportará al pasado y al verdadero súmun de la cultura hacker del Justicialismo.

Por eso, compañeros, si yo hubiera de fijar el rumbo en la ejecución de las tareas docentes de esta casa, solamente daría un directiva de muy pocas palabras: tenemos que formar, primero hombres buenos y del pueblo. En segundo lugar, formar trabajadores, sobre todas las cosas. Y, en tercer lugar, formar hombres patriotas, que sueñen con una Nueva Argentina en manos del pueblo, como instrumento del pueblo para lograr la grandeza de la Patria y la felicidad de ese mismo pueblo.

Si formáramos un nuevo grupo de intelectuales ignorantes, de los que tenemos tantos, que simulan saber para aprovechar de los que saben menos, no habríamos hecho un gran progreso sobre lo que tenemos.

Lo que necesitamos son hombres leales y sinceros, que sientan el trabajo, que se sientan orgullosos de la dignidad que el trabajo arrima a los hombres, y que, sobre todas las cosas, sean capaces de hacer, aunque no sean capaces de decir.



29 december 2022

¿Cómo soluciono el error de SSH "Too Many Authentication Failures" en Ubuntu?

¡Trabajadores!

Un Movimiento no versa tanto por la calidad de sus integrantes, sino por la de sus dirigentes. Esto es así pues la Masa Popular - que es el verdadero consumo - se rige por la primacía del número: la cantidad de sus adherentes.

Es que el hombre dejó hace millones de años de ser un ser gregario para transformarse en un individuo de alcance social, que se ha integrado en tribus, reinos, naciones, y hoy en Estados.

Quien Conduzca en nuestro Movimiento ha de obrar en búsqueda de la inclusión: incorporar a todo el que se pueda. Ha de dar acceso a todos los beneficios y bienaventuranzas que tiene pertenecer a un Movimiento de raigambre popular.

Para ingresar a un Movimiento ayuda tener una buena cara, como esta:

Pero también ayuda contar con las necesarias credenciales de Secure Shell. Esto es así pues este sistema nos permite acceder de forma remota o raramente local, a distintos sistemas de servicio GNU con Linux; una vez establecido el enlace, podremos utilizar secure Shell : al fin y al cabo he instruido que esto sirve para realizar cualquier acción dentro de un sistema GNU con Linux al amparo de una conexión criptográficamente protegida. Pero a pesar de esto, podríamos encontrarnos con numerosos errores de rechazo de conexión SSH. Tal vez el error más común de autenticación con llaves SSH sea el inefable "Too Many Authentication Failures", que en el idioma de Braden quiere decir algo así como "Demasiados intentos de Autenticación fallidos".

Esto tiene una explicación bastante terrenal, pero que hay que conocer. Si utilizamos el sistema de llaves públicas SSH, será normal contar con archivos que conforman dichos pares de llaves SSH. En el caso de GNU con Linux, estos suelen econtrarse en nuestro directorio de usuario oculto ~/.ssh.

Por ejemplo, podríamos abrir una terminal con Ctrl+Alt+T y solicitar un listado de las llaves tenemos instaladas en nuestro cliente de SSH. A tal fin utilizaremos el siguiente comando:

ssh-add -l

Pues bien señores, cuando nos conectamos a un servidor SSH, lo normal es que no le especifiquemos al cliente "cual llave usar" de entre todas las que tenemos en el llavero .ssh. Esto suele responder a la fiaba. En tal caso, el cliente SSH probará torpemente una llave tras otra en el agente de autenticación SSH del servidor, como si de un "ebrio llegando de juerga" se tratara. Lo normal es ir descartándolas en orden alfabético hasta encontrar la que corresponda, autenticar, y "entrar" a la sesión de shell seguro...

El error mencionado se produce por un "limitador de intentos de prueba" para las llaves, el cual está situado en el servidor. Normalmente está configurado en "seis intentos", y lógicamente si tenemos más llaves que dicha cantidad, el procedimiento podría fallar.

Pues bien señores, existen dos maneras de solucionarlo. En el cliente

En caso de necesitarlo, podríamos intentar lograr acceder a través del uso de la contraseña de conexión (en lugar de la llave). Para ello debemos indicar tal preferencia en el comando mediante el prefijo PreferredAuthentications. Por ejemplo, al ingresar:

ssh -o PreferredAuthentications=password usuario@servidor

...el servidor debería pedirnos la contraseña (si tal método está habilitado, claro está).

Otra consiste en probar si podremos entrar sin usar llaves, de manera tal de utilizar el método de contraseñas

Si quisiéramos que siempre utilice la incómoda (y usualmente insegura) acceso por contraseña, podríamos automatizarlo desde el lado del cliente de conexión. En el equipo cliente ingresamos:

nano ./ssh/config

...y agregamos los datos del sevidor. Por ejemplo:

Host cgt Port 22 User fulano PreferredAuthentications password HostName cgt.local

También podríamos especificar directamente qué llave queremos utilizar para dicho usuario utilizando la variable IdentityFile para cada conexión. Esto se haría de la siguiente manera:

Host cgt Port 22 User fulano IdentityFile ~/.ssh/llave_cgt_fulano_ed25519 HostName cgt.local

Acto seguido, guadamos los cambios con Ctrl+o. En el servidor

Otra opción es modificar directamente el servidor, lo cual proporciona una solución general. En tal caso, debemos modificar la variable MaxAuthTries del servidor SSH. Esta normalmente viene configurada en 6 intentos, lo cual suele ser adecuado para prácticas laxas donde siempre se usaba una única llave para todo. Sin embargo, las políticas más modernas tienden a preferir que cada usuario disponga de una llave cifrada para cada instancia remota, de forma de poder "zafar" si una de las llaves se pierde o es comprometida.

En dicho caso, elevar el número de intentos permitidos por encima de un valor más alto (por ejemplo, 20), podría resultar más provechoso.

Para realizar tales cambios, en el servidor editamos el archivo de configuración. Por ejemplo, podremos hacerlo con GNU Nano introduciendo:

sudo nano /etc/ssh/sshd_config

Habrán de presionar Ctrl+w para buscar la variable MaxAuthTries. Una vez que la encontramos la descomentamos eliminando el signo # que la antecede, y elevamos el valor de la variable del 6 original a uno adecuado según la cantidad de llaves (por ejemplo, 20).

Es importante tener en cuenta que esto no implica que "se da un cheque en blanco a probar llaves" sino que se autoriza que cada usuario pruebe dicha cantidad de veces.

Para que el cambio surta efecto, debemos reiniciar el servicio de SSH ingresando:

sudo systemctl restart sshd

Naturalmente, podrán contemplar también otras técnicas recomendadas para asegurar un servidor de SSH.



28 december 2022

¿Cómo puedo ensayar online con mi banda en Ubuntu?

Juan Perón era un adepto a la música. A pesar de contar con buenas dotes de ejecución, se distinguió por ensayar con los compañeros por internet con Jamulus, el software libre para tocar online en Ubuntu.

(...) ¡Trabajadores!

Siempre es bueno unirse a la peña de la música como natural consecuencia de la coordinación que ha de tener todo Movimiento Humano. Esto nos ha permitido - por demás - insuflar el justicialismo al ritmo que más nos interesa: el de sumar voluntades. Las realización de esta dicha es una gran adición en pos de alcanzar el objetivo humano que nos impulsa: la propia felicidad y la de todos quienes nos rodean.

Nuestra doctrina gira en torno a la Justicia Social, de la que el Software Libre no es sino una versión remozada. Al fin y al cabo, mejorarlo y compartirlo reponde al mismo principio rector y se hermana con el de la música.

Vean señores, he explicado cómo instalar el excelente servidor de videollamadas del pueblo GNU Jami, y disfrutar de su enorme capacidad para dictar clases virtuales y conferencias seguras sin caer en opciones tecno-esclavizantes de una oligarquía sin patria ni bandera.

Sin embargo, organizar una banda para tocar a través de las redes de datos libres supone un desarrollo aún mayor de la perfección. Un software de tal característica ha de contar no sólo con esta técnica de avanzada, sino disponer también de la condición de una bajísima latencia sonora que haga posible coordinar a l@s compañer@s en una misma métrica. Sólo esto podría permitir el ansiado sueño de tocar acopañado a través de la Internet. En vistas de esta montaña de requerimientos nuestro Movimiento se puso a la marcha, y logró su objetivo. Se trata de Jamulus, una implementación liberada bajo licencia GNU GPLv2 para el ensayo musical en vivo a través de Internet.

Para instalar Jamulus podremos utilizar la terminar del sistema. Simplemente desplegamos una con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

sudo apt update ; cd /tmp/ ; wget https://github.com/jamulussoftware/jamulus/releases/download/r3_8_2/jamulus_3.8.2_ubuntu_amd64.deb ; sudo dpkg -i jamulus_3.8.2_ubuntu_amd64.deb

Tras ingresar nuestra contraseña de conductor, se habrá descargado e instalado el paquete del cliente de Jamulus en nuestra computadora. Naturalmente, el programa también existe para otras plataformas de la ignominia, pero yo os lo enseñaré en Ubuntu, el sistema que he legado al Pueblo.

Es primordial saber que Jamulus da uso al servidor de audio JACK con el claro fin de obtener sonido de calidad y baja latencia. Esto nos permitirá coordinar la música a través de la red de redes.

Nuestro Movimiento Justicialista propugna la cercana unión de los trabajadores, y se eleva como un vínculo de unión de sus voluntades intrínsecas. Esto se replica en Jamulus, ya que para lograr los mejores resultados es muy preferible contar con conexiones cableadas de todo tipo. Eviten en todo lo posible el problemático Wifi, y empleen conexiones Ethernet por cable en el trabajo y en el hogar. Además, evitar el uso de oligárquicos auriculares y micrófonos Bluetooth en pos de los populares equivalentes cableados redundará en facilitar enormemente la inclusión de todos y el goce en las redes, ya que lo simple es doblemente fácil. Quien así no opere comprenderá que la latencia del audio se elevará a niveles estratosféricos. Sigan este consejo, que lo doy con el corazón tan abierto como sólo puede ofrecerse a quien tanto amo: ¡el Pueblo!

  1. Preparar tu audio con JACK

Enfocarse en lo simple es el objetivo de todo trabajador que sigue la filosofía UNIX. Como paso previo, cerraremos todas las aplicaciones que usen sonido, y - en caso de querer utilizar una placa de audio USB externa - la conectamos a la computadora.

Preveemos entonces iniciar el servidor JACK (desde Aplicaciones / Sonido / QjackCtl). Normalmente ya debería estar configurado (si no lo estuviese, podrán encontrarlo al final del artículo).

  1. Arrancar Jamulus

Con el servidor JACK en pleno funcionamiento, daremos arranque al cliente Jamulus. Podrán hacerlo desde el menú Aplicaciones / Sonido / Jamulus de Ubuntu.

Conforme arranque, la ventana principal de Jamulus cobrará el aspecto siguiente:

Será natural no oír nada aún. No se preocuparán, ya que esta es una regla de oro en Jamulus: normalmente sólo habremos de escuchar el sonido de retorno desde un servidor remoto (que conoceremos como sala de ensayos).

Pues bien, será imprescindible configurar propio perfil de músico. A tal efecto, presionamos el botón Configuración y veremos desplegarse una ventana Configuración. Seleccionemos en ella la solapa Mi Perfil. El subsiguiente campo Filas Mezclador - en tanto - indica cuantos deslizadores se harán presentes en la ventana de la mezcladora. Si bien la mayoría de los instrumentistas se bastan con 1, podríamos indicar más si fuese el caso que se hayen presentes - de manera local - varios músic@s, o bien si somos un baterista que ha microfoneado, digamos, 8 cuerpos percusivos... en tal caso se indicaría.

  1. Conectar a un servidor de sala de ensayos

Antes de mandarnos a tocar con l@s compañer@s "a tontas y a locas", os recomiendo enlazar a un servidor vacío para probar la configuración, y asegurar oír el retorno que envíamos al servidor.

Presionarán el botón de “Conectar” en la ventana principal de Jamulus, y se enfrentarán con la ventana Conectar, la cual permitite unirte a un servidor de audio: la ventana se irá refrescando con salas de ensayos públicas:

En la lista aparecerá el número de usuarios conectados y el número máximo soportado. Lo más importante de los servidores es su “tiempo de ping” indicado en colores. Cuanto mayor la cifra, más difícil será tocar en sincronización. Normalmente, se selecciona un servidor con un tiempo ping de 50 miliosegundos o menos, si es posible. Depende de la velocidad de conexión y la distancia mutua.

Los servidores permanentes (con disponibilidad las 24h) se muestran en negrita. Los compañer@s compendian estas listas por género, aunque también por ubicación. Puedes filtrar la lista por nombre de servidor o ubicación. Para solo mostrar los servidores ocupados, escribe el caracter “#”. Utiliza el menú desplegable de Lista para elegir un género, y haz clic sobre la peña a la que quieres arrimarte telemáticamente. Para loguearte, haz clic sobre el botón Conectar, lo cual establecerá el enlace.

Si conoces la dirección IP o URL de una sala de ensayos privada, ingrésala en el campo Nombre/Dirección del Servidor. Podrás añadir un número de puerto opcional (ej: jamulus.ejemplo.org:22124) Si anhelas utilizar direccionamiento IPv6, ingrésalo entre corchetes). El campo también mostrará una lista de los servidores utilizados recientemente ("favoritos").

Una vez establecida la conexión con un servidor, asegúrate de que te escuchas bien y arregla cualquier problema de volumen de entrada, etc.

Naturalmente, podrán ejecutar un servidor público el tiempo suficiente para que la banda se conecte, y luego hacerlo privado simplemente desactivando ‘Mi Servidor es Público’ el la ventana del servidor. De esta forma los miembros podrán disfrutar entre sí de la más maravillosa música.

  1. ¡A tocar!

Con el sonido configurado, ya puedes empezar a tocar la más maravillosa música. El programa no se anda con vueltas: una vez logrado enlace, te presentarán deslizadores (faders) para cada músico presente en el servidor de la sala de ensayo. En este ejemplo me he juntado a tocar con el bajista Manco, la tecladista Bicha, y el Pomelo, baterista electrónico en la Sala Canus Argentina. Los controles afectan sólo tu retorno de escucha personal.

En el caso de disponer de músic@s configurados en estéreo, también se mostrará encima de todo un pote PAN para paneal@ (Mayúsculas+clic izquierdo del mouse lo resetea al medio).

En caso de bajar un delizador, disminuirás el retorno de tal músic@, y si lo subes, aumentarás el retorno que oyes de ella. De esta forma, cada un@ puede escoger cómo escucha a l@s demás.

Si no deseas que otros escuchen tu emisión, presiona el botón "Silenciarme Yo", que cortará tu emisión de audio hacia la sala (además, es anónimo).

Las luces LED del vúmetro representan los niveles de los canales estéreo o mono de tu entrada de audio. Asegúrate de regular el volumen para jamas alcanzar el tope de señal. Este efecto indeseado de recorte daría lugar a un sonido distorsionado de audio de la señal de audio (los LEDs indicarían el recorte en rojo si esto sucede). Normalmente aturdirías al resto, ¡no lo hagas!

El deslizador de Reverb te permite agregar un efecto de reverberación mono o estéreo, pero sólo local.

Debajo de cada instrumentista encontrarás tres botónes de actividad local. El botón GRP te permite agrupar deslizadores para moverlos proporcionalmente y al unísono (hasta 8 grupos). Si mueves el deslizador de cualquier miembro agrupado, los demás deslizadores del grupo también se moverán en la misma proporción. Podrás desagrupar temporalmente un canal mediante Mayúsculas+clic+arrastrar.

El botón MUTE enmudece a uno de los músicos. Si te enmudeces tu mismo, tal acción aparecerá reflejada en las mezcladoras de los demás (no es anónimo). Si muteas tu propio canal simplemente significa que no escucharás tu propio retorno desde el servidor (no significa que los demás dejen de oírte). No se aconseja ya que es altamente probable que tu audio quede a destiempo con los demás miembros de la banda ¡y emularías a El Duki!). Si deseas dejar de emitir presiona el consabido botón "Silenciarme Yo".

El botón SOLO permite escuchar uno o más musiquer@s aislados de l@s demás. Quienes no lo tengan oprimido, quedarán así enmudecidos en tu mezcladora local. Ten en cuenta que aquellas personas que no lo tienen aplicado les aparecerá el icono de “silenciado” sobre tu deslizador (no es anónimo).

Los usuarios se presentarán de izquierda a derecha "en el orden en el que vayan llegando". Podrás alterar dicho orden desde el Menú Editar.

Si el operador de la sala de ensayo habilita la grabación en el servidor, verás un mensaje sobre el mezclador indicando si estás siendo grabado.

Ten en cuenta que puedes utilizar el botón Chat para desplegar la ventana de chat a otras personas de la sala. El mensaje de bienvenida en el chat puede también establecer alguna directriz de utilización de la sala de ensayos.

Normalmente no hay más que hacer; ¡ya podrás tocar con los demás, escuchando la más maravillosa música!

Indudablemente, os recomiendo consultar el excelente manual en castellano en línea de Jamulus, el cual disipará las dudas más extendidas de este excelente programa.

Opciones Avanzadas

Tocar de más suele ser al ñudo, y esto se replica tanto en la música como en la configuración de Jamulus. Sin embargo, para quienes deseen arriesgarse en pos de la Liberación (y tal vez, menor retraso en el sonido), podrán arriesgar revisar las configuraciones avanzadas dentro de Jamulus. A tal fin presionamos el botón Configurar y elegimos la solapa Configuración Audio/Red.

El selector Dispositivo de Audio nos permitirá escoger el controlador y el hardware específico que diseáramos usar (si contamos con varios). El mapeador nos permitirá escoger los canales (ya sea mono o estéreo). Si nuestra/s placa/s de sonido o dispositivos ofrecen más de un canal de entrada o salida, quedarán visibles y podremos mapearlos según nuestras necesidades.

La opción Canales Audio permite escoger entre tres Modos de Salida de audio que utilizará Jamulus. Cada uno de ellos representa un mayor consumo de ancho de banda. Los modos Mono y Estéreo utilizan uno y dos canales de audio respectivamente.

Nota: Activar el modo estéreo duplicará el envío de datos, debes asegurarte que esto no exceda el ancho de banda de tu conexión a Internet. Es preferible ejecutar instancias separadas del cliente para cada voz/instrumento, en lugar de utilizar este mezclador interno de dos canales mono a estéreo.

El modo Entrada mono/Salida estéreo envía audio en mono pero recibe el audio desdoblado en estéreo (para el caso que una placa de audio externa conste de un conector de entrada estéreo para instrumento y otro conector de micrófono independiente. En este caso, las dos señales de entrada se combinarán en un solo canal mono a la vez que la mezcla del servidor se escuchará en estéreo.

Podremos escoger la Calidad de Audio, definiendo así la tasa de de envío de datos a la red. Hemos de asegurarnos que la tasa de subida no exceda el ancho de banda de la conexión a Internet, de lo contrario se producirían cortes. El valor por defecto es calidad Normal. Configuración de JACK

Normalmente ya debería estar configurada la entrada de audio. Sin embargo, indicaré aquí este paso por si no lo estuviese.

Desde el punto de vista del hardware de audio, podremos configurar la entrada de audio de Ubuntu desde el panel Sonido. Para ello podremos ir a Sistema / Preferencias / Hardware / Sonido. En la solapa Entrada podremos configurar qué conector y dispositivo queremos utilizar.

En este caso utilizo el conector Línea de Entrada (entrada estéreo Line In, conector azul), ya que produce un sonido límpio, y puedo regular el volúmen de captura del instrumento con el deslizador Nivel de Entrada. También podría utilizar Micrófono Frontal o Micrófono Trasero (entradas monoaurales pre-amplificadas, de conector rosa).

Finalmente, en nuestro sistema GNU con Linux se utiliza la herramienta de configuración QJackCtl para cambiar el tamaño del buffer. JACK suele venir configurado, pero si nunca se ha configurado, podrá hacerse esto presionando el botón Setup y configura la interfaz de audio que quieras utilizar.

Podrás configurar los aspectos técnicos del audio. Como referencia en este aspecto, considera que en la solapa Configuraciones de JACK podrías establecer una Frecuencia de Muestreo de 48000, cuadros/período en 128 y períodos/buffer en 2.

Reinicia JACK para que los posibles cambios de configuración surtan efecto.

Ten en cuenta que algunas placas de audio disponen de la posibilidad de alterar el retardo de buffer por hardware. La opción de 128 debería funcionar para la mayoría del hardware de sonido, pero podrás utilizar 256 o 512 para conexiones muy lentas, lo cual podría dar mejores resultados.



27 december 2022

¿Cómo puedo emular RSTS/E en Ubuntu?

Señores oficiales,

Uno de los principios nodales que ha de comprender todo aquel que en el campo de batalla ha de conducir una unidad, es la de no dormirse en laureles victoriosos. Es natural que el soldado busque prolongar la paz que tanto anheló, pero debe comprender que el esfuerzo del pasado no sirve nunca de ejemplo. Ha de continuarse la preparación y la previsión para nuevas luchas que habrán de venir indefectiblemente.

Esto es así porque el hombre vencido - si ha valido la pena como enemigo - jamás quedará vencido si no obtiene justicia, y esta es la base de la paz.

Desde los antiguos griegos se sabe que el soldado dispone de una preparación: el deporte. Las arte del cultismo físico, junto con las marciales fueron - y son - la justa vara con la que puede medirse al soldado. El Oficial ha de contar - además - con la preparación que da el gabinete: el estudio de la historia y de la pericia logística obrarán de maravillas en la formación de un Conductor.

La esgrima es, por antonomasia, la percepción del arte marcial del caballero. Algunos piensan que en el cruce de aceros, los únicos metales son los del florín o del florete. Sin duda se equivocan, ya que el verdadero temple está en el Espíritu del duelista. No importa tanto el músculo de su mano, sino la decisión y empeño que impone a su arte de lucha.

Como tal me he formado y especializado en la Institución a la que nos toca pertencer. Un dato no menor es que entre 1918 y 1928 obtuve en varias oportunidades el título de Campeón Militar de Esgrima. En 1927 conquisté la Copa de Honor de Esgrima en el Círculo Militar. La pedana no tuvo secretos para mí. Pero esto no salió de un repollo, mi tío segundo Conrado Perón, fue maestro de armas y una de las primeras espadas del ejército. Fue él quien me inculcó los pormenores del choque de aceros.

En la informática sucede más o menos lo que en la esgrima. Hay varios filos de distinto peso que elegir - los sistemas operativos - pero lo importante es conocer su técnica a fondo.

Esto lo comprendí cuando empleé RSTS/E, veterano "Sistema de Tiempo Compartido para Compartir Recursos" de la Digital Equipment Corporation. Lo necesario para instalar tan enjundio no podía más que significar la necesidad de templar un alma en la hombría de bien que es necesaria para entregarlo todo en pos de la Felicidad de nuestro Pueblo.

Sin embargo, por aquél entonces, sólo podía correrse en una máquina que contara con la arquitectura de 16 bits que ostentaban las máquinas tipo PDP-11. Eran minicomputadoras portentosas y sólo al alcance del oligarca.

Providencialmente gracias al Justicialismo podremos contar con válidos émulos de ellas para utilizarlas en nuestro sistema GNU con Linux, todo gracias a las bondades del emulador SIMH, del cual profeso como uno de los grandes logros para privilegiar a todos en el arte de la Conducción de los Sistemas Operativos del Ayer.

Vean señores, RSTS/E es un sistema operativo multiusuario a tiempo compartido privativo, desarrollado por terceros en 1970 para la minicomputadora PDP-11 de Digital Equipment Corporation. Podemos trazar su origen al TSS/8 de la DEC PDP-8, aunque actualizado para las mayores posibilidades y potencias que ofrecían los 16 bits de la PDP-11. Su larga vida operativa lo pueden calificar como un verdadero Matusalén, ya que su desarrollo cesó recién en 1992, con la versión 10.2.

La manera más simple es contar con un paquete de RSTS/E ya compilado. En este caso simplemente habremos de descargar el paquete y correrlo en nuestro sisxtema GNU con Linux.

Instalar RSTS/E v9.3

Se trata de la versión de enero de 1987. Para dar con una versión mínima pero precompilada, abrimos una terminal en nuestro sistema con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

mkdir ~/.simh/ ~/.simh/rsts/ ~/.simh/rsts/v9 cd ~/.simh/rsts/v9/ wget http://www.rsts.org/distros/RSTS_kits/RSTS_V9.3_Kit.zip unzip RSTS_V9.3_Kit.zip Ahora podremos ejecutar el RSTS/E v9.3 precompilado. Para ello lo haremos con:

cd ~/.simh/rsts/v9/ ./pdp11

El sistema nos solicitará la fecha y hora. Tras ingresarlas cuidando de evitar el bug Y2K (podríamos indicar un año de la década de 1990), nos solicitará si deseamos activar el sistema de tiempo compartido ("Start Timesharing?"), a lo cual debemos responder yes.

Acto seguido se nos solicitará ingresar un usuario ya elaborado. Podremos dar con los accesos de usuario. Los usuarios de este sistema virtualizado serán:

Usuario de sistema Usuario: [1,5] Contraseña: SYSUSR

Usuario administrador Usuario: [1,2] Contraseña: SYSLIB

Usuario "Invitado" Usuario: [100,100] Contraseña: DEMODEMO Utilizar RSTS/E 9.3

Podremos utilizarlo siguiendo la Guía de Usuario de RSTS/E, o bien la Guía del Administrador de sistema RSTS/E.

Podremos correr la ayuda del intérprete de comandos DCL incorporada al RSTS/E, ingresando el comando HELP.

Para salir de RSTS/E ingresamos el comando LOGOUT. Una vez vueltos a la instancia de login, presionamos Ctrl+e para retornar al emulador SIMH, y salimos del mismo mediante el comando bye. Instalar RSTS/E v7 en Ubuntu

La versión prototípica de RSTS sin embargo fue la v7 de agosto de 1978. Es indudable que versiones posteriores incorporaron ya elementos más avanzados, pero fue "la siete" la que podríamos considerar su pico operativo y por cierto la versión más duradera. Es que por entonces la arquitectura PDP-11 ya habían sido reformuladas desde el punto de vista del hardware gracias a las nuevas tecnologías de integrados de muy alta escala, y sus LSI-11 se encontraban - comparativamente - "por moneditas".

RSTS/E v7 fue entonces el ámbito con el cual se contó con software de 16 bits de oficina, en un intento por elaborar entornos de cómputo en el lugar de trabajo.

Primero descargamos la distribución de RTST/E v7. No es la última, pero ha sido una versión importante publicada en 1987. A tal fin abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

mkdir ~/.simh/ ~/.simh/rsts/ ~/.simh/rsts/v7 cd ~/.simh/rsts/v7/ wget http://www.rsts.org/distros/RSTS_disks/V70/rsts7.0-07.tar tar xvf rsts7.0-07.tar Preparar RSTS/E v7 desde cero

He aquí las indicaciones sobre cómo instalar RSTS desde cero y agregarle paquetes a este sistema pre-compilado.

En primer instancia procedemos a instalamos el paquete del emulador SIMH en nuestro sistema GNU con Linux, y le damos ejecución en el modo DEC PDP-11. Todo lo podremos hacer desde nuestra temrinal presionando Ctrl+Alt+t e ingresando los siguientes Comandos de Organización:

sudo apt update sudo apt install simh

cd ~/.simh/rsts/v7/Disks echo ';Inicializador de instalador de RSTSv7' > ~/.simh/rsts/v7/Disks/rsts.ini echo 'att rl0 disk0' > ~/.simh/rsts/v7/Disks/rsts.ini echo 'att rl1 rsts_sysgng.dsk' > ~/.simh/rsts/v7/Disks/rsts.ini echo 'set rl1 lock' > ~/.simh/rsts/v7/Disks/rsts.ini echo 'set cpu 1m' > ~/.simh/rsts/v7/Disks/rsts.ini echo 'b11' > ~/.simh/rsts/v7/Disks/rsts.ini

Podremos iniciar ahora el procedimiento de preparación de RSTS/E según el frondoso manual naranja de instalación. Para dar inicio al instalador ingresamos:

cd ~/.simh/rsts/v7/Disks/ pdp11 rsts.ini

Se presentará la siguiente devolución. Al crear el fichero disk0 para la unidad virtual RL02, se nos indicará si queremos sobreescribir la última pista del mismo. Indicamos que introduciendo "y".

PDP-11 simulator V3.8-1 RL: creating new file Overwrite last track? [N] y Ahora arrancará el sistema disco de preparación de RSTS v7-0: Deberíamos recibir el prompt "Option:"

Disabling CR Disabling RK Disabling HK Disabling TM

Enabling only console, disks, and tapes.

RSTS v7-0 (DL1) Option:

3) Formateamos el disco de cero. Habremos de responder la pregunta "por defecto" presionando Ctrl+J (en caso de contar con una videoterminal, presionaremos la tecla LineFeed).

Option: DSK

Disk? RL0 Pack ID? DISK0 Pack cluster size? 2 SATT.SYS base? <Ctrl+J> MFD password? SYSTEM MFD cluster size? 16 Pre-extend directories ? <Ctrl+J> PUB, PRI, or SYS? SYS Library password? SYSTEM Library UFD cluster size? 16 Date last modified ? <Ctrl+J> New files first ? <Ctrl+J> Patterns? 1 Proceed (Y or N)? Y Continue with DSKINT? Y Patterns? 1 Proceed (Y or N)? Y

4) Copiamos el sistema al disco de cero solicitando la rutina COP:

Option: COP <fecha y hora nuevamente, podemos oprimir Ctrl+J para aceptarlas> To which disk? RL0

SIMH reiniciará desde el DL0.

Agregamos un fichero de intercambio / volcado de núcleo al disco de cero (esto tenia funcionalidad de salvataje de memoria RAM ante un cuelgue de la PDP-11), solicitando la rutina REF.

Option: REF <fecha y hora, de nuevo podemos usar Ctrl+j> Disk? RL0 Clean? N REFRESH suboption? CHA SWAP.SYS changes? Y Size? 256 Base? <Ctrl+J> SWAP0.SYS changes? <Ctrl+J> SWAP1.SYS changes? <Ctrl+J> SWAP3.SYS changes? <Ctrl+J> OVR.SYS changes? <Ctrl+J> ERR.SYS changes? <Ctrl+J> BUFF.SYS changes? <Ctrl+J> CRASH.SYS changes? Y Size? 35 Base? <Ctrl+J> Other files? <Ctrl+J> REFRESH suboption? <Ctrl+J>

Instalaremos ahora SYSGEN SIL, solicitando la rutina INS.

Option: INS
Sil? SYSGEN

El sistema reiniciará indicando "Rebooting...". y reiniciarça, ahora desde ña unidad DL1:

RSTS v7-0 (DL1) Option:

Configuramos las opciones por defecto del SYSGEN SIL, solicitando la rutina DEF.

Option: DEF
JOB MAX or SWAP MAX changes? Y
 New JOB MAX?                 <Ctrl+J>
 JOB MAX or SWAP MAX changes? 28
JOB MAX or SWAP MAX changes? <Ctrl+J>
Run Time System? RT11
Error message file? ERR
Installation name?  <Elegir un nombre de sistema>
 Table suboption?            <Ctrl+J>
Crash dump? y
Magtape labelling default <none>? ANSI
Preferred clock <L>?         <Ctrl+J>
Date format <ALPHABETIC>?    <Ctrl+J>
Time format <AM/PM>?         <Ctrl+J>
Power fail delay <1>?        <Ctrl+J>

Ahora iniciamos ya el generador de sistema SYSGEN en nuestro emulador.

Option: <Ctrl+J> <ingresamos fecha, hora>

El sistema devolverá "?Can't find file or account" y ofrecerá un prompt con un "." (el prompt del sistema operativo DEC RT-11 que se usaba como base de configuración para RSTS/E).

Debemos hacernos peritos en montar el disco de distribución (SYSGNG) como solo-lectura, y utilizarlo para copiar los archivos desde el mismo.

. MOUNT DL1:SYSGNG/RO . R DL1:CREATE.SAV

Luego de copiar los ficheros, el programa CREATE correrá automáticamente el programa SYSGEN.

Habremos de responder todas las interrogantes que nos solicite SYSGEN, la primera sección principal es importante porque le informa a SYSGEN desde dónde obtener los ficheros y parches:

Form ?                 #S #    L
Same system ?          #Y #                   <Ctrl+J>
Distribution medium ?  #DL#                   <Ctrl+J>
Output medium ?        #DL#    SY
Delete files ?          #Y #                   <Ctrl+J>
LP for SYSGEN ?        *Y *    N
Generate monitor ?     #Y #                   <Ctrl+J>
Monitor name ?         #RSTS#                 <Ctrl+J>
Monitor patching ?     #??#    YES
Patch file medium ?     #DL#                   <Ctrl+J>
Pack ID ?              #??#    PATCHG
Patch file name ?       #$MONITR.CMD#          <Ctrl+j>
Generate BASIC-PLUS ?  #Y #                   <Ctrl+J>
BASIC-PLUS RTS name ?  #BASIC#                <Ctrl+J>
BASIC-PLUS patching ?  #??#    YES
Patch file medium ?     #Identical to monitor# <Ctrl+J>
Patch file name ?       #$BASIC.CMD#           <Ctrl+J>
RSX as default RTS ?   #NO#                   <Ctrl+J>

...el resto de las preguntas simplemente podremos responder ingresando Ctrl+j para aceptar la opción por defecto. Eventualmente, se nos devolverá al prompt de RT-11: un simple ".".

Desde este RT11 muleto, compilamos el sistema corriendo el programa SYSBAT con:

.R SYSBAT

...y se nos presentará salida y luego nos solicitará la unidad para almacenar, inidicamos DL1:

MOUNT AX-D527G-BC ON A DISK DRIVE

READY AND WRITE PROTECT THE DRIVE

Mount DL:"SYSGNG"-write locked Unit ? DL1

...con esta orden se compilará PIP, LINK, MACRO, LIBR, y SILUS, indicando en el terminal:

MOUNT THE MONITOR PATCH FILE DISK "PATCHG" ON A DISK DRIVE

READY AND WRITE PROTECT THE DRIVE

Mount DL:"PATCHG"-write locked Unit ?

Nuevamente interrumpiremos el emulador presionando Ctrl+e y cargaremos el disco con los parches del sistema operativo RSTS/E (solucionaban ciertos bugs), Para ello ingresamos los siguientes comandos al prompt SIM> de SIMH:

sim> att rl1 rsts_patchg.dsk sim> c DL1

Con este accionar, se emparchará el intérprete de comandos Monitor y el intérprete de BASIC-Plus, presentando todo lo relativo a dicho procedimiento. Finalmente, deberá indicar "Batch job completed."

Sin duda podremos ya apagar el sistema emulado de generación SYSGEN, y correr el programa UTILTY.SAV

. R UTILTY.SAV NO LOGINSSHUTUP

Esto cargará ya el RSTS/E v7 que hemos creado desde el disco DL0. Solicitaremos nuevamente la rutina INS con el instalador creado, y pediremos entonces instalar nuestro propio RSTS/E peronista.

Options: INS Sil ? RSTS

Configuraremos las opciones por defecto del RSTS SIL peronista emparchado:

Options: DEF JOB MAX or SWAP MAX changes? Y New JOB MAX? <Ctrl+J> New SWAP MAX? 31 JOB MAX or SWAP MAX changes? <Ctrl+J> Run Time System? BASIC Error message file? ERR Installation name? Table suboption? <Ctrl+J> Crash dump? y Magtape labelling default ? ANSI Preferred clock ? <Ctrl+J> Date format ? <Ctrl+J> Time format <AM/PM>? <Ctrl+J> Power fail delay <1>? <Ctrl+J>

Acto seguido montamos SYSL1G a la unidad RL2 (PATCHG aún permanecerá en DL1), y luego reiniciamos. Para ello ingresamos lo indicado en negrita:

<presionamos Ctrl+e para detener SIMH>

Simulation stopped, PC: 034534 (WAIT) sim> att rl2 rsts_sysl1g.dsk sim> set rl2 lock sim> b rl0

Tras un instante arrancará nuevamente el sistema desde DL0. Ahora arrancamos el sistema de tiempo compartido.

Options: <Ctrl+J> <fecha,hora>

El sistema aparecerá en BASIC con el prompt "Ready":

?Can't find file or account
?Program lost-Sorry

Ready

Ahora Montaremos los discos SYSL1G y PATCHG en la unidad RL02:

MOUNT DL1:PATCHG/RO MOUNT DL2:SYSL1G/RO

De ahora en adelante instalamos el sistema BASIC corriendo la aplicación BUILD.BAS desde el disco DL2:

RUN DL2:$BUILD BUILD V7.0-07 RSTS V7.0-07 Peron System Build ? YES Source Input Device <DL2:> <Ctrl+J> Library Output Device <SY:> <Ctrl+J> Target System Device <SY0:> <Ctrl+J> Library Account <[1,2]> ? <Ctrl+J>

Copying file DL2:[1,2]BUILD.CTL to BLD01.TMP

Locate logical 'LB:' on SY:[1,1] <Ctrl+J> Function (Build/Patch, Patch, Build) <Build/Patch> <Ctrl+J> Patch file input location SY:[200,200] ? DL1:[1,2] Save patched sources <Ctrl+J> Run-Time System <Ctrl+J> Locate ERROR Package on SY:[1,2] <Ctrl+J> Additional Control File is <Ctrl+J>

En este instante, BUILD comenzará a cargar, emparchar e instalar DEC BASIC-PLUS CUSPS. Luego de un tiempo terminará con el mensaje:

! BUILD Complete "

Finalizada todo este burocrático accionar, podremos apagar el sistema. Lo haremos corriendo la aplicación SHUTUP.

RUN $SHUTUP Minutes until system shutdown (0-99) <5>? 0

¡Enhorabuena! Encomio lo actuado pues a partir de ahora podrán contar con un un RSTS V7.0 mínimo instalado (ej. como rl0.minsys).

[20] Para ejecutar más de dos trabajos necesitaremos agregar algo de espacio de intercambio al sistema. Para hacerlo debemos escoger dónde queremos poner el almacén de intercambios (ya sea en el disco de sistema que acabamos de crear, o en otra unidad).

Para poner un intercambio extra al disco de sistema:

Option: REF
<fecha, hora>
Disk? DL0
No usamos clean, elegimos la subopción "CHA"
Seguimos las preguntas con Ctrl+j y cambiamos el tamaño de "SWAP0.SYS" a un valor (ej. 1024 bloques)
arrancamos el sistema
editamos "$RTS.CMD" usando el editor TECO
agregamos la línea "FORCE KB0: ADD SWAPFILE 0 DL0:SWAP0" a la línea posterior a "RUN $UTILTY"

Para colocar una unidad de intercambio extra en otra unidad virtual, primero debemos contar con un fichero de archivo válido (use la opción "DSK" para formatear una). Luego hemos de seguir el procedimiento indicado (con el nombre de disco correcto, para agregar un fichero SWAP0.SYS a la unidad y configurarla en el sistema. Además, habremos de editar $START.CTL para montar el disco nuevo antes que corra RTS.CMD. Por ejemplo, si agregamos un disco DL1 con la etiqueta "PRIVAD" podríamos ingresar la siguiente línea en la parte superior de $START.CTL:

MOUNT DL1:PRIVAT


En la medida que tengamos el sistema mínimo, podremos compilar e instalar otros paquetes que anhelemos. Para compilar un paquete habremos de correr el programa $BUILD.

Por ejemplo, si SYSL1G está montado en DL2: y PATCHG se haya montado en DL3:, por lo tanto instalar el paquete HELP , tras el prompt Ready podríamos ingresar SY/D para listar y luego RUN $BUILD para iniciar el programa de compilación, de esta manera:

Ready

SY/D

Disk Structure: Disk Open Free Cluster Errors Name Comments DL0 2 3480 2 0 SYSTEM Pub, DLW DL1 1 4332 2 0 PRIVAT Pri, DLW DL2 0 1422 1 0 SYSL1G Pri, R-O DL3 0 3800 1 0 PATCHG Pri, R-O, DLW

Ready

RUN $BUILD BUILD V7.0-07B RSTS V7.0-07 Peron System Build ? Source Input Device <SY:> ? DL2: Library Output Device <SY:> ? Target System Device <SY0:> ? Library Account <[1,2]> ? Control File is ? HELP

Copying file DL2:[1,2]HELP.CTL to BLD02.TMP

Function (Build/Patch, Patch, Build) <Build/Patch> ? Patch file input location SY:[200,200] ? DL3:[1,2] Run-Time System ? Locate HELP Package on SY:[1,2] ? SY:[1,8]

%Can't find file or account - SY:[1,8] Attempt to create account SY:[1,8] ? YES Account SY:[1,8] created with your password Additional Control File is ?

El programa de compilación correrá y compilará el paquete HELP. Podremos repetir lo mismo con los siguientes programas:

Los siguientes paquetes están disponibles en aras de la justicia social:

En la imagen SYSGNG: MAINT.CTL = usado para recompilar RSX (no tan útil) RSX.CTL = el sistema ejecutable de RSX SORT.CTL = SORT (patches fail since we don't have RMS distribution) TECO.CTL = el editor TECO (SQU, TYPE, TECKBM...)

En la imagen SYSL1G: BUILD.CTL = el sistema básico de compilación (debería ya estar instalado) SPLER.CTL = programas de spooling (QUE, OPSER, BATCH, etc.) UNSUPP.CTL = programas no soportados (DSKDMP, STATUS, DEMO55) BIGPRG.CTL = programas "grandes"(RUNOFF, FIT, FLINT, PMDUMP, BPCREF, MAKSIL). BACKUP.CTL = Paquete de respaldo DEVTST.CTL = Prueba de dispositivos HELP.CTL = los ficheros de ayuda

Recordemos corriendolos con RUN. Podremos salir del sistema con RUN $SHUTUP y finalmente Ctrl+e para volver al emulador. Saldremos del emulador SIMH con el comando introduciendo en el prompt sim> el comando BYE.



26 december 2022

¿Como juego en red con DOSBox en Ubuntu?

¡Trabajadores!

El escudo del Partido Justicilista de Argentina consta de una apariencia modernista. Diseñado privadamente en la década del 1940, ha sido utilizado desde 1945. Reboza de simbolismo. Sobre los colores celeste y blanco nacionales, dos manos hermanadas en saludo de unidad, representando la unión de clases para dar sostén a un gorro frigio encarnado, símbolo de la tradición libertaria republicana argentina.

Sólo reconocemos una clase de hombres: los que trabajan. Sin duda nuestra unión ha de producir lo que Nuestra Patria necesita para realizar su Grandeza.

En las redes de datos sucede más o menos lo mismo. La mancomunión de dos pares bajo el símbolo de la libertad puede ofrecernos la Felicidad que anhelamos como Justo Derecho, y esto puede replicarse a todos los tiempos.

Vean señores, ya he explicado cómo instalar DOSBox en Ubuntu. Se trata de un portentoso emulador para el Sistema Operativo de Disco, capaz de ofrecer una experiencia similar a la ofrecida por los equipos clones del cómputo personal de IBM, pero en cualquier arquitectura, incluyendo nuestro GNU justicialista.

Este paquete nos permitirá entonces emular métodos de conexión del ayer pero sin gastar una chirola.

Indudablemente existían varios métodos para establecer comunicación computarizada a través de enlaces de datos, pero todos ellos eran oligárquicos y ninguno destacaba por su facilidad. Las redes de datos se encontraban amorfas y deseosas de integrar en sí no sólo un tráfico electrónico pasivo, sino una activa comunidad regida por la Doctrina Peronista.

Sin duda el primer método en abarcarse con Justicia Social fue el de enlazar eléctricamente los puertos COM de tipo Centronics RS232 a través de un humilde cable con fichas DB9 o DB25 cuyas líneas de transmisión y recepción estuviesen cruzadas. A este método - carente de todo tipo de modulación - se lo denominaba precisamente null-modem.

En null-modem sólo permitía conexiones locales a unos pocos pasos de distancia, con una velocidad que raramente excedía los 9,6 KB/s. Sin embargo, ya el hecho de poder jugar con otro solventaba la felicidad de dos argentinos.

Emulando un Null-Modem

Para crear una conexión por null-lmodem emulada a través de una red local tipo Ethernet necesitamos dos sistemas que corran el DOSBox: uno de los DOSBox operará como servidor, y el otro como cliente.

En tal sentido debemos editar el fichero de configuración en ambos, haciéndolo con los siguientes comandos:

nano ~/.dosbox/dosbox-0.74-3.conf

Tanto en el servidor como en el cliente debemos buscar la sección [serial]... sin embargo, modificaremos el contenido según sea el servidor o el cliente.

En el servidor modificaremos la opción serial1 para asignarle el parámetro nullmodem y un puerto TCP por encima de 1024. Por ejemplo,

serial1=nullmodem port:5000

En el cliente debemos asignar el parámetro server:<ip_del_server> y un puerto TCP. Por ejemplo, si la otra máquina tiene la IP 192.168.0.108 y usa el puerto 5000, deberíamos indicar:

serial1=nullmodem server:192.168.0.108 port:5000 rxdelay:1000

Ahora lanzamos el juego en ambas máquinas y activamos la opción de Nullmodem. Las versiones 4, 5 y 5.1 de Micro$oft Flight $imulator se caracterizaban por disponer de conexión de null-módem a través de puerto serial, compatibles entre ellas, lo que permitía volar en formación en los alrededores de Meigs Field en Chicago.

Por ejemplo, en Flight Simulator 5.1 podríamos ir al menú Options/Entertainment/Dual-Player. ¡Incluso podíamos volar sobre Buenos Aires con el Escenario Río de la Plata 2.4 de Di Veroli Consultores!

Con el correr el tiempo, las conexiones de datos cobraron más interés, y las redes de tipo Novelñ se popularizaron en ciertos entornos del trabajo organizado. El envío de paquetes de datos que avalaban ofrecía posibilidades interesantes, siempre que lidiásemos con sus incómodos cables coaxiles y conectores BNC. A pesar de su difícil ruteo, podían lograrse velocidades de unos 3 MB/s reales. Sobre esta infraestructura no tardó en difundirse el protocolo IPX, un pequeño engendro derivado de los viejos pero capaces terminales Xerox.

El protocolo IPX cobró cierta relevancia entonces para los juegos en red en un estadío previo a la masificación completa de la Internet, a mediados de los 90s. Gracias al mismo podían lograrse enlaces estables y duraderos para varios jugadores y con una cierta facilidad de configuración. Sin embargo, en el caso de la versión emulada sobre GNU, habremos de contar al menos con el conocimiento de las direcciones IP de las máquinas (ya sea en el área local, o bien en la internet si abrimos el puerto de conexión TCP demandado en nuestro router). Emulación de red IPX

Una vez instalado DOSBox, debemos activar la emulación del protocolo de red de datos IPX para MS-DOS. A tal fin debemos ingresar al directorio de DOSBox y editar el fichero de configuración a fin de activar el módulo de red IPX del emulador.

En el caso de Ubuntu podríamos hacerlo con:

nano ~/.dosbox/dosbox-0.74-3.conf

En el archivo de configuración buscamos la sección [ipx] y cambiamos la declaración ipx=false a ipx=true.

Finalmente guardamos la configuración con Ctrl+o y salimos del editor Nano con Ctrl+x. Inicializar el servidor IPX

A continuación, en todas los equipos donde queramos participar debemos activar el emulador DOSBox desde Aplicaciones / Juegos / Emulador de DOSBox.

Una de estas computadoras deberá oficiar de servidor. El resto serán sus clientes. En el equipo servidor, habrán de correr el siguiente comando ipxnet startserver pierto_UDP. Normalmente el puerto UDP utilizado era el 213, pero en el caso de Linux debemos utilizar cualquiera libre por encima del puerto UDP 1024. En este caso, usaré por ejemplo el 8844:

ipxnet startserver 8844

La utilidad de tunelado dentro del sistema emulado debería indicarnos con el mensaje IPX Tunneling Server Started.

Ahora podremos iniciar los clientes emulados en las otras máquinas de la red. En cada una de ellas podríamos utilizar el siguiente comando que las dirija a la dirección IP del servidor. En mi caso podría ser:

ipxnet connect 192.168.0.112 8844

Ya tenemos la red operativa, al menos a nivel local.

Nota: si quisiéramos activar esta red con salida a internet, deberíamos abrir el puerto UDP 8844 en el router y dirigirlo a la IP de la máquina, en este caso 192,168.0.112. Iniciar los Juegos Como campo de pruebas para nuestra red local podremos utilizar un juego de disparos en primera persona clásico de M$-DO$: el sanguinario Doom II de Id Softwar€. Se trataba de una violenta propuesta de super-acción tridimensional, con precursoras capacidades de entretenimiento en línea, amén de sonido digitalizado y sintetizado. Para tal necesitamos correr su utilidad de configuración, mediante c:/doom2/setup.exe.DOSBox multiplayer Doom 2 setup

Luego de activar los parámetros relevantes de red eligiendo, lo iniciamos eligiendo Run Network/Modem/Serial Game, para iniciar el juego en modalidad multijugador.

Warcraft

Otro clásico que podremos disfrutar en nuestro centro de datos local o bien puenteado a través de Internet es el Warcraft 2: Tides of Darkness, un juego de estrategia en tiempo real. En el menú principal del mismo tendremos que elegir Juego Multijugador ("Multiplayer Game").

La primera opción nos indica establecer el nombre del serivodr a utilizar

Acto seguido, indicamos el protocolo IPX Network.

Luego de establecer la conexión, el servidor será el primero en escoger bando. Acto seguido, el otro jugador debe confirmar la elección.

Conforme ambos jugadores acuerden las reglas del juego telemático, podrán iniciar su enfrentamiento, enfrentando unidades de humanos y orcos en las tierras del fantasioso Tolkien. Normalmente, cada jugador sólo puede ver su sector en el mapa gracias a la clásica "niebla de guerra".

Por ello cada jugador apreciará diferencias (una de las características de este tipo de juegos).

Esto se aplica a muchos otros juegos de MS-DOS, entre ellos Warcraft 2, Doom, Heretic, Hexen, Duke Nukem 3D, y otros. Emulación de Módem

Los jugadores más privilegiados podían darse el lujo de enlazar desde su hogar utilizando modulación a través de las redes telefónicas de EnTel. Los pares debían contar por supuesto con copias del mismo juego instaladas en sus sistemas. Por demás, previo a la difusión de internet esto era costoso porque no sólo había que pagar un módem y el lógico abono al servicio telefónico cableado, sino que era necesario abonar al mes cada minuto de conexión en base a la distancia de la llamada. Por demás, si no se utilizaba una línea dedicada, quienquiera que levantase el tubo en cualquiera de los hogares podría crear una disrupción tal que cortara la conexión mutua.

Afortunadamente DOSBox puede salvarnos del incordio y los gastos mediante la emulación de dicho servicio para software dependiente del sistema telefónico para enlazar.

En este caso editamos el fichero de configuración de DOSBox para poder jugar entre dos equipos:

nano ~/.dosbox/dosbox-0.74-3.conf

Usamos la combinación Ctrl+w para buscar ahora la sección [serial] y indicamos el puerto serial donde deseamos conectar nuestro "módem emulado".

Normalmente los módems de puerto serial podían conectarse en COM1 (que recibe la nomenclatura serial1 en DOSBox) o bien en COM2 (serial2). Es notable el hecho que no existía realmente un estándar muy definido, por práctica se solía utilizar COM2 para el ratón y COM1 para el módem. También debemos indicar un puerto TCP moderno superior a 1024 a través del cual DOSBox transmitirá los datos.

Siguiendo tal temperamento indicaremos entonces:

serial1=modem listenport:1710

Una vez configurado DOSBox, guardamos los cambios con Ctrl+o y salimos con Ctrl+x.

Nota: Cualquiera sea el puerto TCP elegido (incluyendo aquél por defecto, el 5000), debemos reenviarlo y abrirlo a la red exterior si tenemos nuestro servidor tras un router (NAT).

Opciones de módem en el juego

Debido a que los juegos plausibles de utilizar módem requerían toda una puesta, habremos de replicarla en DOSBox. En este caso debemos configurar las opciones del módem para el juego (ya sea a través de un programa incluído con ellos denominado setup.exe o install.exe, o bien en el mismo juego). En apretado resúmen, debemos asegurarnos de:

Definir el mismo número de puerto COM que configuraron en DOSBox. Si el juego contaba con cierto puerto COM definido específicamente, será necesario estipular dicho COM en las opciones de DOSBox, natural.
Escoger la velocidad de baudios más alta que acepte el juego.
Salir de las opciones, ingresen al juego en sí, y utilicen a la opción de módem del juego, dependiendo si somos servidor o cliente.

Emular responder una llamada

El uso de un módem telefónico era algo relativamente engorroso. ya que se controlaban de manera críptica mediante el uso de comandos Hayes AT.

Algunos juegos podrían solicitarnos estos comando Hayes AT de autorespuesta de módem, mientras que otros podrían solicitarnos contestar manualmente al producirse una llamada. Algunos programas son capaces de contar con ambos modos.

En el primer modo, en el equipo servidor deberíamos escoger la opción "Aguardar llamada" ("Wait for calls" / "Wait for Ring").

Si el juego nos pide ingresar un comando manual que represente este modo, utilizaremos el Comando ATS0=1 (esto hacía al módem responder al primer timbrazo). Este modo se encuentra para viejos acopladores telefónicos.

En el segundo modo semiautomático, el servidor debería escoger la opción "responder llamada" ("answer call") cuando el juego anuncie una llamada entrante. Si el juego requerirá que ingresemos un comando manual de respuesta, usarán el consabido comando Hayes AT: ATA.

Veamos el caso de Micropro$e F-15 $trike €agle III, software de finales de 1992 que da cuenta de dicho sistema. Al iniciar f15.exe hacemos clic sobre el teléfono del hangar para cargar el módulo de multijugador.

Acto seguido nos avisará que ha detectado el "módem" (virtual) y nos preguntará si queremos establecer una llamada o aguardar.

En el lado del servidor indicamos Receiver, y quedará a la escucha:

Emular realizar una llamada

El cliente debe escoger la opción "Realizar una llamada" ("Make a Call", o "Caller") en el menú del juego. Y en lugar del número telefónico, indicar la dirección IP del servidor en la red local, o bien la IP de internet. Si el juego nos solicita tipear un comando manual de discado, utilizarían "ATDT". Por ejemplo, si el servidor se llama "cgt" y su IP es 1.2.3.4, podríamos tipear ATDT1.2.3.4 o bien ATDTcgt.local

En el lado del cliente en tanto, ingresamos al juego f15.exe y en el módulo de módem escogemos Caller para llamar.

Se nos preguntará si ya hemos establecido una conexión por voz (como si se tratara de un viejo módem). Indicamos que si ("yes").

Ahora "discaremos" hacia la IP del servidor que había quedando en escucha. Para ello debemos indicar los números presionando incluyendo el punto (por ejemplo 192.168.0.112). En este caso el juego no muestra los puntos, sino que hace un espacio. Para discar persionamos el botón # del teléfono virtualizado). En el servidor responderá la llamada: Ahora podremos dar rienda suelta a nuestros instintos de piloto de combate volando un F-15 de la McDonnell Douglas. No lo haremos en solitario; el simulador de vuelo también hará uso del simulador de módem de DOSBox, con lo cual el par de jugadores podrá repartir las tareas. El suboficial piloto podía usar su joystick para volar, disparar el cañón y gestionar el combustible y los motores, tanto de día como de noche... También podrá navegar y solicitar ayuda al AWACS. ...mientras que el Oficial Operador de Radar y Armas, sentado en el asiento trasero podría controlar el potente radar embarcado, y operar los medios de adquisición de blancos, a la vez que autorizar el lanzamiento de misiles y bombas teledirigidas, o accionar interferidores o señuelos antimisilísticos.

Ambos jugadores podrán observar el vuelo en tercera persona.

Conclusión

Naturalemnte, jugar en red era limitado y engorroso. Sin embargo hoy ya no es un privilegio: cuaquier descamisado puede depender de estas facilidades que he otorgado a la Masa y proceder a la emulación de M$-DO$. Por demás, la existencia de juegos de DOS remanentes de la era dorada de la piratería informática física, hace posible hoy establecer en los Centros de Datos de la Libertad divertidas partidas múltiples a través de protocolos de red obsoletos pero nunca abandonados, con el fin de revivir momentos de gloria incluso en las más lentas redes y desprovistas computadoras del mundo actual.



25 december 2022

¿Como soluciono el error "GEGL version is too old!" de GIMP en Ubuntu 20.04LTS?

Dice Mao Tse Tung que el que lucha contra un compañero es que se ha pasado al bando contrario. Eso lo hemos observado todos, no hay peronista que no haya observado este tipo de disidencia, siempre sospechoso, pero más que nada negativo para el trabajo de conjunto que debemos realizar.

En el movimiento peronista eso tiene su remedio, porque el movimiento peronista ha sido creado y conducido en forma que desarrolle sus propias autodefensas. En esto hay una tremenda similitud entre el organismo fisiológico y el organismo institucional. En el organismo fisiológico ocurre un fenómeno del cual debemos aprender: si el hombre no tuviera sus autodefensas hace miles de años que habría desaparecido de la tierra, solamente son las autodefensas las que conservan la especie, no son ni los médicos, ni la penicilina desgraciadamente. Ahora, ¿cómo se generan esas autodefensas? El promotor de ello es el microbio, el agente patógeno que entra en el organismo, que a su vez genera sus propios anticuerpos, de donde salen las vacunas que crean las propias enfermedades. Ese microbio genera los anticuerpos, y son esos anticuerpos las autodefensas del organismo.

En lo institucional pasa lo mismo. Cuando el movimiento justicialista fue creado yo me persuadí de esta necesidad y de esta verdad, y dejé actuar al movimiento con la mayor libertad posible. Cada uno hizo lo que quiso dentro de él, claro que eso dio lugar a que aparecieran algunos de los que se denominan traidores en la política o tránsfugas. Pero ¿qué son los traidores o los tránsfugas dentro de un organismo institucional de la política? Son los microbios, son los gérmenes patógenos que entran en el organismo, y tan pronto entran generan sus anticuerpos igual que el otro microbio y generan sus autodefensas para la organización institucional. Hemos visto muchos actos de las autodefensas que se han producido en el movimiento. Es decir el movimiento se defiende por sí, porque los movimientos o los partidos políticos o las organizaciones institucionales que no tienen sus autodefensas desaparecen como habría desaparecido el hombre. Por eso la conducción de un movimiento político hace pensar en la necesidad de dar absoluta libertad.

Hay que tener en cuenta que cuando aparece una librería en nuestro sistema que lucha contra otra librería de nuestro sistema puede ser lo que dice Mao, que se haya pasado al bando contrario.

Ya he explicado cómo instalar GIMP 2.10. Sin embargo, en determinadas ocasiones, al intentar abrir un fichero gráfico con dicha versión de GIMP en Ubuntu 20.04LTS (actualizado desde la versión 18.04LTS), podríamos notar que el mismo se revela, y se limita a presentarnos el siguiente mensaje de error, que impide la normal ejecución del tan útil programa:

GEGL version too old!

GIMP requires GEGL version 0.4.16 or later. Installed GEGL version is 0.4.14.

Somehow you or your software packager managed to install GIMP with an older GEGL version.

Please upgrade to GEGL version 0.4.16 or later.

El mensaje "GEGL Version too old!" denota entonces una versión antigua de la librería GEGL, que se ha pasado al bando contrario. Si intentamos ejecutar el comando gimp desde la terminal, podríamos recibir un reporte algo más críptico de dicho agente patógeno:

gimp: symbol lookup error: gimp: undefined symbol: gegl_buffer_share_storage

Como se hace evidente, la librería GEGL se encuentra desactualizada (los números de versión podrían variar, natural).

Como solución haremos caso a las autodefensas y haremos tronar el escarmiento. El programa de instalación de los derivados de Debian (entre los cuales se encuentra Ubuntu) es el apt-get, y ha evolucionado para verse capaz de desinstalar y volver a recrear la librería GEGL. Este será el temperamento que seguiremos para reparar a GIMP. Para ello nos aseguramos de contar con conexión a internet, y abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente comando de organización:

sudo apt-get update sudo apt-get remove libgegl-0.4-0

Hemos de tener especialmente presente que esto - normalmente - también acarrea la desinstalación completa de GIMP. Lo haremos con decisión; tras ingresar nuestra contraseña de usuario, se desinstalará todo lo problemático.

Acto seguido, volvemos a instalar GIMP. 2.10, lo cual se hacía con:

sudo add-apt-repository ppa:otto-kesselgulasch/gimp ; sudo apt update ; sudo apt install gimp ;

Si todo va bien, ahora se instalará GIMP y podremos ejecutalo normalmente para abrir ficheros o editar uno desde Aplicaciones / Gráficos / Programa de Manipulación de Imágenes de GNU.

Finalizado esto, hemos de recordar que quien hay que defender ideales. El que defiende un ideal no puede tener controversias con otro que defiende el mismo ideal.

En la política al haber más de dos ideales juegan los intereses. Y hay horas distintas, en 1955 fue la hora de Window$ doble booteo, y esta es la hora del software libre.

Son esos intereses los que han venido y siguen jugando, pero el peronista debe darse cuenta y cualquiera sean sus intereses no pueden estar sobre el ideal de software libre que todos defendemos y por el cual todos debemos luchar.

Por eso el peronismo creó un apotegma que dice: para un peronista no puede ni debe haber nada mejor que otro peronista. Entonces cómo puede ser posible que un señor que está en la misma lucha esté luchando para poner Windows con doble booteo, cuando tiene a Micro$oft que es a la que tiene naturalmente que luchar...



24 december 2022

¿Cómo activo extensiones de Compiz para GNOME Shell en Ubuntu 20.04LTS?

El Teniente Juan Perón es recordado por su labor meritoria en la instrucción en el Regimiento 12 de Corrientes, donde enseñó a los cursantes del Servicio Militar Obligatorio cómo instalar las extensiones de Compiz, incluyendo el Cubo, en Ubuntu 20.04LTS con GNOME Shell.

Vean señores,

Cuando era cadete, un viejo sargento que mateaba contaba que en todo Ejército, siempre existe gente que se enlista por la Conducción, otros lo hacen por el fierro, pero que el lo había hecho por el trapo. Para quien verdaderamente entiende la milicia sabe que el uniforme sirve nomás para no tener al soldado desnudo, y lo importante es comprender la misión y llevarla a cabo sin quemar un cartucho. Pero el hombre de algo se agarra, y muchas veces es de lo primero que ve. No debemos desapreciar esto, pues puede ser conducente a cosas mejores.

De esto podremos desprender condiciones similares en nuestro sistema GNU con Linux. No existen dudas para nadie que siempre ha existido un porcentaje apreciable entre sus usuarios que se han hecho adeptos a el no tanto por declamaciones de doctrina, sino por el Compiz que viste.

Se trata este de una vistosísima proveduría de efectos visuales para escritorio, desarrolla como entorno libre. Sin duda que la novedosa belleza, sumada a la módica comodidad que ofrecía, contrastaba fuertemente con la mediocridad de los sistemas de ventanas gráficas privativas como las burdas ventanas de Window$ o MacO$.

Particularmente, utilizo Ubuntu MATE, una distribución derivada de Ubuntu cuyo escritorio MATE acepta con gran facilidad la moderna iteración del clásico Compiz y sobre la que ya he instruido cómo instalarle Compiz. Podremos gozar aún así de uno de los más exacerbados excesos en lo que a escritorios animados se refiere, el Cubo 3D de Compiz modificable a cilindro, y los populares efectos de animación de abrir, mover, o cerrar pantallas. Estos incluyen sin duda las ventanas gelatinosas, fuego y efecto de lámpara mágica.

Podría entonces decir - sin sonrojarme - que estos son el motivo por el cual sigo con pasión a Ubuntu MATE.

Sin embargo, la versión oficial de Ubuntu no es Ubuntu MATE, sino Ubuntu a secas, y es mas amarga. Esta versión anduvo - desde el punto de vista de su escritorio gráfico - por toda la parrilla: en el pasado contó con Gnome 2, pasando por Unity, GNOME 3, y hoy emplea GNOME Shell. Si bien la dirección general de avance es más o menos la misma, lo cierto es que todas estas opciones adolencen de un gravísimo problema: no aceptan Compiz.

Aunque un manejo de este tipo podría considerarse como desaprensivo, la camaradería presente en nuestro Movimiento ha hecho que este no sea el fin de la calesita. De una necesidad nace un Derecho, y de la enorme popularidad que goza la añoranzas por esta vistosa interfaz se han previsto enormes esfuerzos necesarios para volver a contar con ellas. Estas han tomado la forma de extensiones para GNOME Shell, las cuales están pensadas para suplir como sucedáneos del viejo y peludo Compiz, y por tanto replicar los efectos más amados incluso en la versión oficial de Ubuntu.

En primer lugar conviene contar el herramental de Preferencias de Extensiones de GNOME Shell. Este debería estar ya instalado, pero si no lo estuviese podríamos hacerlo abriendo una terminal con Ctrl+Alt+t e ingresar los siguientes Comandos de Organización:

sudo apt update sudo apt install gnome-shell-extension-prefs

Se puede instalar fácilmente con un complemento para el navegador. Por ejemplo, si usamos Chromiun podríamos utilizar: sudo apt install chrome-gnome-shell Cubo 3D

La extensión del Cubo 3D podrá conseguirse en el repositorio web oficial de extensiones de GNOME Shell. En particular, se cuenta para las versiones 40 y 41 de GNOME Shell (sitas en las últimas versiones de Ubuntu, 20.04LTS y superior) aquí.

Existen bravos capaces de querer instalar la extensión a mano. A tal efecto es posible abrir una terminal e ingresar los siguientes comandos de organización:

cd ~/Descargas/ ; wget https://github.com/Schneegans/Desktop-Cube/releases/latest/download/desktop-cube@schneegans.github.com.zip ; gnome-extensions install desktop-cube@schneegans.github.com.zip

Conforme hemos instalado la extensión desktop-cube en nuestro sistema, habremos de activarla. Para ello os recomiendo encarecidamente cerrar la sesión y volver a ingresar a Ubuntu (reiniciar con el comando sudo reboot también puede ser útil), y luego de haber hecho eso usar el programa gnome-extensions para activar ("enable") la extensión del cubo de escritorio, mediante el siguiente comando de organización:

gnome-extensions enable desktop-cube@schneegans.github.com

Siguiendo esta misma líena de conducta es posible desactivar el cubo, simplemente expidiendo el comando anterior pero con la opción desactivar ("disable").

Otra forma más trabajosa pero favorecida por el intelecto es la de instalar el Cubo 3D en GNOME Shell es la de conseguir el código fuente de la última versión de la extensión desktop-cube para GNOME Shell y compilarla en nuestro propio sistema. Esto se podría hacer con:

sudo apt install git cd ~ git clone https://github.com/Schneegans/Desktop-Cube.git mv ~/Desktop-Cube/ ~/.desktop-cube/ cd ~/desktop-cube/ make install

Y tras reiniciar la sesión, activamos la extensión recién compilada con:

gnome-extensions enable desktop-cube@schneegans.github.com

O bien utilizamos el comando:

gnome-shell-extension-pref

...y en la ventana gráfica de dicha aplicación deberíamos encontrar Desktop Cube, la cual podríamos activar simplemente deslizando el selector de activación de dicha Extensión.

Ventanas gelatinosas

Estas ventanas ofrecían una imagen temblorosa y flanera. La Extensión nativa de Ventanas Gelatinosas para GNOME Shell es simplona y sirve para simular el efecto real sin complicaciones de video extrañas. Sirve para las versiones que van desde 3.28 hasta la 41 y puede descargarse desde aquí.

Sin embargo, si contamos con un controlador de aceleración para nuestra tarjeta de video, podríamos querer utilizar una versión alternativa de "Ventanas Gelatinosas" de instalación más compleja, pero cuyo resultado es más fiel al viejo efecto de ventanas gelatinosas incorporadas en el Compiz clásico.

Sin embargo, este versión alternativa requiere instalar previamente una version emparchada de la biblioteca libanimations. Para ello deberíamos ingresar los siguientes Comandos de Organización:

mkdir .libanimation-patched/ && cd .libanimation-patched/

Acto seguido instalamos las dependencias con:

sudo apt install git build-essential fakeroot dpkg dpkg-dev debhelper cdbs \ gobject-introspection googletest google-mock libgirepository1.0-dev \ libglib2.0-dev libgtest-dev meson

y descargamos el código fuente y lo compilamos para hacer la biblioteca.

cd ~ git clone https://github.com/hermes83/libanimation.git ; mv ~/libanimation/ ~/.libanimation/ ; cd ~/.libanimation/ && dpkg-buildpackage -rfakeroot -b -uc -us

sudo dpkg --install ../libanimation0_0.0.0_amd64.deb \ ../libanimation-glib0_0.0.0_amd64.deb \ ../gir1.2-animation-glib-0_0.0.0_amd64.deb

Una vez instalados cumplidos estos prerequisitos, podremos descargar la Extensión de Ventanas Gelatinosas Alternativa para GNOME Shell desde aquí. Quemar Ventanas Se trata del excesivo y clásico efecto que genera partículos en las ventnas, con algunos giros de tuercas. Además de las llamas anaranjadas clásicas al cerrar las ventanas, contaremos con un desintegrado, y una adorada lluvia de código matrix.

Podremos descargarla encontrándola en el repositorio oficial del GNOME Shell aquí. Ventanas de Lámpara Mágica Se trataba de una animación de transición que imitaba un llamativo firulete.

Esta extensión se puede encontrar aqui.



23 december 2022

¿Cómo aseguro el servidor OpenSSH en Ubuntu?

El 24 de Diciembre de 1953 en ocasión del Día de la Policía Federal Argentina se realiza un fausto desfile de la fuerza, al término del cual Juan Perón expone cómo incrementar la seguridad del servidor OpenSSH en Ubuntu.

Bajo este diáfano día, y cercano a las Navidades, no sólo preparo la Sidra y el Pan Dulce para todos los privilegiados, sino que también elaboro lo que no es para mí sino una enorme satisfacción: presenciar este histórico desfile de lo que es sin duda el principal instrumento de seguridad ciudadana: la Policía Federal Argentina.

Esta es una Fuerza que nace Por el Pueblo y para el Pueblo, y enjendrando un rol propendiente a la protección de los hombres y mujeres de bien que habitan el suelo Argentino.

La provechosa tarea que ustedes realizan no puede más que llevarse a cabo por un manejo concienzudo por parte del escalafón superior, y los institutos que la forman y que hemos atresado en pos de la defensa de los intereses superiores de la Nación.

Este escalafón conductivo sin duda ha podido dar su manejo y control no solo en el terreno, que es donde se realiza la acción, sino a distancia, y en esto no podemos más que sentirnos orgullosos. El método sin hilos que se ha implementado en el Comando Radioeléctrico no es más que apreciado por toda la Comunidad Organizada. Sin duda el protocolo Secure Shell es muy recomendado para acceder a dispositivos remotos tales como servidores, enrutadores y conmutadores de cómputo, debido a su capacidad para encriptar el tráfico telemático, resguardandonos así de cualquiera que anhele husmear nuestros enlaces.

Sin embargo, de la manera en la que está asegurada, la configuración por defecto de SSH no es infalible, sino más bien sencilla de implementar. Esto podría parecer adecuado para el uso del Pueblo, pero en aplicaciones donde dependa nuestro bienestar y el de sus organizaciones de trabajo, ha de recurrirse a un mayor despliegue de seguridad.

A esto nos referimos como seguridad reforzada, a la cual ha de recurrir un Movimiento como el nuestro. No implica enfrentar a los desprotegidos a la acción represiva del Estado, sino implementar políticas de salvaguarda que privilegien a los humildes en contra de la Opresión Omnímoda del Capital.

Nuestra Policía Federal ha de saber cómo implementarlas, ya que sobre ella recae la organización y acción de seguridad. Indudabnlemente que de esto no dependen ni los médicos ni la penicilina, sino de las autodefensas con que cuenta OpenSSH por protocolo.

Esto no puede hacerlo ni un agente de calle, ni un ciudadano común, sino un verdadero Conductor del sistema. Por principio la implementación de las políticas de salvaguarda pueden llevarse a cabo modificando el fichero de configuración general /etc/ssh/sshd_config del demonio OpenSSH (nombre que recibe su servidor libre de Shell Seguro).

A tal fin con ímpetu de conducción podremos abrir una terminal con Ctrl+Alt+T y proclamar el comando de organización, seguido de la tecla Intro:

sudo nano /etc/ssh/sshd_config

Esto nos solicitará contraseña de administración, y tras revisarla abrirá el consabido editor de texto GNU Nano con el fichero de configuración nombrado.

Os explicaré algunos métodos de reforzar la seguridad produciendo las modificaciones necesarias que asegurarán las necesidades de protección y control que son Socialmente Justas para con las organizaciones del Pueblo Trabajador.

  1. Configurar la Autenticación de SSH sin contraseña

Por defecto, SSH requiere que el usuario teclee su contraseña al iniciar sesión remota. Si bien esto suena peliculero, la triste realidad es que una contraseña capaz de retenerse en una memoria humana suele ser descomunalmente fácil de percibir por medio de un ataque computacional de fuerza. Un tercero hábil podría ganar así acceso indeseado a una cuenta de usuario autorizado. Por ello más seguro es utilizar una autenticación de Shell Seguro sin contraseña, con llaves de cifrado.

Como ya he explicado cómo hacerlo, simplemente resumiré diciendo que habremos de generar computacionalmente un par de ficheros de cifrado llamados "llaves", que consisten en una llave pública y otra llave privada. Una vez ingresado el contenido del fichero de la llave pública al servidor remoto, podrá lograr acceso sin tener que teclear contraseña alguna. Si ya hemos tomado este predicamento, es recomendable desactivar el uso de autenticación por contraseña para el ingreso.

Dentro de este fichero de configuración /etc/ssh/sshd_config buscamos la directiva PasswordAuthetication y cambiamos su indicación de 'yes' a 'no'

PasswordAuthentication no

Tras guardar las modificaciones con Ctrl+o y salir del editor con Ctrl+x, debemos reiniciar el demonio SSH con:

sudo systemctl restart sshd

A partir de este momento, unicamente podrá acceder al servidor remoto utilizando la autenticación con llave SSH.

  1. Desactivar los pedidos Conexión SSH sin contraseña.

Otra manera recomendada de fortificar la seguridad del servidor es directamente desactivar los logins SSH de usuarios sin contraseña. Esto puede sonar contradirctorio, pero algunos adminsitradores de sistemas poco avezados podrían preferir crear cuentas de usuario "a la marchanta" y terminar olvidando asignar contraseñas. Esto es de malo, pero no de bruto. He visto malos que se han vuelto buenos, pero nunca he visto un bruto que se haya vuelto inteligente.

Con el fin de rechazar pedidos de usuarios que carezcan de contraseña se debe nuevamente modificar el fichero /etc/ssh/sshd_config y asegurar descomentar la siguiente directiva:

PermitEmptyPasswords no

Acto seguido reiniciamos el servicio SSH para que surta efecto con:

sudo systemctl restart sshd

  1. Desactivar los logueos SSH de Root

No hace falta explicar demasiado lo que puede suceder si un intruso logra ingresar a nuestro sistema atacando brutamente la contraseña de un usuario. Imaginemos entonces lo que sucedería si lo propio sucede con la cuenta del Superusuario, el Root, que es capaz de conducir el sistema.... Un acceso remoto del superusuario Root constituye invariablemnete una mala idea que debe soslayarse pues pondrá en peligro a todos los compañeros que usen nuestro sistema similar a Unix.

Por esta razón, para grandes organizaciones siempre recomiendo desactivar el logueo remoto SSH y en su reemplazo preveer el de un usuario regular que no sea root. Esto obligará a que si el Root quiere trabajar, deba hacerlo frente al sistema y no de manera remota. Para tal fin modificamos el fichero /etc/ssh/sshd_config y producimos la modificación descomentando la directiva #PermitRootLogin y modificamos la orden prohibit-password para que quede de la siguiente manera.

PermitRootLogin no

Conforme se hayan guardado los cambios, reiniciamos el servicio de SSH para que la nueva política surta efecto.

sudo systemctl restart sshd

Naturalmente que a partir de estas modificaciones, el logueo de root quedará desactivado u no se podrán realizar tareas administrativas de manera remota (a no ser que se eventualmente escalen usuarios comunes con la orden sudo).

  1. Usar SSH Protocol 2

SSH viene en dos versiones. El SSH Protocolo 1 y SSH Protocolo 2. El segundo fue introducido en 2006 para reforzar la criptografía general de SSH. Por defecto se utilizaba en Protocolo 1 por razones de compatibilidad, pero a partir de 2018 se decidió desfasarlo definitivamente para evitar agujeros de seguridad.

Por tal motivo, en caso de contar con un servidor anterior al 2018, podríamos especificar ahora utilizar únicamente Procolo 2. Para ello le agregamos al fichero /etc/ssh/sshd_config la siguiente directiva:

Agregado por peron para usar únicamente SSH Protocolo 2.

Protocol 2

Guardamos, salismos, y como siempre reiniciamos el servicio SSH para que surta efecto:

sudo systemctl restart sshd

A partir de ahora, SSH sólo utilizará Protocolo 2 y no podrá establecerse enlaces con clientes antiguos que utilicen el desfasado Protocolo 1.

Para comprobar que el Protocolo 1 ya no esté en suo, podremos ejecutar el comando:

ssh -1 usuario@ip_remota

Debería obtener un error similar a “SSH protocol v.1 is no longer supported”.

Naturalmente, podríamos forzar al cliente a usar el Protocolo 2 con:

ssh -2 usuario@ip_remota

  1. Configurar el Valor de Tiempo de Corte para Conexión SSH Inactiva

Dejar una conexión remota desatentida por largo tiempo es lo mismo que dejar en esa misma condición a una buena mujer. Puede constitnuir un riesgo de seguridad que ustedes conocen sin duda por esos cuernos que les veo. Para evitar este problema, es prodente configurar un valor de tiempo de corte para conexiones SSH inactivas, transcurrido el cual la sesión SSH se cerrará automáticamente.

Habremos de configurar nuevamente /etc/ssh/sshd_config y localizamos la directiva ClientAliveInterval. Le asignamos un valor razonable en segudos. Por ejemplo, podríamos utilizar 180 segundos.

ClientAliveInterval 180

Esto implica que la sesión SSH se cortará si transcurren 3 minutos (180 segundos) de inactividad.

Tras guardar debemos reiniciar el demonio para aplicar los cambnios:

sudo systemctl restart sshd

  1. Posibilitar el Acceso SSH a Ciertos Usuarios

Podremos definir qué usuarios requieren el uso de SSH para loguearse y desarrollar tareas en el sistema. Esto mantendrá fuera de esta posibilidad a cualquier otro usuario que intente lograr ingreso al sistema sin nuestra aprobación.

Como siempre, editarmos el fichero /etc/ssh/sshd_config y le agregamos la directiva AllowUsers seguida de los nombres de usuario que queremos aprobar. Por ejemplo, he agregado los usuarios peron y evita para que cuenten con acceso remoto al sistema a través de sus respectivos clientes SSH. Cualquier otro usuario que intente ganar acceso remoto al sistema será bloqueado.

AllowUsers peron evita

Hemos de reiniciar SSH para que peresistan los cambios:

sudo systemctl restart sshd

  1. Limitar los Intentos de Contraseña

Otra manera de agregar una capa de seguridad consiste en limitar la cantidad de intentos de acceso SSH tras errar una la contraseña, caso en el que la conexión se cortará. Una vez más en el fichero /etc/ssh/sshd_config y buscamos la directiva MaxAuthTries, y le definimos un valor para la cantidad máxima de intentos.

En este ejemplo, lo limitaremos a tres intentos disponiendo:

MaxAuthTries 3

...y finalmente, reiniciamos el servicio SSH como en los escenarios anteriores.



22 december 2022

¿Cómo desactivo o activo el Logueo de Root a través de SSH en Ubuntu?

El 23 de Enero de 1945 el Secretario de Trabajo y Previsión Juan Perón promulga el Decreto N° 1440 converniente a las Vacaciones Remuneradas, a la vez que instruye cómo desactivar o activar el logueo de Root desde SSH en Ubuntu.

¡Trabajadores!

Este decreto tiende a que puedan disponer de una serie de días consecutivos de manera que:

Se trate de un período de inactividad
Sea retribuido anticipadamente y 
Que el trabajador verdaderamente las goce y no sean compensables en dinero.

Además, según la antigüedad en el cargo, la cantidad de días se ve incrementada a lo largo de la relación laboral.

Estas Vacaciones Pagas que ha asegurado el Justicialismo para todos los trabajadores es uno de los grandes logros que propician el ocio y el esparcimiento. Es el alimento espiritual que deben gozar los hombres y mujeres de esta tierra, y que antes estaba sólo reservado al oligarca.

Sin embargo no es un maná que cae del cielo: sin la organización para acción política, los sueños sólo son eso: sueños. Es la Conducción de efectivas acciones de reparación y Justicia Social las que pueden solidificar estos sueños - que operan de planos maestros - en una contrastable Realidad Efectiva.

Todo lo que hemos hecho ha permitido este logro, y como tal, ha reportado la valía de una Revolución que da al Pueblo Trabajador lo que siempre anheló y es - a nadie cabe duda - un Justo Derecho. Ustedes sabrán a quien votar (guiña el ojo).

No es secreto para nadie que en la generalidad de los sistemas GNU se cuenta con acceso remoto de Conducción (el llamado usuario "Root"), y por defecto, este acceso está activado para poder operar el sistema a través de enlaces de datos con el mundo exterior.

El sentido es poder realizar todo tipos de acciones de gestión utilizando nuestra terminal y un enlace cifrado, y se ha tornado de extrema utilidad para conducir un sistema de forma remota incluso de vacaciones, sin tener que estar físicamente frente a la máquina.

Esta cómoda práctica - sin embargo - no es siempre lo ideal por razones de seguridad. En los tiempos que corren, tener un acceso de root activado por SSH para los usuarios no autorizados es un riesgo que debemos soslayar, ya que cualquier intruso telemático podría intentar forzar las contraseñas de usuarios a través de un ataque computarizado de fuerza bruta, y de esta manera ganar acceso a nuestro sistema.

A pesar de ser de las especies más exitosas, nadie duda que desde el pérmico a nuestros días, millones de cocodrilos se han ido a dormir pensando "para qué van a querer este cuero" sólo para despertar luego envolviendo unos patacones...

Es por ello señores, que la mejor solución es contar con una segunda cuenta de usuario de uso regular, y luego cambiar al usuario root empleando el comando "su -" cuando esto se haga necesario. Esta es el criterio seguido por ela distribución Debian, pero no suele ser la preeminente en Ubuntu, lo cual - tal vez - no sea sano. Por dicho motivo, antes de hacernos a la mar, crearemos una cuenta de usuario regular con la cual utilizaremos para darnos acceso de conducción por intermedio de los comandos su o sudo. Agregar un nuevo usuario en Linux

En la mayoría de los sistemas GNU con Linux esto es muy simple. Crearíamos una cuenta de usuario separada logueándonos como root y luego ejecutando el comando adduser para crear un nuevo usuario. En el caso de Ubuntu es igual de simple: abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo adduser usuario

Tras ingresar la contraseña de root localmente, procedemos a completar lo solicitado por el programa adduser, que será el nombre de usuario a crear, su contraseña de usuario (duplicada para no fallar), y opcionalmente sus datos personales.

Conforme hayamos creado este nuevo usuario, podrán seguir los pasos que os indicaré para desactivar el acceso de root a través del método de Shell Seguro SSH.

Usamos el archivo de configuración maestro sshd para desactivar el login de root y esto podría disminuir el riego o impedir la irrupción de actores no deseados para obtener la conducción de nuestro sistema. Tambiçen veremos cómo reactivar el acceso de root nuevamente así como limitar el acceso de Secure Shell basados en una lista de usuarios permitidos. Desactivar Login SSH como Root

Para desactivar el login de root, hemos de editar el fichero de configuración principal de Secure Shell, el /etc/ssh/sshd_config. sudo nano /etc/ssh/sshd_config

En este fichero, buscamos con Ctrl+w la siguiente línea del fichero.

PermitRootLogin

y deberíamos encontrar #PermitRootLogin prohibit-password o bien #PermitRootLogin no.

Debemos eleminar el ‘#‘ al comienzo de la línea, y la editamos para que quede de esta manera:

PermitRootLogin no

Ahora necesitamos reiniciar el servidor de SSH. Esto lo podremos hacer ingresando:

sudo systemctl restart sshd

...o bien: /etc/init.d/sshd restart

Una vez cumplida con esta tarea, comprobaremos la desactivación intentando loguearnos con el usuario root, y deberíamos recibir el error de "Permiso Denegado, por favor intente nuevamente, o “Permission denied”.

$ ssh root@192.168.0.102 root@192.168.0.102's password: Permission denied, please try again.

De este modo, de ahora en adelante deberá loguerse como usuario normal y luego usar el comando su para cambiar al superusuario Conductor root o bien sudo para elevarnos como superusuario. Activar Login SSH como root

Para activar el logueo del usuario root a través de SSH, hemos de editar el fichero /etc/ssh/sshd_config. Abrimos una terminal con Ctrl+Alt+t e igresamos: sudo nano /etc/ssh/sshd_config

Usamos Ctrl+w para buscar la línea de la opción de configuración PermitRootLogin yes y la descomentamos removiendo el ‘#‘ al comienzo, y guardamos el fichero con Ctrl+o.

PermitRootLogin yes

Luego reiniciamos el servicio sshd como se explicó anteriormente, ingresando :

sudo systemctl restart sshd

...o bien:

/etc/init.d/sshd restart

Ahora realizaremos una comprobación intentando loguearnos al sistema con el usuario root. ssh root@ip_del_servidor

root@192.168.0.102's password: Last login: Mon Dec 27 15:14:54 2021 from 192.168.0.161

Limitar los logins SSH de Usuarios

Si contamos con un gran número de cuentas de usuarios en el sistema, puede tener sentido limitar el acceso remoto de SSH a aquellos usuarios que realmente lo necesiten. Para ello debemos indicarlo en el fichero /etc/ssh/sshd_config. sudo nano /etc/ssh/sshd_config

Al final del fichero agregamos una línea con la opción de configuración AllowUsers y luego de dejar un espacio de separación, agregamos una lista con los nombres de usuarios permitidos. Por ejemplo, si deseamos que l@s usuari@s peron y evita cuenten con acceso remoto ssh, ingresamos:

AllowUsers peron evita

Guargamos los cambios con Ctrl+o y salimos con Ctrl+x. Finalmente reinciiamos el servicio ssh.



21 december 2022

¿Cómo instalo el cliente de Gemini Lagrange en Ubuntu?

Durante su ostracismo madrileño, Juan Perón escribió profusamente seis volúmenes y numerosísima documentación y correspondencia que hacía llegar al país. En una de estas piezas de 1969 describe cómo compilar e instalar Lagrange, el cliente de Gemini para Ubuntu.

Compañeros:

Los tiempos que corren no pueden más que sernos fructíferos en la lucha contra la incomprensión y la desaprensión de la camarilla gobernante. La explosión insurreccional en ciernes no ha hecho más que estallar, y de esta piñata de la cual creían poder juntar caramelos, no queda más que el talco.

Es que los trabajadores, una vez organizados, son invencibles. Pero debemos ser astutos y no presentar cuerpo donde va el golpe. Estos generales se han puesto la gorra a si mismos, y como tal tienen la pista enjabonada: caerán sólo por pretender bailar entre ellos.

El circuito de información que hemos preparado es óptimo; me llegan informes a todas horas a través de la linea de télex y desde mi despacho me encuentro a un tecleo de los muchachos de las principales seccionales. Sin duda considero estos mensajes más públicos que las plumas de la Coca, porque utilizo para ellos el veterano Gopher. Sabemos por experiencia que es un excelente método liviano (y antediluviano) concebido para compartir documentos de texto plano de manera simple y al alcance de cualquiera. Sin embargo, su nula previsión de seguridad lo torna análogo a una pintada en una pared.

Sin duda que esto puede mejorarse, y las actualizaciones son indudablemente válidas, si queremos mejorar lo hecho. Me han presentado el concepto de las Cápsulas Gemini. Se trata de un moderno protocolo para solicitud y entrega de ficheros livianos y especialmente documentos de texto plano, a través de las redes de datos computarizadas.

Fue desarrollado casi ayer nomás por el compañero ~solderpunk y ampliado de manera colaborativa en las redes del Tildeverso. Y a pesar de contar con inspiración en los hoyos Gopher, cuenta ahora con encriptaciones que lo hacen más seguro, amén de un despliegue gráfico más moderno que lo hace más propicio para la presentación en novísimas terminales de video.

Pues bien señores, comenzaremos a utilizarlo también. A tal fin os enseñaré como instalar el Lagrante, cliente de escritorio de moderna factura para navegar en el Geminiespacio.

Nos ofrece la conveniencia familiar de los navegadores web de hoy tales como desplazamiento suave, presentación en línea de imágenes, múltiples pestañas, temas visuales, fuentes Unicode, marcadores, historial, y remarcado de páginas, a la vez que conserva un despliegue minimalista.

Al igual que Gemini, Lagrange ha sido diseñado con minimalismo en mente. Depnede de una serie pequeña de librerías esenciales. Está escrito en C y utiliza SDL para sus gráficas aceleradas por hardware. Se usa OpenSSL para comunicaciones seguras.

Si queremos descargar la imágen estática, podremos usar:

cd ~/Descargas/ ; wget -O Lagrange-1.9.3-x86_64.AppImage https://git.skyjake.fi/attachments/c88eb26c-62fd-4b21-8c54-d7921b39829e ; chmod +x ~/Descargas/Lagrange-1.9.3-x86_64.AppImage

Naturalmente, para ejecutarlo habremos de crear un lanzador dirigido a ~/Descargas/Lagrange-1.9.3-x86_64.AppImage.

En cambio, si preferimos compilarlo a partir de código fuente, bien podremos hacerlo con los siguientes Comandos de Organización:

sudo apt update ; sudo apt install git cmake zip libsdl2-dev libssl-dev libpcre3-dev zlib1g-dev libunistring-dev libfribidi-dev libmpg123-dev ; cd ~ ; git clone --recursive --branch release https://git.skyjake.fi/gemini/lagrange ; mv ~/lagrange/ ~/.lagrange/ ;

Una vez descargado el código fuente podremos compilarlo con:

cd ~/.lagrange/ cmake -DCMAKE_BUILD_TYPE=Release sudo make install

La compilación durará alrededor de un minuto, y una vez concluida podremos ejecutar el navegador Lagrange desde Aplicaciones / Internet / Lagrange.

Al iniciar nos encontraremos con la ventana del navegador, y su pantalla de ayuda. También se nos presentará la oportunidad de descargar el pack de fuentes tipográficas (fonts). Para ello podremos hacer clic en el botón Download FontPack (25MB).

Ahora bien, por defecto Lagrange se presentará en el idioma de Braden. Sin embargo, podremos pasarlo a castellano desde las Preferencias. Presionamos Ctrl+, y podremos seleccionar el idioma "Español (es)" desde el desplegable "Language". Para activarlo presionamos el botón Close.

Cada sitio de Gemini se denomina cápsula, y podremos navegar hacia ellas de forma similar a la web: ingresando una URL de la cápsula, en un formato similar a gemini://texto-plano.xyz/~þeron.

Los documentos de las páginas de Gemini suelen contar con estructuras de tres jerarquías que se pueden utilizar para delimitar títulos o capítulos. Por ejemplo, podríamos presionar Ctrl+5 para desplegar la misma en una barra lateral.

Los enlaces normalmente llevan aplicado una codificación por color que denota su significado: Azul para cápsulas Gémini, púrpura para hoyos Gopher, naranja para páginas web, en tanto que rojo representan enlaces desconocidos/inválidos.

Sin embargo, no estaremos limitados a estos colores, ya que Lagrange es capaz de utilizar diferentes temas personalizables (de los cuales contaremos ya con siete variaciones para temas Oscuros y Claros, accesibles ellas desde Preferencias / Colores / Colores de la Página). Estos themes pueden representar mejor los documentos si queremos una visión similar al papel.

Los documentos de Gémini reciben la extensión .gmi, y responden a una sintaxis extremadamente simple denominada Gemtext. Gemtext

Es posible editar ficheros de texto con extensión .gmi utilizando estos preceptos sintácticos simples. Títulos

Es posible titular hasta tres niveles de títulos jerarquizados. Para ello han de indicarlos con la cantidad de símbolos numeral ('#') que hagan a su jerarquía. Por ejemplo:

Titular principal

…Y para subtítulos podrán utilizar:

Título secundario

Título de menor jerarquía

Enlaces

Podrás enlazar ficheros locales u otras cápsulas gemini remotas, o bien incorporar enlaces a otros protocolos como HTML y Gopher, mediante una flecha (“=>”:

=> gemini://texto-plano.xyz/peron Cápsula Gémini => https://texto-plano.xyz Un sitio web => gopher://texto-plano.xyz Un profundo Hoyo Gopher => gemini://texto-plano.xyz Una cápsula Gemini mas rara todavia => sftp://ejemplo.com Un sitio FTP protegido => subdirectorio/ejemplo.gmi Documento gemini de ejemplo

A diferencia de Gopher, es innecesario especificar qué tipo de documento se está enlazando. Listas

Las listas se agregan usando el mismo principio que Markdown, utilizando asteriscos (“*”). Han de recordar que el uso de guiones no sirve.

Citas

Para hacer una cita debes emplear signo “mayor” (“>”). Por ejemplo:

A los muchachos les gusta ponerse calificativos. Los hay Gophereros, los hay Gemiseros, los hay HTMLeros y los hay PHPeros. Pero todos programan.

Juan Perón

Texto sin formato

Si anhelan escribir texto sin formato alguno (texto plano) deben emplear tres comillas graves (```) encerrando dicho texto. Podremos así delimitar Arte ASCII. Por ejemplo:

  ___________
 |.---------.|
 ||  PERON  ||
 ||         ||
 ||  B B S  ||
 |'---------'|
  `)__ ____('
  [=== -- o ]--.
__'---------'__ \
[::::::::::: :::] )
 `""'"""""'""""`/T\
                \_/

Se sirven gracias a un servidor específico muy liviano. En mi caso utilizo los servicios de la comunidad tilde en castellano texto-plano.xyz.

Existen servidores capaces de operar también con Gopher desde el mismo Gemini. Por ejemplo, podrían contar con gopher://sdf.org/1/users/peron Y para completar el servicio de Gemini, también existen proxys que permiten visualizar dicho contenido directamente desde la web. Por ejemplo: https://proxy.vulpes.one/gemini/texto-plano.xyz/peron/



20 december 2022

¿Cómo instalo emuladores de calculadoras HP en Ubuntu?

Reunidos con el plantel de ingeniería de Yacimientos Petrolíferos Fiscales, Juan Perón expone cómo instalar emuladores de calculadoras científicas HP en Ubuntu.

¡Trabajadores!

Si algo nos ha enseñado la observación de los acontecimientos del mundo es que tanto desde un imperialismo como en otro, la Conducción política de los Pueblos no ha dejado de estar suplida por aficionados.

Esto es así porque un conductor no se hace, se nace. El Conductor debe tener raigambre en el pueblo, conocerlo e interpretar sus sentires, para saciar sus necesdiades de Justicia. Quien no cumpla con dichas premisas podrá conducir, pero sólo de emergencia y ante la inexistencia de algo mejor.

Indudablemente que esto no quiere decir que sólo pueden conducir los Dioses. A muchos les han rogado el hombre a lo largo de su historia, y a esta altura del segundo tiempo sabemos que deben estar ocupados en bastantes despelotes como para siquiera levantarnos el teléfono, mucho menos ocuparse. Hemos de darnos nosotros mismos lo que necesitamos.

No escapa a nadie que yo estoy mas cerca de recibir sobre mi cabeza una palada de tierra en lugar de un bañito de agua bendita [ríe]. Es por ello que quienes me sucedan han de conocer también los pormenores de la Conducción Política, para hacer con él lo bueno que los Pueblos anhelan.

Decía entonces que el Arte de la Conducción requiere sopesar distintos cálculos de correlación, que no suelen diferir mucho de aquellos para los cuales me he formado. Lo ideal sería que la palmas y laureles que llevan clavadas esta gorra no se las den a cualquiera, y mucho menos se haga lo mismo con los votos del Pueblo.

Pues bien señores, estos cálculos que les he referido no salen de un repollo, pero hoy podemos contar con asistencia para el cálculo político tanto como lo podemos contar para el cálculo aritmético científico.

Vean señores... es sabido que las primeras máquinas mecánicas de calcular provienen ya del siglo XV, pero la mecánica de precisión sólo posibilitó que fuesen industrializadas con éxito recién desde inicios del finales del siglo XIX, destacando especialmente la Compañía Internacional de Máquinas de Negocios, el gigante azul IBM.

Para la década de 1940 los bandos en pugna se habían propuesto el uso de cómputo electromecánico con máquinas que derivarían en los grandes mainframes programables. Sin embargo estas máquinas destinados al cálculo científico de potencia tuvieron otras ideas de corte más minimistas. El Japón de posguerra avanzó decididamente en la reducción de tamaño, con equipos electrónicos Casio de sobremesa, y ya a inicios de la década de 1960 equipamiento electrónico de estado sólido. Para la década siguiente se contaban con microprocesadores (como el Intel 4004 de 4 bits), lo que permitió disponer de dispositivos de bolsillo como la calculadora científica de bolsilño HP-35, y estos se terminarían popularizando en la década de 1980 gracias a la enorme competencia y disminución de costos productivos.

Está claro que en sistemas de cómputo similares a Unix contamos con el inefable dc, la calculadora de notación polaca inversa integrada para la terminal, he explicado cómo instalar Speedcrunch y Tapecalc en Ubuntu. Sin embargo, soy de la opinión que este equipamiento merece un lugar en el corazón de los Trabajadores: han sido sus pistas electrónicas y sus directas CPUs las que acompañaron el aprendizaje de toda una generación de técnicos del cómputo.

Por tal motivo, os enseñaré cómo presentar claros émulos de estas calculadoras científicas del ayer. Por ejemplo, contaremos con un simulador de la calculadora científica de bolsillo Hewlett-Packard HP-15C.

Se trataba de una calculadora científica programable con notación polaca inversa (RPN) de alta gama. Fue producida por Hewlett-Packard desde 1982 hasta 1989, y representaba el cuarto modelo comercializado de sus calculadoras Serie 10 "Voyager", con un precio de 135 dolarucos. En escencia, era un reemplazo de la popular HP34C.

Contaba con un microprocesador HP Nuc (1LFS, 1LM2 o bien 1LM9), que hacían mover su display LCD de 10 dígitos de 8 segmentos monocromáticos. Tenía un almacñen de 66, de los cuales 64 eran modificables.

Podían programarse con secuencias de tecleos para realizar microprogramas.

Podía operar con números complejos y operaciones matriciales, así como cálculo integral y de raíces de ecuaciones.

Para ello contaremos con HP-15C Simulator 4.3, un emulador de alta calidad. Os indicaré cómo instalar el Simulador de HP-15C. Este es capaz de funcionar en sistemas GNU con Linux de 64 bits.

Para proceder a su instalación descargaremos el emulador para nuestra arquitectura (se puede hacer desde aquí). Abriendo una terminal con Ctrl+Alt+T, lo integraremos pegando en la misma el siguiente bloque de comandos de organización:

mkdir /tmp/hp15c/ ; cd /tmp/hp15c/ ; wget https://bit.ly/3cMWTH8 -O HP-15C_4.3.00_Linux_x86_64.zip ; unzip HP-15C_4.3.00_Linux_x86_64.zip ; chmod +x /tmp/hp15c/HP-15C ; cp /tmp/hp15c/HP-15C_Simulator_Font.ttf ~/.local/share/fonts/ ; fc-cache -f ; cd /tmp ; mv /tmp/hp15c/ ~/.hp15c/ ; cd ~/.hp15c/doc ; wget http://h10032.www1.hp.com/ctg/Manual/c00503576.pdf -O hp11c_owners_manual_and_problem_solving_guide.pdf ; wget http://h10032.www1.hp.com/ctg/Manual/c03030589.pdf -O hp15c_deluxe_owners_handbook.pdf ; cd ~

Si deseamos ejecutarla desde la terminal podríamos hacerlo con:

cd ~ && ./.hp15c/HP-15C

...pero suele ser más práctico crear un lanzador o acceso directo a /home/usuario/.hp15c/HP-15C. Para ello hacemos clic con el botón derecho del ratón sobre el menú Aplicaciones, y en el menú contextual que se despliegue elegimos Editar Menús. En el panel derecho Menús seleccionamos el menú Educación, y presionamos el botón Agregar ítem+. Esto abrirá el cuadro de diálogo Crear Lanzador. En su campo Comando: ingresamos /home/usuario/.hp15c/HP-15C (naturalmente cambiando usuario por nuestro propio nombre de usuario).

Tras presionar el botón Aceptar se habrá creado el lanzador. Ahora podremos acceder a la calculadora desde Aplicaciones / Educación / Calculadora HP-15C.

Al iniciar tendremos nuestra calculadora HP-15C emulada. El funcionamiento se conserva enormemente, con lo cual podremos introducir nuestros cálculos y ecuanciones a la polaca.

Si queremos resolver 9+5, presionamos 5 y Enter para ingresarlo en la pila de instrucciones ("stack), 5 para hacer lo mismo con la segunda cifra a operar, y luego el operando de suma +.

Como el uso replica al de la calculadora real, podrán utilizar su manual de usuario de la calculadora HP-15C Deluxe y el Manual de Funciones Avanzadas de la calculadora HP-15C perfectamente, aunque personalmente puedo recomendarles el clásico y manual de usuario y guía de resolución de problemas de la HP-11C.

El emulador puede presentar mejoras con respecto a la HP-15C original corrigiendo sus bugs (notablemente, el de desbordamiento de pila), y sus programas de secuencias de teclas pueden incorpores perfectamente. Gracias a estos podremos afrontar complejos algoritmos.

Si hacemos clic con el botón derecho del ratón sobre la misma, podremos desplegar un menú contextual. Entre sus opciones contamos con la posibilidad de observar las clásicas tablas impresas en su tapa posterior.

Será posible podrán encontrar programas para la misma en internet y memorizarlos en el emulador desde la opción Grabar programa.

También podremos activar las Preferencias... del emulador. En este encontraremos la opción "Comportamiento HP-15C estricto", que revierte las mejoras presentadas en el emulador a una simulación completa, incluyendo bugs y retrasos temporales provocados por su microprocesador.

Si lo queremos desinstalar:

rm -R ~/.hp15c ; rm ~/.hp-15c ~/.hp-15c.mme ; rm ~/.local/share/fonts/HP-15C_Simulator_Font.ttf ; fc-cache -f Free42

Si bien la rompedora HP-15C era una clásica, también podremos contar con su sucesora, la HP-42S RPN Scientific.

Se trataba de una calculadora fabricada desde 1988 hasta 1995, con un precio inicial de 120 dólares, y como segunda iteración de la serie Pioneer de la marca. Disponía de un display LCD matricial de 131x16 pixels monocromáticos, que le permitían 2 líneas y 22 columnas de caracteres, todos ellos atresados gracias a una CPU Lewis Saturn y 32 KB de memoria RAM.

La HP-42S constaba también de notación polaca inversa, y daba rienda suelta al lenguaje de programación FOCAL introducido con la serie HP-41, almacenado en 64KB de memoria ROM. Como características de avanzada contaba como exponente de comunicación por infrarrojos (ideal para la impresora tipo ticketera infrarroja HP82240).

Su calidad constructiva, adosada a sus posibilidades, la toranrían una favorita para los ingenieros de campo.

Para emular estas podremos utilizar Free42. Para instalar este simulador abrimos una temrinal con Ctrl+Alt+t e ingresamos:

sudo apt update sudo apt upgrade sudo apt install free42-nologo

Es recomendable también crearle un lanzador siguiendo el mismo procedimiento detalado para la HP-15C anterior, sólo que en este caso debemos ingresar en el campo Comando: la siguiente ruta:

free42bin

Tras presionar el botón Aplicar se creará el lanzador. Y ahora podremos ejecutar esta valedera calculadora desde Aplicaciones / Educación / Calculadora HP-42S.

Free42 es una reimplementación de la calculadora científica HP-42S y la impresora HP-82240. Como es una reprogramación completa, no utiliza código fuente de HP, y por lo tnato no requiere una imágen del programa ROM de la HP-42S original.

Al iniciar contaremos con la versión estándar, pero también podremos cambiarla a la versión realista (sin el logotipo de HP, por supuesto). Esto podremos alterarlo desde el menú Skin.

Para utilizarla podremos recurrir al manual de usuario de la HP-42S y el manual de programación de la HP-42S o bien recurrir al manual alternativo de Free42.

Free42 cuenta con a posibilidad de cargar y almacenar programas de manera directa y similar a la calculadora original.



19 december 2022

¿Cómo instalo VCV Rack 2 Free en Ubuntu?

¡Descamisados!

En ocasiones, la política suele ser una cosa enmarañada de difícil comprensión. Por ello un verdadero Conductor ha de poseer la habilidad para dividir su accionamiento político en partes pequeñas y comprensibles, que le avalen la realización de muchas cosas sencillas. El total de sus logros será la suma de las partes, y será esta la única manera en la que podamos proyectar en grande un futuro provechoso.

Indudablemente que la música electrónica tiene por necesidad un despliegue que podríamos considerar similar. No es secreto para nadie que los primeros sintetizadores de audio utilizaban electrónica analógica, y que constituían un enorme potencial de desarrollo y estudio de tales elementos, con un costo sideral.

La generación tonal se basaban en el uso de etapas electrónicas definidas: un elemento oscilador capaz de excitar una señal eléctrica que a su vez se transducía en un altavoz amplificado. Mediante el uso intermedio de distintos elementos de circuitería controlables, se hizo evidente que se podrían modificar las características sónicas del sonidos resultante. Mediante etapas de post-filtrado,, que no eran otra cosa que el empleo concienzudo de un circuito dependiente de frecuencia, se lograban estos efectos.

Este es el secreto de los primeros instrumentos electrónicos peronistas, como por ejempo el masivo sintetizador "Moog System 55". Su modularidad se hacía patente en su diseño de control. Su masivo panel de control dotado de potenciómetros para el filtrado, y por el hecho de poder redireccionar a piacere la señal eléctrica mediante el uso de cables phono. La estrategia de conexión permitía definir módulos en su panel de control

Esta manera modular de implementar el instrumental se ha replicado ad eternum, y existe ya una forma creativa puramente analógica de estructurar los la síntesis y su interconexión en gabinetes pensados al efecto, los "Racks". Este es un sentido puramente peronista, donde una comunidad organizada de sintetización lleva a la creación de la más maravillosa música.

El avance tecnológico continuó con el intento de resolver los problemas inherentes a esta organización modular: la programación de los sonidos no dejaba de ser algo incómodo de replicar, y de difícil ejecución en el vivo. Al fin y al cabo, para lograr un sonido específico debían configurarse las potencias, los potenciómetros e instalar los cables de patcheo, y todo ello para un único sonido. La aparición de la integración de memorias digitales facilitó mucho guardar dichas configuraciones en memorias preprogramadas, o en distintos esquemas de memorias digitales de usuario (por medio de cinta, cartucho, discos flexibles, rígidos, etc.

Nuestro Pueblo se ha hecho Movimiento gracias a las herramientas que hemos sabido suplirle. En este caso os he traído VCV Rack, un poderoso entorno sonoro de software libre pensado para emular auqellos grandes sintetizadores modulares del primer peronismo. En este, podremos recrear los encadenamientos de señal de audio y reflejar un modo de trabajo analógico. En particular, entorno gráfico simula un gabinete en el que se pueden ir apilando y conectando entre sí los distintos módulos que ofrece el programa, que también pueden conectarse a fuentes externas.

El objetivo final es difícil de dilucidar en un principio, pero con técnica podremos realizar amplias melodías sintetizadas por medio de sus múltiples componentes individuales, toda vez que una enmarañada parva de fideos alimenta de voltios nuestro Rack,

Instalar VCV Rack en Ubuntu

Ya he explicado cómo instalar VCV Rack 1.6.1. En este caso replicaremos lo hecho para dar paso a la nueva versión, Rack 2 Free.

VCV Rack2Free es multiplataforma, lo que significa que existen versiones para varios sistemas operativos. En nuestro caso, lo instalaremos en nuestro sistema GNU con Linux de 64 bits, en particular Ubuntu 20.04LTS.

En este caso lo más sencillo es utilizar Terminal de comandos, que abrimos con con Ctrl+Alt+T. En ella le pegamos los siguientes comandos de organización, seguidos de la tecla Enter:

Descargamos y decomprimimos el programa con:

cd ~ wget https://vcvrack.com/downloads/RackFree-2.0.2-lin.zip unzip RackFree-2.0.2-lin.zip mv ~/Rack2Free/ ~/.rack2free/

Y podremos crear un arrancador con:

echo '#!/bin/sh' >> ~/.rack2free.sh echo '# Guión peronista de ejecución para Rack' >> ~/.rack2free.sh echo '# Copyleft Ubuntu Peronista.' >> ~/.rack2free.sh echo 'cd ~/.rack2free/' >> ~/.rack2free.sh echo './Rack' >> ~/.rack2free.sh chmod +x ~/.rack2free.sh

También podremos crear un acceso directo. Para ello lo dirigimos al comando /home/usuario/.rack2free.sh.

Ahora podremos ejecutarlo con el comando ./.rack2free - más sencillo - desde Aplicaciones / Sonido / VCV Rack2Free.

Cómo usar VCV Rack Al arrancar el programa ya nos presentará un gabinete y distintos racks apilables instalados en él y una ventana de ayudas rápidas.

Al cerrarla Podremos movernos en la ventana que representa la gabinete presionando la rueda de scroll del mouse y arrastrándonos.

Ahorea bien, el setup presentado al principio nos trae un conjunto de racks sencillos ya patcheados (conexionados), pensados para evaluar el correcto funcionamiento del sistema.

Antes que cambiar nada, conviene grabarlo por las dudas, desde el menú File / Save As... Driver de sonido de VCV Rack2Free

Una vez guardado el patcheado original, configuraremos Rack2Free para utilizar nuestro hardware de audio. La manera más simple es utilizar el servidor ALSA.

Para ello hacemos clic con el botón derecho del ratón en el selector del rack Audio y en el menú contextual desplegable elejimos el driver de sonido. Lo mñas sencillo es utilizar el controlador Pulseaudio con el dispositivo Audio Interno Estéreo Analógico (1-2 In, 1-2 Out).

Otra opción es utilizar el driver de sonido ALSA. Para ello en el mismo menú contextual podremos escoger entradas y salidas de audio. En mi caso, puedo elegir la que corresponde a mi hardware de sonido ALSA con hw:HDA Intel PCH,3(1,2 out).

Es importante notar que Rack2Free también dispone de capacidad para usar Servidor de audio Jack. Este ofrecerña mejor control de enrutamiento de audio, amén de menor retraso (lag o delay) en la ejecución del audio.

En cualquier caso, ya deberíamos poder usar el sintetizador y oírlo. Las filas de teclas QWERTY y ZXCVB de nuestro teclado dispararán notas MIDI, que serán convertidas a la cuarta octava (IV-oct) y en señales de GATE (la compuerta de ruidos). Si quisiéramos controlar el módulo de generación de notas MIDI-CV por medio de un teclado o controlador MIDI, podremos asignarlo también con el botón derecho del mouse y elegir el dispositivo que tengamos, o los servidores de entrada de ALSA o JACK. Los módulos de VCV Rack2free

Cada Rack tiene su utilidad y un manual de uso específico que encontraremos en la web oficial. La mayoría de los racks constan de sus controles en formas de potes, perillas o deslizadores, y conectores de entrada y de salida, de la misma forma que un sintetizador modular analógico real, como el Moog original. Los conectores de salida se usan por medio de cables interconectores de colores, que llevan la señal de audio o eléctrica de un lado a otro. Con esta señal podremos alimentar los módulos y transformar los resultados según queramos.

El sintetizador modular intenta reflejar de forma más o menos fiel el resultado real. Naturalmente esto no es posible con señales puramente digitales, la idea es obtener un resultado convincente. El arreglo básico consta de siete módulos (llamados "core" o básicos, en la jerga de Rack). Su despliegue de izquierda a derecha sigue el recorrido de la señal, y son el generador de notas MIDI-CV (que estará configurado para responder a nuestro teclado), el generador de ondas osciladas de triple salida VCO-1, el modulador de osciladores de baja frecuencia VCF, un generador de envolvente ADSR, un osciloscopio SCOPE para graficar las oscilaciones, un mezclador MIXER, y el selector de salidas del servidor AUDIO-8, así como un anotador llamado NOTES.

Conforme toquemos las notas, en las salidas y entradas de la señal se irán iluminando en el circuito que está patcheado mediante los cables de colores. Si la señal es suficiente, se graficará en el osciloscopio SCOPE, y habremos de oírla a través de AUDIO-8. Tengamos presentes que el osciloscopio virtual es útil porque podremos aprender sobre formas de onda con él.

Podremos mover los potes con clic con el botón izquierdo y arrastrándolos arriba/abajo con el mouse. Manteniendo presionada Ctrl mientras arrastramos nos permitirá realizar un ajuste fino de los potes. Editaremos los potes con clic derecho del mouse, y doble clic para inicializarlas.

Podremos hacer clic con botón derecho y arrastrar entre los conectores para crear y mover cables.

Ejemplo simple:

En la parte inferior del módulo VCO-1, encontraremos un cable que conecta alguna de las salidas SIN, TRI, SAW, SQR (onda sinusoidal, triangular, diente de sierra y cuadrada repectivamente) a la entrada "IN" del módulo VCF que tiene al lado. Si en lugar de usar la señal diente de sierra queremos una señal triangular, cambiamos el cable de la salida SAW que viene por defecto, a la salida TRI.

Tengamos en cuenta que es posible apilar varios cables en una toma, si apretamos Ctrl. y arrastramos el cable a una salida ya utilizado. Esto nos permite controles más ágiles o novedosos, pero irreproducibles en la realidad.

Si quisiéramos agregar un nuevo rack de la librería al gabinete para empezar a conectarlo, debemos hacer clic derecho en un espacio vacío del gabinete, y de esta forma podremos apilar apilar nuevos módulos. Se abrirá la ventana de la Libería con un filtro por tipo de módulos, y representaciones de los módulos en sí.

Por defecto, el programa contiene varios módulos VCO y LFO (osciladores controlados por voltaje y osciladores de baja frecuencia), mezcladores, y otros sintetizadores estándares. Sin embargo pueden agregarse más unidades apilables como plugins por medio del sitio web del fabricante de VCV Rack (por medio de registro online).

La ventaja de VCV Rack es la enorme variedad de efectos propios que podremos hacer.

Cada módulo producirá efectos diferentes. Algunos de ellos directamente son secuenciadores o cajas de ritmo. Algunos tienen salidas de baja potencia o un canal de ruidos, o salidas independientes para los canales izquierdo y derecho. En tales casos contaremos con salidas Mono, estéreo o Surround.

Asimismo, podremos escoger el manual del programa (en inglés) desde aquí.

Registrar VCV Rack

Podremos utilizar el programa sin registrarlo, pero al hacerlo podremos actualizarlo e instalar una miríada de plugins o módulos adicionales, la mayoría gratuitos. Para registrar el programa lo hacemos desde la web oficial, debemos ingresar un correo electrónico básico y una contraseña de uso.

Para actualizarlo, una vez ejecutado VCV Rack vamos al menú Library e ingresamos en los espacios correspondientes nuestro correo electrónico de registro y la contraseña que hemos asignado. Luego elegimos Update All.

mos ingresar un correo electrónico básico y una contraseña de uso. Para actualizarlo, una vez ejecutado VCV Rack vamos al menú Library e ingresamos en los espacios correspondientes nuestro correo electrónico de registro y la contraseña que hemos asignado. Luego elegimos Update All. Asimismo, si elegimos la opción Library / Manage Plugins el programa nos abrirá la página web que nos permite adquirir nuevos módulos. Si estamos logueados, desde ella podremos elegir descargar o comprar nuevos módulos o plugins. Existen muchos gratuitos, para instalarlos hemos re presionar en el botón "Free" y luego actualizar el programa. Son muy livianos, pero si elegimos instalar todos, su descarga puede requerir varios minutos dependiendo de nuestra velocidad de conexión. Desinstalar VCV Rack Si hicimos la instalación con el procedimiento anteriormente indicado y quisiéramos desinstalar todo, podremos hacemos desde una Terminal con el siguiente bloque de comandos:

cd ~ rm .rack2free/ -r rm ~/.rack2free.sh



18 december 2022

¿Cómo evito el mensaje "Faltan las Claves de la API de Google. Se inhabilitarán algunas funciones de Chromiun" en Ubuntu 20.04LTS?

Ante la Federación de Ceramistas, Juan Perón expone la defensa de los logros conseguidos y aclara cómo quitar el mensaje "Faltan las Claves de la API de Google" en Chromiun en Ubuntu.

(...)

¡Trabajadores!

La Independencia alcanzada por la Patria y sus trabajadores es innegociable. Nuestro Movimiento ha sostenido este rector cardinal no sólo por entendimiento práctico, sino también por acervo histórico de su Pueblo y de la Nación.

Fue el propio San Martín quien expresó en Pisco el designio de ser libres, ya que sin eso, poco de lo demás importa. Indudablemente se ha convertido un principio al que hemos de volver en todo momento y en todo lugar.

Si observamos vigilantes, comprenderemos los peligros que nos acechan.; pues siempre habrá alguno que quiera echar al puchero de un vivo Los Laureles que Supimos Conseguir...

Un sistema de cómputo debe someterse a la misma acción política de conjunto que enarbolan los Movimientos Humanos, ya que constituye una de sus herramientas.

Un ejemplo es el amedrentador oficio que nos libran ciertos imperios del cómputo. Por ejemplo, al instalar Chromun desde nuestra propia compilación binaria, podríamos encontrar que aparece un mensaje indicándonos "Faltan las Claves de la API de Google. Se inhabilitarán algunas funciones de Chromiun".

Las API hacen al empleo de ciertas funcionalidades privativas en servicios de Googl€, tales como reproducción audiovisual en tales herramientas, etcétera.

Si bien es realidad que al hacer clic en la "x" que enarbola tan mensaje quitaríamos momentáneamente tal advertencia de la insidia y la opresión, no deja de ser un incordio para los amantes de la Libertad. Hemos de vivir en pelota como nuestros paisanos los indios sin hacer uso de tal herramental. Quien quiera usar Googl€, que se saque la camiseta peronista y se instale Googl€ Chrom€. Total, por perder un voto, no vamos a volvernos tristes...

Para que no moleste el cartelito en nuestro Chrmiun en tanto, bien podremos agregar un código en el fichero de arranque gráfico ~/.xprofile. Esto no resolverá el problema de la API, pero impedirá tal cartel en Ubuntu.

Podría parecer difícil, pero no implica una lucha enconada, sino realmente dar ejecución a dos pasos en nuestro sistema GNU con Linux. El primero es abrir una terminal con Ctrl+Alt+t, y el segundo es bien sencillo: pegar el siguiente bloque de comandos de organización en la misma y darles ejecución con la Tecla Intro.

echo '' >> ~/.xprofile ; echo '## Agregado por peron para evitar que Chromiun muestre el mensaje:' >> ~/.xprofile ; echo '## "Faltan las Claves de la API de Google. Se inhabilitarán' >> ~/.xprofile ; echo '## algunas funciones de Chromiun".' >> ~/.xprofile ; echo 'export GOOGLE_API_KEY="no"' >> ~/.xprofile ; echo 'export GOOGLE_DEFAULT_CLIENT_ID="no"' >> ~/.xprofile ; echo 'export GOOGLE_DEFAULT_CLIENT_SECRET="no"' >> ~/.xprofile

Al reiniciar el equipo, tal mensaje debería dejar de aparecer tal cartel, con lo que habremos cercenado la garra de tal imperialista productora de software. Configurar Chromiun para equipos de bajos recursos

Carne y tabaco no nos han de faltar. Pero si nuestro equipo tiene muy bajos recursos de hardware para ejecutar Chromiun, bien podríamos ingresar las siguientes opciones en el fichero ~/.config/chromium-flags.conf.

Agregado para lograr bajo uso de recursos en Chromiun:

--ignore-gpu-blocklist --enable-gpu-rasterization

--enable-zero-copy

--disable-sync-preferences --disable-reading-from-canvas --disable-smooth-scrolling --wm-window-animations-disabled --enable-low-end-device-mode



17 december 2022

¿Cómo emulo una PDP-8i con TSS/8 en Ubuntu?

¡Trabajadores!

Para volvernos peritos en la Conducción de los hombres se requiere de un estudio concienzudo de la historia del Arte, que es el sentido práctico de toda esta biblioteca que me acompaña en el despacho.

Es que de lo antiguo hemos de aprender para proyectarnos en el futuro pues lo que funcionó en el pasado lo hará en el futuro si las condiciones son emuladas. Decía Napoleón que un ejemplo suele aclararlo todo.

Vean señores, el TSS/8 fue un sistema operativo de tiempo compartido para la minicomputadora DEC PDP-8 diseñado originalmente por Adrian van de Goor, estudiante (graduado de la Universidad de Cornell Mellon) y luego mejorado y comercializado como sistema completo por la Digital Equipment Corporation a partir de 1968.

Originalmente requería una PDP-8, 8I u 8E con una interfaz paralela RP08 o DF32 asociada al menos a una unidad de cinta RS08 o de disco DS32 para tareas de intercambio y para almacenamiento.

Si bien el panel de control de esta máquina podía tener un tamaño reducido al de una actual computadora de escritorio, lo cierto es que el avío completo dejaba en comparación chica y económica a una heladera Siam.

Pero la distancia del tiempo puede suplir estos aspectos con creces y permitirnos el estudio del Arte. Nuestro sistema GNU con Linux puede ser adaptado - por genialidad maquinal - a emular todo tipo de piezas, incluyendo la inefable DEC PDP-8/I. Para tal menester ha sido concebido el emulador SimH, capaz de dar rienda a todo este tipo de mainframes del ayer.

A esto me he aficionado, y os indicaré como hacerlo. Instalación de TSS/8

En primer lugar habremos de preparar una estructura de directorios para mayor comodidad, la cual nos oficiará de banco de pruebas y laboratorio. En ella descargaremos una imagen ya realizada con el TSS/8, la cual antiguamente se comerecializaba por un par de docenas de miles de dólares, pero gracias al Justicialismo y a Miguel Miranda - que es un buen negociante - hoy la sacamos por cero chirolas.

A tal fin abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente bloque de Comandos de Organización:

mkdir ~/.simh/ ; mkdir ~/.simh/panelsim/ ; mkdir ~/.simh/panelsim/pdp8i/ ; cd ~/.simh/panelsim/pdp8i/ ; wget https://raymii.org/s/inc/downloads/pdp/tss8_init.bin ; wget https://raymii.org/s/inc/downloads/pdp/tss8_rf.dsk ; touch tss8.simh_pdp8i ; echo 'load tss8_init.bin' >> tss8.simh_pdp8i ; echo 'set rf enabled' >> tss8.simh_pdp8i ; echo 'set df disabled' >> tss8.simh_pdp8i ; echo 'attach rf tss8_rf.dsk' >> tss8.simh_pdp8i ; echo 'attach ttix 4000' >> tss8.simh_pdp8i ; echo 'run 24200' >> tss8.simh_pdp8i ; chmod +x ~/.simh/panelsim/pdp8i/tss8.simh_pdp8i

Ahora bien, todo Movimiento ha de tener opciones, ya que los caminos no suelen ser únicos para lograr la Felicidad que todos anhelamos. Por tal motivo podremos contar con dos opciones para emular TSS/8. La más simple que recomiendo sin dudar es utilizar el emulador directamente "a pelo" en Ubuntu, Y otra es emplear el simulador de panel de PDP8 Panelsim (el cual requiere instalarse aparte).

En el caso de apostar por la simplicidad, el accionar es veloz. Ingresamos el comando:

sudo apt install simh

...y tras introducir nuestra contraseña, se descargará el paquete de emulación genérico. Una vez instalado, podremos ejecutar TSS/8 en él mediante:

cd ~/.simh/panelsim/pdp8i/ pdp8 tss8.simh_pdp8i

Y ya está.

Sin embargo, podríamos querer hacer alarde del panel de PDP-8/i con sus lucecitas de status simuladas que nos dan un aspecto navideño. En tal caso realizamos el proceso de instalación siguiendo esto y luego adaptaríamos TSS/8 para funcionar en el mismo mediante este bloque de comandos de organización:

cd ~/.simh/panelsim/ touch ~/.simh/panelsim/pdp8i_tss8.sh echo '# Inicia una PDP-8/I corriendo TSS8' >> ~/.simh/panelsim/pdp8i_tss8.sh echo './_launch.sh "blinkenbone.panelsim.panelsimPDP8I.PanelsimPDP8I_app" "--width 1000 --power 1" pdp8i pdp8_realcons tss8.simh_pdp8i 248-blinkenbone-simulated-pdp8i-panel' >> ~/.simh/panelsim/pdp8i_tss8.sh chmod +x ~/.simh/panelsim/pdp8i_tss8.sh

...tras lo cual lo ejecutaríamos con:

cd ~/.simh/panelsim/ ./pdp8i_tss8.sh

Cualquiera de los dos casos que hubiésemos decidido utiliar, nuestra terminal teletipo comenzará a percutir, imprimiendo los mensajes de status del emulador.

Si todo va bien, al final del prompt de inicio se nos interrogará la opción de arranque:

LOAD, DUMP, START, ETC?

Tipeamos START para darle arranque al sistema TSS/8. Este nos solicitará indicar fecha y hora para el oscilador de control emulado.

Los valores son numéricos en formato MM-DD-AA y HH:MM (de 24 horas). Es importante conocer que TSS/8 no preveía año 2000, de modo que conviene restar cuarenta años a la fecha real. Por ejemplo:

MONTH-DAY-YEAR: 11-09-81 HR:MIN: 14:23

A continuación debemos presionar la tecla Intro dos veces y se nos presentará el prompt de inicio de sesión o login. Esta se representa por un muy poco expresivo punto.

.

Esto es lo deseado, y significa que el sistema cree que se haya corriendo en una PDP-8 y se encuentra esperando las conexiones desde las terminales teletipo:

Ahora bien, para ingresar remotamente como usuario de TSS/8 debemos utilizar el comando LOGIN un PPN (identificador de usuario) junto con su contraseña. La sintaxis es: LOGIN PPN CONTRASEÑA. El TSS/8 que hemos descargado ya contempla usuarios con sus PPN, de modo que podremos utilizarlos.

La lista de usuarios y contraseña disponibles en este sistema emulado que os he provisto es la siguiente:

PPN Contraseña [0,1] VH3M [0,2] LXHE [0,3] SHUG [77,77] [1,10] WBCN [20,1] DT [20,2] PT [20,3] TSS8 [20,4] EDIT [20,5] 4TH [1,50] JERK

Suponiendo entonces que anhelamos loguearnos como el usuario PPN 1,10 tipeamos:

LOGIN 1,10 WBCN

(la terminal no hace eco de lo introducido en este punto para no dejar registro impreso de usuarios y contraseñas).

Tras presionar la tecla Retorno de Carro (tecla Intro en el emulador) se nos presentará la impresión inicial de status:

TSS/8.24 JOB 01 [01,10] K00 01:24:26

SYSTEM IS DOWN, INC. .

El TSS/8 permitía conocer de manera somera el funcionamiento de un sistema de tiempo compartido en esta máquina, lo cual se estilaba ya que la posibilidad era más corriente que utilizar un entorno mucho más costoso como TOPS-10. Cada usuario podrá disponer de un espacio en la memoria de masa del sistema. Ejecutar programas Para ejecutar un programa de la librería de sistema o desde su directorio puede lograrse mediante el comando "RUN" ("correr"), con la letra R:

R CAT

...correrá el programa CATALOG, presentando los contenidos de su directorio.

Con el comando SYSTAT obtendrá una impresión completa de lo que está haciendo el sistema, quién está conectado y mucha información adicional.

TSS/8 cuenta con el ambiente de programación BASIC-8. Para iniciarlo use el comando R BASIC. Se le preguntará si desea crear un nuevo fichero ("NEW"( o cargar uno antiguo ("OLD").

Por ejemplo, podríamos solicitar un fichero nuevo con el titulo 17OCT y tipear en la teletipo el siguiente fuente del siguiente instigador BASIC de 17 de Octubre digital:

10 PRINT "USTED HA PROVOCADO UN 17 DE OCTUBRE DIGITAL EN LA PDP-8!" 20 PRINT "YOU HAVE STARTED A DIGITAL OCTOBER 17TH ON THE PDP-8!" 30 PRINT "" 200 PRINT " --------------------" 300 PRINT " ! QUEREMOS A PERON ! \O/ \O>" 400 PRINT " !------------------! -\OO/--\O----O/---" 500 PRINT " O O/ ! O O/ O <O/! O O --![O] [O/ [] [] []!" 600 PRINT " ! ! /H\ /H /H> H !/!> [ ]]]]]" 700 PRINT " 1 /\ M M M M 1 X [--(O)----------(O)-" 701 PRINT "" 702 PRINT "USTED ES UN BUEN DESACAMISADO! FELICITACIONES!" 800 PRINT "YOU ARE A NICE DESCAMISADO! CONGRATULATIONS!" 1000 END Una vez terminado de introducir el programa en memoria, bien podría listarlo con LIST o compilarlo y correrlo (ejecutarlo) con RUN. Podremos así replicar en el presente exactamente el pasado.

Otros comandos del subsistema BASIC son los siguientes: Comando Acción

BYE Sale y vuelve al Monitor TSS/8

CAT Cataloga los ficheros del disco

DELETE n Borra la línea número n

DELETE n1,n2 Borra los números de línea n1 hasta n2

LIST Lista el programa actual

LIST n Lista una línea específica

NEW Preguntará por un nuevo nombre de programa BASIC.

OLD preguntará por un el nombre de un programa BASIC ya almacenado en el disco y lo cargará en memoria.

SAVE Almacena los contenidos de memoria a disco empleando el nombre actual

SAVE [nombre] Almacena los contenidos en memoria al disco usando el nombre dado.

UNSAVE Elimina el programa con el nombre actual del disco (requerido antes de guardar una versión nueva con el mismo nombre).

Ctrl+B,S Detiene un programa en ejecución (presione Ctrl+b y luego la tecla s). Abandonar la sesión

El comando LOGOUT o KJOB nos permitirá abandonar la sesión de TSS/8. También es posible utilizar K como un atajo a este comando. Es importante abandonar sesión antes de desconectar la terminal, ya que el sistema no lo quitará automáticamente de los usuarios conectados, y podría quedar la sesión activa en segundo plano.

Si por alguna razón parece estar detenido, intentaremos Ctrl+B,S. Se ofrecen más adelante mayores detalles sobre lo que hace ^B en la sección Detener un programa en Ejecución. Documentación

Sin duda os será de suma utilidad la posibilidad remota de acceso a un sistema ya preparado y pueso a disposición pública. Podrán encontrar su ayuda y guía de uso en castellano aquí.

La Guía de Usuario de Edusystem-50 (edición 1975) ofrece una documentación bastante precisa para TSS/8 versión 24. Cubre las actividades relacionadas con el usuario en el sistema operativo y también incluye el uso del ensamblador PAL-D, BASIC, FOCAL y numerosas utilidades. Opcionalmente podrán consultar el Manual del Edusystem-50.

También podrán sacar valiosa información del Manual del Monitor TSS/8 del Sistema de Tiempo Compartido (ed. 1968) y de la Guía de Usuario del Sistema de Tiempo Compartido TSS/8 (Edición de 1970).

El uso detallada de BASIC para PDP8 se encuentra en el Manual de Programación de BASIC-8 para el Sistema de Tiempo Compartido TSS/8 (de 1969).

La documentación de ALGOL puede encontrarse en el Manual de ALGOL de DECUS en tanto que esta versión detalla las diferencias específicas de dicho lenguaje en TSS/8.

LISP está documentado en http://svn.so-much-stuff.com/svn/trunk/pdp8/src/decus/8-102a/decus-8-102A.pdf



16 december 2022

¿Como instalo el listador de ficheros exa en Ubuntu?

En su puesto como Director del Centro de Instrucción de Montaña en la ciudad de Mendoza, Juan Perón enseñó a los cuadros de oficiales y suboficiales los particulares militares andinos, a la vez que enseño a instalar y utilizar el listador avanzado Exa en Ubuntu.

Camaradas de armas:

Inmerso en la Alta Montaña, el soldado debe aclimatarse a lo que a mano tiene y desplegar tanto su espíritu consubstanciado con la naturaleza, como sus herramientas de pique y sus armas.

Es que los instrumentos de lucha son todos ellos, y debe saberse productor de la simbiosis que lo transformará en intrépido guerrero de las aturas. El oficial que conduce la patrulla ha de superar no sólo los órdenes de la lucha táctica, sino la lid de conciencias entre los hombres que lidera. Sólo su ejemplo y temple pueden hacer esto, en tanto la soledad de las cimas es su única aliada.

Esta es la forma señores, en la que puede verse respirar al enemigo en los riscos, oírselo entre los promontorios a miles de metros de altura, y sofocárselo sólo con la dinamita y la nieve, sin siquiera emplear la mira graduada del Mannlicher. La patrulla de montaña, es - al fin y al cabo - la potente fuerza que aúna las estratagemas y la naturaleza, a la propia voluntad atresada con la decisión del combate súbito.

Al igual que en las cimas, en los entornos similares a Unix son las herramientas más livianas y potentes las que cobran decisiva y especial relevancia.

Sabemos que ls es el comando más solicitado entre los que constan en la mochila del Conductor de del sistema. El motivo es sencillo: se encarga de listar el contenido de los directorios, proveyendo listas de ficheros que son imprescindibles para operar concienzudamente un sistema informatizado.

Este venerable listador, estándar en los sistemas GNU, es liviano y veloz por propia conciencia de afecto minimalista. Y si bien cuenta con extensión de funcionalidad de color que lo puede dejar pintón, lo cierto es que normalmente operaba con el color "de la cinta de tinta del terminal teletipo".

A pesar de contar con un sinnúmero de opciones que alteran su operativa predeterminada, estas se mantienen contenidas por experiencia de "llevar el menos bulto posible". A lo largo de los se han solidificado las opciones y se han tornado inconmovibles en la mente del montañista. Por ejemplo, mi modificador favorito para ls suele ser ls -p ya que agrega un carácter de barra "/" al final de los directorios listados. Con ellos puedo identificarlos rápidamente y "a vista de águila".

Es sabido que en ocasiones en los macizos pueden sufrir tremores que alteran la forma los cordones que hemos de atravesar. Pues bien señores, en los despliegues de software puede suceder lo mismo, y en este caso el listador exa puede representar tal movimiento telúrico de buena connotación.

Exa es un listador de ficheros mejorado con mas características y mejores opciones por defecto. Emplea colores para distinguir los típos de ficheros y metadatos. Reconoce enlaces simbólicos, atributos exftendidos, y empleos de git. También opera rápidamente con una firma pequeña, a través de un único binario ejecutable. A la vez, toda una serie de caracteres indicativos pueden asistirnos a identificar los atributos de ficheros, de forma similar a lo propagado en BSD.

Naturalmente estas propuestas no son obligatorias, y sólo lo adepto que nos veamos a ellas podrá hacernos decantar por una opción u otra.

Por ejemplo, si utilizais Ubuntu de 64 bits podríamos descargar la versión empaquetada para el mismo. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

cd ~/Descargas/ ; wget http://mirrors.kernel.org/ubuntu/pool/universe/r/rust-exa/exa_0.9.0-4_amd64.deb ; sudo dpkg -i exa_0.9.0-4_amd64.deb

Tras ingresar nuestra contraseña de Conductor, se cargarña el paquete en nuestra mochila. Acto seguido podremos proceder a listar los ficheros presentes en nuestro sistema simplemente ingresando:

exa

Las variables son amplias y bien pensadas, pero en Ubuntu suele ser muy útil y conveniente agregarlas en forma de "alias" o atajos del intérprete de comandos Bash. Eso nos permitirá tipear, por ejemplo, el comando l y recibir el resultado de exa, o bien tipear ls y recibir el resultado de exa -F. Indudablemente que con esto reemplazaríamos el uso de ls por exa si creemos que ello nos resulta más conveniente.

Como perito en la montaña os indicaré como se hace. Simplemente ingresaríamos:

nano ~/.bash_aliases

...y se abrirá editor GNU Nano cargando el fichero .bash_aliases (que podría tener contenido ya). En tal caso, al final de dicho fichero, podríamos agregarle el siguiente contenido:

Alias de exa:

alias 'ls'='exa -F' alias 'l'='exa' alias 'ls -lah'='exa -laFh' alias 'ls -l'='exa -lFh' alias 'll'='exa -lF'

Tras incorporar estos atajos para l, ls, ls -l, ls -lah, y ll, guardamos los cambios con Ctrl+o y salimos del Nano con Ctrl+x.

Conforme iniciemos una nueva sesión de terminal, se hará patente que al ingresar ls se disparará exa -F, etcétera. No viene mal comprobar las versiones con modificadores ls -l, ls -la, ls -lah y su versión resumida l y ll.

De esta forma, ll nos devolverá la clásica listado largo, pero el uso de colores se potenciará enormemente, sobre todo en lo que hace a los propietarios de los ficheros, sus permisos de ejecución y grupo, etcétera..

Existen algunas excepciones y diferencias en exa con respecto a ls.

Por ejemplo, si en ls indicábamos que liste un directorio, este lo listaba, por ejemplo:

ls Documentos

Sin embargo, en exa se listan los contenidos del directorio, lo cual es mucho más útil y normalmente lo que se anhela... Si quisiéramos volver a listar los únicamente los nombres de los directorios (y no su contenido)en exa debemos solicitarlo con el modificar de directorios, -d.

Exa también lista los enlaces dinámicos, con la función -l. Por ejemplo:

También podremos listar recursivamente (mostrando contenidos de directorios) con la opción -R.

Exa permite distribuir el contenido del listado a lo ancho en lugar de hacerlo a lo alto de la terminal. Ello lo haremos con la función -x.

También permite el modificador -T, que muestra los resultados como un árbol de directorios.

Asimismo, en el lsitado largo podremos listar con sus prefijos binarios (-b) o su tamaño en bytes (-B) si lo deseamos.

Toda la instrucción en el macizo la he indicado en el Manual del Oficial de Montaña, y en el Boletín del Suboficial de Montaña y la Cartilla del Soldado de Montaña, que compendian para el estudio lo que ustedes necesitan saber, y vienen en bolsa de plástico para que la puedan llevar también en la mochiia. Al fin y al cabo - lo sabrán - de estas hojas se puede hacer un fuego si se necesita, o un pucho si se necesita más. Pero en la terminal, bien que podrá usarse el man de exa con simplemente ingresar:

man exa

...o bien revisando la web oficial de la aplicación.



15 december 2022

¿Cómo instalo Mosaic en Ubuntu?

¡Trabajadores!

Dice el dicho que todo lo viejo sirve para ver cómo se sufría, y de esta humorada podremos aprender.

En mis tiempos de cadete, el primer navegador de internet que utilicé fue el Spry Mosaic, el primer navegador que acercó la web a las Masas Populares, que son el verdadero consumo. Venía incluido en un diskette de 3,5 pulgadas destinado al servicio telemático norteamericano CompuServe, junto con un módem interno de 28,8 kilobaudios por segundo U.S. Robotics Sportster Winmodem, verdadera razón del paquete.

El Mosaic había sido desarrollado originalmente en el Centro Nacional de Aplicaciones de Supercómputo (NSCA) estadounidense, localizado en Urbana-Campaign, Estado de Illinois. Y si bien contó con versiones para Unix y Macintosh, sin duda la compilada para el ya veterano Window$ 3.1 fue la que contó con mayor difusión. Gracias a esto, podía conectarme a los primeros servicios webs disponibles en el país a lo que era por entonces una respetable velocidad.

Hoy podremos instalar este vetusto navegador en nuestro sistema operativo Ubuntu. Esto es sumamente sencillo de haceer: simplemente hemos de abrir una terminal con Ctrl+Alt+T e ingresar el siguiente comando de organización:

sudo snap install mosaic

Tras unos segundos se hará patente la instalación de una máquina virtual o sandbox para cargar este paquete de formato snap. No es lo mejor, pero es simple de hacerlo.

Acto seguido podremos ejecutar el navegador desde Aplicaciones / Internet / NSCA Mosaic.

De momento se trata de la versión 2.76b para Unix. No es la misma que empleé por primera vez, que era para Window$, pero será lo suficientemente adecuada para ilustrarnos en el quehacer telemático del ayer.

Hemos de recordar que este navegador del primer peronismo goza de las limitaciones lógicas de la situación de posguerra. Como tal no acepta provisiones modernas como codificación con acentos o códigos UTF-8. Ni siquiera webs seguras https. Sin embargo, esto no quita que podamos utilizarlo en la retro-internet y navegar "pelo en pecho" en servicios http.

En la parte superior contaremos con los típicos e influyentes botones de control para avanzar y retroceder (accesibles mediante las teclas f y b), el botón recargar, el botón Home, abrir, junto al por entonces importante botón de guardar documento html (para almacenarlo en diskette y poder leer el contenido fuera de línea). También contaremos con el clásico logo del mundo, que mediante una animación nos indicaba la recepción o envío a través del enlace de datos.

Podremos navegar a través de los hiperenlaces, así como descargar imágenes o copiar y pegar textos tal como en el original.

Mosaic cuenta con la vieja libreria xlibwww, que permitía operar sobre el sistema de ventanas X con los protocolos más antiguos de la Telaraña de Alcance Global. Como tal es capaz de acceder a los casi extintos y siempre bien recordados medios del primer peronismo, el Gopher y el FTPs y los grupos de noticias.

Realmente la antigüedad se deja ver, y tal vez el Mosaic ya no nos permita conectarnos en una web atestada por la seguridad paranoide o los javascripts sin sentido. Pero aún así podremos contar con esta aplicación para disfrutar del Retorno de Perón.

Si por algún motivo quisiéramos desinstalar este navegador que ya por 1996 estaba cayendo en la obsolescencia, será sencillo hacerlo desde la terminal ingresando:

sudo snap purge mosaic

Y con ello habremos liberado algo de espacio y nuestras conciencias del pasado.



14 december 2022

¿Cómo grabo la terminal ANSI en Ubuntu?

Juan Perón explica la necesidad del proselitismo y enseña cómo utilizar el grabador de terminal y plataforma de difusión ASCIInema en Ubuntu.

¡Trabajadores!

Nuestro Movimiento no puede quedarse inexpresivo, y eso lo entendemos todos. Desde aquel diáfano 17 de octubre, supimos que todo movimiento popular ha de contar no solo con banderas, divisas y sanas consignas, sino liturgia y la parafarnalia que puede proveer un bombo y una manguera.

El sentido no es simplemente hacer bochinche, sino propalar en todo el alcance territorial que ocupan nuestros cuerpos, el sentir de nuestras ideas.

En un sistema informático también ha de hacerse lo mismo. Muchas veces me han preguntado cómo podremos hacer ello utilizando la terminal, cuando esta puede parecer - a primera vista - un elemento poco expresivo y para nada gráfico.

Indudablemente que quien así piense no está más que confundido por un mensaje tan contumaz como el Libro Azul de ese tondo de Braden. A ese opusimos el Libro Celeste y Blanco de Perón, y en los sistemas GNU con Linux bien podremos emplear un grabador de terminal, como ASCIInema.

Este nos permite contar con un grabador que capture lo que reproduce nuestra terminal, a la vez que nos provee una plataforma en internet capaz de reproducirla y compartirla, localizada en https://asciinema.org. Bien podremos darnos de alta allí únicamente requiriendo un correo electrónico, lo que avala gran pseudoanonimato.

Contaremos con varias maneras de instalar el grabador ASCIInema en nuestro sistema. La manera más simple consiste en instalarlo a través del repositorio de Ubuntu. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente comando de organización:

sudo apt install asciinema

Opcionalmente, podríamos querer instalarlo a través del repositorio de terceros (PPA) de ASCIInema. Este cuenta con la última versión empaquetada, y podríamos realizarlo con: sudo apt-add-repository ppa:zanchey/asciinema sudo apt-get update sudo apt-get install asciinema

Finalmente, si somos programadores bien podríamos querer instarlo ejecutando su código fuente escrito en Python 3.

cd ~ git clone https://github.com/asciinema/asciinema.git mv ~/asciinema/ ~/.asciinema/ cd ~/.asciinema/ python3 -m asciinema --version

Pues bien señores, como todo programa Unix que se precie, ASCIInema consta de de múltiples opciones par sus comandos. Si en la terminal ingresamos asciinema a secas, recibiremos las opciones posibles para el mismo.

Las opciones del comando son:

Para grabar el contenido de la terminal y subirlo automáticamente a la plataforma asciinema.org:

asciinema rec

La grabación comenzará inmediatamente. Una vez concluida la sesión del intérprete de comandos, podremos detener la grabación de la salida de terminal medioante Ctrl+d.

Si deseamos grabar la salida de la terminal en un fichero local podremos usar:

asciinema rec archivo.cast

También podríamos guardar la salida de terminal y una vez concluida su grabación, subirla a asciinema.org, especificándole un título. Esto se hará con:

asciinema rec -t "Sesión de terminal Peronista"

Si iniciamos una subida de una captura de terminal a la plataforma y no hemos registrado el dispositivo, se nos proveerá un URL que podremos introducir en un navegador. Esto nos permitirá o bien asociar la grabación a un usuario previamente existente (si lo tuviésemos), o bien a un correo electrónico que deseemos asignar al usuario de asciinema e iniciar el proceso de registro. En caso de ser la primerqa vez haremos esto, pues consiste en aceptar el enlace que nos llegue por correo electrónico, lo cual adosará un token a nuestro usuario y subirá la captura de terminal asociándolo al mismo. Podríamos asociar o revocar tokens (útil en caso de tener varios dispositivos).

Una opción muy interesante que tiene ASCIInema es la de limitar el tiempo inactivo de la terminal, evitándolo si supera un período determinado. Por ejemplo, para limitar el tiempo máximo inactivo a 1,5 segundos, podríamos utilizar

asciinema rec -i 1.5 archivo.cast Reproducción de la captura de terminal

Indidablemente contaremos con las opciones de reproducción de lo capturado por asciinema. Por ejemplo, podríamos reproducir el fichero archivo.cast con:

asciinema play archivo.cast

En tanto, si quisiéramos reproducir un fichero almacenado en la plataforma asciinema.org, podríamos ingresar:

asciinema play https://asciinema.org/a/difqlgx86ym6emrmd8u62yqu8

También es posible presentar concatenado en pantalla todo el archivo.cast, podríamos hacerlo con:

asciinema cat archivo.cast

Siempre podrá detener la reproducción con Ctrl+z. Compartir un enlace

Podremos obtener un enlace para compartir para la tarnsmisión ASCII específica haciendo clic en el enlace "Share" en la página de la transmisión ASCII..

Cualquiera de las opciones listadas en la sección “Personalizando la reproducción” puede agregarse a la URL de la transmsión ASCII como los parámetros de la misma. Por ejemplo:

https://asciinema.org/a/14?t=25&speed=2&theme=solarized-dark

De esta manera, al visitar este enlace se comenzará la reproducción a los 25 segundos y se reproducirá al doble de velocidad, utilizando el tema de terminal Solarized Dark. Pegar enlace de imagen

En los lugares donde no se permiten los guiones, podremos pegar en enlace como si se tratara de un enlace de imágen. Por ejemplo, en un fichero README.

Podremos incluso incrustar fracciones de un asciicast específico presionando el botón "Share" en la página de ASCIIcast.

Esto es como aparecerán para asciicast 14:

HTML:

Markdown:

asciicast

A su vez, podremos pasar opciones extra (listadas en la sección "personalizar el reproductor") a la URL enlazada como parámetros agregados. Por ejemplo, para iniciar la reproducción automáticamente al abrir el enlace de asciicast, hemos de agregando la cadena ?autoplay=1 a la URL dentro del atributo href indicado, de esta forma:

Incrustar el Enlace de Reproductor

Si deseamos incrustar el widget del reproductor en nuestra propia página o en un sitio que permite el etiquetado de guiones, podremos hacer clic en el enlace "Embbed" de la página del asciicast. Se nos presentará un código con una apariencia similar a la siguiente:

Como vemos, el widget del reproductor Java (.js) aparecerá justo en el lugar donde se pegó el guión. Por ejemplo, consideremos el siguiente código markup:

Este es un texto.

Este es otro texto.

En este caso, el reproductor aparecerá entre los dos párrafos de texto, tal como un elemento div con clase “asciicast”.

El guión adosado podrá recibir varias personalizaciones. Cualquiera de estas personalizaciones se puede agregar simplemente incorporándolas como atributo data-option-name=”valor” a la etiqueta del guion.

Un ejemplo suele aclararlo como decía Napoleón. Por ejemplo, para hacer que un reproductor comience automáticamente su reproducción al cargarse, y a la vez utilizar una fuente de gran tamaño, hemos de usar un guión similar al siguiente:

Personalizar el reproductor

El reproductor soporta varias opciones que controlar su comportamiento y apariencia. Estas pueden agregarse a la URL (?speed=2&theme=tango) o configurados como atributos de datos en el guión adosado (data-speed="2" data-theme="tango"). t

La opción ?t nos permite especificar el tiempo en el cual dará inicio la reproducción. Indudablemente, por defecto será t=0 (o sea, se arrancará desde el comienzo).

Formatos aceptados: ss, mm:ss, hh:mm:ss.

Han de saber que cuando se especifica t, se asume un autoplay=1. Para impedir que el reproductor arranque automáticamente al configurar un valor t es que debe establecerse explícitamente un autoplay=0. Autoreproducir

La opción ?autoplay en tanto controla si el reproductor debe arrancar automáticamente cuando se carga el widget. Los valores aceptados son:

0 / false - No inicia la autorreproducción (por defecto)
1 / true - Inicia la autorreproducción automáticamente.

Precargar

La opción ?preload controla si el reproductor debe comenzar a realizar la captura y grabación inmediatamente.

0 / false - No precarga la grabación, y espera que el usuario haga algo para iniciarla.
1 / true -Precarga la grabación.

Por defecto se usa 1 para las URLs de asciinema.org y 0 en los guiones incrustados. Bucle

La opción ?loop permite hacer un bucle de reproducción para repetirla constantemente. Esta opción normalmente se combina con la opción autoplay para lograr el efecto incesante e imposible de evitar de la propaganda justicialista. Los valores aceptados son:

0 / false - desactiva el bucle de repetición (default)
1 / true - activa el bucle 

Velocidad

La opción ?speed altera la velocidad de reproducción. Por defecto la velocidad es 1, lo que significa que se reproduce en tiempo real. Tamaño

La opción size altera el tamaño de la tipografía de la terminal. Existen 3 tamaños disponibles:

small (por defecto)
medium
big 

Tema

La opción ?theme permite desconocer un tema provisto por la terminal. Por defecto, el tema de colores es el provisto por la terminal. Los temas disponibles son:

asciinema
tango
solarized-dark
solarized-light
monokai 

cols

La opción ?cols permite desconocer el ancho de caracteres de la terminal emulada. Por defecto se usa el ancho de la terminal grabada (por ejemplo, 80 columnas), pero con esto se lo puede cambiar. rows

La opción ?rows permite desconocer las filas (en líneas) de altura de la terminal emulada. Por defecto se usa la altura en líneas de la terminal emulada, por ejemplo, 25 columnas.



13 december 2022

¿Cómo puedo utilizar Plan9 desde Ubuntu?

Consultado sobre la importancia de los Planes, Juan Perón te enseña a correr una máquina virtual con Plan9, el sistema operativo distribuido de los Laboratorios Bell en Ubuntu.

¡Trabajadores!

Nuestro objetivo es el pleno empleo en la Argentina. Este provee el verdadero consumo, pues cuando existe plena ocupación no es necesario impulsar el salario, sino que este sube solo.

Cuando yo me hice cargo del gobierno no se fabricaban ni los alfileres que usaban nuestras modistas, y al terminar el gobierno, el país quedó fabricando barcos, vehículos (camiones, automóviles) máquinas diesel-eléctricas, aviones, etcétera.

Pero lo importante es que desde el punto de vista económico, cuando en 1955 cayó el gobierno justicialista, el estado económico que lo había recibido con 3.500 millones de dólares de deuda externa, el Gobierno Justicialista lo dejó por primera vez sin deuda externa. Nosotros habiamos repatriado totalmente la deuda, y entre esas repatriaciones, me acuerdo que pagamos las últimas entregas del empréstito de la Baring Brothers, que había consistido en un millón de libras, y cuando pagamos nosotros terminamos de pagarlo, se habían pagado doce millones. Imagínense lo que representaban los empréstitos de un millón de libras, que se pagaban doce millones,

Yo recuerdo que en uno de los primeros discursos ante la plaza de Mayo dije que me cortaría la mano antes de firmar un empréstito.

Y ahora estos señores han llevado la deuda a niveles inconcebibles. Si dieran elecciones, no caben duda que estarían decididas en un santiamén, pues el Pueblo Argentino bien sabe lo que quiere.

Pero para poner nuevamente la máquina a andar, hay que recurrir a un buen Plan integral como los de antaño.

Plan9 puede servir. Se trata de es un sistema operativo de concepción distribuída y para investigación desarrollado en los Laboratorios Bell a comienzos de finales de la década de 1980. Sus diseñadores y autores originales eran Ken Thompson, Rob Pike, Dave Presotto, y Phil Winterbottom, a los que se les fueron uniendo muchos otros planeros y el desarrollo continuó a lo largo de los 90s hasta la actualidad.

En mi caso, utilizo una distribución moderna libre del mismo, denominada 9front.

Normalmente se lo utilizaba con una terminal gráfica denominada AT&T 5320 Blit, que como característica notable aducía la de contar con poder de procesamiento propio a nivel local (ya que descargaba contenido remoto en su propia memoria de acceso aleatorio a fin de afianzar la ejecución del software remoto). Asimismo, contaba con una pantalla verticalmente dispuesta, lo que le confería un aspecto similar a las experimentales computadoras tipo Xerox Alto.

Afortunadamente, gracias a los compañeros de SDF.org, Sindicato De Fierreros informáticos, podremos contar con una instancia destinada al estudio remoto de dicho sistema operativo, y accesible como si fuese un Plan Social.

Para hacer uso de ella, habremos de solicitar la afiliación, registrando un usuario en https://sdf.org/plan9/ (amerita esto una casilla de correo electrónico válida). La acción de encuadramiento nos proveerá un usuario en la máquina remota provista de 9front (el cual es una iteración moderna y en desarrollo de plan9) a la vez que se nos dará una contraseña pasavante.

Para acceder, se hará necesario contar con Drawterm, un cliente gráfico X11 pensado para suplir una terminal de tipo Blit, y como tal, contar con entorno gráfico desde el cual operar en los sistemas Plan9/9Front, tanto locales como remotos.

Es notable que Ubuntu cuenta con esta aplicación en sus repositorios, siendo la versión allí provista una de larga data y obsoleta para el uso en 9Front y las versiones más actualizadas de seguridad. Es por ello que en este caso se hará imprescindible contar con una versión de Drawterm más actualizada.

Como mejor que copiar es compilar, os indicaré como hacerlo en el sistema Ubuntu. Abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes comandos de Organización:

sudo apt update ; sudo apt install git libx11-dev libxt-dev ; cd ~ ; git clone git://git.9front.org/plan9front/drawterm ; mv ~/drawterm/ .drawterm/ ; cd ~/.drawterm

...conforme hayamos ingresado al directorio de trabajo .drawterm/, procederemos a compilarlo con:

CONF=unix make

Este procedimiento llevará unos instantes de alta computación, presentando en pantalla los initeligibles resultados típicos de este logro del Justicialismo.

Una vez compilado el cliente Drawterm, el ejecutable quedará almacenado en ~/.drawterm/. Podremos instalarlo en nuestro sistema con:

chmod +x ~/.drawterm/drawterm sudo cp ~/.drawterm/drawterm /usr/local/bin/

Acto seguido, podremos ejecutar el programa dirigiendo a nuestra sesión de máquina virtual. Esto abrirá el sistema de ventanas rio.

Acto seguido, podríamos crear un script de ejecución, con nuestro nombre de usuario. Por ejemplo:

drawterm -h 9p.sdf.org -a 9p.sdf.org -u usuario

Esto abrirá el cliente local Drawterm recientemente compilado, y permitirá acceder con nuestro usuario. Para ello presionamos la tecla Intro, y esto nos permitirá acceder al prompt de contraseña. Por ejemplo:

Tras introducir la contraseña pasavante, tendremos el sistema gráfico en línea, con una ventana disponible para trabajar y el monitor de uso. Trabajo en la máquina virtual Plan9

Encontraremos una ventana con el prompt cpu% del intérprete de comandos de Plan9: rc.

Esta shell rc contiene ciertas similitudes con los intérpretes de comandos típicos de Unix. Las diferencias radican en el teclado no es el normalizado. Sin embargo, las opciones son simples: la tecla Tab se suple con la tecla Insertar o bien Ctrl+i (activa el autocompletado de comandos y rutas). A su vez, Ctrl+h opera como la Tecla Retroceder, en tanto que Ctrl+u borra la línea entera. Ctrl+b retorna al renglón del prompt.

Lo primero que podremos hacer en la CPU remota de SDF.org es ejecutar el comando de activación de usuario, que nos termina de convertir en un planero:

rc /sys/lib/newuser

Acto seguido, opcionalmente podremos cambiar la contraseña pasavante que se nos proveyó el puntero de SDF.org por una propia, mediante el comando:

passwd peron@9p.sdf.org

(naturalmente, habremos de ingresar primero la pasavante y luego confirmar dos veces la nueva contraseña deseada).

En el sistema, recibiremos un directorio de usuario en /usr/$user.

Podremos crear una ventana nueva haciendo clic con el botón derecho y eligiendo New, Luego mediante un arrastre con el botón derecho podremos crear una nueva ventana en el escritorio, en la cual se dispondrá un nuevo intérprete de comandos rc.

Podremos seguir las instrucciones de la documentación oficial, la wiki oficial, o bien ingresar a la wiki.sdf.org/plan9/

El intérprete de comandos permite amplias posibilidades, pero también contamos con un emulador de terminal con distintos colores, el vt. Por ejemplo, si lo queremos en verde, lo ejecutamos con vt.green.

El uso de la terminal gráfica Plan9 requiere el uso del ratón de tres botones. Para desplegar una ventana podremos hacer clic con el botón derecho del ratón y en el menú contextual de ventanas elegir New, para luego arrastrar con el botón derecho del ratón hasta conformar el recuadro de la nueva ventana. Si elegimos la opción Move o Rezise de dicho menú contextual, podremos mover o redimiensionar la ventana respectivamente.

Asimismo, podremos cerrar las ventanas eligiendo la opción Delete, tras lo cual el cursor de convertirá en una cruz de mira que podremos utilizar para apuntar a la ventana que deseemos eliminar. El plan9 incluso contiene un limitadísimo programa de dibujo llamado paint, que con las lógicas limitaciones de un planteo en máquina virtual, puede deparar divertimento de emergencia para l@s más pequeñ@s.

En tanto, con mothra podremos navegar en la web con las lógicas limitaciones de uso de una máquina virtual.

También podrán crear una web que está servida por plan9 ingresando un fichero index.html en /usr/web/who/$user/. Por ejemplo esta.

Es muy útil conocer que al momento de utilizar Drawterm para conectar al servidor CPU de 9front de SDF.org, podrán acceder sus ficheros locales en el directorio /mnt/term de la máquina virtual, simplemente ingresando:

lc /mnt/term

Será posible así copiar ficheros entre la VPS de 9Front en SDF y su sistema local sin emplear protocolo adicional alguno. En otras palabras, al operar con Drawterm, el entorno forma una mancomunicón con nuestro sistema operativo local y el sistema Plan9; técnicamente conformando una unión de tres nodos, ya que el cliente Drawterm actúa como un sistema de terminal Plan9 ultra mínimo e independiente, que conecta su sistema operativo local huésped al servidor de CPU localizado en el SDF.

Nota: Naturalmente, ha de ser extremadamente cuidadoso al operar con este tipo de adminículo. Podrá destruir su sistema si lo desea desde Drawterm.



12 december 2022

¿Como instalo el controlador libre Nouveau para nVidia en Ubuntu?

El 29 de mayo de 1970, grupos juveniles inspirados en la doctrina justicialista producen una acción decisiva por la Liberación, eliminando al controlador privativo de video nVidia. A tal efecto, Juan Perón responde en una famosa misiva enseñando cómo instalar el controlador libre Nouveau en Ubuntu.

(...)

Mis queridos compañeros:

Por mano y amabilidad del compañero ... he recibido vuestras cosas y desde ya agradezco el recuerdo y saludo que retribuyo con mi mayor afecto.

Comienzo por manifestar mi total acuerdo con la mayoría de los conceptos que esa comunicación contiene como cuestión de fondo.

Estoy completamente de acuerdo y encomio todo lo actuado, nada puede ser más falso que la afirmación que con ello ustedes estropearon mis planes tácticos porque nada puede haber en la conducción peronista que pudiera ser interferido por una acción deseada por todos los peronistas. Me hago un deber en manifestarles que si eso ha sido dicho, no puede haber sido sino con mala intención.

Otro tanto sobre el asunto que este apartado menciona en su carta: es totalmente falso que desinstalar el controlador privativo de nVidia haya perturbado plan táctico alguno. Mas bien podría provocar cierto enlentecimiento gráfico, algo inefable por la libertad que hemos de ganar.

Como podrán observar en la apreciación de la situación, toco el asunto referente a NVIDIA, porque yo tampoco creo que pueda hacer nada en nuestro provecho, desde que está en manos de una camarilla que la domina. Sin embargo, no por eso debemos descartar en forma absoluta la intervención de sectores que puedan sernos afectos y que, inteligentemente utilizados, puedan llegar a ser decisivos. Aun en el caso que descartemos esto, quedaría la posibilidad y el intento de descomponer su cohesión contando con algunos grupos proclives a actuar en ese sentido.

La institución, actuando como dictadura militar, es fuerte pero extraordinariamente frágil desde que actúa fuera de la función específica. Perdido el prestigio nacional que le da sustento, y debilitada su disciplina que es lo que mantiene la institución, su debilidad es muy grande: basta recordar lo que sucedió el 17 de octubre de 1945. Se trata también de un gobierno militar y su situación no era peor que la que soporta la actual dictadura, pero había cundido un cierto grado de descomposición en el ejército. Cuando el pueblo salió a la calle dispuesto a quemar Buenos Aires, todo el poder de ese gobierno se vino abajo y bastó sólo la amenaza para que cayera como un castillo de naipes. Es que, como antes digo, la dictadura puede ser muy fuerte pero su peligro real está en su fragilidad congénita.

Coincido con ustedes en que no debemos confiar todo a lo que pueda hacer nVidia, ni aun en los grupos que nos puedan ser afectos, pero tampoco creo prudente que debamos abandonar las oportunidades propicias que se nos puedan presentar para la ingeniería inversa o el intento de decompilación de los elementos gráficos que se pongan a nuestro alcance. Dispongo de informaciones, que me hacen pensar en ambas posibilidades si se trabaja eficientemente y, puedo informarles, que este trabajo se ha comenzado a realizar de manos del controlador libre Nouveau.

Mi experiencia de viejo militar me permite decirle a ustedes sin temor a equivocarme que en esta fabricante de adaptadores de video, la mayoría de los programadores son nuestros. En la jerarquía hay un veinte por ciento favorable y un veinte por ciento desfavorable, el resto es indiferente. El sesenta por ciento restante que es indiferente, se escuda como legalista, pero su legalidad consiste en servir al que gana. Si nosotros no estamos en las de ganar los tendremos en contra pero, tan pronto tengamos una posibilidad, podremos contar con ellos que, aunque son como la bosta de la paloma, sirven de relleno y hasta a veces pueden servir para programar algunas rutinas libres para nuestro driver...

Es dentro de este panorama que nosotros debemos considerar las posibilidades. Por otra parte, ¿qué podemos perder por mantener el empeño?

Sobre la opción electoral, yo tampoco creo. Hemos visto ya demasiado para creer en semejante patraña. Por eso comparto totalmente sus afirmaciones anotadas en la comunicación que comento.

Sin embargo, como en la lucha integral en que debemos empeñarnos, no se puede despreciar la oportunidad de forzar también este factor a fin de hostigar permanentemente desde las organizaciones de superficie que, frente a la opinión pública tienen también su importancia y concurren también a la lucha en actividades nada despreciables, especialmente en la situación que vive el mercado de placas de video. Esta lucha también concurre a la "guerra revolucionaria" para que cada uno pelee en la forma que es capaz de hacerlo. Si ustedes leen la apreciación, resolución y consideraciones, podrán percatarse que, en el fondo, estamos totalmente de acuerdo, como no podría ser de otra manera.

Por eso nuestro Movimiento tiene una estructura orgánica que corresponde de una manera general a esas necesidades: una organización de superficie que, a través del partido Peronista masculino y femenino como de la rama sindical realiza la lucha también en superficie, mediante las acciones de programación del controlador Nouveau. En ello es preciso realizar un plan de provocación, otro de intimidación, otro de boicot y finalmente otro de sabotaje del controlador privativo de nVidia en Ubuntu. En estos planes intervienen todos los elementos de las organizaciones de superficie, como los grupos activistas empeñados en la "guerra revolucionaria".

Como les explicará el compañero, mientras las organizaciones de superficie obedecen a una conducción centralizada, con las necesarias autonomías, las organizaciones que se encargan de la "guerra revolucionaria" tienen absoluta independencia en su conducción y coordinada más que nada por nuestro objetivo de la liberación del software. Es natural que todo puede salir mejor si existe por lo menos una conducción en beneficio de una unidad de acción que toda la lucha necesita.

Toda acción debe seguir un adecuado planeamiento. Esto no puede soslayarse y es el requisito para lograr el éxito final que todos anhelamos. En este caso, habremos de analizar los controladores disponibles en los repositorios de nuestro sistema operativo libre.

Indudablemente que esto es posible hacerlo tanto desde el escritorio gráfico como desde la terminal, método que se provee mas bien para casos de emergencia. Os haré perito en ambos, pero primero analicemos el caso más utilizado y popular: Instalar el controlador Nouveau desde el entorno gráfico

Es importante destacar que habremos de contar con conexión a internet funcional, naturalmente. Para activar el controlador libre Nouveau, podremos dirigirnos al menú Sistema / Preferencias / Hardware / Mas Controladores.

Esto activará el selector de controladores a utilizar. La ventana presentará la solapa Más controladores, y será necesario aguardar que se revisen los controladores de la lista a través de nuestra conexión a internet. Esto puede llevar algunos segundos o incluso un minuto.

Conforme aparezca la lista con los controladores, podremos elegir el deseado. En este caso elegiremos la opción "X.Org X-Server Nouveau Display Driver desde xserver-xorg-video-nouveau (código abierto)", ya que responde a las propuestas doctrinarias del momento. Si deseamos proponer su uso, debemos presionar también el botón Aplicar los cambios.

El sistema nos solicitará entonces nuestra contraseña de Conductor, y tras ingresarla correctamente, procederá a la descarga del paquete con el controlador solicitado.

Durante descarga, instalación y enlace adecuado, se producirán todas las configuraciones de video requeridas de forma automática, de manera tal que ubuntu debería poder inicializar el uso de nuestro hardware de video nVidia y la pantalla con dicho controlador libre al dar arranque al sistema.

Para dar inicio a nuestro sistema, pero utilizando el controlador libre recién instalado, reiniciamos el sistema por medio de Sistema / Apagar / Reiniciar. Instalar el controlador Nouveau desde la terminal

Opcionalmente debemos saber también cómo hacer este procedimiento a través de la terminal, sobre todo para el caso donde por algún motivo u otro no contásemos con la capacidad usual de otorgarnos un escritorios gráfico (o bien si meramente deseamos utilizar nuestra terminal). Si nos encontrásemos en alguno de estos predicamentos, bien podríamos hacer caso de este método desde la terminal o consola de texto de nuestro sistema.

A tal efecto, abrimos una con Ctrl+Alt+T o ingresamos en una terminal de texto (por ejemplo, con Ctrl+Alt+Fx, e ingresamos el siguiente comando de organización:

ubuntu-drivers devices

El sistema nos devolverá crípticamente los controladores dables a instalar, de la misma manera que podría indicarlo en el escritorio gráfico:

== /sys/devices/pci0000:00/0000:00:03.0/0000:01:00.0 == modalias : pci:v000010DEd00001380sv00001458sd000036CAbc03sc00i00 vendor : NVIDIA Corporation model : GM107 [GeForce GTX 750 Ti] driver : nvidia-driver-390 - distro non-free driver : nvidia-driver-470 - distro non-free recommended driver : nvidia-driver-470-server - distro non-free driver : nvidia-driver-418-server - distro non-free driver : nvidia-driver-450-server - distro non-free driver : nvidia-driver-460 - distro non-free driver : nvidia-driver-460-server - distro non-free driver : nvidia-340 - distro non-free driver : xserver-xorg-video-nouveau - distro free builtin

En este caso, una vez que se hayan revisado los repositorios de hardware podríamos instalar el controlador libre Nouveau por medio del siguiente comando:

sudo apt install xserver-xorg-video-nouveau

El sistema nos solicitará la contraseña de Conductor, y tras proveerla procederá a descargar el controlador desde los repositorios. Nuevamente, el proceso puede tardar algunos minutos dependiendo de la velocidad de conexión.

Al finalizar con corrección habremos de reiniciar el equipo. Desde la terminal es sencillo hacerlo con:

sudo reboot

Tras reiniciar, podremos abrir una terminal con Ctrl+Alt+T y confirmar estar utilizando el paquete controlador nouveau. Para ello en la terminal ingresamos:

lsmod | grep nouveau

...a lo que nuestro sistema podría devolvernos algo como:

nouveau 1949696 60 mxm_wmi 16384 1 nouveau video 49152 1 nouveau i2c_algo_bit 16384 2 bttv,nouveau ttm 106496 1 nouveau drm_kms_helper184320 1 nouveau drm 491520 8 drm_kms_helper,ttm,nouveau wmi 32768 2 mxm_wmi,nouveau

Opcionalmente, podríamos anhelar remover los restos del paquete de módulos y controladores privativos de nVidia, de la misma forma que nos deshacemos de los restos de Aramburu. En la terminal ingresamos:

sudo apt remove --purge '^nvidia-.*' ; sudo apt autoremove ; sudo apt autoclean Instalar el controlador privativo de nVidia en Ubuntu

Nunca está de más saber cómo reinstalar el controlador privativo, si quisiéramos hacerlo. Para ello podremos emplear el método gráfico desde Sistema / Preferencias / Hardware / Mas controladores, elegir uno, y aplicar los cambios:

...o bien hacer la instalación del último controlador privativo a través de la terminal con:

sudo apt install linux-generic-hwe-20.04 sudo apt install nvidia-driver-470 sudo reboot

Cualquiera de los métodos debería ser efectivo. Recordemos que una vez instalado el paquete, debemos reiniciar el sistema con sudo reboot y a la vuelta, revisar estar usándolo con:

lsmod | grep nvidia

nvidia_uvm 1032192 0 nvidia_drm 61440 3 nvidia_modeset 1196032 5 nvidia_drm nvidia 35270656 175 nvidia_uvm,nvidia_modeset drm_kms_helper 237568 1 nvidia_drm drm 548864 7 drm_kms_helper,nvidia,nvidia_drm

Sería largo poder explicar en una comunicación todo el aspecto de la conducción, por eso he confiado a los compañeros que me visitan la tarea de informarles a ustedes de viva voz, mis pensamientos al respecto. Creo que si se interpreta cabalmente la necesidad orgánico-funcional de nuestro Movimiento, en la lucha en que estamos empeñados, no habrá dificultades para que, en un futuro cercano, se llegue a un entendimiento completo, que será muy provechoso en la continuidad del esfuerzo revolucionario. No se trata de hacer una conducción centralizada en todo el complejo orgánico de la lucha porque eso no es posible, dadas las condiciones de la lucha misma, pero sí que se alcance por un modo u otro la indispensable coordinación de los esfuerzos, porque los esfuerzos divergentes, aun con la mejor intención, no pueden ser sino factores de debilidad en la lucha de conjunto.

  1. Totalmente de acuerdo en cuanto afirman sobre la guerra revolucionaria. Es el concepto cabal de tal actividad beligerante. Organizarse para ello y lanzar operaciones para "pegar cuando duele y donde duele" es la regla. Donde la fuerza represiva esté, nada; donde no esté la fuerza, todo. Pegar y desaparecer es la regla por la que se busca no una decisión sino un desgaste progresivo de la fuerza enemiga. En este caso la descomposición de las fuerzas de que pueda disponer la dictadura por todos los medios; a veces por intimidación, que es arma poderosa en nuestro caso; otras por la infiltración y el trabajo de captación; otras por la actuación directa según los casos pero, por sobre todas las cosas, han de comprender los que realizan la guerra revolucionaria que en esa "guerra" todo es lícito si la finalidad es conveniente.

Como ustedes dicen con gran propiedad, cuando no se dispone de la potencia y en cambio se puede echar mano a la movilidad, la guerra de guerrillas es lo que se impone en la ciudad o en el campo. Pero, en este caso es necesario comprender que se hace una lucha de desgaste como preparación para buscar la decisión tan pronto como el enemigo se haya debilitado lo suficiente. Por eso la guerra de guerrillas no es un fin en sí mismo sino solamente un medio y hay que pensar también en preparar el dispositivo general que aun no interviniendo en la lucha de guerrillas, debe ser factor de decisión en el momento y en el lugar en que tal decisión debe producirse.

Ni es nueva la "guerra revolucionaria" y menos aún la "guerra de guerrillas".

Pienso que tal vez la guerra de guerrillas ha sido la primitiva forma de guerra, tan empleada en la afamada "guerra de los escitas" y de Darío II. Por eso, sus reglas son demasiado conocidas como sus formas. Sin embargo, es en sus operaciones donde la iniciativa y la vivacidad juegan un papel muy preponderante. Por eso también en esa forma de operar, no se podrá mantener una conducción centralizada, aunque siempre ha de realizarse, para que sean efectivas con una finalidad objetiva. De ello se infiere que, los Montoneros, en su importantísima función guerrera, han de tener comandos muy responsables, y en lo posible operar lo más coordinadamente posible en las finalidad de conjunto y las otras fuerzas que en el mismo o distinto campo, realizan otra forma de acción, también revolucionaria.

Finalmente compañeros, les ruego que hagan llegar a los compañeros mis más afectuosos saludos y acepten mis mejores deseos. También les ruego me hagan presente y transmitan mis saludos a todos los compañeros que están presos o perseguidos por la dictadura y les lleven la persuasión que tal situación no ha de durar mucho.

Un gran abrazo Juan Perón



11 december 2022

¿Cómo uso programas de terminal con la red Tor en Ubuntu?

Entrevistado en el mensuario español Cambio/16, Juan Perón expone los siguientes pasos para retornar a la Argentina, a la vez que explica cómo pseudo-anomizar programas de terminal de Ubuntu a través de la red oscura Tor.

(...) En la vida de un Conductor hay algo que no puede soslayarse. El anonimato. A pesar de usar estos zapatitos blancos, no peco de ingenuo.

Me es obvio que ese tondo de Lanusse quiere saber en qué ando. Siempre tengo afuera de la Quinta 17 de Octubre un montón de chusmas deseosos de abrir nuestros puertos.

Sin embargo, puedo mantener un control cabal del operativo de retorno y mantenerme al dedillo de lo que sucede en la Argentina. Todo esto es gracias a la red Tor. Es una red de datos que usa el Movimiento, y es tan oscura como la cabellera de nuestros grasitas.

Involucra un sistema pensado para permitir el pseudo-anonimato en las redes de datos gracias al empleo de alta encriptación.

Vean señores, el software cliente Tor, llamado Torify se encarga de redireccionar tráficos de datos a través de una red paralela basada en servidores de internet de acción voluntaria y alcance global. Gracias a la solidaridad de los trabajadores, es posible así pseudo-ocultar así la localización o uso de red desde cualquiera que conduzca vigilancia de redes o análisis de su tráfico.

En lugar de que la paquetería de mis mensajes (teletipo, cintas magnetofónicas y cartas) afronte una ruta relativamente directa en pos de la velocidad, en la red Tor favorece varios caminos secundarios utilizados para cubrir sus pasos, de manera tal que ningún observador pueda hacer rastreos indeseados. En la Argentina son muchos la que la usan, y por ellos el GAN se está quedando sin el pan y sin las tortas...

Gracias al empleo de Tor, la oligarquía y sus vasallos la tienen más difícil, y desesperan en rastrear la actividad telemática de ciertos usuarios particulares (incluyendo en ello sus "visitas a sitios webs, posteos en línea, mensajes instantáneos y otras formas de comunicación telemática").

Esta ofuscación se realiza en beneficio de un uso anónimo y neutral de la red, para proteger la libertad personal del usuario, su privacía, y capacidad para conducirse confidencialmente, protegiendo del monitoreo de sus actividades en las redes de datos a costa de velocidad de conexión. En nuestro caso ha sido determinante para elaborar una pseudo-anónima campaña de "Perón Vuelve".

Los descamisados saben ya que el sistema operativo Ubuntu es capaz de hacer uso del comando torify, el envolvedor de datos para la red cabecita negra. Su fin es intentar encontrar el mejor servidor de ocultamiento Tor para nuestro sistema. A tal fin llamará a los demonios de conexión tarsocks o tsocks gracias a un fichero de configuración específico.

Os enseñaré como su simple uso puede hacerse efectivo directamente desde la terminal Linux. Gracias a ello, podremos ofrecer accionar desde la terminal obfuscado desde esta red de pseudo-anonimato.

Como primera medida, habremos de instalar el software Tor desde los repositorios de Ubuntu. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente comando de organización:

sudo apt-get install tor curl

En este ejemplo mantendremos el fichero de configuración /etc/tor/torrc en sus opciones por defecto, pero con la notable excepción de dos temperamentos.

A tal efecto ejecutamos el editor GNU Nano:

sudo nano /etc/tor/torrc

Se abrirá el fichero de configuración en nuestro editor Nano. Presionamos Ctrl+w y buscamos la cadena "ControlPort" y presionamos la Tecla Intro para que Nano la busque. Al encontrarla, debemos descomentarla, borrando el signo numeral ("#") que la antecede, de manera que quede:

ControlPort 9051

Acto seguido, buscaremos haremos lo mismo buscando la opción CookieAuthentication. La descomentamos borrando el # y configuramos el valor de dicha cadena para que quede en cero ("desactivado"), de la siguiente manera:

CookieAuthentication 0

El resultado se verá así:

Con estas dos opciones modificadas habremos reconfigurado el puerto desde el cual Tor escuchará las conexiones locales de las aplicaciones, a la vez que se le instruirña a Tor para que no necesitemos autentificación. En efecto, esto harña que cualquier programa pueda hacer uso de Tor y controlarlo.

Conforme los cambios estén realizados han de guardar los cambios con Cltr+o y saldrán el editor Nano con Ctrl +x. Acto seguido efectivizaremos todo reiniciando el demonio de Tor con: sudo /etc/init.d/tor restart

Nota: Han de saber que esta configuración para torificar nuestra conexión se hará teniendo en mente un equipo de escritorio de usuario único, y no debería realizarse si se trata de un equipo multiusuario o un servidor. Si quisieran pseudo-anomizar un servidor remoto podrán recurrir a ingresarle una contraseña de conexión a Tor como se explicará, o bien a recurrir al tunelado SSH a través de Tor. Uso de Torify

Ahora un ejemplo simple que os mostrará cómo emplear el comando torify e iniciar una nueva sesión de Tor desde la terminal Linux.

Como primer medida debemos conocer nuestra propia IP pública de acceso. Ello lo podremos hacer fácilmente con:

curl ifconfig.me

207.246.69.54

De modo que 207.246.69.54 es la IP pública. Ahora utilizaremos torify antes de comando curl en la terminal:

torify curl ifconfig.me 2> /dev/null

Como vemos, ahora estaremos navegando con una IP pública distinta (pseudo-anonimato).

Incluso también podrán forzar a Tor desde la línea de comandos para que comience una "nueva sesión" con cada nuevo comando ejecutado (ofuscando aún mas el anonimato):

echo -e 'AUTHENTICATE ""\r\nsignal NEWNYM\r\nQUIT' | nc 127.0.0.1 9051

250 OK 250 OK 250 closing connection

Este pequeño script conecta al puerto 9051 y ordena un "signal newnum", lo que hará que Tor conmute hacia un nuevo circuito de conexión telemática, de manera tal que los nuevos pedidos de aplicaciones no compartan ningún circuito antiguo.

En tal caso, la velocidad será más lenta, pero el anonimato muchísimo mayor. Ahora si revisamos la IP, deberíamos esperar recibir una nueva.

torify curl ifconfig.me > /dev/null

46.59.74.15

En este pequeño ejemplo habrán utilizado curl para obtener ni dirección IP, pero gracias Torify bien podrán utilizar casi cualquier programa de terminal que haga uso de las redes, tales como ssh, wget, w3m o BitchX. Configurar una contraseña para Tor

En caso de encontrarnos en un ambiente compartido, será mejor configurar una contraseña para Tor a fin de afianzar una capa adicional de seguridad en su empleo. Esto podrán hacerlo siguiendo unos pocos pasos:

1) Generar una contraseña encriptada:

En la terminal ingresamos:

tor --hash-password "contraseña" Esto nos geenrará un hash para la palabra "contraseña" (naturalmente, vosotros podrán escoger la frase que deseen). habrñan de guardar este para insertarlo en el fichero de configuración de Tor.

(En este caso de ejemplo supondremos el hasth para “contraseña”, 16:1AF7614792A6228D6080C31C3FA3336312F0FD86F78CE2EA704CB7C4A0

2) Editar el fichero de configuración de Tor:

Abrimos el fichero con el editor GNU Nano:

sudo nano /etc/tor/torrc

Y utilizamos la función Ctrl+w para buscar la siguiente línea:

CookieAuthentication 0

Acto seguido usamos Ctrl+w para encontrar la cadena HashedControlPassword.

Deberiamos encontrar la siguiente línea:

HashedControlPassword 16:2283409283049820409238409284028340238409238

Removemos el numeral # al comienzo y reemplazamos el hash de contraseña por el hash que propio recientemente generado según nuestra propia contraseña.

En este caso de ejemplo, modificando en hash de la contraseña la línea quedaría así:

HashedControlPassword 16:1AF7614792A6228D6080C31C3FA3336312F0FD86F78CE2EA704CB7C4A0

Guardamos los cambios con Ctrl+o y salimos con Ctrl+q.

3) Reiniciar Tor:

Reiniciamos Tor de modo de hacer efectiva las directivas, con:

sudo /etc/init.d/tor restart

De ahora en más, podremos utilizar el comando anterior para conectarnos al demonio de Tor, pero empleando nuestra contraseña.

En este caso, el comando ahora protegido sería:

echo -e 'AUTHENTICATE' "contraseña"\r\nsignal NEWNYM\r\QUIT' | nc 127.0.0.1 9051



10 december 2022

¿Cómo creo una tarjeta SD booteable con Ubuntu?

En una célebre nota costumbrista concedida a la revista Radiolandia, Juan Perón aconseja mientras se afeita y cuenta cómo crear una tarjeta SD booteable desde la terminal de Ubuntu.

(...)

¡Vean bien!

La vida está para disfrutarse en una Comunidad Organizada.

Sin embargo, la fórmula de la Felicidad no está escrita. Existe en todas las gradaciones, y todas han de considerarse para establecer el justo Medio que otorgue la buenaventuranza que los trabajadores reclaman por Justo Derecho.

Es por ello que un buen Conductor ha de prever la experiencia que sólo ofrece experimentar responsablemente con múltiples estilos de conducción.

El campo del cómputo reclama esta misma omnicomprensión. Es por ello que la facilidad de contar con imágenes arrancables de sistemas operativos libres dotadas del llamado "arranque en vivo" es una gran facultad. Una que no podremos desaprovechar si lo que deseamos es hacernos peritos sin tener que estar gastando e instalando.

Muchos sistemas operativos libres cuentan ya con esta oportunidad. Pero para poder hacer uso de la misma, es imperioso contar un un medio de arranque capaaz de poder hacer efectivo este tipo de desarrollos.

Pues bien señores, esto es sencillo. Con sólo contar con un pendrive o un lector de tarjetas compatible (y su correspondiente tarjeta flash), podremos contar con instaladores arrancables.

El conocimiento requerido para crearlos y probarlos solía estar sólo al alcance del oligarca, pero os lo extenderé con el fundamento que el conocimiento en manos de las Masa Obreras es un herramental que las llevará a perdurar su liberación. Normalmente podríamos utilizar un pendrive para tal cometido, atendiendo a la facilidad que el mismo tiene para crear un medio de arranque para una computadora, y que Ubuntu ya cuenta con un creador de pendrives.

Sin embargo, una tarjeta SD puede servir para el mismo propósito si contamos con un lector de tarjetas para la misma que cuente con interfaz USB (habrán de notar que la mayoría de los lectores de tarjetas USB internos también suelen contar con este tipo de interfaz normalizada).

A tal motivo, podremos contar con una tarjeta SD y crear una tarjeta booteable (arrancable) utilizando nuestra terminal de Ubuntu. En primer lugar, insertamos la tarjeta SD en nuestro lector de tarjetas. Una tarjeta de 4 Gigabitios o de 8 Gigabitios puede servir para la mayoría de las distribuciones que pululan en nuestro ecosistema por la Liberación.

Una tarjeta SD o MicroSD puede ser una opción simple.

  1. Insertar la tarjeta SD en el lector y conectarlo
  2. Descargar la imagen ISO En otro caso, podremos contar con el fichero de la distribución. En este ejemplo, podremos disponer de un fichero con extensión img.gz (un archivo de imagen comprimido con GNU Gzip, o bien el más convencional archivo ISO, que denota una imagen normalizada para grabar en un disco compacto virgen.

En el primer caso, descomprimimos el fichero con:

gunzip -d fichero.img.gz

  1. Verificar el /dev de la tarjeta

Es sumamente importante conocer que la ruta exacta al fichero de dispositivo de la tarjeta SD depende de la distribución Linux que utilicemos y de la configuración específica del sistema. Asumirlo "a tontas y a locas" puede ser el causal de gravísimos errores. Por tal motivo, conviene averiguar específicamente cual es. Para ello, ingresaremos el siguiente comando sin insertar tarjeta SD alguna en el lector.

df -h

Nuestro sistema nos devolverá todos los componentes de nuestro sistema de archivado. Dentro de ellos debemos identificar el de nuestra tarjeta SD insertada en base a su identificador de dispositivo y su capacidad particionada, o ruta. Por ejemplo, en el caso de Ubuntu, podría indicarnos el contenido de la tarjeta SD de marca Kingston de 8Gigabytes, como:

/dev/sdg1 8G 8G 0 100% /media/peron/Kingston_8GB

Esto nos indica que la ruta de dispositivo de la tarjeta es /dev/sdg1. Deben estar atentos a la suya propia podría variarl, o estar particionada en distintos identificadores.

  1. Formatear la tarjeta y desmontarla

Necesitaremos desmontar todas las particiones de la tarjeta SD ante de grabar la tarjeta. Deben recordar imponer la ruta de dispositivo que obtuvieron en el paso anterior:

sudo mkfs.vfat /dev/sdg1 -I

unmount /dev/sdg1

  1. Grabar la imagen ISO en la tarjeta SD

Grabaremos la imagen en la tarjeta SD dando empleo a la potente utilidad dd. Por favor tengan sumo cuidado al especificar la ruta correctamente, ya que este comando es irreversible ¡y sobreescribirá cualquier contenido preexistente en dicha ruta! Por ejemplo, el comando en Ubuntu sería:

sudo dd bs=4M if=archivo.img of=ruta_de_dispositivo

Por favor sean pacientes, ya que esto suele tardar bastante (varios minutos) dependiendo de la computadora y de la velocidad de la tarjeta SD utilizada. En este caso, el comando sería:

sudo dd bs=4M if=archivo.img of=/dev/sdg1

  1. Asegurarse que todas las escrituras se hayan completado Este paso es opcional, pero un reaseguro. Consiste en sincronizar todas las funciones de escritura en los dispositivos determinados. Para ello introducimos el comando:

sync



09 december 2022

¿Cómo uso el comando sed para editar texto en Ubuntu?

Reunido con los Obreros, el Coronel Juan Perón explica sobre la organización para la defensa de sus intereses y explica cómo utilizar el editor de texto comandable sed en Ubuntu.

¡Compañeros!

Un buen trabajador ha de contar en su avío con las mejores herramientas para realizar su justa labor.

Esto lo saben ustedes en cada una de las profesiones. Para ello se han asociado en estas organizaciones; para la defensa de sus intereses. Yo de esto algo he hecho también, aunque como político, yo no soy mas que un mero un aficionado. Mi profesión es la de Conductor.

Pero también he buscado dominar las herramientas que - creo - me puedan servir en un momento u otro para hacer determinadas tareas. Un conductor no ha de contar sólo con un martillo, porque si no a todos los vé clavos.

En la conducción de un sistema computado, sucede mas o menos lo mismo, y esto se replica en los editores de texto. Han de saber que sed es un editor de cadenas de texto muy extendido en el cómputo arqueológico.

¡Os enseñaré como disponer del poder de sed para editar archivos!

Han de saber que el aprendizaje del comando sed se asemeja al ajedrez: lleva una ahora aprenderlo, y una vida dominarlo (o, al menos, debe practicárselo mucho). Con este tutorial aprenderás lo mismo que una apertura o gambito para cada una de las funcionalidades principales de sed.

sed es un editor de cadenas capaz de operar introduciéndole entrada en forma de cadenas (a través de caños), o bien con ficheros de texto enteros. Como carece de una interfaz interactiva propia de cualquier editor de texto que se precie moderno, deberán introducir órdenes para que él interpretará y ejecutará en la medida que avanza sobre el texto.

Gracias a esto podrá operar también sobre el intérprete Bash así como en otros shells.

Con sed será posible:

Seleccionar texto
Sustituír texto
Agregar líneas al texto
Borrar líneas de un texto
Modificar (o preservar) un fichero original

Se han estructurado estos ejemplos para presentar y demostrar conceptos, y no para producir los comandos de sed más rígido (y más complejos) posibles. Incluso así, verás que en sed las funcionalidades de coincidencia de cadenas y selección de texto operan a través del uso de expresiones regulares (regexes). Deberías familiarizarte con ellas para obtener lo mejor de sed. Un Ejemplo Simple

Primero vamos a usar echo para enviar algún texto a sed a través de un caño, y haremos que sed sustituya una porción del texto. Para hacerlo, ingresamos:

echo como_gorilear | sed 's/gorilear/peronizar/'

El comando echo genera una cadena de texto y el caño ("|") envía dicha la cadena "como_gorilear" a sed. Y a continuación le ordena aplicar una regla de sustitución simple (la "s" significa sustituir). sed buscará así la cadena de texto especificada en el texto contenido en el fichero, y reemplazará cualquier coincidencia con la segunda cadena.

La cadena "gorilear" será reemplazada por "peronizar", y la nueva cadena será presentada como una salida en la terminal.

Si bien las sustituciones son probablemente el empleo mas común que se hace de sed, es conveniente también saber cómo seleccionar y hacer coincidir texto.

Seleccionar Texto

Utiliza un fichero de texto para nuestro ejemplo. Usa uno que contiene un poema gauchesco décimas de Martín Castro, "Hachando los Alambrados". Lo podrán descargar con el comando:

wget https://caja.texto-plano.xyz/peron/hachando.txt

Ingresamos lo siguiente para mirarlo con el comando less:

less hachando.txt

Podremos abandonar el visualizador less presionando la tecla q.

Para seleccionar algunas líneas del finchero, proveemos la línea inicial y la línea final del rango de selección. Si usamos un número aislado, sólo seleccionaremos dicha línea.

Para extraer las diez líneas que componen la primer décima, ingresa este comando:

sed -n '3,12p' hachando.txt

Observad la coma entre 3 y 12. La p significa "presenta las líneas coincidentes". Si actuase por defecto, sed presentaría todas las líneas. Veríamos todo el texto en el fichero, y las líneas coincidentes resultarían impresas dos veces (repetidas). Para impedirlo, emplea la opción -n ("sin salida") para suprimir todas las líneas no coincidente.

Ahora cambiarán los números de línea de modo de podeer seleccionar un verso diferente, como se indica:

sed -n '14,23p' hachando.txt

Podrán usar la opción -e ("expresión") para realizar selecciones múltiples. Si emplean dos expresiones, podrán seleccionar dos versos, tal como:

sed -n -e '3,12p' -e '14,23p' hachando.txt

Y si reducen el primer número en la segunda expresión, podrán insertar una línea en blanco entre los dos versos. A tal fin tipeen lo siguiente:

sed -n -e '3,12p' -e '13,23p' hachando.txt

También podrán escoger una línea de comienzo e indicarle a sed que avance a lo largo del fichero e imprima las líneas alternadamente, cada cinco líneas, o bien que saltee un número dado de líneas. El comando es similar a aquellos que empleamos anteriormente para seleccionar un rango. Para ello habrán de utilizar un tilde (~) en lugar de una coma (,) con el fin de separar los números.

El primer número indicará el comienzo de la línea. El segundo número le indicará a sed qué líneas luego de la línea de comienzo debe presentar. El número 2 significa cada segunda línea, 3 denota cada tercer línea, y así sucesivamente.

Ingresen lo siguiente:

sed -n '1~3p' hachando.txt

Lo normal es que desconozcamos el lugar preciso dónde se localiza un texto buscado, por lo cual suele ser imposible proveer los números de línea. Sin embargo, podremos utilizar sed para seleccionar las líneas que contienen la cadena de texto buscadas. Por ejemplo, probemos extraer todas las líneas que comienzan con "Y".

El caret (^) representa el comienzo de una línea. Delimiten el término a buscar entre barras (/). También incluirán un espacio luego de "Y", a fin de excluir del filtrado a palabras tales como "Yo".

Tal vez no sea obvio la primera vez que observemos un script de sed. Pero han de recordar que en los comandos anteriores expliqué que /p significa "presentar", o bien "imprimir". Sin embargo, ahora una barra la antecede, de esta manera:

sed -n '/^y /p' hachando.txt

Como resultado de esto se extraerán del archivo quince líneas que comiencen con "y"y se las presentará en la terminal:

Realizar Sustiticiones

En nuestro primer ejemplo, expuse el primer formato básico para usar la substitución en sed:

echo como_gorilear | sed 's/gorilear/peronizar/'

La s indicaba a sed que lo que viene a continuación es una sustitución lineal. La primer cadena consistirá en la cadena a buscar ("origen"), mientras que la segunda cadena será la cadena a reemplazar ("destino"). Por supuesto, como sucede en la política, el problema está en los detalles.

Ingresa entonces el siguiente comando para cambiar todas las apariciones de la cadena "donde" a "ande", y le daremos a Serapio una voz más pampeana:

sed -n 's/donde/ande/p' hachando.txt

En la primer línea, sólo se cambiará la segunda ocurrencia de "donde". Eso es así porque sed se detiene luego de encontrar la primer coincidencia por cada línea. Si queremos realizar una búsqueda global - tal que se procesen todas las coincidencias existentes en cada línea del fichero, debemos agregar un modificador g, de la siguiente manera:

sed -n 's/donde/ande/gp' hachando.txt

Esto encontrará "donde" y lo reemplazará con "ande". Pero si la palabra fuese "Donde", sed es sensible a mayúsculas, y no considerararía que dicha instancia sea lo mismo que "donde".

Para solucionar esto, ingresaremos el siguiente comando, agregándole una i al final de la expresión que le asigne a la orden insensibilidad a mayúsculas:

sed -n 's/Donde/donde/gip' hachando.txt

Esto funcionará, pero la mayoría de las veces no querrás activar la insensibilidad a mayúsculas para todo. En tales casos, podrías usar un grupo de expresión regular que agregue insensibilidad de mayúsculas a cadenas específicas.

Por ejemplo, si encierras los caracteres entre corchetes ([]), serán interpretados como "cualquier caracter de esta lista de caracteres".

Introduce lo siguiente para incluir "D" y "d" en el grupo a buscar, de forma de asegurar que en la coincidencia entren tanto "Donde" como "donde" (o sea, se haga indistinta si está con minúscula o mayúscula "donde":

sed -n 's/[Dd]onde/ande/gp' hachando.txt

También podrás restringir la sustituciones a determinadas secciones del fichero. Supongamos que el fichero contiene un espaciado erróneo en su primer décima. Podrás usar entonces el siguiente comando ya conocido para analizar el primer verso:

sed -n '3,12p' hachando.txt

Buscaremos ahora dos espacios (aparecen luego de "facón"), sustituyéndolos por uno. Podrán hacer esto globalmente de manera que la acción se repita a lo largo de toda la primer línea. Para ser mas claro, la cadena de búsqueda es "espacio, espacio asterisco (*)", y la cadena de sustitución es "espacio". El 3,12 restringe la sustitución a únicamente las diez líneas del fichero que componen el primer verso.

Todo esto tendrá la forma del siguiente comando: sed -n '3,12 s/ */ /gp' hachando.txt

¡Excelente! Lo que importa aquí es el patrón de búsqueda. El asterisco (*) representa cero o más del caracter precedente, que es un espacio. por ello, el patrón a buscar hará que sed analice cadenas de un espacio o más.

Si sustituyes un espacio simple por cualquier secuencia múltiple de espacios, corregirás el fichero a un espaciado regular, con un espacio simple entre cada palabra. En realidad, esto también sustituirá el uso de espacios simples por otro espacio simple igual, y aunque no es adverso en el resultado, enlentecerá la sustitución.

Si tipeas lo siguiente y reduces el patrón de búsqueda a un espacio simple, se hará inmediatamente evidente la necesidad de incluir los dos espacios: sed -n '3,12 s/ */ /gp' hachando.txt

Como el asterisco busca cero o más del caracter precedente, interpretará cada carácter que no sea un espacio como un "cero espacio" y le aplicará la sustitución ¡agregando un espacio tras cada caracter!.

Sin embargo, si incluyes dos espacios en la cadena de búsqueda, sed deberá encontrar al menos un caracter de espacio antes de aplicar la substitución. Esto asegurará que los caracteres que no son espacioes permanezca inalterados.

El texto contiene dos errores. Si ingresas lo siguiente, usando la -e (expresión) que ya has utilizado anteriormente, podrás realizar dos o más sustituciones en simultáneo:

sed -n -e 's/gaucho/hombre/gip' -e 's/obrera/overa/gip' hachando.txt

Podrás lograr el mismo resultado utilizando un punto y coma (;) para separar ambas expresiones, de la siguiente manera:

sed -n 's/gaucho/hombre/gip;s/obrera/overa/gip' hachando.txt

Con esto sustituimos "obrera" por "overa".

En el siguiente comando queremos corregir "la Quiaca". Si buscamos "la" para reemplazar la Quiaca a La Quiaca, se presentarán todas las "la" de texto con La (con mayúscula):

sed -n 's/[Ll]a/la/gp' hachando.txt

Para impedir esto, deberás sólo intentar sustituir en líneas que coincidan con otro patrón. Si modificas el comando para tener una cadena de búsqueda al comienzo, sólo consideraremos operar en líneas que coincidan con dicha cadena.

Ingresa lo siguiente para hacer que tu patrón de búsqueda sea la palabra "Quiaca".

sed -n '/Quiaca/s/[l]a/La/gp' hachando.txt

Esto te dará el resultado buscado.

También puedes usar el comando Cortar (c) para sustituir líneas entera que coincidan con la cadena de búsqueda propuesta. Tipearemos lo siguiente para buscar una línea con la palabra "neck" en ella, y la reemplazaremos con una nueva cadena de texto:

sed '/pachamama/c el amor de Pachamama.' hachando.txt

Nuestra nueva línea aparecerá en la parte inferior de nuestro extracto. Insertar Líneas y Texto

También podremos insertar nuevas líneas y texto en nuestro fichero. Para insertar líneas nuevas a continuación de cualquieras que coincidan, usaremos el comando Agregar (a).

He aquí el fichero con el que queremos trabajar:

cat hachando.txt

Hemos numerados las líneas para hacerlo más simple de entender.

Tipea el siguiente comando para buscar líneas que contengan la palabra "He," e inserta una nueva línea debajo de ellas:

sed '/Castro/a Poeta uruguayo' hachando.txt

Tipea lo siguiente e incluye el comando Insertar (i) para insertar la nueva línea por encima de aquellas que contienen el texto coincidente:

sed '/Castro/i Poesía Gauchesca' hachando.txt

Podemos usar el caracter et o ampersand ("&"), que representa al texto coincidente original, para agregar una cadena de texto nuevo a la línea coincidente. \1 , \2 y demás, representan las subexpresiones coincidentes.

Para agregar texto al comienzo de todas las línea, se utiliza un comando de sustitución que haga coincidir todo en la línea, combinado con una cláusula de reemplazo que combine nuestro nuevo texto con la línea original.

Para hacerlo, introduce lo siguiente

sed 's/.*/--> agregado! &/' hachando.txt

Tipea lo siguiente, incluyendo el comando G, que agregará una línea en blanco entre cada línea:

sed 'G' hachando.txt

Si deseas agregar dos, o tres líneas en blanco, puedes usar G;G, G,G,G, y así. Borrar líneas

El comando Borrar (d) borra las líneas que coincidan con el patrón de búsqueda, o aquellas líneas especificadas números de líneas o rangos de líneas.

Por ejemplo, para borrar la tercer línea, tipearíamos lo siguiente:

sed '3d' hachando.txt

Para borrar el rango de líneas siete a la doce, tipearíamos lo siguiente:

sed '7,12d' hachando.txt

Para borrar las líneas por fuera de un rango dado, usaríamos un signo de exclamación, de la siguiente manera:

sed '6,7!d' hachando.txt Guardar los Cambios

Hasta ahora, todos los resultados se han presentado en la terminal, pero no los hemos guardado en ningún lado. Para hacerlos permanente, o bien se pueden guardar los cambios en el fichero original, o redirigir la salida a un fichero nuevo.

Sobreescribir el fichero original podría parecer lo obvio a realizar, pero suele requerir amplios cuidados. Si el comando ingresado con sed es incorrecto, podría realizar cambios al fichero original que fuesen muy difíciles de revertir.

Es una buena política instruir a sed para que cree una copia de respaldo del fichero original antes de ejecutar cualquier comando.

Puedes usar la opción En el Lugar (-i) para indicar a sed que escriba los cambios al fichero original, pero si le agregas una extensión de archivo, sed procederá a respaldar el fichero original con dicha extensión. Tendrá el mismo nombre que el fichero original, pero con una nueva extensión.

Para demostrarlo, buscaremos cualquier línea que contiene la palabra "simiente" y la borraremos. También respaldaremos nuestro fichero original a uno nuevo aplicándole la extensión .BAK.

Para hacerlo así, han de ingresar lo siguiente:

sed -i'.bak' '/^.simiente.$/d' hachando.txt

Tipeen lo siguiente para asegurarte que tu fichero de respaldo no presenta cambio alguno.

cat hachando.txt.bak

También podrán tipear el siguiente comando para redirigir la salida a un fichero nuevo y lograr un resultado similar:

sed -i'.bak' '/^.simiente.$/d' hachando.txt > nuevo_hachando.txt

Utilicen cat para confirmar que los cambios han sido realizados y escritos en un fichero nuevo, como se indica a continuación:

cat nuevo_hachando.txt Habiendo dicho Todo esto

Como han notado, incluso este pequeño apunte de sed es bastante extenso. Existen muchas posibilidades para este comando, y existen muchísimas cosas que pueden realizar con él en pos de la Liberación.

Con suerte, estos conceptos básicos os habrán provisto de un cimiento sólido sobre el que podréis continuar aprendiendo. ¡saciando la sed de sed!



08 december 2022

¿Cómo fuerzo automáticamente la opción PowerMizer de nVidia en Ubuntu?

Reunido ante los trabajadores del Sindicato de Luz y Fuerza, Juan Perón expone cómo satisfacer las necesidades energéticas del Pueblo y cómo forzar de manera automática el modo PowerMizer de las tarjetas de video nVidia en Ubuntu.

¡Trabajadores!

Colma mi corazón de satisfacción el saberlos aquí reunidos en la mancomunión de voluntades que han tornado esta Organización.

Cuando unen sus energías, los hombres son capaces de hacer realidad su destino, y este no hará mas que proclamarse venturoso ante las voluntades acrisoladas por la Justicia Social.

Nuestro Movimiento se realiza toda vez que un descamisado recibe lo que merece por justo derecho. Esto, ustedes que están en Luz y Fuerza, lo han de conocer al dedillo.

Vean muchachos, el estado de energía de nuestro adaptador de video nVidia es comandado a través de rutinas del acción sobre el Bus PCI express, las cuales están localizadas en el chipset de la placa madre. El funcionamiento, en un orden adecuado, hace que la velocidad de reloj de la placa de video - y en mas raras ocasiones su voltaje) cambien de acuerdo a las necesidades de depliegue gráfico. Se permite así un uso ecológico de bajo consumo en la mayoría de los usos, y uno de mayor potencia cuando se utilizan aplicacionesa gráficas de demanda, navegadores con video, etcétera.

En Ubuntu y otros sistemas GNU con Linux, este tipo de funcionamiento puede alterarse accediendo desde el panel de control disponible con el controlador privativo de Nvidia, llamado NVIDIA X Server Settings. A través de este programa de control, podremos escoger determinados perfiles de software llamados PowerMizer, los cuales se hayan preprogramados en la placa de video.

Para ello debemos ir a Sistema / Administración / NVIDIA X Server Settings, y seleccionar la opción PowerMizer. Normalmente la encontraremos siempre en en modo Auto, lo que significa automático:

Con la opción Auto ("automático"), la placa madre de nuestro equipo estará atenta a la demanda gráfica y elegirá los perfiles de consumo como si de la marcha de un motor a explosión se tratara. Dependiendo de la tecnología del adaptador de video, podremos encontrar mayor cantidad de estados de energía/performance.

En el caso de esta placa, podremos cambiar manualmente el modo preferido de operación energética avalado por la función PowerMizer entre los modos Adaptative o Prefer Maximun Performance. Adaptative utilizará las velocidades bajas "económicas", mientras que Prefer Maximun Performance pondrá el reloj dispuesto para la función de máximo de desempeño gráfico.

Ahora bien, cuando configuramos el modo de energía preferido en la opción PowerMixer en la opción del panel de control de Nvidia en Ubuntu, esta configuración se aplicará inmediatamente, pero únicamente hasta reiniciar la sesión gráfica o reiniciar el sistema. Al producirse el reinicio, la misma se resetea y vuelve a la opción "Auto", lo que emplea la configuración Adaptative.

Esto puede oficiar un desempeño disminuido hasta tener que volver a poner PowerMixer en Maximun nuevamente. Esto puede constituir una molestia, pues toda vez que encendamos el equipo, deberíamos cambiar la opción a través de este programa de control.

Por demás, nuestro Movimiento ha de estar atento a las necesidades de cada uno de los integrantes de la Masa, pues sólo ante Dios nacemos iguales. La Justicia de los hombres, ha de proveer todo a quien lo necesite. Para ello nos hemos organizado, pero las máquinas de cómputo suelen operar bajo la misma premisa, y hemos de estar atentos también a ciertas particularidades que algún hardware pueda tener...

Vean señores, puede que ciertos modelos de chipsets integrados en algunas placas madres conflictúen al bus PCI-e, provocando que algunos modelos de tarjetas nVidia presenten problemas al cambiar automáticamente su estado de potencia o su velocidad de reloj. Esto produciría en última instancia ciertos congelado o cuelgues de apàrición aleatorios de la instancia gráfica al pasar al estado de baja energía en el modo de energía Adaptative bajo GNU con Linux

La solución ideal involucraría una actualización de BIOS de la placa madre (si es que aplica) o su recambio. Pero en otros, no quedará mas que evitar el uso de la función Adaptative, la cual es la empleada por defecto, y dejarla "en las marchas altas", el modo Prefer Maximun Performance. Esto, aunado a la aparente necesidad de hacerlo a través de controlador gráfico toda vez que la instancia gráfica se ejecute, lo torna en algo tremendamente inconveniente.

Sin embargo, nuestro Movimiento ha pensado en todo, y para todo el Justicialismo tiene solución temprana, y duradera.

Es muy conveniente saber que también podremos utilizar el programa nvidia-settings para ajustar las opciones de nuestra/s placas de video nVidia desde la terminal a través de un comando. Esto es un enorme logro que sólo ha dado el Justicialismo.

Como paso previo necesitamos conocer cual GPU (procesador gráfico) usaremos (generalmente es la gpu:0 pero puede variar si tenemos varias instaladas en nuestro sistema. Además, debemos conocer qué modos de energía tiene preprogramadas. Para ello abrimos una terminal con Ctrl+All+T e ingresamos el siguiente comando de organización: nvidia-settings -q all | grep -C 10 -i powermizer

...a lo cual nuestra terminal podría devolvernos:

Attribute 'GPUCurrentPerfLevel' (cgt:0[gpu:0]): 1. 'GPUCurrentPerfLevel' is an integer attribute. 'GPUCurrentPerfLevel' is a read-only attribute. 'GPUCurrentPerfLevel' can use the following target types: X Screen, GPU.

Attribute 'GPUAdaptiveClockState' (cgt:0[gpu:0]): 1. 'GPUAdaptiveClockState' is a boolean attribute; valid values are: 1 (on/true) and 0 (off/false). 'GPUAdaptiveClockState' is a read-only attribute. 'GPUAdaptiveClockState' can use the following target types: X Screen, GPU.

Attribute 'GPUPowerMizerMode' (cgt:0[gpu:0]): 2. Valid values for 'GPUPowerMizerMode' are: 0, 1 and 2. 'GPUPowerMizerMode' can use the following target types: GPU.

Attribute 'GPUPowerMizerDefaultMode' (cgt:0[gpu:0]): 0. 'GPUPowerMizerDefaultMode' is an integer attribute. 'GPUPowerMizerDefaultMode' is a read-only attribute. 'GPUPowerMizerDefaultMode' can use the following target types: GPU.

Attribute 'ECCSupported' (cgt:0[gpu:0]): 0. 'ECCSupported' is a boolean attribute; valid values are: 1 (on/true) and 0 (off/false). 'ECCSupported' is a read-only attribute. 'ECCSupported' can use the following target types: GPU.

Attribute 'ECCConfigurationSupported' (cgt:0[gpu:0]): 0. 'ECCConfigurationSupported' is a boolean attribute; valid values are: 1 (on/true) and 0 (off/false). 'ECCConfigurationSupported' is a read-only attribute. 'ECCConfigurationSupported' can use the following target types: X Screen, GPU.

Como vemos, se nos indica que estamos utilizando una GPU:0. En el caso de esta tarjeta de video, permite los estados 0 para Adaptative, 1 para Prefer Maximun Performance, y 2 para Auto. Tengamos presentes que normalmente al iniciar el controlador gráfico, el estado por defecto será siempre el número mas alto, que en este caso es 2 Auto.

El Justicialismo ha previsto utilizar este mismo programa nvidia-settings para alterar el estado de energía actual. Sabiendo en este caso que la GPU es la 0, y suponiendo que queremos cambiar el estado de energía a 1 Prefer Maximun Performance, podríamos utilizar el siguiente comando de organización:

nvidia-settings -a "[gpu:0]/GpuPowerMizerMode=1"

.,..a lo cual el sistema gráfico debería respondernos con un mensaje de estátus tal como:

Attribute 'GPUPowerMizerMode' (equipo:0[gpu:0]) assigned value 1.

En programa de control NVIDIA X Server debería acusar el cambio:

y si quisiéramos incluir el comando...

nvidia-settings -q all | grep -C 10 -i powermizer ....ahora su salida de la terminal sería:

(...) Attribute 'GPUPowerMizerMode' (cgt:0[gpu:0]): 1. Valid values for 'GPUPowerMizerMode' are: 0, 1 and 2. 'GPUPowerMizerMode' can use the following target types: GPU (...)

Ahora bien, como este cambios no es permanente, y se reseteará al modo 0 ("Auto") toda vez que reiniciemos el servidor gráfico, conviene agregarlo en un guión de programación.

Es sumamente sencillo. Suponiendo que quisiéramos forzar la gpu:0 el Modo a 1 Maximun Performance crearíamos un script llamado .nvidia_pwrmizer.sh que lo haga.

Desde la terminal esto será realidad efectiva introduciendo con los siguientes comandos de organización:

echo '#!/bin/bash' > ~/.nvidia_pwrmizer.sh ; echo '## Configura la opción PowerMixer de nVidia de forma fija al nivel Máximo' >> ~/.nvidia_pwrmizer.sh ; echo '#Cambia el GPUPowerMizerMode, siendo 0=Adaptative; 1=Prefer Maximun Performance; 2=Auto' >> ~/.nvidia_pwrmizer.sh ; echo 'nvidia-settings -a "[gpu:0]/GpuPowerMizerMode=1" > /dev/null' >> ~/.nvidia_pwrmizer.sh ; chmod +x ~/.nvidia_pwrmizer.sh

Ahora bien, para ejecutar este guión .nvidia_pwermizer.sh toda vez que la sesión gráfica arranque, hemos de agregarlo al fichero de autoejecución ~/.xprofile de cada usuario.

Esto se puede hacer ingresando en la terminal el siguiente bloque de comandos de organización:

echo '## Agregado por peron para forzar Modo Maximun Performance en NVidia Powermizer cada vez que se use sesión gráfica X' >> ~/.xprofile ; echo './.nvidia_pwrmizer.sh' >> ~/.xprofile

De ahora en mas, no bien el usuario inicie la sesión gráfica, el modo PowerMizer cambiará a 1 Prefer Maximun Performance automáticamente, sin que tengamos que hacer nada más que disfrutar del goce de lo bien hecho. El tiempo ahorrado podremos inventirlo en ingeniar el ocio reparador que todo Trabajador anhela y merece.



07 december 2022

¿Cómo paso Firefox a castellano en Ubuntu?

¡Trabajadores!

Nuestro Movimiento ha ofrecido a los hijos de esta tierra los logros que lo defienden no sólo como hombre de bien, sino como sujeto de Nacionalidad. Nadie puede negar que no hemos defendido el nido.

Sin embargo, a partir de la versión Firefox 89, este navegador cuenta con ciertos cambios internos importantes. Pero si bien en general reportan positivos, uno ofende nuestro espíritu y sobre todo, idioma. Al actualizarse en Ubuntu, Firefox 89 sale en el idioma inglés de Braden.

Como la elección es Braden o Perón, ustedes la zanjarán de forma muy sencilla.

En primer lugar han de desplegar el Menú de Firefox haciendo clic en el botón de las tres rayitas horizontales:

En el menú de firefox, elegirán la opción Settings ("Configuración").

Esto abrirá una pestaña desde la cual es posible modificar todos los aspectos principales del navegador, entre ellos el idioma.

Para cambiarlo al idioma castellano, en la sección General hemos de bajar hasta dar con la subsección Language ("idioma"). Normalmente estará activado English (United States), denotando el idioma Inglés estadounidense de tan grueso y metiche embajador...

Para dejarlo sin palabra, hagan clic en dicho idioma

Esto abrirá la ventana Firefox Langage Settings ("Configuración de Idioma de Firefox"). Dentro de dicha ventana es necesario agregar el idioma castellano a mano, haciendo clic en el desplegable Select Language to Add ("Seleccionar idioma a agregar")

Se desplegará una larga lista de idiomas descriptos en inglés y dispuestos en orden alfabético. Debemos buscar y seleccionar el idioma Spanish (Argentina) ("Español, Argentina").

Una vez que lo encuentren, selecciónenlo haciendo clic sobre el, y presionen el botón Add ("Agregar"). De esta manera, el paquete de idioma castellano se descargará y quedará agregado a la lista de idiomas disponibles para usar en Firefox.

Esto será evidente pues en la lista ahora aparecerá Spanish (Argentina). Normalmente aparecerá en la parte superior de la lista de idiomas (que es donde lo queremos). Si hubiese aparecido en la parte inferior de la lista debemos asegurarnos que quede en la parte superior de la lista, seleccionándolo con el mouse y presionando el botón "Up" ("Subir") para subirlo. Lamentablemente no podremos eliminar el inglés estadounidense, siempre quedará como "alternativo".

Una vez que Spanish (Argentina) está priorizado en la parte superior de la lista, presionamos el botón celeste OK y, con la velocidad del Pulqui II, la interfaz de Firefox pasará a castellano..

Y ahora, sin dudarlo, podrán emitir su voto para dejar en ridículo a Braden.



06 december 2022

¿Cómo creo una red celular 1G casera con un LimeSDR y la uso con un celular Motorola Tango 300 en Ubuntu?

La revista Primera Plana realizó el 25 de mayo de 1972 un reportaje exclusivo a Juan Perón. En él diserta allí sobre la posición política del FreCiLiNa y expone cómo crear una red 1G casera capaz de servir un celular Motorola Tango 300, empleando Ubuntu.

(...) El Frente Cívico de Liberación Nacional no tiene finalidad electoral alguna, en el sentido que comúnmente se le da a este vocablo. A nosotros, los justicialistas, electoralmente nos alcanza suficientemente con el Justicialismo. Muchos confunden revolución con golpe de Estado. La revolución se hace desde el poder y es indudable que los fines de la acción popular están dirigidos a esa revolución, que, impuesta por la evolución actual del mundo, es ya insoslayable para todos los pueblos. Tampoco nosotros podemos escapar a ello.

Es indudable que el mundo vive en estos tiempos un período de evolución profunda y acelerada. Es la consecuencia que arroja la terminación de un sistema y el nacimiento de otro. Muere de enfermedad el sistema demoliberal capitalista y nacen sistemas de base social, que se consolidan ya en el mundo con los más diversos nombres y características, obedientes a la condiciones intrínsecas de los pueblos y adecuados al pensar y al sentir de las nuevas generaciones que los impulsan.

Una de las mayores fortunas del Pueblo Argentino, azotado por la desgracia provocada por la reacción, la constituye nuestra juventud, que en la lucha de todos los días está demostrando su madurez, capacidad y decisión inquebrantable de imprimir al futuro el hálito vivificador de sus ideales, esclarecidos por su pensamiento y ennoblecido por su sacrificio. Y cuando una juventud reúne estas condiciones, la comunidad puede contar con su concurso, se puede afirmar que tiene asegurado el futuro.

Las viejas generaciones nacidas y desarrolladas al influjo de un sistema perimido tienen la obligación de dar paso a las nuevas que, representando al futuro, serán las encargadas de asegurar el destino de nuestro Pueblo. Nadie tiene más derecho que ellos que, en último análisis, serán los que han de gozar o sufrir las consecuencias del quehacer actual. Ello es lo que obliga al trasvasamiento generacional.

En todo podremos aportar la experiencia que los años nos han dado.

No sólo la Comunidad responde a este principio nodal, sino también sus redes de comunicación. La telefonía móvil - por poner un ejemplo, que lo aclara todo - comienza en la Argentina a partir de la introducción técnica del viejo protocolo AMPS de los Laboratorios Bell, al cual podríamos retroactivamente llamar 1G. Indudablemente que fue superado por las generaciones GSM 2G, 3G y actualmente apunta aceleradamente al 5G de alcance social que ha dejado al 4G demoliberal probando la dieta de polvo.

Estudiando el primero podremos consolidar lo necesario para la Liberación del Nuestros Pueblos. El Sistema de Teléfono Móvil Avanzado AMPS consistía en una tecnología de primera generación orginada en 1983, donde la voz se modulaba en una portadora de frecuencia tal como lo hacía un viejo walkie-talkie. Sin embargo, el espectro se dividía en canales separados, de los cuales un único "canal de control" era realmente digitalizado. Desde el considerando técnico, AMPS establecía los enlaces radioeléctricos por medio de radiobases celulares, utilizando la banda de frecuencia entre los 825/845 megaciclos, y los 870/890 megaciclos. La primer banda se subdividía en 21 canales de control mientras que la segunda lo hacía 395 canales de tráfico. Cada cliente suscripto a la radiobase podía operar en un canal de tráfico (si bien el máximo teórico eran 394 llamadas simultáneas, en la práctica se lograban bastantes menos). Por lo pronto, el proceso de encender el aparato portátil, suscribir automáticamente a la radiobase y llamar de forma inalámbrica era similar a utilizar un teléfono de línea común y corriente.

Su desventaja percibida radicaba en el costo inicial. La prestación del servicio se intentó comercializar con el esquema "tiempo de aire + pulso telefónico", y "pagar para recibir llamadas". La decisiva función de "Roaming" (consistente en poder "transitar" entre el área de cobertura de las distintas radiobases de manera continua), se cobraba como una función opcional "de valor agregado". Esto lo dejaba únicamente al alcance del oligarca.

Pero sin duda, la mayor desventaja real de AMPS hacía a su transmisión modulada analógicamente. Toda llamada en curso podía ser demodulada y monitoreada con cualquier receptor de radio FM capaz de sintonizar las bandas. Tal como dice el dicho, era como el indio gritando al viento.

Este es el motivo por el cual los scanners radiales tipo ICOM tienen "tapada" la banda que atravieza los 800/900 megaciclos en el espectro radioeléctrico (en los 950 megaciclos se encontraban los teléfonos o intercomunicadores inalámbricos comunes). Sólo un iluso piensa que pelado nace el mono... este límite tontorrón puede desbloquearse hackeando el receptor para hacer realidad efectiva aquel viejo anhelo del Pueblo de oír conversaciones de todo tipo.

De todo se aprende y hoy es sabido que hemos de advocar de forma ineludible el empleo de tecnologías de total encriptación punto a punto, y preferentemente en latifundio del usuario. Marcaremos así un esquema que no sólo escape del control del proveedor de telefonía móvil, sino que llegado el caso hasta le sea hostil si osara violentarlo.

Lamentablemente los microcontroladores de los 80s carecían de la potencia de cómputo requerida para afianzar la encriptación segura, por lo cual los canales digitales bajo AMPS únicamente acomodaban los enlace por suscripción a las células. Fue únicamente la aplicación del sistema de "quien llama, paga" y el GSM del Justicialismo lo que popularizó los teléfonos celulares y los puso en el bolsillo de todos.

Para finales de los 90s la tramitación del servicio celular contaba ya tres operadoras mas, CTI Móvil, Unifón, y Personal.

Parecería que el sistema AMPS cayó entonces en saco roto. No queda en el mundo ninguna antena AMPS, pues fueron declaradas obsoletas en 2007. Aún así, gracias a la contribución representada por el Proyecto de software libre OSMOCOM-Analog y la tecnología de hardware libre en SDR, se nos hará posible conformar una red radioeléctrica local sobre AMPS, para realizar una prueba piloto de corto alcance. Esto obrará no sólo para enseñanza y fines demostrativos o de exhibición temporal, sino que renueva ese émulo de la acción del justicialismo según la cual se conduce un país en pleno Siglo XIX haciendo uso de un aparato que sólo estaba tirado en un cajón.

En este caso haremos volver a la vida un Motorola Tango 300. Se trata de un comunicador sólido favorito de la UOCRA pues lo apodaban "el ladrillo", provisto de antena plegable e inicialmente con baterías de Níquel-Cadmio, pero yo las utilizaré con las mejoradas batería de Niquel-Metalhidruro.

Para iniciar nuestra micro-red, necesitamos algunos componentes:

Un SDR (Radio Transmisor definido por Software). Son transceptores programables, de los cuales existen una buena serie. Idealmente debemos contar con uno provisto de interfaz USB y dotado con la capacidad de enviar y recibir señales de banda amplia en modo full-duplex (transmisión y emisión simultánea). En particular utilizaré un LimeSDR Mini de Lime Microsystems, que viene en forma de plaquita pero de momento requiere compilar su controlador libre. Bajo USRP funcionan perfectamente y existen otros que también operan sin problemas bajo GNU con Linux.

Sistema GNU con Linux con puerto USB potenciado. Incluso se puede utilizar incluso  Raspberry Pi 4, pero cuidando en tal caso de contar con un buen adaptador de corriente, pues el transmisor se alimenta por el puerto USB.
Suite de software para controlar el SDR. Para AMPS podemos usar esmocom-analog. Se trata de una suite de control desarrollada por Andreas Eversberg, pensada para permitir a los adaptadores SDR como el LimeSDR, LimeSDR Mini o compatibles, hacer que cierto hardware analógico de telefonía celular desfasada vuelvan a la vida nuevamente. También se podría utilizar gr-amps en los dispositivos SDR que lo contemplan.

Instalar software de control necesarios

En primer es útil actualizar el software instalado en nuestro GNU con Linux e instalar librerías de compilación, si es que no las tuviésemos instaladas aún. Para abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

sudo apt-get update ; sudo apt-get install git build-essential autoconf gcc make cmake libasound2-dev pkg-config

El sistema nos solicitará nuestra contraseña de Conductor, y no bien la introduzcamos "a ciegas" y presionemos Intro (no lo presenta en pantalla), se descargará e instalarán las dependencias.

Acto seguido, hemos de instalar la librería SoapySDR compatible, la cual será necesaria para compilar el controlador del transmisor. Hemos de notar que, si bien de momento la versión 0.8 de SoapySDR está liberada, osmocom-analog está escrito para utilizar la versión 0.7 de SoapySDR de momento. Es por este motivo que utilizaré dicha versión aunque esto podría cambiar en un futuro muy cercano.

Para compilar SoapySDR 0.7 ingresaremos los siguiente bloque de comandos de organización: wget https://github.com/pothosware/SoapySDR/archive/refs/tags/soapy-sdr-0.7.2.tar.gz ; tar -xf soapy-sdr-0.7.2.tar.gz ; cd SoapySDR-soapy-sdr-0.7.2 && mkdir build && cd build ; cmake .. ; make -j4 && sudo make install && sudo ldconfig ; cd ../..

En el caso de utilizar USRP (radios definidas en un FPGA), deberán obligatoriamente compilar la librería soapyUHD que los controla específicamente. Naturalmente, esto es opcional si no usamos USRP. sudo apt-get install libuhd-dev uhd-host ; wget https://github.com/pothosware/SoapyUHD/archive/refs/tags/soapy-uhd-0.4.1.tar.gz ; tar -xf soapy-uhd-0.4.1.tar.gz ; cd SoapyUHD-soapy-uhd-0.4.1 ; mkdir build && cd build ; cmake .. ; make -j4 && sudo make install && sudo ldconfig ; cd ../..

Como en mi caso utilizo el LimeSDR Mini, he de compilar su librería LimeSuite: wget https://github.com/myriadrf/LimeSuite/archive/refs/tags/v20.10.0.tar.gz ; tar -xf v20.10.0.tar.gz ; cd LimeSuite-20.10.0 ; mkdir build && cd build ; cmake .. ; make -j4 && sudo make install && sudo ldconfig ; cd ../..

Y finalmente, descargamos, compilamos e instalamos el software osmocom-analog, liberado bajo GPLv3:

git clone git://git.osmocom.org/osmocom-analog ; cd osmocom-analog ; autoreconf -if ; ./configure ; make -j4 ; sudo make install ; cd .. Armar la radiobase

Conforme todo el software de liberación esté cargado en nuestro sistema GNU con Linux, habremos de conectar el SDR al puerto USB. Conviene que la plaquetita tenga su cobertor de aluminio y colocadas sus antenas provistas. En el caso del LumiSDR, se enciendederá su pintona LED Standby de borde, lo cual le confiere una apariencia de maligna cucaracha radioactiva peronista.

¡El Justicialismo hará algo que la Oligarquía nunca hizo!. Lo ofrendaremos al Pueblo como si fuesen las bicis, muñecas, o las lanchitas putt-putt de la Fundación Eva Perón!

Para hacerlo, en la terminal ingresamos el siguiente Comando de Organización: sudo amps --sdr-soapy --channel 334 --channel 332 --samplerate 256000

Este propondrá la apertura de dos radiocanales de operación: un canal de control 334 y un canal de voz 332 (el núimero total de canales debería ser igual al número de líneas que queremos servir más una). Opcionalmente también podremos ajustar las variables --tx-power (potenicia de salida) y --rx-sesitivity (sensitividad de recepción) si necesitamos hacerlo. En esta prueba piloto no debería ser necesario.

Si todo funciona correctamente, el software dará de alte la radiobase (naturalmente, desde nuestra humilde cucaracha LimeSDR), y tras presentar lindos arte ASCII en la consola de nuestra terminal y quedará en standby, pidiéndonos un número de suscriptor para discar.

Al encender el celular con el botón PWR, el Tango 300 hará un tono "bep" recibirá datos desde el canal de control que acabamos de abrir, y cual drácula salido de su ataúd sus LED de status cambiarán a "On". Pero al instante indicará en rojo "NS" ("Sin señal") en el display.

El motivo es que el Identificador (ID) denunciado por esta radiobase "peronista" no coincide ni por asomo con el ID de radiobase "local" esperado por este teléfono. Para ello debemos activarle la función de Roaming. ¡Total, no vamos a cobrarnos roaming a nosotros mismos! En el Tango 300 presionamos el botón FNC y usamos la flecha arriba para buscar la función ROAM (la primera), y activarla con SEND. Si todo va bien, se iluminará "ROAM" en naranja sobre el display, y el Tango 300 se suscribirá a la base con un nivel de señal digno.

Podremos llamar desde la línea asignada para la radiobase (123456) al celular. En la terminal ingresamos el número de la línea del celular y presionamos la tecla Intro.

Debería marcar y sonar nuevamente el ya casi olvidado y característico tono del Tango 300 (indicando CALL). Debemos poder "descolgar" con SEND responder. Desde la terminal podremos hacérselo a través de un micrófono y oir por los altavoces. Podremos colgar la llamada desde la terminal con la tecla h y en el teléfono con END.

En la terminal se presentará la bitácora de llamada con los datos extendidos de la misma:

Si deseamos llamar desde el teléfono a la radiobase, podremos utilizar el canal asignado, con 1234+SEND. También podríamos llamar a otro teléfono suscrito a la misma radiobase (aunque en este caso estaríamos en la misma localización, naturalmente).

Durante la llamada, es interesante observar las gráficas de pico de las señales AMPS en el espectro radioeléctrico en ASCII, gracias a LimeSuite.

También podríamos observar una gráfica de cascada profesional y mas detallada con el programa fl-digi. El canal de control y el audio modulado aparecerán lado a lado en la banda amplia correspondiente al espectro de los sub 950mhz de AMPS.

Como podemos ver, realmente es posible sintonizar en el canal y escuchar la voz, que se está enviando al teléfono (el segundo canal de subida o uplink localizado en otra frecuencia).

Como corolario podremos conocer que los conectores opcionales se pueden emplear dos antenas por medio de cables coaxiales unidos a sus conectores F.

Con ello podrían (si tuviesen las ganas) establecer radiobases o directamente plantas transmisoras como las anteriores, con este viejo estándar AMPS. Sin embargo, el Justicialismo es un sistema creado para la Argentina y para los argentinos. Me consta que grandes sectores de la población de nuestros hermanos continentales lo comparten, pero de allí a que sea el Justicialismo una fórmula o esquema continental, media un abismo. Creo que cada uno de nuestros países y de nuestros pueblos debe asimilar un sistema que congenie con sus propias características y condiciones. Naturalmente, desde que todos nuestros países aspiran igualmente a su liberación del neocolonialismo que los está asfixiando.

Como el Movimiento Justicialista es por antonomasia de liberación, resulte común en muchos aspectos de la situación imperante en todo el Continente Latinoamericano. De allí que yo, como creador del sistema, sea conocido y apreciado en muchos sectores de los países hermanos del mismo. El problema de la integración continental, en auge en estos momentos en casi todos los países latinoamericanos, ha sido también causa de mi acercamiento a esos sectores. No hay que olvidar que ya en 1949, con el Tratado de Complementación Económica firmado en Santiago de Chile, se echaron las bases para la comunidad económica latinoamericana, que si no se ha realizado, no por eso ha dejado de existir el empeño de llevarlo a cabo algún día. Como yo he sido el "culpable" de todo eso, es natural que los latinoamericanos, que piensen como yo que "el año 2000 nos encontrará unidos o dominados", mantengan sus esperanzas vivas y puestas en alcanzar tan grande objetivo. Conclusión

El sistema AMPS había aparentemente caído en saco roto, pero como ha quedado demostrado por la práctica, puede ser evaluado con propósitos educativos gracias a este proyecto osmocom-analog.

Utilizando un SDR se puede aprender cómo operaba una red de telefonía celular 1G. El sistema en ALPS en sí funciona bien a pesar del hecho que fue desarrolado en 1983. El proceso de discar el número o contestar la llamada con un celular "ladrillo" es similar a hacerlo con un teléfono de línea común y corriente. La calidad de sonido de la tecnología de FM con modulación a 12Khz es excelente, y da comprensión cabal de las críticas producidas al cambiarse la tecnología a GSM, la cual contaba con el pésimo sonido acuoso y pastoso por sobrecompresión.

La privacía de las llamadas con estos movicones era un gravísimo problema pero muy pocos estaban en aviso, y más de alguno se habrá comido un sapo...



05 december 2022

¿Como hago funcionar una sintonizadora DVB-S/S2 e ISDB-T TBS6522 en Ubuntu?

Al ser designado Secretario de Trabajo y Previsión, Juan Perón inicia un inusitado accionar tendiente a realizar las reivindiaciones de los trabajadores Argentinos, acción que definiría en su Discurso de Asunción. En tal exposición, educa sobre cómo configurar la placa sintonizadora de TV digital satelital y terrestre TBS6522 y similares en Ubuntu.

Excelentísimo Señor Presidente:

Es para mí un insigne honor este cargo de Secretario del Trabajo y Previsión,. que representa un salón mas que se clava en la obra constructiva inspirada en la Revolución del 4 de julio. Ello, obliga particularmente mi gratitud, y aviva mi entusiasmo para colaborar en la obra fecunda.

No he desmayado en las tareas de mi obligación, y las redoblaré aún, llegando hasta el límite de la resistencia humana si eso es preciso para cumplir en la mejor forma, y quedar ante el honor que me han dispensado, y la gratitud a la que me han obligado.

Con el apoyo del enorme y apretado haz de voluntades que integran la Masa Obrera Argentina, confío seguir manteniendo en alto la bandera de otras reivindicaciones sociales a lograr para el trabajador urbano y rural.

Vivíamos un régimen social también de lucha. Los patrones, guiados por un egoísmo y una avaricia que no se justifica en nuestros días, crearon el problema de la lucha entre ellos y sus obreros. Afortunadamente en este bendito país existen patrones que hacen honor a su nombre de tales. Pero esa lucha entre los trabajadores y los patrones, es también un índice de destrucción incompatible con progreso económico y moral de la Nación. Es necesario repetirlo una y mil veces para que se grabe profundamente en la conciencia de todos los argentinos, que no deben haber luchas en el campo gramial. Porque el Estado, que hará de Juez Supremo y sin apelación en los conflictos del trabajo, dilucidará y juzgará y dicatará fallos de acuerdo a la justicia mas humana que legal.

Y entre estas, sin duda está la puesta en marcha del mejor hardware para el Pueblo, destinado éste a la sintonía de la TV digital en todos sus ámbitos, ya sea satelital como terrestre.

Nuestro Movimiento puede contar hoy con la potencia la tarjeta adaptadora TBS TBS6522 en Ubuntu.

Esta tarjeta sintonizadora de TV, permite facilitar enormemente la sintonía de canales de TV digital, ua que solo se necesita conectar otro cable de señal en lugar de sacar la tarjeta del equipo. Con sus dos sintonizadores integrados, la TBS6522 permite al Pueblo ver el canal de televisión de un transpondedor / satélite mientras graba otro canal desde otro transpondedor / satélite al mismo tiempo.

A su vez, gracias a programas libres, se pueden realizar retransmisiones de IPTV en redes locales o de área amplia. Uno de los sintonizadores permite sintonizar para equipamiento de televisión digital satelital, en los formatos DVB-S2x/S2/S. El otro en tanto es capaz de operar como sintonizador de televisión digital terrestre, con el formato ISDB-T utilizado en la Argentina, el Japón y Brasil, pero también los estándares europeos DVB-T2/T/C2/C.

En Ubuntu sería ingresar las siguientes órdenes en tu terminal:

Primero instalo las dependencias:

sudo apt update sudo apt install git vlc kaffeine patchutils libproc-processtable-perl dvblast build-essential checkinstall gcc dvb-apps linux-headers-$(uname -r)

Luego bajo y descargo todos los archivos de firmware para las tarjetas TBS:

mkdir /tmp/firmwares/ cd ~/tmp/firmwares/ ; wget http://www.tbsdtv.com/download/document/linux/tbs-tuner-firmwares_v1.0.tar.bz2 ; tar jxvf tbs-tuner-firmwares_v1.0.tar.bz2 ; rm tbs-tuner-firmwares_v1.0.tar.bz2 ; sudo cp /tmp/firmwares/*.fw /lib/firmware/

Conforme hayamos instalado el los firmwares de la TV digital, podremos descargar ahora el código fuente para el controlador libre de TBS y compilarlo en nuestro sistema. Esto lo haremos con:

mkdir ~/.tbsdriver/ cd ~/.tbsdriver/ git clone https://github.com/tbsdtv/media_build.git git clone --depth=1 https://github.com/tbsdtv/linux_media.git -b latest ./media cd media_build make dir DIR=../media make distclean make -j4 sudo make install

Todo esto compila el controlador de la TBS. Si por algún motivo diese error, podríamos utilizar:

cd ~/.tbsdriver/ wget http://www.tbsdtv.com/download/document/linux/media_build-2020-09-23.tar.bz2 sudo rm -rf /lib/modules/uname -r/kernel/drivers/media/ tar jxvf media_build-2020-09-23.tar.bz2 cd media_build sudo ./install.sh

Finalmente y reiniciamos el equipo con:

sudo reboot

A la vuelta de Ubuntu, podríamos abrir una terminal e indicar el siguiente comando:

dmesg | grep frontend

...y deberían indicarse los dos sintonizadores que componen la plaqueta TBS6522, nomenclados como adapter0 y adapter1.

Nota: Si actualizamos el kernel (algo que tiene cierta regularidad en Ubuntu), deberíamos recompilar el controlador y volverlo a instalar en la nueva versión del kernel para que vuelva a funcionar. Ello lo haríamos con:

cd ~/.tbsdriver/media/ git remote update git pull cd ~/.tbsdriver/media_build git remote update git pull make sudo make install

Usar Kaffeine para sintonizar con la placa TBS6522 en Ubuntu

Pues bien, con Kaffeine podremos sintonizar la TV digital Satelital o Terrestre sin muchos problemas.

Para abrir Kaffeine vamos a Aplicaciones / Sonido y Video / Kaffeine.

Luego vamos al menú Televisión / Configurar Televisión y bajamos la listas de transpondedores satelitales haciendo clic en el botón "Actualización de Datos de exploración mediante internet"

A continuación podremos asignar satélite al sintonizador. Para ello escogemos la solapa Dispositivo1 (que sería el sintonizador satelital), y luego mediante el campo Origen seleccionamos el satélite que querramos (por ejemplo el AMC6 72W / ArSat1, Arsat2, HispaSat 30W, etc. Luego seleccionamos el Television / Canales y en el cuadro que aparezca presionamos el botón Iniciar Exploración. Kaffeine comenzará a explorar en busca de los Mux satelitales correspondientes. Tras detectar los servicios satelitales, debemos seleccionar los que querramos (idealmente todos ellos) y presionar el botón Añadir Seleccionado, y luego presionar Aceptar. Ahora podremos escoger la función "Ver TV" de Kaffeine para ver los canales que anhelamos.

Para sintonizar los canales de la TV digital Terrestre, escogemos en sintonizador Dispositivo 2 (el sintonizador que representa la TV digital). Al seleccionar los Canales, los escaneamos de la misma manera que a los satelitales, presionando el botón Iniciar la Exploración , y los agregamos a la lista.

Kaffeine nos permitirá contar con una EPG o guía de programación electrónica, con detalle de los programas y horarios dentro del Mux.

Escaneado de TV Digital desde la terminal en Ubuntu Se puede usar el programa DVBBlast, para hacer la selección de banda y el escaneo satelital Para escanear TV Digital Satelital en formato DVB-S/S2:

Para escanear con el adapter0 de la placa desde la terminal:

cd /dev/dvb/adapter0 sudo ln -s demux0 demux1 sudo ln -s dvr0 dvr1

Y ponemos a dvblast a escanear el rango de frecuencias de DVB-S/S2:

sudo dvblast –f 12538000 –s 41250000 –v 13 –a 0 –n 1 DVBS sudo dvblast –f 12660000 –s 45000000 –v 13 –m psk_8 –a 0 –n 1 DVBS2 sudo dvblast –f 12630000 –s 43200000 –v 18 –m psk_8 –a 0 –n 1 DVBS2

Para escanear con el adapter1:

cd /dev/dvb/adapter1 ln -s demux0 demux1 ln -s dvr0 dvr1

Y ejecutamos dvblast

dvblast –f 12538000 –s 41250000 –v 13 –a 0 –n 1 DVBS dvblast –f 12660000 –s 45000000 –v 13 –m psk_8 –a 1 –n 1 DVBS2 dvblast –f 12630000 –s 43200000 –v 18 –m psk_8 –a 1 –n 1 Para escanear el formato de TV digital terrestre europeo DVB-T/T2:

...con el sintonizador adapter0:

sudo dvblast –f 474000000 –b 8 –a 0

...con el sintonizador adapter1:

sudo dvblast –f 650000000 –b 8 –a 1 Para escanear en formato satelital DVB-C:

...con el sintonizador adapter0:

sudo dvblast –f 474000000 –s 6900000 –a 0 -5 DVBC_ANNEX_A

...con el sintonizador adapter1:

dvblast –f 474000000 –s 6900000 –a 1 -5 DVBC_ANNEX_A

Configurar Televisión digital Terrestre (TDA) ISDB-Tb con la placa TBS-6522 en Ubuntu

Si queremos ver la TV digital terrestre (TDA) en la norma local, debemos conectar una antena UHF exterior a alguno de los sintonizadores (preferiblemente, adapter0).

Una vez hecho esto, creamos una lista con las frecuencias de los canales de la TDA. Para ello ingresamos:

nano ~/.frec_canales_tda.conf

Se abrirá el editor de texto GNU Nano con un archivo vacío. Simplemente le pegamos el siguiente contenido:

Canales UHF del 14 to 69 en el sistema argentino de televisión digital terrestre SATVD-T, TDA

T 473142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 14 T 479142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 15 T 485142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 16 T 491142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 17 T 497142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 18 T 503142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 19 T 509142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 20 T 515142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 21 T 521142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 22 T 527142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 23 T 533142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 24 T 539142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 25 T 545142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 26 T 551142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 27 T 557142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 28 T 563142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 29 T 569142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 30 T 575142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 31 T 581142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 32 T 587142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 33 T 593142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 34 T 599142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 35 T 605142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 36

canal 37 no se usa

T 617142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 38 T 623142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 39 T 629142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 40 T 635142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 41 T 641142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 42 T 647142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 43 T 653142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 44 T 659142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 45 T 665142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 46 T 671142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 47 T 677142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 48 T 683142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 49 T 689142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 50 T 695142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 51 T 701142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 52 T 707142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 53 T 713142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 54 T 719142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 55 T 725142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 56 T 731142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 57 T 737142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 58 T 743142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 59 T 749142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 60 T 755142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 61 T 761142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 62 T 767142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 63 T 773142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 64 T 779142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 65 T 785142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 66 T 791142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 67 T 797142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 68 T 803142857 6MHz 3/4 AUTO AUTO AUTO AUTO NONE # canal 69

...y guardamos con Ctrl+o y salimos del editor con Ctrl+q.

Ahora escaneamos los canales ISDB-T de la TDA con:

scan .frec_canales_tda > .canalestdaencontrados.conf

La placa escaneará el espacio radioeléctrico y almacenará los canales encontrados en el archivo .canalesencontrados.conf correspondiente.

De ahora en adelante, para ver la TV digital terrestre con los canales encontrados podremos usar el VLC con:

vlc .canalestdaencontrados.conf

O bien podremos crear un lanzador para dicho comando, a fin de tener un ícono a mano y no tener que tipear esto, que naturalmente nos da cansancio.

Lo bueno de contar con una placa de dos sintonizadores es que podremos sintonizar dos señales a la vez. O ver un canal mientras grabamos otros. Esto es sencillo en VLC o Kaffeine indicando el adapter0 o adapter1. Para grabar en formato TS ("Transport Stream") simplemente oprimimos el botón Grabar ("Rec").

Será sencillo crear entonces incluso un servidor de TV digital te IPTV con tvheadend.



04 december 2022

¿Cómo simulo sintetizadores clásicos de Roland en Ubuntu?

Entrevistado en una nota de color de la revista Radiolandia, Juan Perón muestra sus instrumentos y enseña cómo instalar en Ubuntu versiones VST para emular los sintetizadores Roland Juno-60, Jupiter-8 y SH-101 que darían sonido peronista a los ochentas.

(...)

En aquellos escasos momentos que la Conducción del Movimiento me deja libre, me dedico a conducir otro Movimiento: el musical.

Es indudable que Ubuntu, con su enorme potencialidad sónico, se convierte en un instrumento primordial para cultivar este arte, practicarlo, pero también producir las más movedizas pistas. Y todo ello a poco costo.

Parecería fundamental para esto es la posibilidad de utilizar MIDI y controlar instrumentos de síntesis. Pero ni siquiera lo necesitamos. El avance de la técnica nos permite hoy contar con instrumentos virtuales, a los que podremos dar rienda suelta utilizando nuestro sistema munido de software libre.

Instalar plugins adicionales para este menester no es secreto: sobre esta práxis me he hecho perito, y me he extendido para beneficio de una Masa que todo lo merece aquí.

Estos plugins gratuitos son excelentes, y en particular aquellos patrocinados por la casa TAL. Normalmente recomiendo mucho las versiones LV2, ya que se integrarán a la perfección con nuestro sistema de arquitectura libre, y nos permite desplegar una plétora de sonidos novedosos para todo tipo de necesidades musico-productivas.

Pero en ocasiones otras son las necesidades. Podría en ciertos casos muy especiales, contar con otro formato más extendido. Uno de ellos sin duda es el VST, y su iteración más actual, la VST3. Estos normalmente están destinados a equipos con software privativo, pero Ubuntu es capaz de adaptarlos, y con poca penalidad de cómputo (salvo por lo que respecta al licenciamiento de tal software).

En este caso os mostraré unos que están disponibles en forma de demo limitado (incluye una rutina que dispara un ruido blanco cada minuto). A pesar de esta notable limitación, servirán para generar efectos y sampleos si los grabamos en el momento adecuado.

He hecho público ya que - junto con el sintetizador FM aditivo DX7 IIFD de Yamaha, otro de mis instrumentos favorito corresponden al dinosaurio hervíboro Roland Juno-60. Se trata de un sintetizador sustractivo monotímbrico capaz de usar - por vez primera - 56 memorias digitales programables ("patches") gracias a su CPU Zilog Z80. Con sus fundamentales osciladores de control digital (DCO), permitía el tono clásico del pop de inicio de los 80s sin desafinar.

Pero sin duda mi favorito es el mastodónico Roland Jupiter-8, inabarcable sintetizador polifónico miltitímbrico a 8 voces, cada una con 2 osciladores controlados por voltaje. En la cadena de audio también formaban parte un filtro pasabajos, un par de generadores de envolvente ADSR y una miríada de opciones de modulación, incluyendo cruzada. Se puede dividir el teclado con dos sonidos, sincronizar los osciladores, filtrado de 12bB o 24 dB por octava, portamento polifónico, etcétera.

Con su sonido pulido saco todos los de Perón-Perón y Durán-Durán, Deepeche Mode, Giorgio Moroder, Haroldo Faltermeyer, los del medio de Michael Jackson, unos pocos de Queen, los últimos de Marvin Gaye, etcétera.

Sin embargo estos cuestan una fortuna, y en su iteración original carecían de intercomunicación digital estandarizada MIDI.

El objetivo del Justicialismo es ofrecer Todo para Todos. Es por ello que en este caso os ofreceré sucedáneos para que - gracias al software libre - puedan contar con tan clásicos aparatos de generación musical.

La instalación del los plugins VST puede parecer compleja. Pero nos vendrá bien utilizar la terminal, pues facilitará la extensa tarea a pegar únicamente el siguiente bloque de Comandos de Organización:

creación de directorios ;

mkdir ~/.vst/ ~/.vst3/ ; mkdir ~/.vst/tal/ ; mkdir /tmp/plugins/ ; mkdir /tmp/plugins/presets/ ;

TAL-U-NO-LX ;

mkdir /tmp/plugins/tal_uno/ cd /tmp/plugins/tal_uno/ ; wget https://tal-software.com/downloads/plugins/TAL-U-NO-LX-V2_64_linux.zip ; unzip TAL-U-NO-LX-V2_64_linux.zip ; mv /tmp/plugins/tal_uno/libTAL-U-NO-LX-V2.so ~/.vst/tal/ ; mv /tmp/plugins/tal_uno/TAL-U-NO-LX-V2.vst3/ ~/.vst3/ ;

Pack de presets para TAL-U-NO-LX

mkdir ~/.vst3/TAL-U-NO-LX-V2.vst3/Contents/Resources/ cd ~/.vst3/TAL-U-NO-LX-V2.vst3/Contents/Resources/ wget https://tal-software.com//downloads/presets/Fantomatica_Presets.zip ; wget https://tal-software.com//downloads/presets/Symbiotic_Sounds_Presets_for_TAL-U-NO-LX-V2.zip ; wget https://tal-software.com/downloads/presets/FMR%20Factory%20Presets%20Bank.zip ; wget https://tal-software.com/downloads/presets/Krezie-Synthwave-for-TAL-U-NO-LX.zip ; wget https://tal-software.com/downloads/presets/Tronsonic%20Presets%20Bank%20.zip ; wget https://tal-software.com/downloads/presets/Orion-106.zip ; wget https://tal-software.com/downloads/presets/TwolegsToneworks_-_TAL-U-No-LX_Bank.zip ; unzip Fantomatica_Presets.zip ; unzip Symbiotic_Sounds_Presets_forTAL-U-NO-LX-V2.zip ; unzip FMR%20Factory%20Presets%20Bank.zip ; unzip Krezie-Synthwave-for-TAL-U-NO-LX.zip ; unzip Tronsonic%20Presets%20Bank%20.zip ; unzip Orion-106.zip ; unzip TwolegsToneworks-_TAL-U-No-LX_Bank.zip ; rm ~/.vst3/TAL-U-NO-LX-V2.vst3/Contents/Resources/*.zip ;

TAL-J-8

mkdir /tmp/plugins/tal_j8/ ; cd /tmp/plugins/tal_j8/ ; wget https://tal-software.com/downloads/plugins/TAL-J-8_64_linux.zip ; unzip TAL-J-8_64_linux.zip ; mv /tmp/plugins/tal_j8/libTAL-J-8.so ~/.vst/tal/ ; mv /tmp/plugins/tal_j8/TAL-J-8.vst3/ ~/.vst3/ ;

Pack de presets para TAL-J-8 ;

mkdir ~/.vst3/TAL-J-8.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-J-8.vst3/Contents/Resources/ ; wget https://tal-software.com/downloads/presets/tal-j-8_factorypresets.zip ; wget https://tal-software.com/downloads/presets/TAL%20J-8%20Presets%20by%20Heat%20Audio.zip ; wget https://tal-software.com/downloads/presets/Funkybots_TAL_J-8_Presets.zip ; wget https://tal-software.com/downloads/presets/Xenos_Soundworks_TAL-J-8.zip ; wget https://www.dropbox.com/s/xpwy6b20x96rnmo/Realistortion%27s%20Preset%20Pack.rar ; unrar x Realistortion\'s\ Preset\ Pack.rar ; unzip Funkybots_TAL_J-8_Presets.zip ; unzip 'TAL J-8 Presets by Heat Audio.zip' ; unzip 'TAL-J-8 - Saif Sameer [72 presets].zip' ; unzip tal-j-8_factorypresets.zip ; unzip Xenos_Soundworks_TAL-J-8.zip ; mkdir ~/.vst3/TAL-J-8.vst3/Contents/Resources/lee/ ; mkdir ~/.vst3/TAL-J-8.vst3/Contents/Resources/arcade/ ; cd ~/.vst3/TAL-J-8.vst3/Contents/Resources/arcade/ ; wget https://tal-software.com/downloads/presets/Arcade%20Summer%20J-8%20Free.zip ; unzip Arcade\ Summer\ J-8\ Free.zip ; rm Arcade\ Summer\ J-8\ Free.zip ; cd ~/.vst3/TAL-J-8.vst3/Contents/Resources/lee/ wget https://tal-software.com/downloads/presets/lee_TAL_J-8_Presets.zip ; unzip lee_TAL_J-8_Presets.zip ; rm lee_TAL_J-8_Presets.zip ; cd ~/.vst3/TAL-J-8.vst3/Contents/Resources/ ; rm .zip ; rm .rar ; rm -r __MACOSX/ ;

TAL U-NO-LX-V2 es un plugin VST polifónico de hasta 12 voces, capaz de oficiar de sintetizador analógico virtual en sintonía con el Roland Juno-60. Esta emulación lo que lo convierten en un buen reemplazo para este dispositivo analógico, con todas las ventajas de los plugins por software.

Como en el Juno original, tebemos una etapa de dos osciladores por voz, y etapa de filtrado de amplio espectro, con 24 dB de atenuación. Contamos con la envolvente ADSR (de la cual la función de Decay era realmente importante). También disfrutamos de los dos canales de coros activables, que sobredimensionaban la síntesis dándole su potencia tan característica.

Era típico utilizar el Juno-60 asociado a un arpeggiador MIDI externo. En este caso se incluye un arpeggiador integrado al VST, con modo HOLD (continuo), Reloj MIDI, y Note ON. Este arpeggiador replica al original, con algunas funcionalidades agregadas, como la de asignar de manera graduada la respuesta del arpeggiado al teclado.

Por sobre el instrumento, TAL-U-NO-LX soporta portamento, pedal de sustain, Modo Mono, y diferentes formas de onda para los LFO, y algunas otras características útiles. Dispone de una envolvente muy rápida con un roll-off buscadamente impreciso, y curvas de filtrado muy suaves, para lograr el típico sonido del Juno.

En cuanto a las posibilidades MIDI, el VST recibe datos en el Canal MIDI 1 en cualquier programa MIDI. Todos los deslizadores y potes son asignables a controles MIDI por medio de la función MIDI Learn. Para activar la función de MIDI Learn se debe mover con el mouse el pote o control que queremos asignar, luego presionar el botón MIDI Learn, y finalmente accionar el control MIDI. Una vez que hemos hecho esto, desactivamos la función MIDI Learn y ya debería quedar memorizado.

En cuanto a los presets, se incluye el banco "Factory Preset A" con unos 85 parches, pero si han utilizado el script de descarga del Justicialismo, podrán acceder a la Librería de Presets con unos 300 patches históricos, lo que nos otorga una paleta sonora inigualable.

El TAL J-8 en tanto, es un instrumento virtual basado en otro sintetizador de FM sustractivo por excelencia: el superclásico de inicios de los 80s, el Roland Jupiter-8.

Se usó uno de estos para modelar el filtrado y la resonancia. Gracias a su motor de audio simulado de FM, se genera el audio a directamente en tiempo real, sin necesidad de usar muestras digitales. Cuenta con todas las posibilidades infinitas de modulación que permite el instrumento real, con características útiles como la sección de calibración, ¡que puede hacer gritar a toda la sección de filtros!

El flujo de señal es completamente estéreo, con la consabida opción UNISON y control de la apertura de los osciladores controlados a voltaje. Naturalmente con el script que les he provisto, os acerco el justicialismo que permiten más de 300 preseteos, para encontrar todos los sonidos que anhelan.

En cuanto a sus presets, se ofrece con unos 30 parches históricos, pero al haber descargado con el script justicialista, encontrarán una librería de unos 73 parches.

Como ya expliqué, recomiendo las versiones libres LV2 de estos plugins TAL provenientes del Proyecto Disthro, la cual compendia la mayoría de estos plugins en versión definitiva y sin tener que pagar una chirola. Pero si por algún motivo en especial preferimos las versiones VST o VST3 del mismo en paquetes para Ubuntu, bien podríamos utilizar estas Demos.

Estas cuentan con el inconveniente de adquirir reuido blanco una vez por minuto. Sin embargo, cuando hay hambre el pan de mijo sirve. No será difícil con un poco de ingenio aplicar estos plugins a una grabación "en diferido" y grabar "de a un minuto de audio por vez" hasta completar la duración de lo que queremos hacer. Esto no es difícil de hacer en cualquier multipista, como qTractor o Ardour. Naturalmente que abonar lo solicitado por el fabricante nos evitará esta molestia.

En esta tanda se incluyen el TAL-BassLine-101, un instrumento virtual basado en sintetizador monofónico, claro émulo del Roland SH-101 (aquel instrumento vilipendiado por la academia redescubierto por los grasitas de la scene House. Produce el típico sonido crudo y acidón, al que podremos adornar con efectos.

El TAL Reverb 4 es completamente funcional, y representa las típicas reverbs ochentosas. Ningún lento puede sobrevivir sin estas.

TAL-Chorus-LX es una versión Standalone del coro del TAL U-No. No es algo del otro mundo, pero sirve para ensanchar cualquier sonido de sintetizador "pelado". Hay otros mejores, pero es completamente funcional y a caballo regalado no se le miran los dientes.

El TAL Vocorder-2 es una simulación de la máquina Vocorder de los ochentas, capaz de los tonos electro-guturales modulados con una señal de entrada. Naturalmente, no equivale al desfasado autotune actual, sino una versión crudiola-crudietti del mismo.

TAL-Filter-2 e un módulo de filtrado pasabandas, con posibilidades panorámicas y de control ve voolúmen. Incluye pasabajo de 24dB, 19dB, 12dB, 6dB, y pasaalto de 12dB, pasabanda de 12dB, y una puerta de ruido de hasta 12dB.

Este generalmente lo uso en la versión LV2 de Disthro, pero aquí está en versión VST.

TAL-Filter es un filtro más antiguo que está para no tirarlo. No es muy interesante comparado con otros, pero puede ser útil en netbooks por su bajo requerimiento computacional. TAL-NoiseMaker es otro plugin que prefiero en su versión LV2, pero está disponible en modo demo en VST. El TAL Mod es una apuesta por un sistema modular. Normalmente recomiendo VCV Rack para este menester. Pero bueno, aquí está. TAL Dub X es un efecto para voces y sonido bastante interesante, con Delay y Eco para voces. Lamentablemente cuenta con la limitación de un minuto. TAL DAC es un ensuciador de sonido, que permite simular los primeros y limitados conversores de Digitales-Analógicos de baja resolución los 80s y 90s. Si bien tiene la limitación de un minuto, lo bueno de este es que nos permitirá sacar muy parecido el hiss y el corte que tenían estos dispositivos electrónicos de 12 bits.

Para instalar todos estos plugins para nuestro usuario, podremos ingresar este inmenso y aliviador bloque de Comandos de Organización:

Descargar resto de plugins VST TAL:

mkdir /tmp/plugins/ cd /tmp/plugins/ wget https://tal-software.com/downloads/plugins/TAL-Reverb-4_64_linux.zip wget https://tal-software.com/downloads/plugins/TAL-BassLine-101_64_linux.zip ; wget https://tal-software.com/downloads/plugins/TAL-Mod_64_linux.zip ; wget https://tal-software.com/downloads/plugins/Tal-Chorus-LX_64_linux.zip wget https://tal-software.com/downloads/plugins/TAL-Vocoder-2_64_linux.zip wget https://tal-software.com/downloads/plugins/TAL-Filter_64_linux.zip ; wget https://tal-software.com/downloads/plugins/TAL-Filter-2_64_linux.zip wget https://tal-software.com/downloads/plugins/TAL-DAC_64_linux.zip ; wget https://tal-software.com/downloads/plugins/TAL-NoiseMaker_64_linux.zip ; wget https://tal-software.com/downloads/plugins/TAL-Dub-X_64_linux.zip ; wget https://tal-software.com/downloads/plugins/TAL-Sampler_64_linux.zip ;

preset para TAL Bassline 101

unzip TAL-BassLine-101_64_linux.zip ; mv libTAL-BassLine-101.so ~/.vst/tal/ ; mv TAL-BassLine-101.vst3/ ~/.vst3/ ; rm -r MACOSX/ ; rm Readme.txt mkdir ~/.vst3/TAL-BassLine-101.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-BassLine-101.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL%20BassLine%20101%20vst3.zip ; unzip TAL\ BassLine\ 101\ vst3.zip ; rm -r MACOSX/ ; rm ~/.vst3/TAL-BassLine-101.vst3/Contents/Resources/*.zip ;

TAL-Chorus-LX

cd /tmp/plugins/ ; unzip Tal-Chorus-LX_64_linux.zip ; mv libTAL-Chorus-LX.so ~/.vst/tal/ ; chmod +x ~/.vst/tal/libTAL-Chorus-LX.so ; mv TAL-Chorus-LX.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r __MACOSX/ ;

TAL-Filter y presets

cd /tmp/plugins/ ; unzip TAL-Filter_64_linux.zip ; mv /tmp/plugins/libTAL-Filter.so ~/.vst/tal/ ; rm -r MACOSX/ ; rm Readme.txt ; chmod +x ~/.vst/tal/libTAL-Filter.so ; mv TAL-Filter.vst3/ ~/.vst3/ ; mkdir ~/.vst3/TAL-Filter.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Filter.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL-Filter%20vst3.zip ; unzip TAL-Filter\ vst3.zip ; rm TAL-Filter\ vst3.zip ; rm -r MACOSX/ ;

TAL-Filter-2 y presets

cd /tmp/plugins/ ; unzip TAL-Filter-2_64_linux.zip ; mv /tmp/plugins/libTAL-Filter-2.so ~/.vst/tal/ ; rm -r MACOSX/ ; rm Readme.txt ; chmod +x ~/.vst/tal/libTAL-Filter.so ; mv TAL-Filter-2.vst3/ ~/.vst3/ ; mkdir ~/.vst3/TAL-Filter-2.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Filter-2.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL-Filter-2%20vst3.zip ; unzip TAL-Filter-2\ vst3.zip ; rm *.zip ; rm -r MACOSX/ ;

TAL Reverb-4 y presets

cd /tmp/plugins/ ; unzip TAL-Reverb-4_64_linux.zip ; mv /tmp/plugins/libTAL-Reverb-4.so ~/.vst/tal/ ; mv TAL-Reverb-4.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r MACOSX/ ; mkdir ~/.vst3/TAL-Reverb-4.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Reverb-4.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL-Reverb-4%20vst3.zip unzip TAL-Reverb-4\ vst3.zip ; rm *.zip ; rm -r MACOSX/ ;

TAL Mod

cd /tmp/plugins/ ; unzip TAL-Mod_64_linux.zip ; mv /tmp/plugins/libTAL-Mod.so ~/.vst/tal/ ; mv TAL-Mod.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r MACOSX/ ; mkdir ~/.vst3/TAL-Mod.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Mod.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL%20Mod%20vst3.zip ; unzip TAL\ Mod\ vst3.zip ; rm *.zip ; rm -r MACOSX/ ;

TAL Vocorder-2

cd /tmp/plugins/ ; unzip TAL-Vocoder-2_64_linux.zip ; mv /tmp/plugins/libTAL-Vocoder-2.so ~/.vst/tal/ ; chmod +x ~/.vst/tal/libTAL-Vocoder-2.so ; mv TAL-Vocoder-2.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r MACOSX/ ; mkdir ~/.vst3/TAL-Vocoder-2.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Vocoder-2.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL-Vocoder-2%20vst3.zip ; unzip TAL-Vocoder-2\ vst3.zip vst3.zip ; rm *.zip ; rm -r MACOSX/ ;

TAL-DAC

cd /tmp/plugins/ ; unzip TAL-DAC_64_linux.zip ; mv /tmp/plugins/libTAL-DAC.so ~/.vst/tal/ ; mv TAL-DAC.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r __MACOSX/ ; mkdir ~/.vst3/TAL-DAC.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-DAC.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL%20DAC%20plugin%20vst3.zip ; unzip TAL\ DAC\ plugin\ vst3.zip ; rm *.zip ;

NoiseMaker

cd /tmp/plugins/ ; unzip TAL-NoiseMaker_64_linux.zip ; mv /tmp/plugins/libTAL-NoiseMaker.so ~/.vst/tal/ ; mv TAL-NoiseMaker.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r MACOSX/ ; mkdir ~/.vst3/TAL-NoiseMaker.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-NoiseMaker.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL-NoiseMaker%20vst3.zip ; unzip TAL-NoiseMaker\ vst3.zip ; rm *.zip ; rm -r MACOSX/ ;

TAL-Dub-X

cd /tmp/plugins/ ; unzip TAL-Dub-X_64_linux.zip ; mv /tmp/plugins/libTAL-Dub-X.so ~/.vst/tal/ ; mv TAL-Dub-X.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r __MACOSX/ ; mkdir ~/.vst3/TAL-Dub-X.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Dub-X.vst3/Contents/Resources/ ; wget https://tal-software.com//downloads/presets/TAL%20Dub%20X%20vst3.zip ; unzip TAL\ Dub\ X\ vst3.zip rm *.zip ;

TAL-Sampler

Incluye la librería de 1,1GB

cd /tmp/plugins/ ; unzip TAL-Sampler_64_linux.zip ; mv /tmp/plugins/libTAL-Sampler.so ~/.vst/tal/ ; mv TAL-Sampler.vst3/ ~/.vst3/ ; rm Readme.txt ; rm -r MACOSX/ ; mkdir ~/.vst3/TAL-Sampler.vst3/Contents/Resources/ ; cd ~/.vst3/TAL-Sampler.vst3/Contents/Resources/ ; wget https://tal-software.com/downloads/presets/TAL-Sampler-FactoryPresets.zip ; unzip TAL-Sampler-FactoryPresets.zip ; wget https://tal-software.com/downloads/presets/Hollowsun.zip ; unzip Hollowsun.zip ; rm *.zip ; rm -r MACOSX/ ;

Descarga de manuales ;

mkdir /tmp/plugins/manuales/ ; cd /tmp/plugins/manuales/ ; wget https://tal-software.com//downloads/docs/TAL-U-NO-LX-UserManual.pdf ; wget https://tal-software.com//downloads/docs/TAL-J-8-UserManual.pdf ; wget https://tal-software.com//downloads/docs/tal-sampler-UserManual.pdf ; wget https://tal-software.com//downloads/docs/TAL%20Noisemaker%20User%20Guide%201.0.pdf ; wget https://tal-software.com//downloads/docs/tal-dub-x-UserManual.pdf ; wget https://tal-software.com//downloads/docs/tal-dac-UserManual.pdf ; wget https://tal-software.com/downloads/docs/TAL-Vocoder-UserManual.pdf ; wget https://tal-software.com//downloads/docs/TAL-Mod-UserManual.pdf ; wget https://tal-software.com/downloads/docs/tal-bassline-101-UserManual.pdf ; wget https://tal-software.com/downloads/presets/Hollowsun%20Library%20for%20TAL%20Sampler.pdf

En cualquier caso, he decidido abonar ambos en vista de los excelentes resultados obtenidos y del despilfarro que me permite el grano almacenado en los silos subterráneos del IAPI, junto con el laborioso empeño puesto por la gente de TAL. La versión completa de U-no y de J-8 me han costado unos 11.135 pesos (aprovechando un descuento de 1960 pesos por comprar varios por compra en conjunto). Como dijo Miranda, lo compramos con papelitos.



03 december 2022

¿Cómo evito que Skype se use para ver archivos multimedia en Ubuntu?

Mis queridos descamisados:

Como ya os he explicado, utilizo GNU Jami para tareas de transferencias de ficheros, videollamadas, llamadas de audio, y llamadas telefónicas gratuitas VoIP. Es un excelente reemplazo al Skype de Micro$oft.

Sin embargo, a veces hay que usar la ventana, para salir al balcón.

Skype es un programa de comunicaciones suele estar bastante extendido, pero es, como remedio, peor que la enfermedad. Aún así, si descontamos su plataforma privativa, Skype funciona adecuadamente para su tareas de comunicación.

Sin embargo, no todo lo que reluce es oro. Bajo Ubuntu y Ubuntu Mate, Skype for Linux puede presentar un efecto molesto. En ocasiones la instalación de tal cliente de comunicaciones hace que en Ubuntu se nos presente la opción de "Abrir con Skype", pero lo hace a todo tipo de documentos multimedia. Entre estos se incluyen las imágenes .jpg, documentos .pdf y .doc, y archivos de audio .mp3. Esto hace que en lugar de abrirse con los visores normales (el visor de imágenes de Ubuntu o algún reproductor de audio o visor de PDF), se abren con el mismo cliente de Skype. Si bien parecería que esto está ingeniado para facilitar el envío de tales ficheros a través de dicha plataforma, lo cierto y tangible es que - en Ubuntu MATE al menos - esto resulta sumamente incordioso e invasivo. Como si de darle exclusividad a Skype se tratara...

Tal afrenta se puede solucionar desinstalando Skype, reiniciando el equipo, y volviendo a instalar Skype.

Lo más sencillo es abrir la terminal mediante Ctrl+Alt+T o bien desde Aplicaciones / Herramientas del Sistema / Terminal de MATE.

Acto seguido, desinstalamos el Skype escribiendo en la terminal el siguiente comando:

sudo apt remove skypeforlinux

Cuando presionemos la tecla Enter, Ubuntu nos solicitará la contraseña del usuario administrador. La ingresaremos "a ciegas" (no se verá nada cuando tipeemos), y presionamos la Tecla Enter.

El Ubuntu realizará comprobaciones que aparecerán en la pantalla y y nos preguntará queremos continuar con la desinstalación. Presionamos la tecla s para responder que sí.

Tras unos segundos se habrá eliminado Skype de nuestro sistema, y con él la molesta e inútil opción de abrir todos los documentos obligatoriamente con Skype.

Ya podremos reiniciar el equipo tipeando en la terminal el comando:

sudo reboot

(Naturalmente también podríamos reiniciarlo desde Sistema / Apagar y elegir la opción Reiniciar).

Una vez reiniciada la computadora, volvemos a abrir la terminal con Ctrl+Alt+t y reinstalamos Skype. Para ello el comando será ahora:

sudo apt install skypeforlinux

Ingresamos la contraseña, y Ubuntu debería descargar e reinstalar el paquete de Skype, pero ahora no usará la opción de "abrir con Skype". Para ejecutar Skype podremos ir a Aplicaciones / Internet / Skype.

Una vez que ingresemos a nuestro usuario de Skype, conviene configurar el funcionamiento del cliente. Normalmente conviene desactivar el inicio automético del mismo. Para ello en la ventana de Skype vamos a Herramientas / Configuración... y desactivamos Iniciar Skype Automáticamente e Iniciar Skype en Segundo Plano.

Demás está decir que si necesitamos enviar archivos usando Skype en Ubuntu, simplemente buscamos uno de nuestros contactos que será el destinatario del archivo y usamos el botón "Agregar Archivos" que se encuentra en la parte inferior de la ventana de conversación de Skype.

Si por algún motivo tuviésemos o quisiéramos que instalar Skype para Ubuntu de cero, podríamos ingresar en nuestra terminal los siguientes comandos (asegurándonos de contar con una conexión a internet, obviamente):

cd ~/Descargas/ wget https://go.skype.com/skypeforlinux-64.deb sudo apt purge skypeforlinux sudo dpkg -i skypeforlinux-64.deb

El sistema nos solicitará nuestra contraseña de administrador, y tras tipearla "a ciegas" (ya que nuevamente, no aparecerá escrita en la pantalla) y presionar Enter, se procederá a instalar Skype en Ubuntu. Luego podremos ejecutarlo desde Aplicaciones / Internet / Skype.



02 december 2022

¿Cómo compilo y uso ORCA para componer música en Ubuntu?

¡Trabajadores!

Un Programador es un artesano capaz de entender un problema, plantear una solución a través del código, y resolver la dirección de trabajo de una máquina. Es un obrero, y en cierto sentido, un Dirigente Computacional. Cualquier cristiano que se empape en una técnica y una teoría puede hacer esto.

Pero un Verdadero Programador ve el código, lo aprecia, y lo entiende. Compila y ejecuta in mente. Este estado de omnicomprensión no está dado por la mancomunión con la máquina, sino por una percepción superior y de conjunto emanada del Pueblo. En esto no basta ya el estudio y la práctica. Esas son las partes inertes del arte. La parte vital es el Artista. En otras palabras Él mismo, que es un Conductor. Obra allí el Oleo Sagrado de Samuel, y ese no se vende en cualquier feria.

Es a estay concreción a la que hemos de aspirar. Es posible y no es disonante decir que todo Peronista lleva en su mochila el bastón de Mariscal.

Esto lo ofrece la Organización.

Vean señores: el hombre, aislado y sometido a lo que sólo la naturaleza le provee, podrá atinar - con suerte - a conseguirse el pan con cachos de hardware viejo. El adagio enseña que si Dios bajara a la tierra a resolver el problema planteado entre los hombres, ya le habríamos perdido el respeto. Y no faltaría un tonto que quisiera reemplazarlo a Dios. Porque el hombre es así.

Pero las Organizaciones se presentan como una evolución de este estado brutal. Están para otra cosa. Lo nuestro es la liberación de nuestro código y la Fellcidad del Pueblo. Enemigos no nos faltan: a nuestro frente, una Oligarquía coaligada con espuria sinarquías lo sume a la más abyecta de las condiciones: la de usar software privativo para hacer su cómputo. Ante esta ignominia no podemos más que hacer todos los días, todo lo que se pueda en pos de la Felicidad.

Yo, como político, soy un mero aficionado. Mi profesión es la de Conductor. Para ello me he formado y he estudiado toda mi vida. De casualidad nomás llevo en mis oídos la más Maravillosa Música, que es la Palabra del Pueblo Argentino.

Pues bien, en el campo de la música no dudarán que nos exponemos a lo mismo. Es indudable que el hombre, gracias a la tecnificación y al transistor, puede hoy utilizar Estaciones de Trabajo para Audio digital, y componer allí. No podemos negar que en esto se ha avanzado en los últimos cien años más que en los veinte siglos precedentes.

¿De qué serviría, si no es para clamar por la liberación?

Pero tampoco podemos negar que un verdadero músico ha de obrar por los mismos preceptos que un Verdadero Conductor. Ha de componer en hexadecimanl utilizando código que pueda percibir directamente, de manera de compilar y ejecutar in mente. Las DAW son para neófitos y está bien que existan para la Masa Popular, que es el verdadero condumo... Pero los Verdaderos Programadores hacen música escribiéndola en ORCA.

ORCA es un lenguaje de programación dispuesto en una grilla bidimensional, tan esotérico como Lopecito. Está destinado a crear muy rápidamente secuencais procedurales, donde cada letra del alfabeto representa una operación de control musical. Las letras minúsculas operan el disparo de acciones, en tanto que las mayúsculas operan cada cuadro secuencial individual.

Indudablemente que esta aplicación no es un sintetizador, sino un ambiente de programación en vivo capaz de enviar datos según el estándar MIDI, OSC y UDP a sus interfaces de audio y visuales. Como tal, es un excelente control de conducción estratégica que eleva la complejidad de aquellas estaciones de audio excepcionalmente sencillas para el comando táctico, tales como Ableto, Renoise, VCV Rack o SuperCollider.

Es sabido que en los sistemas GNU con Linux la Terminal puede utilizarse en todos los niveles del cómputo. En este caso, podremos utilizar una implementación escrita en C del lenguaje ORCA, y disponer de una interfaz de usuario basada en texto como elemento de superficie. Como es natural, está diseñada para ser potente y de bajísimo consumo, siendo capaz de operar secuencias grandes, incluso un sintetizador modular utilizando una terminal tipo DEC VT.

Pero de poco serviría si sólo el más selecto de los hombres puede conducirlo. En nuestro Movimiento impera la necesidad de un Trasvasamiento Generacional que lleve a las nuevas generaciones a la habilidad de hacer lo mismo y más que las generaciones anteriores. Esto es lo humanamente posible, biológicamente deseable, y humanamente inprescindible. Por tanto os enseñaré a grosso modo cómo hacer uso básico del entorno.

Para instalarlo abrimos una terminal con Ctrl+Alt+T y cargamos las dependencias:

sudo apt-get install git libncurses5-dev libncursesw5-dev libportmidi-dev

El sistema nos solicitara que ingresemos "a ciegas" nuestra contraseña. Luego instalará los paquetes necesarios de dependencia. Una vez finalizada esta acción, descargamos el código fuente, los ejemplos, y compilamos ORCA.

git clone https://github.com/hundredrabbits/Orca-c.git ; cd Orca-c ; git clone https://git.sr.ht/~rabbits/orca-examples/ ; ./tool build -d --portmidi orca ;

...Y lo ejecutamos con:

./Orca-c/build/debug/orca

Para asignar un dispositivo de salida MIDI que reciba las órdenes disparadas con ORCA, presionamos Ctrl+D en la terminal (o bien F1) para desplegar el menú gráfico principal, y luego elegimos la salida MIDI... Puede usarse cualquier sintetizador virtual que se les ocurra utilizar en su entorno GNU con Linux, ya que aparecerán en el menú.

Operadores

Para ver la lista de operadores adentro de Orca, se usa Ctrl+D,Ctrk+G.

A adición(a b): Da salida a la suma entre los valores de entrada. B subtracción(a b): Da salida la diferencia entre los valores de entrada. C clock(rate mod): Da salida en modulo de cuadro. D delay(rate mod): dispara on modulo de cuadro. E east: Mueve al Este, o dispara. F if(a b): Dispara si las entradas son iguales. G generator(x y len): escribe operandos con offset. H halt: Detiene el operando más al sur. I increment(mod de paso): Incrementa el operando mas al sur. J jumper(val): Da salida el operando al norte. K konkat(len): Lee múltiples variables. L less(a b): Da salida a la más chica de las entradas. M multiply(a b): Presenta el producto de las entradas. N north: Mueve al norte, o dispara. O read(x y read): Lee operando con offset. P push(len key val): Escribe el operando hacia el este. Q query(x y len): Lee operandos con offset. R random(min max): Da salida a un valor aleatorio. S south: Mueve hacia el sur, o dispara. T track(key len val): Lee el operando hacia el este. U uclid(paso max): Dispara en un ritmo Euclídeo. V variable(write read): Lee y escribe variables. W west: Mueve al oeste, o dispara. X write(x y val): Escribe operando con un offset. Y jymper(val): Da salida al operando hacia el oeste. Z lerp(rate target): Transiciona el operando a la entrada.

Entrada/Salida

: midi(canal octava nota velocidad duración): Envía una nota MIDI. % mono(canal octava nota velocidad duración): Envia una nota MIDI monofónica. ! cc(canal control valor): Envía un cambio de control MIDI. ? pb(canal valor): Envía un pitch Bend. ; udp: Envia un mensaje UDP = osc(ruta): Envía un mensaje OSC. $ self: Envía un comando de ORCA. MIDI

El protocolo MIDI especifica órdenes de software y material de hardware para controlar digitalmente instrumentos musicales electrónicos, a través de una interfaz normalizada. En el caso de ORCA, podremos usar este establecido protocolo mediante órdenes específicas.

Los operadores MIDI en ORCA son órdenes escritas, compuestas ellas por cinco valores de entrada en su nemónico: 'canal, 'octava, 'nota, velocity, duración.

Por ejemplo, si mandamos el operador :25C, se compilará la nota Do ("C"), en la quinta octava, a través del 3er canal MIDI. En tanto, :04c será una nota Do Sostenido ("C#"), en la cuarta octava, a través del canal MIDI número 1. Recuerden que las minúsculas operan las notas negras.

Velocity es un valor opcional de intensidad que va de 0(0/127) a g (127/127). La variable Duración es la duración referida en números de cuadros, en los cuales esta nota permanecerá pulsada.

Por ejemplo, podríamos elaborar un programa midi.orca, con el siguiente código fuente:

.......................................... .#.MIDI.#................................. .......................................... ...wC4.................................... .gD204TCAFE..################............. ...:02C.g....#..............#............. .............#..Canal....1..#............. ...8C4.......#..Octava.234..#............. .4D234TCAFE..#..Notas.CAFE..#............. ...:13E.4....#..............#............. .............################............. ...4C4.................................... .1D424TCAFE............................... ...%24F.2................................. .......................................... .......................................... .......................................... ..........................................

MIDI MONO

El operador MONO % consta de 5 entradas en su nemónico ('canal, 'octava, 'nota, velocity, duración).

Este tipo de operador es bastante similar al operador MIDI que usamos por defecto, con la salvedad que cada nota nueva que introduzcamos detendrá la ejecución de la nota anterior, impidiendo por tanto que su duración se solape con la siguiente. Como esto resulta en que sólo se puedan ejecutar secuencias monofónicas, viene bien para controlar sintetizadores modulares monofónicos que no pueden hacer acordes ni portamento (como el Moog Mini Brute Revisited, o cualquiera monofónico que tenga MIDI, se entiende). MIDI CC

Este operador se usa para alterar algún control MIDI adicional (CC).

El operador MIDI CC ! lleva 3 entradas en su nemónico ('canal, 'control, 'valor). Envía un valor entre 0-127, donde este valor se calcula como un radio de 36, sobre un máximo de 127. Por ejemplo, !008 envía 28 o (8/36)x127, en el primer Canal MIDI, al control mapeado como id0. Para asignar un mapeado a un control MIDI, se puede oprimir la Tecla Intro, con el operador ! seleccionado.

Por defecto, el operador MIDI CC envía al MIDI CC64 y superiores. De esta forma el offset puede cambiarse con el comando cc:0 para poner un offset de 0. Naturalmente, se entiende que viene bien saber de memoria los valores de los CC MIDI para todo esto. Un verdadero músico los sabe, yo no se los tengo que explicar. RUEDA DE PITCH MIDI

Este operador manda una instrucción de alteración tonal progresiva.

El operador MIDI PB ? requiere 3 entradas ('canal, 'lsb, 'msb).

Envía dos valores diferentes entre 0 y 127, donde el valor se calcula como un radio de 36, sobre un máximo de 127. Por ejemplo, el operador ?008, enviará un MSB (bit más significativo) de 28, específicamente (8/36)*127, y un LSB (bit menos significativo) de 0 y lo hará al Canal MIDI 1. SELECCIÓN DE BANCO / CAMBIO DE PROGRAMA

Mas que un operador, este es un comando (ver abajo), y combina las funciones de Cambio de programa MIDI con las de Selección de Banco MIDI (las cuales se utilizan para escoger instrumentos en la memoria de masa del sintetizador).

La sintaxis es pg:canal;msb;lsb;programa. Canal especifica de 0 a 15 para elegir el canal MIDI, en tanto que msb/lsb/programa permiten indicar entre 0 y 127, pero el programa será traducido de 1 a 128 por el controlador MIDI. Programa equivale a lo que en la nomenclatura moderna es "patch" o "parche", y denota la selección del instrumento en un sintetizador. Tengan presente que msb también puede identificarse como "Bank" y lsb como "Group" o "Sub" en algunos sintetizadores como los Yamaha SY, los AKAI, los Clavinova, o bien o DAWs como qTractor o Ableton Live.

Los msb y lsb pueden dejarse en blanco si solamente queremos mandar un cambio de programa común y corriente. Por ejemplo, pg:0;;;32 cambiará al Patch 33 (el bajo eléctrico pulsado según la convención General MIDI), sin cambiar el banco. UDP

El control por UDP permite controlar instrumentos o módulos musicales usando tipología de red tipo ethernet.

El operador UDP ; bloquea todos los puertos hacia el este (consecutivos). Por ejemplo, ;hola mandará la cadena "hola" a disparar, a través del puerto 49160 en el localhost. En el Commander, se debe usar "udp:7777" si quieren seleccionar el puerto por defecto 7777 de UDP, e "ip:127.0.0.12" para cambiar la dirección IP que oficiará de objetivo. UDP no está disponible en la versión para navegador de Orca, naturalmente.

Puede utilizar el fichero listener.js para probar los mensajes UDP. Puede verlos en acción en el ejemplo udp.orca. OSC

El Open Sound Control es un estándar abierto para poner en red instrumentos musicales, considerado una evolución sobre el tradicional MIDI en un entorno libre como ha de ser la creación musical.

ORCA opera con ellos gracias a una serie de operadores distintos a los MIDI.

El operador OSC = traba cada puerto consecutivo hacia el este. El caracter final se usará como ruta, y los caracteres siguientes serán evniados como integrales por medio de la Tabla Base36. En el Commander, se usa "osc:7777" para seleccionar el puerto OSC personalizado 7777, e "ip:127.0.0.12" para cambiar la IP de destino. OSC no está disponible en la versión de Orca para Navegador tampoco.

Por ejemplo, =1abc enviará 10, 11 yd 12 a /1, a través del puerto 49162 en el localhost; =a123 enviará 1, 2 y 3, a la ruta /a. Se puede usar el programa listener.js para evaluar los mensajes OSC. Oidrña verlo en acción en el programa osc.orca o probarlo con SonicPi. Controles Avanzados

Algunas de las características de Orca se pueden controlar externamente vía el puerto UDP 49169 o a través de su propia interfaz de línea de comandos. Para activar el prompt de comandos Commander debemos usar Ctrl+K.

Modo Proyecto

Se pueden insertar rápidamente ficheros .orca agregándolos así al archivo actual, usando el prompt de la línea de comandos. Esto le permitirá navegar a lo largo de múltiples ficheros como lo haría en un proyecto. Se usa Ctrl+L para cargar múltiples archivos .orca, y luego se usa Ctrl+B para tipear el nombre de un fichero .orca cargado para insertarlo allí. Puertos por defecto

Entrada UDP Entrada OSC Salida UDP Salida OSC 49160 Ninguno 49161 49162 Comandos

Todos los comandos tienen un equivalente de abreviación equivalente a sus primeros dos caracteres en inglés. Por ejemplo, podrá escribir usando "wr". La lista completa de los comandos es la siguiente:

play Reproduce un programa. stop Detiene un programa. run Corre el cuadro actual. bpm:140 Configura la velocidad a 140 compases por minuto. apm:160 Animate la velocidad a 160 compases por minuto. frame:0 Configura el valor de cuadro a 0. skip:2 Suma 2, al valor de cuadro actual. rewind:2 Resta 2, al valor de cuadro actual. color:f00;0f0;00f Colorea la interfaz. find:aV Envía el cursor a la cadena aV.
select:3;4;5;6 Mueve cursor a posición 3,4 y selecciona tamaño 5:6(opcional). inject:peron;12;34 Inserta el fichero local peron.orca, en 12,34(opcional). write:H;12;34 Escribe el glifo H, en 12,34(opcional). time Presenta el tiempo, en minutos y segundos, desde 0f. midi:1;2 Configura el dispositivo de salida MIDI al #1, y el dispositivo de entrada al #2. udp:1234;5678 Configura el puerto de salida UDP a 1234, y el puerto de entrada a 5678. osc:1234 Configura el puerto de salida de OSC a 1234. Anexo A: TABLA DE INCREMENTOS Base36

Orca se opera en base a 36 incrementos. Los operadores que emplean valores numéricos generalmente también operan sobre letras y las convierten a valores según la siguiente tabla. Por ejemplo, el Do se dispará en cada cuadro 24 de la secuencia.

0 1 2 3 4 5 6 7 8 9 A B
0 1 2 3 4 5 6 7 8 9 10 11

C D E F G H I J K L M N 12 13 14 15 16 17 18 19 20 21 22 23

O P Q R S T U V W X Y Z 24 25 26 27 28 29 30 31 32 33 34 35

Anexo B: TABLA DE TRANSPOSICION

El operador MIDI interpreta cualquier letra sobre la escala cromática como un valor de transposición. Por ejemplo, 3H equivale a la nota Do (A4 en la notación ingles, y nomenclado 4A en ORCA).

0 1 2 3 4 5 6 7 8 9 A B A0 B0

C D E F G H I J K L M N C0 D0 E0 F0 G0 A0 B0 C1 D1 E1 F1 G1

O P Q R S T U V W X Y Z A1 B1 C2 D2 E2 F2 G2 A2 B2 C3 D3 E3

Referencia / Turorial Básico Como se vio, ORCA opera en base a 36 incrementos secuenciales, y los operadores convierten valores alfanuméricos a valores que van de 0 a 36. Para manerjas las interacciones entre plataforma y cliente se usan caracteres especiales

Con esta sección enseñaré lo básico para tocar una nota y una secuencia de notas.

Enviar una Nota MIDI

D8, enviará un Disparo, cada 8 cuadros. :03C, enviará un Do ("C") en la tercer octava. Para mandar un Do Sostenido ("C#", se usa la minúscula c3.

D8....:03C

Tocar una nota aleatoria

aRG, dará salida a un valor aleatorio entre A & G, la mayúscula de la derecha indica la salida en mayúscula.

D8.aRG. .:03D..

Hacer una melodía

04TCAFE, creará una pista de 4 notas, y le dará salida a su primer valor.

D814TCAFE .:03A....

Tocar la melodía

8C4, contará de 0 a 3, a 1/8 de la velocidad.

.8C4..... D804TCAFE .:03C.... Lógica

Esta sección le enseñará lo básico de la lógica automática de decisión y el cambio dinámico de los valores de los operadores.

Tocar cada segunda nota

2I6, incrementará a 6 a una velocidad de 2.

.2I6....... D626TCAFEDG .:03F......

Tocar una nota con un offset

1AC, agregará 1 a Do (C), para darle salida a un Re (D). Para lograr un Re Sostenido (D#), se usa d minúscula, como en 1Ac.

D8.1AC. .:03D..

Tocar una secuencia de atrás y adelante

La combinación de la salida de C6 a B3 revolará a un valor entre 0 y 3 durante 6 cuadros.

4C6...... .4B3..... D414TCAFE .:03A....

Tocar una nota en un intervalo específico

.I4, incrementará a 4, a una velocidad de 1. .F2, disparará solo si la entrada de la izquierda es igual a 2.

I4..... 3F2.1AC ..:03D. Proyectores

Esta sección explica lo básico para crear nuevos operadores proceduralmente. Detienen un operador en movimiento.

E, se moverá a la izquierda cada vez, en cada cuadro. H, detendrá el movimiento de E.

..H E..

Lee un operador en una posición

22O, pone el operador E en el offset 2,2.

22O... ..E..H .....E

Escribe un Operador en una posición.

22X, le da salida al operador E en el offset 2,2.

22XE. ..... ..... ....E

Animar un Proyector

B4, rebotará desde 0 a 4, de ida y vuelta.

C........... .B4......... .1XE........ ........:03C ........:03D ........:03E ........:03F ........:03G Variables

Esta sección ejemplifica lo básico para almacenar, acceder y combinar dichos datos almacenados.

Escribir una variable

aV5, almacenará 5 como variable a.

aV5

Lee una variable

Va, le dará salida al valor de la variable a. Note como las variables tienen que ser siempre escritas encima de donde son leídas.

.....Va ....... aV5..Va .....5. ....... aV6..Va .....6.

Leer 4 variables

3Kion, dará salida a los valores de i, o y n, lado a lado.

iV0.oV3.nVC ........... 3Kion...... .:03C......

Mover un valor horizontal y verticalmente

Y, Mueve la entrada hacia la izquierda. J, Mueve la entrada hacia abajo.

3.. J.. 3Y3

Portar un disparo

Este método permite llevar los disparos a un lugar cerrado.

D43Ka... .Y.:03C...

ORCA es un lenguaje de programación orientado a la creación musical en vivo, que puede utilizarse con habilidad. Sumado a un conjunto de instrumentos e intrefaces de audio basada en tecnología MIDI, UDP y OSC, representa un nuevo paradigma para la composición musical en la Era Digital del Ciberespacio Peronista.



01 december 2022

¿Cómo hago sonar la campana de terminal en Compiz en Ubuntu?

Ante la algarabía de los obreros en la Secretaría de Trabajo y Previsión, el Coronel Juan Perón pronuncia un discurso que se transmite por radio, en el cual enseña cómo activar el sonido de la campana de la terminal terminal en Ubuntu.

¡Trabajadores!

Obreros: [Estruendo] ¡Aaaah!

Perón: ¡El apoyo que me brindan las fuerzas del trabajo es el que me llena del mayor orgullo que puede sentir este soldado! Sólo la encomiable acción organizada es capaz de vencer la acción omnímoda del capital oligárquico.

Los trabajadores argentinos vivían harapientos y ganando unos magros pesos. Hoy, gracias a la acción reivindicativa que hemos emprendido desde esta Secretaría de Previsión, contamos con las más vangaurdistas legislaciones de protección social que se han producido en el Continente. Esta acción de Previsión Social es la que ha propugnado las mutualidades, y aumentado el número de los argentinos destinados a las Pensiones de una manera inusitada.

¡La obra social que hemos encarnado la aprecian no los charlatanes, sino los obreros, que la sienten! ¡Venceremos en un año o en diez, pero Venceremos!

¡En esta obra, me pongo al servicio del Pueblo! Y así como me pongo a su servicio, juro que jamás he de servirme de él para ninguna otra cosa que no sea su Pueblo!

Obreros: ¡Eeeh!

Y si algún día es necesario para despertar a esa fé, me incoporaré a un sindicato y lucharé desde abajo!

Obreros: ¡Presidente, presidente, presidente!

Por eso, al dejar el gobierno e incorporarme al Pueblo en mi calidad de Ciudadano, les pido una vez más que sean unidos y se despojen de todo otro sentimiento que no sea servir a la clase trabajadora.

Desde Anoche, con motivo de mi alejamiento de las funciones, se ha corrido en algunos círculos la versión de que los obreros están agitados. Yo les pido, que en esta Lucha me escuchen: ¡no se vence con violencia, se vence con inteligencia y organización!

Obreros: ¡Perón! ¡Perón! ¡Perón!

Por eso les pido también que mantengan una absoluta calma y cumplan con lo que es nuestro lema de siempre: "De trabajo a casa y de casa al trabajo".

¡Cuando los necesite, los llamaré con un campanazo de terminal de Ubuntu!

Obreros: ¡Mande Coronel! ¡Mande Coronel!

Saben ustedes que originalmente, las terminales de teletipo que se utilizaban como dispositivo de entrada/salida para los mainframes UNIX, contaban con una campana similar a la de las máquinas de escribir. Esta se disparaba electromecánicamente al recibir el código binario del carácter de control número 7 de la tabla ASCII, llamado caracter BEL (el "campanazo"). Este campanazo de terminal podía utilizarse como una advertencia sonora para llamar al Obrero cuando este estaba lejos de la terminal.

Con el tiempo este carácter fue reemplazado por pitidos electrónicos, normalmente a través de un oscilador conectado a un altavoz, o bien un altavoz piezoeléctrico.

Pues bien, en los sistemas más modernos, provistos ya de emuladores de videoterminal, lo usual es que se asigne el caracter BEL a un simple fichero de audio, y que la reproducción del mismo se dispare por medio del servidor de audio.

Normalmente suele querer desconectarse esta campana, pero en mi caso la encuentro necesaria para advertir ciertas tareas operativas. Y por qué no, me resulta simpática.

Si no oímos la campana, en primer lugar debemos tomar noción si en nuestro emulador de terminal, tal opción está activada. En el caso del escritorio MATE, como el Gnome3 de Ubuntu se usa la Terminal. En ella vamos activamos la opción Mostrar la Barra de Menú, y nos dirigimos al menú Editar / Preferencias del Perfil. En la solapa General nos aseguramos que esté tildada la opción "Campana de Terminal"

En el emulador de terminal de Ubuntu podremos intentar probar en dicha terminal el sonido de la campana usando la combinación Ctrl+g o bien introduciendo el comando:

tput bel

Si aún así no recibimos sonido de terminal, debemos a continuación evaluar que no tengamos silenciado o muteado las alertas de audio, ya que esto también enmudecerá la campana. Para ello vamos a Sistema / Preferencias / Hardware / Sonido.

En la solapa Efectos de Sonido nos aseguramos de que la opción Volumen de alerta esté destildada. También podremos escoger un tema de sonido (normalmente se usa "Default" o Yaru en Ubuntu Mate.

También será útil evaluar que los ficheros de audio estén presentes en nuestro sistema. Es raro que ello no sea así, pero nos quitaremos la duda. Como en caso del tema de audio de escritorio Default de Ubuntu Mate, el archivo de sonido asignado a la campana normalmente es /usr/share/sounds/freedesktop/stereo/bell.oga, y en el tema de audio de escritorio Yaru, cuyo archivo de campana será /usr/share/sounds/Yaru/stereo/bell.oga., podremos utilizar:

play /usr/share/sounds/freedesktop/stereo/bell.oga play /usr/share/sounds/Yaru/stereo/bell.oga

Los dos ficheros de audio deberían poder reproducirse. Si alguno de estos ficheros de audio nos parecen molestos, podremos reemplazarlo por otro fichero de tipo .OGG, siempre que lo renombremos para usar el mismo nombre de archivo bell.oga.

En el caso de utilizar el gestor de escritorio Gnome, Marco o Marco con Efectos, con esto debería ser suficiente para contar ya con la campana de terminal en el servidor de audio digital de nuestro entorno libre. Campana de terminal en Compiz

El gestor de escritorio Compiz cuenta con gran despliegue de animaciones y plugins de control, por lo cual puede ser el favorito de las Masas Peronistas. Normalmente para activar la campana en el gestor de escritorio Compiz debemos asegurarnos de ir a Sistema / Preferencias / Aspecto y Comportamiento / CompizConfig Setting Manager. Esto arrancará el configurador de Compiz.

Luego debemos hacer clic sobre la categoría Opciones Generales.

...y a continuación seleccionamos la solapa General. En ella nos aseguramos de tildar "Timbre Audible", lo que activará la opción audible_bell de Compiz.

Hasta la versión 16.04LTS de Ubuntu esto era lo único que se requería. Lamentablemente, el compositor de escritorio Compiz tiene un problema con esta campana a partir de la versión Ubuntu 18.04LTS.

En las versiones más nuevas de Ubuntu (incluyendo de momento 20.04LTS) puede hacerse necesario asignar específicamente un módulo de audio para la campana y asociarle un fichero de audio específico al caracter del timbre audible para que se dispare el campanazo. Sólo de esta manera Compiz podrá reproducirlo.

Por gran fortuna, esto es muy sencillo de hacer, e incluso existen varias maneras de llevarlo a cabo. La manera más directa y simple consiste en agregar una modificación dentro del archivo de autoejecución de sesión gráfica ~/.xprofile, la cual cumpla con dicho anhelo.

Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente bloque de comandos de organización: echo '' >> ~/.xprofile ; echo '## Este programa activa la campana de terminal en Compiz con Ubuntu Mate 20.04LTS' >> ~/.xprofile ; echo 'pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell >> /dev/null' >> ~/.xprofile ; echo 'pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY >> /dev/null' >> ~/.xprofile

En el caso de utilizar el emulador xterm, podríamos querer agregar esta opción de uso específico para que active la terminal: echo '' >> ~/.xsession echo '# Agregado para que toque la campana en xterm' >> ~/.xession echo 'xset b on' >> ~/.xsession

Para finalizar, debemos reiniciar nuestra sesión gráfica de usuario. Lo más sencillo puede ser reiniciar directamente el sistema con:

sudo reboot

Completado el arranque, deberíamos poder activar la campana por medio del caracter ASCII 7 BEL en nuestro emulador de terminal, y debería oírse el fichero bell.oga en la sesión gráfica de nuestro escritorio Compiz. Recordemos que en las terminales tipo DEC VT se puede hacer sonar la campana presionando Ctrl+g.

Sin embargo, en ocasiones podríamos querer hacer sonar la campana dentro de un guión de Bash, o algún otro intérprete de comandos. Para ello, dependiendo la sintaxis requerida por el intérprete que utilicemos, podríamos ingresar:

echo -ne '\007'

...o bien:

echo -ne '\a'

En las terminales que utilicen tput (como los Shell Linux básicos), podríamos querer emplear: tput bel

Con esto ya debería ser suficiente.

Sin embargo, existe una segunda manera de hacer esto, gracias a un script cualquiera de autoejecución para la sesión gráfica. Esto nos permitirá activar o desactivar este predicamento según lo creamos necesario.

Otra forma es agregar un script que lo haga de forma gráfica.

nano ~/.compiz_bell.sh

...le pegamos el siguiente contenido:

!/bin/sh

Script peronista para activar la campana en Compiz con Ubuntu Mate 20.04LTS

Script to activate the terminal bell in Compiz under Ubuntu Mate 20.04LTS

pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY

(Naturalmente, podríamos reemplazar bell.oga con otro fichero de sonido). Guardamos el archivo y salimos del editor con Con Ctrl+o y Ctrl+x. Será necesario otorgarle permisos de ejecución con:

chmod +x .compiz_bell.sh

Luego haremos que este script se ejecute toda vez que iniciamos sesión gráfica. Para ello vamos a Sistema / Preferencias / Personal / Aplicaciones al Inicio, y presionamos el botón +Agregar. En el campo "Comando:" debemos agregar la ruta al script: /home/usuario/.compiz_bell.sh. Debemos asignarle un nombre y una descripción opcional, y presionar el botón Añadir para que se agregue a las aplicaciones autoejecutables al inicio.

Indudablemente que el fichero bell.oga puede cambiarse por otro. Por ejemplo, bien podrían disfrutar de los sonidos de las terminales más típicas del mundo del cómputo, compiladas en este archivo de sonidos comprimidos que os obsequio.

¡Dentro de esa fe democrática fijamos nuestra posición incorruptible e indomable frente a la oligarquía! Los trabajadores sólo deben confiar en sí mismos, ¡y recordar que la emancipación de la Clase Obrera y su software está en el obrero mismo!

Obreros: ¡Viva la Huega General Revolucionaria! ¡Un millón de votos! ¡Un millón de votos! ¡Un millón de votos! ¡Perón si, otro no! ¡Perón si, otro no!



30 november 2022

¿Cómo me conecto a un servidor Secure Shell utilizando llaves cifradas en Ubuntu?

¡Trabajadores!

La nuestra es una Comunidad Organizada, que se ha elevado para proveer a los hombres de esta tierra con la capacidad de reivindicar y defender sus derechos. Entre estos se destacan - junto a los Derechos del Trabajo, de la Niñez y los de la Ancianidad - los Derechos Digitales.

Entre sus grandes valores no debemos soslayar la seguridad y privacidad en los ambientes telemáticos. En un mundo grave donde las comunidades se organizan en ambientes que pueden resultar hostiles, debemos velar especialmente por este aspecto.

Debe de ser un Estado Fuerte y ágil quien asegure a todos tales premisas. Sólo un iluso puede pretender que el accionar de privados, interesados con fines inconfesables, nos otorguen por mágico designio estos principios innegociables. Es el Estado - como principal agente protector de una Comunidad a la que representa - quien puede otorgar estos beneficios.

Decía el Mariscal de Sajonia que los Ejércitos no valen tanto por su número, sino por el hombre que tienen a su frente. Y esto puede aplicarse a todas las organizaciones.

Como muestra basta sólo un botón: dejen cualquier grupo de hombres del cómputo al albedrío del Capital, y no tardarán en ver en los transportes telemáticos a analfabetos vendedores con la bragueta abierta que ofrecen pedazos de hardware en una caja. Se creerán dueños del tren, y si los dejan, querrán manejar la locomotora. Este fenómeno no es exclusividad de los tiempos que corren. Cuando Dios mandó a su hijo a ensuciarse las chancletas caminando los desiertos de Judea, fue porque ya en ese entonces existían también estos mercaderes en los Tempos. Sólo hace falta un justo flagelar para limpiarlos...

Héte aquí señores que nuestro Justicialismo ha decidido una lucha enconada con estas excrecencias, y ofrece hoy una infraestructura del cómputo salvador que sirve a todos bajo la autoridad de un Conductor que se ha formado y capacitado en este quehacer.

Nadie desconoce que en los sistemas operativos multiusuario, el sistema de Shell Seguro (SSH) constituye un factor de singular importancia. En él, lo normal ha sido siempre utilizar las llamadas "contraseñas de acceso" para gran seguridad. No son estas mas que claves secretas capaces de operar para su cometido básico: el de establecer contacto cifrado a un entorno de terminal de cómputo.

Sin embargo, este proceder suele contar con algunos inconvenientes que es necesario sopesar. El primero es lógico, y consiste en la natural obligatoriedad de recordar estas contraseñas si es que deseamos acceder. El segundo implica el compromiso en el cual tales contraseñas pueden caer, llevando a graves inconvenientes de seguridad, y para colmo de forma generalizada.

Para suplir tales deficiencia, nuestro Movimiento ha previsto al Shell Seguro la deseable característica de utilizar el llamado mecanismo de "par de llaves cifradas", en lugar de afectar contraseñas.

Este cometido en beneficio de todos hube de defenderlo con toda mi autoridad. Consiste en dar uso a dos ficheros de cifrado, uno de los cuales es secreto y permanece en nuestro poder, mientras que el otro que se hace público y es utilizado para la certificación. Obrar así nos permite una comunicación enormemente más segura en las redes de datos.

Para usar este tipo de llaves asiduamente es necesario seguir - por única vez - cuatro paso, el cual instruiré de manera detallada. Crear un par de llaves de cifrado

En primer lugar habrán de abrir una terminal en vuestro sistema local mediante Ctrl+Alt+T, y crear allí un par de llaves cifradas específicas para tal dispositivo. Esto puede hacerse mediante los siguientes comandos de organización:

cd ~/.ssh/ ; ssh-keygen -t ed25519

El ordenador presentará un mensaje similar a este:

Generando un par de llaves púbico/privado tipo ed25519. Ingresa el nombre de fichero para la llave (/home/fulano/.ssh/id_ed25519):

Este mensaje solicita proveer un nombre que identifique los ficheros del par de llaves.

Habrán de introducir entonces un nombre, que puede ser descriptivo para las llaves de cifrado. Háganlo en lo posible sin utilizar espacios, acentos ni eñes. Napoleón fue un hombre que solía decir que un ejemplo podía vertir luz sobre todo. En esta ejemplificación, si nos llamamos Fulano y desde el equipo lugar compu1 anhelamos conectarnos al servidor remoto llamado nodopj.org, bien podríamos utilizar el nombre de llave llave_nodopj_compu1_de_fulano.

Se generarán así dos ficheros que conforman las llaves criptográficas, en este caso llamados llave_nodopj_compu1_de_fulano y llave_nodopj_compu1_de_fulano.pub. Ambos ficheros quedarán a resguardo en una carpeta local denominada ~/.ssh/. Ya no te será necesario volver a crear este par de llaves, al menos en este equipo local. Revisar la llave pública En segundo lugar debe revisarse el contenido del fichero que supone la llave pública de este equipo local compu1. Siguiendo el ejemplo que he propuesto, podrían hacerlo con el comando siguiente:

cat ~/.ssh/llave_nodopj_compu1_de_fulano.pub Se mostrará en la terminal el contenido del fichero llave_nodopj_compu1_de_fulano.pub que compone vuestra llave pública. Debería presentar una apariencia similar a esta:

ssh-ed25519 EstaEsLaLlaveCifradaYFormaUnaUnicaLineaAlfanumericaQueDebeMandar fulano@compu1

Habrán de asegurarse de copiar este contenido, pues será necesario pegarlo más adelante en el archivo authorized_keys del equipo remoto. Agregar la llave pública al equipo remoto

En tercer lugar agregaremos la llave pública de nuestro usuario al equipo remoto. Para tal fin conectarán al equipo remoto nodopj.org por medio de una sesión SSH con contraseña. En este caso propuesto, deberían utilizar:

ssh fulano@nodopj.org

Conforme haya establecido una conexión remota introduciendo la contraseña como siempre, habrán de editar el fichero .ssh/authorized_keys remoto y pegarle el contenido de la clave pública anteriormente copiada.

Para ello abriremos el fichero con el editor GNU Nano. Utilizaremos el comando:

nano ~/.ssh/authorized_keys

...el cual abrirá el editor.

Han de saber que dentro de este fichero, cada contenido de llave pública va colocada en una línea de texto individual. Pegamos el contenido de la llave pública en el fichero.

Simplemente debe presionarse la tecla Intro para crear una nueva línea, y en esta nueva línea pegar el contenido de la nueva llave_nodopj_compu1_de_fulano.pub.

Nota: Si se diese el caso que ya existan una o más llaves públicas preexistentes en este fichero, no deben eliminárselas. Sólo deben eliminarse las llaves si se las desea inutilizar.

Una vez guardados los cambios al fichero mediante Ctrl+o, se puede salir del editor GNU Nano por medio de Ctrl+x.

No suele venir mal modificar los permisos de directorio y fichero adecuados para este servicio de Secure Shell:

chmod 700 ~/.ssh ; chmod 600 ~/.ssh/authorized_keys Verificar la configuración

Conforme se haya finalizado el agregado de la llave pública en el servidor remoto, será útil evaluar la efectividad de la conexión con llave. Esto lo verificaremos logueándonos al servidor remoto nodopj.org mediante un comando que especifique manualmente el fichero de la llave. En este ejemplo, desde el cliente compu1 ingresaríamos:

ssh -i .ssh/llave_nodopj_compu1_de_fulano fulano@nodopj.org Deberíamos poder conectarnos al servidor usando la llave, y ahora sin necesidad de ingresar la contraseña. Sin embargo, como este comando es bastante incómodo para escribir asiduamente pues es bastante largo, podremos proceder a configurar el cliente para que establezca en enlace con la llave específica automáticamente. Configurar el uso de la llave el el sistema local

Para usar la llave sin tener que especificarla en el comando cada vez que desees conectarte, es necesario modificar en el equipo local el archivo de configuración ~/.ssh/config de manera acorde. Para ello en el equipo compu1 debe ingresarse:

nano ~/.ssh/config

...se abrirá el editor GNU Nano con dicho fichero. Al final de todo agrega el contenido que armonice la configuración para el servidor remoto nodopj.org, por ejemplo utilizando un contenido similar a este:

Llave para nodopj.org

Host nodopj Port 22 User fulano IdentityFile ~/.ssh/llave_pirulo_compu1_de_fulano HostName nodopj.org

Conforme esté preparada la configuración para vuestro caso particular, podrán guardarse los cambios con Ctrl+o y abandonar el editor con Ctrl+x. Nuevamente, no es imprescindible pero suele ser muy recomendable introducir a continuación los permisos de directorio y ficheros adecuados en este dispositivo, con el fin utilizarlos asiduamente:

chmod 700 ~/.ssh/ ; chmod 600 ~/.ssh/config

Todo esto se realizar por única vez. Conectarse por SSH sin contraseña

Al haber configurado el cliente y el servidor como os he indicado, de ahora en más podrán conectarse al servidor nodopj.org de manera segura y sencilla. Simplemente introduzcan el comando en el equipo cliente:

ssh nodopj

...Y se establecerá el enlace seguro y cifrado con un comando simple de escribir y recordar, y además utilizando la llave en lugar de una contraseña.

Tengan presente conservar la contraseña en un lugar seguro, pues en caso de necesidad podrá continuar utilizándola para acceder al servidor remoto.

Es adecuado notar que en ciertas ocasiones reservadas a ambientes de seguridad certificada, podrían bien desear omitir el uso de contraseñas, y sólo habilitar el empleo del par de llaves cifradas de acceso. Este proceder puede configurarse así en el equipo remoto. Normalmente no es el temperamento que suelo recomendar, pues deja el acceso a merced de la existencia efectiva del fichero de llave pública.

Nota: Si se diese el caso de contar con otros equipos locales (compu2, compu3, etc) - desde los cuales se hace necesario también acceder asiduamente al usuario del servidor remoto nodopj.org - debe repetirse el paso de creación de un par llaves para cada uno de estos equipos locales. Asimismo, deberán agregarse el contenido de las llaves públicas al archivo de configuración .ssh/authorized_keys sito en el servidor remoto.

En conclusión, el uso de un par de llaves cifradas permite encriptar los enlaces a un servidor remoto, y permiten hacerlo de manera simple una vez configurado todo.



29 november 2022

¿Cómo configuro el cifrado OMEMO con el cliente de chat Gajim en Ubuntu?

La década de 1960 encontró a Juan Perón detallando los desafíos que aguardaban a los Movimientos de corte popular que se erigían en el mundo. Sus epístolas refieren sobre cómo activar el cifrado de extremo a extremo OMEMO en el cliente de chat XMPP/Jabber Gajim en Ubuntu.

¡Compañeros!

Los Movimientos Populares - como lo es el Justicialismo - disponen de ventajas intrínsecas a la hora de la lucha estratégica. Cuando hace 18 años lanzamos nuestra Tercera Posición, el mundo superaba una conflagración de enormes proporciones. Pero los Pueblos no quedan inermes y hoy, tres cuartas partes del Mundo giran hacia nuestra Tercera Posición. El Asia y el África se observan en nuestro justo espejo y claman por una Liberación definitiva del software que nos torne a todos en hermanos, y en dignos destinatarios de los beneficios de nuestro propio trabajo.

Nuestros Movimientos deben - sin embargo - cobrar una muy especial precaución en la Conducción del estamento táctico. Esto es así pues los canales que debemos usar han necesariamente de considerarse dominados. Oscuros poderes de una sinarquía sin Patria ni bandera, coaligada a oligarquías locales, intentarán los más abyectos e inconfesables ardides para someter nuestro Software. Las vías de comunicación podrían constituírse en sus herramientas de dominación.

La telemática moderna permite una gran agilidad, que nos es necesaria para establecer enlaces veloces a través de las redes de datos. Pero de poco valdrán si lo hacemos a través de infraestructuras no neutras, dominadas por dicho Capital. Por demás, las redes sociales basadas en empresas son - hoy en día - una de las más perniciosas organizaciones, donde se las prevee con destino de lucro y como tal, deben ser combatidas con decisión y con una visión de Justicia Social.

En particular, todo militante ha de saber y difundir que tales servicios no hacen más que someter a una esclavitud de datos, ya que no utilizan sistemas de cifrado ni aseguran el secreto de los mismos por una simple razón: su objetivo no es permitir la comunicación, sino es forzar a las Masas a comunicarse a través de infraestructura podrida.

En este aspecto es fundamental lograr la independencia de todos los servicios telemáticos que usemos, reemplazando enlaces del Capital por otros no sólo libres, pero sino también descentralizados.

Nuestro Movimiento dispone de herramental necesario para tal cometido. En el campo de la conversación telemática, ya he expuesto cómo obrar a través del internet relay chat o IRC. Este se basa en el concepto de salas o foros públicos o semi-privados, los cuales se establecen en un servidor remoto y al cual se accede con un cliente de ejecución local. Sin embargo, esta tecnología extensible puede ser complementada por otro medio, el XMPP, el Protocolo Extensible de Mensajería y Presencia, originalmente conocido como Jabber. Este protocolo de mensajería instantánea basada en un modelo cliente-servidor, con información de perfil, y capacidad de almacenar lista de contactos. Gracias a esta base tecnológica, quien lo anhele podrá mantener un servidor propio, y logra una potente descentralización tendiente a una mayor capacidad organizativa. Podrá así suscribir una instancia identificada como JID en un servidor XMPP, la cual se podrá utilizar con el fin de establecer los enlaces de militancia y liberación.

Pero estas características no son más que el comienzo, y sólo elevan muy parcialmente al IRC tradicional. Sin duda el aspecto más fundamental hace pié en la posibilidad de incorporarle una capa de cifrado de punta a punta a las conversaciones, denominadas OMEMO. Es una encriptación de este tipo la que nos provee una condición indispensable, sin la cual nada bueno puede hacerse: la de conservar el secreto específico de la conversación a lo largo de toda la transmisión, y asegurar así el éxito real del enlace.

Para hacer uso de este protocolo de liberación os puedo recomendar el cliente de chat Gajim, capaz de correr en un sistema GNU con Linux. Si hacen uso de dispositivos móviles, bien podrán utilizar el Conversations con fundamental parecido.

Para instalar el cliente de chat Gajim, podremos hacer uso de la terminal abriendo una con Ctrl+Alt+t, e ingresaando en ella los comandos de organización necesarios. Primero desinstalamos la versión empaquetada con Ubuntu:

sudo apt remove gajim ;

El sistema nos solicitará nuestra contraseña y la desinstalará. Acto seguido, agregamos la llave y el repositorio de Gajim ingresando en nuestra terminal el siguiente bloque de Comandos de Organización:

wget -q https://gajim.org/gajim.key -O - | sudo apt-key add - ; sudo sh -c "echo deb https://ftp.gajim.org/debian unstable main > /etc/apt/sources.list.d/gajim.list" ; sudo apt update

Finalmente, instalaremos las dependencias requeridas y la versión más reciente de Gajim.

sudo apt install build-essential libssl-dev libffi-dev python3-dev python3-setuptools python3-cryptography python3-axolotl python3-qrcode ; sudo apt install gajim-nightly ; sudo apt install gajim-default-nightly

Ahora podremos ejecutar el cliente de chat desde Aplicaciones / Internet / Gajim.

La primera vez que iniciemos el programa, nos veremos en la posibilidad de Registrar una nueva cuenta con algún servidor libre que se nos ofrecerá , o bien introducir los datos de una cuenta que ya tengamos, informando en tal caso el usuario y contraseña del servidor XMPP/Jabber que utilicemos.

En mi caso debo introducir el usuario y la contraseña. También requiere oprimir el botón de Configuraciones Avanzadas e introducir los datos del host (requeridos por el servidor de Jabber en algunos casos).

Pues bien, una vez que nos conectemos con el servidor de XMPP/Jabber, se abrirá al instante el el cliente de chat.

En él se asociarán nuestras acciones y grupos de chat o IRC. Si tenemos varias cuentas de chat podremos agregar otras adicionales, usarlas de forma independiente entre ellas o integradas (condición que se puede configurar).

Podremos crear conversaciones con contactos con Ctrl+n y/o crear grupos de charla (públicos o privados) mediante Ctrl+g.

Tanto los servicios de XMPP/Jabber como los foros de conversación tipo IRC, deben asumirse como públicos, y como tal inherentemente inseguros. Naturalmente, al menos el administrador del servicio podría acceder a ellas y a los envíos telemáticos intermedios. Sin embargo, esta práctica ya de por sí es mucho más segura que depender de una omnímoda empresa de la sinarquía para comunicarse.

Para evitar este inconveniente, nuestro Movimiento ha implementado el cifrado punta a punta OMEMO. Esta estrategia consiste en un plugin de cifrado y descifrado opcional, que debe acoplarse a nuestro cliente de conversación Gajim. El receptor de nuestros mensajes también deberá activarlo en su propio cliente si desea poder desencriptar nuestros mensajes.

Para activar el Plugin OMEMO en Gajin debemos abrir la ventana del Gestor de Extensiones presionando Ctrl+E. En la ventana Plugins haremos clic en la solapa Available ("disponibles"), lo cual nos presentará la lista de extensiones disponibles para descarga. Simplemente buscamos la extensión "OMEMO", tildamos la opción Install, y presionamos el botón Install / Update.

La extensión debería descargarse y presentarse en la solapa Installed del Gestor de Plugins.

Conforme el plugin OMEMO esté instalado en nuestro cliente Gajim, podremos activar la encriptación opcionales para cada charla con un contacto o grupos de charla (son distintas para cada instancia). En cualquier caso se realiza haciendo clic en el ícono del candado y tildando OMEMO.

Pues bien señores, la primera vez que envíen un primer mensaje encriptado con OMEMO a uno de sus contactos - este Plugin solicitará las llaves de encriptación del referido contacto, y las presentará en nuestro propio cliente en una ventana de certificación denominada Fingerprint. Esto se realiza con el fin de gestionar el nivel de confianza de las Huellas Digitales de cifrado. Habremos de indicar confianza en al menos UNA de las Huellas Digitales para poder enviarle mensajes.

Para establecer el nivel de confianza, debe hacerse clic en el botón en el escudo de confianza (al costado izquierdo de la huella digital) y elegir el nivel de confianza desde el menú:

Normalmente escogeríamos Thrusted ("confiada"), o Unthrusted ("desconfiada"). Si ya está confiada, podremos elegir elevar nuevamente el nivel de confianza al máximo escogiendo la opción Blind Thrust ("confianza ciega"). Debemos reservar este nivel máximo de confianza para los casos donde estamos absoluta y positivamente seguros - tal vez incluso a través de otros medios de comunicación - que el contacto es el usuario que dice ser y que estamos en contacto con él.

Es importante tener en cuenta que el nivel de confianza no implica "bloquear" a un contacto (ya que el bloqueo se realiza de la forma tradicional con clic derecho sobre el contacto / Bloquear). Se podrá recibir mensajes desde las Huellas que no ha confiado, pero no podrá recibir Mensajes desde las Huellas no no confiadas.

Es importante saber que cada conjunto de llaves y huellas sirve idealmente para cada cliente de chat y cada dispositivo. Si instalamos otra instancia de cliente de chat en otro dispositivo, este registrará una nueva llave, la cual habremos también de darle confianza. De esta manera, podremos sincronizar las conversaciones entre varios clientes y dispositivos.

Ahora podremos chatear normalmente, con la seguridad de la encriptación OMEMO. Todos los mensajes que enviaremos con OMEMO activado serán cifrados de un extremo al otro (y naturalmente, si nuestros contactos tienen activado su cifrado OMEMO, descifraremos automáticamente sus conversaciones). De lo contrario no podrán ser leídos leerlos y se recibirá una advertencia referente a activar OMEMO en el cliente. Si fuese necesario enviar una conversación sin cifrar, podríamos deshabilitar el cifrado seguro OMEMO desde el ícono del candado y seleccionar "Deshabilitado". Envío de Adjuntos

En el caso de transmisión de archivos adjuntos a través de XMMP/Jabber presenta una de sus limitaciones. Naturalmente, OMEMO será capaz de encriptarlos, pero sólo en el caso que tengan un peso inferior a 1,5MB. Esto normalmente favorece documentos normales, mensajes de audio de corta duración, y fotografías relativamente pequeñas.

Cuando envíe o reciba un adjunto de un contacto con OMEMO producirá la encriptación del fichero en una cadena cifrada específica para el destinatario, y enviará el mismo sólo si cuenta con conexión directa. Este podrá descargar una copia del fichero ya encriptado desde su cliente, pero únicamente con su cliente haciendo uso de un enlace URL especial denominado AES-GCM. Al hacer clic sobre este enlace URL ascgcm:// se procederá a la transferencia:

Gajim descargarán la cadena de datos ininteligible produciendo localmente la desencriptación "al vuelo", colocando la copia desencriptada en carpeta de descarga de Gajim ~/.local/share/gajim/downloads. Una vez producido esto, ofrecerá abrir dicha carpeta (botón Open Folder) o bien abrir el fichero transferido por medio una aplicación externa asociada (botón Open).

Normalmente presionaríamos Open, lo cual cargará el adjunto por medio del visor de fotos, reproductor de audio, o reproductor de video de nuestro sistema operativo.

NOTA: Es importante saber que estas URL AES-CGM JAMÁS deben ser enlazadas ni enviadas a terceros, y los clientes de chat jamás podrán abrirlas y mucho menos realizar la insegurísima acción de presentarlas por sí mismos en la ventana de chat. Esto, difundido en aplicaciones de chat de la oligarquía, no deja de ser el más simple vector de infección con troyanos que se puede imaginar.

Afortunadamente, la limitación de 1,5MB en los ficheros adjuntos puede suplirse con extensiones como PGP (para envío por correo electrónico cifrado) o la extensión Jingle XMPP, que establecerán un enlace par a par y cifrado.



28 november 2022

¿Cómo hago que GRUB toque la Marcha Peronista en Ubuntu?

El 10 de marzo de 1956, y desde su venturoso exilio en el Panamá, Juan Perón mantiene tenue contacto epistolar con sectores del Justicialismo. En dicha pieza evalúa el accionar ante las políticas represivas de la reacción e impone cómo hacer que el arrancador Grub toque la Marcha Peronista en Ubuntu.

Hotel Davisor Correlinda 8 Ciudad de Panamá 10 de Marzo de 1956

¡Compañeros!

Los kilómetros que nos separan no impiden que conozca al dedillo lo que sucede en el país. El frondoso informe que me ha acercado el compañero Guzzetti y la compañera Corti no dejan lugar a dudas.

Las condiciones actuales imponen a nuestro Movimiento la necesidad de golpear desde las sombras bajo un apresto mínimo. Quitaremos así "el cuerpo" a los golpes del enemigo y reservaremos nuestras fuerzas para las situaciones en las que serán más efectivas.

Pero no podemos pensar que para que esto ocurra, tiene que dejarse todo librado al imperio de la casualidad. La improvisación es una excrecencia que no suele ser pródiga en resultados, por lo cual habremos de evitarla y hacer del gabinete y de las maniobras en campaña - nuestras más confiables tutoras. Es importante entonces sustentarnos en estudios concienzudos del terreno y sobre todo en definir los ritmos de la acción.

El campo de la lucha táctica es uno que debemos conocer primero para luego dominar, máxime cuando un enemigo es poderoso o se encuentra coaligado. A todo lo que han hecho, estos desalmados lacayos de la Oligarquía han sumado un enjundioso "Decreto Ley 4.161/56", cuyo fin confeso no es otro que prohibir toda expresión del Pueblo, e ilegalizar la representación del Movimineto.

Esto nos obliga a recurrir a la llamada "guerra no convencional". Esta forma - a pesar de su nombre novedoso - no deja de explicar algo que es tan viejo como la historia misma. En ella se planifica orgánicamente y se ejecutan inorgánicamente, acciones de todo tipo en serie y en paralelo, que pueden llevarse a todos lo órdenes, incluído el telemático. Si ese tonto de Aramburu piensa que con eso nos va a parar, se equivoca pavorosamente...

Nuestro Movimiento se ha sometido a una preparación de rigor. Ninguno de ustedes ignora que los sistemas operativos similares a UNIX suelen contar con un programa capaz de dar arranque al entorno residente en su almacenamiento de masa. Esta programática - cuya funcionalidad de carga del núcleo equivale a la del "burro de arranque" de un motor a explosión - recibe el nombre de GNU Grub.

Sabemos ya que este arrancador Grub opera conforma a un fichero de texto especial. En Ubuntu - como en otras distribuciones de tipo Debian - se puede ejercer la configuración específica del arrancador por intermedio de del fichero /etc/default/grub. Esta configuración requiere la posterior ejecución de un programa revisor denominado update-grub, encargado de analizar las particiones de disco en busca de diferentes sistemas operativos compatibles que pudiesen existir en ellas.

Indudablemente que podremos observar el contenido de nuestro actual fichero de configuración de Grub - al cual convertiremos el en campo de acción - gracias al siguiente comando de terminal:

cat /etc/default/grub

El análisis de este fichero permite revelar que contiene varias órdenes importantes, las cuales normalmente no deben ser modificadas, pues hacerlo "a tontas y a locas" podría provocar la imposibiliad de inicializar el sistema. Aún así el posible apreciar sobre el final de dicho archivo una cadena de texto aparentemente irrelevante que hace referencia a la variable "INIT_GRUB_TUNE".

Uncomment to get a beep at grub start

GRUB_INIT_TUNE="480 440 1"

La función real de esta oscura cadena GRUB_INIT_TUNE es la de ejecutar un tono o señal auditiva, con el único fin de alertar sobre la correcta inicialización en memoria del arrancador, acto que será incluso posible si la computadora se viese imposibilitada de presentar señal de video por cualquier motivo técnico de ocasión.

Han de saber que esta esta función GRUB_INIT_TUNE está compuesta por valores numéricos que expresan las características sónicas de acuerdo a la sintaxis TEMPO (FRECUENCIA NOTA).

...donde el valor TEMPO (480 en el caso de ejemplo que viene de fábrica) hace referencia a la velocidad de reproducción en notas por minuto;

...valor FRECUENCIA corresponde a la frecuencia entera de las nota medido en ciclos por segundo. Naturalmente podrá venirnos bien este Anexo A en forma de una tabla (parcial) de notas/frecuencias.

ANEXO A: NOTAS G3 196 | F#4/Gb4 370 G#3/Ab3 208 | G4 392 A3 220 | G#4/Ab4 415 A#3/Bb3 233 | A4 440 B3 245 | A#4/Bb4 466 C4 262 | B4 494 C#4/Db4 277 | C5 523 D4 294 | C#5/Db5 554 D#4/Eb4 311 | D5 587 E4 330 | D#5/Eb5 622 F4 349 | E5 659 F5 698 |

...en tanto que el valor DURACIÓN programa las duración en cuartos de compás, según la siguiente Anexo B de equivalencias:

ANEXO B: NOTAS 1 = "Nota Negra" (Equivale a 1/4 de compás) 2 = "Nota Blanca" (Equivale a 1/2 compas) 3 = "Negra con puntillo" (Equivale a 3/4 de compás) 4 = "Nota Redonda" (Equivale al compás entero)

El resultado esperado por esta órden es simplón. Si descomentamos la línea #GRUB_INIT_TUNE="480 440 1" (esto es, si eliminamos el signo numeral "#" que la antecede, tornándola en GRUB_INIT_TUNE="480 440 1), podíamos escuchar un tono de 440 Hertz durante 1/480 de minuto. En otras palabras, al dejar las líneas de la siguiente manera:

Uncomment to get a beep at grub start

GRUB_INIT_TUNE="480 440 1"

...y encender nuestro equipo y antes de cargar el sistema operativo, tocará una nota Do de 125 milisegundos a través del altavoz interno de la PC. Programar GRUB_INIT_TUNE

Pues bien señores, podemos y debemos llevar la lucha digital a una Escala Mayor. Hemos de agrupar ágiles bandas telemáticas encargadas de hacer tronar el escarmiento, y propiciar la independencia real de la Patria, su Pueblo y su software. Tendremos así células de acción y "formaciones especiales" dispuestas a lograr la Justicia Social por vías que a lo mejor no sean las adecuadas en tiempos de paz, pero que nos vendrán de perillas en tiempos de guerra. Nuestro enorme campo de acción ha de ser las redes de datos y cómputo, pretendidas por el enemigo pero dominadas por nuestro Pueblo.

Lo que ese tonto de Aramburu no ha previsto ni sabe es que la instrucción de configuración INIT_GRUB_TUNE no se limita a ejecutar una sola nota. Si agregamos el divisor de "silencio de nota" (en forma de "0 1"), o bien el "silencio de compás" (en forma de "0 2"), bien podríamos continuar agregando mas notas a la cadena. Con habilidad seremos capaces de reemplazar el soso bip previsto por la cadena original para que equivalga al código de una melodía, aquella que hace las delicias del Pueblo y enarbola en alto la bandera de la Resistencia Digital Peronista. Programar la Marcha Peronista en Grub

Mis queridos Trabajadores han tenido la sapiencia y amabilidad para convertir la métrica y solfeo de la Marcha de los Muchachos Peronistas según las frecuencias adoptadas por el rígido acompasamiento del arrancador GRUB, con lo cual obtendremos: LA MARCHA DE LOS MUCHACHOS PERONISTAS

Allegretto para PC Speaker por dJ OSiNDE

+---------------------------------------------------+ | Los Mu cha chos Pe ro nis tas | | 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 | | C5 G#4 F#4 C5 G#4 F#4 C5 G#4 | +---------------------------------------------------+ | To dos U-ni dos Triun fa re mos | | 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 | | C5 G#4 F4 C5 G#4 F4 Bb4 G4 | +---------------------------------------------------+ | Y Co mo Siem pre Da re mos | | 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 | | Bb4 G4 E4 Bb4 g4 E4 Bb4 g4 | +---------------------------------------------------+ | Un Gri to De Co ra zón | | 554 4 554 2 554 2 554 4 523 2 466 2 523 4 | | C#5 C#5 C#5 C#5 C5 Bb4 C5 | +---------------------------------------------------+ | Vi va Pe rón vi va Pe róoon | | 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4 |

| C#5 C5 Bb4 C5 C#5 C5 Bb4 C5 |

| Por E se Gran Ar gen ti no | | 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 | | C5 G#4 F4 C5 G#4 C5 C5 G#4 | +---------------------------------------------------+ | Que Se Su po Con quis tar | | 523 4 494 2 523 2 622 2 554 2 523 2 554 4 | | C5 B4 C5 EB5 C#5 C5 C#5 | +---------------------------------------------------+ | A la Gran Ma Sa Del Pue blo | | 466 2 523 2 554 2 554 2 523 2 466 2 523 2 523 4 | | Bb4 C5 C#5 C#5 C5 Bb4 C5 C5 | +---------------------------------------------------+ | Com ba rien do Al Ca pi tal | | 466 2 415 2 523 2 466 2 415 2 392 2 349 4 |

| Bb4 G#4 C5 Bb4 G#4 G4 F4 |

| Pe ron Pe roon Qué Gran de Sos | | 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 | | C5 C5 C5 C5 G#4 G#4 G G#4 | +---------------------------------------------------+ | Mi Ge ne ral Cuan to Va lés | | 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 | | c5 c5 c5 c5 g#4 g#4 g g#4 | +---------------------------------------------------+ | Pe rón Pe rón Gran Con duc tor | | 349 2 349 2 349 2 554 4 466 2 466 2 466 2 523 4 | | F4 F4 F4 C#5 Bb4 Bb4 Bb4 C4 | +---------------------------------------------------+ | Sos El Pri mer Tra ba ja dor | | 416 2 416 2 466 2 523 2 466 2 416 2 392 2 349 4 | | G#4 G#4 Bb4 C5 Bb4 G#4 G4 F4 | +===================================================+

Gracias a este despliegue, podríamos editar "a mano" el fichero de configuración con el editor GNU Nano, mediante el comando de terminal:

sudo nano /etc/default/grub

Esto abrirá el editor Nano y nos presentará el ya conocido fichero. Como ejemplo, al final de todo podremos pegar las siguientes dos líneas de código musical de la Marcha Peronista:

Marcha Peronista (versión recomendada, 7 segundos). dJ OSiNDE.

GRUB_INIT_TUNE="900 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4"

Conforme hayan editado el fichero /etc/default/grub deben guardar los cambios mediante Ctrl+o y salir del editor GNU Nano por medio de Ctrl+x.

Finalmente ejecutamos en la terminal el revisor de grub:

sudo update-grub

Este programa revisor buscará en nuestros discos y detectará el o los sistemas encontrados, presentado un mensaje similar a este:

Obteniendo el archivo «/etc/default/grub» Obteniendo el archivo «/etc/default/grub.d/init-select.cfg» Generando un fichero de configuración de grub... Encontrada imagen de linux: /boot/vmlinuz-5.4.0-67-generic Encontrada imagen de memoria inicial: /boot/initrd.img-5.4.0-67-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin hecho

Conforme reiniciemos nuestro sistema, por ejemplo con el comando:

sudo reboot

Al arrancar, Grub dejará la pantalla en un negro cabeza ¡y reproducirá soez y estridentemente los chispeantes tonos de la Marcha Peronista a través del PC Speaker! La marchita sonará toda vez que se inicie el sistema ¡mofándonos ad eternum de aquel papel mojado que es el Decreto 4.161!

¡Recuerden trabajadores! ¡Modificar la cadena INIT_GRUB_TUNE del arrancador GNU Grub para que toque la Marcha Peronista es un hack que permite subvertir el Decreto de Prescripción de Aramburu, festejar al justicialismo, y conexamente golpear a la oligarquía donde mas le duele! Apéndice

Codigo fuente de las versiones de la Marcha Peronista para PC Speaker, por dJ OSiNDE, para agregar al fichero /etc/default/grub. Recuerden que han de borrar el signo # indicado para que funcione, y sólo deben activar una única versión de las cinco propuestas (también han de ejecutar el comando sudo update-grub luego de editar el archivo de configuración)..

Marcha peronista (version recomendada de una estrofa solamente) por dJ OSinde

39 notas. Duración 7.333 milisegundos.

GRUB_INIT_TUNE="900 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4"

Marcha Peronista (versión 12 segundos). dJ OSiNDE.

GRUB_INIT_TUNE="900 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 494 2 523 2 622 2 554 2 523 2 554 4 466 2 523 2 554 2 554 2 523 2 466 2 523 2 523 4 466 2 415 2 523 2 466 2 415 2 392 2 349 4"

Marcha Peronista (versión 17 segundos). dJ OSiNDE.

GRUB_INIT_TUNE="900 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 494 2 523 2 622 2 554 2 523 2 554 4 466 2 523 2 554 2 554 2 523 2 466 2 523 2 523 4 466 2 415 2 523 2 466 2 415 2 392 2 349 4 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 349 2 349 2 349 2 554 4 466 2 466 2 466 2 523 4 416 2 416 2 466 2 523 2 466 2 416 2 392 2 349 4"

Marcha Peronistas (version coro solo). dJ OSiNDE

64 notas, 4.680 milisegundos de duración

GRUB_INIT_TUNE="1000 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 349 2 349 2 349 2 554 4 466 2 466 2 466 2 523 4 2 0 416 2 416 2 466 2 523 2 466 2 416 2 392 2 349 4 2 0"

Marcha Peronista (Versión completa, extremadamente larga 1min 41s). dJ OSiNDE:

GRUB_INIT_TUNE="470 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 494 2 523 2 622 2 554 2 523 2 554 4 466 2 523 2 554 2 554 2 523 2 466 2 523 2 523 4 466 2 415 2 523 2 466 2 415 2 392 2 349 4 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 349 2 349 2 349 2 554 4 466 2 466 2 466 2 523 4 2 0 416 2 416 2 466 2 523 2 466 2 416 2 392 2 349 4 2 0 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 494 2 523 2 622 2 554 2 523 2 554 4 466 2 523 2 554 2 554 2 523 2 466 2 523 2 523 4 466 2 415 2 523 2 466 2 415 2 392 2 349 4 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 349 2 349 2 349 2 554 4 466 2 466 2 466 2 523 4 2 0 416 2 416 2 466 2 523 2 466 2 416 2 392 2 349 4 2 0 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 415 2 349 2 523 4 414 2 349 2 466 4 392 4 466 4 392 2 329 2 466 4 392 2 329 2 466 4 392 4 554 4 554 2 554 2 554 4 523 2 466 2 523 4 554 2 523 2 466 2 523 2 554 2 523 2 466 2 523 4 523 4 415 2 370 2 523 4 415 2 370 2 523 4 415 4 523 4 494 2 523 2 622 2 554 2 523 2 554 4 466 2 523 2 554 2 554 2 523 2 466 2 523 2 523 4 466 2 415 2 523 2 466 2 415 2 392 2 349 4 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 523 2 523 2 523 2 523 4 416 2 416 2 392 2 416 4 2 0 349 2 349 2 349 2 554 4 466 2 466 2 466 2 523 4 2 0 416 2 416 2 466 2 523 2 466 2 416 2 392 2 349 4 2 0"



27 november 2022

¿Cómo configuro Thunderbird para enviar correo firmado y cifrado?

En otra de sus disertaciones en la Escuela de Guerra, el General Juan Perón expone un fundamental esquema para mantener el secreto operativo para la victoria a través de correo electrónico firmado y encriptrado desde Thunderbird, el sistema operativo del Pueblo.

(...) Nuestras fuerzas han de estar preparadas para la lid en todas las condiciones que se le impongan, pero ello sólo es posible por medio del estudio concienzudo del terreno y del tiempo de la acción. La improvisación no suele ser pródiga en resultados, por lo cual todo hombre de armas ha de evitarla y hacer del gabinete y de las maniobras en campaña su más confiables tutoras.

Nuestro campo de lucha es uno el cual hemos de dominar, y mucho más si nuestro enemigo es poderoso y está coaligado. Por tales motivos hemos de recurrir a la llamada "guerra no convencional", que por novedoso nombre, no deja de ser tan vieja como la historia misma. Este quehacer, también puede llevarse a todos lo órdenes, incluso en la lucha telemática.

Podemos y debemos llevar la lucha digital a una escala superior. Hemos de formar ágiles bandas telemáticas, encargadas de hacer tronar el escarmiento y propiciar la independecia real de la Nación, su Pueblo y su software. Células de acción y "formaciones especiales" encargadas de llevar la Justicia Social por vías que a lo mejor no sean las adecuadas en tiempos de paz, pero que vendrán de perillas en tiempos de guerra. Nuestro enorme campo de acción son las redes, pretendidas por el enemigo pero dominadas por nuestro Pueblo.

Para estas acciones de propaganda, disrupción telemática, y ajusticiamiento tecnológico se hará sin duda imprescindible aquello que es necesario en todo conflicto que hemos de emprender: las comunicaciones.

La infraestructura de correo electrónico que se utiliza en todo el mundo es, por diseño, insegura. Aunque la mayoría de las personas se conectan a sus servidores de correo electrónico mediante una capa de conexión segura ("SSL"), algunos servidores permiten acceso a sus usuarios a través de conexiones inseguras. Por otro lado, la ruta de transmisión que sigue el correo electrónico desde el remitente a su destinatario pasa por numerosos servidores intermedios, y es muy posible que estas conexiones intermedias también estén comprometidas de una manera u otra. Es posible para terceros interesados interceptar, leer, y modificar los mensajes de correo electrónico convencional. Por otro lado, la mayoría de los servidores de correo públicos no están controlados por los usuarios destinatarios, sino que son ofrecidos por proveedores de internet de la oligarquía. Debemos desconfiar de ellos ampliamente, pues han demostrado no tener escrúpulo alguno y acceder a correspondencia electrónica de abonados que consideran riesgosos para sus planes inconfesables, y han hecho a falta de ley adecuada de protección informática, abuso informáticos duraderos.

Para contrarrestar esta insidiosa acción contamos con dos soluciones libres interdependientes: la firmar digital de los mensajes de correo electrónico, y su cifrado por medio del criptosistema GnuPG. Se trata de un programa de identificación y cifrado libre pero redundante, diseñado para ofrecer a los compañeros que luchan la posibilidad de identificar sus usuarios de correo electrónico de manera fehaciente a través de un archivo que oficia de firma electrónica (que naturalmente puede estar asociado a una identidad anónima de guerra, si lo deseáramos). Asimismo, el criptosistema es capaz de cifrar los mensajes de correo salientes por medio de alta criptografía, de manera que estos recorran la ruta telemático hasta su destinatario de forma "desordenada e inteligible". Sólo cobrará legibilidad nuevamente en el criptosistema propio del destinatario real del correo electrónico.

Cada miembro que utilice el criptosistema ha de poseer una clave, que se subdivide en dos partes: una clave pública (un archivo .asc que se comparte abiertamente con todo aquél a quien necesitemos enviar correspondencia electrónica segura) y una clave privada (la cual ha de permanecer celosamente guardada en nuestro equipo o caja de seguridad, y se emplea para descifrar los correos electrónicos cifrados recibidos por terceros). Ya he explicado en detalle el imprescindible paso para crearnos un par de claves en nuestro equipo dotado de Ubuntu. Si ya tenemos creado nuestro par de claves, podremos continuar.

En este caso, os enseñaré cómo hacer uso de correo electrónico firmado y cifrado pero a través del sencillo cliente de correo electrónico Thunderbird. Thunderbird es uno de los clientes de correo electrónico libres más extendidos en Ubuntu, y sólo recientemente ha incorporado de forma nativa el cifrado punta a punta. Configurar Correo Cifrado en Thunderbird

Si nunca hubiésemos utilizado correo cifrado antes, necesitamos configurar nuestro cliente Thunderbird. Es extremadamente fácil.

Abrimos Thunderbird y hacer clic en el botón Menú (o presionamos la tecla Alt para que aparezca el menú).

Luego vamos a Herramientas / Administrador de Claves OpenPGP. Si no tenemos una llave creada, hacemos clic en el menú Generar / Nuevo Par de Claves.

En la siguiente ventana configurarán el par de claves tal cual lo desean (si quieren usar fecha de expiración de las mismas, el tipo de clave y el tamaño. Yo suelo utilizar de 4096 bits para gran seguridad criptográfica aunque con la mitad suele ser suficiente. Tampoco suelo usar expiración.

Harán clic en Generar Clave y será advertido de no cerrar la aplicación mientras se genera la clave (lo cual puede tardar varios segundos). Una vez finalizada la creación, podrán cerrar dicha ventana.

Compartir clave pública con otros compañeros

Una vez que hemos configurado un par de clave propio, es necesario hacerle presente la clave pública a otro(s) destinatario(s) que quieran enviarme correo cifrado.

El procedimiento de compartir nuestra clave pública es la parte vulnerable de este confiable criptosistema. Lo ideal sería llevar el archivo .asc en mano, en un pendrive hasta el domicilio del remitente, pero lógicamente esto sería un engorro. Por ello también podremos hacerlo a través de correo electrónico, idealmente confirmándole al destinatario a través de una segunda e incluso tercera vía de contacto (por videoconferencia, teléfono, chat, o SMS por ejemplo). De esta manera el remitente se asegurará realmente de forma valedera y fehaciente que somos nosotros y no un impostor electrónico, quien hace uso de este cometido.

Si queremos hacerlo por vía de correo electrónico simplemente redactamos un correo al destinatario y en el menú Opciones elegimos la opción Adjuntar mi clave pública.

También podríamos querer tomar la política de enviar la firma digital en todos los correos salientes (se adjuntará un archivo .asc con nuestra clave pública en todos los correos que enviemos, de modo que quien use correo cifrado pueda usarla). Esto es buena práctica si no avizoramos inconvenientes de privacidad alguno.

Incorporar clave de un tercero a nuestro criptosistema

Naturalmente, también nos llegarán a nuestro criptosistema las claves públicas de terceros que deseen compartir mensajes cifrados con nosotros. En tal caso, notaremos que en dicho correo electrónico existirá un adjunto con extensión .asc. La misma es la firma digital del remitente.

Cuando la abramos, Thunderbird nos indicará: "el archivo que desea abrir aparenta ser una firma digital", y nos preguntará si deseamos ver o importar dicha clave pública a nuestro criptosistema. Si estamos seguros de la identidad real del remitente a través de las vías descriptas anteriormente, presionamos Importar. El GnuPG nos solicitará nuestra contraseña de criptosistema para agregarla.

Naturalmente, la clave pública de terceros también puede agregarse manualmente. Para ello vamos al botón Menú / Herramientas / Administrador de Claves OpenGPG. En la ventana del Administrador de claves OpenPGP podremos elegir Archivo / Importar clave(s) pública(s) desde archivo, y agregar las claves .asc que nos hayan enviado nuestros contactos.

Se nos presentará la opción de aceptar la clave (sin verificarla). Esto podremos hacerlo pero siempre conviene estar absolutamente seguros de quien nos envió la clave.

También podemos usar la terminal como he explicado en otra ocasión. Envíar correo electrónico cifrado Una vez que tenemos configurado el par de claves propio y contamos con la clave pública del destinatario, podremos hacer uso opcionalmente de la encriptación de correo electrónico de forma muy sencilla.

Simplemente redactamos un correo a cifrar como lo hacemos normalmente, e indicamos la dirección de correo electrónico del destinatario que nos hubiese enviado previamente su clave de cifrado .asc y ya la tengamos importada. Para cifrar el correo vamos al menú Opciones / Requerir Cifrado. Opcionalmente podremos elegir "Firmar Digitalmente el Mensaje" y "Adjuntar mi Clave Pública". Esto último puede tomarse como práctica usual para promover el uso de cifrado toda vez que se pueda. Si nuestra dirección de correo electrónico está asociado a un par de claves GnuPG, el mensaje se cifrará con dicha clave. Si en cambio usamos una dirección de correo electrónico no asociada a una clave GnuPG, se nos solicitará que seleccionemos una clave de una lista. Luego enviamos el correo como lo hacemos habitualmente. El mismo será indescifrable para terceros, y sólo el remitente con la clave privada

Nota: Si bien tanto GnuPG como OpenGPG cifra el cuerpo del mensaje y los adjuntos, el campo "Asunto" del correo electrónico NUNCA queda cifrado. De tal manera que debemos tener cuidado de no poner información comprementedora dicho campo asunto, y debemos asumir que siempre podrá ser leído por cualquier persona inescrupulosa. Leer correo electrónico de terceros, firmados digitalmente o cifrados Naturalmente, cuando recibamos un mensaje cifrado por uno de nuestros contactos, Thunderbird nos solicitará que introduzcamos nuestra contraseña del criptosistema para descifrar el mensaje, ya que él no podrá hacerlo por sí solo.

Para determinar si el mensaje entrante se ha cifrado o firmado digitalmente, hay que buscar en la barra inferior de información justo por encima del cuerpo del mensaje por determinados mensajes indicativos.

Para usuarios de Enigmail Enigmail era un plugin - ahora obsoleto - que permitía agregar la funcionalidad de correo cifrado a Thunderbird, cuando ésta no tenía dicha funcionalidad incorporada de manera nativa. Si hubiésemos usado este antiguo plugin Enigmail, Thunderbird lanzará un asistente que nos permitirá importar nuestras claves de cifrado al nuevo sistema de cifrado actual (nativamente integrado). Recuerden que esto es opcional y únicamente sucederá si utilizábamos previamente Enigmail. Se nos presentará con el mensaje "Enigmail dice hasta luego": Al presionar el botón Empezar la Migración Ahora se nos presentará el programa para transferir las claves, informándonos al respecto:

Al hacer clic en el botón Empezar Migración, se pasarán las claves de Enigmail al sistema nativo del actual cliente Thunderbird. Naturalmente, el sistema nos solicitará nuestra contraseña de administrador de claves PGP para que esta acción pueda llevarse a cabo.

Cuando se haya terminado, recibiremos un informe. Simplemente presionamos en el botón Completado. Ahora podremos ir al menú Complementos y desactivar y eliminar el obsoleto plugin Enigmail.

¡Ante esto sólo queda agradecer a un amigo que se va para siempre, y garantizar ante sus restos la continuidad de uso del correo cifrado, en una eterna memoria ROM!



26 november 2022

¿Cómo corrijo el error "broken pipe" en una conexión SSH en Ubuntu?

El Tren Presidencial fue una de las herramientas que permitrían al Presidente de la Nación movilizarse a lo largo y ancho del país. Permitió a Juan Perón propalar ideas y logros del Movimiento Justicialista haciendo uso del portentoso ramal instalado. En ocasión de visitar Saladillo pudo explicar cómo corregir la interrupción de conexión SSH con error "Broken Pipe" en Ubuntu.

¡Mis descamisados!

La nacionalización de los Ferrocarriles, y esta formación, me permiten llegar sin contratiempo alguno a este hermosísimo lugar de nuestras Pampas, las cuales ustedes cuidan con tanto querer.

Nuestro Movimiento encarna el sentir reparador de un Pueblo Libre, que anhela para sí y para su posteridad los beneficios que puede producir la tierra y su trabajo.

Indudablemente que este factor ha de proveerse con la acción decidida de quien sabe que todo hombre debe recibir lo que para su comunidad produce.

En esto hemos sido claros. Nuestro Movimiento ha producido uno de los máximos actos de reparación social que eran demandados por el Pueblo Argentino, en los que me lleno de orgullo y traen a mis ojos las más dulces lágrimas de felicidad. El País sufrió la ignominia de una Oligarquía sin Patria ni Bandera, una capaz de oprimir a sus hermanos y someterlos a la más abyecta de las pobrezas. Fue por ello que nos hemos mancomunado en la defensa de todos los Argentinos, especialmente a nuestro conjunto más venerados: los ancianos.

A ellos reparamos con los Derechos de la Ancianidad. Todo lo dieron por nosotros, y hoy - haciendo caso de la cristiana necesidad - todo le damos. Les acercamos la calidez de la asistencia social, el acceso a la vivienda, la alimentación, el vestido, el cuidado de su salud física y moral, el noble esparcimiento, así como el acceso a laborterapia productiva, junto con la expansión y el respeto que de todos merecen.

¡Vientos briosos han agitado nuestra bandera, la hemos alzado, y nos ha guiado en una nueva realización: la de ofrecer Jubilaciones y Pensiones en abundancia para todos la ancianidad de la Patria!

En ellas sólo se requiere un certificado de supervivencia y el conocimiento de los años trabajados en pos del beneficio del País.

En particular, sabemos que el protocolo de conexión SSH (Secure Shell), responden al mismo principio de la gran Obra Social que hemos implementado para nuestros ancianos. Con el fin de hacer eficiente la entrega del servicio, el servidor SSH solicita periódicamente los beneficiarios clientelares, un Certificado de Supervivencia en forma de paquete telemático para continuar sirviendo la prestación. Este paquete es enviado con cierta periodicidad, y debe responderse afirmativamente.

En el caso de no recibir una contestación que certifique supervivencia del cliente, la prestación de comunicación SSH se interrumpirá intempestivamente, y el cliente podría recibir una interrupción de servicio, o bien presentar un críptico mensaje como ":client_loop: send disconnect: Broken pipe", algo así como "desconexión de envío, caño roto". Otros sistemas pueden retornar el error Write failed: Broken pipe", o bien "Connection closed by remote host".

El sentido telemático de la interrupción de la conexión por parte del servidor Secure Shell suele deberse al procedimiento normal de tramitación, para evitar conexiones "detenidas", "desatendidas", o "inactivas" que podrían saturar al servidor o al cliente. Esto es tendiente a impedir "ataques remotos de denegación de servicio". Normalmente la oligarquía pordría querer disminuir intempestivamente la actividad sin certificado de sobrevida a los tres minutos (180 segundos), pero esto puede tornarse algo molesto en ciertas actividades remotas, pues requiere estar operando dentro de dicho intervalo en la terminal Secure Shell, so pena de ver cortada la conexión.

Afortunadamente para solucionar este problema es sencillo, el Justicialismo puede proveer Justicia en varios niveles operativos y de distintas manaeras, las cuales podrán ajustarse de acuerdo a las necesidades de Clientelismo que tengamos, ya sea operando desde nuestro cliente de cómputo local, y eventualmente en el servidor remoto (únicamente si tenemos control del mismo, naturalmente). Soluciones posibles desde el cliente SSH

La manera menos conveniente es especificarle a nuestro cliente la duración en segundos que queremos contar con actividad para una conexión individual Secure Shell. Esto nos servirá para especificar esto momentáneamente a un enlace SSH específico. Por ejemplo, si quisiéramos establecer una conexión SSH y que no se corte en unos 10 minutos, podríamos especificarle un intervalo de 600 segundos. Para ello usaríamos:

ssh -o ServerAliveInterval=600 usuario@servidor

Sin embargo, el sólo hecho de tipear este agregado al comando suele ser tedioso, y debería hacerse con cada conexión.

Otra opción más útil suele ser especificar esto mismo en las opciones de nuestro cliente SSH y para nuestro usuario.

Editamos el fichero de configuración de nuestro cliente a nivel usuario. Para ello usamos:

nano ~/.ssh/config

Se abrirá el editor GNU Nano. Al principio del fichero agregamos las siguientes líneas.

Host nombre_del_host User usuario Port puerto HostName dirección_del_host_ssh ServerAliveInterval segundos_de_vida

Ahora bien, esto nos evitará tener que escribir la especificación en la conexión al host "ssh.pirulo.com". Sin embargo en las demás conexiones que no sean al host "pirulo", no hará caso alguno.

Si en cambio deseamos que el certificado de supervivencia sea más inclusivo y qe extienda por 600 segundos (10 minutos) para todas las conexiones SSH que realicemos desde nuestro equipo (el procedimiento que suelo recomendar) podrían especificarlo de la siguiente manera en el fichero .ssh/config:

Host * ServerAliveInterval 600

Si tuviésemos otras configuraciones ya presentes en el fichero, no las modificamos.

En cualquiera de los casos, guardamos las modificaciones realizadas en el fichero .ssh/config por medio de Ctrl+o y salimos del editor GNU Nano con Ctrl+x. También conviene en acomodar los permisos del fichero de configuración para que sea adecuado para únicamente nuestro usuario:

chmod 600 ~/.ssh/config Soluciones posibles desde el servidor SSH

También podremos alterar el comportamiento del certificado de supervivencia de la conexión desde el lado del servidor. Naturalmente, esto sólo tiene sentido si tenemos control del Servidor. En el caso de utilizar Ubuntu como servidor, usaríamos el comando:

sudo nano /etc/ssh/sshd_config

Esto cargará el editor GNU Nano, pero con el fichero de configuración del demonio de servicio de Shell Seguro SSH. En este fichero habremos de descomentar y modificar dos variables. La variable ClientAliveInterval representa el tiempo de inactividad (en segundos) tras lo cual el servidor le enviará un mensaje de "certificación de supervivencia" al cliente. en tanto ClientAliveCountMax indica la cantidad de intentos en las cuales el servidor realizará su trámite de supervivencia.

Descomentar la variable significa que debemos buscarla, y fundamentalmente eliminar el signo numeral "#" que antecede las líneas. En este caso:

Si siguen el ejemplo como os he ilustrado arriba, habrán configurado la variable ClientAliveInterval para que el certificado de supervivencia se realice a los 200 segundos, y se repita por medio de ClientAliveCountMax durante 3 ocasiones. Esto significa que el servidor solicitará al cliente un pedido de "supervivencia" una vez que hayan transcurridos 200 segundos de establecido en enlace SSH. Si el cliente no aparenta reportar supervivencia, el servidor enviará una nueva solicitud a los 400 segundos. Si no hay respuesta o actividad por parte del Cliente, se enviará otro mensaje de solicitud de vida a los 600 segundos. Si luego de estos 3 intentos no recibe un reporte de vida, recién allí se desconectará el enlace SSH (produciendo el "broken pipe").

Pues bien descamisados, han de saber que los valores de 200/3 suelen constituirse en un temperamento adecuados para una conexión cableada o por Wifi moderadamente desatendida, pero podrían querer alterarlos dependiendo de las necesidades generales de los clientes.

Por ejemplo, si en el enlace SSH se realiza a por medio de un radioenlace muy inestable o a través de satélite, bien podrían querer disminuir los tiempos de intervalo - tal vez a unos 30 segundos, y aumentar los reintentos tal vez a 12 ocasiones.

Finalmente, consideren no utilizar varias horas, salvo casos absolutamente necesarios, pues esto constituye un enorme desperdicio de recursos telemáticos; sería sencillo así forzar a nuestro servidor a intentar establecer reintentos innecesariamente, y sería un caldo de cultivo para los ataques de denegación de servicio de usuarios registrados a nuestro servicio.



25 november 2022

¿Cómo emparcho MOCP para que funcione el teclado numérico en Ubuntu?

¡Mis queridos descamisados!

Ya saben que llevo en mis oídos la más maravillosa música, que es aquella reproducida desde la terminal con el MOCP.

Este reproductor para terminal es capaz de emplear múltiples servidores de audio, reproducir mp3, flac, oga, y toda una miríada de formatos, toda vez que es capaz de sintonizar radios online.

Pero todo lo bueno puede mejorarse, si da el tiempo. Han de saber que la versión empaquetada con Ubuntu, si bien es Leal como el que más, consta de un mínimo problema: no responde adecuadamente al uso de la tecla Enter del teclado numérico.

Esto, que podría parecer una nimiedad soslayable, no lo es tanto para mí. Como carezco de manos utilizo en sobremanera dicho teclado numérico, y sobre todo para desplazarme, en lugar de las consabidas flechas del cursor en "t invertida".

Afortunadamente, gracias al compañero John Fitzgerald, quien es a la postre quien mantiene el paquete moc, contamos con un parche que corrige este problema.

Compilar un programa no es moco de pavo, pero os instruiré para hacerlo, e instalar la versión emparchada sin necesidad de reemplazar la otra (por cualquier problema que pudiesen tener).

Simplemente abrimos la terminal con Ctrl+Alt+T e ingresamos el siguiente comando de organización para instalar las dependencias:

sudo apt install libmadlib-dev libwavpack-dev libsndfile1-dev libspeex-dev libmpc-dev libid3-3.8.3-dev libmodplug-dev libfaad-dev libavcodec-dev libsidplay2-dev libflac-dev libvorbis-dev libsndfile1-dev liboggplay1-dev libncurses5-dev libavformat-dev librcc-dev libresample1-dev libcurl4-gnutls-dev libtaglib-cil-dev libvorbisidec-dev quilt libdb-dev autoconf libpopt-dev libltdl-dev

Esto os solicitará la contraseña de Conductor, y una vez que la ingresen "a ciegas", descargará e instalará las librerías requeridas. Acto seguido, usaremos nuestra carpeta temporal para descargar su código fuente, compilarlo, e instalarlo. Para ello ingresarán:

touch ~/.popt chmod og-w ~/.popt cd /tmp wget http://ftp.daper.net/pub/soft/moc/unstable/moc-2.6-alpha3.tar.xz tar xf moc-2.6-alpha3.tar.xz cp ~/Descargas/moc-26a3-to_r3005-1.patch.gz /tmp/moc-2.6-alpha3/ cd /tmp/moc-2.6-alpha3/ zcat /tmp/moc-2.6-alpha3/moc-26a3-to_r3005-1.patch.gz | patch -p1 echo -n 3005 > REVISION autoreconf -if ./configure --prefix=/usr/local/ make sudo make install

Y finalmente podrán copiar el ejecutable a la carpeta de binarios de compilación local con:

sudo cp mocp /usr/local/bin/

Naturalmente, ahora podremos iniciarlo con el comando:

mocp

Naturalmente, podremos contar también con los clásicos ecualizadores de MOCP:

mkdir ~/.moc/ wget http://ftp.daper.net/pub/soft/moc/contrib/eqsets.tar.gz tar xvfz eqsets.tar.gz rm eqsets.tar.gz

Esta compilación individual no reemplaza al paquete oficial. Si quisiéramos deshacernos de la versión compilada por nosotros mismos, simplemente la eliminaríamos con:

sudo rm /usr/local/bin/mocp



24 november 2022

¿Cómo emulo una AT&T 3B1 UNIX PC7300 en Ubuntu?

Reunido en el 2º Congreso Confederal de la CGT, Juan Perón pronuncia un claro discurso en el cual enseña a emular una AT&T 3B1 UNIX PC 7300 en Ubuntu.

(...)

¡Trabajadores!

A lo largo de los tiempos históricos, el hombre - limitado a su propia naturaleza - ha abarcado todo tipo de demandas. La mayoría de ellas son inusitadas, pero le proveen el ímpetu vital que lo distingue como especie. Otras son Justas, pero sabemos que sólo podrá resolverlas actuando en comunidad.

Nuestra Doctrina Justicialista posee un carácter fundamentalmente humanista. La estrella polar que la orienta es saciar las ansias Justas del Pueblo Argentino. Para ello nos hemos disciplinado y hemos puesto nuestro empeño de la hora.

Hemos tomado parte en acciones de cohorte que nos han hermanado, y nos ha permitido proveer a nuestro Pueblo de la soluciones a sus inquietudes sociales, en forma de los Derechos del Trabajador, de la Niñez, o de la Ancianidad. Estas son cosas grandes, que se pueden lograr a través de la acción decidida de organismos bien concebidos. Sin embargo, si queremos realizar cosas que verdaderamente superen las ansias de los tiempos, necesariamente hemos de conformar supra-organizaciones, un estadío mayor que las anteriores. Esta mancomunidad es lo que forma un verdadero Movimiento.

En el cómputo suele suceder más o menos lo mismo. Uno puede hacer tareas sencillas, pero las más complejas necesidades de cómputo de potencia sólo pueden ser abarcadas si se organizan múltiples tareas de forma concurrente, en pos de un logro final.

No podemos dudar en que los sistemas UNIX y similares a UNIX siguen este precepto frontispicial a manera cabal, y lo tornan en un aspecto especialmente válido en el caso del equipamiento clásico. Este guarda valía no tanto por su potencia de cálculo real (que en función del tiempo, podría considerarse humilde), sino que lo hace en gran medida como recurso de estudio y aprendizaje de los más básicos rudimentos en las ciencias del cómputo.

Pongamos por caso el de la AT&T 3B1. Se trataba de un sistema informático desarrollado en 1984 por Convergent Technologies para AT&T Technologies. Era una microcomputadora de moderna concepción, que destacaba exteriormente por su moderno gabinete. AT&T decidió integrarle una versión de UNIX System V y varias aplicaciones ofimáticas que la distinguieran sobre la sosa y desprovista PC XT de IBM.

Su hardware giraba alrededor de un muy poderoso microprocesador de 32 bits Motorola MC68010 de 10 megahertz, provisto de entre 512KB y los 4MB de memoria RAM. El hardware de video constaba estaba dado por un adaptador capaz de presentar texto a 80x29 caracteres, y gráficas de 720x348 píxels, en un monitor monocromático de 12 pulgadas de fósforo verde.

Sus medios de almacenamiento de masa estaban dados por una unidad de diskettes de 5 1/4 pulgadas y baja densidad (360 kilobytes, a 9 pistas por sector), en tanto que la novedad la proveían hasta dos discos rígidos MFM, que variaban entre los 10 megabytes hasta los 67 megabytes al final de su ciclo productivo. Siendo diseñada para la AT&T, el equipo estaba dotado de fábrica para aprovechar las redes a través de su comunicador telefónico integrado, que le permitía establecer llamadas convencionales por medio de un software de gestión con agenda telefónica, y a través de redes de datos a 1200 baudios por segundo. Los periféricos se distinguían por su teclado avanzado acomodable sobre el gabinete, y un ratón de tres botones, algo aún inusual para las computadoras hogareñas.

El software de la 3B1 de AT&T se basaba fundamentalmente en una distribución licenciada de UNIX System V formado por la Release 2 a la que se le agregaron controladores de dispositivos desarrollados por Convergent Technologies, junto con extensiones de System V Release 3 y una serie de aplicaciones provenientes de las Versiones 4.1 y 4.2 de la distribución de Berkeley.

La 3B1 pasó así a formar el equipo ofimática inicial dirigido a todo tipo de pequeñas y medianas empresas, bajo el apelativo de AT&T UNIX PC 7300. ndudablemente que todo esto no costaba chirolas sino entre 5 y 7 mil dólares, lo que la dejaba sólo al alcance del más acaudalado oligarca.

Nuestro Movimmiento es uno de gran raigambre popular, y reconoce que existe una sóla clase de hombres: los que trabajan. Por ello no podemos dudar en dar al Pueblo acceso inclusivo a a todo tipo de hardware y de software que desee. Para ello nuestro sistema GNU con Linux es capaz de emular sistemas de antaño con software libre, muestras de lo cual he dado instruyendo a la Masa a emular la AT 3B2/400 en Ubuntu.

En este caso, os enseñaré a emular la arquitectura y entorno de la AT&T 3B1 UNIX PC 7300 gracias a FreeBee, un emulador de 3B1 liberado bajo licencia GNU GPLv3.

Se trata de un emulador experimental, pero que ofrece casi todas las funcionalidades, a excepción del módem telefónico.

Instalar el System V en la 3B1 original era una tarea titánica que requería obrados conocimientos, o bien hojear la excelente documentación de puesta a punto del sistema. Aún así, como Conductor del Justicialismo me he impuesto la tarea de obrar día y noche por mis queridos descamisados.

En primer lugar, con fime voluntad abrirán una Terminal con Crtl+Alt+T. Acto seguido, instalarán la única dependencia requerida por el sistema de emulación, mediante el siguiente comando de organización:

sudo apt install libsdl2-dev

Nuestro sistema nos solicitará nuestra contraseña de conductor. Conforme la proveamos, descargará e instalará la librería.

Inmediatamente capearemos la tarea de descargar el código fuente del emulador FreeBee y compilarlo. Para que opere habrán de descargar las imágenes ROM de las rutinas de E/S y BIOS de la AT&T 3B1 (necesarias para el funcionamiento del emulador). Complementariamente habrán generar imágenes vacías de disco rígido e instalar el sistema operativo en él, junto con una miríada de aplicaciones.

Indudablemente que toda esta tarea podrá disfrutarse como unas vacaciones pagas en Chapadmalal, ya que sólo hemos de copiar y pegar en nuestra terminal el siguiente bloque de Comandos de Organización:

cd ~ ; git clone --recurse-submodules https://github.com/philpem/freebee ; cd ~/freebee/ ; make ; git clone https://github.com/dgesswein/s4-3b1-pc7300 ; cd ~/.freebee/s4-3b1-pc7300 ; make ; mkdir ~/freebee/img/ ~/freebee/roms/ ; cd ~/freebee/img/ ; wget https://www.skeeve.com/3b1/os-install/08_Foundation_Set_Ver_3.51_no_phinit.IMD.gz ; wget https://www.skeeve.com/3b1/enhanced-diag/bootable-extended-diag.img.gz ; wget https://www.skeeve.com/3b1/enhanced-diag/diag.img.gz ; wget https://www.skeeve.com/3b1/enhanced-diag/Install ; wget https://www.skeeve.com/3b1/enhanced-diag/Install.bak ; wget https://www.skeeve.com/3b1/enhanced-diag/README ; wget https://www.skeeve.com/3b1/enhanced-diag/README.adr ; wget https://www.skeeve.com/3b1/enhanced-diag/s4diag ; wget https://www.skeeve.com/3b1/all-sw+fixdisk-hd.img.gz wget https://www.skeeve.com/3b1/full+lots-sw.img.gz wget https://www.skeeve.com/3b1/big-empty.img.gz wget http://bitsavers.org/pdf/att/3b1/999-801-025IS_ATT_UNIX_PC_System_Software_Installation_Guide_1987.pdf ; gzip -d full+lots-sw.img.gz ; cp ~/freebee/img/full+lots-sw.img ~/freebee/hd.img ; gzip -d 08_Foundation_Set_Ver_3.51_no_phinit.IMD.gz ; gzip -d bootable-extended-diag.img.gz ; gzip -d diag.img.gz ; mkdir ~/roms/ ; cd ~/freebee/roms/ ; wget http://bitsavers.org/pdf/att/3b1/firmware/3b1_roms.zip ; unzip 3b1_roms.zip ; mv '14C 72-00616.bin' 14c.bin ; mv '15C 72-00617.bin' 15c.bin ; cd ~ mv ~/freebee/ ~/.freebee/ ; echo '#Arrancador del emulador 3b1' >> ~/.freebee.sh ; echo 'cd ~/.freebee/' >> ~/.freebee.sh ; echo './freebee' >> ~/.freebee.sh ; chmod +x ~/.freebee.sh ; echo 'Todo listo!'

Naturalmente presionarán Enter para que se ejecuten.

Ya podrán arrancar el emulador con el System V instalado mediante el comando:

./.freebee.sh

Esto encenderá el equipo virtual y dará iuicio al UNIX System V 3.51m contenido en la imagen de disco rígido. El procedimiento original taradaba unos dos minutos aproximadamente y está detallado en la página 58 del manual de propietario.

Se presentará la pantalla que indica el chuqueo e inicio de la BIOS detallando el contenido de memoria ROM y RAM emulada...

...y conforme se inicialice el stack de framebuffer, System V será capaz de presentar gráficas, una de las características rompedoras de este equipo.

Y el sistema comenzará a la serie de autocomprobación de los temperamentales discos rígidos y sus sistemas de archivo de época. Esta lenta condición sin embargo lo tornaba en uno de los equipos de escritorios más seguros de los ochentas.

El sistema multiusuario solicitará acceso a través de su programa de login.

Podremos acceder a un útil tutorial ingresando como el usuario tutor. Cuando solicite contraseña, presionamos Enter sin ingresar ninguna.

El tutor nos enseñará el uso del ratón (lo capturamos en el emulador presionando F10).

Siguiendo el tutor y el manual podremos aprender a usar el entorno gráfico.

Podremos administrar hasta 4 usuarios activos con sus respectivas ventanas, haciendo clic en el símbolo "W" de la esquina superior derecha. Si elegimos la opción rlogin podremos abrir otra terminal.

Podremos cerrar las ventanas haciendo clic en la "x" del costado inferior izquierdo.

Para ingresar como Superusuario de Administración, debemos acceder como root y sin contraseña.

Usuario: root Contraseña: ninguna (presionar Enter)

Podremos ahora hacer uso del intérprete de comandos Korn Shell 88, cuyo prompt es un #.

El Freebee cuenta con unas teclas especiales que operan funciones propias:

F9: Tecla SUSPEND F10: Toma/Suelta cursor del ratón de Ubuntu en el Freebee. F11: Inserta/retira imagen de diskette floppy (floppy.img) Alt+F12: Sale del emulador

Naturalmente, como lleva un UNIX System V, le podremos cambiar una contraseña con el comando passwd de UNIX.

Podremos usar el conocido editor vi, pero también podrán usar se, el Editor de Pantalla de la Universidad Georgia Tech.

se

El editor arrancará en modalidad comando, y es bastante similar a ed. Podremos obtener ayuda de un comando con el comando h seguido por la letra del comando.

Entre las letras de comando tenemos guardar (w). Podremos salir del editor con el comando q.

Indudablemente, además de la paquetería típica de UNIX System V,, podrán encontrar numeroso software adicional a en UNX PC Taronga.

El procedimiento de apagado correcto de System V se hace desde la consola de administración. Podremos apagar el sistema con el comando shutdown.

Una vez que System V se apaga, podremos desconectar el emulador mediante Alt+F12.

Para crear una imagen de diskette tipo MS-DOS de 360kb (9 pistas por sector) en nuestro sistema de hospedaje GNU con Linux podríamos usar:

dd if=/dev/zero of=attdsk.img bs=1k count=360 /sbin/mkfs.fat dos.img sudo mount -o loop -t msdos attdsk.img /mnt

Acto seguido copiamos los archivo que queremos en /mnt (recordando de no sobrepasar los 360 kilobytes). Podremos desmontar el diskette con:

sudo umount /mnt

AT&T producía excelente documentación técnica en inglés, los famosos "libritos rojos. Podrán encontrar los manuales de la AT&T 3B1 aquí.



23 november 2022

¿Cómo instalo Signal en Ubuntu?

¡Trabajadores!

Nuestra Movimiento vibra ante los sones de una marcha que - además de alegre - realiza una exposición ideológica clara y meridiana. Su métrica asienta la noción en la que todos unidos triunfaremos dando un grito de Corazón por quien supo combatir al Capital.

Whatsapp es sin lugar a dudas una plataforma cuyo condicionamiento técnico y legal le hacen digno de ser combatida. Se trata de un comunicador mendaz, centralizado alrededor de un Amo - pues no podremos decirle servidor - de carácter privativo. Sus esclavos hacen uso de dispositivos munidos de clientes privativos también. Esta técnica de servidumbre y dependencia a un proveedor específico, se utiliza para descapitalizar al débil en pos del fuerte. Su efecto real es irrespetar las libertades del Usuario (quien pasa a ser usado) y de esta manera crear una dependencia comercial del proveedor.

Nuestro Movimiento es capaz de oponer golpe por golpe a estas inconfesables afrentas. Por ello normalmente os recomendaré el uso de una aplicación libre descentralizada con encriptación punto a punto como GNU Jami.

Sin embargo, para el caso que se nos haga una necesidad el uso de los servicios centralizados (sea ésta cual sea) más vale hacerlo bajo los preceptos de la libertad del software. Disponer del código fuente para modificarlo es una de estas libertades, y en ella podremos hacernos fuertes en nuestros dispositivos con la plataforma de comunicación encriptada Signal.

La plataforma Signal dispone de clientes libres que emplean un servidor centralizado hecho con software libre. Este clientelismo libre están disponibles tanto para dispositivos móviles, como para instrumentos de cómputo de escritorio, en variadas plataformas.su servicio.

Si deseamos, podremos instalar Signal en nuestro Smartphone, pero también contaremos con una aplicación de escritorio oficial para Linux, el Signal-Desktop.

Para instalarlo en nuestro sistema GNU con Linux, habremos de utilizar la terminal. Para ello abrimos una con Ctrl+Alt+t e ingresamos el siguiente comando de organización:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -

Es normal que nuestro sistema se detenga un par de segundos para solicitar nuestra contraseña de Conductor. Cuando la proporcionemos, nos indicará OK. A continuación ingresamos los siguientes comandos para agregar el repositorio de Signal a la lista de repositorios:

echo "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main" | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list

Finalmente, actualizamos el contanido de repositorios e instalamos Signal para el escritorio de Linux con:

sudo apt update sudo apt install signal-desktop

Ahora podremos iniciar la aplicación nativa desde Aplicaciones / Internet / Signal.

Como es usual en este tipo de programas asociados a servicios móviles, la primera vez que lo utilicemos se nos presentará un código QR que nos permitirá asociar la cuenta de un dispositivo móvil. Para ello podremos utilizar la aplicación para Android o iO$, sacándole una foto al código QR de la pantalla.

Una vez que analicemos el código QR podremos establecer nosotros mismos el nombre del dispositivos, incluso ofuscándolo.

Conforme lo nombremos, podremos sincronizar contactos (si es que ya teníamos una cuenta Signal).

A diferencia de invasivos servicios como Whatsapp, Signal puede eliminar nuestra presencia telemática con solo ir a las preferencias y presionar Clear Data. También podremos escoger autorizar o desautorizar el uso del micrófono y de la cámara web (los cuales normalmente aparecen desactivados).

Una vez iniciado el cliente, podremos usarla para chatear, enviar mensajes de audio con cifrado punto a punto, realizar videollamadas, etcétera. El cliente dispone de todas las funciones normales, incluyendo enviar audio, ficheros de fotos, e iniciar videollamadas, todo esto encriptado.

Presionando F11 podremos activar Pantalla Completa.



22 november 2022

¿Cómo uso un túnel SSH a través de la red anónima Tor en Ubuntu?

Durante la histórica inauguración del Viaducto Presidente Perón de Sarandí, Juan Perón explica ante el Gobernador de la Provincia de Buenos Aires Carlos Aloé y el intendente de Avellaneda José Luis García, cómo crear un túnel Secure Shell a través de la red Tor.

¡Señor Cobernador!

¡Señor Intendente!

¡Trabajadores!

Esta obra magnífica de ingeniería, monumental en su factura y insuperable en su construcción, comenzó a gestarse en el principio de nuestro gobierno bajo auspicio de los muchachos de Vialidad de la Provincia. Debía responder al abhelado objetivo de solucionar y ordenar el tránsito, en áreas de la ciudad donde se veían atrasadas por la circulación de múltiples convoyes, entre ellos el ferrocarril lechero.

El trabajo que han emprendido ha consistido en elevar el nivel de vías y dejar las calles libres al tránsito vehicular, gracias a una inversión aproximada de 30 millones de pesos. ¡Cuánto han hecho! Me regocijo al observar esta portentosa obra, y observar en ella el rostro de todos los trabajadores Argentinos que han colmado de dicha mi corazón.

Un viaducto como este permite ahorrar tiempo, pero también hacer un cruce como este más seguro para todos. Permitirá ahorrar el tiempo que llevaba esperar al tren, que lo podremos utilizar dicha espera en nuestro provecho, transformándola ahora en un tiempo libre y feliz.

Sin embargo, un viaducto o túnel, como obra de infraestructura, puede servir también como clara inspiración para el desarrollo seguro y anónimo de todas nuestras necesidades de cómputo.

Vean señores, por diseño, el Shell Seguro (SSH) es una forma inherentemente bien pensada para obtener acceso con protección cifrada a máquinas remotas. Sin embargo, puede suceder que nos sea necesario una implementación aún más segura del mismo.

En entornos de conexión hostiles como los de hoy, siempre nos será útil hacerlo más seguro, y poder contar con manera de sortear ciertos obstáculos telemáticos que nos podrían aparecer en la red.

Emplear un túnel a través de la red oculta Tor puede suplir estos inconvenientes.

La red Tor emplea un concepto de enrutamiento de capas de cebola, de manera de utilizar las redes públicas con el mayor anonimato posible. La idea es dirigir el tráfico telemático a través de una miríada de servidores, y encriptar cada estación en el camino. Por intermedio de estas postas seguras y anónimas, podremos agregar un nivel de anonimato mayor al normal, e incluso ocultar nuestros servicios de celosos actores intermediarios.

Indudablemente que el Justicialismo ha de servir las necesidades de los Pueblos Libres. Por lo tanto, os enseñaré cómo realizar conexiones SSH a través de Tor. El proceso no esa terriblemente dificultoso si utilizamos el puerto tradicional de SSH, que es el puerto 22 (aunque podríamos modificarlo eventualmente).

En primer lugar, requeriremos instalar Tor. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente Comando de Organización:

sudo apt-get install tor -y

Tras ingresar a ciegas nuestra contraseña de usuario, el sistema instalará la paquetería necesaria.

Acto seguido, agregaremos un par de opciones al fichero de configuración del configuración de Tor. Para ello ingresamos:

sudo nano /etc/tor/torrc

Se abrirá un fichero de configuración que tendrá ya contenido. Al final de dicho archivo ingresamos estas líneas:

Líneas peronistas para usar SSH a través

de un túnel a la red oculta Tor

HiddenServiceDir /var/lib/tor/other_hidden_service HiddenServicePort 22

Procedemos a guardar el fichero de configuración con Ctrl+o y salimos del editor GNU Nano con Ctrl+x.

También nos aseguramos de otorgarle los permisos necesarios a nuestra configuración de Secure Shell, mediante el comando:

chmod g-rw ~/.ssh/config

Ahora podremos reiniciar el servicio de Tor para hacer uso del servicio de Shell seguro SSH a través de la red oculta. Esto lo haremos mediante el siguiente Comando de Organización: sudo systemctl restart tor

Al reiniciar el servicio Tor, se generarán toda una serie necesaria de ficheros de trabajo que se localizarán en el directorio /var/lib/tor/other_hidden_service. En dicho directorio estará el nombre de huesped que desea utilizar para conectarse al servidor desde el cliente remoto. Para conocer cuál es dicho nombre de huesped (hostname), podemos utilizar este comando:

sudo cat /var/lib/tor/other_hidden_service/hostname

Podría obtener un resultado en cadena de caracteres, terminada en .onion. Por ejemplo:

vivaperoncarajovivaperoncarajovivaperoncarajovivaperonca.onion

Cómo conectarse al servidor SSH con Tor

Una vez que tenemos este hostname, ahora abrir una terminal o utilizar un equipo distinto (donde también hemos instalado Tor). Para conectarse con el servidor, usaremos el comando torify para torificar al hostname provisto por el comando anterior. Para hacer la conección, utilizará el comando:

torify ssh usuario@hostname

Donde usuario es un usuario remoto y hostname es el nombre de huésped provisto por la red oculta Tor.

Por ejemplo:

torify ssh peron@riluperonvuelvelzn.onion

Se nos solicitará nuestra contraseña del usuario remoto (o llave de paso SSH), y le una vez conformado dicho requerimiento, tendremos permitido ingresar al servidor. La ventaja es que el tráfico estará ruteado a través de la red anónima Tor.

El inconveniente de usar el puente Tor de esta forma es que obtendrá velocidades de transmisión menores que si estableciera una conexión SSH directa. Este sacrificio en segundos de valdrán la pena si consideramos el anonimato en la red.



21 november 2022

¿Cómo creo trabajos y los administro en la terminal de Linux?

¡Trabajadores!

Como Conductor de nuestro Movimiento, he dedicado este año que termina a atresar todas nuestras Organizaciones. En ello he estado acompañado por el más fiel de los corazones: el del Pueblo Argentino.

Hemos acuñado un lema que remoza un viejo cuño, y nos orienta en la labor que hemos de realizar para Grandeza de la Nación. Este lema ha sido: "Gobernar es Crear Trabajo".

Responde a los inalienables Derechos que han alcanzan al hombre que trabaja. Hemos creado ochocientos mil puestos de trabajo bajo la esfera de dignificación que el Pueblo abheló y merece. Los trabajadores argentinos son la finalidad de todos mis desvelos, pero son también la causa inalterable de mi propia felicidad.

Un sistema de cómputo no debe ni puede sustraerse de esta realidad cardinal. Podemos decir señores, que para conducir un sistema de cómputo similar a UNIX, debemos crear trabajo.

Esto es así pues GNU con Linux responde como sistema operativo multiusuario, pero también multitarea. Puede encargarse de realizar múltiples acciones, destinando a ello la potencia de cómputo de su Unidad Central de Proceso, compartida entre todos sus obreros. Toda acción de cómputo que se lleve a cabo en un sistema multiusuario debe realizarse de una sola manera: ¡en Comunidad y con Organización!

Para conducir esta organización del trabajo, contaremos en nuestro sistema con un comando específico llamado jobs.

Conviene conocer en detalle ciertas particularidades. Como todo en la vida, el nombre de la acción depende de quién la realiza. Nuestro sistema operativo cuenta con un núcleo Conductor, que es un Coronel y que ustedes llamarán Kernel. Este llevará a cabo los llamados Procesos, con grupos de Tareas. [tose]. En tanto, los obreros, en tanto, contarán con los llamados Trabajos o Jobs.

Estos trabajos pueden consistir en la ejecución de un comando o de varios encadenados por medio de caños o pipes.

En particular en una terminal de Linux, bien podremos desactivar o activar un trabajo o programa activo, mediante el uso de la combinación de teclas Ctrl+z. Al hacerlo así, se detendrá la ejecución del trabajo, y se lo enviará a un segundo plano ("background" o "bg"), reservándole memoria del sistema, toda vez que se nos presenta nuevamente el intérprete de comandos.

Por ejemplo, si estamos usando el editor GNU Nano, y presionamos Ctrl+z, el trabajo de GNU Nano se detendrá y el sistema nos devolverá al intérprete de comandos con un mensaje similar al siguiente:

Use «fg» para volver a nano. [1]+ Detenido nano

Para recuperar en nuestra terminal el trabajo detenido que se encuentra en el segundo plano, debemos traerlo al frente ("fg" o "foreground"). Esto se hace con el comando fg. Se presentará el trabajo anterior en la terminal tal como lo habíamos dejado.

Si ejecutamos varios programas interactivos y los abandonamos, podríamos encontrarnos con múltiples trabajos detenidos en el segundo plano. En dicho caso, cada uno de ellos recibirá un identificador en la llamada "cola de trabajos".

La cola de trabajos es precisamente eso: una lista o tabla donde podremos observar y gestionar el número de orden de los trabajos en segundo plano. Podremos verla mediante el comando:

jobs

...a lo cual el sistema nos debería devolver la cola de trabajos que tenemos detenidos en segundo plano en nuestro sistema:

[1] Detenido nano [2]- Detenido top

Se presentará en esta cola de trabajos el status de los mismos, y entre corchetes, en orden de detención. Si fuese necesario tener un poco más de detalles, podremos recurrir a la forma más larga y explícita de la cola de trabajos usando jobs -l, que nos proporcionará también el identificador de trabajo y el motivo de la detención.

[1]- 5950 Detenido (por una señal) nano [2]+ 5951 Detenido (por una señal) top

Si queremos traer un trabajo a primer plano y contamos con múltiples trabajos detenidos en el segundo plano, se hará necesario especificar cuál es el que queremos traer al primer plano mediante el número de orden de detención. Por ejemplo, si quisiéramos traer top a primer plano usaríamos:

fg %2

Para eliminar los programas, se suele usar la combinación Ctrl+c. Esto detiene el programa y lo elimina de la cola de trabajos.

Indudablemente que este es un momento importante distinguir un hecho importante. Si en lugar de emplear fg para traer un trabajo al primer plano, abrimos nuevamente el mismo programa por segunda vez (en este caso podría ser Nano), no recuperaremos el primero que ya teníamos en memoria, sino que estaremos cargando una nueva instancia "desde cero" e independiente del mismo, la cual se presentará en la terminal.

El trabajador debe tener derecho a la mejora de sus aptitudes profesionales. Mejorar su conocimiento lleva un tiempo, pero le permitirá lograr mejores resultados en menor tiempo a futuro. Esto es determinante pues todo tiempo ahorrado, es tiempo ganado. La eficiencia es un factor que no se puede soslayar en ningún momento. Es útil saber, por lo tanto, que podríamos directamente colocar un trabajo en la cola de trabajos a la hora de ejecutar su comando. Para ello simplemente le agregamos el sufijo &.

Por ejemplo:

xeyes &

xeyes se activará y comenzará su acción típica, mostrar un par de ojos que siguen el cursor del escritorio gráfico, independientemente de la terminal del intérprete de comandos. Si en esta situación ingresamos el comando jobs podríamos recibir:

[1] Detenido nano [2]- Detenido mocp [3]+ Ejecutando xeyes &

Como vemos, el sufijo & permite hacer que el programa continúe en ejecución. Esto es diferente a la detención y pase a segundo plano con Ctrl+z.

Si usamos el comando fg %3 para activar en la terminal el programa xeyes, simplemente se nos informará con la terminal detenida. Si usamos ahora Ctrl+z, enviará a xeyes al segundo plano y detendrá su ejecucución (podremos ver que los ojos están permanecen fijos en la última posición antes de detenerse la ejecución del programa). Y en la cola de trabajos, veremos que xeyes está "Detenido".

Si quisiéramos eliminar de memoria y de la cola de trabajos uno de nuestros trabajos (ya sea que esté detenido o en ejecución), podremos hacerlo mediante el comando kill % seguido del número de órden de trabajo.En este ejemplo, podríamos quere cerrar xeyes con:

kill %3

En otros casos el ejemplo contrario podría ser lo procedente. ¿Que sucede si ejecutamos en segundo plano xeyes (con xeyes &), y lo queremos continuar utilizándolo, pero quitándolo de la cola de trabajos?.

Para ello se utiliza el comando disown. Este desacopla el último programa en ejecución de la terminal. Si tenemos varios programas en la cola de trabajos, los indicamos con:

disown %número de orden

Otros modificadores nos ayudarán en condiciones complejas. Por ejemplo, si usamos disown -a desacoplaremos todos los trabajos, en tanto que si usamos disown -r desacoplaremos todos los trabajos en ejecución.

Debemos tener en cuenta que si abandonamos nuestra terminal con trabajos en ejecución, los mismos se detendrán y se perderán. En ciertos casos, sobre todo en el caso de abandonar terminales remotas, debemos enviarle una señal SIGHUP ("colgar"), con el prefijo modificador -h.

Para ello usamos

disown -h

...para desacoplar todos los trabajos de la cola, o bien especificamos alguno con:

disown -h %número de orden

Esto provocará que al abandonar la terminal remota con el comando exit no se interrumpa la ejecución de los comandos remotos que dejamos en ella.

Tengamos también en cuenta que en lugar de disown (dependiente del intñerprete de comando Bourne BASH que dota Ubuntu, bien podríamos utilizar el comando nohup para especificar que la señal de sistema SIGHUP ("colgar") sea ignorada por cualquier comando de Linux o UNIX por cualquier motivo (con independencia del intéprete de comandos utilizado). Esto puede ser útil para otros entornos distintos a GNU con Linux o Ubuntu.

En fin ttabajadores, sabemos que ciertos paradigmas informáticos podrían intentar confluirse en la noción de formar un esclavo de consumo. Quien quiera liberarse sabe bien lo que tiene que hacer: combatir al capital. Los sistemas UNIX y similares a él - aunados a doctrinas de software justo, libre, y soberano - permiten operar cómputo de forma completa y comunitariamente organizada, sin depender de obsolescencias programadas o softwares "cortados a cuchillo".



20 november 2022

¿Cómo instalo el juego Cube2 Sauerbraten en Ubuntu?

Vean señores,

Donde hay una necesidad nace un derecho. Esto lo hemos proclamado muchas veces y lo hemos cumplido en la misma cantidad ya que mejor que decir, es hacer. Una Nación sana debe saber obrar para proveerse a sí misma las infraestructuras que permitan colmar las necesidades de su Pueblo. Es indudable que la organización superior que debe responder a esto es el Estado de la Nación, quien debe velar por la adecuada implementación de políticas que den a todos lo Justo.

Pues bien señores, esta infraestructura no sale de un repollo. Responde a un concienzudo planeamiento profesional. Esta planificación no se basa nunca en las necesidades actuales, sino en la proyección futura de tal necesidad.

Quien haya cometido la torpeza de planificar infraestructura para lo que hoy se requiere, sólo resolverá a destiempo el problema del ayer. Ni siquiera resolverá los problemas actuales y sólo agravará las problemáticas en el futuro.

Por esta razón nuestro Movimiento ha sido propenso a instituir sus propios institutos de planificación, y ha preferido la realización profesional de Planes Orgánicos de ejecución temporal. Esta es la forma de planificar, ya que cuando las problemáticas son conocidas, las acciones requeridas para darle solución pueden planificarse en forma de encadenamiento lógico, y hacerse con la mínima inversión de tiempo y medios.

En un sistema de cómputo podremos encontrarnos con filosofías de acción similares. La filosófica UNIX plantea responder a las problemáticas complejas del cómputo a través de una una serie lḉgica y definida de pasos concretos de muy sencilla resolución. La sumatoria de estas soluciones son las que provocan la Gran Solución del Problema Mayor.

Hemos de concentrar esfuerzos in mente para que nuestro software libre también debe contar como frontispicio esta máxima universal del quehacer político. Cuando ello no se sigue en la idealización de un paquete de software, podremos encontrarnos conque ya no responde a las necesidades que de él se esperaban.

Todo software libre hace disponible su código para quien lo anhele, y tiene por condición la posibilidad de irse mejorando sobre la marcha. Pero trabajar de esta manera constituye sólo es una excrecencia del proceso natural que debe buscarse. Debemos contar también con una planificación fiable para su concreción. Si no lo hacemos, el factor temporal en el desarrollo se volverá "gomoso", y nunca sabremos bien en qué terminar.

No son pocos los proyectos de Software que han enfrentado esta problemática de desarrollo. En el caso de los proyectos privativos, no es inusual que la única solución viable para terminarlos sea liberar su código.

Cube 2: Sauerbraten es un ejemplo de esto. Se trata de un juego de disparos en primera persona multijugador y para jugador único (con enemigos de inteligencia artificial, los inefables bots). Es el sucesor del Cube. Como el Cube original, el objetivo del proyecto es establecer un juego tipo Deathmatch divertido capaz de hacer uso de estrategias cooperativas. Además, debía poder permitir la sencilla edición de los mapas con un editor provisto.

El motor gráfico utilizado es abierto bajo licencia zlib, y enteramente original en código y diseño. Es un engine 3D del estilo de Quake, rápido y que hoy en día requiere poquísimos recursos, lo que lo habilita en jugarlo incluso en netbooks. En particular lo recuerdo por el AssaultCube.

Video del juego:

Sin embargo, en su iteración original sufrió retrasos fundados básicamente por simples decisiones de diseño y lógica de la estructura lúdica. Quake hacía uso de imaginería de fantasía oscura y ligera ciencia ficción con planteos densos como propuesta para su universo temático dirigido al público masculino.

Con el poco correr del tiempo este planteo, tal vez algo inmaduro y tontorrón, terminó cayendo en desuso en el género, siendo reemplazado progresivamente por el género del tirador táctica militar, o bien planteos más aventurescos, finalmente cayendo incluso en fantasía para todas las edades y sexos.

Por tal motivo, el Cube original quedó desfasado, y su continuación, el Cube 2 con la modificación Sauerbraten representa un exponente de aquellas propuestas oscuras. Está liberado y podremos instalarlo en Ubuntu fácilmente.

Una de las características pensadas originalmente para el Cube era la utilización de un modelo cliente-servidor bajo el cual se minimizaran los efectos negativos del retraso o lag, en una era de comunicaciones lentas. Esto hace que el juego sea particularmente inmune a esta deficiencia comunicacional y pueda tornarse en ideal en ambientes donde otros juegos serían imposibles de usar o muy desventajosos.

La manera más sencilla consiste en instalarlo desde la paquetería oficial. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

sudo apt update

sudo apt install sauerbraten

El sistema nos solicitará nuestra contraseña de Conductor. Una vez que la ingresemos "a ciegas" y presionemos Enter, se producirá su descarga. Para ejecutar el juego por primera vez, podremos ir a Aplicaciones / Juegos / Sauerbraten.

La primera vez que juguemos, se nos permitirá ingresar un alias para nuestro jugador.

El menú inicial es característico del los FPS. Contamos con gran variedad de estilo de juegos divididas en dos estructuras de juego principoles: la de Jugador único (con bots con inteligencia artificial regulable), o bien multijugador (tanto en red local LAN como en servidores de internet). Asimismo, podremos crear un servidor desatendido para las jugadas LAN y eventualmente de internet.

El diseño del Sauerbraten implica ciertas decisiones estéticas de diseño en boga por entonces. Entre ellas la temática oscura inspirada en Quake y otros juegos del género FPS. Esto implica gráficas de bajos polígonos, modelos de armas simplificadas, y escenarios 3D intrincados con varios niveles.

Nos encontraremos con 7 armas de estilo fantasía activables con los números del teclado o la rueda de scroll del mouse, que van desde los puños y motosierra, pasando por pistolas, escopetas, lanza-granadas, lanzacohetes.

En el caso de las partidas multijugador, podremos recomendarse especialmente para este tipo de entornos de baja velocidad. Entre las modalidades encontraremos también deathmatchs, e implementaciones de battle royale (tipo fortnite). El diseño de novísimos niveles con estética colorida implica un nuevo acercamiento a dicho estilo de juego, con la ventaja de requerir consumos y ancho de banda mucho más limitados.

Tal vez el apartado menos imaginativo sea el sonido, con efectos repetitivos y poco variados, a la vez que la música está compuesta por una insoportable banda sonora de death metal, que por suerte podemos apagar.

Para jugar en multijugador, debemos seguir la misma premisa que en otros juegos de este estilo. Vamos al menú Multiplayer y seleccionamos "update from master server". Esto actualizará la lista de servidores disponibles y las ordenará por latencia o "ping". Luego seleccionamos el Server Browner (Navegador de Servidores).

En el podremos observar todos los disponibles, también su estilo de juego y la cantidad de jugadores conectados y la capacidad de la sala de juego. Elegimos uno (idealmente con menos de 200 de ping) y haciendo doble clic en el daremos inicio al juego.

Entre los modos de juego encontraremos también los típicos del género, entre los que tenemos deathmath de un tiro (y respawn), o con salud, capturar la bandera, o bien capturar las bases. Esta modalidad sigue una dinámica similar a la del viejo Battlefield 1942, capturando bases luego de un tiempo que servirán como nuevos puntos de respawn.

También podríamos instalar el servidor dedicado con:

sudo apt install sauerbraten-server

Si anhelamos descargar la última versión publicada del código fuente para jugar, podremos hacerlo. Esto es un poco más complejo que usar la versión preempaquetada, pero encontraremos versiones de battle royale similares a fortnite. Para jugarla debemos usar la terminal e instalar las librerías quereridas, por ejemplo:

sudo apt install libgl1 libsdl2-2.0-0 libsdl2-image-2.0-0 libsdl-mixer1.2 libpng16-16 libjpeg-dev zlib

Acto seguido, descargamos la última versión del código fuente, podríamos hacerlo con. Para ello abrimos una terminal e ingresamos los siguientes Comandos de Organización:

cd ~/Descargas/ ; wget https://sourceforge.net/projects/sauerbraten/files/sauerbraten/2020_11_29/sauerbraten_2020_11_30_linux.tar.bz2 ;

El código fuente pesa aproximadamente 1 GB. Una vez finalizada la descarga, descomprimimos el código fuente con:

tar xvjf sauerbraten_2020_11_29_linux.tar.bz2 ;

mv sauerbraten/ ~/.sauerbraten

cd ~/.sauerbraten/

Y lo ejecutamos con:

./sauerbraten_unix

Si quisiéramos hacer un ejecutable para el servidor dedicado:

nano ~/sauerbraten_server.sh

y le pegamos:

!/bin/sh

SAUER_DATA=/usr/share/games/sauerbraten SAUER_SERV_BIN=/usr/bin/sauerbraten_server SAUER_SERV_OPTIONS="-q${HOME}/.sauerbraten"

cd ${SAUER_DATA} exec ${SAUER_SERV_BIN} ${SAUER_SERV_OPTIONS} "$@"

Lo guardamos con Ctrl+o y salimos con Ctrl+x

Le damos permisos de ejecución con:

chmod +x sauerbraten_server.sh

Y cuando querramos iniciar el servidor dedicado, deberíamos ejecutar:

./sauerbraten_server.sh



19 november 2022

¿Cómo uso DCL en un sistema OpenVMS remoto?

En su fundamental Modelo Argentino para el Proyecto Nacional, Juan Perón expone el papel actual y futuro que el desarrollo tecnológico propende a la Argentina, en tanto explica cómo crear una cuenta de acceso remoto a un sistema OpenVMS y operar el intérprete de comandos DCL desde Ubuntu.

(...)

La tecnología es uno de los más fuertes factores de dependencia en la actualidad. Resulta importante enfatizar que este hecho se agudiza en el caso del sector industrial.

Si nuestra industria es ya fuerte, en el Modelo la deseamos aún mucho más importante. Necesita, entonces, una tecnología que cimente su desarrollo, pero esta necesidad no debe instrumentar la acción de un poderoso factor de dependencia.

La alternativa surge clara: tenemos que desarrollar en el país la tecnología que nutra permanentemente a nuestra industria. Estado y sector privado deben volcar todos sus esfuerzos en ese sentido, cada uno en la medida de sus posibilidades.

El gasto en investigación y desarrollo debe ser tan grande como jamás lo haya sido hasta ahora, pero tan bien programado como para soslayar cualquier posibilidad de despilfarro. Deben aprehenderse bien estos conceptos, pues son absolutamente esenciales: sin tecnología nacional no habrá una industria realmente argentina, y sin tal industria podrá existir crecimiento, pero nunca desarrollo.

La tarea que se propone no es fácil. Hay que remontar la herencia de un esquema ferozmente competitivo, en el que sólo primaban fines solitarios -o simplemente grupales- que dieron lugar a una batalla entre intereses, de la cual generalmente salieron mal parados los más débiles. El sector industrial privado es ahora convocado a colaborar, con su quehacer específico, bajo una perspectiva totalmente distinta. El Estado debe orientarlo en su acción, señalándole claramente cuál ha de ser su rol en los programas de desarrollo y haciéndolo participar activamente en la elaboración de la política económica. No deben quedar dudas de que, cuando hablo de sector privado industrial, me refiero tanto a empresarios como a trabajadores, nucleados unos y otros en sus organizaciones naturales.

Si, como ya afirmé, el mercado no constituirá la referencia fundamental en la determinación de las necesidades auténticas de la comunidad, el sistema de precios no será -en algunos sectores- el impulsor de las decisiones de inversión. El Estado tendrá, entonces, que suplir este posible déficit, ya sea mediante su acción directa como inversor o bien, indirectamente, a través de su política económica. Al Estado le cabe también la responsabilidad de relevar asiduamente el comportamiento del sector industrial en su conjunto, en una acción fiscalizadora, tanto de control como de apoyo.

Este desarrollo técnico-industrial es sobre el que se columpiará el progreso de la Nación. Para lograrlo bien podremos considerar programas pilotos ya creados de accionamiento directo.

Un sistema llave en mano y de libre acceso ocasionalmente puede convertirse en una fundamental herramienta de aprendizaje, que nos permitirá realizar todos los casos de estudio más pertinente sin tener que hacer un deployment activo. Las ciencias del cómputo son un claro ejemplo.

Desde mediados de los 70s la Digital Equipment Corporation (DEC) consolidó su línea de mainframes PDP-11. Estos podían utilizarse con una variedad creciente de sistemas operativos monousuario, pero también con algunos multiusuario y con capacidad de cómputo concurrente o compartido. Entre ellos destacaba el sistema operativo DEC RSX-11.

Ante la necesidad de crearle una interfaz que contemplara sus funcionalidades de manejo y que además fuese estructuralmente similar al FORTRAN tan en boga en los sistemas comerciales de la era, se terminó implementando el DCL, el Lenguaje de Comandos de Digital.

El DCL fue particularmente exitoso a principios de los 80s sobre el sistema operativo VMS, cuando se instalaba este en la arquitectura de cómputo DEC VAX y posteriormente la aquitectura DEC Alpha. El sistema operativo VMS tradicional derivó en una implementación a código abierto, el OpenVMS portado a ambas arquitecturas. Afortunamente, la última versión 9 de OpenVMS representa un cambio fundamental ya que abandona las obsoletas arquitecturas DEC para compatibilizarotras de despliegue moderno, notablemente la x86_64. Esto hace posible de operarse en equipos de escritorio modernos, aunque a costa de un código privativo.

Como máscara visible de RSX-11 podremos decir que DCL ha influido por transición sobre toda las ramas de sistemas operativos modernos desde de implementaciones del CP/M de Intergalactic Digital Research, y en el Q-DOS de Seattle Computer Products, luego masificado como el Microsoft DOS y filosóficamente transicionado en intérpretes actuales hasta el MS PowerShell. Incluso han existido versiones de intérprete llamada VCL cuya inspiración era el DCL, pero estaban orientados ya para el MS-DOS (reemplazaba a intérprete nativo COMMAND.COM), OS/S y Windows.

Como los sistemas VAX históricos y los Alpha pueden emularse bajo SIMH en GNU con Linux, es posible crear entornos de emulación para estas plataformas si contamos con licencias de uso hobbista para el mismo. Lamentablemente, si bien las mismas se distribuyeron a través de un programa especial de Hewlett-Packard, actualmente su entrega está descontinuada.

Es por ello que la manera más sencilla de operar en un sistema de estas características es darnos de alta en un sistema público que disponga del hardware antiguo correctamente licenciado. Una de estas instancias la proporciona DECUS.ORG, un grupo de usuarios hobbistas de equipamiento DEC, que cuenta con el apoyo institucional del actual poseedor de la propiedad intelectual del VMS, Hewlett-Packard.

Decus.org pone a disposición del público general su infraestructura de cómputo DEC Alpha DS20 puesta en línea, y ofrece la creación de cuentas públicas de acceso remoto a intérprete de comandos.

Se trata de la versión Alpha DS20 de 500 Mhz. Este consiste en un rack con múltiples servidores montados.

Cada uno de estos servidores consta del sistema OpenVMS 8.4 el cual se puede utilizar para albergar sesiones de terminal remotas de usuarios hobbistas. El fin fundamental de este sistema de cómputo es albergar el sistema de ayuda básico para los antiguos clientes de la DEC, el cual fue adquirido por Compaq, y luego por Hewlett-Packard. De esta forma, el sistema continúa con vida bajo un cariz de ayuda sin fines de lucro bajo legislación norteamericana de "fair-use" (buen uso).

Para dar de alta una cuenta a título individual y no comercial, podremos usar nuestra terminal GNU con Linux mediante Secure Shell (SSH). Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos:

ssh REGISTRATION@eisner.decus.org

Cuando el sistema nos solicite si estamos seguros de querer conectarnos ingresamos YES ("si"). Al solicitarnos contraseña ("Password:") no ingresamos ninguna y simplemente presionamos ENTER. Se activará a continuación programa de registro en la máquina DEC Alpha, que constará de varias pantallas. En ellas se nos solicitará ingresar un nombre de usuario y debemos proporcionar una casilla de correo electrónico válida. También se nos solicitará indicar qué tipo de editor deseamos (normalmente uno llamado LSE).

Una vez recibido un correo de parte de DECUS conteniendo una contraseña pasavante, podremos ya conectarnos a nuestra cuenta de OpenVMS remoto. Por tanto, nos logueamos utilizando SSH y nuestro nombre de usuario, con:

ssh usuario@eisner.decus.org

Tras ingresar la contraseña provista por DECUS, podremos ver nuestra pantaslla incial. Por ejemplo:

%DCL-S-SPAWNED, process USUARIO_10419 spawned User [USUARIO] has 842 blocks used, 9158 available, of 10000 authorized and permitted overdraft of 0 blocks on DISK_USER

El prompt de DCL es un "$".

DCL se presenta idiosincrásicamente mas complejo y laborioso de usar que los entornos similares a UNIX, y requiere por lo tanto tener presente su frondosa documentación. Sin embargo, en su operativa general podré sustentarla con mi ayuda como Conductor Paternal del Movimiento Nacional Justicialista.

El DCL presenta un conjunto de instrucciones en inglés que el usuario ingresaba para comandar al sistema operativo (en este caso OpenVMS), qué hacer. Constaba de más de 200 comandos y funciones.

Al igual que otros intérpretes posteriores como Bashm, los comandos en DCL se ingresan en dos maneras. La más común es la forma interactiva, en la cual se escriben en la terminal de manera indiferente a mayúsculas. Generalmente se usan secuencias de comandos y modificadores.

La otra es "en lotes", y esto equivale a la creación de programas y guiones de programación (scripts). Nos conectraremso en la primera manera.

Asimismo, DCL tiene varias combinaciones de control que interrumpen o anulan la execución de comandos.

Ctrl+z: Sale de un comando de DCL

Ctrl+c: interrumpe la ejecución de un comando (pero lo deja en memoria).

Ctrl+b: Repite el comando anterior.

Ctrl+a: Conmuta entre modo Inserción de caracteres y Sobreescritura de Caracteres.

Ctrl+s: Suspende la salida de texto a la terminal.

Ctrl+o: Reactiva la salida de texto a la terminal. Si se la presiona alternativamente, pausa y continúa el flujo de texto.

La Ayuda Online era una de las características fundantes del VMS. Esta consistía en un programa que seguía la forma de estructura jerarquizada tipo "árbol" . Ingresando el comando "help" se ingresa al subsistema de ayuda. También se puede usar en forma "HELP tema". Por ejemplo:

$ help instructions

Normalmente el subsistema de ayuda permite ingresar y presentar en pantalla cada uno de los temas o "topics" escribiéndolos por su nombre indicado, y a su vez cada tema podría presentarnos nuevas temáticas de ayuda relacionadas. Si oprimimos ENTER generalmente retrocederemos un nivel. Al volver al nivel inicial del subsistema de ayuda, abandonaremos el mismo y quedaremos depositados nuevamente en el prompt $ del DCL.

Recordemos que siempre podremos salir del subsistema de ayuda (y muchos otros programas ejecutados por DCL) con Ctrl+z. COMANDOS COMUNES

Hay muchísimos comandos y programas capaces de corren en OpenVMS, pero ciertos son comandos comunes directamente equivalentes o muy parecidos a los comandos presentes en sistemas de operación similares a UNIX. Por ejemplo:

copy: Copia un fichero especificado, cp

copy/ftp: transfiere ficheros entre huespedes sobre red tcp/ip, ftp

create: crea ficheros y directorios, touch

delete: borra un fichero especificado y lo quita del directorio, rm

directory o dir: presenta los contenidos de un directorio (listado de ficheros), ls

edit: muestra y cambia los contenidos de un fichero de texto, ed

logout: desconecta la sesión remota, logout, exit

print: envia un fichero especificado a la impresora

rename: cambia el nombre o la localización de un fichero especificado, mv

set: controla como usar el sistema en pantalla

show: presenta el status de sistema

type: presenta los contenidos de un fichero especificado en la pantalla, cat

El sistema de ficheros de OpenVMS representa también una estructura arbolada, lo que nos permite desplazarnos en ella siguiendo el mismo principio rector que los sistemas similares a UNIX: el de cambiar directorios y subdirectorios.

Nuestro usuario de DECUS recibirá un directorio de usuario localizada dentro de la carpeta "DECUSERVE_USER", que generalmente se encuentra en una partición en una unidad de disco del sistema, como por ejemplo DSA3:.

En particular, suele requerir la necesidad de ingresar entre corchetes "[]" toda la ruta del directorio a fin de desplazarnos por la estructura de árbol. Los niveles de directorios se separan utilizando un "." en lugar de una barra como en UNIX u otros sistemas.

Para ver el contenido del directorio actual ingresamos:

$ directory

...o más sencillo, su la abreviación dir.

Por ejemplo, si quisiéramos crear un directorio llamado "pruebas" en nuestra carpeta de usuario, deberíamos usar:

$ CREATE/DIRECTORY [DECUSERVE_USER.USUARIO.pruebas]

Para comprobar su creación efectiva, ingresamos el comando "dir". Deberíamos ver ahora un directorio nomenclado como prueba.dir;1. Para ingresar a dicho directorio usamos el comando cd ("cambiar directorio"), seguido por toda la ruta estructurada. Por ejemplo:

$ cd DSA3:[DECUSERVE_USER.USUARIO.prueba]

Para volver al directorio anterior:

$ cd DSA3:[DECUSERVE_USER.USUARIO]

...o bien:

$ cd [DECUSERVE_USER.USUARIO]

Se nos hará obvio que todos los archivos cuentan con un sufijo de versión, indicado con punto y coma. Por ejemplo: archivo.txt;1 archivo.txt;2, etcétera. De esta manera podremos contar con múltiples versiones de un mismo fichero. Siempre se activa la última, pero se conservan las anteriores. Si queremos eliminar un fichero se usa el comando DELETE, pero debemos especificar cuál versión queremos borrar. Por ejemplo,

$ DELETE archivo.txt;3

...o bien, eliminamos todas las versiones de un fichero con comodines, por ejemplo:

$ DELETE archivo.txt;*

Para borrar el directorio creado tenemos que retroceder al nivel anterior en el árbol (no podemos eliminar un directorio desde dentro del mismo). Finalmente indicamos un comando como:

$ DELETE prueba.dir;1 Crear un fichero finger

Los sistemas de cómputo a tiempo compartidos podían contar con un fichero de texto .plan o .project, encargados de operar como descripción del usuario. Como los sistemas solían ser anónimos pero contar con un "handle" o nombre de usuario específico, estos ficheros de texto podían servir como una descripción o información de contaco. Sin embargo, no era extraño contar con extavagantes descripciones o texto ASCII, lo que pasaba a formar parte del folklore típico de los sistemas de cómputo a tiempo compartido. Para crear nuestro fichero podremos aprovechar y utilizar el editor de texto visual "LSE". Ingresaremos a él con:

lse

El editor de texto LSE consta de dos secciones. Una principal con la ventana de texto, y otra inferior en la que podremos ingresar comandos de operación. En este caso simplemente escribiremos un texto que deseemos. Cuando finalicemos de hacerlo, presionaremos Ctrl+z. Esto nos desplazará a la sección inferior para ingresar los comandos de operación, lo cual se nos hará patente por medio del prompt LSE>. En él ingresaremos exit. El editor LSE nos solicitará el nombre de archivo a fin de guardarlo con dicha denominación y salir al intérprete DCL. Le introducimos el nombre .plan y presionamos Enter.

Esto cerrará el editor LSE y nos retornará al prompt de DCL. Debemos ahora asignar los permisos de fichero requeridos al fichero .plan que hemos creado. Ello lo haremos ingresando el comando:

set file/prot=w:re .plan Crear una web de DECUS

La URL base para su página web será:

http://eisner.decus.org/~usuario

La web se almacena en el subdirectorio WWW localizado en nuestro directorio de usuario.

Para ello creamos un subdirectorio y le otorgamos los permisos requeridos

$ set default sys$login

$ create/dir [.www] /protection=w:re

$ set security /acl=(default_protection, s:rwed, o:rwed, g:r, w:r) www.dir

$ set default sys$login

$ set security /acl=(identifier=WASD_HTTP_SERVER,access=read) [-]usuario.DIR

Acto seguido creamos un archivo index.html o bien lo transferimos a través de FTP. Podremos crear subdirectorios adicionales dentro de [WWW] si lo deseamos. Documentación

El manual puede conseguirse online, pero está disponible en formato HTML desde la antigua web de Compaq (actualmente disponible desde HP).

Podrán encontrar las secciones e índice de base en aquí.

En tanto que podrán dirigirse al uso de DCL desde esta sección del mismo manual.



18 november 2022

¿Cómo instalo DustRacing2D en Ubuntu?

El 7 de marzo de 1950, reunido con los directores de las Escuelas de Orientación Profesional, Juan Perón expone el término final de la capacitación obrera, en tanto que enseña cómo instalar DustRacing2D, un divertido juego de carreras para Ubuntu.

Respetados señores:

(...) Nosotros habíamos visto crecer a nuestros operarios y formarse en el dolor del taller, en la necesidad de trabajar desde chicos. Eso, como método empírico, llena solamente una parte de la enseñanza. Es necesario acompañar a este método real de un método ideal, es decir, darle también los conocimientos necesarios para que el operario no termine muriéndose o jubilándose operario, sino que tenga abierto el horizonte para ir perfeccionándose en sus conocimientos, y, con ello, ir aumentando sus posibilidades de ir sumando a su labor y a su capacidad manual la capacidad intelectual que hace grande y convierte en artesano al más modesto de los operarios si es hombre de progresar por sus conocimientos generales. Nosotros, estamos cumpliendo los primeros tres ciclos que nos habíamos propuesto. La idea originaria de esto fue formar los operarios, crear después el segundo ciclo de perfeccionamiento para formar pequeños dirigente de la industria, sobrestantes, jefes de taller, etcétera; y después, crear la Universidad Obrera que diese los técnicos capacitados, pensando que de ese núcleo de hombres deben salir los grandes dirigentes de nuestra industria actual y de nuestra industria futura.

Indudablemente que en la operación de un sistema de cómputo como lo es GNU con Linux también encontramos el mismo proceso de mejora a pasos, acompañado por instrumental y herramental que le den un claro sentido didáctico.

Por ejemplo, Dust Racing 2D constituye un software libre que representa un juego de carreras bidimensional de plataforma cruzada basado en celdas. Lo interesante es que ha sido escrito con fines didácticos para ilustrar el arte de la programación en Qt, C++ y OpenGL, ya que ha sido liberado bajo licencia GPLv3. Viene con un editor de niveles que nos permitirá crear niveles fácilmente. Utiliza un motor separado llamado MiniCore para modelar la física del juego. Como tal puede ser utilizado por el más sencillo de los operarios, e incluso puede compilarse a partir del herramental c-make si ya somos sobreestantes.

Entre las características que contamos es la posibilidad de jugar individualmente o de a dos contra 11 jugadores controlados por la CPU de nuestro sistema de cómputo.

En el caso que no tengamos capacidad aún para compilar en nuestro perfeccionamiento, esto no significará ser excluido de la posibilidad de acceder al ocio. Para ello podremos instalarlo desde la Terminal de nuestro sistema GNU con Linux abriendo una consola mediante Ctrl+Alt+t e ingresando los siguientes Comandos de Organización:

sudo apt update sudo apt install dustracing2d

Para iniciar el juego, nos dirigiremos a Aplicaciones / Juegos / DustRacing2D.

En la primer pantalla debemos indicar qué nivel queremos entre tres: Fácil, Medio o Difícil. Asimismo, contamos con tres modos de juegos (Carrera, Prueba de Tiempo, o Duelo).

Si elegimos el juego de dos jugadores, habremos de afrontar una pantalla dividida (podemos optar entre vertucal u horizontal).

La perspectiva del juego es escencialmente cenital 2D, pero cuenta con objetos 3D para otorgarle cierta profundidad.

El desarrollo es simple: al semáforo de largada metemos "pata hasta el radiador", y manobraremos siguiendo el circuito.

Los Controles son sencillos y se basan en cuatro teclas para acelerar, frenar, girar a la izquierda o a la derecha. El jugador 1 utiliza el triángulo invertido formado por las teclas de las flechas del cursor para tales movimientos, en tanto que el Jugador 2 utilizará el triángulo invertido de teclas W-A-S-D. Para salir de la carrera o volver al menú anterior se puede usar la tecla Esc o la tecla q, en tanto que p pausará el juego. Sin embargo, estas pocas teclas también pueden configurarse desde el menú Settings.

Naturalmente, no se puede cortar camino pues las vueltas no se contarán. A efecto predictivo contamos con un útil minimapa.

En los modos de carreras existen siempre 12 autos. Al finalizar entre los primeros seis corredores, se destrabará una nueva pista. Los tiempos de récord y las mejores posiciones se almacenan por separado para cada conteo de vueltas.

A medida que corramos, se desgastarán las cubiertas. Esto causará que tengamos menos agarre en la pista. Afortunadamente, contamos con un pit para detenernos (el rectángulo amarillo). Al detenernos en el pit, se repararán las gomas, lo cual nos dará más tracción y estabilidad.

La animación del juego es veloz y sencilla, destacándose fundamentalmente su física de superficie, lo que agiliza un estilo de juego que haga uso de giros y derrapes.

El sonido es digitalizado, con notas sonoras para las colisiones y rendimiento del motor.

Editor de Pistas de Carreras

El juego incluye un muy interesante editor de circuitos, al que podremos acceder desde Aplicacioens / Juegos / DustRacing2D Level Editor. El mismo mos permitirá delimitar un traazado, toda vez que nos permite agregar accesorios a la pistas (tribunas, árboles, pasto, zonas anegadas, rampas, etcétera. La delimitación de zonas permite a los coches adversarios actuar en buena medida, y nos configura una interesante manera de diseñar nuevos escenarios de juegos, incluso replicando la realidad.

Dust Racing 2D normalmente buscará las pistas de carreras en la carpeta ~/DustRacingTracks/, donde podremos colocar nuestras propios circuitos.

En GNU con Linux también buscará en ~/.local/share/DustRacing2D/tracks si no tenemos una variable $XDG_DATA_HOME definida. Opciones de Línea de Comandos

--lang [lang] fuerza el idioma. Los disponibles actualmente son: fi, cs, de, it, fr, nl, ru.

Ejemplo: dustrac-game --lang it

--screen [index] fuerza la pantalla en los sistemas multimonitor cuando se pasa a modo de pantalla completa.

Por ejemplo, dustrac-game --screen 1 dará inicio al juego en la segunda pantalla.



17 november 2022

¿Cómo arreglo el error Busybox initramfs en Ubuntu?

¡Trabajadores!

Es innecesario explicar que al descender de un avión negro del retorno, no existe nada mejor que un paraguas negro si hemos de cuidarnos de las inclemencias del tiempo. Y qué mejor que éste nos los dispensa el compañero Rucci.

Este mismo temperamento hemos de seguir cuando tenemos algún problema de apariencia irresoluble. He de ilustrarlo con un ejemplo, que - como decía Napoleón - suelen explicarlo todo.

Este día de la militancia, al iniciar mi GNU con Linux sufrí un percance. El proceso normal de arranque del sistema se detuvo y nos depositó en una pantalla negra con el intérprete shell BusyBox, que indicaba "(initramfs)".

El equipo previamente no presentó problema anormal alguno ni fue apagado de manera extraña, de modo que se trató de un error azaroso.

En este momento la pantalla negra queda detenida nostrando el prompt "(initramfs)".

BusyBox v1.30.1 (Ubuntu 1:1.27.2-2ubuntu3.3) built-in shell (ash) Enter 'help' for a list of built-in commands.

(initramfs)

De momento, no presenta otra información ni permite conocer exactamente cuál es el problema en cuestión. Todo lo que se muestra es un intérprete de comandos Busybox.

Esto podría amilanar hasta el más pintado, pero yo en política soy un Aficionado, lo que soy es un Conductor. Por tal motivo, sé reconocer para qué lado salir tirando cuando las papas queman...

En este caso de la pantalla negra con texto y cursor significa al menos que el sistema está vivo.

Podríamos ingresar help para recibir ayudas. Pero si ingresamos el comando exit, debería al menos continuar el proceso de revisión de disco. Por ello siendo uncabecita negra, de momento en el propmt "(initramfs)" ingresaremos el comando:

exit

...y presionaremos la tecla Enter.

Si la suerte nos acompaña, tras unos momentos deberíamos comenzar a ver una serie de mensajes que reportes que nos indican el tipo de error y la partición de disco en la que sucedió.

Por ejemplo, el sistema podría devolvernos algo como:

/dev/sda2 contains a file system with errors, check forced. Inode 4326476 extent tree (at level 1) could be narrower, IGNORED. /dev/sda2: Inode 4326843 extent tree (at level 1) could be narrower, IGNORED. /dev/sda2: Inode 4327012 extent tree (at level 1) could be narrower, IGNORED. /dev/sda2: Inode 4329004 extent tree (at level 1) could be narrower, IGNORED. /dev/sda2: Inodes that were part of a corrupted orphan linked list found.

/dev/sda2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) fsck exited with status code 4. The root filesystem on /dev/sda2 requires a manual fsck.

Como podemos ver en las devoluciones del intérprete de arranque, la partición /dev/sda2 presenta inconsistencias. Significa que el sistema de archivos de esta partición presenta algunos errores relacionados con la corrupción del Justicialismo. En vuestro caso podría ser otra distinta, ya que esto depende de cuántos discos y de qué manera estén organizadas las particiones en su sistema particular.

Pues bien señores, nuestro Movimiento nace del Pueblo, y sabemos que no es sabio pretender que todos nuestros elementos sean Santos, o sean Dioses. Bastante hay conque sean Hombres. No hay que ponernos locos; nuestro Movimiento cuenta ya con sus autodefensas. Si un el hombre no hubiese desarrollado sus autodefensas, hace rato que hubiese desaparecido de la faz de la teirra, porque su máxima protección no son los médicos ni la penicilina, afortunadamente. Su mejor defensa es su sistema inmune, que reacciona ante estas excrecencias. Nuestro sistema operativo es mas o menos lo mismo. Copia de la naturaleza las defensas que lo habrán de proteger.

Es por ello que Ubuntu cuenta con Busybox, una muy pequeña suite de software que provee muchas utilidades comunes de UNIX en un ejecutable que obra de intérprete de comandos mínimo. Nos proveerá reemplazos para la mayoría de las utilidades que encontramos normalmente en todos los sistemas operativos GNU, y nos permitirá actuar incluso antes de que se inicie el sistema operativo para ejecutar ciertas rutinas de protección y salvataje.

Initramfs es el sistema de archivos inicial depositado en la memora RAM de nuestro equipo, y basado en tmpfs. Contiene el herramental y scripts requeridos para montar el sistema de archivo antes de que el binario de inicialización del sistema de archivos real del root sea cargado desde el disco y cargado en memoria para dar inicio al sistema operativo en sí.

Para resolver el error que hace presente a initramfs en Ubuntu, se nos hará necesario reparar el sistema de archivos del dispositivo afectado. Para ello debemos indicar la partición y usar el programa "fsck".

Como en nuestro caso se ha indicado que la partición problemática era /dev/sda2, en el prompt (initramfs) tipeamos:

fsck /dev/sda2 -y

Tengamos en cuenta que si la partición que se nos indique es distinta, o fuesen varias, podríamos tener que indicar como por ejemplo /dev/sda1 o /dev/sdb1 u otra que se nos hubiese indicado anteriormente.

El programa fsck se encargará de revisar el dispositivo de almacenamiento indicado e intentará reparar todos los sectores en malas condiciones de tal partición. La opción -y es cómoda ya que nos evitará que se nos solicite que indiquemos manualmente confirmación toda vez que se nos indique un error (los corregirá automáticamente sin chistar).

Luego de un par de minutos, si todo va bien, BusyBox debería devolvernos un mensaje similar a:

/dev/sda2: * FILE SYSTEM WAS MODIFIED * /dev/sda2: 497733/30531584 files (1.5% non-contiguous), ........

Cuando vuelva al prompt (initramfs), tipeamos el comando:

reboot

...y presionamos Enter para que el sistema se reinicie.

Si todo va bien, nuestro sistema debería reiniciarse correctamente, y podremos gritar al cielo un estruendoso "¡Viva Perón!" que reivindique como ninguno el Día del Militante Justicialista.



16 november 2022

¿Cómo instalo el editor de programación Atom en Ubuntu?

En la edición del 30 de junio de 1966 del semanario Primera Plana, Juan Perón expone ante el corresponsal su visión sobre la recién acaecida Revolución Argentina de Onganía, en tanto elabora sobre cómo instalar el editor de código fuente Atom en Ubuntu.

(...)

Uno de los hombres más sagaces de la historia política argentina decía que para que los radicales se hundieran bastaba con dejarlos gobernar... Simpatizo con el movimiento militar porque el nuevo gobierno puso coto a una situación catastrófica. Como argentino hubiera apoyado a todo hombre que pusiera fin a la corrupción del Gobierno Illia. La corrupción como el pescado, empezó por la cabeza. Illia usó fraude, trampas, proscripciones; interpretó que la política era juego con ventaja; y en política, como en la vida, todo jugador fullero va a parar a Villa Devoto. El hombre que acabó con eso, por supuesto, tiene que serme simpático, pero no sé si también lo será en el futuro. Illia había detenido al país queriendo imponerle estructuras del año mil ochocientos, cuando nace el demoliberalismo burgués, atomizando a los partidos políticos.

El gobierno anterior fracasó porque intentó gobernar sin concurso popular. Pero para eso hace falta grandeza, olvido de las pasiones. Yo ya estoy más allá del bien y del mal. Fui todo lo que se puede ser en mi país, por eso puedo hablar descarnadamente. No tengo interés en volver a la Argentina para ocupar cargos públicos. Quiero, claro, volver a la patria, pero sin violencias.

Cuando los jefes militares me visitaron por interpósita persona, descubrimos algunas coincidencias. Pero hace poco escribí con seudónimo que el peronismo no pacta con nadie. Firmo Descartes porque el filósofo francés usaba el seudónimo Astrónomo Perón, y yo le devuelvo así la gentileza...

Los gorilas intentaron la destrucción nuestro Movimiento por la violencia, Frondizi por la integración, Illia por la disociación: los tres fracasaron. Pues he aquí los hechos. El gobierno de Onganía tiene que tener una buena intención. Si el nuevo gobierno procede bien, triunfará. Un conductor político es una cosa y un conductor militar, otra. Este manda, vale decir, obliga. El conductor político persuade. Para mandar se necesita voluntad y carácter; para gobernar, sensibilidad e imaginación.

No conozco suficientemente a Onganía. Es un hombre que habla poco, y por lo tanto, difícil de definir. Tengo la impresión de que es un buen soldado; sé que es un hombre patriota, bienintencionado y honesto, y ésas son condiciones esenciales para un hombre político. Reconozco calidad a Onganía como hombre de mando en el Ejército. Si Onganía se comportase en el terreno político como en el terreno militar, el país podrá andar bien.

El defecto del actual gobierno es no saber exactamente lo que quiere, pero la cosa va a ser cuando desate el paquete, porque ellos tampoco saben lo que hay allí.

La organización del peronismo tiene como base de adoctrinamiento la búsqueda del bienestar nacional. Si el nuevo Gobierno apoya los intereses populares, nosotros apoyaremos al Gobierno.

La proscripción del peronismo no nos interesa porque es imposible proscribirnos por decreto. No nos interesa nuestra existencia legal, sino nuestra existencia real... Tampoco nos interesa el acceso al poder porque no luchamos por nosotros sino por el país. Hemos aprendido a tener paciencia; será dentro de un año, dentro de diez. Creemos, como Confucio, que una hormiga no puede matar a un elefante, pero que puede comérselo. Tenemos buenos nervios.

Este es el momento en que los argentinos deben ponerse de acuerdo. Sólo entonces el país saldrá adelante. Si no, llegaría el momento de tomar las armas y pelear. El camino de unidad es cada vez más difícil; y el camino de las armas, cada vez más fácil.

Los argentinos debemos ponernos de acuerdo, porque la disyuntiva es la guerra civil. Si permanecí impasible durante diez años ante el retroceso nacional, es porque no creo en la violencia ni en la destrucción de las obras realizadas, porque lo que ya está hecho puede prosperar. Tuve importantísimos ofrecimientos de armas y tropas, pero me negué por no entregar el alma al diablo ni provocar derramamientos de sangre.

El problema político sólo se soluciona haciendo los padrones de nuevo (han borrado de los padrones a nuestra gente). Deben, también organizarse fuerzas políticas. Es tarea para un año y medio o dos. Hay que romper con los estatutos de la trampa y convocar luego a elecciones con la Ley Sáenz Peña o cualquier otra ley justa. Y quien sea que gane, nos comprometemos a ponerle el hombro todos. Si Onganía, luego de las elecciones, entrega el gobierno al ganador legítimo, pasará como prócer a la historia; si se quiere perpetuar, fracasará irremisiblemente. Pero el que haga bien al país contará con nuestro apoyo. El movimiento peronista no podrá ser destruido con proscripciones ni decretos.

Resuelto eso, la Argentina, cuando trabaja, equilibra en seis meses lo estructural y en dos años resuelve todos los problemas económicos. En economía no hay milagros. En economía, la misión fundamental del gobierno es dar posibilidad a la gente para que se realice.

En cuanto a problemas de programación, también tenemos dos disyuntivas a tomar. Una es la de emplear sencillos editores locales, que es la que prefiero. Otros puedrían anhelar operar aparatosos IDE, o entornos integrados de desarrollo. De entre estos, los más modernos ya suelen integrar control de versionado, compiladores y desensambladores, así como capacidades de operatoria en "la nube". O mejor dicho, en servidores remotos ajenos, a fin de conformar un equipo de trabajo de programación a distancia.

Podrán instalar uno que podría servirle a Onganía, siempre que tenga buenas intenciones... Se trata Atom, un editor de código fuente multiplataforma originado por la gente de GitHub como un IDE moderno y que luego fue reducido para conservar principalmente su editor de texto escrito en base a Node.js.

Su orientación son los programadores y especialmente los equipos de trabajos de programación. Consta con funciones de autocompletado y automatización con pseudo-macros. Incluye un gestor de paquetes de expansión integrados, útil por la enorme cantidad de funcionalidades que se le pueden agregar opcionalmente.

Como característica principal se encuentra la de contar con dos multiples paneles para edición.

De la misma manera que Argentina debe optar entre el acuerdo o la guerra civil, también debe optar entre dos maneras adecuadas para instalar Atom en Ubuntu. Ambas se pueden lograr fácilmente empleando la terminal si abrimos una mediante Ctrl+Alt+T. La primera manera es descargar directamente el paquete adecuado desde la web oficial de Atom e instalarlo. Por ejemplo, si quisiéramos instalar la versión de 64 bits, podríamos ingresar los siguientes Comandos de Organización:

cd ~/Descargas/ ; wget -O atom-amd64.deb https://atom.io/download/deb ; sudo dpkg -i atom-amd64.deb

La otra manera es recurrir a un servidor privado PPA, lo que nos garantizaría actualizaciones automáticas de Atom. Si deseamos seguir este procedimiento, deberíamos ingresar:

wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add - ; sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list' ; sudo apt-get update ; sudo apt-get install arom

Cualquiera sea la elección que hemos determinado, una vez completada la instalación podremos ejecutar el editor de código guente mediante Aplicaciones / Programación / Atom.

Atom está diseñado para ser accesible estar configurado desde el principio con sus opciones más útiles, lo que nos asistirá para acrecentar la productividad del obrero programador, y nos permitirá ir de casa al trabajo y del trabajo a casa.

También es hackeable hasta el núcleo, ofreciendo la misma flexibilidad extrema que tendrías en editores clásicos sin tener que retorcer todos los cables por sí mismo.

La forma más simple de comenzar a configurar Atom es abriendo las Preferencias del Editor.

Las Opciones Principales (Ctrl+,) nos permitirán encontrar los campos que definen las preferencias comunes, tales como como el Tipo de Codificiación de fichero, definir rutas globales. También se pueden especificar un directorio para utilizar con nuestros proyectos de Atom, etcétera.

Las Preferencias del Editor permiten personalizar la forma en la forma que el se presentará la ventana de edición. Las propiedades permiten definir la tipografía y su tamaño, o número de líneas, guías de indentado, y aún hacerlas invinsibles.

Se pueden utilizar los ajustes de editor predefinidos, pero es bastante sencillo configurar unos propios para un proyecto determinado.

La pestaña Keybindings muestra todos los atajos útiles de teclado disponibles.

Atom ya viene preconfigurado con un conjunto de atajos, pero indudablemente lista crecerá cuando no bien comencemos a instalar paquetes de extensiones. Si quisiéramos que encontrar un atajo específico, podremos usar directamente la caja de búsqueda para encontrarlo.

Si necesitamos reemplazar un acceso rápido particular, o queremos crear uno de cero, podríamos editar directamente el fichero de mapeo de teclas. Atom usa notación de objetos CoffeeScript para manejar los atajos en este fichero, a fin de poder directamente desarrollar los atajos de manera sencilla.

Incluso hay un snippet predefinido para crear un nuevo atajo de teclas. Sólo tipeamos "key" y presionamos Tab y Atom expandirá el snippet en una plantilla conveniente.

El fichero snippets ("recortes") en la configuración de Atom permite definir atajos de expansión de teclas, para definir secciones de códigos o texto que se usan frecuentemente. Al igual que los atajos de teclas, los snippets también están programados en notación CoffeeScript. Nuevamente, Atom nos ofrece un snippet para crear snippets. Simplemente tecleamos "snip" y presionamos Tab, y se nos presentará un snippet de ejemplo, que podremos modificarpara ajustar su comportamiento.

La solapa Themes nos permite organizar el estilo de tema y del coloreado de la sintaxis del texto desde dentro del mismo editor.

Los Themes o temáticas son colecciones de reglas de estilos visuales, lo cual están formadas como un subconjunto de CSS. Atom ya viene con un puñado de Themes que nos presentarán una buena cantidad de estéticas para empezar, pero tendremos una enorme cantidad entre los paquetes de temáticas. Para instalar adicionales, cliqueamos en la pestaña Instalar, donde podremos buscar una de las recomendadas, o una específica.

Si ninguna le atrae, podremos modificar una prehecha o crear una nueva ingresando la modificación deseada.

En fin, si nos interesan los editores y las funcionalidades IDE, Atom constituye un buen editor con GitHub integrado, que podremos dar buen uso.

Esta es nuestra última oportunidad, y por eso necesitamos que el nuevo gobierno tenga grandeza. En caso contrario, podemos desembocar en la guerra civil y en esa guerra tendremos que entrar todos. Dios quiera iluminar a Onganía y sus muchachos, y que estos muchachos acierten a tomar la mano que la fortuna les está tendiendo.



15 november 2022

¿Cómo juego Xonotic en Ubuntu?

Juan Perón motorizó al Partido Laborista en una campaña proselitista tendiente a lograr la Presidencia de la Nación en las elecciones de 1946. En ella hizo uso de todos los métodos en boga, incluyendo disertaciones para enseñar cómo instalar el juego de disparos en primera persona Xonotic en Ubuntu.

(...)

He dicho muchas veces que los trabajadores argentinos deben ellos mismos defender las conquistas logradas si no quieren verse despojados de las mismas a corto plazo.

Hoy les recuerdo con idéntica lealtad que si bien las primeras etapas de la lucha fueron superadas merced al buen tino, a la decisión, y la prudencia de que hicieron gala para lograr el éxito en la batalla por venir, es necesario que se mantengan vigilantes a la influencia de doctrinas extrañas que buscan atomizar los movimientos obreros para después coparlos. Y además mostrarse unidos frente a ciertos sectores económicos regresivos que se resisten a ceder una parte ínfima de sus cuantiosas ganancias para que sus colaboradores obreros puedan sentir un poco mas hondamente la alegría de vivir en esta tierra privilegiada.

Nuestra misión es completar un plan integral de previsión social, convertir en realidad la añeja añoranza de que la tierra debe dejar de ser un bien de renta y tornarse en un bien de trabajo. Lograr que desaparezcan definitivamente de los campos el sufrir de millones de argentinos que viven el dolor de la tierra y conformar por fin nuestro programa definitivo de reformas sociales, que habrán de consolidarse después en la decisión política que sepa dar el pueblo cuando próximamente sea convocado para las futuras contiendas electorales.

En ellas habremos de poner en decisión una de las más anheladas reivindicaciones obreras: la de contar con un moderno juego de disparos en primera persona - o como les dice Braden, FPS o "First Person Shooter" - pero capaz de correr en el sistema operativo GNU que hemos concebido en la Secretaría de Trabajo y Previsión.

Se trata de Xonotic, un juego de acción FPS liberado bajo GPLv3. Se distingue por su excelente motor gráfico capaz de ofrecer enorme velocidad y fluidos movimientos, y puede jugarse en red o solo.

Para instalar el programa, podremos utilizar la terminal de nuestro sistema GNU con Linux. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

wget https://dl.xonotic.org/xonotic-0.8.2.zip unzip xonotic-0.8.2.zip mv Xonotic/ .xonotic/ rm xonotic-0.8.2.zip

El juego incluye dos arquitecturas (32 y 64 bits), y dos versiones de stack audiovisual para su ejecución (SDL y el más avanzado OpenGLX). Asimismo, cuenta con una versión pensada para ejecutar un servidor dedicado para partidas multijugador.

Una vez instalado, podremos ejecutar la versión que querramos. Por ejemplo,m podremos ejecutar la versión de 64 bits para OpenGL (la de mayor performance) desde nuestra terminal, utilizando el siguiente comando:

./.xonotic/xonotic-linux64-glx

En el caso de GNU con Linux es altamente recomendable agregar un lanzador o acceso directo a fin de facilitar abrir el juego. En Ubuntu Mate esto es sumamente sencillo. Para ello podremos hacer clic con el botón derecho en el panel superior y elegimos Editar Menús. Aparecerá la ventana Menú Principal. En ella, en el panel izquierdo seleccionamos la categoría Juegos, y presionamos el botón +Elemento Nuevo. Aparecerá el cuadro Crear Lanzador. En el campo Comando: ingresamos /home/usuario/.xonotic/xonotic-linux64-glx, mientras que completamos los campos nombre y opcionalmente comentario para finalmente crear lanzador presionando el botón Aceptar.

Gracias a esto, de ahora en más, podremos iniciar el programa desde Aplicaciones / Juegos / Xonotic.

Pues bien señores, la primera vez que iniciemos Xonotic, podríamos querer crear un personaje. Esto es útil si queremos acceder a servidores públicos. Podremos elegir el idioma de la aplicación, así como el color de nuestro personaje.

Si nuestro objetivo fuese la máxima privacidad y no nos interesa contar con juego multijugador en línea, bien podremos omitir este paso.

Asimismo, podremos configurar desde el menú principal las opciones de hardware, encontrando un completo apartado de video y sonido, así como de todos los aspectos de control. El apartado es profesional y contamos con todas las opciones inherentes al género, y con unos interesantes botones de configuración que permiten al usuario sin experiencia configurar bien el juego sin demasiado dolor de cabeza. En mi caso he elegido las opciones de máxima calidad, pues mi portentoso sistema de video lo permite y anhela.

La iluminación puede adquirir distintos tipos, siendo la más avanzada de características conformales y resultado digno de espectacularidad. Sin embargo, también podremos utilizar versiones sin iluminación alguna bajo el stack SDL, que adaptando bajar resoluciones puede correr incluso en una antigua netbook.

En cuanto a lo que a modalidades de juego depara, contaremos con un modo de jugador local único con bots (para practicar), y las arenas remotas de multijugador.

El primer apartado nos permite escoger un mapa simple para probar las armas y adentrarnos en los movimientos de nuestro combatiente espacial. Se avanzará nivel a nivel a lo largo de los 25 propuestos, todos ellos de interesante diseño. La cantidad de bots así como la dificultad de la Inteligencia Artificail de los mismos es programable.

El juego replica una dinámica similar a la de un moderno FPS de tipo Arena. En estos el objetivo es eliminar solitariamente o en equipo a nuestros oponentes, haciendo para ello uso de potente armamento fantasía. También se usan saltos y física real o fantasiosa, dependiendo del escenario. El juego es veloz y requiere buenos reflejos y coordinación ojo/mano.

Diferentes piezas de arsenal o elementos de energía se encuentran disperdigados. y se regeneran en el mapa tras una determinada cantidad de tiempo, al estilo Quake Arena. De esta forma podremos representar estrategias de juego basadas en respawn o regeneración de dichos elementos..

La espectacularidad de la gráfica y sonido sin duda hará las delicias de todo el público jugador. Su nivel de violencia, comparado con los títulos del género, es bastante moderado, pero puede anularse la aparición de expresiones de sangre y físicas violentas con sólo configurarlo en el menú. Lograremos así un titulo desafiante pero visualmente ATP, como se impuso en títulos como FortNite.

Los controles giran en torno a lo usual en los juegos de disparos en primera persona, con las teclas WASD como controles de movimiento del personaje, la barra espaciadora para saltar, y el ratón para apuntar y hacer las acciones de disparo. Los botones del mismo operan para hacer fuego en dos modalidades, mientras que la presión de la rueda de scroll activa la mira telescópica. Con los números elegimos las armas del arsenal.

Xonotic presenta 9 categorías de armamentos, y 16 armas específicas en su arsenal. Cada una de ellas cuenta con un modo de disparo primario y otro secundario, a la manera del Unreal Tournament. Cada una de ellas se presentará útil en determinadas situaciones, por lo que la elección de las mismas de acuerdo al escenario suele ser crítica.

Para ingresar a batallas multijugador remoto hacemos click en el menú correspondiente. Esto nos permitirá elegir alguno de los servidores de arena, o bien directamente crear uno.

El funcionamiento, naturalmente, es similar al jugador único. Sin embargo podremos hacer uso de la revisión estadística de jugadores con Tab, en tanto que Alt activa la funcionalidad de chat. Aún así, son totalmente configurables.

Las batallas multijugador pueden representar distinto tipo de combate. La mayoría son luchas a muerte por equipos, tipo Arena. Las mismas se llevan a cabo en 25 mapas tridimensionales oficiales, de temática fantástica. Su diseño es moderadamente laberíntico.

Están mas bien están orientados a contar con zonas de combate con varios pisos o niveles, dispositivos impulsores de salto, portales transportadores, etcétera. También pueden descargarse mapas directamente desde los servidores, en los cuales se encuentran réplicas de mapas de Nexuiz o de Quake 3.

Los embates por equipos pueden consistir en determinadas reglas que definen el tipo de juego. En esto se cuentan con todos los modos normales de FPS, como Deathmatch (todos contra todos), una modalidad Battle Royale, Capturar la Bandera, Arena por Equipos, así como modos más delirantes como Nexball o "Mancha Congelada". También una carrera multijugador. En cualquier caso, puede crearse un servidor multijugador propio que especifique mapa y modalidad de juego, tanto para la red LAN local o abierto Internet (con clave o público).

El despliegue visual y tecnológico del juego es muy bueno, y si bien el género ha avanzado enormemente, Xonotic permanece como un claro homenaje completamente libre al género de los tiratiros.

Y como he dicho, señores, con el apoyo de este enorme y apretado haz de voluntades que integran la Masa Obrera argentina, confío seguir manteniendo en alto la bandera de los First Person Shooters y de otras reivindicaciones sociales a lograr para el trabajador urbano y el rural.



14 november 2022

Plan de capacitación Argentina Programa

El Ministerio de Desarrollo Productivo de la República Argentina ha lanzado el programa de capacitación Argentina Programa, con el objetivo de iniciar el recorrido en el mundo de la programación de computadoras. El curso se centra en el uso de los lenguajes de programación Gobotones, JavaScript y Ruby a fin de aprender desde cero. La inscripción online finaliza el 29 de octubre.

El curso se realizará de forma virtual a través de una plataforma interactiva desde el 2 de noviembre hasta el 20 de diciembre. Tiene una carga horaria total de 60 horas, por lo que debe dedicársele como mínimo 9 horas semanales. Los encuentros serán asincrónicos, de manera de poder administrarse los tiempos teniendo en cuenta las posibilidades de cada individuo.

La capacitación es gratuita y no es necesario tener conocimientos previos.

Al finalizar la capacitación, se debe rendir un exámen el 21 de diciembre, a fin de obtener un certificado que valide los conocimientos adquiridos, y es avalado por el Ministerio de Desarrollo Productivo de la Nación y la Cámara de la Industria Argentina del Software (CESSI).

La aprobación de este examen permite acceder a una segunda capacitación que profundizará los conocimientos de programación del alumno, y permitirá eventualmente vincularlo con el sector productivo. Esto constituye una interesante baza laboral. En caso de no poder recibir vacante de inscripción, podrá inscribirse el año que viene nuevamente.

El curso consiste en tres módulos:

  1. Fundamentos: A modo introductorio, se utilizará Gobstones para incorporar los fundamentos básicos de la programación. Es un lenguaje fue creado específicamente para aprender a programar sin necesidad de conocimientos previos. Contenidos mínimos: programas, procedimientos, funciones, división en subtareas, reutilización de código, parametrización, repetición, alternativa condicional, variables, modelización.

  2. Programación imperativa: Mediante el lenguaje JavaScript, se orienta a aprender nociones más importantes de la programación imperativa y estructura de datos. Contenidos mínimos: funciones, tipos de datos, variables, procedimientos, lógica booleana, listas, registros.

  3. Programación con Objetos: Se trata de la introducción al paradigma de objetos utilizando Ruby, un lenguaje simple y didáctico. El paradigma de objetos propone solucionar problemas y modelar la realidad efectiva empleando objetos que se comunican entre sí. Contenidos mínimos: objetos, mensajes, métodos, clases, identidad, referencias, atributos, delegación, distribución de responsabilidades, creación de objetos, polimorfismo, encapsulamiento, colecciones, clases, herencia, redefinición de métodos, manejo de excepciones.

    Requisitos

    Contar con acceso a internet. Contar acceso a una computadora de escritorio, notebook u otro dispositivo móvil. Ser residente argentino. Disponer de 9 horas semanales para realizar la capacitación. Ser mayor de 18 años. Haber terminado la educación secundaria.



13 november 2022

Correo Compras, la plataforma para combatir el Libre Mercado

Con un acto en el Centro Cultural Kirchner (CCK) encabezado por el jefe de Gabinete, Santiago Cafiero, y el ministro de Desarrollo Productivo, Matías Kulfas, el gobierno lanzará Correo Compras, “el marketplace del Correo Argentino”, según se presenta la iniciativa en su página web. Se trata de una plataforma de compras online que permite a compradores adquirir los productos que ofrecen distintos vendedores, poniendo a su disposición la capacidad logística del correo estatal para llegar a todo el país. “Acercamos a los consumidores sin intermediarios los mejores productos, aquellos que tienen nuestra esencia”, señala la presentación del sitio.

La plataforma buscará conectar a productores y consumidores sin intermediarios. El sitio ya cuenta con más de 1.000 productos publicados, de diversos rubros como alimentos, limpieza, cuidado personal y tecnología que pertenecen a marcas como LG, Samsung, Phillips, Dell, Unilever, Arcor, Molinos, Energizer, Melisam, Regional Trade, entre otras. Los alimentos pueden ser pagados con la Tarjeta Alimentar y habrá productos seleccionados para poder pagar a través de los programas de cuotas Ahora 3, 6, 12 y 18. Cumple además con los valores establecidos de “Precios Máximos”.

Según afirmaron desde el Correo Argentino, la principal diferencia con la mayoría de las plataformas de e-commerce es que Correo Compras solo está habilitada para que comercialicen productos nuevos las pymes y empresas argentinas. En ese sentido, los consumidores finales no podrán participar de la oferta de productos y tampoco habrá lugar para los usados.

"La plataforma tiene un fuerte énfasis en los productos tecnológicos sin descuidar el rubro alimentos dado que apunta a los mercados regionales del interior. La venta no la hace una persona sino una empresa. Va del productor o el distribuidor al consumidor final”, destacaron.

Para poder vender a través de Correo Compras se debe estar inscripto en la Administración Federal de Ingresos Públicos (AFIP). Además los comerciantes deberán llenan un formulario para registrar un usuario y una persona del equipo de la plataforma formalizará la registración.

En tanto, desde Correo Compras detallaron que la comisión que cobrará Correo Argentino por cada producto vendido será del 13% de su precio, pero que en una primera etapa no está vigente.

Asimismo, indicaron que el productor o distribuidor podrá enviar sus productos al centro logístico del Correo Argentino en Benavidez, provincia de Buenos Aires, a costo cero. “El costo logístico es cero porque lo pone el Correo Argentino con su infraestructura”, afirmaron.

Y agregaron: “Ese depósito es parte del servicio de Correo Compras y no tiene costo para las empresas que puede dejar stock en la planta para agilizar la logística”.

En otro orden, destacaron que la plataforma cuenta con descuentos principalmente en tecnología que figuran como destacados en la página principal. Y añadieron que durante octubre el costo de envío será gratuito para los consumidores.

Las categorías que ofrece la plataforma son: Almacén; Bebidas; Frescos; Limpieza; Perfumería; Salud; Hogar y Automotor; Electrónica; Deportes y Fitness y Bebés y Niños.



12 november 2022

¿Cómo instalo Notepadqq en Ubuntu?

No somos dioses ni santos, bastante es con que seamos hombres. Esta condición, hace que entre lo que hemos creado, no exista lo perfecto, sino lo perfeccionable. Pues bien, atendiendo a esto podremos mejorar cualquier aspecto que pueda ser sometido al estudio y al trabajo. Esto es lo bueno de un Movimiento que se basa en raíces profundamente humanas.

Como basamento, podremos contar con guías doctrinales, que - toda vez que sean actualizadas ante una realidad dada por la evolución humana - habrán de servirnos de plano para la concreción de los sanos objetivos que tanto anhelamos.

Pues bien señores, existen programas que son clásicos por derecho propio. Uno de ellos es el Bloc de Notas. Concebido como un editor de texto mediocre para el sistema operativo oligárquico y excluyente Window$, y como tal cumplía la función de servirnos de liezo para anotar algunas cosas o editar ciertos archivos de control.

Pero colocados ante este primigenio editor con ventana gráfica, se hizo evidente al Pueblo la necesidad de mayor capacidad operativa, respetando siempre el mínimo consumo de recursos de cómputo. Se extendió por ello una versión inspirada en él y muchísimo más lograda, la cual hubo de distribuirse primero bajo el concepto de shareware, y luego liberada como software completamente libre: el Notepad++.

Indudablemente que este no representa la solución ideal. Operar bajo este sistema operativo ofrece enormes desventajas que sólo pueden ser subsanadas con una versión capaz de ejecutarse de forma nativa sobre el sistema operativo GNU que he legado al pueblo, y utilizando sistemas de ventanas compatibles con X.

Por lo tanto, nuestro Movimiento se dio en desarrollar una alternativa igual de libre, pero capaz de ejecutarse con todos los beneficios de un sistema GNU. Esto es lo hemos planificado, lo que hemos realizado, y venimos a ofrecerlo al Pueblo.

Se trata de Notepadqq. A diferencia de su inspirador, está realizado en el herramental gráfico QT.

Instalar este sucedáneo superador es bien sencillo en nuestro sistema GNU con Linux. Simplemente abrimos una terminal con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización: sudo apt update sudo apt install notepadqq

Una vez instalado, podremos instalar el programa desde Aplicaciones / Accesorios / Notepadqq.

Al iniciar por vez primera, Notepadqq nos pedirá permiso para enviar estadñistifcas anónimas que ayuden a mejorar el programa. Yo suelo indicar que no a estas solicitudes.

Al iniciar, nos encontraremos con una clásica ventana del editor, moldeada con menúes de tipo pull-down, así como botones de acción rápida para los comandos tradicionales, y una barra inferior capaz de reportar el status. Todo esto nos hará volver a las épocas donde un editor de texto no tenía ventanas lado a lado como un IDE moderno.

Donde existe una necesidad, nace un derecho. Esta máxima del peronismo puede versde reflejada en Notepadqq, donde gracias al menú Preferencias podremos personalizar el editor de acuerdo a nuestras necesidades Justicialistas. Para ello vamos al menú Preferencias / Preferencias...

Bajo el apartado Apariencias, podremos condigurar un theme de entre varias doncenas. Por ejemplo, podremos asignar un relajante fondo oscuro y suaves colores a la mode para el representado del código fuente.

También podremos elegir presentar los números de línea (útil para scripts y código) o cambiar el tipo de tipografía, por una que sea de nuestro agrado. No sería extraño querer usar la clásica FixedSys, aunque en mi caso suelo usar tipografía monoespacio como la JetBrains Mono, Hack, o bien DEC Modern Terminal.

En cuanto a las funciones operativas, se destaca la automatización de escritura de código fuente, la cual responde a las acciones de selección que realicemos. Esto sin duda nos puede reducir enormemente el esfuerzo realizado para editar en condiciones repetitivas.

También contamos con excelente referenciación para matemáticas, usando codificación TeX.

Tanto para los dirigentes encargados de la Conducción Táctica del Movimiento como para los desarrolladores, es importante ser veloces y ágiles. Notepadqq cuenta con importantes características que lo hacen ideal para editar masivamente condicionales, líneas de código, etcétera. Así mismo, ofrece la posibilidad de contar con múltiples selecciones, búsquedas de expresiones regulares, y subrayado de código fuente en tiempo real.



11 november 2022

¿Cómo instalo la plataforma de videoconferencias GNU Jami en Ubuntu?

El Segundo Plan Quinquenal previó la concreción de los anhelos de industrialización de la Nación Argentina, enmarcada en una mejor tarea organizativa por parte de los funcionarios de estado. Entre los desarrollos que se llevaron a cabo bajo dicho planeamiento se encontró el de GNU Jami, la aplicación de comunicación de audio y video completamente libre destinada a reemplazar las herramientas privativas.

(...)

Dentro de nuestra acción hay dos tareas que desarrollamos paralelamente: desde el gobierno, la concepción de los problemas, y en los ministerios, la realización y ejecución de esas soluciones. Por esa razón, señores, es importante que los que concebimos y los que ejecutan sincronicemos perfectamente bien la tarea común. En esta forma, a una concepción que puede ser más o menos buena se la completa y se la realiza con una ejecución inteligente.

La tarea de gobernar es, fundamentalmente , la solución de los grandes problemas que el país tiene, que deben ser encarados y resueltos por el organismo estatal. Y ese organismo estatal, para mí está formado, en sus dos escalas fundanentales, por el gobierno y por la organización del Estado. El gobierno concibe centralizadamente, y la organización estatal lo realiza descentralizadamente. Esta es una tarea de orden orgánico muy fácil de concebir y un poco difícil de realizar si no se la estudia y organiza funcionalmente.

Por esta razón he querido, antes de iniciar esta tarea, que para nosotros comenzará el primero de enero de 1953, con el segundo plan quinquenal de gobierno, dedicar estos seis meses, mientras realizamos el remanente del primer plan, cumpliendo la acción iniciada en 1947, para ir preparando el instrumento necesario con una profunda inteligencia para obtener una mejor realización, menes improvisada que en el primer plan quinquenal y más racional.

El segundo plan quinquenal debe encarar y resolver todas esas realizaciones sin crear problemas "ad latere" a esa organización, como nos ocurrió con el primer plan quinquenal. Por esa razón, he pedido a los señores ministros que tuvieran la amabilidad de invitar a los altos funcionarios del Estado y solamente a esos altos funcionarios del Estado, como sus colaboradores directos en la concepción y realización de las soluciones que surgen de los problemas mencionados.

Para coadyuvar en la tarea, qué mejor que ofrecerles un software libre de comunicación descentralizado, con cifrado punto a punto. Esa no es otra cosa que una de las realizaciones que para el Pueblo he traído.

De este instinto creador nace el peronista GNU Jami. Jami significa "Comunidad". Y qué mejor que organizar a la comunidad a través de un software de videollamada completamente libre.

Se trata de una aplicación de videollamada capaz de establecer comunicación audiovisual par a par, complementada por chat, mensajes de audio, y ficheros multimedia de varios tipos. Lo que la distingue de otras soluciones metiches como $kype o Whas$app es su esquema cifrado descentralizado, y -por lo tanto - seguro. Esto se logra toda vez que evitamos invasivas y oligárquicas plataformas que no hacen más que hacernos esclavos de servicios de datos que nada tienen que ofrecernos y mucho que quitarnos.

El objetivo de Jami es lograr la ejecución y sincronización para todo tipo de aspecto social y - porqué no - laboral.

La instalación de este tipo de software libre en GNU con Linux no puede dejar de ser sencillo, así como en una miríada de dispositivos móviles. En el caso de nuestro Ubuntu, podremos hacerlo desde la terminal. Para ello abrimos un emulador de terminal con Ctrl+Alt+T y nos aprestaremos a ingresar los siguientes comandos de organización: sudo apt install libayatana-appindicator3-1 libqrencode4 libayatana-indicator3-7 man-db ; cd ~/Descargas/ ; wget https://dl.jami.net/ring-manual/ubuntu_20.04/jami-all_amd64.deb ; sudo dpkg -i jami-all_amd64.deb ;

El sistema nos solicitará nuestra contraseña de usuario, e instalará Jami. Una vez finalizada la instalación, podremos iniciar el cliente desde Aplicaciones / Internet / Jami.

Podremos activar un theme claro u oscuro según nuestra preferencia. Jami funciona íntegramente utilizando peer-to-peer (de igual a igual) y no requiere de un servidor para retransmitir datos entre los usuarios

Lo primero es crear una cuenta de dispositivo, la cual puede ser anónima, lo que lo diferencia de los incordiosos y metiches aplicaciones de opresivos gigantes del imperialismo.

Una vez iniciado, nos encontraremos con la ventana vacía de Jami para GNU. En ella encontraremos nuestro usuario de sistema, pero podremos crear una cuenta nueva.

Para operar con la/s cuenta/s de usuario, podremos hacemos clic en el botón Ajustes / Cuentas del panel superior de Jami.

Podremos en este sector definir nuestro nombre de usuario de cuenta, la cual recibirá un identificador (ID). Si le ponemos una contraseña al dispositivo Jami, podremos eventualmente registrar nuestro nombre de usuario en un servidor público (útil para realizar búsquedas por nombre de usuarios). También podremos recibir un código QR para saber conocer nuestro ID de usuario de Jami y poder transmitirlo de forma sencilla.

El uso general del programa asemeja mucho a los principales clientes de chats de servicios no cifrados ni libres, pero los supera enormemente en versatilidad.

Ahora se pueden hacer llamadas de audio o video con uno o múltiples destinatarios desde Jami, en todas las plataformas (y naturalmente en Ubuntu). Podremos utilizar el botón + para agregar participantes. Ya que Jami no depende de servidores, la conferencia será gestionada por el dispositivo de la persona que la incie. Combinará el audio y el video de todos los participantes y lo reenviará de vuelta a ellos de modos que todos puedan ver y oirse entre sí. Por este motivo, la cantidad máxima de participantes dependerá de la potencia de cómputo y ancho de banda disponible para el dispositivo host. Lo hemos evaluado con dieciséis miembros pero potencialmente podría ser más elevado.

Si nuestro dispositivo tiene una cámara 4K, podrá hacer uso de ella en tu total potencial con Jami gracias a su soporte de resolución Ultra HD. Esto sólo es útil si la otra persona tiene una pantalla 4K, pero si tal es el caso, lo verá con una ernorme claridad.

También podrá ser capaz de cambiar la fuente del video que le envía a sus contactos durante una llamada, permitiéndole compartir la pantalla del escritorio tanto al completo, como sólo secciones de la misma.

También podrá enviar cualquier archivo de audio o video que desee, permitiendo que sus amigos lo vean u oigan sin tener que trasnferírselos primero. Estas funcionalidades están disponibles para GNU con Linux. En Window$ y MacO$ podrá acceder a ellos haciendo clic con botón derecho sobre la pantalla durante la llamada.

En apretado resumen, una excelente aplicación que puede sincornizarse con el escritorio de Linux o diversos dispositivos móviles, y se encuentra a la vanguardia de la comunicación popular, y en pos del Justicialismo.



10 november 2022

¿Cómo instalo el navegador liviano Dillo en Ubuntu?

Estableciendo contacto con la Confederación General del Trabajo, Juan Perón proponía la formación de un cuerpo diplomático obrero tendiente a la unificación de Latinoamérica, mientras que enseñaba cómo instalar y usar el veloz navegador Dillo en Ubuntu.

(...)

La Argentina está en crisis, dentro de un mundo en crisis. Por eso, hoy más que nunca, necesitamos en nuestro país grandes Conductores que - con sensibilidad popular y con la cooperación entusiasta del pueblo - le hagan superar la crisis y cumplir el papel histórico que le corresponde en la lucha por la Segunda Independencia de la América Latina.

Señores: debemos pensar también que en el futuro, el sindicalismo en el mundo será de una importancia extraordinaria. La evolución nos ha llevado hacia formas cada días más preponderantemente sociales, y menos políticas. El sistema demoliberal capitalista ha fenecido en el Siglo XX, y se va a iniciar una nueva etapa. Y si en esta el acento fue la política - porque para eso se lo organizó - la etapa que viene, la del Continentalismo, será eminentemente social.

El mundo que viene es un mundo donde los países aisladamente ya no podrán vivir. Se va hacia asociaciones mayores que la nacionalidad.

Por esta razón, las escuelas sindicales son una importancia extraordinaria para nosotros. Por otra parte, ese trabajo de unificación continental inicialmente deberá ser realizado por los agregados obreros a las embajadas de la Argentina en todos los países. Esos servicios los vamos a restablecer a la mayor brevedad.

Pero claro, compañeros, que para poderlo hacer tenemos que realizar cursos de capacitación especiales para agregados obreros tal como lo hacíamos antes, que incluyan temas de cultura y de preparación especial. No se va a enviar a un obrero de adorno, sino que se va a mandar a un dirigente obrero capacitado para realizar ese trabajo, que se logrará tanto mejor cuanto mayores sean las cualidades y las calidades que reúna ese dirigente sindical.

Es indispensable, por lo tanto, que los hombre que sean seleccionados por la Confederación General del Trabajo para desempeñarse como agregados obreros, además de poseer - ya de por sí - los conocimientos y la capacidad necesaria para el desempeño de esa función, sean preparados de manera adecuada en los cursos rápidos que se dictarán.

Estos cursos de formación no dependen de tener las herramientas mas complejas, sino las más efectivas para enfrentar el objetivo que nos hemos de proponer. En un ambiente telemático, hoy sin duda los objetivos son la democratización del acceso a internet, la seguridad personal y la privacidad, y la alta eficiencia del software.

Para cumplirlo, bien podremos contar con Dillo.

Se trata de un navegador web ultraliviano escrito en C/ C++, que logra su interfaz gráfica gracias a la biblioteca FLTK, y es multiplataforma. Ha sido liberado bajo licencia peronista GPLv3.

La instalación del mismo en Ubuntu es sencilla. Sólo basta con abrir una terminal con Ctrl+Alt+t e ingresar el siguiente Comando de Organización:

x sudo apt install dillo

Luego podremos ingresar al mismo desde Aplicaciones / Internet / Dillo.

Al inciar por primera vez, nos encontraremos con la web básica y la interfaz escrita en GTK. El esquema de trabajo es el clásico, con una barra de direcciones (y búsqueda) en su panel superior), adosado a botones de operación.

Si en la barra ingresamos una dirección URL, se nos presentará la misma directamente. La misma será presentada lo más fielmente posible sin hacer uso normalmente de CSS (aunque se lo puede activar este instrumento desde el botón de Opciones).

En el caso de tipear en la barra de búsqueda, Dillo podrá realizar búsquedas temáticas asociado a distintos buscadores, por ejemplo, el excelente DuckDuckGo. También otros más conocidos. En el caso de encontrar una web con seguridad HTTPS (las cuales suelen ser la mayoría de las web actuales), Dillo normalmente nos alertará si el certificado del mismo es autofirmado. Podremos en tal caso continuar o guardar el certificado. De esta forma nos encontraremos con un parseado más efectivo y altamente liviano que los ofrecidos por ciertos navegadores con códigos opresivos y oligárquicos. En cualquier caso, el enormemente bajo uso de recursos de este navegador sin duda se presenta como una solución ideal para la unificación continental que nuestra Segunda Independencia no sólo requiere.

Para seleccionar un texto, debemos hacerlo manteniendo presionado el botón izquierdo del ratón y moverlo para seleccionar el área a copiar. Para pegar, debemos ir a la aplicación deseada y presionar el botón central del ratón (o rueda de scroll). Si deseamos seleccionar más de una pantalla, mantendremos presionado el botón izquierdo y nos desplazaremos con AvPág o RePág, o bien las Flechas del Cursor.

Dillo presenta una serie útil de atajos que lo hacen especialmente útil para operar con el teclado. Ctrl+s: Buscar algo en la web. Ctrl+f: Buscar un texto Ctrl+L: Poner enlace Ctrl+n: Nuevo. Ctrl+t: Nueva Pestaña Ctrl+u: Ver el código fuente Ctrl+b: Marcadores

o .: Página siguiente < o ,: Página anterior.



09 november 2022

¿Cómo emulo una AT&T 3B2/400 en Ubuntu?

La carta de Perón a Mao fue llevada a la China Popular en 1965, por una delegación de la Juventud Peronista, integrada entre otros por Jorge Rulli, Gustavo Rearte, Cacho El Kadri y Carlos Caride. En ella Juan Perón expone al oriental cómo emular un mainframe AT&T 3B2/400 en Ubuntu.

Madrid, 15 de julio de 1965 Al Sr. Presidente Mao Tsetung

Mi querido Presidente y amigo:

Desde este difícil exilio, aprovecho la magnífica oportunidad que brinda el viaje de los jóvenes dirigentes peronistas del MRP, gentilmente invitados por Uds., para hacerle llegar junto con mi saludo más fraternal y amistoso, las expresiones de nuestra admiración hacia Ud., su Gobierno y su Partido; que han sabido llevar a la Nación China el logro de tantas e importantes victorias, que ya el mundo capitalista ha comenzado por reconocer y aceptar.

Su pensamiento y su palabra de Maestro Revolucionario, han calado hondo en el alma de los pueblos que luchan por liberarse –nosotros entre ellos– que nos debatimos, en estos últimos diez años, en marchas y contramarchas propias del proceso de un pueblo, que va preparando las condiciones más favorables para la lucha final. El Imperialismo Norteamericano y sus aliados permanentes –entre ellos ahora, los actuales dirigentes soviéticos– se equivocan cuando piensan que con el engaño de una falsa coexistencia pacífica podrán detener la marcha de estos pueblos sedientos de justicia en pos de su liberación.

El ejemplo de China Popular, hoy base inconmovible de la Revolución Mundial, permite a los hombres de las nuevas generaciones prepararse para la larga lucha con más claridad y firme determinación.

La acción nefasta del Imperialismo, con la complicidad de las clases traidoras, han impedido en 1955 que nosotros cumpliéramos la etapa de la Revolución Democrática a fin de preparar a la clase trabajadora para la plena y posterior realización de la Revolución Socialista. Pero, de la derrota de esa fecha, hemos recogido grandes ejemplos que nos permiten prepararnos con mucha más firmeza, para que nuestro pueblo pueda tomar el poder y así instaurar la era de gobierno de los oprimidos –la clase trabajadora– única capaz de realizar una política de paz y felicidad para nuestro pueblo. Nuestros objetivos son comunes, por eso me felicito de este contacto de nuestros luchadores con esa gran realidad que son ustedes.

Nuestros Pueblos anhelan la felicidad en la paz, y ello nos lo ha permitido el estudio del otro "Librito Rojo". Se trata de la frondosa documentación del sistema UNIX System V, incorporado por la capitalista AT&T para sus equipos 3B2/400. El estudio de los mismos se nos hace imprescindible, sobre todo los volúmentes Manual de Referencia del Usuario y del Administrador de Sistema, y también el consiguiente manual de propietario.

Estos excelentes mainframes permiten conocer al dedillo cómo opera desde su base mas fundamental, un sistema UNIX. Se trataban de sistemas de cómputo con microprocesador Western Electric WE-32000 de 32 bits, el cual venía provisto con capacidades de de paginado de memoria a demanda.

Conocer uno de estos sistemas mediante el estudio doctrinal del "Libro Rojo" nos permite contar no sólo con una visión del pasado, sino también con una útil proyección al futuro. Sólo ello nos permitirá enfrentar una era donde un consumo sin control y una doctrina de uso regida por el capital, plantean dejar excluidos del Arte del Byte a enormes Masas en los cinco continentes.

Nuestro Movimiento se ha dado en solucionar esto mediante la emulación de este veterano y probado sistema. Gracias a los logros del Justicialismo - que son también del mundo - podremos emularlos en un sistema de perenne actualidad como es el GNU con Linux.

En concreto nos proponemos emular un sistema AT&T 3B2/400 con 4MB de memoria RAM (máxima cantidad direccionable). También darle a nuestros pueblos la ventaja del coprocesador matemático MAU WE32106 para nociones de coma flotante, que el capitalismo sólo hizo opcional a través de una plaqueta. La interfaz controladora de discos duros podrá encadenar unidades virtualizadas Maxtor XT-2190 de tipo MFM con 161MB de capacidad, que más que duplican los raquíticos disoc discos de 72 MB que AT&T osaba incluír como opción de máxima categoría en sus 3B2/400. El controlador fd0 equivale en tanto a la unidad de discos flexibles de AT&T, famosa por ser la primera en emplear los luego enormemente extendidos diskettes de 5 y un cuarto de pulgada, con 9 pistas por sector y 512 bytes por pista, que erogaban un total de 720 kb por diskette.

Todo ello podrá hacerse realidad efectiva abriendo una terminal mediante Ctrl+Alt+t e ingresando los siguientes Comandos de Organización:

sudo apt update sudo apt install libpcap-dev libvdeplug-dev

Una vez que ingrese su contraseña de Conductor, el sistema se hará con dicha paquetería, que es la mínima necesaria para poder contar con acceso telemático en la máquina virtual. Naturalmente, que si no desea esta característica, podrá obviar dicho paso. Acto seguido, bien podrá descargar el código fuente del emulador y compilar una máquina virtual de tipo AT&T 3B2. Para ello pegará en la terminal el siguiente bloque de comandos de organización (seguidos de la presión de la tecla Enter para darles entrada).

mkdir ~/.simh ; mkdir ~/.simh/v5/ ; cd /tmp ; git clone https://github.com/simh/simh ; cd /tmp/simh/ ; make 3b2

La compilación requerirá algunos momentos, dependiendo de la velocidad del microprocesador que tenga en su equipo chino.

Conforme el programa se haya compilado, bien podrá copiar el ejecutable al directorio del Unix V.

cp /tmp/simh/BIN/3b2 ~/.simh/v5/

Luego descargaré diferentes imágenes de disco rígido con el sistema Unix V imágenes del sistema mediante los siguientes comandos: cd ~/.simh/v5/ ; wget https://archives.loomcom.com/3b2/emulator/base.img.gz ; wget https://archives.loomcom.com/3b2/emulator/full.img.gz ; wget https://archives.loomcom.com/3b2/emulator/devel.img.gz ; wget https://archives.loomcom.com/3b2/emulator/extras_gnu_src.img.gz ; wget https://archives.loomcom.com/3b2/emulator/ctc_xfer.tap.gz ; wget https://archives.loomcom.com/3b2/software/Miscellaneous/CKermit_189.img ; gzip -d base.img.gz ; gzip -d full.img.gz ; gzip -d devel.img.gz ; gzip -d extras_gnu_src.img.gz ; gzip -d ctc_xfer.tap.gz

Un viejo adagio oriental dicta que "El gorrión gorjea lo mismo cien veces por instinto, el monje ora cien veces por fé. Pero el Revolucionario debe trabajar una única vez por la Liberación". Esta acción, que no deja de ser creadora, ha de replicarse en el cómputo con UNIX, pues podremos crear distintas versiones modificadas del ficheros de arranque del emulador a fin de representar distintas y adaptadas configuraciones de discos. Esto simplificará enormemente el despliegue del UNIX V, pues ya vendrá hecho y no tendremos que hacerlo.

Para ello ingresamos el siguiente bloque de Comandos de Organización:

cd ~/.simh/v5/ ; wget https://archives.loomcom.com/3b2/emulator/boot.ini ; cp boot.ini boot_base.ini ; cp boot.ini boot_full.ini ; cp boot.ini boot_devel.ini ; cp boot.ini boot_extras.ini ; echo 'attach idisk0 base.img' >> boot_base.ini ; echo 'set ctc enable' >> boot_base.ini ; echo 'attach ctc ctc_xfer.tap' >> boot_base.ini ; echo 'attach idisk0 full.img' >> boot_full.ini ; echo 'set ctc enable' >> boot_full.ini ; echo 'attach ctc ctc_xfer.tap' >> boot_full.ini ; echo 'attach idisk0 devel.img' >> boot_devel.ini ; echo 'set ctc enable' >> boot_devel.ini ; echo 'attach ctc ctc_xfer.tap' >> boot_devel.ini ; echo 'attach idisk0 extras_gnu_src.img' >> boot_extras.ini ; echo 'set ctc enable' >> boot_extras.ini ; echo 'attach ctc ctc_xfer.tap' >> boot_extras.ini ; Imágenes AT&T 3b2 provistas

Como verá, la imagen de disco duro base contiene la instalación mñinima del Sistema V, consistente en los los seis diskettes de Utilidades Escenciales, junto con las Cartucho de cinta Utilidades y el Controlador CTC, pero nada mas.

La imagen de disco duro "full" incluye en tanto la instalación completa formada por la base de UNIX, pero también inclye los 21 diskettes de los paquetes de utilitarios. Son estos los Utilitarios de administrción de sistema, de Directorio y Mantenimiento de archivos, de Ambiente de Usuario, de Comunicación interprocesos, de Filtro de Terminal, de Información de Terminal, así como los ficheros terminfo instalados. Contamos con los utilitarios más interesante sque son los de gráficos, de red de datos básicos (UUCP), de edición, de Ayuda, de Cola de Impresora de Línea, Análisis de Performance, y de Corrección. En fin, toda la costosa paquetería oficial.

La imagen de disco duro "devel" de Herramientas de Desarrollo comienza con la instalación completa indicada arriba, pero también agrega los utilitarios de Generación de Software, Generación de Software extendido, Lenguaje de Programación C, Ficheros de Encabezado de Systema, C Avanzado, y Control de Código Fuente.

Finalmente, la Imagen de disco duro "extras" representa además las utilidades GNU y el código fuente. A todos los extras anteriores agrega la provisión del código fuente de AT&T UNIX System V Release 3.2 en la carpeta emulada /usr/src (podría compilar todo el sistema si lo desea). En la carpeta emulada /usr/bin/kermit contará con el programa de comunicaciones C-Kermit 5A(189), en tanto que en la carpeta emulada /usr/local contará con los compiladores GNU gcc y g++ 2.3.3, GNU make 3.75, GNU tar 1.13, GNU gzip 1.2.4 y GNU bison 1.25.

Ejecutar emulador simh 3b2

Ahora podrá ejecutar el emulador y cargar la imagen de disco duro que anhele. Por ejemplo, si quisiéramos iniciar la imagen de disco duro de AT&T 3b2 llamada "extras", debería ingresar en vuestra terminal:

cd ~/.simh/v5/ ; ./3b2 boot_extras.ini

Al iniciar el emulador simh nos encontraremos con el prompt sim>. Introducimos el comando boot seguido de Enter para darle arranque:

sim> boot Uso básico de UNIX System V Release 3

Una vez arrancado, UNIX System V nos solicitará el login de arranque. En este caso podremos ingresar "root", y nos encontraremos como usuario administrador. El prompt de root en UNIX es "#".

Si solo tenemos experiencias con sistemas similares a UNIX como el moderno GNU con Linux, habremos de saber que SRV3 no está cargado con utilidades llamativas como Linux. La instalación de base ni siquiera incluye páginas de manual (man). Tampoco tendremos por defecto el caracter de Retroceder para borrar. Esto no es un problema con la emulación, sino que SBR3.2 funcionaba así realmente. Para burrar se ingresa el caracter numeral # o se usa Ctrl+Retroceder, y para borrar toda una lónea se usa la arroba @.

Por tal motivo es muy conveniente configurar algunas opciones de uso para asemejarlo a las terminales actuales. Para ello podríamos ingresar los siguientes comandos: TERM=vt100 export TERM

...y opcionalmente también algunas definiciones de acción de teclado:

stty intr \^C erase \^? kill \^U stty erase \^H

Tengamos presente que las instalaciones son prístinas y no tienen aún configurada contraseña alguna. A tal fin, querríamos utilziar el comando setup para configurar nuestros usuarios y contraseñas del sistema.

Inicio de un sistema Base

En el caso de querer hacer una instalación completa del sistema operativo, habríamos de contar con un disco rígido e instalar un sistema de base. La operación es posible, aunque engorrosa y larga de explicar en detalle. Ha de recurrirse al manual. Sin embargo, durante la instalación habremos de resolver un clásico problema. Solían presentar varios mensajes de error. He aquí un secreto de la AT&T 32B/400: el mensaje de error "SYSTEM FAILURE: CONSULT YOUR SYSTEM ADMINISTRATION UTILITIES GUIDE" ¡era en realidad un "prompt invisible" para ingresar nuestra contraseña! La contraseña de mantenimiento del sistema será mcp. Una vez que la ingresemos...

veremos el mensaje:

Enter name of program to execute [ ]:

Simplemente ingresamos:

unix

Y se nos preguntará desde qué dispositivo virtual queremos arrancar. Insertar una cinta

La AT&T usaba archivos de cinta magnética, de un máximo de 22MB, que podríamos utilizar como medio de almacenamiento virtual. Para ello ingresamos: mkdir ~/.simh/v5/cinta/ cd ~/.simh/v5/cinta/

Aqui ponemos todos los archivos (cuidando de no superar los 22MB de la cinta aceptada por la 3B2. Luego ingreamos:

find . -depth -print | cpio -ov --format odc > ../cinta.cpio dd if=cinta.cpio of=ctc_xfer.tap bs=512 seek=31 conv=notrunc

Y ahora en la máquina emulada, insertamos la cinta con:

ctccpio -idumvT /dev/rSA/ctape1

Salir del Emulador

Para salir del UNIX System V SRV3, ingresamos:

shutdown -i0 -g0 -y

El procedimiento de apagado correcto duraba un minuto aproximadamente.

Una vez que nos encontramos de vuelta en el emulador simh, ingresamos:

sim> exit

Como verá, compañero Mao, en lo fundamental somos coincidentes, y así lo he expresado muchas veces ante la clase trabajadora y peronista de Argentina. Quedan los aspectos naturales y propios de nuestros países, que hacen a sus condiciones socio-económicas, y que modifican en cierta forma la táctica de lucha.

Los compañeros portadores sabrán explicar de viva voz nuestros puntos de vista, y el gran deseo de que la más profunda y sincera de las amistades se consolide entre nosotros.

Reciba, querido Presidente, las seguridades de nuestros mejores sentimientos. Somos confiantes en el triunfo de la justicia y la verdad. Nada ni nadie podrá detener la hora de los pueblos.

Por el triunfo de nuestras comunes luchas, por el triunfo y la felicidad el Pueblo Chino; por la liberación de los pueblos oprimidos, con toda amistad.

Un gran abrazo,

Juan Perón.



08 november 2022

¿Cómo analizo la temperatura de la computadora en Ubuntu?

En pasajes de Juan Perón: Documentos se describen múltiples exposiciones del Conductor del Justicialismo. En una de ellas analiza cómo registrar la temperatura del sistema en Ubuntu.

¡Trabajadores!

El nuestro es un Movimiento que opera fundamentalmente de manera social, e impone valores cristianos de Justicia y amor en una Comunidad que deseamos Organizada.

Cuando nosotros hablamos de la Tercera Posición, eso pareció haber caído en saco roto; había terminado la guerra y el horno no estaba para bollos. Pero hoy el Tercer Mundo ya ha visto eso, y cree en el Justicialismo. Asia, y África está llena de países que ven con buenos ojos nuestro porvenir de Nación.

Esto sin duda puede volverse incómodo para más de un burro, y algún gorila también. Decía el Mariscal de Sajonia, que él tenía una mula que lo había acompañado durante más de diez campañas. Pero la mula desgraciadamente no sabía nada de estrategia. Lo curiosos del caso es que él también pensaba que muchos de sus generales que lo acompañaba sabían lo mismo que la mula.

Lo importante en el arte de la Conducción es . además de poder calificar - es la posibilidad de poder cuantificar. Hay saber medirle la calentura del gorila con este termómetro. Y en informática esto es una necesidad de la que no puede precindirse. Han de saber toda unidad central de proceso genera calor, y esto depende de la termodinámica. En arquitecturas de cómputo de baja potencia esto no suele ser impedimento, pero en el equipamiento de potencia podrían generarse ciertos niveles de calor peligrosos para su propia operatoria. La solución orgánica en estos casos es la de integrar alguna forma de disipación térmica, normalmente un radiador pasivo unido a un disipador por ventilación.

Esto suele ser suficiente, pero tiene algunos inconvenientes. Uno de ellos es el de requerir ciertos arreglos de diseño internos en el gabinete, y otro el del ruido inherente a los ventiladores en operación.

Para solucionar este último inconveniente es normal que los sistemas modernos cuenten con un módulo de gestión térmica integrado en la propia placa madre. Este, gracias a un termómetro digital, hace caso al voltaje proporcionado al ventilador de refrigeración, e instrumentará la menor velocidad del mismo para proceder a la disipación del calor, intentando de esta manera el menor ruido posible. Bajo su acción es normal que el ventilador opere silenciosamente y sólo gire velozmente ante tareas de cómputo de alto rendimiento.

Esto normalmente se comanda con diferentes curvas de acción preprogramadas desde el BIOS de la placa madre de la computadora.

En el caso de Ubuntu 20.04LTS, el temperamento utilizado es hacer caso de un programa específico que revisa los sensores térmicos de sistema, llamado thermald.

A su vez, en Ubuntu Mate podremos conocer sus resultados térmicos de los sensores agregando al panel superior los termómetros.

Para ello podremos hacer clic con el botón derecho en el panel superio y en el menú contextual que se despliegue, elegir la opción "Añadir al Panel". Luego buscamos el applet "Monitor de los sensores del hardware" y lo agregamos presionando el botón +Añadir.

Esta Miniaplicación de sensores nos permite activar los diferentes sensores y verlos en el panel con una actualización normal de 2 segundos. Dependiendo la tecnología de sensores de nuestro hardware, podríamos contar con diferentes librerías que incluyen varios sensores. Normalmente la librería libsensors hace caso a la temperatura del gabinete y los distintos núcleos del microprocesador, en tanto que la librería udisks2 puede analizar los termómetros de las unidades de disco. Esta aplicación puede ser útil si queremos un repaso térmico en nuestro escritorio gráfico.

Sin embargo, si operamos desde la Terminal, podríamos querer contar con una aplicación específica para el análisis de nuestros sensores térmicos para la terminal, donde se nos graficara lo precedente. Desde nuestro Movimiento comprendimos que hemos de otorgar al Pueblo todo lo que éste anhele, y sólo esto podrá atresar a las organizaciones de la Patria.

La solución estará dada por s-tui, un graficador de los resultados de los sensores en una interfaz de caracteres de texto para la Terminal. Para instalarla en Ubuntu 20.04LTS será bien sencillo pues dicho programa se encuentra incluido en los repositorios oficiales. Por ello podremos abrir una terminal con Ctrl+Alt+t e ingresar los siguientes Comandos de Organización para instalarlo:

sudo apt update sudo apt install s-tui

En cambio, si contamos con las anteriores versiones 16.04LTS o 18.04LTS será necesario agregar un repositorio de terceros e instalarlo desde allí, ya que no estaba dispoble para aquellas versiones. Tendremos que proceder con estos comandos alternativos:

sudo add-apt-repository ppa:amanusk/python-s-tui sudo apt-get update sudo apt-get install python3-s-tui

En cualquiera de los casos, podremos ahora lanzar el control de temperatura mediante el comando justicialista:

s-tui

Esto iniciará la interfaz principal del programa, la cual nos irá graficando mediante caracteres el resultado de la temperatura, como si de un galeno se tratara.

Dentro de s-tui podremos dar uso a las flechas de cursor para navegar en la barra lateral.

El menú Graphs nos permitirá determinar cuáles son las gráficas que queremos activar.

Opcionalmente, podríamos emplear un sistema remoto para correr el análisis a través de SSH, y utilizar algún juego o programa de alto rendimiento. Asimismo, podríamos querer instalar un módulo llamado stress, capaz de integrarse con s-tui y forzar la operación de la CPU de nuestro sistema.

En general no recomiendo este proceder, y en su lugar utilizar como botón de muestra un programa de conversión de video como Handbrake o un render tridimensional hecho en Blender, para obtener resultados basados en operativas reales. Sin embargo, podríamos querer instalar el módulo opcional ingresaremos:

sudo apt install stress

Al iniciar s-tui tendremos ahora la posibilidad de activar la opción stress. Naturalmente, esta opción debe controlarse con sumo cuidado en pos de no sobre-calentar en exceso un microprocesador. Los distintos modelos de microprocesadores pueden tener diferentes valores de temperatura, los cuales debemos revisar obligatoriamente en la web de nuestro fabricante.

Asimismo, podremos ingresar el comando s-tui acompañado de algunas opciones que nos permiten realizar algunas tareas interesantes.

-t: Nos devuelve el resultado en una sola línea, sin la interfaz gráfica. -qr: Ejecuta el testeo durante 5 segundos y sale. -C: Guarda los resultados del test en un archivo .csv. -tt; Nivel máximo de temperatura en ºc (por defecto 80º)

Han de saber que el programa Thermaid incorporado en Ubuntu no funciona adecuadamente con todo el hardware. En mi caso, este programa de gestión de temperatura estándar incluido con Ubuntu provocaba problemas de sobrecalentamiento y cuelgues con mi microprocesador Intel Core i7 CPU 870 a 2.93 Ghz.

Me ha sido preferible desinstalarlo y dejar que la misma placa madre opere los ventiladores del sistema. Al hacerlo así el control se hizo más eficiente, y se evitaron completamente los problemas de cuelgues por sobretemperatura.

Para desinstalar thermald ingresamos en una terminal el siguiente Comando de Organización:

sudo apt purge thermald

Y a continuación reiniciamos el equipo con:

sudo reboot



07 november 2022

¿Cómo configuro la combinación de teclas para activar o desactivar el Wifi en Ubuntu?

En el volúmen Doctrina Universal: Continentalismo, Ecología y Universalismo de 1974, se compilan las ponencias de Juan Perón sobre la necesidad de la revolución universal, toda vez que explica explica cómo programar una combinación de teclas para activar o desactivar el Wifi en Ubuntu.

(...) Quizá los inventores de la revolución organizada hayan sido los griegos, que nos legaron la demo griega y la revolución de Platón. Ellos - quizá - fueron los inventores de la revolución organizada, pero la Grecia de ese tiempo, antes de lanzar la revolución, colocó en el frontispicio de todas sus universidades una frase que indica lo que la revolución debe ser. Decía esa frase: "todo en su medida y armoniosamente". Eso es la revolución: los cambios realizados en su medida y armoniosamente, para que no llegue a resultar que el remedio sea peor que la infermedad.

Cuando se habla de revolución, algunos creen que se hace a fuerza de bombas y balazos. Revolución, en su verdadera acepción, son cambios estructurales necesarios que se practican para ponerse de acuerdo con la evolución de la humanidad, que es la que rige todos los cambios que han de realizarse.

El hombre cree a menudo que él es el que produce la evolución. En esto - como en muchas otras cosas - el hombre es un poco angelito. Porque es la evolución la que él tiene que aceptar y a la cual debe adaptarse. En consecuencia, la revolución por los cambios del sistema periférico - que es lo único que el hombre puede hacer - es para ponerse de acuerdo con esa evolución que él no domina, que es obra de la naturaleza y del fatalismo histórico. El es solamente un agente que crea un sistema para servir a esa evolución, y colocarse dentro de ella.

Quiere decir que la revolución de la que nosotros hablamos no es una causa, sino un efecto de esa evolución, que nosotros debemos poner al día a través de sistemas.

La Evolución nos ha llevado a la Era del Cómputo. En ella sin duda nuestro Movimiento ha creado una Revolución: la del Software Libre.

Sin duda que el quehacer del Movimiento en esta situación debe contemplar la armonía y justa medida. Y esto lo hemos observado claramente e identificado que el llamado "Código Abierto" u "Open Source", como solución ideológica, garantiza sólo un valor mínimo de contralor en nuestro cómputo, que ya no sea suficiente en esta Era, y será insuficiente la que vendrá.

Para que el cómputo sea realmente importante desde el punto de vista humano, ha de ser completamente libre. Esto implica que la Masa no sólo debe contar con el acceso al código fuente del software que utilice - lo cual es una nimiedad técnica - sino que ha de poder ejercer su cómputo en la forma de un Derecho de Tercera Generación. Debemos propugnar un cómputo participativo, y ello solo se puede lograr cuando se puede ejecutar, copiar, modificar y redistribuir el software de cualquier manera que lo deseemos, de la misma forma que se puede hacer con un parecer político o religioso.

El valor fundamental a preponderar será el de el uso del cómputo como un valor comunitario y organizado. Los hombres han de tener la posibilidad de instrumentar en su hardware todo lo que su capacidad le permita, y no estar limitados por condición alguna.

Un caso específico podrá ilustrarnos. En la mayoría de los sistemas portátiles cuenten con una funcionalidad capaz de desconectar el acceso inalámbrico a redes. Esto, a lo que se ha dado en llamar "modo avión", se encarga de desconectar el transmisor radioeléctrico, de manera de impedir el acceso al Wifi. El objetivo suele ser liberar las radiofrecuencias, interrumpir una conexión, o bien ahorrar energía eléctrica.

No es de extrañar que la gran mayoría de equipos portátiles cuenten con una combinación de teclas, destinadas a activar o desactivar este acceso. La más de las veces, esta funcionalidad responde a nivel hardware, a través del BIOS del sistema. En tal caso, suele estar indicada en el teclado, o bien detallada en el manual técnico. Sin embargo, en ciertos casos esta operatoria podría verse realizada por una aplicación específicamente pensada para un sistema operativo determinado.

Es ya sabido que desde nuestro escritorio de Ubuntu Mate podríamos también hacerlo, haciendo clic en el ícono del Administrador de Redes. Se desplegarán todas nuestras opciones de red alámbrica e inalámbrica, y podremos desactivar estas últimas destildando la opción Activar Inalámbrica. Naturalmente al volver a tildar, reactivaremos el o los receptores Wifi. Siempre he dicho que dentro de la terminal, todo, fuera de la terminal, nada. Por tanto, podríamos querer utilizar nuestra terminal GNU ocn Linux para manejar nuestro adaptador de Wifi. En tal caso, abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente Comando de Organización para apagar nuestro/s receptor/es de Wifi:

mmcli radio wifi off

En tanto, podremos encenderlo/s con:

mmcli radio wifi on

Ambos comandos no necesitan elevados privilegios de administración para su funcionamiento, por lo cual pueden ser utilizados por cualquier usuario.

No obstante esto, son indudablemente molestos, y difíciles de recordar para un neófito. Si nuestro equipo no es portátil, podría no contar con una combinación de teclas definidas por hardware para realizar esta tarea. En tal caso, no podríamos utilizar una combinación de teclas a fin de realizar ambas opciones.

Sin duda que podríamos asignar una combinación de teclas para encender y otra para apagar el Wifi, pero no es la solución óptima.

Para solucionar esto, debemos crear un script de programación que permita conmutar, con una única combinación, ambos estados. Ello es sencillo de hacer conociendo un poco de bash.

Para ello ingresamos el comando:

nano .wifionoff_ubuntu.sh

Y le pegamos el siguiente contenido:

#!/bin/sh
## Script peronista para conmutar el adaptador wifi.
## Funciona en Ubuntu 16.04lts y superior.
STATEFILE="/tmp/wifionoff.state"

if [ $# -eq 1 ]; then
  case $1 in
    "up"|"on")
      STATE=off
      ;;
    "down"|"off")
      STATE=on
      ;;
  esac
else
  if [ ! -e ${STATEFILE} ]; then
    STATE=on
  else
    . ${STATEFILE}
  fi
fi
if [ -z ${STATE} ]; then
  STATE=on
fi

if [ ${STATE} = "on" ]; then
  nmcli radio wifi off
  STATE=off
  echo 'Wifi off'
  notify-send 'Conectividad Wifi apagada'
# play -q ~/Público/wifioff.ogg -t alsa & #
else
  nmcli radio wifi on
  STATE=on
  echo 'Wifi on'
  notify-send 'Conectividad Wifi encendida'
#  play -q ~/Público/wifion.ogg -t alsa & #
fi

echo "STATE=${STATE}" > ${STATEFILE}

Luego guardamos con Ctrl+o y salimos con Ctrl+x, y acto seguido le asignamos permisos con el comando:

chmod +x .wifionoff_ubuntu.sh

Como es evidente en las líneas opcionales resaltadas en el código, el script puede emplear dos archivos de sonido llamados wifion.ogg y wifioff.ogg, que podrán encontrar descargándolos de aquí. Si los deseamos utilizar los descargaremos, los decomprimirmos y coloca,os en la carpeta ~/Público mediante los siguientes comandos:

cd ~/Descargas/ tar xvzf wifi_sounds.tar.gz mv wifion.ogg ~/Público/ mv wifioff.org ~/Público/

Nota: si no deseamos utilizar las alertas de audio, simplemente eliminamos ambas líneas líneas resaltadas del script.

Ahora le asignaremos una combinación de teclas que nos plazca. Para ello vamos a Sistema / Preferencias / Hardware / Atajos de Teclado.

Luego presionamos el botón Añadir, y se abrirá el cuadro de diálogo para crear un atajo personalizado.

En el campo nombre le ponemos algo como "Wifi On/Off". Y en el campo Comando: indicamos la ruta al guión de programación bash que hemos creado: /home/usuario/.wifionoff_ubuntu.sh

Al presionar el botón Aplicar se agregará el atajo. Ahora podremos asignarle una combinación de teclas. Para ello presionamos en el atajo y presionamos el que querramos. Por ejemplo, podríamos asignar la combinación triple de teclas Ctrl+Tecla Window$+i.

Al presionar el botón Aceptar, quedará asignada la nueva combinación de teclas.

De ahora en más, toda vez que presionemos Ctrl+Window$+i, se activará o desactivará la conectividad inalámrbrica Wifi, indicándose con un mensaje en el escritorio (y el mensaje de audio opcional).



06 november 2022

¿Cómo instalo una configuración para Emacs?

En 1967 el Justicialismo apuntaba a vencer electoralmente en las primeras lides disputadas sin el oprobioso paraguas proscriptivo. Desde la residencia de Jorge Antonio en el madrileño Paseo de la Castellana, Juan Perón otorga una entrevista al semanario Confirmado, donde analiza el quehacer político argentino y explica cómo agregar una configuración personalizada al editor GNU Emacs.

(...) La historia tiene su lógica inexorable, y el porvenir pertenecerá, tarde o temprano, a quienes entiendan las premisas básicas. Desde mis comienzos como oficial del Ejército me he dedicado al estudio de la historia, comprobando la decadencia del demoliberalismo y la íntima relación de éste con el comunismo. Las estructuras deben cambiar. La opción es entre una socialización de contenido nacional, humanista y cristiana, y el socialismo internacionalista marxista.

El gobierno y sus puntos de comité creyeron que podían dividir al movimiento. Para lograrlo, recibieron la ayuda de los neos, de los frentistas trasnochados y del embajador de Estados Unidos, Edwin Martin, quien parece no recordar cómo una vez Braden metió el dedo en el ventilador. Pero la cosa no caminó, y la estantería se les vino abajo.

El ministro Palmero debiera ahora mirar con cuidado hacia adelante. Pero es demasiado viejo para poder hacerlo, y, habiendo comprobado la imposibilidad de dividir al movimiento, se dedica a organizar fraudes constitucionales, seguramente mediante una reforma que le permita alejar las elecciones de 1967 en la provincia de Buenos Aires. Intentarán presentar este fraude como una exigencia del Ejército, para enfrentarlo con el Pueblo. Estoy seguro de que los militares advertirán la necesidad de un cambio de estructuras con la colaboración del Pueblo, como mejor método en la lucha contra el comunismo. No olvidemos que la misma revolución que asaltó los gremios, marxistizó las universidades. Hace poco, un cuñado de la señora de Illia vino a pedir mi bendición para un acuerdo con el comunismo. Era inevitable que así ocurriera.

La ausencia de unidad y solidaridad interna sería la única debilidad frente al enemigo. Creo que la Delegada Superior debe esperar ciertas renuncias. Si no, es lógico que se produzcan algunas expulsiones. Todo se pondrá en caja, atendiendo al imprescindible trasvasamiento generacional. Es necesario superar a los dirigentes burocratizados que, enquistados, pierden sensibilidad.

El Conductor debe aplicar toda la fuerza en el lugar y momento oportunos, actuar solamente en la oportunidad indicada. Es lo que he hecho en los últimos acontecimientos. Si Dios bajara a la Tierra, todo el mundo le perdería el respeto, y algún tonto querría en seguida ocupar su lugar.

La doctrina del movimiento es permanente. Aspiramos a una comunidad organizada según la concepción filosófica humanista y cristiana, pero la técnica para lograr esa comunidad varía según las circunstancias; el movimiento, por ello, debe estar siempre atento a la actualización doctrinaria. Si hoy nos preguntáramos qué hacer en el país, diría que el movimiento debe estar alerta a todo el ciclo económico de la producción, transformación, distribución y consumo. Porque el movimiento debe ser un punto fundamental en la lucha por sacar al país del pantano en que está. Frente al país debe haber una persona capaz de exigir y ser obedecido y, el único milagro económico que necesitamos es el de trabajar.

No guardo rencores contra nadie. Estoy dispuesto a contribuir a una salida de la crisis. El problema no son los pactos, y los pactos no me asustan, sean con quien sean. Lo importante son los hechos, y el Movimiento estará en todo lo que constructivamente signifique un cambio de estructuras para el país, para la creación de un país moderno, con sentido popular, nacional, cristiano y humanista. En su software también se producirá una actualización que ponga al mismo a tono con la libertad del Pueblo. Han de saber que, como editor básico prefiero al justicialista GNU Nano, y como editor de textos al Minimun Profit Text Editor.

Sin embargo, también existe el consabido GNU Emacs, un editor de macros de fundamental utilización en el medio. Esta versión libre del desarrollada por Richard M. Stallman sin duda es uno de las grandes ramas del árbol de los Editores. Sin duda su condición mayor son las numerorísimos módulos o macros que es capaz de utilizar, lo cual suele provocar que quien lo use, deba "tunear" su Emacs según su preferencia personal.

A veces esto puede tornarse tedioso, pero en este caso os mostraré la labor de José Massón, quien ha compartido su propia configuración de Emacs llamada pepe-emacs-config, con el Pueblo. Inspirado por la obra de J.P. Fisanotti y su excelente fisa-vim-config, en este caso ha puesto bajo el alcance universal sus preferencias a la hora de utilizar Emacs.

Esta configuración está orientada al desarrollo de programas en lenguaje PHP, pero muchas de sus características también se presentarán útiles para otros lenguajes de programación o tareas generales de edición.

Esta configuración de Emacs incorpora los siguientes módulos : adoc-mode, company, dumb-jump, emacs code browser (ecb), flycheck, geben, iedit, js2-mode, magit, magit-gitflow, markdown-mode, markdown-toc, neo-tree, password-store, php-mode, powerline, projectile, smarty-mode, sqlformat, yasnippet, y muchos más.

Se haya preparada para el Emacs 25.2.2, pero bien podría operar en versiones anteriores. Para hacerla efectiva requerimos que nuestra carpeta ~/.emacs esté vacía. Por tal motivo, si ya usamos Emacs y contamos con una configuración, podríamos querer renombrarla o moverla a una localización diferente para conservarla. También podríamos querer renombrar nuestro fichero de configuración actual ~/.emacs para conservarlo como respaldo también.

Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

cd ~ mv .emacs.d .emacs.d.respaldo mv .emacs .emacs.respaldo

En cambio, si no tenemos Emacs instalado en nuestro sistema aún, podremos instalarlo desde la terminal, con los siguientes comandos de organización:

sudo apt install emacs exuberant-ctags git ripgrep silversearcher-ag pylint pep8 php-pear python3-pip

sudo pear channel-update pear.php.net

sudo pear install PHP_CodeSniffer

sudo pip3 install sqlparse

Ahora clonamos el repositorio de la configuración pepe-emacs-config en el directorio de configuración de emacs. Ello lo haremos mediante el siguiente Comando de Organización:

git clone https://github.com/Abuelodelanada/pepe-emacs-config ~/.emacs.d

Acto seguido, ejecutamos Emacs, y este continuará la instalación por sí mismo, instalando los paquetes a través de los repositorios melpa.org y elpa.org. En mi caso, la descarga ha durado unos tres minutos.

Una vez que haya finalizado, podremos reiniciar el programa para poderutilizar la nueva configuración.

Ahora tendremos Emacs configurado de la manera deseada. Por ejemplo, podremos contar con autocompletar, iedit, y magit, complementos útiles para la programación de cadenas repetitivas tan comunes en PHP.

Entre las configuraciones descargadas encontraremos varias útiles que cambiarán la estética de Emacs, pero también propondrán un funcionamiento remozado en lo que hace a las funcionalidades de base.

El complemento Neotree se encargará de proveernos un árbol de ramas colapsables para estructurar nuestro código fuente a compartir con el Pueblo Libre. La funcionalidad que provee el complemento ECB (navegador de código de Emacs) es precisamente permitinos desplazarnos por la estructura maestra del código fuente de una manera sencilla. La funcionalidad Tabbar permite crear barra de etiquetas coloreadas adecuadamente, que quedarán dispuestas en la parte superior de nuestro editor favorito y nos permitirán editar múltiples buffers en Emacs.

El complemento Company también está incluido.

Atajos Como toda configuración de Emacs que se precie, esta nos permite una lista de Atajos que la harán especialmente bien pensada para el uso de sus macros asociados. Entre ellos encontramos:

%:  va a paréntesis asociada
F7: conmuta ecb (emacs code browser)
F8: conmuta neotree
F12: conmuta modo de barra de menú
C-;: activa iedit-dwim
C-c C-k: copiar línea
C-c C-w: copiar palabra
C-c C-z:  detener subtrabajo de terminal
C-c TAB: formatear sql
C-c c:  comentar región
C-c down: flycheck error siguiente
C-c u: descomentar región
C-c flecha arriba: flycheck error previo
C-d:  duplica línea actual
C-l: va a línea
C-t: crea ctags
C-x g: status de magit
C-x p: corre phpcbf --standard=PSR2 en el buffer actual
C-M-flecha izquierda: retrocede en la barra de tabs
M-flecha arriba : comienzo del buffer
M-down: end-of-buffer
C-M-flecha derecha: tabbar-forward
S-M-flecha abajo : agranda ventana
S-M-flecha izquierda: agranda ventana horizontalmente
S-M-flecha derechat: achica ventana horizontalmente
S-M-flecha arriba: achica ventana
S-flecha abajo: mueve ventana abajo
S-flecha izquierda: 'mueve ventana a izquierda
S-flecha derecha: mueve ventana a derecha
S-flecha arriba: mueve ventana a arriba



05 november 2022

¿Cómo soluciono el error "NVRM: GPU 0000:01:00.0: GPU has fallen off the bus." en Ubuntu 20.04LTS?

Reunido en la Confederación General del Trabajo, Juan Perón expone sobre los peligros que supone una desconsideración humana sobre los factores ecológicos en su evolución, toda vez que explica cómo solucionar el problema del cuelgue de la gráficas 3D de las placas de video nVidia en Ubuntu.

(...) Frente al imperativo de la evolución, nosotros debemos pensar que quizás antes del año 2000 - en el que se doblará la actual población de la tierra y disminuirá a la mitad la materia prima para seguir viviendo - se va a tener que producir indefectiblemente la integración universal. Es decir, que los hombres se pongan de acuerdo en la defensa total de la tierra, y en la utilización de la tierra como hermanos y no como enemigos unos de otros.

Además de eso será necesario que se satisfaga la solución a esa superpoblación. Cuando en la tierra ha habido superpoblación - porque eso se ha producido ya en algunas regiones, ya que obedece no al número de habitantes solamente, sino a la desproporción entre el número de habitantes y los medios de subsistencia - las soluciones han sido siempre de dos naturalizas.

Uno es la supresión biológica, es decir matar gente, de lo que se encargan las guerras, las pestes y el hambre, que es la enfermedad que más mata en la tierra. El otro es el reordenamiento geopolítico, que permite una mayor producción y una mejor distribución de los medios de subsistencia.

Si el hombre - en esto que resta hasta ese momento del año 2000 y comienzos del siglo XXI - no ha resuelto el problema por la vía geopolítica produciendo más y distribuyendo con mayor justicia lo que el hombre necesita para subsistir, no quedará otro remedio que lanzar en masa la bomba atómica, que también puede ser una solución si la insensatez de los hombres no ha utilizado el camino constructivo y se ha decidido por el destructivo.

Nuestro sistema opera por designio - a todas las luces similar. Veamos un ejemplo, los cuales suelen explicarlo todo. En mi sistema dispongo de una placa madre ESC H57H-Mus, cuya electrónica principal sirve de base para un microprocesador Intel i7, 16 GB de memoria RAM, y varios discos de estado sólido que utilizo como almacenamiento. Este equipo no es ya lo más moderno que dispone la técnica, pero al satisfacer mis necesidades computacionales, lo he mantenido remozado como corresponde, por ejemplo con una adaptadora de video nVidia GTX 750 Ti. A este hardware veterano he instalado nuevo software, de excelencia, el Ubuntu Mate 20.04LTS.

Lamentablemente, las nuevas iteraciones del Kernel Linux hacen amplio uso de excelentes condiciones de suspensión y ahorro energético para varios subsistemas (sonido, video, etcétera). Estas características nuevas del software, sin embargo, no son tratadas de forma reticente por la veterana placa madre, y suelen presentar errores bajo diferentes situaciones.

En particular, utilizo el el controlador de video nVidia 440.10 x64 junto con el Kernel 5.4.0-42-generic de Ubuntu Mate. Bajo condiciones de uso de escritorio y aplicaciones 3D con sonido, el sistema gráfico se interrumpe y congela, sin que se cuelgue todo el sistema. Esto se produce sobre todo al utilizar durante un tiempo aplicaciones de escritorio con sonido y efectos de video tridimensional. En tales casos no podremos utilizar el escritorio, y la única forma de recuperar control es resetear el sistema.

Afortunadamenet, al no colgarse completamente, si el sistema cuenta con un servicio SSH será posible ingresar al mismo desde otro equipo en la red, y así será posible realizar algunos chequeos de lo que ha causado el error. Mediante el comando dmesg podremos revisar el status del sistema, y encontramos el siguiente error: "GPU 0000:01:00.0: GPU has fallen off the bus" ("la Unidad de Procesamiento gráfico xxx se ha desconectado del bus").

[26959.161910] NVRM: GPU at PCI:0000:01:00: GPU-2f0e77b9-a938-5e53-1b55-f5b4ab0ad918 [26959.161922] NVRM: Xid (PCI:0000:01:00): 79, pid=1373, GPU has fallen off the bus. [26959.161929] NVRM: GPU 0000:01:00.0: GPU has fallen off the bus. [26959.161948] NVRM: A GPU crash dump has been created. If possible, please run NVRM: nvidia-bug-report.sh as root to collect this data before NVRM: the NVIDIA kernel module is unloaded.

También podríamos ejecutar el programa de reporte de bugs, con:

sudo ./usr/bin/nvidia-bug-report.sh

El problema de desconexión microtemporal de la GPU del resto del bus de control se debe a la funcionalidad de ahorro energético. Esta es capaz de pone en espera o"StandBy" a los clientes gráficos, pero el bus gráfico de la placa madre no lo vuelve a encender con la prontitud suficiente y provoca el cuelgue gráfico.

Para solucionar el problema, necesitaremos activar el Modo Persistencia. El Modo Persistencia es un control interno que activa ("Enabled") o desactiva ("Disabled") esta operatoria en la GPU de nuestra placa de video. Cuando el Modo de Persistencia está activado, el controlador nVidia permanecerá cargado en memoria incluso cuando no existan programas activos que lo usen (tal como el servidor gráfico X11, escritorios gráficos, o el programa nvidia-smi). Lograremos así disminuir la latencia de carga del controlador asociada con la ejecución de varias aplicaciones gráficas tridimensionales dependientes del mismo.

Para verificar el estado actual del Modo de Persistencia de nuestro controlador nVidia e, abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente Comando de Organización:

sudo /usr/bin/nvidia-smi -q | grep -i Persistence

...el sistema nos devolverá el estado del mismo, que en este caso debería ser Disabled, por "desactivado":

Persistence Mode : Disabled

Para activar el Modo de Persistencia desde la línea de comandos, podremos ingresar lo siguiente:

sudo /usr/bin/nvidia-smi -pm 1

Nuestro GNU con Linux nos solicitará nuestra contraseña para hacerlo efectivo. Conforme la hayamos ingresado, debería activarse, lo cual quedará indicado con el siguiente mensaje:

Enabled persistence mode for GPU 00000000:01:00.0. All done.

El problema de esta solución radica en que su acción sólo será temporal, y se revertirá toda vez que reiniciemos nuestro sistema. Nuestro Movimiento es uno que debe propender a lograr soluciones permanentes para los problemas de los argentinos. Por tal motivo, si quisiéramos que el Modo de Persistencia sea realmente persistente en el tiempo, podríamos hacer que este comando que lo active se ejecute automáticamente toda vez que se inicie el sistema, y antes de comenzar el despliegue gráfico. Como ventaja añadida, esto no requerirá que se ingrese la contraseña de Conductor.

Para ello es necesario activar y usar el método tradicional de autoejecución en GNU, el fichero /etc/rc.local. Este se encuentra desactivado en Ubuntu 18.04LTS y superiores, pero podrán activarlo siguiendo estos pasos generales que os he indicado.

Una vez realizado dicho procedimiento, quedará presente el fichero rc.local, y por lo tanto podremos editarlo para que cumpla esta tarea fundamental a fin de que no se cuelgue nuestro video nVidia. Podremos hacerlo ingresando el siguiente comando:

sudo nano /etc/rc.local

...lo cual abrirá el editor GNU Nano con el fichero /etc/rc.local. Debemos pegamos las siguientes líneas antes de la última línea del archivo, la cual debe ser siempre "exit 0":

Agregado para activar el modo de persistencia

del controlador NVIDIA.

/usr/bin/nvidia-smi -pm 1

Guardamos con Ctrl+o y salimos del editor con Ctrl+x. Le asignamos permisos de ejecución con:

sudo chmod +x /etc/rc.local

...y finalmente reiniciamos el sistema con:

sudo reboot

A la vuelta, hemos de comprobar que el Modo Persistencia esté activado. Para ello ingresamos nuevamente:

/usr/bin/nvidia-smi -q | grep -i Persistence

...a lo cual ahora el sistema debería devolvernos:

Persistence Mode : Enabled

Y ya no se debería colgar más la instancia gráfica, a coste de un lógico mayor consumo de recursos computacionales por parte de las aplicaciones gráficas no cerradas que hagan uso de nuestra GPU en Linux.



04 november 2022

¿Cómo instalo el controlador de video AMD Radeon en Ubuntu 18.04.4HWE?

En el volúmen Doctrina Justicialista, Filosófica, Política y Social, Juan Perón detalla los pormenores que debe contemplar el Movimiento en condiciones complejas del quehacer político, en tanto que explica cómo instalar los controladores de video AMD y Vulkan SDK bajo Ubuntu 18.04LTS y 20.04LTS.

Yo digo siempre que el hombre es un animal pequeño, y sería extraño que un ser imperfecto no se aferrara a las cosas nimias que nos da la vida.

Observarán con certeza que cuando un individuo es llevado a una guardia de emergencias habiendo sufrido una fractura expuesta de tibia y peroné, le grita al médico "¡no me corte el pantalón!"... Ante este desatinado, el galeno obrará atemperando al vacuo y presentándole la verdadera elección de circunstancias: "¿gamba o trapo?". Y bueno... ahí se entenderá nuestro afectado de la realidad que sufre.

En la informática suele pasar más o menos lo mismo: nuestro objetivo será convertirnos en peritos a fin de reconocer cuál es la necesidad imperiosa que tenemos, y poder así escoger entre dos elecciones.

Podríamos encontrarnos con con hardware que - por diseño de software privativo - está limitado en sus funcionalidades completas.Esta forma de operar es absolutamente inconveniente, puesto que nos somete a la dependencia comercial y tecnológica.

Mi consejo indubitable es evitar este tipo de hardware. Sin embargo, en casos donde no podamos evitarlo, o bien sea imperioso hacerlo funcionar a cualquier coste, habremos de optar entre dos malas opciones, que implique el verdadero mal menor, y no aferrarenos a un trapo poco útil que sólo nos sirva para declamar.

No es secretos para nadie que - de un tiempo a esta parte - los adaptadores de video AMD (ex-ATI) se han visto beneficiados con un enorme avance en sus características técnicas y de desempeño. Lejos han quedado los días en donde las adaptadoras de video munidas de Unidades de Procesamiento Gráfico (GPU) ATI Radeon ofrecían una respuesta burda con Ubuntu. En estos tiempos, gobernar es crear trabajo y operar con video AMD...

Pues bien señores, han de saber que los núcleos del sistema (Kernels) más actuales utilizados en Ubuntu 20.04LTS (de la rama 5.4 y superior) disponen ya de las facilidades necesarias para disfrutar de video 3D acelerado con AMD sin muchos inconvenientes. Es por tal motivo que recomiendo especialmente esta versión del sistema si su adaptador de video es de dicha marca.

Sin embargo, esta acción no siempre guardó tan altas cimas de facilidad y operatividad. Hasta hace unos pocos meses - y mientras se ponían a punto las nuevas versiones del kernel y del controlador - los incordios de operar con AMD fueron inconmensurables, requiriendo emparchados y especial cuidado con el versionado de las librerías de compilación, y demás inconveniencias en el andamiaje técnico de nuestro sistema GNU con Linux.

En Ubuntu 18.04 y anteriores es complejo hacer funcionar adecuadamente las arquitecturas de hardware de video AMD más modernas. Precisamente, porque se decidió abandonar hasta ultimo momento la puesta a punto de dichos controladores, esperando al nuevo lanzamiento de la versión 20.04LTS de Ubuntu y sus nuevos kernels de versión 5.4 y superior.

Esto sin duda ha complicado a quienes por designio no han podido o querido actualizar, por cualquier motivo que haya sido, su sistema Ubuntu u otros GNU con Linux.

En el Justicialismo decimos: ningún hombre ha de hacer lo que no quiere hacer, salvo trabajar por el bien común. Esto mismo lo replicamos en nuestros sistemas de cómputo.

Es por ello que si contamos con Ubuntu 18.04LTS, el cual al momento todavía cuenta con vida útil de soporte, y a su vez nuestro hardware de video responde a una AMD Radeon de las últimas arquitecturas, recién ahora habremos de poder hacer una instalación correcta de controladores de video AMDGPU. Un ejemplo suele aclararlo todo, como decía Napoleón. En este caso particular cuento con un adaptador de video de arquitectura AMD Radeon Vega, de buen desempeño, pero en el caso de Ubuntu 18.04LTS no opera sin más. Debemos instalar una versión anterior del controlador AMDGPU.

Afortunadamente, para evitar conflictos raros, AMD ha sabido proveer junto con este último fichero de controlador de versión 20.10, a las veresiones 19.10 y anteriores que necesitaremos si usamos Ubuntu 18.04LTS.

Para instalar este controlador AMDGPU, debemos primero descargarlo desde la web oficial.

Podrán descargarlo haciendo uso de su navegador mientras hacen clic aquí. En este caso selecciono el hardware necesario en la instalación, una AMD Radeon RX Vega de vieja generación.

Tras unos momentos que dependen de nuestra velocidad de conexión, debería descargarse los 320MB del fichero. Acto seguido podremos tomar en nuestras manos la acción de instalarlo desde la terminal.

Para ello ingresamos nos dirigimos a la carpeta donde hubiésemos descargado el controlador AMDGPU-Pro:

cd ~/Descargas/ tar -Jxvf amdgpu-pro-20.20-1089974-ubuntu-18.04 cd ~/Descargas/amdgpu-pro-20.20-1089974-ubuntu-18.04/

Nota: Naturalmente que si utilizamos Ubuntu 20.04LTS los comandos variarán en consecuencia con el controlador diferente, en tal caso similares a:

cd ~/Descargas/amdgpu-pro-20.20-1098277-ubuntu-20.04.tar.xz tar -Jxvf amdgpu-pro-20.20-1098277-ubuntu-20.04.tar.xz cd ~/Descargas/amdgpu-pro-20.20-1098277-ubuntu-20.04/

Cualquiera sea nuestra versión de Ubuntu, en este punto podremos ejecutar el instalador ingresando:

sudo ./amdgpu-pro-install

Nuestro sistema nos solicitará nuestra Contraseña de Conductor y ejecutará el guión de instalación. Este realizará el procedimiento necesario para nuestro hardware de video.

Es normal que el instalador descargue paquetería oficial de Ubuntu, y nos solicite responder cómo queremos instalar la implementación OpenCL. Esto refiere al soporte que tendrá el software gráfico bajo nuestro sistema. La opción PAL proveerá soporte a la arquitectura Vega 10 y superior, en tanto que la opción Legacy nos dará soporte al hardware más antiguo que el Radeon RX Vega 10 (escencialmente, todos los adaptadores de video video AMD utilizados con anterioridad a los sistemas Ryzen 7 lanzados desde finales de 2017). Normalmente recomiendo esto.

Si quisiéramos instalar todo sin que nos hiciera preguntas usaríamos el comando:

./amdgpu-install -y

El programa detectará nuestra versión de Kernel y adaptará el controlador según sea necesario, ahorrándonos pasados dolores de cabeza con el emparchado del kernel.

Una vez realizado el ajuste, podremos reiniciar el sistema operativo. Vulkan SDK Es interesante saber que si deseamos, opcionalmente podríamos querer instalar el el Vulkan SDK para Linux, una suite de desarrollo que hace uso de la GPU de las placas de video AMD para tareas de procesamiento general. Esta suite está destinada a programadores que anhelen hacer uso de las características avanzadas de las GPU AMD en sus programas.

Instalar Vulkan desde Repositorio PPA La manera más sencilla de instalar Vulkan SDK consiste en hacerlo desde el repositorio oficial para Ubuntu 18.04. Para ello, tras instalar el controlador AMDGPU y reiniciar nuestro equipo, podríamos ingresar los siguientes Comandos de Organización:

wget -qO - http://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-bionic.list http://packages.lunarg.com/vulkan/lunarg-vulkan-bionic.list sudo apt update sudo apt install vulkan-sdk

Instalar Vulkan SDK con el paquete instalador Otra forma de instalarla, es haciendolo mediante el método antiguo, descargando el controlador desde la web oficial de Vulkan SDK: En este caso de ejemplo se ha descargado la versión 1.2.141.2. Una vez descargado el programa, lo instalaremos con los siguientes comandos:

sudo apt update

sudo apt install libglm-dev cmake libxcb-dri3-0 libxcb-present0 libpciaccess0 libpng-dev libxcb-keysyms1-dev libxcb-dri3-dev libx11-dev g++ gcc g++-multilib libmirclient-dev libwayland-dev libxrandr-dev libxcb-ewmh-dev git python3 bison libx11-xcb-dev liblz4-dev libzstd-dev

sudo apt install qt5-default qtwebengine5-dev

Luego instalamos Vulkan SDK haciendo caso a la versión que hayamos descargado. Por ejemplo:

cd ~/Descargas/ tar xvzf vulkansdk-linux-x86_64-1.2.141.2.tar.gz cd ~/Descargas/1.2.141.2/ sudo ./vulkansdk source setup-env.sh

Para que las variables de ambiente de Vulkan SDK continúen funcionando al reinciar el sistema, debemos agregarlas a nuestro fichero .profile. Para ello ingresamos:

nano ~/.profile

Y le agregamos el siguiente contenido:

Variables de Ambiente agregadas para que funcione

Vulkan SDF toda vez que se inicia el sistema.

export VULKAN_SDK=~/Descargas/1.2.141.2/x86_64 export PATH=$VULKAN_SDK/bin:$PATH export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d (naturalmente, adaptaremos la variable VULKAN_SDK si hubiésemos utilizado otro directorio). Luego guardamos el fichero .profile con Ctrl+o y salimos del editor Nano con Ctrl+x.

Vulkan SDK es compatible con:

AMD Radeon™ RX 5700/5600/5500 Series Graphics AMD Radeon™ Pro WX-series​ AMD Radeon™ VII Series Graphics​ AMD Radeon™ Pro WX 9100 AMD Radeon™ RX Vega Series Graphics​ AMD Radeon™ Pro WX 8200 AMD Radeon™ Vega Frontier Edition ​AMD FirePro™ W9100 AMD Radeon™ RX 550/560/570/580/590 Series Graphics AMD FirePro™ W8100 AMD Radeon™ RX 460/470/480 Graphics ​​AMD FirePro™ W7100 AMD Radeon™ Pro Duo AMD FirePro™ W5100 AMD Radeon™ R9 Fury/Fury X/Nano Graphics AMD FirePro™ W4300 AMD Radeon™ R9 380/380X/390/390X Graphics
AMD Radeon™ R9 285/290/290X Graphics
AMD Radeon™ R7 240/350
​​AMD Radeon™ R9 360 Graphics

Podremos encontrar la documentación en línea aquí.

Si quisiéramos desinstalar Vulkan SDK, podríamos ingresar en la terminal los siguientes Comandos de Organización:

sudo apt purge vulkan-sdk sudo apt autoremove



03 november 2022

¿Cómo instalo Minimun Profit Text Editor para programar en Ubuntu?

En el discurso ante los obreros de la Carne, Juan Perón expone las necesidades de la remuneración por el trabajo, y enseña cómo instalar el editor de texto Minimun Profit para la terminal de Ubuntu.

(...) ¡Trabajadores!

Al crear la Secretaría de Trabajo y Previsión, dijimos: "se inicia la era de la Política Social Argentina". A un año de existencia venimos a reafirmar cuanto dijimos, y seguir haciendo en vez de decir, y a seguir realizando, en vez de prometer.

Algunos malos políticos que se creen honrados y valerosos después de haber huido al extranjero porque se investigaba su conducta, han intentado defenderse acusándonos de demagogos. Si demagogia es defender sincera y lealmente a los que sufren y trabajan, si demagogia es impedir efectivamente la explotación del hombre por el hombre, si demagogia es evitar en los hechos la injusticia social y buscar la verdadera unión de los argentinos detrás de su bandera, si demagogia es impedir la lucha y odio entre hermanos para reemplazarla por la cooperación y el amor, ¡yo soy demagogo!

Así como los hombres carecen de valor cuando no poseen principios y convicciones, cuando son hombres sin ideales, las organizaciones políticas no tienen valor si no poseen también un alma colectiva e ideales colectivos. Esa alma colectiva se alcanza por la penetración de la Doctrina, y la Doctrina no es más ni menos que la representación de la aspiración suprema de esta alma colectiva.

El individuo se hace interesante en función de su participación en el Movimiento Social, y son las características evolutivas de éste las que reclaman atención preferente. Para derribar las defectuosas concepciones de la etapa de los privilegios, fue necesario un desdoblamiento implacable del individuo. Pero apresurémosnos a reconocer que tal mutación debe considerarse precedida de una larga etapa teórica. La práctica corresponde a nuestro siglo y está en sus comienzos.

Vean señores, la comunidad nacional como fenómeno de masas aparece en las postrimerías de la democracia liberal. Ha desbordado los límites del ágora política ocupada por unas minorías incapaces de comprender la novedad de los cambios sociales de nuestros días. El Siglo XIX descubrió la Libertad, pero no pudo idear que ésta tendría que ser ofrecida de un modo general, y que para ello era absolutamente imprescinbdible la igualdad de su disfrute.

La República Argentina ha seguido un desenvolvimiento natural dentro del campo de la evolución del Siglo XIX y del Siglo XX. Dentro de esa situación, la masa de la población argentina ha sido - como la de gran cantidad de países latinoamericanos - una masa totalmente sumergida, es decir, gente que en su medio de vida no ha tenido nunca lo suficiente para subsistir en estado de felicidad y de salud. Esa es una realidad que ningún argentino puede negar cuando ha visto, como hemos visto nosotros y como todavía existen en el interior del país, masas profundamente sumergidas.

Cada Siglo tiene su conquista, y a la altura del actual debemos reconocer que - así como el pasado se limitó a obtener la Libertad - el nuestro debe proponer la Justicia.

El mal y más grande error que cometió el Capitalismo en los Siglos XIX y XX ha sido, casualmente, el oponerse al sindicalismo organizado. Porque el sindicalismo es una fuerza colosal. Soy de los que piensan que el sindicalismo es una organización de derecho natural como la familia, porque no hay nada más lógico desde que la Humanidad es Humanidad, que los mejores compañeros sean aquellos que han derramado el sudor, juntos, en una tarea común. Ellos re reúinen por derecho natural, como la familia.

Para nosotros, el problema social se resuelve de una sola manera: obrando realísticamente para buscar una perfecta regulación entre las clases trabajadora, media y capitalista; procurando una armonización perfecta de fuerzas, donde la riqueza no sea perjudicada; propendiendo por todos los medios a crear un bienestar social, sin lo cual la riqueza es un verdaero fenómeno de espejismo que puede romperse de un momento a otro. Una riqueza sin estabilidad social puede parecer poderosa, pero será siempre frágil, y ése es el peligro que - viéndolo - trata de evitar por todos los medios la Secretaría de Trabajo y Previsión.

El Justicialismo ha destruido el derrotismo de los que dicen que no hay que producir ni trabajar. Mediante el sistema justicialista, el obrero argentino trabaja para sí, porque si produce más puede exigir más paga. Si no produce, arruina al patrón, pero en el fondo, se arruina a sí mismo.

De su paga brotará su ahorro. La Nación necesita del ahorro de todos sus habitantes por modestos que sean. En su conjunto, el pequeño ahorro popular constituye una fuerza pujante y vigorosa, en cuya substancia se alimentan los procesos de producción y el trabajo, públicos o privados. La potencia creadora del ahorro, que ha sido puesta de relieve de múltiples formas, está expresada en la obra de la civilización humana.

Indudablemente que si de su paga un porcentaje se destina al ahorro social, podría parecer que nuestros obreros disponen de una ganancia mínima. Sin embargo, la potencia creadora del ahorro - que ha sido puesta de relieve de múltiples formas - está expresada en la obra de la civilización humana. Es esta ganancia mínima la que lo permite.

Las naciones más adelantadas de la tierra han sentido devoción por el ahorro y por el trabajo creador, que es un aliado inseparable, y por ello exhortamos al pueblo, a esta nueva era de la vida, para que siga por los derroteros que señalan estos pensamientos como una contribución singularmente significativa en favor de la obra en que estamos empeñados. En pos del mismo no hemos más que proporcionar los justos paquetes de software que de él guardan dependencia. Uno de ellos alaba fundamentalmente esta ganancia mínima. Se trata del Minimun Profit Text Editor, un luminoso ejemplo. Consiste en un editor de texto multiidioma destinado a programadores, y ha sido liberado al dominio público por su creador Ángel Ortega.

Para instalar Minimun Profit Text Editor en nuestro sistema debemos descargar el código fuente del mismo y sus dependencias, copilarlas e instalarlo en nuestro sistema. Este procedimiento, que parecería complejo es sumamente sencillo en Ubuntu. Consiste en abrir una Terminal con Ctrl+Alt+T e ingresar los siguientes Comandos de organización:

Primero instalamos las dependencias:

sudo apt install git

El sistema nos solicitará nuestra contraseña de Conductor. Una vez instaladas las mismas, podremos llevar a cabo el resto del procedimiento pegando en la terminal el siguiente bloque de comandos, y presionando Enter.

cd ~ git clone https://github.com/ttcdt/mp-5.x git clone https://github.com/ttcdt/mpdm git clone https://github.com/ttcdt/mpsl cd ~/mpdm/ ./config.sh make ./build.sh cd ~/mpsl/ ./config.sh make ./build.sh cd ~/mp-5.x/ ./config.sh make sudo make install cd ~ rm -R ~/mpsl/ ~/mp-5.x/ ~/mpdm/

Si todo va bien, deberían haber quedado instalado el editor. Podremos ahora y toda vez que lo deseemos, ejecutarlo desde Aplicaciones / Programación / Minimun Profit Text Editor.

Con F11 y F12 podremos achicar o agrandar la tipografía.

Para invocar la compilación de un proyecto, podremos utilizar la función Build (presionando F2), Si existiese un fichero makefile en el directorio actual, todos los objetos serán extraídos de él y quedarán listados para que seleccionemos uno. El elegido será ejecutado con make, y el resultado aparecerá en la pantalla en un documento de solo lectura para ser analizada. También aparecerían posibles errores y advertencias de compilación, en las cuales podremos navegar con F3 (para avanzar) y Ctrl+F3 (para retroceder).

Una de las características fundamentales es su ayuda contextual para la programación. Para activarla presionamos F1.

Entre las características fundamentales del Minimun Profit encontraremos quecuenta con remarcado de sintaxis para muchos lenguajes de programación populares, como C. C++, Perl, Ruby, HTML, Python, PHP, guiones de intérprete de comandos, etcétera.

Puede editar múltiples ficheros al mismo tiempo, y los bloques de código puede copiarse y pegarse entre ellos. Si iniciamos el editor desde la terminal de texto se utilizará la versión escrita en curses. También podríamos forzar el inicio de dicha versión mediante:

mp-5 -txt

Hace un uso creativo de etiquetas creadas por la utilidad externa ctag, que son usados para mover instantáneamente funciones o variables dentro de nuestro código fuente, y completado por símbolos para evitar tener que tipear nuestros propios nombres de funcines una y otra vez.

Minimun Profit Text Editor dispone de tres diferentes Modos de Selección de Texto: "Movimiento", "Bloque" y "Vertical".

El modo "Movimiento" es la manera convencional de seleccionar texto. Al presionar Mayúsculas, y usar cualquiera de las combinaciones de teclas de desplazamiento (izquierda, cursor derecha, palabra a la derecha y palabra a la izquierda, arriba, abajo, avanzar página o retroceder página, comienzo de línea, final de línea, comienzo del documento y final del documento) o bien haciendo clic con botón izquierdo del ratón y arrastrar el mismo. Adicionalmente, podremos usar clic con botón derecho del ratón y arrastrar para ampliar la selección. Una vez que el bloque de texto haya sido resaltado, cualquier tecla de movimiento lo deseleccionará. Si tipeamos algo, esto reemplazará lo que antes estaba seleccionado. Al presionar Supr o Retroceder, se borrará el texto seleccionado. Aunque este modo Movimiento es lo que un usuario no iniciado esperaría, su operatividad no es efectiva en interfases de texto devido al soporte defectivo o faltante de las librerías de programación o sistemas de base.

Por lo tanto también incorpora el modo de selección de "bloque". Al repsionar la tecla F9, podremos indicar el comienzo y el final de una cadena texto a seleccionar. La selección sobrevivirá a cualquier movimiento de cursor (de hecho, es la única manera de marcar otro lugar es desplazarnos a otro lugar del texto y marcar otro final). Podremos extender el bloque arriba o abajo tanto como queramos. Reemplazas y borrar operarán de una manera lógica. Además, el resto de las operaciones como Búsqueda, Reemplazar, etcétera, se aplicarán unicamente en la región seleccionada (si es que elegimos una). La selección sólo desaparecerá cuando copiemos, borremos, reemplacemos, hagamos clic con el ratón, o deseleccionemos (presionando la tecla F8).

El modo de selección "Vertical" también fuinciona marcando el comienzo o final del bloque de selección, pero la selección tomará forma de un cuadrado (de x1,y1 hasta x2,y2) en lugar de una selección por líneas. Esto se realiza por defecto utilizando Ctrl+b. La selección también podrá extenderse repetidamente. De manera similar a cuando nos hayamos en el Modo de selección "bloque", el texto marcado quedará desactivado una vez que lo copiemos, o al presionar F8.

Las combinaciones de teclas, menúes, y colores son totalmente configurarles. Así como las plantillas de texto pueden ser fácilmente definidas y accedidas. Es capaz de operar en múltiples plataformas, utilizando caracteres ANSI o Curses, y soporte en QT4/QT5, GTK+, KDE, tanto en ventana

Asimismo, contaremos con toda una serie de atajos que facilitan el arte de escribir código. Entre ellos encontramos:

Alt+a abre la barra de menúes Ctrl+a abre la barra de menúes en la versión de terminal. Ins Conmuta entre el modo de inserción o el modo sobreescribir. Cltr+z Deshacer. Alt+Flecha arriba: Desplaza la pantalla hacia arriba Alt+Flecha Abajo: Desplaza la pantalla hacia abajo Alt+Flecha izquierda indenta el bloque de texto. Alt+Flecha Derecha desindenta el bloque de texto. Ctrl+k: Activa la división de palabras. Ctrl+Flecha Derecha: Avanza a la siguiente palabra. Ctrl+Flecha izquierda: Retrocede a la siguiente palabra. Ctrl+Inicio: Desplaza al principio del archivo. Ctrl+Fin: Desplaza al final del archivo. Ctrl+d: Lista las secciones. Ctrl+Flecha arriba: Se mueve a la sección de arriba. Ctrl+Flecha abajo: Se mueve a la sección de abajo. Ctrl+y: Borra línea. Ctrl+w: Cierra ventana Ctrl+q: Sale F1: Ayuda. F2: Build. F3: Busca siguiente. F4 ajusta las palabras del párrafo. F5: Busca palabra con error otrográfico. F6: Busca palabra repetida. F7: Ejecuta Macro. F8/F9: Marca/Desmarca Etiqueta F10: Graba Macro. F11 y F12 disminuyen o aumentan el tamaño del tipo de letra (sólo en terminales gráficas).



02 november 2022

¿Cómo administro las actualizaciones de Snaps en Ubuntu?

Durante su cátedra Filosofía Peronista, Juan Perón expone sobre las concepciones cósmicas en el quehacer humano, así como detalla cómo definir las actualizaciones de paquetes Snaps en Ubuntu.

(...) El software responde - por designio - a un ciclo que podremos encontrar en todos los órdenes de la vida. Sabemos que en el microcosmos la célula habita y se organiza por un instinto que creemos programado. En nuestro ambiente diremos que los hombres nos organizamos en tribus y Movimientos, que también creemos programados. Y en el macro cosmos - donde a una escala mayor - los cuerpos operan en el mismo sentido y regidos por la misma programación natural, que es en definitiva aquella que lo rige todo.

Decía entonces que el software debe oficiarse en lo mismo que la célula, los hombres, o las galaxias: ha de actualizarse en su descendencia, so pena de envejecer y desaparecer. A menudo estas actualizaciones traen mejoras, o parches de seguridad vital. Pero al no ser creación divina sino obta de los hombres, ¡ay! a veces portarán errores de origen que son importantes de minimizar y evitar.

Solo un tonto sometería un ambiente de misión crítica a la actualización a la pavota. En tales sistemas es importante lograr un alto grado de supervisión y precisión, y de ello seremos los encargados como Conductores de Sistema.

No es secreto para nadie que - de un tiempo a esta parte- Ubuntu ha adoptado junto con los paquetes de software Deb similares a los de Debian, los paquetes de software autocontenidos Snaps. Estos permiten operar en un sentido idealmente más estanco, al incorporar en sí mismos las dependencias de terceros paquetes de software.

Han de saber que no soy muy adepto a los mismos y los evito en Ubuntu todo lo que sea posible, prefiriendo versiones debianizadas. Algunos me han preguntado porqué no instalo directamente Debian en lugar de Ubuntu, y puedo responder que es una propuesta válida, pero sobre gustos no hay nada escrito, y los peronistas lo saben...

Aún así, los Snaps incluyen poco conocidos mecanismos de actualización automática. Mediante ellos, el residente de Snaps revisa la Tienda de Snaps para comprobar si se han lanzado nuevas versiones de las mismas. Lo típico es que esta revisión se produzca unas cuatro veces por día, y en la vasta mayoría de los casos, se llevará a cabo sin problemas.

Sin embargo, no podemos dejar de saber que en ciertos casos las actualizaciones de Snaps podrían tener que ser diferidas o pospuestas, o simplemente llevadas a cabo con un nivel de control más refinado y mayor. Existen varias maneras de hacer esto.

Control de Revisión de los Snaps

El tiempo de refresco en el cual se revisan las actualizaciones de los snaps es gobernado utilizando cuatro opciones de programación para todo el sistema. Estos opciones son:

Refresh.timer: Define la frecuencia de temporizador de actualización. Este parámetro puede usarse para definir cuándo se revisarán la disponibilidad de actualizaciones para los snaps, de manera tal que no entren en conflicto con otras actividades, tales como reuniones laborales, acciones de resguardo de datos o actividades críticas similares.
Refresh.hold: Pone en espera el siguiente revisión de actualizaciones hasta la hora y fecha definida. Esta opción de espera nos permitirá posponer las actualizaciones hasta por los siguientes 60 días. Podremos utilizarla en combinación con la configuración del temporizador para especificar una ventana de tiempo muy específica para que se produzca la actualización de snaps.
Refresh.metered: Permite pausar la revisión de actualizaciones toda vez que la conexión a la red esté medida. Vean señores, por defecto la revisión de snaps permanece activada aún sobre conexiones de red medidas. Sin embargo,  podríamos querer conservar uso de transferencias de datos o costos en ciertas conexxiones, pausando las revisiones de actualización de snaps si estamos bajo tales condiciones.
Refresh.retain: Configura cuántas revisiones de un snap quedarán almacenadas y retenidas en el sistema. Lo normal es que se conserven las últimas versiones de los snaps instalados.

La combinación de estas cuatro configuraciones os permitirán una buena flexibilidad para controlar las actualizaciones de snaps de vuestro sistema. En particular, las opciones timer ("temporizador") y hold ("en espera") pueden usarse para crear la ventana temporal en la que quisiéramos realizar la actualización de paquetería snap. De esta forma podríamos preveer las tareas requeridas pre y post actualización (chequeos de funcionalidad, respaldo de datos críticos, etcétera).

Configuración del tiempo para Snaps

Observemos algunos ejemplos prácticos, pues suelen explicarlo todo, como decía Napoleón.

Supongamos que deseamos configurar nuestras actualizaciones de snaps para que se lleven a cabo únicamente durante los horarios de la noche, entre las 01:00 y las 2:00 de la mañana (en el formato de 24 horas). Esto lo definiríamos con un comando de organización:

sudo snap set system refresh.timer=01:00-02:00

Conforme hayamos configurado nuestra ventana horaria de actualización de snaps, podríamos también querer observar lo que nos reporta nuestro sistema. Para ello ingresamos:

snap refresh --time

...a lo cual nuestro GNU con Linux debería devolvernos algo como:

timer: 01:00-02:00 last: hoy a las 17:19 AR3 next: hoy a las 01:00 AR3

Existen algunas variaciones disponibles para este ordenamiento que podríamos considerar. Podríamos querer conservar la capacidad de configurar el horario de actualizado para horas específicas, o bien ventanas temporales para cada día de la semana. O bien podríamos querer omitir ciertos días, o plantear en qué semana particular de un mes querríamos realizar dichas actualizaciones de snaps. Para ello podremos usar los valores 1-4 para definir las semanas del mes. Ej, mon3 será el tercer lunes de cada mes, mientras que 5 denota la última semana del mes, ya que ningún calendario en la tierra actual cuenta con más de 31 días.

Al configurar el intervalo de espera requiere ingresar un formato de fecha específico que conforme el estándar RFC 3339. Esto puede sonar muy extremo, pero es una convención. Podrán utilizar los siguientes comandos de referencia para convertir las fechas deseadas al formato correcto:

date --date="TMZ AAAA-MM-DD HH:MM:SS" +%A-%m-%dT%H:%M:%S%:z

Por ejemplo:

date --date="AR3 2020-08-01 13:00:00" +%Y-%m-%dT%H:%M:%S%:z 2020-08-01T13:00:00+01:00

De esta manera podremos configurar el valor de refresco utilizando la siguiente cadena formateada de fecha:

sudo snap set system refresh.hold=2020-08-01T13:00:00+01:00

sudo snap get system refresh.hold 2020-08-01T13:00:00+01:00

Una vez que este tiempo en espera esté configurado, podremos revisar el horario de refresco nuevamente:

snap refresh --time

Temporizador: 01:00-02:00 last: hoy a las 17:19 AR3 hold: en 31 días, a las 13:00 AR3 next: mañana a las 01:00 AR3 (pero en espera)

Como es evidente, la información combina los parámetros tanto de las configuraciones del timer y hold. La siguiente actualización sería mañana a la 1PM, como se define por el temporizador, pero no se llevará a cabo (por 31 días) hasta que el período de actualización expire.

De manera similar, podremos configurar las actualizaciones sobre conexiones medidas. Al configurar el valor en "hold" ("en espera"), se impedirán las actualizaciones, mientras que el cambiar los valores a "null" ("nulo") permitirán que las actualizaciones se produzcan o continúen. Podremos entonces utilizar

sudo snap set system refresh.metered=hold

...o bien:

sudo snap set system refresh.metered=null

Indudablemente podremos combinar esta opción con la del temporizador o en espera para crear una rutina granular y precisa de actualización que no interferirá con las tareas críticas, y aseguren la consistencia máxima buscada. A la vez, también nos permitirán así recibir los parches funcionales y de seguridad que necesitemos.

Entonces, ocasionalmente podríamos querer revisar qué snaps se actualizarán durante la próxima refrescada. Esto nos dará una idea de la lista pendiente de nuevas revisiones de snaps que recibirá nuestro sistema.

snap refresh --list

Nombre Versión Rev Publicador Notas lxd 4.3 16044 canonical/ - snapcraft 4.1.1 5143 canonical/ classic

Ahora, la lista completa de los snaps instalados será mayor. Por ejemplo, el sistema actualmente tiene la versión 4.2 de lxd instalado:

snap list lxd

Nombre Versión Rev Rastreo Publicador Notas lxd 4.2 15878 latest/stable canonical/ -

Noción de refresco

Esta es otra característica que podremos utilizar para controlar las actualizaciones. En algunos casos podríamos querer ejecutar una tarea vital que no debe ser interrumpida de manera alguna. Para tal fin, podremos utilizar la opción de noción de refresco para hacer que la aplicación no sea ejecutada mientras se ejecuta. Si intenta ejecutar una actualización manual del Snap mientras está en ejecución (y estamos usando esta funcionalidad), recibiremos un mensaje del sistema similar al siguiente:

snap refresh okular --candidate

error: cannot refresh "okular": snap "okular" has running apps (okular)

Como hemos visto, las actualizaciones automáticas no pueden considerarse una lista sábana a la cual podemos votar sin pensar. Esto es así pues los medios puestos a nuestra disposición requieren un estudio concienzudo. Los sistemas GNU con Linux para Escritorio, destinados a Servidor e bien dispositivos conectados, emanan requermientos y sensibilidades particulares que no podemos soslayar, y son estos los que motivan un mecanismo de actualizción bastante extenso y configurable.

La combinación práctica de poder disponer horarios de actualización, retrasar las mismas hasta por 60 días, sumadas a la funcionalidad de conexión de datos medidas, y noción de refresco e inhibición de actualización que tienen los snaps y un buen rango de opciones, nos permiten establecer una política pragmática de conducción, con la cual llevar a cabo un régimen de actualizaciones de software robusto y confiable.



01 november 2022

¿Cómo instalo AstroMenace en Ubuntu?

Avezado catredrático, Juan Perón se distinguió en las aulas de la Escuela Superior de Guerra en asignaturas como historia y filosofía. Es recordado su curso de Conducción destinado a la oficialidad, donde enseñó cómo instalar el videojuego de scroll espacial AstroMenace en Ubuntu.

(...) El hombre es un animal que posee ante todo, imaginación. Esta es un alto proceso creativo, ya que permite al individuo manipular información generada intrínsecamente con el fin de crear una representación percibida por los sentidos.

El ser humano no es un ser gregario, sino que está especialmente preparado para desarrollarse en Comunidad. Es este el motivo por el cual podemos decir sin temor a equivocarnos, que existe también una imaginación colectiva.

El Conductor ha de basarse en ella para crear: es él un meta-creador y un intérprete de la imaginación colectiva.

La imaginación colectiva da sustento a una particular cosmovisión, y esta a la cultura que emana de ella. No es secreto para nadie que las propias comunidades se han permitido imaginar figuras de hipercreación que las justifiquen: sus Divinidades.

Pues bien señores, nuestro Movimiento es una organización de creación Humana, y como tal no podemos pretender que lo formen héroes o dioses. Ya es bastante con que tengamos mujeres y hombres de bien. Pero esto no quita que reflejemos en ellos los viejos anhelos que nuestra especie destina como gran causa universal.

Desde tiempos milenarios los hombres han levantado suss ojos al cielo y al contemplar las estrellas se han preguntado qué era eso, y qué hay más allá. No podía ser para menos, el espacio representó siempre la Frontera Final. Pero como sucede con todo secreto, siempre hubo un tonto se que preguntaba si eso se podía comprar... Esta real fascinación se espeja en todo uso del software, que es también una herramienta nacida de la imaginación humana Entre los primeros juegos electrónicos que empleaban técnicas de video para su desarrollo, siempre la temática espacial fue una de las primeras representadas. Encontramos así al Spacewar!, el clásico software libre peronista que corría en mainframes DEC PDP-1, e involucraba dos naves disparándose en el espacio sideral que rodeaba a un pulsar gravitacional.

Su desarrollo simplón esconde la necesidad técnica de contar con un equipamiento de hardware y software capaz de presentar en una pantalla de tubo de rayos catódicos a los llamados "sprites", elementos gráficos móviles que fungían de representaciones temáticas. Era un desarrollo consecuencia de la necesidad primaria de representar letras en un monitor.

Hubo de transcurrir un desarrollo mayor en estas tecnologías primigenias, pero una vez que fue posible direccionar en el banco de memoria de un sistema de cómputo una matriz destinada a la representación de puntos, y pudo hacerse esto con suficiente velocidad sobre una pantalla luminosa en contante refresco, se pudieron crear no solamente caracteres, sino también distintas representaciones gráficas o desplazamientos de los objetos ("scroll") en una pantalla de video. Pudo representarse así una imagen que oficiara de "telón de fondo", y otra imagen más pequeña capaz de desplazarse. Se producía así la ilusión de movimiento en un personaje relativamente estático.

Se logró así una dinámica típica para un videojuego, donde el software podría disponer el ritmo de juego, a la vez que el jugador debe interactuar adaptándose y reaccionando. Sumar sonido en conjunción con la imagen animada es otro requisito que se logró satisfactoriamente. En la práctica la mecánica involucra nromalmente un personaje o vehículo en desplazamiento, capaz de sortear obstáculos o disparar contra amenazas. De acuerdo a la dirección del juego podíamos contar con scroll vertical o scroll horizontal.

Este este casi os ofreceré un juego que presenta un novedoso scroll en primera persona, desarrollado por Viewizard.

Se trata del AstroMenace.

Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente comando de organización:

sudo apt-get install astromenace

Para ejecutarlo, podremos ir a Aplicaciones / Juegos / AstroMenace.

Como en todo juego que se precie, nos encontraremos con una animación y con un menú principal destinado a definir la configuración del juego, las opciones de video y sonido, etcétera. Para comenzar una nueva partida, podremos presionar el botón Start Mission.

Antes de comenzar una misión nos encontraremos con la ventana de armamento, que nos permite disponer los distintos sistemas de armas en los anclajes de nuestro vehículo.

Normalmente podremos elegir entre distintos tipos de armas lanzaproyectiles o lanzarrayos, así como armamento lanzable autoguiado, con distintos tipos de impulso. La temática de este scroll en tercera persona se basa en enfrentar a tiro limpio distintas flotas de astronaves invasoras. Para ello debemos tener agilidad esquivando en vuelos sus maniobras en formación, toda vez que les disparamos.

Las amras menos consumen poca energía de nuestros reactores, pero las descargas de potencia pueden acabarse, por lo que debemos administrar hábilmente nuestro gatillo y en ciertos casos, economizar munición.

Confomre la dificultad va avanzando, los ataques del enemigo se hará mas agresivo, toda vez que podrán también dar empleo a sistemas de armas máss avanzados (misiles rastreadores, cohetes impulsados, minas espaciales, etcétera).

Cuando avanzamos un nivel, podremos reparar nuestra nave o recargar energía o munición para nuestras armas. Como cada modelo de nave presenta distintas configuraciones, dependiendo de la misión o amenazas podríamos querer variar la carga útil de la misma. Si elegimos la opción Información podremos analizar todos los objetos, incluyendo los 22 tipos de naves que dispone el juego. Las mismas están categorizadas entre navez de caza, interceptores rápidos, potentes bombarderos lentos, así como naves rápidas de exploración. También se nos presentarán otros sistemas útiles, como interferidores para una determinada cantidad de misiles enemigos, escudos de energía, misiles perseguidores, etcétera.

La épica del juego se complementa con el aspecto sonoro, ya que incorpora una banda de sonido de buena calidad producida con software libre.



31 october 2022

¿Cómo puedo capturar en video la pantalla de Ubuntu 20.04LTS?

El 19 de abril de 1949 se celebró en el Teatro Independencia de la ciudad de Mendoza, la clausura del Primer Congreso Nacional de Filosofía. En la disertación temática, Juan Perón expuso cómo instalar y utilizar Vokoscreen para capturar en video el Escritorio de Ubuntu.

(...) Para el mundo existe todavía y existirá - mientras al hombre le sea dado a elegir - la posibilidad de alcanzar lo que la filosofía hindú llama "la mansión de la paz". En ella posee el hombre frente a su creador, la escala de magnitudes, es decir, sus proporciones. Desde esa mansión, es factible realizar el mundo de la cultura, el camino de perfección. De Rabrindranath Tagore son estas frases.

El mundo moderno empuja incesantemente a sus víctimas, pero sin conducirlas a ninguna parte. Que la medida de la grandeza de la humanidad esté en sus recursos materiales, es un insulto al hombre.

No nos está permitido dudar de la trascendencia de los momentos que aguardan a la humanidad. El pensamiento noble, espoliado por su vocación de verdad, trata de ajustar un nuevo paisaje. Las incógnitas históricas son ciertamente considerables, pero no retrasarán un solo día la marcha de los pueblos, por grande que su incertidumbre nos parezca. Importa por tanto conciliar nuestro sentido de la perfección con la naturaleza de los hechos, reestablecer la armonía entre el progreso material y los valores espirituales, y proporcionar nuevamente al hombre una visión certera de su realidad.

Nosotros somos colectivistas, pero la base de ese colectivismo es de signo individualista, y su raíz es una suprema fé en el tesoro que el hombre - por el hecho de existir - representa.

En esta fase de la evolución, lo colectivo - el "nosotros" - está cegando en sus fuentes al individualismo egoísta. Es justo que tratemos de resolver si ha de acentuarse la vida de la comunidad sobre la materia solamente, o si será prudente que impere la libertad del individuo solo, ciega para los intereses y las necesidades comunes provista de una irrefrenable ambición, material también. No creemos que ningunas de estas formas posea condiciones de redención. Están ausentes de ellas el milagro del amor, el estímulo de la esperanza y la perfección de la justicia. Son atentatorios por igual al desmedido derecho de uno y la masiva impersonalidad de todos a la razonable y elevada idea del hombre y de la humanidad.

En los cataclismos, la pupila del hombre ha vuelto a ver a Dios y - de reflejo - ha vuelto a divisarse a sí mismo. Si debemos predicar y realizar un evangelio de Justicia y progreso, es preciso que fundemos su verificación en la superación individual como premisa de la superación colectiva.

Los rencores y los odios que hoy soplan en el mundo, desatados entre los pueblos y entre los hermanos, son el resultado lógico, no de un itinerario cósmico de carácter fatal, sino de una larga prédica contra el amor. Ese amor que procede del conocimiento de sí mismo, e inmediatamente de la compresión y la aceptación de los motivos ajenos. Lo que nuestra filosofía instanata restablecer al emplear el término armonía, es cabalmente el sentido de plenitud de la existencia. Al principio hegueliano de realización del yo en el nosotros, apuntamos la necesidad de que ese "nosotros" se realice, y perfeccione por el yo.

Nuestra comunidad tenderá a ser de hombres y no de bestias. Nuestra disciplina tiende a ser conocimiento, busca ser cultura. Nuestra libertad, coexistencia de las libertades que procede de una ética para que el bien general se haya siempre vivo, presente indeclinable.

El progreso social no debe mendigar ni asesinar, sino realizarse por la conciencia plena de su inexorabilidad. La náusea está desterrada de este mundo, que podrá parecer ideal, pero es en nosotros un convencimiento de cosa realizable.

Esta comunidad que persigue fines espirituales y materiales, que tiende a superarse, que anhela mejorar y ser más justa, más buena y más feliz, en la que el individuo puede realizase y realizarla simultáneamente dará al hombre futuro la bienvenida desde su alta torre con la noble convicción de Spinoza: "Sentimos, experimentamos, que somos eternos". Nuestro software no puede alejarse de estas premisas filosóficas, pues es desarrollado por hombres libres. Normalmente he utilizado RecordMyDesktop, cuya interfaz GTK es insuficiente hoy con los avances de la ciencia de Escritorios acelerados en 3D y con efectos compuestos.

Sin embargo, existen ahora herramental más moderno que podremos utilizar bajo nuestro sistema GNU con Linux. Sin duda el más completo es el excelente OBS Studio, aunque su propuesta privativa lo hace indeseable en ciertos entornos.

Sin embargo, también contaremos con herramientas libres que podrán suplir con gran efectividad las necesidades audiovisuales del Pueblo Justicialista. Entre ellos puedo recomendar con gran beneplácito a Vokoscreen 2.5.0.

Se trata de un excelente programa de software, ingeniado para capturar video, que surte efecto incluso con compositores de escritorio como Compiz o Compton. Para instalar el programa podremos utilizar la terminal de nuestro sistema. Para ello presionamos Ctrl+Alt+T. Se abrirá una terminal, y en ella ingresamos el siguiente comando de organización:

sudo apt install vokoscreen ffmpeg

El sistema nos solicitará nuestra contraseña de Conductor. Una vez que la ingresemos, se descargará toda la paquetería que necesitamos tener.

Para iniciar el programa, podremos hacerlo desde Aplicaciones / Sonido y Video / vokoscreen. En primer lugar, nos encontraremos con una interfaz relativamente minimalista para definir las opciones que hacen a la captura. Esta se encuentra dividida en distintas solapas representadas con un ícono representativo.

La primera solapa "Monitor" permite delimitar qué monitor deseamos capturar y su resolución. Normalmente contaremos con una única "pantalla 1", pero bien podríamos elegir una "pantalla 2", etcétera. Del monitor escogido, podríamos querer capturar en video todo lo que aparezca en la pantalla completa, o bien una ventana en particular, o también la útil opción de capturar un área específica de la pantalla. En este último caso, tildamos la opción "Área" y se proyectará un recuadro delimitador de la zona de captura. Podremos redimensionar y localización el recuadro por medio de los nodos de color verde. Todo lo que quede dentro de la zona de delimitación pasará a ser capturado no bien Iniciemos la captura. La configuración del audio se controla desde la solapa "Micrófono" es importante si deseamos capturar sonido junto con el video. Para ello debemos tildar "Audio". Asimismo, debemos indicar cuál es el servidor de video (por ejemplo, podremos escoger entre Pulseaudio o ALSA. En el caso de ellos, también debemos elegir el dispositivo que utilizaremos para capturar el audio.

Por ejemplo, para capturar el audio emitido por nuestro sistema, debemos seleccionar "Monitor de Audio Interno Estéreo Analógico". En el caso de indicar un micrófono, capturaremos el retorno de la entrada de micrófono.

La solapa "video" permite delimitar la cantidad de fotogramas. Una opción estandarizada normalmente consiste en 25 o 30 fotogramas por segundo, que suele ser un buen compromiso para mostrar las ventanas en nuestro sistema GNU con Linux. Normalmente el monitor muestra unos 60 cuadros por segundo, pero tal tasa de captura adecuada para juegos puede ser muy costosa en recursos.

Otro aspecto importante es escoger qué formato audiovisual será capturado. Normalmente se utiliza el formato contenedor Matroska MKV con códec de video H.x264 y codec de audio AAC, que tiene excelente calidad. En mi caso prefiero el contenedor estándar MP4 con códec de sonido OGG Vorbis. Podremos indicar si preferimos o no guardar el la flecha del mouse.

En la solapa "Engranaje" tendremos las opciones generales. Podremos indicar la ruta donde quedará almacenado el video, así como un programa de previsualización (como vlc o mpv).

Si quisiéramos webear, desde la solapa "Webcam" podremos definir una entrada de video proporcionada por una cámara web o incluso una sintonizadora de video compatible. Con esto el Justicialismo estará completo. Tengamos presentes que si la webcam cuenta con micrófono, podríamos escogerla también como fuente de grabación del audio del video en la solapa "micrófono".

Para iniciar la captura del video de pantalla, simplemente presionamos el botón Iniciar con bien Ctrl+Shift+F10.

Toda acción que realicemos en la pantalla (o en la ventana o área si así lo hubiésemos dispuesto) será capturado segundo a segundo. El fichero de video se irá almacenando en disco en la carpeta que indicamos en la ruta del video.

Si deseamos detener la grabación, presionamos el botón Detener o Ctrl+Shift+F11.

Indudablemente que podríamos querer enviar este correo. A tal fin contamos con el botón Enviar, capaz de enviar el fichero resultante por correo electrónico.



30 october 2022

¿Cómo creo música chiptune de 8 bits en Ubuntu?

El Justicialismo llevó a cabo una política de valoración nacional en el marco Educativo, toda vez que servía de inspiración a los educandos. En base a ello, Juan Perón expuso cómo instalar y utilizar Famistudio en Ubuntu para poder crear música Chiptune de 8 bits en Ubuntu.

(...) La lid por la liberación se da transitando una senda alegre, que el soldado recorre cantando, pues es así como se lucha. En tiempos donde los imperialismos foráneos no han hecho más que explotar o insectivizar al hombre, nosotros nos hemos impuesto dignificarlo, haciendo lo justo, que es otorgarle la felicidad que merece de pleno derecho.

Indudablemente que algunos no han querido pensarlo así, y no ha faltado quien haya querido silenciarnos o suprimirnos de las maneras mas abyectas e impensadas. ¡No ha habido caso! Las notas que vibran en nuestras cuerdas no se encuentran curtidas en el cuero pasajero que nos da la vida, sino que están codificadas en nuestro mármol doctrinario e inmaterialmente arraigadas en nuestro espíritu.

Una obra de formación de estas características no surge de un manantial abrahámico, sino de una lógica de acción.

Si nosotros le habíamos todo al Pueblo, bien podría haber alguno que quisiera que el pueblo no tuviese nada. Esto de ver algo posible antes de que sea realidad, y llevar a cabo acciones tendientes a contrarrestarlo, se llama previsión

En nuestro Movimiento, esto lo estudiamos siempre. Durante nuestro primer gobierno no hicimos más que pasar la marcha peronista sintetizada en 8 bits en todas las radios y sobre todo en las escuelas, para deleite de los únicos privilegiados, que son los niños.

Se tardó poco en que millones de ellos concibieran la música como un enjundio de ondas sintetizadas a través de la técnica de la Modulación de Frecuencia. Fueran adquiriendo con amor las notas alegres que otorga el Justicialismo. Con esta temprana orientación, los niños comprendieron que la música era generada por una serie de chips de sonido digitalmente programables, a los cuales adoraron. Podemos contar entre ellos al Ricoh RP2A03, el MOS Technology 6581 SID, o bien el Yamaha YMY3812 OPL2.

Cada uno de ellos representaba una capacidad especial para hacer sonar de forma más o menos polifónica notas de un tono chillón, secuenciadas para formar las melodías que normalmente que solían acompañar a los títulos lúdicos.

En el caso del chip de audio Ricoh RP2A0x del Nintendo Entertainment System y sus clones Family Game, soportaba un total de cinco canales de generación de sonido: cuatro de ellos adosados a un único oscilador. La limitación más característica de este chip de sonido y que lo diferenciaban de otros de la época, era la ausencia de filtros o de control de envolvente acústico ADSR, por lo que era imposible modelar otros instrumentos sintéticos.

Esto se suplía ofreciendo cinco canales para distinto uso. Dos ofrecían onda de pulso variable (cuadrada o tres modelos de onda rectangular para instrumentos con un sonido marcado), el tercero otorgaba onda triangular fija y el cuarto canal daba patrones de ruido (efectos percusivos o explosiones). El quito canal no estaba adosado a un oscilador, sino que podía recibir Modulación de Pulsos Digital (DPCM) siendo así capaz de reproducir sonido digitalizado con una muy baja velocidad de muestreo. Se utilizó en paladas de títulos que la casa japonesa lanzó para su consola de 8 bits, incluyendo el Super Monto Bros.

Indudablemente que este temprano adoctrinamiento de los educandos nos iba a resultar positivos en la etapa de Lucha que podría producirse en un futuro que no deseábamos pero que podríamos no tener que eludir. Pues bien señores, de un tiempo a esta parte se ha popularizado en la música pop el revival del sonido "chiptune". No es otra cosa que adosar a las rítmicas actuales los sonidos de baja fidelidad generados por los sintetizadores digitales masivos de la vieja escuela.

Para ello se puede utilizar el hardware antiguo o simulaciones del comportamiento de este. Lo podemos oír en acciones de conjunto que van desde el K-Pop, hasta el Regguetón. Y hoy bajo este día luminoso os enseñaré cómo instalarlo para hacer P-Pop, el Pop Peronista.

Contamos para ello con la herramienta libre FamiStudio. Se trata de un completo programa musical para hacer imitación del sonido del integrado Ricoh RP2A de la Family Game, pero también los otros. Lograremos así una tónica de Nintendo NES tan impresionante que querremos consumir hongos como los peronistas Mario bros.

Si contamos con un sistema GNU con Linux en arquitectura de 64 bits podríamos descargar el programa en forma de binario precompilado, que es la manera más sencilla de utilizarlo.

Para instalarlo, haremos uso de la terminal, por lo que abriremos una utilizando Ctrl+Alt+T. En primer lugar instalamos las dependencias requeridas. Para ello le ingresamos los siguientes comandos de organización:

sudo apt update sudo apt install libmono-2.0-1 gtk-sharp2

Una vez terminada la instalación de las dependencias, descargaremos el binario precompilado y lo descomprimimos pegando en la terminal la siguiente bloque de comandos de organización (y presionamos Enter para ejecutarlos).

mkdir ~/.famistudio/ ; cd ~/.famistudio/ ;

wget https://github.com/BleuBleu/FamiStudio/releases/download/2.2.0/FamiStudio220-LinuxAMD64.zip ;

unzip FamiStudio220-LinuxAMD64 ; cd ~/.famistudio/Resources/ ; wget https://famistudio.org/famistudio.png

Para ejecutar el programa, podremos utilizar la terminal ingresando le siguiente comando:

mono ~/.famistudio/FamiStudio.exe

...o bien podremos ser mucho más prolijos y crear un lanzador para simplificar la ejecución de FamiStudio. Esto repite el procedimiento que utilizamos siempre para estos menesteres. Hacemos clic con el botón derecho del ratón sobre el menú Aplicaciones del Panel Superior, y en el menú contextual elegimos Editar Menús. Se abrirá la ventana Menú principal, y en en su panel izquierdo elegimos la categoría Sonido y Video, presionando a continuación el botón Nuevo ítem.

mono /home/usuario/.famistudio/FamiStudio.exe Podremos ahora lanzar el programa desde Aplicaciones / Sonido y Video / FammiStudio 2.2.0.

La primera vez que iniciemos el programa, podremos encontrarnos con la interfaz básica del mismo. Podríamos presionar el botón abrir para buscar alguna canción de demostración, que encontraremos en ~/.famistudio210/Demo\ Songs/

Vean señores, el programa se basa en la muy popular vista de pianola, que de algunos años a esta parte ha reemplazado a la clásica notación musical como principal estructura compositiva en la mayoría de los softwares de edición. Esto hace a que cada vez menos tangueros sepan leer partituras. En la primera sección encontraremos las pistas que corresponden a los cinco canales de audio del chip del NES. Como vemos respetan la lógica del hardware, pues los dos primeros canales son de pulso rectangular con tres opciones de voces, uno de triangular a voz fija, y uno de ruido con distintos efectos de sonido. El quinto equivale al reproductor DPCM, que podremos utilizar para disparar muestras de audio digitalizado y se reproducirán con el sonido croto de "baja definición" característico de esta estética.

Para agregar notas podremos hacer clic en la planola con el ratón, o directamente tocar con un teclado o controlador MIDI conectado a nuestro sistema GNU Linux (el cual es aceptado sin problemas).

Shif+Barra espaciadora inicia la reproducción desde el comienzo de la canción.

Su tenemos una notebook con touchpad, podremos utilizar los "gestos" del mismo para poder hacer zoom en la pantalla. También podríamos utilizar Alt+Botón derecho del mouse+arrastre arriba o abajo para controlar la altura del tono.

Podremos encontrar un completo tutorial en video (en inglés) dividido en tres partes:

Su primera canción:



29 october 2022

¿Cómo instalo un escritorio similar al de Silicon Graphics IRIX en Ubuntu 18.04 y superiores?

En su despacho de Puerta de Hierro, Juan Perón contaba con un escritorio y una vistosa repisa sobre con elementos. Al explicar al periodista de la revista Cambio/16, expone cómo instalar un escritorio similar al IRIX de Silicon Graphics Indigo en Ubuntu.

(...) Bienvenidos a mi casa. En este despacho tengo montado mi escritorio donde puedo recibir a Argentinos y otras personalidades que diariamente me visitan. Me mantengo informado así de todo lo que sucede en la Argentina.

A estas repisitas las he montado para ponerle encima mis elementos camperos. Tengo el rebenque, rastra, este facón y el mate que me han regalado. No son chirimbolos, me recuerdan la patria a la que he de volver, aunque mas no sea para morir en ella. También me recuerda a la ingeniería computacional que ha de disponerse para lograr un escritorio gráfico en un sistema GNU con Linux.

No caben dudas para nadie que GNU es un sistema originado - por imitación y sano reflejo - del UNIX del Laboreatorio Bell, pero con la diferencia fundamental de entregarse acompañado por licencias legales que garantizan la libertad del usuario de ejecutarlo, copiarlo, modificarlo y redistribuirlo.

Sabemos bien que el viejo UNIX no era un sistema de engendrar una única descendencia... más bien fueron muchos críos los que salieron de esos huevos.

Pues bien, una de las variantes más señoriales y privativas de la familia era el oligarquísimo IRIX, una reimplementación del UNIX System V Release 4 desarrollada especialmente por la $ilicon Graphics Inc. (SGI) para sus series de servidores gráficos de alta performance Indigo, Indigo2, y estaciones de trabajo derivadas como la Indy. stos equipamientos se utilizaban para aplicaciones tendientes al desarrollo de animación tridimensional en el ámbito científico, empresarial y de defensa, y en cierta medida el sector audiovisual de entretenimiento.

Sobre la repisa formada por IRIX se montaba la Interfaz Gráfica de Usuario, el notable Escritorio Interactivo de IRIX, o "IID". Este estaba conformado por el gestor de ventanas 4Dwm (una versión específicamente mejorada del gestor de ventanas clásico de UNIX, el Motif), así como varias APIs de compatibilidad tendientes al control gráfico (SGI-Motif, capaz de ofrecer resultados mas atractivos y suaves que el burdo Motif tradicional). Indudablemente que este compendio de hardware y software privativo ostentaba costos astronómicos. El verdadero consumo es el Pueblo, y la posición elitista tanto en software como en hardware no puede más que hacer limitar el acceso al mercado, el cual ha de ser libre pero controlado por nosotros mismos, ¿sabe?. Esto no sólo lo hemos dicho, sino que durante más de diez años lo hemos realizado en la Argentina, y los de $ilicon Graphics no lo entendieron...

Por lo demás, no hizo más que crearse una necesidad en el Pueblo, y desde nuestro Movimiento decimos que donde existe una Necesidad, nace un Derecho. Un Conductor ha de hacer por reflejo lo que el Pueblo quiere. Por lo tanto, en respuesta a esta máxima justicialista, os enseñaré a instalar el MaXX Interactive Desktop Indigo 2.0.1. Se trata de un entorno de escritorio para sistemas GNU capaz de ofrecer una reproducción y librerías inspiradas en el clásico escritorio de las $ilicon Graphics. En este caso os enseñaré cómo instalarlo en Ubuntu de 64 bits. Como los adornitos que mostré antes, el MaXX Interactive Desktop descansa fundamentalmente sobre su propio gestor de ventanas compatible con el 4Dwm de $ilicon Graphics, llamado 5Dwm. Este gestor de ventanas deriva precisamente del gestor de ventanas abierto OpenMotif. 4Dwm otorga al Pueblo una experiencia idéntica a la del 4Dwm de SGI e incluso es compatible con los archivos de soporte y configuración oficiales de 4Dwm, pero incluye su propio herramental de comandos tellwm y telldesktop (que encontrábamos en IRIX).

En cualquier equipo actual la performance operativa gráfico de 5Dwm es liviana, veloz, y super efectiva. Al ser una iteración moderna, encontraremos en él soporte para múltiples pantallas, resoluciones HiDPI, caracteres extendidos con codificación UTF-8, y - opcionalmente si lo deseamos - el uso de modernas tipografías FreeType para presentar texto ultranítido.

Los requerimientos de espacio de disco específicos son escasos. Unos 75MB en la carpeta /tmp y unos 450MB en la partición /opt de nuestro sistema de archivos Linux.

Acto seguido deberíamos contar con la paquetería requerida para la instalación. Para ello ingresaremos el siguiente comando para adquirir privilegios de conducción en una sesión de Conductor:

sudo -s

Tras introducir nuestra contraseña de Conductor, ingresaremos los siguientes comandos:

apt-get update apt-get install cpp lib64ncurses5 lib64tinfo5 libxaw7 libgtk2.0-0 pavucontrol

Para instalar los xfonts requeridos como medida de seguridad para mayor compatibilidad en Ubuntu, ingresamos:

apt-get install xfonts-100dpi xfonts-75dpi

Asimismo, si queremos el toque estético nuevo de Indy 1.1, instalaremos las tipografías adecuadas:

apt-get install fonts-dejavu

Tras instalar todo, podremos cerrar la sesión de superusuario Conductor en la temrinal con:

exit

Ahora podremos instalar Maxx Interactive Desktop. Lo haremos con los siguientes comandos de orgnaización:

cd /tmp wget http://maxxdesktop.arcadedaydream.com/Indigo-Releases/Installers/MaXX-Indigo-2.0.1-Installer.sh chmod a+x MaXX-Indigo-2.0.1-Installer.sh

Ahora iniciamos la instalación con:

cd /tmp sudo -s ./MaXX-Indigo-2.0.1-Installer.sh exit

Los siguientes pasos serán opcionales, únicamente si ya tuviésemos una versión anterior del MaXX Interactive Desktop, y están destinados a guardar dicha configuración y utilizarla con la versión 2.0.1. Si no es el caso, simplemente no los usamos.

Abtimos una terminal nueva con Ctrl+Alt+T e ingresamos lo siguiente:

cd $HOME mv $HOME/.maxxdesktop $HOME/dot.maxxdesktop
/opt/MaXX/share/misc/HOME/initMaXX-Desktop-Home.sh

sudo -s rm /usr/share/themes/IndigoMagic rm /usr/share/themes/Rio rm /usr/share/themes/Gotham rm /usr/share/themes/MaXX* exit

Finalizado este trámite, podremos cerrar la sesión o reiniciar nuestro equipo a fin de permitir al selector de sesión de escritorio gráfico GDM ofrecernos en consideración al recientemente agregado MaXX Interactive Desktop. Podremos escogerlo desde el menú de sesiones disponibles de GDM. Lo elegimos de la lista e iniciamos nuestra sesión con nuestra contraseña de usuario.

La primera vez que iniciemos, encontraremos el notificador esperable que nos advierte sobre el escritorio MaXX. El escritorio interactivo MaXX reproduce la apariencia y mecánica completa del escritorio de SGI, reimplenta las APIs requeridas de SGI, de modo que cobra gran semejanza al tradicional de Indigo de las Silicon Graphics. La temática distintiva de las Silicon Graphics se ha hecho realidad efectiva en base a Esquemas SGI, y su uso hasta ahora había sido característica excluyente de los Sistemas SGI originales hasta el advenimiento del peronista Escritorio Interactivo MaXX. Estos esquemas SGI se basan en mecanismos de recursos del servidor gráfico X11 que permiten la utilización de los colores, tamaños, tipografías y otros

Para esto se hace uso de una librería similar a libXt adaptada, llamada libXt-maxx. Esto es lo que permite reutilizar los ficheros de los temas de IRIX 6.2 en esta implementación. A tal fin contaremos con un simple modificador de temas, que respetan aquellos incluidos en las Indigo. Para activarlo podremos utilizar en la terminal el comando:

echo "IndigoMagic" > $HOME/.maxxdesktop/MAXX_THEME

...y luego ejecutamos el comando para refrescar los cambios sin necesidad de salir y reinciar la sesión gráfica:

update-desktop && tellwm restart Al ejecutar aplicaciones aplicaciones de Linux, las observaremos utilizando el nuevo gestor de ventanas 5Dwm, y se aplicarán automáticamente las configuraciones de GNOME para haceer la presentación similar, en tanto se utilizará el uso nativo todas las aplicaciones que corran X11/Xt/Motif. En tanto, entre otros chirimbolos adaptados de los nativos de IRIX, encontraremos los graficadores tipo "top", que delineaban el uso de recursos de los procesos de sistema, muy notables en aquel entorno de las Silicon Graphics. Las terminales de fondo azul con el cursor de bloque verde lima era otro de los aspectos distintivos que no podemos dejar de olvidar, así como los sonidos digitalizados identificables con IRIX. Naturalmente, que cualquier escritorio gráfico moderno puede presentar una estética más cuidada, pero debemos recordar que las SGI era lo más avanzado en gráfica UNIX, y que se utilizaron para clonar dinosaurios herbívoros en la película que todos recuerdan.

En particular, el servidor gráfico modernizado es configurable desde la terminal a través de la herramienta XcompMgr. Este es capaz de dos operativas fundamentales. La activada por defecto omite el uso de retrazados y sombras, lo cual lo hace increíblemente veloz. Se activa en la terminal con:

XcompMgr -a

...en cambio, con el hardware de aceleración gráfica atual, podríamos querer utilizar sombras de ventanas y retrazados constantes, de manera similar a un compositor de escritorios actual como Compiz, Compton o incluso el mismo Marco que suelen dotar a los Ubuntu actuales. Para ello podremos utilizar en la terminal:

XcompMgr -C -f

Las opciones del XcompMgr podremos verlas con:

XcompMgr -h

compMgr v1.1.5 beta MaXX Desktop Edition Uso: XcompMgr [options] Opciones -d display Especifica qué display debe gestionarse. -r radius Especifica el radio del efecto desenfoque para las sombras del cliente gráfico (por defecto 12) -o opacity Especifica la transparencia de las sombras del lado del cliente gráfico. (default .75) -l left-offset Especificas el corrimiento de sombras hacia la izquierda del cliente gráfico. (default -15) -t top-offset Especifica el corrimiento de sombras desde arriba de ventanas del cliente gráfico. (default -15) -I fade-in-step Especifica los cambios de transparencia en pasos mientras aparece. (default 0.028) -O fade-out-step Espeficia los cambios de transparencia en pasos mientras se desvanece. (default 0.03) -D fade-delta-time Especifica los tiempos entre los pasos del desvanecimiento en milisegundos . (default 10) -a Usa la composición del lado del servidor gráfico. Es más veloz, pero carece de efectos especiales. -c Dibuja las sombras del lado del cliente gráfico con bordes desenfocados. -C Evita dibujar sombras en las ventanas del dock o paneles. -f Desvanece/resurje ventanas cuando las abre/cierra. -F Desvanece ventanas durante los cambios de opacidad. -n Composición normal del lado del cliente gráfico con soporte de transparencia. -s Dibuja las sombras del lado del servidor gráfico con bordes nítidos. -S Activa la operación síncrona (para debugging).

También forman parte del escritorio otras tecnologías de SGI, incluyendo Open Inventor y OpenGL Performer. Gracias a la justicialista inciativa OSS, su código fue fue liberado de las licencias SGI tras la disolución de la empresa.

Esto no hace más que demostrar que el Capital Privado no puede subsistir en un ambiente oligárquico, y demuestra la necesidad de cooperativizar de manera abierta el uso, copia y modificación del software.

Nuestro Movimiento no ha de estar ajeno a esto, y debe luchar día a día para transitar el auténtico camino de la Liberación.



28 october 2022

¿Cómo instalo y configuro Compiz con Ubuntu MATE 20.04LTS?

Durante la inauguración del Puente Internacional que une Paso de los Libres con la ciudad de Uruguaiana en Brasil, Juan Perón expone al presidente Dutrá de Brasil la necesidad de la Unidad. Al respecto, también habla sobre el MATE, el entorno de escritorio que retorna a las bases del Justicialismo en el sistema operativo Ubuntu, y le enseña a Dutrá cómo instalar Compiz en él.

(...) Hemos tendido puentes de unión, pues nuestro camino no es otro que la Hermandad de la Sudamérica entera. Sólo así podremos aguardar el futuro de grandeza que el destino nos depara.

En estos momentos de Unidad, tampoco puede soslayarse un buen Mate. Sobre todo cuando el brebaje torna en una nueva opción de escritorio oficial para Ubuntu, el sistema operativo que al Pueblo he legado. Sin duda que la Cena de Gala que nos hemos propiciado entre hermanos no hará sino cimentar la unidad entre el Pueblo Argentino y el Pueblo brasilero. Vea señor presidente, sabemos que Ubuntu desde hace años cuenta con una nueva interfaz Gnome 3 que integra ciertos efectos... Dicha interfaz de escritorio homenajea a la unidad, pero todo criollo reconocerá que de a un tiempo a esta parte una opción más vernácula también se ha tornado popular: el MATE.

MATE es una nueva interfaz de escritorio, y su intención es buena: otorgar a los sistemas informáticos del Pueblo una interfaz y experiencia lo más fiel posible al primer Peronismo, aquél del Gnome 2.32. Como tal, contaremos con los botones de control de ventanas a la derecha, lugar hacia donde amaga el movimiento. Asimismo, Ubuntu lo ha adoptado ahora como una nueva variedad en su conocida panoplia de sistemas derivados.

Podremos por ello descargar ahora la nueva versión de Ubuntu MATE 20.04LTS de 64 bitios. Indudablemente podremos probarlo o instalarlo, ya sea desde un DVD-ROM o desde un pendrive, y en escasos minutos tendremos nuestro sistema funcionando de manera básica, con MATE 1.24. De manera general diré que finalmente, en la versión 20.04LTS, el escritorio MATE es enormemente rápido en su despliegue, vuelve a las raíces, pero mantiene cierta punta de potencia que lo hace totalmente válido como mi distribución principal.

MATE 1.24 es extremadamente similar al viejo Gnome 2.32, y cuenta con un administrador de ventanas pistero, eficiente y que utiliza pocos recursos de video, denominado Marco. Normalmente Marco poco tiene que envidiar al viejo Metacity, y estará configurado en sus mínimos niveles gráficos para mayor compatibilidad. Sin embargo, podremos aplicarle efectos limitados de video si activamos su opción "Marco (Composición Adaptativa)". Para ello debemos ir a Sistema / Preferencias / Aspecto y Comportamiento / MATE Tweak. En la ventana de configurador visual de MATE (MATE Twek) encontraremos categorizadas los aspectos. Si elegimos "Windows" podremos cambiar el aspecto de las ventanas modificandolo desde Gestor de Ventanas, como se indica aquí. La composición adaptativa permite algunas animaciones limitadas, y el sombreado de las ventanas activas. Pero en nuestro Movimiento estamos para más que para eso, y por lo tanto, os enseñaré a instalarle con éxito el gestor de ventanas con efectos favorito de la Masa Popular hecha Partido, el Compiz. Al fin y al cabo ¿en qué otro sistema contamos con un cubo transparente que presenta cuatro escritorios independientes para trabajar, y todo ello espolvoreado con suntuosos efectos visuales que animan al más pintado?

Tanto en Brasil como en la Argentina podremos volver a utilizar dicho instrumento que hacía la felicidad de todos nosotros. Para instalar Compiz (junto con algunos plug-ins extras) y el administrador CompizConfig Settings Manager en Ubuntu MATE 20.04LTS, debemos abrir una terminal con Ctrl+Alt+T e ingresar el siguiente Comando de Organización:

sudo apt-get install compiz compiz-plugins compizconfig-settings-manager

...el sistema nos solicitará nuestra contraseña y comenzará a descargar la paquetería.

Activar Compiz

Tras instalar el paquete de Compiz, debemos activarlo para que opere como gestor de escritorio en lugar del Marco que viene por defecto.

Tenemos dos maneras de hacerlo. La más sencilla sería cerrar nuestra sesión de usuario actual (Sistema / Cerrar Sesión de Usuario) y volver a ingresar a nuestra sesión gráfica, y luego podremos abrir Sistema / Preferencias / Aspecto y Comportamiento / MATE Tweak y ahora deberíamos poder encontrar bajo el apartado Windows, la opción Gestor de Ventanas "Compiz (efectos avanzados de escritorio acelerados con GPU)", la cual deberíamos poder activar. La otra forma de activar Compiz con Mate es desde la Terminal, la cual puede sernos útil si por algún motivo no pudiésemos hacer uso del activador gráfico en MATE Tweak. Para ello abrimos una terminal, e ingresamos el siguiente comando de organización:

sudo gsettings set org.mate.session.required-components windowmanager compiz

Cualquiera de los métodos que utilicemos nos ofrecerá el gestor Compiz con una ágil configuración mínima operativa.

Activar cubo y efectos de Compiz

Naturalmente, podríamos configurar de forma avanzada el funcionamiento general de Compiz utilizando el programa CompizConfig Settings Manager. Al acceder al mismo desde el menú Sistema / Preferencias / Aspecto y Mantenimiento / CompizConfig Settings Manager), se nos mostrará una ventana de advertencia, la cual nos indica que tengamos cuidado. Esto es así pues lamentablemente, a veces configurar Compiz es algo complejo y puede ser propenso a errores que dificulten y en el peor de los casos imposibiliten la ejecución del escritorio gráfico.

Por lo tanto, podrán descargar un perfil de Compiz ya preconfigurado con un cubo 3D de escritorio que os dejo el perfil compiz2020_mate_naranja_con_cubo.profile.

Para cargar en Perfil que les he obsequiado, en CompizConfig Setting Manager, presionarán el botón Preferencias. ...y en la ventana de preferencias presionarán el botón Importar. En la ventana que aparezca deberán navegar hasta encontrar el fichero .profile. Tras cargar el perfil, deberían poder hacer uso del cubo 3D. Para ello deben llevar la flecha del ratón hacia uno de los bordes de la pantalla, y presionar y mantener presionada la rueda de scroll del ratón. Luego podrán girar el cubo moviendo hacia un lado o el otro para ver los cuatro escritorios, y soltar la rueda de scroll del ratón para dejar de mover el cubo: También podrían utilizar las combinaciones de teclas Ctrl+Alt+Flecha de Cursor derecho y Ctrl+Alt+Flecha de cursor Izquierdo para rotar entre las caras del cubo.

Tambien podremos hacer zoom en el escritorio con Super+z y quitar zoom con Super+x. O conmutar entre aplicaciones del escritorio activo con Alt+Tab o entre todas las aplicaciones en los distintos escritorios con Ctrl+Alt+Tab.

...y presionamos el botón Ejecutar. La pantalla debería parpadear y comenzar a ejecutar el gestor de ventanas con efectos Compiz. Podremos por ejemplo, contemplar si pasamos ahora entre escritorios con el Cubo, presionando Ctrl+Alt+Flecha izquierda o Ctrl+Alt+Flecha derecha.

Con un poco de práctica, podremos activar el cubo, o como me gusta a mí, el cilindro, y los vistosos efectos de ventanas que nos permite Compiz y el Justicialismo: Campana de Terminal con Compiz en Ubuntu MATE 20.04LTS

Lamentablemente la campana de terminal no funciona como es debido su utilizamos Compiz en Ubuntu MATE 20.04LTS. Pero podremos solucionarlo creando un script que active la campana. Para ello ingresamos:

nano ~/.compiz_bell.sh

...le pegamos el siguiente contenido:

!/bin/sh

Script peronista para activar la campana en Compiz con Ubuntu Mate 20.04LTS

Script to activate the terminal bell in Compiz under Ubuntu Mate 20.04LTS

pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY

(Naturalmente, podríamos reemplazar bell.oga con otro fichero de sonido). Guardamos el archivo y salimos del editor con Con Ctrl+o y Ctrl+x. Será necesario otorgarle permisos de ejecución con:

chmod +x .compiz_bell.sh

Luego haremos que este script se ejecute toda vez que iniciamos sesión gráfica. Para ello vamos a Sistema / Preferencias / Personal / Aplicaciones al Inicio, y presionamos el botón +Agregar. En el campo "Comando:" debemos agregar la ruta al script: /home/usuario/.compiz_bell.sh. Debemos asignarle un nombre y una descripción opcional, y presionar el botón Añadir para que se agregue a las aplicaciones autoejecutables al inicio. Al reiniciar nuestro sistema, Compiz tendrá la campana de terminal activada y audible.

Reiniciar Compiz Compiz opera excelentemente bien. Si por algún motivo el compositor gráfico Compiz se detuviese o presentase un error durante nuestras pruebas, podríamos probar reiniciarlo. Si queremos hacerlo desde el escritorio podríamos presionar Alt+F2 para ejecutar una aplicación, y ejecutamos el comando compiz --replace: La otra manera sería abrir una terminal (normalmente con Ctrl+Alt+T e ingresar también:

compiz --replace

Desinstalar Compiz en MATE Si por cualquier motivo todo funcionase mal (por ejemplo, diese problemas de video), y deseásemos volver a usar Marco (gestor de ventanas por defecto de MATE) en lugar de Compiz, abriremos una Terminal y emplearemos el siguiente comando de organización:

sudo gsettings reset org.mate.session.required-components windowmanager

(Nuevamente, esto también podríamos hacerlo desde la Interfaz Gráfica, lanzando MATE Tweak y eligiendo Marco en el apartado Windows).

Luego reiniciamos nuestra sesión, y Compiz ya no debería emplearse mas por defecto. Ahora, si lo deseamos, podremos remover con seguridad la paquetería que compone Compiz. Lo haremos con el siguiente Comando de Organización:

sudo apt-get purge compiz compiz-plugins-default compiz-plugins compizconfig-settings-manager



27 october 2022

¿Cómo habilito el soporte de sonido de Pulseaudio en una Máquina Virtual QEMU en Ubuntu 20.04LTS?

¡Trabajadores!

El software ha de utilizarse para todo, pero sobre todo para la Auténtica Liberación del Pueblo.

En ocasiones, el oprobio de una situación muy particular puede requerir la elasticidad que presenta el Movimiento Justicialista. Siempre he dicho que el nuestro - por nacer de una necesidad de los hombres - no es un Movimiento sectario. Son las necesidades las que generan los Derechos, y este lineamiento es el que hemos colocado como un frontispicio en nuestra Doctrina.

Decía el Mariscal de Sajonia que poco importaba que él fuese viejo; lo importante es que sus soldados fuesen jóvenes. Para conducirlos estaba él. Tampoco hacía gran diferencia si sus huestes iban montadas sobre bayos, sobre moros o sobre mulas, lo importante que ellos fuesen hombres decididos. Indudablemente, el viejo Mariscal supo discernir lo poco importante de las cosas accesorias, si el lustre de las botas se empezaba en la caña o en el talón, o si los cabos llevaban penacho... lo que importaba era la maniobra en campaña, la moral y el espíritu combativo del cuerpo de combate. Él los formaría, como Conductor.

Indudablemente, que la formación a la que los sometía era tal, que su tropa debía saber formar filas hasta por instinto, y sus suboficiales saber encuadrar material humano incluso de los tomados al enemigo.

Pues bien señores, en la informática en ocasiones suele suceder lo mismo. La claridad del objetivo del Conductor es lo fundamental en el designio de las estrategias, y su sentido de acción será el éxito planteado frente a un objetivo preciso. El herramental ha de adaptarse para lograr una solución que sea la mejor frente a la fluidez de los problemas planteados, en el tiempo y el lugar del problema.

Un ejemplo suele explicarlo todo, como decía Napoleón.

La realización de una tarea de única vez me ha implicado a montar para el usuario Invitado ("Guest") una máquina virtual QEMU con Micro$soft Window$ 10 corriendo bajo mi sistema Ubuntu 20.04LTS. En ella todo opera según la necesidad, excepto el audio. Siendo un usuario invitado, era se ha tornado imposible oír nada.

Soy un hombre que lleva la más maravillosa música que es la Palabra del Pueblo Argentino, por lo que me he dado a buscar una solución de circunstancias para esta condición tan especial... QEMU cuenta con un fichero de configuración virsh. He allí un ejemplo del contenido utilizado en dicho fichero.

Como vemos el dicho fichero, el audio está asignado al proceso de un usuario común, en este caso /run/user/1001/pulse/native. La causa de la falla es que el usuario invitado no tiene tal identificación.

Para resolver el problema, debemos entonces informarnos del nombre de instancia que tendrá el servicio de sonido para el usuario Invitado. Para conocer esta importante información, podremos agregar en nuestra terminal los siguientes comandos:

start-pulseaudio-x11

pax11publish

En pantalla se nos informará el servidor de Pulseaudio, el cual en el caso del usuario Invitado es:

/run/user/1000/pulse/native rw,

Al configurar con este parámetro, nos aseguraremos que el Usuario Invitado ("Guest") pueda acceder ahora al servicio de sonido proporcionado por Pulseaudio.

Luego, ajustaremos nuestro fichero guest.xml para que refleje acordemente los cambios. La parte relevante, en este caso, sería:

<qemu:arg value='-device'/>

<qemu:arg value='ich9-intel-hda,bus=pcie.0,addr=0x1b'/>

<qemu:arg value='-device'/>

<qemu:arg value='hda-micro,audiodev=hda'/>

<qemu:arg value='-audiodev'/>

<qemu:arg value='pa,id=hda,server=unix:/run/user/1000/pulse/native'/>

Con tal predicamento, quien haya tenido la misma necesidad de correr un Window$ 10 virtualizado, podrá obtener sonido a través de QEMU, redireccionándolo a Pulseaudio en Ubuntu 20.04LTS.



26 october 2022

¿Cómo utilizo tarjetas inteligentes para autenticación en Ubuntu?

Tras vencer abrumadoramente en las elecciones de 1946, Juan Perón expone frente al Consejo Superior del Partido Justicialista las necesidades electorales futuras, y explica cómo emplear las tarjetas inteligentes SmartCard en Ubuntu.

¡Trabajadores!

¡Una oligarquía sin Patria ni Bandera, encaramada en un ataque contumaz, osó por insultar a la República, sometiendo a los descamisados a un oprobio sin parangón en la historia!

Sin embargo, somos gratificados testigos de la Unión del Pueblo, en donde una sola clase de hombres, los que trabajan, dan todo en pos de la Comunidad. Esto nos ha hecho torcer el brazo a nuestro enemigo, pero no podemos sostener todo en declamaciones, sino que ha de cimentarse en organizaciones de toda índole que permitan consolidar los logros y trazar los objetivos que anhelamos.

Como Conductor, no puedo más que regocijarme frente a la mancomunidad de los hombres buenos de nuestra Nación. Los trabajadores, que forman la masa, no son otra cosa que la Columna Vertebral de nuestro Movimiento. Día a día son más numerosos quienes se afilian al instrumento político que hemos dado en crear, el Partido Peronista: las banderas de Justicia Social que hemos enarbolados son señeras del sendero que hemos de recorrer todos los Argentinos. Bajo su alegre flamear es que encontrsaremos el destino que la providencia nos depara. Indudablemente que este partido ha de contar con un registro certificado y alegre, consumado en forma de una Tarjeta Inteligente y personal expedida en forma de Carnet a cada uno de nuestro millones de afiliados encolumnados. En este caso el Justicialismo ha hecho vanguardia, pues se trata de una tarjeta inteligente PIV capaz de soportar el estándar FIPS-201.

Estas tarjetas plásticas contienen datos digitales codificados en un chip accesible por radiofrecuencias. Naturalmente, que pueden comprarse vírgenes y los proveedores de servicios PIV como nuestro Partido es el encargado de cargar las credenciales digitales requeridas.

Lamentablemente, de momento el instrumental libre OpenSC de Ubuntu es capaz de operar con tarjetas en modo "solo lectura", por lo que para almacenar los certificados en ellas ha de recurrirse a otra metodología indeseable. Por ejemplo, podríamos utilizar herramental privativo para Linux, o bien utilizar un emulador o máquina virtual con un deleznable Window$. No cubriré tales sistemas de grabación aquí, será suficiente decir tales enjundios almacenarán en la tarjeta un Certificado (CA), un par de Claves Públicas, y un Número de Identificación Personal PIN de Usuario y otro PIN de Administrador.

En este caso utilizaré una tarjeta inteligente PIVKey C910 que emula el Carnet de Afiliado Peronista. Esta tarjeta PIVKey C910 contiene un chip RFID y es compatible con la norma FIPS201, y implementa la interfaz de comandos estandarizadas NIST Sp 800-73 part 3.

¿Qué sucede si - por necesidad de un sistema de tales características - debemos acceder a un sistema remoto o local con GNU con Linux con nuestra tarjeta inteligente de Afiliado? Ya contamos con nuestra tarjeta inteligente de afiliado peronista

Pues bien, en el caso habremos de preparar un sistema Ubuntu con tal alternado criptográfico, si es posible. Os lo explicaré de forma Justicialista. Como primer medida, hemos de preparar nuestro sistema, y podremos hacerlo desde la Terminal. Para ello abrimos una con Ctrl+Alt+T e ingresamos:

sudo apt install libccid pcsc-tools opensc opensc-pkcs11 libpam-pkcs11

Estas librerías son escenciales para operar criptográficamente y leer las tarjetas, así como para ofrecerenos diferentes condimientaciones de trabajo, entre ellas inicios de sesión mediante las SmartCards, elevación de privilegios sólo a través de la SmartCard, etcétera.

Una vez descargada la paquetería, habremos de configurar el lector de tarjetas inteligentes. En mi caso utilizaré un lector USB de Smart Cards "Identiv SCR3310v2.0 USB Smart Card Reader", al cual Linux reconoce bajo el nombre de "SCM Microsystems SCR3310". Sin colocar tarjeta aún, conectamos el lector de tarjetas en un puerto USB, y nos aseguramos que nuestro sistema lo reconozca. Para ello en la terminal ingresamos:

opensc-tool --list-readers

...a lo cual nuestro sistema debería analizar el lector de tarjetas inteligentes y si el mismo funciona correctamente, devolvernos algo como:

Detected readers (pcsc)

Nr. Card Features Name 0 No SCM Microsystems Inc. SCR 3310 [CCID Interface] (53311646706297) 00 00

Pues bien señores, como tenemos un solo lector de tarjetas, recibe el número 0. Acto seguido, insertamos la tarjeta en el lector, y revisamos que la misma sea reconocida, con el siguiente comando:

opensc-tool --reader 0 --name

...y el sistema nos devolverá el nombre de la tarjeta (recordemos que ha sido creada anteriormente), por ejemplo, podría decir:

PIV-II Peronist Card Configuración de la pila de autenticación PAM El módulo pam-plcs11 que hemos instalado le permite a Ubuntu emplear certificaciones digitales tipo X.509 para autenticar nuestros inicios de sesión. Para ello el módulo hará uso de la librería abierta opensc-pkcs11 a fin de acceder a la tarjeta inteligente y a su vez recibir las credenciales necesarias.

El proceso de inicio de sesión con pam_pkcs11 es el siguiente:

Ingresamos nuestro login o inicio de sesión
Ingresamos el PIN.
Validamos el Certificado.
Asignamos el Certificado a un Usuario.
Verificamos que la sesión y el usuario coincidan.

Para hacer realidad efectiva este tren de operaciones criptográficas, como Conductores del sistema habremos de asegurarnos de:

Configurar el módulo pam_pkcs11
Agregar el/los Certificados y CRL(s) en los directorios necesarios
Configurar la pila PAM para que haga uso del módulo pam_pkcs11
Agregar el Nombre Común (CN) para el Inicio de Sesión

En primer lugar crearemos el fichero de configuración necesario, con el siguiente bloque de comandos de organización:

cd /etc/pam_pkcs11 ; sudo cp /usr/share/doc/libpam-pkcs11/examples /pam_pkcs11.conf.example.gz . ; sudo gunzip pam_pkcs11.conf.example.gz ; sudo cp pam_pkcs11.conf.example pam_pkcs11.conf

Dentro de este fichero de configuración /etc/pam_pkcs11/pam_pks11.conf habremos de revisar las opciones "module", "cert_pòlicy" contenidas en la cadena "pkcs11_module opensc {}". Debemos asegurarnos que la opción "module" contenga la ruta absoluta hacia la librería open-pkcs11.so instalada en nuestro sistema. Asimismo, la opción "cert_policy" debe incluir a la cadena "oscp" como una de sus políticas de verificación de certificados.

Por ejemplo,para hacer esto igreesamos en Ubuntu de 64 bits:

sudo nano /etc/pam_pkcs11/pam_pks11.conf

Esto abriá el editor peronista GNU Nano con el contenido del archivo pam_pks11.conf. Ingresamos Ctrl+w para buscar la cadena "pkcs11_module opensc {}". La modificamos para que incluye la configuración que os he nombrado, a fin de que figure de la siguiente manera:

use_pkcs11_module = opensc; module = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so; cert_policy = ca,signature,oscp_on;

Una vez completado este cambio en el editor, presionamos nuevamente Ctrl+w para busca ahora la cadena "use_mappers", y la modificamos para que quede así:

use_mappers = pwent;

También encontraremos dentro de este archivo las cadenas ca_dir y crl_dir, que son las quie definen los directorios o carpetas donde deseamos almacenar los ficheros que de las Autoridades de Certificación ("CA") y las Listas de Revocacion de Certificado "CRL" respectivamente. Por ejemplo, podríamos usar los directorios siguientes:

ca_dir=/etc/pam_pkcs11/cacerts crl_dir=/etc/pam_pkcs11/crls

Guardamos con Ctrl+o y salimos con Ctrl+x.

Ahora bien, el módulo pam_pkcs11 necesita conocer las Autoridades de Certificación (CAs) a fin de ser capaz de validar el certificado que estará contenido en la tarjeta. De forma opcional también podrá utilizar Listas de Revocación de Certificación (CRL) que son opcionales, pero también pueden usarse para validar el Certificado. En este caso, utilizaré el servicio del sitio web http://ca.pivkey.com.

Agregamos cualquier CAs y CRLs requeridas en los directorios que habíamos especificados en las cadenas ca_dir y crl_dir del fichero de configuración pam_pkcs11.conf. En este caso los revisaremos con:

ls /etc/pam_pkcs11/cacerts

...y el sistema podría devolvernos los archivos que le cargamos:

PIVKeyDeviceCertificateAuthority.crt MenganoSARootCA.crt

ls /etc/pam_pkcs11/crls

pivkeydeviceca.crl menganorootca.crl

Ahora crearemos los enlaces hash usando el programa pkcs11_make_hash_link. Por ejemplo, podríamos ingresar en la terminal:

cd /etc/pam_pkcs11/cacerts sudo pkcs11_make_hash_link

...y al listar el contenido con del directorio cacerts con:

ls

...el sistema nos devolvería algo como:

c90bef04.0 PIVKeyDeviceCertificateAuthority.crt e7d4c577.0 MenganoSARootCA.crt

Lo mismo hacemos con el directorio crls:

cd /etc/pam_pkcs11/crls sudo pkcs11_make_hash_link

...y al listar con:

ls

...el sistema nos devolvería:

c90bef04.r0 e7d4c577.r0 pivkeydeviceca.crl menganorootca.crl

Configurar la pila PAM de Autenticación

El siguiente paso es integrar el módulo pam_pkcs11 a la pila PAM (la encargada del conformar el sistema de autenticación cifrada). Existen varias formas de hacerlo, y la configuración dependerá de la política de seguridad que tengamos como Conductor del sistema. Os mostraré unos ejemplos de integración basada en una política permisiva "de Unidad Básica" y otra política astringente "de Comando Táctico Justicialista".

Loguearse en Escritorio gráfico con GDM3 de Ubuntu usando tarjeta inteligente En la pila PAM tradicional, se utiliza el método de inicio de sesión con contraseña, lo cual es sencillo y relativamente inseguro. En este ejemplo "para unidad básica", podríamos integrar el uso del módulo pam_pkcs11 a la pila PAM con el objetivo directo de utilizar la tarjetas inteligentes a fin de loguearnos durante el Inicio de Sesión gráfico GDM3 de Ubuntu.

Para ello editamos el fichero de configuración del mismo gdm-password e incluimos el módulo.

Por ejemplo, ingresamos:

sudo nano /etc/pam.d/gdm-password

E incluiremos el módulo pam_pkcs11 a la pila PAM de autenticación del sistema, agregando el siguiente contenido:

Agregado peronista de módulo al stack PAM

para logueo con tarjeta inteligente

auth requisite pam_nologin.so auth required pam_succeed_if.so user != root quiet_success auth sufficient pam_pkcs11.so @include common-auth auth optional @include common-account ...

Iniciar sesión con Tarjeta Inteligente en Ubuntu Server (únicamente loguearse)

El módulo pam_pkcs11 puede integrarse a la pila PAM de autenticación si deseqamos usar la tajeta inteligente únicamente para el inicio de sesión en el servidor, y no para el resto de las acciones. Para ello debemos editar el archivo login e incluir el módulo pam_pkcs11. Lo haremos ingresando:

sudo nano /etc/pam.d/login

...se abirá GNU Nano con el fichero login, al cual le incluimos el siguiente contenido:

Agregado peronista para loguearse al servidor

con tarjeta inteligente

usar soporte pkcs11

auth sufficient pam_pkcs11.so

Fuerza un retraso mínimo en caso de falla (dado en milisegundos).

Reemplaza la configuración FAIL_DELAY del archivo login.defs).

Tenga presente que otros módulos podrían requerir un retraso mínimo

distinto (por ejemplo, para desactivar la existencia de retrasos,

debería agregar la opción nodelay al archivo pam_unix).

auth optional pam_faildelay.so delay=3000000

Da salida a un fichero de situación /etc/issue antes de cada

solicitud de inicio de sesión (reemplaza la opción ISSUE_FILE

del fichero de configuración login.defs). Descomente si lo

quiere usar.

auth required pam_issue.so issue=/etc/issue

... ...

Una vez pegado este contenido, guardamos los cambios con en el archivo con Ctrl+o y salimos del editor con Ctrl+x.

Al especificar "sufficient" en la línea de control, ta,bién podríamo loguearnos usando el siguiente caso de PAM (normalmente contraseña) si no tuviésemos la tarjeta inteligente encima o si la misma no funcionase. Por este motivo, la tarjeta opera únicamente como comodidad.

Como os he dicho, esto permitirá un acceso "de Unidad Básica" a la sesión gráfica, asumiendo una seguridad laxa ya que la tarjeta inteligente ha sido emitida supuestamente por una autoridad controlada. Usar tarjeta inteligente en Ubuntu Server para autenticación general Otra política de seguridad digna del Comando Táctico del Justicialismo podría requerir insertar la tarjeta de afiliado para dar inicio de sesión en el servidor y a su vez para cualquier otro servicio que utilice autenticación PAM. Muchos servicios PAM localizados en el directorio /etc/pam.d/ hacen uso del fichero common-auth. En esta política particular podríamos incluir al módulo pam_pkcs11 en este fichero a fin de activar la autenticación por tarjeta para todos los servicios que incluyan el uso de autenticación general.

Lo haríamos ingresando en la terminal:

sudo nano /etc/pam.d/common.auth

Y al abrirse el editor, en este caso incluiríamos el siguiente contenido:

Solicita el inicio de sesión con tarjeta inteligente

con el módulo pkcs11

auth [success=1 default=ignore] pam_pkcs11.so

A continuacińo plan B de retorno, por si el módulo gorilea

y no tiene éxito

auth requisite pam_deny.so

Ceba la pila PAM con un valor de retorno positivo en caso de

no haber recibido uno ya; esto permite evitar que devuelva un error

sólo porque ningún otro módulo devolvió código de éxito,

en el caso que los módulos que figuraban previamente en la pila PAM

hubiesen quedado como gorilas idiotas colgados de las palmeras.

auth required pam_permit.so

Y hete aquí más módulos por paquetes (el bloque "adicional")

auth optional pam_cap.so

final de la configuración de pam-auth-update.

La configuración anterior del sistema de autenticación obligará a realizar la autenticación sólo con la tarjeta inteligente. Si el usuario no puede autenticarse con la tarjeta, entonces el inicio de sesión entero fracasará. Todos los servicios PAM incluidos en el directorio /etc/pam.d incluidos en common-auth requerirán también la autenticación por tarjeta. ¡Atención! Una configuración global como esta requere que su y sudo también se autentiquen usando la tarjeta magnética.

Agrtegar la CN Ahora que pam_pkcs11 y la pila PAM han sido configuradas para el inicio de sesión con tarjeta inteligente siguiendo la política de seguridad que hemos anhelado, existirá una acción más que tomar requerida para el uso completo y final. El mapeador pwent requiere la CN en el certificado que esté indicado en la línea gecos del usuario del archivo /etc/passwd. La CN debe ser estraída desde el certificado contenido en la tarjeta magnética.

Para ello seguimos los siguientes pasos:

Primero, obtenemos el identificador ID del certificado contenido en el chip de la tarjeta inteligente. Esto lo haremos mediante el comando:

pkcs15-tool --list-certificates

...y nuestro sistema nos devolverá:

Using reader with a card: SCM Microsystems Inc. SCR 3310 [CCID Interface] (53311646706297) 00 00 X.509 Certificate [Certificate for Card Authentication] Object Flags: [0x0] Authority: no Path: ID: 04 Encoded serial : 02 0A 5877782D0001000013BF

En este caso inventado, como vemos, el ID es "04".

Segundo, utilizamos este ID como llave para leer la información del certificado de la tarjeta y la guardamos en un fichero local en la carpeta temporal del sistema. Lo hacemos con el siguiente comando de organización:

pkcs15-tool --read-certificate 04 > /tmp/sc-cert.crt

...el sistema devuelve:

Using reader with a card: SCM Microsystems Inc. SCR 3310 [CCID Interface] (53311646706297) 00 00

También podríamos presentar en pantalla el enigmático contenido en ASCII del certificado (que como vemos, es imposible de recordar para un ser humano normal y corriente):

cat /tmp/sc-cert.crt

-----BEGIN CERTIFICATE----- MIIEkjCCA3qgAwIBAgIKWHd4LQABAAATvzANBgkqhkiG9w0BAQsFADBbMRMwEQYK CZImiZPyLGQBGRYDYGoRiLaS2dE9MiErDaPyLGQBGRYGcGl2a2V5MSwwKgYDVQQD EyNQSVZLZXkgRViVaPeRoNCaRaJoZmljYXRlIEF1dGhvcml0eTAeFw0xNjEyMDYw MDE4MTJaFw0yODEyMDMwMDE4MTJaMDIxMDAuBgNVBAMTJ1BJVktleSBCQTM2NkRG RTM3MjJDNzQ0OU-VDOTA2QjkyNzRDOEJBQzCCASIwDQYJKoZIhvcNAQEBBQADggE ... ... -----END CERTIFICATE-----

En tercer lugar utilizamos el programa openssl para extraer la CN desde el fichero temporal almacenado que acabamos de crear.

openssl x509 -noout -subject -in /tmp/sc-cert.crt

...y entonces nuestro sistema devolvería algo como:

subject=CN = PIVKey BA3V6IDVFA37P2E7R4O9N96B9274C8BAC

En este caso la CN es "PIVKey BA3V6IDVFA37P2E7R4O9N96B9274C8BAC". Sabiendo esto, editamos el archivo /etc/passwd para agregarle esta CN al campo gecos del usuario al cual pertenece el certificado.

Supongamos que este certificado pertenece al nombre de usuario mengano en el fichero /etc/passwd. En este caso ingresamos:

sudo nano /etc/passwd

Esto abrirá el editor con el archivo de contraseñas. Debemos buscar la línea de mengano y editarla para que tenga la siguiente forma:

mengano:x:1001:1001:PIVKey BA3V6IDVFA37P2E7R4O9N96B9274C8BAC:/home/mengano:/bin/bash

Una vez que modifiquemos, guardemos con Ctrl+o y salgamos con Ctrl+x, nuestro sistema operativo estará ahora lilsto y preparado para hacer un logueo con tarjeta magnética para el usuario mengano.

Inicio de Sesión SSH usando tarjeta inteligente Uno de los métodos contemplados en el protocolo Shecure Shell (SSH) es la autenticación con par de clave privada y pública. Una copia de la claves pública del usuario queda almacenada en el servidor SSH como referencia, y se la considerará "autorizada". Quien posea la clave privada podrá entonces loguearse a través de SSH al servidor.

Las credenciales PIV incluyen un certificado y un par de claves que pueden ser utilizadas para el acceder mediante SSH. La clave pública deberá ser extraída de la tarjeta inteligente y copiada en el servidor SSH. Para ello debemos conectar el lector de tarjetas al cliente SSH (o sea, nuestra terminal local). En ese momento el cliente SSH usará la librería opensc-pksc11 para acceder a la tarjeta que insertamos, y ralizará culaquiera de las operaciones de autenticación criptográfica que le requiramos. Por lo tanto, no es necesario exponer la clave privada. Configurar el Inicio de Sesión Secure Shell con Tarjeta Magnética Tanto el servidor SSH como nuestro cliente SSH deberán ser configurados para permitir el uso de autenticación por tarjeta magnética.

Configurar el servidor SSH El servidor SSH necesitará permitir autenticación de clave pública a través de su fichero de configuración, y además necesitará la clave pública del usuario.

Para permitir la autentificación de clave publica, ingresamos:

sudo nano /etc/ssh/sshd_config

En un archivo estándar de Ubuntu 18.04, la opción PubkeyAuthentication está comentada y por lo tanto, desactivada. Sin embargo, la opción por defecto está establecida con el valor "yes" ("si"). La descomentaremos borrando el "#", de modo que quede así:

PubkeyAuthentication yes

Acto seguido, guardamos con Ctrl+o y salimos con Ctrl+x, y reiniciamos el demonio del servidor SSH con el siguiente comando de organización:

sudo systemctl restart sshd

Copiar la clave pública de un usuario al servidor Debemos extraer la clave pública del usuario desde la tarjeta para el cliente SSH. Para ello usamos el programa ssh-keygen para que lea la clave pública contenido en la tarjeta y lo convierta a un formato legible para utilizar con Secure Shell:

ssh-keygen -D /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so > tarjeta.pub

Naturalmente, podríamos presentar en pantalla el contenido del sertificado público tarjeta.pub con el comando cat, de la siguiente forma:

cat tarjeta.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuFupFpsXwFPz2INdEgr64tn6yQKT7Osj cXoAzgJ7JW/qykPxIZxELpJkoHe45s/fiIhkWjgHWhxCWRNSM76wyc2j47egfRdkzl0Kj7U1k- kpOmGIFU8GA9nxVVikVrAmrI+PzEfRdOmNhPaVqnXUcOJVQh4fe1H5S1mtzV5VzJxKg/61IrBSM- I5JnWDKNr1dGLIqMqw7A55YMvesKurOUrRe3BBIWYhN9XHIrWVFtMBHmQtW8iphmXUqQLHeH- Q7LKpvCvE4i5QttlRSITD1Tqefwdeflh6I1P7LAsnMDp42zHZ23O4Ewd7aqNogikox6aNcCGYkU- PavMBWcge5ykgR

Acto seguido, copiamos esta clave pública al sistema criptográfico del servidor SSH:

ssh-copy-id -f -i tarjeta.pub ubuntu@servidor

El servidor nos solicitará entonces la contraseña y copiará el certificado tarjeta.pub dentro de la carpeta necesaria:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: “tarjeta.pub” ubuntu@servidor’s password:

Number of key(s) added: 1

Ahora podremos intentar iniciar sesión remotamente a través de SSH en la máquina servidor, en el caso del ejemplo con

ssh ubuntu@servidor

...y comprobamos que sólo la clave que deseamos haya sido agregada y surta efecto. Debemos estar seguros pues una vez configurado todo no podremos acceder si no tenemos la tarjeta correcta y con un funcionamiento adecuado.

Configurar el cliente SSH para tarjeta inteligente Continuando ahora desde el lado del cliente SSH, necesitaremos identificar nuestro librería proveedora PKCS#11. Existen tres formas de hacer esto:

La más incómoda es hacerlo directamente antes de conectarnos con el servidor SSH desde la línea de comandos, (con lo cual podremos hacerlo desde cualquier computadora). Por ejemplo, con:

ssh -I /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so ubuntu@servidor

Esto permite especificar el uso de tarjeta toda vez que ingresamos este largo comando, y en el resto de las ocasiones no se usará el acceso por tarjeta inteligente.

Ahora bien, si deseamos implementar que nuestro cliente de conexión SSH use tarjeta inteligente, debemos configurar el archivo ssh_config. Ingresamos:

sudo nano /etc/ssh/ssh_config

...y nos aseguramos que la opción PKCS11Provider quede de la siguiente manera:

PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

...y guardamos con Ctrl+o y salimos con Ctrl+x.

Esto forzará a todos los usuarios del sistema a utilizar tarjetas magnéticas para usar SSH desde este cliente. Configurar el uso de tarjeta inteligente para un Usuario Para usar la opción de tarjeta inteligente para un sólo usuario del sistema cliente, deberíamos agregar la opción anterior en el fichero ~/.ssh/config de cada usuario. Para ello se usaría:

nano /home/usuario/.ssh/conf

En este fichero, modificamos la línea correspondiente en el archivoi, agregándole el ya conocido:

PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

Y guardando con Ctrl+o y saliendo de Nano con Ctrl+x, como en el caso anterior.

De esta manera, sólo usuario tendría que utilizar la tarjeta inteligente en el lector para iniciar sesión a través de SSH a un servidor remoto.

En resúmen, las tarjetas inteligentes son convenientes en el sentido que permiten un almacenamiento de información de identidad a prueba de agresiones. Pueden utilizarse para autenticar el acceso a sistemas computados, redes de datos, información subscripta y privilegios. Ubuntu puede configurarse en tal sentido utilizando módulos PAM ya disponibles y utilidades libres para dar soporte a los logueos con tarjetas magnéticas.



25 october 2022

¿Cómo uso Linphone como cliente de VoIP en Ubuntu 20.04LTS?

El 18 de junio de 1950 se crea la Federación Obrera de Empleados Telefónicos de la República Argentina, FOETRA, que agremiará a los trabajadores del sector, propiciando a su vez un crecimiento exponencial en los tendidos intercomunicados. En reunión confederal, Juan Perón explica a los telefónicos cómo hacer uso del servicio SIP en Linphone, el cliente VoIP para Ubuntu.

¡Trabajadores!

Toda disposición técnica y especializada en comunicaciones se redunda en positiva para el país, pues facilitan los tiempos de conducción a la vez que se fomenta una veloz integración cultural del país en todos sus rincones. En la Argentina hubo un tiempo que existió un ínfimo mercado telefónico, liderado por empresas extranjeras como la ITT, notablemente centralizado en la oligarquía. Era una herramienta de colonización, por y para las clases dominantes.

Nuestro Movimiento no podía consentir con tal afrenta, y por ello se impuso la necesidad de administrar un mercado telefónico para la grandeza de la Nación. Con tal fin el Estado a finales de agosto de 1946 creó EMTA, la Empresa Mixta Telefónica Argentina, situación que se aprobó ad referendum del Congreso de la Nación en su sesión del 3 de septiembre de dicho año. El Primer Plan Quinquenal delineaba la ampliación de las comunicaciones de manera veloz para servir a las necesidades de un país vasto. El 18 de marzo de 1948 EMTA se pasó la administración pública bajo el explicativo nombre de Teléfonos del Estado. Su director impulsó en sólo seis años el tendido de 170.655 líneas, la incorporación de 54 centrales nuevas, además de las modernización de las anteriores con equipamiento Siemmens. 1.993 tendidos interurbanos nuevos se agregaron a la telaraña nacional, totalizando para 1951 un kilometraje suficiente para circumvalar con cable telefónico tres veces y media el globo, además de los 50 mil kilómetros de tendido automático de 12 vías, nuevo en la región. Indudablemente que estas mejoras pueden también llevarse al mundo informático. La necesidad de comunicarse es constante para la grandeza de la Nación, y es por ello que debemos adaptar nueva tecnología que permita a nuestra informática comunicarse en las nuevas redes de datos. Por tal razón existen varios estándares de comunicación telefónica por IP, y tal vez el más conveniente y abierto en tal sentido sea el popular SIP. Se trata de un protocolo para inicio de sesión concebido realmente para todo tipo de comunicaciones, pero entre todas las posibles destaca la telefonía por IP y la videoconferencia. El SIP ofrece la ventaja de estar dictado por la comunidad de Internet en lugar de las empresas telefónicas, por lo que asegura ciertos beneficios y universalidades en el manejo de las redes conmutadas de datos.

Para operar el protocolo SIP, es necesario contar con un usuario URI (identificador uniforme de recurso) y un cliente SIP. El URI podríamos considerarlo como un usuario registrado en una red de este tipo, y recibe la forma de dirección sip:usuario@dominio.

En cuanto a los clientes, podremos dividirlos en dos tipos: existen teléfonos IP compatibles con la norma SIP que son los clientes obvios, pero también contamos con aplicaciones de software destinadas al uso de redes SIP, llamadas Softphones. Naturalmente, una aplicación Softphone de este tipo capaz de instalarse en un smartphone tornará el mismo en un cliente SIP.

Existen muchos proveedores que podrán ofrecernos servicios SIP gratuitos o pagos. En mi caso propugno un servicio libre, y por tal motivo soy usuario de la SDF, la red social ética. Entre otros servicios, SDF provee servicio de telefonía VoIP gratuitos a sus usuarios Validados. Para solicitarlo, en la shell de la SDF ingresamos el comando "maint". Se nos solicitará loguearnos con usuario y contraseña de SDF en el submenú de mantenimiento. Inmediatamente podremos utilizar la opción "v" para configurar el servicio de VoIP. Se nos proveerá una URI de usuario SIP (en el caso de la SDF, será un interno de cuatro números), así como una contraseña alfanumérica y una contraseña de cuatro números para la casilla de voz asociada (su contestador automático). Debemos tomar concienzuda nota de todo esto pues lo necesitaremos para configurar todo después. Una vez anotado los datos, saldremos del menú de mantenimiento con "q". Tras unos instantes deberíamos recibir un correo electrónico del sistema de la SDF confimrando los datos de la cuenta SIP.

Nota: Recordemos que si a posteriori quisiéramos volver a ver nuestros datos de ViIP en la SDF, modificarlos o anularlos, podremos ingresar desde el shell SDF con el comando maint al sistema de mantenimiento (habremos de darnos de alta con nuestro usuario y contraseña de SDF, y elegir la opción "v" (" estabkecer o resetear su ID de VoIP) y luego la opción "d" ("ver las configuración actual de VoIP).

Pues bien, en los tiempos del primer peronismo utilizaba Ekiga como cliente de telefonía SIP en Ubuntu. Sin embargo, con el correr del tiempo dicho excelente programa ha quedado superado y ya no se encuentra en los repositorios de Ubuntu 20.04LTS. Por tal motivo hoy os enseñaré a utilizar Linphone.

Para instalarlo abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt install linphone

Una vez que le indiquemos nuestra contraseña de Conductor, se descargará la paquetería necesaria. Concluida la instalación, podremos arrancar el programa de comunicaciones de voz desde Aplicaciones / Internet / Linphone.

La primera vez que lo iniciemos, el cliente de Linphone presentará su ventana gráfica y nos propondrá un usuario sip:usuario@iplocal:5060. Al mismo tiempo, se nos presentará un Asistente de configuración de cuenta. El mismo podría sernos de mucha utilidad si no tenemos una cuenta SIP y queremos crear una desde Libhone. Sin embargo, como ya cuento con una cuenta SIP en la SDF, cierro el asistente. En el caso de la SDF, la propuesta de cuenta estandar usuario@iplocal:5060 no funcionará. La modificaremos manualmente. Para ello en el cliente elegimos el menú Opciones / Preferencias (o presionamos Ctrl+p) y se abrirán las opciones del programa.

En la primer solapa llamada Gestionar Cuentas SIP" nos encotraremos con los detalles de la cuenta del cliente. En este caso agregaremos la cuenta de SDF. Para ello presionamos el botón +Añadir. Se desplegará la ventana Linphone - Configurar una cuenta SIP. En el campo identidad SIP indicamos nuestro usuario SIP de la SDP (normalmente en la SDF sería ####@sip.sdf.org). En el campo Dirección del SIP Proxy ingresamos lo mismo. Opcionalmente, podríamos tildar "Indicar información de presencia" si queremos que se publique nuestro estado (disponible, ocupado, ausente, al teléfono, etc) a los demás usuarios SIP que nos tengan registrados. Una vez terminada la configuración, presionamos el botón Aceptar. En la solapa Configuración Multimedia podremos escoger qué servidor de audio queremos utilizar. En mi caso dispongo de PulseAudio y ALSA, y he elegido PulseAudio pues funciona sin ruidos de clics. En este caso conviene tildar Activar Cancelación de Eco. Escogemos la solapa Configuración de Red, y en la misma podremos modificar las características de la red. Normalmente debemos utilizar Conexión Directa a Internet. Si no podemos conectarnos, puede deberse a que estamos detrás de un router. En tal caso podríamos intentar tildando la opción Tras un NAT/Firewall (utilizar ICE). Una vez que tengamos configurado todo, presionamos el botón Aceptar.

Ahora tendremos contaremos con nuestro usuario creado y adosado al sistema. Natuarlmente podrían llamarnos a sip:usuario@sip.sdf.org.

Una buena idea es ejecutar el Asistente de Sonido, que nos asegurará que todo el apartado de sonido opera correctamente en nuestro propio sistema local. Para ello vamos a Ayuda / Asistente de Sonido. El asistente nos permitirá utilizar nuestro micrófono y comprobar el retorno del mismo. Idealmente al hablar debería indicar "bueno". También podremos reproducir unos tonos por los altavoces para comprobar el volúmen y respuesta del sonido, y grabar una frase corta y comprobar que opere correctamente.

Ahora es momento de realizar una llamada de prueba al servidor remoto SIP utilizando el Linphone. Por ejemplo, podríamos intentar una llamada al sistema de "Eco" de la SDF. El número es sip:1008@sip.sdf.org. Ingresamos el mismo y presionamos el botón "Llamar", que presenta un ícono de teléfono. Cuando queramos establecer nuestra primer llamada con el cliente Linphone utilizando la red VoIP de la SDF, se nos solicitará la Contraseña de servicio SIP (el código alfanumérico) de nuestro UserID (que usualmente es un interno de cuatro cifras).

Ahora ya todo está hecho, y de ahora en más podremos utilizar nuestro cliente para realizar llamadas. Cuando estemos en habla, en este caso con el sistema de eco, podremos oirnos a nosotros mismos recibiendo el "eco" de nuiestra voz. El retraso de la misma implica el lag de nuestra conexión, y naturalmente es más elevado en llamadas internacionales. Podremos "mutear" nuestro micrófono presionando Silenciar, o presionamos en Colgar.

Si necesitamos podremos también desplegar el Panel de Marcado desde el menú Opciones / Mostrar marcador. En este podríamos discar números o utilizar los sistemas PBX VoIP. Por ejemplo, al contar con una usuario VoIP en la SDF, podremos discar 1085@sip.sdf.org al fin de acceder al sistema de correo de voz. El sistema automático nos solicitará nuestro número de casilla de voz ("Mailbox?") y tras introducir los cuatro dígitos, nos solicitará la contraseña numérica asociada a nuestra casilla de mensajes de voz (de cuatro cifras también). El sistema nos permitirá escuchar los mensajes nuevos, avanzar o retroceder, movernos en las carpetas de mensajes nuevos, antiguos o guardados, y borrar los mensajes.

Naturalmente, en la SDF contamos también con una serie de extensiones públicas, las que podremos "discar" para probar:

Extensión Suscriptor Descripción 24/7 1001 interno Fecha y Hora UTC Si 1002 interno Tono de prueba sinusoidal lineal desde 16Hz a 20kHz Si 1003 interno Tono Prueba de audio sinusoidal exponencial desde 16Hz a 20kHz Si 1004 interno Tono Milliwatt (1004Hz @ 0dB) Si 1005 interno Test de Eco de Respuesta (USA) Si 1006 interno Música de Prueba "CQ Serenade" Si 1009 interno Juego de aventuras IVR Si 1026 interno Tono de 2600Hz @ 0dB Si 1030 interno Música "de Arbolito" Si 1085 interno Sistema de Correo de Voz de SDF Si 1086 interno Llamada en Confedencia (sin mute) Si 1088 interno Llamada en Conferencia (disque #1 para Mute on/off) Si 1929 interno Salida a C*NET Si 5004 interno Tono de Milliwatt (1004Hz @ 0dB) (Europa) Si 5005 interno Test de Eco de Respuesta (Europa) Si 5085 interno Sistema de Correo de Voz (Europa) Si 5088 interno Llamada en confedencia (Europa) (Presiones #1 para mute on/off)



24 october 2022

¿Cómo corrijo el sonido del Realtek ALC892 en Ubuntu 20.04LTS?

¡Descamisados!

Siempre he dicho que llevo en mis oídos la más maravillosa música, que es para mí la palabra del Pueblo Argentino.

Pero esto es así porque uso auriculares y software para escuchar música liberaedo bajo Licencia GPLv3 .

El camino de la Liberación no es ajeno a los escollos y al barro. Quien no lo comprenda, tenderá a fracasar. Es un verdadero Conductor aquél que aprende a superar las lides y determinar con su acción luminosa el sendero que los demás habrán de seguir.

Pues bien señores, en Ubuntu Mate 20.04LTS Focal Fossa, un inconveniente nublaba mi día peronista. Al reproducir audio de cualquier tipo, y tras detener la reproducción, notaba que a los pocos instantes comenzaban a oírse a través de los cascos una serie de sonidos intermitentes o clics, similares a los que se obtienen cuando se conecta un audífono cuando los altavoces están encendidos. Al producirse aproximadamente cada medio segundo, se hacía algo extremadamente molesto.

Asimismo, podía notarse en repetidas ocasiones "saltos" en el control de volumen, sobre todo cuando se alcanzaba un "pico" en el sonido. Esto se producía ya sea en la terminal (ya sea con los controles de volúmen pulsemixer o el Alsamixer) o en el control gráfico de Ubuntu. Notablemente, se hizo totalmente inefectivo el control de "automute" de Alsamixer.

Un problema de este tipo requiere una acción decidida, y para solucionar estos "pop-pop-pops" no cardíacos habremos recurrir a una acción de conjunto, que es la manera en la cual deben hacerse las cosas.

En primer lugar es definir qué dispositivo de audio es el que tenemos instalado en nuestro sistema. Esto es así porque la mayoría de las veces, se utilizan meros "chipsets" integrados en la placa madre, en lugar de las añoradas plaquetas de sonido.

Para ello abrimos una terminal con Ctrl+Alt+t y nos informámos de qué módulo de audio está cargado en memoria. Ello lo haremos con:

cat /proc/asound/modules

En este caso, se nos informa que es el inefable snd_hda_intel, empleado por multitud de dispositivos de audio integrado diferentes. También podríamos chequear el nombre técnico del dispositivo para el sistema con:

lspci | grep Audio

00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)

En este caso he logrado rastrear al culpable de los "saltos" y "pops": se trata de la rutina de ahorro de energía del controlador de sonido snd_hda_intel, el cual parecería intentar apagar y reencender las salidas de audio, con el molesto resultado que os he descripto anteriormente.

Es posible modificar a mano la configuración de la funcionalidad de ahorro energético para que no haga el "latido intermitente", modificando el archivo /sys/module/snd_hda_intel/parameters/power_save. Siendo un fichero "binario", el mismo contiene un simple 1 si la funcionalidad de ahorro de energía está activada, o un 0 si la misma está apagada. Siguiendo este camino, bien podríamos resolver el problema ingresando en nuestra terminal el siguiente Comando de Organización:

sudo echo > 0 /sys/module/snd_hda_intel/parameters/power_save

...y tras ingresar nuestra contraseña de conductor, la función de ahorro de energía debería desactivarse.

Ahora bien, esto nos sirve para comprobar que esta es la causa del problema. La solución sólo funcionará hasta reiniciar el sistema, momento en el cual deberemos repetir esta acción. Nuestro Movimiento debe buscar soluciones permanentes a los problemas permanentes.

Existen varias maneras de hacerlo. La más sencilla para probar sería editar el fichero alsa-base.conf. Para ello debemos abrirlo con el editor Nano:

sudo nano /etc/modprobe.d/alsa-base.conf

...el sistema nos solicitará nuestra contraseña, la ingresamos, y se abrirá el fichero. Debemos ir al final del mismo y pegarle el siguiente par de líneas:

Comando para que no suene pops en los auriculares:

options snd-hda-intel probe_mask=1 model=auto power_save=0 power_save_controller=N Acto seguido guardamos con Ctrl+o y salimos del editor con Ctrl+x. Debemos reiniciar el equipo, y a la vuelta, evaluar si surtió efecto. En muchas versiones de sonido Realtek debería bastar con esto.

Si no fuese el caso, podríamos probar con quitarle permisos de ejecución a la rutina de ahorro de energía para el audio Intel HD. Esto es simple de hacer, sólo basta con ingresar en la terminal el siguiente Comando de Organización.:

sudo chmod -x /usr/lib/pm-utils/power.d/intel-audio-powersave

Acto seguido volvemos a reiniciar el sistema y evaluamos si surtió efecto. debería solucionarse el problema. Si no lo hiciese, podríamos volver a otorgarle permisos de ejecución para que quede como estaba originalmente con:

sudo chmod +x /usr/lib/pm-utils/power.d/intel-audio-powersave

La tercera manera es la forma más agresiva de hacerlo. Consiste en asegurarnos que se ejecute la anulación de la funcionalidad de ahorro de energía del conector de audio que evaluamos en un principio, toda vez que inicia Ubuntu 20.04LTS Focal Fossa. Para ello no tendremos más remedio que reactivar la olvidada funcionalidad del archivo /etc/rc.local. Este se trataba de un fichero de configuración que se autoejecutaba después de dar inicio al sistema, pero antes de que el o los usuarios ingresaran a su propia sesión de trabajo. En el Ubuntu actual el fichero rc.local ya no viene activado por defecto, pero podremos activarlo como os he explicado detalladamente aquí.

Conforme hayamos realizado lo allí indicado, y comprobado el funcionamiento, podremos editar el archivo /etc/rc.local por medio del siguiente comando:

sudo nano /etc/rc.local

Esto abrirá el editor peronista GNU Nano con fichero /etc/rc.local. Para agregar el comando que desactive el ahorro de energía del controlador snd_hda_intel toda vez que se inicie el sistema, agregamos antes de la última línea - la cual siempre debe contener "exit 0" - el consabido comando:

echo 0 > /sys/module/snd_hda_intel/parameters/power_save Una vez editado, podremos guardar el archivo /etc/rc.local con Ctrl+o y salir del editor GNU Nano con Ctrl+x.

Guardamos y salimos con Ctrl+o y Ctrl+x.

Luego modificaremos el archivo default.pa de pulseaudio, para modificar la conducta de reconocimiento de auriculares. Esto es necesario opcionalmente si al superar cierto nivel en la señal de salida, nuestra placa ALC892 conmuta automáticamente de entrada o salida de audio (falla en el reconocimiento de conectores por sobrevoltaje). En tal caso, ingresamos:

sudo nano /etc/pulse/default.pa

Se abrirá dicho fichero en el editor GNU Nano. Usamos el comando buscar con Ctrl+w y buscamos la línea:

load-module module-switch-on-port-available

...Y la modificamos comentándola, anteponiéndole un signo # de manera que quede:

load-module module-switch-on-port-available

Ya realizado esta modificación en el fichero default.pa, lo guardamos mediante Ctrl+o y salimos del editor con Ctrl+x.

Luego ingresamos:

mv ~/.config/pulse/ ~/.config/pulse.old systemctl --user restart pulseaudio

Naturalmente, para que todo lo realizado surta efecto, debemos reiniciar el equipo. Podremos hacerlo desde la terminal con:

sudo reboot

Y ya tendremos sonido Realtek ALC892 sin cortes en Ubuntu. Si no fuese la solución en su adaptador de sonido en particular, podrían revertir o modificar el cambio realizado en alsa-base.conf.



23 october 2022

¿Cómo instalo y actualizo el binario del navegador Chromiun sin utilizar Snaps en Ubuntu 20.04LTS?

El 22 de enero de 1974 en una reunión con los Diputados de la Tendencia Revolucionaria, Juan Perón explica cómo cambiar el Snap de Chromiun por un paquete, y crear un script para su actualización automática.

(...) Normalmente el principal inconveniente de los programas libres radica en la existencia de múltiples librerías de programación que los mismos requieren para funcionar adecuadamente, en un esquema de interdependencia. Nuestro pensamiento favorece una Comunidad Organizada del software, dentro de la cual la idea es que la paquetería se apoye mutuamente y - gracias a los instaladores de paquetes especializados como APT - podamos resolver sin complicaciones extremas todos los ingredientes que hacen a nuestro cómputo.

A pesar de esto, me vienen a querer imponer ideas foráneas, como estas Snaps intentan reemplazar la política de nuestro Movimiento - y la de quienes por más de veinte años han luchado - y lo hacen introduciendo a mi juicio lo peor del individualismo. Los Snaps son paquetes autoinstalables y autoactualizables desarrollados por Canonical, bajo la premisa de presentar algunas ventajas gracias a su despliegue simplificado.

Desde un punto de vista meramente técnico podríamos resumir que los Snaps son archivos ejecutables que operan como si de una máquina virtual se tratase, encapsulando la ejecución y acción del programa y evitando al creador tener que dilucidar problemas de dependencias o librerías en el equipo del usuario. Aducen la ventaja de facilitar el desarrollo y el portado de los binarios para distintas plataformas.

Nosotros eso lo hemos escuchado, y los conocemos desde naranjos. Plantean exclusivismos en dicho despliegue, sin importar lo que requiera el resto del software dentro del sistema virtuoso que ha de ser GNU. Configura un delito eso. ¿Ahí nosotros vamos a pensar que eso lo justifica? ¡No! El crimen es crimen cualquiera sea el móvil que lo provoca. Y el delito es delito cualquiera sea el pensamiento, el sentimiento o la pasión que impulsa al criminal.

Por si esto fuera poco, el encapsulado de las Snaps se produce - de momento - a costa de una muy notable disminución en la velocidad de ejecución. Indudablemente las Snaps corren desde la carpeta de usuario. Esto hace que las aplicaciones instaladas a partir de Snaps tarden mucho más en arrancar que si se encontrasen - diremos - en un SSD que alberga los programas de usuario. Y yo me pregunto ¿con qué necesidad?

Acá hay otras cosas que se juegan, no nos vamos a tirar la suerte entre gitanos. Somos políticos todos, y sabemos que se juegan otros intereses. Pues bien señores, el que esté con esos intereses, se saca la camiseta peronista y se va. Nosotros, por perder un Snap, no vamos a ponernos tristes. Pero acá debe haber una disciplina. Si se pierde esa disciplina estamos perdidos todos. En la versión 20.04LTS de Focal Fossa, como varias de las anteriores, nos provee del conocido navegador web Chromiun. una versión liberada del masificado Google Chrome. A Chromiun se lo limpió de los elementos perniciosos registrados por la omnímoda corporación a fin de Combatir al Capital.

El Chromiun forma parte hace mucho tiempo de nuestro Movimiento. Sin embargo, en las últimas iteraciones Ubuntu ha abandonado su empaquetado tradicional, cambiándolos por los pesados Snap. Como Conductor del Justicialismo no puedo más que imponer la Justicia de las Masas Obreras Descamisadas ante este proceder. No me van a venir a gritar que está lleno de gorilas el sistema operativo popular.

Por tanto, os indicaré cómo instalar una versión binaria de Chromiun y cómo poder actualizarla fácilmente desde la terminal de nuestro sistema, evitando el uso de Snaps.

En primer lugar abrimos una terminal con Ctrl+Alt+T y crearemos un directorio oculto (por ejemplo, en nuestra carpeta de usuario), donde podremos instalar Chromiun. Lo haríamos con el siguiente Comando de Organización:

mkdir ~/.chrome-linux

En este directorio crearemos un script (un fichero de texto que hará las veces instalador y actualizador. Para ello ingresamos:

nano ~/.chrome-linux/actualizar_chromiun.sh

Se abrirá el editor peronista GNU Nano con un fichero en blanco. Podremos pegarle el siguiente contenido:

! /bin/bash

Script Peronista para actualizar el navegador Chromiun sin tener que

usar las Snaps de Ubuntu.

Nota: Si desea utilizar la versión oficial elimine esta con:

rm -r ~/.chrome-linux/

cd ~/.chrome-linux/

LASTCHANGE_URL="https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media"

REVISION=$(curl -s -S $LASTCHANGE_URL)

echo "La última revisión de Chromiun es $REVISION"

if [ -d $REVISION ] ; then echo "Ya tiene la última versión" exit fi

ZIP_URL="https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F$REVISION%2Fchrome-linux.zip?alt=media"

ZIP_FILE="${REVISION}-chrome-linux.zip"

echo "descargando $ZIP_URL"

rm -rf $REVISION mkdir $REVISION pushd $REVISION curl -# $ZIP_URL > $ZIP_FILE echo "descomprimiendo..." unzip $ZIP_FILE popd rm -f ./ultima ln -s $REVISION/chrome-linux/ ./ultima

Una vez pegado este texto en el editor, guardaremos el archivo con Ctrl+o y saldremos del editor con Ctrl+x. Procederemos inmediatamente a asignarle permisos de ejecución a fin de poder instalar el binario de Chromiun y poder actualizarlo cuando queramos más adelante. Usaremos:

chmod +x ~/.chrome-linux/actualizar_chromiun.sh

Para que el script funcione adecuadamente debemos contar con el programita curl. Normalmente ya debería estar instalado en nuestro sistema, pero si no lo está, lo hacemos con este comando:

sudo apt install curl

Gracias a este script ejecutable, podremos ahora con suma facilidad descargar el binario de Chromiun. Se hará con:

./.chrome-linux/actualizar_chromiun.sh

Acto seguido, podremos modificar el lanzador o Acceso directo de Chromiun para que al pulsar su ícono, se ejecute la última versión y no el Snap. En el caso de Ubuntu Mate esto implica crear o duplicar el Lanzador. Hacemos clic con botón derecho sobre el menú Aplicaciones en el panel superior y elegimos la opción Editar menús. Se abrirá la ventana Menú Principal, que contiene dos paneles. En el izquierdo elegimos la categoría Internet. Luego en el panel derecho buscamos Navegador web Chromiun y presionamos el botón Propiedades. Se abrirá la ventana de Propiedades del Lanzador de Chromiun.

Veremos que la configuración original del lanzador contempla en el campo "Comando:" el siguiente texto:

chromium-browser --password-store=basic %U

Si queremos reemplazar la versión provista originalmente con Snap por la que acabamos de descargar, debemos editar dicho campo "Comando:" para que quede como el siguiente (reemplazando usuario por nuestro propio nombre de usuario):

/home/usuario/.chrome-linux/ultima/chrome

Con este paso, podremos lanzar el binario de Chromiun desde Aplicaciones / Internet / Navegador web Chromiun. Debemos tener en cuenta que los favoritos, historial, cookies y demás se comparten entre ambas instancias pues son independientes de la instalación de Chromiun (quedan almacenados en la una carpeta oculta en el directorio de usuario). Gracias a esta realización, De ahora en más, si necesitamos instalar o actualizar el binario del actualizador Chromiun, utilizaremos el siguiente comando de organización:

./.chrome-linux/actualizar_chromiun.sh

En unos pocos instantes revisará la existencia de la última versión del Chromiun, y la descargará, reemplazando la anterior.

Tengamos en cuenta que sólo hemos reemplazado el lanzador del Chromiun con Snap para que use la versión binaria. Si realmente queremos remover definitivamente la versión Snap de Chromuin, podremos utilizar:

sudo snap purge chromiun

(Y si la quisiéramos instalar utilizaríamos sudo snap install chromiun).



22 october 2022

¿Cómo instalo Colonos de Catán en Ubuntu?

En Conducción Política, Juan Perón detalla las acciones que requieren la conducción de un Movimiento Político, la praxis de acción de masas, y cómo instalar y a desplegar la versión computada libre del juego los Colonos de Catán en Ubuntu.

(...) ¡Vean Señores!

La obra de arte no está en realizar un gran plan de acción. La obra de arte está en ejecutarlo, porque el plan es solamente la concepción. Y en los hechos sociales, políticos y económicos la acción está siempre sobre la conceción. Muchas veces una idea no muy buena, pero realizada con tenacidad, da buenos resultados, pero la más hermosa de las concepciones, sin ejecución, no lleva a ningún resultado.

Ahora bien, la realización no es una cosa sencilla. Si la realización que surge del Método de la Conducción no alcanza al Objetivo del plan que nos hemos trazado, pues bien, fijaremos una acción hasta cierto punto, que se concatene con otro punto posterior. Esto otorgará una dimensionalidad a la acción en tiempo y en espacio. Lo importante es mantener la visión del objetivo final.

En el orden político partidario, puedo fijar un plan de acción de un todo... hasta el momento de la elección. Después de la elección, teóricamente, yo no puedo fijar nada, porque allí es donde se va a producir la decisión. ¿Qué voy a hacer planes para el caso que gane? ¿Y si pierdo? Allí está la decisión. Y hasta allí se puede prever; más allá solamente se puede tener una Gran Línea Directriz, como una estrella polar o el hilo de Ariana, que le marca a uno la dirección de aquel objetivo lejano de la Conducción. Vale decir, que se prevé hasta un hecho decisivo. Mas allá, la previsión humana no puede llegar, sino en grandes direcciones o grandes líneas.

Para hacer de esto una comprensión mayor, en la Escuela de Guerra estudiamos con juegos de Estrategia, proponiendo tablas de valoración de los hechos y tablas de orden, todas correctamente computadas. Esa es una buena forma de adiestrar en condiciones en las cuales sólo puede actuarse realizando. Los alemanes, que son buenos en esto, han definido juegos de tablero que no sólo tienen un aliciente técnico, sino que pueden ser lúdicos y además de enseñar el arte de la previsión, la conducción y el despliege táctico-estratégico, nos permiten jugar.

Entre los juegos de tableros de tipo europeo encontramos la base de una buena serie de juegos de estrategia. Tal vez uno de los más influyentes haya sido Die Siedler von Catan, o "Los Colonos de Catán", creado por el germano Klaus Teuber y publicada por la casa Franckh-Kosmos en 1995. Este fue tal vez uno de los primeros en lograr gran éxito fuera de Europa. Se trata de un juego de mesa por turnos y de estrategia, pensado para varios jugadores. Debemos toman el rol de nuevos pobladores en las tierras de González Catán. Cada uno de ellos intentará construir y desarrollar sus propios asentamientos mientras comercia y adquiere los recursos que nos ofrece el dominio del terreno. Los jugadores arrojaban dos dados (con distinto color) y podían obtener puntos en la medida que sus asentamientos avanzaban; y el primero en lograr una cantidad determinada de puntos (típicamente 10) ganaba. El juego de tablero incluía cartas que se utilizaban como intercambio de recursos, y naturalmente tenía un costo bajo, y como es usual en este tipo de juegos impresos. Las expansiones y avances del mismo se adquirían por modalidad de suscripción a través de la casa fabricante, con documentación en más de 30 idiomas distintos.

Pues bien señores, en este caso, podremos hacernos con una versión gratuita que simula el escenario del juego. Se trata de JSettlers2, una versión multiplataforma escrita en Java y liberada del Colonos de Catán original. En esta versión peronista habremos de conformar un asentamientos. Sin embargo, también podremos contar con las expansiones y elementos de juego derivadas de las más conocidas expansiones de Catán, incluyendo la Leyenda de los Conquistadores, Viajeros del Mar, Viajeros de las Estrellas, Cuidades y Caballeros y "CATon" (un fantasioso reino felino tendiente a evitar caer en connotaciones de conquista o colonialismo).

La instalación de este juego puede realizarse desde la Terminal de nuestro sistema operativo. Para instalar el runtime del lenguaje Java podríamos abrir una temrinal con Ctrl+Alt+t e ingresar el siguiente Comando de Organización:

sudo apt install openjdk-11-jre-headless

Una vez instalado este requerimiento, podremos descargar con confianza el juego completo, por medio de las siguientes instrucciones:

mkdir ~/.jsettlers2/ cd ~/.jsettlers2/

wget http://nand.net/jsettlers/JSettlers.jar

Para ejecutarlo usamos:

java -jar $HOME/.jsettlers2/JSettlers.jar

Como corolario del proceso de instalación, hemos de saber que siempre es cómodo crear un Lanzador para nuestro Ubuntu, lo que nos permitirá ejecutar el programa sin usar la terminal. Podremos hacer clic con el botón derecho del ratón sobre el panel superior, y escoger la opción Editar Menús del menú contextual que aparezca. Se abrirá el cuadro de diálogo Menú Principal con los dos paneles que lo constituyen. En el panel Menús elegimos la categoría Juegos, y presionamos el botón +Elemento Nuevo. Esto abrirá el cuadro Crear Lanzador. En el campo Nombre podremos ingresar Colonos de Catán y en el campo Comando podremos agregar /home/usuario/.jsettlers2/JSettlers.jar (naturalmente cambiando usuario por nuestro propio nombre de usuario). Tras oprimir el botón Aceptar habremos creado el Lanzador. Ahora podremos iniciar el juego desde Aplicaciones / Juegos / Colonos de Catán.

Al iniciar el cliente JSettlers2, se nos presentará una ventana que nos solicitará indicar qué queremos hacer. Si quisiéramos practicar para adiestrarnos en las posibilidades y mecánica del juego, presionamos el botón Practicar. Esto nos desplegará una segunda ventana que permite definir las condiciones de la partida de práctica. Por ejemplo, podremos escoger uno entre varios escenarios de práctica (y ello autoconfigurará las múltiples condiciones que podríamos querer). Al presionar Crear Juego nos permitirá elegir nuestro jugador.

La primera decisión es elegir una zona donde asentarnos. Por ejemplo, podríamos querer asentarnos en la "zona azul". Para ello presionamos el botón correspondiente. Debemos saber que hasta ahora, el jugador no puede ver el mapa aún, de modo que los recursos son asignados al azar y por elección a ciegas.

Si jugamos localmente en nuestra computadora, nuestros adversarios serán controlados por la computadora, en forma de "Droids" (o "robots").

Esto nos permitirá crear nuestra tribu conurbana. Podremos escoger un avatar con gorrita. A su vez, se nos presentará por vez primera el tablero de juego, que se encuentra dividido en casilleros hexagonales que representan distintos territorios de Catán. Durante cada turno, cada casillero producirá una unidad del recurso que tiene asociado. La correlación en Jsettlers2 es la siguiente:

Las colinas producen Arcilla, 
Las montañas producen Mineral.
Las pasturas producen Lana.
Campos cultivables producen Cereales.
Los Bosques producen madera.
El desierto no produce nada. 

Como vemos, los recursos naturales representados en JSettlers2 son cinco: Arcilla, Mineral, Lana, Cereales y Madera, y similares en función a los originales de Colonos de Catán (que Ladrillo, Piedra, Oveja, Trigo y Madera) A su vez nuestros recursos elaborados podrán ser cinco también: Soldados, Caminos, Pueblos, Ciudades y Barcos. En los vértices de cada casillero hexagonal podremos disponer de nuestras unidades. Nuestra posición estará indicada por el color del jugador que elegimos.

Para conocer las reglas y tablas oficiales del juego de tablero, así como las reglas específicas para los distintos escenarios y expansiones, podríamos visitar la web oficial. La quinta edición de las "reglas del juego y almanaque" original se reproducen en esta versión. Las podremos encontrar en este video también:

Las acciones se realizan por turnos en sentido horario. Pero podremos utilizar algunos atajos de teclado. Por ejemplo:

Ctrl+r: Tira los dados virtualmente. Ctrl+a: Acepta oferta. Ctrl+j: Rechaza oferta. Ctrl+c: Contraoferta.

Siempre que tengamos los recursos, deberíamos construir asentamientos, caminos y cuidades y explotar los bienes de las tierras que nos rodean. Los Caminos se hacen con arcilla+madera, o intentar completar otra combinaciones para lograr construcciones y servicios más avanzados.

Nuestra primer necesidad será fundar un asentamiento en la recientemente descubierta isla de Catán. La alquimia reglamentaria de elementos para crear un Asentamiento consiste en contar con la suma de recursos arcilla+lana+cereales+madera y elegir en qué vértice de qué casillero hecagonal hacerlo.

También podremos instrumentar Caminos (arcilla+madera), los cuales tienen forma de línea coloreada y permiten unir los distintos elementos. Una vez establecida nuestro núcleo poblacional, podremos dotarlo de fuerzas militar, aunando lana+cereales+mineral+madera para hacer soldados. Estos nos permitirán la defensa territorial y el expansionismo para hacernos de recursos por la vía armada.

Si estamos en contacto con otros jugadores, podríamos recibir ofertas de comercio de recursos, las cuales podrán ser aceptadas, rechazadas, o contraofertadas. Por toda vez, esto podrá ser base para alianzas defensivas u ofensivas no reguladas.

Podremos sacar ventaja del comercio con otros jugadores, sobre todo si construimos "puertos" en los vértices colindantes con el agua, lo cual atrae y obtene más productos de los que podríamos carecer.

Asimismo, en el desierto podríamos encontrar el ícono del "Ladrón", tribus nómadas que podrían querer atacarnos o robarnos recursos.

Las partidas normalmente duran unos 90 minutos pero pueden guardarse o pausarse. Si quisiéramos jugar en una partida remota sin necesidad de montar un servidor nosotros mismos, bien podremos hacerlo presionando el botón Conectar con un Servidor e indicar el servidoroficial nand.net a través del número de puerto 14203. En él podremos definir un escenario para jugar, así como una contraseña para nuestra partida (¡naturalmente, otros jugadores remotos deberían conocerla también para poder jugar con nosotros!).

En el caso del juego virtual, podremos utilizar la ventana de chat para interactuar con otros jugadores.



21 october 2022

¿Cómo instalo una planilla de cálculo para la terminal en Ubuntu?

En La Fuerza es el Derecho de las Bestias, Juan Perón explica sobre los logros económicos de su gobierno y sobre cómo utilizar la planilla de cálculo sc en la terminal de Ubuntu.

(...) "En esos momentos se sumaba a este tremendo esfuerzo, la necesidad de renovar la maquinaria industrial y todo el material ferroviario, tranviario y automotor que durante los cinco años de guerra, con el cierre de la exportación, no habían recibido ningún aporte. Se calculaba esto en un monto de 20.000 millones de pesos. Estudiamos esto detenidamente y confieso que cuando compilamos las necesidades totales, una suerte de pánico se apoderó de mí, que sentía la terrible responsabilidad de estar al frente del país y la duda de poder superar su difícil encrucijada económica.

Con los estudios en mi poder llamé a una reunión privada a los técnicos en economía más calificados en el concepto de algunos asesores económicos. Me perdí diez horas explicándoles mis planes y dándoles todos los datos necesarios para encarar el problema. Se fueron a estudiar, y tres días después nos reunimos de nuevo para considerar soluciones. Confieso que quedé defraudado, pues conversaron mucho, no dijeron nada y lo poco que trajeron no lo entendí, porque lo hicieron en una terminología tan rara y tan confusa que dudo que ellos mismos se entendieran.

La reunión terminó un poco intempestivamente, pues uno de ellos me dijo: “Señor, usted debe gastar tantos miles de millones que no tiene. Si no tiene dinero, ¿cómo quiere comprar?", a lo que yo respondí: “Amiguito, si yo tuviera el dinero no lo habría llamado a usted, habría comprado”, y aquí terminó la entrevista.

Me convencí que no era asunto de técnicos, sino de comerciantes y llamé a mi gran amigo Don Miguel Miranda, el “Zar de las finanzas argentinas”, como algunos le llamaron. El había empezado como empleado con noventa pesos de sueldo y en diez años había levantado treinta fábricas.

Le conté el incidente con los técnicos y me dijo: “¡General!, ¿usted cree que si fueran capaces de algo estarían ganando un sueldo miserable como asesores?” –Pero Miranda, le dije, vea que hay que comprar mucho y no tenemos dinero! –Esa es la forma de comprar, sin dinero, me dijo. ¡Con plata compran los tontos! –Este es mi hombre, pensé para mí...

Miguel Miranda era un verdadero genio. Su intuición, su tremenda capacidad de síntesis y su certera visión comercial, hicieron ganar a la República, en un año, más que cincuenta años de la acción de todos sus economistas diletantes y generalizadores de métodos y sistemas rutinarios e intrascendentes Para su trabajo se formó en una de las primigenias y más antiguas planillas de cálculo, que operaba sobre la terminal. Se trata de sc, liberada bajo GPLv3.

Como todo software antiguo que se precie, su desarrollo se ha visto dividido a lo largo de varias versiones divididas ("forks"). Existen al menos unos tres forks directos que podremos encontrar, así como versiones derivadas como sc-im. También está disponible de un front-end gráfico para el sistema de ventanas X llamado Xspread.

Todo aquél que adopte con gran preferencia la línea de comandos y tal vez algo por el despliegue numerario que tienen la economía y otras ciencias, podrá sentir la necesidad y anhelo de aprender sc. Afortunadamente cuenta con variados recursos incluida una página de manual (man), un tutorial detallado, y un sistema de referencia rápida de tipo interactivo. Esto podría parecer sorprendente a quienes están acostumbrados al software moderno, pero por entonces los programas venían con excelente documentación.

Para instalar sc podremos abrir una Terminal con Ctrl+Alt+t e ingresar el siguiente Comando de Organización:

sudo apt-get install sc

Tras instalar el paquete, podríamos iniciar el mismo desde la terminal con el comando sc. También podríamos iniciarlo co su tutorial (en inglés) utilizando:

sc /usr/share/doc/sc/tutorial.sc

Podría parecer que sc es complejo de utilizar, especialmente para aquellos bisoños en la edición de textos con editores al estilo de Vi. Naturalmente, habremos de reconocer que sc no es un equivalente de terminal para LibreOffice Calc o Microsoft Excel. Si bien adopta muchos de los principios de funcionamiento de vi, sólo operan de forma similar en las combinaciones de tecla más básicas.

El sistema de ayuda está dividido en páginas concisas accesibles rápidamente, por ejemplo introduciendo el comando ?h se nos presentarán los comandos de filas y columnas.

He aquí una útil hoja de ayuda para las tareas básicas:

Tecla(s) Función ? Ayuda (muy útil en este programa) Flechas o hjkl mueven el cursor Ctrl+A Nos mueve a la celda superior derecha (A0) = inserta a número o fórmula <,\,>; inserta texto alineado a la izq/centro/derecha {, |, } Alinea texto ya existente a izq/centro/derecha e, E edita número/valor de cadena x, Del Borra la celda ir, ic inserta fila/columna dr, dc Borra fila/columna P “put” (Guardar) G “get” (Abrir)

Si ya estamos familiarizados con el oligárquico Excel, podríamos querer agregar el siguiente contenido al archivo de configuración ~/.scrc:

set craction = 1 set numeric

Esto activaría el comportamiento de conmuitar automáticamente al modo Inserción no bien demos comienzo a la introducción de una cifra, y avanzará el cursor a la siguiente fila no biwn presionemos Enter. Esta funcionalidad de autoinserción sólo opera con cifras numéricas, ya que la mayoría de las otras teclas responderá al estilo del editor vi.

Por ejemplo, para ingresar los textos debemos ingresar < o bien > para indicar la alineación justificada a izquierda o justificada a derecha.

Las expresiones numéricas, fórmulas, y rangos también operarán de manera muy similar a Exc€l, pero el numerado de las filas comienza en 0, y las funciones estarán precedidas por un número. Por ejemplo @sum(A0;A20). También es importante notar que una celda puede contener tanto números como una etiqueta.

Una tarea muy común al operar una planillas de cálculo es rellenar un rango de celdas con un valor o fórmula (con sus referenciado de filas/columnas ajustadas en forma correspondiente). Para hacer esto, debemos ingresar el valor que deseamos en la primera celda. Luego, con el cursor posicionado sobre dicha celda, tipeamos c. (c punto). Luego desplazamos el cursor a lo largo del rango deseado para el rellenado, y presionamos Enter, lo que completará la operación de rellenado.

Alternativamente, para rellenar un bloque con valores diferentes, primero tipeamos rf (por "range fill" o "relleno de rango"), seleccionamos el bloque desado, y presionamos ; o Tab para cambiar al Modo de Comandos, y luego ingresamos el inicio y su incremento. Por ejemplo, rf9j:3 3 rellenará las primeras celdas de la columna A con múltiplos de 3. Quienes desconozcan la notación Vi, ha de saber que en este caso 9j es un comando estilo Vi que indica "desplazarse hacia abajo nueve veces".

Otra funcionalidad de rango usada a menudo es ordenar, rs ("range sort" u "ordenar rango"). Si deseamos ordenar de forma ascendente en la primer columna de nuestro rango, simplemente ingresamos dicho comando. Sólo la seleccionamos visualmente y presionamos Enter. Caso contrario, tendremos que utilizar algunos de estos ejemplos:

Tipear esto… para ordenar así: rs:"+#c Valores numéricos con la columna C en ascendente rs:"-$a-$b Texto en las columnas A y B, descendente. rs:"+$d+#d Tanto texto como números en columna D, ascendente.

El criterio de ordenamiento es un valor de texto con tres partes, el orden (+ para ascendente, - para descendente), el tipo de valor a buscar (# para numérico, $ para texto), y la columna a ordenar.

Presionar f conmuta al Modo de Configuración de Formato. el cual tiene sus propias asignaciones de teclas. Los formatos configurados de esta manera se aplicarán a la columna entera, que es generalmente lo anhelado.

Teclas(s) Función h/l, ←/→ Ajusta ancho de columna j/k, ↓/↑ Ajusta precisión decimal 0-9 Configura formato numérico predefinido = Define el formato numérico Enter Sale del Modo de Configuración de formato

Los formatos predefinidos que probablemente sean más útiles para las tareas básicas son 0 (cifras numéricas), 3 o 4 (fechas). El formato 4 dispone el uso de años de cuatro dígitos, lo cual es normalmente una buena idea, pero en una terminal serial, donde el espacio de pantalla siempre se presenta como escaso, podríamos preferir formato de años de dos cifras.

Para configurar un formato específico debemos ingresar f=, y luego ingresar el número del formato deseado, y finalmente escribir la cadena de formato (si no tiene set numeric activado. También puede presionar Enter e ingresar los comandos directamente, y emplear las flechas del cursor para obtener un historial de los ítems utilizados. Esto es adecuado si necesitamos experimentar con los distintos formatos para ver cuál nos resulta útil.Por ejemplo, esto configura el slot 7 con el formato de "moneda":

f=7$#,0.>

… lo cual coloca un signo $ delante del valor y emplea la precisión de campo por defecto.

Los formatos de fecha personalizados son similares, y el indicador del formato de fecha es un carácter ^D. Ya que los valores 3 y 4 ya están configurados para las fechas, podríamos mantener todos los valores de hora juntos, y definir 5 o 6 para fecha-hora y hora, respectivamente.

f=5^D%e %b f=6^D%H:%M

(^D aquí indica que debemos presionar Ctrl+D.) Los códigos % son los mismos que el tiempo en Unix.

Si deseamos mantener estos formatos específicos como una configuración permanente en sc, podremos agregarlos al archivo ~/.scrc. Deberá tener cuidado con los formatos de fecha, ya que requiere un caracter carat "^", que se hace Ctrl+D.

format 5 = "^D%e %b" format 6 = "^D%H:%M" format 7 = "$#,0.&"

Afortunadamnete, sc no es tan arcaico como para obligarnos a escribir todas las fechas como valores time_t a fin de que se presenten adecuadamente. Existen varias amneras de expresar fechas y horas. En primer lugar - y probablemente la más útil) es introducir un valor como 2020.25.6 y será interpretado como una fecha. Tengamos presente que el año requiere cuatro dígitos. Esta será permutada tras su introducción a @dts(2020.25.6), lo cual es una fórmula que resulta en el time_t para la medianoche del 25 de mayo de 2020. Existe una función similar llamada @tts que se utiliza para introducir valores de tiempo (a los que incluso podremos sumar dos si queremos definir una fecha y una hora a la vez). Es un poco complejo, pero permite operar en dichas operaciones temporales, y la aparatologia de su fundamento termina teniendo más sentido que los números de fechas decimales que infectan al Exc€l.

Indudablemente, sc no es el programa mas bello del universo, pero si ingresamos set color en nuestro fichero ~/.scrc, podremos al menos obtener algunas combinaciones de colores alternas, e incluso configurar algunos por nosotros mismos. Podremos probar ingresar datos, desplazarnos a la parte superior, e introducir rC (para el comando "Rango en Color"), y luego seleccionar un bloque, luego presionar : e ingresar el número del color que deseamos. O en lugar de ello definir un par de color de la paleta de terminal.

Normalmente los colores por defecto son bastante feos, pero podremos analizar la página mán y editar el fichero ~/.scrc de manera acorde a nuestro criterio estético superior.

También contaremos con un par de configuraciones de color adicionales que podrían interesarnos. set colorneg incrementa el valor del color en uno si el valor de la celda es negativo (-) - en otras palabras, si la celda emplea por defecto el color1, las cifras negativas recibirán el color2. También tendremos el comando set colorerr, el cual remarcará las fórmulas resultantes en error con el color3. Normalmente empleo ellos, y generalmente utilizo los colores 4 a 8 para encabezados y otras celdas varias que podrían requerir cierto tipo de atención, tanto como uno podría utilizar tecto en negrita o itálica.

Una última opción que podrían anhelar conocer es cómo abarcar rangos acotados. Estos se utilizan para definir una serie de celdas que "queden activas" cuando nos movemos en la planilla, y en su forma básica, un rango acotado es similar a la función "congelar" de Excel. Es muy útil emplear la línea de comandos para definir estas celdas congeladas, especialmente para planillas grande que excedan la pantalla. Podremos también seleccionar los rangos interactivamnete si lo preferimos, al ingresar el comando rra. Cualquiera sea la manera de hacerlo que nos guste, la sintaxis general del comando en este caso es:

frame rango_superior rango_inferior

...donde reemplazamos rango_superior y rango_inferior es una notación separada por : que representa los rangos respectivos (por ejemplo A0:D50).

Suponiendo un ejemplo clásico, donde deseamos contar con un "encabezado" de columna A y fila 0 que quede siempre presente en la pantalla toda vez que nos desplazamos la planilla, nuestro rango_superior sería A0:Z199 (o cualquiera que deseamos) ,y el rango_inferior sería B1:Z199. Por tanto, la sintaxis final quedaría así:

frame A0:Z199 B1:Z199

…esto efectivamente "congelará" la primera columna en pantalla en tanto el cursor se encuentre dentro del rango_inferior que hemos definidos. Los rangos acotados son muy útiles, pero este empleo básico es el suficiente para la mayoría de nuestras necesidades.



20 october 2022

¿Cómo uso Ed, TECO, Vi o Emacs en Ubuntu?

¡Trabajadores!

El hombre es un animal que - ante todo - vive y se desarrolla en sociedad. Nuestra propia condición humana nos dicta un objetivo que es el bienestar y la felicidad, pero esta idea no es privada; sólo puede realizarse en Comunidad.

Nuestro Movimiento esto lo ha comprendido, y lo hemos hecho meridiano en un apotegma que reza "nadie puede realizarse en un país que no se realiza". Nuestra majestad no es otra que la de nuestro Pueblo, y el terreno de acción es la Nación Argentina.

Indudablemente que nuestro Movimiento, por estar formados por hombres y mujeres, no puede hacernos pretender alcanzar una perfección divina, sino de una que explica la teoría pero que define la práctica. Es por ello que el éxito no caerá de un níspero: habremos de construirlo con nuestras manos, mente y corazón enfocados en la tarea que nos hemos impuestos. Tampoco podremos pretender el suceso de un día para otro, toda vez que sólo la dedicación al estudio y un paulatino avance hacia el objetivo de bienestar nos aproximará a las buenas realizaciones que anhelamos.

Pues bien, en el campo de la informática esto representa una visión que no debe soslayarse. Hemos imaginado un sistema libre y abierto, donde cada uno sea capaz de aportar lo suyo en pos del bien común, y lo hemos reflejado en sanas licencias libres.

En este será muy tonificador y beneficioso conocer cuáles fueron los pasos realizados previamentes a la acción, a fin de poder dedicarnos a Conducir no sólo los sistemas telemáticos de hoy, sino ser capaces de operar los del ayer. Sólo esto nos permitirá proyectarnos en un futuro que lograremos venturoso si hacemos de la Justicia Social la bandera que guía nuestro camino.

No es secreto para nadie que con anterioridad a la existencia de terminales de video, los sistemas de cómputo eran dable de operarse con terminales teletipo. Estas terminales de comunicación se adaptaron por utilizarse anteriormente en el sistema Télex, el cual permitía transmitir texto codificado en el estándar ASCII o Baudot por medio de las líneas telefónicas. Se hizo patente entonces adaptar estas terminales teletipo para operar remotamente en computadoras mainframe dotadas de una interfaz de acceso remoto asíncrono. Las terminales electromecánicas estaban dotadas de un teclado bastante similar al de una máquina de escribir, y a menudo disponían de una impresora de tipos. A veces una perforadora adosadapermitía registrar los ingresos (e incluso programas enteros) en una cinta de papel perforado. Una de las aplicaciones que pudo adaptar un sistema computado fue la posibilidad de recibir textos del teclado remoto y almacenarlo digitalmente en el banco de memoria de la computadora.

La ventaja de un editor de textos era poder corregir los errores y poder agregar o quitar texto del banco de memoria. Ed

Entre los primeros editores de texto encontramos al Ed. Se trata de un editor de texto primigenio de tipo modal y orientado a líneas - y como tal - espartano. Carece de control de cursor direccionable pues se maneja como una máquina de escribir. Se usa para crear, mostrar, modificar y manipular archivos de texto en forma remota o local.

Para iniciarlo simplemente utilizamos el comando:

ed

Si se lo ejecuta con un argumento de archivo existente, copiará dicho archivo a la memoria del editor (en la jerga, "buffer"). Por ejemplo podremos utilizar:

ed archivo.txt

Al iniciar, ed no presenta nada en nuestra terminal. Para comenzar a agregar una línea, podremos ingresar el comando "agregar", con:

a

(Naturalmente, seguido de la tecla Enter, a fin de enviar el comando "agregar" la computadora remota, si es que utilizamos una).

De ahora en mas, habremos pasado al modo "ingreso", sin que ed nos informe nada. Todas las líneas que tipeemos en la terminal se irán agregando al buffer de memoria del mainframe que tenemos asignado, siempre y cuando llas introduzcamos en memoria con la tecla Enter.

Como en todos los anitguos editores orientados a líneas, las posibilidades de edición una vez que introducimos la línea en la memoria buffer son limitadas y engorrosas, por lo cual conviene escribir con sumo cuidado y revisar la línea antes de presionar Enter para su introducción. Dependiendo de nuestra terminal o sistema, podremos utilizar la tecla Retroceder, o bien Ctrl+Retroceder para borrar caracteres que se encuentren en la terminal, pero no una vez que se hayan enviado al sistema remoto.

Una vez que hemos terminado de ingresar el texto que necesitamos en la memoria, podremos detener el modo de "agregado" de lineas y pasar al modo de comandos nuevamente. Para ello debemos introducir una línea con un "." ("punto"). Al pasar al modo comando, Ed no nos informará nada, pero cualquier cosa que introduzcamos a continuación serán interpretados como comandos de control.

Por ejemplo, si introducimos otra vez un punto, Ed nos devolverá la última línea del texto almacenada en el buffer de memoria.

Debemos saber que los cambios se realizan en la memoria del equipo, y no se almacenan en el fichero hasta que necesariamente le demos la orden w ("write" o escribir en el disco). Para ello ingresamos, por ejemplo:

w archivo.txt

...y Ed nos devolverá un número que es indicativo de la cantidad de caracteres contenidos en el texto almacenado en disco.

Para salr del editor Ed debemos introducir el comando:

q

...y se nos devolverá al prompt de sistema. Resumiendo todo, podríamos obtener una hoja imnpresa de teletipo con una sesión de Ed en UNIX podía verse así:

Naturalmente Ed es antediluviano y engorroso de operar en líneas ya escritas. En tal caso podremos movernos en las líneas de texto usando el modo de comandos (".") e ingresando un número de línea. O bien podremos utilizar -n o +n para indicarle al cursor subir n líneas o bajar n líneas con respecto a la linea en la que estamos actualmente. Cuando lo hagamos Ed nos devolverá el contenido de dicha línea , y podremos cambiarla con el comando c ("cambiar"). Volvemos a tipear el contenido de la línea corregida y la ingresamos con Enter. Finalmente podremos guardar cambios con el comando w.

Debemos tener en cuenta que el comando a nos deja agregar una línea después de la línea actual. Pero en el caso de querer agregar una línea antes de la línea actual, debemos utilizar el comando i ("insertar").

Si deseamos borrar una línea nos movemos hacia ella de la forma que os he explicado, y utilizamos el comando d. Si quisiéramos borrar una línea que no es la actual, indicamos en número de línea seguido de d.

De esta forma, Ed nos permite trabajar mínimamente en un sistema que presenta líneas de texto.

No pasó mucho tiempo para que los editores de líneas permitieran realizar programas complejos. Esto a su vez provocó el advenimiento de los primeros sistemas operativos de tiempo compartido y multiusuarios, entre ellos el UNIX de Bell Labs, el TOPS-10 de la DEC, el ITS del MIT, etcétera.

No bien los sistemas computados tuvieron la posibilidad de presentar imágenes de video y una memoria suficiente para graficar caracteres, se hizo evidente que seria más cómodo realizar editores que pudiesen directamente presentar el texto en una pantalla de tubo de rayos catódicos.

Estas videoterminales comenzaron a reemplazar a los teletipos e impresoras mecánicas.

TECO

Uno de los primeros videoeditores para equipos DEC PDP podríamos decir que fue Visual TECO. Se trataba de un derivado el antiguo editor TECO de Dan Murphy de 1962, pero que diez años después permitía presentar en video en la terminal, a su vez contaba con un set de operaciones de macros, que consistían en órdenes preconcebidas que podían enviarse a la máquina remota.

Al estar desarrollado para numerosos sistemas, fue influyente en toda una tercera generación de editores derivados. La operación de TECO requiere respetar 3 reglas, y conocer 16 comandos de operación. REGLAS de TECO:

Para darle ingreso los comandos se debe oprimir dos veces la tecla Escape (ilustrada con $ a continuación, no es el signo monetario). En algunos de los comandos se emplea Un solo $ para finalizar los argumentos de cadena ("string").
Los comandos no necesitan ser ejecutados de a uno por vez. Puede ingresarse una larga serie de comandos y luego introducir "$ $", y TECO los ejecutará en orden.
TECO está orientado a caracteres, de modo que recuerda la posición del caracter en su locación actual en el fichero, llamada "puntero". La mayoría de los comandos muestran o cambian los contenidos del fichero en el puntero, o mueven el puntero a otro lugar dentro del fichero.

Una sesión de TECO en un sistema TOPS-20 se ve de la siguiente manera: Comandos de TECO

  1. ERfichero$Y1 Abre el fichero para ingresar datos
  2. EWfichero$1 Abre un fichero para salida
  3. EX Guarda y sale
  4. Ctrl+c, Ctrl+c Sale (sin guardar)
  5. C2 Mueve el caracter hacia adelante
  6. R2 Mueve el caracter hacia atrás
  7. L3 Se mueve al comienzo de la línea siguiente
  8. Itexto$ Inserta la cadena texto
  9. J Salta al comienzo del fichero
  10. ZJ Salta al Final del fichero
  11. T3 Tipea desde el puntero hasta el final de la línea.
  12. V Tipea la línea actual
  13. D2 Borra el caracter en el puntero
  14. K3 Borra la línea actual
  15. Stexto$ Busca la cadena "texto"
  16. FStexto_reemplazado$texto_original$ Sustituye la cadena texto_original por texto_reemplazado

*) Algunas versiones de TECO aceptan directamente un nombre de archivo como argumento de línea de comandos, haciendo que 1 y 2 sean innecesarios. Algunas versiones de TECO tiene un comando EBfichero$Y que hace lo mismo que 1 y 2 en un solo paso.

**) Prefijo numérico: mueve/borra múltiples caracteres (un número negativo invertirá la dirección).

***) Prefijo numérico: mueve/tipeea/borra múltiples líneas (un número negativo inverte la dirección); (sólo T, K). Pfrefijo H: tipea/borra todo el archivo.

TECO y sus variaciones si distinguían sobre todo por su escasísimo uso de memoria, y su empleo normalmente asíncrono con la máquina remota. Vi El editor Vi creado por Bill Joy es un derivado lejano de Ed, pero es más potente y pensado ya para su uso en terminales de video con memoria interna (buffer incorporado). Se continúa utilizando actualmente y se lo considera un programa liviano (si bien antiguamente no era el caso, y consumía muchos recursos en un mainframe). Acutalmente, es muypopular su versión modernizada, Vim. Podremos ingresando: vi La pantalla de Vi/Vim se divide en el buffer de edición y las dos líneas inferiores que consiste en la zona de status e ingreso de comandos. Normalmente opera en modo revisión, por lo cual no podremos modificar ni agregar ningún texto. Para pasar al modo de inserción de texto hemos de presionar la tecla i o bien Insertar. Sólo entonces podremos escribir o pegar en la Terminal el texto que querramos. Una vez que terminamos el insertado de texto en el buffer de memoria, podremos terminar el mismo presionando la tecla Fin.

Para pasar al modo de ingreso de comandos debemos presionar Esc, y al hacerlo el cursor pasará a la sección inferior de la pantalla, donde podremos escribir los comandos. Los mismos comienzan con : Por ejemplo, para guardar los cambios en el archivo recién editado en Vi, hemos de presionar Esc, y tipear el comando :w, que se encargará de almacenar en disco o "escribir" ("write"). Para salir de Vi se utiliza :q ("quit") del editor. Nos devolverá a la línea de comandos del router. Si quisiéramos salir rápidamente sin que nos pni nos informe nada, ingresamos :q!. Y si queremos guardar y salir, usamos :wq EMACS

Emacs es un editor de texto disponible para múltiples plataformas, incluyendo GNU. Como Vi o Nano, Emacs es un editor de texto con presentación en pantalla. Pero a diferencia de Vi, Emacs no es un editor con modo de inserción, lo que significa que cualquier carácter que ingresemos en Emacs se insertará automáticamente en el archivo, a no ser que incluya un prefijo de Comando.

Los comandos en Emacs son caracteres de control (realizados mientras presionamos la tecla Ctrl mientras tipeamos otro caracters) o en prefijos por un conjunto de caracters reservados Esc o Ctrl+x. Podremos tipear tecla Esc directamente (porque realmente es un carácter) y luego seguida por otro carácter. La tecla Ctrl debe mantenerse presionada mientras tipeamos el otro caracter.

Otra distinción entre Emacs y Vi consiste en que emacs es capaz de editar varios archivos a la vez. La ventana de Emacs puede dividirse en varias ventanas, cada una de las cuales contendrá una vista en el buffer de memoria. Cada buffer de memoria corresponde normalmente a un archivo diferente. Es por ello que muchos de los comandos listados a continuación se empleaan para leer ficheros y cargarlos en nuevos buffers, así como mover distinto contenido entre buffers diferentes .

Para cargar un archivo en Emacs podríamos utilizar:

emacs archivo

Si el archivo ya existe, se nos presentará entonces la primera página del texto en pantalla.

La manera más sencilla de aprender emacs es comenzarlo e ir avanzando en el completo tutorial en línea que incluye para esto presionamos Esc para ir al modo de comandos, e ingresamos help-with-tutorial. Comandos de Ayuda



19 october 2022

¿Cómo instalo PCem v16 en Ubuntu 20.04?

Aprovechando el tiempo ocioso en Puerta de Hierro, Juan Perón recibía a los visitantes más ilustres en su quinta 17 de Octubre de Navalmanzano 50 Madrid. Durante su estancia les explicaba cómo instalar el emulador de PC antiguas PCem en Ubuntu.

(...) Muy distinguidos señores.

Parecería común decir que todo lo pasado fue mejor. Este adagio, por extendido, no siempre es preciso, sino un mero deseo potenciado por las añoranzas del tiempo.

Pero en momentos de ocio, cualquier cosa nos viene bien.

El impulso por lograr nuevamente aquello que antes estaba bien es una natural condición humana que - como en la química - hemos de aprovechar como catalizador de las condiciones de lucha, aquellas que sin duda ha de darse en la Patria. En eso estamos y es fundamento de la lucha táctica pero también de la conducción estratégica. En informática, utilizar equipos del ayer suele tornarse complejo y difícil. El hardware antiguo puede no estar disponible, ser caro, y tener los lógicos problemas técnicos que los años suman a todo sistema.

Nuestro Movimiento ha indicado en los frontispicios de sus Academias que todo ha de hacerse en pos de los deseos y del bienestar al que aspira el Pueblo. Cuando hay una necesidad, nace un derecho. A tal efecto hemos creado lo que hemos dado en llamar "máquinas virtuales". No es otra cosa que simular con visos de perfección un sistema completo, tanto su software como su hardware, y sobre todo la manera en la que estos interactúan. La finalidad no es otra que la de poder tornar una máquina (nuestro equipo actual) en cualquier otra.

Asumamos virtualizar en función una IBM PC o sus clones. Pocas van quedando en condiciones operativas, y en el futuro habrá menos. Pero una máquina virtual de calidad permitirá correr en otras arquitecturas la añorada original. Como una Isabelita emulando a una Evita...

Pues bien... PCem es una poderosa máquina virtual liberada bajo licencia GPLv2, que nos permitirá emular completamente la operativa de arquitectura IBM PC. Originalmente fue diseñado para emular la antigua IBM XT, pero nuestro Movimiento la ha extendido a lo largo de numerosas iteraciones para incorporar la emulación de otros aparatos de época más moderna también.

Compilación e instalación de PCem

Como paso previo debemos asegurarnos de instalar en Ubuntu - el cual será el sistema madre - las librerías de software necesarias para la compilación de PCem. Para ello abrimos una terminal con Ctrl+Alt+T e ingresamos en ella el siguiente Comando de Organización:

sudo apt-get update sudo apt-get install git libsdl2-dev libwxgtk3.0-dev libopenal-dev libsoundio-dev

Como en todo proceso de compilación, nos haremos con el código fuente de PCem, lo descomprimimos y lo compilamos. Todo ello podrá hacerse simplemente pegando en la terminal el siguiente bloque de comandos de organización:

mkdir ~/Descargas/pcem/ ;

cd ~/Descargas/pcem/ ; wget https://pcem-emulator.co.uk/files/PCemV16Linux.tar.gz ; tar xvzf PCemV16Linux.tar.gz ;

./configure --enable-alsa --enable-release-build --enable-networking ; make ; sudo make install Tras aproximadamente un minuto, habrá finalizado la compilación y se habrá instalado en /usr/local/bin/. Podremos ahora ejecutar PCem por ver primera. Lo haremos desde la terminal ingresando:

pcem

La primera vez que lo hagamos el emulador creará un directorio oculto llamado ~/.pcem/, donde resguardará sus ficheros de configuración, y donde espera encontrar los ficheros primordiales con volcados de memoria ROM de las BIOS encontradas en los distintos hardware que quisiéramos emular. Naturalmente, como estas ROMs han de proveerse aparte, es lógico que PCem sea vago y nos indique la ausencia de las mismas mediante el mensaje "No ROMs Present! You must have at least one romset to use PCem.": Agregar BIOS a PCem Afortunadamente gracias a la acción revolucionaria del Justicialismo en nuestro sistema GNU con Linux, es absolutamente sencillo de hacernos con estas obligatorias ROMs de hardware del ayer. Presionamos Ok para cerrar la ventana, e ingresaremos en la terminal los siguientes Comandos de Organización:

cd ~/.pcem/ git clone https://github.com/BaRRaKudaRain/PCem-ROMs.git rm -r roms/

mv PCem-ROMs/ ~/.pcem/roms/ mkdir ~/.pcem/hdd/

El nuestro es un Movimiento que aboga por la Liberación, y de esta manera no hacemos otra cosa que liberar un software esclavizado por oprobiosas licencias privativas. En caso que nos dé prurito siquiera descargar ROMs de BIOS privativas, bien podríamos prescindir de lo anterior y utilizar estos comandos de organización para hacernos con el código de una BIOS de XT genérica liberada, así como el de un controlador de disco genérico liberado para PCem.

wget https://pcem-emulator.co.uk/files/genxt.zip ; wget https://pcem-emulator.co.uk/files/xtide.zip ; unzip gentx.zip ; unzip xtide.zip ;

Cualquiera sea la opción doctrinal que optemos, a partir de ahora ahora ejecutamos PCem el instalador debería arrancar sin problemas. Crear lanzador de PCem En el caso de Ubuntu, opcionalmente podremos crear un lanzador a PCem a fin de poder ejecutarlo sin tener que usar la terminal. El procedimiento es similar a cualquier otra aplicación. En el caso de Ubuntu Mate haremos clic con botón derecho del mouse sobre Aplicaciones en el panel superior, y en el menú contextual que aparece elegimos la opción "Editar Menús". Se abrirá una ventana con dos paneles. En el panel izquierdo elegimos la categoría "Herramientas de Sistema" y presionamos el botón "+Elemento Nuevo". Esto abrirá el cuadro de diálogo para "Crear Lanzador", donde rellenamos los campos de la siguiente manera y presionamos Aceptar. Ahora podremos ejecutar PCem desde Aplicaciones / Herramientas de Sistema / PCem.

Esta vez PCem se iniciará sin errores. Configurar un sistema emulado en PCem Para poder utilizar el emulador debemos diseñar un un sistema de hardware virtual. Para ello presionamos el botón New y le indicamos un nombre al equipo virtual. Acto seguido hemos de disponer del hardware necesario en el panel que aparezca. Sigtuiendo el principio nodal del combatir al Capital, todo el hardaware es gratuito. Pero, en valoración histórica podremos disponer de un equipo coherente con una etapa histórica determinada. En mi caso basaré una configuración en un un motherboard Award 430VX PCI de 1997 (el cual aparecerá listado como [Socket 7] Shuttle HOT-557, simplemente porque su BIOS cuenta con la moderna rutina de autodetección de las unidades de disco IDE, y es adecuado para versiones tardías de MS-DOS y para Windows 95 y 98SE. Para elegir un procesador debemos seleccionar la marca (Intel, AMD, Cyrix o incluso los baratos ITS "Winchip", y hacemos clic en el campo correpondiente al modelo, utilizando Flecha de Cursor Arriba y Flecha de Cursor Abajo para elegir el deseado. En mi caso escojo un Pentium MMX de 166 Mhz, aunque debemos saber que esto no será representativo de la velocidad sino de las instrucciones computacionales contenidas en el mismo (lo normal en 1997 era un Pentium 233 MMX, pero este no anda muy bien en mi caso). Mas tarde podremos ajustar la velocidad del microprocesador dependiendo del microprocesador real de nuestro equipo. La memoria RAM instalada en placa la podremos virtualizar, y si bien era usual unos 64MB, duplicamos dicha cantidad porque "es gratis". En la solapa video elegiremos la placa de video anhelada. Si bien no era la panacea, os recomiendo una S3 Virge o una Trident Tru64 por su excelente compatibilidad. Si tildamos la opción Voodoo Graphics podremos emular en PCem una de dichas sobrevaloradas tarjetas de video de 3dFx. De momento no lo haré. Nota: Si anhelan configurar una placa de video para juegos 3dFx Voodoo2 requerirán sus controladores, que podrán encontrar aquí. Dependiendo la versión de Window$ que deseen emular, podrán buscar la versión adecuada. Como referencia deben conocer que si usan el último controlador del año 2000 para Windows podrán operar, pero habrán de instalar en Window$ el famoso Dir€ctX 7 para que la Voodoo2 funcione adecuadamente, incluso si los juegos no requieren Dir€ctX7.

En la solapa de sonido encontraremos excelente emulación con la posibilidad de elegir una entre varias placas AdLib, Creative Labs Sound Blaster hasta el modelo SB128, o Aztec. Para ello hacemos clic en el campo Device y usando las flechas de cursor arriba y abajo.. Yo utilizaré la Sound Blaster AWE32 porque me place. En la solapa de dispositivos de almacenamiento es el de mas cuidado. El campo HDD refiere al tipo controlador de unidad de disco rígido que queremos emular. En este caso utilizaré el controlador [IDE] Standard IDE.

Los campos FDD son sencillas y refieren a las unidades de disquettes flexibles o "floppy". La unidad A: será una clásica disquetera de 3 1/2 pulgada y 1,44MB de capacidad, mientras que la B: será una útil de 5 1/4 pulgadas dy1,2MB. En el caso de la unidad de CD-ROM definimos la velocidad emulada de la misma.

La parte más compleja refiere a las unidades de disco. Os asistiré como didacta paternalista para llegar al éxito de forma automática, mas deben conocer que existen varias posibilidades de configuración manual para los parámetros del disco rígido virtual.

En la parte inferior derecha del cuadro encontraremos las definiciones para crear hasta cuatro unidades virtuales (C:, D:, E: y F), las cuales pueden definirse como Hard Drive (disco rígido), CD-ROM o Iomega ZIP. En nuestro caso utilizaremos un disco Master Primario CI como Hard Drive y presionaremos el botón New para "crearlo". Hemos de crear uno que se corresponda en espacio y características técnicas del motherboard que hicimos.

Este disco rígido virtual consiste realmente en un archivo de imágen con extensión .img localizado en algún lugar de nuestro directorio de usuario, y que de momento estará vacío. En el campo file: debemos indicarle a PCem qué nombre y dónde lo queremos localizar el archivo .img.

Normalmente PCem nos propone crear un archivo de imagen que simula un disco rígido de 251MB (63 sectores, 16 cabezas, 511 cilindros). Este disco era normal para un sistema de 1992, apto para MS-DOS o Window$ 3.1x. Al presionar OK habremos creado un disco rígido virtual virgen, de dicho tamaño.

En este caso utilizaré un disco diez veces mas grandes, de 2GB. Para ello ingresaré los datos de 63 sectores, 16 cabezas, 4160 cilindros, para un tamaño total de 2047 MB. En el campo file debo asignarle una ruta y nombre (por ejemplo, ~/.pcem/hdd/disco2gb.img Una vez presionado el botón OK, dicho disco quedará asignado como Unidad 0, Master Primaria (C:).

Podremos crear otros discos si quisiéramos hacerlo, a fin de figurar como unidades D: E: o F:

Nota histórica: las placas controladoras de disco variaron en el tiempo con distintas etapas de avance técnico de los clones IBM PC. En la década de los 80s las primeras IBM PC XT contaban con una plaqueta controladora de discos de norma MFM (para discos de entre 10 y 80 megabytes). A partir de la década del 90 la norma de los discos rígidos cambió a la IDE, y al poco tiempo las controladoras comienzaron a integrarse en la placa madre en lugar de colocarse como una placa separada. Los discos IDE se ofrecían entre los 100MB (c. 1992) hasta los 250 GB (c. 2007). La norma de comunicación SCSI surge en 1993 con discos mas veloces pero requería una placa controladora específica.

Para PCs de la era de 1997 podríamos querer configurar uno o más discos de 8.063 Megabytes cada uno (63 sectores, 16 cabezas, y 16383 sectores a 512bytes/sector, que nos será más adecuado para correr Window$). En tal caso deben recordar que ni Windows 95a ni MS-DOS aceptaban mas de 2.048 Megabytes por partición lógica, por lo que liego tendrán que "particionarlo en 4 unidades de 2GB con fdisk".

En el caso de motherboards más antiguos, sus controladoras de disco y BIOS podrían sólo ser compatibles con determinado tipo de discos previamente listados (como el caso de la XT, especialmente limitadas en las opciones de disco). Para una IBM PC XT de 1986, podríamos querer simular un disco MFM de 42MB (17 sectores, 7 cabezas, 733 cilindros a 512 bytes por sector) junto a su controladora MFM estándar de IBM.

Pues bienn, una vez que hayamos terminado, se nos presentará el nombre de la configuración. Para arrancarla hacemos doble clic en el nombre del equipo.

Esto dará inicio al proceso de arranque, tal cual la PC que inventamos. En este caso será un equipo con un clasico BIOS Award de finales de los 1997. Para que detecte el disco virtual era necesario configurarlo en la BIOS. Durante el POST presionando repetidametne Del ingresaremos a la BIOS y configurar los parámetros tal como se hacía siempre. Ingresamos al apartado Standard CMOS Setup que se usa para configurar los parámetros de disco, hora y disqueteras. En el caso del disco rígido, la controladora de disco XT-IDE (AT) permite autodetectar los parámetros del disco siempre y cuando el motherboard cuente también con la capacidad de hacerlo. Como la 430NV que hemos virtualizado dispone de tal facilidad, debemos poner los parámetros de discos primarios y secundarios en Auto ("Detección Automática"). Para ello usamos las flechas del cursor para movernos y las teclas AvPg o RePg para poner todo en Auto.

En el caso de las unidades de diskette A: y B: las indicamos con los parámetros que le elegimos al hardware virtual ya que las disketteras no se autodetectan.

Nota: en el caso de motherboards o controladores de discos anteriores a 1995 no era extraño tener que escoger a mano los discos contemplados, o bien especificar "a lo vikingo" el modo "user" e indicar los parámetros de cilindros, cabezas, sectores, y modo (normal, large o LBA). En el caso de este motherboard tambiñen contaremos con la función IDE HDD Auto Detection, una de las cosas.

También podremos usar Esc para volver al menú principal y dirigirnos a BIOS Features Setup.

Allí podremos cambiar el orden de dispositivos de arranque usando AvPag o RePag. Cuando hayamos configurado todo, volvemos al menú anterior de la BIOSy elegimos Save & EXIT. La BIOS nos preguntará si estamos seguros de querer salir y guardar los cambios, a lo que decimos si presionando y. Inmediatamente la "placa madre" arrancará. Debería detectar correctamente el "microprocesador" y contear la memoria instalada, a su vez que encontrar el disco IDE Master Primario, en este caso nomenclado como "PCemHD". Rl disco virtual no tiene formato ni sistema operativo. A partir de ahora podremos arrancar la PC emulada ya sea desde el archivo img de un diskette de arranque de MS-DOS o de Windows, o bien podríamos introducir un CD-ROM de instalación en nuestra lectora de CD (o montarlo como un fichero .IMG como os he indicado).

Suponiendo el primer caso debemos utilizarse un diskette de arranque en formato .img de MS-DOS 6.22 en castellano que podrán encontrar aquí. Para colocar el diskette de arranque (el disco 1) en forma de archivo .img en el emulador PCem, hacemoc clic con botón derecho sobre su ventana, y aparecerá un menú contextual. Vamos a la opción Disc/Change drive A: y buscamos el fichero disk1.img.

Acto seguido reiniciamos el equipo virtual desde el menú System / Ctrl+Alt+Del. La máquina virtual se reseteará en caliente y booteará con el diskette arrancable virtualmente introducido en la diskettera A:.

Si usamos un disco de arranque de DOS se nos presentará el instalador, pero aún no tenemos el disco preparado. Salimos de la instalación y ejecutamos el comando a:fdisk. Para preparar la partición en formato FAT16 elegiremos "Crear una partición lógica" primero debemos elegir la opción c para "Compatibilidad con DOS". Luego creamos la partición con la opción "n" para "Nueva partición. Usaremos la opción "t" para cambiar el tipo de partición a la 6 (FAT16). Finalmente "w" para escribir los cambios" y salir al sistema. Para formatear el disco c: ingresamos format c: /s

Nuevamente reiniciamos el equipo con el disquette 1 del sistema operativo (o bien, un CD-ROM de inicio) y lo instalamos.

Si el cursor del mouse quedó atrapado en la ventana del emulador y necesitamos poder utilizarlo fuera de su ventana en nuestro sistema Ubuntu, lo recuperamos con Ctrl+Fin.

Con esto podremos continuar cambiando los discos simplemente poniendo las imágenes IMG de diskettes no bien las necesitemos (por ejemplo, cuando lo solicite un instalador como el de un sistema operativo). Con esto podríamos instalar un sistema operativo en diskettes.

Montar una imagen .img

Los archivos de imagen IMG pueden montarse en Linux a través del Montador de Discos, pero si bien podremos leer dichos ficheros y hacer copias de su contenido en nuestro disco, normalmente no podremos grabar en ellos.

Desafortunadamente no se puede utilizar una carpeta compartida para utilizarla en PCem (lo cual facilitaría enormemente cargar programas en el disco virutal). Por tal motivo, en caso de querer agregarle contenido a una imagen a fin de innstalar software o cargarle otro tipo de contenido deberemos utilizar los archivos de imagen de unidades virtuales en forma de ficheros .img y montarlas en nuestro sistema de archivo. Para un buen resguardo técnico, es importante saber que es muy inconveniente hacer esto mientras PCem está en ejecución por lo que lo cerramos.

En el caso que les he descripto, como hemos creado una imagen con PCem, la buscaremos en ~/.pcem/hdd/. En nuestra terminal ingresaríamos:

cd ~/.pcem/hdd/

fdisk -l imagen.img

El programa fdisk nos listará las características del archivo img del disco virtual: el tamaño de cada sector, la cantidad de sectotres, y el sector de Comienzo "Comienzo". "Comienzo" informa en qué sector comienza el sistema de archivos, y depende de la imagen. Por ejemplo, si es una imagen de arranque de un sistema operativo.

Por ejemplo:

fdisk -l 2gb.img Disco 2gb.img: 2 GiB, 2115993600 bytes, 4132800 sectores Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x00000000

Dispositivo Inicio Comienzo Final Sectores Tamaño Id Tipo 2gb.img1 * 63 4120703 4120641 2G 6 FAT16

Si nuestro archivo de imagen tuviese múltiples particiones, se nos informarían con sus respectivos sectores de Comienzo. Tengamos presente que las llamadas particiones extendidas no son otra cosa que particiones lógicas estructuradas de una manera particular, que no podrán ser montadas. Sólo pueden montarse particiones a las cuales fdisk les identifica un Sistema de Archivos.

Pues bien señores, para montar esta partición tenemos que obtener el "Valor de Offset". El valor de Offset consiste en multiplicar el tamaño de sector por el comienzo del Dispositivo. En este ejemplo particular, la primer partición, el offset sería Tamaño de sector 512 x Comienzo 63 = 32256

Una vez identificado el Offset de 32256, ingresamos los comandos según la siguiente sintaxis:

sudo mkdir /media/usuario/directorio_de_montaje/

sudo mount -o loop,offset=(valor de comienzoxtamaño de sector) archivo_de_imagen.img /media/usuario/directorio_de_montaje/

...en nuestro ejemplo sería:

sudo mkdir /media/usuario/discovirtual/ sudo mount -o loop,offset=32256 ~/.pcem/hdd/2gb.img /media/usuario/discovirtual/

Ya tendremos montado el disco virtual en el directorio /media/usuario/discovirutal. Acto seguido usando sudo para tener derechos de administrador, podremos proceder a copiar allí lo que querramos, mediante:

sudo cp -r directorio/ /media/usuario/discovirtual/

¡El valor de offset es esencial para montar la imagen correctamente!

Es importante saber que ejecutar PCem con un disco montado no funciona. Debemos montar el disco después de arrancar PCem. Si tuviésemos montado un disco previamente, debemos desmontarlo y salir de PCem antes de volver a montarlo.

Crear una imagen de disco rígido para MSDOS en Linux:

Lo primero es contar con un disco rígido con espacio libre para crear una partición específica para PCem.

Para ello ingresamos:

dd if=/dev/zero of=imagen_a_crear.img bs=1M count=MB_deseados

Debemos obtener las especificaciones de una unidad de disco rígido antigua. Podrán ejecutar PCem y revisar la bIOS para saber qué unidades de discos estaban soportadas en la computadora emulada. La mayoría de las BIOS tenían varios tipos de discos rígidos que aceptaban. Con tales datos nos será fácil crear una partición de disco empleando fdisk:

fdisk -C cilindros -H cabezas -S sectores nuestra_imagen.img

Finalmente formateamos la unidad virtual con el programa format de MS-DOS. Luego agregamos la imagen a PCem en Settings / BIOS.



18 october 2022

¿Cómo actualizo desde Ubuntu 18.04LTS a 20.04LTS hoy?

Ubuntu 20.04LTS "Focal Fossa) se lazó oficialmente el 23 de abril de 2020. Se trata de la última versión con Soporte a Largo Término (LTS) de Ubuntu, y cuenta con parches de seguridad y actualizaciones disponibles hasta 2025.

Naturalmente que si utilizamos una versión más antigua de Ubuntu, podríamos querer tirar un viejo por la ventana y estar interesados en realizar una Actualización Política y Doctrinaria para la toma del Poder y actualizar nuestro sistema.

Normalmente recomiendo instalar las versiones LTS de Ubuntu desde cero para lograr los mejores resultados, pero en ciertos casos podríamos querer actualizarlas sin tener que reinstalar el sistema de cero.

En este tutorial os indicaré cómo realizar el procedimiento de actualización desde Ubuntu 18.04LTS (Bionic Beaver), a la versión nueva 20.04LTS recién salida. Os explicaré varios métodos a través de los cuales podrán lograr esta delicada tarea de sistema con sapiencia Justicialista, incluyendo algunas ayudas avanzadas y trucos que podrían ayudarlo a personalziar aún más el procedimiento de actualización. Antes de Actualizar… Existen algunos predicamentos que debemos considerar antes de avanzar con esta actualización del Movimiento:

El procedimiento de actualización puede realizarse tanto usando el administrador de actualización gráfico de Ubuntu o desde la línea de comandos en la Terminal. El Administrador de actualización de Ubuntu comenzará presentándonos un imopertinente aviso de actualización a la versión 20.04, sólo una vez que se publique la primera versión corregida de 20.04 (ej, 20.04.1). Esto suele suceder normalmente transcurridos unos tres meses desde el lanzamiento oficial.

Conforme se haya habilitado esta funcionalidad, se nos presentará un aviso similar al siguiente:

Aún así podremos actualizar Ubuntu ahora, antes de que ello ocurra. Sin embargo, el proceso por el momento incluye usar la terminal, y por lo tanto algún nivel de conocimiento técnico y confianza. Si no están seguros en el uso de la terminal, podrían querer aguardar hasta finales de junio de 2020 hasta que se produzca el lanzamiento de la versión 20.04.1 y aparezca la propuesta del actualizador gráfico.

Si desea proceder con l