Watch the video

Hay canciones que no escuchas: te encuentran.

No llegan cuando estás bien, llegan cuando ya pasó el ruido y solo queda ese frío raro que no se quita aunque el calendario diga otra cosa. Te veo a la vuelta es una de esas canciones. No intenta animarte. Solo se sienta contigo, y te hace compañía en silencio, te dice al oido entre notas, que hay amores que no se superan, solo se archivan con cuidado, esperando que algún día puedan volver, o bien, puedan sentirse sin doler tanto.

José Madero no escribe desde la nostalgia cómoda, sino desde la contradicción: querer avanzar mientras algo adentro sigue detenido.

Es una canción que desde la primer escucha me atrapó, y me hizo recordar esa sensación de pérdida que a veces se siente como un eco en la distancia.

“Veo nevar… pero, según, ya es primavera”

No es tristeza explícita, es desconexión emocional, ese estado en el que sabes que deberías sentir algo distinto, pero no puedes.

“He entrado al cuadro de honor… Pues ya rompí otro corazón”

No se dice desde el orgullo ni desde la culpa. Se dice desde la aceptación.

“Si es verdad, te amo mucho más / Que el día de ayer, te veo a la vuelta”

El amor sigue ahí, aunque el tiempo y la distancia hayan hecho su trabajo. No se va, solo se posterga, es una promesa firme, es una esperanza incondicional.

“Voy a negociar eso de resucitar”

El cariño y añoranza por alguien hasta volverse muerte emocional, y aún ahí, la esperaza es llevada al límite, ir hasta el mismo infierno si hace falta, con tal de intentarlo de nuevo, porque se de buena fuente que se puede morir, y resucitar para buscar hacerlo mejor, hacerlo correcto.

Y cuando todo parece listo para cerrar, la canción se niega.

“Algún día, quizá”

Como quien deja una luz encendida en una casa vacía. No con la certeza de volver, pero si para hacer una declaración, lo haré mejor la próxima vez.

Te veo a la vuelta no ofrece consuelo.

Ofrece verdad y compañía.

Y sin embargo, a veces, el universo insiste y conspira, y esa luz tenue hecha versos rotos, puede volver a brillar e iluminar lo que creíamos perdido.

Y si Spike hubiera sobrevivido? Un final alternativo para Cowboy Bebop

image

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…

Instalar Ruby 3 en macOS

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:

source ~/.zshrc

Luego de ejecutar el comando, se debe instalar la version de ruby que se desea, en este caso la version 3.0.6:

rbenv install 3.0.6

Luego de instalar la version de ruby, se debe establecer la version de ruby como la version global:

rbenv global 3.0.6

Luego de establecer la version de ruby como la version global, se debe verificar la version de ruby:

ruby -v

Y listo! Ya se tiene instalado ruby 3 en macOS.

Configurar php-mcrypt on macOS usando MAMP

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

Flutter rounded corners

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),
    ),
  ),
)