viernes, 22 de abril de 2022

¿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-ntp no

...y luego lo volvemos a activar:

timedatectl set-ntp 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

jueves, 21 de abril de 2022

Se lanza Ubuntu Mate 22.04LTS "Jammy Jellyfish"

Se ha lanzado la última versión de soporte a largo plazo de Ubuntu MATE, la versión 22.04LTS "Jammy Jellyfish".

Esta versión de Ubuntu cuenta con el escritorio Ubuntu Mate 1.26.1, el escritorio moderno y liviano inspirado en el clásico Gnome 2. Por defecto viene con el lanzador en el lateral izquierdo. 

Naturalmente, se puede dejar activo en el panel superior u otros esquemas, ya que el programa MATE Tweak cuenta con Familiar, Mutiny, Redmont, Cupertino, Traditional (un favorito), Contemporary y Pantheon. La opción Mate-netbook ha sido removida.

Este trae el tema Yaru, con 12 colores, y los clásicos Ambiant y Radiant ya no se instalan por defecto, pero los podemos instalar con:

sudo add-apt-repository ppa:lah7/ambiant-mate ;
sudo apt update ;
sudo apt install ambiant-mate-colours-all

El soporte del composting de escritorio Compton fue abandonado en lugar de Picom, una nueva propuesta. Acompañando al kernel Linux 5.15 se encuentran Firefox 99.0, Celluloid 0.20, Evolution 3.44 y LibreOffice 7.3.2.1.

Se podrá descargar desde aquí o descargar su Torrent aquí.

Se lanza Ubuntu 22.04LTS "Jammy Jellyfish"

Se ha lanzado Ubuntu 22.04LTS "Jammy Jellyfish", la versión Oficial de Ubuntu. Esta versión contará con 5 años de soporte extendido, lo que la garantiza como una versión digna de instalar.

Ubuntu 22.04LTS se distribuye con el escritorio basado en GNOME 42, que por fin incorpora nuevos estilos animados para acomodar las ventanas automáticamente en el plano horizontal, junto con acentos coloridos para la interfaz de usuario (incluye modo oscuro).

Entre los cambios se encuentran un nuevo capturapantallas (incluye tomas en video), que permite delimitar zonas. Su kernel es el Linux 5.15.

Los íconos de escritorio ahora se muestran en un botón en la parte inferior izquierda por defecto, pero tal opción puede personalizarse desde el Ubuntu Dock desde Configuración / Apariencias.

La actualización también podrá realizarse por medio de las actualizaciones cuando esté disponible. Si bien la fecha donde la misma se publica aún no ha sido informada oficialmente, esta suele darse unos cuatro meses después de lanzada el instalador.

Puede descargarse el ISO de 64 bits para armar un pendrive o DVD "vivo" desde aquí, o bien desde su torrent oficial.

Por primera vez también se encuentra disponible para la arquitectura Raspberri Pi 4, de la cual se requiere la versión con 2GB o superior.

martes, 19 de abril de 2022

¿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

Package: firefox
Pin: version 1:1snap1-0ubuntu2
Pin-Priority: -1

' | sudo tee /etc/apt/preferences.d/mozilla

(nota: en el caso de Ubuntu 24.04LTS es Pin: version 1:1:snap1-0ubuntu5)...

Finalmente 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 indicaba como "env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/firefox_firefox.desktop /snap/bin/firefox %u". Simplemente hemos de reemplazar esto con el arrancador de la versión Debian: "/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!

sábado, 9 de abril de 2022

ARSAT brindará Internet a todas las escuelas públicas de Argentina

La empresa de telecomunicaciones del Estado, Arsat, firmó este jueves un convenio marco con el Ministerio de Educación de la Nación para la puesta en marcha de un plan de conectividad integral que proveerá de Internet a la totalidad de las escuelas de gestión pública del país y que demandará una inversión de 400 millones de dólares.

El acuerdo rubricado entre el presidente de la compañía, Matías Tombolini y el ministro Jaime Perczyk, tendrá lugar durante la reunión del Consejo Federal de Educación que se realizará este jueves en Ushuaia y contará con la presencia de los ministros de educación provinciales, autoridades locales y educativas, según indicó un comunicado oficial.

El nuevo plan tendrá una duración de tres años para brindar conectividad a un total de 42.630 escuelas públicas distribuidas en todas las provincias de Argentina.

En la actualidad el 62% del total del alumnado está en condiciones de acceder a la conectividad en sus edificios escolares, el plan tiene como meta llegar a dar cobertura al 100% lo que representa acceso digital para unos 9.700.000 de alumnos de todo el país.

La solución integral que implementará ARSAT se desarrollará mediante una actualización de la infraestructura tecnológica existente y la correspondiente ampliación de la misma, además de la utilización de conectividad satelital (Banda Ka y Banda Ku) y el sistema integrado de conectividad terrestre (Refefo).

Además, la empresa de telecomunicaciones del Estado Nacional tendrá a su cargo la gestión integral del proyecto, su monitoreo y almacenamiento.

martes, 5 de abril de 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.

jueves, 17 de marzo de 2022

¿Cómo utilizo TOPS-20 "TWENEX"?

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.

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.

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 <LOGIN>

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

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 <ESC> también)
CTRL-T Presenta el Status del trabajo
CTRL-\ Cuando ejecute el comando 'LOGOUT' use esto para cerrar la sesión TELNET.

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:<~>@ 

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

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

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:<USUARIO>*.*.*

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

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.

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

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.

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

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.

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

SOS es el editor de líneas Son Of Stopgap. Para obtener ayuda de un comando tipea “H,<nombre del comando>”. 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

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.

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.

* PARA ARCHIVOS:

   OCTAL   PROPIEDAD
   --------------------
      77   ACCESO TOTAL
      40   LECTURA
      20   LECTO-ESCRITURA
      10   EJECUCIÓN
      04   INCLUIR
      02   LISTAR
      00   SIN ACCESSO

* PARA DIRECTORIOS:

   OCTAL   PROPIEDAD
   --------------------
      77   ACCESO TOTAL
      40   LECTURA
      10   CONEXIÓN
      04   CONSTRUIR
      00   SIN ACCESO

Las PROTECCIONES están agrupadas juntas en un conjunto de 3, y corresponde a:

   @SET DIRECTORY PROTECTION <LOGIN> 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 <LOGIN>, 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:

- No aparezca en un listado de directorio - No sea legible incluso si conoce su nombre. - Sea agregable a todos los usuarios

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

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 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:maclisp

InterLISP

@ define interlisp: ps:<interlisp>
@ interlisp:lisp

C Lisp

@ <clisp>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.