17
      Septiembre
        
      2025
    
    
Tenía un rato ya que no veía Cowboy Bebop, siento que es una de esas series que hace bien al corazón, y de vez en vez suelo revisitarla,y siempre encuentro mensajes e ideas nuevas que no había notado antes.
Esta vez, surgió una duda que estoy casi seguro que ya se ha hablado antes, pero que no recuerdo haber leído en ningún lado, y es la siguiente: ¿Qué hubiera pasado si Spike no hubiera muerto al final de la serie?
Si Spike y Julia hubieran encontrado la forma de escapar del Sindicato, lo más probable es que hubieran fingido sus muertes (algo común en este tipo de historias). Quizás Faye y Jet habrían recibido noticias vagas de un enfrentamiento, con el rumor de que Spike cayó… pero en secreto, él y Julia se habrían retirado a un lugar remoto, lejos de Marte y de las grandes colonias.
Un asteroide olvidado, un planeta agrícola en las fronteras del sistema, o incluso una estación abandonada transformada en refugio.
La vida despues del caos
La vida después del caos
La gran pregunta es: ¿qué significaría “ser felices”?
Para Julia, habría significado librarse al fin de la red de manipulación del Sindicato, de ser siempre la pieza en medio de Vicious y Spike. Ella podría redescubrirse, vivir sin miedo. Quizás volvería a tocar música (recordemos la importancia del jazz y la melancolía en la serie).
Para Spike, sería el verdadero desafío. Su identidad siempre estuvo atada a la violencia, a “morir dos veces y vivir una sola”. En la vida tranquila con Julia, Spike tendría que confrontar algo que nunca quiso: el aburrimiento, el silencio, el peso de no tener que pelear cada día. Su felicidad estaría ligada a aprender a ser un hombre común, y eso podría ser difícil para alguien que siempre vivió al filo de la navaja.
El reencuentro con los amigos
En algún momento, tal vez el destino habría cruzado a Spike y Julia con Jet, Faye e incluso Ed.
  - 
    Jet: sentiría alivio de ver vivo a Spike, pero también enojo por haber sido engañado. Con el tiempo lo entendería. 
- 
    Faye: probablemente estaría celosa, no por amor romántico, sino porque vería en Julia lo que ella nunca tuvo: un pasado estable, una razón clara para seguir. 
- 
    Ed: simplemente aceptaría la situación con la frescura infantil que la caracteriza, tal vez llamando a Julia “mamá” de broma. 
En esta visión alternativa, no veríamos a Spike caer en las escaleras del palacio de Vicious, sino quizá envejecería al lado de Julia. Tal vez como granjeros en un planeta polvoriento, criando perros como Ein, vida tranquila, lejos del ruido y la violencia de su pasado.
Un Spike con canas, mirando al cielo estrellado, sabiendo que cada día que vivió con Julia fue un triunfo contra un universo que parecía empeñado en destruirlos.
La música de Yoko Kanno en este final no sería un “Blue” melancólico, sino un jazz suave y nostálgico, más íntimo, como si la serie nos susurrara: sí, pudo ser distinto… pero solo en un sueño…
   
  
  
    
    
      
      13
      Agosto
        
      2023
    
    Instalar Ruby 3 en macOS
Llevó un tiempo en un proyecto que utiliza la version 3 de ruby, y no había tenido mayor dificultad, hasta que me toco instalarlo en mi Macbook Pro con M2.
Estuve intentando con homebrew, utilizando RVM, pero generaba un error de OPENSSL, así que me decanté por utilizar rbenv.
Para instalar rbenv, se debe ejecutar el siguiente comando:
brew install rbenv ruby-build
Luego de instalar rbenv, se debe agregar la siguiente linea al archivo ~/.zshrc:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Luego de agregar la linea al archivo ~/.zshrc, se debe ejecutar el siguiente comando:
Luego de ejecutar el comando, se debe instalar la version de ruby que se desea, en este caso la version 3.0.6:
Luego de instalar la version de ruby, se debe establecer la version de ruby como la version global:
Luego de establecer la version de ruby como la version global, se debe verificar la version de ruby:
Y listo! Ya se tiene instalado ruby 3 en macOS.
   
  
  
    
    
      
      10
      Agosto
        
      2023
    
    Configurar php-mcrypt on macOS, usando MAMP.
Mcrypt es una biblioteca de cifrado que se usa en PHP. Que si bien su uso ya está obsoleto, aún hay aplicaciones que lo requieren. Es por eso si lo necesitas, aquí te dejo los pasos para instalarlo en macOS.
Para configurar php-mcrypt en macOS, se debe seguir los siguientes pasos:
Instalación usando Homebrew y PECL.
# Instalación con PHP nativo de macOS
brew install mcrypt
pecl install mcrypt-1.0.3
Para usar PECL en una version especifica de PHP de MAMP, se debe usar el siguiente comando:
# Instalación con version especifica de PHP de MAMP, en este caso la version 7.4.33
/Applications/MAMP/bin/php/php7.4.33/bin/pecl install mcrypt-1.0.3
Luego de instalar mcrypt, se debe agregar la extension en el archivo php.ini de la version de PHP que se esta usando.
# Abrir el archivo php.ini
/Applications/MAMP/bin/php/php7.4.33/conf/php.ini
# Agregar la siguiente linea al final del archivo
extension=mcrypt.so
Luego de agregar la extension, se debe reiniciar el servidor de MAMP.
# Reiniciar el servidor de MAMP
/Applications/MAMP/bin/start.sh
 
  
  
    
    
      
      5
      Agosto
        
      2023
    
    Esquinas redondeadas en Flutter en imagen
