Impresora térmica con Node.js

Hoy vamos a ver cómo imprimir tickets en una impresora térmica con Node.js usando JavaScript del lado del servidor. Me imagino que con esto se podrá imprimir usando express, Electron o cualquier otra cosa. Toma en cuenta que esto imprimirá en el servidor y que funcionará perfectamente para sistemas locales, pero si vas a subirlo al servidor puede que quieras revisar cómo imprimir del lado del cliente así como ya expliqué el problema que tenemos con PHP. ...

junio 27, 2023 · 3 min · 565 palabras · Parzibyte

Pasar parámetros a función de Svelte

En Svelte podemos indicar funciones que se van a invocar cuando se desencadena un evento. Por ejemplo, para invocar a holaMundo en el click de un elemento podemos indicarlo como on:click={holaMundo} En ocasiones se necesita pasar parámetros a esa función dentro de un componente de Svelte, pero no podemos indicarlo así: on:click={holaMundo(parametro)} Ya que eso ejecutará la función tan pronto se cargue el componente, y no esperará al clic. Por ello es que en este post te mostraré cómo pasar argumentos a las funciones en Svelte sin que se invoquen automáticamente. ...

junio 27, 2023 · 3 min · 515 palabras · Parzibyte

Impresora térmica con PHP y plugin

Desde hace tiempo presenté mi plugin para comunicación con impresoras térmicas que permite imprimir con comandos ESC POS desde cualquier lugar saltando las limitaciones del navegador web y de los lenguajes de programación. Hoy te enseñaré cómo usarlo con PHP, aunque técnicamente vamos a usar JavaScript ya que si bien podemos hacer peticiones con PHP, necesitamos hacer estas peticiones desde el cliente y no desde el servidor, sobre todo cuando PHP está en un servidor web. No te preocupes, será un código muy sencillo y funcionará igualmente con o sin internet. Veamos cómo imprimir en una impresora térmica desde PHP pero en modo cliente. ...

junio 26, 2023 · 4 min · 799 palabras · Parzibyte

Imprimir en impresora térmica con PHP desde internet

Podemos imprimir en una impresora térmica desde PHP con comandos ESC POS usando, por ejemplo, la librería de mike42. Funciona bien si todo es en servidor local (ya que la computadora es a su vez cliente y servidor), pero el problema aparece cuando el proyecto se sube a internet y es necesario imprimir desde un servidor web. Debemos recordar que PHP se ejecuta del lado del servidor, por lo que siempre tratará de imprimir en una impresora térmica conectada físicamente al servidor, así que no podemos imprimir en el lado del cliente. Lo que nos queda es conectar la impresora al servidor de internet (es decir, viajar a donde sea que esté ubicado el servidor cada vez que se imprima) o buscar alternativas que te mostraré en este post. Así que veamos cómo imprimir en una impresora térmica desde PHP pero cuando subimos el proyecto a internet. ...

junio 26, 2023 · 3 min · 433 palabras · Parzibyte

Milisegundos a fecha con JavaScript

En varios de mis proyectos con JavaScript utilizo el timestamp en lugar de la fecha como cadena y después formateo esa cantidad de milisegundos usando Intl.DateTimeFormat. Es decir, convierto el timestamp a una fecha con JS. Lo ocupo en tantos lugares pero nunca me he dispuesto a compartirlo aquí por lo simple que es. Ahora como lo voy a ocupar en un proyecto de notas, vengo a publicarlo de una vez. Así que hoy veremos cómo convertir algo como 1687479441903 en 22 jun 2023, 18:17:21 teniendo la opción de modificar el formato de la fecha y hora respetando el locale o idioma. Nota: esto funcionará independientemente del lugar donde guardes el timestamp. Puede estar en el cliente o servidor. ...

junio 23, 2023 · 2 min · 305 palabras · Parzibyte

Usando SQLite3 en la web con Sveltekit y @sqlite.org/sqlite-wasm

