martes, 19 de diciembre de 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.

jueves, 14 de diciembre de 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 <<EOM >$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 <<EOM >$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:

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 <<EOM >$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í.

lunes, 27 de noviembre de 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" ;

viernes, 17 de noviembre de 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:

fc-cache -frv ;
sudo apt update ;
sudo apt install git xutils-dev libmotif-dev xfonts-terminus fonts-liberation ;
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 esto, lo emparchamos opcionalmente para que acepte letras Freestyle:

cp ~/.Xdefaults ~/Xdefaults.bak
echo '' >>
~/.Xdefaults ;
echo '!Xft.dpi:  86'  >> ~/.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: 14' >> ~/.Xdefaults ;
echo '! *XmText*renderTable: fixed' >> ~/.Xdefaults ;
echo '! *XmTextField*renderTable: fixed' >> ~/.Xdefaults ;
echo 'gophervr*XmText*renderTable: fixed' >> ~/.Xdefaults ;
echo 'gophervr*XmTextField*renderTable: fixed' >> ~/.Xdefaults ;
echo 'gophervr*renderTable: fixed' >> ~/.Xdefaults ;
echo '' >> ~/.Xdefaults ;
xrdb ~/.Xdefaults ;

echo '##agregado para las fuentes de gophervr' >> ~/.xsession ;
echo 'xset +fp /usr/share/fonts/misc' >> ~/.xsession ;
echo 'xset fp rehash' >>
~/.xsession

cd ~/gopherVR/ ;
wget -O xft.patch https://termbin.com/uz2b
git stash;
git reset --hard;
make clean ;
git apply xft.patch

Y lo compilamos con:

cd ~/gopherVR/ ;
make linux

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/ ;

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 Aplicaciojnes / 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.

domingo, 29 de octubre de 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 testigos 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.

martes, 24 de octubre de 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).

...o bien por telnet, con

telnet hactrn.org 10003

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


 

...o - desde telnet - el siguiente mensaje:

Connected to hactrn.org.
Escape character is '^]'.


Connected to the KA-10 simulator MTY device, line 1

Una vez presentados este "lobby" electrónico que nos invita a activar un terminal, debemos activarla presionando la tecla F1 (o Ctrl+z si usamos Telnet) 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). 

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

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).

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

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.