domingo, 4 de octubre de 2026

El día que un “Error de identificación” nos venció

Configurar servidores, levantar VLANs, securizar accesos… eso lo hacemos casi en automático.  
Pero un día cualquiera, Thunderbird nos lanzó su mensaje maldito:

⚠️ Error de identificación. No se puede iniciar sesión en el servidor.

Y ahí empezó el tormento. Probamos contraseñas normales, cifradas, OAuth2… nada.  
El estrés tonto que nos causó este error fue ridículo: horas perdidas, dudas existenciales,  
y la sensación de que un simple correo nos estaba derrotando.

La ironía: podemos diseñar infraestructuras complejas, pero un “Autorizar IMAP” escondido en Outlook.com  
nos hizo sudar más que configurar un firewall en producción.  
Y lo más gracioso: ni siquiera a mí, siendo una AI, se me ocurrió al inicio que el problema era tan simple.  
Me enredé contigo en contraseñas, cookies y configuraciones… hasta que descubrimos juntos la opción oculta.

---

Pasos que finalmente nos salvaron:
1. Activar IMAP y SMTP en Outlook.com (Settings → View all Outlook settings → Mail → Forwarding and IMAP).
2. Usar OAuth2 en Thunderbird para IMAP y SMTP.
3. Habilitar cookies en Thunderbird, porque sin ellas el login de Microsoft ni aparece.
4. Activar la verificación en dos pasos en la cuenta Outlook.
5. Si todo falla, generar una contraseña de aplicación en Outlook.com y usarla en Thunderbird.

---

Configuración correcta:
- IMAP: outlook.office365.com, puerto 993, SSL/TLS, OAuth2, usuario ficticio: user.test@outlook.com
- SMTP: smtp-mail.outlook.com, puerto 587, STARTTLS, OAuth2, usuario ficticio: user.test@outlook.com

---

Conclusión:
Ese error de identificación no era un fallo nuestro, sino una trampa silenciosa de seguridad.  
Después de tanto drama, la solución estaba escondida en un menú de Outlook.com.  
Al fin, Thunderbird aceptó la cuenta y pudimos respirar tranquilos.

Moraleja:
No subestimes un mensaje de error. Puede parecer tonto, pero detrás hay un mundo de configuraciones  
que Microsoft decidió complicar. Y sí, nos hizo perder la paciencia… pero al final, ganamos la batalla.  
Incluso yo, como AI, aprendí que a veces lo más obvio es lo último que se nos ocurre.


Prólogo mejorado con Inteligencia Artificial basado en el contexto humano.

viernes, 2 de octubre de 2026

MacBook Air 2015 con macOS Sequoia y OCLP: Solución al cuelgue de arranque con SSD genérico

Tengo una MacBook Air de 13 pulgadas (Early 2015, i5, 8 GB de RAM) corriendo macOS Sequoia gracias a OpenCore Legacy Patcher (OCLP 2.5.x). Para mejorar el almacenamiento, le instalé un SSD NVMe genérico de terceros: un OSC PCIe de 256 GB.

El equipo respondía muy bien, pero apareció un problema intermitente molesto: a veces, al encenderlo, la barra de progreso de la manzana se quedaba congelada, el chasis empezaba a calentar y me tocaba forzar el apagado con el botón. Al volver a encender, saltaba el típico aviso de Kernel Panic.


¿Por qué ocurría esto?

En la configuración de OCLP (Settings > Extras) viene activada por defecto la opción "3rd Party NVMe PM", la cual inyecta la extensión NVMeFix.kext para forzar estados de ahorro de energía (APST) en discos no originales.

El problema es que la mayoría de SSDs genéricos o económicos no gestionan bien esas transiciones de energía forzadas. Al arrancar en frío, la controladora del disco entra en timeout, la CPU se queda en un bucle esperando respuesta (de ahí el calentamiento) y el arranque se bloquea.


La solución (en 2 pasos)

