• 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.

    7
  • 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.

    2
  • 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

    4
  • 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.

    9
  • 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_

    5
  • 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).

    3
  • 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.

    6
  • Open Source, Java, Data Pipelines & public city bike. What ties it all together?

    En esta ocasión, aprovechamos la visita a Madrid del Java Champion Rustam Mehmandarov (@rmehmandarov), Líder de javazone y uno de los organizadores de NorwegianJUG (@javaBin), para invitarle a que comparta con nosotros un ejemplo real de uso de Apache Beam. ¡No podíamos dejar pasar esta oportunidad! ¿la vas a dejar pasar tú? La charla será en inglés, a continuación tienes el abstract Abstract: A few years ago moving data between applications and datastores included expensive monolithic stacks from the large software vendors with little flexibility. Now with frameworks like Apache Beam and Apache Airflow, we can schedule and run data processing jobs for both streaming and batch with the same underlying code. In this presentation we demonstrate the concepts of how this can glue your applications together, and we will show how we can run a data pipeline from Apache Kafka through Hadoop Flink to Hive, and move this to Pubsub, Dataflow and Bigquery by changing a few lines of Java in our Apache Beam code.

    6