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

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

Generador de números aleatorios online

Hoy te quiero compartir una herramienta en línea para generar números aleatorios directamente en el navegador web. Puedes especificar el límite inferior, límite superior y cantidad de números aleatorios que quieres generar. También puedes especificar el separador de números aleatorios para que sea una coma, un punto, un espacio, un salto de línea o cualquier carácter. El generador de números aleatorios permite mostrar los números generados o descargarlos en un archivo de texto (extensión txt). ...

agosto 29, 2024 · 2 min · 426 palabras · Parzibyte

Leer 10 mil números y ordenar con C

En el ejercicio de programación de hoy vamos a trabajar con ANSI C para leer 10000 (diez mil) números de un archivo de texto y ordenarlos usando varios algoritmos, los cuales son: Selección Inserción Burbuja Rápido (Quicksort) Mezcla (Merge) Vamos a leer el archivo usando fgets y convertir cada número con atol, luego vamos a rellenar un arreglo con esos números (hasta una cierta cantidad de números) y ordenarlos comparando los tiempos de ejecución de cada algoritmo. ...

agosto 29, 2024 · 9 min · 1786 palabras · Parzibyte

Respaldar archivo con Bot de Telegram

El día de hoy te enseñaré a respaldar un archivo o directorio y enviarlo a Telegram, de modo que puedas tener un respaldo o backup de información en la nube de Telegram de manera programada usando un Bot. Con el programa que vamos a ver serás capaz de: Enviar un archivo a cualquier usuario, grupo o canal de Telegram a nombre de un Bot En caso de que quieras hacer un respaldo de un directorio en Telegram, el directorio será comprimido en un zip Si el archivo pesa más que el límite, será dividido en varias partes y enviado a Telegram, así que no hay límite de tamaño Así que dicho con otras palabras vas a ser capaz de respaldar información en Telegram usando un Bot, sin importar el tamaño o contenido del directorio. Más adelante puedes combinar esto con algo como el Cron para Golang y hacer respaldos periódicos. ...

julio 31, 2024 · 8 min · 1631 palabras · Parzibyte

Migrando Gist a código embebido en mi blog de WordPress

Desde hace algún tiempo he dejado de usar gist.github.com para embeber código fuente en mi blog y en su lugar he incrustado el código directamente. Utilicé los Gists de GitHub por mucho tiempo y muchísimos posts lo contenían, pero en días anteriores me decidí a dejar de usarlo para hacer mi sitio más rápido, así que hoy vengo a compartir cómo es que hice la migración. ...

julio 30, 2024 · 8 min · 1575 palabras · Parzibyte

Unir archivos con JavaScript

Hoy te voy a enseñar a unir archivos usando el navegador web con JavaScript del lado del cliente para concatenar bytes de archivos y crear un archivo a partir de varias partes. Este script de JavaScript va a permitirte seleccionar varios archivos (con extensión part1, part2, etcétera) para unirlos en uno solo, sin tener que procesar algo en un servidor. Todo el proceso será realizado en el lado del cliente. Para concatenar varios archivos vamos a usar Uint8Array y Blob. Básicamente vamos a leer el contenido de cada parte como bytes, y agregar ese montón de bytes a un arreglo que finalmente vamos a convertir a Blob. Puedes acceder al unidor de archivos con JavaScript en el siguiente enlace: https://parzibyte.github.io/ejemplos-javascript/unir-archivos/ ...

julio 30, 2024 · 3 min · 502 palabras · Parzibyte

Algoritmo Floyd-Steinberg Dithering con Golang

En este post de programación con Go te voy a enseñar cómo aplicar el algoritmo Floyd-Steinberg Dithering a cualquier imagen, de modo que puedas convertir una imagen de color completo a una en blanco y negro respetando la iluminación. Para que tengas una idea de lo que hace este algoritmo, mira la siguiente comparación donde aparece la imagen a color, en blanco y negro sin dithering y finalmente en blanco y negro pero con dithering: Como puedes ver, al aplicarle el dithering aparecen más detalles en la imagen, dando la ilusión de iluminación. De hecho pareciera que está en escala de grises, pero no, en este caso el dithering solo convierte la imagen a blanco y negro, nada más. Veamos entonces cómo implementar este algoritmo Floyd-Steinberg Dithering con Golang a cualquier imagen ya sea PNG o JPG. ...

julio 28, 2024 · 9 min · 1737 palabras · Parzibyte