Refactoring to Java 10, 40 Jenkins Features and Plugins You Wished You Had Known!

Registration

Registration is optional, but for planning we would still prefer registration on our Meetup page.

Date

06.03.2018 at 19:00h at Uni Mannheim A5, 6, room C013 (How to get there).

Language

The talks will be held in English.

Abstract

Refactoring to Java 10

A sneak peek at the features that will (likely) be in Java 10. For each feature, we’ll explain what it’s trying to accomplish, what it’ll probably look like (with code examples!), and how you can already prepare your source code so that you’ll be ready once these features are released. For a few of these, we’ll show you how Project Lombok can bring the future to you, today!

We’ll explain:

  • Value types, as in, types that ‘code like a class, work like an int’. (JEP 169)
  • Generic specialization: List; you can finally do it! (JEP 218)
  • Pattern Matching. No, not the regular expression kind. Like switch(), but more versatile. (JEP 305)
  • var/val: declare variables and let the compiler sort out the types by looking at the expression you assign to it. (JEP 286)
  • Declaration-site generics. Ever wonder why you have to sprinkle ? extends all over the place to make complex generics work? This can help. (JEP 300)
  • Generics in enums. (JEP 301)
  • Domain objects (also known as ‘value classes’): No more writing / generating of getters, setters, equals, etcetera. (No JEP yet).

40 Jenkins Features and Plugins You Wished You Had Known!

Did you know that an average Jenkins installation has around 100 plugins installed to build and deploy software? And more and more plugins are added every day? Together with the new features in the weekly releases, Jenkins attempts to stay current in a competitive Continuous Integration and Continuous Deployment tooling landscape.

The downside of all these possibilities is that it is hard to wrap your head around what is possible with Jenkins and what are best practices.

At a rate of 1 tip per minute I’ll take you through some core and advanced features to successfully unleash the full potential of Jenkins in your CD process. Tips are applicable to both Jenkins novices and pros. So even if you know the differences between Declarative and Scripted Pipelines, you’ll probably pick up some new tricks.

Bio

Roel Spilker is a technology evangelist at TOPdesk. He’s been a professional java programmer and teacher since 1999. Roel has been a fan of compile-time checking. Together with Reinier Zwitserloot he is the inventor of Project Lombok, a compiler/IDE plugin to bring the java programming language into the next decennium.

Reinier Zwitserloot has been interested in programming language evolution ever since he started working with Java professionally 15 years ago. As a result, together with Roel Spilker he is the inventor of Project Lombok, a compiler/IDE plugin to bring the java programming language into the next decennium.

Joep Weijers is a Build Master at TOPdesk with a keen interest in delivering quality software continuously. He loves playing around with Jenkins Pipelines, Selenium, Docker and keeps in touch with his inner developer by educating his colleagues on testable Java code.

Refactoring mit monadischen Transaktionen

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 22.02.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (Anfahrtsbeschreibung).

Abstract

Spätestens seit Java 8, gibt es monadische Typen in Java. Aber was bedeutet das eigentlich? Was sind die Eigenschaften die Monaden ausmachen? Und wo liegen unsere Schwierigkeiten beim Verständnis von Monaden? Dieser Vortrag beschreibt was eine Monade ist und wie wir eine monadische Transaktion nutzen können um in domänenspezifischer Sprache mit einer Datenbank zu reden. Hierbei bauen wir monadische Transaktionen in ein vorhandenes Repository ein. Weiter beleuchten wir die Vor- und Nachteile dieses Ansatzes und diskutieren die Unterstützung von Monaden in Java. Voraussetzung sind erste Erfahrungen mit funktionaler Programmierung und Lambdas.

Bio

Gregor ist einer der Organisatoren der Java User Group in Mannheim und freiberuflicher Softwareentwickler. Sein erstes Programm war ein in BASIC geschriebenes Text Adventure. Inzwischen schreibt er Fachartikel und hält Vorträge auf Konferenzen und User Groups.

