Herramientas Informaticas

Etiqueta: GNU/LINUX Página 4 de 15

🤖 Descargador de YouTube 2.0: Guía Definitiva de tu App Ciberpunk 💻

Entrada fija

🤖 Descargador de YouTube 2.0: Guía Definitiva de tu App Ciberpunk 💻

¡Hola! Has creado una aplicación increíblemente sofisticada. Con la incorporación de hilos, una barra de progreso y una interfaz de usuario con un estilo de terminal retro, este proyecto merece una publicación completa y visualmente atractiva.

A continuación, te presento el manual completo, en formato Markdown, que incluye tu código exacto y una explicación exhaustiva de cada una de sus nuevas características, desde la instalación hasta su uso.


Requisitos Esenciales 🛠️

  • Un sistema operativo Linux (la guía se basa en distribuciones como Ubuntu/Debian).
  • Una terminal.
  • El archivo cc_icon.png en el mismo directorio de tu script, si quieres que la aplicación muestre el ícono.

Paso 1: Preparando tu Entorno Python 🐍

Si ya tienes Python y pip instalados, puedes saltarte este paso. Si no, sigue estas instrucciones para prepararte.

Actualización del Sistema

Siempre es una buena práctica comenzar con una actualización de tus paquetes.

sudo apt-get update
sudo apt-get upgrade

Instalación de Python y pip

Estos comandos instalarán tanto el intérprete de Python como su gestor de paquetes.

sudo apt-get install python3
sudo apt-get install python3-pip

Para verificar que todo está en orden, ejecuta estos comandos y asegúrate de que se muestre un número de versión.

python3 --version
pip3 --version

Paso 2: Configuración e Instalación de Librerías 📦

Ahora que tu entorno base está listo, es vital usar un entorno virtual (venv) para aislar tu proyecto y mantenerlo ordenado.

Creando y Activando el Entorno Virtual

Crea una carpeta para tu proyecto, navega a ella y activa el entorno virtual.

mkdir descargador_yt_ciberpunk
cd descargador_yt_ciberpunk
python3 -m venv venv
source venv/bin/activate

Instalando las Bibliotecas Adicionales

Tu aplicación usa varias bibliotecas que no vienen por defecto. Con el entorno virtual activo, instala todas las dependencias con un solo comando.

pip install pytubefix

pytubefix es la biblioteca principal para la descarga. Los otros módulos que utilizas, como tkinter, ttk, threading y os, son parte de la librería estándar de Python y no necesitan instalación adicional.


Paso 3: ¡El Código Completo! Tu App Ciberpunk en Acción 💻

A continuación, se presenta el código completo. Es una obra de ingeniería que combina lógica robusta con una interfaz de usuario avanzada. Copia y pega el código exactamente como está en un archivo llamado descargador.py.

