mayo 2019

Instalar Node.js y NPM en Android con Termux

En este post vamos a ver cómo tener el entorno de Node.Js y el gestor de paquetes NPM en Android.

Al finalizar la instalación y configuración seremos capaces de ejecutar una aplicación de Node.js como si tuviéramos un servidor Linux.

También veremos cómo instalar dependencias usando el comando npm install, pues es una cosa posible en Android gracias a Termux.

Concretamente vamos a instalar la versión 6.9.0 de NPM y la versión 12.3.1 de node, aunque tal vez cuando leas este post se instale una versión más nueva.

Leer más »Instalar Node.js y NPM en Android con Termux

Enrutador y Middleware en Go con Gorilla Mux

En un post anterior vimos cómo responder peticiones HTTP con rutas en Go, pero las mismas no eran tan simples cuando se trataba de variables en la URL o métodos HTTP.

Hoy vamos a ver un enrutador o router de Go, que permite definir rutas y métodos HTTP para responder a ellos, de una manera fácil.

El enrutador, llamado Mux (que es de las herramientas de Gorilla) permite:

  • Definir middleware en las rutas, es decir, aplicar funciones que se ejecutan antes de cada petición HTTP y que permiten detener la ejecución o loguear determinadas cosas
  • Definición de rutas con verbos HTTP
  • Lectura de parámetros GET
  • Lectura de variables dentro de la url. Por ejemplo si definimos algo como usuario/{id} y se consulta a usuario/1 podemos obtener el valor 1 accediendo a la variable
  • Variables dentro de la URL con expresiones regulares

En resumen, Mux es un router de Go que soporta además Middleware. Veamos algunos ejemplos del mismo.

Si quieres ver el código final míralo en GitHub.

Nota: si usas PHP te recomendo Phroute.

Leer más »Enrutador y Middleware en Go con Gorilla Mux

Relaciones entre tablas de SQLite – Soporte para claves foráneas

Las relaciones entre tablas son fundamentales y realmente necesarias en el mundo de las bases de datos SQL.

El motor SQLite tiene un buen soporte para las relaciones entre las tablas, es decir, soporta las claves foráneas especificando relaciones de una tabla con otra.

Vamos a ver en este post cómo se usan las foreign keys en SQLite con algunos ejemplos simples.

Leer más »Relaciones entre tablas de SQLite – Soporte para claves foráneas

WebAssembly en Go: tutorial y ejemplos

Acabo de publicar un post sobre las ventajas y usos de WebAssembly en donde prometí que traería un ejemplo con Go.

De hecho ya tenía el ejemplo desde antes, pero no iba a poner toda la definición de WebAssembly aquí.

En fin, veamos cómo utilizar Go para compilar a WebAssembly y llamar al código desde JavaScript.

WASM y Go – Hola mundo

Pero no te confundas, WebAssembly no es JavaScript, es código que se ejecuta directamente en el navegador, solo que JavaScript le dice al navegador cómo usarlo.

Leer más »WebAssembly en Go: tutorial y ejemplos

Extraer el texto de una imagen con JavaScript y Tesseract.js – Aplicación web

Hace algún tiempo presenté el uso de la librería de JavaScript llamada Tesseract.Js, la cual sirve para extraer el texto de una imagen o convertir una imagen a texto.

Aparte de extraer el texto de una imagen también lo puede hacer de una foto o de una imagen escaneada como lo vimos en la demostración de Tesseract OCR.

En el post en donde hablo de la librería prometí que haría una app para demostrar el funcionamiento y uso, y es justamente lo que vengo a presentar hoy: una aplicación web que sirve para extraer el texto de una imagen.

Funciona en Firefox y Google Chrome en Windows y Android, no he probado en otros navegadores.

Leer más »Extraer el texto de una imagen con JavaScript y Tesseract.js – Aplicación web

Tablas de multiplicar en Python usando while

Tablas de multiplicar en Python usando ciclo while

Hoy vamos a ver cómo hacer una función en Python que imprima la tabla de multiplicar de un número. Recordemos que una tabla de multiplicar es aquella en donde se multiplica al número en cuestión por 1, luego por 2 y así hasta el 10.

Tablas de multiplicar en Python usando while

Tablas de multiplicar en Python usando while

Vamos a crear la función para que reciba cualquier número y a partir del mismo imprima la tabla de multiplicar, todo ello usando el ciclo while.

También podremos cambiar el límite para que imprima más allá del 10, pues lo definiremos en una constante.

Leer más »Tablas de multiplicar en Python usando ciclo while

