Algunas veces he tenido que habilitar el acceso a un backend que se encuentra localmente aún en desarrollo para que pueda ser accedido por usuarios fuera de la red local, y esto se puede convertir en un problema ya que no siempre se tiene acceso al router, y a la posibilidad de abrir los puertos requeridos.

Para solventar esto, se pueden usar cualquiera de estas 2 herramientas, para crear un tunel de datos habilitado con un dominio temporal, permitiendo probar las APIs desde fuera de tu red.

https://localtunnel.github.io/www/

Esta herramiente desarrollada en node.js permite tomar un puerto local y exponerlo en una url dinámica. Únicamente se requieren activar el servicio localmente y ejecutar lo siguiente:

npm install -g localtunnel

Para instalar la librería

lt --port 8000

Para exponer el servicio activo (en este caso en el puerto 8000) hacia el internet

https://ngrok.com/

Este servicio, funciona de manera similar al anterior, pero permite (mediante pago) agilitar el deployment de sistemas backend manejando toda la seguridad, balanceadores de carga y demás.

Tiene un tier free que puede ser usado para temas de desarrollo y pruebas sencillas

Pues un hack rápido.

Quería conectar mi transmisor de RC al computador, para poder usar los simuladores de radio control, especialmente el VRC Pro, usando los componentes que tenía a la mano.

Tenía una placa Digispark, que usa un micro ATTINY85 emulando un dispositivo Joystick HID. Conectándolo al receptor RC podemos usar la pistola del transmisor, como un joystick en el computador (inalámbrico!) y usarlo dentro del simulador.

El código fuente, y el esquema de conexión , se encuentran en mi repositorio de github https://github.com/patolin/rc-receiver-joystick

 

Existen ocasiones en las que debemos automatizar tareas en nuestras labores diarias, y me ocurrió que debía convertir cerca de 4000 archivos PDF de color a escala de gris.

Utilizando bash (bajo linux, o utilizando la interfaz de Linux que provee Windows 10), podemos crear un par de scripts que nos ayuden a automatizar esta tarea.

Primero debemos crear en la carpeta donde tengamos almacenados los PDFs, un archivo que se va a llamar “conviertegris.sh” que contendrá el siguiente código:

#!/bin/bash
gs -sOutputFile=pdfgris.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@

y luego le daremos permisos de ejecución mediante el siguiente comando en la consola

chmod +x conviertegris.sh

Si tuvieramos un solo archivo PDF que quisieramos convertirlo a escala de gris. podríamos utilizar el script de la siguiente manera:

./conviertegris.sh miPDFaColor.pdf

y esto nos generará un nuevo archivo pdf llamado pdfgris.pdf que contendrá la versión en gris de nuestro archivo original.

Ahora, para automatizar este proceso para todos nuestros PDFs, vamos a crear otro script que se va a llamar “conviertelote.sh”, que contendrá el siguiente código:

#!/bin/bash
find ./ -name "*.pdf" | sed 's|./||' > listapdf.txt
mkdir pdfgris
for file in $( < list .txt); do ./conviertegris.sh "$file"; mv pdfgris.pdf ./pdfgris/"$file"; done
rm listapdf.txt

Al ejecutar este script mediante el comando bash conviertelote.sh, empezaremos a ver que el proceso arranca y dentro de la carpeta pdfgris empezaremos a ver nuestros archivos convertidos.

Con esto, y luego de un par de horas, habremos terminado la tarea, sin tener que pasar por el suplicio de abrir cada archivo en un editor de PDFs y guardarlos en escala de gris, ahorrándonos muchisimo tiempo y trabajo.

Antes de continuar, quiero dejar muy claro, que no me hago responsable por el uso (o mal uso) del código presentado en este post. Todo ésto fue desarrollado con un fin puramente académico, sin fines de lucro. Siéntanse libres de usar el código, pero no me responsabilizo de cualquier implicación legal que su uso pudiera acarrear.

Descargár música sin tener el derecho sobre la misma es ilegal!! Nunca olviden eso.

Ahora si, sabiendo a lo que vamos, para una de mis asignaturas del master, una de las tareas era explotar un API de algún sitio web (facebook, twitter, linkedin, etc), para extraer información, analizarla y obtener beneficios de la misma: Por ejemplo, y a breves rasgos, pude realizar un análisis del sentimiento de los tweets generados en determinado momento, en paises donde se habla español, que pueden visualizarlo en este enlace.

Para ir un poco más allá, se me ocurrió la idea de extraer el API de un sitio que no tenga una interfaz de programación documentada. El objetivo: El sitio de música http://music.163.com

Este sitio (chino) no tiene un API documentada, pero mediante el uso de algunas herramientas web, como FireBug, pudimos obtener las llamadas que se realizan para obtener datos de artistas, discos y canciones.

Este script está escrito en Python 2.7, y para ejecutarlo basta con descargar el archivo desde este enlace, descomprimirlo, y ejecutar desde la línea de comandos lo siguiente:

python musica.py

El menú presentará 3 opciones de búsqueda: por autor, por disco o por canción. Bastará con escoger el tipo de búsqueda, seleccionar el item de las posibles opciones encontradas, y descargar el item escogido.

Espero les sea de utilidad 😀 y recuerden! No descarguen música ilegal!

Para más información, pueden ingresar a mi repositorio en GitHub