nodejs

Casos Covid Perú

Casos Covid es una plataforma web que permite monitorear los contagios de covid detectados por distrito.

Esta información se obtiene a traves de web spider encargado de recuperar informacion de reportes oficiales del minsa, para luego a traves de un proceso de reconocimiento de imagenes obtener datos puntuales por fecha y distrito.

Una vez generados estos datos, un motor en nodejs es encargado de generar el resumen correspondiente en HTML estatico para la posterior consulta de los visitantes.

El Barvas App Delivery

El Barvas App es una aplicacion de pedidos online para las ciudades de Trujillo, Piura y Chiclayo.

Durante el desarrollo de la aplicacion se busco priorizar 3 objetivos:

  • Permitir la toma del pedido sin intervencion humana
  • Obtener información precisa del sitio de entrega, validando con nuestras zonas de atención de forma automatizada
  • Envio de ofertas personalizadas a sus clientes

Este aplicativo dispone de un potente panel de control web desde donde se controlan los pedidos, entregas, pagos, stock, productos y precios, promociones, y gestión de mensajes de promociones entre otros.

La aplicación fue desarrollada tanto para el Google Play como para el lApp Store.

Como saber si una clave existe en un objeto javascript ?

Existen diferentes alternativas de codigo para determinar si una clave existe en un objecto javascript. Vamos a conocer alguna de ellas, y vamos a medir cual es mas rapida.

Partimos del hecho que tenemos esta objeto en javascript

let obj = { a: 2, b: 5, c: [0,1,3,4] };
MetodoCodigoTiempo ( ms )
Operador IN“a” in obj0.099
hasOwnPropertyobj.hasOwnProperty(“a”)0.007
undefinedobj[“a”] == undefined0.002

El resultado mas rapido se obtuvo comparando el valor con la constante undefined.

Como convertir imagenes webp a png usando la linea de comandos

El formato webp, es el “nuevo” formato de google para compresion de imagenes sin perdida ideal para internet. Una misma imagen en webp ( 94k ) y en png ( 1.1 M ).

Sin embargo,  no todas las aplicaciones de linux ( o windows o mac ) estan preparadas para trabajar con este formato. Asi que para poder usarlas fuera del navegador deberemos convertirlas.

En linux existe una herramiento webp que vamos a instalar

sudo apt install webp

Y ahora podemos hacer la conversion con el siguiente comando

dwebp <imagen.webp>  -o <imagen.png>

Por si acaso, tambien podemos hacer el camino inverso. Hacer la conversion al nuevo formato webp usando el comando

cwebp <imagen.png> -o <imagen.webp>

Yo ya tengo varios proyectos web y mobiles donde valdria la pena usarla.

Comandos para manejar npm ( parte I )

NPM es el sistema de gestion de paquetes de nodejs. Con él podemos gestionar las dependencias de nuestros proyectos de #nodejs o #reactnative. También lo podemos usar para instalar aplicaciones globales en nuestro sistema, como por ejemplo: ChromeCast ( aplicación que te permite enviar videos a un chromecast desde la linea de comandos 😉 )

npm init -y

Inicializa el archivo package.json de nuestro proyecto con los valores por defecto. Usar con cuidado porque reescribe el contenido del archivo, si  ya existe.

npm home <paquete>

Abre el navegador con la web oficial del <paquete>

npm repo <paquete>

Abre el navegador con el repositorio oficial del <paquete>

npm outdated

Te indica que paquete tienes desactualizados

npm  prune

Elimina las dependencias que no se estan utilizando

npm list

Te muestra los paquetes que se usan en un proyecto ( ordenado jerarquicamente )

npm dedupe

Intenta reducir las duplicidades de paquetes en tu proyecto

npm audit

Te muestra una lista de bugs conocidos en los paquetes de tu proyecto

npm audit fix

Actualiza los paquetes de tu proyecto que tienen parches de seguridad pendientes.

 

NodeJS mySQL NOT SUPPORTED AUTH MODE

Recientemente al actualizar mi maquina de desarrollo me tope con el siguiente error desde NodeJS

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Era evidente un problema de configuracion ya que dias atras la app funcionaba correctamente y no habia sido modificada.

Para solucionar este problema debes entrar en la consola de mysql:

sudo mysql -u root

Y ejecutar el siguiente comando

update mysql.user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

Y luego proceder a reiniciar el servicio

sudo service mysql restart