Renovando FaztWeb 2021

Cuando cree mi sitio web personal llamado faztweb.com hace ya varios años, este inicialmente estaba conformado por un simple texto, con una imagen de fondo y algunos enlaces sociales. Pero actualmente este sitio cuenta con una REST API, un frontend compuesto por multiples páginas (Multi-Page Application) y muchas ideas (aplicaciones móviles y comunidades) que por una mala administración de mi tiempo, no he podido terminar lamentablemente.

FaztWeb.com

Bueno, eso fue así hasta el día de hoy, en el que me he encontrado en la situación de tener que actualizar mi sitio web, y aunque no es algo que da para poder hablar mucho, creo que como mínimo me permite comentarles un poco de como trabajo en mi día a día y como me he visto forzado a tener que actualizar mi web.

Veran, una de las razones por las que no puedo darme el tiempo de poder hacer todo (crear videos, atender redes sociales, llevar proyectos, responder correos y mejorar mi web), es porque muchos de los proyectos de software que llevo actualmente, consumen mucho tiempo, tanto en desarrollo y aprendizaje. Esto me lleva a que, a diario cuando trabajo, debido a la enorme cantidad de tareas que debo realizar, me veo forzado en desarrollar varios proyectos a la vez, como forma de no aburrirme y para luego no preocuparme de que no estoy avazando lo suficiente. Es decir, en la práctica uso dos computadores, cada uno conectado a distintos servidores y abriendo varios proyectos a la vez, además de contar con un software personal que me ayuda a recordar mis tareas; todo esto con el fin de que mi trabajo sea divertido y poder ir liberandome de carga. Esto es simple para mi, pero juego con un riesgo; el riesgo de que cuando me equivoque si no estoy lo suficientemente concentrado no podre enteder al momento que hice mal. Es decir el llevar un solo proyecto ya es cuestion de prestar atencion, imagina ir avanzando con varios de esos al mismo tiempo.

Y Por si te lo preguntas, no es que avance con una mano en cada teclado, sino es que en lo personal prefiero dejar ejecutando alguna tarea en un computador, y cambio a otro computador, para ir desarrollando, mientras un programa que tengo me va listando las tareas que ya habia apuntado previamente. es un metodo personal que uso para tratar de disminuir esos pequeños lapsos de tiempo en el que se tiene que esperar a a que algo termine para continuar. no es perfecto, pero es mejor a tener que esperar y demorarme una eternidad en crear varios proyectos. A futuro espero optimizar mejor esto con algun tipo de asistente inteligente, pero por ahora estoy tan ocupado, que eso solo seria más trabajo, ironicamente.

Pero relacionado a esto de que "existe mas riesgo de que me equivoque" fue lo que me paso el día de ayer con mi web. El día de ayer Mientras estaba desplegando y configurando el cluster de una aplicación de un cliente, y actualizando el codigo de otro, recordé que habia pasado muchos meses desde la última vez que actualicé faztweb.com, asi que tuve la mala idea de conectarmente al servidor e intentar actualizar el sistema y el proyecto, además de cambiar algunas configuraciones.

El proyecto actual de faztweb es un proyecto simple, pero que debido a que no es una prioridad para mi, es difícil tener en mente en que parte del código me quedé. Y a pesar de que intento documentar un poco el proyecto, aun así es algo tedioso de mejorar para mi, sobretodo porque usa tecnologías que no son herramientas que me den muchas ganas de codear y es código que se ha ido incrementando en tamaño pero no en calidad durante bastante tiempo. Es decir, el proyecto que han visto durante mucho tiempo es una MPA, un sitio web dinamico con multiples páginas que hace uso de Express, Nodejs, Handlebars, Mongodb, Redis, Nginx, Docker, PM2, y cuenta con una REST API, APIs de terceros e incluso su propia API de GraphQL internamente. Es decir paso de ser una simple página HTML a un pequeño CMS personal, a medida que transcurrio el tiempo, todo porque me lo tome como un hobby.

Tenia muy buenas ideas con este proyecto, pero debido a que soy una sola persona y como ya les comenté faztweb.com no era una de mis prioridades, no he podido llegar a concluir muchas ideas. Y aunque inicialmente trate de trabajar con otras personas, el simple hecho de que muchas de ellas les interese mas el sueldo que el proyecto me motiva aún mas a hacerlo solo. de esta manera el proyecto, algun día se podra convertir en algo más y no puramente en un negocio. esto me gustaria hablarlo en otro post, o porque no, hasta en un video, pero para dejarlo claro, hasta este momento no encuentro a muchas personas que realmente les guste hacer su trabajo, sino personas que les gusta mas el incentivo, que el propio trabajo. Y de nuevo no quisiera convertir faztweb en una aplicación de venta de cursos especificamente, me gustaria mantenerlo como mi juguete personal por ahora.