Crear archivos zip con PHP: agregar archivos y directorios, descargar zip y proteger con contraseña

Desde hace tiempo he querido hacer un post completo sobre cómo trabajar con archivos ZIP en PHP.

Como sabemos, los archivos ZIP son unos paquetes que permiten tener dentro múltiples archivos para su posterior transporte.

Tutorial de creación de archivos zip con PHP

PHP tiene soporte nativo para los archivos ZIP en la clase ZipArchive y permite comprimir o empaquetar archivos de una manera fácil.

Hoy vamos a ver cómo:

  1. Crear un archivo zip  y agregarle contenido
  2. Forzar la descarga de un archivo zip, es decir, crear un zip y mostrarlo en el navegador
  3. Agregar archivos a un zip a partir de un patrón glob
  4. Agregar todo el contenido de un directorio de manera recursiva. Es decir, agregar todo el contenido y si hay un directorio agregar el contenido de ese directorio, así recursivamente.
  5. Proteger un archivo ZIP con contraseña

Todavía no vamos a ver cómo descomprimir o desempaquetar, eso es de otro post.

Leer más »Crear archivos zip con PHP: agregar archivos y directorios, descargar zip y proteger con contraseña

Configurar apache para servir archivos wasm

Al probar WebAssembly en un servidor apache instalado con XAMPP e intentar cargar un archivo con extensión wasm aparecía el siguiente error:

Uncaught (in promise) TypeError: Failed to execute ‘compile’ on ‘WebAssembly’: Incorrect response MIME type. Expected ‘application/wasm’

Esto es porque Apache no sabe de qué tipo son los archivos wasm, y no los sirve con el MIME correcto.

Vamos a ver dos soluciones a esto.

Leer más »Configurar apache para servir archivos wasm

Node.Js + Express: ejemplo de creación de proyecto

Express es un framework muy popular en el ecosistema de Node y JavaScript del lado del servidor.

Casi todo programador lo conoce y muchísimas pilas o paradigmas de programación lo integran, pues es un framework para la web.

Express y Node – Comenzar proyecto

En este post vamos a ver cómo:

  1. Iniciar un proyecto de Node.Js
  2. Instalar Express, el framework web
  3. Configura rutas en Express y servir:
    1. Archivo HTML
    2. JSON
    3. Una cadena simple

Con esto tendremos una plantilla base para un servidor ligero que responda peticiones HTTP.

Leer más »Node.Js + Express: ejemplo de creación de proyecto

Formatear unidad a bajo nivel con dd y /dev/zero en Linux Ubuntu

En este post vamos a ver cómo eliminar el contenido de una unidad de disco (puede ser una memoria USB, una partición o un disco duro completo) llenándolo de ceros.

La operación que vamos a realizar también se conoce como eliminado seguro, pues elimina todo el contenido de una unidad y la llena de ceros.

Para esto vamos a copiar datos del dispositivo especial llamado /dev/zero usando el comando dd.

Esto es distinto a simplemente formatear, pues vamos a “formatear a bajo nivel” llenando la unidad de ceros, formateando de forma segura.

Leer más »Formatear unidad a bajo nivel con dd y /dev/zero en Linux Ubuntu

Testdisk: Recuperar archivos eliminados en Linux Ubuntu

Anteriormente vimos cómo trabajar con photorec para recuperar archivos en Linux. Ahora vamos a ver cómo hacer lo mismo pero con testdisk.

La diferencia entre testdisk y photorec es que testdisk muestra y recupera archivos eliminados elegidos por nosotros.

En cambio, photorec recupera todos los archivos, incluso si no queremos recuperarlos.

Resumiendo: testdisk permite recuperar archivos específicos, seleccionados por nosotros. Photorec recupera todos, y tarda más.

Leer más »Testdisk: Recuperar archivos eliminados en Linux Ubuntu

Recuperar archivos eliminados en Linux con Photorec

En este post vamos a ver cómo recuperar todo tipo de archivos eliminados de un disco duro o memoria USB utilizando el software llamado photorec, el cual es un software que ya viene instalado en muchas distribuciones de Linux.

Photorec va a escanear toda la unidad (por ejemplo, una memoria USB) y recuperar todos y cada uno de los archivos eliminados: libros, imágenes, canciones, etcétera.

Nota: esto tampoco hace magia y la recuperación de archivos depende de varios factores, pero en el mejor de los casos va a recuperar la mayoría.

Leer más »Recuperar archivos eliminados en Linux con Photorec