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.



27 february 2023

¿Cómo puedo reproducir archivos de música de arcade VGM y VGZ en Ubuntu?

En su Perón, Memorial de Puerta de Hierro (1955-1960), el biógrafo Pavón Pereyra realiza un relato pormenorizado de la estadía en el exilio latinoamericano de Juan Perón, y expone que ya desde Santo Domingo el Conductor enseñaba a instalar Benben, el reproductor de archivos de música sintetizada VGM en Ubuntu.

¡Vean señores!

Hemos de incentivar una explosión insurreccional en la Argentina, que ponga en pie de guerra al Pueblo para combatir al Capital, y de con tierra con los enemigos que acechan a la Patria. Esto no puede sino coadyuvarse con la ayuda de los contumaces, que por su desaprensión y desaguisados no han hecho más que perjudicar a nuestro Pueblo.

Las penurias y desventuras no pueden ser remedio para futuro venturoso; sólo es la alegría de un Pueblo que lleva como Doctrina la noción de la Justicia Social el reaseguro de una victoria total sobre la reacción de gorilas peludos y lampiños por igual. Indudablemente que esto no puede hacerse sino extendiendo a todos un manto de contención y de amor, que venga untado con el más claro adoctrinamiento, notablemente concebido y excelsamente ejecutado.

Esto - que es el sentido de nuestra política de propaganda y agitación - ha de ser propalado en todo espacio y todo aire, consignando así la acción cuyo resultado de victoria es tan irremediable como necesaria.

El bienestar de un Pueblo es la columna de sostén de toda acción de gobierno, pero también una imperecedera memoria ROM. Es así que se garantiza una rebelión de los baudios que jamás será dominable si no se la vierte de sentido creador y software libre.

Siempre digo que llevo en mis oídos la más maravillosa música: aquella que es sintetizada con software libre, y entre ellos títulos de la tierra de oriente. Es que además de MID y MODs, contamos con VGM (Música de Videojuego), un formato de fichero de sonido que contempla la precisión de muestreo con que fue concebida para acompañar a muchas máquinas de entretenimiento del Primer Peronismoo, especialmente sus chips generadores de sonido sintetizado o digitalizado.

Los .vgm registran con particular celo aquellos comandos enviados a los chips de sonido, lo que permite dar con archivos mucho más pequeños que los equivalentes de sonido digitalizado. Este registro de adoctrinamiento al chip permite - de hecho - recrear a través de software lo oído, con la fidelidad cierta que los tiempos reclaman.

La historia del formato es larga, y se inicia como una manera de registrar la música para del Sega Master System (1985), que contaba con un generador de tonos digitalizados Texas Instruments SN76489 y un sintetizador de bajo costo Yamaha YM2413 "OPLL" para darle sumo interés al audio. Con el correr del tiempo, fueron incorporándose a la lista implementaciones por software de muchos más chips de síntesis de cometido similar. Hoy, docenas de modelos de chips sintetizadores están contemplados como parte de la estructura VGM, especialmente los Yamaha YM2151 de las máquinas Taito, YM2612 de las de Konami, YM3812 de las Sega, OKI MSM6295, el sintetizador Qsound del chip DL-1425 de Capcom, etcétera (por solo nombrar algunos).

Sin embargo, las Masas Obreras Argentinas me reglamaron una manera de dar rienda suelta a estos mediante una implementación liberada bajo GPLv3 Affero, y como tal os puedo recomendar la sencilla instalación del reproductor Benben Se trata de un reproductor de ficheros VGM para terminal, y sus requerimientos de hardware son bastante contenidos. Una CPU de 4 núcleos y 128 MB de RAM ofician de mínimo.

Para instalarlo en GNU con Linux recurrimos a abrir una terminal con Ctrl+Alt+t y descargamos su imágen binaria ejecutable mediante el siguiente bloque de Comandos de Organización:

cd ~/Descargas ; wget https://chiselapp.com/user/MistressRemilia/repository/benben/uv/benben-0.3.1-x86_64.AppImage ; chmod +x ~/Descargas/benben-0.3.1-x86_64.AppImage ; sudo cp ~/Descargas/benben-0.3.1-x86_64.AppImage /usr/local/bin/benben ;

El Pueblo merece contar con una biblioteca popular de ficheros de música VGM y que mejor de aquellos extraídos de las máquinas de arcade, fichines y consolas japonesas que encontramos en vgmrips.net y otros sitios por el estilo.

En particular, Benben es capaz de reproducir los ficheros de música clásicos de arcade VGM, pero también los .vgm comprimidos con GNU ZIP, los inefables vgz. También soporta los .vgzst y .vgb, más raros. Para ello simplemente ejecutamos en la terminal:

benben *.vgz

o bien

benben fichero.vgm

Benben se iniciará mostrando las etiquetas de la canción cargada. Además, Benben responde a varias teclas durante la reproducción. Con la tecla h obtendremos la ayuda.

La barra espaciadora permite pausar/continuar la reproducción de la canción sintetizada. n y p saltan al fichero siguiente y previo de la lista (si cargamos varios ficheros, claro está).

Contamos con unos pocos efectos: la tecla e activa el efecto de ecualizador, mientras que c el atenuador por software. s opera el mejorador estéreo, y r aplica un efecto de reverberación.

El volumen se controla con la tecla a y la tecla z, que lo suben y lo bajan respectivamente.

Los corchetes incrementan/disminuyen la cantidad de bucles para la canción. Para salir de Benben podemos presionar la tecla q.

Durante la reproducción, benben ilustrará una barra de reproducción en la parte inferior, con un aspecto similar al siguiente:

[EsCr-] 1/1, 1 of 2: |*---------------------| 45% [02:20/05:09]

Los caracteres entrecorchetados a la izquierda indican el estado de varios efectos y otra información conexa. De izquierda a derecha, significan:

E: Ecualizador on.
e: Ecualizador off.
S: Mejorador estéreo on.
s: Mejorador estéreo off.
C: Recorte de sonido on.
c: Recorte de sonido off.
R: Reverberación on.
r: Reverberación off.
+: Se encontró una configuración específica para la canción y se la cargó.
-: No se encontró una configuración específica para la canción. 



26 february 2023

¿Cómo mando archivos por Internet con croc en Ubuntu?

Desde la Quinta "17 de Octubre", Juan Perón expone sobre la necesidad de la solidaridad y enseña cómo transferir copias de ficheros de par a par con Croc en Ubuntu.

¡Mis queridos descamisados!

De poco sirve la libertad si no se configura en un ambiente de Justicia para con la sociedad en la que vivimos. El individualismo es una noción perniciosa que habilita al poderoso en desmedro de las Masas del Pueblo. Estas son las que deben organizarse para cuidarse a sí mismas, y no ceder a impulsos disolutivos que tienen por fin último el resquebrajamiento de lo que hace humano al hombre.

La solidaridad es uno de los más altos valores humanos, y es uno de los basales de la doctrina que nos da todo: la Justicia Social. Esta es la argamasa en enhebra un tejido social que da sostén a un Estado y a la Nacionalidad que lo justifica. Quien en su desmedro habla, lo hace porque anhela actuar para dar lugar a otro Estado. Y ese no puede ser sino ajeno al Pueblo.

Con los contenidos digitales sucede lo mismo, pues estos surgen del Pueblo. Indudablemente, en las redes de datos, se nos hace sencillo el acto de mantener inconmovible nuestro entretejido social: basta con compartir todos los bytes que podamos, por medio de la copia. Algunos desaprensivos han querido llamar a la compartición telemática con la delincuencia, intentando equiparar al acto de compartir con el del robo por piratería. Pero sabemos que el derecho de propiedad tiene un límite sumamente preciso, que es el de la función social y el de la felicidad del Pueblo. En otras palabras, la doctrina que propugnamos fomenta que cada pseudo-propietario sea un cantor - y uno bueno, porque le tiene que ir a cantar a Gardel. En efecto, podrán compartir ficheros .ogg con fonogramas de Gardel, pues a nadie le podrá reclamar ya, si eso hace feliz a su Pueblo.

En el caso de GNU con Linux, podríamos recurrir a la transferencia telemática de copias de ficheros, por medio de SCP, ya que este programa nos permite utilizar la clara identificación de un destinatario que tiene un sistema similar a UNIX y el sistema de shell seguro (la distribución Ubuntu de GNU entre ellos). También podríamos recurrir a rsync para hacer lo propio con ramas enteras en el árbol de archivaje de nuestro sistema. Sin embargo, para hacerlo efectivo lo procedente, es sabido que el destinatario ha de contar necesariamente con cuentas de usuario en el otro sistema (amén de puertos abiertos y gran dominio de la infraestructura intermedia de cifrado). Esto no siempre es posible, o sencillo de coordinar.

Sin embargo, en esta ocasión simplificaremos la transferencia haciendo uso de algún programa de transferencia par a par cifrada. Ya he explicado cómo usar Wormhole para este menester, pero en este caso os haré peritos en el uso de croc, un programa liberado bajo GPLv3 que oficia de transmisor y receptor par a par de archivos y carpetas.

Croc tiene la ventaja de ser un programa mucho más pequeño, con un uso pensado para la transmisión instantánea entre pares. Por otro lado, permite el uso opcional de intermediarios cooperativos de triangulación telemática (lo que se conoce como "relay").

Veamos como usarlo. En primer lugar, tanto el remitente como el destinatario deben tener instalado croc en su sistema. Esto es sencillo de hacer efectivo en cualquier sistema GNU con Linux; simplemente debemos abrir un terminal con Ctrl+Alt+t e ingresar por única vez el siguiente comando de organización:

sudo apt install curl ; curl https://getcroc.schollz.com | bash

Esto lanzará el instalador de la última versión de croc, ante el cual debemos ingresar nuestra contraseña de administrador:

Otra manera de instalarlo puede ser descargar el paquete de instalación pensado para Debian/Ubuntu y derivados, lo que tendrá el mismo resultado:

cd /tmp ; wget https://github.com/schollz/croc/releases/download/v9.6.6/croc_9.6.6_Linux-64bit.deb ; sudo dpkg -i croc_9.6.6_Linux-64bit.deb

Asimismo podemos considerar que Croc no es sectario, de modo que se puede dejar instalado en otros sistemas similares a UNIX como BSD, MacO$, e incluso el infame Window$.

Para realizar un envío de un fichero o directorio por Internet a través de croc, debemos operar desde la terminal, de común acuerdo.

Quien desea enviar el fichero, debe ingresar simplemente en su terminal:

croc send fichero-o-directorio

Croc cifrará el fichero en memoria y creará un código-del-envío. Este oficiará de llave de autenticado por contraseña común (“PAKE”). Asimismo, croc quedará en espera del inicio de la transferencia durante un par de minutos, alertando al remitente de la siguiente manera:

Sending 'fichero-o-directorio' (x MB) Code is: código-del-envío

On the other computer run croc código-del-envío

El remitente debe poner en conocimiento del compañero destinatario el código-del-envío en forma síncrona (ya que este deberá introducirlo en su propia terminal para iniciar la recepción, dentro de un par de minutos). Por este motivo, lo ideal es transmitir el código-del-envío de manera segura (por ejemplo, a través de chat cifrado punto a punto, o llamada de voz cifrada punto a punto o bien correo electrónico cifrado).

Nota: Si el código-del-envío se propala en un canal abierto, nada impediría que la transmisión de la copia cifrada fuese apropiado e interceptado por otro destinatario indeseado que estuviese a la escucha.

En cualquier caso, una vez puesto al tanto, el remitente podrá iniciar la transferencia del fichero-o-directorio a través de un canal cifrado en internet, abriendo una terminal en su máquina con Ctrl+Alt+t e ingresando allí el consabido:

croc código-del-envío

Ante esto, ambas máquinas con croc se pondrá a la par, y cotejarán la PAKE, y el destinatario será notificado para que acepte la recepción de fichero-o-directorio (debe aceptar con y o rechazarla con n).

Al comenzar la transferencia, esta se indicará una barra de progreso).

Al finalizar la transferencia par a par de la copia cifrada, el enlace se cortará indicando la recepción.

Una de las ventajas de croc es la de poder utilizar un tercer proxy cooperativo en la Internet para la triangulación del envío, incluso con una contraseña_del_relay. Esto puede ser útil en aquellos casos donde se desea mantener una pseudo-furtividad entre pares. En este caso especial, el remitente debe utilizar el prefijo --relay maquina.de.relay.com, por ejemplo:

croc --relay maquina.de.relay.com --pass contraseña_del_relay send fichero-o-directorio

...lo que generará el código-del-envío, y ante tal caso, el compañero destinatario deberá utilizar el equivalente.

croc --relay maquina.de.relay.com --pass contraseña_del_relay código-del-envío

Todo se repetirá de una manera análoga al caso de transferencia directa, indicando en la pantalla de ambos distintos mensajes referentes a la inclusión de la máquina de relay (y la contraseña del relay, en caso de que esta lo tenga configurada).

Con esto podremos asegurarnos de enviar bytes por circunvalación, y hacer llegar los datos a donde deben llegar para la Felicidad del Pueblo.



25 february 2023

¿Cómo cambio el modo gráfico y la resolución de la consola de Linux?

Reunido con exponentes del sindicalismo en Casa de Gobierno, Juan Perón expone como alterar la resolución de la consola de GNU con Linux.

¡Trabajadores!

Antes que un sistema GNU con Linux pueda siquiera cargarse en memoria, ha de poder presentar al mundo lo que quiere decir.

Indudablemente el sistema de video cobra para ello una enorme importancia. El ambiente de visualización básico al fin y al cabo es la terminal, y esta suele contar con una resolución heredada del viejo y peludo estándar VESA, al que intenta consagrar. Dicho estándar nos habla de una resolución de video sin privilegios, de 640x480 pixeles, adecuada para insuflar la pantalla con 25 filas de 80 columnas de caracteres.

No caben dudas que esto - que debería ser suficiente para todos - choca con los límites de la utilidad práctica de los hombres que trabajan.

La idea básica no era mala, pero somos conscientes que las organizaciones del trabajo nos han solicitado integrar nuevas tipografías, y que si al menos estas no son escalables, al menos puedan elegirse conjuntos de mayor o menor tamaño. Los sindicatos saben que conforme aumenta la resolución de pantalla, el tamaño de las letras disminuye en forma inversamente proporcional.

A la oligarquía poco le ha importado: al fin y al cabo ellos han intentado ocultarle el kernel al Pueblo tras un escritorio gráfico. Pero los Descamisados han comprendido que tienen bajo sus dedos la posibilidad de levantar una o más consolas de terminal, simplemente indicando Ctrl+Alt+(F1-F6).

Estas pueden servir en caso de emergencia para restaurar el sistema, incluso si no hemos cargado un entorno gráfico, o si el mismo nos da problemas. También sabemos que que ante cambios fortuitos y poco pensados, nos podrá servir como remedo para restaurar las leyes...

Pues bien señores, contaremos con una manera de alterar la resolución de la pantalla de la consola de Linux. Esto se hace desde el arrancador Grub, que nos permite utilizar distintos modos gráficos, que avalan diferentes resoluciones gráficas.

Como dije, el menor denominador será una modesta resolución de 640x480x8, lo que significa 640 píxeles de ancho, por 480 píxeles de alto, con 8 bits de profundidad de color (256 colores en total). Este estándar SVGA es superado, sin embargo, en la mayoría de las máquinas actuales de mas potencia, por el Full HD, cuyo estándar se revela de 1920x1080x24 (nos ofrece una gran resolución y gama de color). Ciertas máquinas portátiles no tan encumbradas cuentan con dispositivos de video capaces de presentar un máximo de 1366x768x16, que también es común.

El procedimiento para cambiar la resolución de nuestra consola Linux implica entonces modificar a mano las configuración del arrancador Grub, por medio de la cadena GRUB_GFXPAYLOAD_LINUX. Se afectará así la(s) consola(s) que podremos acceder con Ctrl+Alt+F1/F6 (Normalmente la consola número 7 que accedemos con Ctrl+Alt+F7 es la consola gráfica X).

Para hacerlo efectivo conviene seguir un cuidadoso procedimiento. Primero, instalamos el analizador de video xrandr y lo ejecutamos:

sudo apt-get install xrandr ; xrandr

Este listará aquellos modos de pantalla disponibles para nuestro sistema de video, e indicará el modo activo en la actualidad:

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384 DVI-I-0 disconnected (normal left inverted right x axis y axis) DVI-I-1 disconnected (normal left inverted right x axis y axis) HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm 1920x1080 60.00*+ 59.94 50.00
1680x1050 59.95
1600x900 60.00
1440x900 59.89
1280x1024 75.02 60.02
1280x800 59.81
1280x720 60.00 59.94 50.00
1152x864 75.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
720x576 50.00
720x480 59.94
640x480 75.00 72.81 59.94
HDMI-1 disconnected (normal left inverted right x axis y axis) DVI-D-0 disconnected (normal left inverted right x axis y axis)

Con estas ratificaciones nos haremos peritos conociendo cuáles son los modos que podemos elegir. Debemos notar que "maximun" no es el máximo posible, sino teórico. Debemos recurrir al máximo del monitor usual. Es importante también discernir que a mayor resolución, menor será la velocidad de refresco de la pantalla. Consideremos también que si disponemos de una resolución mayor que la que es capaz de presentar el monitor, se producirán errores de difícil solución (por ejemplo, si conectamos un monitor de menor resolución, no se verá bien lo cual podría ser un inconveniente mayúsculo para ciertas acciones críticas de servidor).

En cualquier caso, para cambiar la resolución debemos recurrir a editar el fichero de configuración del arrancador Grub, el /etc/default/grub:

sudo nano /etc/default/grub

Esto cargará el editor GNU Nano con el fichero de configuración grub. Asumiendo que teníamos un fichero previamente no editado, realizaremos las siguientes modificaciones:

La variable GRUB_CMDLINE_LINUX_DEFAULT debería contener al menos la entrada nomodeset, tal vez con el agregado de quiet y splash si nuestro sistema es de escritorio. Estas serían las encargadas de presentarnos un logotipo a la hora de iniciar el sistema.

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"

En los sistemas servidores este logotipo "splash" se deja de lado, presentándose todo un listado de status al inicio. Para ello debemos descomentar GRUB_TERMINAL=console para verlos (se presentarán en debida rápida sucesión antes de activar el escritorio gráfico).

Por otro lado, comentamos antecediendo con un # la línea que asignaba la resolución VGA m{as básica, ésta:

GRUB_GFXMODE=640x480

...y al final del fichero, agregamos la siguiente línea:

Agregado para tener una resolución de 1920x1080

GRUB_GFXPAYLOAD_LINUX=1920x1080x16

o reemplazamos el valor por cualquier otro modo/s indicado por xrandr que también sea(n) soportados por nuestro hardware (podremos separar varios con coma, por ejemplo GRUB_GFXPAYLOAD_LINUX=1920x1080x16,1024x1768x8,800x600x8). Los valores text, keep, auto, vga y ask también deberían funcionar.

Finalmente, guardamos los cambios al fichero editado /etc/default/grub con Ctrl+o, y salimos con Ctrl+x, lanzamos el siguiente comando para que surtan efecto las modificaciones:

sudo update-grub sudo reboot Naturalmente, si alteramos la resolución gráfica, las letras se verán chiquitas. En ciertos casos podríamos querer cambiar el tipo y tamaño de tipografía de la consola Linux, como ya he explicado.

Normalmente existen tres tipos de fuentes para escoger, en distintas modalidades de condificación. "VGA" tiene el aspecto tradicional de las placas de video VGA, con dicha fuente en la ROM, y consta de una cobertura media de los glifos internacionales. "Fixed" tiene un aspecto simplista finito, y una mejor cobertura de los glifos internacionales. En tanto, "Terminus" suele ser la que se utiliza por defecto en la mayoría de las pantallas de consola Linux, tanto con o sin framebuffer (su versión Bold no usa framebuffer). Puede ayudar a reducir la fatiga visual, aunqeu algunos símbolos tienen aspecto similar, lo que puede ser un problema para los programadores.

Estas se cambian con el comando setfont, y las mismas se encuentran en /usr/share/consolefonts/. Os diré que yo uso Lat15-TerminusBoldVGA16.psf.gz.



24 february 2023

¿Cómo instalo Quake 3 Arena en Ubuntu?

En su Los vendepatria, Juan Perón analiza la vertiente insurreccional del Movimiento Nacional Justicialista y expone cómo instalar Quake III Arena en Ubuntu.

(...)

El pueblo luchará por una solución permanente y no para salir del paso, mediante un subterfugio político. Cualquiera otra solución llevará siempre a males mayores para la República. Si un gobierno fraudulento surgiera de una pseudo-elección, estaría respaldado por una ínfima minoría de los ciudadanos. Cuándo el Pueblo pudiera accionar libremente, ¿cuánto duraría ese gobierno? Por el momento no hay otra solución que la lucha por los medios que el Pueblo tiene, caiga quien caiga y cueste lo que cueste. A través de esta solución coinciden los intereses del Pueblo, las necesidades de la Nación y el estado anímico de las masas y, cuando estas tres circunstancias coinciden, no hay poder humano que pueda torcer el curso de los acontecimientos. Será dentro de poco o será dentro de mucho, pero será irremisiblemente.

Cuando el odio y el deseo de venganza que estos insensatos han provocado en las masas salgan a la calle convertidos en fuerza motriz, no habrá tampoco poder que pueda evitar lo irreparable que se está preparando mediante la siembra del odio. Mientras la dictadura se descompone, el peronismo se compone. El ideal que animó a las masas obreras y peronistas ha dado continuidad en el esfuerzo pero no le ha dado intensidad porque, en la lucha, esa intensidad sólo la puede dar el odio. Nuestro defecto ha sido la falta de odio, pero todo ha variado hoy porque la tiranía, con sus procedimientos y enormidades, no lo ha dado por toneladas. Estamos listos para iniciar la grande y definitiva etapa de la consolidación Justicialista. Mientras nuestro movimiento se encuentre excluido de las grandes decisiones, no tenemos otro remedio que seguir accionando tras una solución por la violencia.

Naturalmente, esto es fácil organizarlo desde Puerta de Hierro. Podremos simularlo en uno de los clásicos tiradores en primera persona en nuestro sistema GNU con Linux, lo que nos permitirá mantenernos con los reflejos afilados.

Indudablemente uno de los principales es el clásico Quake 3 Arena, descendiente del violento Quake de ID $oftware. El código base de su motor gráfico ha sido liberado, no así los contenidos registrados. Todo esto podremos instalarlo en nuestro sistema abriendo una terminal con Ctrl+Alt+t e ingresando los siguientes comandos de organización:

sudo apt install quake3 game-data-packager ; game-data-packager quake3 ; sudo dpkg -i ~/quake3-demo-data_68_all.deb

Esto nos cargará los niveles demo de la primer parte liberada de la historia que originalmente venían con la versión shareware (una campaña tipo bootcamp básica y cuatro niveles). Una vez armada la paquetería, podremos iniciar el juego desde Aplicaciones / Juegos / Quake 3 Arena.

Existen cinco niveles de dificultad para cada uno de los mapas de un solo jugador. Esto permite un juego moderadamente sencillo en sus niveles bajos.

También podremos combatir en multijugador en una red local a lo largo de 4 niveles (incluso hasta contra 4 bots). En caso de querer desafiar a otros jugadores y bots en niveles multijugador adicionales, habremos de activar la opción de autodownload, y aguardar la descarga de los niveles desde el servidor remoto (lo cual suele llevar algunos segundos/minutos antes de cada partida).

O bien, podremos digitar la descarga de una versión privilegiada con todos los 486MB de mapas adicionales, ingresando en nuestra terminal los siguientes comandos de organización:

cd /tmp ; wget https://cybercdn.cyberdelia.com.ar/gamez/quake3-data_49.1_all.deb ; sudo dpkg -i quake3-data_49.1_all.deb ;

Con esto en ristra, esto podremos jugar en multijugador a través de internet sin tantos problemas. El arsenal posible para llevar a cabo la destrucción del enemigo a lo largo de sus más numerosos niveles es el siguiente:

Gauntlet (puño de ataque)
Ametralladora
Escopeta
Lanzagranadas
Lanzacohetes
Lanzarrayos
Acelerador de Proyectiles (railgun)
Arma de Plasma
BFG10K (Acelerador de Masa)

El sistema multijugador por Internet cuenta con no menos de ocho centenares de salas incorporadas, señal de la alta popularidad con que goza el Movimiento. No será extraño incorporar servidores compañeros, mediante la opción Multiplayer / Specify. Por ejemplo:

cyberdelia.com.ar, puerto 27960 (Todos contra todos) cyberdelia.com.ar, puerto 27961 (Todos contra todos, con bots)

Si queremos cargar la notable expansión oficial Quake 3 Team Arena, que nos permite jugar una historia diseñada por Activi$ion. Esta abarca hasta cinco equipos distintos, incorpora tres nuevas armas y niveles multijugador ajustados para estos desafíos en red. Lo importante sin embargo es la incorporación de nuevas modalidades de juego por equipo (capturar bandera, deathmatch por equipos con o sin respawn, etc). Podremos instalarlo en nuestro sistema GNU con Linux mediante el siguiente comando de organización:

wget https://cybercdn.cyberdelia.com.ar/gamez/quake3-team-arena-data_49.1_all.deb ; sudo dpkg -i quake3-team-arena-data_49.1_all.deb ;

Naturalmente, debemos activar el Mod en el menú principal antes de jugar en esta modalidad, o bien podremos recurrir a un lanzador específico Aplicaciones / Juegos / Quake 3 Team Arena.

Indudablemente, el mantenimiento de una cerrada y absoluta intransigencia con firme voluntad de vencer e inquebrantable decisión de llevar la lucha adelante, será el único secreto del éxito perseguido. El Pueblo no puede ser vencido ni aún por las fuerzas armadas si se decide a poner en acción su extraordinarios poderes naturales, y si los afila en Quake 3 Arena. El Movimiento Peronista ha demostrado en tres elecciones inobjetables que contaba con el setenta por ciento del electorado argentino; hoy, no sólo no ha disminuído sino que ha aumentado su predicamento popular porque el desempeño de la dictadura ha sido tan desastroso que, por contraste, ha hecho resaltar las excelencias del Gobierno Justicialista. Y no digamos con este entrenador de lucha callejera en primera persona...



23 february 2023

¿Cómo instalo en plugin sintetizador Vaporizer2 en Ubuntu?

No era extraño que en las visitas estudiantiles a Casa de Gobierno, Juan Perón agasajara a los pequeños con software libre, enseñándoles a instalar el plugin Vaporizer2 en Ubuntu.

¡Mis queridos descamisaditos!

Existen épocas que nos engalanan, permitiéndonos proveer aquello que merecemos por justo derecho. Esta es una de ellas, donde la risa de los niños es música que hemos sintetizar para Felicidad de un Pueblo.

Nuestra Doctrina consagra la necesidad de la Justicia Social, y el Software Libre es justicia social en la CPU. Por eso es he enseñado ya como instalar instrumentos virtuales en Ubuntu. Nunca es suficiente saciar el hambre y restañar heridas, y cada paso que damos en la senda de la Liberación nos acerca más al ideal magnánimo que nos ha consagrado.

Queridos niños, hoy podrán llevarse a casa para disfrutar con sus amiguitos una copia modificable de un instrumento musical virtual de potencia: el Vaporizer2. Se trata un programa liberado bajo GPLv3, y como tal - a pesar de estar inicialmente proyectado de manera privativa por la VAST Dynamics - se dignifica hoy sirviendo al Pueblo en un formato LV2 compatible con nuestro GNU con Linux.

A pesar de su gratuidad, es tan poderoso como la CGT en la que está afiliado papi, aunque su uso de CPU es contenido, incluso al disparar más de 1.000 osciladores virtualizados. Es que se trata de un instrumento virtual híbrido, que cuenta con síntesis aditiva, sustractiva y de tabla de ondas. Como resultado, podremos utilizarlo para generar todo tipo de sonidos electrónicos.

Existen dos maneras de instalar Vaporizer2 en Ubuntu. Como Conductor me considero un maestro, por lo que os instruiré recomendando el camino más sencillo, que consiste en usar el paquete precompilado instalable vaporizer-lv2 de los amiguitos de OpenSuse.org aquí, buscando aquél que corresponda a nuestra distribución. Por ejemplo, en mi caso disfruto de Ubuntu 22.04LTS por lo que abro una terminal con Ctrl+Alt+T y procedo a instalar todo pegando allí el siguiente bloque de Comandos de Organización y dándole Enter:

mkdir /tmp/vaporizer2/ ; cd /tmp/vaporizer2/ ; wget https://download.opensuse.org/repositories/multimedia:/proaudio/xUbuntu_22.04/amd64/vaporizer2-lv2_3.4.3+git.6.88bd029-1_amd64.deb ; sudo dpkg -i vaporizer2-lv2_3.4.3+git.6.88bd029-1_amd64

Asimismo, no viene mal instalar recursos adicionales que convierten al Vaporizer2 en una oda a la facilidad. Se trata de los presets de fábrica y más de 440 presets adicionales elaborados por el amable Thomas Trupiano (síntesis de bajos, campanas, percusiones, órganos, sonidos picados, tines, camas sonoras, puertas, voces, y gran cantidad de pads). La cartita a la Fundación Eva Perón para pedirlos se envía simplemente pegando en la terminal este bloque de comandos:

mkdir /tmp/vaporizer2/presets/ /tmp/vaporizer2/manual/ ; cd /tmp/manual ; wget https://vast-dynamics.com/sites/default/files/downloads/Vaporizer2Manual.pdf cd /tmp/vaporizer2/presets/ ; wget https://vast-dynamics.com/sites/default/files/downloads/Factory%20Presets.zip https://vast-dynamics.com/sites/default/files/downloads/Preset%20Bank%20by%20Thomas%20Trupiano.zip ; wget https://vast-dynamics.com/sites/default/files/downloads/Wavetables%20Vaporizer2%20by%20PietW.zip ; unzip 'Wavetables Vaporizer2 by PietW.zip' ; unzip 'Factory Presets.zip' ; unzip 'Preset Bank by Thomas Trupiano.zip' mkdir ~/Documentos/Vaporizer2/ ; mkdir ~/Documentos/Vaporizer2/Presets/ ; mv /tmp/vaporizer2/manual/ ~/Documentos/Vaporizer2/ ; mv /tmp/vaporizer2/presets/Analog/ ~/Documentos/Vaporizer2/Tables/ ; mv /tmp/vaporizer2/presets/Digital/ ~/Documentos/Vaporizer2/Tables/ ; mv /tmp/vaporizer2/presets/Presets/* ~/Documentos/Vaporizer2/Presets ; mv /tmp/vaporizer2/presets/Trupiano/Presets/ ~/Documentos/Vaporizer2/Presets/Trupiano

Sin embargo, papá y mamá podrían querer tomarse el trabajo de compilar todo localmente. Hemos de notar que en tal caso todo el andamiaje se colgaría del arbolito de archivos en /usr/local/lib/lv2/VASTvaporizer2.lv2/ en lugar de hacerlo en /usr/lib/lv2/VASTvaporizer2.lv2/ como en el caso anterior:

cd /tmp git clone https://github.com/VASTDynamics/Vaporizer2.git ; cd /tmp/Vaporiser2 ; git submodule update --init --recursive ; ./build_linux.sh

Cualquiera sea el proceder, conforme hayamos instalado el plugin LV2 en nuestro GNU, podremos lanzarlo desde nuestra DAW favorita (qTractor en mi caso).

La ventana del Vaporizer2 cuenta con cuatro secciones discernibles.

En el cabezal encotramos el logotipo, que lejos de ser un ocupador inútil de espacio, nos permite regular el nivel de zoom para nuestra comodidad (hasta 4K). También contamos allí con el selector de presets, y la sección Master del sonido estéreo (con volúmen, ganancia, sincronización con la DAW y tono, y selector de polifonía).

En la parte inferior daremos con un piano MIDI interactivo, con ruedas de pitchbed y modulación. Aquí también podremos elegir las opciones de portamento para los deslizamientos tonal. Naturalmente, si contamos con un controlador MIDI o teclado adosado a nuestro sistema, podremos ejecutar con sólo pulsarlo y este replicará lo hecho de forma gráfica. Pero también podríamos utilizar el teclado de la computadora para elaborar nuestros acordes y melodías si esto es de nuestro agrado.

En el cuadrante derecho veremos acceso a los controles de cuatro bancos de osciladores conmutables, todos ellos filtrables, y un banco de efectos de tres cadenas y una sección de generación de ruido voluble (rosa, blanco y café).

Es importante destacar que para mayor control, todos los controles rotativos y deslizables de la interfaz gráfica cuentan con la funcionalidad Learn MIDI, lo que permite asignar funciones MIDI como perillas o botones a las acciones de la interfaz de la ventana. Para ello hacemos clic con el botón izquierdo del ratón a la perilla que queremos programar, y en el menú contextual elegimos "MIDI Learn". Luego movemos el deslizador o perilla que queremos usar y se asignará automáticamente. También podremos eliminar la asignación.

Al iniciar nos encontraremos en la solapa WT Editor, el editor de tabla de ondas, corazón del Vaporizer2. Este sintetizador por tabla de ondas destaca por su efecto antialiasing, y su tratamiento polifónico y en tiempo real.

