Herramientas Informaticas

Mes: agosto 2025 Página 1 de 2

🐪 Guía Completa: Cómo instalar Ollama en tu PC y correr Llama 3 de Meta

Entrada fija

🐪 Guía Completa: Cómo instalar Ollama en tu PC y correr Llama 3 de Meta

En los últimos años, el desarrollo de modelos de lenguaje grandes (LLMs, por sus siglas en inglés) ha avanzado a pasos agigantados. Uno de los más destacados es Llama 3, creado por Meta, que ha logrado competir con modelos comerciales como GPT-4 o Claude, pero con una característica esencial: puede usarse gratis y de forma local gracias a herramientas como Ollama.

Este tutorial busca ser una guía detallada para que cualquier persona pueda instalar Ollama en su computadora, descargar el modelo Llama 3 y comenzar a usarlo sin complicaciones. Nos tomaremos el tiempo de explicar no solo los pasos técnicos, sino también los requisitos, configuraciones recomendadas, posibles errores comunes y cómo integrar Ollama en diferentes entornos de desarrollo.


🔹 1. ¿Qué es Ollama y por qué usarlo?

Ollama es una plataforma que facilita correr modelos de lenguaje grandes en tu computadora de forma local. Esto significa que:

  1. No dependes de la nube: puedes tener tu propio ChatGPT casero sin enviar datos a terceros.
  2. Privacidad total: lo que escribes y lo que el modelo responde se queda en tu PC.
  3. Sin costos ocultos: no necesitas pagar por tokens o suscripciones.
  4. Compatible con diferentes modelos: no solo Llama 3, también Mistral, Phi, Gemma, entre otros.

Meta liberó Llama 3 en abril de 2024 con variantes de 8B y 70B parámetros, entrenados en una enorme cantidad de datos. El modelo de 8B es más ligero y puede correr en una PC con 8-16 GB de RAM, mientras que el de 70B requiere estaciones mucho más potentes (64 GB+ y GPU dedicadas).

Gracias a Ollama, la instalación y uso de Llama 3 se reduce a un par de comandos, sin necesidad de compilar ni configurar manualmente librerías de inteligencia artificial.


🔹 2. Requisitos previos

📌 Hardware mínimo recomendado

  • CPU: procesador moderno con soporte AVX2 (casi todos desde 2015 en adelante).
  • RAM:
  • 8 GB para modelos pequeños.
  • 16 GB o más para un uso fluido.
  • GPU (opcional):
  • NVIDIA con CUDA 11 o superior.
  • Apple Silicon (M1, M2, M3) aprovecha la GPU integrada.
  • Espacio en disco: entre 5 GB y 50 GB, dependiendo del tamaño del modelo.

📌 Software compatible

  • Linux: Ubuntu, Debian, Mint, Fedora, Arch y derivados.
  • macOS: versiones modernas, tanto Intel como Apple Silicon.
  • Windows: requiere WSL2 con Ubuntu (Windows 11 recomendado).

🔹 3. Instalación de Ollama

🐧 En Linux (ejemplo: Ubuntu / Mint / Debian)

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

🍏 En macOS

  1. Descarga el instalador desde la página oficial:
    👉 https://ollama.com/download
  2. Arrastra Ollama.app a la carpeta de Aplicaciones.
  3. Verifica en terminal:
ollama --version

🪟 En Windows 11 (usando WSL2)

wsl --install

Dentro de Ubuntu en WSL2:

curl -fsSL https://ollama.com/install.sh | sh
ollama --version

🔹 4. Descargar e instalar Llama 3

  • Para la versión ligera (8B parámetros):
ollama pull llama3
  • Para la versión grande (70B parámetros):
ollama pull llama3:70b

Ver modelos instalados:

ollama list

🔹 5. Usar Llama 3 con Ollama

ollama run llama3

Ejemplo:

>>> Hola, ¿qué es Ollama?
Ollama es una herramienta que permite correr modelos de lenguaje grandes de manera local en tu computadora.

🔹 6. Integración con APIs y otros lenguajes

Ollama expone una API local en http://localhost:11434

Ejemplo en Python

import requests

response = requests.post("http://localhost:11434/api/generate", json={
  "model": "llama3",
  "prompt": "Explícame la fotosíntesis en 3 líneas"
})

for line in response.iter_lines():
    if line:
        print(line.decode())

Ejemplo en Node.js

import fetch from "node-fetch";

const res = await fetch("http://localhost:11434/api/generate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    model: "llama3",
    prompt: "Resume la historia de México en 5 puntos"
  })
});

const data = await res.text();
console.log(data);

🔹 7. Consejos de rendimiento

  1. Prefiere GPU si está disponible.
  2. Usa el modelo correcto según tu RAM.
  3. Administra la memoria cerrando apps pesadas.
  4. Mantén Ollama actualizado.

🔹 8. Problemas comunes y soluciones

  • Comando ollama no encontrado → reinicia terminal o source ~/.bashrc
  • El modelo no descarga → revisa internet y usa ollama pull llama3 --retry
  • Se queda sin RAM → usa modelos pequeños o swap
  • Velocidad lenta en CPU → usa GPU compatible

🔹 9. Comparación con otras herramientas

  • LM Studio → interfaz gráfica.
  • text-generation-webui → muy configurable.
  • GPT4All → multiplataforma.

Ollama destaca por su simplicidad y API unificada.


🔹 10. Aplicaciones prácticas

  1. Asistente personal offline.
  2. Generación de textos.
  3. Tutor académico.
  4. Ayuda en programación.
  5. Automatización de procesos.

🔹 11. Seguridad y privacidad

  • Tus datos no salen de tu PC.
  • Puedes trabajar con información sensible.
  • Ideal para empresas e investigadores.

