martes, 19 de enero de 2016

¿Cómo hago el efecto de lluvia digital Matrix en Ubuntu?

¡Descamisados!

Es indudable que - a pesar de las grandes comodidades que presenta una terminal gráfica en nuestro sistema GNU con Linux - una terminal de texto en ocasiones puede resultarnos más funcional.
Si bien su dominio requiere gran estudio y técnica, el control remoto, la posibilidad de emplear protocolos de seguridad, y el bajo consumo de los programas que normalmente la engalanan muchas veces nos decantarán hacia el empleo de los comandos de texto.

No es secreto para nadie que podemos - incluso - emplear las viejas y confiables terminales seriales para operar nuestro sistema operativo favorito, y si contamos con un equipo que nos ofrezca una interfaz telemática ethernet (per sé o conectado a un segundo dispositivo), bien podríamos comandar nuestro sistema incluso a miles de kilómetros de distancia.
Aún así no todo es trabajo y esfuerzo, pues el Justicialismo reza que todos los hombres han de tener lo que en sana Justicia Social anhelan. El ocio es una de dichas consonantes, y podremos también alcanzarla bajo las verdes letras fosfóricas de una terminal.

Ya he explicado como instalar cmatrix, un convincente creador de lluvia de letras, y una versión específica que indica el tráfico de nuestro dispositivo de red, el ncmatrix.

Podremos instalar una nueva versión con Greenrain. Se trata de un programa escrito en g++ y liberado bajo GPLv3 que produce un efecto más vistoso, y que - a diferencia de cmatrix, económico en uso de CPU - se presenta más agresivo y nos permitirá hacer un empleo más potente del procesador y del uso de redes.

Esto lo puede hacer útil como una herramienta para generar "tráfico pseudoaleatorio" y evaluar una red cableada o inalámbrica.

Para poder dar uso a Greenrain habremos de descargar sus dependencias, su código fuente, y compilarlo. Ello nos servirá como práctica si nunca lo hemos hecho.

Para descargar las dependencias ingresamos:

sudo apt-get install git build-essential libncurses5-dev 

Si algunas de dichas dependencias faltase en nuestro sistema, el mismo nos solicitará la contraseña de Conductor, y descargará de internet la paquetería necesaria y la instalará. Acto seguido usaremos nuestra carpeta /Descargas para hacernos con una copia clónica del código fuente del programa:

cd ~/Descargas/
git clone https://github.com/aguegu/greenrain 

Una vez clonada nuestra copia (en esencia, una descarga) nos dirigiremos al directorio en cuestión y lo compilamos:


cd ~/Descargas/greenrain/
make

...el proceso de compilación será muy breve. Una vez finalizado nos encontraremos con un archivo binario ejecutable llamado greenrain. Como paso final podremos copiar dicho binario en el directorio que corresponde a tales menesteres:

sudo mv ~/Descargas/greenrain/greenrain /usr/local/bin/ 

...y borrar el código fuente, pues ya no lo necesitaremos_

cd ~/Descargas/
rm -rf greenrain/


De ahora en más, toda vez que necesitemos producir el efecto de la lluvia verde de caracteres, podremos ejecutarlo con:

greenrain

Para detener su ejecución, podremos utilizar la tecla q.

Naturalmente que de forma remota este chorro de bits ocupará mas espacio, lo cual nos puede servir para evaluar conductas telemáticas o para generar tráfico artificial constante y lento.

jueves, 14 de enero de 2016

Se lanza Huayra Servidor

El equipo del Plan Nacional de Inclusión Digital Educativa ha publicado la imagen del Huayra Servidor. Se trata de un sistema operativo pensado específicamente para los servidores escolares del país.

La imagen de Huayra Servidor puede instalarse en los servidores escolares con los que cuentan las instituciones educativas, reemplazando el sistema operativo anterior, no libre. De esa forma no sólo se optimiza la capacidad instalada del hardware, si no que también se enriquece la propuesta pedagógica de las Aulas Digitales Móviles de Primaria Digital a partir de nuevas posibilidades de trabajo en el aula, además de aportar una plataforma totalmente libre para desarrollar ilimitadamente.