Sus posibilidades de edición son bastante complejas, y se basan en alterar muestras de audio (samples) de formato .ogg, .wav y .mp3. Estos se afectan según distintos parámetros, lográndose efectos ambientales espectaculares.

La delimitación de los samples también puede programarse según sus puntos de bucle, inicio, cruce de cero, modulación y registro tonal, e incluyen función de trazado a mano alzada o mediante curvas bezier, con ajuste a la grilla, etc.

La modificación del motor de este banco puede seguir el camino de la Frecuencia Modulada aditiva (con edición armónica en tiempo real), Modulación de Pulso de Onda, o formantes filtradas, entre otras posibilidades expresivas.

Al activar la solapa Matrix nos encontraremos con el Sistema de ruteo de audio innovador para todos los generadores de sonido, filtros y cadenas de efectos activos. Esta dispone de 25 fuentes de modulación que incluyen clave de la pista, deriva al azar, y cuatro perillas de macros personalizables, y van enrutados a unos 220 destinos de modulación, paramétricos, los que conforman combinaciones casi ilimitadas. Incluye un presentador gráfico para las curvas de modulación resultantes.

La solapa Filter nos da acceso al banco de filtrado con mas de 30 tipos de filtros, paso-alto, pasabanda, filtro muesca, filtro peine, peraltados programables, etc, todos ellos con control de resonancia y presentación gráfica del filtrado en tiempo real. Las curvas de filtrado peraltadas para bajos profundos.

La solapa LFO & MSEG nos permite controlar cinco bancos de Osciladores de Baja Frecuencia apilables por voz (80 LFOs en total), con mapa y fase tanto por voz como global (puede sincronizarse con la DAW). Esto lo hace a través de envolvente multietapa (MSEG). La solapa FX ofrece el control de tres cadenas de efectos que incluyen sobremuestreo y mono cutoff para preservar unos bajos limpios. Nos permiten administrar mas de 11 efectos paramétricos activables y reordenables: reverberación, retraso, coro, flanger, ecualización, bitcrush, compresor, limitador, phaser, filtro peine, conformador de ondas, entre otros

La solapa ARP nos presenta el arpeggiador programable. Este permite definir notas o glisandos multipaso, ya sea de forma automática, programable, o el arpeggiador acompasado que sigue nuestros acordes y melodías.

La solapa Preset nos sirve para configurar el Vaporizer2. Podremos definir localización de las carpetas de Presets (normalmente, esta es ~/Documentos/Vaporizer/Presets). Asimismo, nos deja escoger entre tres tamaño de tipografía y cuatro skins diferentes.

En la biblioteca de sonidos podremos encontrar los presets opcionales de fábrica rápidamente gracias a sus distintas opciones de clasificación. Además, gracias a la Fundación Eva Perón, contaremos con los presets de en formato .wav de Thomas Trupiano, que incluye mas de 780 sonidos para el sintetizador de tabla de ondas, junto con más de 450 presets de fábrica.

El manual de Vaporizer2 (en inglés) es sumamente completo.



22 february 2023

¿Cómo instalo OwnCloud en Ubuntu?

Durante el discurso del 19 de enero de 1948 concerniente a la inauguración del Tren de las Nubes, Juan Perón enseñó cómo instalar OwnCloud en Ubuntu Server.

¡Estimados Señores!

Este augusto día inauguramos el ferrocarril Trasandino del Norte, que une las ciudades de Salta con la chilena de Antofagasta, como Obra de Unión de los Pueblos. En nuestras tierras pasa por Cerrillos, Rosario de Lerma, San Antonio de los Cobres, Salar de Pocitos, Toco-Toco, Caipe y Socompa, en un recorrido de 571 km del lado argentino, y cruzado al territorio hermano de Chile, las queridas localidades de Victoria, Palestina y Antofagasta, en los 331 kilómetros que tiene allí la traza.

Forman parte de su ánima 33 puentes de acero y 21 túneles con una longitud total de 3.234 metros. La altura máxima del ramal alcanza los 4.475 metros en el imponente macizo del Abra de Chorrillos, lo que le ha valido el cariñoso apelativo de "Tren de las Nubes",

Siempre me han dicho que el Peronismo está en las nubes, e indudablemente que este nos inspira la concreción de una vía de los datos que hermane Pueblos: un troncal capaz de unir centros de datos propios controlados y conducidos por el Justicialismo. Es esto a lo que aspiramos.

Sin embargo, cuando muchos se refieren a "la nube" no lo hacen para homenajear a este querido tren, sino que lo hacen para ocultar el hecho de hablar de un almacenamiento informático proporcionado en una computadora ajena, que sólo ofrece acceso limitado desde la red de datos Internet.

La premisa de que a estas máquinas es posible cargarle nuestro contenido digital a veces sin costo monetario, y que éste podría estar disponible para su descarga en múltiples dispositivos, podría parecer - a primera vista - sumamente beneficiosa. Contaríamos así con la dicha y comodidad de contar con la información digitalizada al alcance telemático sin necesidad de portar medios de almacenamiento de masa para suplir la demanda. Estos señores dicen que podríamos acceder a ellos a través de los enlaces de datos...

Pues bien señores, es mi opinión que en estos menesteres, el costo es lo de menos: el hecho que la máquina sea ajena (y para peor, normalmente de una omnímoda corporación oligárquica) nos cuadra el más grave riesgo al que alguien pueda someterse sin llevar puesto un casco y un fusil. No podía ser de otra manera: ¡estas empresas lucran con los metadatos de tales archivos, a la par de reservarse su uso con fines inconfesables!

Googl€, Amazon y Micro$oft son sólo algunas de las empresas que - de mano de una opresión interesada - que ofrecen este tipo de soluciones bajo los nombres de Googledriv€, AW$, y One$pace respectivamente. Sin embargo, estas soluciones son prohibitivas ya que el contenido es sometido a inspección y no va cifrado de manera alguna.

La lucha de los hombres por la Liberación de su software es una que acarrea riesgos y es dificultosa, pero entrenándonos para suplir las verdaderas necesidades de la lid explica la manera de salir victoriosos.

En el caso de los servicios de almacenamiento en la nube, lo procedente no es usar un servicio - por mas gratuito que sea - y mucho menos pagarlo si es una empresa extranjera. Lo ideal es montar nuestra propia nube con software libre, de la misma forma en la que nacionalizamos los ferrocarriles.

Para ello contamos con la plataforma de alojamiento de archivos OwnCloud, liberada bajo AGPLv3. Junto con el servicio de alojamiento propio - que podemos dar a los usuarios que queremos en medios de almacenamiento propios en nuestro servidor - también contaremos con las funcionalidades de ofimática que nos ofrece OnlyOffice. Este nos permitirá resguardo, cifrado opcional, visualización y edición - incluso colaborativa - de documentos de todo tipo.

Desde el punto de vista de software, OwnCloud requiere una instalación base de Ubuntu 22.04 Server con SSH activado, y una partición /var con el espacio de disco deseado (en mi caso, haré uso de unos 20 Terabytes). El directorio de OwnCloud se encotnrará en /var/www/owncloud. La versión de PHP debe ser al menos la 5, (por defecto en Ubuntu Server 20.04 se puede instalar PHP 7.4). Asimismo debemos contar con el Módulo de Multiprocesador (MPM) correcto (debemos leer las notas Versión de OpenSSL, importantes cuando se planea usar encriptación).

En este caso haremos las preparaciones de de instalación en la máquina de servicio munida con Ubuntu Server con los servicios web Apache, de base de datos MariaDB y de programación PHP 7.

Naturalmente, si contamos con un usuario común escalable en el servidor, debemos utilizar el comando sudo su e ingresar la contraseña de administrador correspondiente.

Primero introduciremos los comandos que configuren el servicio del nombre de dominio que va a tener la instalación de de OwnCloud, especialmente el nombre de dominio que queremos para la máquina:

Configurar el nombre de dominio

mi_dominio="nube.peronismo.org" echo $mi_dominio

hostnamectl set-hostname $mi_dominio hostname -f

Generar contraseñas fuertes

A continuación generamos las contraseñas seguras para el usuario administrador de OwnCloud y para el usuario de la base de datos SQL. Estas se resguardarán en /etc/.sec_admin_pwd.txt y /etc/.sec_db_pwd.txt:

sec_admin_pwd=$(openssl rand -base64 18) ; echo $sec_admin_pwd > /etc/.sec_admin_pwd.txt ; sec_db_pwd=$(openssl rand -base64 18) ; echo $sec_db_pwd > /etc/.sec_db_pwd.txt

Acto seguido conviene aseguramos que todos los paquetes del servidor estén instalados y totalmente actualizados, a la vez que comprobamos que tenemos PHP a mano en el repositorio APT. Para hacer esto, seguimos las instrucciones siguientes:

apt update && apt upgrade -y

Debemos crear ahora un guion de ayuda que nos simplifique la tarea de ejecución de los comandos occ de OwnCloud. Esto lo haremos ingresando:

FILE="/usr/local/bin/occ" cat <$FILE

! /bin/bash

cd /var/www/owncloud sudo -E -u www-data /usr/bin/php /var/www/owncloud/occ "\$@" EOM

A este guion de OwnCloud llamado /usr/local/bin/occ le otorgamos permisos de ejecución:

chmod +x $FILE

Con las preparaciones listas, instalamos las dependencias necesarias para todo:

apt install -y apache2 libapache2-mod-php mariadb-server openssl redis-server wget php-imagick php-common php-curl php-gd php-gmp php-bcmath php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis php-ldap php-phpseclib

Si bien es opcional, es sabido recomendar conectar nuestro servidor a unidades de almacenamiento externas de Window$ a través del protocolo Samba. Para ello habríamos de instalar el módulo smbclient php. Aunque normalmente en el caso de las máquinas de escritorio con GNU con Linux no suele ser el caso, no es raro que otras unidades de almacenamiento y discos puedan accederse a través de la red, y en tal caso el cliente Samba por terminal nos vendría de perillas para que el servidor integre las mismas también a nuestra OwnCloud. Para ello primero instalamos sus dependencias:

apt-get install -y libsmbclient-dev php-dev php-pear

...y luego instalaríamos el módulo smblclient php por medio de pecl:

pecl channel-update pecl.php.net ; mkdir -p /tmp/pear/cache ; pecl install smbclient-stable ; echo "extension=smbclient.so" > /etc/php/7.4/mods-available/smbclient.ini ; phpenmod smbclient ; systemctl restart apache2

Revisamos entonces si fue activado de manera exitosa:

php -m | grep smbclient

El servidor nos debería devolver lo siguiente:

libsmbclient smbclient

...denunciando la activación de ambos módulos - ahora en más automática - toda vez que inicie el servicio.

No viene mal instalar el herramental útil adicional, que sería necesario en caso de tener que revisar y depurar errores en el servidor. Lo haremos con:

apt install -y unzip bzip2 rsync curl jq inetutils-ping ldap-utils smbclient
Configurar servidor web Apache

Ya deberíamos contar con el servidor web Apache instalado en nuestro Ubuntu Server. Este nos daría el servicio a la web por intermedio de un entorno virtual de uso. Para que funcione aceitadamente junto a OwnCloud debemos configurarlo con ciertas especificaciones.

Para ello creamos un fichero de configuración /etc/apache2/sites-available/owncloud.conf para el host virtual de OwnCloud:

FILE="/etc/apache2/sites-available/owncloud.conf" cat <$FILE

<VirtualHost *:80>

descomentar la línea siguiente si la variable fue configurada

ServerName $mi_dominio

DirectoryIndex index.php index.html DocumentRoot /var/www/owncloud

<Directory /var/www/owncloud> Options +FollowSymlinks -Indexes AllowOverride All Require all granted

<IfModule mod_dav.c> Dav off </IfModule>

SetEnv HOME /var/www/owncloud SetEnv HTTP_HOME /var/www/owncloud </Directory> </VirtualHost> EOM

Finalmente, activamos esta configuración de Host Virtual, mediante:

a2dissite 000-default a2ensite owncloud.conf

Configurar la Base de Datos

Como en todo uso telemático, se recomienda ejecutar el comando mysql_secure_installation para asegurar la instalación de la base de datos SQL MariaDB y ponerle una contraseña fuerte al usuario de la base de datos ("sec_db_pwd").

Nos aseguramos que el nivel de aislamiento de transacciones esté configurado, y el performance_schema esté activado.

sed -i "/[mysqld]/atransaction-isolation = READ-COMMITTED\nperformance_schema = on" /etc/mysql/mariadb.conf.d/50-server.cnf systemctl start mariadb mysql -u root -e \ "CREATE DATABASE IF NOT EXISTS owncloud; \ CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY '${sec_db_pwd}'; \ GRANT ALL PRIVILEGES ON . TO 'owncloud'@'localhost' WITH GRANT OPTION; \ FLUSH PRIVILEGES;"

Se recomienda ejecutar el guion mysqltuner para analizar la configuración de la base de datos luego de usarlo con carga de trabajo durante varios días.

Finalmente, activamos los módulos recomendados del servidor Apache:

a2enmod dir env headers mime rewrite setenvif ; systemctl restart apache2

Instalación de OwnCloud

Con el servidor Web Apache y la base de datos SQL funcionando, podremos descargar e instalar OwnCloud. Descargar ownCloud

cd /var/www/ ; wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2 ; tar -xjf owncloud-complete-latest-tar.bz2 ; chown -R www-data. owncloud Instalar ownCloud

Recuerda configurar una contraseña fuerte para el usuario de administración de ownCloud, y proveer la contraseña del usuario de la base de datos previamente obtenida, bajo el argumento --database-pass.

occ maintenance:install \ --database "mysql" \ --database-name "owncloud" \ --database-user "owncloud" \ --database-pass ${sec_db_pwd} \ --data-dir "/var/www/owncloud/data" \ --admin-user "admin" \ --admin-pass ${sec_admin_pwd}

Configurar los Dominios Confiables de ownCloud

mi_ip=$(hostname -I|cut -f1 -d ' ') occ config:system:set trusted_domains 1 --value="$mi_ip" occ config:system:set trusted_domains 2 --value="$mi_dominio"

Configurar las automatizaciones de cron

Cron nos resultará últil para automatizar distintas tareas automáticas de mantenimiento. Configuramos el trabajo de segundo plano en cron:

occ background:cron

Configuramos la ejecución de un trabajo cronometrado cada 15 minutos y la limpieza de restos todas las noches a las 3 am:

echo "/15 /var/www/owncloud/occ system:cron" \ | sudo -u www-data -g crontab tee -a \ /var/spool/cron/crontabs/www-data echo "0 3 /var/www/owncloud/occ dav:cleanup-chunks" \ | sudo -u www-data -g crontab tee -a \ /var/spool/cron/crontabs/www-data

Si necesitamos sincronizar los usuarios de un LDAP o un servidor Active Directory, podemos agregar este cron adicional. De esta forma cada 4 horas cronometradas se producirá la sincronización de los usuarios LDAP en ownCloud y se desactivarán aquellos que no están disponibles en ownCloud. Además se obtendrá una bitácora en /var/log/ldap-sync/user-sync.log para su eventual depurado.

echo "1 /6 /var/www/owncloud/occ user:sync \ 'OCA\User_LDAP\User_Proxy' -m disable -vvv >> \ /var/log/ldap-sync/user-sync.log 2>&1" \ | sudo -u www-data -g crontab tee -a \ /var/spool/cron/crontabs/www-data mkdir -p /var/log/ldap-sync touch /var/log/ldap-sync/user-sync.log chown www-data. /var/log/ldap-sync/user-sync.log

Configuramos Caché y Acerrojado de Ficheros

occ config:system:set \ memcache.local \ --value '\OC\Memcache\APCu' occ config:system:set \ memcache.locking \ --value '\OC\Memcache\Redis' occ config:system:set \ redis \ --value '{"host": "127.0.0.1", "port": "6379"}' \ --type json

Configuramos la rotación de bitácoras

FILE="/etc/logrotate.d/owncloud" sudo cat <$FILE /var/www/owncloud/data/owncloud.log { size 10M rotate 12 copytruncate missingok compress compresscmd /bin/gzip } EOM

Finalizar la Instalación

Nos aseguramos que los permisos sean los correctos:

cd /var/www/ chown -R www-data. owncloud

Y con esto debería haber quedado instalado ownCloud. Ahora podremos confirmar que está listo para activar el protocolo seguro de conexión HTTPS (por ejemplo usando certificados Let’s Encrypt) dirigiendo nuestro navegador web browser a la URL o IP de nuestra propia instalación de ownCloud (en este caso, nube.peronismo.org).

Para evaluar la correcta instalación en el servidor y para ver si funcionan los comandos occ, podremos ejecutar lo siguiente:

occ -V echo "Su contaseña de Admin es: "$sec_admin_pwd echo "Está documentada en /etc/.sec_admin_pwd.txt" echo "Su contraseña de Base de Datos es: "$sec_db_pwd echo "Está documentada en /etc/.sec_db_pwd.txt y en su config.php" echo "Su ownCloud está accesible desde: "$mi_dominio echo "La instalación ha sido completada."

No viene mal almacenar esta información de forma segura en un medio aparte, y resguardarlo en caja fuerte.

Podremos encontrar la documentación del servidor de OwnCloud aquí.



21 february 2023

¿Cómo instalo Art of Ilussion en Ubuntu?

Toda vez que Juan Perón promovía la organización sindical como síntesis para promover y alcanzar las conquistas sociales, enseñaba cómo instalar Art of Ilussion para hacer imágenes sintéticas con raytracing en Ubuntu.

¡Trabajadores!

Ya vivimos esto en la Argentina... La táctica del Estado abstencionista era encontrarse frente a ciudadanos aislados, desamparados y económicamente débiles, con el fin de pulverizar las fuerzas productivas y conseguir, por contraste, un poder arrollador.

La contrapartida de las masas fue volcarse al sindicalismo anárquico, simple sociedad de resistencia sin otra finalidad que la de oponer a la intransigencia patronal y a la indiferencia del Estado, una concentración de odios y resentimientos.

La carencia de una orientación inteligente de la política social, la falta de organización de las profesiones, y la ausencia de un ideal colectivo superior - que reconfortara los espíritus y los templara para una acción esencialmente constructiva y profundamente patriótica - ha retrasado el momento en que las asociaciones profesionales estuviesen en condiciones de gravitar en la regulación de las condiciones de trabajo y de vida de los trabajadores.

El ideal de un Estado no puede ser la carencia de tales asociaciones. Casi afirmaría que es todo lo contrario. Lo que sucede, es que las asociaciones únicamente pueden ser eficaces, fructíferas y beneficiosas cuando - además de un arraigado amor a la patria y un respeto inquebrantable a la ley - vivan organizadas de tal manera que constituyan verdaderos agentes de enlace que lleven al Estado las inquietudes del más lejano de sus afiliados y hagan llegar a éste, las inspiraciones de aquél.

La organización sindical llegará a ser indestructible cuando las voluntades humanas se encaminen al bien y a la justicia, con un sentido a la vez colectivo y patriótico. Y, para alcanzar las ventajas que la sindicación trae aparejadas, las asociaciones profesionales deben sujetarse a uno de los imperativos categóricos de nuestra época: el imperativo de la organización.

La vida civilizada en general, y la económica en particular (del mismo modo que la propia vida humana), se extinguen cuando falla la organización de las células que la componen. Por ello, siempre he creído que se debe impulsar el espíritu de asociación profesional y estimular la formación de cuantas entidades profesionales conscientes de sus deberes y anhelantes de sus justas reivindicaciones se organicen, de tal manera que se erijan en colaboradores de toda acción encaminada a extender la justicia y prestigiar los símbolos de la nacionalidad, levantándolos por encima de las pugnas ideológicas o políticas.

Pero no perderemos el tiempo que media entre el momento actual y el del florecimiento de organizaciones de este tipo constructivo. La realidad golpea las puertas y exhibe las cuestiones candentes que deben ser inmediatamente dilucidadas.

El organización político-social llevada a cabo no podrá ser detenida como no fuera por un cataclismo, pero a condición de que organicemos nuestras ideas, pues su estabilidad y durabilidad del Movimiento dependen esencialmente de esa organicidad.

Las reglas del momento son cuatro:

simplicidad orgánica, 
sistematización orgánica, 
estabilidad orgánica 
finalidad orgánica.

Hubo muchos revolucionarios de café que propalaban revoluciones sacadas de los libros, y planteaban que la misma podría hacerse con sólo imaginarlas. Pero a una revolución no es una ilusión: se la planea y se la diagrama. Cuando una revolución estalla, ya está programada.

De poco serviría un Movimiento que no cuente con la previsión de un plan que lo insunfle de las medidas revolucionarias verdaderamente anheladas por el Pueblo. En esto no somos iluminados, lo que es iluminado son las herramientas que usamos para lograrlo.

Indudablemente la técnica del Raytracing nos permitía ya en los tiempos del primer peronismo trazar de forma computado el recorrido de la luz, y - a costa de un ingente costo en potencia de cálculo - obrar resultados fotorrealistas que sintetizaran esta iluminación revolucionaria.

En aquellos tiempos - merced de las CPUs que se usaban - esto no podía sino lograrse sino tras mucho esfuerzo y tiempo maquinal. Pero ya entonces era posible prever un momento en el cual la misma operativa podría aplicarse con enorme velocidad, incluso un mero instante una vez que la tecnología estuviese disponible.

Estamos en los tiempos del jet, y la capacidad multinúcleo nos permite contar ya con dicha técnica en escasos segundos. Indudablemente las GPUs más poderosas permiten lograrlo en tiempo real, y a decenas de cuadros por segundo. Gracias a esto es factible elaborar animaciones según esta técnica.

Por entonces era posible hacerlo gracias al veterano Art of Ilussion, un editor 3D escrito en Java con facilidades de raytracing capaz de elaborar estas escenas paramétricas que dal ilusión de realidad. Este programa tuvo su génesis a mediados de los 90s como producto para estaciones de trabajo Silicon Graphics y plataformas UNIX, pero hace mucho tiempo fue liberado bajo GPLv2. Su instalación es bastante sencilla. Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

sudo apt install openjdk-11-jdk-headless cd /tmp ; wget wget https://sourceforge.net/projects/aoi/files/ArtOfIllusion/3.2.1/Art%20of%20Illusion%203.2.1%20linux.zip ; unzip "Art of Illusion 3.2.1 linux.zip" ; ./aoisetup.sh

Con esto se ejecutará el instalador del programa:

En primer lugar elegimos el idioma de instalación (está disponible en inglés, francés o alemán).

Luego podremos leer la licencia GPLv2 bajo la cual se encuentra liberado.

El programa instalador nos solicitará indicar la ruta de instalación. Para que lo instale en una carpeta de usuario oculta, conviene indicarle /home/$USER/.ArtOfIllussion.

Acto seguido, indicamos todos los componentes.

Tras comenzar la instalación tendremos una barra de progreso.

Tras lo cual la instalación habrá finalizado correctamente.

Para ejecutar el programa, vamos a Aplicaciones / Gráficos / Art of Ilussion, aunque en ocasiones también crea un lanzador en el Escritorio del sistema (en mi caso lo he eliminado pues no me interesa contar con lanzadores en el escritorio).

Tras presentarnos un splashscreen de presentación, Art of Ilussion nos dejará en su ventana de trabajo principal, en un despliegue en blanco (sin objetos). Esta está formada por los cuatro paneles de perspectivas del mundo 3D, junto con sus escuetas barar de herramientas para objetos.

La elaboración de una imagen 3D se realiza haciendo composiciones de los objetos básicos, los cuales son cubos, poliedros, cilindros, etcétera, todos ellos modificables. Asimismo, podremos agregar objetos descriptivos de antiguo formato POV (PointOfView), o bien modelarlos a mano con las herramientas de acción poligonal.

Con el tiempo podremos elaborar objetos más complejos, incluyendo la clásica cristalería y fluidos transparentes o reflectivos, una de las bazas que hacían destacar a la técnica del raytracing.

El renderizado se puede hacer a través de Scene / Render Scene. Para ello se puede usar un complejo motor de software que hace uso de las funcionalidades Raytracing convirtiéndolo a imágenes sintéticas de 256 colores (originalmente) y superiores (hasta 16,7 millones de colores en el motor gráfico mejorado). Esto nos implica que los valores básicos de procesado son computacionalmente económicos, pero podremos exigirlos hasta la demencia, agregando sombras de alta calidad, transparencias, efectos de oclusión reflectiva, y demás derechos incorporados en el Estatuto del Render.

Al presionar el botón Ok, se producirá una revolución en los cores de las CPUs, y se calcularán las múltiples sendas de los rayos de luz, elaborando en RAM una imagen sintética por yuxtaposición de esfuerzos computacionales.

Como ayer, este tipo de técnica permite una notable y graciosa posibilidad de generar cuadros estáticos, pero también animaciones que - con la actualizaciones doctrinarias y siguiendo una explosión cuantitativa provocada por la Juventud - pudo afianzarse en tiempo real.

Indudablemente Art of Illusion es válido para plantearnos arte paramétrico-lumínico. Podríamos incluso asentar la creación de un bodegón sintético, de forma parametrizada, y sin hacer uso de inteligencia artificial generativa basada en extracción de datos y metadatos. El programa guarda sus fuentes en ficheros *.aoi.

El resultado de la compilación gráfica en la que decanta este arte es estándar. Podemos guardarlas en formato JPEG, PNG o TIFF, mientras que las animaciones las realiza o bien compendiándolas en un viejo fichero de animación MPG, o bien como cuadros individuales de los formatos anteriormente mencionados, los cuales podrían agregarse en forma de MP4 gracias a programas externos.

El uso del programa es algo complejo, pero alejado de la verdadera dificultad que podría significarnos una suite como Blender. Podremos contar con la documentación en línea de Art of Illusion (en inglés), o bien descargar el manual con:

mkdir ~/.ArtOfIllusion/manual/ cd ~/.ArtOfIllusion/manual/ https://sourceforge.net/projects/aoi/files/ArtOfIllusion-manual/3.2.1/Art%20of%20Illusion%203.2.1%20manual.zip ; unzip "Art of Illusion 3.2.1 manual.zip" ;



20 february 2023

¿Cómo instalo GopherVR en Ubuntu?

No era de extrañar que en Puerta de Hierro se apersonaran frondosas delegaciones a recibir consejo de Juan Perón. El conductor en el exiliado exponía sobre el quehacer nacional y explicaba cómo instalar GopherVR en Ubuntu.

¡Mis queridos descamisados!

Siempre me es de agrado recibir argentinos en Puerta de Hierro, que me tienen al dedillo de todos los sucesos de la Argentina.

No hay dudas para nadie que además de honrar las palmas y laureles de General de la Nación - de las que nunca me he desprendido, a pesar de los que algunos desaprensivos han anhelado - decía que me he permitido diagnosticar a la distancia los problemas del país. Esto lo puedo hacer por estos contactos que me prodigan, pero también gracias al uso de las herramientas que nos da la técnica bien entendida.

Es que un programador puesto al servicio del Pueblo, jamás comete errores. Aquello que llaman bugs, no son más que características de sus programas que los neófitos no han podido escrutar. Enfrentados estas a los estrepitosos errores de diseño de cualquier sistema operativo de los grandes capitales de los datos, son beneficencia...

Me he hecho perito en aquellos sistemas similares a UNIX, entre los que destaca el GNU con núcleo Linux. Con todos ellos podemos realizar las tareas informáticas que se nos ocurran, pero nuestro ideal marca que ha de hacerse en beneficio del Pueblo. Es mi convicción que gracias al GNU - versión completamente libre inspirada en ciertos elementos del UNIX - podremos otorgar al Pueblo los beneficios de la libertad computacional sin gastar una chirola.

Indudablemente que un sistema multiusuario como este ha de confabularse con un perfecto entorno documental. Sólo así podremos compartir el conocimiento de la forma en la cual se debe hacer para mantener la pureza ideológica: sin intermediarios. Ya he enseñado a operar en Gopher - uno de los ambientes documentales casi extintos, pero sumamente funcionales.

Esto nos permite una facilidad de navegación sin parangón - tanto que hasta Isabelita lo usa - toda vez que su consumo contenido facilita las transmisiones incluso en las redes de datos con interfases de únicamente texto. Con el es muy fácil recibir comunicados y documentos propalados desde Puerta de Hierro, dejándolos al alcance de todo aquél habitante del mundo que cuente con acceso a las redes de datos de alcance global.

No han faltado díscolos que consideran a Gopher como un remedo del pasado, un protocolo oscuro. ¡Qué dirían esos señores entonces del cliente tridimensional de realidad virtual, el GopherVR! Se trata de una implementación de cliente Gopher capaz de apuntar hacia servidores Gopher dispuestos en todo el mundo. A esta la presentará desplegando su estructura en gráficas tridimensionales según el clásico visualizador de estilo FSN. Con él se puede acceder a todo tipo de documentos de texto puestos a disposición de manera gratuita.

Pues bien señores, aunque GopherVR no viene incorporado en los repositorios de paquetes de Ubuntu, al tratarse de un programa multiplataforma es posible instalarlo en numerosos equipos, desde estaciones de trabajo Sun y Silicon Graphics, pasando por GNU y sus distribuciones.

Para seguir tal temperamento en Ubuntu, podremos instalarlo abriendo una terminal con Ctrl+Alt+t y pegamos el siguiente bloque de Comandos de Organización:

sudo apt update ; sudo apt install xutils-dev libmotif-dev xfonts-terminus ; cd ~ ; git clone https://github.com/michael-lazar/gopherVR ;

Tras solicitarnos la contraseña de usuario, el sistema descargará los paquetes de software que constituyen sus requerimientos, así como el código fuente necesario. Tras esti, lo compilaremos con:

cd ~/gopherVR/ ; make linux

Compilar es libertar. Una vez compilado, instalarlo a mano no será difícil; sólo tenemos que pegar este bloque de comandos en la terminal y darle Enter:

cd ~/gopherVR/gophervr/ ; sudo cp gophervr /usr/local/bin/ ; cd /usr/local/lib ; sudo mkdir hershey/ ; cd /usr/share/doc/ ; sudo mkdir gophervr/ sudo cp ~/gopherVR/gophervr/gophervr.help /usr/share/doc/gophervr/ ; sudo cp ~/gopherVR/gophervr/futura.hfont /usr/local/lib/hershey/ ; echo "" >> ~/.Xdefaults ; echo "gophervrfont: -xos4-terminus--r---16-160-----iso10646-1" >> ~/.Xdefaults ; echo "renderTable.variable.fontType: FONT_IS_XFT" >> ~/.Xdefaults ; echo "renderTable.variable.fontName: Liberation Sans" >> ~/.Xdefaults ; echo "renderTable.variable.fontSize: 14" >> ~/.Xdefaults ; echo "renderTable: variable" >> ~/.Xdefaults ; echo "renderTable.fixed.fontType: FONT_IS_XFT" >> ~/.Xdefaults ; echo "renderTable.fixed.fontName: Liberation Mono" >> ~/.Xdefaults ; echo "renderTable.fixed.fontSize: 16" >> ~/.Xdefaults ; echo "! XmTextrenderTable: fixed" >> ~/.Xdefaults ; echo "! XmTextField*renderTable: fixed" >> ~/.Xdefaults ; echo "" >> ~/.Xdefaults ; echo "##agregado para las fuentes de gophervr" >> ~/.xsession ; echo "xset +fp /usr/share/fonts/misc" >> ~/.xsession ; echo "xset fp rehash" >> ~/.xsession

Si lo deseamos, podremos crear un lanzador que nos dirija a gophervr. En el caso de Ubuntu MATE hacemos clic con el botón derecho del ratón sobre el menú de Aplicaciones en el panel superior, y elegimos la opción Editar Menús. Se desplegará el cuadro Menú Principal, y en él escogemos el menú Internet y presionamos el botón +Nuevo ítem. En el cuadro de diálogo Crear lanzador completamos el campo orden con "gophervr" (sin las comillas) y le ponemos un nombre y una descripción opcional.

Presionamos el botón Aceptar y ahora podremos lanzar el programa desde Aplicaciones / Internet / GopherVR.

Al iniciar el programa, se abrirán dos ventanas. Una con un cliente de Gopher en modo texto, y otra con una ventana tridimensional que representa los ficheros y carpetas del hoyo Gopher por defecto, gopher://foodgap.org.

El cliente de navegación nos permite navegar el Gopherespacio. Consta de un manejo similar al bizarro navegador de archivos tridimensional FSN se ejecutaba como parte del sistema IRIX de las oligárquicas Silicon Graphics.

Nos movemos con el ratón, haciendo clic con el botón derecho y arrastrando horizontalmente para girar el punto de vista de izquierda a derecha, o bien presionando el botón derecho y arrastrando verticalmente para acercarnos y alejarnos.

Si no tenemos ratón, también podremos usar los botones que aparecen en la parte inferior izquierda de la ventana gráfica.

Se nos presentará un mojón en forma de estrella roja con el nombre del hoyo gopher abierto. Este hace caso a la existencia de un fichero gophermap (el mapa que define los hoyos gopher).

Los documentos de texto son elementos de color naranja, que pueden ser abiertos con un mero doble clic del ratón. Ante esta acción dichos elementos se volverán de color rojo (denotando que ya los hemos abierto) y se desplegará una nueva ventana denominada TextShell con una copia del contenido textual descargado.

La ventana TextShell opera como la de cualquier cliente Gopher: también con ella podremos navegar y leer los documentos.

