You might not yet be familiar with Couchbase. It's a distributed JSON database with an integrated caching layer. It features a variety of services allowing developers to choose, to make their own trade-off, for different use cases like Key/Value, Cache, Document, SQL, Fulltext search, Analytics, Eventing, Data synchronization and more. All in one box. It's more of a Data Platform than a Database. In this presentation, we will offer a tour of Couchbase’s features by building an application using Spring, Liquibase and testcontainer.
About Laurent Doguin
Laurent is a nerdy metalhead who lives in Paris. He mostly writes code in Java and structured text in AsciiDoc, and often talks about data, reactive programming and other buzzwordy stuff. He is also a former Developer Advocate for Clever Cloud and Nuxeo where he devoted his time and expertise to helping those communities grow bigger and stronger. He now runs Developer Relations at Couchbase.
En esta sesión, de la mano de Juan José Aguililla, vamos a poner la vista en uno de esos lenguajes de la JVM que lleva un tiempo subiendo en popularidad gracias a su potencia, su mayor concisión en la sintáxis y su facilidad de aprendizaje. Y esperamos que esta sea la primera de una nueva serie de charlas sobre Kotlin.
Java poco a poco ha ido adoptando patrones funcionales en sus diferentes versiones. En el caso de los tipos algebraicos (ADT) lo ha hecho poco a poco, casi en silencio, sin darlo ningún tipo de bombo. Primero fueron los los records, después los sealed class /interface para dar finalmente un soporte completo en Java 21 añadiendo Pattern Matching y el Record Pattern. En la charla explicaremos de manera breve que son los tipos algebraicos, como Java los soporta y los posibles usos, como la creación de DSLs (Domain Specific Language), estructuras de datos inmutables como listas, o codificación de efectos de lado como Optionals, o Try.
Sobre Miguel Rafael Esteban
Miguel Rafael Esteban Lleva más de 20 años trabajando como desarrollador y arquitecto de software en diferentes empresas, lenguajes de programación y plataformas. Una de esas personas que es habitual asistente en los meetups de MadridJUG, con un particular interés y experiencia en la programación funcional.
Did you know you can create an operator for your cluster using Groovy? seriously, you can use it. Like many of you, I’m a software developer who deploys into a cluster my applications, create services, configmaps, etc.... but I always thought that creating an operator to automatize my tasks was reserved for Go people. When I realized that you can also use Groovy, I created SwaggerOperator, a Kubernetes operator in Groovy to maintain the OpenApi definitions of my services. In this talk, I'll show you step-by-step how to create and deploy an operator from scratch using a real use case ... all using our favorite language, Groovy.
About Jorge Aguilera
Software developer in Groovy and Java for a long time in different environments, such as cash machines, bioinformatics environments or Fintech applications As I am passionate about Open Source, I like to share my knowledge by giving talks, mainly in the Madrid Groovy User Group, and publishing tech posts on my blog.
¡Java 21 ya está aquí! y vamos a celebrarlo y revisar lo que trae esta nueva versión de nuestro lenguaje y plataforma favoritos. Y lo haremos coincidiendo con la misma fecha de la release. En esta ocasión, como ya anunciamos antes del verano, tendremos una charla un poco distinta, algo un poco más coral en la que varios de nosotros podremos explicar las distintas funcionalidades que trae esta nueva versión. No solo la charla, después de la sesión, durante el networking, podremos compartir experiencias, comentar qué esperamos que nos aporte esta nueva versión o cuál es la funcionalidad que crees que supondrá un verdadero cambio en tu forma de programar. ¡Vente! ¡Te esperamos!
It may surprise you to learn that we developers are a patient, tolerant species. People pay us to do what we enjoy - write code and create working applications. In return, we will put up with all sorts of blockages and toil that get in the way of this - long build times, flaky tests, hard-to-debug toolchain failures and so on.
Is this truly the price we need to pay? Could there be a better world, where the build is as fast as it could possibly be? A world where problems that affect many developers are quickly identified and fixed?
Welcome to the world of Developer Productivity Engineering, where we can get computers to do what they’re good at (automation) to make developers’ lives easier, and make us more effective at our jobs. And while developer joy may be a difficult thing to sell to decision-makers, effective developers who are making the best use of their time, and their hardware, have a direct impact on an organization’s ROI.
In this talk, Trisha will explore what DPE is, give you some practical ways to get started, and discuss ways to help the leaders in your organisation to understand the enormous value DPE could unlock.
About Trisha
Trisha is a software engineer, Java Champion and author. Trisha has developed Java applications for a range of industries of all sizes, including finance, manufacturing and non-profit, and she's a lead developer advocate at Gradle. She has expertise in Java high-performance systems and dabbles with Open Source development.
Trisha’s exceptionally passionate about sharing things that help real developers. That might be: getting them up to speed on the latest version of Java; teaching them tips and tricks to improve their productivity; or promoting healthy technical communities across the globe. Trisha values helping all developers level up their career and skills at every step of their journey.
Read more from Trisha in the books “Head First Java”, “Getting to Know IntelliJ IDEA”, “97 Things Every Java Developer Should Know” and “What to Look for in a Code Review”.
¿Alguna vez has leído un test y has pensado que era muy complejo de entender lo que estabas aseverando? A mi sí, y por eso, tras investigar un poco, creo haber dado con la clave que me ayuda a que mis tests hablen el mismo idioma que mi código y cuenten las mismas historias.
Durante esta charla, veremos qué herramientas nos provee AssertJ para facilitar la comprensión de los tests y que nuestros tests no sólo comprueben datos.
Jorge Aguiar Martín
Desarrollador de software en Lean Mind, músico en la banda del pueblo y amante de los animales. Me apasiona la artesanía del software y buenas prácticas, así como serverless y las arquitecturas orientadas a eventos.
También co-organizo el meetup de Agile & Craftsmanship Canarias para devolver a la comunidad lo que me ha dado a mi.
En esta charla, Sergio del Amo introduce CRaC (Coordinated Restore at Checkpoint) y Micronaut CRaC:
Introducción a CRaC (Coordinated Restore at Checkpoint)
La integración de CRaC en Micronaut framework.
Micronaut CRaC y AWS Lambda SnapStart.
Opciones de distribución para CRaC y Micronaut framework.
En esta charla aprenderás que es CRaC, sus beneficios e inconvenientes y como usarlo en tus aplicaciones.
Sobre Sergio Sergio del Amo es Micronaut Product Development Lead en Unity Foundation. Es miembro del Micronaut Foundation Board Of Directors y del Technology Advisory Board. Sergio es un core committer del framework desde su creación. Ha escrito o editado casi todas las guías de Micronaut framework y contribuido a módulos como seguridad, AWS, Views, RSS, CRaC, MicroStream, Problem+JSON, Email,.. Sergio da charlas a menudo en conferencias y grupos de usuario sobre Micronaut Framework y otras tecnologías del ecosistema Java. Además es un fan de la automatización y el ecosistema de Apple.
Como en otros muchos lenguajes, en Java la memoria heap es gestionada. Esto es, el programa reserva memoria explícitamente, pero no indica cuando liberarla y delega en el recolector de basura.
Esto tiene grandes ventajas, pero también tiene algunos inconvenientes que se hacen más problemáticos cuando el programa tiene que trabajar con gran cantidad de datos o procesarlos muy rápido. Por ejemplo sistemas como Apache Kafka o bases de datos como Apache Pinot evitan en gran medida usar memoria gestionada y en su lugar reservan y liberan memoria manualmente en lo que se conoce como memoria offheap.
Esta es una charla técnica y práctica sobre cómo usar esta memoria en la JVM, cuándo merece la pena usarla y cómo afecta a nuestro código y nuestros despliegues incluyendo ejemplos en aplicaciones y librerías reales.
Sobre Gonzalo
Soy ingeniero de software especializado en desarrollar base datos en Java. Me encanta destripar la magia que hay detrás de las librerías y frameworks que uso en mi día a día y entender cómo diseñar y programar sistemas de alto rendimiento. He trabajado contribuyendo en ToroDB, Logtrust/Devo y Apache Pinot.
Este mes hemos tenido Micronaut, Quarkus en Kubernetes, así que ahora toca a Spring Boot🍃.
En esta sesión tendremos otra perspectiva de como podemos usar Java en Kuberntes sin sufrimiento alguno.
Siguiendo los mismo patrones y herramientas que ya conocemos, empezaremos desde el segundo mejor sitio de Internet 👉 https://start.spring.io, crearemos una aplicación de zero y terminaremos desplegando un nuevo Operador de forma nativa en Kubernetes. ¿Aceptas el reto?
Si no tienes experiencia con Kubernetes o Operadores, únete y lanza todas tus dudas a nuestro presentador!.
Ponente Abel Salgado Romero, Ingeniero de Software @ Spring Commercial Team desde 2020. Actualmente trabajando en llevar Spring Cloud Gateway a Kubernetes de forma nativa y facil usando Operadores. Fuera del trabajo, miembro de Barcelona JUG, Open-source advocate, Linux user/gamer y mentenedor de Asciidoctor Maven Plugin.
En esta charla, veremos cómo utilizar una nueva característica de Eclipse JKube para mejorar nuestra experiencia de desarrollo con Kubernetes. "remote-dev" que es como se llama esta nueva funcionalidad, nos permite programar nuestra aplicación desde el entorno local como si éste se tratase de un contenedor más del cluster. Si combinamos esto con tecnologías como Quarkus que nos permiten programar la aplicación en vivo, podemos obtener un feedback instantáneo del comportamiento de nuestra aplicación cuando se integra con otros componentes. Durante la demo, Marc nos mostrará cómo podemos utilizar esto con distintos frameworks y tecnologías incluso más allá de Java.
QuestDB es una base de datos open source especializada en series temporales y optimizada para ser muy rápida. Está implementada casi por completo en JAVA, lo que nos planteaba varios retos ya que queríamos tener rendimiento predecible y escapar del garbage collector.
Además, queríamos aprovechar al máximo las capacidades del hardware y los sistemas operativos modernos, y trabajar tan a bajo nivel como fuera posible. En la práctica esto significa que nuestro JAVA es bastante atípico y que tuvimos que reescribir una gran parte de las librerías estándar.
En esta sesión te contaremos la arquitectura general del proyecto y veremos el ciclo de ejecución de una query para entender algunas de las optimizaciones que hemos desarrollado y el efecto que tienen en el rendimiento.
Sesión conjunta entre Madrid-JUG y Madrid-GUG con Álvaro Sánchez-Mariscal.
Micronaut es un framework para la JVM moderno, full stack y diseñado para construir aplicaciones modulares, eficientes y fácilmente testeables.
Micronaut soporta un amplio abanico de tecnologías, una de las cuales es Kubernetes, permitiendo a los desarrolladores de aplicaciones construir aplicaciones cloud native que sean desplegadas en un cluster de Kubernetes, y que puedan beneficiarse de funcionalidades como configuración distribuida y descubrimiento de servicios (service discovery). Una de las funcionalidades del módulo Micronaut Kubernetes es el soporte incluido para implementar operadores de Kubernetes.
El esta charla, el commiter de Micronaut y autor de Micronaut Kubernetes Álvaro Sánchez-Mariscal, demonstrará como implementar operadores de Kubernetes en Java con Micronaut. Habrá una demostración en vivo que incluye lo siguiente:
- Una aplicación, escrita en Micronaut, cuyo propósito es ser desplegada a través de un operador de Kubernetes.
- Otra aplicación, también escrita en Micronaut, que contiene la lógica del operador de Kubernetes, y que creará Kubernetes deployments de la aplicación anterior. - Un CRD (Kubernetes custom resource definition) que se usará para gestionar el despliegue de la primera aplicación, y ante el cual reaccionará el operador de Kubernetes.