Formulario para firmar PDF con Python - Seleccionar P12, contraseña y archivo

Python – Firmar PDF con P12 y Flask

En este post te compartiré los resultados de mi investigación sobre cómo firmar, digitalmente, un documento PDF usando un certificado con extensión P12 y la librería endesive.

Al final terminé creando una aplicación web con Flask que permite que elijas el certificado, el PDF y la contraseña para devolverte el PDF pero firmado digitalmente.

Ten en cuenta que yo probé con un certificado de prueba generado por mí mismo, así que no sé si esto funcione con algo real.

(más…)

Lista ligada en Python

En este post te mostraré una lista ligada en Python que después se podría modificar como una cola o pila (ya que se pueden insertar elementos al inicio y al final).

Las operaciones que manejaremos con esta lista enlazada son:

  • Agregar al inicio
  • Agregar al final
  • Saber si elemento existe
  • Eliminar un elemento
  • Obtener cabeza
  • Obtener cola
  • Recorrer lista

Por cierto, vamos a usar ciclos y no recursión para las operaciones. De esta manera el código queda más simple.

(más…)

Lista enlazada con Python - Estructura de datos y operaciones
Python - Calcular media, alumnos suspendidos y promedio superior a 5 (ejercicio resuelto)

Python: ejercicio de alumnos y calificaciones con matriz

Hoy vamos a resolver otro ejercicio de alumnos y calificaciones con Python usando matrices.

La matriz ya estará llena al momento de ejecutarse el ejercicio, es decir, la llenará el programador.

La solicitud dice:

  1. Muestra por pantalla cuántos alumnos suspendieron cada asignatura
  2. Realiza la media de las notas de cada alumno
  3. Muestra por pantalla los nombres de los alumnos que obtuvieron una nota media superior a 5.

Entonces veamos cómo resolver este ejercicio de materias, alumnos y calificaciones en donde sacaremos promedios y alumnos reprobados.

(más…)

Por parzibyte, hace

Python: ejercicio de agenda

Hoy vamos a resolver un ejercicio simple con Python. Se trata de una agenda donde el usuario podrá introducir contactos hasta que diga que no desea insertar más y entonces mostrar todos los valores introducidos por pantalla.

No podrá guardar nombres repetidos. Esta agenda será un diccionario cuya clave será el nombre de los contactos y cuyo valor serán sus teléfonos.

Entonces usaremos diccionarios, funciones y ciclos en el lenguaje de programación Python.

(más…)

Ejercicio resuelto en Python - Agenda con nombre y teléfono en diccionario

Trabajando con parámetros de ruta en Laravel

Hoy vamos a hablar un poco sobre los parámetros que se pueden pasar en la URL cuando usamos el framework Laravel y sobre la importancia del nombre de la variable que los mismos deben tener.

Recuerda que cuando usas un resource de Laravel, el framework asigna un nombre dependiendo del modelo; y varias veces no es el que esperamos.

Por otro lado debemos cuidar el nombre de la variable cuando recibimos el parámetro en un controlador.

Veamos cómo funcionan los parámetros de ruta en Laravel al usar resources y controladores, además de un truco para saber el nombre de los parámetros de las rutas de Laravel.

(más…)

Punto de venta con PHP, jQuery y Bootstrap – Gratuito y open source

Hoy traigo al blog otro punto de venta gratuito y open source, pero este es especial pues fue el primer programa que hice y que fue usado por varias personas.

El punto de venta que presento es un POS web, totalmente open source y gratuito, además de simple y bonito.

Punto de venta web con PHP, MySQL, jQuery, JavaScript y Bootstrap

Punto de venta web con PHP, MySQL, jQuery, JavaScript y Bootstrap

Está hecho con PHP y JavaScript con jQuery (era el año 2016), usa MySQL/MariaDB como motor de base de datos y Bootstrap para los estilos, con varios temas.

Como ya dije anteriormente, este fue mi primer punto de venta oficial que comencé como por el 2015 (apenas iniciaba la universidad, qué tiempos) y luego terminé en el 2016.

Aunque parezca antiguo sigue funcionando como un encanto incluso con PHP 8.

En este post te mostraré los módulos del sistema y cómo puedes descargarlo e instalarlo en tu computadora o en tu hosting compartido.

El programa es totalmente responsivo y permite la impresión de tickets de manera local.

(más…)