import tkinter as tk
from tkinter import ttk, messagebox, filedialog
from pytubefix import YouTube
from pytubefix.exceptions import RegexMatchError
import threading
import re
import os
import webbrowser --- Lógica de la Aplicación --- def es_url_youtube(url):
"""Valida si la cadena proporcionada es una URL de YouTube."""
patron = r"^(https?://)?(www.)?(youtube.com|youtu.be)/.+$"
return re.match(patron, url) is not None def progreso_descarga(stream, chunk, bytes_remaining):
"""Función para actualizar la barra de progreso."""
total_size = stream.filesize
bytes_descargados = total_size - bytes_remaining
porcentaje = (bytes_descargados / total_size) * 100
barra_progreso['value'] = porcentaje
ventana.update_idletasks() def descarga_completada(stream, file_path):
"""Función que se llama cuando la descarga se completa."""
estado.set("¡Descarga completada!")
messagebox.showinfo("Éxito", f"Descarga completada en: {file_path}")
boton_descargar.config(state=tk.NORMAL)
boton_abrir_carpeta.config(state=tk.NORMAL)
ruta_descarga_final = os.path.dirname(file_path)
boton_abrir_carpeta.config(command=lambda: os.startfile(ruta_descarga_final) if os.name == 'nt' else os.system(f'open "{ruta_descarga_final}"') if os.name == 'darwin' else os.system(f'xdg-open "{ruta_descarga_final}"'))
barra_progreso['value'] = 0 def descargar_video():
url = entrada_url.get()
carpeta = ruta_descarga.get()
descargar_audio_solo = opcion_descarga.get() == "audio" if not url: messagebox.showwarning("Advertencia", "Por favor, ingresa una URL de YouTube.") return if not es_url_youtube(url): estado.set("URL inválida.") messagebox.showerror("Error", "La URL ingresada no es una URL válida de YouTube.") return try: boton_descargar.config(state=tk.DISABLED) boton_abrir_carpeta.config(state=tk.DISABLED) estado.set("Validando URL...") yt = YouTube(url, on_progress_callback=progreso_descarga, on_complete_callback=descarga_completada) estado.set(f"Descargando: {yt.title} ({'Audio' if descargar_audio_solo else 'Video'})") if descargar_audio_solo: audio = yt.streams.filter(only_audio=True).order_by('abr').desc().first() if audio: audio.download(output_path=carpeta, filename=f"{yt.title}.mp3") else: raise Exception("No se encontraron streams de audio disponibles.") else: video = yt.streams.get_highest_resolution() if video: video.download(output_path=carpeta) else: raise Exception("No se encontraron streams de video de alta resolución disponibles.") except RegexMatchError: estado.set("Error: URL de YouTube no válida.") messagebox.showerror("Error", "La URL proporcionada no parece ser una URL válida de YouTube.") boton_descargar.config(state=tk.NORMAL) boton_abrir_carpeta.config(state=tk.DISABLED) barra_progreso['value'] = 0 except Exception as e: estado.set(f"Error en la descarga: {e}") messagebox.showerror("Error", str(e)) boton_descargar.config(state=tk.NORMAL) boton_abrir_carpeta.config(state=tk.DISABLED) barra_progreso['value'] = 0 def elegir_carpeta():
carpeta = filedialog.askdirectory()
if carpeta:
ruta_descarga.set(carpeta) def iniciar_descarga():
hilo = threading.Thread(target=descargar_video)
hilo.start() def abrir_enlace_acerca_de():
webbrowser.open_new_tab("https://shalom-now.blogspot.com/") --- Lógica de la Animación de Escritura --- palabras_animacion = ["FAST", "EASY", "FREE", "MP3"]
palabra_idx = 0
letra_idx = 0
cursor_visible = True def animar_escritura():
global palabra_idx, letra_idx
palabra_actual = palabras_animacion[palabra_idx] if letra_idx < len(palabra_actual): texto_dinamico.set(palabra_actual[:letra_idx + 1]) letra_idx += 1 ventana.after(150, animar_escritura) else: ventana.after(1500, animar_borrado) def animar_borrado():
global palabra_idx, letra_idx
if letra_idx > 0:
texto_dinamico.set(palabras_animacion[palabra_idx][:letra_idx - 1])
letra_idx -= 1
ventana.after(100, animar_borrado)
else:
palabra_idx = (palabra_idx + 1) % len(palabras_animacion)
ventana.after(500, animar_escritura) def animar_cursor():
global cursor_visible
if cursor_visible:
etiqueta_cursor.config(text="")
else:
etiqueta_cursor.config(text="|")
cursor_visible = not cursor_visible
ventana.after(500, animar_cursor) --- Configuración de la Interfaz Gráfica --- ventana = tk.Tk()
ventana.title("Descargador de YouTube")
ventana.geometry("800x600")
ventana.resizable(True, True)
ventana.configure(bg="#000000") Cargar icono de Creative Commons try:
icono_cc_img = tk.PhotoImage(file="cc_icon.png")
ventana.iconphoto(True, icono_cc_img)
except tk.TclError:
pass Variables de Tkinter (movidas después de crear la ventana) ruta_descarga = tk.StringVar()
estado = tk.StringVar(value="Esperando URL…")
opcion_descarga = tk.StringVar(value="video")
texto_dinamico = tk.StringVar(value="") Estilo estilo = ttk.Style()
estilo.theme_use("clam") estilo.configure("TLabel", font=("Courier", 11), background="#000000", foreground="#00ff00")
estilo.configure("TEntry", font=("Courier", 11), fieldbackground="#0d0d0d", foreground="#00ff00", borderwidth=1, relief="solid")
estilo.configure("TButton", font=("Courier", 11), padding=6, borderwidth=1, relief="solid", background="#00ff00", foreground="#000000")
estilo.map("TButton", background=[('active', '#009900')]) Estilo para la barra de progreso estilo.configure("Custom.Horizontal.TProgressbar", thickness=25, troughcolor="#0d0d0d", background="#00ff00") estilo.configure("TRadiobutton", font=("Courier", 10), background="#000000", foreground="#00ff00")
estilo.configure("TLabelframe", background="#000000", borderwidth=1, relief="solid")
estilo.configure("TLabelframe.Label", font=("Courier", 11), background="#000000", foreground="#00ff00")
estilo.configure("Header.TLabel", font=("Courier", 24, "bold"), background="#000000", foreground="#00ff00") Widgets usando grid layout frame_header = tk.Frame(ventana, bg="#000000")
frame_header.grid(row=0, column=0, columnspan=3, padx=20, pady=(20, 10), sticky="ew")
frame_header.columnconfigure(0, weight=1) etiqueta_estatica = tk.Label(frame_header, text="DESCARGADOR YT ", font=("Courier", 12), bg="#000000", fg="#00ff00", justify="right")
etiqueta_estatica.pack(side=tk.LEFT)
etiqueta_dinamica = tk.Label(frame_header, textvariable=texto_dinamico, font=("Courier", 12), bg="#000000", fg="#00ff00")
etiqueta_dinamica.pack(side=tk.LEFT)
etiqueta_cursor = tk.Label(frame_header, text="|", font=("Courier", 12), bg="#000000", fg="#00ff00")
etiqueta_cursor.pack(side=tk.LEFT) animar_escritura()
animar_cursor() ttk.Label(ventana, text="URL del video de YouTube:").grid(row=1, column=0, padx=20, pady=(10, 5), sticky="w")
entrada_url = ttk.Entry(ventana)
entrada_url.grid(row=1, column=1, columnspan=2, padx=20, pady=(10, 5), sticky="ew") frame_opciones = ttk.LabelFrame(ventana, text="Opciones de Descarga")
frame_opciones.grid(row=2, column=0, columnspan=3, padx=20, pady=10, sticky="ew")
frame_opciones.columnconfigure(0, weight=1) radio_video = ttk.Radiobutton(frame_opciones, text="Video (Máxima Calidad)", variable=opcion_descarga, value="video")
radio_video.grid(row=0, column=0, padx=20, pady=5, sticky="w") radio_audio = ttk.Radiobutton(frame_opciones, text="Solo Audio (Máxima Calidad)", variable=opcion_descarga, value="audio")
radio_audio.grid(row=1, column=0, padx=20, pady=5, sticky="w") ttk.Label(ventana, text="Carpeta de Descarga:").grid(row=3, column=0, padx=20, pady=(10, 5), sticky="w")
entrada_carpeta = ttk.Entry(ventana, textvariable=ruta_descarga, state="readonly")
entrada_carpeta.grid(row=3, column=1, padx=20, pady=(10, 5), sticky="ew")
boton_elegir_carpeta = ttk.Button(ventana, text="Elegir…", command=elegir_carpeta)
boton_elegir_carpeta.grid(row=3, column=2, padx=(0, 20), pady=(10, 5), sticky="w") boton_descargar = ttk.Button(ventana, text="Descargar", command=iniciar_descarga)
boton_descargar.grid(row=4, column=0, columnspan=3, padx=20, pady=(20, 10), sticky="ew") barra_progreso = ttk.Progressbar(ventana, orient=tk.HORIZONTAL, mode='determinate', style="Custom.Horizontal.TProgressbar")
barra_progreso.grid(row=5, column=0, columnspan=3, padx=20, pady=10, sticky="ew") ttk.Label(ventana, textvariable=estado, foreground="#ff00ff").grid(row=6, column=0, columnspan=3, padx=20, pady=5, sticky="w") boton_abrir_carpeta = ttk.Button(ventana, text="Abrir Carpeta", state=tk.DISABLED)
boton_abrir_carpeta.grid(row=7, column=0, columnspan=3, padx=20, pady=(10, 20), sticky="ew") frame_acerca_de = ttk.LabelFrame(ventana, text="Acerca de")
frame_acerca_de.grid(row=8, column=0, columnspan=3, padx=20, pady=(20, 10), sticky="ew") etiqueta_acerca_de = ttk.Label(frame_acerca_de, text="Este programa permite descargar videos o solo el audio de videos de YouTube. La descarga se realizará siempre con la máxima calidad disponible para la opción seleccionada.")
etiqueta_acerca_de.grid(row=0, column=0, padx=10, pady=5, sticky="w") enlace_acerca_de = ttk.Label(frame_acerca_de, text="Más información", cursor="hand2", foreground="#00ff00")
enlace_acerca_de.grid(row=1, column=0, padx=10, pady=5, sticky="w")
enlace_acerca_de.bind("", lambda e: abrir_enlace_acerca_de()) ventana.columnconfigure(1, weight=1)
frame_opciones.columnconfigure(0, weight=1)
frame_acerca_de.columnconfigure(0, weight=1) ventana.mainloop()