🔹 12. Próximos pasos

  • Explorar otros modelos:
ollama pull mistral
ollama pull gemma
  • Crear un servidor web con Ollama.
  • Conectar a un frontend en React o Vue.
  • Usarlo en VS Code como asistente de programación.

✅ Conclusión

Instalar Ollama y usar Llama 3 en tu PC es un proceso sencillo que abre un mundo de posibilidades.

  • Principiantes: basta con ollama run llama3.
  • Desarrolladores: la API permite integrarlo en proyectos.
  • Usuarios preocupados por privacidad: toda la IA corre en tu PC.

En definitiva, Ollama + Llama 3 es una combinación poderosa que democratiza la inteligencia artificial.

🤖✨ Cómo Crear un Bot de Minecraft con Mineflayer en 1.19.4 (Guía Completa )

Entrada fija

🤖✨ Cómo Crear un Bot de Minecraft con Mineflayer en 1.19.4 (Guía Completa)


🌍 Introducción

¿Alguna vez soñaste con tener un compañero virtual en Minecraft que se mueva, explore, minee y hasta construya a tu lado? 😎 Pues en esta guía te voy a enseñar cómo crear un bot automático en Minecraft Java 1.19.4 usando la librería Mineflayer de Node.js.

Lo mejor es que no necesitas ser un programador experto: con un par de comandos y un archivo listo para usar, tendrás a tu amiguito digital siguiendo tus pasos en tu mundo o servidor favorito.

Imagina que entras a tu survival y al lado tuyo aparece un robot trabajador que nunca se cansa, que busca madera, que coloca bloques y que puede convertirse en tu guardaespaldas minero. 🚀

Y para hacerlo aún más fácil, al final de esta publicación te dejo 📥 un enlace de descarga con el código completo listo para correr.


🛠️ Requisitos previos

Antes de meternos en el mundo de los bots, necesitas tener a la mano:

  • Una PC con Linux, Windows o macOS 🖥️
  • Minecraft Java Edition 1.19.4 instalado 🎮
  • Node.js (versión 18 o superior)

🔑 Tip: Puedes comprobar tu versión de Node.js con:

node -v

Si no tienes Node.js, lo instalas desde nodejs.org (elige la versión LTS para máxima estabilidad).


📂 Creación del proyecto

Primero vamos a organizar todo en una carpeta para el bot:

mkdir bot_minecraft
cd bot_minecraft

Dentro de esa carpeta vivirá nuestro bot y todo su código. 🏠


📦 Instalación de las librerías necesarias

Mineflayer depende de varias librerías que se pueden instalar de un solo golpe:

npm init -y && npm install mineflayer mineflayer-pathfinder mineflayer-pvp mineflayer-auto-eat prismarine-viewer

Explicación rápida de qué es cada cosa:

  • mineflayer → El núcleo que permite crear el bot.
  • mineflayer-pathfinder → Para que el bot sepa moverse por el mapa 🌍.
  • mineflayer-pvp → Para que el bot pueda pelear ⚔️.
  • mineflayer-auto-eat → Para que el bot coma solito 🍖.
  • prismarine-viewer → Para ver en un navegador lo que el bot ve 👀.

Con eso ya tienes todo lo necesario instalado en la carpeta node_modules/.


📝 El archivo del bot

Aquí normalmente te pondría todo el código, pero para no saturar esta publicación y hacerlo más cómodo, te dejo el código listo para descargar en un archivo ZIP:

📥 Descargar bot_minecraft.zip

📥 Descargar bot desde Telegram_minecraft.zip

Dentro del ZIP encontrarás:

  • bot.js → El código del bot
  • package.json → Configuración del proyecto
  • Carpeta de dependencias

🚀 Ejecutando el bot

Una vez descargado y descomprimido el proyecto, solo entras a la carpeta y ejecutas:

node bot.js

El bot se conectará automáticamente a tu servidor o mundo local de Minecraft (según lo configures en bot.js).


🎮 Interacción con el bot

¿Qué puede hacer el bot que preparamos?

✅ Se mueve por el mundo buscando madera\
✅ Si no encuentra madera, sigue caminando indefinidamente hasta hallarla\
✅ Puede minar bloques y recogerlos ⛏️\
✅ Puede colocar bloques y construir estructuras 🏗️\
✅ Tiene un cuerpo visible (no es invisible como los típicos bots fantasma 👻)\
✅ Siempre aparece a tu lado al conectarse 🤝

🔑 Extra: con los comandos de chat (por ejemplo, escribiendo !follow o !stop en Minecraft) podrás darle órdenes directas.


🛑 Resolviendo errores comunes

🔹 Error: “Cannot read properties of null (reading ‘version’)”\
👉 Esto pasa si tu versión de Node.js es muy vieja o si instalaste mal las librerías.\
✅ Solución: actualiza Node.js a la 18+ y reinstala dependencias con:

rm -rf node_modules package-lock.json
npm install

🔹 El bot aparece invisible\
👉 Faltaba configurar el renderizado del jugador. En el código del ZIP ya está corregido para que aparezca a tu lado con cuerpo completo.

🔹 SyntaxError: Unexpected end of input\
👉 Pasaba porque el archivo se cortaba al copiar/pegar. ✅ En el ZIP viene completo.


💡 Trucos y extras

  • Si activas el prismarine-viewer, puedes abrir en tu navegador una ventana que muestra lo que ve el bot:
  http://localhost:3000
  • Puedes conectar varios bots al mismo tiempo para hacer un ejército minero 🪓🛡️.
  • El bot puede programarse para farmear mobs, pescar automáticamente 🎣 o incluso cantar corridos sinaloenses en el chat (sí, lo puedes hacer 🤠).

