viernes, 17 de enero de 2020

¿Cómo uso Ekiga como cliente de telefonía VoIP en Ubuntu?

El 18 de junio de 1950 se crea la Federación Obrera de Empleados Telefónicos de la República Argentina, FOETRA, que agremiará a los trabajadores del Sector propiciando a su vez un crecimiento exponencial en los tendidos intercomunicados. En reunión confederal, Juan Perón explica a los telefónicos cómo hacer uso del servicio VoIP SIP en Ekiga, el cliente libre para Ubuntu.


¡Trabajadores!

Toda disposición técnica y especializada en comunicaciones se redunda en positiva para el país, pues facilitan los tiempos de conducción a la vez que se fomenta una veloz integración cultural del país en todos sus rincones.
En la Argentina hubo un tiempo que existió un ínfimo mercado telefónico, liderado por empresas extranjeras como la ITT, notablemente centralizado en la oligarquía. Era una herramienta de colonización, por y para las clases dominantes.

Nuestro Movimiento no podía consentir con tal afrenta, y por ello se impuso la necesidad de administrar un mercado telefónico para la grandeza de la Nación. Con tal fin el Estado a finales de agosto de 1946 creó EMTA, la Empresa Mixta Telefónica Argentina, situación que se aprobó ad referendum del Congreso de la Nación en su sesión del 3 de septiembre de dicho año.
El Primer Plan Quinquenal delineaba la ampliación de las comunicaciones de manera veloz para servir a las necesidades de un país vasto. El 18 de marzo de 1948 EMTA se pasó la administración pública bajo el explicativo nombre de Teléfonos del Estado. Su director impulsó en sólo seis años el tendido de 170.655 líneas, la incorporación de 54 centrales nuevas, además de las modernización de las anteriores con equipamiento Siemmens. 1.993 tendidos interurbanos nuevos se agregaron a la telaraña nacional, totalizando para 1951 un kilometraje suficiente para circumvalar con cable telefónico tres veces y media el globo, además de los 50 mil kilómetros de tendido automático de 12 vías, nuevo en la región.
Indudablemente que estas mejoras pueden también llevarse al mundo informático. La necesidad de comunicarse es constante para la grandeza de la Nación, y es por ello que debemos adaptar nueva tecnología que permita a nuestra informática comunicarse en las nuevas redes de datos. Por tal razón
existen varios estándares de comunicación telefónica por IP, y tal vez el más conveniente y abierto en tal sentido sea el popular SIP. Se trata de un protocolo para inicio de sesión concebido realmente para todo tipo de comunicaciones, pero entre todas las posibles destaca la telefonía por IP y la videoconferencia. El SIP ofrece la ventaja de estar dictado por la comunidad de Internet en lugar de las empresas telefónicas, por lo que asegura ciertos beneficios y universalidades en el manejo de las redes conmutadas de datos.

Para operar el protocolo SIP, es necesario contar con un usuario URI (identificador uniforme de recurso) y un cliente SIP. El URI podríamos considerarlo como un usuario registrado en una red de este tipo, y recibe la forma de dirección sip:usuario@dominio.

En cuanto a los clientes, podremos dividirlos en dos tipos: existen teléfonos IP compatibles con la norma SIP que son los clientes obvios, pero también contamos con aplicaciones de software destinadas al uso de redes SIP, llamadas Softphones. Naturalmente, una aplicación Softphone de este tipo capaz de instalarse en un smartphone tornará el mismo en un cliente SIP.

Existen muchos proveedores que podrán ofrecernos servicios SIP gratuitos o pagos. En mi caso propugno un servicio libre, y por tal motivo soy usuario de la SDF, la red social ética. Entre otros servicios, SDF provee servicio de telefonía VoIP gratuitos a sus usuarios Validados. Para solicitarlo, en la shell de la SDF ingresamos el comando "maint". Se nos solicitará loguearnos con usuario y contraseña de SDF en el submenú de mantenimiento.
Inmediatamente podremos utilizar la opción "v" para configurar el servicio de VoIP. Se nos proveerá una URI de usuario SIP (en el caso de la SDF, será un interno de cuatro números), así como una contraseña alfanumérica y una contraseña de cuatro números para la casilla de voz asociada (su contestador automático). Debemos tomar concienzuda nota de todo, y saldremos del menú de mantenimiento con "q". Tras unos instantes deberíamos recibir un correo electrónico del sistema de la SDF confimrando los datos de la cuenta SIP.

Como cliente SIP para mi sistema GNU con Linux, os enseñaré a utilizar Ekiga, un softphone compatible con múltiples protocolos y de origen netamente popular. Esta aplicación es capaz de operar eficientemente para charlas de voz punto a punto, teleconferencia, videoconferencia, y mensajería instantánea (chat).

Para preparar Ekiga en nuestro sistema, lo primero será instalarlo. Para ello abrimos una Terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt install ekiga
Conforme se haya instalado el programa, lo ejecutamos desde Aplicaciones / Internet / Ekiga Softphone.

La primera vez que arranquemos Ekiga, se iniciará su Asistente de Configuración. Normalmente querríamos utilizarlo, pero en este caso os indicaré cómo configurar correctamente el SIP de la SDF en él.

Con tal fin cancelamos el Asistente, si aún está ejecutándose, presionando en el botón Cancelar.
Acto seguido, agregaremos una cuenta nueva desde el menú Editar / Cuentas. Entre las opciones que se nos presentan escogemos "Cuentas / Añadir una cuenta SIP", y procederemos a llenar todos los campos con los datos de la URI SIP que nos ha suministrado la SDF.
Debemos otorgar a la cuenta un nombre descriptivo en el campo "Nombre:". Por ejemplo "SDF VoIP de Perón" o algo que denote nuestro usuario.

En el campo "Servidor de Registro", ingresamos el servidor que tengamos. En este caso particular, hemos de ingresar sip.sdf.org pues tal es el servidor de la SDF (si tuviésemos otras URIs SIP, podremos agregarlas aparte).

En el campo "Usuario", usamos el ID de usuario que tenemos en nuestra cuenta SIP. En el caso de la SDF, esta era la extensión numérica de cuatro dígitos, que nos ha sido informada por correo electrónico. En el campo "Usuario para Autenticación", ingresamos el usuario que debe ser autenticado en el servidor SIP. En el caso de la SDF y otros servicios VoIP públicos, debemos repetir el mismo ID numérico que en el caso anterior, pero en servicios privados suelen otorganos una clave distinta que nos asegura privacía punto a punto.

Bajo el campo "Contraseña" debemos tipearle la contraseña "Auth Password" que nos llegó por correo electrónico. En el caso de la SDF debemos prestar especial atención a las mayúsculas y minúsculas; conviene tipearlas y no copiar y pegar desde la terminal. En el campo Timeout es un valor técnico, nos aseguramos de poner un valor grande, como por ejemplo 3600.

Finalmente tildamos Activar Cuenta, y presionamos el botón Aceptar para completar el proceso.

Con todo esto ya tendremos preparado las cuentas SIP. Ahora conviene configurar a mano nuestros dispositivos de sonido en el cliente Ekiga. Para ello en Ekiga vamos a Editar / Preferencias. En la ventana Preferencias de Ekiga, en su panel izquierdo escogemos la categoría Sonido / Dispositivos, y en el panel derecho nos aseguramos de presionar el botón Detectar Dispositivos y luego elegir los dispositivos que querramos. Las opciones por defecto es PTLIB/ALSA. Ahora podremos presionar Aceptar.
Tendremos dos vistas principales en Ekiga, la vista Teclado (similar al teclado de un teléfono), y la vista Contactos (similar a la de cualquier cliente de chat), activables mediante los botones correspondientes.

La forma más directa de llamar es conocer el ID de un usuario, y discarlo. Por ejemplo, podríamos discar el interno de una casilla de voz de SIP en la SDF, llamar y dejar un mensaje. Sólo debemos respetar el formato del interno para que la llamada se curse correctamente; por ejemplo sip:xxxx@sip.sdf.org.