Agile Java Day (aka Venkat's 50 JUG tour)

Registration

Participation requires registration via our Meetup page.

Around lunch time we will get Pizza and drinks. We’d like to thank our sponsors for supporting us. It wouldn’t be possible to make this event happen without andrena objects, fluidops, Liveperson, OIO and Pivotal.

Date

Saturday, Jan 27th 2018 from 9:00 to 17:00 (4 talks at 90 mins each) at C-Hub in Hafenstraße 25-27, 68159 Mannheim.

Language

The talk will be held in English.

Abstract

Venkat Subramaniam is a widely known author and speaker at many international conferences. As part of his world-wide 50 JUG tour he will come to Mannheim (the only stop in Germany!) for a day of teaching on Java topics. We are looking forward to have him presenting the following topics:

Exploring Java 9

If Java 8 was all about how we code, Java 9 is all about how we will build. Modularization will have the biggest impact of any change that happened in Java since its inception. In this presentation we will learn about the need for modularization, how it impacts development, the rules to follow when creating modules, and the effect it has on legacy code. We will explore creating module, using modules, readability, exports, automatic modules, and unnamed modules.

From Functional to Reactive Programming:

We’re in the midst of renewed interest in functional programming. At the same time we see quite a bit of excitement around reactive programming. Where did reactive programming come from? How is it related to functional programming, if at all? In this presentation we will discuss the merits of reactive programming and how functional programming concepts seamlessly transition into the programming model espoused by reactive programming.

The Power and Perils of Parallel Streams

“If streams can be parallel, why not make them parallel all the time?” is a common question from developers getting introduced to Java 8 streams. In this talk we’ll take on three separate topics. 1. When to consider parallelization and when not to. 2. How to parallelize, how to decide on number of threads, and how to control the threads pool. 3. Learn about some common mistakes people make when using parallel streams. The goal of this talk is for us to learn when and how to make good use of parallel streams.

Twelve Ways to Make Code Suck Less

We all have seen our share of bad code and some really good code as well. What are some of the common anti patterns that seem to be recurring over and over in code that sucks? By learning about these code smells and avoiding them, we can greatly help make our code better. Come to this talk to learn about some common code smell and how to improve the quality of code.

Bio

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.

Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on twitter at @venkat_s.

Agenda

  • 8:30 to 9:00 Reception
  • 9:00 to 9:15 Introduction
  • 9:15 to 10:45 Exploring Java 9
  • 10:45 to 11:00 Break
  • 11:00 to 12:30 From Functional to Reactive Programming
  • 12:30 to 13:45 Lunch
  • 13:45 to 15:15 The Power and Perils of Parallel Streams
  • 15:15 to 15:30 Break
  • 15:30 to 17:00 Twelve Ways to Make Code Suck Less

Sponsors

We’d like to thank our sponsors for supporting us. It wouldn’t be possible to make this event happen without andrena objects, fluidops, Liveperson, OIO and Pivotal.

Vavr - Functional Java the Easy Way

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 15.11.2017 um 19:00 Uhr im Mafinex Teil C, Julius-Hatry-Straße 1, 68163 Mannheim-Lindenhof im Besprechungsraum C4 statt (Anfahrtsbeschreibung).

Info

Bring your Laptop. We will write some Vavr-Code.

Abstract

This talk will introduce you to Vavr, a library that borrows heavily from Scala and applies Scala’s ideas to plain old Java. We will cover some of the productivity enhancements and syntactic sugar that Vavr offers, such as pattern matching aka. structural composition, value types and functional data types.

Vavr can be a building block for functional business code, that is easy to maintain and understand. It consists of a broad set of ideas and enhancements to Java and makes developing in a more-or-less functional style so much easier. Developers that have tried Scala but have to develop business assets using Java do not have to despair anymore.

This quick overview shows how to improve business code using Vavr using actual code from our projects (although anonymized for obvious reasons) and give a taste of the features and benefits a small library like Vavr offers.

Bio

David Schmitz is pricinpal architect at Senacor Technologies with a history of + 13 years of working in various projects using a bunch of different stacks and environments. Current focus is on migrating architectures and organizations, such that our customers can cope with the challenges of the digital age.

Java Libraries You Can’t Afford to Miss

Registration

Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer Meetup-Seite.

Termin

Der Vortrag findet am 12.10.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (Anfahrtsbeschreibung).

Language

The talk will be held in English.

Abstract

The Java language has passed its 20th anniversary, and with it comes an incredible range of tools libraries to choose from; sometimes there are actually too many choices for the same task. This presentation covers those libraries that have risen to the top, having proved themselves to be worthy of a place in every developer’s toolbox, for both production and testing code. It also discusses some fairly new libraries that are bound to make a big impact in the ecosystem.

Bio

Andres is a Java/Groovy developer and a Java Champion with more than 17 years of experience in software design and development. He has been involved in web and desktop application development since the early days of Java. Andres is a true believer in open source and has participated on popular projects like Groovy, Griffon, and DbUnit, as well as starting his own projects (Json-lib, EZMorph, GraphicsBuilder, JideBuilder). Founding member of the Griffon framework and Hackergarten community event.