jueves, 23 de mayo de 2024

29 aniversario Java & TDD: en serio ¡Pruébalo!

¡Únete a nosotros para celebrar el 29 aniversario Java en Madrid! Desde su creación hace casi tres décadas, Java ha sido un pilar fundamental en el mundo del desarrollo de software, impulsando la innovación y la creación de aplicaciones que han transformado nuestra forma de interactuar con la tecnología. En este evento especial, conmemoraremos el éxito de Java, tendremos a un ponente de excepción compartiendo su sabiduría. ¡No te pierdas esta oportunidad de conectar con la comunidad de usuarios y celebrar juntos este hito histórico!

¿Alguna vez te has preguntado por cómo es eso de Desarrollar guiaDo por los Tests (TDD)? Pues, developer curioso, ¡esta sesión es para ti!
Prepárate para sumergirte en TDD (Test Driven Development) y explorar sus beneficios. Veremos los "secretos" que hay detrás de esta técnica, sus orígenes y las reglas que hay que seguir. Además compartiremos algunos consejos y trucos, y todo con una sesión de live coding en Java. Prepárate para mejorar tus habilidades de desarrollo con TDD: ¡más conocimiento, más ventajas y más confianza en tus aventuras al desarrollar!
PD: Hacer las pruebas antes del código de Producción puede parecer más divertido de lo que parece.

Ponente: Nacho Cougil
Nacho es un ingeniero de software de Barcelona, fan de las prácticas TDD y XP y ha estado trabajando con Java y otras tecnologías web desde antes del efecto 2000. Ha tenido experiencia en diferentes roles en el mundo IT ("chico-para-todo", desarrollador, líder de equipo, jefe de proyecto y CTO), ahora trabaja como Principal Software Engineer en Dynatrace haciendo software para monitorizar aplicaciones. Puede que lo hayas conocido antes como uno de los Java Champions, fundador del Barcelona Java Users Group ( https://www.meetup.com/BarcelonaJUG ) y co-fundador de la Barcelona Developers Conference, DevBcn ( https://www.devbcn.com ) la antigua Java and JVM Barcelona Conference (JBCNConf).

Video




 

miércoles, 8 de mayo de 2024

Tómate la PastiLLIA Ante la fiebre de la IA y los LLM's

Si llevas ya unos cuantos años en la industria del software, habrás vivido varias olas de hype. La que tenemos encima es la de la IA. Pero ¿Cuantó de hype y cuánto de cambio de paradigma?
Desde hace unos meses, me puse a investigar a fondo todo lo que tiene que ver con procesamiento de lenguaje natural en el contexto de los modelos del lenguaje y los RAG's, y tengo que decir que es un campo fascinante y decepcionante a partes iguales.
En esta charla pretendo contaros todos los aprendizajes que he tenido colaborando con el proyecto Justicio. Tratar de separar un el polvo de la paja, y hablaros de ciertos retos de ingeniería que no se suelen comentar.
Hablaremos del rol que tiene clave el hardware, las bases de datos de vectores, la importancia y descuidada tarea de la tokenización, y propondré algún dilema que otro sobre la industria ;-)

Jorge Barrachina
Jorge es ingeniero de sistemas por la UPM, los últimos 4 años dedicado a DevRel en distintas empresas. Lleva involucrado en comunidades desde 2012 (HTML5-Spain y otras).
Cuenta con varios cursos publicados en OpenWebinars y participa en varios podcast (NoSoloTech y Aguacates Mutantes, este último junto a varios DevRels). Últimamente más interesado en comunicación, psicología, ética y filosofía. Se declara escéptico y "escapista del main-stream".
Autor del Libro: DevRel Puzzle: Esos detalles que no te cuentan: https://www.amazon.es/dp/B0BW2KJMTQ

Video




 

lunes, 29 de abril de 2024

From Monolith to (µ)Services. What happens with my Data?

Rewriting systems from a monolithic architecture to a services architecture is a common task nowadays to make applications more accessible to maintain, deploy, and release. This migration should not be a big-bang rewrite where you directly switch from the old application to the new one. Instead, it is an incremental process during which functionalities are extracted one at a time into separate services.

The Strangler Fig Pattern describes a method whereby a new system slowly and incrementally grows over the top of an old system. Along the way, the whole system is continuously monitored so that old parts can be removed after the new services show correct behavior. The theory is pretty clear, and in services where no persistence is needed, it's considerably easier, but things become way more complex as soon as data is involved.

