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 13Adaptación de redes y KVM en UbuntuEl 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.

domingo, 7 de junio de 2026

Debian

Llevo mucho tiempo usando una laptop HP ProBook 4440s que poco a poco le he ido mejorando hasta donde es posible claro esta pero aun no mejoro el procesador dentro de sus limitaciones, actualmente tiene un i3-2370m que me ha sido muy fiel eso no lo puedo negar.

Le he colocado muchas distribuciones, y tambien otros Windows 10/11 y ha sido bastante responsiva. 

 Actualmente uso Debian, la he estado migrando en sus diferentes versiones y ramas. Actualmente la he llevado a Forky que al momento de escribir esto es la version de pruebas con el Kernel 7.0.x 

 Pense que me daria mas problemas, pero ha migrado bien. Mantengo los repositorios oficiales.

Repositorios extras tengo solo el de Antigravity, OneDrive, Microsoft Edge y Microsoft Produccion para algunos otros programas que actualmente no estoy usando pero pienso aprender.

 Veamos que tal avanza.

Este post no ha sido modificado con AI. 

martes, 12 de mayo de 2026

No sé programar. Y aun así construí mi propio sistema de desarrollo.

Trabajo en redes. Configuro switches, administro servidores, resuelvo problemas de conectividad. El código nunca fue mi mundo y nunca pensé que lo sería.

Entonces llegó Antigravity. No se si mi experiencia sea correcta, pero es mía.


El primer proyecto

Todo empezó con una necesidad simple: generar boletos para un evento. En lugar de buscar una aplicación ya hecha, algo me dijo: ¿y si lo construyo yo?

No sabía PHP. No sabía JavaScript. Lo que sí sabía era exactamente qué quería que hiciera.

Y resulta que eso era suficiente.

Le describí mi idea a Antigravity. Le dije qué información debía tener el boleto, cómo quería que se viera, qué debía pasar al hacer clic. Antigravity escribió el código. Yo lo revisé, le dije qué cambiar, qué faltaba.

En ningún momento escribí una sola línea de código. Y funcionó.


Lo que nadie te dice

Hay una creencia muy extendida: para usar IA en desarrollo necesitas saber programar. Como si fuera una herramienta solo para programadores avanzados que quieren ir más rápido.

Eso es mentira.

Lo que necesitas no es saber código. Es saber pensar. Saber describir problemas. Saber qué quieres que ocurra y qué no. Saber cuándo algo está mal aunque no sepas por qué.

Eso lo sabe cualquier persona que haya resuelto problemas en su vida. En redes llevamos años haciendo exactamente eso.


El momento en que todo cambió

Después del generador de boletos algo se encendió. Empecé a pensar en sistemas. En cómo organizar el trabajo. En cómo pasar de una idea a algo que funciona sin romper lo que ya funciona.

Sin darme cuenta estaba diseñando una arquitectura de desarrollo. Con fases, zonas, reglas y flujos.

Le pregunté a Claude cómo lo hacen los proyectos grandes. Me habló del Kernel Linux, de Debian, de cómo organizan sus ramas de desarrollo, de cómo nunca modifican el código original sino que aplican parches.

Y pensé: eso es exactamente lo que necesito.

No porque sea programador. Sino porque en redes pensamos así. Tienes producción que no puedes tocar. Tienes un entorno de pruebas. Tienes un laboratorio donde experimentas. Nunca llevas algo a producción sin probarlo antes.

El concepto era el mismo. Solo el lenguaje era diferente.


La distinción que cambia todo

Un programador escribe el código.

Un orquestador sabe qué debe hacer el código.

La IA convierte a cualquier persona con conocimiento de dominio en un orquestador. No te da habilidades de programación. Te da un ejecutor que entiende instrucciones en lenguaje natural.

Yo nunca me convertí en programador. Me convertí en alguien que sabe exactamente qué quiere construir y tiene las herramientas para construirlo.


Lo que sí necesitas

No es una lista técnica. Es algo más simple y más difícil al mismo tiempo.