🔥 Conclusión

Crear un bot de Minecraft no solo es divertido, también es una excelente forma de aprender programación con Node.js. Al final del día, tendrás un amigo digital que camina, explora y construye contigo en cualquier mundo.

Y lo mejor: este bot está pensado para Minecraft Java 1.19.4, con todo corregido para que se vea el cuerpo y aparezca a tu lado desde el inicio.

Así que ya sabes, arma tu carpeta, instala las librerías, descarga el ZIP y lánzate a explorar el mundo con tu nuevo compañero 🤖✨.

📥 Descargar bot_minecraft.zip

📥 Descargar bot_minecraft.zip Desde Telegram

📢 Adiós Skype, Hola Teams: El Gran Cambio de Microsoft en 2025

Entrada fija

📢 Adiós Skype, Hola Teams: El Gran Cambio de Microsoft en 2025

🌍 Un ícono que marcó una era

Durante más de dos décadas, Skype fue sinónimo de llamadas por internet. Para millones de personas alrededor del mundo, la primera videollamada que hicieron con familiares, amigos o colegas fue gracias a este software.

Skype nació en 2003, mucho antes de que Zoom, WhatsApp o Google Meet existieran. Su propuesta fue revolucionaria: hablar con alguien al otro lado del planeta gratis (o muy barato) solo usando una conexión a internet.

Sin embargo, los tiempos cambian. Y en mayo de 2025, Microsoft decidió apagar oficialmente Skype y reemplazarlo con algo nuevo: Microsoft Teams (versión gratuita).

Este anuncio marca el fin de un capítulo nostálgico, pero también abre la puerta a una nueva etapa en la forma de comunicarnos.


🔄 ¿Por qué Microsoft retiró Skype?

Podemos resumirlo en tres grandes razones:

  1. Evolución tecnológica
    Skype fue innovador en su momento, pero su arquitectura se fue quedando atrás frente a plataformas más modernas. Teams está construido sobre una infraestructura más robusta y escalable.
  2. Unificar la comunicación
    Microsoft ya había dado el primer paso en 2021, integrando Skype Empresarial dentro de Teams para las empresas. Ahora, el movimiento es completo: consumidores y compañías en la misma plataforma.
  3. Competencia feroz
    Zoom, Google Meet, WhatsApp y Telegram ofrecen funciones que antes eran exclusivas de Skype. Microsoft necesitaba un servicio competitivo y actualizado.

📅 ¿Cuándo ocurrió el cambio?

  • El 5 de mayo de 2025, Microsoft cerró oficialmente Skype (versión para consumidores).
  • Desde esa fecha, los usuarios ya no pueden iniciar sesión en la app tradicional.
  • El sitio web oficial de Skype redirige automáticamente a Microsoft Teams Free.

Para quienes crecieron con Skype, puede sentirse como el fin de una era. Pero Microsoft asegura que todo fue pensado para hacer la transición lo más sencilla posible.


👥 ¿Qué pasa con mis contactos y chats?

Una de las grandes preocupaciones era: ¿y mis contactos?

Microsoft implementó un sistema de migración automática:

  • Puedes iniciar sesión en Teams Free con tu misma cuenta de Skype.
  • Tus contactos y conversaciones aparecen allí.
  • Incluso el saldo de llamadas pagadas (si tenías crédito en Skype) se mantiene disponible en Teams o en el portal web.

Además, se dio un periodo de transición en el que era posible chatear desde Skype con alguien en Teams Free y viceversa, para que nadie quedara desconectado de un día para otro.


🆚 Skype vs Teams: ¿qué cambia?

Aunque ambos permiten llamadas y videollamadas, Teams Free es mucho más que Skype.

Lo que ya conocías de Skype:

  • Llamadas y videollamadas gratis.
  • Chats de texto y grupos.
  • Posibilidad de llamar a teléfonos fijos o móviles pagando crédito.

Lo que ofrece Teams Free además:

  • Calendario integrado para coordinar reuniones.
  • Comunidades y grupos temáticos, como mini redes sociales.
  • Compartir archivos y trabajar en documentos de Office al mismo tiempo.
  • Videollamadas más estables gracias a la infraestructura de Teams usada en empresas.
  • Sincronización con Outlook y OneDrive.

En resumen: Skype era una app de comunicación; Teams es un hub de colaboración completo.


💻 La transición para usuarios habituales

Microsoft preparó guías y opciones para que nadie se perdiera en el proceso.

  • Si solo usabas Skype para llamadas casuales, Teams Free te resultará similar, aunque con una interfaz más moderna.
  • Si lo usabas para trabajo remoto, Teams Free es aún mejor: está diseñado para la productividad.
  • Si solo querías mantener contacto con tu familia en el extranjero, seguirás pudiendo hacerlo igual… solo que ahora con más herramientas.

📜 La nostalgia: ¿por qué Skype fue tan importante?

Antes de hablar de lo que viene, vale la pena mirar atrás.

  • En 2005, Skype ya tenía más de 50 millones de usuarios cuando aún reinaban los SMS y las llamadas carísimas.
  • Durante la década de 2010, Skype se convirtió en la app más usada para entrevistas laborales a distancia.
  • Fue el canal por excelencia para comunicarse con migrantes, estudiantes en el extranjero y familias separadas por fronteras.
  • Incluso Barack Obama y otras figuras públicas lo mencionaron en discursos como ejemplo del poder de internet.

Por todo esto, no es raro que para muchos el cierre de Skype se sienta como despedirse de un amigo viejo.


⏳ La evolución: de MSN Messenger → Skype → Teams

