Marca de agua colocada con PHP y GD

Poner marca de agua a imágenes con PHP

En este post voy a explicar y demostrar cómo se pueden poner marcas de agua con PHP utilizando las funciones de la librería GD.

Vamos a ver cómo poner la marca de agua en distintas posiciones (arriba a la izquierda, arriba a la derecha, centrada horizontal y verticalmente) y cómo modificar la opacidad de la marca de agua.

Marca de agua colocada con PHP y GD

Marca de agua colocada con PHP y GD

En la imagen de arriba se puede notar que he colocado una marca de agua de una “terminal” sobre una captura de código C (es sobre el post de generar números aleatorios con C).

He elegido estas dos imágenes porque el dueño soy yo, así que no pueden existir reclamaciones de derechos de autor y esas cosas que dan pereza.

Nota: recuerda que hace tiempo publiqué WaterPy, una aplicación similar pero escrita en Python.

(más…)

Aplicación de notas con localStorage, JavaScript, Bootstrap y Vue js

Aplicación web para tomar notas con JavaScript, Vue.js, Bootstrap y localStorage

Hace algún tiempo creé una aplicación web como un ejercicio para aplicar para un trabajo. Decidí hacerla con Vue.js, Bootstrap y localStorage en conjunto.

Al final resultó en algo como lo de la imagen:

Aplicación de notas con localStorage, JavaScript, Bootstrap y Vue js

Aplicación de notas con localStorage, JavaScript, Bootstrap y Vue js

Es una simple aplicación de notas que puedes crear, eliminar, editar y listar. También se puede cambiar el color de todas las notas (fue un requisito, no cosa mía, así como el idioma).

(más…)

Cambiando precio con Sublime POS 3

Cambiar el precio de productos al vender con punto de venta Sublime POS 3

¿No te ha pasado que estás a punto de vender pero el cliente quiere un cambio en el precio de los productos? por ejemplo, tienes a un cliente común que quiere un pequeño descuento en el producto pero no puedes ir a la administración de productos porque sería tardado.

Afortunadamente el punto de venta gratuito Sublime POS 3 soluciona este inconveniente y permite cambiar el precio de venta de los productos.

En este post explicaré cómo se hace y por qué es seguro hacerlo incluso si dejamos el negocio en manos de una tercera persona.

(más…)

PHP y cURL - petición con JSON

Enviar y recibir JSON con encabezados usando PHP y cURL

En este post voy a explicar cómo enviar datos codificados como JSON y cómo recibir datos igualmente de tipo JSON usando PHP y las funciones de cURL.

Al final seremos capaces de enviar datos JSON con PHP así como encabezados HTTP.

Gracias a que veremos cómo hacer esta comunicación podríamos conectar dos servidores de PHP en distintos hosts, o unificar el consumo de APIs de terceros en un solo lugar.

(más…)

Seleccionar producto por el que se cambia

Ventas y apartados con Sublime POS 3 – Punto de venta gratuito

Ya vimos cómo administrar productos y realizar ventas al contado con Sublime POS 3.

La venta al contado resta la existencia del producto justo después de hacer la venta, además de que se debe pagar el concepto total.

De manera distinta, los apartados son pagados en abonos. Al hacer un apartado los productos son descontados cuando se liquida la cuenta, además de que se pone un plazo límite y se pueden cancelar o cambiar productos.

Veamos cómo se hace.

(más…)

Creación de tabla dentro de MySQL con migración de Laravel

CRUD de Laravel con MySQL: administrador de canciones

CRUD de Laravel con MySQL o MariaDB

Hoy toca el turno de Laravel (un framework de PHP) para conectarse a la base de datos más popular: MySQL.

Creación de tabla dentro de MySQL con migración de Laravel

Creación de tabla dentro de MySQL con migración de Laravel

En este post voy a explicar cómo conectar Laravel con MySQL o MariaDB, comenzando por configurar la base de datos, pasando a través de las rutas, repasando el motor de plantillas de Blade y tocando un poco el tema de los mensajes flash.

Al final vamos a tener un CRUD o ABC, en donde se verán las operaciones básicas de Laravel con MySQL: insert o insertar, update o actualizar, select o seleccionar y finalmente delete o eliminar.

(más…)

Búsqueda de productos en Sublime POS 3

Software gratuito para administración de inventario y productos: Sublime POS 3

Todos los negocios que realicen la venta de productos necesitan llevar el control de la existencia de productos que tienen a la venta.

Gracias a esto se evitan pérdidas. La administración de productos conlleva otras cosas además de registrar. Por ejemplo:

  • Búsqueda de productos
  • Aumento en la existencia
  • Registro de pérdidas
  • Eliminación de productos (controlada, para usuarios con permiso)
  • Cambio de precios
  • Crear copias de productos

Veamos cómo puedes llevar un control de tus productos usando Sublime POS 3, un sistema de ventas gratuito.

Nota: ya vimos cómo realizar ventas de productos en otro post.

(más…)

Instalar dependencias pero evitar las de desarrollo o dev - Laravel y Composer

Pequeño truco para reducir el tamaño de vendor en Laravel

A más de un programador de Laravel le ha pasado esto: ha terminado el proyecto, pasado las pruebas y está listo para enviarlo a producción pero pasa algo: la carpeta vendor tiene un tamaño realmente grande.

Esto es porque la carpeta vendor tiene todos los paquetes que necesita el framework, pero hay unos de ellos que solamente son usados en modo desarrollo y que no son necesarios en producción.

Instalar dependencias pero evitar las de desarrollo o dev - Laravel y Composer

Instalar dependencias pero evitar las de desarrollo o dev – Laravel y Composer

Por eso es que hoy veremos cómo eliminar los paquetes innecesarios de vendor, o mejor dicho, cómo instalar únicamente los necesarios.

(más…)

Generador de diagramas de clase UML con JavaScript y Canvas

Generador de diagramas de clase UML con JavaScript

Introducción

En una de las materias que estoy cursando (o que cursé, dependiendo del momento en el que esto se publique) tuve que presentar todas esas cosas aburridas que conlleva el desarrollo de software.

Me refiero a los diagramas, casos de uso, clases, interfaces y todas esas cosas que al final (desde mi punto de vista) no sirven para nada y solamente hacen perder tiempo.

(más…)

Obteniendo valores de localStorage con JavaScript

Almacenamiento en el navegador con JavaScript y localStorage

El almacenamiento de datos en el navegador usando JavaScript, además de las cookies, ya es una cosa que salió hace mucho tiempo. Sin embargo, muchas personas todavía no conocen sobre el tema o saben poco sobre el mismo.

Es por eso que en este post voy a explicar cómo trabajar con la API de localStorage en JavaScript para almacenar datos en el navegador del usuario, pero lo más importante es que estos datos van a persistir aunque el navegador se cierre o se actualice.

(más…)

Definir nuestras propias constantes en Laravel

Agregar constantes en Laravel

En este post voy a explicar la manera recomendada, más fácil y mantenible de agregar o definir nuestras propias constantes en el framework Laravel (será en la versión 5.7 pero debería funcionar bien para otras versiones).

Las constantes son importantes y necesarias en todo sistema, ya que permiten tener un código mejor estructurado y mantenible a largo plazo. Podríamos definir en ellas el IVA, un descuento que se hace a determinado pago, etcétera.

(más…)