Rotar imagen en navegador web con JavaScript y canvas

En este artículo te voy a enseñar a rotar una imagen con HTML y JavaScript a través de canvas, de manera que podrás girar una imagen los grados que tú quieras, es decir, rotarla 90, 180, 270 o cualquier cantidad.

Veremos cómo cargar una imagen, pintarla en un canvas, agregarle rotación y después hacer cosas como descargar esa imagen o enviarla al backend que puede ser con Node, C#, PHP, etcétera.

(más…)

JavaScript: tabular datos con límite de longitud, separador y relleno

El día de hoy veremos un algoritmo que he querido desarrollar desde hace mucho y que no fue tan complejo como creí. Se trata de una forma de crear una tabla con JavaScript y que los datos se acomoden automáticamente en cada columna para que no superen una longitud predefinida.

Datos formateados como tabla en ticket en impresora térmica

Datos formateados como tabla en ticket en impresora térmica

De este modo podremos crear tablas (en forma de texto) en donde el contenido se va a ajustar automáticamente, especificando un separador y una longitud por columna.

(más…)

Datos formateados como tabla en ticket en impresora térmica

JavaScript: separar cadena en bloques

En el post de hoy vamos a ver cómo dividir una cadena en pedazos si es que supera una máxima longitud. Por ejemplo, separar la string en JS si mide más de 5, y además de eso dividirla en fragmentos de N cantidad.

Vamos a ver cómo separar una cadena cada cierto número de caracteres y también cómo dividirla en trozos pequeños colocados en un arreglo donde se respete una cierta longitud.

(más…)

Dividir cadena en JavaScript usando separador y arreglo

Total vendido agrupado por mes – SQL y reportes con gráficas

En este post vamos a ver cómo calcular el total vendido en un período de fechas agrupado por mes, ya sea para mostrar un reporte o una gráfica de barras o líneas.

Básicamente veremos el algoritmo y ejemplos de código para sacar el desglose del total vendido por mes en el año o en cualquier período de tiempo, tomando los datos de una base de datos, agrupando, ordenando, sumando, etcétera.

No importa cuál motor de base de datos utilices ni el lenguaje de programación. Veremos el algoritmo para sumar el total vendido por mes.

(más…)

Por parzibyte, hace

Abrir y cerrar etiqueta HTML cada N elementos

En este post vamos a ver un algoritmo para separar etiquetas HTML cada cierto número de elementos. Por ejemplo, colocar un div cada 4 elementos sin importar la cantidad total de los elementos.

Esto sirve como ejercicio y para aplicaciones de la vida real. Recientemente tuve que separar un grupo de etiquetas div de 4 en 4 y encerrarlos en un div contenedor.

Entonces veamos cómo separar elementos cada cierto número y encerrarlos en otro contenedor sin importar la cantidad de elementos ni cada cuánto debemos separarlos. Básicamente vamos a realizar agrupaciones y división de datos.

(más…)

Por parzibyte, hace

Golang: validar parámetros GET en URL con servidor HTTP

En este post vamos a ver cómo validar y obtener los parámetros GET pasados en la URL cuando estamos leyendo la petición de un servidor HTTP.

Recuerda que con net/http podemos obtener el mapa de parámetros con http.Request.URL.Query, luego cuando accedemos a una clave nos devolverá un arreglo con todos los valores para esa clave GET y finalmente si solo queremos el primero accederemos a la posición 0 de ese arreglo.

Yo te enseñaré cómo pasar de esta validación:

A esta más limpia:

De este modo podremos validar que el parámetro GET se encuentre presente en la petición HTTP además de que no esté vacío, y no importará la cantidad, siempre tendremos las mismas líneas.

Nota: seguramente habrá frameworks o librerías que ya hacen el trabajo. Yo lo haré usando solo la librería estándar y el paquete net/http de Golang.

(más…)

Prevenir salto de línea en textarea de HTML

En este post vamos a ver cómo evitar que el usuario presione “Enter” en un textarea de HTML para que no se puedan agregar nuevas líneas o saltos de línea.

Te voy a enseñar a prevenir que el usuario agregue más líneas dentro del textarea escuchando el evento del teclado, y a partir del mismo puedes hacer más cosas para prevenirlo al momento de copiar y pegar o arrastrar.

(más…)

Tiempo relativo con JavaScript y RelativeTimeFormat

En este post de JavaScript vamos a mostrar el tiempo relativo transcurrido o faltante entre 2 fechas de manera relativa usando Intl.RelativeTimeFormat.

Básicamente vamos a mostrar el “hace 2 minutos”, “hace 2 horas,” “dentro de 1 día”, “dentro de un mes” pero siendo capaces de cambiar el idioma.

De este modo podremos mostrar el tiempo que falta o el tiempo que ha transcurrido con JavaScript en cualquier idioma.

(más…)

Rotar PDF con Golang

En este post te enseñaré a rotar un PDF usando el lenguaje de programación Go.

Vamos a ser capaces de rotar un documento indicando los grados, y todo esto de manera programada indicando la ubicación del archivo de entrada y el de salida.

Para modificar el PDF con Golang usaremos el paquete pdfcpu que sirve para hacer distintas operaciones a los PDF pero en esta ocasión nos vamos a centrar en la rotación de las páginas.

(más…)

Rotar PDF con Golang

Java: eliminar nodo de árbol binario ABB

Ya te enseñé a implementar un árbol binario en Java, insertar elementos, recorrer de 3 maneras distintas y buscar un elemento pero no vimos cómo eliminar un elemento de ese ABB.

Por ello es que en este corto post de programación en Java vamos a ver cómo eliminar un nodo, hoja o dato de un árbol binario sin importar su posición y respetando a los nodos hijos en caso de que tenga.

(más…)

C# – Enviar datos ESC POS a impresora térmica

En este post vamos a ver cómo usar C# nativamente para abrir una impresora térmica como un archivo y enviarle bytes o datos entre los cuales puede haber comandos ESC POS.

Recuerda que yo ya tengo un plugin que permite imprimir en impresoras térmicas y expone una API HTTP consumible desde cualquier lenguaje de programación para que tú lo uses y no implementes tu propia librería, pero si quieres ver cómo se hace sigue leyendo.

(más…)

Conectar C# con impresora térmica

Habilitar claves foráneas en SQLite3

Hoy vamos a ver cómo habilitar las foreign keys de SQLite3 ya que en ocasiones las mismas no funcionan incluso al especificar el on delete y on update.

Esto es porque debemos habilitar las claves foráneas de SQLite3 al momento de abrir la base de datos o cambiar el PRAGMA.

Veamos cómo hacerlo al abrir la base de datos.

(más…)