Category Archives: Uncategorized

¿Cómo manejar varias PC con un sólo teclado y mouse?

No es infrecuente encontrarnos con técnicos que necesitan manejar varias computadoras en su escritorio.

Por ejemplo puede que tenga en una instalado un Sistema Operativo Linux para realizar actividades de monitoreo, y un equipo adicional separado para testear una determinada aplicación.

Puede que tenga dos máquinas: una realizar sus actividades personales (banca, correo electrónico, chats, juegos, VPN personal para conectarse a herramientas o sistemas de uso personal, sistema de manejo de claves personal, etc); y en la otra máquina realizar sus actividades laborales (programación, acceso a sistemas confidenciales, conexión a la VPN de la empresa que no es compatible con la VPN personal que tengo en la otra máquina, chat propio de la empresa, sistema de manejo de claves de la empresa, etc), de esta forma tiene aislados las aplicaciones en dos sistemas completamente diferentes.

En fin, puede existir una variedad de razones por las que una persona tenga que manejar varias computadoras. Y se vuelve molesto el tener que mantener en la misma mesa dos teclados y dos mouse (si es que maneja dos computadoras). Tener que mover todo el cuerpo para alcanzar el teclado de la izquierda para responder a un mensaje que le llegó por telegram, volver al teclado de la derecha para seguir programando, regresar al teclado de la izquierda para imprimir una tarea para los hijos, etc.

input-leap

Bueno, es posible usar una herramienta llamada input-leap, la que es un fork de barrier.

Esta herramienta nos permite manejar varias computadoras, con tan solo un mouse y un teclado. Esta herramienta simplemente permite extender el mouse entre las dos computadoras, si mueves el mouse hacia la computadora de la izquierda, el teclado y mouse trabajarán en la computadora de la izquierda. Si mueves el mouse al extremo derecho de la máquina izquierda, este se cambiará a la máquina de la derecha y en ese momento el teclado y mouse trabajarán en la máquina de la derecha.

De esta forma, simplemente desplazamos el mouse hacia un extremo de un monitor, y el mouse “mágicamente” pasará a moverse en el otro monitor y el teclado funcionará en esa máquina.

Imagínate que tengas el siguiente escenario:

Laptop de la izquierda, con un monitor adicional a la izquierda de ella.

Laptop de la derecha, con un monitor adicional a la derecha de ella.

Tienes entonces 4 monitores, los 2 de la laptop de la izquierda y los dos de la laptop de la derecha.

La laptop de la derecha le llamaremos el Servidor, la máster. Esta es la que tiene el teclado y mouse externo en mi ejemplo, y bueno, también seguramente tendrá el teclado y mouse incorporados de la laptop.

La laptop de la izquierda le llamaremos el cliente, la esclava. Esta puede tener su propio teclado y mouse en la laptop, que siempre seguirán funcionando pero solamente para ella, no para la máster.

Configurando input-leap en el servidor

Instalamos el input-leap:

sudo dnf install input-leap

Al arrancarlo, podemos mostrar la ventana principal (Click derecho -> Show). Notar que en mi caso pueden aparecer referencias a barrier que es el nombre anterior. input-leap es compatible con versiones de barrier.

En la pantalla principal vamos a presionar el botón que dice “Configure Server…”

Nos mostrará la siguiente ventana:

Es en esta ventana donde vamos a definir dónde va mi servidor (en mi caso es el que tengo en azul) y dónde va el cliente (el que está a la izq del servidor). Para ello podré arrastrar el iconito de monitor que aparece arriba a la derecha.

El servidor ubicará, reconocerá al cliente por su nombre. En mi caso el cliente se llama “lactoc.local”. Anoten ese nombre que ya lo verán en la próxima sección.

Luego vamos al TAB “Advanced server settings”:

En este TAB podemos hacer varios cambios interesantes. Sobre todo te comento que actualmente hay un bug en el input-leap que el servidor deja de responder repentinamente. Esto encontré que es cuando la opción “Enable clipboard sharing” está activada, por lo que en mi caso siempre deshabilito esa opción.

Clipboard sharing lo que hace es permitir que lo que uno copie en el cliente, pueda ser pegado en el servidor, y viceversa! Es un feature muy bueno, pero incluso hasta por seguridad mejor no tenerlo, para evitar por error pegar algún texto de uno en el otro que no se deba (contraseñas por ejemplo).

