Este documento presenta sobre el desarrollo en 4G (Groovy, Grails, Git y Google App Engine). Explica las ventajas de usar Groovy y Grails para el desarrollo ágil, Git para el control de versiones y Google App Engine para la simulación de puesta en producción de una aplicación en la nube.
No solo un lenguaje puede resolver los problemas que se enfrentan al desarrollar aplicaciones. Cada lenguaje tiene su semántica y sin duda su aplicación. En la plataforma Java desde hace algunos años se brinda soporte para numerosos lenguajes, muchos de ellos creados específicos para la plataforma y otros traídos y adaptados para que puedan explotar las bondades, herramientas y librerías que desde hace muchos años forman parte del ecosistema Java.
En esta charla mostraremos algunos de los lenguajes mas representativos y mas usados en la plataforma Java, los lenguajes que mostraremos son Jython, JRuby, Scala y Groovy. Veremos un poco de su historia y como fueron integrados a la plataforma, así como algunos casos de éxito del uso de estos lenguajes. Ademas de ello analizaremos algunas herramientas disponibles para su uso.
Al termino de la charla los asistentes sabrán que existen muchas alternativas de lenguajes de programación sobre la plataforma Java para desarrollar aplicaciones sumamente escalables y algunas de las tendencias del mercado.
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
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.
No solo un lenguaje puede resolver los problemas que se enfrentan al desarrollar aplicaciones. Cada lenguaje tiene su semántica y sin duda su aplicación. En la plataforma Java desde hace algunos años se brinda soporte para numerosos lenguajes, muchos de ellos creados específicos para la plataforma y otros traídos y adaptados para que puedan explotar las bondades, herramientas y librerías que desde hace muchos años forman parte del ecosistema Java.
En esta charla mostraremos algunos de los lenguajes mas representativos y mas usados en la plataforma Java, los lenguajes que mostraremos son Jython, JRuby, Scala y Groovy. Veremos un poco de su historia y como fueron integrados a la plataforma, así como algunos casos de éxito del uso de estos lenguajes. Ademas de ello analizaremos algunas herramientas disponibles para su uso.
Al termino de la charla los asistentes sabrán que existen muchas alternativas de lenguajes de programación sobre la plataforma Java para desarrollar aplicaciones sumamente escalables y algunas de las tendencias del mercado.
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
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.
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla. Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de ella tendrás ganas de profundizar y utilizarlo en tu día a día.
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
Slides de mi charla de Codemotion "http://codemotion.es/talk/19-october/88". El código fuente de las demos está disponible es https://github.com/lmivan/codemotion-2013.
El vídeo de repetción de la charla en @madridgug está disponible en: http://www.youtube.com/watch?v=dkDub1QLqmM
En un mundo hiper-conectado el concepto Tiempo Real es cada vez más utilizado y las arquitecturas "message driven" son la manera de conseguirlo porque permiten crear aplicaciones modulares y escalables.
En esta charla veremos un tipo de arquitectura totalmente distinta a la estandar de Grails para aplicaciones web que nos permitirá servir contenido en tiempo real a muchos clientes de manera rápida y sencilla teniendo distintos módulos independientes que interactuarán entre sí.
Groovy&Grails: desarrollo rápido de aplicacionesFran García
Presentación realizada al CEFIRE de Valencia en las jornadas para la Actualización del profesorado de la familia profesional Informática y Comunicaciones
Experiencia del grupo Aula Virtual con Gitlab+SonarQube, trabajando con la filosofía open source de Sakai. Destaca la posibilidad de documentar el proyecto con markdown, la edición online, la revisión de código en línea mediante comentarios, las métricas de Sonar Qube sobre deuda técnica, entre otras
Charla en Madrid Spring User Group (www.meetup.com/madrid-spring-user-group/) sobre el uso del framework Spock en aplicaciones Spring Boot y como contenido extra, breve introducción al framework GEB para pruebas funcionales
Presentación realizada para la asignatura de Aplicaciones y Servicios Web del curso 2013-2014 en la FIB-UPC.
Introduce aspectos básicos del lenguage y muestra cuál sería el flujo de trabajo con CoffeeScript tanto en entornos "aislados"/"standalone" como trabajando con el framework Symfony2.
Curso de Angular 9 para desarrollo de aplicaciones SPA (Single Page Application).
● Tema 1: Introducción a Angular: TypeScript y herramientas
● Tema 2: Componentes
● Tema 3: REST y Servicios
● Tema 4: Aplicaciones multipágina: Router
● Tema 5: Librerías de componentes
● Tema 6: Publicación
T3chFest 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla. Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de ella tendrás ganas de profundizar y utilizarlo en tu día a día.
Dev Tools para Kubernetes - Codemotion 2019Micael Gallego
Charla impartida entre Pablo Chico y Micael Gallego en la que se muestran algunas herramientas para mejorar la experiencia de desarrollo de aplicaciones cloud native para Kubernetes. Concretamente, se presenta cómo okteto puede reducir el tiempo empleado en el ciclo de change, build, push, deploy de pods Java en Kubernetes usando la sincronización de ficheros.
Ejemplos de código en https://github.com/micaelgallego/k8s-dev-tools-codemo19
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerIván López Martín
Slides de mi charla de Codemotion "http://codemotion.es/talk/19-october/88". El código fuente de las demos está disponible es https://github.com/lmivan/codemotion-2013.
El vídeo de repetción de la charla en @madridgug está disponible en: http://www.youtube.com/watch?v=dkDub1QLqmM
En un mundo hiper-conectado el concepto Tiempo Real es cada vez más utilizado y las arquitecturas "message driven" son la manera de conseguirlo porque permiten crear aplicaciones modulares y escalables.
En esta charla veremos un tipo de arquitectura totalmente distinta a la estandar de Grails para aplicaciones web que nos permitirá servir contenido en tiempo real a muchos clientes de manera rápida y sencilla teniendo distintos módulos independientes que interactuarán entre sí.
Groovy&Grails: desarrollo rápido de aplicacionesFran García
Presentación realizada al CEFIRE de Valencia en las jornadas para la Actualización del profesorado de la familia profesional Informática y Comunicaciones
Experiencia del grupo Aula Virtual con Gitlab+SonarQube, trabajando con la filosofía open source de Sakai. Destaca la posibilidad de documentar el proyecto con markdown, la edición online, la revisión de código en línea mediante comentarios, las métricas de Sonar Qube sobre deuda técnica, entre otras
Charla en Madrid Spring User Group (www.meetup.com/madrid-spring-user-group/) sobre el uso del framework Spock en aplicaciones Spring Boot y como contenido extra, breve introducción al framework GEB para pruebas funcionales
Presentación realizada para la asignatura de Aplicaciones y Servicios Web del curso 2013-2014 en la FIB-UPC.
Introduce aspectos básicos del lenguage y muestra cuál sería el flujo de trabajo con CoffeeScript tanto en entornos "aislados"/"standalone" como trabajando con el framework Symfony2.
Curso de Angular 9 para desarrollo de aplicaciones SPA (Single Page Application).
● Tema 1: Introducción a Angular: TypeScript y herramientas
● Tema 2: Componentes
● Tema 3: REST y Servicios
● Tema 4: Aplicaciones multipágina: Router
● Tema 5: Librerías de componentes
● Tema 6: Publicación
Los desarrolladores Java deben enfrentarse todos los días a muchos problemas, tanto técnicos como de otras índoles. En este webminar dirigido principalmente al personal técnico, como desarrolladores e ingenieros de pruebas, veremos como el lenguaje Groovy puede ser un excelente complemento para las tareas cotidianas, así como para aquellas tareas que requieran de un gran esfuerzo con las herramientas tradicionales y el lenguaje Java que todos ya conocemos.
El lenguaje Groovy plantea una sintaxis simple que permite al desarrollador escribir menor cantidad de código y mas sencillo de entender. Groovy ademas de su facilidad para escribir código, nos provee de características como la metaprogramación que permite añadir funcionalidad a clases existentes del SDK de Java, esto se conoce como Groovy Development Kit (GDK), usando el GDK veremos como usar las librerías estándar de Java aun mas fácil.
Ademas de ello, en la comunidad se han desarrollado herramientas que permiten aprovechar todas las características de Groovy, en este webminar veremos como un desarrollador Java puede aprovecharlas sin necesidad de usar Groovy en entornos productivos si es que no esta listo
Madrid-GUG (Alicante) 2017 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla. Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de la charla tendrás ganas de profundizar y utilizarlo en tu día a día.
Codemotion Madrid 2016 - De Java a Groovy: ¡Hora de Aventuras!Iván López Martín
Groovy es un lenguaje dinámico para la JVM y la evolución natural para un programador Java debido a su baja curva de aprendizaje.
Si quieres saber por qué programar con Groovy es una Hora de Aventuras, esta es tu charla.
Aprenderás a través de ejemplos las principales características que hacen de Groovy un lenguaje tan potente y versatil: tipado dinámico, closures, manejo de listas y mapas, power asserts, builders, metaprogramación, scripting, DSL's, transformaciones AST y muchas más.
Te aseguro que después de la charla tendrás ganas de profundizar y utilizarlo en tu día a día.
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
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.
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
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0xWord escrito por Ibón Reinoso ( https://mypublicinbox.com/IBhone ) con Prólogo de Chema Alonso ( https://mypublicinbox.com/ChemaAlonso ). Puedes comprarlo aquí: https://0xword.com/es/libros/233-big-data-tecnologias-para-arquitecturas-data-centric.html
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
4. Groovy…¿Qué es…? Es un lenguaje dinámico para la JVM Construido con la fuerza de Java pero incluyendo características poderosas inspiradas en lenguajes como Python, Ruby y Smalltalk Es un proyecto con licencia Open Source-Apache Gramática relajada derivada de Java 5 Integración fluida con todos los objetos Java y los cientos de librerías Compila a bytecode Java, por lo tanto, se puede usar donde sea Simplifica las pruebas Aumenta la productividad del desarrollador Su curva de aprendizaje mínima
7. Mejor a la manera Groovy classHolaMundo { Stringnombre def saluda() { "Hola ${this.nombre} !!!" } } def objeto = newHolaMundo(nombre:"@SGConf") println(objeto.saluda())
8. ¿Cómo llegamos a esto…? Tener el JDK instalado Establecer la variable JAVA_HOME y agregarla al PATH en el subdirectorio /bin Descargamos la distribución de Groovy en http://groovy.codehaus.org/ Creamos una variable de entorno GROOVY_HOME apuntando al directorio donde se descomprimió la distribución Adicionalmente, incluir en el PATH el directorio /bin de la variable de entorno GROOVY_HOME, es decir: %GROOVY_HOME%/bin Let’s rock thecode!!!
9. + Groovy en una mirada Totalmente Orientado a objetos Perfecta integración con Java Closures Convención de JavaBeans Esencia vs. Ceremonia Aritmética con BigDecimal por default para la operación de punto flotante API’s amigables y prácticas XML, JDBC, JMX, Swing DSL(DomainSpecificLanguage) Builders Sobrecarga de operadores GDK
11. Groovy en profundidad Meta-programación La habilidad de un lenguaje para modificarse a sí mismo Transformaciones AST @Singleton @Inmutable, @Lazy, @Delegate @Newify @Category & @Mixin @PackageScope @Bindable & @Vetoable @Grab
13. ¿Que es Grails? Una plataforma para desarrollo ágil en Web Un framework MVC full-stack Un proyecto Open Source Corre en la JVM Desarrollo de Aplicaciones con Groovy Altamente expresivo Totalmente orientado a Objetos Dinámico Sintaxis familiar Perfecta integración con Java Convención sobre configuración DRY(Don'tRepeatYourself)
17. Más Grails… Mappings Internacionalización Ajax WebFlow GORM Servicios Plugins Seguridad Web Services Más…
18. La vida y los proyectos… “…así la vida como los proyectos de software son aburridos si se cuentan y se desarrollan de manera líneal…”
19. Git– Control de versiones Git es: “Un sistema de control de versiones distribuido libre y open source, diseñado para manejar cada objeto en proyectos pequeños y grandes con velocidad y eficiencia…” Creado por Linus Torvalds
20. ¿Distribuido? Colaboración Cambios sin perturbar a los demás Las ramas(branches) que afectan al repositorio local son inaceptables Confianza en tus datos Sin tener que creer implícitamente en los demás o en el hosting Liberaciones de Ingeniería Ciclos concurrentes de desarrollo/pruebas/liberaciones
22. Diferencias y ventajas con CVCS No hay copias de referencia, solo copias de trabajo locales Las operaciones más comunes son regularmente más rápidas ya que no tienen que comunicarse con un servidor central No hay necesidad de hacer update antes de hacer commit No hay problemas con la red y la latencia generada No necesitamos hacer una instalación en un servidor remoto Los desarrolladores pueden trabajar sin estar conectados a su red local o a Internet Branches experimentales Performance
23. Formas de trabajo con Git & DCVS Alone En pares Centralizado Descentralizado
24. Instalación de Git En función del Sistema Operativo: Basado en RedHat RPM Basado en Debian Debs Windows .exe OS X DMG Solaris
29. Google AppEngine Solución de CloudComputing de Google Correr aplicaciones en la infraestructura escalable de Google El pago es basado en los recursos usados: almacenamiento, ancho de banda(medido en GB) De manera gratuita: Hasta 500MB de almacenamiento Hasta 5 millones de páginas vistas por mes Ahora está disponible para la JVM Por lo tanto para Scala, JRuby y... GROOVY!!!
30. Entorno GAE Corre en Java 6(con algunas limitaciones) El request será terminado si no se completa en 30 segundos, arrojando excepción Además: No hay sockets No hay hilos o timers No hay JNDI System.gc(),System.exit(),etc, no hacen nada Algunos problemas con el classloader
31. Escalabilidad en GAE 30 requests dinámicos simultáneos El tiempo de procesamiento del lado servidor es de 75ms Alrededor de 400 request/seg. Sin latencia adicional
32. Servicios en GAE URL Fetch Mail Memcache Manipulación de Imágenes Manejo de usuarios Consola de administración Calendarización
33. Almacenamiento en GAE Datastore Almacenamiento de datos distribuido y transaccional Filtrado y ordenamiento por el valor del propiedad No es relacional, es “esquemático”
34. Persistencia en GAE Toda la persistencia es definida por clases @not@d@s JDO JPA Todo es almacenado en BigTable Es masivamente escalable Es un sistema de almacenamiento distribuido Usada por Google para muchas cosas Para Java, la API usa el optimizador de Datanucleus
35. Desarrollo en GAE Cuenta con un SDK descargable Incluye un webserver Emula los servicios Incluye una herramienta de Upload Soporta Java 5 y 6 Existen un plugin de GAE para Eclipse y uno para Grails Debemos de cubrir un proceso de registro sencillo Solo podemos subir 10 aplicaciones(gratuitamente)
36. Plugin de GAE para Grails Crear una appGrails que coincida con el nombre de nuestra app GAE Desinstalar el plugin de Hibernate Instalar el plugin app-engine(previokit de GAE instalado) Establecer la versión(a 1 preferentemente) Desplegar Listo..
37. GAE es una opción Existen también: Amazon EC2 SpringSourceCloudFoundry Entre otros…