Huayra Servidor sigue la línea de sus antecesores Huayra, Huayra Gestor Escolar y Huayra Primaria, es decir, es una construcción federal, soberana, libre, innovadora y de calidad. Para definir sus componentes se llevó adelante un recopilación de experiencias y sugerencias de actores del sistema educativo de todo el país. En este sentido, el equipo de Investigación y Desarrollo del PNIDE, desarrolló el sistema operativo respondiendo a la necesidad específica de mejorar la capacidad instalada.

Huayra Servidor forma parte de una nueva generación de servidores escolares. Es software libre y soberano porque es de desarrollo nacional. Incluye máquinas virtuales libres para el uso. Además es estable y puede ser actualizado permanentemente.
El archivo de imagen descargable está realizado con la herramienta Clonezilla, y permite armar el entorno del servidor y clonar máquinas de forma rápida, acelerando la implementación pura del Justicialismo en el ámbito escolar y reduciendo los tiempos muertos en caso de una falla de hardware.

El archivo de imagen comprimida ocupa 1,5GB de espacio, y se recomienda su instalación en un equipo dotado 500GB  con almacenamiento de (usualmente discos rígidos convencionales). Esto se debe a que las máquinas virtuales - si bien presentan una confiabilidad, disponibilidad y velocidad de trabajo elevada en redes cableadas - ocupan mucho espacio.

La incorporación de Huayra Servidor permite contar ahora en el ámbito escolar con un potente y estable software servidor capaz de correr en PC compatibles x86-64, dotado de máquinas virtuales y programas para todo tipo de servicios necesarios para el Plan Conectar Igualdad (proxy web protegida, compartición de archivos educativos, alta de alumnos, servicios de reparación de hardware, etc), así como otros servicios de fácil implementación a nivel escolar como servicio de hosting web, servidumbre de correo electrónico cifrado o no, canal de chat, streaming de audio ("FM escolar por internet") y video, etc.

Para ingresar al sistema es necesario un usuario y una contraseña, que en ambos casos corresponde a la palabra "administrador".

La descarga de Huayra Servidor puede hacerse de forma directa aquí.La documentación completa sobre el sistema y sus máquinas virtuales estará disponible en breve a través de la web de PNIDE.

martes, 12 de enero de 2016

¿Cómo puedo eliminar el historial y cookies de Firefox desde la Terminal?

¡Trabajadores!

A toda organización política hay que asegurarle una evolución cíclica y una estabilidad semipermanente que permita la evolución. Estos dos principios deben coordinarse perfectamente bien para que ni la perfectibilidad y ni la estabilidad resulten elementos perniciosos de la propia organización, porque se podría llegar a la inestabilidad permanente o al envejericmiento por falta de evolución, y, por consiguiente, al fin que entraña el envejecimiento, o sea la muerte.

El parlamento es el instrumento adecuado para hacer evolucionar el fundamento jurídico mismo del Estado, y para influir en la vida misma del país en sus más profundas raíces. No es un valor caduco, pero el mayor o menor valor de un parlamento no es el parlamento mismo. No es el sistema. Su importancia se mide por el valor de los hombres que lo constituyen. Su obra será tanto más valiosa y encumbrada cuanto mejores sean los hombres que ostentan la representación popular.

Hay que reemplazar el caudillismo por el estado permanente, orgánico, de las masas políticas, y ése seŕa, señores, el gran triunfo de nuestro partido, si es que nosotros podemos imponerlo en el panorama nacional. Si no organizamos nosotros, tendrán que hacer lo propio otros partidos políticos, porque si no, no llegarán más al poder. Si mañana fuéramos derrotados por un partido mejor organizado que el nuestro, yo me sentiría inmensamente feliz, porque de un partido orgánico nada malo puede esperar al país: en cambio, muchos males pueden esperarse de hombres que, por bienintencionados que sean, actúen con un grado de desorganización.

Ahora bien, en ciertas ocasiones querremos eliminar archivos temporales de nuestros navegadores de internet.