Al llamar podremos presionar el ícono del "altavoz" y regular el nivel de retorno del micrófono y de los parlantes. Como siempre en estos casos, es ideal utilizar audífonos para evitar el "efecto eco" o peor, los "acoples".

Si somos usuarios Validados de la SDF la funcionalidad se limita a llamar a internos del sistema, grabar mensajes de voz, y recibir mensajes quye nos hayan dejado en nuestra casilla de voz.

La SDF dispone también de "internos de servicios". El sistema de casillas de voz podrá accederse desde sip:1085@sip.sdf.org. Para oír los mensajes que nos han grabado, la operadora automática nos solicitará en inglés nuestro número de casilla ("Mailbox?"), y tras discarlo con el teclado numérico de Ekiga, nos pedirá el PIN ("Password?"). Podremos entonces escuchar los mensajes nuevos ("opc. 1"), revisar los viejos, avanzar en los mensajes ("opc. 4"), o retroceder ("opc. 4"), borrar mensajes con "opc. 7" (o recuperarlos, si lo hacemos antes de colgar). Para volver en el menú del arbolito, normalmente se usa la disca "*".

Además de este servicio básico, la SDF provee una casilla libre "abierta a conferencias (no privada)", que podremos acceder discando sip:1088@sip.sdf.org. A las 0200 UTC se realizan conferencias. La Radio ANON es interactiva y opera en horario nocturno, y puede discarse en 1086@sip.sdf.org.

En la SDF, si somos usuarios del servicio pago ARPA o MetaARPA nuestro usuario dejará de ser un interno, sino que nos ofrecerán un nombre de usuario específico. En tal caso no solamente podremos comunicarnos con a usuarios de la misma red o a sus casillas de voz, sino que ya podremos llamar a líneas telefónicas exteriores por medio de una PSTN (salida a la linea telefónica conmutada). En tal caso se disca el número telefónico incluyendo la característica internacional. También nos será posible establecer enlaces de videoconferencia por medio de la red SIP VoIP. Podremos lograr buena calidad de video si la infraestructura ofrece una velocidad regular (con 200kb/s es suficiente).
Si contamos con usuarios ARPA o MetaARPA en la SDF, el interno es reemplazado por un usuario común. En este caso podremos establecer conversaciones de videollamada por medio de la red VoIP. Estas conversaciones no son punto a punto. Para ello, naturalmente debemos contar con una cámara web configurada.

martes, 7 de enero de 2020

¿Cómo instalo el traductor Crow en Ubuntu?

El 10 de octubre de 1945, obligado a renunciar a sus cargos, el Coronel Juan Perón dirige su palabra ante una espontánea multitud de trabajadores en la sede de la Secretaría de Trabajo y Previsión y a través de la Radio. En dicha exposición ante representaciones obreras, expuso cómo instalar y utilizar un traductor en Ubuntu.


(...)
Cnel. Perón: ¡Trabajadores! He hablado recién a los empleados y funcionarios de la Secretaría. Les he dicho como un pedido de mi última voluntad como Secretario de Trabajo y Previsión...

Masa: ¡Noooo!

Perón: ....les he dicho que les pedía que no abandonase nadie los cargos que desempeñan porque se me han presentado numerosísimas renuncias. Yo considero que en esta hora una plaza de empleado en la Secretaría de Trabajo no es un puesto administrativo sino un puesto de combate, y los puestos de combate no se renuncian: ¡se muere en el puesto!.

Esta casa fundada hace un año y medio se ha transformado en la esperanza de los hombres que sufren y trabajan. Y esa esperanza no la debe defraudar nadie porque acarrearía una de las mas grandes desgracias para nuestra Patria.

Hoy señores, despojado de toda investidura les hablo como un simple ciudadano...

Masa: ¡Presidente!, ¡presidente!

Perón: Hablo como simple ciudadano a mis amigos los trabajadores prometiéndoles por última vez desde esta casa todo lo que mi corazón siente por ellos, y todo lo que he de hacer en mi vida por su bien. Ello es lo que quieren algunos partidos políticos para volver, pero, la Revolución encarna en sí las reformas fundamentales que se ha propuesto realizar en lo económico social. Es así que esa trilogía representa las conquistas de esta revolución que está en marcha, y que cualquiera sean los acontecimientos, ya no podrán desvirtuarla en su contenido fundamental. La obra social es de una consistencia firme, que no cederá ante nada, ¡y esa consistencia social la aprecian no los charlatanes, sino los obreros que la sienten!

Masa: [Vítores] ¡Perón, Perón! ¡Perón ha luchado!

Por eso esta obra social que la aprecian solamente los trabajadores en sus verdadero valor, deben ser también los trabajadores quienes la defiendan en todos los terrenos. La secretaría de trabajo y previsión que hace un año y medio comenzara dos enormes tareas: las de organizar esa Secretaría y durante la marcha ir consiguiendo las conquistas sociales que considerábamos de primer orden y más importantes para la clase trabajadora. Sería largo enumerar las conquistas obtenidas en lo que se referiere especialmente al trabajo, a la organización del trabajo, a la organización del descanso, a la organización de las remuneraciones, como asimismo a todo lo que corresponde a la previsión social. Esta tarea realmente ciclópea para realizar en un año y medio, se ha cumplido, y se ha cumplido con este antecedente: se lo ha obtenido con el beneplácito absoluto de la clase obrera, lo que representa un fenómeno difícil de igualar en la historia de las conquistas sociales.

Masa: ¡Presidente! ¡Presidente! ¡Con Perón y con Mercante, la Argentina va adelante!

Perón: Esa previsión social que ha comenzado por realizar una propaganda para el ahorro posible con los mejores salarios, ha propugnado las mutualidades, y ha aumentado el número de los Argentinos con derecho a jubilación en cifras verdaderamente extraordinarias. Entre esas obras cabe destacar la iniciativa de la Confederación de Empleados de Comercio, verdadera obra y verdadera conquista que es y será un orgullo para la previsión argentina.

Masa: Coronel Perón, ¡Ay de mi patria si usted se muere! ¡Presidente! ¡Presidente!

Perón: Hemos defendido desde acá a todas las organizaciones obreras que hemos propugnado y hemos facilitado en su organización. Desde esta casa no se ordenó jamás la clausura de un Sindicato obrero. No se persiguió jamás a un obrero, sino que siempre que nos fue posible pedimos a las autoridades la libertad de los obreros detenidos por distintas causas.

Masa: ¡Es verdad! ¡Incluso todos los comunistas! ¡Perón si, otro no! ¡Perón si, otro no!

Perón: A diferencia de lo que ha sucedido en otros tiempos, las Autoridades han defendido las organizaciones obreras  en vez de molestarlas o perseguirlas. Es así que terminamos de dar un Decreto Ley que se refiere al régimen de las Asociaciones Profesionales. Cuando llegué a la Secretaría de Trabajo y Previsión el primer pedido que recibí de los obreros fue la derogación de un antiguo Decreto del año 43 donde se establecía un régimen de Asociaciones Gremiales de tipo totalitario. El primer decreto que firmé en esta Secretaría fue la derogación de ese Reglamento de las Asociaciones Profesionales, y tengo la satisfacción de decir que el último que firmo hoy es el nuevo Régimen Legal de las Asociaciones Profesionales, muy distinto que el anterior.

En este nuevo régimen de asociaciones profesionales puedo garantir que es una reglamentación de lo más avanzado que existe. Bastaría decir que se ha creado a esa organización obrera un régimen legal tal que el Gobierno - que puede muchas veces intervenir provincias o cualquier otra asociación - de acuerda a este Decreto ley no puede intervenir los Sindicatos obreros.

Masa: ¡Aquí esta, que lo vengan a buscar!

