Translate

viernes, 5 de julio de 2019

Integración y Entrega continua en la Nube



En abril 2019 tuve el agrado de participar en la conferencia: Jalapa Day Summit: Artificial intelligence & software development en la cual tuve la oportunidad de aprender y compartir con las diferente comunidades de software de Jalapa Guatemala.

Durante esta sesión realicé un demo en la nube sobre Integración y Entrega continua utilizando un proyecto de documentación basado en Java, Asciidoctor, Travis, Github, Git, Github pages, maven.

El objetivo del proyecto es proporcionar un template para documentación técnica que normalmente es un requerimiento que los estudiantes tienen de sus proyectos de software. A continuación los detalles de dicha sesión. Muchas gracias a OpenSource Jalapa por la invitación, el evento tuvo una excelente organización que incluso eventos de la ciudad aún no implementan como por ejemplo 2 redes wireless de alta velocidad separadas para conferencistas y asistentes, transmisión en vivo del evento, alimentación para asistentes, buen manejo de tiempos, cobertura de gastos de transporte para expositores y logística en general :).

Projecto publicado en Github pages:
https://cesarhernandezgt.github.io/book-demo-asciidoctor

Repositorio Github:
https://github.com/cesarhernandezgt/book-demo-asciidoctor

Diapositivas:

Video:








jueves, 27 de junio de 2019

Optimización de auto imports en IntelliJ IDEA

En nuestros "años maravillosos" el tiempo fue un recurso inadvertido de niñes o adolecensia. Con el paso de los enfrentamos la cruda realidad de que el tiempo es super valioso y escaso dependiendo de la forma en que lo administremos.

Uno de los settings que por defecto en las ultimas actualizaciones del IDE IntelliJ IDEA no vienen activos son los auto completados de imports cuando estamos creando nuevo código.  En la siguiente imagen se observa las configuraciones necesarias:




Luego de reiniciar el IDE, puedes utilizar los siguientes comando optimizando aún más el tiempo invertido luego de cada uno de ellos:

Agregar imports automáticamente que no tengan ambigüedad
alt+Enter

Reorganizar todos los imports 
crtl+alt+o


martes, 9 de abril de 2019

Docker y debug de Apache Tomcat y TomEE



El debug remoto es una práctica común para investigación de problemas de microservicios.
Si estas utilizando contenedores Docker Apache Tomcat o Apache TomEE, en la web puedes encontrar varias técnicas como lo son:


  1. Extender una imagen oficial y personalizar [1]
  2. Utilizar personalización extensiva de CATALINA_OPTS [2]

Sin embargo ambos enfoques requieren extra pasos aplicables para algunos escenarios. A continuación les comparto la forma más sencilla que he utilizado para poder hacer debug remoto en Apache Tomcat y Apache TomEE:



Anatomía de las opciones utilizadas:

  • docker run
    • Comando para encender un contendor docker
  • -it
    • Habilitando el modo interactivo del contenedor
  • -p 8080:8080 -p 8000:8000
    • Exponiendo los puertos accessibles desde el docker host
  • -e CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"
    • Habilitacion de modo debug via CATALINA_OPTS con la configuración resumida y util para la mayoria de scenarios
  • tomcat:9.0.17-jre11
    • La imagen y label Docker del contenedor a ejecutar.