La presentación que realice para el SpringIO 2012 en Madrid, España
Hablando acerca de la arquitectura de los plugins de Grails y para dar los conocimientos básicos de comprensión del funcionamiento y estructura de componentes que co
This is the presentation we gave at Spring 2GX Madrid. It shows how Grails helped us to improve our productivity and why Grails is not that bounded to Groovy and how it can be an outstanding alternative if you are a 100% Java company.
Deployer PHP. Presentación para #PHPSevillaAgencia INNN
Presentación que nuestro compañero Álex Martín (@Alexdw) realizó para evento de la comunidad PHP Sevilla titulado ‘Gulp & Deployer working with Symfony’.
Este evento se celebró el pasado 28 de septiembre de 2016 en las oficinas de Innn. #SomosINNN #PHPSevilla
Gulp js php sevilla 28 septiembre 2016Agencia INNN
Presentación que nuestro compañero Juan Luis García (@JuanluGarcíaB) realizó para evento de la comunidad PHP Sevilla titulado ‘Gulp & Deployer working with Symfony’.
Este evento se celebró el pasado 28 de septiembre de 2016 en las oficinas de Innn. #SomosINNN #PHPSevilla
Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
This is the presentation we gave at Spring 2GX Madrid. It shows how Grails helped us to improve our productivity and why Grails is not that bounded to Groovy and how it can be an outstanding alternative if you are a 100% Java company.
Deployer PHP. Presentación para #PHPSevillaAgencia INNN
Presentación que nuestro compañero Álex Martín (@Alexdw) realizó para evento de la comunidad PHP Sevilla titulado ‘Gulp & Deployer working with Symfony’.
Este evento se celebró el pasado 28 de septiembre de 2016 en las oficinas de Innn. #SomosINNN #PHPSevilla
Gulp js php sevilla 28 septiembre 2016Agencia INNN
Presentación que nuestro compañero Juan Luis García (@JuanluGarcíaB) realizó para evento de la comunidad PHP Sevilla titulado ‘Gulp & Deployer working with Symfony’.
Este evento se celebró el pasado 28 de septiembre de 2016 en las oficinas de Innn. #SomosINNN #PHPSevilla
Transparencias de la charla con la que participamos en las III Jornadas de Java de Alicante.
En las transparencias se muestran algunas herramientas para implantar metodologías ágiles en Java y se comentan algunas anécdotas e historias de diferentes implantaciones.
Introducción al framework Angular 2 para el desarrollo de aplicaciones Web. Revisión a sus conceptos principales y su alineación con el estándar Web Components.
Charla impartida el 26 de enero de 2017 para SevillaJS.
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
En este lunch & learn Eduardo nos presentará Redux, una forma de crear contenedores de estados predecibles para aplicaciones JavaScrip. También nos habla de @barcitomx , problemas y soluciones. ¡Esperamos que lo disfrutes!
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
Plone es un excelente sistema de gestión de contenidos. Recientemente ha sido elegido como el mejor CMS no-PHP en un popular concurso anual. A pesar de esto, muchos desarrolladores web de Python encuentran complejo a Zope, el framework con el que esta desarrollado el CMS.
Ahora, ¿qué tal si pudieras usar Plone solo como un gestor de contenidos y tu framework favorito, cualquiera sea, para implementar un front-end de forma transparente, obteniendo una configuración basada sobre una aplicación probada y de bajo mantenimiento, como backend siendo libre para escribir tu propia aplicación, usando el poder y flexibilidad de tu framework web?
En esta charla, se mostrarán ejemplos realizados con un par de productos de terceros de Plone y front-ends en varios frameworks.
Introducción al framework Angular 2 para el desarrollo de aplicaciones Web. Revisión a sus conceptos principales y su alineación con el estándar Web Components.
Charla impartida el 26 de enero de 2017 para SevillaJS.
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
En esta sesión os contaremos la visión de React para el desarrollo de aplicaciones web desde el punto de vista de un desarrollador de ASP.NET que tiene que aprender a trabajar con estas nuevas tecnologías.
En este lunch & learn Eduardo nos presentará Redux, una forma de crear contenedores de estados predecibles para aplicaciones JavaScrip. También nos habla de @barcitomx , problemas y soluciones. ¡Esperamos que lo disfrutes!
Combinación ganadora: Plone como CMS, tu framework preferido como frontendmenttes
Plone es un excelente sistema de gestión de contenidos. Recientemente ha sido elegido como el mejor CMS no-PHP en un popular concurso anual. A pesar de esto, muchos desarrolladores web de Python encuentran complejo a Zope, el framework con el que esta desarrollado el CMS.
Ahora, ¿qué tal si pudieras usar Plone solo como un gestor de contenidos y tu framework favorito, cualquiera sea, para implementar un front-end de forma transparente, obteniendo una configuración basada sobre una aplicación probada y de bajo mantenimiento, como backend siendo libre para escribir tu propia aplicación, usando el poder y flexibilidad de tu framework web?
En esta charla, se mostrarán ejemplos realizados con un par de productos de terceros de Plone y front-ends en varios frameworks.
JHipster es un generador de código basado en Yeoman que nos genera un proyecto con Spring Boot en el back-end y con Angular en el front-end.
Llevo un año y medio desarrollando con Spring Boot y Angular y desde hace unos meses, mis nuevos desarrollos los realizo con JHipster. Por eso me he decidido a proponer este taller en donde montaré una pequeña aplicación con este tándem, y en donde hablaré también de mi propia experiencia.
Para poder asistir al taller es necesario tener instalado JHipster y tu IDE favorito (yo usaré Spring Tool Suite para back y Visual Studio Code para front). Para no tener problemas de descarga durante el taller tenéis que crearos un proyecto vacío, en el cual haremos modificaciones durante el taller. Creároslo con los valores por defecto, y luego ejecutarlo con ./mvnw para que se descarguen todas las librerías. Deberíais poder ver algo en http://localhost:8080 ;)
Con Selenium 2.0 y Webdriver la ejecución de TDD y BDD se ve beneficiado por las fortalezas de ambos proyectos.
Introduciremos el API Java basado en PageObjects y veremos ejemplos de creación de pruebas cross-browser para un interfaz de aplicación web con Ajax
Cuando usamos algunos métodos y técnicas ágiles, avanzamos de tal modo que a veces se nos olvida ver hacia atrás y tomar las cosas buenas para mantenerlas, corregir lo que salió mal e identificar las acciones a realizar en la siguiente iteración.
Cuando hablamos de 'retrospectivas' estamos comentando un punto muy importante dentro del ciclo de desarrollo ágil, ya que es ahí donde los sentimientos de las personas y los objetivos perseguidos deben de converger para obtener un buen producto(sea cual sea que se este desarrollando).
En esta sesión hablaremos de las ventajas competitivas de usar Groovy & Grails en proyectos de SW basados en la plataforma Java, así también, veremos como quedaría la integración transparente de ambos en proyectos que ya están en producción.
El proceso de desarrollo de software involucra una gran cantidad de recursos, la elección de dichos recursos sin duda puede ayudarnos a marcar la diferencia en el resultado final.
Estos recursos pueden ser de muchos tipos, en este webminar nos enfocaremos a herramientas de software que nos permitirán mejorar nuestro proceso de desarrollo, aprovechando los beneficios del modelo openSource.
Veremos algunos criterios para elegir la herramientas de construcción, IDE de desarrollo, frameworks de testing, así como herramientas para integrar continuamente el código, así como herramientas para generar métricas.
Esta es la presentación que mostré en la 15a. Reunión de la comunidad de sh.org y grails.org.mx
Mostrando brevemente Spring Web Flow 2 y Spring Security 3
Esta ponencia tiene como objetivo mostrar como conjuntar y aprovechar las ventajas de trabajar con Groovy & Grails, llevar el control del versionado con Git y simular la puesta en producción de la aplicación en GoogleAppEngine.
Presentación del tema "Redefiniendo el MVC con Grails" presentada por mí el día Sábado 22 de Agosto en la Reunión de SpringHispano.org, grails.org.mx y JavaMexico
HPE presenta una competició destinada a estudiants, que busca fomentar habilitats tecnològiques i promoure la innovació en un entorn STEAM (Ciència, Tecnologia, Enginyeria, Arts i Matemàtiques). A través de diverses fases, els equips han de resoldre reptes mensuals basats en àrees com algorísmica, desenvolupament de programari, infraestructures tecnològiques, intel·ligència artificial i altres tecnologies. Els millors equips tenen l'oportunitat de desenvolupar un projecte més gran en una fase presencial final, on han de crear una solució concreta per a un conflicte real relacionat amb la sostenibilitat. Aquesta competició promou la inclusió, la sostenibilitat i l'accessibilitat tecnològica, alineant-se amb els Objectius de Desenvolupament Sostenible de l'ONU.
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...AMADO SALVADOR
El catálogo general de electrodomésticos Teka presenta una amplia gama de productos de alta calidad y diseño innovador. Como distribuidor oficial Teka, Amado Salvador ofrece soluciones en electrodomésticos Teka que destacan por su tecnología avanzada y durabilidad. Este catálogo incluye una selección exhaustiva de productos Teka que cumplen con los más altos estándares del mercado, consolidando a Amado Salvador como el distribuidor oficial Teka.
Explora las diversas categorías de electrodomésticos Teka en este catálogo, cada una diseñada para satisfacer las necesidades de cualquier hogar. Amado Salvador, como distribuidor oficial Teka, garantiza que cada producto de Teka se distingue por su excelente calidad y diseño moderno.
Amado Salvador, distribuidor oficial Teka en Valencia. La calidad y el diseño de los electrodomésticos Teka se reflejan en cada página del catálogo, ofreciendo opciones que van desde hornos, placas de cocina, campanas extractoras hasta frigoríficos y lavavajillas. Este catálogo es una herramienta esencial para inspirarse y encontrar electrodomésticos de alta calidad que se adaptan a cualquier proyecto de diseño.
En Amado Salvador somos distribuidor oficial Teka en Valencia y ponemos atu disposición acceso directo a los mejores productos de Teka. Explora este catálogo y encuentra la inspiración y los electrodomésticos necesarios para equipar tu hogar con la garantía y calidad que solo un distribuidor oficial Teka puede ofrecer.
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaAMADO SALVADOR
Distribuidor Oficial Ariston en Valencia: Amado Salvador distribuidor autorizado de Ariston, una marca líder en soluciones de calefacción y agua caliente sanitaria. Amado Salvador pone a tu disposición el catálogo completo de Ariston, encontrarás una amplia gama de productos diseñados para satisfacer las necesidades de hogares y empresas.
Calderas de condensación: Ofrecemos calderas de alta eficiencia energética que aprovechan al máximo el calor residual. Estas calderas Ariston son ideales para reducir el consumo de gas y minimizar las emisiones de CO2.
Bombas de calor: Las bombas de calor Ariston son una opción sostenible para la producción de agua caliente. Utilizan energía renovable del aire o el suelo para calentar el agua, lo que las convierte en una alternativa ecológica.
Termos eléctricos: Los termos eléctricos, como el modelo VELIS TECH DRY (sustito de los modelos Duo de Fleck), ofrecen diseño moderno y conectividad WIFI. Son ideales para hogares donde se necesita agua caliente de forma rápida y eficiente.
Aerotermia: Si buscas una solución aún más sostenible, considera la aerotermia. Esta tecnología extrae energía del aire exterior para calentar tu hogar y agua. Además, puede ser elegible para subvenciones locales.
Amado Salvador es el distribuidor oficial de Ariston en Valencia. Explora el catálogo y descubre cómo mejorar la comodidad y la eficiencia en tu hogar o negocio.
3. ¿Quién soy?
• 12 años desarrollando software
• Varias plataformas y paradigmas
• Co-editor y ex-podcaster de SpringHispano.org
• Co-fundador y ex-podcaster de la comunidad GrailsMX
• Editor de Artesanos.de/software y Scala-Mug.org
• Fundador y podcaster de ViveCodigo
• Apasionado de Groovy / Grails
• Actualmente trabajo en SynergyJ.com
4. ¿Por qué crear plugins?
• Clásico:
• Modularidad
• Proveer funcionalidades muy puntuales
• Integrar librerías
• Pero...
• El plugin hace lo que necesito, sin embargo...
• ¿Has tenido problemas al integrar algún(os) plugin(s)?
• ¿Lo has resuelto?
• ¿Que implica ser el autor de un plugin?
7. Estructura de un plugin
// DOMAIN CLASSES // CONTROLLERS
package com.synergyj package com.synergyj
// Create tables in ypur app // Warning: UrlMappings maybe mapped this in your app
class UberClass { class UberController {
String name def create = { /*...Magic...*/ }
// More properties... def anotherAction = { /*..More magic..*/ }
// A lot of fields and relations // more actions
}
static constraints = {
name(blank:false,unique:true)
}
// TAGLIB's
} // URL MAPPINGS
// TAGLIB's // VIEWS
package com.synergyj
// LAYOUTS
class UberTagLib { // UTILS
static namespace = "uber"
// SCRIPTS
def inlineAction = { attrs, body -> // SERVICES
// Inline functionality(abuse?)
out << body() // src/java
} // src/groovy
}
8. Cuidado con la flexibilidad...
// In your app
class YourClass extends UberClass{ // <--- mmmm, I don't think so
}
<g:resource dir="${pluginContextPath}/js" file="uber.js" />
<g:render template="viewFolder/templateName" plugin="uber"/>
def dependsOn = [:]
// Be careful
def pluginExcludes = [
"grails-app/views/error.gsp"
]
9. ActiveMQ
Your App
Mail plugin
// Relative or absolute
grails.plugin.location.uber = "../uber"
Your plugin
10. Trabajando con plugins
def doWithWebDescriptor = { xml ->
// Modify the web descriptor at your convenience
}
def doWithSpring = {
// Define and configure beans
}
def doWithDynamicMethods = { ctx ->
// Add behavior to your artifacts
}
def doWithApplicationContext = { applicationContext ->
// Spring is up? Yes, then...
}
def onChange = { event ->
// Learn the magic, because happens some of it in here
}
def onConfigChange = { event ->
// Magic for configuration
}
16. Resumen...
• Ubica en un mismo directorio tus plugins y haz
referencias relativas
• No hagas dependencias fuertes entre tus plugins y
tus apps
• Trabaja con la metaprogramación, es divertido...(Usa
la GroovyConsole)
• Explora tus clases(Introspección)
• No siempre tienes que manejar los cambios en los
artefactos de tu aplicación