🚨 La CURP Biométrica en México: ¿Avance Digital o Amenaza a la Privacidad? 🇲🇽

Entrada fija

🚨 La CURP Biométrica en México: ¿Avance Digital o Amenaza a la Privacidad? 🇲🇽

“No se puede cambiar una huella digital como se cambia una contraseña.” — Derechos Digitales


🔎 1. ¿Qué es la CURP Biométrica?

La CURP biométrica es la nueva forma de identificación obligatoria en México, aprobada en 2025, que incluirá:

  • 📷 Fotografía del rostro
  • 🔍 Huellas dactilares
  • 👁 Escaneo del iris
  • ✍️ Firma electrónica

Su objetivo declarado es combatir la desaparición de personas y modernizar el sistema de identificación nacional. Pero… ¡no todo es tan claro!


🤔 2. ¿Voluntaria o Obligatoria?

Aunque el gobierno afirma que su uso es voluntario, la ley establece que:

  • Será la única forma de identificación para trámites oficiales y privados
  • No contar con ella podría impedir el acceso a servicios públicos

⚠️ Esto genera una contradicción legal y una forma de consentimiento forzado.


😯 3. Riesgos para tu Privacidad

♻️ Datos irremplazables

Tus huellas o iris no pueden cambiarse si se filtran o roban. ¡Y eso ya ha pasado antes en México!

🚫 Falta de supervisión

Tras la desaparición del INAI, no hay autoridad autónoma que vigile el uso de tus datos.

📊 Vigilancia masiva

El sistema podría rastrear tus:

  • Consultas médicas
  • Movimientos financieros
  • Uso de transporte
  • Ubicación en tiempo real

🔒 4. Lo que dicen los expertos

Organizaciones como R3D y Derechos Digitales advierten que:

  • No hay garantías legales suficientes
  • Podría discriminar a personas trans, adultas mayores o con huellas deterioradas
  • Está diseñado más para vigilar que para proteger

“Es un sistema coercitivo que castiga a quien no quiera entregar sus datos biométricos.” — R3D


🚀 5. Argumentos del Gobierno

El director de la Agencia Digital, Pepe Merino, afirma que:

  • La CURP biométrica no es obligatoria
  • Solo se usará en casos con investigación de desaparición
  • La base de datos no estará centralizada

⚠️ Pero estas afirmaciones contrastan con el contenido real de las leyes aprobadas.


🌐 6. Comparación Internacional

  • En Brasil, el Tribunal Supremo prohibió un sistema similar por ser inconstitucional
  • En Europa, la Convención 108+ exige protección legal robusta y supervisión independiente
  • En India, su base de datos AADHAAR ha sido hackeada múltiples veces

⛔️ 7. Peligros reales

RiesgoConsecuencia
🔎 Filtración de datosNo puedes cambiar tu iris o huella
🚫 DiscriminaciónPoblaciones vulnerables excluidas
🕵️‍♂️ Vigilancia sin límitesGeolocalización, perfilamiento, vigilancia financiera
🙅‍ No hay contrapesosNo hay INAI, ni jueces que supervisen

📊 8. Lo que opina la gente

  • ❌ 49% no confía en que el gobierno protegerá sus datos
  • ❌ 49% está en desacuerdo con los datos biométricos obligatorios

¿Y si cambian de gobierno y usan esa base para vigilar opositores?” — Usuario en redes


🤝 9. ¿Qué podemos hacer como ciudadanos?

  • 🔎 Informarte con fuentes independientes
  • ✉️ Exigir leyes con protección biométrica real
  • 🚪 Participar en colectivos de derechos digitales
  • 🙏 Pedir que vuelva una autoridad como el INAI

🚫 Conclusión: ¡No es un simple trámite!

La CURP biométrica, tal como está diseñada, representa un riesgo real para tu privacidad, tus derechos y tu seguridad.

❌ No es segura
❌ No es voluntaria
❌ No tiene vigilancia independiente

