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…)

Rotar PDF con Golang

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…)

Preguntas separadas por materias en sistema generador de exámenes y calificaciones

Generador de exámenes con calificaciones automáticas

En el post de hoy te voy a mostrar un generador de exámenes o pruebas para imprimir. No solo te permitirá crear exámenes e imprimir uno por cada alumno o estudiante, también podrás:

  • Agregar y modificar las preguntas, marcando la respuesta correcta
  • Ver la vista previa de impresión
  • Imprimir exámenes
  • Calificar examen generado ingresando solo las respuestas
  • Imprimir la hoja de respuestas
  • Imprimir clave del examen según respuestas correctas
  • Generar hojas de respuesta calificadas
  • Mostrar e imprimir portadas calificadas
  • Generar resultados y gráficas

Básicamente podrás generar exámenes, imprimir cada uno por cada alumno, registrar las calificaciones de manera rápida gracias a la hoja de respuestas generada automáticamente y luego dejar que el programa calcule las calificaciones.

Por cierto, el programa que te mostraré es totalmente gratis y tiene más cosas como el registro de asistencias y tareas que ya mostré en un post anterior:

Software para control de asistencia y tareas escolares – Gratuito

Veamos cómo usarlo.

(más…)

Firma digital con Golang y RSA

Firma digital con Go y RSA

El día de hoy vamos a ver cómo firmar y verificar un mensaje con Golang y un par de claves RSA.

Es decir, por un lado veremos cómo firmar digitalmente un mensaje usando una clave privada y por otro lado vamos a ver cómo comprobar la autenticidad de dicho mensaje.

Recordemos que las firmas digitales tienen el propósito de comprobar la autenticidad de un mensaje, no de ocultarlo (de eso se encarga la criptografía).

Veamos entonces cómo firmar y verificar firmas con Go.

(más…)

Cambiar fondo de pantalla de manera remota

El día de hoy veremos cómo cambiar la imagen de fondo de escritorio de manera remota para molestar al usuario.

Dejaremos un programa ejecutándose en segundo plano, mismo que va a revisar cada X segundos si debe cambiar el fondo y en caso de que sí va a descargar la imagen del sitio que le indiquemos para colocarla como nuevo fondo.

Mientras el usuario esté conectado a internet y el programa se esté ejecutando, no se podrá hacer nada para cambiar el fondo de pantalla al original, ya que nuestro programa va a cambiar la imagen de escritorio cada tiempo que nosotros indiquemos.

Al final esto es para hacer bromas, no le veo otra utilidad. Eso sí, vas a aprender varias cosas, por ejemplo, cómo consultar un gist con HTTP, poner un cron en Go e invocar a un programa de C#.

(más…)

Combinar y ordenar 2 tablas de base de datos

El día de hoy veremos cómo extraer datos de 2 tablas SQL distintas, combinarlos y extraer solo los primeros de ellos a partir de un parámetro de ordenamiento.

El ejemplo que mostraré va a mostrar los productos más vendidos en una tienda, pero esos productos se venden al contado o en apartado, y cada uno está en una tabla distinta.

Lo que se requiere es obtener los productos más vendidos sin importar a cuál tabla pertenecen, ordenándolos, combinándolos y extrayendo solo los primeros N.

(más…)

Código fuente de plugin para impresoras térmicas v2

En este post te mostraré cómo instalar y compilar lo necesario para montar el código fuente del plugin de impresoras térmicas versión 2 que ya presenté anteriormente y que puedes ver en el siguiente post:

Presentando plugin para impresoras térmicas versión 2

En pocas palabras, ese plugin permite imprimir en impresoras térmicas usando una API de internet, pero al estar en un servidor web necesita una conexión estable a internet, por ello es que ya existe la versión 3.

Al tener el código fuente, tú mismo puedes vender el servicio de la API ESC POS o usarlo para ti mismo modificando los planes y brindándote un plan ilimitado.

Veamos entonces cómo instalar las herramientas necesarias para modificar el código fuente del plugin versión 2.

(más…)

Encontrando DLL faltante para error 0xc00007b

Solución al error 0xc00007b en Windows

Hoy vamos a hablar sobre un error que me trajo muchos problemas en las últimas horas. Se trata del error 0xc00007b y ocurría al usar mi plugin para impresoras térmicas versión 3.

Por ello es que en este post te mostraré la causa y la posible solución de ese problema, ya sea para mi plugin o para cualquier otro programa que intentes usar.

Solo para que quede claro, el error de mi plugin ya está arreglado, pero quiero documentar esto por si a alguien más se le presenta esto en el futuro.

(más…)

Código fuente de plugin para impresora térmica v1

En este post explicaré cómo obtener y descargar el código fuente de mi plugin para impresoras térmicas versión 1, que es el que está publicado en la siguiente página:

Plugin para imprimir en impresora térmica usando navegador web y JavaScript

La página del producto es: https://parzibyte.me/plugin-impresora-termica-v1/

Estoy liberando el código fuente porque ya existe la versión 3 del plugin, que por cierto te invito a probar.

Por cierto, el plugin versión 1 sigue funcionando y puedes usarlo gratis o en su versión premium.

(más…)

Enviar archivo de JavaScript a Golang

Subir archivo de JavaScript a Go (Golang)

En este post de programación cliente-servidor vamos a ver cómo enviar un archivo desde JavaScript del lado del cliente a Golang (Go) del lado del servidor.

Específicamente hablando veremos cómo enviar un archivo usando fetch y FormData a través de AJAX hacia un servidor de Go.

Lo que te enseñaré servirá para enviar fotos, archivos binarios o incluso una foto tomada con la cámara web con las debidos ajustes.

Va a ser un ejemplo realmente simple pero que luego podrás modificar para, por ejemplo, usarlo en React, Angular, JavaScript puro o Vue.

(más…)

Usar dispositivo Android como servidor de sistema de ventas

Compilar Sublime POS 3 en Android

En este post te mostraré cómo puedes usar Sublime POS 3 (punto de venta) en Android compilando por ti mismo el código fuente.

Al final vas a poder usar el sistema nativamente y en modo local en una tableta o teléfono, además de que podrás usarlo como servidor y permitir que otros dispositivos se conecten al mismo.

Por lo tanto, si cuentas con el source code de este sistema de ventas podrás usarlo nativamente en Android sin depender de un servidor, y podrás usarlo en teléfonos o tabletas.

(más…)