Perón: También dejo firmado un Decreto de una importancia extraordinaria para nosotros. Es el que se refiere al aumento de sueldos y salarios...

Masa: ¡¡¡¡BIEN!!!! ¡Pe-rón! ¡Pe-rón!

Perón: Queda firmado he dicho en mi carácter de Secretario de Estado, y tiene la firma de los ministros de obras públicos y de Marina, el decreto de aumento de salarios móvil vital, y básico, como la Participación de las Ganacias...

Masa: ¡¡¡BIEEEN!!! Perón Presidente! ¡Pe-rón! ¡Pe-rón!
Perón: ...Decreto que no solamente beneficia a los que fueron de esta iniciativa, la confederación de empleados de comercio, sino a todos los trabajadores argentinos!

Masa: [Vítores estruendoso] ¡Coronel, Presidente!

Perón: Y ahora como ciudadano al alejarme de la función pública...

Masa: ¡¡¡Nooooo!!! ¡Perón Presidente! ¡Presidente! ¡Presidente! ¡A la huelga general revolucionaria! ¡Sangre!

Perón: ...Al dejar esta casa que para mí tiene tan gratos recuerdos, debo manifestar una vez más mi crédito reafirmando mi fé en una democracia perfecta como la entendemos aquí.

Masa: ¡Soy peronista! Viva Perón! Aquí están las manos Argentinas coronel... Presidente! Presidente! Es el Pueblo! Es el Pueblo! Es el Pueblo! Huelga revolucionaria! Sangre! Armas!

Dentro de esa fé democrática fijamos nuestra posición incorruptible e indomable, frente a la oligarquía!


Masa: [Estruendosos vítores] Pe-rón! Pe-rón! ¡Presidente! ¡Presidente! ¡Viva la huelga general revolucionaria! ¡Un millón de votos! ¡Un millón de votos!

Y si no les queda claro, se lo traducimos. Nadie duda que la traducción de idiomas asistida por computadora fue una de las primeros logros que tuvimos. Ya desde los tiempos del Spanish Assistant o del Globalink utilizaba este tipo de softwares, pero hoy vengo a firmar un decreto ley que presenta una superior solución ideológica.

Se trata de un traductor simple y liviano liberado bajo GPLv2, que permite traducir usando los servicios de Google, Yandex o Bing, a través del una aplicación nativa de escritorio capaz de operar en Ubuntu: ¡el Crow Translate!

Para instalar Crow Translate ingresamos:

sudo apt update ;
sudo apt install libqgsttools-p1 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtgstreamer-plugins-qt5 ;

cd ~/Descargas/ ;
wget https://github.com/crow-translate/crow-translate/releases/download/2.3.0/crow-translate-2.3.0-amd64.deb ;
sudo dpkg -i crow-translate-2.3.0-amd64.deb ;

Una vez instalado el paquete, podremos ejecutar el programa. Para ello vamos a Aplicaciones / Oficina / Crow Translate.

La aplicación normalmente se inicia minimizada, y dispone ícono en en panel superior de Ubuntu. Lo primero que podemos hacer es configurar sus útiles opciones. Para ello en dicho panel superior, podremos clic con el botón derecho del mouse sobre el icono de Crow Translate:
...y desde el menú contextual que aparece, elegimos la opción Settings.
La ventana Settings nos permite configurar el uso del programa. En la parte izquierda consta de las categorías, y en la derecha las opciones. Normalmente el programa se utiliza minimizado, a través de una serie de atajos de teclas. En mi caso me gusta que arranque el programa directamente maximizado. Para ello escojo la categoría General, y tildamos "Show tray icon" y destilados "Start Minimized" ("Iniciar minimizado") y "Launch at Startup" ("Iniciar al Arrancar el sistema"). Naturalmente, si quisiéramos que el comportamiento del traductor fuese iniciar minimizado toda vez que arranca el sistema, deberíamos dejar tildadas estas dos últimas opciones.
En la categoría Translation, debemos indicarle cuál motor de traducción queremos emplear, así como los idiomas que preferimos. Para utilizar el inglés, en el desplegable Primary Translation Language escogemos "Spanish" ("Español"), y en el desplegable "Secondary Translation Language" lo dejamos en Inglés ("English").

Aceptamos los cambios presionando Ok, y ya podremos lanzar la aplicación. Para ello en el ícono de Crow Translate del panel superior, escogemos "Show windows" ("Mostrar ventana").

Esto nos presentará la ventana de trabajo del Crow Translate, que es similar a la que presenta la web Google Translate. Se trata de una interfaz lado a lado. En la ventana izquierda tendremos el texto original, y en la derecha la traducción, aunque podremos intercambiar el órden de la traducción con la flecha doble.
Si utilizamos el servicio de Google Translate, la traducción será automática, pero podremos realizarla a mano por medio de Ctrl+Enter.

En la parte inferior contaremos con botones que activan la reproducción del habla texto a voz, capaz de operar a través de Google Translate.

El programa también puede obrar por medio de combinaciones de los atajos de tecla programables desde la interfaz. Debemos tener en cuenta de no sobreponer dichas combinaciones a otras utilizadas por nuestro escritorio de Ubuntu. Por tal motivo, pueden modificarse o - incluso - desactivarse completamente.

Las combinaciones más utilizadas son:

Comb. de Teclas Descripción
Ctrl+Alt+e Traduce el texto seleccionado
Ctrl+Alt+s Habla el texto seleccionado.
Ctrl+Alt+f Habla la traducción del texto seleccionado
Ctrl+Alt+g Detiene el habla
Ctrl+Alt+c Muestra la ventana de Crow Translate

Como vemos, el programa es fácil de operar de forma casual, pero también está bien preparado para utilizarlo para combinar sus resultados con programas de edición y procesamiento de texto. Los resultados provistos por Google Translate están - al día de hoy - bastante logrados.

Masa: ¡Aquí está! ¡Que lo vengan a buscar!

sábado, 4 de enero de 2020

¡600 seguidores!

A pesar de que me faltan las manos, escribo Ubuntu Peronista, un blog de adoctrinamiento técnico en el uso del Software Libre, enmarcado en el Justicialismo.

El mundo del software contemporáneo es una lucha enconada entre ideologías caducas sobrevivientes, y nada podrá resolverse sin una nueva solución ideológica. ¡El Justicialismo la ha encontrado, la ha realizado, y está dispuesto a mantenerla!

Yo no aspiro a otra gloria que al cariño de mi Pueblo. Por eso es que emocionado ante estos 600 seguidores, deseo hablarles de mi gratitud como argentino y como trabajador.

Millones de visitas al blog me han hecho el mas feliz de los hijos de esta tierra. Hoy agrego un agradecimiento mas a la inmensa deuda de gratitud que me liga a los trabajadores argentinos. Los trabajadores han sido y son la causa y la finalidad objetiva de todos mis desvelos y sacrificios, pero son también la fuente inagotable de mi propia felicidad.

Desde la inmensa heredad de nuestra Patria, millones de argentinos nos escuchan. A todos ellos va mi saludo cariñoso y mi recuerdo de compatriota y de hermano. A los fieles descamisados de todas las horas, mi cariño inextinguible y mi abrazo con que los estrecho muy fuerte sobre mi corazón.


domingo, 29 de diciembre de 2019

¿Cómo instalo pip en Ubuntu 18.04LTS?

Durante su ostracismo español Juan Perón emprendió una intensa comunicación multimedial - que abarcaba epístolas, télex, cintas magnetofónicas y películas cinematográficas - y que le permitió digitar acciones tendientes a su Retorno. En una de dichas epístolas remitidas al Sindicato de Jaboneros y Perfumistas, enseñó cómo instalar Pyhton PIP en Ubuntu.


¡Trabajadores!

Por intermedio de unos compañeros de la industria del vidrio he recibido vuestra pieza del 19 del presente, que atino a responder in situ para que les llegue de vuelta.