⚡️ Solo con leyes claras, tecnología responsable y participación ciudadana podremos evitar que esta medida se convierta en una herramienta de control masivo.


🔖 Fuentes consultadas

“Si no luchas por tus datos, algún día serán usados contra ti.”

🧾 Cómo instalar GISA (Progress) en Linux Mint 22 XFCE

🧾 Cómo instalar GISA (Progress) en Linux Mint 22 XFCE

Este tutorial te guía paso a paso para instalar el sistema GISA, basado en Progress WebClient, en Linux Mint 22 XFCE usando Wine, incluyendo todos los archivos necesarios, el registro correcto de librerías y la creación de un acceso directo al escritorio.


✅ Requisitos

  1. Linux Mint 22 XFCE
  2. Wine y Winetricks instalados:
   sudo apt update
   sudo apt install wine winetricks
  1. Crear las carpetas necesarias:
   mkdir -p ~/docs/ocx
   mkdir -p ~/dlc
  1. Archivos requeridos (colócalos en ~/Público/ o rutas equivalentes):
  • Progress WebClient 11.7 32bits/setup.exe
  • instalar64.bat (script de registro OCX)
  • Archivos .ocx, .dll, .reg en ~/docs/ocx
  • Acceso directo .lnk de GISA, como Gusa.lnk

🛠️ Paso 1: Crear el entorno Wine personalizado

export WINEPREFIX=~/.wine-gisa
wineboot

Esto inicializa un entorno aislado solo para GISA.


🛠️ Paso 2: Instalar dependencias de VB6 y MFC

Algunos controles requieren librerías antiguas de Windows:

WINEPREFIX=~/.wine-gisa winetricks vb6run mfc40 mfc42

📥 Paso 3: Instalar Progress WebClient

Ejecuta el instalador con:

WINEPREFIX=~/.wine-gisa wine ~/Público/"Progress WebClient 11.7 32bits/setup.exe"

Sigue la instalación como en Windows.


📦 Paso 4: Registrar OCX y DLL

Ejecuta el script para registrar los componentes necesarios:

WINEPREFIX=~/.wine-gisa wine cmd /c C:\\docs\\ocx\\instalar64.bat

Asegúrate que el archivo instalar64.bat contenga líneas como:

C:\Windows\System32\regsvr32.exe /s C:\docs\ocx\Nombre.ocx
regedit /S C:\docs\ocx\archivo.reg

▶️ Paso 5: Ejecutar GISA

Ejecuta el .lnk de GISA:

WINEPREFIX=~/.wine-gisa wine start 'C:\docs\0231wsh\Gusa.lnk'

Si todo está bien, el sistema se abrirá correctamente.


📌 Paso 6: Crear acceso directo en el escritorio

Edita el archivo:

mousepad ~/Escritorio/GISA.desktop

Contenido:

[Desktop Entry]
Name=GISA
Comment=Ejecutar GISA con Wine
Exec=env WINEPREFIX=/home/juliocesar/.wine-gisa wine start 'C:\\docs\\0231wsh\\Gusa.lnk'
Type=Application
Terminal=false
Icon=wine
Categories=Application;

Hazlo ejecutable:

chmod +x ~/Escritorio/GISA.desktop

🛠️ (Opcional) Crear acceso para registrar OCX manualmente

Edita:

mousepad ~/Escritorio/RegistrarOCX.desktop

Contenido:

[Desktop Entry]
Name=Registrar OCX GISA
Comment=Registra librerías necesarias de GISA
Exec=env WINEPREFIX=/home/juliocesar/.wine-gisa wine cmd /c C:\\docs\\ocx\\instalar64.bat
Type=Application
Terminal=true
Icon=wine
Categories=Utility;

Hazlo ejecutable:

chmod +x ~/Escritorio/RegistrarOCX.desktop

✅ Resultado final

  • GISA funcionando en Linux Mint 22 XFCE
  • OCX y DLL correctamente registrados
  • Icono de acceso directo en escritorio
  • Entorno limpio y aislado en ~/.wine-gisa

Autor: julio101290

🚀 Komodo Wallet: El Refugio Seguro para Transferencias desde LBRY 📲⚡

Entrada fija

🚀 Komodo Wallet: El Refugio Seguro para Transferencias desde LBRY 📲⚡

🌐 En medio del caos, Komodo sigue firme

En los últimos meses, muchos usuarios del ecosistema LBRY y su token nativo LBC (LBRY Credits) han experimentado un fenómeno preocupante: el bloqueo progresivo de transacciones y el retiro del soporte por parte de múltiples billeteras y exchanges. La presión regulatoria, especialmente desde organismos como la SEC de EE.UU., ha empujado a plataformas como Bittrex, CoinEx e incluso algunas DEX a retirar el soporte para LBC, dificultando enormemente su uso.

Sin embargo, Komodo Wallet ha demostrado ser una excepción valiosa y resiliente en este entorno hostil.


🔗 ¿Qué es Komodo Wallet?

Komodo Wallet es una billetera multi-activo desarrollada por el ecosistema Komodo Platform, conocida por su enfoque descentralizado, interoperabilidad y soporte a blockchains alternativas. A través de AtomicDEX, Komodo permite swaps entre múltiples criptos sin depender de custodios centralizados, lo cual va muy de la mano con la filosofía de LBRY.

🧩 Komodo es compatible con tokens como LBC, incluso cuando otros servicios han cesado su soporte.


📤 Transferencias desde LBRY a Komodo: ¿Por qué sigue siendo posible?

LBRY Desktop (y Odysee como frontend) aún permiten el retiro de LBC, pero requieren que el usuario tenga una billetera que reconozca correctamente las direcciones y la red de LBRY.