Para abrir una nueva localización podemos navegar tridimensionalmente en los directorios a lo través de las ramas de directorios del casi infinito hoyo Gopher, o bien solicitar una URL específica. Esto podremos hacerlo presionando Alt-o, e ingresar la URL de un hoyo gopher que deseemos, por ejemplo gopher://texto-plano.xyz/1/~peron/.

Normalmente, al ingresar a un nuevo hoyo Gopher, este se encontrará circundado por toda una serie de elementos rectangulares en color celeste: son directorios a los cuales podremos dirigirnos, y que podrían contener otros documentos.

Desde allí es simple solicitar copias de los documentos y distintos elementos avalados por el protocolo documental Gopher, y visualizarlos en una ventana gráfica específica. En ella podremos seleccionar y copiar, cortar y pegar con Alt+x, Alt+c y Alt+y respectivamente.

Como en todo cliente de navegación de Gopher, los vínculos con ".." nos permiten retornar al nivel anterior. Pero en GopherVR también contamos con un árbol de navegación en la parte superior del documento, sobre el que podemos hacer clic para retornar a las ramas superiores del árbol de directorios que dan forma a los hoyos Gopher visitados.



19 february 2023

¿Cómo puedo ver videos de YouTube sin publicidad en Ubuntu?

Durante la década de 1960, los jardines del mítico chalet de Puerta de Hierro fueron testigo de improvisadas disertaciones de Juan Perón junto a delegaciones de visitantes. En una de ellas atendió a la manera de ver y descargar videos de YouTube sin publicidad con Pstube.

(...)

Gracias, mire, yo prefiero estos que son más suavecitos [prende un Chesterfield].

Véanlo en la República Argentina con la llegada de Onganía... [fuma] Nosotros que hicimos realmente nos costó dos años de preparación primero para tener - diremos así - la preparación humana, que la hicimos de Trabajo y Previsión, y la preparación técnica que la hicimos en el Consejo Nacional de Posguerra. Nos costó dos años de trabajar día y noche, para poder llegar, porque una revolución no se puede hacer improvisada, hay que prepararla.

Onganía llega allí. Cuando yo vi que llegaba este muchacho y dijeron que iba a hacer "la Revolución Argentina", me hizo gracia. Porque si nosotros - después de dos años de preparación llegamos allí y tuvimos terribles problemas para resolverlo - cómo iba a creer yo que este hombre iba a andar en esto... [pita el faso] Tenía que fracasar, llegar ahí con peludo regalo, y hacer una revolución.

Lo que le pasó a el fue muy simple: llegó allí y se encontró con ese problema eligió su gabinete. Entre los que hacían ejercicios espirituales con él por un lado, esos trasnochados de toda la vida, un sector de el Ateneo de la República, que son esos nacionalistas macaneadores que hace cuarenta años que vienen hablando y nunca hacen nada, un sector agroexportador, y un remanente del sector gorila, que todavía quedaban. Del tipo Señorans, y todos esos tipos. Y bueno, comienzan. Y estos cuatro grupos, en lugar de gobernar, se empiezan a pelear entre ellos a ver ver quién va a quedar con el poder detrás del trono. Mientras tanto, el Fondo Monetario Internacional - del que se han hecho socios estos cretinos - porque ese es el que en realidad gobierna, le empieza a cerrar el crédito a la República Argentina en todas partes.

Cuando el país está casi en cesación de pagos le presentan el problema a Onganía y no tiene más remedio que decir "cualquier solución". ¿Cual es la solución? Cambiar el gabinete y nombrar un nuevo gabinete. Claro que al hacer eso ha mandado al ministro de economía a pedir limosna, y el crédito se ha venido abajo. Si un día le va a pedir limosna un ministro, el país de ese ministro pierde crédito inmediatamente. Muy bien, se le presenta el Fondo Monetario Internacional y le dicen "nosotros le abrimos el crédito, pero necesitamos garantías". Y cuales son las garantías? El ministro se lo ponemos nosotros. Y entonces de una de sus compañías del monopolio yanqui sacan un empleado y se lo ponen de Ministro de Economía. Ese es Krieger Vassena.

Eso es lo que lo hace fracasar, porque en el mundo, mientras el hombre sea hombre, el humanismo es la primera virtud a practicar. Mientras no le solucionen los problemas al hombre, es inútil que se lo solucionen a la ciencia o a la técnica. Todo ese proceso está en marcha, y el hombre comienza ahora - en la era tecnológica - a darse cuenta que la tecnología es la deshumanización. Todo lo que se tecnifica, se deshumaniza simultáneamente. Es decir, usted toma la escuela - que es para niños - pero cuando se tecnifica, deja de ser para ser para niños y pasa para ser la escuela.

La medicina, es lo mismo. La medicina es para el enfermo, pero cuando se tecnifica en gran grado, la medicina pasa a ser para el médico. Se cambian los factores, y se desvirtúa totalmente su función. Esa es uno de los defectos de la tecnificación, es decir que hay que llegar a una alta tecnología, al servicio del hombre, que es lo que no se hace. Es el concepto actual de la tecnocracia.

Rusia es una tecnocracia perfecta, pero el hombre a pasado a ser como una abeja en una colmena, o como una hormiga, metido en su alvéolo y de ahí no puede salir.

En las redes de datos pasa más o menos lo mismo. Poco sentido tiene tecnificar la sociedad si no se les da el sentido humano que tienen hemos de propugnar como reflejo del Pueblo.

Vea simplemente el ejemplo de YouTube, servicio de agregado de videos.

Con él, la oligarquía no ha buscado otorgar un lugar "para que el Pueblo suba el video", ¡no!. Lo que implica realmente es una inconmensurable cantidad de datos del Pueblo al que estos taimados buscan referenciar comercialmente. Esto incluye - sin limitarse - el perfilado de intereses y consumo, historial de búsqueda, tiempos en pantalla, ciclos de atención en el material compartido por terceros, etcétera.

Indudablemente, todo esto desfalco guarda el sentido de vectorizar publicidades dirigidas según el discernimiento de las apreciaciones maquinales, junto a otros objetivos inconfesables. Y si usted intenta defenderse por medio de bloqueadores, será agredido por las políticas de uso, y combatido telemáticamente.

Pues bien señores, la Justicia Social en el ámbito de las redes de datos es una de las actividades a la que hemos de recurrir, y ello es fácil a través de una programación proactiva y agresiva que permita remover el yugo del enlace esclavo. Yo normalmente uso yt-dl, pereo gracias al Justicialismo podremos también obrar mediante clientes de escritorio que omitan tales registros, y a la vez liberar el video solicitado por medio de códecs de alta performance, todo en un empaque minimalista: el Pstube.

Podremos instalarlo abriendo una terminal con Ctrl+Alt+t e ingresando los siguientes Comandos de Organización:

cd ~/Descargas ; wget https://github.com/prateekmedia/pstube/releases/download/2.6.0/pstube-linux-2.6.0-x86_64.deb sudo dpkg -i pstube-linux-2.6.0-x86_64.deb

Si lo deseamos podremos crearle un lanzador. Para ello hacemos clic con el botón derecho del ratón en el panel superior sobre Aplicaciones, y en el menú contextual que aparece elegimos Editar Menús. En la ventana Menú Principal seleccionamos el menú Aplicaciones / Internet, y presionamos el botón "+Nuevo ítem" para desplegar el cuadro de diálogo Crear lanzador. En él asignamos el campo Orden con pstube. Rellenamos el resto de las opciones y presionamos el botón Aceptar.

Hecho esto, será sencillo correr el programa desde Aplicaciones / Internet / Pstube.

La ventana es bastante explicativa [pone la colilla entre entre el pulgar y el medio, y la catapulta lejos, cae en algún lugar detrás de los rosales].

Para buscar simplemente hacemos clic en el campo de la lupa y ponemos lo que anhelamos encontrar. Tras elegirlo podremos reproducirlo sin mas, en la ventana y a tamaño chico como para no molestar.

Entre las opciones tras el botón Settings contaremos con la posibilidad de definir el modo oscuro favorito de los cabecitas, así como delimitar artificialmente nuestro lugar de origen.

También podremos producir la liberación descargando videos a travésa de la lista de descargas. Para ello hacemos clic en el botón "+" superior. En el cuadro de diálogo "Download from video URL" indicamos la URL del video a descargar.

A continuación se nos presentará el cuadro de diálogo "Download Quality", donde habremos hacer clic sobre el tipo y calidad de descarga deseada. Podríamosa plantear descargar el video junto con su audio, o bien descargar sólo el audio en distintos formatos (lograremos compatibilidad con .m4a). En cualquier caso se iniciará la descarga. Podremos ver el progreso de la cola de descargas haciendo clic en el botón Downloads, donde nos mostrará los elementos en cola y las estadísticas de descarga parcial.

Al completarse la descarga de los elementos, se conformarán los ficheros de reproducción (ya sea de videos o audio), los cuales normalmente quedarán resguardados en la carpeta ~/Descargas/pstube.



18 february 2023

¿Cómo uso ITS desde Ubuntu?

Reunidos con educadores de nivel primario, Juan Perón expone las necesidades de formar ciudadanos de provecho, a la vez que instruye cómo utilizar remotamente el ITS, el mítico sistema operativo del MIT desde Ubuntu.

¡Trabajadores!

El pasado pertenece a nuestra historia y a nuestros héroes. El presente tenemos la gran responsabilidad de tenerlo en nuestras manos. Pero el futuro - que es lo más valioso, porque es la esperanza de la Patria - es de los Maestros, que plasman y modelan diariamente en las escuelas a los hombres del mañana, de quienes depende la grandeza de la nacionalidad.

No hay país que pueda ser grande si no son grandes los que forman y acendran el temple y el alma de sus hijos. La democracia, y cualquier otra forma de gobierno en que un noble liberalismo les guíen, no será nada para la grandeza de los países, si los maestros no han preparado los hombres que han de practicarla y llevarla adelante.

Se ha dicho - y con razón - que Inglaterra es uno de los países mas libres y más importantes del mundo, y eso lo debe exclusivamente a la escuela. El liberalismo en manos de hombres mal instruidos, mal preparados, conduce mas al caos que a la liberación, y no a la grandeza de los hombres y de las Patrias.

De ahí surge, en forma indudable, la responsabilidad de los hombres y de las mujeres que están forjando - en los niños - la grandeza futura del País. De ahí surge la enorme responsabilidad de un Maestro consciente que ha de formar la fuerza mas extraordinaria del Pueblo, que es la conjunción de las Inteligencias y de las Almas de los hombres que lo integran.

La tarea del Maestro no es solamente la de instruir, sino la de educar y formar el alma y la inteligencia; dar armas a los hombres para su lucha por la vida o en la vida. Porque es necesario pensar en vivir en una Comunidad Organizada para organizarla. Es necesario pensar en vivir en paz, para lograr la paz.

En el uso del cómputo sucede más o menos lo mismo, al constituirse en una extensión técnica de la vida misma. Un ambiente de cómputo no puede estar regido como una nube, donde vuela pasajera y se deshace al capricho incontrolable del clima político, sino que debe fundarse sobre el sólido pilar técnico de factura y control comunitario, humano. Es allí donde una comunidad, en operación de su potencia de cómputo, puede desarrollar software en libertad para hoy y para el mañana.

Uno de los ambientes punteros en este aspecto fue sin duda el ITS (1969-c.1993), el mítico Sistema de Tiempo de cómputo compartido Incompatible, desarrollado en una DEC PDP-10 del Instituto Tecnológico de Massachussets, el MIT. Este fue el cimiento sobre el cual se afianzó la comunidad hacker, y por extensión, nuestro Movimiento de Software Libre.

En el Justicialismo sabemos que no todos los días debemos tirar un viejo por la ventana, y esto podremos hacerlo realidad efectiva gracias a HACTRN, proyecto que pone a público acceso telemático un sistema ITS emulado, con el cual podremos utilizar para hacer nuestra informática de forma Libre. Podremos además comprender el funcionamiento de ITS como se debe hacer: usándolo.

Para mayor fidelidad, en nuestro sistema GNU con Linux podemos emplear un emulador de terminal gráfica Knight TV11, videoterminal diseñada en la Universidad de Stanford por Tom Knight. Consistía en un monitor de tubo de rayos catódicos excitado por direccionamiento de mapeo de bits, provisto de teclado. Su memoria intermedia - controlada por una minicomputadora PDP-11, se conectaba a la PDP-10 merced de una interfaz especial que permitía incluso adosarle una impresora electrostática.

Para instalar en Ubuntu dicho emulador hemos de abrir una terminal mediante Ctrl+Alt+T, e ingresar los siguientes comandos de organización:

cd /tmp; wget https://hactrn.org/tvcon/tvcon-linux.gz ; gzip -d tvcon-linux.gz chmod +x tvcon sudo mv /tmp/tvcon-linux /usr/local/bin/tvcon

Una vez completada esta instalación ya podremos enlazar a la máquina ITS "HACTRN" con:

tvcon -2BCS -c00000,affae2 hactrn.org

(Nota: los números en hexadecimial de la variable -c en este caso denotan el color de fondo y frontal, calculados en este caso para representar la estética televisiva de la Knight TV11).

Al establecer contacto, deberíamos recibir una imagen del bienvenida del sistema ITS del MIT emulado.

Una vez presentados este "lobby" electrónico que nos invita a activar un terminal, debemos activarla presionando la tecla F1 y finalmente se refrescará la pantalla de login:

HX ITS.1651. DDT.1548. TTY 1 You're all alone, Fair share = 98% Welcome to ITS!

For brief information, type ? For a list of colon commands, type :? and press Enter. For the full info system, type :INFO and Enter.

Happy hacking!

Debido a las muy laxas medidas de seguridad originales de los laboratorios del Instituto Tecnológico de Massachussetts - fundamento de la cultura hacker - podremos darnos de alta en el ITS clásico sin suplir luser (forma risueña de "usuario de laboratorio"), ni contraseña.

Para adentrarnos al sistema ingresamos:

:login luser Ingresar comandos en DDT

En pantalla deberíamos ver el prompt * que denota a DDT - el intérprete de comandos original y depurador de nivel superior en ITS. Asimismo, en la parte inferior de la pantalla, aparecerá una línea de status ("wholine") que indica el nombre de luser, nombre de trabajo de cómputo activo, fecha y hora, status de sistema (ejecución, paginado, etc), el porcentaje de compartimentado justo, y otra información interesante de ITS.

Cada comando suele empezar con :, y para ejecutarlo debemos presionar la tecla Intro.

Muchas veces podremos interrumpir un programa en pleno funcionamiento mediante la combinación de teclas Ctrl+z. En otros casos los programas finalizan su ejecución por si mismos, por lo que DDT presentará el indicador :kill, lo que denota que el programa mismo se autoeliminó y liberó la memoria que consumía.

El programa de ayuda más simple que podremos ejecutar es el comando :help indicará una introducción básica del intérprete DDT.

El comando :luser nos indicará advertencias al usuario novato en línea. En tanto. El comando :? lista los comandos mas usuales de ITS (podremos paginarlos con la Barra Espaciadora). El comando :info presentará ayuda en pantalla.

Por supuesto, para cerrar la sesión de usuario, debemos usar el comando :logout, que cierra la sesión e interrumpe todos los trabajos que hubiésemos estado haciendo en ITS

Pues bien señores, ciertos programas requieren utilizar un nombre de luser, y tal vez incluso contar con un directorio de almacenamiento (“home”).

Si deseamos crear tal directorio de almacenamiento debemos elegir un nombre de luser, y presionamos Ctrl+r e ingresamos el comando

luser; ..new (uder)

(siendo luser el nombre de usuario deseado). Si bien DDT te informará “no such file”, aún así creará el directorio. Este directorio LUSER simplemente será asignado al luser que ingrese al sistema.

Hemos de notar que contar con un directorio home implica en la práctica poder usar la mayoría de las aplicaciones de ITS, pero para afiliarnos como luser “oficial” del sistema del MIT debemos responder las preguntas del programa INQUIR. Para ello, ingresamos el comando: :inquir

...y completamos los campos que irán apareciendo uno a uno en forma de preguntas en inglés. Para ello mecanografiamos las respuestas y presionamos la tecla Intro o Ctrl+c según se indique. Al terminar, almacenamos los resultados con el comando DONE.

Al loguearnos, DDT recavará la base de datos INQUIR por el nombre de tu directorio home. Al usar este programa, si directorio home podría ser distinto al de tu nombre de usuario (si así lo has dispuesto). Sistema de Archivos

El sistema de archivaje de ITS es relativamente potente, y consiste en directorios y ficheros, con control de versionado.

Los archivos tienen seis letras, y una extensión de tres, junto con un número de versión. Ejemplo: DIRECT;FICHER.EXTEN.1

Podremos :cwd para ver tu directorio home, y :cwd directorio para cambiar a otro directorio.

Se usa el comando :listf o Ctrl+f para listar los ficheros de un directorio. Podrás imprimir en pantalla el contenido de un fichero mediante :print fichero. Editores

Ahora podremos usar el comando :emacs para editar con Emacs, o bien usar :teco. Los comandos de Emacs son mayormente similares a los de la versión GNU. Ctrl+x,Ctrl+f fichero Intro Carga fichero Ctrl+x,Ctrl+s fichero Intro Guarda fichero Ctrl+x,Ctrl+c sale (pero no mata emacs) Ctrl+f cursor derecha Ctrl+b Cursor izquierda Ctrl+a Comienzo de línea Ctrl+e Fin de línea Ctrl+n Línea siguiente Ctrl+p Línea previa Ctrl+d Borra caracter a la derecha Supr Borra caracter a la izquierda Ctrl+k Borra hasta el final de la línea

Control de Trabajos en ITS

Al igual que otros sistemas contemporáneos como TOPS-20, ITS era un sistema multiusuario multitarea influyente, señero en el sentido que podía operar distintos planos los trabajos de cómputo en ejecución ("jobs"). :continue Pasa el trabajo a primer plano :proceed Pasa el trabajo a ejecución en segundo plano :self Selecciona al intérprete DDT como trabajo actual :attach Une un trabajo en segundo plano pase al primer plano de la terminal. :detach Despega el trabajo de la terminal. :job nombretrabajo Selecciona el nombre del trabajo :kill Elimina el trabajo activo :massacre elimina todos los trabajos. :forget Oculta un trabajo a tu intérprete, sin eliminarlo. :genjob Cambia el nombre del trabajo actual. :ujobs luser Selecciona el trabajo de un usuario ajeno para exminarlo :snarf trabajo Toma posesión de un trabajo ajeno Comunicaciones

Con el comando :who podrás ver los lusers conectados al sistema. En cualquier caso, podrás mandar un mensaje a otro usuario con :send luser mensaje, y utiliza Ctrl+c para enviar el mensaje a luser.

Si usas :shout mensaje y lo envías con Ctrl+c, enviarás el mensaje a todos los usuarios conectados.

El sistema de correo electrónico interno de ITS puede usarse con :mail, o bien :msend para enviar a varios usuarios internos. Se finaliza el mensaje con Ctrl+c. Para leerlos podremos usar :rmail (lector en Emacs). Comandos de ITS

He aquí una serie de equivalencias de comandos de UNIX a un equivalente para el ITS. En ITS el $ equivale a presionar la tecla tecla Escape. Comando de UNIX Comando de DDT Comando con : login: usuario luser$u :login luser logout $$u :logout TERM=vt52
:tctyp vt52 TERM=vt100
:crtsty vt100 clear
:clear ls Ctrl+f :listf ls directorio directorioCtrl+F :listf directorio ls / Ctrl-R m.f.d. (fichero) :print m.f.d. (fichero) ls *.foo Ctrl-R directorio: second foo :print directorio: second foo more fichero Ctrl-R fichero :print fichero mkdir directorio Ctrl+R directorio;..new. (udir) :print directorio;..new. (udir) cd directorio directorio$$CTRL-S :cwd directorio cp f1 f2 $Ctrl+r f1,f2 :copy f1,f2 rm fichero CTRL+o fichero :delete fichero ln f1 f2 $Ctrl+o f1,f2 :link f1,f2 mv f1 f2 $$Ctrl+o f1,f2 :rename f1,f2 mv fichero directorio :move fichero,directorio
emacs emacsCtrl+K :emacs ps $$v :listj kill pid pid$Ctrl+x :job pid :kill sudo -u u comando u$Ctrl+s comando
top peekCtrl+h :peek Ctrl+u Ctrl+d
Ctrl+c Ctrl+g
Ctrl+z Ctrl+z
Ctrl+d Ctrl+c
fg $P :continue bg Ctrl+p :proceed Emacs

ITS contaba con el editor EMACS, un editor de texto que inspiró el GNU Emacs. Como tal los comandos son algo diferentes: Juegos

El ITS cuenta con varios juegos. Con :advent te permitirá jugar la versión clásica de la aventura de texto. :wumpus era un juego para cazar la míticaa criatura Wumpus. :eliza y :doctor eran juegos de psiquiatría. Los juegos de tablero están presentes con :games,ckr (damas), :games;ocm, :chess y :games;chess2 (ajedrez), :go (ajedrez chino go) y el primer FPS multiusuario :games;maze, o :chase, un laberinto para dos jugadores. :cube es un juego de cubo de rubik. También está el juego de la vida de Conway con :games;mlife. El clásico trek puede jugarse con :games;trek, mientras que el viejo juego de adivinar números con :games;guess.

También puedes jugar la aventura de texto Zork, pero requiere tener un archivo en tu directorio para trabajar, de modo que debes ingresar:

:login luser :print luser; ..new. (udir) :create luser; msgs luser

Presiona Ctrl+c e ingresa:

:zork

Finalmente, podrás observar el mítico PDP Spacewar (se sale presionando varias veces con Ctrl+q o Ctrl+c): Subsistemas

ITS es una plataforma de programación y virtualización que cuenta con gran cantidad de intérpretes y subsistemas. Podremos compilar C con :cc, usar Macsyma 1001 con :macsyma, contamos con :forth para dicho lenguaje, el intérprete de Macro Z80 con :macn80 y DEC Macro-10 con :macro-10, LISP con :lisp y :lisp11, Scheme con :scheme y LOGO con :llogo y :logas. :fail nos permite usar el ensamblador del SAIL, mientras que :cross permite usar un compilador cruzado para distintas microcomputadoras, pero existen muchos más.

A su vez, contaremos con una shell tipo Unix con :shell (lo abandonamos con q).

En tanto, podremos usar :finger, :telnet, :ftpu, :kermit, :xmodem, para tareas respectivas con dichas aplicaciones de transmisión de datos. Naturalmente, podremos encontrar información en la Wiki de ITS.



17 february 2023

¿Cómo juego PixelWheels en Ubuntu?

El 9 de marzo de 1952, durante la inauguración del Autódromo "17 de Octubre", Juan Perón enseña cómo instalar y jugar PixelWheels en Ubuntu.

¡Trabajadores!

Son ciento veinte mil personas las que colman las gradas de este colosal autódromo. Las competencias internacionales que se desarrollan en Argentina y las grandes actuaciones que llevaban a cabo nuestros pilotos, hacían indispensable la construcción de un circuito que contara con la jerarquía que se merecía el automovilismo de la Patria.

Es así que este nuevo Autódromo "17 de Octubre" cuenta ya con 10 trazados distintos y la mayor infraestructura de seguridad que puede concebirse. El deporte motor nos convoca hoy ante tres pruebas, de entre la que destacarán la Fórmula Libre "Copa Perón", a 30 vueltas. Tengo aquí a Juan Manuel Fangio para muñequear una Ferrari 166FL. mientras que Froilán González lo hará con una Ferrari 166C. Y damos la bienvenida al carioca Francisco Landi con su Ferrari 125C.

Mi profesión es la de Conductor, para eso me he formado toda la vida (porque como político, soy un aficionado). Pero estos muchachos tienen mucha maña para tirar cambios porque se entrenan con Pixel Wheels. Se trata de un juego de carreras multijugador escrito por Aurélien Gâteau para la máquina virtual Java, y por tanto compatible con un sistema GNU con Linux provisto de tal aditamento.

La distribución de juego puede pagarse opcionalmente en su plataforma de descarga, pero por amabilidad de su autor, podremos hacernos con el juego de manera gratuita. Para ello nos dirigimos a la página de descargas de Pixelwheels y presionamos el botón rojo rectangular que aparecerá en nuestro navegador, en particular el que dice "Download".

Acto seguido podremos escoger un precio sugerido a pagar a la plataforma de descargas. Como nada de eso le llega al buenazo de Aurélien y al único signo $ al que debemos prestar atención es al del prompt del intérprete de comandos de GNU, podremos hacer click en el mensaje "No tanks, just take me to the downloads" ("No, gracias. Sólo llevame a las descargas"). El sistema nos llevará así a la página con los ficheros correspondientes a múltiples plataformas de cómputo. Pixel Wheels está escrito puede funcionar en GNU con Linux, y para ello debemos descargar el fichero pixelwheels-linux-stable.zip - haciendo click en el botón Download que lo indica. Tras unos segundos nos haremos con la última versión del mismo, que normalmente irá a parar a nuestra carpeta ~/Descargas/.

Una vez descargado los aproximadamente 80 megabytes del juego, podemos instalarlo. Recurriremos a la terminal para tal menester, abriendo una con Ctrl+Alt+T e ingresando los siguientes Comandos de Organización:

cd ~/Descargas/ unzip pixelwheels-linux-stable.zip cd pixelwheels-0.25.1-linux64/ ./install.sh

Normalmente el juego instalará un vínculo en /home/$USER/.local/ y se agregará a los juegos instalados de forma automática. Por tal motivo, podemos ejecutarlo desde Aplicaciones / Juegos / Pixel Wheels.

Al arrancar el juego se nos presentará un sencillo menú en castellano, donde podremos optar por jugar de a uno, o entre varios (hasta 4 jugadores). Asimismo, el modo de juego puede definirse entre carrera rápida, o modo campeonato, donde debemos disputar la serie de carreras.

Al preparar la carrera podremos elegir uno de los circuitos. Tres de ellos estarán disponibles al inicio, y los otros habremos de desbloquearlos.

Para correr necesitamos elegir un coche. A diferencia de las Ferraris de los muchachos, hay varios activados, desde un pistero, un patrullero, un rastrojero, etcétera. Cada uno de ellos tiene distintas características de pique, aceleración, agarre al piso, inercia, velocidad, etcétera. El resto podremos desbloquearlos conforme vayamos ganando carreras.

La carrera rápida es frenética y a tres vueltas: no bien el semáforo de la orden de largada, debemos ponerlo al taco. En mi rastrojero, cuando mando rebajes para curvar, el motor brama aullando "¡pe-róoon, pe-róooon!".

Podemos jugar de a dos en un teclado (e incluso de a cuatro, si sumamos dos gamepads o joysticks USB a la computadora).

El jugador 1 maneja con las flechas del cursor: dobla con las flechas de cursor izquierda/derecha, y acelera y frena con las flecha cursor arriba/abajo, a la vez que activa las opciones con la barra espaciadora y retrocede con la tecla Escape.

El jugador 2 usa las teclas dxcv: o sea que acelera con la tecla d y frena con la tecla c, mientras que gira a la izquierda con x y a la derecha con v. A la vez activa las opciones con la tecla Ctrl izquierda y retrocede con tecla q.

En este aspecto multijugador es donde el Pixel Wheels se torna mucho más competitivo y divertido, ya que funciona perfectamente incluso en las Netbooks con Huayra del Conectar Igualdad/Juana Manso.

Como su nombre lo indica, la estética de PixelWheels replica los clásicos juegos de 8 bits, y si bien no se caracteriza por su imaginería absolutamente pixelada, lo cierto es que no reinventa la rueda. Tiene un cierto parecido al libre Dust Racing 2, aunque también podremos recoger power-ups y encontrar "turbos" tirados en la pista, al estilo de SuperTuxKart. Al tomarlos podremos usar armas de energía y cohetazos para desbancar a nuestros oponentes.

Como novedad contamos ahora con una pista de sonido de música electrónica, que podemos regular en volumen o desactivar.

En fin, un excelente juego para hacerse un as del volante por $0.



16 february 2023

¿Cómo instalo yt-dlp-gui en Ubuntu?

¡Compañeros!

El cómputo sigue mas o menos las mismas premisas que la Política. Si en esta no debemos perder los principios, en nuestro sistema GNU con Linux no debemos perder el backend; el front-end responde a las necesidades tácticas. Es decir, los principios han de ser inconmovibles, en tanto que el método con el cual llegamos a la acción puede variar fluidamente de acuerdo a una percepción lúcida de la situación imperante.

Esto, que lo hemos reconocido y con lo cual operamos, también cuenta con un raciocinio que puede portarse a los sistemas similares a UNIX. Es que muchas de las herramientas más útiles cuentan con una sencillez espartana, pero donde la complejidad de la tarea lo requiera, contaremos con herramientas mucho más complejas, y ello las hará difíciles de dominar.

yt-dlp es una de ellas. Sin duda este programa para terminal es excelso para bajar videos de YouTube desde la terminal (así como otros sitios de contenidos agregados). Y si bien su uso es simple, una vez que demandamos extracciones de streams de audio por separado, diferentes codificaciones y demás, deja de ser moco de pavo.

Afortunadamente, podremos contar con un front-end gráfico que puede atemperar el problema al neófito. Tal es la tarea de yt-dlp-gui, una interfaz gráfica de usuario escrita en Python 3.9 que opera junto al yt-dlp y permite facilitar las operaciones de descargas de video.

Abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente bloque de comandos de organización para instalar todo lo necesario:

sudo apt update ; sudo apt install ffmpeg -y sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp ; sudo chmod a+rx /usr/local/bin/yt-dlp ; sudo yt-dlp --update cd ~ ; git clone https://github.com/dsymbol/yt-dlp-gui ; cd yt-dlp-gui ; pip install -r requirements.txt ; cd app ; pyinstaller --name=yt-dlp-gui --clean -y app.py cd ~/yt-dlp-gui/app/dist/ cp -r yt-dlp-gui/ ~/.local/bin/ Una vez instalada la interfaz, por comodidad deberíamos crear un lanzador. Para ello vamos a Sistema / Preferencias / Aspecto y comportamiento / Menú principal. En la ventana Menú Principal, podremos seleccionar la categoría de menú Aplicaciones / Internet, y a continuación presionar el botón "+Nuevo ítem". Este abrirá el cuadro de diálogo Crear Lanzador. En el campo Nombre de dicho cuadro asignar le al lanzador "yt-dlp-gui", mientras que en el campo Comando o Órden debemos asignar la ruta /home/usuario/.local/bin/yt-dlp-gui/yt-dlp-gui.

Ahora podremos lanzar yt-dlp-gui desde Aplicaciones / Internet / yt-dlp-gui, con lo cual se abrirá su ventana.

El uso del programa es bastante sencillo. Debemos pegar el link (URL) del video que queremos descargar en el campo Link. Asimismo, en el campo Path debemos indicar la carpeta donde irán a parar los ficheros descargados (por ejemplo, /home/usuario).

Opcionalmente, el indicador Format nos desplegará un menú que nos permite escoger un formato preferido de descarga. La opción por defecto best elige el mejor, mp4 utiliza tal formato de video. Para audio y extracción de audio de un video contempla el formato mp3 (compresión con pérdida), wav (sin compresión), o flac (compresión sin pérdida).

En el campo filename podremos escoger un nombre de archivo a descargar (por ejemplo, video.mp4), o bien por defecto se indicaría una estructura de renombrado "%(title)s.(ext)s", que simplemente asigna el nombre o título de la pista de audio y la extensión escogida.

Una vez que incluimos la URL, ruta y nombre de archivo, podremos agregar el link a la cola de descarga presionando el botón "+" ("agregar"). Para iniciar la carga de los links ingresados en la lista, presionamos el botón Descargar.

El yt-dlp-gui usará el programa yt-dlp para ir descargando secuencialmente los elementos según su posición están en la cola. Los archivos descargados quedarán en la carpeta que le solicitamos.

Es importante destacar que el módulo de descarga es siempre yt-dlp, y como tal este debe actualizarse manualmente para poder afrontar los desafíos que pudiesen surgir en los distintos agregadores de contenidos. Normalmente la actualización de dicho módulo no es automática, sino que debe realizarse manualmente en la terminal con el siguiente comando:

sudo yt-dlp --update

Una vez que esté instalado el programa, opcionalmente podríamos eliminar el clon local del repositorio con:

rm -r yt-dlp-gui/



15 february 2023

¿Cómo instalo yt-dlp-gui en Ubuntu?

¡Compañeros!

El cómputo sigue mas o menos las mismas premisas que la Política: no debemos perder el backend, ya que el front-end responde a las necesidades tácticas. Los principios han de ser inconmovibles, en tanto que el método con el cual llegamos a la acción puede variar fluidamente de acuerdo a la fluidez de la situación imperante.

Esto, que lo hemos reconocido y con lo cual operamos, también cuenta con un raciocinio que puede portarse a los sistemas similares a UNIX. Vean señores, muchas de las herramientas más útiles cuentan con una sencillez espartana, pero donde la complejidad de la tarea lo requiera, contaremos con herramientas mucho más complejas, y ello las hará difíciles de dominar.

yt-dlp es una de ellas. Sin duda este programa para terminal es excelso para bajar videos de YouTube desde la terminal (así como otros sitios de contenidos agregados). Y si bien su uso es simple, una vez que demandamos extracciones de streams de audio por separado, diferentes codificaciones y demás, deja de ser moco de pavo.