Bueno volviendo al tema, el proyecto de Faztweb esta conformado por varios servidores, uno de producción para el frontend, otro de la base de datos, y otro para hacer pruebas. Algo bastante típico en desarrollo, y aunque no parezca nada complicado de administrar por separado. En fin, ayer intenté conectarme al servidor del Frontend de faztweb, pero el inconveniente que tuve, es que debido a que cambié de computador hace algunos meses atras, el nuevo PC no tenía acceso al servidor al no poseer esta la llave publica SSH, así que tuve que solicitar acceso al servidor a traves de una contraseña, y usar la consola del provedor de servicio que en mi caso es digitalocean para poder volver a entrar; que por si no lo sabian el añadir una clave ssh desde aqui es algo tedioso, porque no puedes copiar y pegar simplemente, sino que tienes que subir tu llave publica SSH a algun lugar, descargarlo dentro del servidor, cambiar la configuración del servidor SSH, clonarla a un nuevo usuario, y hacer otras pequeñas, pero molestas tareas más.

En fin un proceso que si te enfocas en esto nada mas, te puede tomar algunos minutos. Sin embargo, en mi caso mientras hacia esto, estaba obteniendo algunos errores en otra aplicación de mis clientes, y al estar enfocado en estos, cambie casi sin pensar, a la consola de faztweb, y tipee mas rápido de lo que pensé, ejecutando de manera erronea un comando que copia la carpeta .ssh usando el comando rsync desde un usuario invitado al usuario root, cuando quería hacer lo contrario. Esto ocasionó un error conocido como kernel panic, ropiendo la conexion SSH, y dejandome fuera del servidor, ademas de no tener backups y olvidando que ya habia cambiado el codigo del respositorio de este proyecto hace meses en github, y que probablemente daria un error con las actualizaciones si lo volviera a desplegar.

Es aqui donde realmente me puse a pensar si valia la pena recuperar el sitio y volver a ponerlo en ejecucion, es decir el código de este proyecto no es algo que me gustaba mantener, no habia herramientas que me causaran interes, y si lo volviera a poner en marcha estaria viendo el mismo sitio.

Entonces recorde que ya habia escrito codigo nuevo pero que no habia probado y dije porque no empezar de nuevo el proyecto, pero ahora trabajandolo todos los dias y ir mejorandolo continuamente. 

Esta era la idea inicial de Faztweb, crear un proyecto que en cualquier momento pudiera cambiar todo el stack y que me permitiera probar cosas nuevas. Es así como tome la decision de no volver a ejecutar el sitio. Pero si volviendo a plantear el proyecto y rehacerlo de una mejor manera y con nuevas funcionalidades.

Así que, para empezar el día de hoy, les comento como empieza el nuevo sitio, las cosas que estoy cambiando y otras modificaciones. Los cambios son los siguientes:

  • De MPA (Multi-Page Application) a SPA (Single Page Application - SSR). Anteriormente el proyecto hacia uso de Nodejs, Express y Handlebars para renderizar las vistas, pero esto ha cambiado y ahora estoy usando Nextjs junto con React para poder facilitarme la integración con la REST API y aprovechar el uso de JSX junto con Node, ademas de poder añadir progresivamente mas caracteristicias como un Bot, un chat, y la posiblidad de que se puedna logear y hacer comentarios, de una manera más fácil. En el proyecto anterior hacerlo con MPA, hubiera tomado mucho tiempo.
  • Concentrar el backend en tan solo una REST API y una API de GraphQL. Antes tenía que desarrollar el proyecto de Node conectado a Mongodb. Estos dias la aplicacion hara uso de APIs y esto me permitira eventualmente publicar una aplicación movil, ademas que me permitira eventualmente dividir la API en pequeños servicios (Microservicios) a medida que crezca.
  • Poder integrar facilmente a Servicios de Terceros. Usando las herramientas de MPA, es un poco tedioso hacer funcionalidades como crear una Newsletter, hacer una pagina de contacto y el poder integrarse con otras apis como la de Google Blogger, Mailchimp, SendGrid, Cloudinary o Youtube. Por otro lado, en Nextjs es mucho más facil ya que te permite hacer las peticiones tanto desde Backend (SSR) o desde Frontend (Static Site). De hecho algo que me facinaria hacer en bre es integrar alguna caracterisitica relacionada a alguna blockchain. ya les cometaré pronto por aqí y por el canal de Youtube. 


Un incio rápido del Nuevo Faztweb.com

En fin el proyecto es muy simple, y si bien al momento de escribir este es tan solo es un pequeño landing, la siguiente semana añadiré la forma de poder listar todo el contenido, luego la forma de proporcionarles un buscador para que encuentra más facil los temas, luego la facilidad de ser notificados, luego un bot integrado, luego la forma de registrarse y poder tener perfiles, luego un chat, y así.

