Comunicación entre ventanas de JavaScript

En JavaScript podemos abrir una nueva pestaña o ventana (window) y comunicarnos con ella. Es decir, abrir una ventana con window.open y después hacer algo de lo siguiente:

  • Enviarle mensajes o datos a la ventana hija, recién abierta
  • Desde la ventana abierta, enviarle mensajes o datos a la ventana padre

Veamos cómo comunicar o enviar datos entre ventanas con JavaScript. Al final del post dejaré un ejemplo para que puedas probarlo y analizarlo tú mismo.

(más…)

Pequeño e-commerce en Angular, Node y MySQL (tienda online)

Hoy vengo a presentar un software de comercio electrónico, tienda online o e-commerce escrito en Angular, con los estilos de Angular Material, y con una API escrita con JavaScript del lado del servidor usando Node con Express. Para la base de datos se ha usado MySQL.

El software es open source; puede ser descargado y modificado por cualquier persona. Entre sus características encontramos:

  • Gestión de productos
  • Fotos de productos (guardadas en el disco duro)
  • Carrito de compras por cada usuario
  • Registro de venta con dirección de envío
  • Vista de tienda
  • Detalle de producto

Quiero aclarar que no es un software listo para producción, y más bien es un proyecto escolar que puede servir ya sea como base para un proyecto completo de un e-commerce o para otro proyecto escolar.

Veamos ahora cómo es que está programado, en dónde se puede descargar. etcétera.

(más…)

Extraer imágenes de documento de Word

En este post te mostraré una manera muy sencilla de extraer todas las imágenes de un documento de Word, obteniendo las imágenes originales (en una alta resolución, dependiendo de la original).

Te mostraré un método que es realmente rápido y sencillo, para lo cual solo necesitas contar con WinRAR, 7Zip o una herramienta para descomprimir archivos.

(más…)

Laravel: obtener URL pública

En este post veremos cómo determinar o saber la URL de un proyecto de Laravel, es decir, obtener la URL absoluta.

Esto sirve en ocasiones que necesitamos determinar la url completa para por ejemplo consumir una API de Laravel desde JavaScript, incluir assets, determinar el dominio, etcétera.

Con esto me refiero a que obtendrías una URL como:

http://localhost/sistema_ventas_laravel_julio/public/

O, si está en un dominio de internet, algo como:

https://parzibyte.me/apps/sistema_ventas_laravel/public/

(más…)

Buscaminas en C – Juego

Hoy vamos a ver cómo implementar el juego buscaminas en C. Pasa que por diversión quise hacerlo y quedó muy bien a mi parecer.

Se trata del juego buscaminas en donde el usuario elige una casilla para descubrir lo que hay bajo la misma. Si hay una mina, el usuario pierde. En caso de que no, se le muestra al usuario el número de minas que hay cerca a esa casilla.

Lo que haremos será mostrar el tablero de juego, solicitar al usuario la casilla, ocultar las minas de manera aleatoria y saber si el usuario gana o pierde. Todo esto será modificable dentro del código fuente.

(más…)

Congruencia de Zeller en Python

En este post veremos cómo resolver o implementar la congruencia de Zeller en Python, que no es otra cosa más que resolver una fórmula.

Por si no lo sabes, la congruencia de Zeller permite calcular qué día de la semana es (de domingo a sábado) a partir del año, mes y día.

Además de esa función que obtiene el número de día de la semana (0 para domingo, 6 para sábado) vamos a implementar otra función que dice el nombre del día con letra.

(más…)

Python: ejercicio resuelto, buscar palabras en archivo de texto

En este post voy a resolver un ejercicio con Python. Dicho ejercicio dice así:

Usted esta trabajando con el equipo encargado de la integración de el nuevo CLI de un sistema operativo. En este momento usted se dedica a hacer pruebas para manipular archivos de texto, por lo que le asignan la siguiente tarea:

Debe realizar un programa que lea del usuario una palabra. Luego, vaya a buscar esta palabra en un archivo de texto llamado input.txt. En esta busqueda su programa debe hacer lo siguiente:

Contar cuantas ocurrencias de la palabra hay en el archivo de texto (despues de haber leido todo su contenido) y desplegar en pantalla esa cantidad.
Crear otro archivo llamado llamado result.txt, el cual contenga solamente las lineas en donde se encuentra la palabra buscada, desplegando al principio de la linea, su numero linea. Es decir que si fuera la primera linea, el numero es 1, si es la tercera el numero es 3, etc.
Ejemplo:

input.txt

Este es un archivo de prueba, para
ver si nuestro buscador funciona
de no ser asi, tendremos que hacer
mas pruebas y decidir que hacer.
Palabra a buscar: de
Ocurrencias: 2

result.txt

1 – Este es un archivo de prueba, para
3 – de no ser asi, tendremos que hacer

Básicamente se trata de recorrer el archivo, buscar las líneas en donde se encuentra la búsqueda y colocar los resultados (con el número de línea) en otro archivo.

Veamos cómo se soluciona.

(más…)

Problemas con Awesomplete al usar Bootstrap

En este artículo te explicaré un problema que me pasó hace algún tiempo usando la librería Awesomplete y el framework Bootstrap.

Pasa que al hacer un autocompletado con AJAX,  el input perdía su estilo y se mostraba a la derecha de la etiqueta. Algo así:

Awesomplete con Bootstrap – Cambiando estilo de input

Cuando en realidad, debería mostrarse así:

Input correcto con awesomplete y Bootstrap

(más…)

Por parzibyte, hace

Laravel: insertar datos en migración

En este post sobre Laravel y bases de datos veremos cómo insertar datos al momento de realizar la migración (proceso en el cual se crean o modifican tablas de la base de datos).

Esto puede servir para cuando tenemos que insertar datos por defecto o datos que solo se deben insertar una vez (por ejemplo, durante la instalación del sistema).

Personalmente utilicé este método para insertar el cliente “Mostrador” en una modificación que estoy haciendo al punto de venta en Laravel.

(más…)

Por parzibyte, hace

Android: cerrar app de manera programada

En este post te mostraré cómo, desde Java o Kotlin, salir de la app de Android. Esto es en caso de que implementes un botón de salir que cierre toda la app sin importar la activity en donde el usuario se encuentra.

Es importante mencionar que este método sale de la app completamente; y no simplemente cierra la actividad actual.

(más…)

Por parzibyte, hace

Sesiones en Node con express.js

En este post te mostraré un ejemplo sencillo y claro de cómo manejar la sesión o persistencia de sesión en Node.js usando el framework express.js

Vamos a usar el paquete express-session; y de este modo podremos acceder a los datos de sesión de la petición.

Gracias a la sesión podemos hacer varias cosas. Por ejemplo, restringir el acceso solo a usuarios logueados o llevar algo como un carrito de compras.

(más…)

Por parzibyte, hace

Datos de sesión con fetch

En este post te mostraré cómo hacer que la sesión persista al usar la fetch API de JavaScript. Pasa que en ocasiones hacemos cosas con la sesión del lado del servidor, pero al usar fetch no se toma en cuenta la sesión.

Por ejemplo, iniciamos sesión con fetch y al querer acceder a un recurso protegido con la sesión, nos dice que no hay datos de sesión o que no estamos logueados.

Te mostraré cómo hacer que la sesión del lado del servidor (lo he probado con PHP, Go y Node.js o bueno JavaScript del lado del cliente) persista al usar fetch.

(más…)

Por parzibyte, hace