Saber qué quieres construir. No el código, sino el propósito. Qué problema resuelve, para quién, cómo debería sentirse usarlo.

Saber describir lo que ves. Cuando algo no funciona tienes que poder explicarlo en términos de comportamiento, no de código. "Esperaba que pasara esto y pasó aquello."

Confiar en tu conocimiento previo. Mi experiencia en redes me dio más ventaja de lo que pensaba. Entender flujos, entender por qué aislar entornos es importante, todo eso se tradujo directamente.

Paciencia con el proceso. Hubo noches pensando en la arquitectura. La almohada fue parte del equipo.


Para quien está pensando en intentarlo

Si tienes una idea que siempre quisiste construir pero nunca lo hiciste porque no sabes programar, quiero que sepas algo.

El obstáculo no era el código. Era creer que lo necesitabas para empezar.

Empieza describiendo qué quieres que haga tu idea. Qué problema resuelve. Qué debería pasar paso a paso. Qué no debería pasar nunca. Eso es el 80% del trabajo.

El otro 20% es aprender a conversar con la IA. A corregirla cuando se equivoca. A saber cuándo parar y pensar antes de seguir.

No necesitas saber programar. Necesitas saber qué quieres construir.


Escrito por alguien de redes que un día decidió que una idea era suficiente razón para empezar.

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

jueves, 9 de abril de 2026

Mantener servicios desactivados y llamarlos de manera conjunta en Debian y Ubuntu

En mi entorno de desarrollo local prefiero instalar Apache2 y MariaDB de manera independiente y mantenerlos desactivados por defecto. No utilizo XAMPP o LAMPP completos porque incluyen más componentes de los que necesito, obligan a usar rutas largas para guardar los sitios web y no ofrecen un panel gráfico nativo integrado al sistema. En Debian 13 decidí mantenerlos desactivados, de manera que solo los enciendo cuando realmente los necesito. No instalé vsftpd ni openssh, porque todo lo hago en localhost y no requiero acceso remoto. Por costumbre llamé al servicio conjunto lampp, aunque en realidad solo agrupa Apache2 y MariaDB.

Crear un servicio conjunto en Debian 13

La idea es definir un archivo de unidad en systemd que actúe como agrupador. Así, con un solo comando puedo iniciar o detener ambos servicios.

Archivo /etc/systemd/system/lampp.service:

[Unit]
Description=Servicio conjunto LAMPP (Apache2 + MariaDB)
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/systemctl start apache2.service mariadb.service
ExecStop=/bin/systemctl stop apache2.service mariadb.service

[Install]
WantedBy=multi-user.target

Luego recargamos systemd:

sudo systemctl daemon-reload

Y ya podemos usar:

sudo systemctl start lampp.service
sudo systemctl stop lampp.service

De esta forma, los servicios permanecen desactivados al inicio, pero se levantan juntos cuando los necesito.

Variante para MySQL en Ubuntu

En Ubuntu, el servidor de base de datos suele instalarse como mysql.service en lugar de mariadb. El archivo sería casi idéntico, solo cambiando el nombre del servicio:

[Unit]
Description=Servicio conjunto LAMPP (Apache2 + MySQL)
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/systemctl start apache2.service mysql.service
ExecStop=/bin/systemctl stop apache2.service mysql.service

[Install]
WantedBy=multi-user.target

Recargamos systemd:

sudo systemctl daemon-reload

Y lo usamos igual:

sudo systemctl start lampp.service
sudo systemctl stop lampp.service

Conclusión

Mantener los servicios desactivados por defecto ayuda a ahorrar recursos y evita procesos innecesarios en segundo plano. Con un archivo de unidad personalizado podemos agruparlos y manejarlos de manera conjunta, manteniendo la flexibilidad y el control sobre nuestro entorno de desarrollo local.

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


lunes, 23 de marzo de 2026

Aprendiendo a usar los repositorios modernos en Debian 13