Registrar usuario en sistema de ventas
Factura o ticket de venta creado por app móvil de Sistema de ventas para Android

Punto de venta gratuito para Android – Úsalo en teléfono o tableta

El día de hoy te quiero compartir una aplicación de punto de venta totalmente gratuita, sin restricciones y que no necesita internet para Android.

Aplicación de punto de venta gratuita para Android

Aplicación de punto de venta gratuita para Android

De este modo vas a poder usar esta app de ventas para controlar tu negocio (o tus negocios, ya que es multicajero y multinegocio) desde tu teléfono o tableta.

No es una broma, trampa, clickbait o cosas de esas. Realmente te mostraré un PDV gratis para Android.

Te recomiendo leer el post y ver los vídeos completos para despejar todas tus dudas.

(más…)

Cambiar terminal predeterminada en Visual Studio Code - Elegir CMD command prompt

Visual Studio Code: usar CMD en lugar de PowerShell

La terminal integrada de Visual Studio Code (VSC) viene de mucha ayuda pues abre una terminal en el directorio del proyecto que estamos editando y nos evita hacer muchos cd.

Lo que no me gusta es que por defecto se abre una nueva instancia de PowerShell y personalmente no la entiendo ni es de mi agrado, ya que soy más del CMD.

Así que en este post veremos cómo abrir el CMD dentro de la terminal integrada de Visual Studio Code, o mejor dicho, cambiar las preferencias de la consola para elegir entre PowerShell o cmd.

(más…)

Compilar Sublime POS 3 en Android

En este post te mostraré cómo puedes usar Sublime POS 3 (punto de venta) en Android compilando por ti mismo el código fuente.

Al final vas a poder usar el sistema nativamente y en modo local en una tableta o teléfono, además de que podrás usarlo como servidor y permitir que otros dispositivos se conecten al mismo.

Por lo tanto, si cuentas con el source code de este sistema de ventas podrás usarlo nativamente en Android sin depender de un servidor, y podrás usarlo en teléfonos o tabletas.

(más…)

Usar dispositivo Android como servidor de sistema de ventas
Ver cola de espera por sector o vendedor en sistema para turnos

Sistema turnero con colas, recepcionista y clientes

En este post voy a mostrarte una actualización o modificación al sistema de turnos que ya está en mi blog desde hace algún tiempo.

Recuerda que el sistema de turnos que te mostré anteriormente permite al propio usuario solicitar su turno y el vendedor o profesional que lo atenderá.

Ahora en esta nueva versión se presentan los siguientes cambios (además de login con usuarios, responsivo, utilizable en red local, etcétera):

  • Registro de usuario por recepcionista
  • Colas de espera por distintas áreas
  • Colas de espera por vendedores o profesionales
  • Los vendedores se pueden poner como ausentes o disponibles, y se guarda el tiempo que se toma el descanso
  • Mover clientes en las colas y priorizar a algunos usando un drag and drop
  • Permisos por usuarios. El vendedor solo puede ver los clientes que él atenderá, y no puede cambiar la prioridad
  • Avisar si el cliente ya lleva esperando mucho tiempo

A lo largo de este post te mostraré los cambios de este sistema y cómo puedes obtenerlo con todo su código fuente.

(más…)

Descargar libro de CONALITEG con Script de Python - Descargar imágenes y convertir a PDF

Descargar libros de CONALITEG

Ayer alguien me preguntó si se podía descargar un libro de texto gratuito de la página de CONALITEG (Comisión Nacional de Libros de Texto Gratuitos), así que le pedí que me enviara el enlace y al entrar vi que no es un PDF.

Al analizarlo vi que es una imagen que se muestra con magazine.js y que cada que pasas de página se carga una nueva imagen en el fondo (eso lo vi solo en un vistazo rápido, así que puede que esté equivocado en las librerías o esas cosas, aunque al final no importa):

Analizando libro de CONALITEG para descargar

Analizando libro de CONALITEG para descargar

Si te fijas, las páginas van en orden, es decir, va la 001, 002, etcétera hasta el final del libro.

Entonces pensé en una idea: hacer un script de Python que reciba el número de páginas del libro, la dirección del mismo y visite todas las páginas de las imágenes, las descargue una por una y después las convierta a PDF.

Para mi sorpresa el script funcionó como un encanto, y por eso te vengo a compartir cómo descargar esos libros y tal vez otros más que usen la misma tecnología.

(más…)