Afortunadamente, podremos contar con un front-end gráfico que puede atemperar el problema al neófito. Tal es la tarea de yt-dlp-gui, una interfaz gráfica de usuario escrita en Python 3.9 que opera junto al yt-dlp y permite facilitar las operaciones de descargas de video.

Abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente bloque de comandos de organización para instalar todo lo necesario:

sudo apt update ; sudo apt install ffmpeg -y sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp ; sudo chmod a+rx /usr/local/bin/yt-dlp ; sudo yt-dlp --update cd ~ ; git clone https://github.com/dsymbol/yt-dlp-gui ; cd yt-dlp-gui ; pip install -r requirements.txt ; cd app ; pyinstaller --name=yt-dlp-gui --clean -y app.py cd ~/yt-dlp-gui/app/dist/ cp -r yt-dlp-gui/ ~/.local/bin/ Una vez instalada la interfaz, por comodidad deberíamos crear un lanzador. Para ello vamos a Sistema / Preferencias / Aspecto y comportamiento / Menú principal. En la ventana Menú Principal, podremos seleccionar la categoría de menú Aplicaciones / Internet, y a continuación presionar el botón "+Nuevo ítem". Este abrirá el cuadro de diálogo Crear Lanzador. En el campo Nombre de dicho cuadro asignar le al lanzador "yt-dlp-gui", mientras que en el campo Comando o Órden debemos asignar la ruta /home/usuario/.local/bin/yt-dlp-gui/yt-dlp-gui.

Ahora podremos lanzar yt-dlp-gui desde Aplicaciones / Internet / yt-dlp-gui, con lo cual se abrirá su ventana.

El uso del programa es bastante sencillo. Debemos pegar el link (URL) del video que queremos descargar en el campo Link. Asimismo, en el campo Path debemos indicar la carpeta donde irán a parar los ficheros descargados (por ejemplo, /home/usuario).

Opcionalmente, el indicador Format nos desplegará un menú que nos permite escoger un formato preferido de descarga. La opción por defecto best elige el mejor, mp4 utiliza tal formato de video. Para audio y extracción de audio de un video contempla el formato mp3 (compresión con pérdida), wav (sin compresión), o flac (compresión sin pérdida).

En el campo filename podremos escoger un nombre de archivo a descargar (por ejemplo, video.mp4), o bien por defecto se indicaría una estructura de renombrado "%(title)s.(ext)s", que simplemente asigna el nombre o título de la pista de audio y la extensión escogida.

Una vez que incluimos la URL, ruta y nombre de archivo, podremos agregar el link a la cola de descarga presionando el botón "+" ("agregar"). Para iniciar la carga de los links ingresados en la lista, presionamos el botón Descargar.

El yt-dlp-gui usará el programa yt-dlp para ir descargando secuencialmente los elementos según su posición están en la cola. Los archivos descargados quedarán en la carpeta que le solicitamos.

Es importante destacar que el módulo de descarga es siempre yt-dlp, y como tal este debe actualizarse manualmente para poder afrontar los desafíos que pudiesen surgir en los distintos agregadores de contenidos. Normalmente la actualización de dicho módulo no es automática, sino que debe realizarse manualmente en la terminal con el siguiente comando:

sudo yt-dlp --update

Una vez que esté instalado el programa, opcionalmente podríamos eliminar el clon local del repositorio con:

rm -r yt-dlp-gui/



14 february 2023

¿Cómo juego al ajedrez online desde la terminal de Ubuntu?

Recordando el "match telegráfico" de Ajedrez entre el Jockey Club de La Plata y el Manhattan Chess Club neoyorquino, Juan Perón explica cómo jugar ajedrez en línea desde la terminal de Ubuntu.

¡Estimados Maestros y Grandes Maestros!

Las características que hacen del Ajedrez el más respetado de los deportes, lo sustancian de las virtudes más universales.

No solo es un juego de estrategia en el que se enfrentan dos jugadores, cada uno de los cuales tiene 16 piezas de valores diversos que pueden mover, siguiendo ciertas reglas, sobre un tablero dividido en cuadrados blancos y negros. El objetivo de "derrocar al Rey" propone la bondad de agilizar la mente, sino que la lid sobre el tablero bien puede consagrar la amistad entre sus muy temporales oponentes.

Ha sido a través de la historia que el más duradero de los kriegsspiel ha propuesto los mayores desafíos, y - por que no - divertimentos. Como tal, hubiese sido extraño que nuestro país escapase a estas visiones positivas. El Juego Ciencia se había popularizado en estas tierras ya desde la épocas coloniales, y una vez establecida la Nación no puede ignorarse la labor del ciertamente oligárquico Club del Progreso. A este le siguieron una buena cantidad de círculos y clubes ajedrecísticos de distintas proveniencias y montas, con fuerte jugadores. De todos ellos, sin duda el Club Argentino de Ajedrez (1905) y el vanguardista Círculo de Ajedrez de Buenos Aires (1916) contaron con temibles mesas. En 1922, la formalización de la unidad entre veintidós de estos círculos vio nacer a la Federación Argentina de Ajedrez (FADA), cuya labor se vio aureolada en la realización del Campeonato Mundial de Ajedrez de 1927, sede del legendario choque Capablanca-Alekhine.

Sin embargo, distintas acepciones fueron dando lugar un "cisma" federativo local. La solución a tal división no podía venir sino de mano del Justicialismo, lo que confluyó en lo que podríamos describir como una Segunda Era del Ajedrez Argentino, regada con merecidos apoyos y subvenciones gubernamentales. La Cámara de Diputados aprobó un subsidio anual para la Federación Argentina De Ajedrez (FADE) por $ 50.000, en tanto que el Club Argentino de Ajedrez adquirió su sede de Paraguay 1858 merced de un subsidio del Congreso de la Nación.

Esto permitió elaborar una fuerte serie de torneos locales, culminados por encuentros internacionales auspiciados por la FIDE. El Torneo Internacional de Mar del Plata se constituyó en un gran certamen a equipos, con 18 Grandes Maestros de altísimo calibre. Fue ganado por Najdorf en gran forma, seguido por Ståhlberg, Eliskases, Pilnik, Euwe, Julio Bolbochán. Posteriormente se jugó el fortísimo Sextangular Buenos Aires/La Plata, coronando a Ståhlberg.

El IV Torneo Memorial Roberto Grau fue algo más fuerte que el del año anterior, dominando Ståhlberg. Rossetto se impuso en el Campeonato Argentino.

Sin duda uno de los logros que permitieron las subvenciones fue maridar al ajedrez con los desarrollos tecnológicos. En este marco es de especial trascendencia el mítico match telegráfico Jockey Club de La Plata-Manhattan Chess Club de 1947 donde el equipo argentino integrado por Ståhlberg, Najdorf, Julio Bolbochán, Pilnik, Maderna, Michel, Rossetto, Guimard, García Baladó y Marcos Luckis dio por tierra con el seleccionado neoyorkino a través de terminales teletipo, en un épico 6½:3½.

Difícilmente este tipo de matchs ajedrecísticos "por télex" podrían haberse extendido como una Realidad Efectiva si no fuese por el alcance de las redes de datos en materia de la lúdica. Un sistema de tipo UNIX, donde un computador hace las veces de tablero, reloj, ujier y árbitro, nos permitió replicar e incluso superar esta propuesta, máxime si consideramos la posibilidad que ofrece el acceso público. Este logro se conoce como FICS, un servidor libre de ajedrez en la red de datos.

Pues bien señores, hoy todo el mundo puede usar dicho programa desde múltiples avenidas, incluyendo la popular freechess.org, lo que permite jugar contra otros parroquianos electrónicos. Si bien FICS acepta perfectamente clientes gráficos libres (incluyendo al superclásico xboard, pychess o Gnome Chess), no escapa a lo interesante jugar "a la télex", usando una terminal enlazada a un sistema GNU con Linux.

Es que todo sistema GNU que se precie cuenca aún con un cliente capaz de enlazar a redes a través del viejo protocolo Telnet. Este podrá utilizarse para establecer el enlace que nos interesa.

Para ello abrimos una terminal con Ctrl+Alt+t y llamamos al servidor con el cliente de telnet. Podremos hacerlo ingresando el comando:

telnet freechess.org