Yo le tengo marcada la opción “Switch after waiting” 50ms. En este caso lo que hace es que el mouse no se va a desplazar suave, mágicamente, de un equipo al otro sino que “tropezará” durante 50 milisegundos, antes de cambiarse de equipo. Nada del otro mundo, me da igual tener esa opción desactivada o activada, no cambia el rumbo de mi vida.

Bounce on double tap: No la uso, pero impide que te desplaces a la otra pantalla excepto que golpees con el mouse el borde de la pantalla dos veces seguido. Esto puede ser útil cuando trabajas con ventanas muy al borde, a veces sucede que recuestas el mouse a un borde antes de dar click (que lo pegas al borde), si input-leap ve que llegaste al borde, te pasa automáticamente al otro equipo. Con este “doble golpe” evitas que se pase automáticamente. Yo NO lo uso. Pero es cuestión de gustos.

Una vez guardamos estas configuraciones, podemos ir al menú de la pantalla principal, opción “settings” donde podemos escoger si minimizar la aplicación, si ocultarla al arrancar y/o si quieremos arrancarla al iniciar la sesión gráfica. En mi caso tengo las 3 marcadas. También sugiero cerciorarse que “Enable SSL” esté activado, para que la comunicación viaje cifrada entre un equipo y el otro.

Si tienes el firewal activado en el servidor, es importante que abras el puerto 24800/TCP, de lo contrario el cliente no se podrá conectar a él!

Configurando input-leap en el cliente

Instalamos el input-leap

sudo dnf install input-leap

