Semana 38, 2020

Hoy bloguearé al estilo Michael Meeks.

  • La gran noticia es que ¡tengo nuevo empleo! Estoy trabajando para Melvi haciendo desarrollo backend.
  • Escuchando Modern Closure de 4mat. Es mi nueva música de fondo mientras programo. Mi pista favorita es The Edge of the Wheel. Me pregunto cuál será la historia detrás del nombre.
  • Luego de años, estoy volviendo a usar la técnica Pomodoro. Me está funcionando mejor esta vez.
  • La semana pasada he reiniciado mis ejercicios, luego de dejarlos por la tendinitis. De a pocos volveré a mi ritmo usual; el primer día fue difícil.
  • He decidido pausar mi Journal Comic y mi Daily Sketch hasta adaptarme al nuevo ritmo.
  • Vi el trailer del próximo remake de Dune. Por fin algo prometedor luego de la decepción de Foundation.
  • Ando devorando Laravel, armando una estructura DDD y en conflictos existenciales con Eloquent (es un ORM con el patrón Active Record).
  • El algoritmo de recomendaciones de YouTube está empecinado en venderme un Korg Kronos.
  • Vacunaron a Declan y estuvo sintiéndose mal por 2 días, pero gracias a Dios ya se siente mucho mejor.

Setiembre 2020

Y llegamos a Setiembre. Es increíble mirar hacia atrás y ver cómo hemos cambiado tanto y en tan poco tiempo a raíz del COVID-19. En Marzo, al iniciarse las medidas restrictivas en Perú, muchos pensaban que duraría los 15 días anunciados. Otros, un mes o dos meses. Yo, muy pesimistamente, pensaba que en Setiembre recién saldríamos de esto. Pero aún mi peor pronóstico fue errado, estamos Setiembre y no tengo intenciones de volver a predecir cuándo saldremos de esto.

Mi familia y yo estamos sobrellevando esto con la ayuda y provisión del Señor. Cada día es un reto. Se que hay hogares — y lugares que no son hogares — donde este encierro es una tortura intolerable. Donde cohabitar es sinónimo de conflicto, abuso y hasta peligro. Donde un pequeño accidente puede colapsar por completo la inexistente estabilidad económica familiar. Donde la palabra «aislamiento» significa permanecer a solas en el completo y literal sentido de la palabra.

Mi oración a Dios es para todos ustedes.

Don’t get stuck

Don’t get stuck

My decision to leave was final though. It wasn’t a financial one, in fact I was just about to get a significant raise and more responsibilities. It also wasn’t a relational one, I really appreciated all of my colleagues back then; I’d even call some of them good friends.

I decided to leave because I got stuck, there wasn’t any room to grow anymore. The perspective of being a developer who’s 5 years behind of modern day practices made me miserable.

Tuve una tendinitis

Al finalizar Julio tuve una tendinitis en el trapecio, tenía todo el cuello y brazos adoloridos, entumecidos y duros. He estado casi cuatro semanas imposibilitado de trabajar, usar la computadora o cualquier otra tarea que implique usar los brazos. He tenido que guardar reposo. Pensé que con una semana o dos estaría ya recuperado, pero me empecé a preocupar cuando no veía ningún progreso. El doctor ordenó terapia física y allí empece a mejorar notablemente.

Gracias a los que estuvieron orando por mí. Me siento mucho mejor, aún no 100% recuperado, pero ya puedo usar la computadora nuevamente, tomando descansos. Todavía tengo una o dos sesiones más pendientes de terapia física.

Mientras estuve en cama aproveché en ponerme a estudiar, leer libros y ver videos en YouTube sobre Arquitectura de Software, Laravel, Symfony, Laminas y CSS. Esperaba llenar algunas lagunas de conocimiento que me faltaban de CSS y ahora mi lista ha crecido (¿qué es box-sizing? ¿qué hace border-collapse?).

Y también dormí, jeje. Mucho. Los relajantes musculares me daban sueño. Me di cuenta que en mi rutina diaria estaba sacrificando sueño para hacer mis cosas temprano, pero no me estaba haciendo bien. He corrido mi hora de despertarme. El sueño es muy importante. Lo que creía ganar en tiempo lo estaba perdiendo en calidad de vida.

Doy gracias al Señor por mi recuperación. Ya el próximo mes volveré a hacer ejercicios y dibujar. Vamos con calma, lento pero seguro.

Sobre flojera e invitaciones de Zoom

Una de las «virtudes» de todo buen programador es la flojera. Y es que los programadores, al encontrarse con una tarea repetitiva o lenta, tienden a preguntarse: «¿Cómo podría hacer esto más automático/rápido/eficiente/barato/divertido?» Tenemos muy poca tolerancia a la ineficiencia.

Se los ilustro con un caso mío reciente.

Para las reuniones de mi iglesia usamos Zoom. Yo me encargo de agendar y enviar las invitaciones para cada reunión (no usamos reuniones recurrentes).

Zoom genera un texto que puedes copiar y pegar para compartir con otros todos los datos pertinentes de la reunión, así:

Mi cuenta de Zoom está en inglés, si quisiera generarla en español tendría que cambiar el lenguaje a toda mi cuenta. Por otro lado, hay ciertos detalles, como la presentación de la fecha y la hora que prefiero cambiar. Como esto es algo que hago 5 veces o más a la semana, decidí poner patas a la obra.

Siendo flojo, ni siquiera miré la API de Zoom. Zoom te permite copiar con un solo click el texto de la invitación. Mi estrategia fue trabajar sobre la base de tal texto.

Programé un script que extrae los datos pertinentes (regexp magic!) y escribe a STDOUT la invitación en español y con el formato que quiero.

Siguiendo la filosofía Unix («Expect the output of every program to become the input to another») hice un segundo script que lee el portapapeles, lo envía al script «traductor» y reescribe el portapapeles con la nueva invitación.

Mi operación final es:

  • Copiar la invitación desde Zoom al portapapeles (un click).
  • Ejecutar mi script.
  • Pegar la invitación al grupo de WhatsApp de mi iglesia.

Sé que podría automatizarse todavía más, pero me da flojera.

Terminé el curso «A Focus on Time» de Shawn Blanc

En Abril terminé «A Focus on Time,» un curso de manejo de tiempo creado por Shawn Blanc.

El curso consiste en 33 lecciones que están en formato de video y texto. El acceso a todas las lecciones es inmediato (no te lo sueltan de a pocos, ni están bloqueados bajo alguna condición). Puedes tomar cada lección de forma independiente, aunque algunas se construyen sobre la base de lecciones anteriores.

Les comparto dos lecciones que me ayudaron:

  • «Utilizing themed days for focus» (Sesión 27) donde designas un día para enfocarlo en sólo un proyecto o un grupo de tareas relacionadas (e.g. pago de servicios, responder correos).
  • Con «Minimum and maximum time allowances» (Sesión 10), aprendí a definir un máximo y un mínimo de tiempo. Por ejemplo, máximo 30 minutos al día para chequear el correo y mínimo 30 minutos al día para leer la Biblia y orar.

Lo recomiendo bastante.