Las direcciones Komodo (KMD) son compatibles con el protocolo subyacente de LBRY, ya que ambos derivan de tecnologías similares (como Bitcoin y Zcash forks). Por eso, una dirección de Komodo puede recibir LBC directamente, siempre que se use una billetera que no filtre o restrinja estos activos.

🔒 Sin censura, sin bloqueo

Mientras billeteras como Trust Wallet o Exodus han eliminado el soporte, Komodo ha mantenido su neutralidad tecnológica y sigue permitiendo la gestión de LBC, lo cual es esencial para los creadores que desean retirar sus ganancias desde LBRY.


⚙️ ¿Cómo transferir LBC desde LBRY a Komodo Wallet?

  1. Descarga Komodo Wallet (o AtomicDEX) desde el sitio oficial:
    👉 https://komodoplatform.com/atomicdex
  2. Crea una nueva billetera y guarda tu frase de recuperación.
  3. Busca el activo LBC en la lista de tokens disponibles.
  4. Obtén tu dirección de depósito de LBC.
  5. En LBRY Desktop, ve a “Recompensas” o “Billetera” y selecciona Enviar.
  6. Pega tu dirección de Komodo y transfiere la cantidad deseada de LBC.
  7. En pocos minutos, verás los fondos reflejados en Komodo Wallet.

⚠️ Importante: Komodo no es un exchange custodio. Tú tienes el control total de tus claves privadas.


🧠 ¿Por qué es importante esto para la descentralización?

La supervivencia de tokens como LBC, en medio del ataque regulatorio, depende en gran parte de la existencia de herramientas como Komodo Wallet, que no están sujetas a censura, ni dependen de licencias bancarias centralizadas.

Mientras los exchanges tradicionales eliminan pares de LBC por miedo a la SEC, Komodo representa la última línea de defensa para los activos libres y soberanos.


🧪 ¿Qué futuro tiene esta integración?

Komodo ha expresado interés en fortalecer el soporte de tokens olvidados por los grandes exchanges, promoviendo así un ecosistema inclusivo. Esto podría significar incluso mayor integración con LBRY/Odysee o la posibilidad de integrar nuevas funciones para creadores.


🌟 Conclusión

Si eres un creador en LBRY, un entusiasta de la descentralización, o simplemente alguien que aún cree en el valor del token LBC, Komodo Wallet es tu mejor aliado hoy.

Mientras otros cierran las puertas, Komodo mantiene abierta la libertad financiera. No se trata solo de transferencias: se trata de resistencia digital, de tener control sobre tus activos y de poder seguir creando sin depender de gigantes centralizados.

✊ ¡Larga vida a LBRY y gracias Komodo por seguir creyendo en la libertad del internet!


📚 Referencias

🌐 El Renacer de LBRY Credits (LBC): Cripto, Censura y Comunidad 🔥

Entrada fija

🌐 El Renacer de LBRY Credits (LBC): Cripto, Censura y Comunidad 🔥

“La descentralización no muere, solo se bifurca.” — Comunidad LBRY


📈 ¿Qué está pasando con LBC? ¡Sorpresa en los gráficos!

En un ecosistema cripto lleno de incertidumbre, LBRY Credits (LBC) ha sorprendido con un movimiento que nadie vio venir: una subida del 130% en julio de 2025, pasando de $0.0064 a $0.0148 USD, según CoinGecko.

📊 Datos Clave:

FechaPrecio (USD)% Cambio Diario
1 Jul 20250.0064
15 Jul 20250.0112+75%
25 Jul 20250.0148+32%

Este inesperado repunte ocurre a pesar del cierre oficial de LBRY Inc., lo que ha provocado un renovado interés por parte de usuarios, desarrolladores y defensores de la descentralización.


⚖️ LBRY Inc. vs SEC: Una historia de resistencia

En 2023, la Securities and Exchange Commission (SEC) demandó a LBRY Inc., argumentando que su token LBC era un valor no registrado. Aunque el caso no fue tan mediático como el de Ripple (XRP), su impacto fue significativo:

  • LBRY Inc. se vio obligada a cerrar oficialmente en octubre de 2023.
  • Su fundador Jeremy Kauffman anunció que el proyecto no continuaría con respaldo corporativo.

Pero eso no fue el fin… sino el comienzo de una nueva etapa.


🔁 ¿Por qué LBC sigue vivo?

A pesar de la debacle legal, el token LBC sigue teniendo utilidad real en la red. Aquí las razones más importantes:

🪙 1. Propinas y recompensas en Odysee

Plataformas como Odysee —que nació como una interfaz para la red LBRY— **aún utilizan LBC para:

  • Dar propinas a creadores de contenido.
  • Recompensar la interacción de usuarios.
  • Promover videos con boosts de visibilidad.

🌱 2. Incentivo comunitario

La comunidad ha mantenido viva la cadena de bloques. Usuarios veteranos siguen distribuyendo contenido, tokens y desarrollando nuevas ideas.


🛠️ La comunidad toma el control: Forks y futuros

💡 Forks como solución

Tras el cierre de LBRY Inc., surgieron forks comunitarios del protocolo, entre ellos:

  • Spee.ch Reborn: para almacenamiento descentralizado.
  • Liberdus: un fork basado en privacidad.
  • Chaincrunch: enfocado en video-censorship resistance.

🧰 Herramientas activas

ProyectoFunción
LBRY DesktopCliente oficial aún mantenido
LBRYNetAPI para conectarse al protocolo
LBRYCastNodo ligero para validación

Todo mantenido por desarrolladores voluntarios en GitHub.


💬 Un símbolo de libertad digital

Más allá del precio, LBC representa algo más profundo:

🔓 Una alternativa a la censura.
🧩 Un refugio digital para creadores independientes.
🤝 Un símbolo de resistencia comunitaria.

Con el aumento de censura en plataformas centralizadas, LBC y Odysee siguen atrayendo usuarios que buscan espacios libres.


🚀 ¿Qué impulsa el nuevo interés?