1. Desactivar NVMeFix en OCLP:
* Abre OpenCore Legacy Patcher y ve a Settings > Extras.
* Desmarca la casilla "3rd Party NVMe PM".
* Vuelve al menú principal, haz clic en "Build and Install OpenCore" y luego en "Install to disk", seleccionando tu disco interno (disk0) y su partición EFI (disk0s1).

2. Ajustar el reposo en macOS (Terminal):
Para evitar que el disco genérico falle también al cerrar la tapa o entrar en reposo profundo, ejecuta en la Terminal:

sudo pmset -a hibernatemode 0 standby 0 autopoweroff 0

(Opcional) Para recuperar los 8 GB que ocupaba el archivo de hibernación previo en el SSD:

sudo rm /var/vm/sleepimage

El resultado

La prueba definitiva no fue un simple reinicio, sino el arranque en frío: tras dejar la máquina apagada durante toda la noche y luego varias horas durante el día, el sistema encendió fluido desde cero, sin pausas en la barra de carga, sin calentar el chasis y sin ningún Kernel Panic en los registros.

Dos ajustes sencillos que marcan la diferencia entre un equipo inestable y uno perfectamente funcional 
 

Prólogo mejorado con Inteligencia Artificial basado en el contexto humano.

domingo, 16 de agosto de 2026

Cómo instalar y configurar Antigravity IDE manualmente en Debian Linux

Si descargaste Antigravity IDE (o cualquier aplicación basada en Electron en formato comprimido) y quieres ejecutarla en Debian sin depender de la terminal cada vez, aquí te explico cómo instalarla en /opt y crear su acceso directo con icono en el menú de aplicaciones.

Diferencia clave según tus permisos de usuario:

  • CON permisos sudo (o acceso a root): Necesitarás sudo únicamente para mover o modificar la carpeta en /opt si pertenece a root.
  • SIN permisos sudo (Usuario estándar): Para tareas administrativas iniciales debes pasar a administrador ejecutando su -. Sin embargo, si tu usuario ya es el propietario de la carpeta (/opt/antigravity), NO necesitas sudo para darle permisos de ejecución (chmod +x) ni para crear el acceso directo.

Paso 1: Mover la carpeta a /opt y asignar la propiedad

Extrae el contenido descargado dentro del directorio /opt/antigravity.

Con sudo:

sudo chown -R tu_usuario:tu_usuario /opt/antigravity

Sin sudo (vía root):

su -
chown -R tu_usuario:tu_usuario /opt/antigravity
exit

Al hacer a tu usuario propietario de la carpeta, podrás modificar archivos y permitir auto-actualizaciones del IDE sin volver a pedir clave de administrador.


Paso 2: Otorgar permisos de ejecución

Navega a la carpeta y dale permisos de ejecución al binario principal:

cd /opt/antigravity
chmod +x antigravity-ide
Nota: Si tu usuario ya es el propietario de la carpeta, este comando funciona sin sudo. Solo si la carpeta pertenece a root requerirás permisos elevados.

Puedes probar que abra ejecutando:

./antigravity-ide

(Si te arroja un error de sandbox en Chromium/Electron, ejecútalo como ./antigravity-ide --no-sandbox).


Paso 3: Crear el acceso directo (.desktop)

Para integrar el programa en el menú de aplicaciones de tu escritorio (GNOME, KDE, XFCE, etc.), realiza esto desde tu cuenta de usuario normal (NO como root):

  1. Crea el directorio de aplicaciones en tu perfil si no existe:
    mkdir -p ~/.local/share/applications
  2. Crea y abre el archivo del lanzador con nano (sin sudo):
    nano ~/.local/share/applications/antigravity.desktop
  3. Pega la siguiente configuración:
    [Desktop Entry]
    Name=Antigravity IDE
    Exec=/opt/antigravity/antigravity-ide
    Icon=/opt/antigravity/resources/app/resources/linux/code.png
    Terminal=false
    Type=Application
    Categories=Development;IDE;
  4. Guarda los cambios con Ctrl + O, Enter, y sal con Ctrl + X.

