Cambiar ubicación e idioma (locale) en páginas web

Cambiar ubicación e idioma en página web

Hoy vamos a ver cómo modificar o falsificar nuestro idioma y ubicación en un sitio web. Esto sirve a los programadores para:

  1. Probar si el sitio web funciona en varios idiomas
  2. Revisar si la ubicación se mueve y no exponer la propia ubicación al momento de hacer pruebas

También puede servir para otras cosas como para no revelar tu ubicación real a las páginas web o ver una página en otro idioma.

Por cierto, lo haremos con Google Chrome pero me imagino que cualquier navegador decente debe funcionar.

(más…)

Imprimiendo en impresora térmica desde cualquier lenguaje de programación - Ejemplo de JSON

Crear conector para plugin de impresora térmica

En este post voy a explicarte cómo puedes crear un conector para el plugin de impresoras térmicas y así poder imprimir desde cualquier lenguaje de programación que hable HTTP.

Como bien sabes, mi plugin no es más que un servidor web que te permite imprimir en impresoras POS, solo debes indicarle las operaciones que debe hacer.

Veamos entonces cómo imprimir en una impresora térmica usando cualquier lenguaje de programación y mi plugin gratuito.

(más…)

Imprimir en impresora térmica conectada por Bluetooth en Android desde JavaScript

Imprimir ticket en impresora térmica bluetooth desde JavaScript con Android

El día de hoy vamos a hacer una cosa que varios me han pedido y que siempre he querido hacer: imprimir en una impresora térmica Bluetooth desde Android usando JavaScript.

Básicamente vamos a enviar un ticket a una thermal printer con Bluetooth desde el navegador web sin cuadros de diálogo ni cosas extrañas: tan solo usando un plugin gratuito desarrollado por mí y JavaScript puro.

Debido a que esto es hecho desde el navegador con JS luego puedes usarlo para imprimir en una impresora térmica Bluetooth desde Vue, React, Angular, TypeScript, etcétera: cualquier cosa que compile, use o traspile a JavaScript.

(más…)

Proyecto de Laravel ejecutándose en Android con Termux

Ejecutar proyecto de Laravel en Android con Termux

En el post de hoy veremos cómo “programar” en Laravel desde Android, o dicho técnicamente, ejecutar un proyecto de Laravel (que usa PHP) dentro de un servidor Apache con PHP todo dentro de Termux corriendo sobre un dispositivo Android.

Las herramientas que necesitamos ya existen en Termux, y son php, mysql, composer y apache.

Además, no es obligatorio programar en el móvil (aunque sí posible); podemos simplemente montar un proyecto de Laravel en Android.

(más…)

Leyendo código de barras para enviarlo a otro sitio usando algo como una API

Leer código de barras con cámara y enviarlo a página web

En este post te mostraré cómo leer un código de barras con una cámara usando JS (desde un teléfono, tableta o computadora con cámara web) y además enviarlo a una página web.

Esto nos va a permitir:

  • Usar la webapp expuesta aquí como una API, sin que tu sitio necesite HTTPS
  • Saltar la seguridad del acceso a la cámara solo en HTTPS, pues puedes leer el código de barras con la cámara y luego enviarlo a tu verdadero sitio web

Al final esta aplicación web será como una API gratuita para leer un código de barras y enviarlo a tu sitio web. Veamos los detalles a continuació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…)

Sweetalert 2 y ventas - mostrar cambio calculado según importe y pago de cliente

Sweetalert 2 – Mostrar total de venta y cambio a partir de pago

En este post sobre Sweetalert 2 (Sweet Alert 2) veremos un ejercicio práctico: cómo solicitar el pago del cliente y mostrar el cambio (Dinero que se devuelve al comprador cuando entrega una cantidad superior al importe) en la misma alerta, validando todo.

Veremos cómo escuchar el cambio del input de la alerta, modificar el HTML de la misma y validar según una variable externa.

Recomiendo ver el tutorial de SweetAlert2 antes de leer este artículo.

(más…)

Limpiar input file de HTML con JavaScript

En este corto post de programación con JS puro vamos a ver cómo resetear, reiniciar, reestablecer o limpiar un elemento input de tipo file.

Explicado con otras palabras veremos cómo eliminar el archivo seleccionado de un input tipo file o input de archivo, para que parezca que no se ha seleccionado un archivo.

Lo haremos con JavaScript puro para que puedas aplicarlo a cualquier framework.

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

Laravel: problemas con route model binding y middleware propio

En este pequeño post voy a relatar un pequeño problema que tuve con las rutas de Laravel al pasar un Model a través de la URL usando el Route Model Binding.

El problema era que yo pasaba el modelo por la URL pero al momento de recibirlo en el controlador, el mismo estaba vacío. Mejor dicho, era un arreglo vacío o un Model nuevo sin atributos.

Después de horas depurando me di cuenta de que el problema estaba causado debido a un middleware propio que yo había escrito.

(más…)

Encriptar y desencriptar información con JavaScript usando AES

Encriptación con JavaScript del lado del cliente usando la Web Crypto API

En este post de programación con JavaScript en el navegador veremos cómo encriptar y desencriptar datos usando una API nativa, segura y confiable.

Encriptar y desencriptar información con JavaScript usando AES

Encriptar y desencriptar información con JavaScript usando AES

Vamos a usar la interfaz Crypto a través de window.crypto. Al final podremos encriptar y desencriptar archivos usando una contraseña, derivando una clave de la misma y usando AES para el cifrado de datos.

Nota: voy a usar cifrado y encriptado como sinónimos para referirme a la encriptación de información.

Por cierto, usaremos la encriptación simétrica aunque también es posible usar la asimétrica con claves públicas y privadas.

(más…)