Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly (con Golang) en Vue 3 con Vite y Pinia. Voy a explicar cómo comunicar las funciones de WASM con JavaScript y viceversa, dejando mucho código del lado de Golang con WASM. Toma en cuenta que es una documentación muy específica a mi modo de trabajo. No esperes un tutorial paso a paso. ...

noviembre 5, 2024 · 4 min · 783 palabras · Parzibyte

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al final todos los archivos estáticos que hay que servir deben estar en la carpeta dist, pero si quieres servirla en Apache déjame darte algunos consejos. ...

noviembre 5, 2024 · 2 min · 270 palabras · Parzibyte

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores que quiero documentar para ayudar a otros usuarios que experimenten las mismas fallas. Cabe mencionar que mi entorno de trabajo es Comlink con WebAssembly, Vue 3, Vite y Pinia. Varias de esas tecnologías no afectan al uso de Comlink pero me parece importante mencionarlas. Estos errores, en un contexto de JavaScript puro son fáciles de solucionar. El Maximum call stack size exceeded normalmente es causado porque una función recursiva se ha salido de control, y el cannot read property of undefined es porque una variable es undefined y tratamos de leer una propiedad. Sin embargo, con Comlink los errores son distintos. ...

noviembre 5, 2024 · 2 min · 375 palabras · Parzibyte

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un “top level await” esperando a que una promesa se resuelva dentro de una store de Pinia con Vue 3. Para usar await con Pinia debes esperar a que la promesa se resuelva fuera de la definición de la store. ...

noviembre 5, 2024 · 2 min · 302 palabras · Parzibyte

Solución: Apache - Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos desde el navegador web me aparecía el siguiente mensaje: You don’t have permission to access this resource. Server unable to read htaccess file, denying access to be safe. Hoy voy a mostrarte la solución a ese problema con servidores, Apache y el htaccess. ...

noviembre 5, 2024 · 2 min · 284 palabras · Parzibyte

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que se componga de CSS, JavaScript y HTML se puede convertir en una PWA, y ese también es el caso con Vue 3. Aunque Vue 3 con Vite compila a CSS, HTML y JS que podemos convertir a PWA quise darme a la tarea de documentar el proceso de creación. Por favor toma en cuenta que te recomiendo revisar el siguiente artículo para saber lo básico sobre las PWA: https://parzibyte.me/blog/posts/crear-publicar-progressive-web-app-convertir-app-web-pwa/ Veamos entonces cómo convertir una aplicación de Vue 3 con Vite en una PWA. ...

noviembre 5, 2024 · 6 min · 1148 palabras · Parzibyte

JavaScript - Dividir texto en varias líneas con espacio

Hoy te voy a enseñar a agregar un salto de línea a un texto para evitar cortar las palabras en caso de que dicho texto supere determinada longitud de columna. Dicho con otras palabras veremos cómo hacer que un texto salte a la siguiente línea automáticamente si es demasiado largo, sin que se corten las palabras. Por ejemplo, supongamos que puedes imprimir 10 letras por línea como máximo. Un texto se vería así, cortando las palabras y dejándolas incompletas: Hola mundo soy un te xto desde parzibyte.me Con la función que te mostraré hoy vamos a hacer que la palabra se corte en el espacio en blanco y queden solo palabras completas tomando en cuenta una máxima longitud para la línea. Por ejemplo: Hola mundo soy un texto desde parzibyte.me Te recuerdo que vamos a bajar las palabras a la siguiente línea usando JavaScript trabajando con cadenas (string). Sería el equivalente a overflow-wrap: break-word; y word-break: normal; de CSS. ...

octubre 7, 2024 · 3 min · 432 palabras · Parzibyte

Emitir sonido y parpadear LED en impresora térmica

Algunas impresoras térmicas ESC POS tienen un buzzer o zumbador que puede emitir sonidos, también conocidos como pitidos o como “hacer beep”. Otras impresoras, además del buzzer, tienen un LED para enviar notificaciones al momento de imprimir, avisando que un trabajo de impresión está por empezar o por terminar. En este post te voy a enseñar cómo hacer que una impresora térmica emita un sonido y envíe una notificación usando su luz LED, teniendo la opción de solo usar sonido, solo el LED o ambos. Vas a poder hacer que la impresora emita sonidos o encienda su LED incluso si no envías ningún trabajo de impresión, así que puedes usar la POS printer para avisarle al usuario sobre alguna notificación usando sonido. Recuerda que no todas las impresoras tienen el mismo hardware, en mi caso mi GOOJPRT PT-210 cuenta tanto con un buzzer para hacer pitidos (beep) como con un LED. ...

octubre 3, 2024 · 4 min · 671 palabras · Parzibyte

Tailwind CSS - Centrar verticalmente

En este corto tutorial de programación CSS con Tailwind vamos a ver cómo centrar un elemento verticalmente. ...

septiembre 27, 2024 · 1 min · 181 palabras · Parzibyte

Cámara a impresora térmica - Aplicación web

Hoy te voy a enseñar una aplicación web (programada con JavaScript en el lado del cliente) para imprimir fotos en una impresora térmica. Las fotos que se van a imprimir serán tomadas al instante con la cámara web o cámara integrada. Gracias a esta webapp vas a poder tomar una foto de la cámara y enviarla a una impresora térmica aplicando dithering para mejorar su calidad. Puedes acceder a la demostración ya mismo: cámara a impresora térmica. El proceso será automático, solo debes conectar tu impresora térmica por USB, abrir la página web, seleccionar tu cámara y presionar el botón para tomar una fotografía e imprimirla en una impresora térmica. ...

septiembre 26, 2024 · 5 min · 948 palabras · Parzibyte