psql-backup es una librería PHP creada por julio101920 (el compa que respalda hasta los tamales si le das chance). Sirve para hacer backups de PostgreSQL desde PHP, y si no tienes pg_dump, no pasa nada, la librería se rifa con puro PHP.
Prepárate para enamorarte de Cinnamon 6.4, el entorno de escritorio que se renueva con un tema por defecto espectacular: ¡diseño moderno, esquinas redondeadas y una sensación “flotante” que te encantará! Navegar por tu sistema nunca se vio tan bien.
Descanso para tus Ojos con Night Light
¡Dile adiós a la fatiga visual! Con la nueva función Night Light, Linux Mint 22.1 ajusta automáticamente el color de tu pantalla para proteger tus ojos, especialmente durante la noche. ¡Tu vista te lo agradecerá!
Más Rápido y Eficiente “Bajo el Capó”
No solo es bonito, ¡también es potente! Gracias a la modernización de APT, la gestión de paquetes es ahora más rápida y estable, con traducciones impecables y un rendimiento que notarás. Además, Pipewire es el nuevo servidor de sonido por defecto, lo que significa un audio impecable y una mejor compatibilidad con tus apps favoritas.
Pequeños Detalles, Gran Diferencia
Nemo ahora soporta miniaturas de archivos .ora.
Bulky te ayuda a limpiar los nombres de tus archivos.
Modos de energía para que tu sistema se adapte a ti.
¡Y mucho más!
Basado en Ubuntu 24.04 LTS y con el Kernel 6.8, “Xia” es sinónimo de estabilidad y soporte a largo plazo hasta 2029.
¿Listo para transformar tu experiencia Linux? ¡Descarga ya Linux Mint 22.1 “Xia” y descubre un sistema operativo diseñado para deleitarte!
¡Corre la voz y comparte esta buena noticia! ¿Cuál es la característica que más te emociona de “Xia”?
🎬 Cómo Crear un Descargador de Videos de YouTube con Interfaz Gráfica en Python
¿Quieres tu propia app para descargar videos de YouTube de forma sencilla? Aquí te explico cómo hacerlo con Python, usando una interfaz gráfica moderna y arte ASCII decorativo. Usaremos pytubefix para evitar errores comunes como el 400 Bad Request.
✅ Paso 1: Instala las dependencias
Abre la terminal y escribe:
pip install pytubefix
🧱 Paso 2: Código completo del programa
Crea un archivo llamado descargador_youtube.py y copia el siguiente contenido:
import tkinter as tk
from tkinter import ttk, messagebox, filedialog
from pytubefix import YouTube
import threading
def descargar_video():
url = entrada_url.get()
carpeta = ruta_descarga.get()
if not url:
messagebox.showwarning("Advertencia", "Por favor, ingresa una URL de YouTube.")
return
try:
boton_descargar.config(state=tk.DISABLED)
estado.set("Descargando video...")
yt = YouTube(url)
video = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()
if not video:
raise Exception("No se encontró un stream compatible.")
video.download(output_path=carpeta)
estado.set("¡Descarga completada!")
messagebox.showinfo("Éxito", f"Video descargado: {yt.title}")
except Exception as e:
estado.set("Error en la descarga.")
messagebox.showerror("Error", str(e))
finally:
boton_descargar.config(state=tk.NORMAL)
def elegir_carpeta():
carpeta = filedialog.askdirectory()
if carpeta:
ruta_descarga.set(carpeta)
def iniciar_descarga():
hilo = threading.Thread(target=descargar_video)
hilo.start()
# Crear ventana
ventana = tk.Tk()
ventana.title("Descargador de YouTube")
ventana.geometry("600x460")
ventana.resizable(False, False)
ventana.configure(bg="#ffffff")
# Variables
ruta_descarga = tk.StringVar()
estado = tk.StringVar(value="Esperando URL...")
# Arte ASCII decorativo
ascii_art = r"""
__ __ ______ __ ______ __ __
/\ \ _ \ \ /\ __ \ /\ \ /\ ___\ /\ "-.\ \
\ \ \/ ".\ \ \ \ \/\ \ \ \ \____ \ \ __\ \ \ \-. \
\ \__/".~\_\ \ \_____\ \ \_____\ \ \_____\ \ \_\\"\_\
\/_/ \/_/ \/_____/ \/_____/ \/_____/ \/_/ \/_/
"""
etiqueta_ascii = tk.Label(
ventana,
text=ascii_art,
font=("Courier", 10),
bg="#ffffff",
fg="#cc0000",
justify="left"
)
etiqueta_ascii.pack(pady=(5, 0))
# Estilo
estilo = ttk.Style()
estilo.theme_use("clam")
estilo.configure("TButton", font=("Segoe UI", 10), padding=6)
estilo.configure("TLabel", font=("Segoe UI", 10), background="#ffffff")
estilo.configure("TEntry", font=("Segoe UI", 10))
# Widgets
ttk.Label(ventana, text="URL del video de YouTube:").pack(pady=10)
entrada_url = ttk.Entry(ventana, width=60)
entrada_url.pack(pady=5)
frame_carpeta = ttk.Frame(ventana)
frame_carpeta.pack(pady=10)
ttk.Entry(frame_carpeta, textvariable=ruta_descarga, width=45).pack(side=tk.LEFT, padx=(0, 10))
ttk.Button(frame_carpeta, text="Elegir carpeta", command=elegir_carpeta).pack(side=tk.LEFT)
boton_descargar = ttk.Button(ventana, text="Descargar Video", command=iniciar_descarga)
boton_descargar.pack(pady=15)
ttk.Label(ventana, textvariable=estado, foreground="blue").pack(pady=5)
ventana.mainloop()
En este artículo explicaremos cómo crear un sistema de detección de personas que grabe automáticamente la pantalla solo cuando se detecta presencia humana. Este proyecto es útil si usas cámaras IP o software como V380 y deseas una forma eficiente de grabar únicamente cuando hay movimiento humano en una región específica del escritorio.
✅ ¿Qué hace este script?
Captura un área definida de la pantalla (donde aparece el video de la cámara).
Usa un modelo de inteligencia artificial para detectar personas.
Comienza a grabar cuando detecta presencia humana.
Detiene la grabación si no se ve nadie por un período definido.
Guarda los videos automáticamente con marcas de tiempo.
🧠 Tecnologías y librerías usadas
OpenCV: procesamiento de imágenes y video.
mss: captura rápida de pantalla.
NumPy: procesamiento eficiente de matrices.
datetime y time: control de tiempo.
Modelo Caffe SSD preentrenado: para detección de rostros/personas.
📦 Requisitos
Asegúrate de tener Python 3.8+ (funciona en 3.12) y las siguientes librerías instaladas:
pip install opencv-python numpy mss
También necesitas dos archivos de modelo descargados:
deploy.prototxt
res10_300x300_ssd_iter_140000.caffemodel
Se pueden obtener desde los repositorios oficiales de OpenCV o desde:
Si buscas una solución gratuita, potente, extensible y con una gran comunidad, ideal para una amplia variedad de aplicaciones (web, móviles, empresariales) y si no dependes fuertemente del ecosistema Microsoft:PostgreSQL es una excelente opción. Su robustez y características avanzadas lo hacen muy versátil.
Si necesitas una solución gratuita, con buen rendimiento y alta compatibilidad con MySQL, especialmente si ya tienes experiencia con MySQL o planeas una migración sencilla:MariaDB es una alternativa sólida.
Si tu infraestructura ya está fuertemente basada en productos Microsoft, necesitas una integración perfecta con ellos, un amplio conjunto de herramientas empresariales y soporte comercial robusto, y el presupuesto no es la principal limitante:SQL Server sería la opción más adecuada.
En resumen:
PostgreSQL: Versátil, potente, de código abierto, ideal para diversas aplicaciones.
MariaDB: Gratuita, buen rendimiento, compatible con MySQL.
SQL Server: Óptimo para entornos Microsoft, con amplias funcionalidades comerciales.
Para tomar la mejor decisión, te recomiendo considerar los siguientes factores específicos para tu situación en Los Mochis:
Requisitos de tu aplicación: ¿Qué tipo de datos manejarás? ¿Qué tipo de consultas realizarás? ¿Necesitas características específicas como geodatos?
Tamaño y escalabilidad esperada: ¿Cuánto crecerá tu base de datos y tu aplicación?
Experiencia de tu equipo: ¿Con qué base de datos están más familiarizados tus desarrolladores y administradores?
Presupuesto: ¿Puedes asumir los costos de licencia de SQL Server?
Infraestructura existente: ¿Qué sistemas operativos utilizas? ¿Necesitas una integración estrecha con otras herramientas?
Soporte local: ¿Hay experiencia y soporte técnico disponible en Los Mochis para alguna de estas bases de datos en particular?
Considerando que trabajarás con CodeIgniter 4, tanto MariaDB como PostgreSQL son excelentes opciones y muy populares en la comunidad de PHP y CodeIgniter. SQL Server también puede funcionar bien, pero podría tener algunas consideraciones adicionales.
MariaDB con CodeIgniter 4:
Ventajas:
Compatibilidad Directa: CodeIgniter 4 tiene un excelente soporte para MySQL, y dado que MariaDB es altamente compatible, la configuración y el uso serán muy sencillos.
Rendimiento: Puede ofrecer un buen rendimiento para aplicaciones web desarrolladas con CodeIgniter 4.
Facilidad de Uso: Muchos desarrolladores PHP están familiarizados con MySQL/MariaDB, lo que podría facilitar el desarrollo y la administración.
Código Abierto y Gratuito: Sin costos de licencia, lo cual es atractivo para muchos proyectos.
Comunidad: Amplia comunidad de usuarios de PHP y MySQL/MariaDB.
Desventajas:
Menos Características Avanzadas: Comparado con PostgreSQL, podría carecer de algunas características más avanzadas si tu aplicación en el futuro las necesitara (tipos de datos más complejos, extensiones como PostGIS, etc.).
PostgreSQL con CodeIgniter 4:
Ventajas:
Características Potentes: Ofrece características avanzadas que podrían ser útiles para aplicaciones más complejas (tipos de datos JSON, arrays, funciones avanzadas, etc.).
Integridad de Datos: Conocido por su robustez y cumplimiento de los estándares SQL, lo que puede contribuir a una mayor integridad de los datos.
Extensiones: La capacidad de extender su funcionalidad con extensiones como PostGIS para datos geoespaciales es una gran ventaja si tu aplicación lo requiere.
Rendimiento Sólido: Funciona muy bien con aplicaciones web y puede manejar grandes volúmenes de datos y consultas complejas de manera eficiente.
Comunidad: Una comunidad fuerte y activa dentro del mundo de PHP y PostgreSQL.
Desventajas:
Curva de Aprendizaje Ligeramente Mayor: Si no estás familiarizado con PostgreSQL, podría haber una pequeña curva de aprendizaje en comparación con MySQL/MariaDB.
Configuración Inicial: La configuración inicial podría tener algunos pasos ligeramente diferentes en comparación con MySQL/MariaDB.
SQL Server con CodeIgniter 4:
Ventajas:
Potencia y Funcionalidades: Ofrece un conjunto robusto de características empresariales.
Integración (si usas Windows Server): Si tu servidor corre en Windows Server, la integración podría ser más sencilla en algunos aspectos.
Desventajas:
Costo de Licencia: El costo de las licencias puede ser un factor limitante.
Configuración Adicional: La configuración para que CodeIgniter 4 se conecte a SQL Server podría requerir algunos pasos adicionales y la instalación de drivers específicos.
Menor Popularidad en el Mundo PHP: Aunque funciona, no es tan comúnmente utilizado con PHP como MariaDB o PostgreSQL, por lo que la comunidad y los ejemplos específicos para CodeIgniter 4 podrían ser menores.
¿Cuál es la mejor opción para CodeIgniter 4 ?
Considerando que se usara CodeIgniter 4, tanto MariaDB como PostgreSQL son excelentes opciones.
Si buscas simplicidad, familiaridad (si vienes de MySQL), buen rendimiento para aplicaciones web típicas y una configuración sencilla con CodeIgniter 4, MariaDB es una opción muy sólida y popular.
Si anticipas que tu aplicación podría necesitar características más avanzadas en el futuro, valoras la integridad de los datos, o quieres tener la flexibilidad de usar extensiones potentes como PostGIS, PostgreSQL es una opción fantástica y cada vez más popular en la comunidad PHP.
Mi recomendación general para CodeIgniter 4 sería:
Si no tienes necesidades muy específicas y buscas una solución probada y sencilla, elige MariaDB. Es muy probable que cumpla con todos tus requisitos para la mayoría de las aplicaciones web.
Si prevés que tu aplicación crecerá en complejidad o necesitará características más avanzadas, o si simplemente prefieres la potencia y las características de PostgreSQL, entonces esta sería una excelente elección. CodeIgniter 4 tiene un buen soporte para PostgreSQL.
SQL Server podría ser una buena opción si ya tienes una fuerte inversión en el ecosistema Microsoft y esa es la base de datos estándar en tu entorno. Sin embargo, para un proyecto nuevo con CodeIgniter 4, MariaDB o PostgreSQL suelen ser opciones más comunes y con una integración más directa en el mundo del desarrollo PHP.
En resumen, para CodeIgniter 4, te recomendaría inclinarte por MariaDB por su simplicidad y compatibilidad directa, o por PostgreSQL si anticipas necesidades más avanzadas en el futuro. Ambas son excelentes bases de datos y funcionarán muy bien con el framework. ¡La elección final dependerá de tus requisitos específicos!
library to generate carta porte complement CFDI 4.0
CodeIgniter 4 Que es Carta Porte
La Carta Porte es un documento fiscal digital que se utiliza en México para amparar el traslado de bienes y mercancías dentro del territorio nacional. Su principal función es acreditar la legal posesión de la mercancía durante su transporte, así como proporcionar información detallada sobre el origen y destino de la misma.
Aquí hay algunos puntos clave sobre la Carta Porte:
Documento fiscal digital: Es un comprobante fiscal electrónico (CFDI) al que se le incorpora el complemento Carta Porte.
Ampara el traslado de mercancías: Acredita la legal estancia y/o tenencia de los bienes o mercancías durante su traslado en territorio nacional.
Identifica el origen y destino: Proporciona información detallada sobre el lugar de donde provienen las mercancías y a dónde se dirigen.
Combate el contrabando: Ayuda a prevenir el contrabando y la competencia desleal entre empresas transportistas.
Facilita la trazabilidad: Permite rastrear la mercancía durante todo su recorrido.
Contrato de transporte: Funciona como un contrato legal entre el remitente, el transportista y el destinatario, estableciendo los términos y condiciones del transporte.
En resumen, la Carta Porte es un documento esencial para el transporte de mercancías en México, ya que garantiza la legalidad, seguridad y trazabilidad de los bienes durante su traslado.
Requerimientos
PhpCfdi\SatCatalogos
julio101290/boilerplatelog
hermawan/codeigniter4-datatables
Instalación
Ejecutar Comandos para la instalación de la librería
Biblioteca CodeIgniter4 Boilerplatesells para generar ventas con formato de impresión PDF, CFD4.0 Factura para enviar a los clientes por correo electrónico.
Usamos cookies en nuestro sitio web para brindarle la experiencia más relevante recordando sus preferencias y visitas repetidas. Al hacer clic en "Aceptar", acepta el uso de TODAS las cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.