domingo, 28 de enero de 2018

Debug Asyncio async script in PyCharm

Por defecto no se puede debuguear las funciones async de asyncio.

Para activar el debugueo debes añadir lo siguiente:
-E PYTHONASYNCIODEBUG a los parámetros


Instalar VSPDL (Virtual Serial Port Driver for Linux)

*** Probado en Ubuntu 17.10 x86_64
Primero debes descargar el tar de VSPDL desde aquí:


Lo descomprimes en cualquier directorio

Si tienes una versión de kernel > a la 4.13 debes entrar en el directorio que descomprimiste y luego editar el fichero vspm.h que esta en usr/local/vspd-1.49-dist/lib/src/


Debes sustituir la linea 81 que indica:
"typedef wait_queue_t waitq_t;"

y cambiarla por:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
       wait_queue_entry_t wait;       
#else
        wait_queue_t wait;
#endif


Luego vas a usr/local/vspd-1.49-dist/ y ejecutas:
# bash install.sh /usr/local/vspd

Luego arrancas los servicios:
# /etc/init.d/vspm start # /etc/init.d/vspd start

viernes, 26 de enero de 2018

Serial Port Sniffer in Ubuntu with IO Ninja

para visualizar lo que emite un puerto serial sin necesidad de utilizar un cable espía puedes utilizar esta una magnífica herramienta llamada tdevmon en combinación con IONinja:

Instrucciones de instalación:
http://ioninja.com/doc/kb/tdevmon_linux_installation.html



Luego de instalado ve y abre IO Ninja

En este caso el módulo tdevmon.ko instalado en el kernel intercepta la data que se envié y se reciba desde el puerto serial (en este caso /dev/ttyUSB0)



Ejemplo de salida:




jueves, 25 de enero de 2018

Correr un programa en segundo plano al iniciar Windows 10

Si deseas correr una aplicación en background al iniciar Windows 10, sigue los siguientes pasos:

1. Tecla windows + R y ejecutar shell:startup


2. En la carpeta que se abrió a continuación, crea un archivo llamado boot.bat


3. El archivo boot.bat debe contener estas líneas de código:

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")              >>%temp%\ghost.vbs
Echo WshShell.CurrentDirectory = "D:\Documents\PythonProjects\mqtt-ngrok" >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "main.py" ^& Chr(34), 0           >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                                    >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs


Nota: En mi caso estoy ejecutando un script python en segundo plano.

miércoles, 24 de enero de 2018

CI/CD Pipelines con Jenkins y Kubernetes

Aquí hay un video bien interesante que te explica como hacer deployment con Jenkins y Kubernates.

Se titula: Building CI CD Pipelines with Jenkins and Kubernetes.

https://www.youtube.com/watch?v=288rTpd1SDE

lunes, 22 de enero de 2018

Enable cors in flask

from flask_cors import CORS
app = Flask(__name__)
CORS(app)

Resolver Mate Main Menu

Si quieres editar, customizar los lanzadores (links) del menu de mate, y no tienes como hacerlo, es porque seguramente te falta este paquete:

apt install mate-menu


Resolver caja terminal - abrir aquí

Si te falta el "open terminal here", se resuelve instalando este paquete:

apt install caja-open-terminal

viernes, 12 de enero de 2018

FIX "adduser: El grupo `libvirtd' no existe." in Ubuntu 17.10

Si ejecutando
adduser hector libvirtd

La salida indica:
adduser: El grupo `libvirtd' no existe.

Es porque en los nuevas versiones de libvirt el grupo ha cambiado de nombre de "libvirtd" a libvirt

Por lo que debes hacer
adduser hector libvirt

(en vez de "adduser hector libvirtd"

jueves, 4 de enero de 2018

Valores máximos de los tipos int y float en Arduino

En float.h tienes FLT_MAX que indica el máximo valor que puede tomar un float
En limits.h tienes INT_MAX que indica el máximo valor que puede tomar un int

Instalar StarUML Full en ubuntu 17.10

Instala libgcript11 desde los repos de canonical

# wget http://launchpadlibrarian.net/160013007/libgcrypt11_1.5.3-2ubuntu4_amd64.deb
# apt install ./libgcrypt11_1.5.3-2ubuntu4_amd64.deb

Descarga el .deb de aqui: http://staruml.io/download e instalalo

# apt install ./StarUML-v2.8.0-64-bit.deb


Luego vamos a editar el fichero LicenseManagerDomain.js

nano /opt/staruml/www/license/node/LicenseManagerDomain.js

Buscamos la función "validate" y la cambiamos por esta:
   
    function validate(PK, name, product, licenseKey) {
        return {
            name: "hector",
            product: "StarUML",
            licenseType: "vip",
            quantity: "unlimited",
            licenseKey: "pussies"
        };
    }

Luego guardamos e iniciamos StarUML y vamos a Help -> Enter License y escribimos cualquier cosa en los campos y le damos ok.


miércoles, 3 de enero de 2018

Fast upload nodemcu firmware with Visual Studio code and PlatformIO

La carga del firmware para el nodemcu es lenta.
Para hacerla más rápida debes agregar lo siguiente a tu fichero platformio.io

upload_speed = 921600


Se puede ver como se pasa de 30.86 a 9.87 segundos