Probando Krita nuevamente

CLIP Studio Paint 1.10 dejó de funcionar con WINE en Linux, justo cuando agregaron soporte para SVG (¡buah!). Como ahora el futuro de CSP en Linux me es incierto, estoy volviendo a probar Krita (más seriamente que antes) para determinar si es una alternativa viable.

Muchas cosas que me funcionaban a medias con CSP ahora funcionan: copiar y pegar del clipboard (usaba un script para convertir de PNG a BMP y viceversa), la punta secundaria del lápiz de la tableta Wacom, un inicio más rápido (no hay WINE qué levantar), entre otros. Krita tiene bastantes características interesantes que no tiene CSP, pero también tiene varios bugs y en general todavía le falta pulir muchos detalles básicos. Lo peor de todo es que más de una vez he tenido crashes, lo cual es inaceptable.

Como la mejor forma de aprender algo es aplicándolo en un proyecto real, “calqué” y pinté este dibujo del manual de instrucciones de un modelo a escala del VF-1 de Revell, que mi hermano y yo tuvimos de chicos.

Libro 14 del 2020: The Lightning Thief por Rick Riordan

Decidí leer algo ligero a continuación y escogí The Lightning Thief viendo que tiene hasta una película adaptada. Hasta entonces no sabía nada sobre la saga de Percy Jackson, pensé que era una historia para “young adults” como The Hunger Games, pero es para un público de menor edad.

Jueves, Octubre 22, 2020

  • Leyendo samples de libros del Kindle, aún no decido qué leer a continuación. A propósito, los samples del Kindle son el tesoro mejor guardado; son una excelente forma de probar toda la librería de Amazon gratis. De hecho, entre libro y libro leo docenas de samples para escoger mi siguiente compra.
  • Leyendo sobre procedural generation. Estoy interesado (otra vez) en programar un juego en modo texto tipo Laser Squad con influencias de X-COM, Nethack, Dwarf Fortress y los juegos modo texto de Lance Haffner.
  • Probé soldar un conector 3.5mm stereo, pero al parecer el cable tiene otro problema, el canal derecho suena muy bajo. Usé Renoise para hacer un sonido que se desplace de izquierda a derecha par confirmar. Revisé doble, triple y cuádruple mi soldadura y está bien, creo yo.
  • La batería de mi Huawei P9 Lite está fallando. Salta de 100% a 60%. Como estoy en casa debido a la pandemia no es tanto problema, pero necesitaré reemplazarlo pronto.
  • Le pedía mi esposa que compre papel celofán rojo y azul para hacer gafas 3D para los chicos. Mi prototipo funciona, pero el lado rojo necesita doble papel porque no es lo suficientemente oscuro, y se ve muy borroso. Dibujé una escena de dinosaurios con varios niveles de profundidad y Thalía se sorprendió con el efecto 3D.

Jueves, Octubre 15, 2020

  • Leyendo nuevamente el manga de Akira. Sin lugar a dudas un clásico y una obra maestra.
  • Escuchando el álbum My Fiero de Mesu Kasumai, son covers chiptune-ish de hits de los 80s.
  • Les recomiendo ver A Framework Author’s Case Against Frameworks, por Adrian Holovaty (el autor de Django).
  • Estoy escuchando varios podcasts de Fullstack Radio de Adam Wathan. Como son audio y no texto, es difícil encontrar bloques de tiempo sin interrupciones para escucharlos, pero son muy buenos. Ojalá pudiese escuchar más.
  • Estamos pasando días agitados en lo que concierne a la salud. La lista de personas por quienes oramos en familia se hace cada vez más larga.
  • Jugando Nethack. Creo que cometí un error.

Jueves, Octubre 8, 2020

  • Uff, estuvo buenazo el libro Advanced Web Application Architecture. Lo estoy leyendo de nuevo, tomando notas y modificando mi arquitectura.
  • A pesar de mis esfuerzos por conciliar Laravel y Domain-Driven Development, he aceptado que luchar contra el framework es una batalla donde salir victorioso implica perder todas las ventajas del framework. Adoptaré algunos conceptos de DDD (e.g. Value Objects) pero sin pelear con el framework (Value Objects en Eloquent es no no no).
  • Ya no estoy usando Form Requests, no me gusta estar dependiendo de un paquete externo para hacer testing. Estoy manejando la validación de los datos del Request en una clase aparte. Manejaré la autorización con Middlewares, eso es algo que aún no he implementado.
  • Luego de muchas indecisiones sobre el namespace para el “core” de mi aplicación, ayer definí de una buena vez por todas y de manera irrevocable cuál sería. Long story short, es Domain. Ya no habrá más cambios. He dicho.
  • Y a pesar que me gusta el Command Bus, para no desviarme mucho del “standard” de Laravel, estoy usando Services, aunque he adoptado el nombre de Actions como los tíos de Spatie, siendo la razón de peso el diferenciarlos de los Domain Services.