Las recomendaciones para la lucha que me solicitan en este caso sólo pueden ser generales. Es una inquietud natural de una industria de suma importancia como lo es la de los jabones y los perfumes, cuando me planteen la conflagración armada en la superficie, y el ajusticiamiento subrepticio de oligarcas. Sin embargo, no es este el tiempo de iniciar tales predicamentos, ni lo podremos hacer con perfumes. Tal tiempo llegará y no serán pocos los que hagan tronar el escarmiento.

Día a día recibo numerosas piezas de este tenor desde la Argentina e incluso paquetes. Esto me tiene perfectamente al tanto de lo que sucede y me permite configurar un Movimiento vibrante y deseoso de continuar la lucha. En ello hemos de obrar cada uno en su puesto y con miras a un objetivo común: la grandeza de la Patria y la felicidad de su Pueblo Trabajador.

Si no hubiese sido por un administrador de paquetes de excelente factura, poco habría podido hacer para coordinar todos los esfuerzos. Pues sí señores, gran parte del software que recibo y envío está preparado en lenguaje Python, el nuevo BASIC capaz de correr en todo tipo de máquinas. Y para gestionar su operación, es importante el uso del gestor de paquetes propio que este lenguaje dispone de facto: el pip. Se trata de un instalador de paquetes Python ampliamente difundido y popular. Fue creado para ser una mejor alternativa que el viejo easy install, al cual ha terminado suplantando.

Permite instalar y administrar paquetería libre adicional de PyPi que no son parte de la librería estándar de Python. Esta biblioteca de programas hobbistas presentan una excelente oportunidad para resolver algunos problemas cotidianos por medio de software empaquetado gratuito, y por lo tanto, al alcance de todos.

En la medida que la comunidad organizada de Python se hizo cualitativamente mayor, más y más partes de Ubuntu mutaron a dicho lenguaje. El por dicha razón doctrinaria que Python 2 conforma ahora parte fundamental de la instalación estándar de Ubuntu. A pesar de que Python 3 tiene muchas ventajas sobre Python 2, este último sigue siendo una dependencia crucial del sistema. Es por ello que remover Python 2.7 del cimiento de Ubuntu 18.04 puede causar muchos problemas a largo término y provocar un casi derrumbe de esta infraestructura programática. Debe evitarse en la medida de lo posible hasta que pase un buen tiempo y Python 2 deje de tener el sentido que aún conserva.

Ubuntu 18.04LTS incluye tanto Python 2 y Python 3 preinstalados. Una instalación de pip funciona con sólo una distribución de Python por vez, de modo que ha sido necesario separar pragmáticamente tanto los comandos que invocan a pip como la instalación en si misma. Por ejemplo, el comando pip por defecto lanzará a pip para Python 2 mientras que el comando pip3 lanzará a pip para Python 3.

Instalar pip3 y pip desde el Repositorio de Ubuntu

Comenzaremos actualizando nuestro repositorio de sistema, como suele ser reglamentario. Para ello abrimos una Terminal con Ctrl+Alt+T y le ingresamos el siguiente Comando de Organización:

sudo apt update

Acto seguido, ingresaremos el el segundo comando, encargado de instalar pip para Python 3 (referido como pip3) y pip para Python 2 (referido simplemente como pip), así como sus demás dependencias necesarias entre ellos:

sudo apt install python3-pip python-pip -y

Una vez que la instalación se haya finalizado, revisaremos y verificaremos que tanto pip como pip3  hayan quedado instalados exitosamente y respondan a la órden básica. Para ello utilizaremos:

pip --version
pip3 -version

Ambos comandos nos devolverán el número y ruta de las versiones de Python instaladas. Tengamos presentes que el número de versión indicado naturalmente puede variar dependiendo de lo actualizado que esté el repositorio, pero podría indicar algo como esto:

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

Instalar pip independientemente empleando el script oficial de instalación

Si bien el método indicado arriba es veloz y sencillo, existe otro método oficial que emplea el guión provisto por el equipo de desarrollo de pip. Inicialmente habremos de verificar que nuestro sistema no cuente ya con una instalación previa de pip. Ello lo haremos con:

pip --version

Y el sistema debería devolver:

pip: órden no encontrada

Intente: sudo apt install

Luego descargue el guión de instalación mediante el siguiente comando:

wget https://bootstrap.pypa.io/get-pip.py

Proceda a utilizar la versión de python que desee para ejecutar el guión. Debemos tener cuidado ya que guión no coordina bien con la versión de pip preinstalada y puede provocar conflictos si hacemos que get-pip.py se instale sobre una versión anterior.

Por ejemplo, el comando para instalar pip para Python 3 en todo el sistema será:

sudo python3 get-pip.py

...en cambio, si deseamos instalar pip para Python 3 sólamente para su usuario actual, debería utilizar el comando:

python3 get-pip.py --user

De forma similar opera el comando pip para Python 2. El comando para sistema completo debería ser:

sudo python get-pip.py

...en tanto que el comando para instalarlo únicamente para su usuario actual será:

python get-pip.py --user

Empleo básico de pip

Pip hace que instalar aplicaciones de paquetes de terceros sea muy sencillo. Una de las funcionalidades básicas es instalarlos con el siguiente comando:

pip install nombre_del_paquete

Para quitar el paquete Python, usaremos:

pip uninstall nombre_del_paquete

Buscar librerías
Podríamos iniciar un navegador y buscar los paquetes en el sitio web oficial de PyPI, pero también podremos utilizar nuestra línea de comandos. Un ejemplo, buscaremos un paquete relacionados a las "cameras". El comando search nos mostrará una extensa lista similar a la siguiente:

pip search cameras

...y pip nos devolverá algo como:

ybc-camera (1.0.5)                       - ybc camera
camera-fusion (0.0.8)                    - Multiple cameras calibration and fusion with OpenCV Python.
camera-discovery (1.0.11)                - A package to discover all onvif cameras on your network
camera (1.3.0)                           - A Python module to use a PiCamera easily
big-fiubrother-camera (0.3.0)            - Big Fiubrother Camera application
zorg-network-camera (0.0.3)              - A module which includes various network camera utilities.
django-camera-imagefield (0.2)           - A Django widget for using a device's camera to get an image to upload
scan-camera (0.0.5)                      - A scanner that could scan all the ip off the world
cameras-cli (1.0.1)                      - Cameras CLI
ONVIFCameraControl (1.0.6)               - Simple camera controls.
pygame_camera (0.1.1)                    - A Camera lib for PyGame
netsurv (0.1.5)                          - Configure IP cameras.
django-milcam (0.3.1)                    - Military Camera project
digimat.ipcamera (0.1.4)                 - Digimat IP Camera
motmot.fview (0.6.8)                     - extensible camera viewer program (part of the motmot camera packages)
sonycam (0.1.0)                          - Interfacing Sony cameras featuring the Sony Camera Remote API
campi (0.1.2)                            - Camera server and client software for Raspberry Pi beam profiling camera
cctvproxy (0.1.1)                        - CCTV camera image proxy
gamecam-sdrabing (0.8.3)                 - Remote-camera software suite.
pyobs-sbig (0.8.1)                       - pyobs module for SBIG cameras
pyobs-fli (0.8)                          - pyobs component for FLI cameras
pixelink (1.4.0)                         - A Python driver for the PixeLINK camera
onvif-zeep (0.2.12)                      - Python Client for ONVIF Camera
adafruit-circuitpython-mlx90640 (1.0.1)  - Driver for the MLX90640 thermal camera
(...)


Instalar dependencias en lotes
El código Python distribuido en línea a menudo incluye un archivo requirements.txt, en el cual se declaran cuáles son las dependencias del programa. Si encontramos este archivo, podremos ejecutar este comando para instalar todas las dependencias a la vez en lugar de ejecutar pip install individualmente.

pip install -r requirements.txt

Mostrar qué archivos se han instalados y sus rutas