Si hablamos de nostalgia digital, no podemos olvidar a otro gigante que precedió a Skype: MSN Messenger.

  • En los años 2000, MSN Messenger (luego Windows Live Messenger) fue el rey de la mensajería instantánea.
  • Todos recordamos los zumbidos, los emoticonos clásicos y la emoción de ver quién estaba “en línea”.
  • Fue la primera gran red social para millones de jóvenes en todo el mundo.

Pero pronto el mundo digital pidió más: ya no bastaba con enviar texto. Queríamos voz y video.

Ahí entró Skype, que desde 2003 revolucionó la comunicación. Microsoft lo compró en 2011 y lo convirtió en el reemplazo oficial de Messenger, que cerró en 2013.

Skype se convirtió en el estándar de las videollamadas y acompañó a toda una generación en la globalización digital.

Hoy, en 2025, el relevo lo toma Teams Free.

👉 MSN Messenger (chat)Skype (voz y video)Teams (colaboración total).

Cada uno representó su época:

  • Messenger, la era social juvenil.
  • Skype, la era de la conexión global a distancia.
  • Teams, la era de la productividad híbrida, donde la vida personal y laboral convergen en línea.

Más que un final, es una evolución natural. Messenger caminó para que Skype corriera, y Skype corrió para que Teams volara.


📲 ¿Cómo descargar y usar Teams Free?

Si todavía no lo has probado, aquí está el camino más sencillo:

  1. Ve a la tienda de aplicaciones de tu móvil (Android o iOS) y busca Microsoft Teams.
  2. Descárgala y abre sesión con tu cuenta de Microsoft (la misma que usabas en Skype).
  3. Automáticamente tendrás tus contactos migrados.
  4. Empieza a explorar las nuevas funciones: crear comunidades, fijar reuniones, compartir archivos y más.

También puedes usar Teams Free desde el navegador en teams.microsoft.com.


🔐 ¿Y qué pasa con mis datos?

Microsoft aseguró que:

  • Todos los datos de Skype (chats, contactos, historial) estarán disponibles para exportar hasta enero de 2026.
  • Después de esa fecha, los servidores de Skype eliminarán la información que no haya sido migrada.
  • Si prefieres no usar Teams, puedes descargar un archivo con tu historial de chats y conservarlo.

💡 Consejos para adaptarse al cambio

  1. Explora las comunidades: si usabas grupos de Skype, ahora puedes probar los espacios de Teams, que son más organizados.
  2. Integra tu calendario: programa tus videollamadas familiares con recordatorios.
  3. Prueba las reacciones y emojis animados: dan más vida a las conversaciones.
  4. Configura notificaciones para que no te sature; Teams puede ser más insistente que Skype.
  5. Si usabas créditos de Skype para llamar a teléfonos, revisa en Teams cómo usarlos todavía.

🌟 Lo bueno y lo malo del cambio

👍 Ventajas

  • Mejor tecnología y estabilidad en llamadas.
  • Más funciones que facilitan la colaboración.
  • Integración con otras herramientas de Microsoft.
  • Una sola plataforma tanto para usuarios casuales como para empresas.

👎 Desventajas

  • Skype era más ligero y simple; Teams puede sentirse más “pesado”.
  • Usuarios mayores pueden tardar en adaptarse.
  • La nostalgia: perder una app histórica siempre duele.

🏢 ¿Y las empresas?

El camino empresarial ya estaba claro desde antes: Skype Empresarial desapareció en 2021 para ser reemplazado por Teams.

Esto significa que ahora, por primera vez, consumidores y empresas usan la misma plataforma. Una ventaja importante: menos confusión, más compatibilidad.


🎭 Un cambio que refleja el mundo actual

El retiro de Skype no es solo un movimiento de negocios. Es también un reflejo de cómo la comunicación digital ha cambiado.

  • En 2003, hacer una videollamada era ciencia ficción.
  • En 2025, es parte de la rutina diaria de trabajo, estudio y vida social.
  • Hoy pedimos más: colaboración, documentos en la nube, reuniones grupales estables, comunidades digitales.

Skype cumplió su papel en su tiempo. Ahora, Teams toma la posta para esta nueva etapa.


🔮 ¿Qué podemos esperar en el futuro?

Microsoft apunta a que Teams sea la plataforma central de comunicación del ecosistema Windows y Microsoft 365.

Esto significa:

  • Más integración con IA (resúmenes automáticos de reuniones, traducciones en tiempo real, asistentes virtuales).
  • Mejor compatibilidad con aplicaciones de terceros.
  • Experiencias más fluidas entre móvil, PC y web.

En cierto modo, Skype caminó para que Teams pudiera correr.


📝 Conclusión: un adiós con sabor a evolución

El fin de Skype puede parecer un golpe nostálgico, pero en el fondo es un paso lógico. La tecnología cambia, y Microsoft eligió dar un salto hacia una plataforma que no solo conecta, sino que también facilita la colaboración y la productividad.

Para quienes usaron Skype durante años, es como despedirse de una herramienta que nos acercó cuando más lo necesitábamos. Pero la buena noticia es que sus funciones no desaparecen: renacen y se multiplican en Teams Free.

Así que la próxima vez que hagas una videollamada en Teams, recuerda: estás usando el legado de Messenger y Skype, pero con superpoderes modernos.

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

Entrada fija

🚀 Nueva actualización lav1.5.1 — Manejo mejorado de Imagen de Perfil en Boilerplate

La versión lav1.5.1 introduce una de las mejoras más esperadas en el flujo de autenticación y gestión de usuarios: la capacidad de manejar de forma nativa la imagen de perfil, con validación robusta, soporte para valores NULL en base de datos y un avatar por defecto cuando no se encuentra la imagen.