Cuando instalé Debian 13, me encontré con algo nuevo: los archivos .sources. Antes todo estaba en el clásico sources.list, pero ahora Debian recomienda usar este formato más moderno. No es que el viejo sistema fuera malo, simplemente el nuevo ofrece más claridad, seguridad y orden.

El primer paso fue ejecutar el comando:
sudo apt modernize-sources

Con esto, mis listas antiguas se transformaron automáticamente en .sources. Fue como si APT hubiera tomado mis notas y las hubiera reescrito con un estilo más organizado. Lo hice no porque mis listas fueran confusas, sino porque quería adaptarme a las nuevas características y aprender cómo funciona este formato.

Al revisar los archivos, descubrí que cada línea tiene un propósito claro. Vamos a ver un ejemplo real: el archivo debian-backports.sources.

---
Ejemplo limpio (tal como queda en el sistema):

# Modernized from /etc/apt/sources.list
Types: deb deb-src
URIs: https://deb.debian.org/debian/
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

---
 

Ejemplo comentado (explicado línea por línea):

# Modernized from /etc/apt/sources.list
Types: deb deb-src        # Define los tipos de repositorio.
                         # "deb" = paquetes binarios listos para instalar.
                         # "deb-src" = código fuente de los paquetes.

URIs: https://deb.debian.org/debian/   # Dirección del servidor donde APT buscará los paquetes.
                                       # En este caso, el mirror oficial de Debian, usando https.

Suites: trixie-backports   # La suite indica la rama o versión de Debian.
                          # "trixie-backports" contiene versiones más nuevas de paquetes
                          # adaptadas para funcionar en la versión estable.

Components: main contrib non-free non-free-firmware
                          # Secciones del repositorio:
                          # - main: software libre que cumple las pautas de Debian.
                          # - contrib: software libre que depende de componentes no libres.
                          # - non-free: software que no cumple las pautas de Debian.
                          # - non-free-firmware: controladores y firmware no completamente libres.

Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
                          # Ruta al archivo de la clave GPG que valida este repositorio.
                          # Garantiza que los paquetes provienen de Debian y no han sido alterados.
---

Modernizar mis repositorios fue un ejercicio de aprendizaje. No se trataba de corregir errores, sino de dar el salto a un formato que refleja las prácticas actuales de seguridad y orden. Ahora sé que cada archivo .sources es como un pequeño programa:
- Types define qué tipo de paquetes quiero.
- URIs señala el servidor.
- Suites indica la rama.
- Components abre las secciones disponibles.
- Signed-By asegura la autenticidad.

Con esto, cada actualización fluye por un canal seguro y verificado. Y cada vez que ejecuto sudo apt modernize-sources, siento que estoy validando ese esfuerzo: mis fuentes están limpias, seguras y listas para crecer.

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

domingo, 22 de marzo de 2026

Cómo instalar VirtualBox 7.2.x en macOS Monterey (MacBook Air 2015)

VirtualBox es una herramienta poderosa para virtualizar sistemas operativos en tu Mac. Sin embargo, en versiones recientes (7.2.x) requiere instalar previamente Xcode Command Line Tools y Python 3. Aquí te muestro cómo hacerlo paso a paso.

1. Instalar Xcode Command Line Tools
VirtualBox necesita librerías de desarrollo para compilar extensiones del kernel en macOS.

1. Abre la aplicación Terminal.
2. Escribe el siguiente comando:
   xcode-select --install
3. Acepta la ventana emergente y espera la descarga (~500 MB).
4. Verifica la instalación con:
   xcode-select -p
   Si aparece una ruta (/Library/Developer/...), ya está listo.

2. Instalar Python 3
macOS Monterey incluye Python 2.7, pero VirtualBox requiere Python 3.

Opción A: Instalar con Homebrew (recomendado)
1. Instala Homebrew si no lo tienes:
   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Instala Python 3:
   brew install python
3. Comprueba la versión:
   python3 --version

Opción B: Instalar desde el sitio oficial
1. Descarga el instalador en https://www.python.org/downloads/macos/
2. Ejecuta el archivo .pkg y sigue las instrucciones.
3. Verifica con:
   python3 --version

