Menú
Luego de muchas vueltas (tanto de tiempo como de la vida), finalmente puedo dar vida a este pequeño espacio en la web. He aquí una breve bitácora de aquello.
Publicado lunes, 4 de enero de 2021
Hace mucho tiempo le estuve dando vueltas de tener un pequeño espacio para escribir y mostrar mi trabajo. ¿Qué tanto tiempo? Bueno, gracias a la máquina de tiempo llamada Git puedo volver a ver a los commits del primer intento: 5 de marzo del 2017.
Dicho proyecto estaba basado en Mezzanine, un fork de Django (Python) con un backend dedicado al CMS, con todo el paquete de funcionalidades que conlleva.
Pero… ¿Por qué ocupar algo que nadie conoce, cuando existe mejores alternativas como Wordpress?
También me hice la misma pregunta, y de verdad la respuesta es un verdadero capricho: no quería tocar PHP.Y por otro lado estaba familiarizado con Django luego de haber hecho mi trabajo de titulación en dicho framework.
Off-topic: de hace mucho no había hecho una retrospectiva, y esto me ha hecho ver como ha pasado el tiempo, y como también he cambiado mi perspectiva como dev y programador.
¿Cómo me fue con el proyecto? En resumen: mal. A pesar de que el hype estuvo en mí harto tiempo y logré hacer avances consistentes, nunca pude llevar el proyecto a buen puerto por ciertos (un tanto absurdos) motivos, pero que me permitieron aprender a tener más ojo en ciertos aspectos al empezar un proyecto.
Primero, la falta de manejo de ciertas tecnologías: una cosa es subir tener tu proyecto en local, y otra completamente opuesta es subirlo a la nube (como Heroku o AWS) , y además que en el segundo escenario todo falle por no poder inicializar el proyecto, es un desastre — si no mal recuerdo, era por la DB o archivos estáticos, algo en la configuración. Y He de varias lecciones, como tener más ojo con la documentación (que exista), ya que la falta de popularidad del proyecto hacía difícil encontrar pares que hayan tenido los mismos problemas; y otra lección, es el como subir proyectos a cada cloud y como se comportan, - siguiendo la analogía del cañón para matar moscas – y en este caso yo tenía un perdigón que quería poner en una bazooka para matar una hormiga.
Segundo: querer empezar un template desde cero a partir del backend no es siempre la mejor idea — es buena en plan de aprender y demostrar algo propio, pero es poco práctico. Sumado a que tendría que usar HTML para el template (Jinja solo hace de complemento al lenguaje) y CSS para los estilos (no tenía dominado SASS entonces), todo se volvió un spaghetti de código en poco tiempo, y eso se convirtió en un proyecto que yo mismo no quería mantener ¡sin aún haberlo lanzado!
Y de eso otro par de lecciones: no mezclar el desarrollo front y back en una misma línea de trabajo (proyecto y framework), y abrazar las nuevas innovaciones, principalmente en los frameworks Javascript para levantar Universal Web Apps (básicamente desacoplar el front y el back).
Al final ese proyecto murió por inanición.
Pero, luego de un largo letargo (¡2 largos años!)…
Entre tantos frameworks progresivos, Vue(Js) me cautivó por su sencillez y flexibilidad, pero personalmente lo rescato por dos cosas:
— Es el archienemigo de Angular: O sea, noes tan así, pero digamos que sí: Evan You creó Vue luego de su estadía en Google desarrollando Angular, y con la idea de hacer un framework más sencillo y versátil es que nació Vue. Y la comunidad lo ha recibido con muy buenas manos.
— Versatilidad: Siendo un veterano de jQuery (había trabajado sus buenos años ya), ya sentía que era hora de explorar nuevas fronteras y usar lo que los lolos llaman ‘Componentes reactivos’, y dado que estaba estancado en un proyecto fullstack (Rails), Vue se plantó como una alternativa a usar un framework nuevo sin tener que romper algo. ¡Y funcionó! – espero subir luego una entrada en el portafolio mostrando eso.
Y luego de todo eso, ya me casé con Vue, y parece que no ha sido una mala elección, al menos en el corto plazo.
Con Vue, de la manito llegó Nuxt, haciendo que todo el paquete de tecnologías para frontend fuese amigable: mejor manejo de templates (Pug y Sass), componentes, plugins (de Vue y Nuxt), y mucho más — aprendiendo muchas lecciones. Lo cual, entre pruebas de trabajo y tutoriales, me puse manos a la obra. Pero ¿El backend? ¿Volvería a Wordpress esta vez o elegiría otra opción? Buscando ‘algo’ que puédase satisfacer la necesidad técnica, llegé al termino ‘CMS headless’ (básicamente CMS sin front, solo una API que consumir), y a su vez me llevó a Prismic.
Con todo el pack listo para armar, me puse manos a la obra: desde entendiendo de como usar las querys de Prismic a través de la página ‘home’, pasando por crear las secciones (empezando por el blog), adaptando los estilos para la versión móvil, actualizaciones de módulos, hasta añadir librerías de carruseles para las imágenes.
Y en el entretanto debía lidiar con la subida a un servidor, lo cual, sorpresivamente fue sencillo: Montarlo en Google Cloud, a través de App Engine, fue una cosa de minutos: hacer build, subirlo al proyecto usando el CLI de Google Gloud, y conectarlo al DNS. O sea, requirió un par de intentos para que todo estuviese bien conectado, pero no requirió días de trabajo como lo fue con Django. En este punto, aprendí otra lección más.
El desarrollo no fue continuo ni holgado, pero dentro de todo llegar a este punto a sido un gran cumplimiento para el objetivo inicial que tenía propuesto: levantar mi propio sitio web hecho con mis propias manos (al menos el front). Y si lo veo a la distancia, los servicios en la nube en los cuales dependía no cayeron ni me cerraron la cuenta, cada vez que retomaba el proyecto podía hacerlo sin estudiar el código desde cero, y nunca perdí el foco en lo que pretendía hacer, así que considero este desarrollo una gran victoria.
Si bien esta intro técnica al sitio podría distar mucho de una bienvenida emocional a lo que sería un proyecto alcanzado (no 100% completado aún, pero se sigue trabajando), ya habrá espacio para escribir distendidamente acerca de otros temas, ya que nada mas importa porque ya tengo mi sitio en línea.
¡Feliz blog nuevo!
Con 🍫 desde Santiago, Chile
ChocoChipsLab 2023