Estoy muy emocionado porque después de tanto tiempo y gracias al Origin Private File System podremos tener SQLite3 en los navegadores, con todas sus ventajas y todo contenido desde una página web. Si quieres puedes ver el hola mundo sin Svelte, es decir, con JS puro y aprender cómo usar SQLite3 en el navegador web sin servidores. Ya había leído eso hace tiempo pero tenías que hacer unas cosas “experimentales”. El punto es que ando aprendiendo un poco de Svelte con Tailwind haciendo una app de notas (a las que les agregaré encriptación) y me dio curiosidad por ver si SQLite3 ya estaba “portado” totalmente, porque si bien ya existía con WebAssembly no había manera de crear archivos binarios en el navegador web. Entonces encontré a: https://developer.chrome.com/blog/sqlite-wasm-in-the-browser-backed-by-the-origin-private-file-system/ Y vi que ya era posible. Lo siguiente era hacerlo funcionar con SvelteKit que usa a su vez Vite para todo su entorno. Te contaré cómo lo hice y de dónde me he guiado. ...

junio 13, 2023 · 4 min · 737 palabras · Parzibyte

Solución: ERR_OSSL_EVP_UNSUPPORTED con Node

Hace algún tiempo y también hoy me apareció el error de ERR_OSSL_EVP_UNSUPPORTED. Esto es porque se está usando la última versión de Node (me ocurrió con la versión 18 pero no me pasaba con la 16) y por defecto no permite que se usen funciones de openssl que ahora son “inseguras”. La solución simple es exportar la variable de NODE_OPTIONS pasando --openssl-legacy-provider. Todos dicen eso, pero no dicen cómo hacerlo específicamente en Windows. Por ejemplo, yo lo intenté con: npm run serve --openssl-legacy-provider Pero no es así. Así que veamos cómo solucionar el error ERR_OSSL_EVP_UNSUPPORTED en Windows al usar Node y NPM. ...

junio 7, 2023 · 2 min · 219 palabras · Parzibyte

Error open_basedir al imprimir imagen con ESC POS de Mike42

Hoy vengo a relatar otro error y la solución que encontré trabajando en un proyecto. Resulta que configuré la librería escpos-php en un servidor Ubuntu con Plesk. Lo subí, instalé las dependencias, etcétera hasta que me aparecía el siguiente error: open_basedir restriction in effect. File(archivo) is not within the allowed path(s). Cabe aclarar que esto me pasaba al imprimir una imagen. Lo demás funcionaba perfectamente. Y obviamente revisé que tuviera instaladas las extensiones, permisos de archivos, etcétera. Revisa eso antes y también el siguiente post: https://parzibyte.me/blog/posts/failed-load-image-escpos-php-mike42/ En caso de que te aparezca este error, sigue leyendo. ...

junio 2, 2023 · 2 min · 364 palabras · Parzibyte

Instalador de sistema para estacionamiento

Siguiendo con mi racha de creación de instaladores o asistentes de instalación, hoy le tocó a mi sistema gratuito para estacionamiento o mi sistema gratis para parqueadero. Como ya lo hice con mi sistema para restaurantes y después en mi sistema de ventas, ahora le toca a este sistema para estacionamientos. En este post te mostraré cómo descargar el instalador del software gratuito para estacionamiento de modo que ya no tengas que configurarlo manualmente al menos en el caso de Windows. ...

junio 2, 2023 · 2 min · 387 palabras · Parzibyte

Python - Hacer que la computadora adivine un número

El día de hoy vamos a resolver un ejercicio en Python en donde el usuario va a pensar un número y el programa o la computadora va a adivinarlo. Para ello vamos a usar la búsqueda binaria: vamos a hacer que la computadora piense en un número y se lo muestre al usuario. Luego el usuario le debe decir si acertó, y en caso de que no, le debe decir si es menor o mayor. Lo interesante aquí es que la computadora adivinará en el menor número de intentos posibles, sin confiar en la suerte. ...

mayo 20, 2023 · 4 min · 775 palabras · Parzibyte