Este release no solo mejora la experiencia visual y de usabilidad, sino que también fortalece la integración de datos del usuario dentro de las vistas del sistema. A continuación, presentamos en detalle todos los cambios, mejoras y la forma recomendada de actualizar tu proyecto.


✨ Principales Novedades

🔹 1. Imagen de perfil con validación

Ahora el sistema valida si el campo profile_image existe en la base de datos y contiene un valor válido.

  • Si el campo está vacío o en NULL, se muestra automáticamente un avatar genérico.
  • Si el archivo no existe en el servidor, el sistema también utiliza el avatar por defecto.

🔹 2. Avatar por defecto

El avatar por defecto se toma de la CDN oficial de AdminLTE:

https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png

🔹 3. Integración en el Header y Sidebar

La imagen de perfil ahora aparece en dos áreas clave:

  • Navbar (parte superior) junto al nombre de usuario.
  • Sidebar (menú lateral) dentro del panel de usuario.

🔹 4. Comando de actualización de esquema

Con esta versión se incluyen nuevos campos y tablas, por lo que añadimos el comando:

php spark boilerplate:update

Este comando sincroniza tu base de datos con los cambios de la versión actual.


📦 Cómo actualizar a lav1.5.1

1. Actualizar dependencias con Composer

Ejecuta en la raíz de tu proyecto:

composer update julio101290/boilerplate

Esto descargará la nueva versión y reemplazará los archivos necesarios.

2. Ejecutar la actualización de esquema

Después de actualizar el código, corre el comando:

php spark boilerplate:update

Este proceso migrará las tablas y añadirá los nuevos campos, entre ellos el de profile_image.

3. Limpiar cachés y asegurarte de que todo carga

php spark cache:clear
php spark config:clear

🛠 Cambios Técnicos Detallados

Validación en vistas

Ejemplo de uso en el header:

<a href="<?= base_url(route_to('user-profile')) ?>" class="nav-link d-flex align-items-center">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="avatar-img img-circle bg-gray mr-2 elevation-<?= config('Boilerplate')->theme['navbar']['user']['shadow'] ?>"
        alt="<?= user()->username ?>" height="32">
    <?= user()->username ?>
</a>

Ejemplo en el sidebar:

<div class="image">
    <img src="<?= user()->profile_image && file_exists(FCPATH . 'uploads/profiles/' . user()->profile_image) 
        ? base_url('uploads/profiles/' . user()->profile_image) 
        : 'https://cdn.jsdelivr.net/npm/admin-lte@3.0.2/dist/img/avatar.png' ?>"
        class="img-circle elevation-<?= config('Boilerplate')->theme['sidebar']['user']['shadow'] ?>"
        alt="User Image">
</div>

Cambios en la Base de Datos

  • Se añade el campo profile_image a la tabla de usuarios.
  • Este campo acepta NULL de manera nativa.
  • Si no se define, la vista renderiza automáticamente el avatar por defecto.

Compatibilidad

  • Compatible con PostgreSQL y MariaDB.
  • No requiere cambios manuales en tablas previas: el comando php spark boilerplate:update se encarga de todo.

🔒 Beneficios de Seguridad

  • No se exponen rutas inválidas de imágenes.
  • Se evita el error de “imagen rota”.
  • Se normalizan los valores NULL.
  • Mejora la experiencia del usuario manteniendo consistencia en toda la interfaz.

📊 Ejemplo Visual del Cambio

Antes (versión anterior):

  • Los usuarios sin foto aparecían con un ícono roto.
  • Los campos NULL no eran validados correctamente.

Ahora (lav1.5.1):

  • Todos los usuarios tienen avatar visible.
  • Integración estética y funcional en Navbar y Sidebar.

📝 Changelog resumido

  • ✅ Validación de profile_image en todas las vistas principales.
  • ✅ Avatar por defecto cuando el campo está vacío o NULL.
  • ✅ Compatibilidad con PostgreSQL y MariaDB.
  • ✅ Nuevo comando php spark boilerplate:update.
  • ✅ Correcciones menores en estilos de AdminLTE.

🚀 Guía Paso a Paso de Migración

  1. Respaldar tu proyecto actual.
  2. Ejecutar:
   composer update julio101290/boilerplate
  1. Correr la migración:
   php spark boilerplate:updatecommand
  1. Limpiar caché.
  2. Verificar que los usuarios aparecen con sus fotos de perfil o con el avatar por defecto.

📌 Notas Finales

Este release v1.5.1 marca un paso adelante en la personalización de Boilerplate.
Ahora cada usuario tiene una experiencia más consistente y profesional dentro de la aplicación.

👉 Si quieres revisar el código y los commits de esta versión:
🔗 Release en GitHub

🌠 ¡Atención, cieleros de Sinaloa! 🌠

Entrada fija

🌠 ¡Atención, cieleros de Sinaloa! 🌠

✨ El cometa C/2025 K1 (ATLAS) iluminará nuestros cielos en 2025 ✨

En octubre y noviembre de 2025, el cometa C/2025 K1 (ATLAS) será visible desde Sinaloa, ofreciendo un espectáculo celestial que no te puedes perder. Este cometa, descubierto por el sistema de telescopios ATLAS, promete ser uno de los eventos astronómicos más destacados del año.


🔭 ¿Qué es el cometa C/2025 K1 (ATLAS)?

El cometa C/2025 K1 (ATLAS) es un visitante periódico del Sistema Solar. Se espera que alcance su máximo acercamiento a la Tierra el 25 de noviembre de 2025, a una distancia de aproximadamente 60.3 millones de kilómetros. Durante este período, el cometa será visible a simple vista en cielos oscuros y sin contaminación lumínica.