Come to this session to learn how Kafka and Debezium, through Change Data Capture and the Strangler Fig pattern, can help you confidently migrate from monoliths to a (micro)services architecture, even though databases are involved.

Ponente: Alex Soto

Video




 

martes, 16 de abril de 2024

Apostando por Quarkus en un proyecto real

Hace 4 años elegimos Quarkus como framework de desarrollo en Java. Pero también valoramos antes distintas opciones con compilación a nativo como Helidon o Micronaut y nos decantamos por Quarkus. (Spring se quedaba fuera porque no tenía compilación a nativo.)
¿Nos equivocamos hace 4 años?
En esta sesión compartiremos nuestro experiencia práctica y las razones por las que hoy, después de cuatro años de desarrollo, creemos que tomamos la decisión correcta. Algunas de esas razones de las que hablaremos son:
- Quarkus está centrado en el rendimiento
- Ya sabes Quarkus porque está basado en estándares
- Resulta muy gratificante desarrollar con Quarkus Todo basado en nuestra experiencia real utilizando Quarkus en un proyecto grande. Si estás valorando alternativas, quizá nuestra experiencia te puede servir.


Juan Antonio Jiménez
Arquitecto de Software en Autentia —adquirida por Izertis— desempeña su labor en uno de nuestros principales clientes internacionales. Tiene más de 25 años de experiencia y nunca se ha alejado demasiado del código. Disfruta mucho enfrentándose a mejoras de rendimiento y ayudando a los desarrolladores como uno más. En los últimos años ha estado trabajando con Quarkus en una arquitectura de microservicios compilados a nativo.

Video




martes, 9 de abril de 2024

Kotlin como si fuese Python

¿Te gustaría ejecutar código Kotlin desde la shell sin tener que compilar? ¡Ahora puedes! Y además usando cualquier librería de la JVM.
Para pequeños scripts y herramientas, tradicionalmente se ha usado Python por ser interpretado y fácil de usar en la shell. Ahora Kotlin puede ejecutarse igual que Python desde la línea de comandos.
En esta charla encontrarás información y ejemplos para:

- Hacer testing con scripts de Kotlin
- Crear pequeñas herramientas locales
- Implementar Backoffice sencillos

¡Ven y pasa tus scripts a Kotlin!


Ponente: Juan José Aguililla

Video




miércoles, 20 de marzo de 2024

Introducción a Parquet en Java

Parquet es un formato de ficheros columnar muy utilizado en el mundo del Data Engineering, pero poco conocido en el mundo Java tradicional.
El formato tiene muchas características que lo hacen muy útil en aplicaciones que no son BigData o incluso sin ser intensivas en datos.
En esta charla, se explicará cómo funciona Parquet internamente, beneficios y ventajas, herramientas existentes para procesarlos, y te ahorrará el trabajo de tener que entender el ecosistema de librerías y lenguajes, y cómo encajan a la hora de procesar ficheros Parquet.
Se mostrará cómo trabajar con ellos en Java sin necesidad de usar herramientas o frameworks complejos, presentándolo como algo asequible a cualquiera que no esté metido en el mundo Big Data y necesite intercambiar y procesar ficheros de forma rápida y segura.

Jerónimo López
Jerónimo López es Backend Staff Engineer en Clarity AI, con 20 años de experiencia laboral. La mayor parte de su carrera ha sido en el ecosistema Java, y es co-coordinador de MadridJUG. Pasando por la consultoría, fundó su propia startup: Otogami, el mejor buscador y comparador de ofertas de videojuegos del mundo.

Video




jueves, 7 de marzo de 2024

Kotlin for Java Programmers

Volvemos con otra sesión introductoria para acercarnos al mundo de Kotlin. En esta ocasión Jose Ramón Alonso, nos ofrecerá en esta sesión un curso rápido de Kotlin para programadores de Java empezando casi desde cero y hasta alcanzar un nivel intermedio si el tiempo lo permite. Se analiza la comparación entre los dos lenguajes y la intercomunicación entre código Java y código kotlin.
La sesión está dirigida a los programadores de nivel intermedio o avanzado de Java o de lenguajes similares.
Se aconseja echar un vistazo al código del repositorio https://github.com/josealonso/Kotlin-for-Java-programmers/ antes de asistir a la conferencia.
 