En ocasiones, podríamos querer analizar el código del paquete instalado. Ello es posible gracias a la condición libertaria del Software que propugnamos, y a este comando que se encarga específicamente de ello:

pip show --files paquete_instalado

...el sistema debería devolvernos algo como:


Name: paquete_instalado
Version: 1.0
Location: /my/env/lib/pythonx.x/site-packages
Files:
  ../paquete_instalado/__init__.py
  [...]

Conclusión

Naturalmente, ahora tenemos un entendimiento iluminado de cómo proceder a instalar este gestor de paquetes, que nos vendrá de perillas. Si deseamos contar con su guía de usuario específica, podremos encontrarla en el idioma de Braden aqui.

sábado, 28 de diciembre de 2019

¿Cómo puedo usar el cliente Toot para Mastodon desde la Terminal en Ubuntu?

El Justicialismo conformó un Movimiento de las más variadas asociaciones. En vista de ello, su Conductor el General Juan Perón enseñó a utilizar Toot, el cliente para la terminal adaptado para el Fediverso Mastodon en Ubuntu.

¡Compañeros!

El hombre no es un animal gregario. Desde la época de los mastodontes y las cavernas, los desafíos por la supervivencia de la especie lo obligaron a adoptar formulaciones sociales cada vez más complejas, estamentos sin los cuales no hubiese surgido la Cultura.

Es así que se conformaron familias, asociaciones primigenias de recolectores, manadas de cazadores, clanes, y luego tribus, reinos de agricultores, y las naciones industrializadas, para establecer los Estados Nacionales de hoy en día. Pero no hemos atenernos ya a ellos, pues los Estados de los hombres se han impuesto la dura dicotomía de regionalizarse como deban o globalizarse como puedan.
En la informática sucede más o menos lo mismo. Debemos socializar los medios de producción como debemos. Con tal objetivo por bandera, el Movimiento ha desarrollado Mastodon, un software libre pensado para establecer servidores autogestionados de contenidos para microblogging federado. De esta manera, es posible contar con todas las ventajas del blogueo a nivel microscópico que ofrecen aplicaciones privativas como Twitter, pero en el fediverso, regidos por nuestras propias y convenientes reglas. Podremos de esta manera Combatir al Capital.

Normalmente podremos abrir una cuenta en Mastodon.social y usar nuestro navegador web para operarlo, pero también podríamos crear nuestro propio servicio federado o utilizar el provisto por un tercero. En mi caso, empleo mastodon.sdf.org. Cualquiera sea el servidor, al emplear el protocolo Mastodon podremos federarnos a la red compartida, como si de un sindicato confederal se tratara.

 Ahora bien ¿qué sucede si deseamos hacer uso de este servicio de microbloggin desde nuestra terminal de texto? Para ello bien podríamos emplear Toot. Se trata de un cliente abierto diseñado para poder postear, contestar, borrar, reblogguear, poner como favorito y poner Estados de microbloggin con Mastodon. Entre sus características principales dentremos la de poder subir archivos con contenidos (fotos o video), spoolear texto, y agregar status de contenido sensible a nuestros envío. También podremos buscar en el fediverso por cuenta o hashtag de contenido.

Naturalmente, podremos gestionar usuarios, pudiendo seguir, enmudecer o bloquear seguidores de la red. Asimismo, permite un cambio sencillo entre múltiples cuentas de Mastodon en caso de que tengamos varias.

Para instalar el cliente Toot en Ubuntu abrimos una Terminal con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización.

echo "deb http://bezdomni.net/packages/ ./" | sudo tee /etc/apt/sources.list.d/bezdomni.list ;

curl https://keybase.io/ihabunek/pgp_keys.asc | sudo apt-key add - ;

Luego de haber agregado las llaves, lo instalaremos con:

sudo apt update 
sudo apt install python3-toot

Asociar Toot a una cuenta

Antes de tootear con el cliente Toot, debemos disponer ya de una cuenta creada en cualquier servidor del fediverso Mastodon, que ua debería estar habilitada. Debemos loguearnos a la misma idealmente a través de nuestro navegador web. Una vez que estemos logueados en él con nuestro navegador, podremos asociarlo mas fácilmente.

Para hacerlo ingresamos la siguiente orden a nuestra terminal:

toot login

Esto dará inicio la rutina de Toot que nos permite realizar su asociación a una cuenta en particular. En primer lugar nos solicitará que le aclaremos cuál es la instancia de servidor que queremos asociarle. El programa intentará plantearnos la típica que es mastodon.social, pero en mi caso utilizo mastodon.sdf.org.

Una vez correctamente ingresada la instancia de servidor, Toot intentará detectarla y si lo hace nos ofrecerá un enlace URL para pedirle la asociación de cliente. Naturalmente nos ofrecerá él mismo abrir nuestro navegador. Le indicamos que si (presionando "y").
En nuestro navegador web se abrirá, y se nos presentará la opción de autorizar la aplicación cliente Toot o desautorizarla. Debemos presionar el botón celeste Autorizar.
No bien cumplamos con este paso se generaráun código de autorización, que se nos presentará en pantalla. Debemos copiarlo (podemos usar el botón Copiar).
Finalmente volvemos a la Terminal, y habremos de pegar en ella el código de autorización (podremos usar clic con botón derecho del ratón y elegir Pegar en el menú contextual, o simplemente usar Ctrl+V y presionar Enter).
 Al finalizar el sistema debería indicarnos el éxito de la operación de asociación.

Access token saved to config at: /home/usuario/.config/toot/config.json

✓ Successfully logged in.


Como ya vemos, los Códigos de Asociación de Aplicación y de Usuario quedarán almacenados en el archivo de configuración ~/.config/toot/instances/config.json.


Modo de Uso
La manera más sencilla y útil para trabajar con Toot es hacer uso de su interfaz de usuario de texto (TUI). Podremos iniciarla ingresando en la terminal:

toot tui


Tras mostrar una pantalla de inicio, tendremos a nuestra disposición una cómoda interfaz de usuario para la terminal. Podremos acceder a su ayuda mediante la h.
Para crear un estado nuevo, podremos usar c ("Compose" o componer).
En la ventana Compose Status que se nos dispondrá, podremos escribir el mensaje de microblogging, asignarle una advertencia de contenido opcional, configurar la visibilidad escogida (pública, privada, o para usuarios específicos), y finalmente podremos Postearla o cancelar el mensaje.

Las otras opciones que permite usar la tecla f para configurar un estado como favorito, o t para ver un thread abierto. Si quisiéramos ver contenido de medios (fotos o videos), podremos usar la tecla v, que abrirá una pestaña con el medio solicitado en nuestro navegador web. Para finalizar el uso de la interfaz de texto podremos abandonar Toot por medio de q.


También podremos publicar un status o toot directamente desde la línea de comandos de la terminal. Para ello ejecutamos toot con el comando post y entre comillas aquello que deseamos postear. Por ejemplo:

toot post "¡Viva Perón! Toot desde la línea de comandos"