🌌 ¿Cuándo y dónde verlo en Sinaloa?

Desde Sinaloa, el cometa será más visible en las madrugadas de octubre a diciembre de 2025, especialmente entre las 4:30 y las 6:00 am, cuando se elevará sobre el horizonte este. En zonas rurales o alejadas de la contaminación lumínica, como la playa de Topolobampo o áreas cercanas a la sierra, las condiciones de observación serán ideales.


🌟 ¿Cómo se verá el cometa?

Se espera que el cometa C/2025 K1 (ATLAS) sea visible a simple vista como una estrella difusa con una cola tenue, similar a una “nube luminosa” desplazándose lentamente por el cielo. Con binoculares de 10×50, se podrá apreciar mejor su coma (núcleo brillante) y la cola que se extiende hacia el espacio profundo.


🧭 Consejos para observar el cometa

Para disfrutar al máximo de este fenómeno astronómico, sigue estos consejos:

  • Busca un lugar oscuro: Aléjate de las luces de la ciudad para evitar la contaminación lumínica.
  • Usa binoculares: Unos binoculares de 10×50 te permitirán observar detalles del cometa.
  • Adapta tus ojos a la oscuridad: Permite que tus ojos se acostumbren a la oscuridad durante al menos 20 minutos.
  • Comparte la experiencia: Invita a amigos y familiares a unirse a la observación.

📸 Equipos económicos para astrofotografía del cometa

Si deseas capturar imágenes del cometa, aquí tienes algunas opciones económicas:

🎥 Cámaras recomendadas

  • Cámara Quasar USB 2MP para telescopio: Ideal para principiantes, ofrece buena resolución para capturar imágenes del cometa.
  • Cámara Ocular WiFi 4MP para telescopios y astrofotografía: Permite visualizar y capturar imágenes en tiempo real desde tu dispositivo móvil.

🔭 Telescopios recomendados

  • Celestron Telescopio Newtoniano Astromaster 130EQ: Con una apertura de 130 mm, ofrece una excelente relación calidad-precio para observación y astrofotografía.
  • Telescopio Astronómico Profesional Apertura 70mm, Distancia Focal 300mm: Compacto y ligero, ideal para principiantes y observación lunar.

📅 Calendario de observación (octubre – diciembre 2025)

FechaHora recomendadaDirecciónNotas adicionales
15/10/20255:00 amEstePrimer avistamiento visible
25/11/20254:45 amEsteMáximo acercamiento a la Tierra
15/12/20255:15 amEsteÚltima oportunidad de observación

🌠 ¡No te lo pierdas!

Este será un evento astronómico memorable para todos en Sinaloa. Marca las fechas en tu calendario, prepara tus binoculares o telescopios, y comparte esta experiencia con tus seres queridos. ¡El universo nos invita a maravillarnos una vez más!

🎶🎤 Karaoke en Linux con PipeWire, JACK, Carla y OBS: ¡Tu Estudio Casero de Voz en Tiempo Real! 🔥💻🎧

Entrada fija

🎤 Karaoke en Linux con Carla + PipeWire + JACK 🚀

¿Te imaginas tener tu propio sistema de karaoke en Linux, con efectos en la voz y música de YouTube funcionando en tiempo real y con máxima calidad de audio?
En esta guía aprenderás a montar un rack profesional de karaoke usando:

  • PipeWire (motor de audio moderno de Linux 🎧)
  • JACK (para enrutamiento de baja latencia ⚡)
  • Carla (host de plugins VST/LV2 🎛️)
  • Helvum (patchbay gráfico para conexiones 🔗)
  • OBS Studio (para grabar o transmitir tu karaoke en vivo 📺)

🔧 Instalación de dependencias

Primero, asegúrate de tener todo lo necesario. En Ubuntu, Linux Mint o Debian puedes instalarlo con:

sudo apt update
sudo apt install pipewire pipewire-audio-client-libraries pipewire-jack carla carla-plugins carla-lv2 helvum qjackctl obs-studio ladspa-sdk calf-plugins zam-plugins

👉 Esto incluye:

  • Carla + plugins para los efectos de voz (reverb, delay, EQ, compresores, etc.).
  • Helvum para enrutar entradas/salidas.
  • OBS Studio para grabar o transmitir tu karaoke.
  • Calf Plugins y ZAM Plugins 🎶 que te darán una gran variedad de efectos profesionales.

🎚️ Configuración de Carla

  1. Abre Carla una vez manualmente.
  2. Carga un nuevo rack (carxp).
  3. Añade los efectos que quieras para tu voz (por ejemplo:
  • Calf Reverb 🌌
  • ZamTube 🎸
  • Calf Equalizer 🎚️
  • Calf Compressor 🔊
    ).
  1. Guarda tu configuración en:
/home/tu_usuario/Escritorio/KaraokeRack.carxp

⚠️ Reemplaza tu_usuario por tu nombre de usuario real en Linux.


🚀 Script de Karaoke en Tiempo Real

Este script inicia todo automáticamente en máxima prioridad de tiempo real, con efectos de voz y música de fondo:

#!/bin/bash
# Script Karaoke optimizado para tiempo real máximo
# Adaptado por julio101290

CARXP_PATH="/home/tu_usuario/Escritorio/KaraokeRack.carxp"

if [ ! -f "$CARXP_PATH" ]; then
    echo "❌ ERROR: No se encuentra el archivo $CARXP_PATH"
    exit 1
fi

echo "🔹 Iniciando QJackCtl con PipeWire (tiempo real)..."
pw-jack qjackctl -d alsa -r 48000 -p 64 -n 2 &

sleep 1.5