🧠 1. Narrativa anti-censura

LBC se ha convertido en un estandarte simbólico para quienes promueven la libertad de expresión digital.

🪄 2. Nostalgia + especulación

Con el revival de viejos proyectos cripto, LBC atrajo la mirada de traders nostálgicos… y oportunistas.

👨‍💻 3. Movimiento open source

La comunidad de código abierto ha tomado el control. Desde nuevas interfaces ligeras, hasta plugins para compartir contenido P2P, el desarrollo sigue activo.


🔮 ¿Y el futuro?

Aunque el camino legal fue brutal, el protocolo LBRY no murió, y su token LBC:

  • Sigue siendo útil para miles de usuarios.
  • Tiene un valor simbólico inmenso.
  • Posee una comunidad resiliente que se rehúsa a rendirse.

“Descentralizar no es solo una arquitectura, es una filosofía.”


📚 Fuentes y Referencias


¡Comparte este artículo si tú también crees que la descentralización merece una segunda oportunidad! 🚀🌐

🎚️ Manual completo: Cómo montar un mini estudio de guitarra en Linux con PipeWire + JACK + Guitarix + OBS

Entrada fija

🎚️ Manual completo: Cómo montar un mini estudio de guitarra en Linux con PipeWire + JACK + Guitarix + OBS

✍️ Autor: julio101290
🖥️ Probado en: Linux Mint 22.1 y compatibles con Ubuntu 22.04+
🎸 Interfaz de audio usada: Behringer UMC202HD


🔧 1. Instalación de paquetes necesarios

Abre la terminal y ejecuta:

sudo apt update
sudo apt install guitarix qjackctl helvum obs-studio pipewire-audio-client-libraries pipewire-jack

Esto instala:

  • Guitarix: amplificador y efectos para guitarra
  • QJackCtl: interfaz para gestionar conexiones JACK
  • Helvum: visualización y enrutamiento de audio
  • OBS Studio: para grabación y streaming
  • PipeWire: sistema moderno de audio que reemplaza a JACK/PulseAudio

🔄 2. Habilitar PipeWire con soporte JACK

systemctl --user enable --now pipewire pipewire-pulse pipewire-jack

Esto asegura que PipeWire maneje PulseAudio y tenga compatibilidad con JACK para usar Guitarix y OBS sin conflictos.


🧪 3. Verifica que estás usando PipeWire

pactl info

Busca que diga:

Nombre del servidor: PulseAudio (on PipeWire ...)

✅ Si aparece eso, estás listo.


📜 4. Crear el script de inicio automático

1. Crear archivo:

nano ~/Escritorio/iniciar_guitarix_obs.sh

2. Pega este contenido:

#!/bin/bash

# Inicia QJackCtl (JACK con soporte PipeWire)
pw-jack qjackctl &

# Espera a que JACK se inicialice correctamente
sleep 2

# Inicia Guitarix (procesador de guitarra)
pw-jack guitarix &

# Espera para asegurar que Guitarix esté listo
sleep 2

# Inicia Helvum (enrutador gráfico JACK/PipeWire)
helvum &

# Espera un poco para la interfaz de audio
sleep 1

# Inicia OBS Studio para grabación o transmisión
pw-jack obs &

3. Hazlo ejecutable:

chmod +x ~/Escritorio/iniciar_guitarix_obs.sh

🖱️ 5. Crear ícono lanzador en el escritorio

1. Crear archivo .desktop:

nano ~/Escritorio/iniciar_estudio.desktop

2. Pega esto:

[Desktop Entry]
Name=Iniciar Estudio Guitarix
Comment=Lanza Guitarix + JACK + OBS
Exec=gnome-terminal -- bash -c "~/Escritorio/iniciar_guitarix_obs.sh; exec bash"
Icon=utilities-terminal
Terminal=true
Type=Application
Encoding=UTF-8
Categories=AudioVideo;

3. Dar permisos:

chmod +x ~/Escritorio/iniciar_estudio.desktop

🎧 6. Conexión de audio (enrutamiento)

Cuando abras el script:

  • Helvum te mostrará gráficamente las conexiones de audio
  • Conecta así:
system:capture_1 (tu guitarra) → guitarix:input_L
guitarix:output_L / output_R → system:playback_1 / 2 (monitores o audífonos)
guitarix:output_L / R → OBS Studio (para grabación)
Firefox → system:playback (YouTube de fondo)

Todo lo puedes hacer arrastrando líneas en Helvum.


🔁 ¿Quieres que el script inicie al prender la computadora?

mkdir -p ~/.config/autostart
cp ~/Escritorio/iniciar_estudio.desktop ~/.config/autostart/

✅ Resultado

Con un solo clic:

  • Inicia JACK vía PipeWire
  • Ejecuta Guitarix para procesar tu guitarra
  • Abre OBS para grabar
  • Y muestra Helvum para conectar todo fácilmente

🧠 Consejos extra

  • Si OBS no capta audio: ve a Fuentes → Añadir → Audio Input Capture (JACK) o enrútalo con Helvum
  • Puedes agregar efectos LADSPA en Guitarix
  • Usa Calf Plugin Host para compresión, reverb o EQ externos

¿Te gustó esta guía? No dudes en compartir o dejar un comentario si quieres la versión en PDF o Markdown.

¿Está Siendo Desmantelado LBRY por Presión de la SEC? El Caso LBC y el Futuro de la Descentralización

Entrada fija

¿Está Siendo Desmantelado LBRY por Presión de la SEC? El Caso LBC y el Futuro de la Descentralización

Introducción

LBRY fue uno de los proyectos pioneros en ofrecer una red descentralizada para la publicación y monetización de contenido, con su token nativo LBC (LBRY Credits). Pero en los últimos meses, LBC ha desaparecido progresivamente de múltiples exchanges, tanto centralizados como descentralizados, dejando a muchos usuarios con activos atrapados y sin liquidez. ¿Qué ocurrió realmente? ¿Fue un fallo tecnológico, una caída del interés… o presión estatal?