3. Instalar VirtualBox 7.2.x
1. Descarga el instalador desde la página oficial de Oracle.
2. Abre el archivo .dmg y ejecuta el instalador.
3. Si macOS bloquea la extensión del kernel:
   Preferencias del Sistema > Seguridad y Privacidad > General > Permitir
4. Reinicia el Mac si lo solicita.

4. Verificación final
Para confirmar que todo está correcto:
   VBoxManage --version
Si devuelve la versión (ejemplo: 7.2.4), la instalación fue exitosa.

Conclusión
Aunque la descarga de las herramientas previas puede parecer pesada y lenta, son necesarias para que VirtualBox funcione correctamente en macOS Monterey. Una vez instaladas, podrás crear y administrar máquinas virtuales sin problemas en tu MacBook Air 2015.

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

domingo, 15 de marzo de 2026

BalenaEtcher en Debian 13 (Trixie)

Al intentar instalar BalenaEtcher en Debian 13 (Trixie), es común encontrarse con un error de dependencias. Esto sucede porque algunas librerías necesarias ya no están disponibles en los repositorios oficiales de esta versión.

A continuación, les comparto cómo logré resolverlo utilizando los repositorios de Debian 12 (Bookworm) de forma independiente.

1. Agregar los repositorios de Debian 12 (Bookworm)

Lo primero que hice fue crear un archivo de repositorio adicional para que el sistema pueda encontrar las librerías antiguas. 

Crea el archivo en: /etc/apt/sources.list.d/bookworm.list
Y añade el siguiente contenido:

#[Debian GNU/Linux]
#[bookworm]
#[Official Intel/AMD64]

#[bookworm-main]
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

#[bookworm-updates]
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware

#[bookworm-backports]
deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware

2. Configurar el repositorio de BalenaEtcher

Posteriormente, creé el archivo del repositorio oficial de Balena en la misma carpeta (/etc/apt/sources.list.d/balena.list) con esta información:

# Source: balena
# Site: https://github.com/balena-io/etcher
# Repository: balena / etcher
# Description: Flash OS images to SD cards & USB drives, safely and easily.

deb [signed-by=/usr/share/keyrings/balena-etcher-archive-keyring.gpg] https://dl.cloudsmith.io/public/balena/etcher/deb/debian trixie main
deb-src [signed-by=/usr/share/keyrings/balena-etcher-archive-keyring.gpg] https://dl.cloudsmith.io/public/balena/etcher/deb/debian trixie main

3. Instalación final

Una vez configurados los archivos, solo queda actualizar las fuentes de software e instalar el paquete. Desde la terminal, ejecutamos:
 

apt update && apt install apt-transport-https balena-etcher

¡Listo! Con estos pasos, la aplicación se instalará correctamente en Debian Trixie, satisfaciendo las librerías faltantes desde el repositorio de Bookworm.

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

domingo, 8 de marzo de 2026

Un reencuentro con mi MacBook Air 2015

 

Volver a mi MacBook Air 2015 ha sido como reencontrarme con un viejo regalo que, con el tiempo, decidí transformar en un aliado técnico. El equipo llegó con una LogicBoard de 4 GB de RAM, suficiente para lo básico, pero pronto sentí que necesitaba más. Invertí en una placa de 8 GB y también en un cambio de batería, porque quería que este portátil siguiera siendo confiable en el día a día.

El disco fue otra historia. Pasé de un SSD SATA de 128 GB a un SSD NVMe de 256 GB, esperando velocidad y fluidez. Sin embargo, al inicio lo detesté: parecía más lento que el viejo SATA. Fue un recordatorio de que en el mundo Mac lo nuevo no siempre significa mejor de inmediato, y que cada ajuste requiere paciencia para encontrar su equilibrio.

Con el hardware renovado, me lancé a configurar el entorno. Instalé Office, que sigue funcionando bien en Monterey, y configuré OneDrive, aunque tuve que bloquear sus actualizaciones para evitar incompatibilidades. Elegí Firefox como navegador principal, confiable y ligero. Luego vino la parte que más disfruto: levantar máquinas virtuales con VirtualBox y preparar USB booteables con Balena Etcher, recuperando ese espacio de experimentación que siempre me motiva.

