General

  • Configurar una Raspberry Pi como NAS con Open Media Vault

    Tenía por ahí una raspberry pi que no estaba haciendo mayor cosa, así que decidí armar un NAS pequeño, ya que en mi red de la casa tenía unas cuantas necesidades puntuales:

    • Necesitaba pasar archivos entre los computadores / teléfonos / tablets y era cansón usar un flash usb para eso
    • Tenía que ser de bajo consumo porque iba a estar operativo 24/7
    • Tenía que configurarse de manera sencilla (no ando con tiempo para estar trasteando con Samba y sus configuraciones)
    • Debe permitir compartir videos, películas y música en la red (para la TV principalmente). No voy a mencionar las fuentes de dicho contenido jeje

    Buscando un poco encontré que Open Media Vault cumple las necesidades. Para instalarla en la raspberry, necesitaremos primero descargar Raspbian Lite para tener una instalación básica del SO, y luego ejecutar los siguientes comandos:

    wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
    wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | sudo bash

    La instalación demora un poco, y al final nos pedirá configurar un usuario por defecto.

    Finalmente, recomiendo estos dos plugins:

    • openmediavault-sharerootfs para usar el mismo disco del SO para las carpetas compartidas
    • openmediavault-minidlna para compartir archivos multimedia en la red
  • Configurar la pantalla tactil de una netbook en ubuntu

    Al instalar Ubuntu en una netbook con touch screen, puede suceder que el sensor de posición no funcione correctamente. Para corregir esto se debe editar el archivo

    /etc/udev/hwdb.d/60-sensor.hwdb

    y agregar el siguiente codigo:

    sensor:modalias:*
      ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
  • Cómo unir todos los commits en una rama, antes de hacer un merge?

    Pues si usas GIT para el control de versiones de código, y Trunk Based Development como metodología, hay ocasiones en que tu rama puede llegar a tener un monton de commits pequeñitos relacionados con un feature específico (yo personalmente hago commit cada cambio chico jeje), así que en algunos casos es necesario hacer un squash de los cambios y e incluir todos los ajustes en un único commit.

    Si quieres hacerlo para todos los commits de una rama específica, puedes ejecutar los siguientes pasos:

    Nos pasamos a la rama principal, hacemos pull, y creamos una nueva rama temporal

    git checkout main 
    git pull 
    git checkout -b  rama_temporal main

    Obtenemos los cambios de nuestra rama de trabajo, y los unimos en un solo commit

    git merge --squash rama_de_trabajo

    En caso de que existieran conflictos, se deben corregir y hacer un commit de dichos cambios con:

    git commit

    Finalmente podemos hacer un reset en nuestra rama de trabajo, con la rama temporal creada previamente. Hacemos push de los cambios y si es necesario, borramos la rama temporal

    git checkout rama de trabajo 
    git reset --hard rama_temporal 
    git push -f 
    git branch -D rama_temporal

    Listo! eso es todo!

  • Cuadro de mandos para MS Flight Simulator

    Para mejorar la experiencia de vuelo en el Microsoft Flight Simulator, siempre será necesario tener el hardware adecuado. Un buen joystick no es suficiente ya que el throthle, mezcla, radio y opciones adicionales también pueden ser controladas por hardware externo al teclado.

    Para esto, les comparto un cuadro de mandos que diseñé y que utiliza un arduino pro micro (o leonardo) para implementar un dispositivo de juego HID con 4 botones, 4 switches, 3 controles analógicos (uno conectado a un switch multiposición), y un encoder rotatorio para controlar la rueda de trim del elevador. Todos completamente configurables desde el simulador, para controlar distindos mandos como freno, tren de aterrizaje, trim de alerones y cola, etc. La experiencia de vuelo mejora un 100% con este cuadro de mandos básico.

    La caja fue diseñada en FreeCad, y si alguien está interesado en los modelos STL, puede dejarme un comentario en el video.

    El código fuente se encuentra disponible en el repositorio https://github.com/patolin/arduino_fs_controls

  • Final de la Copa LRP en Cuenca

    Les dejo unos videos de las mangas finales, de la Copa LRP en Cuenca, Ecuador

    Novatos

    Intermedios

    Expertos

  • Cómo convertir (miles de) archivos pdf a escala de gris, con un solo comando

    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.

  • Manual de Introducción a Python

    Como parte del taller de Python que dicté en la Universidad Politécnica Salesiana, desarrollé un pequeño manual de Introducción a Python, para se aplicado sobre la Raspberry Pi.

    El manual pueden descargarlo en este enlace

  • Curso Raspberry Pi

    El material para el curso de programación en Python sobre la Raspberry Pi, lo pueden encontrar en esta carpeta

    https://drive.google.com/folderview?id=0B2VwBPSdMFmyeDJKeVJXQU96SjQ&usp=sharing