Este análisis desglosa lo que pasó con LBRY y cómo el gobierno, en especial la SEC (Securities and Exchange Commission) de Estados Unidos, puede desmantelar incluso proyectos descentralizados sin necesidad de tocar una sola línea de código.

1. El Caso LBRY vs. SEC

¿Qué es LBRY?

LBRY fue creado como un protocolo blockchain que permite a los usuarios compartir contenido (videos, publicaciones, música) sin intermediarios. Su token LBC se usaba para pagar por contenido, apoyar creadores y realizar microtransacciones dentro del ecosistema.

La demanda de la SEC

En marzo de 2021, la SEC presentó una demanda contra LBRY Inc., la empresa detrás del desarrollo del protocolo, acusándola de vender valores no registrados mediante la emisión de LBC, incluso sin haber hecho una ICO formal.

El fallo judicial

En noviembre de 2022, el tribunal falló a favor de la SEC, declarando que LBC era un valor bajo la ley estadounidense. Esto generó consecuencias graves para el ecosistema, ya que incluso las ventas secundarias entre usuarios quedaron bajo amenaza.

2. La desaparición de LBC en exchanges

Tras el fallo:

  • Exchanges como CoinEx, BitMart, MXC y Hotbit eliminaron LBC.
  • Bittrex US cerró sus mercados para clientes estadounidenses.
  • Incluso algunos DEX dejaron de ofrecer pares de LBC debido a la baja liquidez y el riesgo legal.

¿Por qué también los DEX?

Aunque los DEX no son controlados directamente por gobiernos, las plataformas y front-ends prefieren evitar problemas legales. Además, los proveedores de liquidez abandonaron el token tras la sentencia, dejando pares sin volumen.

3. ¿Es esto censura financiera?

Sí, aunque indirectamente. Lo que pasó con LBC demuestra cómo un gobierno puede marginalizar una criptomoneda sin necesidad de prohibirla expresamente.

  • Técnicamente: El protocolo sigue vivo, los tokens existen, puedes correr nodos.
  • En la práctica: No hay liquidez ni adopción. Se volvió inviable para el usuario común.

4. ¿Cómo puede el gobierno controlar criptomonedas descentralizadas?

Los gobiernos pueden limitar una red cripto a través de los siguientes medios:

MecanismoEjemplo
Demandas legalesSEC vs LBRY, SEC vs Ripple
Prohibiciones de listadosExchanges eliminan tokens “en riesgo”
Presión a desarrolladoresArresto de desarrollador de Tornado Cash
Regulación de rampas de entrada/salidaKYC forzado en wallets y exchanges

5. ¿Qué significa esto para la descentralización real?

Niveles de descentralización:

NivelCaracterísticasRiesgo
1. TotalNodos distribuidos, sin empresa detrás (ej. Monero, Bitcoin)Baja censura, difícil de eliminar
2. ParcialRed abierta con empresa de desarrollo (ej. Ethereum, XRP)Presión legal sobre fundadores
3. CentralizadaControl total de empresa o figura única (ej. FTX, Terra)Fácilmente colapsables

6. Lecciones del caso LBRY

  • La descentralización debe ser real y completa: Si dependes de una empresa, puedes ser desmantelado.
  • El marco legal es importante: Aunque el código sea libre, la ley puede limitarlo.
  • La comunidad es clave: Sin una red fuerte de usuarios y nodos independientes, los proyectos mueren.

7. ¿Qué hacer si aún tienes LBC?

Opciones actuales:

  • Algunos exchanges internacionales aún permiten el intercambio, como Bittrex Global (fuera de EE. UU.).
  • Puedes conservar el token en wallets como LBRY Desktop u Odysee.
  • Trading P2P en foros o grupos privados.

Sin embargo, la liquidez y la utilidad del token están prácticamente extintas.

8. Alternativas verdaderamente descentralizadas

Si buscas redes resistentes a la censura, considera:

ProyectoDescripción
Monero (XMR)Criptomoneda centrada en la privacidad total.
IPFS + FilecoinAlmacenamiento de archivos descentralizado.
NostrRed social descentralizada, sin servidores centrales.
KeetMensajería y videollamadas P2P sin servidores.
ZoraPlataforma NFT sin control corporativo.

Conclusión

El caso de LBRY es una advertencia clara: una descentralización parcial no basta. Aunque el código sobreviva, el sistema puede ser asfixiado desde afuera mediante leyes, regulación financiera y censura social.

Si queremos una verdadera libertad en la web y en las finanzas, debemos construir infraestructuras libres de permisos, resistentes a la censura y no dependientes de ninguna entidad legal.

¿Te interesa migrar tus contenidos o tokens a plataformas libres y resistentes? Déjame tu comentario y seguimos explorando juntos.

🚀 Descubre Facturación Fácil con CI4JCPOX: Sistema Moderno en CodeIgniter 4.5

Entrada fija

¿Buscas un sistema de facturación rápido, seguro y flexible que puedas instalar en tu servidor Ubuntu con mínimo esfuerzo?

¡Te presento CI4JCPOX, una solución basada en CodeIgniter 4.5 que potencia tu negocio con funcionalidades completas y tecnología moderna!


🌟 ¿Por qué elegir CI4JCPOX?

  • Basado en CodeIgniter 4.5, el framework PHP ligero y rápido
  • Uso de MariaDB para bases de datos robustas y eficientes
  • Integración lista con Apache y PHP para un entorno LAMP completo
  • Código abierto y fácil de personalizar para tus necesidades
  • Instalación rápida gracias a un script automatizado para Ubuntu Server 24.04 en AWS EC2 o cualquier VPS Linux