También depuré el sistema: eliminé Teams, que no necesitaba, y ajusté servicios en segundo plano para que no se iniciaran procesos innecesarios. Con esos cambios, el Mac se siente más ágil, menos cargado. Finalmente instalé MAMP, que me dio un servidor local con PHP y MySQL, completando así el círculo: productividad, pruebas y desarrollo web en un mismo equipo.

Este reencuentro con macOS ha sido una mezcla de nostalgia y aprendizaje. No es un sistema fácil de digerir, cada instalación trae sus particularidades y cada mejora exige atención. Pero al final, mi MacBook Air 2015 demuestra que todavía puede ser una herramienta confiable y versátil, capaz de acompañarme en proyectos personales y técnicos, incluso en 2026.

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

 

miércoles, 18 de febrero de 2026

Resumen Aprendizaje

Bitácora de Aprendizaje y Proyectos 

Desde el 23 de diciembre de 2025 he estado inmerso en un proceso de organización, documentación y creatividad que me ha permitido crecer tanto en lo técnico como en lo personal. Este espacio es mi manera de dejar constancia de lo aprendido y de los proyectos que he ido desarrollando.

Infraestructura y Workflows Técnicos

He reiniciado mis workflows institucionales en Debian, dejando todas las fases en pendiente pero con una estructura modular y clara. Documenté la inclusión de VTBoxPC como usuario principal y su rol en sudoers para reforzar la seguridad. También validé compatibilidades entre versiones de XAMPP y Ubuntu/Debian, asegurando estabilidad en la infraestructura.

Uno de los retos más interesantes fue la iteración sobre reglas IPTables, analizando su impacto en el acceso multiusuario y documentando variantes técnicas para facilitar la toma de decisiones.

Documentación y Diseño Educativo

Me enfoqué en crear glosarios técnicos y humanizados que me ayudaron a conceptualizar proyectos antes de escribir código. Además, trabajé en la maquetación visual alineada con la paleta institucional de la FISC, adaptando todo a formato hoja Carta (1366×768px).

Implementé footers dinámicos con control de versiones, hora/fecha y enlaces de descarga automática, y redacté informes con un tono diplomático, adaptado al impacto emocional de cada público.

Optimización y Herramientas

Seleccioné y organicé herramientas portables para diagnóstico y soporte técnico, integrando Firefox Portable como navegador principal y ImageUSB como utilidad externa.

He mantenido mi filosofía de uso racional de software propietario, priorizando siempre la estabilidad y la utilidad mínima.

Creatividad y Exploración Visual

También me di espacio para la creatividad, explorando reinterpretaciones visuales en estilos anime y shōnen. Estos ejercicios me han servido como apertura artística paralela a mis proyectos técnicos.

Diseñé mockups artísticos que me ayudaron a corroborar decisiones de documentación y presentación institucional.

Proyectos Personales

En el plano personal, planifiqué la organización de un criadero de pollos en mi patio de 2.78 × 10 metros, tomando en cuenta la ubicación del árbol y las condiciones iniciales.

Además, utilicé referencias de resolución de pantalla (hoja Carta en horizontal y vertical) para diseñar sitios web a mano alzada.

Automatizé la generación de listas de reproducción con el archivo lista.m3u, que se crea escaneando la carpeta /Publicidad/.

Reflexión Final

Este período ha sido una mezcla entre técnica y creatividad. Desde la depuración metódica de workflows en Linux hasta la exploración artística en estilos visuales, la constante ha sido la modularidad y claridad institucional.

Cada documento, cada regla y cada diseño que he trabajado busca servir como referencia educativa y profesional.

Mi próximo paso es seguir consolidando estos aprendizajes en proyectos más amplios, manteniendo siempre el equilibrio entre orden técnico y apertura creativa.

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

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 KV...