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.




miércoles, 20 de marzo de 2019

Administrador de Clipboard PasteBot



Siguiendo con la serie de post orientados a herramientas de productividad, hoy comparto el administrador de clipboard (porta papeles) que luego de una lista de candidatos me ha dado los mejores resultados.

Dentro de las características que vale la pena resaltar se encuentra:


  • Soporte de múltiples formatos de texto, imágenes y archivos.
  • Fácil de utilizar sin necesidad del mouse con shortcuts personalizables.
  • Soporta filtros para ser aplicados al momento de "pegar" (cmd+shift+v)
  • Creación de filtros basados en shell scripts :)! 







Más información:
https://tapbots.com/pastebot/

miércoles, 27 de febrero de 2019

Calendarizando mensajes en Slack con Timy




La herramienta de colaboración Slack tiene muchas configuraciones, boots, integraciones y una característica que no viene incluida de forma predeterminada es la capacidad de publicar mensajes a canales o contactos directos de forma calendarizada.

Esta característica es importante cuando se colabora con grupos de trabajo al rededor del mundo. Luego de probar varias opciones les comparto Timy (https://timy.thusitha.site/), fue la integración más sencilla y funcionalidad básica sin incurrir en un servicio de paga o suscripción:


Ejemplos de uso básico:

Estando en el canal o en mensaje directo con algún contacto puedes calendarizar utilizando el siguiente formato:

/send Feliz cumpleaños! in 10h 
/send Tienes un nuevo paquete en tu oficina at 2:30 pm
/list all

Para documentación detallada visita: https://timy.thusitha.site/