⚙️ ¿Qué incluye este sistema?

  • Gestión completa de facturas y clientes
  • Interfaz web limpia y responsiva
  • Migraciones y seeders para inicializar la base de datos sin complicaciones
  • Configuración segura con usuario y base de datos dedicados
  • Preparado para crecer y adaptarse a tu negocio

🛠️ Cómo instalar CI4JCPOX en Ubuntu Server 24.04 (AWS EC2)

He preparado un script automático para que en pocos minutos tengas todo listo: LAMP, base de datos, configuración de CodeIgniter y Apache con VirtualHost.

Paso 1: Descarga el script de instalación

cd ~
curl -O https://raw.githubusercontent.com/julio101290/ci4jcposv2/main/instalar_ci4_facturacion.sh

Paso 2: Dale permisos de ejecución

chmod +x instalar_ci4_facturacion.sh

Paso 3: Ejecuta el script como root

sudo ./instalar_ci4_facturacion.sh

✅ ¿Qué hace este script por ti?

  • Actualiza y prepara tu servidor Ubuntu
  • Instala Apache, MariaDB y PHP con todas las extensiones necesarias
  • Crea la base de datos facturacion y un usuario seguro con permisos
  • Instala el proyecto CI4JCPOX usando Composer en /var/www/html/facturacion
  • Configura Apache para servir el proyecto con un VirtualHost dedicado
  • Ejecuta migraciones y seeders para inicializar la base de datos
  • Deja todo listo para que accedas a tu sistema por IP o dominio

🌐 Accede a tu sistema

Abre tu navegador y entra a:

http://TU_IP_PUBLICA/

¡Listo para comenzar a facturar!


🔒 Seguridad y permisos

El script también se encarga de ajustar permisos para que Apache pueda servir correctamente la aplicación sin problemas de acceso.


📂 Código y más información

Puedes revisar y descargar el script completo desde GitHub:

https://github.com/julio101290/ci4jcposv2/blob/main/instalar_ci4_facturacion.sh


¿Quieres ayuda o personalización?

No dudes en contactarme para soporte, mejoras o integraciones personalizadas. ¡Estoy aquí para ayudarte a llevar tu facturación al siguiente nivel!


¡Empieza hoy mismo con CI4JCPOX y transforma tu sistema de facturación!

📘 Documentación de psql-backup

Entrada fija
  1. ¿Qué es psql-backup?
  2. Características principales
  3. Instalación vía Composer
  4. ¿Cómo se usa?
  5. Detalles técnicos
  6. Descarga y restauración
  7. Licencia

📦 ¿Qué es psql-backup?

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.


✨ Características principales

  • Backup con pg_dump (si está instalado)
  • Respaldo alternativo 100% PHP
  • ZIP automático para PostgreSQL
  • Clase lista para usar: PostgreSQLBackup
  • Compatible con CodeIgniter 4
  • Soporte para MariaDB y PostgreSQL

⚙️ Instalación vía Composer

Para instalar:

composer require julio101290/psql-backup

Importa la clase donde la necesites:

use PostgresqlBackupManager\PostgreSQLBackup;

🚀 ¿Cómo se usa?

Ejemplo sencillo:

$pdo = new PDO("pgsql:host=localhost;port=5432;dbname=testdb", "usuario", "clave");
$backup = new PostgreSQLBackup($pdo, "testdb", "usuario", "clave", "localhost", 5432, __DIR__ . "/respaldos");
$archivoSQL = $backup->backup(true);

Y para restaurar:

$backup->restore($archivoSQL);

🔍 Detalles técnicos

  • Verifica si pg_dump está disponible
  • Usa ZIP solo si es PostgreSQL (pa’ que no se diga que no es eficiente)
  • El modo PHP lee todas las tablas y datos y crea un .sql como dios manda

📥 Descarga y restauración

¿Necesitas restaurar un respaldo ZIP? No hay problema, la clase detecta si es ZIP y lo descomprime solita:

if (pathinfo($archivoSQL, PATHINFO_EXTENSION) === 'zip') {
    $zip = new ZipArchive();
    $zip->open($archivoSQL);
    $zip->extractTo("/ruta/temp");
    $archivoExtraido = "/ruta/temp/archivo.sql";
    $backup->restore($archivoExtraido);
}

📝 Licencia

MIT. Úsala con gusto, respáldate con estilo y si puedes invítame un taco 🌮

🎯 ¡Potencia tu productividad con DBeaver en Linux Mint Xia! 🐧💻

Entrada fija

🎯 ¡Potencia tu productividad con DBeaver en Linux Mint Xia! 🐧💻

¿Trabajas con bases de datos y buscas una herramienta poderosa, gratuita y de código abierto?
¡Conoce DBeaver! ✨

  • ✅ Conectarte a múltiples bases de datos (MySQL, PostgreSQL, Oracle, SQLite y más)
  • ✅ Editar y visualizar datos con una interfaz limpia
  • ✅ Ejecutar queries y analizar resultados en tiempo real
  • ✅ Trabajar con diagramas ER, backups y herramientas avanzadas

🎨 Compatible con tu escritorio Linux Mint Xia (Xfce), ligero y hermoso.


🛠️ ¿Cómo instalar DBeaver en Linux Mint Xia?

¡Súper fácil! Solo sigue estos pasos en la terminal:

sudo apt update
sudo apt install gdebi wget -y
wget https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb
sudo gdebi dbeaver-ce_latest_amd64.deb

💡 ¡Y listo! Puedes abrirlo desde el menú o escribiendo dbeaver en la terminal.


🌟 DBeaver + Linux Mint Xia = El combo perfecto para desarrolladores y analistas!

#LinuxMint #DBeaver #BasesDeDatos #OpenSource #Productividad #Xfce #SQLTools #DevLife

Página 4 de 15

Creado con WordPress & Tema de Anders Norén