Amazon S3 y Groovy

En una de las tareas que realice recientemente, tuve la necesidad de transferir un par de archivos que obtuve de un endpoint(de la cual hablaré en otro post) hacia un Bucket de Amazon S3. La solución inmediata fue usar una biblioteca que encontré para Java de nombre jets3t, la cual, provee de un conjunto de herramientas muy simple para operar con Amazon S3, Cloud Front y Google Storage. El caso muy puntual que tuve que resolver fue subir un archivo y despúes borrarlo de un bucket muy particular. [Read More]

Revisión del libro - The Software Craftsman: Professionalism

Libro que al igual que The Pragmatic Programmer: From Journeyman to Master se ganó estar en mis libros de cabecera, y se ha ganado un lugar muy especial en mi librero. El escritor, y desarrollador de toda la vida Sandro Mancuso, plasma muy bien la idea que el tiene acerca de lo que todo desarrollador de software, y en mi opinión personal lo que debería buscar todo desarrollador, para cambiar su entorno de trabajo y ayudarnos a todos (porque estamos en el mismo barco) a cambiar la mentalidad de los clientes, de que no somos la clase de persona/profesional que la mayor parte del mundo cree que somos: [Read More]

Hot deployment en Gradle

Durante un tiempo estuve buscando de la forma de tener una aplicación web con Gradle y tener características como el hot deploy, Grails lo tiene y viendólo de forma interna usa un elemento de nombre SpringLoaded. Después me di cuenta que frameworks como Dropwizard lo usan, y que incluso SpringBoot a través del uso del CLI también, investigando un poco más al respecto y por la necesidad de tenerlo listo para algunos proyectos encontré un artículo en donde explica como ponerlo en acción usando propiamente Dropwizard. [Read More]

Borrado batch en Grails

En esta ocasión les quiero compartir la solución a un problema que tuve al borrar una colección de objetos en grails y con el GORM, si bien podría hacerlo con HQL o con SQL usando las bondades de Hibernate me gusto más el acercamiento que les quiero presentar. La necesidad era borrar un grupo de objetos en donde el contenido de su relación estuviera vacío, ejemplifico con la estructura de unas clases: [Read More]

Clusterizacion con Camel

Camel ofrece distintas soluciones para ser escalado o para distribuir la carga en diferentes instancias, la soluciones que ofrece dependerá de como se encuentra nuestra infraestructura ( y configuración). Misma JVM y CamelContext Misma JVM pero diferente CamelContext Diferente JVM y CamelContext El problema que me vi envuelto fue de estas tres, la ultima, el clusterizar camel que se encontraban en diferentes JVM y CamelContext. Y en particular tuve un problema de mensajes duplicados. [Read More]