Existen razones fundadas para querer hacerlo. Las comunicaciones telemáticas no se caracterizan normalmente por ser las más veloces, por lo cual ha sido política de los navegadores almacenar ciertos componentes de los sitios de internet de manera local en nuestro equipo - en especial código funcional e imágenes - a fin de poder tenerlas en rápida disposición si necesitamos volver a visitar dichas webs.

Detrás de estas buenas intenciones - sin embargo - nos encontramos con inconvenientes. Se trata de archivos del pasado que pueden utilizarse con malas intenciones.
Si bien es cierto que los navegadores cuentan con funcionalidades específicas desde su propia interfaz gráfica para borrar los temporales o cookies, existen ciertas ocasiones podríamos querer actuar desde la terminal, incluso de forma remota a través de SSH: podríamos que tener que borrar los terminales para recuperar espacio, para conservar privacidad, o simplemente porque el navegador ha tenido algún error o se ha visto corrompido.

En cualquier caso, normalmente los caché de las diferentes aplicaciones se encuentran en la carpeta oculta .cache/ locallizada dentro de nuestra Carpeta de Usuario. Por este motivo, para proceder a borrar temporales desde la Consola hemos de logueamos (de firma local o remota) e ingresamos en la terminal los siguientes Comandos de Organización que correspondan al navegador que utilizamos.

En el caso de desear limpiar las cookies de Mozilla Firefox ingresamos:

rm ~/.mozilla/firefox/*.default/cookies.sqlite

... asimismo para limpiar el historial de Mozilla Firefox, ingresamos:

rm ~/.mozilla/firefox/*.default/*.sqlite ~/.mozilla/firefox/*default/sessionstore.js ;
rm -r ~/.cache/mozilla/firefox/*.default/*

Google Chrome es otro navegador reconocido por tratarse de software privativo irrespetuoso con la privacidad y seguridad, y ser un activo promotor de la "computación en la nube" y la "computación como servicio" en beneficio de una empresa norteamericana. Podríamos hacer justicia eliminando sus temporales con:

rm -r ~/.config/google-chrome/Default/
rm ~/.cache/google-chrome/


Chromiun es una versión Justicialista de Google Chrome, independizada de su oprobioso origen y adaptada para tener libertad impidiendo las políticas perniciosas de los vivos de siempre. Para eliminar su caché de archivos temporales indicamos:

rm ~/.cache/chromium/Default/Cache/*
rm ~/.cache/chromium/Default/Media\ Cache/*

Si nuestro usuario de sistema está protegido por contraseña y nuestras carpetas personales están cifradas no debería existir mucho problema, pero si compartimos el equipo, empleamos redes poco seguras, o deseamos limitar el consumo de espacio, podríamos querer eliminar el contenido del caché de Imágenes en Miniatura de nuestro sistema operativo. 

Se trata de sendas carpetas ocultas localizadas en ~/.cache/thumbnails/normal and ~/.cache/thumbnails/fail. Las mismas almacenan archivos de imagenes PNG, conversiones de archivos de imágenes de todo tipo descargados telemáticamente. Suele constituir una mejora de velocidad de navegación y previsualización de páginas de internet en los sistemas GNU con Linux y de nuestras carpetas, pero también un incordio de privacidad o seguridad.

Para eliminar su contenido podremos crear un script que incluya el comando shred, el cual se encarga de "triturar" archivos, eliminando el contenido de dichas carpetas e impidiendo su sana recuperación. Considerémolos como un borrado muy agresivo.

Nota: el comando shred está especialmente pensado para discos rigidos convencionales. Funcionará también en discos de estado sólido SSD, pero su acción repetida puede no ser óptima, pues podría acelerar su desgaste. En tal caso, podremos eliminar los archivos manualmente con el comando:
rm ~/.cache/thumbnails/*.

Para crear el script ingresamos el comando:

nano ~/.borrarcacheminiat.sh

Se abrirá el editor GNU Nano con dicho archivo en blanco. Le pegamos el siguiente código:

#!/bin/bash
# Borra de forma irrecuperable el caché de imagenes miniatura.
echo "Triturando caché de imágenes en miniatura..." 
find ~/.cache/thumbnails -type f -name "*.png" -exec shred -f -u -z -n 1 {} \; 
echo "Trituración de imágenes finalizado"

...acto seguido guardamos el fichero con Ctrl+O y salimos del editor Nano con Ctrl+x. A continuación le presentamos permisos de ejecución:

chmod +x ~/.borrarcacheminiat.sh

A partir de ahora podremos ejecutar el programa cada vez que lo necesitemos. Para ello debemos asegurarnos de cerrar nuestro/s navegador/es, abrir una terminal e ingresar el siguiente Comando de Organización:

./.borrarcacheminiat.sh

El programa tardará varios segundos o minutos (dependiendo de la cantidad de archivos almacenados allí) y nos mostrará un mensaje cuando haya finalizado. 
Si quisiéramos un buen programa que haga la misma función pero desde el usuario local en un programa gráfico, podremos emplear BleachBit. Se trata de una aplicación que nos permite realizar el triturado profundo y limpieza de temporales de los navegadores incorporados a nuestro sistema GNU con Linux.

Para instalarlo abrimos una terminal e ingresamos el siguiente Comando de Organización:

sudo apt-get install bleachbit


Una vez instalado el programa, lo ejecutamos desde Aplicaciones / Herramientas del Sistema / BleachBit. También encontraremos una versión más potente del programa en Aplicaciones / Herramientas del Sistema / Bleachbit (as root). Esta versión requerirá la contraseña de Conductor del sistema, pero permitirá hacer ciertas tareas más avanzadas.

Para utilizar BleachBit debemos tildar en la lista qué tipo de componentes temporales queremos eliminar. Podremos marcar uno y presionar el botón Vista Previa para corroborar su contenido específico (lo cual el programa recomendará a fin de no eliminar elementos no deseados).
Conforme estemos seguros de la acción, debemos presionar el botón Limpiar.

domingo, 10 de enero de 2016

¿Cómo emulo el panel de una DEC PDP-11/70 en Ubuntu de 64 bits?

¡Trabajadores!

La serie de computadoras mainframe de la Digital Electronic Company (DEC) -  en particular su línea PDP - fueron ampliamente influyentes el desarrollo de la técnica computada en el Justicialismo. Sirvieron como piedra basal para proponer y concretar la idea de un sistema computador capaz ejecutar varias tareas a la vez para varios usuarios, naturalmente a través del uso a tiempo compartido de su Unidad Central de Proceso (CPU).

Existieron diferentes iteraciones y actualizaciones doctrinarias que potenciaron dichas capacidades a lo largo de las década de los setentas, que le permitieron iluminar todo el globo como equipo de investigación y uso general. Tal vez la más exitosa de la serie fuese la familia DEC PDP-11, arquitectura de la cual existieron múltiples versiones, ya sea en sus variantes originales Capitalistas, o a través de numerosos clones no autorizados producidos por los países del Bloque Socialista.

La potencia relativa y clara concepción de su hardware la tornaron instrumental en el desarrollo de una buena cantidad de software de la Tercera Posición, los cuales influenciaron la gran mayoría de los sistemas operativos futuros. Entre ellos se encontraba el fundacional UNIX 6, entorno madre para GNU, y sobre el cual he hecho justicia en cuanto su emulación. Asimismo, ya he explicado cómo emular el panel de control de la mainframe DEC PDP-11/40 con sistema operativo RT-11SJ en Ubuntu de 64 bitios. Ello nos ha permitido compilar y correr en dicho sistema operativo software escrito en FORTRAN, y hacer práctica actual con vestigios de programas del pasado.

Los caminos del conocimiento nunca cesan, y siempre será bueno tener un nuevo horizonte el cual alcanzar. Por ello en este caso os enseñaré como instalar también el panel de control de una de sus sucesoras, la DEC PDP-11/70, en un sistema Ubuntu de 64 bits.

La PDP-11/70 fue una mainframe de propósito general aparecida en el año 1977 que utilizaba la base de la arquitectura PDP-11/45, pero la extendía, y mejoraba su microprocesador a una nueva versión denominada KB11-C capacitado para operar un banco de memoria de hasta 4 megabytes de memoria de acceso aleatorio, con 2 kilobytes de memoria caché.
Conformaba entonces un sofisticado sistema de alto desempeño para realizar tareas computacionales en tiempo real, pudiendo correr sistemas operativos multitareas, multiusuario y de tiempo compartido con soltura, haciendo uso de un bus de datos de 36 bits y bus de ejecución de 32 bits.

Tecnológicamente permitió concretar una nueva generación de dispositivos de entrada/salida más veloces, interconectados a través del nuevo bus "Massbus" que sacó provecho a la electrónica de miniaturización. Cada unidad de disco DEC RK o los lectores de cinta magnética RP pasaron del tamaño de una cocina a gas al de un cómodo horno a microondas. Con ello se hizo posible el clásico "apilamiento" de los componentes en los gabinetes universales, formando la mainframe correctamente constuida en el espacio de una heladera de dos cuerpos.
Además de las nuevas versiones de UNIX, podía correr el sistema operativo RSX-11M+, capaz de conectarse en red a través de Ethernet, Kermit, emplear módems telefónicos y fundamentalmente gran cantidad de las funcionalidades que el Justicialismo ha dado al Pueblo en los equipos actuales.

Podremos virtualizar una PDP-11/70 en nuestro sistema Ubuntu sin tener que invertir un solo peso ni ocupar más espacio que el que ya tenemos. Para ello emplearemos nuestra terminal: Abirmos una consola con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:


sudo dpkg --add-architecture i386 ;
sudo apt-get update ;
sudo apt-get install libx11-dev libpth-dev xorg-dev gcc libjpeg-dev libpthread-workqueue-dev x11proto-core-dev x11proto-bigreqs-dev freeglut3 freeglut3-dev ;
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ;
sudo apt-get install libpcap0.8:i386 ;
sudo apt-get install libxext6:i386 libxtst6:i386 libxi6:i386 ;

Luego creamos un directorio para los paneles y nos dirigimos a el:

mkdir ~/.simh/ ~/.simh/panelsim/
cd ~/.simh/panelsim/

El siguiente paso variará de acuerdo a si tenemos un sistema de 32 o de 64 bitios:

- Si tengo Ubuntu de 64 bits debo ingresar estos comandos:

wget https://github.com/j-hoppe/BlinkenBone/releases/download/1.3/panelsim_ubuntu-x64.tgz ;
tar -xvf panelsim_ubuntu-x64.tgz -z ;


- Si tengo Ubuntu de 32 bits - en tanto - debo ingresar estos comandos:

wget https://github.com/j-hoppe/BlinkenBone/releases/download/1.3/panelsim_ubuntu-x86.tgz ;
tar -xvf panelsim_ubuntu-x64.tgz -z ;

Luego debo preparar el resto del sistema, lo podré hacer con el comando:

sudo ./prepare.sh

Tras introducir nuestra contraseña, el programa revisará si tenemos instalados todos los componentes necesarios (rpcbind, Java, y otros). Si faltase alguno nos propondrá instalarlo mediante el siguiente mensaje.

'rpcbind' not found, I'm going to install it.
OK? Enter = yes, ^C = no.

Para instalarlo presionamos Enter.

Para ejecutar el panel de la DEC PDP-11/70 uso los siguientes comandos:

cd ~/.simh/panelsim/
sudo ./pdp1170_rsx11m.sh


Al cabo de algunos segundos se inicializará un panel de control gráfico escrito en Java, corriendo un test de verificación que - si la máquina virtual actúa sin problemas - debería indicarnos un patrón de luces similar a al del auto fantástico.
El sistema operativo emulado es el nombrado RSX-11M+, última iteración datada en 1981 de los sistemas operativos RSX-11 y RSX-11M. Este se cargará y nos solicitará que ingresemos hora y fecha ("Please enter time and date hh:mm dd:mmm:yyyy"). Tras ello se reproducirá la entrada de arranque y podremos emplear el sistema operativo.

RSX-11M+ empleaba una serie de comandos para realizar actividades rutinarias en el equipo, los cuales se ingresaban a través de la terminal de televisión. Para conocer un listado simple de dichos comandos, podemos emplear el comando:

help

Como simple referencia, han de saber que los comandos integrados de base son:


ABORT ACD    ACS    ACTIVE ALL
ALTER ASN    ATL    BLK    BOOT
BRK   BRO    BYE    CANCEL CBD
CLI   CLQ    DCL    DEA    DEBUG
DEV   DFL    DMO    FIX    FLAG
HELLO HELP   HOME   INI    INS
LOAD  LOGIN  LUN    MOUNT  OPEN
PAR   REA    RED    REMOVE RESUME
RUN   SAVE   SET    SSM    SWR
TAL   TAS    TIME   UFD    UNB
UNFIX UNLOAD UNSTOP Dates


El comando dir nos permitirá realizar listar un directorio. Podemos utilizar comodines * y ?.

Si nuestro objetivo es poder programar en ensamblador Macro-11 de la DEC PDP-11/70, podremos hacerlo incluso empleando las palancas del panel como hemos ya explicado en el caso de la PDP-11/40. Si deseamos "destruir" temporalmente el sistema operativo con el fin de crear un contador binario que haga uso de las luces del panel, podríamos utilizar el siguiente programa en ensamblador:

Dirección  Contenido  opcodes
001000     005000     clr     r0
001002     005200     inc     r0
001004     005200     inc     r0
001006     000005     reset
001010     000775     br      001004



Teniendo en cuenta que los conmutadores representan los siguientes valores:

                       Conmutador 21 PARIDAD ALTA/BAJA

Conmutador 11 = 4.000  Conmutador 20 = MSB
Conmutador 10 = 2.000  Conmutador 19 = LSB
Conmutador  9 = 1.000  Conmutador 18 = 1.000.000

Conmutador  8 = 400    Conmutador 17 = 400.000
Conmutador  7 = 200    Conmutador 16 = 200.000
Conmutador  6 = 100    Conmutador 15 = 100.000  

Conmutador  5 = 40     Conmutador 14 = 40.000
Conmutador  4 = 20     Conmutador 13 = 20.000
Conmutador  3 = 10     Conmutador 12 = 10.000  

Conmutador  2 = 4    
Conmutador  1 = 2    
Conmutador  0 = 1    

...para cargarlo en memoria, debemos operar los controles de la siguiente manera: para ingresar los operandos, debemos sumar los valores hasta lograr la cifra requerida con los conmutadores de datos::

Activar HALT
Conmutadores de datos=001000, LOADADRS
 
Conmutadores de datos=005000, DEP
Conmutadores de datos=005200, DEP 
Conmutadores de datos=005200, DEP 
Conmutadores de datos=000005, DEP 
Conmutadores de datos=000775, DEP

Para correr el programa:
Desactivar HALT
Conmutadores de datos=001000, LOADADRS
START


Luego de ejecutar este miniprograma de evaluación podremos apagar el emulador si lo deseamos poniéndolo en posición HALT. Si en cambio estuviésemos dentro del sistema operativo RSX-11, deberíamos ingresar el comando:

RUN $SHUTUP

En la carpeta ~/.simh/panelsim/pdp1170/ también contaremos documentación importante para el empleo de la máquina, como su completo Manual de Usuario  (PDP-11_70_Handbook_1977-78.pdf), los esquemas constructivos del panel de contorl de la PDP-11/70 (1170_ctlPanelSchem.pdf), la documentación del sistema operativo RSX-11+ (AA-L763A-TC_rsxIntro_Nov81.pdf) el manual de su microprocesador (KB11C PROCESSOR MANUAL (PDP-11-70) (1975, EK-KB11C-TM-001).pdf). Este manual contiene los nemónicos y - si sabemos - nos permitirá ingresar programas en su lenguaje ensamblador específico, Macro-11. Asimismo, podremos encontrar un manual básico de los comandos del sistema operativo (en inglés) aquí.