Para redondear las esquinas de una imagen en Flutter, se puede usar el widget ClipRRect que recibe como hijo un Image.network y como parámetro borderRadius recibe un BorderRadius.circular(20).
ClipRRect(
    borderRadius: BorderRadius.circular(8.0),
    child: Image.network(
        subject['images']['large'],
        height: 150.0,
        width: 100.0,
    ),
)
Tambien se pueden hacer con el Widget CircleAvatar.
//Usando CircleAvatar
CircleAvatar(
    radius: 50.0,
    backgroundImage: NetworkImage(
        subject['images']['large'],
    ),
)
//Usando ClipRRect
ClipOval(
  child: SizedBox.fromSize(
    size: Size.fromRadius(48), // Image radius
    child: Image.network('imageUrl', fit: BoxFit.cover),
  ),
)
//Usando border 
CircleAvatar(
  radius: 56,
  backgroundColor: Colors.red,
  child: Padding(
    padding: const EdgeInsets.all(8), // Border radius
    child: ClipOval(child: Image.network('imageUrl')),
  ),
)
Container(
  padding: EdgeInsets.all(8), // Border width
  decoration: BoxDecoration(color: Colors.red, shape: BoxShape.circle),
  child: ClipOval(
    child: SizedBox.fromSize(
      size: Size.fromRadius(48), // Image radius
      child: Image.network('imageUrl', fit: BoxFit.cover),
    ),
  ),
)
Esquinas redondeadas.
ClipRRect(
  borderRadius: BorderRadius.circular(20), // Image border
  child: SizedBox.fromSize(
    size: Size.fromRadius(48), // Image radius
    child: Image.network('imageUrl', fit: BoxFit.cover),
  ),
)
//Con border
final borderRadius = BorderRadius.circular(20); // Image border
Container(
  padding: EdgeInsets.all(8), // Border width
  decoration: BoxDecoration(color: Colors.red, borderRadius: borderRadius),
  child: ClipRRect(
    borderRadius: borderRadius,
    child: SizedBox.fromSize(
      size: Size.fromRadius(48), // Image radius
      child: Image.network('imageUrl', fit: BoxFit.cover),
    ),
  ),
)
 
  
  
    
    
      
      4
      Agosto
        
      2023
    
    Cuando se trata de construir aplicaciones o software, adoptar un enfoque centrado en un Software Development Kit (SDK) desde el principio puede ser la clave para desbloquear un camino de desarrollo más eficiente y exitoso. Un SDK no solo es una herramienta poderosa, sino que también puede ayudar a los desarrolladores a crear aplicaciones más rápido y con menos errores.

SDK antes que el desarrollo
El poder iniciar primero programando el SDK, nos permite tener una visión más clara de lo que se quiere lograr, y de cómo se quiere lograr. Esto nos permite tener una mejor idea de los requerimientos de la aplicación, y de cómo se va a comportar.
Ventajas
  - 
    Eficiencia y Consistencia: Al basar tu desarrollo en un SDK, te beneficias de una estructura predefinida y un conjunto de herramientas coherentes. Esto acelera el proceso de creación, ya que gran parte de la funcionalidad básica ya está disponible y probada. En lugar de comenzar desde cero en cada proyecto, puedes aprovechar la base del SDK, lo que te permite concentrarte en las características únicas y diferenciadoras de tu aplicación. 
- 
    Compatibilidad y Escalabilidad: Un buen SDK está diseñado para ser compatible con múltiples plataformas y sistemas. Esto significa que tu software tendrá una mayor probabilidad de funcionar sin problemas en diferentes entornos, lo que reduce la necesidad de reescribir o ajustar el código para cada plataforma. Además, a medida que tu proyecto crezca, la estructura del SDK facilita la expansión y la incorporación de nuevas funcionalidades de manera más organizada. 
- 
    Mejores Prácticas y Actualizaciones: Los SDK a menudo incorporan las mejores prácticas de desarrollo y se actualizan regularmente para adaptarse a las tendencias tecnológicas cambiantes. Al seguir estas prácticas y mantener el SDK actualizado, te aseguras de que tu software esté alineado con los estándares actuales y sea más seguro contra vulnerabilidades. Además, las actualizaciones del SDK pueden agregar nuevas características y mejoras, lo que te permite mantener tu aplicación fresca y relevante. 
- 
    Soporte y Comunidad: Muchos SDK tienen comunidades activas de desarrolladores que comparten conocimientos, resuelven problemas y ofrecen soluciones. Esto crea un entorno colaborativo donde puedes obtener ayuda y aprender de otros expertos en el uso del mismo SDK. Además, el soporte técnico proporcionado por el equipo detrás del SDK puede ser inestimable para superar obstáculos y optimizar tu proceso de desarrollo. 
En última instancia, desarrollar con un enfoque en un SDK desde el principio es una estrategia inteligente para impulsar la eficiencia, la calidad y la innovación en tus proyectos. Al aprovechar las ventajas de un SDK, estás posicionando tu software en una base sólida para un crecimiento exitoso y una experiencia del usuario excepcional.