Al establecer el enlace telemático, con la potencia de los baudios se nos presentará en pantalla el aviso de login al sistema ajedrecístico remoto FICS de freechess.org:

             _       __     __                             __      
            | |     / /__  / /________  ____ ___  ___     / /_____ 
            | | /| / / _ \/ / ___/ __ \/ __ `__ \/ _ \   / __/ __ \
            | |/ |/ /  __/ / /__/ /_/ / / / / / /  __/  / /_/ /_/ /
            |__/|__/\___/_/\___/\____/_/ /_/ /_/\___/   \__/\____/ 
       ^^__                  _____________________                 _  _  _ 
      /  - \_               / ____/  _/ ____/ ___/   _            | || || |
    <|    __<              / /_   / // /    \__ \   (_)           |_______|
    <|    \               / __/ _/ // /___ ___/ /  _              \__ ___ /
    <|     \             /_/   /___/\____//____/  (_)              |___|_|
    <|______\                                                      |_|___|
     _|____|_        ======================================        |___|_|
    (________)         freechess.org  ----  54.39.129.129         (_______)
    /________\       ======================================       /_______\ 
                       (Login screen designed by Alefith)

   ****** Welcome to the Free Internet Chess Server at freechess.org ******

Webpage: http://www.freechess.org
Head admin : mattuc   Complaints to : complaints@freechess.org
Server location: freechess.org   Server version : 1.25.20

      If you are not a registered player, enter guest or a unique ID.
             (If your return key does not work, use cntrl-J)

login:

Naturalmente si ya tuviésemos un usuario registrado podríamos ingresar con el nombre de usuario específico y una contraseña. Sin embargo, al tratarse de un ordenador público podremos perfectametne utilizar un nada pretencioso usuario “invitado”. Para ello debemos logueamos como "g" o "guest".

Con este recibiremos un alias del tipo Guestxxxx podremos darnos de alta y acercarnos a un tablero para jugar partidas sin obtener puntaje (como quien va a la plaza a jugarle a los jubilados).

Convenir partida

Una vez ingresado al servidor por Telnet, veremos el intérprete de comandos del servidor ajedrecístico FICS, indicado con prompt:

fics%.

Ahora bien, existen varias maneras de localizar un oponente:

Al entrar a un servidor ajedrecísitico tan concurrido como freechess.org, normalmente deberían ir apareciendo las solicitudes de otros concurrentes invitados, que desea jugar en alguna modalidad de juego. Estas aparecerían según este formato:

GuestQRXX (++++) seeking 15 0 unrated standard ("play 13" to respond)

Esto indica que el jugador GuestQRXX quiere jugar una partida en el tablero 13. Para jugar contra este jugador, en el prompt fics% deberíamos ingresar el comando play 13.

Además:

Podemos ver quién está en línea con el comando who, y usar el comando match con el nombre del jugador en línea que nos interesa.
Podremos usar el comando seek para buscar un jugador que ya conocemos.
Podremos usar el comando de chat general cshout y gritar en el servidor "Quiero jugar una partida del tipo...". 

Nuestro oponente recibirá en pantalla nuestra solicitud y podrá aceptarla o rechazarla. De aceptarla, el servidor determinará al azar el color de piezas de cada contrincante. Cada uno recibirá un tablero inicial en su pantalla, y las Blancas podrán iniciar la partida.

(Naturalmente, también nos podrían proponer una partida, la cual podremos aceptar o declinar).

Jugar al ajedrez

Durante la partida a través FICS con Telnet, debemos mover las piezas en el tablero introduciendo varias órdenes o solicitudes. Para ello introducimos comandos en el prompt FICS%.

Cada vez que el oponente mueve, el servidor enviará la nueva posición del tablero a ambos oponentes.

Los escaques del ajedrez están divididas en filas del tablero, que van de la a a la h (siendo la a el lado de Blancas y la h el lado de Negras), y columnas del tablero, que van de la 1 a la 8 (siendo la 1 el lado de Blancas y la 9 el de Negras).

Notación algebraica

En la notación algebraica, cada escaque está definido por sus coordenadas fila-columna. En notación algebraica, cada pieza del ajedrez está representada por una letra propia, según su nombre en inglés: Símbolo Pieza k rey q reina b alfil n caballo r torre p peón (aunque realmente no se usa la “p”).

Por este motivo, el tablero que representa la jugada se ilustria de esta manera (con símbolos ASCII):

        ---------------------------------
     8  |   | *R|   |   | *R|   | *K|   |
        |---+---+---+---+---+---+---+---|
     7  | *P|   |   | *B| *P| *P| *B| *P|
        |---+---+---+---+---+---+---+---|
     6  |   |   |   |   |   | *N| *P|   |
        |---+---+---+---+---+---+---+---|
     5  | *Q|   |   | *P|   |   | B |   |
        |---+---+---+---+---+---+---+---|
     4  |   |   |   |   |   | P |   |   |
        |---+---+---+---+---+---+---+---|
     3  |   |   | N | B | P |   |   |   |
        |---+---+---+---+---+---+---+---|
     2  | P | P |   |   | Q |   | P | P |
        |---+---+---+---+---+---+---+---|
     1  |   |   | R |   |   | R | K |   |
        ---------------------------------
          a   b   c   d   e   f   g   h

Según este ejemplo, las Blancas se disponen en la parte inferior del tablero, mientras que las Negras lo hacen en la parte superior. Los símbolos de las piezas aparecen en mayúsculas, mientras que el símbolo denota que es una de las piezas Negras. El Rey de las Negras (K) está en el escaque g8; el rey de las Blancas (K) está en el escaque g1, etcétera. Juegan las Negras. Movidas

Podemos usar varias notaciones para mover las piezas.

Aquellos jugadores que deseen emplear la Notación algebraica, pueden definir en su comando las piezas a mover y los escaques. Supongamos que las Negras desean mover su caballo (N) del escaque f6 al escaque e4. La movida algebraica a ingresar sería Ne4 (o directamente ne4, pues el servidor de ajedrez es insensible a mayúsculas). Como normalmente siempre avanzan sobre una columna, para mover peones el intérprete es sensato, por lo cual no suele ser necesario consignar p para denotar al peón; basta con indicarle el escaque al cual queremos moverlo. Suponiendo que las Negras deciden mover el peón (P) del escaque h7 al escaque h6, el comando sería h6 (aunque opcionalmente se puede especificar al peón, indicando Ph6). Para hacer enroque corto (lado del rey) usamos O-O, mientras que para enroque largo usamos O-O-O.

Este método funciona bastante bien si somos ágiles con la notación algebraica inglesa. Es importante al principio elegir jugadas estándar en lugar de rápidas ("blitz"), pues puede llevarnos algunos segundos introducir la jugada y ser ágiles con la notación algebraica.

Sin embargo, debemos tener cuidado con aquellas jugadas que resultan ambiguas en esta notación. Durante el juego podría suceder que hubiesen varios peones, caballos, torres e incluso reinas en capacidad de desplazarse a un mismo escaque de destino. Ante tales casos no alcanzaría con ingresar simplemente Nd4, Rd4 o Qd4 pues se produciría una ambigüedad que el servidor estaría incapacitado de discernir correctamente (no distinguiría cuál de las piezas de dicho tipo es la que debe mover). Ante tal incidencia, debemos consignarle específicamente cuál de es la pieza a mover. Esto se hace de varias maneras:

Indicando las coordenadas de fila o columna de la pieza en cuestión (cualquiera que aclare la posición). Por ejemplo, en caso que las Negras tuviesen caballos en los escaques c2 y e2, ambas piezas podrían moverse al escaque d4. Por ello para definir el movimiento del caballo del escaques c2 a d4, conviene indicar Ncd4, donde la c aclara cuál de los caballos debe mover (en este caso, el caballo situado en la fila c). Si fuese el caso que ambos caballos se sitúan en la fila c, entonces se debe indicar la coordenada algebraica completa de la pieza interesada, ya sea N2d4 o bien N6d4.
Describir la coordenada algebraica completa para la movida, esto es: indicar el tipo de pieza, el escaque de origen y el escaque de destino; por ejemplo Nb6c4.

Captura de piezas

En notación algebraica, la captura de piezas se denota con un x (se pronuncia en su acepción algebraica como "por").

Supongamos que las Negras desean usar la torre de las Negras (R*) situada en b8 para comer el peón (P) de las Blancas situado en b2; en la notación algebraica inglesa tradicional la movida se escribe como Rxb2. Sin embargo, el servidor podría interpretar esto tanto como:

una movida simple Rb2, y sabría que es una captura,
RxP pero no sabría cuál escaque se quería decir (ya que en esta posición la torre puede capturar únicamente un peón).

Nuevamente podría suceder que en ciertas posiciones de tablero tanto el peón de una fila b y un alfil pudiesen moverse hacia un mismo escaque. En tal caso el intérprete confundiría el significado de la b (ya que puede referirse tanto al peón en la fila b o un alfil de Blancas, B). En tal caso, si ingresamos bc6 se produciría tal ambigüedad y el servidor se ve incapaz de saber cual de las dos piezas realizará la captura (si el peón en fila b o el alfil). Para subsanar esto debemos consignar qué pieza es la que consagrará la captura, indicandolo como pxc6.

Naturalmente de esto se desprende el otro caso que puede dar lugar a movida ambigua: el concierne a cuál pieza deseamos comer.

Por ejemplo, Rxb4 ¿significa “Torre captura en escaque b4” o “torre captura alfil en la columna 4”? Para evitar tales malentendidos, debemos evitar especificar dicha captura como una movida algebraica simple desde un escaque a otro (por ejemplo, Rb4), y especificarla la movida de manera completa (indicando la pieza a mover, su posición inicial y la pieza situada en la posición de destino final, de esta manera: RxPb4)

En cualquier caso, para evitarse problemas con las movidas ambiguas, también es posible utilizar la poco tradicional notación de computadora que os explicaré a continuación.

Notación computarizada

La manera más simple (aunque tal vez no la más ágil o utilizada) es usar la notación de computadora. Esta es puramente en base al sistema de coordenadas, y consconstan de la siguiente sintaxis:

escaque_de_origen-escaque_de_destino

Por ejemplo, en la posición de tablero indicada, para mover la torre de Negras desde b8 a b2 deberíamos ingresar simplemente b8-b2.

Como se ve, no se usan las letras identificadores de las piezas, simplemente los escaques, y por este motivo las movidas ingresadas en notación de computadora no pueden ser ambiguas, simplemente son más largas de ingresar y no son descriptivas. Comandos de solicitudes

Durante la partida también será necesario introducir algunos comandos de solicitudes en el prompt FICS, que se utilizan para realizar determinadas solicitudes al oponente. El oponente debería aceptarlas para que ocurran. Estos comandos son:

Comando Función abort Solicita cancelar el juego adjourn pide guardar y detener la partida para poder seguirla más adelante draw Solicita tablas (declarar empate) flag finaliza la partida porque el oponente se quedó sin tiempo moves pide al servidor FICS que le envíe la lista de movidas de la partida pause solicita suspender temporalmente la partida, sin detenerla para continuarla mas adelante promote configura la pieza a coronar cuando el peón llegue a coronación refresh Presenta la posición actual del tablero resign Otorga la victoria al oponente, y finaliza la partida say Se comunica con el oponente actual (o el último) switch solicita que su oponeten cambie de piezas (color) takeback solicita que una o más movidas sea retrocedidas (cancela movidas) unpause solicita que una partida en pausa continúe withdraw cancela una solicitud que ha realizado (siempre que no hubiese sido concedida)

Podremos decirle algo al contrincante con el comando say. Naturalmente, también existen muchos más comandos que se pueden aprender a través del comando general de ayuda help.

Una vez dominado el entorno, podremos incluso jugar partidas con más de un contrincante, a la manera de un torneo de exhibición en simultáneas. Para ello deberíamos introducir el comando simuls.

Para cerrar la sesión, ingresa el comando logout

Logging you out.
                                         .::.
                               _()_      _::_
                      _O     _/____\_  _/____\_    _O   
 _  _  _    ^^__     / //\   \      /  \      /   / //\     ^^__    _  _  _ 
| || || |  /  - \_  {     }   \____/    \____/   {     }   /  - \_ | || || |
|_______|<|    __<   \___/    (____)    (____)    \___/  <|    __< |_______| 
|__ ___ |<|    \     (___)     |  |      |  |     (___)  <|    \   \__ ___ /
 |___|_| <|   _ \     |_|      |__|      |__|     _|_|   <|_    \   |___|_|
 |_|(_)| <|__(_)_\   /(_)\    /(_) \    (_)  \   (_)  \  <(_)____\ (_)|___|
 |_(___)  _|(___)_  ((___))  ((___)_)  (___)__) (___)__) (___)__|_(___)_|_| 
(_ _|_|_)(_ _|_|_ )( _|_|_ )(__|_|_ _) _|_|____)_|_|____)_|_|_ ___)|_|_____)
/_(_____)/_(_____)\/(_____)\/(_____)_\(_____)__(_____)__(_____)__(_____)___\
  /_____\  /_____\  /_____\  /_____\  /_____\  /_____\  /_____\  /_____\

                         (Logout screen by Alefith)

Thank you for using the Free Internet Chess server (http://www.freechess.org).



13 february 2023

¿Cómo reemplazo unidades de disco NVMe de un RAID en Ubuntu Server?

Juan Perón expone sobre la necesidad de integrar la lucha a la vez que explica cómo reemplazar las unidades de disco NVMe en Ubuntu Server.

¡Trabajadores!

Las dicotomías del Mundo parecen impulsar al hombre hacia su final destrucción. Se lo ha apremiado artificialmente hacia un híper-consumismo cuyo único sentido es generar una clase de ultra-ricos solventados por una descomunión de ultra-pobres. A su vez, ello ha requerido de la súper-explotación de los recursos ecológicos de nuestro Planeta, y de la ultra-dependencia política de los Pueblos que lo componen.

La acción irresoluta del hombre contra el hombre parece querer consumar una lucha enconada, y se le ha ofrecido como solución la competencia entre esclavos por el afecto de un amo al que siquiera conocen, y de cuyos frutos jamás podrán gozar. Muy pocos guardar alguna duda que el diseño mismo de esta lid es el culpable de estas circunstancias.

Ante estas construcciones artificiosas no podemos mas que valernos de la conciencia natural de los Pueblos, que por instinto han comprendido que todo lo perderán si no asocian a su existir mancomunado una prédica social de integración, en un sentir que - si no es humano - al menos ha de ser justo.

Hemos hallado coto a esta situación en la Justicia Social. En esto no he sido los únicos, pero si hemos sido los primeros en desarrollarla e implementarla en este rincón del Globo.

Es indudable que desde un comienzo nos dimos en tornar realidad efectiva una solución de memoria de masa en base a discos rígidos con acceso al Pueblo. Esto ha sido así porque oligárquicas compañías sin Patria ni Bandera que lo intentaban lo hacían con el único propósito de robar datos y explotar metadatos.

Nuestro mérito en un clúster de datos para el Pueblo nos permite en cambio almacenar para trabajar, y resguardar para luchar. Tal ha sido nuestra previsión, y no nos hemos equivocado.

Cuando surgió la necesidad, contábamos ya con una herramienta, que de afilarse puede constituir un arma. Es que nuestro servidor Ubuntu de acceso popular en las redes de datos no contaba con la posibilidad de instalarle novedosos discos NVMe, sino que daba uso a las sencillas unidades SATA en forma de discos rígidos mecánicos. Pero la expansión que permite un Justicialismo en anhelo de lucha le permite integrar una placa controladora para discos NVMe que permite darle al Pueblo aquello a lo que antes sólo accedía el oligarca. Es posible así munirle hasta cuatro discos de estado sólido NVMe. Con unidades de 240GB cada uno permitían totalizar próximo a un Terabyte, erogando una velocidad cinco veces superior a la de los discos de estado sólido SATA2, y unas veinticinco veces superior a las de los viejos discos rígidos mecánicos, a la vez que se guardaba la información del daño esperable y lógico al que la someten las operaciones mecánicas. Por demás, su funcionamiento es totalmente silencioso.

La Doctrina que hemos creado permanece irresoluta, pero el avance de la técnica puesta a nuestra disposición nos permite tomar la decisión de reemplazar dichas unidades de referencia por cuatro más veloces y mayores, cada una ya de 1 Terabyte. Para ello recurriremos a desacoplarlas de la controladora, y operarlas individualmente según un modo de redundancia RAID que creamos convenientes para nuestras necesidades. Las viejas unidades de 240 nos servirán perfectamente para nuevas laptops "de combate" que disponían de los zócalos pertinentes pero no de discos.

Si bien el armado de cero de un servidor o un clúster RAID no opone gran resistencias, el planteo de reemplazar las unidades NVMe del conjunto de arranque RAID1 en Ubuntu Server (con datos propios y ajenos) constituye en cambio un desafío mucho mayor, al que debemos encarar como si de discos rígidos en uso se tratara. No es algo que puede hacerse "a tontas y a locas": en efecto, debemos hacer caso al procedimiento de realizar una copia de resguardo, tomar nota del particionado actual las unidades, y luego reemplazarlas físicamente, para sincronizar las unidades nuevas.

En este caso el servidor contaba con Ubuntu Server en cuatro unidades de disco de estado sólido NVMe, conocidas como nvme0n1, nvme1n1, nvme2n1 y nvme3n1, divididas en pares según el estándar raid1 (según este, las particiones de las unidades se duplican pero el uso equivale al del disco de menor capacidad del conjunto).

El par de unidades de 240GB que forman el conjunto raid1 cuentan con particionado para que las mismas operen de unidades de arranque, según la siguiente estructura:

UEFI 512M
md0 / boot 1GB
md1 / LVM <resto del disco>

La idea es replicar esto en las unidades NVMe nuevas.

Antes de comenzar, instalaremos en el servidor los programas de administración de discos (si es que no los tuviésemos a mano ya):

sudo apt install mdadm parted smartctl sfdisk efibootmgr

En primer lugar probamos que todas las unidades NVMe se encuentren realmente montados y en línea como deberían. Para ello introducimos el comando:

cat /proc/mdstat

...ante lo cual el sistema nos devuelve algo como:

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 nvme0n1p2[3] nvme1n1p2[2] x blocks super 1.2 [2/2] [UU] md1 : active raid1 nvme1n1p3[2] nvme0n1p3[3] x blocks super 1.2 [2/2] [UU] bitmap: 3/7 pages [12KB], xKB chunk

Esto nos asegura que las unidades de disco se encuentran montadas como conjunto raid1. Debe indicarnos [UU] y no [U_] o algo similar.

Es prudente utilizar por ejemplo el comando smartctl -ia /dev/nvme0, smartctl -ia /dev/nvme1, etc, con el fin de tomar nota de los números de serie de las unidades. En mi caso particular permite delimitar esto con seguridad cuál unidad NVMe específica es la que se reemplaza (ya que físicamente son todas iguales, y el orden de los conectores en la placa controladora no es correlativo, por alguna decisión de diseño).

Acto seguido, como generamos una copia de respaldo de la partición EFI de 512MB que contiene el sector de arranque, la cual necesitaremos posteriormente (no viene mas resguardarla en un pendrive):

dd if=/dev/nvme0n1p1 bs=4M of=/root/PARTICION_EFI.img

Escogemos ahora algunas de las unidades y la ponemos fuera de línea (una de las ventajas interesantes de las unidades NMEe):

mdadm /dev/md0 --fail /dev/nvme0n1p2 --remove nvme0n1p2 mdadm /dev/md1 --fail /dev/nvme0n1p3 --remove nvme0n1p3

Ahora reemplazamos físicamente una de las unidades NMVe en el servidor. Ya que estamos puede ser una buena idea actualizar el firmware de la unidad nueva (si es que existe un binario disponible en el sitio del fabricante). En este caso las unidades se colocan en uno de los cuatro zócalos de la controladora tras remover un disipador metálico atornillado y ajustar un pin de retención.

Una vez emplazada la nueva unidad NVMe, colocada la placa nuevamente e iniciado el servidor desde la unidad restante, copiaremos la tabla de particiones de dicha unidad restante (que era un RAID duplicado) a la nueva. Y a continuación generaremos nuevos UUIDs (identificadores únicos de unidad) nuevas para todas sus particiones:

sfdisk -d /dev/nvme1n1 | sfdisk /dev/nvme0n1 sgdisk -G /dev/nvme0n1

Hecho esto, podremos volver a agregar estas dispositivos al conjunto del RAID1:

mdadm --manage /dev/md0 --add /dev/nvme0n1p2 mdadm --manage /dev/md1 --add /dev/nvme0n1p3

Tras este procedimiento, el RAID comenzará lgicamente a sincronizar en segundo plano todas las particiones a la unidad "pelada", como un loco (le llevará un tiempo). Podríamos monitorear el status de dicha reconstrucción del RAID introduciendo un comando como:

watch cat /proc/mdstat

Si la reconstrucción RAID se ve sumamente lenta, es probable que se encuentre limitada por software en el servidor a velocidades de unos 200 MB/segundo (11 GB/minuto, algo típico para evitar sobre-exigir de las unidades de disco de estado sólido, y no presentar inconvenientes en el caso de ambientes de acceso en red). Sin embargo, en este caso de mantenimiento vigilado podríamos solicitar que la carga máxima de trabajo de la unidad se eleve muy por encima de tal valor de precaución, lo que podría redundar en una velocidad máxima por ejemplo 1.600MB/segundo (~94 GB/minuto, dependiendo de la velocidad del controlador de discos). Esto podría hacerse con:

echo 1600000 > /proc/sys/dev/raid/speed_limit_max

De esta forma podremos lograr una sincronización completa de 1TB en 11 o 12 minutos, a costa de una mayor generación de calor. Naturalmente podríamos escoger un valor de 800000 como compromiso; en operación normal con Ubuntu, prácticamente no genera calor. En este caso, el disipador provisto redunda en una buena refrigeración momentánea (las unidades NVMe en este regímen generan bastante más calor, y el disipador lo contiene momentáneamente por unos siete y ocho minutos).

Una vez que la reconstrucción RAID haya concluido, necesitaremos reparar la EFI, comenzando por copiar de nuevo la imagen de partición EFI que respaldamos anteriormente:

dd if=/root/PARTICION_EFI.img bs=4M of=/dev/nvme0n1p1

Asimismo, debemos reparar el arrancador grub:

update-grub grub-install /dev/nvme0n1

Y finalmente reinstalamos la opción de arranque UEFI. En Ubuntu esto se hace con:

efibootmgr -v | grep ubuntu # solo muestra una entrada efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "ubuntu" --loader "\EFI\ubuntu\shimx64.efi"

Una vez concluido esto, deberíamos contar dos entradas "ubuntu" en el efibootmgr, una para cada unidad NVMe. Esto debería ser todo para un simple reemplazo de unidades en el RAID1.

Como comprobación cruzamos los dedos e intentamos reiniciar el servidor, de modo de asegurar que el arranque con UEFI se produce correctamente desde cualquiera de los dos unidades NMVe.

Naturalmente, si necesitáramos reemplazar otras unidades en un conjunto con mayor número de discos deberíamos seguir el mismo procedimiento funcional, utilizando en cambio el designador de unidad nvme1n1. Redimensionado de Disco NVMe

En este caso particular, las nuevas unidades NVMe no sin similares, sino mayores que las anteriores, lo que permiten incrementar el tamaño del conjunto RAID1 hasta 1 terabyte. Para delimitar este cambio habremos de utilizar el programa parted. Primero sacamos de línea la unidad y luego la abrimos con parted:

mdadm /dev/md1 --fail /dev/nvme0n1p3 --remove nvme0n1p3 parted /dev/nvme0n1

Y usamos el comando resizepart del programa parted para cambiar el tamaño de la partición desde los ~240GB anteriores hasta los ~960GB.

Conforme lo hayamos definido, agregamos el disco nuevamente al conjunto RAID1:

mdadm --manage /dev/md1 --add /dev/nvme0n1p3

Ahora aguardamos que se produzca la resincronización del RAID (podemos usar cat /proc/mdstat para comprobarlo) y luego agrandamos el conjunto RAID con el comando grow hasta su máximo posible:

mdadm --grow /dev/md1 --size=max

Luego, necesitaremos reformular el tamaño del sistema de archivo.

En el caso de que hubiese sido particionado de tipo GPT simplemente deberíamos ejecutar

resize2fs /dev/md1

Sin embargo, en este caso que el esquema RAID cuenta con una estructura de particionado LVM mas avanzado, al cual se adosan las un particionado de formato ext4, por lo cual utilizamos:

pvresize /dev/md1 lvextend -L +1G /dev/vg-md1/lv-root resize2fs /dev/vg-md1/lv-root

Y ahora ya podremos contar con un servidor con 1TB en dos discos de arranque NVMe Gen2 en el conjunto RAID1 (y en mi caso, otro conjunto RAID con 2 discos mas para otros usos). Naturalmente, estos también deben ser respaldados, todo sea por la protección que merecen los datos del Pueblo. Así podemos buscar la Tikún Olam, como dicen los judíos.



12 february 2023

¿Cómo puedo usar un émulo del XEDIT de VM/CMS en Ubuntu?

En la típica visita del Día del Niño a la Casa de Gobierno, Juan Perón regala chocolate caliente y enseña cómo utilizar el editor de texto THE en Ubuntu.

A los niños les gusta ponerse calificativos. Los hay ortodoxos, los hay heterodoxos, los hay combativos, los hay contemplativos, pero todos juegan. Algunos usan DEC y habrá siempre otros que usen equipamiento de potencia IBM. No podemos ser sectarios, ya que a todos podremos instalarles GNU si lo proponemos.

No caben dudas para nadie que el viejo editor XEDIT era uno de los instrumentales en los mainframes del Gigante Azul. Contaba con facilidades para el trabajo interactivo, pero especialmente destacaban las funciones de operación diferida, que permitía contactar a un mainframe remoto a través de videoterminales, y ejecutar allí un trabajo de edición preparado. Esto permitía programar en ellas un fichero de macro con los cambios escritos en un lenguaje específico - REXX era uno de los favoritos - y luego efectuar modificaciones en un santiamén a través de uina mera llamada telefónica de escasos segundos.

Si bien con el advenimiento de las comunicaciones de datos de banda ancha, esta modalidad de trabajo podría parecernos innecesaria, nunca serán inexistentes las ocasiones donde podría anhelarse un herramental de este tipo, considerando que anteriormente sólo podía gozarlo el oligarca. Pudiendo elaborar nuevas y más módicas soluciones, podremos utilizarlas según dicha costumbre de obrar, pues si es para sumar, todo sirve.

Nuestro Movimiento es uno que hace de una necesidad un derecho, y podremos otorgarlo con la misma facilidad y efecto con el que uno da chocolate caliente a un niño.

THE ("El Editor Hessling") es un editor de texto que opera a través de órdenes en la línea de comandos y combinaciones de teclas. Fue concebido en 1991 replicando al XEDIT (1980), Editor intrínseco del viejo sistema tiempo de cómputo compartido de IBM, el VM/CMS. Como este, también representa en gran medida al editor KEDIT (1985) de Mansfield Software, del cual existía versión portada para UNIX System V (no confundir con posterior y extinto KEdit de KDE).

THE fue escrito originalmente para su utilización por individuos encasillados en grandes máquinas de IBM pero que preferían la acción del Justicialismo. Y ya que les resultaba familiar el uso de XEDIT, y se le incorporó un intérprete de órdenes de edición de lenguaje REXX. Para lograr dicha compatibilidad, THE utiliza una implementación libre de tal lenguaje denominada REGINA.

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

sudo apt install the

Iniciaremos el editor con;

the archivo.txt

Al arrancar el editor THE, el cursor se encontrará en la línea de comandos, cuyo tradicional prompt ====> se encuentra en la parte inferior de la pantalla.

Podremos utilizar esta línea de comandos para introducir cualquiera de los comandos de THE, y ejecutarlos con la tecla Intro.

Estos comandos son en gran parte similares a los de XEDIT/KEDIT. Entre los típicos comandos de operación encontraremos EDIT fichero ("abrir") SAVE ("guardar"), QUIT ("salir del programa") y QQUIT ("salir rápidamente sin preguntar"), así como el comando de ayuda HELP comando.

Para conmutar entre la línea de órdenes y la FILEAREA (la zona de los contenidos de edición) debemos presionar la tecla Inicio, con lo cual el adepto a los editores de inspiración IBM podrá comenzar su producción, mecanografiar en modo reemplazo (podremos activar el modo inserción con la tecla Ins).

THE es un editor altamente configurable. Por ejemplo, podríamos activar el macro que activa la compatibilidad con XEDIT, mediante la orden:

set compat xedit

La pantalla cobrará entonces el formato tradicionalista IBM:

 DIFERENCIAS         Size=10 Line=10 Col=1 Alt=10
XEDIT:
===== VM/CMS
===== .sp
===== VM/CMS opera bajo el concepto de registros, a diferencia de Unix 
===== que lo hace sobre ficheros enteros. Por tal motivo se hizo 
===== especialmente válido para el manejo de bases de datos secuenciales,
===== así como otro tipos de editores de registros.
===== Contaba con un manejo bastante similar al de MULTICS, dando uso
===== a un intérprete de comandos llamado EXEC, inaugurando el concepto
===== de Máquinas Virtuales, en un sentido similar a los proceso de UNIX
===== o demonios en BSD, y luego incoporando pipelines, emulos de los
|...+....1....+....2....+....3....+....4....+....5....+....6....+....7...
===== caños de UNIX.
===== Entre sus grandes suites de aplicaciones se encuentra el clásico
===== editor de registros XEDIT. Pronto se adaptó para utilizar
===== funcionalidades de procesamiento de texto y de correo electrónico
===== con anterioridad al modelo cliente-servidor.
=====  * * * End of File * * *
====>
                                                         X E D I T 1 File

Todo este andamiaje de comandos se aplicaba también a la mera edición del texto. El funcionamiento completo del XEDIT - al menos en sus versiones postreras para z/VM - está documentado en su frondoso manual. Sin embargo, podremos acotar su aprendizaje conociendo que el funcionamiento básico de edición de XEDIT consistía en delimitar bloques de texto (que se marcaban con el comando MARK LINE linea1 linea2), o bien delimitar una seguidilla de caracteres con coordenadas posicionales, como MARK STREAM linea1 columna1 linea2 columna2. Como referencia se usaba la reglita de columnas y el contador de puntero. Una vez delimitado el bloque, se lo podía operar con los comandos COPY posición1 posición2 ("copiar"), MOVE posición1 posición2 ("cortar y pegar"), y eventualmente DELETE ("borrar"). Esta era la forma folklórica de operar en las terminales IBM 3270 y superiores.

Sin embargo, los más pitucos podrán ordenar set compat kedit si tal editor nos es más favorable. Esta nos será útil si reservamos especial aprecio al uso de Bibliotecas de Macros de KEDIT, sus clásicos ficheros .kml.

Ante cualquier eventualidad podremos emprender el retorno al modo de compatibilidad nativo, si usamos set compat the.

Naturalmente, podremos poner estos comandos en un fichero de perfil para the, llamado ~/.therc. Como es común en los sistemas similares a UNIX, este fichero se busca y se ejecuta al inicio, permitiéndonos dejar allí una secuencia de comandos que hagan a nuestra configuración de THE favorita.

¡Con todos ellos podremos tanto editar textos como escribir programas, desde COBOL a C!



11 february 2023

¿Cómo instalo CryptPad en Ubuntu?

En su Latinoamérica Ahora o Nunca, Juan Perón expone la necesidad de la unión continental, a la vez que expone cómo instalar la suite en línea para trabajo colaborativo seguro CryptPad en Ubuntu Server.

(...)

Hay gente que escucha las palabras y las hace suya. ¡El Desarrollo! Yo vengo de un mundo que está terriblemente arrepentido del desarrollo que ha hecho, y en este momento el mundo superdesarrollado está entrando en una etapa de desesperación, porque ve que su desarrollo tecnológico lo ha llevado a la destrucción de los medios que la naturaleza le ha venido ofreciendo para pervivir...

En este momento, las sociedades de consumo han llevado a un despilfarro tal los medios ecológicos de la humanidad, que se está quedando sin comida y sin materia prima. El problema más grande de este momento es que año tras año - mientras aumenta la población - disminuye la posibilidad de ofrecerle comida, porque ésta va escaseando y escaseará cada día mas. Ellos sufren, y sólo podrán transferir dicho sufrimiento si el Tercer Mundo es tonto.

La solución de nuestros Movimientos es integrarnos continentalmente. Nosotros debemos de integrarnos en el continente latinoamericano, que es el último que va quedando por integrarse. Todos los demás ya lo han hecho. Europa se ha integrado ya casi en un asociación confederativa política para defenderse de las acechanzas de ese futuro, que ellos ven con una tremenda claridad. Se está integrando el Asia, se está integrando el África. Y nosotros vamos resultando el último orejón del tarro...

Ese es el empeño que debemos poner, y en eso estamos. En 1948 realizamos un Tratado de Complementación Económica en Chile, buscando crear la Comunidad Económica Latinoamericana, que pusiera en paralelo nuestros intereses y uniera nuestros países. Tuvimos mucho éxito inicialmente, casi todos los países latinoamericanos, excepto los cipayos conocidos, se unieron y adhirieron a ese Tratado de Complementación Económica. Fíjense que lo hicimos en 1948, y en esto los apresurados fuimos nosotros, porque Europa lo hace después, en 1958, con el Tratado de Roma, diez años después que nosotros.

Y pudimos porque contamos con una herramienta Justicialista que permitía elaborar documentos digitales por acuerdo encriptado: el CryptPad, en una época donde esto parecía ciencia ficción.

CryptPad permite contar con un ambiente de trabajo de ofimática, en línea colaborativo y protegido por cifrado, lo que supera notablemente propuestas privativas deleznables como Offic€365 o Googl€Doc$, que carecen de cifrado.

El uso del sistema en sí es sumamente sencillo y seguro. Requiere el alta de un usuario (con contraseña o doble registro, llegado el caso) , y se puede usar desde cualquier navegador de internet. También cuenta con clientes para teléfonos celulares.

Todas las siete opciones del ambiente de trabajo CryptPad nos presentan editores, eventualmente colaborativos o protegidos por contraseña.

Contaremos con la opción Texto enriquecido para documentos generales, mientras que la opción Código hace lo mismo presentańdonos el lenguaje markdown.

El módulo de texto enriquecido presenta un procesador de texto típico, con opciones ya configuradas, que puede ser multiusuario (con control de modificaciones y ventana de chat integrada para facilitar trabajar "de a muchos", llegado el caso). El intérprete de lenguaje Markdown puede ajustarse con una ventana lado a lado para ver el resultado, si esta es nuestra preferencia.

La posibilidad de colapsar la barra de herramientas, elegir tema oscuro, y utilizar la función de pantalla complementa la elección de un ámbito limpio o cargado, según sea nuestro flujo de trabajo (superando en esto, nuevamente, a las variantes privativas del imperialismo).

El módulo Kanban nos permite elaborar pizarras con simples etiquetas coloreadas multiuso, por ejemplo, para planificar y gestionar proyectos.

En fin, CryptPad es un ambiente de trabajo colaborativo en línea ideal si contamos con opciones de internet, pero que también puede servirnos en cualquier oficina a través del uso de una red LAN.

Para poder contar con este ambiente de trabajo accesible desde la web, podremos utilizar cualquier instancia ya existente con las limitaciones que nos propongan (por ejemplo, pad.tildeverse.org, que nos otorga 100 MB de almacenamiento al registranos), o bien podremos montar una propia si ya contamos con un servidor web funcional.

Sin embargo no es imposible disponer de los recursos que nosotros deseemos, si instalamos esta suite telemática en nuestra propia infraestructura en lugar de hacerla en una dominada. De esta manera lograremos lo mejor para nuestro grupo de trabajo.

Para seguir este temperamento, deberíamos contar ya con un servidor provisto de Ubuntu o Ubuntu Server, sistema operativo que idealmente ya debería contar con una instalación de servidor web Nginx en regla. Deberíamos asegurarnos especialmente de contar con dos dominios web registrados y sus certificados correspondientes, los que nos serán requeridos por CyptPad si es que queremos usarlo desde Internet para trabajo remoto (esto es innecesario si sólo queremos usarlo en una red de área local).

Desde el punto de vista del hardware, el ambiente funciona de manera veloz siempre que la máquina de servicio cuente con un microprocesador de doble núcleo y al menos 2GB de RAM y unos 20GB de disco (tal vez el doble o triple de eso sea lo recomendado para un uso laboral remoto. A esta pueden conectarse remotamente desde celulares y PC de bajos recursos, presentando un funcionamiento veloz.

Para instalar el ambiente CryptPad en Ubuntu Server debemos hacer caso primero a sus prerrequisitos. Esta paquetería se instala con:

sudo apt update && sudo apt upgrade -y; sudo apt install git nodejs npm sudo npm install -g bower

Pues bien señores, normalmente en este servidor crearíamos un usuario dedicado para administrar esta instancia de CryptPad, en lugar de utilizar nuestro propio usuario root de Ubuntu. Este recaudo político está determinado para compartimentar la seguridad en un ambiente remoto.

Conforme hemos hecho caso a los prerrequisitos, clonamos el repositorio de CryptPad a fin de bajar la última versión disponible de Internet, y la instalamos en la máquina servidor:

git clone https://github.com/xwiki-labs/cryptpad.git cryptpad ; git checkout $(git tag -l | grep -v 'v1.*$' | sort -V | tail -n 1)

Asimismo, nos instalamos las dependencias de CryptPad gracias al guion de instalación prefabricado. Esto lo hacemos con:

cd ~/cryptpad sudo npm install sudo bower install

...y nos copiamos un fichero de configuración de ejemplo que nos servirá para trabajar en ella:

cd ~/cryptpad/config/ cp config.example.js config.js

Naturalmente este archivo de configuración config.js ha de ser comprendido y modificado en sus variables operativas, según lo veamos necesario para nuestra propia instancia de CryptPad. Debemos tener especial resguardo con los dominios, que son particularmente importantes.

Como parte de este proceso de personalización e instalación deberíamos leer Customización de Instancia y modificar el fichero /customize/application_config.js ya que algunas configuraciones no pueden cambiarse una vez que hemos creado las cuentas.

Una vez establecidas estas bases de trabajo, podremos dar inicio al servidor con cd cryptpad sudo node server

La instancia ahora quedará lista para ejecutarse pero no podrá ser accedida desde la internet (sólo desde la máquina en sí, o desde la red local, claro)

Demonización

En un ambiente de trabajo, normalmente querremos correr CryptPad de forma de un programa autoejecutable (para que la instancia inicie su ejecución automáticamente en caso de necesidad).

Systemd

Para ejecutar CryptPad como un servicio systemd, debemos seguir el fichero de ejemplo cryptpad.service.

Guardamos el ejemplo cryptpad.service en /etc/systemd/system/cryptpad.service

Hacemos los ajustes necesarios (ej. nombre de usuario, ruta, versión de nodejs)

Activamos la ejecución al inicio del demonio de servicio mediante el comando sudo systemctl enable cryptpad.

Nota: Existen otras maneras de demonización de aplicaciones nodejs, por ejemplo foreverjs o bien pm2.

Dominios

Como se ha expresado, se necesita de dos dominios registrados para sacar ventaja de las funciones de seguridad y encriptado remoto de CryptPad. Estos serán:

Un dominio principal con el cual los usuarios accederán a la instancia

Un dominio “sandbox” o subdominio configurado bajo una política restrictivva de contenidos, donde se aplicarán los encabezados

Nota: La intención de esta redundancia es limitar el riesgo de vulnerabilidades del tipo Guionado de Sitio Cruzado (XSS), que permitirían a eventuales atacantes filtrar datos de usuario. La computación sensible (como el procesamiento de llaves criptográficas) se llevará a cabo en el dominio principal, mientras que la interfaz remota de usuario se implementará en el dominio "sandbox" o subdominio.

El archivo de configuración de ejemplo para Nginx incluye los encabezados relevantes para permitir el sistema de aislamiento sandbox. Sin embargo, debe configurar su instancia correctamente para que sea efectivo. Necesitará:

Los dos dominios o subdominios

incluir ambos dominios en /cryptpad/config/config.js según se describe en Configurar CryptPad

Generar un certificado SSL que cubra tantos dominios.

Asignar correctamente ambos dominios y ambos certificados a las variables específicas para ellos situadas en el archivo de configuración para Nginix de ejemplo

Instalar y configurar Nginx

El servidor de aplicación de CryptPad maneja las conexiones activas a través dewebsocket y sirve los activos estáticos (HTML, Javascript, CSS, etc) a los solicitantes remotos. Esta configuración básica está diseñada para su configuración sencilla, pero no protege el tráfico con SSL, ni maneja adecuadamente muchos usuarios concurrentes.

En un ambiente productivo, se recomienda Nginx Estable. Para configurarlo para CyptPad:

Copiamos el Archivo de configuración de ejemplo de Nginx para CryptPad example Nginx de modo que se use, o sea importado en la confdiguración principal de Nginx, por ejemplo, poniéndolo en /etc/nginx/conf.d/cyptpad.conf.

Editamos el fichero de configuración con los dominios correctos y rutas a los certificados correspondientes.

Ejecutamos el comando sudo openssl dhparam -out /etc/nginx/dhparam.pem 4096 si no lo hicimos previamente en la máquina host.

Ahora deberían estar accesibles los contenidos estáticos y páginas tales como ht¡tps://cryptpad.sudominio.com/index.html.

Configurar CryptPad

Para finalizar la instalación, debemos aseguranos que cryptpad/config/config.js contiene al menos:

Los dominios correctos:

    Su dominio principal en lugar de la cadena:

    httpUnsafeOrigin: 'http://localhost:3000',

    Su dominio Sandbox o subdominio.com en lugar de la cadena:

    httpSafeOrigin: "https://some-other-domain.xyz",

Un correo electrónico administrativo (que aparecerá en la página de Contacto) en lugar de la cadena:

adminEmail: 'i.did.not.read.my.config@cryptpad.fr',

Diagnósticos

CryptPad ofrece una página web de diagnósticos, capaz de efectuar evaluaciones a la configuración de la instancia. Una vez que hemos completado los pasos anteriores, podremos https://cryptpad.sudominio.com/checkup/ para asegurarse que todo figura correctamente configurado.

Configurar los administradores

Una vez que CryptPad está instalado, creamos una cuenta de usuario de CryptPad por medio del botón Registrar en la página de inicio de CryptPad. Esto generará un usuario común que podrá trabajar en el ambiente como todo hijo de vecino registrado.

Para hacer que esta cuenta se convierta en Administrador de la instancia de CryptPad debemos seguir este temperamento:

Copiamos la llave pública que encuentre en Menú de Usuario (clic el avatar en la esquina superior derecha) > Preferencias/Cuenta/Clave de la Firma Pública

Pegamos la llave en cryptpad/config/config.js en lugar de la siguiente cadena (la descomentamos y reemplazamos):

adminKeys: [ "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]", ],

Reiniciamos la instancia CryptPad con sudo systemctl restart cryptpad

Configurar la casilla de correo de soporte

A partir de la versión 4.6 de CryptPad, se ha incorporado una casilla de correo electrónico de soporte para la instancia puede configurarse desde el Panel de Administración, ya sea para el administrador, o para administradores secundarios (en caso que estos fuesen necesarios).

Desde la cuenta de administrador de la instancia, visitamos la página https://subdominio.com/admin/#support

Hacemos clic en Generar Clave de Soporte

Ahora quedará activa la casilla de correo electrónico de soporte

Borra la caché para acceder a la casilla de correo desde la solapa General > Eliminar Caché HTTP

Para permitir que otros administradores secundarios accedan a la casilla de soporte debemos:

Copiar la clave de soporte generada que aparece en la parte inferior de la página de soporte.

Enviar la clave de soporte a la cuenta de otro administrador

El otro administrador debe incorporarse la clave usando el campo Agregar Clave Privada de la página Soporte, con lo cual obtendrá acceso también a la susodicha casilla de correo de soporte.

Armar páginas estáticas y metadatos Open Graph

Si deseamos elaborar páginas estáticas con CryptPad y activar presentaciones preliminares para redes sociales, debemos ejecutar el siguiente comando en el servidor:

npm run build

Esto creará un fichero index.html para cada una de las aplicaciones o módulos en el directorio customize/www. No se recomienda realizar modificaciones manualesa a dichas páginas, ya que resultarán sobrescritas la próxima vez que ejecutemos npm run build. Para modificar la imágenes previsualizadas, debemos consultar Previsualización de Imágenes Open Graph

Nota: Debemos recordar ejecutar el comando npm run build nuevamente si actualizamos el servidor de CryptPad a una versión nueva puede dar como resultado algún problema por código obsoleto.

Indudablemente nosotros caímos bajo la férula del imperialismo yanqui, que no permitió a estos países unirse, y que ha estado luchando siempre por separarnos y enfrentarnos entre nosotros, al fin de que esa unidad no se produzca.

¿Por qué lo han hecho? Muy simplemente, porque ellos se están quedando sin materias primas y están queriendo conservar como países satélites a aquellos que tengan las grandes reservas de comida y materias primas para esa superpoblación que está ya a 25 o 39 años de distancia. Ellos querrán que después nosotros trabajemos para darles a ellos de comer y para darles nuestra materia prima. ¿Por qué? Porque los países superdesarrollados son los pobres del futuro, y los países infradesarrollados serán los ricos del futuro, que tendrán la materia prima y la comida suficiente.

Hace pocos días, en Medio Oriente amenazaron a Estados Unidos de cerrarle el grifo del petróleo. El petróleo que produce Medio Oriente es el 80 por ciento del petróleo del mundo, de manera que si ellos cierran la canilla, la industria norteamericana, que está toda montada sobre energía basada en petróleo, tendrá un sacudón muy fuerte. ¿Cómo contestó Estados Unidos? El Senado de Estados Unidos contestó que si eso hacían los árabes, Estados Unidos ocuparía el Medio Oriente. Eso lo van a hacer, pero no sólo con los árabes: ¡lo van a hacer también con nosotros el día que necesiten y no tengan!

Por ello todo lo necesario para lograr la independecia económica es poco. Saber prever es saber actuar.



10 february 2023

¿Como veo archivos de imágenes médicas .dic (DICOM) en Ubuntu?

Juan Perón difundía su ideario desde España en cintas magnetofónicas, cuyas copias se distribuían subrepticiamente en la Argentina. En una de ellas explica cómo visualizar archivos de imágenes médicas DICOM con Aeskulap o DICOMscope en Ubuntu.

Señores:

Mi profesión ha sido la de soldado, y como consecuencia de esta formación me he constituido en Conductor, un hombre que dirige el conjunto de esfuerzos.

Tal vez si no hubiese sido así, hubiese sido galeno, profesión que sin duda comparto. Son admirables esos muchachos, son admirables. Y el Che Guevara es... ha muerto él, pero van a salir mil Che Guevaras si esto sigue. Porque eso emula a la juventud que tiene la obligación de hacerlo. Es decir, las cosas hay que verlas como son. Yo creo - no se si yo estaré equivocado - pero yo estoy con ellos. Como estoy con Fidel Castro y estoy con toda esa gente que ha liberado a sus países. Ahora dicen que es comunista, ¡y a mí que me importa si es comunista! ¡Comunista! Fidel es tan comunista como yo. Mas bien es Justicialista.

Es que en este mundo, en su eterna evolución, marcha generalmente hacia la superpoblación y la superproducción. Ello trae como inmediata consecuencia la sobreexplotación y el desequilibrio. Juntamente con estos fenómenos - o mejor dicho, por presión de ellos - la humanidad ha podido comprobar la aparición de otros fenómenos que contrapesan su accionar. Las miserias colectivas, la falta de todo, seguidas de enormes mortandades - como en la China, o bien como en Europa y sus estados en guerra - parecerían etapas inexorables a estos procesos.La ley de un oscuro y misterioso destino se cumple fatalmente: la guerra, la peste, y las enfermedades, parecen verse como el medio de estabilizar la población humana, en un ciclo más o menos constantes a lo largo de las regiones superexplotadas que hemos conocido.

Pero esos problemas - que se producen y se han producido a través de la historia en las zonas superpobladas - no tienen relación con nuestro Pueblo. Nuestro problema es a la inversa, pero la vida de relación moderna han influido inevitablemente para que esos fenómenos de superproducción y superpoblación incidan en nuestro país en forma tal que sintamos sus consecuencias.

A todo esto lo hemos estudiado y hemos elaborado una diagnosis. Resultaba previsible que ante el desequilibrio, los regímenes demoliberales nos plantearan exigencias para transferirnos sus problemas a cuenta, de los que podríamos ser inmunes si las condiciones de nuestro propio ambiente bendecido por la paz y la abundancia prodigada pudiese ser aislada y defendida. Es por este motivo que nuestro Movimiento impuso como salvaguarda la protección del hombre por el hombre, instrumentando una defensa en la paz, y coadyuvando con la acción decidida de cuanto podemos hacer por beneficiar a las Masas Obreras como factor de precaución.

Este accionar cobró visos providenciales que deberían ser principios rectores de toda la humanidad: nadie podrá realizarse en una sociedad que no se realiza. Y lo hemos declamado en una organización doctrinaria que vela por todos. Este programa de acción es el Justicialismo.

Uno de los amparos que hemos enhebrado ha sido el de la Sanidad Pública, donde la ciencia de Esculapio es ofrendada como pináculo del arte al conjunto de la población. El espectro ha sido evidente: llevamos a cabo la medicina preventiva y la organización hospitalaria. Con apoyo de la Fundación Eva Perón, se construyeron hospitales, centros sanitarios, hogares escuelas, hogares para ancianos, institutos formación en enfermería. Se estableció la atención gratuita para toda la población y se crearon políticas públicas como el Tren Sanitario, que llegaba a los lugares más recónditos del país para brindar capacitaciones en educación para la salud y atención médica en las diferentes ramas de la medicina. Las campañas de vacunación de masas llegaron así a todo el país, un ejemplo exitoso fue la política pública implementada para combatir el paludismo que, en el marco de la campaña "Grandes Luchas Sanitarias", que redujo en cuatro años la cantidad de casos de 300.000 a 137. Además se creó EMESTA, la primera fábrica nacional de medicamentos del Instituto Malbrán, que producía medicinas un 70% más baratas que las de los laboratorios privados.

Ante el gran problema, la gran solución es el Justicialismo. Los grandes problemas se deben dividir en muchos pequeños problemas que pueden solucionarse encadenadamente. La sanidad pública constituyó una de estas pequeñas soluciones que - encadenadas con otras - pudo llevar a cabo el país organizadamente, dando resolución efectiva en tiempo y espacio.

Sin duda una de los grandes avances en estos términos fue la implementación de un importante método de diagnóstico por imágenes computadas, posibilitadas gracias a los ficheros digitales DICOM. Estos son archivos de imagen médicas realizados por diferentes tipos de aparatos de registro: radiografías, tomografías, ecografías, etcétera.

Normalmente la visualización de los ficheros DICOM estaba reservarda únicamente del oligarca, quien deseaba instituir sistemas operativos privativos. Pero por obra de la Fundación Eva Perón, se ha dado con el magnífico que permiten a nuestro sistema GNU con Linux, la revisión, análisis y gestión de estas imagenes.

Sabemos que los archivos de este tipo normalmente disponen de nombres de 8 caracteres y por protocolo carecen de extensión (si bien en ocasiones alguien podría asignarles la extensión .dib o .dibcom, esto escapa del uso protocolar). Por tal motivo, conviene en primer término determinar si un archivo de estas características - sin extensión - corresponde realmente a una imagen DICOM y no a otra cosa. Para ello dilucidarlo, usamos el comando file junto con el nombre de archivo. Por ejemplo:

file cr00001

Nuestro GNU con Linux analilzará el fichero, y debería devolvernos algo como:

CR000001: DICOM medical imaging data

Como vemos Se trata del estándar de Imagenes Digitales y Comunicación En Medicina ("Digital Imaging and Communication In Medicine"). Este implica un formato de fichero de imágenes así como un protocolo de comunicación de red basado en TCP/IP que permite su transmisión en una red de datos. En sí cada fichero DICOM consiste en un encabezado de texto con campos estandarizados y de formato abierto utilísimos para integrarlos como fichas en cualquier registro clínico (además de impedir la confusión de fichas), junto a un cuerpo con los datos de la imagen médica digitalizada. Un objeto DICOM simple puede contener solamente una imagen, pero esta puede estar formada por múltiples fotogramas, lo que llegado el caso permite almacenarlos en bloques secuenciados o animados. Normalmente estos datos de imagen se almacenan sin compresión, pero en ciertos casos los datos pueden comprimirse mediante estándares como JPEG.

DICOM permite la integración de escáneres y aparatos de medicina, servidores, estaciones de trabajo, impresoras y hardware de red de múltiples proveedores dentro de un sistema de almacenamiento y comunicación de imágenes coherente.

En muchas ocasiones podríamos querer poder observar las imágenes registradas por equipamiento DICOM.

Para instalarlo abrimos una terminal con Ctrl+Alt+t e ingresamos:

sudo apt install aeskulap

Tras instalar el visualizador Aeskulap podremos abrir los ficheros de datos médicos codificadas en el formato Dibcom, lo que nos presentará en pantalla y permitirá un manejo simplón, de palo y a la bolsa.

Presionando el botón derecho del ratón y arrastrándolo podremos desplazarnos en la imagen. Asimismo podremos regular el zoom reglado de la imagen presionando la rueda de scroll del ratón y moviéndola hacia adelante o atrás.

Por otro lado, podríamos regular la respues contraste ("C") de la imagen con posterioridad a su registro, presionando el botón derecho del ratón y arrastrando verticalmente, con lo que iremos aumentando o disminuyendo la intensidad del mismo en tiempo real. En el caso de cierto tipo de registro médico por imágenes - tal es el caso de las radiografías, ciertas tomografías axiales computadas o ecodopplers - podríamos incluso regular el canal que ilustra la respuesta densitométrica ("W") presionando el botón derecho del ratón y arrastrando horizontalmente. En estos casos, podríamos ajustar la respuesta del visualizador para dar mejor respuesta a materiales duros, tejidos óseos, semiblandos, o líquidos. Naturalmente esto dependiendo del aparato con que se haya producido el registro. Ambos ejes se indican numéricamente en la esquina inferior derecha de la pantalla. Naturalmente, una técnica en imágenes habilidosa puede permitirnos ajustar ambos ejes al unísono moviendo el ratón en diagonales de distinto peraltado y dar con la exposición correcta en un santiamén.

Aeskulap normalmente presenta una imagen en positivo, pero podremos acomodar una presentación múltiple en forma de grilla para una secuencia de estudio por imágenes, disponiendo distintas imágenes de secuencia del estudio, o bien comparando izquierda/derecha, o arriba/abajo. Con F11 en tanto activaremos el modo de pantalla completa. También podremos positivarla con el botón correspondiente.

El programa permite contar también con un servidor de imágenes sencillo, lo que permite integrarlo en una red de área local y programas como GNU Health.

Otro visualizador sencillo de estudios médicos por imágenes de tipo DICOM es DICOMscope. Consiste en un visualizador sencillo y libre, escrito en Java. Para instalarlo en Ubuntu desde la terminal ingresamos el siguiente comando de organización:

sudo apt install dicomscope

DICOMscope consiste en un visualizador libre de DICOM que puede mostrar imaginería monocromática y sin compresión DICOM, y soporta calibración de monitores así como un cliente de impresión en escala de grises. Si bien es un programa algo antiguo, cumple con una función, y sus controles son prácticamente similares a los de Aeskulap.

En particular, DICOMscope presenta una funcionalidad de anotación con capas, lo que permite hacer indicaciones o llamadas. También permite hacer un zoom de alta resolución, lo que lo presenta de especial interés para el análisis óseo tumoral, fracturas y torsiones. Permite establecer regiones poligonales y consta de funciones de composición limitadas pero que pueden ser útiles, como armar fotogramas compuestos y exportar el resultado en formatos de imágenes estándares tales como JPG o PNG, a la vez que permite imprimirlo llegada la necesidad.

Naturalmente podremos contar lo bibliotecas de ficheros DICOM que fundamente el estudio, una de ellas podremos lograrla aquí.

Como ven, señores, nosotros lo hicimos en el pasado, y podremos volver a hacerlo en el futuro, ya que la fórmula la tenemos en la biblioteca. Podemos adaptarla a los tiempos que corren. Todo podrá hacerse si volvemos al libro que funciona: el Justicialismo.



09 february 2023

¿Cómo instalo los editores Ecce y EdLin en Ubuntu?

Su Quinta 17 de Octubre de Puerta de Hierro fue testigo de numerosos encuentros del Conductor del Justicialismo con delegaciones del quehacer político argentino. En una de las reuniones celebrada en 1969, Juan Perón expone ante frondosa concurrencia acerca de compilar e instalar los editores de texto modales Ecce y EdLin en Ubuntu.

¡Compañeros!

El nuestro es un Movimiento que está para darle a todos lo que merecen por Justo derecho.

Todos sabemos que antes de organizarse en pos del Justicialismo, los trabajadores argentinos daban comienzo a su mañana con mendrugos duros, un mate cocido y grandes anhelos para acompañar. Esta fue la base previa a la organización, que como consecuencia del obrar, elevaría esta humilde dieta a la del chori al parquet de roble eslavonia.

Observarán que en el mundo del software sucede mas o menos el mismo temperamento. No podemos crear de la nada absoluta, sino que debemos edificar en base a ladrillos lógicamente concebidos y planificados en una estructuración que va se impone de menor a mayor. Es así como yo creo para crecer, y esta es la fomra como se ingenia en la vida.

Este norte cardinal acompaña también la noción creativa que nos requiere la elaboración de un sistema operativo de potencia. Necesariamente habremos de conjugar en código máquina tres herramientas de difícil soslaye: un ensamblador que para generar código objeto, un intérprete de comandos, y un editor que nos permita crear texto y corregir lo hecho.

Esto nos revela que la creación de texto pudo y debió hacerse con las herramientas más básicas. En particular, los editores de texto primordiales se iniciaron con una modalidad operativa que podríamos describir como modal. Estos permitían introducir cadenas de caracteres en un almacén de memoria, destinados a formar líneas de código, y más adelante por conveniencia, cada línea definida así podría conformar también un párrafo de texto.

Y si bien a partir de esto pueden hacerse mejores cosas, siempre es bueno conocer lo pasado, para afirmarse en el presente y proyectarse para el futuro.

Ecce

Naturalmente yo inicié mis tareas con el Ecce, el Editor de Texto Contextual de Edimburgo. Se trataba de un editor basado en líneas escrito por Hamish Dewar, y portado al lenguaje BCPL del sistema TOPS-10 de la minicomputadora DEC PDP-10 de finales de la década de 1960 - implementación que lo haría famoso entre varias mas.

Hoy podremos instalarlo en nuestro sistema GNU con Linux merced de una versión instrumentada para Unix en el lenguaje C. Podremos compilarlo fácilmente si abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente bloque de Comandos de Organización:

cd /tmp ; wget https://ecce.sourceforge.net/ecce.c ; gcc -o ecce -DWANT_UTF8 ecce.c ; sudo mv /tmp/ecce /usr/local/bin/

Una vez instalado, podremos correr Ecce dando rienda a la siguiente sintaxis:

ecce fichero_origen fichero_destino

Como vemos, este dinosaurio salió de un huevo para rugir en sistemas monousuario a través de terminales teletipo. Es ciertamente capaz de operar en sistemas multiusuario, pero si lo hacemos "así nomás" se produciría un efecto ostensiblemente destructivo, ya que uno de los usuarios podría alterar irremediablemente el documento que otro se encuentra operando en el mismo sistema. Es por este motivo por el cual para usar Ecce en GNU nos vemos obligados a instrumentar de forma adhoc un fichero de origen local (autónomo) que nos reparta los buñuelos. En efecto, lo más sencillo es utilizar el touch para crear un fichero origen.txt (si este no existiera ya). Por ejemplo: touch origen.txt ; ecce origen.txt destino.txt

Una vez inicializado un fichero propio, Ecce podrá arrancar presentandonos la memoria disponible en su almacén (“búfer”), y aguardando órdenes:

Espacio de almacén = 768 KBytes Ecce >

Como todo editor de los llamados modales, durante su operación Ecce nos presentará alguno de sus prompts indicativos del modo de operación en que se encuentra de momento. Estos son:

Prompt del Modo de Comando: >
Prompt del Modo de Inserción de texto: :

Para su empleo más sencillo y básico de entre sus numerosos comandos es suficiente dominar sólo tres:

Comando Acción g Almacenar una sola línea nueva m Avanza el puntero una sola línea p Imprime la línea donde se encuentra el puntero

De esta manera, sesión típica implica recibir el prompt de comandos > donde introducimos la orden g* (“almacenar líneas indefinidiamente”), y presionar la tecla Intro para empezar a escribir. Su prompt cambiará al de inserción texto en forma de :. y podremos mecanografiar el párrafo deseado. Al concluirlo debemos presiona la tecla Intro para almacenar dicha línea en memoria.

Conforme hayamos finalizado la inserción de la(s) línea(s) de texto deseadas podremos detener el modo de inserción ingresando el comando : que nos devolverá al prompt de comandos >.

Estos cambios realizados al fichero de origen podremos guardarlos en el fichero destino desde el prompt de comandos > (y cerrar el editor), si introducimos el comando %c.

Naturalmente, podremos continuar agregando líneas indefinidamente hasta agotar el almacén, o introducir alguno de estos comandos especiales de Ecce:

%a Descarta la edición realizada. %c Guarda los cambios y cierra. %v Imprime la versión de Ecce.

Pues bien señores, si bien este funcionamiento parecería similar al de una antigua máquina de escribir, contaremos con grandes ventajas con respecto a estas. Para movernos en el texto, podremos desplazar la posición actual de edición en el documento (llamada “puntero”). Al llegar al fin del documento recibiremos como indicación el mensaje FIN .Los comandos de desplazamiento son sencillos:

m Baja el puntero una línea m- Sube el puntero una línea k Borra la línea actual del puntero k- Borra la línea anterior del puntero r Se mueve a la derecha un carácter en la línea actual l Se mueve a la izquierda un carácter en la línea actual e Borra un carácter en la línea actual

Junto a estos comandos básicos de una sola letra, Ecce dispone ciertamente de la posibilidad de realizar tareas más complejas y avanzadas que permiten un mayor control. Estas funciones avanzadas inspirarían luego al editor de cadenas sed.

En primer lugar y como regla general, si introducimos un número n junto a nuestro comando, se lo ejecutará en bucle una n cantidad de veces. Por ejemplo:

p23 Imprime las 23 líneas siguientes al puntero m10 Sube el puntero diez líneas g5 Deja 5 líneas de texto en blanco debajo del puntero

De esta manera es posible extender o bien invertir el orden del comando antecediendo al número n con un signo -. Por ejemplo:

p Imprime todo hasta el final del texto p-23 Imprime las 23 líneas anteriores al puntero p- Imprime todo hasta el inicio del texto m-10 Retrocede el puntero diez líneas m-* Retrocede el puntero todas las líneas (vuelve al inicio del texto)

Una de las funcionalidades más utilizadas es la de buscar y reemplazar.

i/texto/ Inserta una cadena “texto” aquí en la línea. f/texto/ Busca “texto” indicado.

Como en el caso anterior, estos pueden repetirse indicándole números apropiados: f/texto/4 Busca la 4ta. iteración de “texto” r40 Mueve a la derecha 40 caracteres

Además, las órdenes pueden encadenarse. Por ejemplo:

m23 f/texto/ p3

Los comandos avanzados de Ecce permiten incluso mayor potencia de trabajo:

A Ajusta el largo B Divide la línea en dos en el puntero C Cambia mayúsculas con Mayúsculas derecha C- Cambia a minúsculas con Mayúsculas izquierda D/texto Borra primer ocasión de texto D-/texto Borra iteración previa de texto E Borra carácter a la derecha del puntero E- Borra carácter a la izquierda del puntero G/texto Inserta línea de texto luego del puntero G- Sube una línea I/texto Inserta texto a la derecha del puntero I- Inserta texto a la izquierda del puntero J Une la siguiente línea O/texto Sobreescribe la línea con la cadena texto

Los comandos compuestos de Ecce son secuencias de comandos cerrados entre paréntesis. Pueden repetirse en bucle, tanto condicional como incondicional. Los ejemplos suelen aclararlo todo, como decía Napoleón:

Operación Ejemplo Significado/efecto 0 o *
Repetición indefinida (“repite hasta no poder cumplir mas”)

r0  Mueve el puntero al final de la línea

(mr)0   Busca la primer línea en blanco

e-0     Borra hacia atrás hasta el comienzo de la línea

?
Ejecución opcional (se ignora la condición de falla)

((r61p)?m)0     Imprime las líneas con no más de 60 caracteres

,
Ejecución alterna (“si el primer intento falla, ejecuta el siguiente, etc”)

(r81lb,m)0  Divide las líneas que tienen más de 80 caracteres

(f/River/(v/Bocado/,e5i/Boca/))*    “Reemplaza River con Boca excepto para Bocado”

\
Falla invertida

(mv'+'\)0   Busca la siguiente línea que comienza con `+