Libro 13 del 2020: Advanced Web Application Architecture por Matthias Noback

Advanced Web Application Architecture es un excelente libro sobre arquitectura de aplicaciones web con PHP (aunque los principios pueden aplicarse en otros lenguajes).

Muchos libros o recursos sobre Domain-Driven Development o arquitectura de software explican conceptos aisladamente, y al ponerlos en práctica no queda claro cómo encaja todo. En este libro, Matthias Noback explica cómo todo funciona en conjunto usando ejemplos reales. Muchas preguntas que tenía encontraron respuesta y descubrí cosas que había entendido mal.

Cuando Matthias escribía sobre Excepciones, me preguntaba: “¿Las Excepciones no deberían ser para situaciones excepcionales?” Dos páginas más adelante, contestó exactamente esa pregunta. Es bien completo, bien escrito y bien organizado. Lo recomiendo bastante.

Octubre 1, 2020

Me resulta más fácil escribir a lo Michael Meeks que concentrarme en un solo tema lo suficientemente interesante. Jamie Tanna tiene un estilo similar, publicando por semanas, pero yo estoy queriendo hacerlo más a menudo.

El único “problema” es qué título ponerle a mis posts. Por esta vez le pondré la fecha, como lo hacía aaaaaños atrás.

  • He terminado de migrar la parte pública de mi Journal Comic a Laravel.
  • Para implementar validaciones en un Value Object usé beberlei/assert, pero la API no era como lo recordaba, y la documentación no me era familiar. ¿Una nueva versión con BC break? Esa noche antes de dormir descubrí que la librería que yo había usado antes era webmozart/assert. Fue muy gracioso.
  • Y si tienen problemas como yo para hacer unit testing de Form Requests de Laravel, mohammedmanssour/form-request-tester es un excelente paquete que te alivia la vida. A veces la magia de Laravel complica demasiado las cosas.
  • En realidad, no ando muy convencido del concepto de Form Requests y la validación en general en Laravel. Ugh, necesito mi tech blog para explayarme. :)
  • Estoy leyendo ahora Advanced Web Architecture de Mathias Noback. Hasta ahora está buenazo. Tras leer tantos libros teóricos sobre DDD o que hablan aisladamente de conceptos de DDD, es genial tener un libro super práctico con código y situaciones del mundo real. Aún no lo he acabado, pero está muy, muy bueno.
  • La semana pasada Thalía y yo vimos The Old Guard. ¡Bastante entretenida! Thalía lo disfrutó más que yo porque no sabía nada de la trama, mientras que yo había visto el trailer mientras escogía qué ver.
  • Anoche vimos Enola Holmes. Me gustó mucho, sobre todo el color grading. Varios cuadros parecían pinturas. Cierto, tengo que buscar la bella música del tercer acto.
  • De la nada recordé la escena del tren de Super 8. El diálogo de Alice es genial.
  • Y llegamos a Octubre.

Fira Code, Miramare, Laravel y DDD

Oh, hey, me está gustando escribir a lo Michael Meeks, me hace recordar la vieja época de los blogs y los diarios en Advogato (que ya no existe, gasp!). Espero que algún día tomemos más consciencia sobre los peligros de las redes sociales y regresemos a los blogs y el control de nuestro contenido.

  • Oliver usa Fira Code como font de programación. Lo estoy probando también y me está gustando. No estoy convencido que los ligatures sea buena idea y Vim no los soporta de todos modos. Me gusta todo lo demás del font, especialmente el cero con slash (y no un puntito al centro como otros fonts). La Sinclair ZX81 tenía el cero así, y para mí es el “cero computadora.”
  • Tengo un nuevo colorscheme favorito de Vim, Miramare.
  • Estoy volviendo a leer la serie de blog posts de Brent Roose sobre proyectos grandes con Laravel y contrastándolo con la arquitectura que he armado yo. A diferencia de Brent, mis modelos son intencionalmente anémicos, porque es antinatural implementar un Domain Model usando objetos de Eloquent. He dicho.
  • Hace tiempo estoy queriendo crear un nuevo blog para escribir exclusivamente de cosas técnicas y programación. Como que ya debería darle prioridad, ¿verdad?
  • Y acabo de recordar que tengo en deuda escribir un blog post sobre qué me gusta de Laravel.