...a lo cual el sistema nos debería indicar: "Toot posted" (Toot posteado") junto a un enlace que refiere al mismo.

Con gran simpleza podríamos postear ficheros de archivos de medios (imágenes o video) usando el sufijo --media. Por ejemplo:

toot post "Miren esta foto" --media ruta/a/foto.png

Naturalmente, si el contenido es sensible, deberá etiquetarlo como tal con el sufijo --sensitive a fin de que los usuarios deban hacer clic para autorizar su visualización.

toot post "Foto de minas en pelotas" --media minas_en_pelotas.png --sensitive

Si quisiéramos ver nuestra línea de tiempo (los post a los que estamos siguiendo) desde la línea de comandos, podremos ingresar:

toot timeline
Este comando a su vez ofrece algnas variables útiles, por ejemplo

toot timeline --public: Muestra la línea de tiempo pública.
toot timeline --public --local: Muestra la línea de tiempo pública, sólo en esta instancia.
toot timeline --tag peronismo: Muestra los posteos etiquetados con "#peronismo".
toot timeline --count 5: Muestra 5 toots (máximo 20)
toot timeline --once: No pregunta hacer fetch de mas toots.

Podremos notar que la Línea de Tiempo indica un número asociado a cada estado. Este nos permite realizar operaciones similares a las que nos ofrece la web del navegador de Mastodon, pero directamente desde la línea de comandos de nuestro intérprete de comandos.

Por ejemplo podremos marcar un estado como favorito con:

toot favourite 123456

...o reenviar un estado con:

 toot reblog 123456

Controles de Usuarios:
Estos comandos nos permitirán realizar búsquedas y gestionar a los otros usuarios a los que deseamos seguir. Por ejemplo, para buscar una persona:

toot search "nombre apellido".

...para buscar un usuario:

toot search "@usuario"

...para buscar en un servidor específico

toot search usuario@servidor.social

En nuestro fediverso propio, seremos caciques de muchos indios, y para Conducir se requiere ser un Hombre del Pueblo y Organizarse. Para diagramar nuestra tribu podremos:

...enmudecer usuario con:
toot mute usuario@servidor

...bloquear un usuario con:
toot block usuario@servidor

...o dejar de seguir un usuario
toot unfolow usuario@servidor

jueves, 26 de diciembre de 2019

¿Cómo instalo Nginix en Ubuntu 18.04LTS?

Apenas iniciada su primer Presidencia, Juan Perón impuso un plan en contra de la suba descontrolada de precios, que puso a tono los mismos y afianzó el poder de consumo del Pueblo Trabajador. Mientras presentaba el plan conocido como "de los sesenta días", explicó cómo instalar el servidor web Nginx en Ubuntu.


¡Señores!
Es tal la trascendencia que asigno a la necesidad de terminar con la carestía de la vida - especialmente en beneficio de la clase humilde de la Nación - que he llegado hasta aquí con el deseo de dar la iniciación de esta campaña que llamamos de los sesenta días.

En primer término se ha fijado ya hace tiempo cual es el concepto del equilibrio social entre sueldos y salarios. Existe una línea de la vida fijada por los salarios mínimos. Ese salario mínimo establece la línea de la vida. Los que por deficiencia de salario no alcanzan a ese salario vital, son sumergidos. Y los que lo pasan, son los emergidos.

Buscamos que en el país - en relación a los precios existentes - no existan salarios que establezcan la condición de sumergido para ningún ciudadano argentino. Si los precios suben justificadamente, no hay otro remedio que aumentar los salarios. Pero si suben los precios injustificadamente, el remedio está en bajar los precios.

En este momento, esos dos factores, el aumento justificado y el aumento injustificado, son las causas de la carestía de la vida.

En realidad, el aumento que puede considerarse justificado obedece a razones reales, impulsados por la escasez de producción, por el exceso de exportación o por la mala distribución de los artículos de primera necesidad. Y la causas ficticias obedecen a la especulación, a la mala distribución por acopio o por sustracción a la venta.

Lo primero ha de encararse para resolverlo en forma absolutamente racional, y por lo tanto con medidas racionales. Lo segundo, es decir la especulación, el acopio o la sustracción a la venta deberá combatirse con medidas drásticas de la mayor energía.

En este trabajo que hoy inicia el gobierno, para abaratar los artículos de primera necesidad necesitamos proceder racionalmente para llevar al mínimo los costos de producción, equilibrar la producción misma en su aspecto cualitativo, evitar el exceso de exportación en perjuicio del consumo interno, y racionalizar la producción. Y en segundo término contra las medidas ficticias, es decir la especulación, el acaparamiento o la sustracción a la venta, castigarlo con toda la fuerza de la Ley, ya que ambas cosas deben de considerarse en épocas como las actuales - en que la Nación debe servir al exterior en una proporción desconocida hasta hoy para abastecer a los pueblos hambrientos de otros continentes sin que la población argentina sufra las consecuencias de esa escasez - con una científica graduación de lo que podemos enviar al extranjero y lo que debemos mantener para el alimento de nuestra población.

Para ello, en primer término la colaboración de todos es absolutamente indispensable. Estamos encarando la solución de un problema de todos los argentinos, y en consecuencia todos los argentinos deben colaborar en su solución. Los productores, los industriales y los comerciantes deberán facilitar la solución del problema acelerando la producción, disminuyendo a lo indispensable la exportación, y asegurando la distribución adecuada. Eso en cuanto a las fuerzas patronales.

Los trabajadores tienen aquí también su cooperación, y ella ha de ser aumentando el rendimiento de su trabajo para producir más. Esa es la misión de todo trabajador en este momento. Y su cooperación en el taller, en la fábrica, y en el campo ha de ser asegurar para el país el mayor grado de producción posible, rindiendo con su trabajo en todas las horas el máximo posible.

Los consumidores - vale decir el Pueblo - también tiene su cooperación que asegurar en este problema. Cooperarán no pagando en ningún caso precios mayores que los fijados y denunciando a todo mal comerciante que quiera imponer precios sobre los oficiales fijados. Cada ciudadano debe ser un soldado de esta cruzada y cooperar con el Estado para el bien de todos.

Los funcionarios encargados de la vigilancia e inspección deben ser inflexibles y rígidos en el cumplimiento de su función. Los poderes y autoridades del Estado en todas sus jerarquías y funciones deben prestar apoyo y cooperación para la mejor realización de este plan.

Nadie dentro del país puede ser espectador indiferente sin que se lo considere un traidor a la causa de todos. Esta campaña de sesenta días, debe de poner a la Nación entera en marcha para vencer en ese plazo todas las dificultades, con la cooperación de los productores, industriales y comerciantes, con la cooperación de los trabajadores, haciendo rendir al máximo su trabajo, con la cooperación de los ciudadanos consumidores, no haciendo el juego a la especulación y no pagando en ningún caso un precio sobre los fijados.

Y señores, por sobre todas las cosas para no inutilizar todos estos esfuerzo de conjunto, necesitamos honradez. Honradez en el comerciante, para mantener la calidad de los artículos y no inutilizar los esfuerzos realizados. Honradez en el público, que no se preste a maniobras de ninguna naturaleza. Honradez en los funcionarios para hacer cumplir a todos con su deber de acuerdo a la ley.

Señores, vencidos los sesentas días, los precios de los artículos de primera necesidad serán los establecidos en 1945 por el Consejo Nacional de Posguerra, es decir, lo que necesita una familia obrera, en comida, menaje y vestido, para vivir dignamente con el salario vital mínimo establecido. 
En los servicios telemáticos también hemos de obrar de la misma manera. Hemos de disponer de software servidor capaz de cooperar y de gastar lo mínimo requerido. Nginix es la solución que hemos propuesto.

Se trata de uno de los servidores web más populares del mundo y aloja algunos de los sitios más grandes y con mayor tráfico en Internet. Es más fácil de utilizar que Apache en la mayoría de los casos y puede emplearse como servidor web o proxy inverso.

En esta guía os explicaré la manera de instalar Nginx en su servidor de Ubuntu 18.04LTS.

Requisitos previos

Antes de comenzar a usar esta guía, debería contar con lo siguiente:
  • Un servidor de Ubuntu 18.04 y un usuario regular que no sea Conductor (root) capaz de ejercer privilegios sudo. Además, debería ya tener habilitado un firewall básico capaz de bloquear los puertos que no sean esenciales. Para aprender a configurar una cuenta normal de usuario e instalar un firewall, siga nuestra guía de configuración inicial para Ubuntu 18.04.
Cuando disponga de una cuenta, inicie sesión como usuario no root para comenzar.

Paso 1: Instalar Nginx

Debido aq ue Nginx está disponible en los repositorios predeterminados de Ubuntu, puede instalarlo utilizando el sistema de paquetes apt.
Actualice su índice local de paquetes:

sudo apt update
sudo apt install nginx

Paso 2: Ajustar el firewall

Si siguió el tutorial de configuración del servidor de los requisitos previos, tendrá habilitado el firewall UFW. Compruebe los perfiles de aplicaciones ufw disponibles con el siguiente comando:

sudo ufw app list

...nuestro sistema nos devolverá:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Habilitaremos el perfil más restrictivo, el cual de todas formas permitirá el tráfico que hemos configurado y con ello el tráfico en el puerto 80. Para ello ingresamos:

sudo ufw allow 'Nginx HTTP' 

Verificamos el cambio realizado con:

sudo ufw status 

...nuestro sistema nos devolverá:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Paso 3: Comprobar nuestro servidor web

Realziaremos una verificación con el sistema init systemd para saber si se encuentra en ejecución el servicio, ingresando la siguiente órden:

systemctl status nginx

...a lo cual deberíamos recibir en la terminal algo como:
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process

A través su dirección IP, accederemos a la página de destino predeterminada de Nginx para confirmar que el software opera de la manera deseada por el Pueblo:

http://IP_del_servidor

Deberíamos ver la insulsa página web de destino predeterminada de Nginx:

Paso 4: Configurar bloques de servidor (recomendable)

Al emplear el servidor web Nginx, podremos emplear _bloques de servidor _(similares a los hosts virtuales de Apache) a fin de encapsular detalles de configuración y alojar más de un dominio desde un único servidor.

Configuraremos un dominio llamado peronismo.com, pero debería cambiarlo por su propio nombre de dominio.

Creemos el directorio para peronismo.com, utilizando el indicador -p para crear cualquier directorio principal necesario:

sudo mkdir -p /var/www/peronismo.com/html

Asignamos la propiedad del directorio:

sudo chown -R $USER:$USER /var/www/peronismo.com/html

Los permisos de su las raíces de nuestras webs han de ser las correctas si no modificó su valor umask, pero podremos comprobarlo ingresando:

sudo chmod -R 755 /var/www/peronismo.com

Asimismo, crearemos allí una página de ejemplo index.html utilizando el editor GNU Nano:

nano /var/www/peronismo.com/html/index.html

Se abrirá el editor GNU Nano con el archivo vacío index.html. Le pegaremos el siguiente contenido:

Guardamos los cambios en el archivo con Ctrl+o y cerramos el editor con Ctrl+x.

Acto seguido, creamos un nuevo bloque de servidor en /etc/nginx/sites-available/peronismo.com. Lo haremos con:

sudo nano /etc/nginx/sites-available/peronismo.com

Le pegamos en dicho archivo el siguiente bloque de configuración, a fin de actualizar nuestro nuevo directorio y nombre de dominio:

server {
        listen 80;
        listen [::]:80;

        root /var/www/peronismo.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name peronismo.com www.peronismo.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

Guardamos el archivo con Ctrl+o y cerramos el editor GNU Nano con Ctrl+x.

Habilitamos el archivo creando un enlace entre él y el directorio sites-enabled. Para ello utilizamos:

sudo ln -s /etc/nginx/sites-available/peronismo.com /etc/nginx/sites-enabled/

Al ingresar este comando de organización, quedará habilitado y configurado los dos bloques del servidor para responder las solicitudes según las directivas listen y server_name.
  • peronismo.com: responderá a solicitudes de peronismo.com www.peronismo.com, en tanto
  • default: responderá a cualquier solicitud en el puerto 80 que no coincida con los otros dos bloques.
Para evitar un posible problema de memoria de depósito hash que pueda surgir al agregar nombres de servidor adicionales, será necesario ajustar un valor en el archivo /etc/nginx/nginx.conf. A tal fin editaremos el archivo:

sudo nano /etc/nginx/nginx.conf

Se abirá Nano con dicho archivo. Usamos Ctrl+w para buscar la directiva server_names_hash_bucket_size. Al localizar dicha línea, le eliminamos el símbolo numeral ("#") a fin de descomentar la línea.


...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Tras guardar los cambios con Ctrl+o y salir del editor con Ctrl+x, realizaremos una prueba operativa en busca de posibles errores de sintaxis:

sudo nginx -t

Finalmente, reiniciamos el servidor Nginx para que se apliquen los cambios:

sudo systemctl restart nginx

Con todo esto, Nginx debería proporcionar su nombre de dominio. Podremos comprobar esto visitando http://peronismo.com. Allí, deberíamos ver el siguiente mensaje:

Conclusión

Conforme hayamos instalado y configurado neustro servidor web, contaremos con muchas opciones respecto del tipo de contenido que ofreceremos, y de las tecnologías que deseemos utilizar para crear una experiencia más completa y Justicialista para el Pueblo, que es el verdadero consumo.

martes, 17 de diciembre de 2019

¿Cómo cambio el color del cursor de la terminal de Ubuntu?

El Coronel Juan Perón propuso un encuadre humanista, solidario y cooperativo para la economía nacional, y explicó cómo cambiar la forma y el color del cursor de la Terminal de Ubuntu.

Nosotros proponemos la ayuda mutua, la ayuda del poderoso y del pobre, de un hombre para el otro hombre, la ayuda del pueblo al Estado y la ayuda del Estado al pueblo. Quienes se niegan a colaborar, no tienen sentimiento patriótico para el hermano de la tierra, no tienen sentimiento patriótico para su país, ni interés de colectividad sino interés mezquino y personal. Los países no son grandes sin esa colaboración.

Bajo este esquema solidario se hace ineludible la incorporación de las masas a la escena política, la urgencia por desarrollar la industria como factor indispensable de la independencia nacional, la sindicación, el cooperativismo en todas sus formas de consumo, de crédito, de producción urbana y agrícola, el mutualismo en sus diversas fases, y la previsión social.

Se debe alentar a que cada uno de los ciudadanos pueda acceder a las ventajas que ofrece la propiedad privada. Sin embargo, esta puede pervertirse cuando los beneficios de esta propiedad quedan restringidos a una minoría de privilegiados. Es por ello que, en el plano económico, propendemos un sistema en el que el uso de los bienes que un individuo posea deben estar al servicio del bien de la comunidad.

En la informática de consumo, esto tiene un correlato que no podemos ignorar. En nuestro tiempo, quien alquila un software mensualmente, y además alquila espacio de servidor en el extranjero está haciendo el negocio del zonzo. Si nos dejamos, aparecerán vivos que no sólo nos arrendarán uso y goce de material informático en cómodas cuotas para ser esclavo.


¡Para qué! Gracias a GNU con Linux hemos sido capaces de operar directamente y de forma remota un NAS en nuestro propio equipo, compartiéndolo en caso de ser necesario, y sin pagar los costos en moneda extranjera.

El costo de los materiales estratégicos, cuando están aquí, se reduce sensiblemente. Esto responde al conocido factor que cada moneda depositada aquí, vuelve.  El Software Libre, como herramienta multiplicadora, puede entonces dar una mano fundamental que - junto con la fuerza del Justicialismo,  pueda apalancar la economía hacia ese camino que auspiciamos vigoroso.
El proceder cooperativo oficiará de guía, un cursor que nos marque el camino y nos llame la atención diga cómo dar curso y cómo debemos actuar. La inspiración no deja de recaer en las primeras videoterminales, que determinaron el uso de un caret, o carácter que oficiaba de indicador en la interfaz proyectada en la pantalla. Con el podía determinarse en video el lugar exacto donde el usuario interactuaría (normalmente para introducir texto). En estas videoterminales tradicionales y las primeras computadoras era usual que el cursor presentara la forma de un bloque o cuadrado mediante la técnica de video inverso, y que el mismo parpadeara a intervalos regulares. Esto le permitía una gran agilidad y notoriedad adecuada en una pantalla monocromática de baja resolución.
La naturaleza de este cursor poco poco ha cambiado, y  aunque hubieron de sufrir mínimas alteraciones en su forma y comportamiento, su empleo básico sigue siendo el mismo. La tendencia ha sido convertirlo en una línea vertical poco obstructiva, y si bien este verticalismo suele ser pródigo en resultados, no deja de ser loable que existan otros gustos, o requiramos - por cualquier razón que sea - la posibilidad de alterar el cursor en nuestro sistema operativo GNU con Linux.

A toda necesidad corresponde un derecho, y será el Justicialismo el encargado de hacerlo Realidad Efectiva. Por tal motivo, os enseñaré cómo modificar el cursor en Ubuntu.

El cursor en el Entorno Gráfico
En primer lugar siempre es bueno comprender que la configuración de las opciones de parpadeo del cursor que gobiernan nuestro Escritorio gráfico podrán ser controlarlas desde las opciones del Teclado del sistema. Será sencillo acceder a ellas desde Sistema / Preferencias / Hardware / Teclado.

Esto nos abrirá el cuadro de diálogo de control del teclado, el cual normalmente utilizamos para definir cómo responden sus teclas, la distribucuión idiomática, etcétera.
En particular, en la solapa General podremos definir si queremos un cursor parpadeante en nuestro Escritorio, y en tal caso delimitar su velocidad de parpadeo con el deslizador correspondiente.

En mi caso, favorezco un parpadeo rápido y frenético, pero algunos podrían optar por uno más lento al estilo de las terminales DEC VT 220, que parpadeaban a unos 450ms. Naturalmente, aquí controlaremos estos parámetros a escala de todo nuestro escritorio gráfico en general, pero puede ser una opción para empezar, y tal vez, la única necesaria.

No es secreto para nadie que en nuestro Escritorio gráfico solemos contar con un emulador de terminal para el sistema gráfico de ventanas X, normalmente derivado del inoxidable Xterm. Este emulador de terminal es capaz de operar de una forma ágil cumpliendo la función de una verdadera miríada de clásicas terminales seriales de época, con la conveniencia de mostrar una ventana gráfica. Como tal, no ha sido extraño que los diferentes entornos de escritorio que benefician a nuestro sistema se hayan basado de forma directa en la terminal Xterm, y que lo usaran para realizar sus propias versiones, muy notablemente la Terminal de GNOME Mate y  XFCE.

Estos emuladores de terminal nos permiten editar sus Perfiles de Terminal. Estos nos permiten cambiar el aspecto gráfico y los aspectos de funcionamiento general, de forma de cambiar su estética y los resultados de operación. Normalmente ya cuentan con un "Tema" por defecto que hace a la apariencia de nuestra distribución.

En este caso, conviene crear un perfil nuevo para modificarlo según nuestro criterio. En la terminal desplegamos el menú Editar / Perfiles, y presionamos el botón Nuevo). Tras asignarle el nombre que querramos, en la solapa General podremos asignar el temperamento que tomará el parpadeo del cursor.
Podremos escoger entre Usar las preferencias del sistema (normalmente parpadea al estar activa la terminal y deja de hacerlo cuando no lo está). Las otras opciones son Parpadear Siempre y No parpadear nunca. También podremos escoger la forma del cursor de la terminal (bloque, línea o subrayado).

Vean señores, por medio de estas Configuraciones de Perfil podremos aproximar nuestra estética gráfica de una buena manera, y regular el tipo de cursor estándar.


Modificar el cursor en la terminal

Existen ocasiones donde no queremos modificar el cursor en el perfil de terminal, sino configurarlo directamente en el intérprete de comandos, por medio de un script (para lograr un efecto específico), o bien podríamos querer modificar otros aspectos como el tipo de cursor distinto al cargado en el perfil del emulador de terminal.

Controlar el cursor desde la terminal tiene ciertas ventajas. Por ejemplo, podremos cambiar su color específico.

Un ejemplo suele aclararlo todo, como decía Napoleón. Supongamos que deseamos emular completamente la estética que tenían la terminal del sitema IRIX. Su consola de terminal contaba con letras blancas sobre un fondo azul celeste, toda vez que operábamos un inconfundible cursor fijo de color verde lima.

Gracias a los comandos necesarios podremos controlar forma y color de cursor en un script fácilmente lanzable. En particular, bajo una terminal derivada de XTerm podremos modificar la estética del cursor según los siguientes comandos de organización:

Código para Activar
Resultado de Cursor
echo -ne '\e[1 q'
Bloque parpadeante
echo -ne '\e[2 q'
Bloque fijo
echo -ne '\e[3 q'
Rayita horizontal parpadeante
echo -ne '\e[4 q'
Rayita horizontal fija.
echo -ne '\e[5 q'
Línea vertical parpadeante
echo -ne '\e[6 q'
Linea vertical fija


Igual de fácil será alterar el color del cursor. En Xterm y sus derivados, el cursor tiene el mismo color que el texto en que escribimos. Sin embargo, podremos diferenciar el cursor aplicándole un color.

La manera más sencilla consiste en la orden printf

printf '%b' '\e]12;color\a'
Reemplazaremos color con alguno de los nombres en inglés de los colores, que derivan de la paleta que tengamos. Normalmente os recomiendo utilizar los colores incluidos en la paleta de 16 colores, que es la de mayor compatibilidad-
Si disponen de la paleta extendida de Linux, podrán utilizar:

white black red green blue cyan darkred darkgreen darkblue lightblue pink aqua yellow  lightyellow lime orange purple magenta

Asimismo, en caso de operar dentro de un guión de Bash, también podremos utilizar una secuencia de escape, en forma de la siguiente sintaxis:

 echo -ne '\e]12;color\a'

Siguiendo el ejemplo propuesto, para lograr el cursor de bloque fijo de color verde lima clásico de la terminal de IRIX de las Sillicon Graphics, podremos emplear dos comandos.

printf '%b' '\e]12;lime\a'
echo -ne '\e[2 q'


Naturalmente que al cerrar la terminal, estos cambios realizados al cursor se revertirán, y habremos de introducir nuevamente los comandos si es que queremos tener el mismo resultado.

Como esto es incómodo de hacer, sería útil crear un guión que se ejecute siempre si es que este cambio de color tome visos de permanencia.

A su vez, podremos agregar este guión al final del archivo de inicio de terminal de usuario (normalmente ~/.bashrc). Esto provocará que se ejecute siempre que encendamos una terminal. Supongamos que queremos contar con un cursor de color amarillo y parpadeante toda vez que encendamos la terminal. Crearemos un guión oculto con el editor Nano:

nano ~/.cursor_amarillo.sh

Esto abrirá el editor GNU Nano con un archivo vacío, al cual le pegaremos el siguiente código:

#!/bin/sh
# Pone el cursor de color parpadeante, color amarillo

#colores: white black red green blue cyan darkred darkgreen darkblue lightblue
# pink aqua yellow  lightyellow lime orange purple magenta
echo -ne '\e]12;yellow\a'

#opciones 1=bloque parpadeante; 2=bloque fijo; 3=raya parpadeante 4=raya fija
# 5=linea parpadeante 6=linea fija
echo -ne '\e[1 q'

...acto seguido guardamos el guión con Ctrl+o y salimos de Nano por medio de Ctrl+q. Como todo guión, debemos otorgarle permisos de ejecución por medio del siguiente comando de organización:

chmod +x ~/.cursor_amarillo.sh

Ahora podremos probarlo, ejecutándolo con:

./.cursor_amarillo.sh

Si el resultado nos complace y deseamos que se ejecute siempre, será necesario incorporarlo al final del archivo ~/.bashrc. Para ello ingresamos:

nano ~/.bashrc

Se abrirá el extenso archivo ~/.bashrc. Es importante no alterar nada de lo que exista ya escrito. Simplemente le pegamos al final el siguiente texto:

# Guión del cursor bloque amarillo parpadeante.
./.cursor_amarillo.sh


Naturalmente, guardamos el fichero .bashrc con Ctrl+o y salimos con Ctrl+x