Si sólo introducimos un número en la línea de comandos, Ecce repetirá el comando indicado anteriormente una n cantidad de veces.

Podremos delimitar patrones por cualquier carácter excepto letras, dígitos, y aquellos que tienen significación definida. Podremos usar: “, /, $, >, +, ., :, = y _

Asimismo, podremos ver el antiguo manual de Ecce.

EdLin

A la vez que Ecce contaba con plétora de adeptos universitarios, su decante a las terminales teletipo en boga durante su desarrollo lo hizo verse progresivamente superado con la aparición de las la edición visual de textos en pantalla. Sin embargo los editores modales aún contaban con cierta valía si se hablaba de equipamiento de escasa potencia, y esto era válido con la IBM PC de primera factura y su sistema operativo, el DOS. En sus inicios se decidió adornarlo con un editor orientado a líneas descaradamente influido por el editor Ed del Unix: EdLin.

A pesar de que podría parecer de escasa valía, este ha sido implementado de manera libre por el Proyecto FreeDOS, y a caballo regalado no se le mira el diente. Por tanto podremos instalarnos una copia para nuestro sistema GNU, acudiendo a la terminal:

wget https://sourceforge.net/projects/freedos-edlin/files/freedos-edlin/2.22/edlin-2.22.tar.gz ; tar xvzf edlin-2.22.tar.gz ; cd cd edlin-2.22/ ; ./configure; make; sudo make install

Una vez instalado en nuestro GNU, la ejecución del programa es sumamente sencilla:

edlin

Edlin nos presentará su pantalla inicial y nos hará la veña aguardando órdenes. Como tal sigue premisas algo similares a otros editores nodales:

Prompt de su Modo de Comandos: *
Prompt de su Modo de Inserción: :

Por convención EdLin opera con bloques de sólo 11 líneas. Para facilitar la explicación, convendremos entre nosotros las siguientes convenciones para operar en su modo de comandos:

Los corchetes [] denotarán parámetros opcionales.
 La n nos representará un número de línea, que puede ser uno de varios valores posibles:

Una cadena de dígitos, o sea un número de línea literal Por ejemplo, 12 es la decimosegunda línea. n Representa al número de línea justo antes de la última línea del fichero. . (“punto”) Representa la línea actual en el fichero. $ (“peso”) Representa la línea final del fichero. +n o -n Es un diferencial de suma o resta del número de línea actual. Es útil para dar posiciones relativas a una línea, tal como .+1 para significar “la línea posterior a la actual”.

El símbolo $ representa una cadena de caracteres. Podrás encerrar la cadena tanto en apóstrofes 'texto' o bien en comillas "texto", o podrán contener las siguientes secuencias de escape:

\a Carácter de campana \b Carácter de Retroceder (borrado) \e Escape \f Alimenta papel \t Tabulador horizontal \v Tabulador vertical \" Comillas \' Apóstrofe . Punto \ Barra invertida \xXX Valor Hexadecimal, donde cada X es un dígito hexadecimal (de 0 a F, tanto en mayúsculas como minúsculas) \dNNN Valor decimal, donde cada N es un dígito decimal (de 0 a 9) \OOO Valor octal, donde cada O es un dígito cotal (de 0 a 7) \^C Caracter de Control, tal como \^J para un caracter “Control+J” literal (linefeed).

Pues bien señores, al igual que Ecce, el funcionamiento básico de EdLin consiste en activar el comando de agregado al almacén, e insertar contenido en el mismo. Para ello, en el prompt * ingresamos el comando a y mecanografiamos las líneas. Para almacenarlas, presionamos la tecla Intro. Para cesar el modo del inserción, en este caso debemos ingresar un . aislado.

Para guardar usaríamos w fichero seguido del comando salir, que es q. (O bien podremos usar e fichero, que equivale a "guardar y salir"). Para salir de EdLin si guardar se usa q, a lo que se nos interrogará “Abort edit (Y/N)?”. Deberíamos responder yes.

Las funciones de edición de EdLin implican generalmente pocas variantes. La primera es indicar un número de línea para establecer el puntero, y escribirla de nuevo para reemplazar la línea.

Si en cambio quisiéramos insertar una línea previamente a otra, usaríamos [n]i para ingresar al en el modo inserción, la cual también acepta las secuencias de escape indicadas. Para abandonar el modo de inserción, ingresamos . en una línea aislada (si necesitáramos escribir una línea que sólo contenga un punto literalemnte, deberías indicarlo escapándolo como .). Tras de abandonar el modo de inserción, la línea posterior al texto insertado se convertirá en la línea actual (a no ser que la inserción se hubiese suspendido al final del almacén, en cuyo caso la última línea del almacén se convertirá en la posición del puntero).

Para borrar una línea debemos utilizar el comando d, el cual también acepta rangos en la forma de [n][,n]d que borrarían un bloque de líneas consecutivas del almacén. Los parámetros responden a la primer línea y la última línea del bloque a borrar.

Si tuviésemos la necesidad de copiar un rango de líneas, utilizaremos el comando [n],[n],n,[n]c para copiar un rango de líneas consecutivo a otra localización del búfer. En este orden, los parámetros son los siguientes:

La primer línea que quiere copiar (si se omite se usará el puntero) 
La última línea que quiere copiar (si se omite se usará el puntero) 
La línea anterior en la cual desea insertar el bloque de líneas 
La cantidad de veces que copiará el bloque demarcado (si se omite es 1)

(Luego de copiar las líneas, es conveniente usar el comando l (“listar”) para tener una idea de cómo quedaron los números de línea tras la operación).

Para mover un bloque de texto (más conocido como "copiar y pegar"), debemos usar el comando m, y procedemos igual que con el comando copiar anteriormente descripto. En este caso funcionará igual que copiar, sólo que borrará el bloque de su posición original

Si deseamos presentar todas las líneas usamos p, y para presentar un rango de líneas en pantalla, utilizamos [n][,n]p. Es similar al comando l (list) con la excepción que los parámetros por defecto comienzan en el puntero en lugar de hacerlo 11 líneas posteriores.

Para buscar una cadena texto usamos [n][,n][?]s$ lo que realizará esta operación. Si omite el primer parámetro, comenzará a buscar desde la línea actual. Si omite el segundo parámetro, dejará de buscar al llegar al final del búfer. Si incluye el ?, edlin solicitará confirmación ante cada encuentro. Si respondemos “no”, continuará la búsqueda y si respondemos “yes” la dará por concluida.

Si la búsqueda localiza la subcadena, desplazará el puntero.

En caso de operar con búsqueda y reemplazo debemos utilizar [n][,n][?]r$,$ para reemplazar todas las iteraciones de la primer cadena con la segunda cadena entre las dos líneas especificadas. Si omitimos el primer parámetro, EdLin comenzará reemplazando a partir del puntero. Si en cambio omitimos el segundo parámetro, dejará de reemplazar texto en la última línea del búfer.

Si incluye un ?, edlin mostrará un mensaje de confirmación antes de reemplazar las iteraciones de texto.

Para insertar un fichero usamos[n]t fichero. Esto Insertará el contenido del fichero antes del puntero. Si omitimos el primer número de línea, se insertará antes de la línea actual del puntero.

Como vemos, los editores modales son simplones, pero permiten ciertas posibilidades efectivas de edición, y constituyen un herramental válido para comprender cómo se realizaba cómputo antes de que el Justicialismo garantizara los derechos de un editor de texto como la gente hasta al más humilde de mis grasitas.



08 february 2023

¿Como instalo ClassicCube en Ubuntu?

¡Trabajadores!

Cualquiera puede destruir. Pero un Conductor a de saber construir, que es mucho más difícil.

Para hacerse perito en esto habrá de recurrirse al aprendizaje, siguiendo una obra por ejemplo de la instigación positiva. Siempre he dicho que mejor que ordenar es persuadir.

La niñez se verá incentivada a la construcción si mas que aprenderla, la comprende, y una de las mejores técnicas para ello es el disfrute de los juegos de construcción, de los cuales tal vez los denominados "mundo abierto" o sandbox sean los ejemplos más aclamados.

Este tipo de aplicaciones computadas proponen la creación de un mundo virtual, con sus propias reglas universales y medios de organización. Incluso se pueden crear meta-mundos. Parecería que una propuesta de este tipo tan abierto e indeterminado podría no ser divertida, pero de todo hay en la viña del xeñor. Muchas veces me han pedido instalar un sucedáneo de Minecraft en GNU con Linux, pero uno donde se pueda crear un Mundo Peronista. Lo bueno es que existen muchas de estos, que se inspiran en el clásico de escrito por Markus "Notch" Persson. Probablemente el más logrado sea ClassicCube, escrito en C++.

Naturalmente podremos instalar ClassicCube en cualquier sistema GNU con Linux. Para hacerlo en Ubuntu y otros similares podremos utilizar la terminal. Para ello abrimos una con Ctrl+Alt+T e ingresamos los siguientes comandos de organización:

sudo apt install libcurl4 libopenal1 ; mkdir ~/.ClassicCube/ ; cd ~/.ClassicCube/ ; wget https://cdn.classicube.net/client/release/nix64/ClassiCube.tar.gz ; tar -xvf ClassiCube.tar.gz ; cd ~

Y lo ejecutamos con:

./.ClassicCube/ClassicCube

o bien podremos crear un lanzador:

Al iniciarse por primera vez el juego solicitará descargar los contenidos básicos. Presionamos el botón Ok.

ClassicCube tiene tres modos de juego. El modo Classic es un implementación clónica de MineCraft. Enhaced es una expansión de aquella, con bloques adicionales. Y Classic+hax es el modo clásico con algunos hacks.

Una vez descargados, podremos comenzar el proceso de registro con el botón Register.

Una vez presionado el botón Register, se nos dirigirá a la web oficial de registro. Debemos ingresar un nombre de usuario, junto con una contraseña y una casilla de correo electrónico válida.

Cuando recibimos el correo electrónico, hacemos clic en su enlace para verificar la creación de la cuenta.

Ahora podremos ingresar al juego con nuestro usuario y contraseña validada. Una vez ingresadas las mismas, presionamos el botón Sign In.

Ahora podremos seleccionar alguno de los servidores de ClassicCube.

Elegimos nuestro servidor favorito de ClassicCube y presionamos el botón Connect.

El juego es similar a otros juegos sandbox como MineCraft. Los jugadores deben explorar un mundo conformado por bloques tridimensionales de generación procedural, y deben descubrir y extraer materias primas, ingeniar herramientas e ítems y construir estructuras y maquinarias.

Dependiendo del modo de juego, los jugadores pueden enfrentar turbas iracundas, así como cooperar o competir contra otros jugadores del mismo mundo. Los modos de juego incluyen uno de supervivencia, y un modo creativo.

A primera vista, el apartado grafico es distinto por obvias cuestiones de derechos de autor. Classic parece mas "antiguo", pero esta implementado desde cero, siendo sus mecánicas prácticamente similares.

En Classic+hax tal vez sea mas recomendable, pues incluye las modificaciones que lo hacen divertido (el juego desde cero es muy básico). Con las "hax" podrás agregar enemigos, personajes no controlables NPC, minerales, condiciones climáticas, y un largo etc.

En modo survival construyes para sobrevivir. Debes empezar por lo básico, modelando una casa para protegerte de tus enemigos, hacer huerto para recuperarte de daño y no morir de hambre, y desarrollar distintas herramientas que potencien tus habilidades. Así evitarás la ley de la selva y podrás expandir la Justicia Social en el Sandbox.

Los controles en la PC son simples. Nos movemos con teclas WASD y con Mayúsculas corremos. Con la barra espaciadora podremos saltar. Con clic usamos la acción.

Si estamos en modo hax, la tecla z conmutará el modo vuelo (durante el cual podremos subir o bajar con la tecla q o la tecla e). En tanto, la tecla x conmuta el modo noclip (posibilita atravesar paredes).

Mediante F1 activamos el HUD. Con F5 podremos conmutar entre dos vistas de tercera persona y vista en primera persona. Con F7 la guía de ejes 3D y con F10 la guía de bloques de textura.

F8 conmuta entre el movimiento de vista rápido y la moderado.

En fin, un excelente apartado liberado bajo GPLv3 que hará las delicias de todo aquel que guste de los mundos voxel.



07 february 2023

¿Cómo juego a Pepper & Carrot Potion of Flight?

En su Los Vendepatria, las Pruebas de una Traición, de 1958, Juan Perón expone la necesidad de una militancia enérgica como custodia de los valores del Movimiento, a la vez que enseña cómo instalar el juego 3D en tercera persona Pepper & Carrot: Potion of Flight en Ubuntu.

(...)

Es necesario que los dirigentes y trabajadores se convenzan que estamos empeñados en una lucha decisiva para evitar la vuelta de la explotación y la esclavitud, y que en esas condiciones se impone una conducta valiente y decidida. La revolución social impone esfuerzos y sacrificios que sólo se superan con una voluntad enérgica y perseverante.

Es menester no dar tregua a la tiranía y dar a la resistencia civil la mayor intensidad y extensión. Sin esa preparación, la revolución social no podrá realizarse a corto plazo. La canalla dictatorial sólo caerá por este medio, luego hay que obrar incansablemente por la causa común, esa es la misión de cada peronista en esta hora de prueba.

Cada casa debe ser una Unidad Básica Secreta, y cada peronista, jefe y vigía del Movimiento. Es necesario que las organizaciones clandestinas se perfeccionen en alto grado para enfrentar los trabajos a los que estamos abocados en la lucha que se avecina. En ella los trabajadores tendrán el peso de la acción más importante.

La clase trabajadora ha puesto en evidencia su decisión ya en los sucesos pasados que posee una clara conciencia de su gravitación política. Sin mayor experiencia en la acción demostró sorprendente unidad político-sindical, forjada exclusivamente mediante la Doctrina Justicialista, demostrando también que las masas de trabajadores han superado el ámbito de sus problemas intrínsecos para intervenir enérgicamente en la realización de sus propios destinos.

Luchamos por una causa y no por un candidato. La causa debe apasionarnos, los candidatos deben despreocuparnos. Nuestro candidato no puede ser sino un peronista, que será el único que puede servir a nuestros objetivos y misión.

Es imprescindible la reestructuración de los cuadros dirigentes sobre la base de una estrecha unión con el resto del Movimiento poniendo al frente hombres capaces y enérgicos. En este momento se necesitan dirigentes audaces y valientes que enfrenten a la tiranía con las verdades del Peronismo.

Siendo la finalidad básica la revolución social justicialista, los demás objetivos deben ajustarse a esta finalidad. La conducta de cada peronista y en especial de cada trabajador, estará fijada en lo que pueda hacer, en cada momento, para derribar la tiranía e imponer el Justicialismo.

En la acción política no debe existir ningún apuro, es menester mantener firme a las organizaciones de cualquier tipo que existan, unidas en informadas; siempre habrá tiempo para tomar decisiones. Podremos tomarlas incluso mientras jugamos cualquier juego. Por ejemplo, porqué no el favorito del brujo López Rega: Pepper & Carrot: Potion of Flight.

Se trata de un juego inspirado en el mundo de la bruja Pepper y su gato Carrot, creación del ilustrador francés David Revoir, compañero adepto a la cultura abierta y la libertad de licenciamiento de los derechos de autor que otorga Creative Commons.

Como resultado de su propuesta lúdica "Pepper&Carrot Jam" de desarrollo de juegos independientes, se han publicado toda una serie de juegos para varias plataformas, incluyendo Linux. En el caso de Pepper & Carrot Potion of Flight es un minijuego de aventuras en 3D desarrollado por el estudio Oneiric Worlds, que adapta las artes gráficas del webcomic y los libros de Pepper&Carrot, junto con el motor de juegos libres Godot.

Podremos descargarlo - con donación o gratuitamente - a través de la web del juego.

Al presionar el botón Download Now podremos acceder al menú de donación, (o bien descargarlo gratuitamente si así lo deseamos, presionando el botón "No thanks, just take me to the downloads"). Encontraremos entonces la descarga de la versión que nos interesa, "Pepper & Carrot - Lastest Version for Linux 64 (158 MB)".

Tras descargar el juego, normalmente nos encontraremos con el programa en nuestra carpeta Descargas/. En tal caso, para descomprimirlo podríamos utilizar la Terminal, abriendo una con Ctrl+Alt+t e ingresando los siguientes comandos:

mkdir ~/.pepper/ ; cd ~/.pepper/ ; mv ~/Descargas/pepper-carrot-potion-of-flight-linux64.zip ~/.pepper/ ; unzip ~/.pepper/pepper-carrot-potion-of-flight-linux64.zip

Para ejecutarlo, podremos usar el comando:

./.pepper/pepperAndCarrot

...u opcionalmente podríamos crear un lanzador del juego. Para ello haciendo clic con el botón derecho del ratón sobre el menú de Aplicaciones, y eligiendo Editar Menús. A continuación en el panel izquierdo elegimos el menú Juegos y presionamos el botón "+Nuevo ítem". En la ventana Crear lanzador rellenamos el campo Orden con /home/usuario/.pepper/pepperAndCarrot. Asimismo le ponemos un Nombre y un Comentario e ícono opcional:

Ahora podremos lanzar el juego desde Aplicaciones / Juegos / Pepper & Carrot Potion of Flight.

El objetivo del juego es conducir a la caótica brujita Pepper en un mundo que comprende su casa a orillas de la laguna. Tendremos que encontrar los ingredientes para la poción de vuelo que la hace famosa.

Los controles son los consabidas teclas WASD para manejarla en tercera persona, a la vez que la barra espaciadora podremos hacerla correr. El despliegue gráfico tridimensional hace caso a la estética de la pintura de Revoy, lo que lo distingue.

El aspecto del sonido es estéreo y posicional, lo que da una muestra de la potencia del motor libre Godot.

Una vez encontrado todo, podremos volar con la escoba mágica. La tecla B hace aparecer la escoba de un santiamén, mientras que la barra espaciadora produce el impulso mágico.

Naturalmente no conforma un simulador de vuelo, pero dispone de simulaciones de física más o menos acordes a lo que implica volar en una escoba. ¡Persigue al Fénix de Fuego y recoge las plumas flamígeras!

En fin, un gran programita para los mas chicos, que permiten - porqué no - soñar con una propuesta completa según esta entrega.



06 february 2023

¿Como muevo el directorio /home a una nueva partición o disco en Ubuntu?

Interrogado en el Aeropuerto de Campodichino durante un viaje en su exilio europeo, Juan Perón explica cómo mover el directorio /home a un disco nuevo en Ubuntu.

Periodistas: General, una corta interrogante y lo dejamos que está ocupado, sabemos que tiene que viajar a Roma. ¿Cómo trasvasamos el directorio /home a otra partición o a un disco nuevo en Ubuntu?

Perón: Vea, es una buena pregunta que surge de una necesidad. Pero esto se debe a la imprevisión, que es la madre de todos los problemas en la vida. El verdadero Conductor ha de saber ver para prever, y eso es algo que no lo dan los ojos, lo da la experiencia, ¿sabe? Es indudable que en cualquier sistema GNU con Linux que se precie, uno de los directorios más suele crecer en tamaño es su directorio /home. Esto se debe a que en este residen las cuentas de los usuarios que lo operan, y es allí donde lo ocuparán sus documentos y, bien, un sinnúmero de otros ficheros de forma continuada.

Otro directorio importante con la misma tesitura es /var, que contiene los ficheros de bitácora ("logs"), cuyo tamaño es dable de verse gradualmente incrementado en la medida que el sistema continúa en uso. Junto a los consabidos logs, pueden residir ficheros web, archivos temporales de cola de impresión, y otros servicios de trabajo. No es de extrañar que se siga la consigna Justicialista "de /var a /home y de /home a /var".

Pues bien señores, cuando estos directorios colman una partición o unidad de almacenamiento en disco, pueden dar lugar a problemáticas críticas en cuanto al sistema de archivo; podrían incluso provocar que el sistema no pueda iniciarse correctamente, y que fuese necesario tronar el escarmiento.

En la Argentina ha de obrarse obrarse con previsión, pues es preferible medir dos veces y cortar una. Pero en otra, esto solo puede percibirse una vez probado el traje: ya se han configurado todos los directorios en el sistema de archivo y particionado, lo que suele acarrear la necesidad de establecer una clara política de solución. En este caso, poco vale la persuasión, ya nos comimos el paquete. Y solo queda elaborar un Plan Quinquenal de redimensionado de partición, o bien directamente instalar un nuevo disco en la máquina y mandár allí el /home.

Instalar y particionar una nueva unidad de disco en Linux

Antes de proceder a explicar lo que me piden, remozaré brevemente cómo agregar un nuevo disco a un equipo de escritorio o servidor que ya camina y se lava los dientes.

Para propósitos didácticos, asumamos el agregado de un disco rígido de estado sólido (nomenclado /dev/sdb de un tamaño de 270GB, al que dividiremos en dos particiones /dev/sdb1 y /dev/sdb2). Normalmente querrían hoy en día uno más grande, pero de momento este disco SSD nos viene bien.

El número de particiones a crear en el mismo así como la tabla de partición se determinarán en el tipo de etiqueta de disco, y en los primeros bytes de espacio en el mismo definen la MBR (Tabla Maestra de Inicio), encargada de almacenar la Tabla de Partición así como el cargador de arranque (en los discos arrancables, naturalmente). Si bien existen muchos tipos de etiquetas, Linux sólo acepta dos: MSDOS MBR (de 516 bytes de tamaño), o GPT (Tabla de Particionado GUID) MBR.

Primero, necesitamos contar con la herramienta parted o fdisk (por si no la tuviésemos en el sistema). Para ello abrimos una terminal con Ctrl+Alt+t e ingresamos el siguiente comando de organización:

sudo apt-get install parted fdisk

Una vez instalada parted, la utilizaremos para configurar el tipo de etiqueta de disco utilizando fdisk. Utilizaremos el nombre de etiqueta GPT en este ejemplo:

sudo parted /dev/sdb mklabel gpt

Nota: fdisk por ahora unicamente soporta la antigua MBR MSDOS, mientras que parted soporta ambas.

En caso de disco nuevo, creamos la primer partición (/dev/sdb1) con un tamaño, a modo de ejemplo, de 106 GB. Reservaríamos 1024 MB (1GB) para la MBR.

sudo parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

En este comando -a indica la alineación de partición a cilindros en el disco, mkpart crea la partición, primary crea una partición de tipo primaria (los otros valores podrían ser logical o extended), mientras que 1074MB es el comienzo y 107GB es el final de la partición.

Acto seguido revisamos el espacio libre en el disco como sigue: parted /dev/sdb print free

Ahora crearemos una segunda partición (/dev/sdb2) con un tamaño, por ejemplo de 154GB

sudo parted -a cylinder /dev/sdb mkpart primary 115GB 208GB

Ahora, configuramos el tipo de sistema de archivo para cada una de las particiones (por ejemplo, el popular ext4 de Linux que recomiendo y el xfs favorecido en servidores de RedHat, que puede venir bien para intercambio):

mkfs.ext4 /dev/sdb1 mkfs.xfs /dev/sdb2

Para listar todos los dispositivos de almacenamiento adosados al sistema, ingresamos:

parted -l

Mover la carpeta /home a una partición dedicada

Pues bien señores. Ya agregado el disco nuevo a la máquina y creadas las particiones necesarias, es hora de trasvasar la carpeta home a una de dichas particiones. Para usar un sistema de archivaje habremos de montarlo en la raíz del sistema utilizando un directorio como punto de montaje: un directorio destino, tal como /home.

Como primer medida para este cometido, listemos el uso del sistema de archivaje de nuestro GNU con Linux gracias al comando df, de esta manera:

df -hl

Comprobada la lista, comenzaremos creando un nuevo directorio de circunstancias /srv/home, donde podremos montar la partición /dev/sdb1 temporalmente:

mkdir -p /srv/home mount /dev/sdb1 /srv/home

Ahora usamos el comando rsync o cp para copiar el contenido de /home al directorio de circunstancias /srv/home (de este modo trasvasaremos todos los contenidos de usuarios a la partición /dev/sdb1).

Normalmente recomiendo usar rsync para este menester, sobre todo en ambientes de red:

rsync -av /home/* /srv/home/

...pero si no tuviésemos rsync bien podremos usar el comando cp de toda la vida:

cp -aR /home/* /srv/home/

El proceso naturalmente tardará acorde a la masa a copiar. Concluida la copia del contenido de los usuarios, conviene analizar diferencias entre ambos directorios utilizando el comando diff.

diff -f /home /srv/home

Si todo sale bien, no debería existir diferencia alguna entre el original y la copia, asegurándonos del resguardo efectivo.

Si no deseamos contar con un duplicado opcional, podremos borrar todo el contenido en el /home viejo con:

rm -rf /home/*

Ahora, desmontamos /srv/home:

umount /srv/home

...y como último paso montamos la partición /dev/sdb1 a /home, por esta sesión.

mount /dev/sdb1 /home ls -l /home

Montar /home desde otro disco automáticamente

Ahora bien, debemos tener en cuenta que si bien acabamos de montar el disco /dev/sdb1 como partición de usuario en el sistema de archivos, este cambio sólo operará en esta sesión, en otras palabras, hasta reiniciar la máquina. Para no tener que montar a mano todas las veces que reiniciamos el equipo, será imperioso agregar por única vez una línea de entrada específica a la tabla del sistema de archivaje, el fichero /etc/fstab, lo que volverá permanentes los cambios. De esta manera, toda vez que arranque el sistema, se montará la partición /dev/sdb1 en /home.

En primer lugar obtenemos el identificador UUID del disco con el comando:

sudo blkid /dev/sdb1

El sistema nos devolverá algo como:

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Una vez conocida la UUID de nuestra unidad, editamos la tabla /etc/fstab con Nano:

sudo nano /etc/fstab

...y agregamos la siguiente línea (naturalmente, uds. modificarán la línea de acuerdo al resultado obtenido).

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6 /home ext4 defaults 0 2

Consideremos los campos de la línea anterior para su estudio:

UUID – especifica el dispositivo de bloque, podremos alternativamente utilizar el fichero de dispositivo /dev/sdb1 pero no se recomienda, pues puede provocar errores si se cambia la estructura de particiones al cambiar de disco de conector mas adelante.
/home – el punto de montaje.
etx4 – describes el tipo de sistema de archivaje del dispositivo/partición.
defaults – opciones de montaje (el valor significa rw, suid, dev, exec, auto, nouser, and async).
0 – usado por la herramienta de depuración; 0 significa que no hará volcados de depuración si el sistema de archivaje no está presente.
2 – utilizado por la herramienta fsck para descubrir el órden de revisión del sistema de archivaje; este valor significa revisar el dispositivo luego del comprobar el sistema de archivaje raíz..

Guardamos el fichero, y reiniciamos el sistema.

Podremos ejecutar el siguiente comando para ver si el directorio /home se desplazó correctamente a la partición dedicada:

df -l

Con esto ya habrán trasvasado /home a otra partición o, en este caso, otro disco rígido particionado.

Periodistas: Muchas gracias por sus palabras, General.



05 february 2023

¿Cómo instalo RSX-11M Plus en Ubuntu?

¡Trabajadores!

Los hackers no pueden dar nada que la CPU no compile. Lo que el hacker puede hacer es evitar que entre todos los programadores, algunos se lleven la parte del león mientras que otros carguen con la parte del ratón. Toda nuestra obra bajo GPLv3 ha de apreciarse desde ese ángulo. Con estas compilaciones, nuestros hackers - ungidos bajo el signo de la justicia social - no hay hecho mas que programar esa justicia, dando a los usuarios lo que es de los usuarios, y a la CPU lo que es de la CPU.

Esta programación social ha hecho que yo cuente con un gran predicamento entre los hackers, en razón de que les he asegurado la Justicia Social que nunca habían tenido. He obrado con lealtad y sinceridad y he trabajado incansablemente por favorecer a los que desde hace cincuenta años han estado sumergidos y aplastados económicamente. Hoy, que ven que gozan con su código, compilan y depuran mejor. Sienten que se los ha dignificado; y es lógico que así sea. Yo he levantado la bandera de la dignificación del hacker, porque este país necesita hombres y mujeres de compilen, y es la suprema dignidad de la compilación la que estoy creando. No hay ninguna dignidad más alta que compilar.

Sin duda que GNU con Linux es uno de los ambientes principales para lograr esta Justicia, pero incluso antes que Ubuntu fuese una idea, yo ya lo lograba con la DEC PDP-11 de 16 bits poblada con RSX-11M Plus.

Se trató de una serie de sistemas operativos multiusuario iniciada en 1973 para resolver procesos computacionales en tiempo real para dichas computadoras. Sin embargo, a lo largo de su dilatada vida comercial se utilizaron como base para el desarrollo de todo tipos de tareas informáticas.

Podremos utilizar el emulador de PDP-11/70 y las cintas de 9track.net y bitsavers.org.

A través de la devolución de la terminal os enseñaré cómo instalar RSX-11M-Plus v4.x, aparecidas generalmente a partir de mediados de 1985.

En aras de la brevedad que siempre es útil en todo tipo de proyectos, os indicaré en azul lo que deben tipear en el intérprete de comandos "MCR", y en rojo las teclas a presionar. Naturalmente esto puede realizarse en un DEC PDP-11 real de la serie 13, 43, 70 e incluso las modernas 84 o 93, pero es particularmente útil para su émulo moderno PiDP-11/70 basadas en una Raspberry Pi, aunque llevará llevará mas tiempo. Copiar el kit de instalación al disco

La cinta de distribución contiene un conjunto BRU, la Utilidad de Respaldo y Restauración de RSX, para un sistema base. Se trata en este caso de una versión sola para la unidad de cinta TS11, capaz de bootear desde ella. La cinta utilizada es la BB-J083H-BC (RSX-11M-PLUS V4.2 MT:1600 BRUSYS STANDALONE COPY SYSTEM)

RSX-11M/RSX-11M-PLUS Standalone Copy System V04

MCR> ↵

RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program

Valid switches are: /CSR=nnnnnn to change the default device CSR

    /VEC=nnn to change the default device vector
    /FOR=n to change the default magtape formatter number
    /DEV to list all default device CSR and vectors

>

Enter first device: MS0:

Enter second device: DB0:

Hit RETURN and enter date and time as 'TIM HH:MM MM/DD/YY'

TIM 20:24 05/24/90

Ahora hemos de revisar cualquier bloque dañado en los discos de destino, lo que creará una tabla de bloques dañados. Naturalmente al usar un emulador no deberían existir; no obstante esta operación ha de realizarse para evitarnos que los programas de RSX protesten tontamente por su inexistencia.

RUN BAD

BAD>DB0: BAD -- DB0: Total bad blocks= 0. BAD>[presionar Ctrl+z]

A continuación colocamos la cinta de RSX en la unidad TS11 virtual y corremos la BRU. En este caso utilizamos la cinta BB-J081G-BC (RSX-11M-PLUS V4.2 BRU MT:1600 ID:RSX11MPBL58 DIST KIT)

RUN BRU

BRU>/REW MS0: DB0: BRU - Starting Tape 1 on MS0:

BRU - End of Tape 1 on MS0:

BRU - Completed

BRU>[presionar Ctrl+z]

>

Iniciar el sistema de base

Para ello detenemos el sistema y booteamos desde el sistema recién creado (dispositivo rp0 en Simh). El sistema de base consiste en una imagen ejecutable que cuenta con una configuración segura por defecto, que podía correr en cualquier modelo de la línea PDP-11 (que cuente con los requerimientos básicos para RSX-11M Plus v4.x, claro está). Existen varios controladores de dispositivos ya configurados en la misma, lo que facilitará el proceso de instalación del sistema completo.

RSX-11M-PLUS V4.2 BL58 1024.KW System:"Baseline"

RED DB:=SY: RED DB:=LB: RED DB:=SP: MOU DB:"RSX11MPBL58" @[2,54]BASTART.CMD SET /CRASHDEV=MM0: SET -- Crash device MM0: has been successfully loaded ; ; ; RSX-11M-PLUS V4.2 Distribution Kit ; ; This is the baseline system of the RSX-11M-PLUS V4.2 ; distribution kit. This system contains an assortment of ; devices and may in fact be of some use on your target ; system. The main purpose of the baseline system, however, ; is to provide a working system environment which may be ; used to generate a custom-tailored operating system for ; your target hardware. We will now provide instructions ; to guide you through the startup procedure. ; ; ; It is important to specify the correct date and time. ; Use the format "DD-MMM-YY HH:MM". ;

  • Please enter the date and time [S]: 24-MAY-90 20:25

Naturalmente, hemos de saber que cualquier versión de RSX-11M-PLUS anterior a la 4.6 no conforman el bug Y2K, por lo cual no aceptan fechas y operaciones nominales por encima del 31 de diciembre de 1999.

TIME 24-MAY-90 20:25 ; ; Now allocate checkpoint space for use by system utilities. ; ACS SY:/BLKS=1024. ; ; The following information is necessary for this command file ; to correctly access the remainder of the distribution kit. ;

  • Did you receive your RSX-11M-PLUS distribution kit on magnetic tape? [Y/N]: Y ; ; Please enter the name of the magnetic tape drive, which should ; still contain the distribution tape. The name is of the form: ; ; MM1: or ; MS0: etc... ;
  • Which tape drive contains the distribution tape [S]: MS0: ; ; We will now set the CSR of the controller that will be ; used to bring in the remainder of the distribution kit to ; the standard value. If your controller is not at this address ; it will be necessary for you to manually configure the system ; by issuing the appropriate CON commands. Answer Yes to the ; manual configuration question to do this. If your controller ; is at the standard address, you do not have to do a manual ; configuration. ; CON SET RHC CSR=160000 CON SET MTA CSR=160000 CON SET MSA CSR=172522 CON SET MSA VEC=224 CON SET MUA CSR=160000 ; ; We will now bring on line all devices which were generated into ; this baseline image and which exist in your hardware system. ; ; If there is hardware in your system occupying a control ; register address which conflicts with a standard DIGITAL (...) ; does occur, rebootstrap the baseline system and answer Yes ; to this question. Instructions will then be provided to help ; circumvent the problem. ;
  • Do you need to do manual configuration? [Y/N]: N ; CON ONLINE ALL ; ; Prepare to bring in the remainder of the distribution kit ;
  • Is your target system disk an RC25, RK07, or RD52? [Y/N]: N ; ; Since the files in the second backup set are not necessary to generate ; your system you may wish to skip the verify pass to save time. ;
  • Do you want to verify the second backup set? [Y/N]: N ; ; We will now mount the tape in MS0: for access by BRU. ; MOU MS0:/FOR/DENS=1600 ; ; Ensure that the BRU task is installed. ; INS $BRU ; ; We will now load the remainder of the distribution kit. ; TIME 20:25:40 24-MAY-90 ; BRU /BAC:MPBL58SRC/UFD/NOINI/DENS:1600 MS0: SY: BRU - Starting Tape 1 on MS0:

BRU - End of Tape 1 on MS0:

BRU - Completed

; DMO MS0:/LOCK=UNLOAD 20:25:46 MS0: -- Dismount complete DMO -- TT0: dismounted from MS0: Final dismount initiated *** ; TIME 20:25:46 24-MAY-90 ; ; We will now create any UFDs that must be created on your disk(s). ; You will not see the UFD commands. ; TIME 20:25:46 24-MAY-90 ; ; ; The preparation of the RSX-11M-PLUS kit is now complete. The next ; time this disk is bootstrapped, this dialog will only be repeated ; on request. We will now record the successful installation in the ; log file on the new system disk, and either exit if the installation ; was done on line, or proceed with the normal startup sequence if the ; baseline system was used. ; SET /UIC=[2,54] PIP LB:[1,1]KITIDENT.DAT/AP=LB:[2,54]INSTALOG.DAT ; ; SET /UIC=[200,200] ; PLEASE NOTE ; ; If you have not yet read the system release notes, please do so ; now before attempting to perform a SYSGEN or to utilize the new ; features of this system. ; ; ; In order to start the SYSGEN process, type: ; ; >@SYSGEN ; ; When SYSGEN has completed and your generated system is ; running, you may wish to edit several DIGITAL-supplied ; prototype command and text files to suit your system ; and application: ; ; File Purpose ; ---- ------- ; [0,0]RSX11.SYS An account/password file ; This file does contain privileged accounts. ; ; [1,2]STARTUP.CMD (This file) Invoked at bootstrap time to ; control bringing up the system. ; ; [1,2]QMGSTART.CMD Invoked by STARTUP to start up the Queue ; Manager and spooling system. ; ; [1,2]SHUTUP.CMD Invoked by SHUTUP when taking down the system ; to perform system dependent shutdown tasks. ; ; [1,2]QMGSTOP.CMD Invoked by SHUTUP to stop the Queue Manager ; and spooling system. ; ; [1,2]LOGIN.TXT Displayed on user's terminal when logging in. ; ; [1,2]BATCH.TXT Displayed at the beginning of each batch log ; file. ; ; ELI /LOG/LIM CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /" INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN INS $QMGCLI INS $QMGCLI/TASK=...PRI INS $QMGCLI/TASK=...SUB QUE /START:QMG INS $QMGPRT/TASK=PRT.../SLV=NO QUE LP0:/CR/NM START/ACCOUNTING CON ESTAT LP0: QUE BAP0:/BATCH QUE BAP0:/AS:BATCH @

SHO /DEF DB0:[200,200] Nonamed TT0: Protection UIC: [200,200]

Correr SYSGEN

Ahora que podemos utilizar el sistema de base (antediluviano equivalente a un Pendrive booteable con GNU/Linux). Sin embargo, este no estará optimizado para nuestra configuración de hardware - si siquiera hará uso de toda la memoria emulada ni contará con todos los servicios de dispositivos configurados.

Para crear una imagen ejecutable final optimizada para nuestra configuración emulada, habremos de correr la utilidad de generación de sistema. Se trata de una serie de comandos que reciden en el UFD [200,200] (el Directorio de Ficheros de Usuario de RSX, similar a un /usr/bin en los similares a UNIX).

Ya que gracias al comando sho /def anterior vimos que ya estamos situados en UFD [200,200], de modo que podremos el guion SYSGEN.CMD introduciendo @sysgen, de la siguiente manera:

@SYSGEN ; ; RSX-11M-PLUS V4.2 BL58 SYSGEN ; ; COPYRIGHT (c) 1988 ; DIGITAL EQUIPMENT CORP., MAYNARD MA., 01754 ; SET /DPRO=[RWED,RWED,RWE,R] ; ; To exit from the SYSGEN procedure at any time, type CTRL/Z. ; ; If you are unsure of the answer to a question for which a de- ; fault answer exists, use the default answer. ; ; ; ;=================================================== ; Choosing SYSGEN Options 24-MAY-90 at 20:26 ;=================================================== ; ; ; ; Every question is preceded by a question number (for example SU010) ; which you can use to find the explanation of the question in the ; RSX-11M-PLUS System Generation and Installation Guide. ; ; An explanation of every question is also available by pressing ; the ESC key (or the ALTMODE key) in response to the question. ; ; If you are unfamiliar with the SYSGEN procedure, the explanation of ; each question can be printed automatically before the question. ;

  • SU010 Do you always want the explanation printed? [Y/N D:N]: ? [Presionar Intro] ; ; SYSGEN always creates saved answer files containing your responses ; to the SYSGEN questions: ; ; SYSGENSA1.CMD Setup questions, Executive options ; SYSGENSA2.CMD Peripheral configuration ; SYSGENSA3.CMD Nonprivileged task builds ; ; You should perform a PREPGEN first to create saved answer files, and ; then perform a SYSGEN, specifying those saved answer files as input ; to the Executive, peripheral, and nonprivileged task build sections. ;
  • SU020 Do you want to use a saved answer file as input for
  • the Executive options? [Y/N D:N]: ? [Presionar Intro] ;
  • SU040 Do you want to use a saved answer file as input for
  • the peripheral configuration? [Y/N D:N]: ? [Presionar Intro] ;
  • SU060 Do you want to use a saved answer file as input for
  • the nonprivileged task builds? [Y/N D:N]: ? [Presionar Intro] ;
  • SU080 Do you want to do a PREPGEN? [Y/N D:N]: ? [Presionar Intro] ;
  • SU090 Enter the name of the disk drive containing your
  • target system disk [ddnn:] [S R:2-5]: DB0: ; ASN DB0:=IN: ASN DB0:=OU: ASN DB0:=LB: ASN DB0:=WK: ASN DB0:=TK: ASN DB0:=BC: ASN DB0:=LI: ASN DB0:=OB: ASN DB0:=EX: ASN DB0:=MP: ;
  • SU100 Do you want to run Autoconfigure on the host system
  • hardware? [Y/N D:N]: Y

La función Autoconfigure descubrirá el CSR y el vector de la mayoría de los dispositivos emulados por nosotros. Estos sólo estaban disponibles en las últimas versiones de RSX.

; ; Running Autoconfigure: ; INS $ACF ACF INS $ACO ACO SHOW Processor Type: 11/84 Memory Size: 1024. Kw

Options:

    Floating Point Processor (FP11)
    Extended Instruction Set (EIS)
    Extended (22-Bit) Addressing
    Cache Memory

Name Vector CSR Unit Type Remark RHA 254 176700 0 RP04 1 RP04 DLA 160 174400 0 RL02 1 RL02 2 RL01 3 RL01 MSA 224 172522 DYA 264 177170 YLA 060 177560

ACO SYSGEN ;

  • SU110 Do you want to override the Autoconfigure results? [Y/N D:N]: ↵ ; ; You can: ; ; o do a complete SYSGEN ; ; o continue a previous SYSGEN from where you left off ; ; o do an individual section of SYSGEN ; ;
  • SU120 Do you want to do a complete SYSGEN? [Y/N D:Y]: ↵ ; INS [3,54]MAC/TASK=MACT0 INS [3,54]PIP/TASK=PIPT0 INS [3,54]LBR/TASK=LBRT0 INS [3,54]TKB/TASK=TKBT0 INS [3,54]VMR/TASK=VMRT0 ; ; ; ;====================================================== ; Choosing Executive Options 24-MAY-90 at 20:27 ;====================================================== ; ; ; ; The answers to the questions in this section are put in the saved ; answer file [200,200]SYSGENSA1.CMD. ; ; Enter a comment for inclusion in the SYSGENSA1 saved answer file. ; The comment may contain more than one line. The "V" in the right ; margin below marks the maximum line length. When you are done, ; press RETURN in response to the prompt. ; V
  • Comment [S R:0.-55.]: rsx de peron
  • Comment [S R:0.-55.]: ;
  • CE020 Do you want the Full-functionality Executive? [Y/N D:Y]: [Presionar Intro]

Es recomendable escoger la opción por defecto, a no ser que - al estilo RSTS/E - se deseen responder muchísimas interrogantes crípticas.

;

  • CE120 Do you want support for communications products
  • (such as DECnet, PSI, and LAT)? [Y/N D:N]: Y ;
  • CE130 What is the system name? [S R:0-6 D:"RSXMPL"]: RSX1 ;
  • CE264 Do you want IP11 industrial I/O subsystem support? [Y/N D:N]: [Presionar Intro] ;
  • CE270 Do you want to include XDT? [Y/N D:N]: [Presionar Intro] ;
  • CE280 Enter the crash notification device CSR
  • address [O R:160000-177700 D:177564]: [Presionar Intro] ; ; Note: Enter both the device and the logical unit number. ; For example, MM0: or DL1:. ; ; Note: Enter XX: if you desire loadable DU:, DL:, MU:, MS: or MM: ; crash driver support. ;
  • CE290 On what device and unit do you want crash dumps
  • to be written? [S R:2-6]: DL0:

Cuando RSX se cuelgue, se detendrá inmediatamente y solicitará cargar un paquete de disco virgen en el dispositivo. Una vez que se cargue el pack y se ponga la CPU a correr nuevamente (debemos ingresar cont en el prompt sim> de simh) , escribirá un volcado de núcleo en dicho dispositivo.

;

  • CE330 Is your system clock programmable (KW11-P)? [Y/N D:N]: [Presionar Intro] ;
  • CE350 Is your line frequency 50 Hz? [Y/N D:N]: Y ; ; ; ;============================================================= ; Choosing Peripheral Configuration 24-MAY-90 at 20:28 ;============================================================= ; ; ; ; The answers to the questions in this section are put in the saved ; answer file [200,200]SYSGENSA2.CMD. ; ; Enter a comment for inclusion in the SYSGENSA2 saved answer file. ; The comment may contain more than one line. The "V" in the right ; margin below marks the maximum line length. When you are done, ; press RETURN in response to the prompt. ; V
  • Comment [S R:0.-55.]: Test system for Simh
  • Comment [S R:0.-55.]: ; ; ; DB: controllers: RH11, RH70 devices: RP04, RP05, RP06 ; ; RH Configuration ; ; Physical Unit Number ; ; 0 1 2 3 4 5 6 7 ; ; RHA DB0: DB1: ; ; ; ; ; DL: controllers: RL11, RLV12 devices: RL01, RL02 ; ; DL Configuration ; ; Physical Unit Number ; ; 0 1 2 3 4 5 6 7 ; ; DLA DL0: DL1: DL2: DL3: ; ; ; ; ; CR: controllers: CM11, CR11 ;
  • CP4004 How many CM/CR11 card readers do you have? [O D:0]: [Presionar Intro] ; ; ; MS: controllers: TS11, TU80, TSV05, TK25 ; ; ; DY: controller: RX211, RXV21 device: RX02 ; ; ; LA: controller: LPA11 ;
  • CP6204 How many LPA11 lab subsystems do you have? [D R:0.-16. D:0.]: [Presionar Intro] ; ; ; TT: controllers: DL11, DLV11 controller mnemonic: YL ;
  • CP6832 Enter terminal type for YLA [S R:4-6 D:"LA120"]: VT100 ; ; ; TT: controller: DJ11 controller mnemonic: YJ ;
  • CP7204 Enter number of DJ11 asynchronous line
  • multiplexers [D R:0.-16. D:0.]: [Presionar Intro] ; ;
  • CP7604 Do you have any intercomputer communication devices? [Y/N D:N]: [Presionar Intro]

Asegúrese de seleccionar no a esta pregunta si tiene pensado correr DECnete debido a que los dispositivos de red no pueden compartirse entre el controlador de RSX y el controlador DECnet.

; ; ; Enter device mnemonics for any user-supplied drivers. The driver ; source files must reside in [11,10] and be named ddDRV.MAC and ; ddTAB.MAC where dd is the device mnemonic. ; ; You may enter the mnemonics on more than one line. When you have ; listed all the drivers, press RETURN when asked for the device ; mnemonic. ; ; The device mnemonic must not include a colon. ;

  • CP9604 Enter device mnemonics for user-supplied drivers [S]: [Presionar Intro] ; ; ; The highest vector among the devices you specified in this SYSGEN ; is 374(octal). This is the default response for this question. ;
  • CP9632 What is the highest interrupt vector
  • address? [O R:374-774 D:374]: [Presionar Intro] ; ; ; ;================================================================ ; Assembling the Executive and Drivers 24-MAY-90 at 23:30 ;================================================================ ; ; ; ; The answers to the questions in this section are put in the saved ; answer file [200,200]SYSGENSA1.CMD. ; PIP RSXMC3.MAC=RSXMC1.MAC,RSXMC2.MAC PIP RSXMC.MAC=RSXMC3.MAC,RSXMC0.MAC ; SET /UIC=[1,24] PIP [11,10]/NV=[200,200]RSXMC.MAC PIP [11,10]/NV=[200,200]SYSTB.MAC PIP [11,24]/NV=[200,200]RSXASM.CMD PIP [11,24]/NV=[200,200]DRIVERS.ASM ; ;
  • AE010 Do you want assembly listings of the Executive and
  • drivers? [Y/N D:N]: [Presionar Intro] ; ASN NL:=LS: ; ;
  • AE030 Do you wish to pause to edit any files before
  • assembling? [Y/N D:N]: [Presionar Intro] ; SET /UIC=[11,24] ; PIP .OBJ;/DE/NM,.TTY; ; TIME 23:30:52 24-MAY-90 ; MAC @RSXASM ; TIME 23:31:48 24-MAY-90 ; MAC @DRIVERS.ASM ; TIME 23:32:31 24-MAY-90 ; PIP RSX11M.OBS=.OBJ PIP TTDRV.OBS=.TTY ; SET /UIC=[200,200] PIP /NV=[11,10]RSXMC.MAC ; SET /UIC=[1,24] PIP RSXBLD.CMD/PU/NM PIP RSX11M.OLB;/DE/NM PIP [200,200]RSXMC.MAC/PU/NM ; LBR RSX11M/CR:256.::256./-EP=[11,24]RSX11M.OBS PIP [11,24]RSX11M.OBS;,.OBJ;/DE ; LBR TTDRV/CR:40.:392.:128.=[11,24]TTDRV.OBS PIP [11,24]TTDRV.OBS;,.TTY;*/DE SET /UIC=[200,200] ; ; ; ;============================================================== ; Building the Executive and Drivers 24-MAY-90 at 23:32 ;============================================================== ; ; ; ; The answers to the questions in this section are put in the saved ; answer file [200,200]SYSGENSA1.CMD. ; ; ; Allocate space to be used later for the system image file. ; SET /UIC=[1,54] PIP RSX11M.TMP/CO/BL:1026.=NL: ; SET /UIC=[200,200] ; SET /UIC=[1,24] SET /UIC=[200,200] SET /UIC=[1,54] PIP SYSVMR.CMD=[200,200]SYSVMR.CMD,VMRTTY.CMD ; SET /UIC=[200,200] ;
  • BE030 Do you want to pause to edit any files before
  • task-building? [Y/N D:N]: [Presionar Intro] ; SET /UIC=[1,24] PIP [1,24]/NV/NM=[200,200]RSXBLD.CMD,RSX11M,DSP11M,LDR11M PIP [1,24]/NV=[200,200]DIR11M.CMD,DR211M,DIRCOM,DR2COM,DIR PIP [1,24]/NV=[200,200]DR311M.CMD,DR411M,DR3COM,DR4COM PIP [1,24]/NV=[200,200]VEC11M.CMD,DCM11M,VECCOM ; TIME 23:33:39 24-MAY-90 ; TKB @RSXBLD ; TIME 23:33:53 24-MAY-90 ; TKB @[200,200]DRIVERS.BLD ; TIME 23:33:56 24-MAY-90 SET /UIC=[200,200] ; ; ; ;========================================================= ; Building the Privileged Task 24-MAY-90 at 23:33 ;========================================================= ; ; ; ; The answers to the questions in this section are put in the saved ; answer file [200,200]SYSGENSA1.CMD. ; ;
  • BP040 Do you want the maps of the privileged tasks? [Y/N D:N]: [Presionar Intro] ; ASN NL:=MP: ; SET /UIC=[1,24] ; TIME 23:34:00 24-MAY-90 ; TKB @SAVBLD ; TIME 23:34:02 24-MAY-90 ; ASN LB:=OU: SET /UIC=[200,200] ; ; ; ;============================================================ ; Rebuilding Supplied System Tasks 24-MAY-90 at 23:34 ;============================================================ ; ; ; ; The answers to the questions in this section are put in the saved ; answer file [200,200]SYSGENSA3.CMD. ; ;
  • BN010 Do you want to rebuild any system tasks? [Y/N D:N]: [Presionar Intro] ; ; ; ;========================================================== ; Creating the System Image File 24-MAY-90 at 23:34 ;========================================================== ; ; SET /UIC=[1,54] ; PIP RSX11M.TMP;*/DE/NM ; PIP RSX11M.SYS/CO/NV/BL:1026.=RSX11M.TSK ; ASN LB:=SY: VMR @SYSVMR

Loading Executive data space Data space loading completed VMR -- DIAG-Installed tasks or commons may no longer fit in partition SET /TOP=SYSPAR:- VMR -- DIAG-Loadable driver larger than 4K LOA TT: VMR -- DIAG-Installed tasks or commons may no longer fit in partition SET /TOP=DRVPAR:- SECPOL 117734 00172000 00100000 SEC POOL SYSPAR 117670 00272000 00165300 MAIN 117624 00272000 00111500 RO COM !DIR11M! 117434 00403500 00005200 TASK [...LDR] 117230 00410700 00033100 TASK [MCR...] 117024 00444000 00010100 TASK [TKTN ] 116620 00454100 00003200 TASK [SHF...] DRVPAR 116540 00457300 00133100 MAIN 116474 00457300 00006600 RO COM !TTEXT ! (...) GEN 113010 00612400 07165400 MAIN 112744 00612400 00002000 RO COM !DYCOM ! ...LDR 12.01 117500 SYSPAR 248. 00005200 LB0:-00143315 FIXED TKTN 07.00 117070 SYSPAR 248. 00010100 LB0:-00055302 FIXED (...) NL0: OFL DRIVER POOL=1200:13510.:13510.:1720

SET /UIC=[200,200] ; REM MACT0 REM PIPT0 REM LBRT0 REM TKBT0 REM VMRT0 ; ; End of SYSGEN ; TIME 23:34:13 24-MAY-90 ; ASN = ; @

Bootear el nuevo sistema

Ahora para bootear el sistema que acabamos de instalar, como primer medida debemos guardar la nueva imagen ejecutable y escribir el bloque de arranque.

BOOT [1,54]RSX11M RSX-11M-PLUS V4.2 BL58

> SAV/WB RSX-11M-PLUS V4.2 BL58 1024.KW System:"RSX1 "

RED DB:=SY: RED DB:=LB: RED DB:=SP: MOU DB:"RSX11MPBL58" @DB:[1,2]STARTUP ; PLEASE NOTE ; ; If you have not yet read the system release notes, please do so ; now before attempting to perform a SYSGEN or to utilize the new ; features of this system. ; ;

  • Please enter time and date (HH:MM DD-MMM-YY) [S]: 23:37 24-MAY-90 TIME 23:37 24-MAY-90 ACS SY:/BLKS=1024. CON ONLINE ALL ELI /LOG/LIM CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /" INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN INS $QMGCLI INS $QMGCLI/TASK=...PRI INS $QMGCLI/TASK=...SUB QUE /START:QMG INS $QMGPRT/TASK=PRT.../SLV=NO QUE LP0:/CR/NM START/ACCOUNTING CON ESTAT LP0: QUE BAP0:/BATCH QUE BAP0:/AS:BATCH @ BYE Have a Good Evening 24-MAY-90 23:37 TT0: logged off RSX1

HELLO Account or name: SYSTEM Password: SYSTEM

RSX-11M-PLUS V4.2 BL58 [1,54] System RSX1 24-MAY-90 23:37 Logged on Terminal TT0: as SYS1

Good Evening

    *****************************************************************
    *                                                               *
    *                    Welcome to RSX-11M-PLUS                    *
    *                                                               *
    *                  Version 4.2  Base level 58                   *
    *                This is file LB:[1,2]LOGIN.TXT                 *
    *                                                               *
    *****************************************************************

Ya deberíamos poder ver los dispositivos instalados virtualmente:

SHOW DEV CO0: TT0: Loaded TT0: [1,1] [1,1] - Logged in Loaded VT0: Loaded VT1: Loaded RD0: Loaded DB0: Public Mounted Loaded Label=RSX11MPBL58 Type=RP04 Seek_Optimization=Nearest:10. Overlapped_Seeks

DB1: Loaded Type=RP04 Seek_Optimization=Nearest:10. Overlapped_Seeks

DL0: Loaded Type=RL02 Seek_Optimization=Nearest:10.

DL1: Loaded Type=RL02 Seek_Optimization=Nearest:10.

DL2: Loaded Type=RL01 Seek_Optimization=Nearest:10.

DL3: Loaded Type=RL01 Seek_Optimization=Nearest:10.

MU0: Loaded Type=TK50 MS0: Loaded Type=TS11 DY0: Loaded Type=RX02 DY1: Loaded Type=RX02 NL0: Loaded TI0: CL0: TT0: SP0: DB0: LB0: DB0: SY0: DB0: >

Podremos entender su uso fácilmente a través del manual correspondiente o de un video instructivo:

Siguiendo estas instrucciones es muy simple hacer peronismo, porque es implementar software propugnado el amor entre todos, es hacer prevalecer los valores de la GPLv3 sobre los materiales, es hablar de justicia y programarla; es, en otras palabras, hacer el bien en todas las CPUs.



04 february 2023

¿Cómo bajo videos de YouTube con yt-dlp en Ubuntu?

En su fundamental Actualización Doctrinaria para la Toma del Poder, Juan Perón explica sobre el fenómeno de la lucha telemática, y considera el uso de yt-dlp para descargar videos de YouTube en Ubuntu.

(...)

Se ha hablado mucho de la guerra revolucionaria. La guerra revolucionaria en sus formas puede llegar a tener sus características originales... Pero no es otra cosa que una guerra de guerrillas muy bien organizada - se realice en el campo, se realice en las ciudades, o se realice en las redes de datos. Es otras palabras, puede ser guerra de guerrilla urbana, guerra de guerrilla rural o guerra de guerrillas telemática; según las características del dominio donde se la realice.

Los profesionales sabemos que no tiene nada de nuevo. La guerra telemática en el fondo no es otra cosa que una clase de guerra revolucionaria - como que hoy practican las fuerzas de liberación de los países, porque el problema de casi todos los países del mundo, en estos momentos, es un problema de liberación del software.

Existe un principio en el Arte de la Guerra que establece que cuando se tienen las fuerzas suficientes uno las reúne y las lleva a un campo de batalla decisivo y en esa batalla decisiva juega la suerte de su decisión... Pero cuando no se tiene esa fuerza suficiente para vencer en una batalla decisiva, se procede a dividir esta gran batalla (que se podría librar en conjunto), en miles de pequeños combates. Venciendo en cada uno de ellos, en cierta medida equivale - sumando todos estos éxitos tácticos a lo largo del tiempo - a librar una batalla decisiva.

Por este motivo la guerra decisiva es cuando se va a una batalla, pero la acción telemática es librar una guerra de desgaste.

Al enemigo mas fuerte uno lo va desgastando por partes. Esto obedece a un viejo pensamiento de Confucio. Confucio decía que una GPLv3 no puede matar a un Googl€, pero sí lo puede fundir. Es decir, sumando código fuente liberado bajo GPLv3, se desgasta y devora cualquier GAFAM que se tenga enfrente... La guerra telemática - tal cual se la practica hoy en casi todos los países latinoamericanos - es una cosa preparada, organizada, armonizada y coordinada, ¿por qué? Porque el problema común es la dependencia tecnológica, entonces la lucha también tiene que ser común.

En toda acción de guerra telemática, los medios que se emplean son: uno, la potencia de cómputo, por que la potencia lo ata a los elementos de lucha, en cambio el que no tiene la potencia no tiene otro remedio que multiplicar su acción por la transmisión.

La guerra telemática, en consecuencia, se trata de una guerra de movilidad por transmisión: donde está la GAFAM nada, donde la GAFAM no está, se pega con todo, cuando duele y donde duele.

Indudablemente, que para que esto pueda realizase con éxito (porque el que tiene la fuerza, el que tiene la potencia de cómputo, va a seguir persiguiendo a esa acción de guerrillas y a la larga lo va a acorralar en alguna parte hasta poder aniquilarla). El secreto está en poder liberarse de ese peligro, para lo cual hay que tener una zona, diremos, que sea inmune a toda la acción de las fuerzas.

Eso, por ejemplo, se puede producir por acción territorial. Cuando se hace la guerrilla rural, la montaña, el bosque, donde es posible colocarse detrás de un obstáculo que no pueda ser fácilmente vencido por el otro se pueden obtener zonas inmunes a la acción de la fuerza. Y la lucha de guerrillas urbanas: primero la sorpresa, es el factor fundamental, para realizar en la acción, y después, los medios de movilidad para desaparecer inmediatamente de producido el golpe. En la Guerra Telemática esto lo garantizan los Pubnix, los servidores UNIX de acceso públicos protegidos por criptosistemas que son la zona liberada de una comunidad que resguarda un sentido común a su existencia.