Al menos aprovecho este post para decirles que estoy trabajando nuevamente en el sitio y pronto podrán leer estos posts e interactuar con ellos de una manera muy fácil a traves del nuevo sitio. Ya estoy preparando nuevos cursos, contenido, posts, podcasts y me entusiasma la idea de traerles nuevos temas como AI, Machine Learning, Blockchain, Criptomonedas, Python, Go, Rust, Web Assembly, y Quantum computing. Porque el cambio de mi sitio no solo significa cambiar la apariencia sino otro intento mas por organizarme y continuar con este sitio que me gusta desarrollar, para poder seguir compartiendo información. Sin más, gracias por darte el tiempo de leer y nos vemos muy pronto cuando publique nuevo contenido.  

Comentarios

  1. Muchas gracias por hacer más fácil la ruta de los que nos iniciamos en el mundo de la programación y ser tan generoso con tus conocimientos, que la vida te multiplique en éxitos todo lo que compartes.

    ResponderBorrar
  2. Gracias Fazt por tu esfuerzo y todo tu trabajo con el que sostienes a toda una comunidad de programadores novatos, como yo, y otros no tan novatos que gracias a ti se van actualizando. Éxito.

    ResponderBorrar
  3. increíble fazt, eso si es algo admirable, ojala saques adelante todos tus proyectos y a la vez logres sacar los que se quedaron en el tiempo, no te abrumes que la comunidad es paciente y sabrá esperar, además primero tu salud, un abrazo

    ResponderBorrar
  4. Muchas gracias Fazt yo aprecio mucho el trabajo que realizas al facilitar el estudio de herramientas de programación y espero primero Dios tengas éxito en tus proyectos y saludos desde México.

    ResponderBorrar
  5. Excelente tu predisposición, tus aportes, tus explicaciones, realmente de admirar tu devoción por enseñar sobre todos estos temas, la verdad te felicito y me saco el sombrero por tus amplios conocimientos. Saludos cordiales

    ResponderBorrar
  6. Muchas gracias! Fazts por todo ese esfuerzo que hace de mantener y mejorar su sitio, es admirable.

    ResponderBorrar
  7. Excelente Fazt, gracias por todo

    ResponderBorrar
  8. Fazt, el 2020, en plena pandemia en Chile decidí da run nuevo rumbo a mi mundo laboral y decidí a aprender a programar y ser desarrollador web. Contigo he aprendido muchísimo y estoy super agradecido de todo lo que has enseñado y sigues enseñando.

    Gracias por todo, sigue así que siempre tendrás el apoyo de tus fieles coders.

    ResponderBorrar
  9. Buenisimo bro... con toda al proyecto personal

    ResponderBorrar
  10. Excelente pagina !!!

    ResponderBorrar
  11. Buen post, justo hace poco recién comenzaba a ver la web y de pronto sólo vi q redireccionaba al canal de youtube, pero ahora comprendo mejor las cosas, muchos éxitos en la nueva versión !! =D

    ResponderBorrar
  12. Muchas gracias Fazt por informarme.
    De deseo que te quede bien la web.

    ResponderBorrar
  13. Muchas gracias por añadir un buscador.
    Asi me organizo Mejor
    SomAtribute Suscriptor de Fazt en YouTube

    ResponderBorrar
  14. Aqui puedo escribir como en <html></html>

    ResponderBorrar
  15. Soy un niño de 9 años (es verdad, no se rían),
    y estoy aprendiendo con tus tutoriales de YouTube desde 2020.
    Gracias por enseñarme a programar.

    ResponderBorrar
  16. Excelente Fazt! Fuerza y gracias por cada atributo que nos das con tus videos tutoriales. Saludos!

    ResponderBorrar
  17. Sos demasiado Crack !!! ... te felicito !

    ResponderBorrar
  18. Qué bien Fazt! Siempre aprendiendo con tus videos, y en verdad sos de gran bendición para los que amamos codificar. Dios te bendiga siempre en todo!

    ResponderBorrar
  19. Aprendo mucho con tus videos, seguiré esforzandome y gracias a tus videos lo lograré. Gracias por tanto Fazt.

    ResponderBorrar
  20. yo estoy aprendiendo el mundo del desarrollo web, con tus cursos que tienes en youtube, el aprendizaje no se me a hecho algo tedioso y me motiva mas a seguir aprendiendo y llegando a la idea de que la programación no es para obtener dinero si no seguir resolviendo problemas o construir algo nuevo

    ResponderBorrar
  21. Muy buen trabajo, te recomendaría hacer cursos en udemy yo sería unos de los que comprarían

    ResponderBorrar
  22. Hola Fazt, tus videos son muy buenos, explicaciones simples y concisas. Muchas gracias!, te deseo mucho éxito en todo :)

    ResponderBorrar
  23. Muchas gracias por tu esfuerzo Fazt, gracias a ti estoy aprendiendo programación que me gusta mucho

    ResponderBorrar

Publicar un comentario