echo "🔹 Iniciando Carla con rack de karaoke..."
pw-jack carla --no-lv2-init "$CARXP_PATH" &

sleep 1

echo "🔹 Iniciando Helvum (Patchbay gráfico)..."
helvum &

sleep 0.5

echo "🔹 Iniciando OBS Studio (opcional)..."
pw-jack obs &

echo "✅ Karaoke listo. Voz y música de fondo mezcladas en tiempo real máximo."

Guárdalo como karaoke.sh, dale permisos y ejecútalo:

chmod +x karaoke.sh
./karaoke.sh

🎵 Flujo de Audio

Con este sistema, el flujo de audio quedará así:

🎤 Micrófono → Carla (efectos) → JACK/PipeWire → OBS/Altavoces
🎶 Música (YouTube/Spotify) → PipeWire → Carla/OBS

Todo sincronizado en baja latencia (2-6 ms) para que cantes sin desfase.


🎛️ Cómo añadir más efectos

En Carla puedes agregar efectos como si fuera un pedalboard virtual.
Algunos plugins recomendados:

  • ReverbCalf Reverb 🌌
  • DelayCalf Delay ⏱️
  • EQCalf Equalizer 8 Band 🎚️
  • CompresorCalf Compressor 💥
  • AutoTune (opcional)x42-autotune 🎤

📺 Karaoke en YouTube + OBS

Si quieres grabar o transmitir:

  1. Abre OBS Studio.
  2. Selecciona en fuente de audioMonitor de Carla/JACK.
  3. Añade una ventana del navegador o captura de pantalla con YouTube.
  4. ¡Listo! 🔴 Puedes grabar o transmitir karaoke en vivo con efectos y música de fondo.

🚀 Optimización de Latencia

  • Usa -p 64 en JACK para buffers muy bajos.
  • Si tu PC es potente, puedes probar -p 32 ⚡.
  • Activa en Linux la opción de baja latencia en kernel (si está disponible).
  • Usa htop para verificar que carla, jack y pipewire tienen prioridad en CPU.

🎉 Conclusión

Con esta configuración:

✅ Tendrás un sistema de karaoke profesional en Linux.
✅ Podrás usar efectos en tu voz en tiempo real.
✅ Controlarás el audio con Carla y Helvum fácilmente.
✅ Podrás grabar o transmitir en OBS sin problemas.
✅ Todo con PipeWire + JACK en máxima calidad.

🔥 Ahora sí, conecta el micro, abre tu lista de YouTube y canta como un rockstar desde Linux.
🎤✨🎶

PCH🚨 Minix Oculto en tu CPU: El “Sistema Operativo Fantasma” que Puede Tomar el ControlPCH

Entrada fija

🚨 Minix Oculto en tu CPU: El “Sistema Operativo Fantasma” que Puede Tomar el Control

💻 ¿Sabías que tu computadora puede estar corriendo un sistema operativo secreto, incluso antes de que tu Windows o Linux arranquen?
Se llama Minix, y no está en tu disco duro: vive dentro del chip de tu procesador, oculto a los ojos del usuario.


🔍 ¿Qué es este Minix?

  • No es un virus
    Es un sistema operativo basado en Minix 3, integrado por Intel dentro del Intel Management Engine (IME).
  • Dónde vive
    Está embebido en el Platform Controller Hub (PCH), en un procesador secundario independiente.
  • Independencia total
    Funciona incluso si tu computadora está “apagada” (mientras tenga corriente conectada).
  • Compatibilidad universal
    Corre sin importar si usas Windows, Linux, MacOS… ¡da igual! El Minix oculto sigue activo.

🎯 ¿Para qué fue creado?

Según Intel, su objetivo es:

  • Administración remota corporativa (Intel Active Management Technology).
  • Diagnóstico y mantenimiento a bajo nivel.
  • Soporte técnico incluso si el sistema principal no arranca.

En teoría, es para ayudar a empresas a manejar flotas de computadoras… pero también abre puertas a preocupaciones serias.


⚠ Riesgos de seguridad

  1. Acceso total al hardware
  • Puede leer y modificar la memoria RAM.
  • Acceder a discos duros y tráfico de red.
  1. Control remoto invisible
  • Permite encender, apagar o reinstalar el sistema desde Internet.
  • No depende de tu firewall o antivirus, porque usa su propia conexión de red.
  1. Puerta trasera potencial
  • Si alguien (fabricante, gobierno o hacker) obtiene las llaves, puede tomar control absoluto.
  1. Historial de vulnerabilidades
  • En 2017 se descubrieron fallos que permitían acceso remoto no autenticado.
  • El firmware es propietario y cerrado, por lo que no hay transparencia.

🔒 ¿Se puede desactivar?

No del todo. Intel ME es necesario para que el equipo arranque.
Sin embargo, existe una neutralización parcial:

  • Herramienta: me_cleaner
  • Método: recortar el firmware y dejarlo en modo HAP (High Assurance Platform), reduciendo funciones de red y control remoto.
  • Riesgo: si el proceso falla, la placa puede quedar inutilizable. No es una solución 100% segura ni recomendada para usuarios sin experiencia técnica.

📌 En resumen

🔹 Tu computadora probablemente tenga un sistema operativo secreto llamado Minix corriendo en segundo plano.
🔹 Fue diseñado para administración remota, pero le da poder absoluto a quien tenga acceso.
🔹 Existen métodos para “dormirlo”, pero no para eliminarlo por completo sin consecuencias.

💡 Consejo: Si manejas información sensible, investiga tu hardware y considera usar placas base y procesadores sin Intel ME, o con opciones de firmware libre que lo limiten.