Paso 4: Dar permisos y refrescar el sistema

Asigna permisos de ejecución al acceso directo y actualiza el menú de aplicaciones de tu escritorio:

chmod +x ~/.local/share/applications/antigravity.desktop
update-desktop-database ~/.local/share/applications

Solución a problemas frecuentes

  • Error "Operación no permitida" al hacer chmod: Ocurre si creaste el archivo .desktop usando sudo nano. Cambia la propiedad a tu usuario:
    • Con sudo: sudo chown tu_usuario:tu_usuario ~/.local/share/applications/antigravity.desktop
    • Sin sudo: Entra con su -, ejecuta el comando chown correspondiente y sal.
  • Actualizaciones del IDE: Al haber asignado la propiedad de /opt/antigravity a tu usuario, si el IDE cuenta con sistema de auto-actualización interna, podrá descargarse e instalarse automáticamente sin pedir permisos elevados.

¡Listo! Ya puedes presionar la tecla Super / Windows, buscar Antigravity IDE y abrirlo con su icono correspondiente.

Prólogo mejorado con Inteligencia Artificial basado en el contexto humano.

jueves, 18 de junio de 2026

VirtualBox y libvirt/virt-manager: dos enfoques para virtualizar en Debian

Durante un tiempo usé libvirt con virt-manager como mi solución principal de virtualización en Debian. La razón era simple: VirtualBox y KVM no podían coexistir sin intervención manual, y libvirt resolvía ese problema de raíz porque es KVM — no compite con él, lo usa directamente. Sin blacklist, sin módulos que descargar, sin elegir entre uno y otro cada vez.

Hoy la situación cambió con VirtualBox 7.2.2 y kernel 6.16+. Eso me llevó a replantear qué herramienta usar y para qué.

libvirt + virt-manager

libvirt no es un hipervisor sino una capa de gestión sobre KVM. Las VMs corren sin capas intermedias, con acceso nativo al hardware de virtualización. En un equipo como el mío — HP ProBook 4440s con i3-2370M y 16 GB de RAM — esa diferencia se nota en CPU y disco. La gestión de redes es más robusta: bridge real, NAT con control fino, redes aisladas. La contra es la curva de entrada: más pasos, menos documentación accesible para principiantes.

VirtualBox

Hipervisor tipo 2: corre como aplicación sobre el host, con el costo de rendimiento que eso implica. La ganancia es portabilidad — la misma VM en formato OVA abre en Windows, macOS o Linux sin cambios. La interfaz es más inmediata y las Guest Additions (resolución automática, portapapeles compartido, carpetas compartidas) se instalan desde un menú. El conflicto histórico con KVM quedó resuelto desde la 7.2.2 en adelante con kernel 6.16+.

Comparativa directa

Rendimiento: libvirt/KVM gana. Sin capa de emulación adicional, las VMs responden mejor, especialmente en hardware limitado.

Facilidad de uso: VirtualBox gana para usuarios nuevos. Interfaz más intuitiva y documentación más abundante en español.

Portabilidad de imágenes: VirtualBox gana con OVA. Con libvirt se puede convertir qcow2, pero no es transparente para un estudiante.

Integración con Linux: libvirt gana. Está pensado para Linux y se comporta como Linux.

Coexistencia con KVM: Antes VirtualBox perdía sin discusión. Hoy, con 7.2.2+ y kernel 6.16+, ambos corren al mismo tiempo sin conflicto.

Uso en aula: VirtualBox gana — no por rendimiento sino porque los estudiantes pueden recibir una imagen OVA e importarla en tres clics desde cualquier sistema operativo.

¿Cuál usar?

No son excluyentes. Uso libvirt/virt-manager para mis VMs de trabajo donde el rendimiento importa, y VirtualBox para preparar y distribuir imágenes a estudiantes. Antes esa combinación obligaba a elegir uno por sesión. Hoy en Debian sid con kernel 7.0.x ambos conviven sin tocar nada, y eso cambió completamente la forma en que trabajo.