Desde ellos es posible golpear a la ciberoligarquía allí donde más le duele y cuando más le duele. Y - cuando concurre la fuerza que ha de reprimir - se evade. Es decir, la sorpresa y la movilidad por transmisión; ahí están los dos factores fundamentales...

Los púbnix pueden garantizar salvoconductos para el desarrollo de herramental de lucha telemática, evadiendo su rastreo, destrucción o eventual inutilización.

Veamos un ejemplo, que podrá aclararlo todo. Yo solía recomendar utilizar youtube-dl para ofrecer copias locales de material audiovisual almacenado en computadoras ajenas. Sin embargo, el desarrollo de tan magno y justiciero programa cesó nominalmente con la versión final youtube-dl-2021.12.17.tar.gz. Indudablemente, esto implicó que transcurridos un par de años, dejase de funcionar adecuadamente, y como consecuencia impide al Pueblo descargar videos de ciertas plataformas de agregado audiovisual telemático.

Sin embargo, podremos encontrar un excelente reemplazo modernizado y funcional en el 2023 en yt-dlp, un fork avanzado del youtube-dl que nos encontrará unidos en lugar de dominados.

Su instalación en Ubuntu es sumamente sencilla. Simplemente abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

sudo apt update ; sudo apt install ffmpeg -y sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp ; sudo chmod a+rx /usr/local/bin/yt-dlp ;

Y actualizamos la API de los distintos buscadores (muchísimos compendiados en ellos, entre ellos los sitios de agregado de videos más conocidos) mediante el siguiente comando de organización:

sudo yt-dlp -U

El funcionamiento general de yt-dlp replica en gran medida al del clásico youtube-dl. Por ello podremos realizar sus mismas tareas con facilidad. Para bajar un video de YouTube simplemente se agrega su URL, de la siguiente manera:

yt-dlp https://www.youtube.com/watch?v=C93nMIL2jNw

Asimismo, podremos sacarle brillo en la descarga de listas enteras de videos, en caso de necesidad. Esto se realiza automáticamente indicando la URL de una lista de videos, o bien llamando un fichero que contenga las URL individuales con el sufijo -a.

También para extraer música de las canciones para Combatir al Capital con --extrac-audio --audio-format best.

Indudablemente yt-dlp consta de numerosas opciones adicionales que se extrañabnan en el programa anterior, las cuales se detallan a fondo en el Manual de yt-dlp.

En fin señores, en las circunstancias actuales es preciso que todo el Movimiento se movilice y se incorpore a la acción. La conducta es bien simple y el deber bien claro. Que cada peronista en todo momento y en todo lugar haga más de lo preciso por la liberación de la patria, su pueblo y su software.

Los peronistas han de hacerse la idea de que son ellos y solamente ellos los que han de poner el esfuerzo y si es preciso el sacrificio. La peor de todas las actitudes es permanecer inactivo cuando el destino de la CPU está en juego.



03 february 2023

¿Cómo instalo el reproductor Musique en Ubuntu?

Aleccionando sobre la suspensión de las elecciones que dieron el triunfo legislativo al Neoperonismo, Juan Perón explica cómo instalar el reproductor Musique en Ubuntu.

¡Trabajadores!

Esta intención de dejar a los pueblos sin ninguna representación no es nueva ni es original, porque todas las dictaduras lo intentan, pero la Historia demuestra elocuentemente que, cuando ello se produce, las consecuencias suelen ser funestas para las mismas dictaduras que lo promueven.

Para que desaparezcan las entidades demoliberales, es preciso que antes desaparezca el demoliberalismo. En el mundo de nuestros días, al desaparecer paulatinamente el sistema capitalista, vienen desapareciendo también los partidos demoliberales, que son su consecuencia.

Pero el lugar común de la ignorancia de estos cuatro señores suele ser el ataque atolondrado a la política, como si de ella dependiera que lo hombres sean malos y mentirosos. Los simples suelen ser partidarios de la "eliminación de la política" porque hay malos políticos, como podrían ser partidarios de la erradicación de la medicina porque hubiera algunos malos médicos. Sin embargo cuando los tontos se ven forzados a mandar no titubean en echar mano a la política: es que ellos son enemigos de la política de los demás.

Los que saben "tomar el rábano por las hojas" y son partidarios de erradicar la política, suelen intentar hacerlo suspendiendo elecciones, sin percatarse que es muy difícil "matar a nadie anulando votos", y cuando las causas siguen generando sus efectos, porque poca importancia tiene la existencia legal cuando está sometida a la existencia real.

Resulta lo más anacrónico cuando se atenta contra estas formaciones políticas mientras por otro lado se trata de afirmar por todos los medios el sistema que los justifica.

Muchos se esfuerzan por reprender la política, yo me conformaría con comprenderla. Los que despotrican contra ella me dan pena, como me entristecen todos los que despotrican contra las demás ciencias: hay en ello un resentimiento que la impotencia pone a menudo en el espíritu de la incapacidad culposa.

El Pueblo Argentino conoce bien qué es lo que tiene que hacer ante esta ignominiosa acción. Ha atresado sus organizaciones y ya llegará la hora de tronar el escarmiento, la hora de los pueblos a veces suele venir acompañada por leña, que ustedes han de dar con todo.

Mientras tanto, puede tronar la música y los bombos. Para ello qué mejor que Musique, el vistoso reproductor musical simple del Justicialismo.

Su instalación es sumamente sencilla empleando la terminal de Ubuntu 22.04LTS. Simplemente abrimos una con Ctrl+Alt+t e ingresamos el siguiente bloque de comandos de organización:

cd /tmp wget https://flavio.tordini.org/files/musique/musique.deb sudo dpkg -i musique.deb

Tras introducir nuestra contraseña se instalará Musique. Podremos iniciar el reproductor desde Aplicaciones / Sonido y Video / Musique.

Al ejecutar el reproductor por primera vez se nos propondrá analizar la carpeta de música, como es típico en este tipo de programas. Esto puede llevar varios minutos dependiendo del tamaño de la misma y de la velocidad del disco (y red de datos, si la misma estuviese en la red local).

El programa podrá ofrecer extender las pistas con etiquetado. Para ello utilizaría el programa libre Finetune (ofrecerá descargarlo instalarlo si no estuviese previamente instalado en el sistema, lo cual requiere pocos segundos).

Una vez completada podremos acceder a la música a través de diferentes criterios. Por defecto se hará a través de enlaces gráficos de los intérpretes.

Cada uno de nuestros artistas favoritos tendrá representados la discografía, y podremos sumar canciones particulares o grupales a una cola de reproducción haciendo doble clic en su avatar.

Naturalmente podremos alterar este funcionamiento por medio de los botones de filtrado, que nos permiten seleccionarlos a través de Álbumes, Géneros, o bien Carpetas.

El reproductor en sí no tiene muchas opciones innecesarias. Iniciamos la reproducción de la pista seleccionada con la barra espaciadora, y podremos adelantar o atrasar la pista con Ctrl+Flecha izquierda y Ctrl+Flecha derecha respectivamente.

Con F11 podremos activar la pantalla entera. La reproducción de la cola se hará en orden numérico, alfabético, o bien podremos activar una reproducción aleatoria con Ctrl+s, y podremos repetirla en bucle con Ctrl+r. Para eliminar la cola de reproducción, utilizamos Ctrl+n.

Con cualquiera de ella le daremos la música que necesita esta camarilla contumaz antidemocrática, y restauraremos los valores que realmente anhela el Pueblo.



02 february 2023

¿Cómo instalo el editor GNU moe en Ubuntu?

Desde el chalet de Puerta de Hierro, Juan Perón expone sobre la necesidad de la unión del Tercer Mundo y expone cómo instalar el editor GNU moe en Ubuntu.

(...)

Hace treinta años, buscando la base filosófica de una doctrina que nos permitiera lanzarnos hacia el destino de alcanzar un bienestar para nuestro Pueblo y la grandeza para nuestra Nación, nosotros afirmamos la necesidad de llegar a una Comunidad Organizada. Siempre he pensado que sólo una Comunidad Organizada puede llevar el país a un destino floreciente y, en consecuencia, aumentar el grado de felicidad de los que la componen.

Vivimos en un mundo que cada día nos está demostrando que vienen circunstancias totalmente nuevas en el futuro inmediato. Confiamos que nuestro desarrollo tecnológico sea lo suficientemente prudente como para no ensayar los mismos males cuyas consecuencias estamos viendo sufrir a los países superdesarrollados. El mundo que viene es un mundo nuevo, y en ese mundo nuevo podrán vivir solamente los hombres que tengan la suficiente sensatez para darse cuenta que somos todos hermanos y que todos debemos luchar por el destino común, sin lo cual podríamos sucumbir todos.

Cuando los imperialismos quieran imponernos cómo habremos de organizarnos dentro de la Tierra, será necesario que en el Tercer Mundo haya una entidad que diga: "Señores, aquí las condiciones que ustedes proponen son de dominación; en cambio, las que nosotros proponemos son de creación hermanada". Entonces, cuando las dos terceras partes del mundo hagan sentir su voz en una entidad organizada, los imperialismos van a entrar en razón. Nadie se ha puesto nunca contra el mundo entero, y éste debe ser el camino que tendremos que seguir.

Por eso sostenemos la necesidad de un sistema de redes informáticas unidas que represente a ese Tercer Mundo que ya está en marcha. No vayan a creer que no está organizándose. Ya se está organizando, comienza a pesar, y pesará cada día más, en la medida que seamos capaces conectarnos y rutear paquetes.

Llevar la unidad de las redes de datos latinoamericanas es comenzar la integración del Continente, en ideas y corazones, y en ese trabajo hay que empeñarse.

Ese futuro no está tan lejano como algunos creen; el Siglo XXI lo tendremos dentro de 25 años y el año 2000, según lo han predicho grandes hombres como Spengler, Stuart Mill, y otros grandes filósofos que estudian estos problemas, será el año de las grandes soluciones o del Window$ 2000.

Las herramientas las tenemos, y si no las tenemos, las compilamos. En los sistemas GNU con Linux conocemos como ciencia cierta la existencia de numerosos editores de texto. De todo hay como en botica, y para todos los gustos.

En este caso me he hecho adepto al GNU moe, un editor cuya funcionalidad principal que lo distingue es la de operar en terminales con codificación ISO-5988-15. Esta es un poco más antigua que la UTF-8 universalizada, pero alcanza para suplirnos de problemas en el caso de utilizar antiguas videoterminales, cosa que hago en ocasiones por sacar provecho a lo viejo y vetusto. No hay que tirar un viejo por la ventana todos los domingos, ¿sabe?

Moe no está disponible en Ubuntu, pero su código fuente elaborado en lenguaje C puede ser fácilmente compilable.

Para ello es necesario descargar el código fuente del programa y luego compilarlo. Esto se puede hacer abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente bloque de comandos de organización:

cd /tmp ; wget http://download.savannah.gnu.org/releases/moe/moe-1.9.tar.lz ; tar -xf moe-1.9.tar.lz ; cd moe-1.9/ ; ./configure ; make ; sudo make install

Tras ingresar nuestra contraseña de usuario podremos ejecutar el editor moe con:

moe

Además de las flechas de cursor para desplazamientos (junto con Alt+"diamante de WordStar"), podremos escribir texto con presteza. En principio, moe está pensado especialmente para manejar de forma confiable texto codificado en ISO-8859-15, pero puede operar con texto en UTF-8.

Moe usa las teclas de función, de modo que los comandos mas frecuentes se puedan pulsar con una sola tecla.

Tecla de Función Uso F1, Ctrl+a Ayuda F2 Guardar fichero F3 Cargar F4 Zoom de ventana F5 Ventana previa F6 Ventana siguiente F7 Deshacer F8 Rehacer F9 Copiar Bloque F10 Menú de Opciones F11 Menú de buffer F12 Último visitado

Moe intenta racionalizar el uso de las combinaciones de teclas del teclado:

 Utiliza la tecla Alt para comandos inofensivos como los movimientos del cursor. 

 La tecla Control se usa para comandos mas “peligrosos” como copiar bloques de texto, borrar líneas, o salir del programa. 

 La tecla Tab se usa
 para el autocompletado de nombres de fichero y para mostrar y ocultar 
el navegador del directorio cuando moe pide un nombre de fichero. 

Con Ctrl+os podremos dividir la ventana, y conmutar entre las divisiones de ventanas con F5 y F6, en tanto que Ctrl+or refresca la pantalla del terminal.

Las funcionalidades más útiles responden al uso de los bloques de selecciones. Selección Ctrl+Barra espaciadora Comienza/Termina selección Ctrl+KB Comienzo de selección Ctrl+KK Final de selección Ctrl+LC Copiar selección Ctrl+KM Mover selección Ctrl+KY Borrar selección Ctrl+KR Lee selección Ctrl+KI Indentar selección Ctrl+KU Desindentar selección Ctrl+OL Pasa la Selección a minúsculas Ctrl+UL Pasa la Selección a mayúsculas

En tanto, las funcionalidades de control de línea son simples: Ctrl+b Justidica párrafo desde la columna Ctrl+y Borra la línea Ctrl+OC Centra la línea

Como nota final, como funcionalidad avanzada, podremos hacer uso de expresiones regulares para editar texto a través de scripts. Asimismo, podremos leer el manual de moe para usos más avanzados de moe.



01 february 2023

Cómo juego Speed Dreams II en Ubuntu?

En la inauguración del Autódromo 17 de Octubre y en ocasión de la largada del "Segundo Gran Premio del General Juan Perón y de la Ciudad de Buenos Aires", Juan Perón enseña cómo instalar el juego de carreras Speed Dreams 2 en Ubuntu.

¡Descamisados!

Que diáfano día para este espectáculo del motor, que tiene como máximos protagonistas a nuestros corredores, y las visitas de las máximas luminarias extranjeras. Donde antes no había sino pastos crecidos, hoy se eleva este magnífico autódromo

Es indudable que el mundo de nuestros días está viviendo un intenso período de evolución que va transformando el concepto de la vida moderna. No comprender esto y no propender a ello en lo político, en lo social, en lo económico, en lo cultural, etc., es colocarse nadando en contra de la corriente.

En lo político, las nuevas formas llevan hacia un socialismo nacional con el apoyo de los grandes movimientos nacionales como los que se pueden ya observar en toda Europa, Asia, Medio Oriente, África, etc. La reacción, que aún resiste a la evolución indetenible, está echando mano al neocapitalismo, como una forma transaccional para no ceder, pero ese remedio les resultará a la larga peor que la enfermedad.

En lo económico, casi todo el mundo civilizado ha emprendido ya el camino francamente comunitario. El individualismo liberal capitalista es un lujo que ya no se puede dar un mundo superpoblado y, en lo social, todo se encamina hacia comunidades más acordes con las necesidades de los pueblos y los hombres de hoy. Oponerse a todo esto es poner palos en la rueda a un progreso que - con oposición o sin ella - insoslayablemente ha de pasar bajo la bandera a cuadros.

Hoy cualquier red de datos que hemos tendido para las computadoras del Pueblo nos parecen una pista de Fórmula Uno, y cualquier cablemódem nos avala correr a través de ella como si dirigiésemos un monoposto de Ferrari o Mercedez Benz.

Sin lugar a dudas esto se debe al sistema GNU, que puede hacernos diponer de simuladores de vehículos y que para colmo pueden enlazarse entre sí por medio de conexiones de datos.

Podrán descargar la versión 2.3.0 disponible en empaquetado precompilado AppImage.

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

mkdir ~/.speed-dreams/ cd ~/.speed-dreams/ ; wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-2.3.0-x86_64.AppImage ; wget https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Speed_Dreams_Icon.svg/48px-Speed_Dreams_Icon.svg.png chmod +x speed-dreams-2.3.0-x86_64.AppImage; sudo speed-dreams-2.3.0-x86_64.AppImage /usr/bin/speed-dreams

Conforme termine de realizarse toda esta tarea, y de descargar los 1,9GB de la imagen binaria, podremos ejecutarlo introduciendo el comando speed-dreams, o bien lanzándolo desde Aplicaciones / Juegos / Speed Dreams 2.

El menú inicial el bastante completo y muy típico de estos juegos de simulación de conducción.

Cada corredor puede tener su perfil de preferencias en el juego, que nos permiten ajustar distintos estilos y sapiencias de conducción, desde una sencilla hasta la más complejas. Naturalmente esto hará caso al nervio y el despliegue de pontencias erogadas por el motor simulado, transmitida al piso virtual.

Para el arte de la conducción puede utilizarse tanto el teclado como - idealmente - algún controlador con volante, palanca de cambios y tres pedales, incluso con motor de resistencia ("force feedback). En ambos casos se puede configurar desde la pantalla de Control, asignada a cada perfil de jugador.

Para realizar cambios de marcha con embrague estoy usando w como embrague, y q o e para rebajar o subir la marcha. De esta forma podremos embragar y rebajar con un rápido w+e, y subir de marcha con w+q. Debemos tener especial cuidado en las configuración de carrera compleja, para no romper la caja de cambios. Podremos así tener la muñeca del chueco.

Naturalmente, es posible utilizar coches con caja secuencial, lo que facilita la cosa al embragar automáticamente con solo una tecla para pistear como un campeón.

Los botones 1-9 activan y desactivan los distintos ítems de presentación de la pantalla.

Podremos conmutar el indicador de marchas, el tacómetro lumínico, el porcentaje de grip de cada cubierta así como temperatura de pastillas de freno, así como un acelerómetro axial, etcétera. Todo confabula una excepcional simulación.

Speed Dreams II cuenta con varios motores de simulación de la física de coches de carreras. En particular, la versión 4 de estos motores es más compleja, pues computa la tenida al piso de las cuatro ruedas en base a su fricción, así como las cargas gravitacionales de los giros y la aceleración. Los circuitos tridimensionales permiten entonces la alta velocidad pero también la tracción diferencial sobre distintas superficies.

Naturalmente, para llegar a buen destino debemos contar con buena muñeca.

Pero, si todo lo anterior es ineludible, lo racional será realizar la evolución en su medida y armoniosamente, porque nada se realiza en la vida de los pueblos en compartimientos estancos, ni al servicio de las parcialidades interesadas. Cuando la evolución se impone, el juego de acciones y reacciones está decidido de antemano: es necesario entonces que la comprensión se produzca para evitar males mayores.

Si tenemos muchas ganas, en lugar del caso anterior podríamos querer compilar el código de Speed Dreams 2. En este caso es un menester que puedo recomendar sólo si deseamos la inclusión de recursos adicionales (autos y circuitos). Para compilarlo en lugar de lo anterior usaríamos:

mkdir /tmp/speed-dreams2/ ; cd /tmp/speed-dreams2/ ; wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-base-2.3.0-r8786.tar.xz ; wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-hq-cars-and-tracks-2.3.0-r8786.tar.xz ; wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-more-hq-cars-and-tracks-2.3.0-r8786.tar.xz ; wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-wip-cars-and-tracks-2.3.0-r8786.tar.xz ; wget https://sourceforge.net/projects/speed-dreams/files/2.3.0/speed-dreams-src-unmaintained-2.3.0-r8786.tar.xz ; wget https://sourceforge.net/projects/speed-dreams/files/3rd%20party/Sources/post-2.0.0/3rdParty-2.2-src.zip ; tar -xJf speed-dreams-src-base-2.3.0-r8786.tar.xz ; tar -xJf speed-dreams-src-hq-cars-and-tracks-2.3.0-r8786.tar.xz ; tar -xJf speed-dreams-src-more-hq-cars-and-tracks-2.3.0-r8786.tar.xz ; tar -xJf speed-dreams-src-wip-cars-and-tracks-2.3.0-r8786.tar.xz ; tar -xJf speed-dreams-src-unmaintained-2.3.0-r8786.tar.xz ; unzip post-2.0.0/3rdParty-2.2-src.zip sudo apt install build-essential cmake libopenscenegraph-dev freeglut3-dev libvorbis-dev libsdl2-dev libopenal-dev libenet-dev libexpat1-dev libjpeg-dev libplib-dev libpng-dev libcurl4-openssl-dev libsdl2-mixer-2.0-0 ; mkdir build/ ; cd build/ ; cmake -D CMAKE_PREFIX_PATH:STRING=/usr/local \ -D OPTION_OFFICIAL_ONLY:BOOL=ON .. ; make ; sudo make install

...y ejecutamos con:

speed-dreams-2



31 january 2023

¿Cómo instalo Furnace Tracker en Ubuntu?

Invitado a una velada ofrecida por el Sindicato del Chiptune en el Teatro Colón, Juan Perón expone cómo instalar y utilizar el Furnace Tracker en Ubuntu.

¡Distinguidas damas y caballeros!

Es esta una ocasión espléndida que nos engalana, pues esta remodelada casa de la cultura - donde antes sólo accedía el oligarca - recibe esta hoy a los legítimos representantes del Pueblo.

La encomiable labor del Sindicato del Chiptune ha hecho aquello de llevar en mis oídos la más maravillosa música, que es aquella sintetizada con ondas FM. De esta forma no podrá soslayarse la construcción histórica que hacen de los sintetizadoresa aditivos y sustractivos pone en relevancia a la vanguardia mundial de la retro-scene.

La labor que ejerzo como Conductor me ha colmado de grandes satisfacciones, entre ella la de proveer a nuestras Organizaciones con el más completo herramental libre que puede anhelarse para la producción musical. Ya desde el Estatuto del Chiptune he enseñado cómo disponer de SchismTracker, MilkyTracker, e incluso el QasarBeach IIz, la máquina de ritmos Hydrogen, el secuenciador FamiStudio e incluso el excelente Dexed y el multipista qtractor con instrumentos virtuales para dejar operativo todo en un sistema que por gratuito no puede dejar de gozar de todo el amor de un Pueblo.

Como si esto fuese poco, me complace hoy anunciar lo que tal vez sea el pináculo del género Tracker, un programa liberado bajo GPLv2 concebido por el compañero ~tildearrow. Se trata de Furnace, completísimo editor y reproductor de pistas musicales sintetizadas que cuenta con todas las funcionalidades de esperar para esta rama del Arte.

La característica que lo corona - sin embargo - es permitir una fiel formulación del más amplio espectro de microcontroladores y chips sonoros del Primer Peronismo.

Con sólo revistar someramente los más de 50 chipsets sonoros nos permitirá apreciar que nos encontramos frente a un verdadero emporio del chiptune, uno que nos permitirá florearnos con todas las gradaciones de la paleta sónica sintetizada.

Hallaremos en él los excelentes sintetizadores de factura japonesa, dispuestos para utilizarlos en GNU. Yamaha nos acerca sus YM2151 (OPM), YM2203 (OPN), y YM2413 (OPLL). También el YM2414 (OPZ), consagrado en su teclado DX7 y enel correspondiente módulo TX81Z, así como los YM2608 (OPNA) exprimidos en la oriental computadora PC-98. En tanto los YM2610 (OPNB) de la consola Neo-Geo, los YM2610B (OPNB2), y YM2612 (OPN2) de la Sega Genesis y la estación de trabajo FM Towns, el YM3526 (OPL) lustrado en el inconseguible C64 Sound Expander, aunado a los míticos YM3812 (OPL2) de la AdLib y YMF262 (OPL3) de la SoundBlaster Pro (con soporte de 4 operadores) nos hacen más que proponer constituirnos un vínculo de unión que recuerde la lúdica del video-juego añorado.

La lista de la fabricante nipona cierra con el Y8950 (esencialmente el OPL con modulación digtal de código de pulso ADPCM, sumamente utilizada en fichines). Pero no solo eso, contaremos con varios generadores de onda cuadrada que no llegaban a estos estándares pero suplían los altavoces de varias máquinas clásicas orientadas al consumo rata, entre ellos el AY-3-8910/YM2149(F) utilizado en varias computadoras y consolas, el tímido Commodore VIC desplegado en la VIC-20, el Microchip AY8930, el Texas Instruments SN76489 de la Sega Master System y la BBC Micro, y porqué no hasta una emulación del chillón PC Speaker, así como el Philips SAA1099 de la SAM Coupé y el OKI MSM5232 de algunas placas de arcades conurbánicas.

Entre los chips con propiedades de muestreo digital contaremos con los incluidos en el SNES, el Amiga, el SegaPCM (con todos sus 16 canales), el Yamaha YMZ280B (PCMD8), y el famoso Ricoh RF5C68 desplegado en las Sega CD y FM Towns de alta gama. Naturalmente los OKI MSM6258 y MSM6295, Konami K007232 de los fichines tops, así como el Irem GA20 y el Ensoniq ES5506.

Entre los chips de tabla de onda, encontraremos la posibilidad de muestrear a través de réplicas de HuC6280 utilizado en la PC Engine, el Bubble System WSG y los SCC/SCC+ de Konami, los chips de sonido WSG, C15 y C30 de Namco, el WonderSwam, Seta/Allumer X1-010 y el Sharp SM8521.Notablemente, no contaremos con el EMU de la SoundBlaster AWE-32.

Pues bien señores, ni siquiera tenemos que pagar una entrada; la manera más simple y veloz de contar con Furnace en Ubuntu es descargar una imagen pre-compilada ejecutable destinada a sistemas operativos GNU con Linux. Cualquier nimio podrá hacer esto abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente bloque de Comandos de Organización:

mkdir ~/.furnace/ ; cd ~/furnace/ ; wget https://github.com/tildearrow/furnace/releases/download/v0.6pre4-hotfix/Furnace-0.6pre4-hotfix-x86_64.AppImage ; chmod +x Furnace-0.6pre4-hotfix-x86_64.AppImage

...acto seguido podría crearse un lanzador, o bien ejecutarlo directamente con el comando:

./home/$USER/.furnace/Furnace-0.6pre4-hotfix-x86_64.AppImage

Sin embargo, es justo que todos compilen al menos lo que ejecutan. Aunque compilar lleve algo mas de tiempo, constituye un procedimiento que se realiza por única vez, y en este caso nos proveerá con una instalación más actualizada y completa. Si optamos por este método, debemos descargar el código fuente y compilarlo pegando en la terminal el siguiente bloque de Comandos de Organización: sudo apt install wget git cmake libpulse-dev libx11-dev qjackctl libasound2-dev libgl-dev ; cd ~ ; git clone --recursive https://github.com/tildearrow/furnace ; cd ~/furnace/ ; mkdir build ; cd build ; cmake .. ; msbuild ALL_BUILD.vcxproj sudo make install ; cd ~ ; mv ~/furnace/ ~/.furnace/ ;

Tras escasos minutos será posible correr el programa desde Aplicaciones / Sonido y Video / Furnace.

La interfaz gráfica de Furnace Tracker consiste en ventanas funcionales ajustables, cuya estructura pueden moverse o dimensionarse desde los pequeños triángulos azules de las esquinas, así como acoplarse de distintas maneras para conformar el área de trabajo como más nos guste.

Su uso replica en cierta medida al de los editores musicales tipo FastTracker, y requiere un nivel elevado en la sapiencia del tratamiento de la síntesis musical. Aún así, lo encontraremos notablemente logrado para acomodar todas su funcionalidades de una forma intuitiva.

En la parte superior destacarán los típicos controles en forma de botones para Reproducir, Detener, Pausar, Avanzar y Retroceder. Estos servirán para poder ejecutar una pieza ya realizadas. También contaremos con un vúmetro vertical estéreo. Hemos de saber que si compilamos el programa, este contará con una biblioteca de canciones de demostración para distintas plataformas, situadas en el directorio ~/.furnace/demos. Estas nos permitirán analizar su desempeño y sonido.

Sin embargo, poco sería el sentido de tan maravillosa interfaz si no se nos permitiese desplegar técnica y teoría a la hora de componer secuencias que formarán las canciones; es en este aspecto donde Furnace brilla.

Contaremos en su ventana principal con la tabla de patrones y secuencias. En primera instancia, se nos permitirá programar eventos musicales a nivel individual al estilo de otros trackers, y la segunda estructurarlos para conformar la melodía.

Para introducir las notas en la tabla de patrones debemos crear un patrón con Insertar y luego actuar con la barra espaciadora para agregar a mano los eventos (notas), si tal es la técnica que favorecemos. Más práctico puede ser presionar el botón Grabar y usar el teclado para digitarlas.

Los comandos de edición de eventos son útiles, y no dejan de ser corrientes:

Ctrl+x: corta Ctrl+c: copia Ctrl+v: pegar Ctrl+z: Deshacer Ctrl+y: Rehacer Ctrl+a: Seleccionar todo

Furnace no es ajeno a la la preferencia de algunos trabajadores, que gustan de editar "al solfeo". Esto es, seleccionar una nota individual o bien fraseos (eventos en grupo), para modificar su altura tonal hasta encontrarle la vuelta. Para ello con Ctrl+F1/Ctrl+F2 bajamos/subimos un semitono, y con Ctrl+F3/Ctrl+F4 bajamos/subimos una octaava respectivamente.

Sin embargo, lo más efectivo para quien tiene manos suele ser utilizar un controlador MIDI USB, lo que facilita la ejecución.

Indudablemente, el aspecto más llamativo y diferenciador es su Editor de Instrumentos, donde podremos abarcar la definición de conjuntos de paleta sonora a implementar, según los chips de sonido previamente referidos.

Podremos disponer el grupo de chips de síntesis FM ante mencionados, los chips por tabla de ondas (capaces de secuenciar muestras de audio cortas), o bien los más limitados generadores de pulso. De acuerdo a los mismos, contaremos con distintos canales coloreados en la lista.

En el caso de los primeros, se nos permitirá incluso ajustar los operadores de la síntesis de FM a través de sus operadores de sonido (tren "oscilador/es+filtros"). En particular, encontraremos los trenes sónicos de los operadores independientes provistos en los chips Yamaha (generalmente permiten el manejo osciladores de baja frecuencia, sus envolventes ADSR, y variar grandemente programas algorítmicos aditivos utilizados, un detune fino y grueso, etc).

Todo esto, ajustado según presets pero también con microajustes manuales, es lo que permite programar - por fin - un sintetizador aditivo de forma efectiva, a años luz del incómodo panel LCD del DX7 o los trackers originales.

En lo que hace a las simulaciones de chips con tabla de ondas de audio digital, podremos alterarlos haciendo clic en Sample/Editor. Este editor de muestras se nos presentará relativamente básico, pero adecuado a la estética chiptuner nos permitirá alterar frecuencias de muestreo, filtrado de las mismas, así como volumen, aplicar barridos de resonancia, etcétera. Los cambios no se aplican en tiempo real sino diferido, pero estos pueden deshacerse y rehacerse con facilidad.

Asimismo contaremos con aplicadores de Macros. Los macros definen realmente secuencias pre-programadas de valores paramétricos. Con ellos será factible alterar fácilmente arpegiados enloquecidos del synthwave, barridos de frecuencias, alteraciones tonales, modulaciones, etcétera, y todo siguiendo la rítmica sin tener que controlar eventos individuales.

Contaremos con osciloscopios de forma de onda de estilo FastTracker para las muestras en los canales de síntesis, que se suman al vúmetro general.

El tren de efectos persigue modismos retro, con carisma hexadecimal, el cual no suele ser muy intuitivo salvo para programación musical vikinga "a hueso pelado". Se encuentran explicitados en el manual en línea del programa (parcial).

Cualesquiera que sean los temperamentos que nos traiga el corazón, los chips emulados de Furnace permitirán darles dulce respuesta, una merecedora de una estruendosa ovación de pié y un sampleo de un "¡Viva Perón!".



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 --purge firefox ;

wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null ;

gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print "\n"$0"\n"}' ;

Deberíamos obtener la firma de repositorio "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3", que confirma su autenticidad.

echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null ;

echo ' Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000 ' | sudo tee /etc/apt/preferences.d/mozilla

E instalamos el navegador desde el repositorio oficial de paquetes de Mozilla:

sudo apt update ; sudo apt install firefox

Con esto se descargarán los paquetes del repositorio Oficial de Mozilla.

Repositorio Mozillateam PPA

Durante un tiempo, el repositorio hobbista semioficial era el PPA Mozillateam. Seguir este temperamento ya no es necesario, y queda sólo a recuerdo histórico del repositorio mozillateam. Los antiguos comandos eran estos:

sudo add-apt-repository ppa:mozillateam/ppa -y sudo apt update sudo apt install -t 'o=LP-PPA-mozillateam' firefox firefox-locale-es

Para darle prioridad al antiguo repositorio PPA Mozillateam sobre el Snap de Canonical, se editaba el fichero de configuración con:

sudo nano /etc/apt/preferences.d/mozillateamppa

...y al fichero de configuración que se nos abría le pegábamos 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

Opcionalmente podremos crear o modificar los accesos directos o lanzadores al mismo, para que funcionen en lugar de los de los infames Snaps. Para ello hacemos clic sobre el lanzador y elegimos Propiedades. En la versión snap el comando de inicio del ícono se indica como "env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/firefox_firefox.desktop /snap/bin/firefox %u". Simplemente hemos de reemplazar esto con "/usr/bin/firefox %u".

Ya podremos iniciar Firefox haciendo clic en el acceso directo. Si vamos a Propiedades / Acerca de Firefox, debería indicarnos que es el Firefox para Debian.

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, mien