José Ramón Alonso
José Ramón Alonso Tapia es un profesional que empezó como programador de sistemas. En los últimos años se ha enfocado en Java y en su ecosistema. Hace pocos meses tuvo su primer contacto con Kotlin y le gustó mucho el lenguaje.

Video




jueves, 22 de febrero de 2024

The Emperor Has No Docs

Software, like board games, needs instructions. Should I draw a card or play my card first? Will the connection be reused, or should I use a connection pool? In heroic tales, a protagonist needs directions from elder scrolls to user magical artifacts and complete their mission.In this talk, Ignasi will explain his journey from neglecting docs to considering them an important step on the software delivery cycle.

Ignasi will share tips ant tricks he’s been collecting over the years and focus on which habits he adopted to make sure he doesn’t forget docs. Ignasi will also share the types of audience and cases where documentation can save time and money to your organization.

After discussing the importance of documentation within several teams, Ignasi will try to counter the usual arguments and excuses those who don’t document often use. No, the code is not the documentation, the code doesn’t tell the whole story. You can have a strong type system restricting how to call an API and still be an unusable API: “Hmm, I need a Token here, where do I get it?”.

Join Ignasi for a talk about board games, child tales, and embarrassing PRs. This talk targets beginner/daily user/experts alike.

Video



jueves, 8 de febrero de 2024

Clean Code, ¿de verdad vale la pena?

Como developers participamos cada día en la evolución de software, ya sea añadiendo nuevas e interesantes funcionalidades, así como adaptando las actuales o incluso integrando con sistemas o plataformas externos.
Pero, ponemos el mismo esfuerzo en hacer que nuestro código sea robusto, mantenible, consistente, seguro, claro y bien probado? Realmente vale la pena invertir tiempo en ello ?
En esta charla seguiremos la historia de nuestro héroe y su lucha contra el monstruo del bad code y veremos la importancia del "clean code" así como las ventajas que aporta (y las penas que evita) introduciendo conceptos como el Clean As You Code y herramientas free y opensource.
Prepárate para una historia de aventuras, monstruos, luchas, técnicas y victorias al estilo de Juego de Tronos ;)
Clean Code va mas allá del software que se produce y de su lenguaje de programación.
Es parte fundamental y de crecimiento en la figura de un developer, algo que nos representa sin importar donde o con que lenguaje trabajemos. No perdamos el hilo.

About Jonathan Vila

Java Champion, Organiser at BarcelonaJUG and cofounder of JBCNConf and DevBcn conferences in Barcelona.
Currently working as Developer Advocate in Java for Sonarsource (SonarLint, SonarQube), focused on Clean Code & Security.
Former SE at Tetrate, SSE at Red Hat in Keycloak team, SSE at Ocado Technology, SSE at Netcentric.
I have worked as a (paid) developer since the first release of The Secret of Monkey Island, about 30 years ago using Go on Kubernetes for a Service Mesh layer on top of Istio | Java on Kubernetes for K8s Operator, Rest API, using Quarkus, GraalVM, Apache Camel | PHP | VB | Python | Pascal | C
Very interested in simulated reality, psychology and Java.

Video


martes, 28 de noviembre de 2023

Couchbase through Examples with Spring Boot

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.

Video


martes, 14 de noviembre de 2023

Primeros pasos con Kotlin

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.

Video


martes, 24 de octubre de 2023

Tipos Algebraicos en Java 21

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.

Video


martes, 3 de octubre de 2023

Let Groovy operate your k8s cluster

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.

Video


martes, 19 de septiembre de 2023

Novedades Java 21

¡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!

Video


miércoles, 13 de septiembre de 2023

Developer Productivity Engineering: What's in it for me?

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

Video


jueves, 15 de junio de 2023

Mejorando nuestras aserciones sobre el dominio con AssertJ

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

Video:


martes, 23 de mayo de 2023

Micronaut CRaC

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.

Video:



martes, 11 de abril de 2023

Gestionando memoria en la JVM como si fuera C

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.

Video:


Slides: https://slidr.io/gortiz/using-memory-in-the-jvm-as-it-was-c#1

martes, 28 de marzo de 2023

Spring + Native + Kubernetes = Sí se puede!

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.



Presentación y código

martes, 7 de marzo de 2023

Desarrollo local de aplicaciones Java en Kubernetes

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.

 

Video: