• How to Participate in the Future of Java && Functional Reactive with Core Java

    En el mes de Mayo tendremos una interesantísima sesión doble: Tendremos el gran privilegio de recibir a Heather VanCura, la presidenta del Java Community Process Program (JCP Program), para lo que probablemente sea una de las charlas más enfocadas en Java y la comunidad del JUG. Será una oportunidad ideal para conocer y hablar de Java y de la plataforma y cómo la comunidad (y tú como miembro de ella) puedes contribuir y participar en su futuro. Por otro lado, coincide también en Madrid en esta fecha Sven Ruppert, Developer Advocate de @Vaadin y uno de los Groundbreakers, que nos hablará de "Functional Reactive with Core Java" Os dejamos la descripción de la charlas y de la bio de Heather: # How to Participate in the Future of Java This session will explore how Java development has been brought into the open and many of the shifts in the Java community over the past year, Several Java developer efforts have brought open source development processes and new levels of transparency and participation into their communities. Learn about the latest Java innovations to the Java SE Platform - Java SE 10, 11, 12 and beyond. Since the initiation of efforts to expand the developer participation in the Java community, Java standards development is more open that it ever has been. Learn how to take part in the Java developer community and the upcoming changes to Java - you can participate as an individual, corporation, or nonprofit such as a Java user group (JUG). This session answers questions about why and how to participate in the evolution of the Java platform. You will also learn about the global Adoption programs and how you can participate in contributing to the future of Java. ## Heather VanCura ### Director and Chairperson of the JCP Program Heather VanCura is the Director and Chairperson of the JCP Program. In her role she is responsible for the chairing the Executive Committee, and providing overall leadership of the community. Heather oversees the JCP.org web site, JSR management, community building, events, marketing, communications, and growth of the membership. She is also a contributor and leader of the community driven Adopt-a-JSR programs. In 2014, Heather became Spec Lead for the ongoing JCP.Next efforts through JSR 364 and JSR 387. Heather is passionate about Java and developer communities. She enjoys trying new sports and fitness activities in her free time. # Functional Reactive with Core Java There are a lot of reactive frameworks in the field, some with functional languages for the JVM. However, Java gives you both. But how you could combine this and use this without adding the next big framework to your project? We will have a Core Java journey to explore a lot of excellent possibilities based on the JDK. ## Sven Ruppert Java coder since 1996, Oracle @groundbreakers, Developer Advocate @Vaadin and Speaker, Helping developers world-wide to grow their business.

  • Introduction to Java based blockchain smart contracts framework (Jelurida)

    Java has been crucial for the worldwide web. Some would argue it is at the heart of it along with HTML and CSS. The programming language that is traditional and useful in creating highly interactive webpages, it is also now useful in making simple or advanced smart contracts and it is number 2 after C++ for most of the rankings also for blockchains. Most existing blockchain smart contract frameworks use their own DSL and proprietary tools making them much less accessible for developers and thus locking anyone who develops solutions on top of them into an esoteric tool chain. In this lecture we will present a blockchain contracts framework developed in pure Java and deployed into standard Java JRE. The talk will cover the topics: - Quick intro to blockchain primitives: - Transactions - Blocks - Miners - Consensus - proof of work - proof of stake - smart contracts We will then deep dive into existing challenges to blockchain contracts design - Stateful contracts - Metering contract execution - Smart contracts security concerns Next we review how our Java based lightweight contracts framework solves these challenges - Stateless contracts support parallelism - Custom class loaders for securely storing and loading blockchain contracts - Utilizing the Java security model for sandbox execution of contracts - Verification of deployed contracts against the contract original source code - Verification of contract execution using multi-signature accounts - Oracle (of delphi) contracts And finally demo the technology and discuss some real-world use cases - Sample smart contract - Unit test a smart contract - Smart contract deployment and execution - Use cases

  • Modern Identity Management (in the Era of Serverless and Microservices)

    En esta ocasión, tenemos la suerte de recibir la visita desde Guatemala de Mercedes Wysss, con una experiencia de más de seis años en desarrollo backend, frontend y Android, y actualmente CTO de PRoduactivity, Mercedes Wyss es ingeniera de software con más de siete años de experiencia en el desarrollo backend, frontend y Android utilizando Java y Kotlin. Actualmente, es CTO en Produactivity, una startup con base en Guatemala. Anteriormente organizaba reuniones en el Grupo de Usuarios de Java de Guatemala de 2012 a 2016. Ahora lleva dos años y medio centrándose en aumentar la participación de las mujeres en STEAM al dirigir un Capítulo de JDuchess en Guatemala y es la líder de una comunidad de Google (Devs + 502) . Ella es Oracle Groundbreaker Ambassador y Auth0 ambassador, también tiene un Duke´s Choice en Extensión Educativo. Mercedes nos hablará en esta charla de la gestión de seguridad e identidad en Microservicios y entornos Serverless. El abstract que nos ha enviado: If you believe that Identity Management (IdM) is just related with the Authentication and Authorization processes, this is a talk for you. IdM is an umbrella term for all of the core logic around identity. That means manage provisioning (assigning identities to user), account management (maintaining those identities), identity governance (assigning them to groups and roles and adjusting permissions as needed), authentication, authorization, identity federation (ensuring users can use the same identification data to access resources on related domains). A login is more than a Single Sign On, we can use Passwordless, Federated Identity (FB, GitHub), Multifactor Authentication. The main purpose of this talk is gain an in-depth knowledge of those terms, in addition explore some PaaS, that can help to achieve all that in our projects easier and faster.

  • Reactive for the impatient

    Oficinas de Liferay

    Recibimos la visita de otro JUG leader, en esta ocasión Mary Grygleski desde Chicago Java Users Group (CJUG). Con una amplia experiencia trabajando en sistemas reactivos, nos hablará de la construcción de sistemas reactivos con Java. ## About this talk. As Java is an object-oriented language that inherently supports the imperative programming style, asynchronicity presents a challenge that can turn the code into nightmare. One way to deal with the complexity of asynchronicity is to introduce reactivity onto the coding level (reactive programming), and/or to handle it on the design and architecture level (reactive systems design). This talk presents to the audience a few of the major Java-based reactive frameworks and toolkits in the market today, such as RxJava, Spring Reactor, Akka, and Vet.x. It will start by going over the basic tenets of reactive systems, and some examples of the problems that these systems aim to solve. It will discuss the 2 most commonly used Java frameworks for implementing reactive coding - RxJava and Spring Reactor, and will show some code samples. It will then bring the audience to the next level of "reactivity' by introducing 2 reactive frameworks - Akka and Vert.x, which are usually used for implementing reactive microservices. It will draw some comparisons between these 2 frameworks and cite some real-life examples of their usages. The takeaways for the audience will be an understanding of the key differences between reactive programming versus reactive systems, and the strength and weaknesses of each of the surveyed frameworks. ## About the speaker: Mary Grygleski Mary is currently a Java Developer Advocate for IBM's Digital Business Group, specializing in Reactive Java systems. She has been riding the software tech waves since 1989, starting with Unix and C, then set sail for Java, open source, and web in the new Millennium, and now venturing into reactive, mobile, and the DevOps space. In her previous incarnations, she worked for several technology product companies in the Route 128 Boston Technology Corridor as well the San Francisco Bay Area. She now resides in the Greater Chicago area, and is an Executive Board member and the Director of Meetings for the Chicago Java Users Group (CJUG). Mary continues to be amazed by how software innovations can dramatically transform our lives. She can't wait to see what the next tech wave will be like.

  • Escribir y publicar tus plugins de Gradle “made easy”

    Oficinas de Zooplus

    Gradle se ha consolidado como herramienta de facto para construir y desplegar nuestros artefactos, igualando, si no superando, al propio Maven. Su DSL nos permite hacer cosas que con Maven eran un dolor y sin embargo con Gradle nos basta un editor de texto. Pero, como dijo Tio Ben, “un gran poder conlleva una gran responsabilidad” y esto implica que deberías aplicar DRY a tus builds En esta charla veremos qué cosas hay que tener en cuenta para crear un plugin de Gradle que pueda ser usado en nuestros proyectos e incluso cómo subirlo al repositorio público de Gradle para que pueda ser usado por la comunidad. Como caso práctico crearemos un plugin desde cero a puro golpe de consola y si el tiempo lo permite, veremos el código de algunos de los plugins que he publicado en estos últimos meses desde un simple ‘hello’ hasta una integración con Google Drive ## Sobre el ponente After several years as developer, I decided to create my own company and offer my services in the self-service environment (ATMs and kiosks). During several years I run an unipersonal company offering services as technical leader to innovate and promote customers processes. I believe in the Open Source Spirit and, as such, I have created several projects open source projects: puravida-asciidoctor-extensions, puravida-asciidoctor-themes and Groogle. I am also the main responsible for the 101-scripts blog about Groovy my prefered language

  • Introducción a GraalVM

    Oficinas de Liferay

    GraalVM es una nueva tecnología creada por Oracle para la JVM que la convierte en una máquina virtual "universal", pudiendo ejecutar código de JS, Python, Ruby, C, C++ o R. Jerónimo nos hará una introducción a GraalVM: - como reemplazo del compilador JIT de Java - para generar ejecutables ultrarápidos de Java sin necesitar la JRE - para ejecutar otros lenguajes sobre la JVM, contándonos sus bondades y sus actuales limitaciones. - interoperar entre diferentes lenguajes Sobre el ponente: Jerónimo López lleva 16 años ganándose la vida como desarrollador, 13 de ellos entorno a tecnologías Java. Declarado troll de Javascript y PHP, es uno de los pesados coordinadores de MadridJUG. Actualmente trabaja en Nextail repartiendo ropa por todo el mundo.

  • HackDay Com. Hispana: Monolitos, Microlitos, Microservicios con Java/Jakarta EE

    Nos volvemos a juntar los Grupos de usuarios de Java de España y Latinoamérica bajo la iniciativa de "Comunidad Hispana" para una nueva convocatoria de otro HackDay. En este caso, desde Suramérica el grupo de usuarios EcuadorJUG será el encargado de orientar nuestra 5ª sesión: Monolitos, Microlitos, Microservicios usando Java / Jakarta EE En la era que estamos de contenedores, cloud y muchas herramientas que escoger en el momento de crear nuevas aplicaciones o evolucionar las que tenemos; presentamos tips y hacemos énfasis en patrones y prácticas elementales que aplican en nuestro día a día de desarrollo de aplicaciones empresariales. A traves de este taller de 2 horas vamos a crear una aplicación desde cero pasando de un Monolito a Microlitos y finalmente a Microservicios. ## Requisitos: Trae tu laptop o mac para disfrutar practicando durante la sesión técnicas. Si puedes, estaría bien que tengas preparada tu máquina con los siguientes - Open JDK 8 - Maven - Tu IDE favorito - Un servidor de aplicaciones o distribución de Microprofile en este caso para el taller vamos a utilizar OpenLiberty (https://openliberty.io) - Docker ## Qué usaremos: Aprenderás a ejecutar y actualizar una aplicación simple basada en servicios REST y desplegada en un servidor Open Liberty. Usaremos Maven a lo largo del desarrollo del taller para crear, implementar e interactuar con la instancia del servidor en ejecución. ### Open Liberty Open Liberty es un servidor de aplicaciones diseñado para la nube. Es pequeño, ligero y diseñado pensando en el desarrollo de aplicaciones nativas de la nube. Soporta todas las APIs de MicroProfile y Jakarta EE (Java EE). También se despliega en todas las principales plataformas de nube, incluyendo Docker, Kubernetes y Cloud Foundry. ### Maven Maven es una herramienta de automatización de la construcción que proporciona una forma eficiente de desarrollar aplicaciones Java. Usando Maven, vamos construir nuestros servicios. A continuación, realizará la configuración del servidor y los cambios de código y verá cómo los recoge un servidor en ejecución. También explorará cómo empaquetar su aplicación con el tiempo de ejecución del servidor para que se pueda implementar en cualquier lugar de una sola vez. Finalmente, empaquetaremos la aplicación junto con la configuración del servidor en una imagen Docker y la ejecutará como un contenedor. # Presentadores: Alberto Salazar es Java Champion, Oracle Groundbreaker Ambassador, Auth0 Ambassador, Lider y fundador del Grupo de Usuarios Java del Ecuador y Javaday Ecuador, miembro asociado del Java Community Process y entrenador/evangelizador de Java en el tiempo de Sun Microsystems. Hace 10 años fundó una compañía en Latinoamérica y por mas de 17 años ha entregado soluciones principalmente desarrolladas en Java desde sistemas militares a soluciones bancarias. Co autor del libro "Software Architecture with Spring 5.0". Finalmente Alberto ha participado varios años como orador frecuente en conferencias de clase mundial como: Oracle CodeOne, Voxxed Days, JavaOne, Oracle Code, Redhat Summit, CamelOne, Oracle Developer Tour Latam, Oracle OTN y localmente en las sesiones de Grupos de Usuarios Java. Twitter:https://twitter.com/betosalazar Kleber Ayala; es un arquitecto de software con mas de 17 años de experiencia, apache committer, co fundador del Grupo de Usuarios Java del Ecuador y de la conferencia Javaday Ecuador. Twitter: https://twitter.com/keal_

  • Decomposition and how we run services at Atlassian

    Oficinas de Liferay

    En esta ocasión tendremos el placer de contar con Susana Guio, que se mudó ya hace más de 4 años para unirse como Team Lead al equipo de Atlassian. Susana nos contará de primera mano cómo es la experiencia y estrategia de descomposición en servicios que siguen en Atlassian para sus productos. Jira Software (anteriormente conocido como Greenhopper) fue uno de los primeros plugins de Jira en implementar conceptos de Agile como Scrum y Kanban, así que es uno de esas piezas de software donde puedes encontrar código de hace mas de una década. En ese tiempo no solo ha pasado por muchas manos y cabezas, sino que ha pasado por cambios significativos de tecnologías, estrategias y enfoques. Uno de los cambios mas significativos recientemente ha sido el enfoque en descomposición. Durante esta presentación me centraré en como en el ultimo par de años pasamos de movernos de compartir repositorio con Jira a apostar por la descomposición como clave de entregar valor tanto interna como externamente, qué estrategia hemos seguido y como hemos ido tomando la responsabilidad de lo que construimos bajo la cultura de YBIYRI. Traigo algunos ejemplos de beneficios de la descomposición que hemos encontrado (y buscado) por el camino y de que herramientas y tecnologías utilizamos (e.j. graphql, kotlin, etc).

  • Decomposing Java Applications.

    Oficinas de Liferay

    Para cerrar el año, aprovechamos la visita de Milen Dyankov a Madrid y organizamos junto con el grupo de usuarios de Liferay en España una sesión sobre Aplicaciones Java y distintas técnicas para descomponer las mismas, bien sea en modulos, librerías o microservicios. Una charla de la que podremos aprender: - Cómo diseñar aplicaciones que evolucionen en el tiempo y sigan siendo comprensibles. - Diferentes formas de descomponer Aplicaciones Java en componentes reutilizables con sus ventajas e inconvenientes. - En que se diferencia un API y un SPI en el contexto de arquitectura de aplicaciones y como cada una puede tener distintos impactos en la evolución de la aplicación La charla será en inglés, a continuación, os dejamos el abstract: Most Java developers happily use libraries in their applications. Many developers split their own code into what they call modules hoping that brings benefits. Yet way too often they end up having a (distributed?) big ball of mud sooner or later? This session aims to answer the question: why simply cutting things down into smaller pieces and calling them libraries, modules, microservices, ... does not work? In this talk, we'll go one abstraction level above and look at the process of decomposing a Java application into reusable components. We'll examine different ways to organize Java code in methods, classes, packages and modules. We'll talk about APIs, SPIs, hiding implementation details and enforcing module boundaries. Some of you will be surprised how well SOLID principles fits into the picture. But most important of all, we'll end up with application design that has a good chance to evolve over the years without introducing additional accidental complexity.