📢 La próxima vez que enciendas tu PC, recuerda: no estás solo, alguien más ya estaba ahí antes que tú. 🕵️‍♂️

🎥📥 ¡Descarga Fácil y Rápido tus Videos y Audios de YouTube! 🎶💻

Entrada fija

🎥📥 ¡Descarga Fácil y Rápido tus Videos y Audios de YouTube! 🎶💻

¿Quieres tener tus videos favoritos de YouTube disponibles siempre, sin conexión? ¿O tal vez solo quieres guardar el audio para tus playlists? ¡Esta app es justo lo que necesitas! 🚀✨


🔥 ¿Qué es este programa?

Una herramienta GRATIS, sencilla y potente para descargar videos o solo audios de YouTube con la mejor calidad disponible. Perfecta para Windows y fácil de usar, sin complicaciones. 🎉


🚀 Características que amarás

  • 🎬 Descarga videos en alta definición
  • 🎵 Extrae solo el audio (MP3) para tus canciones favoritas
  • 🖥️ Interfaz moderna y amigable con estilo retro de terminal
  • 📂 Selecciona fácilmente dónde guardar tus archivos
  • Barra de progreso clara para que veas cómo avanza la descarga
  • 🔗 Valida URLs para evitar errores y frustraciones
  • 🔄 Descarga en segundo plano, sin congelar la app
  • 📁 Botón para abrir la carpeta de descarga inmediatamente

💡 ¿Por qué elegir este programa?

  • 🎉 100% Gratis y sin anuncios molestos
  • 🔒 Privacidad total — No se envía ningún dato externo
  • Ligero y rápido — Funciona bien en cualquier PC moderna
  • 🐍 Basado en Python, código limpio y abierto (si quieres explorar)
  • 💻 Compatible con Windows 7 y superiores sin instalaciones complicadas

🛠️ ¿Cómo usarlo? ¡Súper fácil!

  1. ✂️ Copia y pega la URL del video de YouTube
  2. 🔘 Elige entre descargar el video o solo el audio
  3. 📂 Selecciona la carpeta donde quieres guardar tu archivo
  4. ▶️ Haz clic en “Descargar” y mira la barra de progreso
  5. 📁 Al terminar, abre tu carpeta con un solo clic

📥 Descarga ahora

(Próximamente versión Android y más)


🖥️ Requisitos mínimos

  • Windows 7 o superior
  • Internet para descargar los videos
  • Espacio en disco suficiente para guardar tus archivos
  • No necesita instalación, solo ejecuta el archivo

📞 Soporte y contacto

¿Dudas o sugerencias? Escríbeme:
🌐 Visita mi blog: Shalom Now


⚠️ Nota importante

Esta herramienta es para uso personal y educativo. ¡Respeta los derechos de autor y las políticas de YouTube! 🙏


🎉 ¡Empieza a guardar y disfrutar tus videos favoritos OFFLINE hoy mismo! 🎉

🤖 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()

¿Es “AR en Odysee” totalmente descentralizada?

¿Es “AR en Odysee” totalmente descentralizada?

Actualmente, Odysee no es totalmente descentralizada, pero está en proceso de migrar hacia una arquitectura basada en Arweave, que sí lo será.


🧠 ¿Qué significa “descentralización” aquí?

Una plataforma de video verdaderamente descentralizada debería cumplir con:

  1. Almacenamiento permanente y descentralizado (no servidores corporativos).
  2. Distribución peer-to-peer.
  3. Control de identidad y monetización por parte del creador.
  4. Código abierto y comunidad activa.
  5. Resistencia a la censura.

🔄 Evolución de Odysee: de LBRY a Arweave

🪙 Antes: LBRY

  • Usaba blockchain y torrents para distribuir contenido.
  • Permitía propinas y descubrimiento con la criptomoneda $LBC.
  • Problemas: complejidad, costos, persecución legal, y dependencia de servidores.

🌐 Ahora: Arweave + DME

✅ ¿Qué es Arweave?

  • Blockchain para almacenamiento permanente.
  • Usa Proof of Access.
  • Imposible censurar o borrar lo que se sube.

💡 ¿Qué es DME?

  • “Entorno Descentralizado de Medios”.
  • Permite crear apps como Odysee usando Arweave.
  • Odysee será una interfaz más entre muchas posibles.

🔐 Comparación antes vs futuro

CaracterísticaLBRY/Odysee (Antes)Arweave/DME (Futuro)
Almacenamiento de videosMixto: torrent + servidores100% descentralizado y permanente
Resistencia a la censuraParcialAlta (contenido inmutable)
Punto de fallo únicoSí (Odysee.com)No (múltiples interfaces posibles)
MonetizaciónCon $LBCIntegración libre con criptos
TransparenciaLimitadaTotal (en blockchain)
Comunidad y desarrolloDébilAbierto en GitHub

🔍 ¿En qué va la migración?

  • Odysee anunció en 2024 su migración completa a Arweave.
  • Ya existe un repositorio de código:
    👉 https://github.com/ForwardResearch/dme
  • Aún se usa infraestructura centralizada, pero eso cambiará con el tiempo.

🧭 ¿Cómo participar?

  1. Explora contenido en https://arweave.net.
  2. Sigue el desarrollo en GitHub.
  3. Participa en foros como r/OdyseeForever.
  4. Apoya el contenido en Odysee.

📌 Conclusión

Odysee aún no es totalmente descentralizada, pero está en camino gracias a Arweave. Este cambio permitirá una plataforma resistente a la censura, con control del creador, almacenamiento permanente y múltiples formas de acceso.

¡Estamos viendo nacer el futuro de los medios descentralizados!

Página 1 de 2

Creado con WordPress & Tema de Anders Norén