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.
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
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
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
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.
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
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
Node.js es una tecnología cada vez más popular para el desarrollo de servicios web. Grandes abanderados de Java como Netflix están usando cada vez más JavaScript para implementar parte de su backend. Pese a esta realidad, muchos javeros como yo no quieren tocar JavaScript ni con un palo, y cuando hay que hacerlo, sólo en el browser.
Si eres javero y no te gusta JavaScript, en esta presentación tendrás una visión general sobre cómo desarrollar servicios web con Node.js. Verás cómo con TypeScript, async/await y frameworks como Nest y TypeORM no echarás de menos a Spring y JPA. Pero lo mismo pasa al revés, verás cómo en Java también puedes implementar apps con los mismos principios reactivos y funcionales tan comunes en Node.js.
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.
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.
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.
En esta presentación se describe la tecnología WebRTC y el servidor de media Kurento. Se ilustran diferentes tipos de aplicaciones que pueden desarrollarse con esta tecnología, como un espejo mágico y un completo sistema de videoconferencia en grupo.
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.
Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.
Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.
Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.
Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.
Charla en la que hablé sobre cómo hemos llegado al ecosistema actual de JavaScript, pasando por las distintas tecnologías web que hemos ido conociendo.
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
Descripción de problemas comunes de monitoreo, administración y profilig de aplicaciones java. Introducción a Java Mission Control y la funcionalidad de Java Flight Recorder para poder identificar y prevenir dichos problemas.
Cómo incluir videoconferencia en tu web usando la tecnología WebRTC y servidores de media open source y comerciales. Se explora en más detalle OpenVidu, una plataforma de videoconferencias con ediciones open source y comerciales
OpenVidu es una plataforma para incorporar videoconferencia y video streaming en tus aplicaciones web. Es muy fácil de usar y tienes multitud de ejemplos con diferentes tecnologías. Además, es open source. Qué más se puede pedir?
The jedi path is not easy, here is an example of how I had to fight against the dark side and become a groovy developer.
POC based on spring-boot, built with gradle, aimed to demonstrate WSDL versioning approach.
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.
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.
En esta presentación se describe la tecnología WebRTC y el servidor de media Kurento. Se ilustran diferentes tipos de aplicaciones que pueden desarrollarse con esta tecnología, como un espejo mágico y un completo sistema de videoconferencia en grupo.
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.
Groovy es un lenguaje alternativo para la JVM, al ser un lenguaje dinámico, permite que usemos conceptos como metaprogramación; característica que sirve como base para manipular el código en tiempo de ejecución.
Groovy extiende las librerías estándar de Java con una colección de clases que son implementadas con metaprogramación para facilitar el uso de diversos APIs. Esta colección se llama GDK, mostraremos los diversos usos que tiene y como ayudan al desarrollador.
Para finalizar veremos como participar en manipulación del byte-code que genera el compilador de Groovy con simples anotaciones de Java. Mostrare las anotaciones que Groovy provee y como podemos implementar las propias.
Estas caracteristicas del lenguaje; forman una triada que permiten potenciar y elevar las capacidades de los desarrolladores que usen Groovy para sus aplicaciones.
Charla en la que hablé sobre cómo hemos llegado al ecosistema actual de JavaScript, pasando por las distintas tecnologías web que hemos ido conociendo.
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
Descripción de problemas comunes de monitoreo, administración y profilig de aplicaciones java. Introducción a Java Mission Control y la funcionalidad de Java Flight Recorder para poder identificar y prevenir dichos problemas.
Cómo incluir videoconferencia en tu web usando la tecnología WebRTC y servidores de media open source y comerciales. Se explora en más detalle OpenVidu, una plataforma de videoconferencias con ediciones open source y comerciales
OpenVidu es una plataforma para incorporar videoconferencia y video streaming en tus aplicaciones web. Es muy fácil de usar y tienes multitud de ejemplos con diferentes tecnologías. Además, es open source. Qué más se puede pedir?
The jedi path is not easy, here is an example of how I had to fight against the dark side and become a groovy developer.
POC based on spring-boot, built with gradle, aimed to demonstrate WSDL versioning approach.
Groovy - Grails as a modern scripting language for Web applicationsIndicThreads
Dynamic scripting languages are a powerful addition to a software designer’s toolbox. Rails/Ruby and Python have not gained much acceptance in the enterprise. Grails and Groovy are an attempt to bridge the gap between the modern scripting world and the Enterprise Java world.
This talk is an introduction towards building web applications in Grails. First we will go about creating a REST based webservice. We will also show how to replace the default database backend of Grails with MySQL.
We will then build a web application that consumes this webservice. The emphasis will be on the design patterns and idioms in Grails that address the web application development lifecycle.
Geb+spock: let your functional tests live long and prosperEsther Lozano
Functional testing, as any other testing, is important to ensure the health of our apps. However, functional tests are often tricky, too susceptible to change, and their maintenance ends up being a nightmare. Are we hopeless then? Not at all! Luckily, there are tools to ease this task like Geb and Spock, which help us to create well structured, comprehensive, and easy to maintain tests. In this talk we will review these tools, showing different options for creating the tests.
Esta es una hermosa historieta de la obra "El Caballero Carmelo" del gran escritor iqueño Abraham Valdelomar Pinto. Debo de hacer mención a que estos dibujos o s on míos, los encontre navegando por la red, otro día pongo los créditos.
Apache Cassandra es una base de datos NoSQL altamente escalable. Con la llegada de Gorm 5, se ha abordado una 'as-complete-as-possible' implementación GORM que mapea las clases de dominio e instancias a tablas de Cassandra 2.0. Veremos brevemente qué es Cassandra y qué MAGIA nos proporciona esta capa Gorm para hacernos la vida más fácil.
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
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.
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.
Es 2024 y ya hemos dado por sentado que testear nuestras aplicaciones es esencial. Escribimos test unitarios sin problemas, pero, ¿qué ocurre con los tests de integración? ¿Cómo podemos testear con seguridad los diferentes servicios que utilizamos en nuestras aplicaciones Spring? Testcontainers se integra de manera sencilla y transparente con Spring Boot para ofrecer una experiencia similar a los tests unitarios pero escribiendo tests de integración con servicios reales ejecutados en contenedores: Kafka, Postgresql, MySql, Elasticsearch y cualquier cosa que se pueda ejecutar en Docker.
En esta charla aprenderás cómo utilizar Testcontainers en tus tests de Spring Boot sin sacrificar la velocidad en tu ciclo de desarrollo y aprovechar todo el potencial que ofrece.
Voxxed Days CERN 2024 - Spring Boot <3 Testcontainers.pdfIván López Martín
In 2024, we all agree that testing our applications is essential. We write unit tests without any trouble, but what about integration tests? How can we test the different services we use in our Spring applications in a safe and reliable way?
Testcontainers integrates seamlessly and transparently with Spring Boot to offer a unit testing-like experience, but with integration tests that use real services running in containers: Kafka, Postgresql, MySql, Elasticsearch, and anything else that can be run in Docker.
In this talk, you will learn how to use Testcontainers in your Spring Boot tests without compromising the speed of your development cycle and leveraging all the potential it offers
Es 2023 y ya hemos dado por sentado que tenemos que testear nuestras aplicaciones. Escribimos test unitarios sin problemas y somos relativamente felices.
Pero ¿qué ocurre con los tests de integración? ¿Cómo podemos testear con seguridad los diferentes servicios que utilizamos en nuestras aplicaciones Spring?
Testcontainers se integra de manera sencilla y transparente con Spring Boot para ofrecer una experiencia similar a los tests unitarios pero escribiendo tests de integración con servicios reales ejecutados en contenedores: Kafka, Postgresql, MySql, Elasticsearch y cualquier cosa que se pueda ejecutar en Docker.
En esta charla aprenderás cómo utilizar Testcontainers en tus tests de Spring Boot sin sacrificar la velocidad en tu ciclo de desarrollo y aprovechar todo el potencial que ofrece.
Spring IO 2023 - Dynamic OpenAPIs with Spring Cloud GatewayIván López Martín
Imagine this scenario. You follow an OpenAPI-first approach when designing your services. You have a distributed architecture with multiple services and all of them expose a RESTful API and have their OpenAPI Specification. Now you use Spring Cloud Gateway in front of them so you can route the requests to the appropriate service and apply cross-cutting concerns. But, what happens with the OpenAPI of every service? It would be great if you could generate a unique OpenAPI for the whole system in the Gateway. You could also expose and transform only selected endpoints when defining them as public. And what about the routes? You would like to reconfigure them dynamically and on-the-fly in the Gateway when there is a change in a service, right?
Stop imagining. In this talk, I will show you how we have done that in our product and how we are leveraging the programmatic Spring Cloud Gateway API to reconfigure the routes on the fly. You will also see it in action during the demo!
Codemotion Madrid 2023 - Testcontainers y Spring BootIván López Martín
Es 2023 y ya hemos dado por sentado que tenemos que testear nuestras aplicaciones. Escribimos test unitarios sin problemas y somos relativamente felices.
Pero ¿qué ocurre con los tests de integración? ¿Cómo podemos testear con seguridad los diferentes servicios que utilizamos en nuestras aplicaciones Spring?
Testcontainers se integra de manera sencilla y transparente con Spring Boot para ofrecer una experiencia similar a los tests unitarios pero escribiendo tests de integración con servicios reales ejecutados en contenedores: Kafka, Postgresql, MySql, Elasticsearch y cualquier cosa que se pueda ejecutar en Docker.
En esta charla aprenderás cómo utilizar Testcontainers en tus tests de Spring Boot sin sacrificar la velocidad en tu ciclo de desarrollo y aprovechar todo el potencial que ofrece.
CommitConf 2023 - Spring Framework 6 y Spring Boot 3Iván López Martín
Spring Framework 6 es la base de la nueva generación del ecosistema Spring con la mirada puesta en 2023 y más allá. Spring Framework 6 requiere Java 17 e introduce soporte de primer nivel de Ahead of Time (AoT) e imágenes nativas de GraalVM.
Por otro lado Spring Boot 3 es la nueva versión del framework que se aprovecha de todas las ventajas y novedades de Spring 6 para hacer más fácil y sencillo desarrollar nuestras aplicaciones Java.
En esta charla veremos las principales novedades tanto de Spring Framework 6 como Spring Boot 3 como el nuevo cliente HTTP pero nos centraremos sobre todo en el uso de AOT y GraalVM. ¡Además tendremos la posibilidad de verlo en acción!
¿Quieres aprender cómo desarrollar un API REST con Spring Boot? ¿Que acceda a base de datos? ¿Que esté listo para desplegar en producción? ¿Y qué me dices de GraalVM? ¿Quieres ver como tu aplicación construida como imagen nativa arranca en unos pocos milisegundos?
En esta charla verás todo eso y mucho más sin usar slides, sólo el IDE para desarrollar la aplicación en menos de 50 minutos.
jLove 2020 - Micronaut and graalvm: The power of AoTIván López Martín
Micronaut is a reflection-free app-development framework that uses ahead-of-time (AoT) compilation to precompute everything in the application, paving the way for lightning-fast startup times and significantly reduced memory consumption. What if I told you that you can reduce the startup time by orders of magnitude? And what if you could reduce memory consumption even more?
GraalVM is a new universal virtual machine from Oracle that supports a polyglot runtime environment. GraalVM has the ability to compile Java applications down to native machine code, making it an ideal partner for Micronaut.
In this talk you will learn how you can take advantage of GraalVM's powerful capabilities to convert your Micronaut applications to run as binary native images.
Aunque la JVM está diseñada para tener un rendimiento óptimo en procesos de larga ejecución, frameworks como Micronaut han conseguido que podamos construir aplicaciones JVM y desplegarlas en entornos como AWS Lambda.
En esta charla veremos cómo funciona la integración de Micronaut y AWS Lambda y cómo podemos desplegar nuestras aplicaciones Micronaut. Además aprenderemos cómo utilizar GraalVM y los custom-runtimes de AWS para mejorar enormemente los tiempos de arranque y el consumo de memoria.
Micronaut es un nuevo framework de la JVM para desarrollar microservicios modulares y muy fácilmente testeables en Java, Kotlin y Groovy.
Es esta sesión de live-coding verás qué fácil es empezar a desarrollar tus aplicaciones cloud-native con Micronaut. Aprenderás cómo funciona el soporte reactive, a testear las aplicaciones, el cliente http, service discovery y el soporte para GraalVM.
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño.
En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño.
En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Developing Micronaut Applications With IntelliJ IDEAIván López Martín
This session covers:
- How to create Micronaut applications with different options and features directly from the IDE.
- Configuring auto-completion.
- Auto-discovery of controller endpoints.
- HTTP client.
CommitConf 2019 - Micronaut y GraalVm: La combinación perfectaIván López Martín
Micronaut es un framework para microservicios en la JVM que no utiliza reflection y pre-calcula todo lo necesario para el funcionamiento de las aplicaciones ahead-of-time (AoT) durante la compilación. De esta forma consigue que las aplicaciones arranquen extremadamente rápido y que consuman muy poca memoria.
¿Qué pasaría si te dijera que puedes reducir el tiempo de arranque en órdenes de magnitud? ¿Y si pudieras reducir aún más el consumo de memoria?
GraalVM es una nueva máquina virtual de Oracle que soporta muchos lenguajes en runtime. Además GraalVM tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. En esta charla aprenderás cómo funciona GraalVM y cómo puedes aprovechar toda su potencia para convertir tus aplicaciones Micronaut a binarios nativos.
Codemotion Madrid 2019 - ¡GraalVM y Micronaut: compañeros perfectos!Iván López Martín
Micronaut es un framework para microservicios de la JVM que utiliza ahead-of-time (AoT) compilation en lugar de reflection. GraalVM es una nueva máquina virtual de Oracle que tiene la habilidad de compilar las aplicaciones Java a binarios nativos, haciendo que sea el compañero ideal de Micronaut. Con ambos el arranque de las aplicaciones es extremadamente rápido y el consumo de memoria muy pequeño. En esta charla aprenderás cómo sacar provecho a GraalVM en tus aplicaciones Micronaut convirtiéndolas a aplicaciones nativas y cómo funciona la integración de ambos frameworks.
Micronaut provides out-of-the-box integrations with a lot of tools and third-party libraries: Consul, Eureka, Hibernate, Kafka, Mongo, Micrometer, Zipkin, Hystrix, Swagger,... But sometimes this is not enough and you need to integrate with a new one.
In this talk, we will discuss the different options that we have to create a new configuration for Micronaut: bean factories, conditional beans, configuration properties,... and you will learn how to make the most out of it.
Alexa, Siri, Cortana, Google Assistant … voice assistants are in fashion and have come to stay. With them it is possible to do many actions that a few years ago seemed like science fiction: controlling the lights of the house, listening to our favorite music, knowing the weather tomorrow,… controlling everything with our voice!
In this talk we will talk about Amazon Echo and Alexa. You will learn how easy it is to develop new skills and deploy them to AWS Lambda without spending a euro.
I’ll bring an Echo Dot to the talk to show you the fun things you can do with it. I’m pretty sure that after this talk you can’t wait to have one!
Micronaut is a new JVM-based, full-stack framework for building modular, easily testable microservice applications with Java, Kotlin, and Groovy.
In this live-coding session, you will see how fast you can start developing “natively” cloud-native microservices with Micronaut. You will learn about the reactive support, testing, http-client, service discovery, fallback, and GraalVM support.
CrossDvlup Madrid 2019 - Alexa, encantado de conocerteIván López Martín
Alexa, Siri, Cortana, Google Assistant,... los asistentes de voz están de moda y han llegado para quedarse. Con ellos es posible realizar muchas acciones que hace unos años parecían ciencia ficción: controlar las luces de casa, escuchar nuestra música favorita, conocer el tiempo que hará mañana... controlando todo con ¡nuestra voz!
En esta charla hablaremos de Amazon Echo y su asistente Alexa y aprenderás lo fácil que es desarrollar nuevos skills y desplegarlos en AWS Lambda sin gastar un euro y de una manera muy fácil y sencilla. Llevaré un Echo a la charla para mostrar las cosas divertidas que puedes hacer con él.
¡Seguro que después de esta charla no podrás esperar a tener uno!
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
(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.
4. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
5. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
6. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
7. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
8. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
9. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
10. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
11. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
12. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
13. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
14. “Groovy es un lenguaje dinámico poderoso, opcionalmente
tipado, con capacidad de tipado y compilación estáticos para la
plataforma Java centrado en multiplicar la productividad de
los desarrolladores gracias a una sintaxis concisa, familiar y
fácil de aprender.
Se integra sin problemas con cualquier programa Java e
inmediatamente proporciona a tu aplicación poderosas
características como capacidades de scripting, DSLs,
metaprogramación en runtime y compile-time y programación
funcional.
– Web de Groovy
17. ➢ Java es sólido
➢ Conocido por muchos desarrolladores
➢ Muy extendido
➢ Es rápido
Pero...
➢ Java es verboso
➢ Puede ser incómodo en algunos casos
➢ No es dinámico
¿Y por qué no Java?
40. ➢ Dinámico
➢ Compilación estática opcional
➢ Todo es un objeto
➢ Sobrecarga de operadores
➢ + es .plus()
➢ * es .multiply()
➢ Sintaxis nativa de listas, mapas y rangos
➢ Métodos y clases public por defecto
➢ Las excepciones son unchecked
➢ http://groovy-lang.org/differences.html
Diferencias entre Java y Groovy
41. Getters y setters
public class Persona {
private String nombre;
private int edad;
String getNombre() {
return nombre;
}
void setNombre(String nombre) {
this.nombre = nombre;
}
int getEdad() {
return edad;
}
void setEdad(int edad) {
this.edad = edad;
}
}
42. Getters y setters
public class Persona {
private String nombre;
private int edad;
String getNombre() {
return nombre;
}
void setNombre(String nombre) {
this.nombre = nombre;
}
int getEdad() {
return edad;
}
void setEdad(int edad) {
this.edad = edad;
}
}
class Persona {
String nombre
int edad
}
43. Named constructors
class Persona {
String nombre
int edad
}
def p = new Persona(nombre: 'Iván', edad: 36)
assert p.nombre == 'Iván'
p.edad = 37
assert p.edad == 37
112. @EqualsAndHashCode
public class User extends java.lang.Object {
private java.lang.String name
private java.lang.Integer age
public int hashCode() {
java.lang.Object _result = org.codehaus.groovy.util.HashCodeHelper.initHash()
if (!(this.getName().is(this))) {
_result = org.codehaus.groovy.util.HashCodeHelper.updateHash(_result, this.getName())
}
if (!(this.getAge().is(this))) {
_result = org.codehaus.groovy.util.HashCodeHelper.updateHash(_result, this.getAge())
}
return _result
}
public boolean canEqual(java.lang.Object other) {
return other instanceof User
}
public boolean equals(java.lang.Object other) {
if ( other == null) {
return false
}
if (this.is(other)) {
return true
}
if (!( other instanceof User)) {
return false
}
User otherTyped = (( other ) as User)
if (!(otherTyped.canEqual( this ))) {
return false
}
if (!(this.getName() == otherTyped.getName())) {
return false
}
if (!(this.getAge() == otherTyped.getAge())) {
return false
}
return true
}
}