Al arrancarlo, podemos mostrar la ventana principal de input-leap (noten que en mi caso me sigue saliendo el nombre anterior “barrier”, input-leap es compatible con clientes barrier.

En este caso solamente debemos configurar la IP del servidor (Server IP). En mi caso el servidor que configuramos anteriormente tiene la IP 192.168.1.80. Luego de esto podríamos presionar en el botón de Start, pero no lo hagas todavía, veamos algunas cosas más.

Si deseas mayor seguridad en la comunicación, sugiero que conectes ambas computadoras a través de un cable LAN y en “Server IP” pongas la IP de la LAN del servidor. A veces si comunicamos al cliente y al servidor por WiFi, puedes notar demoras en la comunicación, quizá porque el WiFi está muy lejos, o saturado, etc. De ser este tu caso te sugiero conectar a ambos equipos por la LAN para que no hayan demoras.

Previamente a iniciar (Si ya iniciaste no hay problema, dale en “Stop”), sugiero revisar las opciones del menú, específicamente las de propiedades (Settings):

  • Screen name: Es cómo se va a identificar el cliente ante el servidor. Es importante que el servidor sepa cómo se llama el cliente ya que en base a su nombre es que logra ubicarlo en la posición correcta (a la izq, a la derecha, arriba, etc).
  • Claro que puedes escoger minimizar la aplicación, minimizarla al arrancar, y arrancar InputLeap al iniciar. Sugiero verificar que la comunicación sea por SSL (Enable SSL).
  • No te olvides que el cliente se conectará al puerto 24800/TCP del servidor. Así que cerciórate que en el firewall del servidor tengas abierto el puerto 24800/TCP sino el cliente no se podrá conectar a él.

Otros detalles

input-leap no solamente funciona entre equipos Linux, también funciona con equipos Windows y MacOS. De hecho un equipo puede ser, por ejemplo, Linux y el otro Windows. Yo personalmente no lo ha probado, pero sí es multiplataforma.

Seguramente se pueden conectar más de 2 computadoras. Yo no lo he probado, pero es un buen ejercicio, quizá una a la derecha, otra a la izquierda y una tercera encima de la de la máquina de la derecha. No sé, opciones hay muchas.

Espero hayas disfrutado este post y que me comentes qué tal te fue.

Running RS-HFIQ Under Linux (Raspberry PI4)

I have been running RS-HFIQ under raspbian and also under ubuntu Linux on a Raspberry Pi3 and currently under Raspberry Pi4. This is a very raw explanation on how to make it work RS-HFIQ under linux so I can use it as a guide in case I found myself having to reinstall it.

Here is my current Hardware:

As you can see I’m running it in Ubuntu 20.04 LTS on a 4GB RAM RPI 64bits (aarch64). But I have also ran it under raspbian 32bits (for raspi 3) as well as under Fedora Linux

The Input and output is being made via a StarTech USB sound card (recommended by the author of RS-HFIQ). Exactly like this one https://www.startech.com/en-us/cards-adapters/icusbaudio2d

The winning hand here is to be able to install quisk as well as wsjt-x and make them both work together.

How I connected the RS-HFIQ to the USB sound card? Well I followed the diagram in this link: https://sites.google.com/site/rshfiqtransceiver/rs-hfiq-technical-information-site/faq-and-troubleshooting?authuser=0

Here is a picture of how to connect it: IQ OUT RX to MIC, and IQ IN RX to the headphones.

On the raspberry pi4 I installed ubuntu 20.04 LTS from here. You may install the latest DESKTOP version found here. If you install the SERVER it will come up in text mode only, so you will have to install the graphical packages. If you are unexperienced, you better install the DESKTOP version.

Here is my LXDE desktop for my Ubuntu 20.04 in my raspi4

Of course you will notice there are several tasks already running (WSJT-X and QUISK). We will work on that, later,

I then proceed to install quisk, from the quisk website itself: https://james.ahlstrom.name/quisk/

I simply readed the whole page, and then proceeded to install quisk. https://james.ahlstrom.name/quisk/docs.html#Installation (look for the python3 install method in Linux, not the python2).

I’m pretty sure there was some package missing in the instructions but it was quite simple to find out and install it. Sorry, I can’t recall right now.

I tried then to start quisk by typing “quisk” in the linux terminal. It started, now you must configure it

  • Click on “Radios” TAB, then chose to add name the new radio and name it, for example: RS-HFIQ”

A new TAB with the chosen name will appear to the Right (See the TAB *RS-HFIQ* in my case. Ok, click that TAB.

Now download hardware_usbserial.py from here https://github.com/dl1ksv/rshfiq take note of where you downloaded it. In my case I simply downloaded to /home/ubuntu/ as my username is “ubuntu”. So the full path is /home/ubuntu/hardware_usbserial.py

Adapt, change the option “Hardware file path” under *RS-HFIQ* TAB to fit the place where you downloaded the file, in my case /home/ubuntu/hardware_usbserial.py

Now click on the “Sound” TAB and try to match exactly the options shown in the following image. Notice that, maybe the alsa hw:X,0 may change, in my case it is hw:2,0 but in your case X may be, for example, 1 (hw:1,0).

Under remote, match the “Remote” TAB options to the ones shown in the following screen capture:

I did not recall having changed anything else. Just clicked the buttons to configure the mode to DGT-USB, the BW to 3200 and the start option to “Config” in the main window. Oh, and AGC as I can see now.

One important thing to mention here: If you notice an error (in red characters) saying “Stream error: pulse Monitor of QuiskDigitalInput”, that usually means that quisk was started before the QuiskDigitalInput virtual sound card was created. Simply close Quisk and open it again.

Here you will notice the red messages:

Here is quisk after you close it and reopen it, as you may see, the error message have dissapeared:

I then install wsjt-x:

sudo apt-get update && sudo apt-get install wsjtx

In my case I compiled the latest version (currently 2.4.0) but using the stock version from ubuntu should be ok.

After installing wsjtx, open it and compare/adjust the settings:

Under radio settings, try to configure it like this:

Under “Audio” configure it like this:

The rest of the settings tab is up to you to customize them

After configuring it, you will be able to change bands, click on tune, receive stations, and also make calls.

I recall there was an issue with earlier versions of RS-HFIQ and a firmware upgrade must be done in order for digimodes to properly work. This issue is outside the scope of this article, just bear in mind that you must be using version 3.2 or newer. In case you have a version <3.2, check the instructions for upgrading here: https://sites.google.com/site/rshfiqtransceiver/rs-hfiq-technical-information-site/arduino-sketch?authuser=0

Not enough power? You will probably want to check the audio output values. I set them to 100% using pulseaudio

Compiling WSJT-x for ubuntu 20.04 (arm64)

This small tutorial will show you how to build and install wsjt-x for your ARMBIAN. In my case I have an OrangePI PC board and armbian buster desktop. But this tuto should work for any other board. It should also work for any other Linux and architecture. E.g.: raspios, debian, ubuntu, etc.

I followed this tutorial for Linux Mint:

http://kb4lhp.blogspot.com/2018/12/recipe-for-building-and-installing-new.html

Lets start by installing some requirements:

sudo apt-get install build-essential checkinstall texinfo gfortran libfftw3-dev qt5-default qttools5-dev qttools5-dev-tools libqt5svg5-dev qtmultimedia5-dev asciidoctor libqt5serialport5-dev libqt5multimedia5 docbook-xsl xsltproc libxml2-utils dpkg cmake libusb-dev libusb-1.0 libudev-dev libboost-all-dev

Then download the latest tgz from https://physics.princeton.edu/pulsar/K1JT/wsjtx.html ex;

wget https://physics.princeton.edu/pulsar/K1JT/wsjtx-2.3.1.tgz 

Lets extract the contents of this package and cd into the directory:

tar zxf wsjtx-2.3.1.tgz
cd wsjtx-2.3.1

And then, lets configure and build wsjtx:

cmake -DWSJT_SKIP_MANPAGES=ON -DWSJT_GENERATE_DOCS=OFF .
cmake --build . -- -j4

This process will take time depending on how fast is your CPU. After it finished, we will invoke the next command in order for it to build the .deb package. Pay attention you will have to modify option number 10:

sudo checkinstall

This package will be built according to these values: 

0 -  Maintainer: [ [email protected] ]
1 -  Summary: [ WSJT-X version 2.3.1 compiled by HC6PE ]
2 -  Name:    [ wsjtx ]
3 -  Version: [ 2.3.1 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ armhf ]
8 -  Source location: [ wsjtx-2.3.1 ]
9 -  Alternate source location: [  ]
10 - Requires: [ libqt5multimedia5 ]
11 - Provides: [ wsjtx ]
12 - Conflicts: [  ]
13 - Replaces: [  ]
Enter a number to change any of them or press ENTER to continue: 

in here you enter “10” and add “libqt5multimedia5” (without the quotes). Then just continue and it will build the .deb:


Done. The new package has been installed and saved to
/home/radio/wsjtx-2.3.1/wsjtx_2.3.1-1_arm64.deb

Lets install it!

radio@pisdr:~$ sudo dpkg -i ~/wsjtx-2.3.1/wsjtx_2.3.1-1_arm64.deb
(Reading database … 112570 files and directories currently installed.)
Preparing to unpack …/wsjtx_2.3.1-1_arm64.deb …
Unpacking wsjtx (2.3.1-1) over (2.3.1-1) …
Setting up wsjtx (2.3.1-1) …
Processing triggers for man-db (2.7.5-1) …

And… it works!

¿Cómo activar consola serial en CentOS-7?

Esto puede no funcionar para CentOS-8

  • Edito /etc/sysconfig/grub
  • en GRUB_CMDLINE_LINUX agrego: console=ttyS0
  • En GRUB_TERMINAL_OUTPUT agrego: serial
  • En la línea de comando: stty -F /dev/ttyS0 speed 9600
  • Ejecuto: grub2-mkconfig -o /boot/grub2/grub.cfg
  • systemctl enable --now getty@ttyS0
  • Reinicio la VM: reboot
  • Desde el hospedero puedo ejecutar: virsh console vm
  • Para salir de la consola presiono: CTRL 5

Instalar KVM en CentOS-8 Básico

Este es el proceso a seguir para instalar KVM en una instalación básica de CentOS-8

Esta instalación vendrá con cockpit para poder manejar las máquinas virtuales más cómodo

dnf -y install  epel-release

dnf -y groupinstall "Host de virtualización"

dnf -y install screen virt-manager cockpit-pcp \
cockpit-storaged cockpit-dashboard \
cockpit-machines xorg-x11-xauth

systemctl enable --now libvirtd cockpit.socket

Si todo fue bien, procedemos a reiniciar y validar podemos ingresar al cockpit : https://TUIP:9090

Una vez dentro de cockpit, cambiamos en “Sistema” el “Perfil de Rendimiento” a “virtual-host”

En la sección “Networks” de “Virtual Machines” podremos validar que, efectivamente, el bridge está activo:

Si no estuviera activo, debemos seguir lo indicado en nuestro otro post aqui.

En “Storage Pools” de la sección “Virtual Machines” procedemos a agregar el pool por defecto. En nuestro caso estará en /var/lib/libvirt/images y le llamaré “default” pues en caso de tener varios pools, el pool llamado “default” es el que cockpit escogerá:

Can someone learn more than 10 programming languages?

Before starting university I had a solid knowledge of MSX Basic (as well as GWBasic, visual basic after the university and Gambas several years later).

Back at University we learnt:

  • Pascal (turbo pascal, borland pascal, borland delphi)
  • Assembler (in real mode)
  • Prolog
  • Lisp
  • C
  • FoxPro (and dbase and foxbase)
  • ohhhh and SIMAN.
  • After the University:
  • Progress 4GL
  • Perl
  • Python
  • Shell (bash) Scripting

not a big deal. The point is knowing the algorithms, learning how to think and use the language structures. Well:Except for prolog, it was sooo… different.

Anyway: I no longer program these days, but if I wish to… I can simply learn a new one. But the point is making a good use of them.

¿Qué debería decir si viajo y caigo en público y la gente me ve?

Si te caes? Levántate y ríete de ti mismo. O al menos levántate.

El otro día una mujer bien vestida de blanco se bajó de un enorme 4×4 mientras yo iba pasando. No midió bien y se fue de hocico para alante.

Logró salvar la situación lanzando su mochila para alante (se quitó peso) pero tropezó con la acera mientras lo hacía.

De todas formas logró subir trastabillando y de forma apresurada a la acera hasta que… tropezó con la mochila que tenía enfrente y ahí terminó en todo el piso, regada y abrazada a la mochila… las dos acostaditas sobre la acera. Su ropa blanca … ese día no debe haber sido el mejor.

Y que iba a hacer? Quedarse ahí llorando? Nada. Se levantó y ya.

Mientras yo seguía manejando y riéndome para mis adentros. O no iba a poder reírme? Claro que no asomé la cabeza para decirle VACAAAAA. No. Soy Educado y ya no tengo 15 años.

Pero no se me quita de la cabeza sus esfuerzos por no caer. Aquello fue en cámara lenta.

¿Por qué la iglesia católica condena la homosexualidad?

2 Samuel

1:26 Angustia tengo por ti, hermano mío Jonathán, Que me fuiste muy dulce: Más maravilloso me fué tu amor, Que el amor de las mujeres.

La iglesia reacciona mucho más lentamente que el resto de la sociedad a los cambios, a aceptar algunas cosas.

Venga, seamos claros: hace 20 años la homosexualidad era vista, al menos, con sorna por la gran mayoría de la población. Si tienes más de 30 o 40 piénsalo: ¿acaso no te reías cuando veías a alguien así? Seguro saldrán algunos adelantados a decir que no, que ellos siempre fueron respetuosos, tal y como son hoy.

Hoy si te mofas, te ríes o le dices motes a los homosexuales seguramente lo dirás en privado y en voz baja, porque ya hemos ido cambiando la forma de pensar y ya no es así de que la gente lo grite a viva voz.

Y ni hablar de las agresiones físicas a que eran sometidos a veces… y nadie decía nada! ¡El que no se riera era un marica igual! así que a reírse aunque te diera tremenda pena. Hoy si pasa algo así se arma un escándalo mundial.

Tenemos amigos homosexuales, que han salido y que no han salido del closet. Y con todos conversamos normal y nada pasa! Hay hasta una pareja casada. Por cuánto en la vida hubieras concebido, pensado solamente por un instante que eso iba a ser posible hace … 20? 30 años? Te hubieras reído a carcajadas.

Hasta en las legislaciones de muchos países era penado (https://www.researchgate.net/publication/327163928_HISTORIA_LEGAL_DE_LA_HOMOSEXUALIDAD_EN_EL_ECUADOR) el homosexualismo hasta el otro día!

La iglesia es una idea de seres humanos, siguiendo reglas que impusieron en su momento seres humanos, así que seguramente no hará nada muy diferente a lo que los seres humanos.

Mi opinión es que posiblemente a medida que pase el tiempo la iglesia les irá tolerando, aceptando, etc. Es una institución de muy lento accionar, les toma tiempo mover todo el aparado burocrático, el volver a leer las escrituras, interpretarlas, llevarlas e encíclicas, etc. Pero seguro lo harán

Y no será el único caso en que cambió de pensamiento, a un par de soñadores los amenazó, juzgó y condenó a la hoguera por atreverse a decir que la tierra no era el centro del universo y cosas absurdas así. Y mira, ya hoy se aceptan muchas de esas cosas.. pero pasaron años o siglos.

¿Qué se espera en Cuba con Miguel Díaz-Canel?

Es una población relativamente grande por lo que seguramente habrán millones de esperanzas.

Qué esperaría yo, racionalmente hablando. Esto es: no diré algo que sé que posiblemente no se cumplirá.

Díaz-Canel pienso que atravesará dos etapas al menos:

1- unos 3 años bajo la mirada vigilante de Raúl desde el puesto de primer secretario del partido

2- la siguiente en la que no tendrá “la guía” de Raúl sino que tendrá que actuar mucho motu-propio

Durante la primera etapa no deberíamos esperar cambios bruscos ni nada por el estilo (esperar es una cosa, que ocurran efectivamente es otra). Mas bien lo que podríamos es notar mejoras desde el punto de vista administrativo (no en temas políticos), por ejemplo :

Se deben comenzar a resolver muchos problemas atrasados que el anterior gobernante, seguramente por el cansancio de la edad no dió solución. O por no meterse en líos que requerían más energía.
Debe mantener entretenida a la población, por lo que no sería raro esperar que abra un poco la llave aumentando las opciones de realizar el trabajo propio o relajando las reglas (permitiendo más cantidad de empleados o cosas así).
Mejorando el sistema impositivo, para lograr que un mayor porcentaje pague impuestos y que estos no busquen ser castigadores sino mas bien generales a todos.
Mejorando el sistema de aporte a la seguridad social (diferenciando al que aporte del que no aporte). Esto también podría aplicarse a los subsidios
Igualmente podría intentar facilitar los trámites y las posibilidades de los emigrados cubanos para que puedan ver las opciones de invertir/vivir en Cuba como válidas y lograr ingresos de divisas, etc.
Mejorar ciertos aspectos super retrasados como la venta de autos, mayoristas de comercio, importaciones sin muchas trabas, menos trabas o ninguna a la actividad agrícola, construcción y/o financiamiento para ella, facilidad de conectividad a internet, etc. Cosas que se pueden lograr y que podrían generar ingresos por impuestos
Unificar la moneda, que sigue siendo algo bastante… álgido… por donde quiera se le vea. De forma tal que puedan sincerarse gradualmente los salarios.
No sé, son varias cosas que se me ocurren, y quizá no sean las únicas, lo importante es comprender que deben ser temas administrativos, no políticos, espero que pueda ir separando un poco la política del día a día. A la final lo eligieron para manejar el país.

Luego de este primer periodo, en el que debe buscarse la confianza y el respeto de un porcentaje de la población que le conoce muy poco… entonces habrán muchas variantes más las cuales ahora no me atrevería a hablar porque no le conozco.

Ah, otra variante es que podría caer en el mismo quasi-inmovilismo que ha habido hasta ahora .. espero que no sea así porque la población necesita un guía, alguien que les hable, que les convenza…aunque no lo sientan así es importante que el que está al mando se muestre, exprese ideas, converse en público o en la TV, etc.

Si se fijan el guía, al que hay que seguir, sigue siendo el ex-presidente fallecido.. el país como que sigue un discurso de alguien que poco a poco los jóvenes no recuerdan o no conocieron, y eso de no tener un guía puede poner difícil la cosa en un momento que se necesite.

¿Qué puede amenazar esta primera etapa?

Si toma decisiones muy “raras” e incompatibles con el pasado podremos tener nuestro primer presidente negro.
Si comienzan a haber presiones de la gente que no le apoya y que está apurada por hacerle resbalar.. podría volver a un extremo que no todos desean y haría perder tiempo a los cambios que muchos esperan/necesitan.