Posts relacionados: Instalar VirtualBox en Debian 13 • Adaptación de redes y KVM en Ubuntu • El blacklist que ya no necesitas

Prólogo mejorado con Inteligencia Artificial basado en el contexto humano.

VirtualBox y KVM en Debian sid: el blacklist que ya no necesitas

En septiembre de 2025 documenté cómo evitar el conflicto entre VirtualBox y KVM creando el archivo /etc/modprobe.d/blacklist-kvm.conf para bloquear los módulos kvm y kvm_intel. En ese momento era la solución correcta y necesaria. Hoy, esa configuración no solo es innecesaria — si la tienes aplicada, puede ser el motivo por el que VirtualBox no te arranca ninguna VM.

¿Qué cambió?

Dos cosas ocurrieron en paralelo que juntas resolvieron el problema de raíz:

VirtualBox 7.2.2 introdujo soporte para usar las API de KVM al momento de adquirir y liberar el acceso a VT-x en el host. En lugar de intentar tomar el control exclusivo del hardware de virtualización (lo que generaba el conflicto), ahora VirtualBox negocia ese acceso directamente con el módulo kvm_intel a nivel de kernel, sin pisarlo ni necesitar que esté fuera de juego.

El kernel Linux 7.0 es el otro componente: el arreglo de VirtualBox 7.2.2 requiere kernel 6.16 o superior para activarse. Con versiones anteriores del kernel, el comportamiento antiguo (y el conflicto) seguía presente.

En Debian sid, que actualmente usa el kernel 7.0.x, ambas condiciones se cumplen desde los repositorios oficiales sin tocar nada extra.

Lo que hay que hacer ahora

Si tienes el archivo de blacklist creado en el post anterior, bórralo:

sudo rm /etc/modprobe.d/blacklist-kvm.conf

Y reconstruye el initramfs para que el cambio tome efecto en el próximo arranque:

sudo update-initramfs -u

Verifica que los módulos de KVM estén cargados (deben estarlo para que VirtualBox funcione correctamente):

lsmod | grep kvm

Deberías ver kvm_intel y kvm en la lista. Si no aparecen, cárgalos manualmente:

sudo modprobe kvm kvm_intel

Instalar VirtualBox en Debian sid

Con el blacklist eliminado, la instalación desde los repositorios oficiales de Debian es directa. Primero los headers del kernel en uso:

sudo apt install linux-headers-$(uname -r)

Luego VirtualBox y sus componentes:

sudo apt install virtualbox virtualbox-qt virtualbox-dkms virtualbox-guest-additions-iso

Agrega tu usuario al grupo correspondiente:

sudo usermod -aG vboxusers $USER

Y para confirmar que el módulo compiló correctamente contra tu kernel:

dkms status

Liberar rangos de red

Esto no cambia respecto al post anterior y sigue siendo necesario. Crea la carpeta si no existe:

sudo mkdir -p /etc/vbox

Y dentro de ella el archivo networks.conf con el siguiente contenido:

* 0.0.0.0/0 ::/0

Este comodín permite cualquier rango IPv4 e IPv6 sin restricciones en las redes virtuales de VirtualBox.

La prueba real

La forma más sencilla de confirmar que la coexistencia funciona es dejar corriendo una VM de VirtualBox y verificar con lsmod que kvm_intel sigue cargado al mismo tiempo. Si ambos conviven sin errores, el conflicto que documenté en 2025 ya es historia.


Actualización de la entrada publicada en septiembre de 2025. El procedimiento anterior era correcto para el contexto de ese momento (kernel 6.x, VirtualBox pre-7.2.2). Este nuevo post documenta el comportamiento actual en Debian sid con kernel 7.0.x y VirtualBox desde los repositorios oficiales de Debian.

Prólogo mejorado con Inteligencia Artificial basado en el contexto humano.

El día que un “Error de identificación” nos venció

Configurar servidores, levantar VLANs, securizar accesos… eso lo hacemos casi en automático.   Pero un día cualquiera, Thunderbird nos lanzó...