majug2024-01-06T09:57:58+00:00https://www.majug.demajugJavaLand 2024 - die Jubiläumsausgabe der Community-Konferenz2024-04-09T00:00:00+00:00https://www.majug.de/2024/04/09/javaland<h3 id="termin">Termin</h3>
<p>Die Konferenz findet vom 09. - 11.04.2024 auf dem Nürburgring statt.</p>
<h3 id="infos">Infos</h3>
<p><a href="https://www.javaland.eu"><img src="/public/img/javaland_2024.png" /></a></p>
<p>Vom 9. bis 11. April 2024 findet die Jubiläumsausgabe zum zehnten Geburtstag der JavaLand statt.</p>
<p>Zwei Tage Konferenz, ein Schulungstag, zehn Jahre <a href="https://www.javaland.eu/de/home/">JavaLand</a> – Jatumba! Sichert euch noch bis zum 15. Februar euer Ticket zum exklusiven Frühbucher-Preis und bucht eure Übernachtung gleich mit dazu!</p>
<p>Es erwartet Dich ein <a href="https://meine.doag.org/events/javaland/2024/agenda/#eventDay.1712613600">spannendes Vortragsprogramm</a> mit internationalen Top-Rednern und eine Menge Aktivitäten von der Community. <strong>Auch das Majug-Orga-Team ist mit Vorträgen dabei!</strong></p>
<p>Beim anschließenden Schulungstag kannst Du Deine Kenntnisse noch etwas vertiefen. <a href="https://meine.doag.org/events/javaland/shop/">Buche jetzt Dein Ticket</a>.</p>
<p><strong>Eine Veranstaltung des iJUG e.V..</strong></p>
Spring Modulith - Spring for the Architecturally Curious Developer2024-01-24T00:00:00+00:00https://www.majug.de/2024/01/24/spring-modulith<p>Unser nächster Vortrag von <strong>Oliver Drotbohm</strong> geht sich um das Thema <strong>Spring Modulith - Spring for the Architecturally Curious Developer</strong>.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/298280616/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.01.2024 um 19:00 Uhr statt. Diesmal bei <a href="https://maps.app.goo.gl/XQteBQAY6EQm5S7U7">bitExpert</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>The architecture and design of an application significantly influences its maintainability, testability, and quality in general. Spring has always been a versatile tool that supports architects implementing the practices and patterns that have emerged to align technical building blocks in their code bases with domain concepts and boundaries. It lets developers build applications that clearly reflect architectural ideas and that are ultimately more amendable and maintainable. Key aspects of that are code organization for encapsulation, the Spring bean relationship arrangement, and how to use domain events to decouple logically individual parts of the application even within a singular artifact.</p>
<p>The talk discusses those patterns and approaches to introduce Spring Modulith to, in turn, show how they uniquely position Spring developers to build better structured, more maintainable applications.</p>
<p>Die Architektur und das Design einer Applikation beeinflussen ihre Wartbarkeit, Testbarkeit und Qualität im Allgemeinen. Spring war schon immer ein vielseitiges Werkzeug, das Architekt:innen dabei unterstützt, Muster zu implementieren, mithilfe derer technische Bausteine der Applikation mit Domänenkonzepten und -grenzen verknüpft werden können. Es erlaubt Entwickler:innen Anwendungen zu schreiben, die ihre architektonischen Ideen deutlich reflektieren und so ultimativ änder- und damit wartbarere Anwendungen zu schreiben. Schlüsselaspekte dahin gehend sind Codeorganisation, das Spring-Bean-Arrangement und die Nutzung von Domänen-Events, um fachlich individuelle Teile der Applikation voneinander zu entkoppeln.</p>
<p>Der Vortrag diskutiert diese Muster und Ansätze und stellt Spring Modulith vor, um zu zeigen, wie Entwickler:innen in die Lage versetzt werden, besonders gut strukturierte und wartbare Anwendungen zu schreiben.</p>
<h3 id="bio">Bio</h3>
<p>Oliver Drotbohm is a member of the Spring engineering team at VMware. His work focused on software architecture, DDD, REST, and persistence technologies. His new book, “Modulithic Applications with Spring”, is due for release in 2024.</p>
<p>Oliver Drotbohm ist Teil des Spring Engineering Teams bei VMware. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Domain-Driven Design, REST, Spring und Persistenztechnologien. Sein neues Buch „Modulithic Applications with Spring“ erscheint 2024.</p>
<p><strong>Eine Veranstaltung des iJUG e.V., organisiert durch die JUG Mannheim (majug).</strong></p>
What the CRaC - Superfast JVM startup2023-10-19T00:00:00+00:00https://www.majug.de/2023/10/19/jvm-crac<p>Unser nächster Vortrag von <strong>Gerrit Grunwald</strong> dreht sich um das Thema <strong>What the CRaC - Superfast JVM startup</strong>.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/295820209/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 19.10.2023 um 19:00 Uhr bei <a href="https://www.andrena.de/">andrena objects</a> statt. <a href="https://www.google.de/maps/search/EASTSITE+ELYSIUM+Konrad-Zuse-Ring+23+68163+Mannheim/@49.4752962,8.5063156,17z/data=!3m1!4b1">EASTSITE ELYSIUM, Konrad-Zuse-Ring 23, 68163 Mannheim</a></p>
<h3 id="abstract">Abstract</h3>
<p>In a world where microservices are more and more a standard architecture for Java based applications running in the cloud, the JVM warmup time can become a limitation. Especially when you look at spinning up new instances of an app as response to changes in load, the warmup time can be a problem. Native images are one solution to solve these problems because their statically ahead of time compiled code simply doesn’t have to warmup and so has short startup time. But even with the shorter startup time and smaller footprint it doesn’t come without a drawback. The overall performance might be slower because of the missing JIT optimisations at runtime. There is a new OpenJDK project called CRaC (Coordinated Restore at Checkpoint) which goal it is to address the JVM warmup problem with a different approach. The idea is to take a snapshot of the running JVM, store it in files and restore the JVM at a later point in time (or even on another machine).
This session will give you a short overview of the CRaC project and shows some results from a proof of concept implementation.</p>
<h3 id="bio">Bio</h3>
<p>Gerrit Grunwald is a software engineer that loves coding for around 40 years already. He is a true believer in open source and has participated in popular projects like JFXtras.org as well as his own projects (TilesFX, Medusa, Enzo, SteelSeries Swing, SteelSeries Canvas, JDKMon).
Gerrit blogs regularly at http://harmonic-code.org, he is an active member of the Java community, where he founded and leads the Java User Group Münster (Germany), he is a JavaOne rockstar and a Java Champion. He is a speaker at conferences and user groups internationally and writes for several magazines.</p>
<p><strong>Eine Veranstaltung des iJUG e.V., organisiert durch die JUG Mannheim (majug).</strong></p>
Writing a Java Profiler in Pure Java2023-07-13T00:00:00+00:00https://www.majug.de/2023/07/13/writing-a-java-profiler<p>Unser nächster Vortrag von <strong>Johannes Bechberger</strong> dreht sich um das Thema <strong>Profiling in Java</strong>.</p>
<p>Die Firma <strong>LivePerson</strong> heißt uns freundlicherweise in ihren Räumlichkeiten in den Mannheimer Quadraten willkommen.</p>
<p>Wir verlosen ein Ticket für <a href="https://jax.de/muenchen/">die W-JAX im November in München</a> unter allen Besuchern.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/294134437/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 17.07.2023 um 19:00 Uhr bei <a href="https://www.liveperson.com/">LivePerson Germany GmbH</a> in <a href="https://maps.app.goo.gl/5YHvJPGSfrKrvP8y8?g_st=ic">P3 1-3, 68161 Mannheim</a> statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Ever wondered how a Java profiler works? Many people are afraid of Java profilers. But profilers aren’t rocket science: A usable Java profiler can be written in less than 300 lines of pure Java code.</p>
<p>This talk will give the fundamentals of Java profiling and how Java profilers typically work, followed by a detailed explanation of how to develop a functioning profiler in a few lines of Java code.
This talk will also explain how you can use it in production to analyze performance issues and show briefly how to work with a widely used open-source profiler that is based on the same principles.</p>
<p>The talk is based on my blog post https://mostlynerdless.de/blog/2023/03/27/writing-a-profiler-in-240-lines-of-pure-java/</p>
<h3 id="bio">Bio</h3>
<p><strong>Johannes Bechberger</strong> is a JVM developer working on profilers and their underlying technology in the SapMachine team at SAP.
This includes improvements to async-profiler and its ecosystem, a website to view the different JFR event types, and improvements to the FirefoxProfiler,
making it usable in the Java world. He started at SAP last year after two years of research studies at the KIT in the field of Java security analyses.
His work today is comprised of many open-source contributions and his blog, where he writes regularly on in-depth profiling and debugging topics.</p>
<p>Blog: <a href="https://mostlynerdless.de">mostlynerdless.de</a>, Twitter: <a href="https://twitter.com/parttimen3rd">@parttimen3rd</a></p>
<p><strong>Eine Veranstaltung des iJUG e.V., organisiert durch die JUG Mannheim (majug).</strong></p>
Harbor für Entwickler2023-06-22T00:00:00+00:00https://www.majug.de/2023/06/22/harbor-fuer-entwickler<p>Unser nächster Vortrag von <strong>Vadim Bauer</strong> dreht sich um das Thema <a href="https://goharbor.io/"><strong>Harbor</strong></a>. Die Firma <strong><a href="https://www.andrena.de/">andrena objects</a></strong> heißt uns freundlicherweise in ihren Räumlichkeiten in <strong>Mannheim-Eastsite</strong> willkommen und wird auch <strong>Getränke und Pizza</strong> bereitstellen.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/293804015">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 22.06.2023 um 19:00 Uhr bei <a href="https://www.andrena.de/">andrena objects</a> statt. <a href="https://www.google.de/maps/search/EASTSITE+ELYSIUM+Konrad-Zuse-Ring+23+68163+Mannheim/@49.4752962,8.5063156,17z/data=!3m1!4b1">EASTSITE ELYSIUM, Konrad-Zuse-Ring 23, 68163 Mannheim</a></p>
<h3 id="abstract">Abstract</h3>
<p>Harbor, ein CNCF-Graduate-Projekt, ist bekannt als Open-Source-Registry für Container-Images. Es bietet Konformität, Leistung und Interoperabilität um Artefakte auf Plattformen wie Kubernetes und Docker zu verwalten. In diesem Vortrag geht Vadim darauf ein, welche Arbeitsabläufe und Funktionen von Harbor das Leben von Entwicklern leichter machen. Dies umfasst <strong>Image immutability</strong>, <strong>Tags und Labels</strong>, <strong>Replikation aus anderen Repositories</strong> und <strong>Automation</strong>. Weiterhin erklärt Vadim was ein Software Bill Of Material (SBOM) ist und was es mit Supply Chain Security auf sich hat. Im Fokus steht hierbei Harbor, aber die besprochenen Konzepte und Lösung können zum Teil auch mit anderen Registries oder Open Source Tools umgesetzt werden.</p>
<h3 id="bio">Bio</h3>
<p><strong>Vadim</strong> ist ein Silberrücken in der Containerisierung und gehörte zu den Pionieren, die 2013 Container in der Produktion einsetzen. Als Maintainer des CNCF-Projekts Harbor widmet er sich der, die Verwaltung von Container-Images mit Harbor und anderen
CNCF-Projekten zu verbessern. Mit seiner jahrzehntelangen Erfahrung in der Softwareentwicklung konzentriert er sich auf die
Developer Experience (DX) und der Suche nach einfachen Lösungen für möglichst viele Entwickler. Bei 8gears bietet Vadim professionelle Dienstleistungen rund um Harbor und Harbor as a Service für Cloud-Anbieter, ISVs und Unternehmen an.</p>
<p><strong>Eine Veranstaltung des iJUG e.V., organisiert durch die JUG Mannheim (majug).</strong></p>
Data-Oriented Programming in Java2023-05-25T00:00:00+00:00https://www.majug.de/2023/05/25/data-oriented-programming<p>Unser nächster Vortrag von <strong>Nicolai Parlog</strong> dreht sich um das Thema <strong>Data Oriented Programming</strong>.</p>
<p>Die Firma <strong>LivePerson</strong> heißt uns freundlicherweise in ihren Räumlichkeiten in den Mannheimer Quadraten willkommen.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/293466511">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 25.05.2023 um 19:00 Uhr bei <a href="https://www.liveperson.com/">LivePerson Germany GmbH</a> in <a href="https://maps.app.goo.gl/5YHvJPGSfrKrvP8y8?g_st=ic">P3 1-3, 68161 Mannheim</a> statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Data-oriented programming models data as data: records for entities and sealed types for alternatives. Combined with pattern matching we can define operations on the data without overloading it with functionality.</p>
<p>In data-oriented programming (DOP), we model data as data and polymorphic behavior with pattern matching. This talk will introduce the concept of DOP and its four principles:</p>
<ul>
<li>model the data, the whole data, and nothing but the data</li>
<li>data is immutable</li>
<li>validate at the boundary</li>
<li>make illegal states unrepresentable</li>
</ul>
<p>We’ll also explore how to use pattern matching as a safe, powerful, and maintainable mechanism for ad-hoc polymorphism on such data that lets us define operations without overloading the types with functionality. The talk ends with a juxtaposition to OOP, so you not only learn how to employ DOP but also when (not).</p>
<h3 id="bio">Bio</h3>
<p><strong>Nicolai (aka nipafx)</strong> is a Java enthusiast focused on language features and core APIs with a passion for learning and sharing – in articles, newsletters, and books; in tweets, videos, and streams; in demo repos and at conferences – more on all of that on nipafx.dev. He’s a Java Developer Advocate at Oracle and organizer of Accento. That aside, he’s best known for his haircut.</p>
<p><strong>Eine Veranstaltung des iJUG e.V., organisiert durch die JUG Mannheim (majug).</strong></p>
Was Java-Entwickler über Offensive Security wissen sollten2023-04-13T00:00:00+00:00https://www.majug.de/2023/04/13/java-security<p>Unser nächster Vortrag von <strong>Kai Ullrich</strong> dreht sich um das Thema <strong>Java Security</strong>, das immer mehr Relevanz bekommt.</p>
<p>Die Firma <strong>Bridging IT</strong> heißt uns freundlicherweise in ihren Räumlichkeiten in den <strong>Mannheimer Quadraten</strong> willkommen und wird auch <strong>Getränke und Pizza</strong> bereitstellen.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/293466511">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 13.04.2023 um 19:00 Uhr bei <a href="https://www.bridging-it.de/">Bridging IT</a> statt. <a href="https://www.google.de/maps/place/BridgingIT+GmbH/@49.48412,8.4703408,17z/data=!3m1!4b1!4m6!3m5!1s0x4797cc21bf0b399b:0x55af1f1e67367aca!8m2!3d49.48412!4d8.47207!16s%2Fg%2F1tfjpngm">BridgingIT GmbH, N7 5-6, Mannheim</a></p>
<h3 id="abstract">Abstract</h3>
<p>Die meisten haben die Schockwellen von <strong>log4shell</strong> mitbekommen, aber wussten Sie auch, dass die zugrundeliegende <strong>Exploitation-Technik</strong> bereits seit 2016 wohlbekannt war? Und dass sie auch bei anderen Schwachstellen für Angreifer zentrale Wichtigkeit hat? Wussten Sie, dass XSL-Transformation brandgefährlich sein kann? Können Sie sich vorstellen, wie das Model-Binding in Spring MVC im April 2022 perfide ausgenutzt wurde, um Schadcode auf die Zielmaschine zu bringen?</p>
<p>Tauchen Sie mit dem Referenten für eine Stunde ein in die Welt der <strong>Java-Schwachstellen und ihrer Ausnutzung</strong> und erweitern Sie Ihren Horizont um Dinge, die in ihrem nächsten Projekt den Unterschied machen könnten zwischen sicher und unsicher.</p>
<p><strong>Kai Ullrich</strong> blickt zurück auf beinahe 25 Jahre in der IT-Sicherheit. Die vergangenen sechs Jahre hat er sich mit Penetration Testing und Sicherheitsforschung befasst. In dieser Zeit fand er zahlreiche 0-day-Schwachstellen in namhaften Produkten. Aktuell ist er tätig als freischaffender Berater für Cyber-Sicherheit und unterstützt seine Kunden dabei, organisch das Sicherheitsniveau ihrer Organisation zu erhöhen.</p>
When an immutable Object meets a modifiable force2023-03-15T00:00:00+00:00https://www.majug.de/2023/03/15/immutable-Object-modifiable-force<p>Wir sind zurück mit einem weiteren spannenden Vortrag, dieses Mal als reine Präsenzveranstaltung. Die Firma <strong><a href="https://www.andrena.de/">andrena objects</a></strong> heißt uns freundlicherweise in ihren Räumlichkeiten in <strong>Mannheim-Eastsite</strong> willkommen und wird auch <strong>Getränke und einen Snack</strong> bereitstellen.
Außerdem verlosen wir unter allen Anwesenden eine <strong>Freikarte für die diesjährige <a href="https://jax.de">JAX-Konferenz</a></strong> Anfang Mai in Mainz!</p>
<p>Die beiden Sprecher <strong>Reinier Zwitserloot</strong> und <strong>Roel Spilker</strong> haben uns schon in der Vergangenheit besucht und einen spannenden und kurzweiligen Vortrag abgeliefert, die Erwartungen an ihren Vortrag <strong>When an immutable Object meets a modifiable force</strong> sind also hoch :-)
Der Vortrag erfolgt auf Englisch.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/292077354/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 15.03.2022 um 19:00 Uhr bei <a href="https://www.andrena.de/">andrena objects</a> statt. <a href="https://www.google.de/maps/search/EASTSITE+ELYSIUM+Konrad-Zuse-Ring+23+68163+Mannheim/@49.4752962,8.5063156,17z/data=!3m1!4b1">EASTSITE ELYSIUM, Konrad-Zuse-Ring 23, 68163 Mannheim</a></p>
<h3 id="abstract">Abstract</h3>
<p>Immutables are great! You can pass them around without worries, have multiple threads use them concurrently, and you never need to copy them.</p>
<p>But your program state changes the whole time. In the past, most program state was modeled using mutable data structures. But now we’re realizing that we can make most of the state immutable, and only modify the parts that need modification.</p>
<p>During this presentation, Reinier and Roel will take you through the current state-of-the-art standard java features and libraries, and discuss the latest ideas for the future of java, as gathered from blog posts, presentations by core committers and public jdk mailing lists.</p>
<p>And they wouldn’t be core Lombok developers if they wouldn’t point out what features they already built to help developers create immutable data structures in an ever changing world.</p>
Project Loom: Broadening Concurrency2022-09-22T00:00:00+00:00https://www.majug.de/2022/09/22/loom-broadening-concurrency<h3 id="registration">Registration</h3>
<p>Wir freuen uns über eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/287344418/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 22.09.2022 um 19:00 Uhr bei Bridging IT statt. N7 5-6, 68161 Mannheim, Eingang links neben dem (ehemaligen) Saturn. Kostenloses parken im Parkhaus N7 möglich.</p>
<h3 id="abstract">Abstract</h3>
<p>Project Loom ist nun als Preview Feature ein Teil von Java 19. Loom verspricht dass es Nebenläufigkeit so sehr vereinfacht wie Garbage Collection das Memory Management revolutioniert hat.
Es ist an der Zeit, dass wir uns Loom genauer anschauen und analysieren, wie sich der Einsatz von virtuellen Threads auf unsere Anwendungen auswirkt. Wir schauen uns technische Details an, um Nebenläufigkeit anhand von Beispielen zu verstehen.
Wir werden virtuelle Threads debuggen und lernen, wie wir einfachen Code schreiben können, der von Nebenläufigkeit Gebrauch macht und dabei das meiste aus unserer Laufzeitumgebung rausholen kann.</p>
<h3 id="bio">Bio</h3>
<p>Mark Paluch (<a href="https://twitter.com/mp911de">@mp911de</a>) arbeitet als Spring Data Project Lead bei VMware und Entwickelt den Lettuce Redis Treiber. Sein Fokus liegt derzeit auf reaktiven Treibern und Infrastrukturkomponenten.</p>
Log4Shell – Bug oder Feature?2022-05-23T00:00:00+00:00https://www.majug.de/2022/05/23/log4shell<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/285960795/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 23.06.2022 um 19:00 Uhr bei Bridging IT statt. N7 5-6, 68161 Mannheim, Eingang links neben dem (ehemaligen) Saturn. Kostenloses parken im Parkhaus N7 möglich.</p>
<h3 id="abstract">Abstract</h3>
<p>Um den Jahreswechsel ging ein Aufschrei durch die IT-Abteilungen der Welt, der es bis in die Mainstream-Medien geschafft hat. Noch Wochen später zeigen sich Folgeprobleme in weit verbreiteter Software.</p>
<p>In Log4j, einer weit verbreiteten Java-Bibliothek wurde eine massive Sicherheitslücke gefunden, die die Ausführung von Schadcode auf einem entfernten System erlaubt.
In diesem Vortrag soll rekapitulierend erklärt werden, warum und wann es zu dem Problem kam und welche Auswirkungen bisher erkennbar sind. Ausserdem werden die technischen Details der Schwachstelle erklärt und in einer Live-Demo gezeigt, wie die Schwachstelle ausgenutzt werden kann.</p>
<p>Nach dem Vortrag gibt es Getränke, Snacks und Zeit zum socializen.</p>
<h3 id="bio">Bio</h3>
<p>Christian Kühn ist Software-Entwickler bei dmTECH. Er beschäftigt sich mit Backend-Entwicklung, Sicherheits- und QA-Themen, aber auch mit den nicht-technischen Herausforderungen moderner (IT-)Organisationen.
Er ist Mitorganisator des DevOps Meetup Karlsruhe und twittert unter <a href="https://twitter.com/ChristianKuehn">@ChristianKuehn</a>.</p>
Advanced Docker2022-03-10T00:00:00+00:00https://www.majug.de/2022/03/10/advanced-docker<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 10.03.2022 um 18:30 Uhr online statt.</p>
<p>Für die Planung freuen wir uns über eine Anmeldung über unsere <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/283529716/">Meetup</a>-Seite.</p>
<h3 id="abstract">Abstract</h3>
<p>Container Technologien sind aus dem Entiwckleralltag nicht mehr wegzudenken. Vielen Entwicklern ist Docker ein Begriff und einige setzen es täglich ein. Dennoch gibt es, trotz der großen Bekanntheit, Teilbereiche von Docker, die oft übersehen oder nicht beachtet werden. In diesem Vortrag möchte ich einen Blick unter die Haube wagen und dabei auf Themen eingehen, die hoffentlich den meisten noch nicht bekannt sind. Wir fokussieren uns vor allem auf das Image Building, Onion FS und CLI/Docker deprecation in Kubernetes. Das Ganze wird mit Beispielen begleitet. Abgerundet wird der Vortrag mit Tipps und Tricks und dem einen oder anderen interessanten Projekt/Tool.</p>
<h3 id="bio">Bio</h3>
<p>Simon Pelczer arbeitet als SDE III bei LivePerson im FaaS Core Team.
Er beschäftigt sich daher viel mit Container Technologien und Serverless Architecture.
Neben der Arbeit widmet er sich auch der Open Source Entwicklung in kleineren Projekten.</p>
Don't test your Infrastructure as Code – prove it to be right2022-02-03T00:00:00+00:00https://www.majug.de/2022/02/03/prove-infrastructure-as-code-to-be-right<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 03.02.2022 um 18:30 Uhr online statt.</p>
<p>Für die Planung freuen wir uns über eine Anmeldung über unsere <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/282898647/">Meetup</a>-Seite.</p>
<h3 id="abstract">Abstract</h3>
<p>Du realisierst deine Infrastruktur als Code (IaC), z. B. mit Ansible, Terraform, oder Kubernetes Manifests und Helm Charts? Dabei überprüfst du sicher schon die syntaktische Korrektheit und ein lesbares Layout? Vielleicht führst du sogar schon einfache Tests auf deinen IaC-Definitionen durch? Prima, aber wie kannst du sicher sein, dass alles auch semantisch korrekt ist, ohne es in eine reale Umgebung zu deployen? Kannst du leicht beantworten, welche Teile deiner Infrastruktur durch welche Code-Fragmente auf welcher Pipeline provisioniert werden? Weißt du, wie sich dein Staging-Environment von der Produktion unterscheidet? Lässt du neue Team-Mitglieder dein Heiligtum ändern? Hast du Vertrauen, dass niemand versehentlich alles kaputt macht?</p>
<p>Die Rettung liegt möglicherweise im Einsatz von jQAssistant (jQA). Du kannst deine IaC-Definitionen scannen und analysieren. Es ist möglich, semantische Prüfung auszuführen und Constraints zu prüfen, die bei jeder Code-Änderung erfüllt sein müssen. Das Tool integriert sich in deine Pipelines und kann so die Feedback-Loop durch frühzeitiges Erkennen von Problemen deutlich verkürzen. Neben der Analyze kannst du mit jQA deine Infrastruktur dokumentieren und aussagekräftige Reports in textueller oder graphischer Form aus den enthaltenen Informationen erzeugen. jQA zeichnet sich seit langem durch die Analyse von Java Code und Frameworks (wie Spring, Java EE, OSGi etc), Dokumentation (AsciiDoctor, PlantUML) und weiteren Informationen (Git, Maven, …) aus. Es lädt alle Daten in eine Graph-Datenbank (Neo4j) und kann darauf Konzepte und Constraints prüfen, sowie Reports erzeugen. Seine offene Architektur ermöglicht Erweiterungen in Form von Plugins um IaC-Definitionen zu scannen und zu analysieren.</p>
<p>Der Vortrag stellt jQA und einige dieser Erweiterungen vor.</p>
<h3 id="bio">Bio</h3>
<p>Gerd Aschemann arbeitet kontinuierlich daran, die Grenze zwischen Dev und Ops aufzuheben. Als freiberuflicher Software-Architekt aktualisiert und erweitert er permanent die agile Kultur und den Technologie-Stack seiner Kunden durch zeitgemäße Methoden und Komponenten. In den letzten Jahren hat er in mehreren Cloud-Nativen Software-Projekten die Transition zu Continuous Delivery vorangetrieben.</p>
Java After Eleven2021-07-29T00:00:00+00:00https://www.majug.de/2021/07/29/java-after-11<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 29.07.2021 um 19:30 Uhr online statt.</p>
<p>Der Vortrag wird über Google Meet gehalten: <a href="https://meet.google.com/mtx-sjpr-iqh">https://meet.google.com/mtx-sjpr-iqh</a>. Die Teilnahme ist per Web Browser möglich, ein Google-Account ist nicht erforderlich. Nach dem Zuschalten bitte das Mikrofon auf stumm stellen, Fragen können über den Hand-Heben-Knopf signalisiert werden. Natürlich kann auch der Chat in Google Meet benutzt werden.</p>
<p>Für die Planung freuen wir uns über eine Anmeldung über unsere <a href="https://www.meetup.com/mannheim-java-usergroup/events/279598365/">Meetup</a>-Seite.</p>
<h3 id="abstract">Abstract</h3>
<p>Most projects that updated past Java 8 decided to stick to the LTS release 11.
The new cadence created the illusion of not much happening after that, but nothing could be further
from the truth - with new language features like switch expressions, text blocks, records, pattern matching,
and sealed classes, Java is moving faster than ever.</p>
<p>In this talk, we’ll take a simple Java 11 code base, update it to 17, and refactor it to use
the new language features and APIs. You’ll be surprised how much the code changes!</p>
<h3 id="bio">Bio</h3>
<p><a href="https://nipafx.dev">Nicolai</a> (aka nipafx) is a Java enthusiast focused on language features
and core APIs with a passion for learning and sharing - in articles,
newsletters, and books; in tweets, videos, and streams; in demo repos
and at conferences - more on all of that on <a href="https://nipafx.dev">nipafx.dev</a>. He’s a Java
Developer Advocate at Oracle and organizer of <a href="https://accento.dev">Accento</a>. That aside,
he’s best known for his haircut.</p>
javax.measure bringt verständliche Einheiten in die Software2021-05-20T00:00:00+00:00https://www.majug.de/2021/05/20/javax-measure<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 20.05.2021 um 19:00 Uhr online statt. Zugangsdaten werden über <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/277421859">meetup.com</a> bekannt gegeben.</p>
<h3 id="abstract">Abstract</h3>
<p>Einheiten im Code bieten immer wieder Herausforderungen. Wofür stand nochmal der eine “double” Wert, wofür der
andere “int”? Sind die Dinger “Metrisch”, im “U.S. customary system” oder was ganz eigenes? In diesem Vortrag soll ein
Überblick über die Möglichkeiten ausgehend von der Java API javax.measure gegeben werden. Außerdem soll darauf
eingegangen werden, wie man die Werte persistiert oder auch in Frontend Clients (v.a. Angular, aber nicht nur) benutzen
kann. Und die wichtigste Frage: Was hat das Ganze mit der Raumfahrt zu tun ?!?!?!?</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/babubabubabo">Felix Schultze</a> arbeitet bei der bridgingIT GmbH als Berater und Software Entwickler
und treibt sich meist in Spring Applikationen mit Ausflügen ins Frontend herum. Nebenbei hilft er hier und da auch bei
quarano e.V. aus, um unseren Gesundheitsämtern auf deren Wunsch hin das Leben etwas erleichtern zu können.</p>
Property Based Resilience Testing Workshop2021-03-04T00:00:00+00:00https://www.majug.de/2021/03/04/property-based-resilience-testing<h3 id="termin">Termin</h3>
<p>Der Workshop findet am 04.03.2021 um 19:00 Uhr online statt. Zugangsdaten werden über <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/275945757/">meetup.com</a> bekannt gegeben.</p>
<h3 id="abstract">Abstract</h3>
<p>Property Based Resilience Testing bedeutet mit Hilfe von Property Based Testing (PBT) die Resilienz eines Systems zu testen. Wikipedia definiert Resilienz als “die Fähigkeit eines Systems bei Störungen oder Teilausfällen nicht vollständig zu versagen, sondern wesentliche Systemdienstleistungen aufrechtzuerhalten” und “[…] trotz massiver externer oder interner Störungen wieder in den Ausgangszustand zurückzukehren.” Wie verhält sich, zum Beispiel, eine Benutzerverwaltung während eines Datenbankausfalls? Was sind die Antwortzeiten? Wie schnell kann der normale Betrieb wieder hergestellt werden? Gerade in verteilten Systemen ist es sehr schwierig alle relevanten Fehlerszenarien zu finden und zu testen. Hier hilft PBT: Anstatt Fehlerszenarien selbst zu finden, wird erwünschtes Verhalten im Fehlerfall als Regelwerk beschrieben und ein PBT-Framework testet ob es von unserem Programm eingehalten wird. Im Fall der Benutzerverwaltung, kann eine Regel besagen, dass der normale Betrieb wieder hergestellt wird sobald der Datenbankausfall behoben wurde.</p>
<p>In diesem Workshop verwenden wir jqwik und testcontainers um container-basierte Systeme auf diese Art und Weise zu testen. Nach einer kurzen Einführung und Motivation des Themas, rekapitulieren wir was Property Based Testing ist und gehen insbesondere auf Modeling und Stateful Properties ein. Wir bauen ein Modell einer Applikation auf und benutzen es um bestimmte Eigenschaften zu falsifizieren. Danach erweitern wir dieses Modell um die Möglichkeit Fehlerzustände abzubilden. Zuletzt werden wir den Ansatz diskutieren und beenden den Workshop mit einer Retrospektive.</p>
<p>Der Workshop richtet sich an Anfänger und Fortgeschrittene und in Kooperation mit der Softwerkskammer Rhein-Neckar statt. Grundkenntnisse über Property Based Testing sind hilfreich aber nicht unbedingt notwendig. Für die Übungen werden die Teilnehmer in Kleingruppen unterteilt. Der Link zur Teilnahme wird noch veröffentlicht.</p>
<h3 id="voraussetzung">Voraussetzung</h3>
<p>Computer mit Docker (siehe <a href="https://www.testcontainers.org/supported_docker_environment">testcontainers</a> für die minimale Version), Git und Java IDE.</p>
<h3 id="lernziele">Lernziele</h3>
<p>Die Zuhörer/-innen lernen</p>
<ul>
<li>wie eine container-basierte Umgebung in Tests aufgebaut wird und</li>
<li>wie Stateful Properties bestimmt und mit Hilfe von Modeling getestet werden.</li>
</ul>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/gtrefs">Gregor Trefs</a> ist Software Development Manager bei LivePerson, Mitorganisator der Java User Group Mannheim und Softwerkskammer Rhein-Neckar. Weiterhin ist er der Autor der testcontainers Extension für jqwik.</p>
Spring Data JPA von 0 auf 100 in 60 Minuten2020-03-12T00:00:00+00:00https://www.majug.de/2020/03/12/spring-data-jpa-0-auf-100<h3 id="registration">Registration</h3>
<p>Dieser Termin ist aufgrund der aktuellen Situation mit dem neuen Coronavirus (SARS-CoV-2) kurzfristig abgesagt.
Obwohl unsere Veranstaltungen einen kleineren Besucherkreis haben, möchten wir der aktuellen Lage mit der notwendigen Aufmerksamkeit begegnen und sehen uns in der Verantwortung potenzielle Infektionsketten zu minimieren.</p>
<p>Wir entschuldigen uns für die Kurzfristigkeit, jedoch haben wir es mit einer dynamischen Entwicklung zu tun bei der wir jeden Tag dazulernen.</p>
<p>Dieser Termin wird nachgeholt sobald sich die Situation entspannt.</p>
<p>Vielen Dank für euer Verständnis!</p>
<h3 id="termin">Termin</h3>
<p><strong>Der Vortrag findet nicht statt.</strong></p>
<p>Ursprünglich war dieser am 12.03.2020 um 19:00 Uhr geplant..</p>
<h3 id="abstract">Abstract</h3>
<p>JPA is the most popular persistence technology for JAVA. In this talk, we’ll look into how it works and how it integrates with Spring by means of Spring Data JPA. We’ll look at the various ways one may use Spring Data from ready-made queries over query derivation, query by example, specifications, paging and sorting to custom method implementations.</p>
<p>We’ll also take a look at common pitfalls of JPA and how to circumvent them. And if time is left we’ll take a glance at other technologies available to Java developers to complement JPA and how these integrate with Spring Data.</p>
<p>Participants will learn to distinguish between JPA and Spring Data JPA, the various features Spring Data JPA offers and when to use which feature to achieve their goal.</p>
<h3 id="bio">Bio</h3>
<p><a href="http://blog.schauderhaft.de/">Jens Schauder</a> (<a href="https://twitter.com/jensschauder">@jensschauder</a>) hat vor unglaublich langer Zeit auf einem in Assembler programmierbaren Tischrechner angefangen zu programmieren. Nach über 30 Jahren, davon fast 20 als Consultant für meist große Konzerne, hat er es 2017 geschafft sich beim Spring Data Team einzuschleichen. Dort arbeitet er meist an den Modulen Commons, JPA und JDBC, erzählt davon auf Konferenzen oder hilft anderen Entwicklern auf Stackoverflow. Wenn er nicht programmiert, spielt er mit seinen Kindern, läuft, macht Freeletics, spielt oder organisiert die JUG Ostfalen.</p>
Automated Security-Testing in Continuous Integration2020-02-04T00:00:00+00:00https://www.majug.de/2020/02/04/automated-security-testing<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/267885444/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 04.02.2020 um 19:00 Uhr bei LivePerson in P3 1-3, Mannheim.</p>
<h3 id="abstract">Abstract</h3>
<p>Fast täglich liest man von Sicherheitsproblemen in (Web-)Anwendungen, zum Teil mit verheerenden Auswirkungen für Firmen und Verbraucher. Zum Schutz sensibler Daten müssen wir in der Entwicklung und im Betrieb stets sicherstellen, dass wir auf bekannte Schwachstellen reagieren und Systeme und Software auf dem aktuellsten Stand halten können.</p>
<p>Um möglichst schnelles Feedback über aktuelle Probleme zu bekommen, empfiehlt es sich, automatisiert nach bekannten Schwachstellen zu suchen. Hierzu bietet sich die Erweiterung bestehender Continuous-Integration-Pipelines an.</p>
<p>Im Vortrag mit Live-Demo werden mehrere Open-Source-Frameworks vorgestellt, mit deren Hilfe man automatisiert Schwachstellen in (Java-)Dependencies, Container-Images und Webapplikationen finden kann. Hierzu werden OWASP Dependency-Check, CoreOS Clair und OWASP ZAProxy genutzt.</p>
<h3 id="vorkenntnisse">Vorkenntnisse</h3>
<p>Grundkenntnisse über Continuous Integration</p>
<h3 id="lernziele">Lernziele</h3>
<p>Der Zuhörer/-innen lernen</p>
<ul>
<li>dass man sich und seine Software automatisiert absichern kann, ohne ständig aktiv irgendwelche Tests auszuführen oder News bzw. aktuelle Schwachstellen zu verfolgen.</li>
<li>dass Sicherheitstests, genau wie fachliche und integrative Softwaretests, eine Grundabsicherung bieten und “nebenbei” ohne aktive Teilhabe des Entwicklers laufen</li>
</ul>
<h3 id="bio">Bio</h3>
<p>Christian Kühn ist auf dem Weg von Ops zu Dev in der Mitte hängengeblieben! Senior Systementwickler und Berater, Mitorganisator des DevOpsMeetup Karlsruhe, hält Vorträge und schreibt Artikel zu Themen aus DevOps, Cloud und Sicherheit.</p>
Testen von und mit Infrastruktur - Integration Testing done right2019-11-14T00:00:00+00:00https://www.majug.de/2019/11/14/testen-von-infrastruktur<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/259093904/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 14.11.2019 um 19:00 Uhr bei Bridging IT in N7 5-6, 68161 Mannheim statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Heutzutage läuft eine Software nicht für sich alleine, sondern agiert mit Anderen. Die Kommunikation erfolgt meist über verschiedene Protokolle, sprich über verschiedene Infrastruktur-Komponenten. Gerade beim Testen stellt sich die Frage, wie kann der Entwickler Tests so schreiben, dass sie von einem bestimmten Infrastruktur-Setup unabhängig sind. Meistens gelingt es nicht und dann wird dieser Teil der Software erst spät bei den End-2-End-Tests geprüft. Doch gerade mit Microservices und dem Paradigma “Wenn etwas schiefläuft, dann so schnell wie möglich” möchte der Entwickler schon zu einem früheren Testzeitpunkt, z.B. bei Entwicklertests, erfahren, wenn bei diesem Teil der Software etwas schief läuft. Zudem macht die Infrastruktur nicht beim Anwendungscode halt. Mittlerweile wird die Infrastruktur immer mehr mit Hilfe von Code (Provisionierungsskripte, Dockerfiles, (Shell-) Skripte etc. ) beschrieben und automatisiert. Auch bei diesem Code möchte der Entwickler sicher gehen können, dass er so funktioniert wie erwartet. Dieser Vortrag zeigt anhand einer Java-Anwendung, wie man mit Hilfe von 3rd-Party-Libraries die Infrastruktur in den Tests der Anwendung einbinden kann ohne sich gleich von einer bestimmten Infrastruktur abhängig zu machen. Darüber hinaus, wird darauf eingegangen wie die Qualität des Infrastruktur-Codes gesichert werden kann, angefangen bei klassischen Provisionierungswerkzeugen bis hinzu Container.</p>
<h3 id="bio">Bio</h3>
<p>Sandra Parsick ist als freiberufliche Softwareentwicklerin und Consultant im Java-Umfeld tätig. Seit 2008 beschäftigt sie sich mit agiler Softwareentwicklung in verschiedenen Rollen. Ihre Schwerpunkte liegen im Bereich der Java Enterprise Anwendungen, agilen Methoden, Software Craftsmanship und in der Automatisierung von Softwareentwicklungsprozessen. Darüber schreibt sie gerne Artikel und spricht darüber auch gerne auf Konferenzen. In ihrer Freizeit engagiert sie sich in der Softwerkskammer Ruhrgebiet.</p>
Jenkins X – Continuously Driving the Kloud2019-10-24T00:00:00+00:00https://www.majug.de/2019/10/24/jenkins-x-continously-driving-the-kloud<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/264585188/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.10.2019 um 19:00 Uhr bei LivePerson in P3 1-3, Mannheim statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Cloud schreibt man im Zeitalter von Kubernetes mit K! Alle Ressourcen werden dynamisch von Kubernetes verwaltet. Alle? Build und Deployment über verschiedene Stages liegt oft noch außerhalb, z.B. in einem Build-Server und verschiedenen Repositories (Artefakte, Docker-Images). Mit Jenkins X wandert alles in einen Kubernetes-Cluster und gewinnt so die nötige Dynamik:</p>
<ul>
<li>Setup der nötigen Infrastruktur in Kubernetes (Jenkins, Nexus, Docker-Registry …),</li>
<li>Aufsetzen von Build-Pipelines für jeden Branch und jeden Pull-Request,</li>
<li>Deployment in verschiedene Stages (mit Helm),</li>
<li>Mandantenfähigkeit (Builds und Environments nach Teams unterscheiden),</li>
<li>Steuerung von versionierten Deployment-Konfigurationen (GitOps),</li>
<li>Import von bestehenden Projekten,</li>
<li>Setup neuer Projekte auf Basis gängiger Microservice-Frameworks (z.B. Spring Boot),</li>
<li>u.v.a.m.</li>
</ul>
<p>Jenkins X ist ein entwicklerfreundliches Command-Line Tool und bündelt eine Vielzahl von Komponenten hinter einer einheitlichen (opinionated) Fassade.</p>
<p>Der Vortrag erklärt die Architektur und Konzepte und führt an ein paar kleinen Beispielen typische Use-Cases vor.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/GerdAschemann">Gerd Aschemann</a> ist Automatisierungsfanatiker: was gescriptet werden kann, wird auch gescriptet. Er ist als freiberuflicher Software-Entwickler und -Architekt unterwegs, in den letzten Jahren bevorzugt mit Aufgaben im Bereich Continuous Integration und -Delivery. Mit Java beschäftigt er sich schon seit ca. 1996, seit er als wissenschaftlicher Mitarbeiter im Fachgebiet Verteilte Systeme der TU Darmstadt zum Management Verteilter Anwendungen geforscht hat.</p>
Einführung in Gradle2019-07-18T00:00:00+00:00https://www.majug.de/2019/07/18/einfuehrung-in-gradle<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/261871646/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 18.07.2019 um 19:00 Uhr bei LivePerson in P3 1-3, Mannheim statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Gradle ist als Build Tool mittlerweile etabliert. Dennoch haben viele Java-EntwicklerInnen wenig Erfahrung damit. Außerdem ist der Build ja nicht so wichtig — oder vielleicht doch (und wenn ja, warum)? Daher fangen wir mit den Basics an und steigern uns dann kontinuierlich: Wie legt man mit Gradle ein neues Projekt an? Was ist ein Build Script? Wie definiert man einen eigenen Task? Wie kann man mehr darüber erfahren, wie lange ein Task gedauert hat? Was ist ein inkrementeller Build? Was ist der Build Cache? Wie kann ich den Build an meine Bedürfnisse anpassen? Außerdem möchte ich euch zeigen, wie man Build-Logik wiederverwendbar macht, etwa in dem man sie in separate Build Scripts und schließlich eigene Plugins auslagert. Insgesamt habe ich viel Zeit für eure Fragen eingeplant, die ich hoffentlich alle beantworten kann. Falls nicht, sage ich euch, wo ihr Hilfe bekommt.</p>
<h3 id="bio">Bio</h3>
<p>Marc Philipp hat mehr als 10 Jahre Erfahrung in der Entwicklung von Software für Unternehmen und Endkunden sowie als Trainer und Coach für andere Entwickler. In seiner Arbeit bei Gradle widmet er sich der Verbesserung des Entwicklungsalltags von Millionen von Entwicklerinnen und Entwicklern und kann seiner Leidenschaft für Open-Source-Software nachgehen. Er ist seit langem aktiver Committer und Maintainer von JUnit. Außerdem war er Mitinitiator der Crowdfunding-Kampagne JUnit Lambda, die der Anfang von dem war, was nun JUnit 5 ist.</p>
Java Next - New Releases, Amber, Valhalla, and More Goodies2019-07-04T00:00:00+00:00https://www.majug.de/2019/07/04/Java-Next<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/262262643/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 04.07.2019 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<h3 id="java-next---new-releases-amber-valhalla-and-more-goodies">Java Next - New Releases, Amber, Valhalla, and More Goodies</h3>
<p>With Java’s switch to a six-month release schedule, the community needs to step up its game to stay up to date. Instead of having a year or more to prepare for a new release, it’s a mere three months - we need to be better informed about what’s going on to see changes coming before they’re out.</p>
<p>This talk:</p>
<ul>
<li>explains the details behind the new schedule and how to stay up to date</li>
<li>presents Java 9 to 13 language features like <code class="language-plaintext highlighter-rouge">var</code> and switch expressions</li>
<li>shows the future of Java, brought by projects like Valhalla, Amber, and others</li>
<li>looks at features of upcoming releases like pattern matching, value types, and fibers</li>
</ul>
<p>Afterwards, you will not only know about the immediate future but also how to stay up to date without much effort.</p>
<h3 id="bio">Bio</h3>
<p>Nicolai Parlog is a thirty-year-old boy, as the narrator would put it (if he’s generous), who has found his passion in software development (mostly Java) and who codes for a living as well as <a href="https://code.codefx.org">for fun</a>. He also <a href="http://blog.codefx.org">blogs</a>, <a href="https://books.codefx.org">writes</a>, <a href="http://weekly.codefx.org">newsletters</a>, <a href="https://talks.codefx.org">speaks</a>, <a href="https://chat.codefx.org">chats</a>, <a href="https://vids.codefx.org">records</a>, <a href="https://streams.codefx.org">streams</a>, <a href="https://hire.codefx.org">trains, and consults</a> about it - not all at the same time, but in prolific fits and starts with high throughput and long latencies. If you want to take the wheel, <a href="https://hire.codefx.org">hire</a> him for in-house trainings on new Java features, migrations to Java 9+, and JUnit 5. His home is at <a href="https://codefx.org">codefx.org</a>.</p>
Kotlin 1.3 in Action und Kotlin Multiplatform & Kotlin Native in Action2019-06-06T00:00:00+00:00https://www.majug.de/2019/06/06/kotlin-13-und-multi-platform<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/260763702/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 06.06.2019 um 19:00 Uhr statt. Veranstaltungsort ist bei BridgingIT N7, 5-6 in 68161 Mannheim (<a href="https://www.bridging-it.de/media/anfahrtsbeschreibungen/wegbeschreibung-mannheim.pdf">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<h3 id="kotlin-13-in-action">Kotlin 1.3 in Action</h3>
<p>Kotlin hilft uns, mit unseren bekannten Tools Software besser zu entwickeln, die im Code prägnant ist und weniger Fehler enthält. An vielen Stellen versucht es Designfehler von Java auszumerzen und bringt neue Programmiermodelle mit, die uns unterstützen Probleme mit neuem Handwerkszeug zu meistern. Dabei ist Kotlin dafür ausgelegt, sich nahtlos in bestehende Java-Projekte zu integrieren und selbst auf älteren 1.6 JVMs zu laufen. Ob Delegations, Reified Types… wir werden uns anschauen, welche Kotlin Features ein Java Entwickler kennen sollte und wie sie uns weiterhelfen. Dabei nehmen wir auch das neuste Kotlin 1.3 Update mit Coroutinen und Inline Classes unter die Lupe.
Der Vortrag richtet sich sowohl an Kotlin-Neueinsteiger, als auch an Fortgeschrittene, die sich für die Neuerungen im Update 1.3 interessieren.</p>
<h3 id="kotlin-multiplatform--kotlin-native-in-action">Kotlin Multiplatform & Kotlin Native in Action</h3>
<p>Kotlin ist weitaus mehr als eine Sprache auf der JVM. Mit Kotlin Native und Kotlin Multiplatform eröffnen sich völlig neue Möglichkeiten für eine plattformübergreifende Entwicklung. Ob im Backend, im Browser, auf Smartphones oder selbst auf Embedded Systemen, überall lässt sich in Kotlin programmieren, Code wiederverwenden und selbst ohne JVM nativ ausführen. Wie wäre es mit nativen IOs Apps, schlanken Microservices ohne JVM, oder Backends die sich mit dem Frontend die Codebase teilen? Wie setze ich ein solches Multiplatform Projekt auf? Wie kann ich nativ entwickeln und wo sind noch die Vor- und Nachteile - auch im Vergleich mit GraalVM?</p>
<h3 id="bio">Bio</h3>
<p>Tobse Fritz ist Software-Entwickler bei ITscope aus Karlsruhe. Dort arbeitet er an einer großen B2B Webanwendung in Java u.a. mit dem Vaadin Framework und Spring. Er interessiert sich sehr für Software Craftsmanship und setzt sich für Clean Code ein. Seit den ersten Alpha Versionen hat er die Entwicklung von Kotlin mitverfolgt. Vor allem durch zahlreiche private Projekte hat er sich immer mehr mit Kotlin beschäftigt. Die Begeisterung für Neues und Kotlin im Speziellen teilt er gerne auf Konferenzen und Meetups und freut sich sehr auf seinen ersten JUG Vortrag.
https://github.com/TobseF</p>
Configuration Management and Zero-downtime deployment with Kubernetes, Spring Boot2019-05-08T00:00:00+00:00https://www.majug.de/2019/05/08/spring-boot-kubernetes<h3 id="registration">Registration</h3>
<p>Registration is optional, but for planning we would still prefer registration on our <a href="https://www.meetup.com/mannheim-java-usergroup/events/259617436/">Meetup page</a>.</p>
<h3 id="date">Date</h3>
<p>08.05.2019 at 19:00h at Uni Mannheim A5, 6, room C013 (<a href="/getting-there">How to get there</a>).</p>
<h3 id="language">Language</h3>
<p>The talks will be held in English.</p>
<h3 id="abstract">Abstract</h3>
<h4 id="configuration-management-with-kubernetes-a-spring-boot-use-case">Configuration Management with Kubernetes, a Spring Boot use-case</h4>
<p>Come discover what options Kubernetes allows in terms of configuration management.</p>
<p>Docker images are supposed to (and should be) immutable. Given that the same image should be promoted from the development environment to the production environment, it needs to be parameterized in each environment.</p>
<p>Kubernetes provides different ways to do that. On the other, the Spring Boot platform allows a wide range of configuration options. In this talk, I’ll go through (and demo!) what common options are available, and what pro(s)/con(s) each of them have.</p>
<h4 id="zero-downtime-deployment-with-kubernetes-spring-boot-and-flyway">Zero-downtime deployment with Kubernetes, Spring Boot and Flyway</h4>
<p>Beyond Hello World applications, zero-downtime deployments are not trivial. In this talk, I’ll demo how to achieve that on a Spring Boot application using Kubernetes and Flyway.</p>
<p>Kubernetes allows a lot. After discovering its features, it’s easy to think it can magically transform your application deployment process into a painless no-event. For Hello World applications, that is the case. Unfortunately, not many of us do deploy such applications day-to-day.</p>
<p>You need to think about application backward compatibility, possible rollback, database schema migration, etc. I believe the later is one of the biggest pain point. In this talk, I’ll demo how to update a Spring Boot app deployed on a Kubernetes cluster with a non-trivial database schema migration with the help of Flyway, while keeping the service up during the entire update process.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/nicolas_frankel">Nicolas Frankel</a> (<a href="https://blog.frankel.ch">Blog</a>) is a Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Currently working for Exoscale. Also double as a teacher in universities and higher education schools, a trainer and triples as a book author.</p>
Reactive Relational Database Connectivity2019-03-27T00:00:00+00:00https://www.majug.de/2019/03/27/reactive-relational-database-connectivity<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/256201051">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 27.03.2019 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Immer mehr Projekte setzen auf reaktive Programmierung. Auf ihrem Weg reaktive Systeme zu bauen, stellen Entwicklungsteams fest, dass sich sämtliche Vorteile dieser Umstellung nur bei einem durchgängig reaktiven Stack einstellen.
Es gibt einige reaktive Messaging und NoSQL Integrationen, jedoch gehören die relationalen Datenbanksysteme nicht dazu.</p>
<p>Dieser Vortrag stellt die Reactive Relational Database Connectivity (R2DBC) Initiative vor. Das Ziel dieses Projekts ist es, ein reaktives API für relationale Datenbanken zu definieren. Dieser Vortrag erklärt das R2DBC API, seine Funktionsweise und die Vorteile die sich aus der Nutzung ergeben. Wir schauen uns auch Gemeinsamkeiten und Unterschiede weiterer Initiativen wie ADBA, dem asynchronen Nachfolger von JDBC, an und wie diese sich mit R2DBC nutzen lassen.</p>
<h3 id="bio">Bio</h3>
<p>Mark Paluch (<a href="https://twitter.com/mp911de">@mp911de</a>) ist Software Craftsman und arbeitet als Spring Data Engineer bei Pivotal. Er betreut die Module MongoDB, Redis und Apache Cassandra und Entwickelt den Lettuce Redis Treiber. Sein Fokus liegt derzeit auf reaktiven Treibern und Infrastrukturkomponenten.</p>
IntelliJ IDEA Trickkiste - Ein Entwickler packt aus2019-01-17T00:00:00+00:00https://www.majug.de/2019/01/17/intellij-idea-trickkiste<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/256643458">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 17.01.2019 um 19:00 Uhr bei LivePerson in P3 1-3, Mannheim statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Die Leistungsfähigkeit moderner IDEs ist Segen und Fluch zugleich.
Arbeite ich wirklich effizient damit? Kenne ich alle notwendigen Kniffe?</p>
<p>Im Rahmen einer Live-Demonstration möchte ich zumindest einige - auch unbekanntere - Features und Techniken aufzeigen, die einem in der täglichen Arbeit weiterhelfen. An einigen Stellen werden wir auch einen kurzen Blick hinter die Kulissen wagen…
Zudem besteht die Gelegenheit direkt mit einem der IntelliJ Entwickler Anregungen und Probleme aus eurem Projekteinsatz zu diskutieren.</p>
<p>Der Vortrag richtet sich sowohl an erfahrene Benutzer als auch an Neueinsteiger/Interessierte.</p>
<h3 id="bio">Bio</h3>
<p>Yann Cébron (<a href="https://twitter.com/yanncebron">@yanncebron</a>) ist seit 2002 nicht nur begeisterter User
von IntelliJ IDEA, er entwickelte im Laufe der Zeit auch eine Reihe
von Plugins dafür. Seit sechs Jahren ist er nun für dessen Spring
Framework Support sowie das Plugin SDK verantwortlich - zu beidem hält
er auch regelmässig Vorträge bei Konferenzen im In- und Ausland.</p>
Applikationsmonitoring mit Micrometer2018-12-05T00:00:00+00:00https://www.majug.de/2018/12/05/applikationsmonitoring-mit-micrometer<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/256141274">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 05.12.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Metriken sind neben Logging und Tracing ein wichtiger Pfeiler zur Überwachung der Anwendung. Mit Metriken können Probleme erkannt und Ressourcen-Engpässe identifiziert werden. Das Projekt Micrometer bietet für Java-Anwendungen eine Fassade, mit der Metriken herstellerneutral in verschiedene Monitoring-Systeme geliefert werden können. Parallel zu Spring Boot Version 2.0 wurde Micrometer Version 1.0 veröffentlicht, welches nun die Standard-Bibliothek für Metriken in Spring Boot ist. Damit versetzt es Teams in die Lage, Metriken effizient zu sammeln und für eigene Auswertungen einzusetzen. Der Vortrag stellt die Verwendung von Micrometer in Spring Boot vor und zeigt die Auswertung von Metriken mit Prometheus und Grafana.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/ahus1de">Alexander Schwartz</a> ist Trainer und Entwickler für Client- und Server-Technologien im Web, Principal IT Consultant bei msg systems ag und Long-Tail-Contributor zu Open Source Software.</p>
Reactive Spring2018-08-24T00:00:00+00:00https://www.majug.de/2018/08/24/reactive-spring-workshop<h3 id="termin">Termin</h3>
<p>Dieser Workshop findet am 24. August 2018 von 10:00 - 17:00 Uhr bei der Firma OIO Orientation in Objects GmbH in der Weinheimer Str. 68 in Mannheim statt (<a href="http://www.oio.de/unternehmen/kontakt/anfahrt.htm">Anfahrtsbeschreibung</a>).</p>
<p>Die Teilnehmerzahl ist begrenzt. Anmeldungen bitte per E-Mail an <a href="mailto:info@oio.de">info@oio.de</a>.</p>
<p><a href="http://www.oio.de/"><img src="/public/img/oio-logo.png" style="float:left; padding-right:10px;" /></a>
Vielen Dank an die Firma <a href="http://www.oio.de/">OIO Orientation in Objects GmbH</a>, die uns ihre Räumlichkeiten zur Verfügung stellt und auch für das leibliche Wohl sorgen wird.</p>
<h3 id="abstract">Abstract</h3>
<p>Spring Framework 5 und Spring Boot 2 sind da! Eine der herausstechenden Neuerungen ist die Unterstützung für reaktive Programmierung, um mit Project Reactor nachrichten-orientierte, elastische und robuste Services zu entwickeln. Spring Framework 5 unterstützt mit netty, Undertow und Jetty die Ausführung von reaktive Web-Webanwendungen.</p>
<p>In diesem Workshop gehen wir auf reaktive Programmierung ein und erklären, wie Spring mit seinem Programmiermodell reaktive Systementwicklung unterstützt. Wir werden uns das neue Spring WebFlux Modul und reaktiven Datenzugriff mit Spring Data Kay anschauen und wir werden die natürlichste Art des Datenzugriffs anwenden, indem wir selbst reaktiven Code schreiben.</p>
<p>Du bist Entwickler und möchtest Daten auf eine funktional-reaktive Art konsumieren? Das ist Deine Chance um zu lernen, wie auch Deine Anwendung vom neuen Spring Framework Release profitieren kann.</p>
<p>Bring für diesen Workshop Deinen Computer mit. Idealerweise hast du bereits Maven, Git und eine IDE installiert. Für WLAN ist gesorgt.</p>
<p><strong>Die Teilnahme ist frei, es gibt aber nur eine begrenzte Anzahl an Plätzen.</strong></p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/mp911de"><strong>Mark Paluch</strong></a> ist Software Craftsman und arbeitet als Spring Data Engineer bei Pivotal. Er betreut die Module MongoDB, Redis und Apache Cassandra und Entwickelt den Lettuce Redis Treiber. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie Autor von Fachartikeln.</p>
Kubernetes Basics - am Beispiel einer Spring Boot App2018-08-23T00:00:00+00:00https://www.majug.de/2018/08/23/Kubernetes-Basics<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/252560121">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 23.08.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Kubernetes ist eines der bekanntesten und am stärksten wachsenden Frameworks zur Container-Orchestrierung. Einige der meistbeworbenen Features sind die einfache Automatisierbarkeit, Selbstheilung, Load-balancing, Configuration-Management und Skalierbarkeit.</p>
<p>Viele Entwickler stellen sich allerdings die Fragen: Brauche ich das überhaupt? Wie kommt meine App da jetzt eigentlich rein? Wie stelle ich sicher, dass die nötigen Abhängigkeiten und Resourcen für meine Applikation bereitgestellt werden?</p>
<p>Am Beispiel einer Spring Boot App wollen wir zusammen die schöne neue Welt erkunden und hoffentlich viele offene Fragen beantworten.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/CYxChris">Christian Kühn</a> ist Senior Systementwickler bei synyx und ist in den Bereichen Softwareentwicklung und Systemadministration tätig. Derzeit beschäftigt er sich in einem Projekt bei Filiadata (DM Drogeriemarkt) im eCommerce-Bereich mit Microservices und DevOps-Themen. Nebenher ist er Mitorganisator beim <a href="https://www.meetup.com/devops-karlsruhe/">DevOps Meetup Karlsruhe</a>.</p>
Shenandoah - ultra-low pause time garbage collector2018-06-21T00:00:00+00:00https://www.majug.de/2018/06/21/shenandoah<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/251505319/">Meetup-Seite</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Mit OpenJDK werden mehrere Garbage Collectoren mitgeliefert. Dazu gehoert Parallel/SerialGC, CMS und G1. Abgesehen davon gibt es noch weitere mit OpenJDK nicht mitgelieferte GCs. Das sind Shenandoah (JEP 189) und ZGC. Dazu kommt noch ein GC, der eigentlich keiner ist: EpsilonGC (JEP 318).</p>
<p>Dieser Vortrag wird alle gaengigen GCs bescheiben und vergleichen. Es wir besprochen, warum es so viele davon gibt und ob es wirklich notwendig ist, so viele zu haben. Ebenso wird die Funktionsweise erlaeutert. Dadurch wird klar welchen GC man fuer welchen Zweck einsetzen sollte.</p>
<p>Desweiteren wird Shenandoah, ein sich noch in der Entwicklung befindlicher GC herausgepickt und in der Tiefe besprochen. Die Funktionsweise wird detailliert dargestellt. Es werden Herausforderungen und Loesungen der Implementierung erlaeutert, die waehrend der Entwicklung aufgekommen sind.</p>
<p>Es werden keine GC Kenntnisse vorausgesetzt. Dieser Talk wird nach und nach aufgebaut. Daher ist er fuer jeden Java Entwickler geeignet. GCs ausserhalb von OpenJDK (z.B. C4 oder OpenJ9 GC) werden nicht besprochen.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/walery">Walery Strauch</a> ist Freiberuflicher Softwareentwickler. Seit 2007 beschäftigt er sich intensiv mit Projekten in den Bereichen Java, Web und Cloud. Als Mitbegründer und CEO einer Softwarefirma im Jahre 2010 konnte er sein Wissen auch im Business über Jahre erfolgreich anwenden. Sein Know-how hat er dabei nicht nur als unternehmensinterner Coach geteilt, sondern auch in Java-Vorlesungen an der Hochschule Heidelberg weitergegeben. Er ist ebenfalls einer der Organisatoren der MAJUG (Mannheim Java User Group).</p>
It's all about the domain, honey – Domain-Driven Design als Basis für Microservices in Java2018-06-19T00:00:00+00:00https://www.majug.de/2018/06/19/its-all-about-the-domain-honey<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/251750547">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 19.06.2018 um 19:00 Uhr bei LivePerson in P3 1-3, Mannheim statt.</p>
<h3 id="abstract">Abstract</h3>
<p><strong>Vielen Dank an LivePerson für Getränke und Essen.</strong></p>
<p>Beim Bauen von Software werden tolle Technologien, Programmiersprachen und Tools eingesetzt. Das ist gut und richtig. Aber leider wird dabei oft aus den Augen verloren, dass das Entscheidende für den Projekterfolg nicht die Technik, sondern die <em>Fachlichkeit</em> ist. Um die Fachlichkeit (=Domäne) verstehen zu können, brauchen wir eine gemeinsame Sprache mit den Fachexperten. Außerdem: wenn wir in der Software und ihrer Architektur nicht das fachliche Modell abbilden, dann wird sie unseren Anwendern nicht bei Ihrer Arbeit helfen. Davor schützt uns keine Technologie der Welt.</p>
<p>Als Informatiker kann man leicht in die Falle tappen, sich auf Technologie statt auf Fachlichkeit zu fokussieren. Um das zu verhindern, zeige ich in diesem Vortrag, wie man mit Domain-Driven Design (DDD) das Wissen um die Fachlichkeit lernen und in eine Ubiquitous Language übertragen kann. Dazu werden Techniken wie Interviews, Domain Storytelling und Event Storming eingesetzt.</p>
<p>In der Praxis ist es schwierig zu erkennen, wie wir unsere Domäne schneiden und daraus Microservices entwickeln können. Hierbei kann uns das Prinzip der Bounded Contexts aus DDD helfen. Es gibt uns Hilfestellung wo vertikale Schnitte sinnvoll sind.</p>
<p>Setzt man diese Techniken gemeinsam ein, dann kann man die Architektur von Software-Systemen so bauen, dass sie die Fachlichkeit darstellt und unsere Anwender glücklich macht.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/hschwentner">Henning</a> liebt Programmieren in hoher Qualität. Diese Leidenschaft lebt er als Software-Architekt, Berater und Entwickler bei der WPS – Workplace Solutions aus. Seine Projekte sind Domain-Driven, agil und in Programmiersprachen wie Java und C# aber auch ABAP. Ihn interessieren Menschen, langlebige Softwarearchitekturen, große Refactorings und die Evolution von Programmiersprachen. Gerade hat er »Domain-Driven Design kompakt« von Vaughn Vernon ins Deutsche übersetzt.</p>
Besser leben durch Rebasing: Geschönte Entwicklungshistorie leicht gemacht dank Git2018-05-23T00:00:00+00:00https://www.majug.de/2018/05/23/git-rebasing<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/249597286/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag (Ersatztermin für den <a href="http://www.majug.de/2018/03/22/git-rebasing/">ausgefallenen Termin im März</a>) findet am 23.05.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Eine der ersten und wichtigsten Regeln, die jedem Git-Neuling eingetrichtert werden, ist, dass geteilte Zweige nicht durch Rebasing verändert werden dürfen. Andererseits wird jeder, der einmal ein Rudel Merge Diamonds gesehen hat, bestätigen, dass eine gut lesbare Projekthistorie anders aussieht.</p>
<p>Der Vortrag zeigt, wie durch sinnvolle Kombination von (interaktivem) Rebasing und Merging geteilter Entwicklungszweige eine gut gegliederte und leicht lesbare Versionshistorie inklusive Branches entstehen kann, ohne dass man zu viel seiner eigenen Vergangenheit vergisst.</p>
<p><strong>Skills</strong></p>
<p>Grundlegende Kenntnisse in Git sind von Vorteil.</p>
<p><strong>Lernziele</strong></p>
<ul>
<li>Verstehen der grundsätzlichen Fragestellungen bei der (Re-)Integration von Git Branches (Merge vs. Rebase, Merge Commit vs. Fast-Forward Merge)</li>
<li>Kennenlernen der möglichen Vorteile und Risiken beim Einsatz von Rebasing</li>
<li>Erfahren, wie sich eine einfach lesbare und gut verständliche Versionshistorie in Git trotz Branches erzeugen lässt</li>
</ul>
<h3 id="bio">Bio</h3>
<p>Steffen Schluff ist der Leiter der Software Factory der <a href="http://www.oio.de?majug">OIO Orientation in Objects GmbH</a> und verantwortlich für die in der Entwicklung eingesetzten Werkzeuge und Verfahren, wobei sein besonderes Interesse dem Thema Continuous Delivery gilt.</p>
Property-Based Testing mit Java2018-04-19T00:00:00+00:00https://www.majug.de/2018/04/19/Property-Based-Testing<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/247249504/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 19.04.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Testgetriebene Entwicklung in Java und anderen objektorientierten
Sprachen setzt bislang meist auf beispielbasierte Testfälle, wie man
sie leicht mit JUnit und ählichen Testframeworks erstellen kann.
Schaut man jedoch über den Tellerrand und auf funktionale
Programmiersprachen wie z.B. Haskell oder F#, findet man dort etwas
anderes: Property-Tests.</p>
<p>Property-Tests basieren auf der Idee, die erwünschten Eigenschaften
unseres Programms zu beschreiben und anschließend das Framework
selbstständig Testfälle generieren zu lassen, die diese Eigenschaften
bestätigen oder falsifizieren. In diesem Vortrag werde ich sowohl auf
die Theorie hinter Property-based Testing eingehen als auch konkret
zeigen, wie man mit jqwik unter Java und anderen JVM-Sprachen solche
Tests umsetzen kann.
Dabei spielen die Muster zum Finden der Properties eine wichtige Rolle.</p>
<h3 id="bio">Bio</h3>
<p>Johannes Link beschäftigt sich schon seit Ende des letzten
Jahrhunderts mit Extreme Programming und anderen agilen Ansätzen.
Ein wesentlicher Schwerpunkt dabei war und ist die testgetriebene
Entwicklung. Zu diesem Thema hat er bereits mehrere Bücher geschrieben
und lernt dennoch immer noch dazu.
Johannes war einer der Köpfe hinter der Konzeption und Umsetzung der
JUnit-5-Plattform und ist zur zeit der einzige Haupt-Committer bei
<a href="http://jqwik.net/">jqwik.net</a>.</p>
Besser leben durch Rebasing: Geschönte Entwicklungshistorie leicht gemacht dank Git2018-03-22T00:00:00+00:00https://www.majug.de/2018/03/22/git-rebasing<h1 id="der-vortrag-muss-leider-kurzfristig-wegen-krankheit-verschoben-werden-der-neue-termin-findet-am-23052018-statt">Der Vortrag muss leider kurzfristig wegen Krankheit verschoben werden! Der neue Termin findet am <a href="http://www.majug.de/2018/05/23/git-rebasing/">23.05.2018</a> statt.</h1>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/245824290/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 22.03.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Eine der ersten und wichtigsten Regeln, die jedem Git-Neuling eingetrichtert werden, ist, dass geteilte Zweige nicht durch Rebasing verändert werden dürfen. Andererseits wird jeder, der einmal ein Rudel Merge Diamonds gesehen hat, bestätigen, dass eine gut lesbare Projekthistorie anders aussieht.</p>
<p>Der Vortrag zeigt, wie durch sinnvolle Kombination von (interaktivem) Rebasing und Merging geteilter Entwicklungszweige eine gut gegliederte und leicht lesbare Versionshistorie inklusive Branches entstehen kann, ohne dass man zu viel seiner eigenen Vergangenheit vergisst.</p>
<p><strong>Skills</strong></p>
<p>Grundlegende Kenntnisse in Git sind von Vorteil.</p>
<p><strong>Lernziele</strong></p>
<ul>
<li>Verstehen der grundsätzlichen Fragestellungen bei der (Re-)Integration von Git Branches (Merge vs. Rebase, Merge Commit vs. Fast-Forward Merge)</li>
<li>Kennenlernen der möglichen Vorteile und Risiken beim Einsatz von Rebasing</li>
<li>Erfahren, wie sich eine einfach lesbare und gut verständliche Versionshistorie in Git trotz Branches erzeugen lässt</li>
</ul>
<h3 id="bio">Bio</h3>
<p>Steffen Schluff ist der Leiter der Software Factory der <a href="http://www.oio.de?majug">OIO Orientation in Objects GmbH</a> und verantwortlich für die in der Entwicklung eingesetzten Werkzeuge und Verfahren, wobei sein besonderes Interesse dem Thema Continuous Delivery gilt.</p>
Refactoring to Java 10, 40 Jenkins Features and Plugins You Wished You Had Known!2018-03-06T00:00:00+00:00https://www.majug.de/2018/03/06/Refactoring-to-Java-10<h3 id="registration">Registration</h3>
<p>Registration is optional, but for planning we would still prefer registration on our <a href="https://www.meetup.com/mannheim-java-usergroup/events/247485454/">Meetup page</a>.</p>
<h3 id="date">Date</h3>
<p>06.03.2018 at 19:00h at Uni Mannheim A5, 6, room C013 (<a href="/getting-there">How to get there</a>).</p>
<h3 id="language">Language</h3>
<p>The talks will be held in English.</p>
<h3 id="abstract">Abstract</h3>
<h4 id="refactoring-to-java-10">Refactoring to Java 10</h4>
<p>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!</p>
<p>We’ll explain:</p>
<ul>
<li>Value types, as in, types that ‘code like a class, work like an int’. (JEP 169)</li>
<li>Generic specialization: List<int>; you can finally do it! (JEP 218)</int></li>
<li>Pattern Matching. No, not the regular expression kind. Like switch(), but more versatile. (JEP 305)</li>
<li>var/val: declare variables and let the compiler sort out the types by looking at the expression you assign to it. (JEP 286)</li>
<li>Declaration-site generics. Ever wonder why you have to sprinkle <code class="language-plaintext highlighter-rouge">? extends</code> all over the place to make complex generics work? This can help. (JEP 300)</li>
<li>Generics in enums. (JEP 301)</li>
<li>Domain objects (also known as ‘value classes’): No more writing / generating of getters, setters, equals, etcetera. (No JEP yet).</li>
</ul>
<h4 id="40-jenkins-features-and-plugins-you-wished-you-had-known">40 Jenkins Features and Plugins You Wished You Had Known!</h4>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/rspilker">Roel Spilker</a> 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.</p>
<p><a href="https://twitter.com/surial">Reinier Zwitserloot</a> 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.</p>
<p><a href="https://twitter.com/joepweijers">Joep Weijers</a> 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.</p>
Refactoring mit monadischen Transaktionen2018-02-22T00:00:00+00:00https://www.majug.de/2018/02/22/refactoring-towards-a-transaction-monad<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/246866481/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 22.02.2018 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>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.</p>
<h3 id="bio">Bio</h3>
<p>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.</p>
Agile Java Day (aka Venkat's 50 JUG tour)2018-01-27T00:00:00+00:00https://www.majug.de/2018/01/27/agile-java-day<h3 id="registration">Registration</h3>
<p>Participation requires registration via our <a href="https://www.meetup.com/mannheim-java-usergroup/events/244411248/">Meetup page</a>.</p>
<p>Around lunch time we will get Pizza and drinks. We’d like to thank our <a href="#sponsors">sponsors</a> for supporting us. It wouldn’t be possible to make this event happen without andrena objects, fluidops, Liveperson, OIO and Pivotal.</p>
<h3 id="date">Date</h3>
<p>Saturday, Jan 27th 2018 from 9:00 to 17:00 (4 talks at 90 mins each) at <a href="http://c-hub.de/">C-Hub</a> in <a href="https://www.google.com/maps/search/?api=1&query=Hafenstra%C3%9Fe+25+%E2%80%93+27%2C+Mannheim%2C+de">Hafenstraße 25-27, 68159 Mannheim</a>.</p>
<h3 id="language">Language</h3>
<p>The talk will be held in English.</p>
<h3 id="abstract">Abstract</h3>
<p>Venkat Subramaniam is a widely known author and speaker at many international conferences. As part of his world-wide <a href="http://blog.agiledeveloper.com/2017/06/a-small-man-with-big-aspiration-tour.html">50 JUG tour</a> 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:</p>
<h4 id="exploring-java-9">Exploring Java 9</h4>
<p>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.</p>
<h4 id="from-functional-to-reactive-programming">From Functional to Reactive Programming:</h4>
<p>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.</p>
<h4 id="the-power-and-perils-of-parallel-streams">The Power and Perils of Parallel Streams</h4>
<p>“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.</p>
<h4 id="twelve-ways-to-make-code-suck-less">Twelve Ways to Make Code Suck Less</h4>
<p>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.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://www.agilelearner.com/">Dr. Venkat Subramaniam</a> is an award-winning author, founder of Agile Developer, Inc., creator of <a href="https://www.agilelearner.com/">agilelearner.com</a>, 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.</p>
<p>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 <a href="https://www.agiledeveloper.com">agiledeveloper.com</a>. You can reach him by email at <a href="mailto:venkats@agiledeveloper.com">venkats@agiledeveloper.com</a> or on twitter at <a href="https://twitter.com/venkat_s">@venkat_s</a>.</p>
<h3 id="agenda">Agenda</h3>
<ul>
<li><em>8:30 to 9:00</em> Reception</li>
<li><em>9:00 to 9:15</em> Introduction</li>
<li><em>9:15 to 10:45</em> Exploring Java 9</li>
<li><em>10:45 to 11:00</em> Break</li>
<li><em>11:00 to 12:30</em> From Functional to Reactive Programming</li>
<li><em>12:30 to 13:45</em> Lunch</li>
<li><em>13:45 to 15:15</em> The Power and Perils of Parallel Streams</li>
<li><em>15:15 to 15:30</em> Break</li>
<li><em>15:30 to 17:00</em> Twelve Ways to Make Code Suck Less</li>
</ul>
<h3 id="sponsors">Sponsors</h3>
<p>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.</p>
<p><a href="https://www.liveperson.com/de" target="_blank"><img src="/public/img/liveperson.png" style="display: inline; padding: 10px; border: 0px;" /></a>
<a href="https://www.oio.de" target="_blank"><img src="/public/img/oio-logo.png" style="display: inline; padding: 10px; border: 0px;" /></a>
<a href="https://www.fluidops.com/de/" target="_blank"><img src="/public/img/fluidops-logo.png" style="display: inline; padding: 10px; border: 0px;" /></a>
<a href="https://www.andrena.de" target="_blank"><img src="/public/img/andrena-logo.png" style="display: inline; padding: 10px; border: 0px;" /></a>
<a href="https://www.pivotal.io" target="_blank"><img src="/public/img/pivotal-logo.png" style="display: inline; padding: 10px; vertical-align: top; border: 0px;" /></a></p>
<p style="clear: both"> </p>
Vavr - Functional Java the Easy Way2017-11-15T00:00:00+00:00https://www.majug.de/2017/11/15/vavr-functional-java-the-easy-way<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/243357347/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>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 (<a href="http://www.mafinex.de/wp-content/uploads/2013/08/Verkehrsfuehrung_2-BA_ab-Sommer-2013.pdf">Anfahrtsbeschreibung</a>).</p>
<h3 id="info">Info</h3>
<p>Bring your Laptop. We will write some Vavr-Code.</p>
<h3 id="abstract">Abstract</h3>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/koenighotze">David Schmitz</a> 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.</p>
Java Libraries You Can’t Afford to Miss2017-10-12T00:00:00+00:00https://www.majug.de/2017/10/12/java-libraries-you-cant-afford-to-miss<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/241199673/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 12.10.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="language">Language</h3>
<p>The talk will be held in English.</p>
<h3 id="abstract">Abstract</h3>
<p>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.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/aalmiray">Andres</a> 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.</p>
Datenbankzentrische Anwendungen mit Spring Boot und jOOQ2017-09-28T00:00:00+00:00https://www.majug.de/2017/09/28/datenbankzentrische-anwendungen-spring-boot-jooq<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/238262460/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 28.09.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>In diesem Vortrag wird eine Variante datenbankzentrischer Anwendungen mit einer modernen Architektur vorgestellt, die sowohl in einer klassischen Verteilung als auch “cloud native” genutzt werden kann und dabei eine sehr direkte Interaktion mit Datenbanken erlaubt.</p>
<p>jOOQ ist eine von vielen Möglichkeiten, Datenbankzugriff in Java zu realisieren, aber weder eine Objektrelationale Abbildung (ORM) noch “Plain SQL”, sondern eine typsichere Umsetzung aktueller SQL Standards in Java. jOOQ “schützt” den Entwickler nicht vor SQL Code, sondern unterstützt ihn dabei, typsicher Abfragen in Java zu schreiben.</p>
<p>Spring Boot setzt seit 2 Jahren neue Standards im Bereich der Anwendungsentwicklung mit dem Spring Framework. Waren vor wenigen Jahren noch aufwändige XML Konfigurationen notwendig, ersetzen heute “opinionated defaults” manuelle Konfiguration. Eine vollständige Spring Boot Anwendung passt mittlerweile in einen Tweet.</p>
<p>Der Autor setzt die Kombination beider Technologien erfolgreich zur Migration einer bestehenden, komplexen Oracle Forms Client Server Anwendung mit zahlreichen Tabellen und PL/SQL Stored Procedures hinzu einer modernen Architektur ein. Das Projekt profitiert sehr davon, die Datenbankstrukturen nicht in einen ORM “zu zwängen”.</p>
<p>Der Vortrag demonstriert, wie Spring Boot genutzt wird, um den Kontext für jOOQ vorzubereiten (Datenbankverbindung, Transaktionen etc.) und anschließend fortgeschrittene, analytische Abfragen als HTTP apis zu veröffentlichen.</p>
<p>Auf dem Weg dorthin wird ebenfalls über Datenbankmigrationen gesprochen und wie auch an dieser Stelle die Magie von Spring Boot eingesetzt werden kann, um Entwicklungs-, Test- und Produktivdatenbanken synchron zu halten.</p>
<p>Kann Domain Driven Design von spezialisierten SQL-Abfragen profitieren? Die Gefahr ist groß, JPA-Entities mit Entitäten aus Evans’ DDD Buch zu verwechseln und zu meinen, man ist fertig mit DDD. Vielleicht ist es eine gute Idee, auch für DDD Entitäten und Value-Objekte spezialisierte Abfragen zu verwenden.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/rotnroll666">Michael Simons</a> ist Software-Architekt (CPSA-F) bei ENERKO Informatik in Aachen und entwickelt dort GIS-, EDM- und Vertriebsmanagement-Systeme für Stromnetzbetreiber und Energielieferanten. Michael ist Mitglied des NetBeans Dream Team und Gründer der <a href="http://www.euregjug.eu/">Euregio JUG</a>. Er schreibt in seinem Blog <a href="http://info.michael-simons.eu">info.michael-simons.eu</a> über Java, Spring und Softwarearchitektur.</p>
<p>Auf Twitter unterwegs als <a href="https://twitter.com/rotnroll666">rotnroll666</a>, unter anderem mit Java, Music und den kleineren und größeren Problemen als Ehemann und Vater von 2 Kindern.</p>
Serverless Computing2017-07-27T00:00:00+00:00https://www.majug.de/2017/07/27/serverless-computing-cloud<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/240412534/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 27.07.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.
In Kooperation mit der <a href="https://www.meetup.com/DevOps-Rhein-Neckar/">DevOps Rhein-Neckar</a>.</p>
<h3 id="abstract">Abstract</h3>
<p><em>Serverless Computing</em> ermöglicht es, Anwendungen und (Micro-)Services zu bauen und zu betreiben, ohne eine dedizierte Infrastruktur verwalten zu müssen.
Der Code wird natürlich noch auf Servern ausgeführt, aber das gesamte Server-Management wird vom Cloud-Anbieter übernommen.
Dieser kümmert sich um Verfügbarkeit, Skalierung, Ressourcen-Management und die entsprechende Mutli-Tenancy-Fähigkeit der Systeme und Infrastruktur.
Der Cloud-Benutzer kann sich voll und ganz auf die Ausführung und das Monitoring seiner Funktionen und Services konzentrieren und bezahlt nur das, was er wirklich nutzt.
<em>Serverless</em> ist aber weit mehr als nur Function-as-a-Service (FaaS).
Außerdem heißt “No Server” nicht gleich “No Ops” - der DevOps-Gedanke wird mit <em>Serverless</em> wichtiger als je zuvor.</p>
<p>In meinem Vortrag zeige ich Beispiele, wie zeitgemäße, aber serverlose Microsservice Cloud Architekturen am Beispiel der AWS Cloud schnell und agil aufgebaut und betrieben werden können.
Hierbei beleuchte ich u.a. die Konzepte von AWS Lambda, Amazon API-Gateway und DynamoDB und baue mit dem Serverless-Framework eine lauffähige Anwendung während des Talks.</p>
<h3 id="bio">Bio</h3>
<p>Niko Köbler (<a href="https://twitter.com/dasniko">@dasniko</a>, <a href="http://www.n-k.de">www.n-k.de</a>) macht irgendwas mit Computern, oft im Web, meistens auf der JVM.<br />
Er ist Co-Lead der JUG Darmstadt, Autor für Fachmagazine und Online-Portale und tritt als Sprecher auf internationalen Technologie-Konferenzen auf.<br />
Zur Zeit schreibt er das <a href="http://serverlessbuch.de">“Serverless Computing” Buch</a> (<a href="https://twitter.com/serverlessbuch">@serverlessbuch</a>), welches im Herbst dieses Jahres im Verlag entwickler.press erscheinen wird.</p>
Spring Data MongoDB Deep Dive2017-07-05T00:00:00+00:00https://www.majug.de/2017/07/05/spring-data-mongodb-deep-dive<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/239361042/">Meetup-Seite</a>.</p>
<h3 id="language">Language</h3>
<p>The talk will be given in English.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 05.07.2017 um 19:00 Uhr in der MAFINEX, Bauteil C, Raum C4 im Erdgeschoss, in Kooperation mit der <a href="https://www.meetup.com/de-DE/Mannheim-MongoDB-User-Group/">MongoDB Mannheim User Group</a> statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Spring Data is a high-level project in the Spring project portfolio for relational and NoSQL data stores. Spring Data MongoDB provides Document-to-Object mapping, an abstraction to work with MongoDB data and means to use MongoDB features efficiently. I’ll walk you in the More-Code-Than-Slides session through Spring Data basics, we’ll have a detailed look on the MongoDB Aggregation framework and you’ll learn which Mongo 3.4 features you can use already today with Spring Data MongoDB.</p>
<h3 id="bio">Bio</h3>
<p>Mark Paluch (<a href="https://twitter.com/mp911de">@mp911de</a>) is a Software Craftsman working as Spring Data Engineer at Pivotal. He co-maintains MongoDB, Redis and Apache Cassandra modules and he’s project lead of the Lettuce Redis driver. Mark speaks regularly at German and international conferences and publishes articles about his work.</p>
Lightning-Talks2017-06-01T00:00:00+00:00https://www.majug.de/2017/06/01/lightning-talks<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/238492039/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 01.06.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="vorträge">Vorträge</h3>
<p><strong>19:00 Uhr: Serverless, auf dem Weg zu NoOps</strong><br />
<em>Alex Krause</em></p>
<p>Auf dem Weg zu NoOps, für einen Euro im Monat Das Serverless Framework ermöglicht schnelle Entwicklung von Serverless Anwendungen, ein einfaches und automatisiertes Deployment auf AWS Lambda und die Integration mit AWS API Gateway. Aha und jetzt? Wir zeigen euch wie man mit wenig Aufwand und geringen Kosten Dienste in der Cloud betreibt.</p>
<p>Link zu den <a href="https://speakerdeck.com/alex0ptr/serverless">Folien</a>.</p>
<p><strong>19:30 Uhr: VersionEye Maven Plugin</strong><br />
<em>Robert Reiz</em></p>
<p>Das VersionEye Maven Plugin prüft alle Abhängigkeiten zur Build Zeit und bricht den Build wenn eine Abhängigkeit eine bekannte Sicherheitslücke hat oder die Lizenz gegen eine vordefiniert Lizenz Whitelist verstösst.</p>
<p>Folien: Slideless, siehe <a href="https://github.com/versioneye/versioneye_maven_plugin">github.com/versioneye/versioneye_maven_plugin</a>.</p>
<p><strong>20:00: Fehler als Werte - Ausnahmebehandlung in der funktionalen Programmierung</strong><br />
<em>Mario Philipps</em></p>
<p>In imperativen Programmiersprachen erfolgt Fehlerbehandling in der Regel über das Werfen von Exceptions. Funktionale Sprachen hingegen betrachten Fehler meist als Werte, die ebenso wie andere Werte behandelt werden können.</p>
<p>Der Vortrag vergleicht den funktionalen mit dem imperativen Ansatz, und zeigt Vor- und Nachteile auf.</p>
<p>Link zu den <a href="https://de.slideshare.net/MarioPhilipps/fehler-als-werte-ausnahmebehandlung-in-der-funktionalen-programmierung">Folien</a>.</p>
Swagger first, make REST APIs great again.2017-05-04T00:00:00+00:00https://www.majug.de/2017/05/04/swagger-specification<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/239185867/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 04.05.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Die OpenAPI Spezifikation (Swagger Spezifikation) stellt Konstrukte zur Beschreibung von REST APIs bereit.
In diesem Vortrag teile ich meine Projekterfahrungen, wie mit Hilfe der Swagger Spezifikation, das Bereitstellen und Konsumieren von REST APIs in größeren Teams vereinfacht werden kann. Ich zeige an einem Beispiel, das Swagger mehr als nur ein Interface zum “Browsen” von Endpunkten ist.
Es werden anhand der Spezifikation Server-Stubs und Clients generiert.
Darüber hinaus passen wir die Templates für eigene Zwecke an und integrieren sie in einem Maven Build.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/chrschneider">Christian Schneider</a> ist freiberuflicher Software-Entwickler und beschäftigt sich hauptsächlich mit neuen Technologien in den Themengebieten Java und Cloud-Computing.
Er ist Mitgründer einer auf Web-Scraping spezialisierten Firma und entwickelt seit 2008 an einer Vielzahl von Projekten im Bereich Spring, Web und Web-Scraping führend mit.
Darüber hinaus war er Dozent an der Fachhochschule in Heidelberg und arbeitet in seiner Freizeit u.a. an kleineren Software-Entwicklungsprojekten.</p>
Spring Data Repositories - Best Practices2017-04-13T00:00:00+00:00https://www.majug.de/2017/04/13/spring-data-repositories-best-practices<h3 id="language">Language</h3>
<p>The talk will be held in English.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/237170404/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 13.04.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Die Repository Abstraktion ist das zentrale Element der Spring Data Projekte. Es stellt ein einfaches, konsistentes und Interface basiertes Programmiermodell bereit mit dessen Hilfe sich Datenzugriffsschichten auf relationale und auch nicht-relationale Datastores leicht realisieren lassen.
In diesem Vortrag stellen wir die Repository Abstraktion vor und berichten von Best Practices und unseren Erfahrungen aus zahlreichen Kundenprojekten. Wir betrachten auch erweiterte Features wie z.B. die Integration mit querydsl, eigene Implementierungen, Java 8 Support sowie auch integration mit Spring MVC und Spring HATEOS.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/thomasdarimont">Thomas Darimont</a> arbeitet als Softwarearchitekt bei der eurodata AG in Saarbrücken und war früher Committer im Spring Data Projekt bei Pivotal. Seit über 10 Jahren widmet er sich dem Entwickeln von Java- und .Net-basierten Enterprise-Applikationen sowie verschiedenen Open-Source-Projekten. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring Ökosystem, Persistenztechnologien sowie Identity Management. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie User Groups.</p>
Google Cloud Next17 Extended2017-03-25T00:00:00+00:00https://www.majug.de/2017/03/25/google-cloud-next17-extended<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/237216378/">Meetup-Seite</a>. Die Teilnehmerzahl ist auf 20 begrenzt.</p>
<h3 id="termin">Termin</h3>
<p>Die Viewingparty findet am 25.03.2017 um 9:00 bis 12:00 Uhr bei der <a href="https://www.bitexpert.de/unternehmen/#kontakt">bitExpert AG</a> statt (<a href="https://www.google.de/maps/dir//Industriestra%C3%9Fe+35,+68169+Mannheim/@49.51227,8.4652781,17z/data=!4m16!1m7!3m6!1s0x4797cdcf0ff5c571:0x2b4892cd99a1622!2sIndustriestra%C3%9Fe+35,+68169+Mannheim!3b1!8m2!3d49.51227!4d8.4674668!4m7!1m0!1m5!1m1!1s0x4797cdcf0ff5c571:0x2b4892cd99a1622!2m2!1d8.4674668!2d49.51227">Google Maps</a>).</p>
<h3 id="summary">Summary</h3>
<p>Join us for a viewing party of #GoogleNext17 #extended!</p>
<p><img src="https://a248.e.akamai.net/secure.meetupstatic.com/photos/event/4/5/5/5/600_457817749.jpeg" width="300" /></p>
<p>After the keynote of the first day, we will watch together a breakout session replay. We provide you with pizza and drinks.</p>
<p>We will meet at bitExpert AG in Mannheim and enjoy Google talks with drinks and snacks.</p>
<p>Leave a feedback: <a href="https://goo.gl/WamRRq">https://goo.gl/WamRRq</a></p>
Jenkins Pipelines2017-03-15T00:00:00+00:00https://www.majug.de/2017/03/15/jenkins-pipelines<h3 id="language">Language</h3>
<p>The talk will be given in German. On demand the language can be switched to English. Slides are in English.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/238008151/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 15.03.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Pipelines are a central element of Continuous Delivery and break the delivery process down into multiple stages. By visualizing the flow through the pipeline, the delivery team receives feedback about the status of a change made to the delivered software project.</p>
<p>The implementation of such pipelines using the popular Jenkins CI software has been pretty rough until the public release of a whole set of plugins earlier this year. These pipeline plugins are under very active development and now bring decent support for both pipeline visualization as well as configuration using an own domain specific language.</p>
<p>The talk will give an overview over Jenkins’ new pipeline plugins, as well as different ways to define pipelines as code, i.e., manually, by scanning all repos of a Github organization, and via the shared library.
By describing a setup for automated testing and releasing of Chef cookbooks, some of the features offered by Jenkins pipelines will be demonstrated (Jenkins instance is publicly available at https://chef-ci.typo3.org).
Further reading: https://jenkins.io/doc/pipeline/</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/StGebert">Steffen</a> lives in Würzburg and is about to finish his PhD in computer science with a focus on software-based networks.
In his spare time, he maintains the project infrastructure of the TYPO3 project.</p>
DDD Workshop2017-03-09T00:00:00+00:00https://www.majug.de/2017/03/09/DDD-workshop<h3 id="termin">Termin</h3>
<p>Dieser Workshop findet am 09.03.2017 um 18:00 Uhr (Ende zirka 22 Uhr) bei der OIO Orientation in Objects GmbH in der Weinheimer Str. 68 in Mannheim statt (<a href="http://www.oio.de/unternehmen/kontakt/anfahrt.htm">Anfahrtsbeschreibung</a>).</p>
<p>Die Teilnehmerzahl ist begrenzt. Anmeldungen bitte per E-Mail an <a href="mailto:info@oio.de">info@oio.de</a>.</p>
<p><a href="http://www.oio.de/"><img src="/public/img/oio-logo.png" style="float:left; padding-right:10px;" /></a>
Vielen Dank an die Firma <a href="http://www.oio.de/">OIO Orientation in Objects GmbH</a>, die uns ihre Räumlichkeiten zur Verfügung stellt und auch für das leibliche Wohl sorgen wird.</p>
<h3 id="abstract">Abstract</h3>
<p>In diesem Workshop werden wir die grundlegenden Konzepte und Ideen von Domain Driven Design und seine Evolution betrachten und kennenlernen. Dabei werden nicht nur reine Patterns betrachtet, sondern auch eruiert in wie weit DDD organisatorische, (Team-)politische und kommunikative Aspekte beeinflusst. Der Workshop bespricht dabei die grundlegenden Eigenschaften und “Attitüden”, die DDD ausmachen. Im nächsten Teil geht es detailliert um den Bereich der Internal Building Block, dem wohl bekanntesten DDD-Teil: die Entitäten, Value Objects oder Aggregates. Schließlich werden wir das Thema Strategic Design beleuchten und lernen in wie weit uns Bounded Contexts und Context Maps dabei helfen, bestehende Systemlandschaften oder Systeme zu analysieren und warum vor allem die Context Map mit ihren Klassifizierungen ein sehr guter Ausgangspunkt für künftige IT-Transformationen ist. Abschließend werfen wir noch kurz einen Blick auf neuere Trends im DDD-Umfeld, wie zum Beispiel Domain Events, Event Sourcing oder CQRS.</p>
<p>Der Workshop wird sowohl einen theoretischen, wie auch einen praktischen Teil mit Beispielen und kurzen Übungen beinhalten.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/bitboss"><strong>Michael Plöd</strong></a> ist entwickelnder Software Architekt und in dieser Rolle überwiegend in Projekten tätig, die die Transformation großer IT-Landschaften anstreben. Michael ist Speaker auf zahlreichen Konferenzen und regelmäßiger Autor von Fachartikeln. Seine aktuellen Interessensgebiete sind Microservices, CQRS, polyglotte Persistence, Alternativen zu alteingewachsenen Software Architekturen und Präsentationstechniken für Entwickler und Architekten.</p>
Jenkins Pipelines2017-02-02T00:00:00+00:00https://www.majug.de/2017/02/02/jenkins-pipelines<h1 id="der-vortrag-muss-leider-kurzfristig-verschoben-werden-der-neue-termin-wird-noch-bekannt-gegeben">Der Vortrag muss leider kurzfristig verschoben werden!!! Der neue Termin wird noch bekannt gegeben!</h1>
<h3 id="language">Language</h3>
<p>The talk will be given in German. On demand the language can be switched to English. Slides are in English.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/236319928/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am <del>02.02.2017</del> (neuer Termin steht noch aus!) um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Pipelines are a central element of Continuous Delivery and break the delivery process down into multiple stages. By visualizing the flow through the pipeline, the delivery team receives feedback about the status of a change made to the delivered software project.</p>
<p>The implementation of such pipelines using the popular Jenkins CI software has been pretty rough until the public release of a whole set of plugins earlier this year. These pipeline plugins are under very active development and now bring decent support for both pipeline visualization as well as configuration using an own domain specific language.</p>
<p>The talk will give an overview over Jenkins’ new pipeline plugins, as well as different ways to define pipelines as code, i.e., manually, by scanning all repos of a Github organization, and via the shared library.
By describing a setup for automated testing and releasing of Chef cookbooks, some of the features offered by Jenkins pipelines will be demonstrated (Jenkins instance is publicly available at https://chef-ci.typo3.org).
Further reading: https://jenkins.io/doc/pipeline/</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/StGebert">Steffen</a> lives in Würzburg and is about to finish his PhD in computer science with a focus on software-based networks.
In his spare time, he maintains the project infrastructure of the TYPO3 project.</p>
JUnit 5: Next Generation Testing on the JVM2017-01-12T00:00:00+00:00https://www.majug.de/2017/01/12/junit5-next-generation<h3 id="language">Language</h3>
<p>The talk will be given in German. On demand the language can be switched to English. Slides are in English.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/236234428/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 12.01.2017 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Java’s most ubiquitous library is getting an update!
And this is the time to see what’s new and weigh in on its course.</p>
<p>This talk will…</p>
<ul>
<li>show you how to write tests with JUnit 5</li>
<li>walk you through the changes compared to JUnit 4</li>
<li>expand on dynamic tests and the extension model</li>
<li>present the new architecture</li>
<li>discuss compatibility with previous JUnit versions, IDEs, and other
testing tools</li>
</ul>
<p>Be careful, though:
You might end up with an urge to start using it right away.</p>
<h3 id="bio">Bio</h3>
<p>Nicolai is a thirty year old boy, as the narrator would put it, who
has found his passion in software development. He constantly reads,
thinks, and writes about it, and codes for a living as well as for fun.</p>
<p>Nicolai is the editor of <a href="http://sitepoint.com/java/">SitePoint’s Java channel</a>, writes a book
about <a href="http://blog.codefx.org/java-module-system-in-action/">Project Jigsaw</a> blogs about software development on
<a href="http://codefx.org">codefx.org</a>, and is a long-tail contributor to several open source
projects. You can <a href="http://blog.codefx.org/hire-nicolai-parlog/">hire him</a> for all kinds of things.</p>
Apache Kafka2016-12-01T00:00:00+00:00https://www.majug.de/2016/12/01/apache-kafka<h3 id="language">Language</h3>
<p>The talk will be given in German. Slides are in English.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/de-DE/mannheim-java-usergroup/events/235392211/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 01.12.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Apache Kafka ist ein verteilter Message Broker, der nach dem Publish-Subscribe-Prinzip arbeitet. Durch seine Architektur kann ein Kafka-Cluster immensen Durchsatz bei sehr niedriger Latenz erreichen – und obendrein noch hervorragend horizontal skalieren. Florian Troßbach erläutert die Grundkonzepte und demonstriert, wie Clients mit Kafka interagieren können.</p>
<h3 id="bio">Bio</h3>
<p>Florian Troßbach arbeitet als IT-Consultant bei der codecentric AG. Seine Wurzeln hat er in der klassischen Java-Enterprise-Entwicklung, mittlerweile gilt sein Hauptaugenmerk jedoch dem Themenbereich “Fast Data” und dem SMACK Stack.</p>
hello.kt - putting the fun in your code2016-10-27T00:00:00+00:00https://www.majug.de/2016/10/27/kotlin-putting-the-fun-in-your-code<h3 id="language">Language</h3>
<p>The talk will be given in English.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/232862748/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 27.10.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>In this talk we take a look at the Kotlin Programming Language. Based on a sample application, we will go over the language features and see how they compare to Java. We will discuss the interoperability between both languages and see how to build Kotlin applications using Gradle.</p>
<h3 id="bio">Bio</h3>
<p>Alexander Hanschke works at techdev Solutions and is helping clients to realize IT projects mostly based on Java. He resisted to jump at a new language for a long time, but eventually fell in love with Kotlin.</p>
Continuous Delivery mit Feature Toggles2016-09-29T00:00:00+00:00https://www.majug.de/2016/09/29/Continuous-Delivery-mit-Feature-Toggles<h3 id="language">Language</h3>
<p>The talk will be given in German.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/232900990/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 29.09.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Im Zeitalter von Continuous Delivery möchte man möglichst häufig und schnell Änderungen in Produktion bringen. Nur was macht man, wenn Features noch nicht fertig implementiert sind oder noch nicht veröffentlicht werden sollen?</p>
<p>Eine mögliche Lösung ist die Isolierung von Features über Branches. Bei vielen Features bzw. Features mit langer Entwicklungszeit kommt man hier schnell in die Merge-Hölle.</p>
<p>Eine andere Lösung sind Feature Toggles, über die Features im Live-Betrieb versteckt werden können. Das heißt man entkoppelt das Ausrollen von Funktionalität vom eigentlichen Deployment.</p>
<p>Feature Toggles bieten noch einige weitere Vorteile, wie z.B. die Möglichkeiten von A/B-Tests, Canary Releases etc. Es existieren aber auch Risiken, die in diesem Vortrag nicht unerwähnt bleiben sollen.</p>
<p>Der Vortrag beschäftigt sich außerdem mit der Togglz-Library. Wie damit Feature Toggles in realen Projekten umgesetzt werden können, wird an Hand von Code-Beispielen gezeigt.</p>
<h3 id="bio">Bio</h3>
<p>Kai Hofstetter ist Senior Softwareentwickler bei 1&1. Er beschäftigt sich seit über 15 Jahren mit Java, macht aber auch gerne Ausflüge zu anderen Programmiersprachen, wie z.B. Scala.</p>
<p>Er interessiert sich u.a. für alles was die Effizienz der Softwareentwicklung steigert und die Softwarequalität verbessert, wie z.B. Continuous Delivery.</p>
<p>Kai hat bereits bei verschiedenen Web-Anwendungen Erfahrungen mit der Einführung von Feature Toggles gesammelt und ist Togglz Contributor.</p>
<p>Des Weiteren gilt sein besonderes Interesse dem Thema Security von Web-Applikationen.</p>
Lean Microservices using OSGi2016-08-10T00:00:00+00:00https://www.majug.de/2016/08/10/Lean-Microservices-using-OSGi<h3 id="language">Language</h3>
<p>The talk will be given in German.</p>
<h3 id="registration">Registration</h3>
<p>Wir freuen uns über Eure Anmeldung (optional und unverbindlich) auf unserer <a href="https://www.meetup.com/mannheim-java-usergroup/events/232792465/">Meetup-Seite</a>.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 10.08.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C014 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Microservices and their frameworks like spring boot allow to start fast but can easily produce ugly monoliths again.
OSGi on the other hand provides great modularity but is regarded as more complex than spring boot and alike.
This Talk shows how to create lean and modular microservices using OSGi, maven and bndtools.
The build result is a runnable jar or docker image and nicely fits microservice deployments.
See how OSGi allows the flexibility to deploy each microservice on its own and let them communicate over (REST) remote calls or
deploy them together and talk using OSGi services locally using the same business code bundles.</p>
<h3 id="bio">Bio</h3>
<p>Christian Schneider is an Open Source Architect at Talend. He was the responsible architect for the Services Oriented Architecture of EnBW Trading GmbH (Trading floor of one of Germany’s largest utility companies).
He specializes in OSGi and practical integration solutions. He was a a regular speaker at several Java conferences in Germany like JAX. W-JAX and at Apachecon.</p>
Use functions for a greater good2016-07-21T00:00:00+00:00https://www.majug.de/2016/07/21/functions-for-a-greater-good<h3 id="language">Language</h3>
<p>The talk will be given in English.</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 21.07.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>A lot of people refer to Java 8 as a shift towards functional programming. But what exactly does this mean? What are the benefits from using functions and lambdas? What ideas do <code class="language-plaintext highlighter-rouge">Stream</code>s, <code class="language-plaintext highlighter-rouge">Optional</code>s and <code class="language-plaintext highlighter-rouge">CompletableFuture</code>s share? And how can one exploit these? In this talk we try to give a comprehensive answer by introducing the basics of functional programming and providing a lot of real world examples in Java 8. Further, we will also have a look on how lambda expressions are translated to bytecode and, whether, there is a perfomance impact.</p>
<p>After this talk you will</p>
<ul>
<li>know how functions are represented in Java 8</li>
<li>know the common abstractions of <code class="language-plaintext highlighter-rouge">Stream</code>s, <code class="language-plaintext highlighter-rouge">Optional</code>s and <code class="language-plaintext highlighter-rouge">CompleteableFuture</code>s</li>
<li>hopefully apply some of the given suggestions</li>
</ul>
<h3 id="bio">Bio</h3>
<p>Artem Kozlov is a Software Engineer, currently working for metaphacts GmbH in Walldorf. He is mainly interested in Functional Programming languages like Haskell, Scala, etc. and Semantic Web Technologies.</p>
<p>Gregor Trefs is a Research Assistent at the University of Mannheim where he uses Java 8 to develop a platform for semantically integrating business processes. He is always interested in new ways to better cope with challenges in Software Development.</p>
Hallo, ich bin Redis2016-06-09T00:00:00+00:00https://www.majug.de/2016/06/09/Redis<h3 id="language">Language</h3>
<p>As per request of some vistors <strong>the talk will be held in English</strong>!</p>
<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 09.06.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Caching? Verteile Sessions? Pub/Sub? 100.000 Requests pro Sekunde? Dies und viel mehr bietet Redis. Redis ist ein Open Source NoSQL Data Store und ist ein vielseitiger Server für Datenstrukturen der sich einer immer größeren Beliebtheit erfreut. Der Vortrag ist eine Einführung in Redis und veranschaulicht mit Hilfe von Code-Beispielen, wie Redis mit Spring Data, Hibernate OGM und plain Java verwendet werden kann.</p>
<h3 id="bio">Bio</h3>
<p>Mark Paluch ist Software Craftsman, Spring Data Engineer bei Pivotal und arbeitet als Mitglied der CDI 2.0 (JSR365) Expert Group an der nächsten Version der Spec. Er entwickelt seit 1999 Java Server-, Frontend- und Webanwendungen und sein aktueller Fokus liegt auf Software-Architektur, Spring und Redis. Mark bloggt regelmäßig über Java, Testautomatisierung, das Internet der Dinge und die Entwicklungskultur. In seiner freien Zeit beteiligt er sich als Committer an Open Source Projekten.</p>
Jigsaw Walkthrough: Modularisierung einer Java-Anwendung2016-05-12T00:00:00+00:00https://www.majug.de/2016/05/12/Jigsaw-Walkthrough<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 12.05.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Die meisten werden schon von Project Jigsaw in Java 9 gehört haben,
aber haben Sie es auch schon in Aktion gesehen? Dieser Vortrag führt
anhand der Modularisierung einer Beispielanwendung vorbei an einigen
Fallstricken durch die wichtigen Features.</p>
<p>Er wird zeigen wie man …</p>
<ul>
<li>Module und ihre Abhängigkeiten definiert</li>
<li>eine Anwendung und ihre Abhängigkeiten auf Kompatibilität untersucht</li>
<li>eine Anwendung trotz nicht-modularisierter Abhängigkeiten migriert</li>
</ul>
<p>Mit diesem Wissen gewappnet werden Sie in der Lage sein, die Migration
Ihrer Anwendung zu beurteilen oder gleich prototypisch durchzuführen.</p>
<h3 id="bio">Bio</h3>
<p>Nicolai Parlog arbeitet als Java-Entwickler bei <a href="http://disy.net">Disy</a> in Karlsruhe
und <a href="http://codefx.org">bloggt</a> nebenbei zu Softwareentwicklung im Allgemeinen und Java
im Speziellen. Besonders interessiert ist er an Neuerscheinungen wie
Java 8 (als es noch neu war), Project Jigsaw in Java 9, Project
Valhalla in Java 10/11 oder JUnit 5.</p>
<p>Er hat an der TU Dortmund Informatik und Mathematik studiert und
anschließend drei Jahre beim Fraunhofer ISI Energiemodelle entwickelt
bevor er im Herbst 2014 zu Disy wechselte.</p>
CQRS und EventSourcing2016-03-24T00:00:00+00:00https://www.majug.de/2016/03/24/CQRS-und-EventSourcing<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.03.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Eine Tabelle mit drei Spalten: Das ist alles was man mit EventSourcing braucht, um einen eCommerce Shop zu entwickeln - oder ein ERM-System - oder eigentlich jede Art von Software. Statt wie üblich den Ist-Zustand zu speichern, erfasst man Domain Events: Alles was in der Anwendung passiert ist. Aus diesen Events wird zur Laufzeit der Zustand der Anwendung abgeleitet. In meinem Vortrag zeige ich, wie eine EventSourcing Architektur mit Command-Query-Responsibility-Segregation aussieht und wie man damit skalierbare, sich entwickelnde Software, maßgescheidert auf die Business Anforderungen, schreiben kann und obendrein ein exzellentes Domänenmodell erhält.</p>
<h3 id="bio">Bio</h3>
<p>Raimo Radczewski ist Software Craftsman aus Überzeugung. Nach dem Studium der Wirtschaftsinformatik gründete er ein Startup, das sich auf Compliance Informationssysteme spezialisierte. Heute arbeitet er für <a href="http://www.vaamo.de">Vaamo</a>, wo er Deutschlands einfachstem RoboAdvisor für Sparinvestments entwickelt. Seit 3 Jahren setzt er auf EventSourcing, um hochwertige Software für Anwender und Entwickler gleichermaßen zu entwickeln. Für die größten Software Craftsmanship Usergroups Deutschlands in Berlin und Münster-Osnabrück-Bielefeld organisiert und moderiert er regelmäßig Workshops, Coderetreats und Open-Spaces.</p>
TDD Workshop2016-02-25T00:00:00+00:00https://www.majug.de/2016/02/25/TDD-workshop<h3 id="termin">Termin</h3>
<p>Dieser Workshop findet am 25.02.2016 um 19:00 Uhr (Ende zirka 22 Uhr) bei der OIO Orientation in Objects GmbH in der Weinheimer Str. 68 in Mannheim statt (<a href="http://www.oio.de/unternehmen/kontakt/anfahrt.htm">Anfahrtsbeschreibung</a>).</p>
<p><a href="http://www.oio.de/"><img src="/public/img/oio-logo.png" style="float:left; padding-right:10px;" /></a>
Vielen Dank an die Firma <a href="http://www.oio.de/">OIO Orientation in Objects GmbH</a>, die uns ihre Räumlichkeiten zur Verfügung stellt und auch für das leibliche Wohl sorgen wird.</p>
<h3 id="abstract">Abstract</h3>
<blockquote>
<p>One disadvantage to TDD: once you see how well-designed your software can be, you <em>really</em> see how terrible most software is.</p>
<p>– <cite>J.B. Rainsberger</cite></p>
</blockquote>
<p>Testgetriebene Softwareentwicklung ist doch eigentlich ein alter Hut. Fragt man aber mal in die Runde von Usergroup-Veranstaltungen, dann hat sich TDD in der Praxis bisher kaum durchgesetzt. Die Gründe dafür sind vielfältig. Aufgrund der fehlenden praktischen Übungsmöglichkeiten fehlt vielen letzten Endes die Erfahrung, wie man beispielsweise im Kontext von Enterprise-Anwendungen sinnvoll testgetrieben vorgeht.</p>
<p>Zusammen mit TDD-Urgestein Johannes Link (Autor des ersten deutschsprachigen <a href="http://dpunkt.de/buecher/3379/Softwaretests%20mit%20JUnit.html">Buchs zum Thema</a>) wollen wir uns zunächst die Grundideen in Erinnerung rufen und dann im Pair Programming ausprobieren. Es geht weniger um die neuesten Architekturstile, Bibliotheken und Programmiersprachen. Wir wollen vielmehr durch eine gemeinsame Diskussion Ansätze evaluieren, um auch bei den klassischen X-Schicht-Architekturen der Unternehmensanwendungen sowohl in der Präsentations-, als auch der Geschäftslogik- und Persistenzschicht testgetrieben vorzugehen. Die verwendeten Technologien sind dabei zweitrangig.</p>
<p>Eure in dieser Richtung bereits gesammelten Erfahrungen sind genauso wichtig wie beispielsweise konkrete Beispiele aus der täglichen Arbeit. Als Sprache setzen wir auf Java. Bitte bringt Euren vorkonfigurierten Rechner (Java, Maven/Gradle, IDE, ggf. initiales Projektsetup) mit, so dass wir bei der Veranstaltung direkt loslegen können. Bei inhaltlichen Fragen zum Workshop bitte an <a href="mailto:tdd-workshop@majug.de">tdd-workshop@majug.de</a> wenden.</p>
<p>Die Teilnehmerzahl ist begrenzt. Anmeldungen bitte per E-Mail an <a href="mailto:info@oio.de">info@oio.de</a>.</p>
ReactiveX/RxJava vs. Zombies2016-01-28T00:00:00+00:00https://www.majug.de/2016/01/28/RxJava<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 28.01.2016 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Mit RxJava - dem Reactive Programming-Framework von Netflix - lassen sich Datenflüsse mit Komponenten programmieren, die strukturell unabhängig sind, ohne dabei auf Higher-Order-Functions wie map, reduce oder filter verzichten zu müssen. In diesem Vortrag stellt Phillip Ghadir Reactive Programming mit RxJava vor und zeigt, wie sich die Konzepte asynchrone Eventstreams und Observables verwenden lassen. Anhand der Grundidee des Computer-Spiels <strong>Plants vs. Zombies</strong> wird die Verwendung von RxJava demonstriert. Zu guter Letzt wird von dem Beispiel abstrahiert und skizziert, wie sich mit ReactiveX reaktionsfreudige Systeme bauen lassen.</p>
<h3 id="bio">Bio</h3>
<p>Phillip Ghadir, Mitglied der Geschäftsleitung und Principal Consultant bei innoQ, beschäftigt sich mit Softwarearchitekturen im Allgemeinen und der Ausbildung von Softwarearchitekten im Besonderen. Er hat nie den Spaß an Java verloren. Aber seit Java 8 macht es noch viel mehr Spaß. Er programmiert auch gern in Ruby und Clojure. Fünf mal im Jahr kann man ihn bei einem Software Architecture Camp live erleben.</p>
Effektiver Einsatz von Code-Reviews2015-11-26T00:00:00+00:00https://www.majug.de/2015/11/26/code-reviews<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 26.11.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<p><a href="http://www.oio.de/"><img src="/public/img/oio-logo.png" style="float:left; padding-right:10px;" /></a>
Vielen Dank an die Firma <a href="http://www.oio.de/">OIO Orientation in Objects GmbH</a>, die anschließend die erste Getränkerunde in der Kneipe spendiert!</p>
<h3 id="abstract">Abstract</h3>
<p>Software wird zunehmend komplexer und gleichzeitig werden Release-Zyklen bis hin zu Continuous-Delivery immer kürzer. Effektive Code-Reviews sind notwendig, um in diesem Umfeld eine qualitätsgesicherte Nachverfolgbarkeit von Änderung über den gesamten Application Lifecycle zu ermöglichen. In der Session werden zunächst die technischen und organisatorischen Voraussetzungen für einen effektiveren Einsatz von Code-Reviews vorgestellt. Anschließend wird das Zusammenspiel verschiedener Tools zur nahtlosen Einbindung von Code-Reviews in den gesamten Entwicklungsprozess an Beispielen aus der Praxis gezeigt.</p>
<h3 id="bio">Bio</h3>
<p>Thorsten Maier arbeitet bei der OIO Orientation in Objects GmbH in Mannheim. Er erschließt kontinuierlich bessere Wege, Software zu entwickeln, indem er selbst als leidenschaftlicher Java-Softwareentwickler unterwegs ist und anderen als Berater, Trainer, Autor sowie Speaker dabei hilft. Trotz seiner Begeisterung für Neues sind ihm Menschen stets wichtiger als Technologien. Sein Hauptaugenmerk liegt daher auf der Frage, wie sich modernste Technologien in gewachsene Umgebungen einbinden lassen und wann man besser auf Bestehendes zurückgreifen sollte.</p>
<h3 id="anmeldung">Anmeldung</h3>
<p>Bitte meldet Euch unverbindlich an, damit wir grob planen können.</p>
<iframe src="https://docs.google.com/forms/d/1mKFzkjvFEIXoALs-f6VMHjWlJyUkEvbJI1W3tl0VBwc/viewform?embedded=true" width="760" height="650" frameborder="0" marginheight="0" marginwidth="0">Wird geladen...</iframe>
Umgekehrte Architekturanalyse - Datastore Evaluation2015-10-22T00:00:00+00:00https://www.majug.de/2015/10/22/Umgekehrte-Architekturanalyse-Datastore-Evaluation<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 22.10.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Häufig sind zu Beginn eines Projektes noch nicht alle Anforderungen
erfassbar, bzw. oft auch noch gar nicht bekannt. Joachim Arrasz und
Christian Mennerich werden in diesem Vortrag über Methodiken und
Erfahrungen berichten, wie ohne vollständige und konkrete fachliche
Anforderungen dennoch die Möglichkeit besteht, zumindest mit einer
gewissen Wahscheinlichkeit das für ein Softwareprojekt passende Produkt
ausgewählt zu haben.</p>
<p>Dazu wird ein Beispiel aus der Containerlogistik herangezogen. Dies ist
ein Geschäftsbereich, der sich durch hohe Dynamik und Anforderungen an
Flexibilität im Tagesgeschäft auszeichnet. Es wird diskutiert, wie
anhand technischer Fallbeispiele eine risikominimierende Entscheidung
für einen Datastore (in diesem Fall die Graphdatenbank Neo4j) gefällt
werden konnte. Auf Lasttests, API-Testszenarien und Mengengerüste wird
dabei eingegangen, und neben einer Beschreibung des Projektverlaufs wird
auch ein Ausblick auf das erfolgreich fortdauerende Projekt gegeben.</p>
<h3 id="bio">Bio</h3>
<p>Christian Mennerich hat an der Christian-Albrechts-Universität zu Kiel
Informatik studiert, ein Studienschwerpunkt lag auf der Theorie und
Implementation (relationaler) Datenbanksysteme. Seit März 2013 ist er
als Entwickler bei der synyx GmbH & Co. KG tätig, wo er sich unter
anderem mit NoSQL-Datenbanken, insbesondere Graphdatenbanken, beschäftigt.</p>
<p>Joachim Arrasz ist als Software- und Systemarchitekt in Karlsruhe bei
der synyx GmbH & Co. KG als Leiter der CodeClinic tätig. Darüber hinaus
twittert (<a href="https://twitter.com/arrasz">@arrasz</a>) und bloggt er gerne (<a href="http://blog.synyx.de/">http://blog.synyx.de/</a>).</p>
Java-Microservices praktisch mit Spring Boot und Spring Cloud2015-09-24T00:00:00+00:00https://www.majug.de/2015/09/24/microservices-mit-spring-boot<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.09.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Microservices sind nicht einfach kleine Anwendungen mit REST-Schnittstelle. Der Aufbau verteilter Systeme stellt Entwickler vor ganze neue Herausforderungen. Spring Boot hilft, indem es kleine Services einfach implementierbar macht. Spring Cloud bietet die Infrastruktur für die Gesamtarchitektur. Dieser Vortrag zeigt, wie die beiden Technologien die Implementierung von Microservices vereinfachen.</p>
<h3 id="bio">Bio</h3>
<p>Eberhard Wolff <a href="http://ewolff.com">(http://ewolff.com)</a> arbeitet als Fellow bei der innoQ GmbH. Außerdem ist er Java Champion. Sein technologischer Schwerpunkt liegt auf modernen Architektur-Ansätzen - Cloud, Continuous Delivery, DevOps, Microservices oder NoSQL spielen oft eine Rolle. Er ist Autor von über hundert Artikeln und Büchern.</p>
<h3 id="majug-spezial">majug² Spezial</h3>
<p>Am 26.-27.10.2015 findet zum ersten Mal der Workshop „Microservices für die Praxis“ mit Eberhard Wolff und Stefan Tilkov in Frankfurt statt. Mehr zum Workshop und zur Agenda ist hier zu finden: <a href="https://www.innoq.com/de/trainings/microservices-training/">https://www.innoq.com/de/trainings/microservices-training/</a></p>
<p>majug² Besucher bekommen vom Veranstalter ein spezielles Angebot für diesen Workshop eingeräumt.</p>
<p>Bei einer Anmeldung bis zum 04.09.2015 gibt es für majug² Besucher einen Frühbucherrabatt von 200,00 EUR auf den eigentlichen Preis von 1350,00 EUR. Die Anmeldung muss in diesem Falle an die E-Mail training[at]innoq.com gehen und das Stichwort „MicroservicesMAJUG“ erwähnen.</p>
Java-Microservices praktisch mit Spring Boot und Spring Cloud2015-08-20T00:00:00+00:00https://www.majug.de/2015/08/20/microservices-mit-spring-boot<h3 id="achtung">Achtung</h3>
<p>Der Termin des Vortrags hat sich geändert, er findet nun am 24.09.2015 um 19 Uhr statt.</p>
<p>Weiter zum aktualisierten Termin: <a href="/2015/09/24/microservices-mit-spring-boot/">Java-Microservices praktisch mit Spring Boot und Spring Cloud</a></p>
Groovy und Grails - Quo vadis?2015-08-06T00:00:00+00:00https://www.majug.de/2015/08/06/groovy-grails<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 06.08.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<p><a href="http://www.oio.de/"><img src="/public/img/oio-logo.png" style="float:left; padding-right:10px;" /></a>
Vielen Dank an die Firma <a href="http://www.oio.de/">OIO Orientation in Objects GmbH</a>, die anschließend die erste Getränkerunde in der Kneipe spendiert!</p>
<h3 id="abstract">Abstract</h3>
<p>Das Jahr 2015 begann turbulent für die beiden bekanntesten Projekte aus dem Groovy Universum. Von der bisherigen “Mutter” Pivotal den Laufpass erhalten, mußte sich Groovy auch noch auf die Suche nach einem neuen Zuhause begeben und ist letztlich bei Apache fündig geworden. All diese Unsicherheiten haben die neuen Features der Releases 2.4 (Groovy) bzw. 3.0 (Grails) ziemlich in den Hintergrund gedrängt. Dabei sind die Projekte lebendiger denn je und vor allem schon längst reif für den produktiven Einsatz.</p>
<p>Wir werden uns die wichtigsten und interessantesten Neuerungen der vergangenen Releases anschauen und natürlich auch einen Ausblick auf die Zukunft und Roadmaps wagen.</p>
<h3 id="bio">Bio</h3>
<p>Falk Sippach hat über 15 Jahre Erfahrung mit Java und ist bei der Mannheimer Firma OIO Orientation in Objects GmbH als Trainer, Software-Entwickler und Projektleiter tätig. Er publiziert regelmäßig in Blogs, Fachartikeln und auf Konferenzen. In seiner Wahlheimat Darmstadt organisiert er mit Anderen die örtliche Java User Group. Falk twittert unter <a href="https://twitter.com/sippsack">@sippsack</a>.</p>
<h3 id="material">Material</h3>
<ul>
<li><a href="/public/slides/Groovy und Grails - Quo Vadis.pdf">Folien</a></li>
</ul>
Docker für Java-Entwickler2015-07-08T00:00:00+00:00https://www.majug.de/2015/07/08/docker<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 08.07.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Docker verändert die Art und Weise, wie Applikationen gebaut und in Produktion gesetzt werden. Bisher werden Java Enterprise WARs oder EARs in vorinstallierte JEE-Server deployt. Jetzt können dank Docker die Anwendungen direkt in Containern ausgeliefert werden, die den Ausführungskontext gleich mitbringen.</p>
<p>Dieser Vortrag zeigt, wie Docker Entwicklern bei diesem Übergang helfen kann. Dabei stehen zwei Aspekte im Vordergrund: Die Erstellung von Docker-Containern aus dem Build-Prozess heraus und die Realisierung autarker Integrationstests.</p>
<p>Dazu wird ein Docker-Maven-Plug-in vorgestellt. Anhand eines Microservices in Zusammenspiel mit einer PostgreSQL-Datenbank wird in einer Livevorführung veranschaulicht, wie einfach sich eine Docker-Build-Integration realisieren lässt.</p>
<h3 id="bio">Bio</h3>
<p>Roland Huß arbeitet als Principal Software Engineer bei Red Hat und ist ein aktiver Open Source Entwickler. Er ist verantwortlich für die JMX-HTTP Bridge “Jolokia” sowie dem aktuell beliebtesten docker-maven-plugin. Darüber hinaus trägt er eine heisse Leidenschaft für Chilis und leidet heiss mit dem FCN.</p>
The Devil is in the Detail - Bug Detection Using Static Analyses2015-06-11T00:00:00+00:00https://www.majug.de/2015/06/11/opal<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.06.2015 um 19:00 Uhr an der Uni Mannheim, A5, 6 im Raum C013 oder C014 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Java ist über 20 Jahre alt und wird auf unzähligen Servern und Geräten verwendet. Das in dieser Zeit entstandene Ökosystem kann getrost als <em>reif</em> betrachtet werden und hat unter anderem zahlreiche Werkzeuge hervorgebracht, die Java Code analysieren und Entwicklern helfen, guten und korrekten Code zu schreiben. Der Vortrag gibt einen Überblick über die Welt der statischen Analysewerkzeuge und ihrer Fähigkeiten und Beschränkungen. Nach diesem Vortrag ist klar, warum man Werkzeuge zur statischen Analyse von Code einsetzten will und warum man diesen jedoch leider nicht immer trauen kann.
Mit Hilfe von Analysewerkzeugen haben wir unter die Haube des JDKs geschaut und vieles gefunden, dass von amüsant über erstaunlich bis hinzu beängstigend reicht. Dieser Vortrag zeigt einige der Highlights aus dem OpenJDK 8 auf, die mit Hilfe des statischen Softwareanalysewerkzeugs OPAL gefunden wurden.</p>
<h3 id="bio">Bio</h3>
<p>Michael Eichberg arbeitet am Fachbereich Informatik der TU Darmstadt im Bereich Softwaretechnik. Sein Schwerpunkt ist die werkzeugunterstützte Analyse von Code (insbesondere Java). Er ist der Hauptautor des statischen Analyseframeworks <a href="http://www.opal-project.de/">OPAL</a> welches verschiedene komplexe Analysen ermöglicht und welches vom BugPicker als Grundlage verwendet wird, um Daten- und Kontrollflussabhängige Probleme in Javaprogrammen zu erkennen.</p>
Clean Architecture mit Java2015-05-20T00:00:00+00:00https://www.majug.de/2015/05/20/clean-architecture-mit-java<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 20.05.2015 um 19:00 Uhr an der Uni Mannheim, A5, 6 im Raum C013 oder C014 statt (<a href="/getting-there">Anfahrtsbeschreibung</a>).</p>
<h3 id="abstract">Abstract</h3>
<p>Jede Software hat eine Architektur. Wie und warum entstehen diese? Und überhaupt, was ist Software-Architektur? Clean Architecture in Java liefert Antworten auf diese Fragen und beschreibt einen Architekturstil für Java-basierte Geschäftsanwendungen. Das dahinterstehende Wertesystem und Konzept führen zu wartbaren Strukturen und sauberem Code. In dem Vortrag werden wir auf die Umsetzung von typischen Aufgabenstellungen während der Entwicklung eingehen. Mit diesem Wissen wird sich unser Umgang mit Frameworks, dem Web und Datenbanken grundlegend verändern.
Der Vortrag richtet sich an Software-Entwickler und -Architekten.</p>
<h3 id="bio">Bio</h3>
<p><a href="https://twitter.com/mp911de">Mark Paluch</a> ist Entwickler, Software-Achtitekt und Agile Coach. Er hat in unterschiedlichen Projekten Erfahrungen mit Clean Architecture gesammelt und möchte dieses Wissen in Form eines Vortrages weitergeben.</p>
Micro Services: Klein aber oho!2015-04-22T00:00:00+00:00https://www.majug.de/2015/04/22/micro-services<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 22.04.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Microservices sind zur Zeit in aller Munde. Aber was genau sind Microservices? Handelt es sich wirklich “nur” um eine bessere Variante von SOA oder verbirgt sich etwas ganz anderes dahinter? Der Vortrag gibt einen Überblick über die Idee hinter dem Microservices Ansatz und zeigt auf warum es Sinn machen kann auf einfache, isolierte Services zu setzen.</p>
<h3 id="bio">Bio</h3>
<p>Stephan Hochdörfer ist Head of Technology bei der Firma <a href="https://bitexpert.de">bitExpert AG</a> in Mannheim. Seine Interessenschwerpunkte liegen im Bereich Web Entwicklung und Automatisierungstechniken, von der Code Generierung bis hin zum automatischen Deployment.</p>
Operation am offenen Herzen - Analyse der HotSpot Java VM im laufenden Betrieb2015-03-12T00:00:00+00:00https://www.majug.de/2015/03/12/operation-am-offenen-herzen<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 12.03.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>In diesem Vortrag werden wir anhand kleiner Java-Programme, die entweder VM-Bugs provozieren oder ein ungewöhnliches Verhalten an den Tag legen die Funktions- und Arbeitsweise der HotSpot VM (z.Bsp. des Template Interpreters oder des JIT-Compiler) erklären. Dabei werden wir zum einen die vielen Diagnosemöglichkeiten nutzten, die schon in die VM selber eingebaut sind. Zum anderen werden wir aber auch sehen, wie man mit einem nativen Debugger (gdb) den Zustand und die interne Datenstrukturen der VM analysieren kann, die man mit einem Java-Debugger nicht zu Gesicht bekommt.</p>
<p>Der Vortrag wendet sich vor allem an technisch versierte Zuhörer mit zumindest geringen Systemprogrammierungskenntnissen sowie an alle Java-Entwickler die einmal hinter den Java-Vorhang schauen wollen und an der internen Funktionsweise einer Java VM interessiert sind.</p>
<h3 id="bio">Bio</h3>
<p>Volker Simonis hat in Tübingen studiert und promoviert. Nach einem kurzen Zwischenstopp bei Sun Microsystems arbeitet er nun seit fast 10 Jahren bei SAP im Bereich der SAP Java Virtual Machine. Er ist ein OpenJDK-Enthusiast der ersten Stunde und mittlerweile JDK8/JDK9 Reviewer und Projektlead des OpenJDK PowerPC/AIX Projektes.</p>
Restful Webservices with Play!2015-02-10T00:00:00+00:00https://www.majug.de/2015/02/10/restful-webservices-with-play<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 10.02.2015 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>In diesem Talk wird das Play! Web Framework vorgestellt. Im Fokus steht hierbei wie RESTful Web Services mit Play! umgesetzt werden können. Dies umfasst eine Einführung in die Prinzipien von REST, das Design einer Beispiel API und deren Umsetzung mit Play! für Java.</p>
<h3 id="bio">Bio</h3>
<p>Gregor Trefs arbeitet bei fluid Operations AG als Research and Development Engineer. Mit dem Play! Web Framework hat er bei Capgemini die REST Schnittstelle eines verteilten Glossars mit mobilen Klienten implementiert. In seiner Freizeit beschäftigte er sich in letzter Zeit vor allem mit Haskell und funktionalen Ergänzungen von Java 8.</p>
Absicherung von APIs mit OAuth 2.02014-12-04T00:00:00+00:00https://www.majug.de/2014/12/04/absicherung-von-apis-mit-oauth<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 04.12.2014 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>OAuth 2.0 hat sich zum de facto Standard zur Absicherung von Schnittstellen im Internet entwickelt. Viele der täglich genutzten Web Applikationen wie z.B. GitHub, Dropbox, Google, Facebook und Twitter setzen OAuth 2.0 zur Authorisierung der Zugriffe auf ihre APIs ein.
Dieser Vortrag erklärt, warum OAuth 2.0 so erfolgreich ist, die Prinzipien dahinter, für welche Anwendungsfälle es einigesetzt werden kann und was dabei zu beachten ist.
Es wird an einem Beispiel gezeigt, wie man mit Hilfe von Spring Security OAuth einen REST Service absichert und wie Spring REST Templates bei der Implementierung eines OAuth 2.0 Clients unterstützen können.</p>
<h3 id="bio">Bio</h3>
<p>Kai Hofstetter ist Senior Softwareentwickler bei 1&1 mit dem Schwerpunkt Middleware Services. Er beschäftigt sich bereits seit über 15 Jahren mit Java. Sein besonderes Interesse gilt dem Thema Security von Web Applikationen. Sein Team und er verantworten u.a. einen Authorization Service, der Authorization as a Service auf Basis von OAuth 2.0 zur Verfügung stellt.</p>
Aktoren mit Akka2014-11-09T00:00:00+00:00https://www.majug.de/2014/11/09/aktoren-mit-akka<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.09.2014 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Akka ist eine Bibliothek um verteilte ereignisgetriebene Anwendungen auf der JVM zu bauen. Die beiden primaeren Zielsprachen sind Java und Scala. Die wesentlichen Design-Ziele entsprechen denen des “Reactive Manifesto”:</p>
<ul>
<li>ereignisgetrieben</li>
<li>skalierbar</li>
<li>ausfallsicher</li>
<li>reaktionsfaehig</li>
</ul>
<p>Wesentliche Bausteine einer Akka-Anwendung sind Aktoren. Der Vortrag soll eine Einfuehrung in die Konzepte und Ideen von Akka geben und ueber Erfahrungen beim Einsatz von Akka in Projekten berichten.</p>
<h3 id="bio">Bio</h3>
<p>Volker Stampa ist seit ueber 15 Jahren Software-Entwickler auf verschiedenen Plattformen mit einem Schwerpunkt auf der JVM. Seit 2 Jahren beschaeftigt er sich in erster Linie mit Scala und hat Akka in zwei Projekten eingesetzt.</p>
Eclipse SmartHome und die 5 Arten das Licht einzuschalten2014-07-24T00:00:00+00:00https://www.majug.de/2014/07/24/eclipse-smarthome<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.07.2014 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Das neue Eclipse SmartHome Projekt ist ein flexibles Framework für Lösungen im Bereich Smart Home and Ambient Assisted Living (AAL). Es spielt seine Stärken in heterogenen Umgebungen aus, indem es bei der Integration unterschiedlichster Protokolle und Standards unterstützt. Ziel des Frameworks ist es einen gleichförmigen Zugriff auf Geräte und Informationen bereitzustellen und darauf aufbauend Interaktionen zu ermöglichen. Dafür stellt ESH eine auf etablierten Eclipse Technologien Xtext/Xbase basierende Regel-Engine, sowie interne DSLs zur Beschreibung des User Interfaces bereit. Zur Interaktion mit anderen System steht eine REST API bereit.</p>
<p>Der open Home Automation Bus (openHAB) basiert seit Version 2 auf dem Eclipse SmartHome Projekt und erlaubt es technisch versierten Nutzern, eine individuelle Smart Home Lösung aufzubauen. openHAB ist auf embedded Geräten mit einer JVM, wie dem Raspberry Pi oder auch einem Synology NAS, lauffähig.</p>
<p>Die große Flexibilität des Systems ermöglicht sehr individuelle, auf den Nutzer zugeschnittene Lösungen - denn kein Smart Home gleicht dem anderen.</p>
<h3 id="bio">Bio</h3>
<p>Kai Kreuzer ist ein Heimautomatisierungsfan und Project Lead des Eclipse SmartHome Projekts. Er arbeitet als Developer Evangelist im Connected Home Bereich der Deutschen Telekom AG. In seiner Freizeit automatisiert er alle Aspekte rund um sein Haus, wofür er 2010 das Open Source Projekt openHAB gegründet hat.</p>
Migration from SVN to Git in a real-world environment: A comprehensive retrospective2014-06-25T00:00:00+00:00https://www.majug.de/2014/06/25/migration-from-svn-to-git<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 25.06.2014 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>There is a large variety of commercial and open-source tools that promise almost effortless migration from SVN to Git. Provided, of course, that the structure of the repositories does not have to change (much). But when the requirements of a migration grow to encompass drastic changes in the structure of the repositories, in the build infrastructure as well as an revamp of almost the entire software development process of a company, things get really interesting really fast. This talk will present and discuss the technological, managerial and organizational challenges and solutions of the ambitious and successful migration from SVN to Git at fluid Operations.
The talk will be held in English.</p>
<h3 id="bio">Bio</h3>
<p>Michele Mancioppi is a software engineer at SAP, where he keeps himself busy with Java, JavaScript, SAP UI 5 and HTML5 development. A few months ago, he got the perfect opportunity to spread his passion for Git, Gerrit and SCRUM inside fluid Operations, a virtualization management company based in Walldorf.</p>
Spring IO - Spring neu erfunden?2014-05-15T00:00:00+00:00https://www.majug.de/2014/05/15/spring-io<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 15.05.2014 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Nach der erfolgreichen Veröffentlichung von Spring 4.0 im Dezember 2013 folgt im Frühjahr 2014 das erste Release der Spring IO Plattform. Der Vortrag stellt vor, was unter dem Begriff zu verstehen ist und wie die Plattform das Arbeiten mit den Spring Projekten für Entwickler und Entscheider einfacher macht. Weiterhin stehen die Neuerungen in Spring 4 im Mittelpunkt, sowie ein Ausblick auf die im Herbst erscheinende Version 4.1.</p>
<h3 id="bio">Bio</h3>
<p>Oliver Gierke ist Leiter des Spring Data Projekts bei Pivotal, früher besser bekannt als SpringSource. Seit über 8 Jahren widmet er sich dem Entwicklen von Java Enterprise Applikationen, Open Source Projekten und ist Mitglied der JPA Expert Group. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring und Persistenztechnologien. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie Autor von Fachartikeln und des ersten Spring Data Buches.</p>
OpenDolphin: Schöne UIs für Enterprise Applikationen2013-11-28T00:00:00+00:00https://www.majug.de/2013/11/28/opendolphin<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 28.11.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Enterprise Applikationen laufen auf dem Server. Reichhaltige Benutzeroberflächen für diese Applikationen brauchen aber die Kraft von Java auf dem Desktop. OpenDolphin verbindet beide Welten mit Hilfe eines verteilten Präsentationsmodells, bei dem der Server das “was” und der Client das “wie” der Darstellung bestimmt. Wer die Konzepte und die Architektur dieses Ansatzes, wie er auf der JavaOne Keynote gezeigt wurde, kennenlernen möchte und neugierig auf umwerfende Gestaltungen ist, der ist hier richtig. Die Beispiele werden in GroovyFX gezeigt.</p>
<h3 id="bio">Bio</h3>
<p>Dierk König (JavaOne Rock Star) ist Fellow bei der Canoo Engineering AG in Basel. Er betreibt das Open-Source-Projekt Canoo WebTest und ist Committer in den Projekten OpenDolphin, Groovy, Grails, GPars und GroovyFX. Er publiziert und spricht auf internationalen Konferenzen zu Themen moderner Softwareentwicklung. Außerdem ist er Autor des Buchs “Groovy in Action”. Twitter: <a href="https://twitter.com/mittie">@mittie</a></p>
Neo4j - Michael Hunger2013-09-19T00:00:00+00:00https://www.majug.de/2013/09/19/neo4j<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 19.09.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>NoSQL und Big Data sind zur Zeit in aller Munde - große Datenmengen sind aber nur eine Seite der Medaille. Im gleichen Maße steigt die Komplexität der Daten mit denen wir tagtäglich zu tun haben.
Graphendatenbanken wurden dafür entwickelt, Datenmodelle mit großen Mengen an interessanten Verknüpfungen effizient zu speichern, verarbeiten und schnell zu navigieren.
Seit 10 Jahren hilft die Graphendatenbank Neo4j Nutzern, ihre vernetzten Daten leichter zu modellieren und die Antworten auf herausfordernde Fragen zu finden. Neo4j ist in Java implementiert, und bietet in der JVM besondere Vorteile, kann aber von jeder Programmiersprache aus genutzt werden.
Als einen Teil von Neo4j haben wir die deklarative Abfragesprache Cypher entwickelt, die darauf ausgerichtet ist, komplexe Graphenstrukturen leicht verständlich darzustellen.
Im ersten Teil des Abends gibt es eine Einführung in Graphen als Datenmodell, die Einordnung von Graphendatenbanken in NoSQL und Infos über Neo4j und wie man mit (Java), Neo4j und Cypher schnell zu ersten Ergebnissen kommt.
Anschliessend wollen wir je nach Interesse, ein spezialisierteres Thema aufgreifen, z.B. Spring Data Neo4j, Nutzung von Neo4j-Server, Beispiel-Anwendungen in Java, Neo4j-Spatial, Empfehlungs- und andere Graphenalgorithmen, Neo4j Internals und vieles mehr vorstellen, oder ganz einfach Fragen beantworten!</p>
<h3 id="bio">Bio</h3>
<p>Software zu entwickeln gehört zu Michaels großen Leidenschaften. Der Umgang mit den beteiligten Menschen ist ein besonders wichtiger Aspekt. Zu seinen Interessen gehören außerdem Software Craftsmanship, Programmiersprachen, Domain Specific Languages und Clean Code.
Bis vor kurzem hat er als unabhängiger “better-software-development evangelist” Teams geholfen, ihre Herangehensweise kontinuierlich zu verbessern. Seit Mitte 2010 arbeitet er eng mit Neo Technology zusammen, um deren Graphendatenbank Neo4j noch leichter für Entwickler zugänglich zu machen. Hauptfokus sind dort Integration in Spring (Spring Data Graph Projekt) und Hosting-Lösungen. Zur Zeit hilft er der Neo4j Community dabei, mit der Graphendatenbank ihre Wünsche wahr werden zu lassen.
Michael arbeitet(e) an mehreren Open Source Projekten mit, ist Autor, Editor, Buch-Reviewer und Sprecher bei Konferenzen. Neben seiner Familie betreibt er noch ein Buch- und Kultur-Café (die-buchbar.de) in Dresden, ist Vereinsvorstand des letzten großen deutschen MUDs und hat viel Freude an kreativen Projekten aller Art.</p>
Hypermedia getriebene REST Architektur mit Spring2013-07-17T00:00:00+00:00https://www.majug.de/2013/07/17/hypermedia-rest-architektur-mit-spring<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 17.07.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Spring MVC bietet eine solide Grundlage um REST basierte WebServices mit Java zu implementieren. Dennoch bleibt das Umsetzen von Hypermedia und komplexerer Geschäftslogik eine Herausforderung. Der Vortrag diskutiert Grundsätze von Hypermedia und zeigt die daraus entstehenden Problemstellungen an einem praktischen Beispiel. Darauf antwortend erörtern wir Ansätze und Lösungen für diese Problematiken, die in Kundenprojekten erarbeitet wurden anhand von hands-on Codebeispielen. Mittelpunkt hierbei ist Spring RESTBucks, eine Referenzimplementierung für einen REST WebService auf Basis verschiedener Technologien aus dem Spring Ökosystem.</p>
<h3 id="bio">Bio</h3>
<p>Oliver Gierke ist Teil des Spring Data Teams bei SpringSource, a division of VMware und leitet dort das JPA, MongoDB und Core Modul. Seit über 6 Jahren widmet er sich dem Entwicklen von Java Enterprise Applikationen, Open Source Projekten und ist Mitglied der JPA 2.1 Expert Group. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring und Persistenztechnologien. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie Autor von Fachartikeln und des ersten Spring Data Buches.</p>
Search Evolution – Von Lucene zu Solr und ElasticSearch2013-06-20T00:00:00+00:00https://www.majug.de/2013/06/20/search-evolution<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 20.06.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Neben einem invertierten Index, dem Kernstück der Suche, sind zahlreiche Algorithmen zum Analysieren von Texten implementiert. In den letzten Jahren machen jedoch verstärkt auch die darauf aufbauenden Suchserver Apache Solr und ElasticSearch von sich reden, die die Funktionalität von Lucene über eine Http-Schicht abstrahieren.</p>
<p>Dieser Vortrag stellt an einem Beispiel vor, wie die Suche mit Apache Lucene grundlegend funktioniert und welche Vorteile Solr und ElasticSearch zusätzlich bringen können.</p>
<h3 id="bio">Bio</h3>
<p>Florian Hopf arbeitet als freiberuflicher Softwareentwickler mit den Schwerpunkten Content Management und Suchlösungen in Karlsruhe. Er setzt Lucene und Solr seit Jahren in unterschiedlichen Projekten ein und ist einer der Organisatoren der Java User Group Karlsruhe.</p>
Vaadin2013-04-11T00:00:00+00:00https://www.majug.de/2013/04/11/vaadin<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.04.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Im Bereich Web Frameworks hat das Java Ökosystem einiges an Vielfalt zu bieten. Vaadin ist ein Vertreter davon und erfreut sich immer größerer Beliebtheit.
Ist Vaadin nur ein weiteres neues Java Web Framework oder was steckt dahinter? Dieser Vortrag gibt eine Übersicht über Vaadin, vergleicht es mit anderen Frameworks und gibt Empfehlungen für typische Einsatzszenarien. Außerdem werden einzelne Aspekte wie Databinding, Validierung und Theming in Live Demos genauer beleuchtet.</p>
<h3 id="bio">Bio</h3>
<p>Christian Janz arbeitet als Consultant im Bereich Softwareentwicklung Java/JEE bei der bridgingIT GmbH in Mannheim. Sein Interesse gilt dabei der Architektur und Entwicklung von Geschäftsanwendungen mit Hilfe moderner Java Frameworks. Christian hat Informatik an der Universität Karlsruhe studiert und verfügt über mehr als 5 Jahre Erfahrung in der professionellen Softwareentwicklung.</p>
Java SE 8 & Beyond2013-02-28T00:00:00+00:00https://www.majug.de/2013/02/28/java-se-8<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 28.02.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Seit dem aktuellen Release von Java SE 7 tut sich wieder was auf der Java-Plattform, was den Bedürfnissen der Entwickler bei den sich ständig ändernden Anforderungen der Plattformen und Applikationen sehr entgegenkommt.
In diesem Vortrag wird deshalb kurz über die aktuellen Entwicklungen in Java SE 7 und dem Java Community Process (JCP) gesprochen, bevor es um die geplanten Features in Java SE 8 gehen wird. Darüber hinaus wird skizziert, wie die wichtigsten Ideen von Oracle für Java SE 9 und darüber hinaus aussehen. Abschließend wird noch ein Blick auf die Features geworfen, die in zukünftige Versionen von Java einfließen könnten – bis hin zu Java SE 12.</p>
<h3 id="bio">Bio</h3>
<p>Dalibor Topic lebt in Hamburg und arbeitet als Principal Product Manager für Oracle. Er trat dem OpenJDK-Projekt bei, um aus Java ein erfolgreiches Open-Source-Projekt zu machen, um Java in Linux-Distributionen zu integrieren und als allgemeiner Kontakt zur Java F/OSS-Community. Er trat dem strategischen Java-Team bei Oracle bei um bei der langfristigen Planung zu helfen.</p>
Netty 4 - Re-think Network-Application development on the JVM2013-02-13T00:00:00+00:00https://www.majug.de/2013/02/13/netty-4<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 13.02.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>In der heutigen Zeit ist das Internet nicht mehr wegzudenken. Immer mehr Applikationen stellen ihre Services im Internet zur Verfügung und somit ist es nur logisch das genau dies eine Anforderung für viele neuen Applikationen ist. Doch damit ist es nicht getan, den ist der Service erstmal im Internet verfügbar muss auch die Anfragemasse bedient werden. Waren vor ein paar Jahren noch 10000 gleichzeitige Clients / Verbindungen eher die Seltenheit werden die Zahlen immer größer. Dies ist wohl auch darauf zurück zu führen das mittlerweile fast jedes neue Gadget seine Daten über das Internet bezieht. Doch das entwerfen von solchen Anwendungen ist oft nicht trivial da der herkömmliche weg der Netzwerkentwicklung (Blockig-IO) einfach nicht mehr skaliert. Java selbst stellt alle nötigen Mittel zur Verfügung um das Problem zu lösen, doch ist die Verwendung der “Bordmittel” oft umständlich und nicht Trivial. Netty hat es sich zur Aufgabe gemacht dieses Problem zu lösen…</p>
<p>Netty ist ein Opensource Java-Framework das die Entwicklung von “Non-blocking-IO” Netzwerk Applikationen vereinfacht und somit dem Entwickler ermöglicht sich auf seine Business-Logik zu konzentrieren. Der Vortrag gibt einen Einblick in Netty und dessen Features und zeigt wie es in der Praxis verwendet wird. Netty zählt unter seinen Benutzern Größen wie Red Hat, Twitter und Facebook, wobei auch viele Opensource-Projekte Netty verwenden.</p>
<h3 id="bio">Bio</h3>
<p>Norman Maurer ist zur Zeit als Principal Software Engineer bei Red Hat beschäftigt. Hier umfasst sein Aufgabengebiet das Entwickeln von Hoch-performantent Netzwerk Frameworks und Applikationen. Er ist einer der “Core-Entwickler” von Netty und ein Apache Software Foundation Member. Des Weiteren ist er der Autor des Buches “Netty in Action”, das im Moment entsteht und sobald fertig gestellt über “Manning Publications” verlegt wird. Er trägt zudem auf nationalen sowie auf internationalen Konferenzen über das Thema Netzwerk Entwicklung unter Verwendung von Java vor.</p>
Weasel Words2013-01-24T00:00:00+00:00https://www.majug.de/2013/01/24/weasel-words<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.01.2013 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Die Sapir-Whorf Hypothese besagt, dass Sprache das Denken forme. Besonders beim Schreiben von Programmcode lässt sich dies immer wieder feststellen. Moderner Code beinhaltet verschiedene Begriffe, die mit der Intention eingebaut werden, die Kommunikation zu verbessern, die jedoch genau das Gegenteil bewirken und den Code negativ beeinflussen. Eigentlich sehr genau definierbare Begriffe werden zu Worthülsen - Weasel Words eben.
Besonders in objektorientierten Sprachen finden sich oft große ManagerBrokerDispatcherImpl“ – Klassen, die keiner mehr beherrscht. Hier haben sich Worthülsen im Code breitgemacht. Durch eine intuitive linguistische Analyse dieser Klassen kann Klarheit geschaffen und der Code wartbarer gemacht werden.</p>
<h3 id="bio">Bio</h3>
<p>Johannes Hofmeister studiert Psychologie an der Universität Heidelberg. Zuvor war er als Softwareentwickler für verschiedene Firmen tätig. Sein Aufenthalt in London und die dort ansässige Agile-Community brachten ihn auf neue Ideen um Code zu (be)schreiben. Für ihn fängt die Programmierung nicht bei der Programmiersprache an, sondern beim Programmierenden, dessen Eigenschaften (Zeitdruck, Stress, Programmierkenntnisse, Wahrnehmung) einen Großteil des Codes ausmachen. Johannes beschäftigt sich neben C# und F# mit Java, Python und Ruby und allem was Code sauberer, expliziter und liebenswerter macht.</p>
Git, Gerrit und Hudson mit Eclipse Mylyn effektiv einsetzen2012-11-21T00:00:00+00:00https://www.majug.de/2012/11/21/eclipse-mylyn<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 21.11.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Neue Werkzeuge für verteilte Versionsverwaltung, kontinuierliche Integration und Code Review gewinnen schnell an Popularität und werden bereits vielfach erfolgreich verwendet. Voraussetzung für den effektiven Einsatz ist die enge Verknüpfung der Werkzeuge und die nahtlose Einbettung in den Arbeitsfluss in der Entwicklung. Im Vortrag zeigen Mylyn Entwickler am praktischen Beispiel der Mylyn Entwicklung selbst wie sie mit den Eclipse Integrationen für Bugzilla, Git, Hudson/Jenkins und Gerrit als Code Review System effektiv in einem verteilten Team arbeiten.</p>
<h3 id="bio">Bio</h3>
<p>Benjamin Muskalla ist Senior Softwareentwickler bei Tasktop Technologies in Vancouver, Kanada. Er ist aktiver Committer bei Eclipse Mylyn und Eclipse EGit, der Git Integration von Eclipse. Benjamin arbeitet in seiner Freizeit auch an anderen Eclipse-Projekten wie RAP und JDT . Benjamin ist seit mehr als 7 Jahren enthusiastischer Mitstreiter der Eclipse Community und regelmäßig Speaker und Autor zu Eclipse-relevanten Themen. Er ist überwältigt von der Eclipse Community und den Produktiviätsgewinnen durch Eclipse und Mylyn.</p>
Node.js & Co2012-10-11T00:00:00+00:00https://www.majug.de/2012/10/11/nodejs-und-co<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.10.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Kaum eine Programmiersprache hat in den vergangenen 15 Jahren dermaßen Karriere gemacht wie JavaScript: Was 1995 als einfache, aber exotische Skriptsprache für die client-seitige Interaktion auf Webseiten begann, treibt heute sämtliche großen, modernen Webseiten wie Facebook, Twitter und Co. an. Und auch auf dem Desktop und mobilen Geräten findet JavaScript zunehmend Einzug. Was liegt also näher, als JavaScript auch serverseitig zu nutzen?</p>
<h3 id="bio">Bio</h3>
<p>Golo Roden <a href="http://www.goloroden.de">www.goloroden.de</a> ist freiberuflicher Wissensvermittler und Technologieberater für Webtechnologien, Codequalität und agile Methoden. Zu diesen Themen berät er Unternehmen bei der Evaluierung, Erforschung und Verwendung geeigneter Technologien und Methoden. Darüber hinaus ist er journalistisch für verschiedene Fachzeitschriften und als Referent und Content Manager für Konferenzen im In- und Ausland tätig. Für sein qualitativ hochwertiges Engagement in der Community wurde Golo von Microsoft zweifach als Most Valuable Professional (MVP) für C# ausgezeichnet.</p>
Matt in drei Iterationen. Lebendiger Architekturentwurf am Beispiel einer Schach-Engine2012-09-27T00:00:00+00:00https://www.majug.de/2012/09/27/matt-in-drei-iterationen<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 27.09.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Ein Jahrhunderttraum wie das Fliegen: Eine Maschine, die Menschen im Schach bezwingt. Auch heute für viele Java-Entwickler noch eine faszinierende Aufgabe! Wie zerlegt man das Problem geschickt? Welche wichtigen Entscheidungen sind bei der Umsetzung zu treffen? In diesem Vortrag lernt Ihr das Nötigste, um selbst ein Schachprogramm in Java zu bauen. Und Ihr erfahrt auf vergnügliche Weise ganz nebenbei, wie Ihr ganz allgemein eine nachvollziehbare, angemessene Softwarearchitektur entwerfen, bewerten und festhalten könnt. En passant.</p>
<p>Zielgruppe dieses Vortrags sind in erster Softwareentwickler und -architekten, die neugierig sind, wie eine Schach-Engine funktioniert. Und die anhand dieses Beispiels ein wenig über Architekturentwurf erfahren wollen. Fundierte Schachkenntnisse sind nicht erforderlich.</p>
<h3 id="bio">Bio</h3>
<p>Stefan Zörner ist Anwendungsarchitekt, Berater, Trainer und Coach bei oose <a href="http://www.oose.de">(http://www.oose.de)</a> in Hamburg. Seine inhaltlichen Schwerpunkte sind Softwarearchitektur und Java-Technologien. Ganz besonders interessiert ihn, wie sich Entwürfe effizient festhalten und kommunizieren lassen. Sein Wissen hierzu teilt er regelmäßig in Form von Vorträgen und Artikeln (u.a. im Java Magazin) mit. Im Mai 2012 ist im Hanser-Verlag sein Buch “Softwarearchitekturen dokumentieren und kommunzieren” erschienen. Stefan ist Apache-Committer, Certified Spring Professional und aktives Mitglied im International Software Architecture Qualification Board (iSAQB).</p>
Mobile Apps mit GWT & Phonegap in Java2012-07-11T00:00:00+00:00https://www.majug.de/2012/07/11/mobile-apps-mit-gwt-und_phonegap<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.07.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>PhoneGap erfreut sich nach wie vor sehr großer Beliebtheit und bietet dabei die Möglichkeit mit einfachen Webkenntnissen mobile cross-plattform Apps zu schreiben. Hierzu wird oft Javascript und CSS3 eingesetzt.
Daniel Kurka wird zwei Open Source Frameworks vorstellen, mit denen solche Apps nicht in Javascript sondern in Java erstellt werden können: mgwt und GWT-PhoneGap.
mgwt stellt dabei Widgets zur Verfügung, die Anwendungen auf jeder Plattform wie native Anwendungen aussehen lassen. GWT-PhoneGap ermöglicht es aus GWT Anwendungen PhoneGap Funktionalität zu nutzen.</p>
<h3 id="bio">Bio</h3>
<p>Daniel Kurka ist seit ca. 15 Jahren Webentwickler und Open Source Committer. Seit 2009 erstellt er u.a. mobile Anwendungen mit GWT und PhoneGap und hat zu diesem Zweck zwei Open Source Projekte.</p>
Gradle wird den Build schon schaukeln2012-06-06T00:00:00+00:00https://www.majug.de/2012/06/06/gradle<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 06.06.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Heutige Softwareprojekte im Enterprise-Umfeld sind unterteilt in viele abhängige Module, werden in verschiedenen Sprachen geschrieben, interagieren mit Drittsystemen, haben umfangreiche Integrationstests und werden in Form von verschiedenen Artefakten ausgeliefert. Für das automatisierte Bauen dieser anspruchsvollen Softwareprojekte braucht es ein Build-System, das die komplexen und individuellen Anforderungen auf wartbare, erweiterbare und flexible Weise abbilden kann. Gradle entspricht diesen Kriterien und spielt im Enterprise-Bereich eine zunehmend wichtige Rolle.</p>
<p>In dieser Präsentation wird den Teilnehmern zuerst anhand vieler live-Beispiele ein Einblick in die Konzepte von Gradle gegeben: Vorteile von deklarativen gegenüber imperativen Build-Systemen, die Mächtigkeit eines reichen Objekt-Modells, Konventionen wo möglich und Konfiguration wo nötig, Deklaration von Tasks und deren Abhängigkeiten, Plugin-Mechanismus, fein-granuläre Konfiguration von externen Projekt-Abhängigkeiten, echter Multi-Projekt-Support, Wiederverwendung bestehender Build-Funktionalität mittels Ant- und Maven-Integration und Laufzeitoptimierungen durch partielle Builds. Danach werden einige Beispiele aus realen Gradle-Enterprise-Builds demonstriert, bei welchen die Herzen höher schlagen werden.</p>
<p>Projektleiter, Software-Entwickler und Build-Master werden die Erfahrung schätzen, wie elegant sich typische Enterprise-Build-Anforderungen mit Gradle umsetzen lassen. Weiter werden viele neuartige Features von Gradle gezeigt, wie zum Beispiel inkrementelle Builds, der Gradle Daemon, der Gradle Wrapper und zukünftig auch verteilte Builds. Die Teilnehmer dürfen sich auf elegante Build-Skripts, schnelle Builds und innovative Features freuen.</p>
<h3 id="bio">Bio</h3>
<p>Etienne Studer ist CTO bei edorasware ag, einer auf Workflow-Management spezialisierten Schweizer Produktefirma. Davor war er zehn Jahre als Entwickler, Architekt und Projektleiter in den Bereichen Automatisierung, Banking und Logistik in der Schweiz und in Kalifornien tätig. Sein Fokus liegt auf der Entwicklung von qualitativ hochwertiger Software, welche die Kunden begeistern soll. Er schreibt und präsentiert zum Thema Automatisierung in der Softwareentwicklung, ist JetBrains Academy Expert und unterhält den Blog <a href="http://practicalgradle.org">http://practicalgradle.org</a>. Im Jahr 2011 ist seine 3-teilige Gradle-Serie im Javamagazin erschienen.</p>
Bessere Präsentationen für Entwickler und Architekten2012-05-23T00:00:00+00:00https://www.majug.de/2012/05/23/bessere-praesentationen<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 23.05.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Erfahrene Entwickler und Architekten müssen ihre Ideen oft anderen Entwicklern und dem Management vermitteln. Im Rahmen der Session werden grundlegende Präsentationstechniken vermittelt, die verhindern, dass Ihre Präsentation nicht in einer Bullet-Point-Wüste endet. Dabei gehen wir auf vorbereitende Maßnahmen, Grundlagen der Themenstrukturierung und Layouttipps ein.</p>
<h3 id="bio">Bio</h3>
<p>Michael Plöd ist Principal Architect und Partner bei der Senacor Technologies AG und in dieser Rolle überwiegend in Projekten tätig, die die Transformation großer IT-Landschaften anstreben. Michael ist Speaker auf zahlreichen Konferenzen und regelmäßiger Autor diverser Fachartikel zu den Themen Java Persistence, Apache Wicket und Präsentationstechniken.</p>
Java DevTools: Lightning Talks2012-04-26T00:00:00+00:00https://www.majug.de/2012/04/26/java-devtools-lightning-talks<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 26.04.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Viele Tools und Frameworks gibt es in der Java Welt. Vier davon werden im Vortag von majug Mitgliedern vorgestellt:</p>
<ul>
<li>YouDebug - Wolfgang Schell</li>
<li>Byteman - Walery Strauch</li>
<li>Lombok - Lukasz Plotnicki</li>
<li>Selenium - Christian Schneider</li>
</ul>
Eclipse 4 - die neue Anwendungsentwicklungsplatform2012-03-01T00:00:00+00:00https://www.majug.de/2012/03/01/eclipse-4<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 01.03.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Für Aufsehen hat das Annoucement geführt, daß das Eclipse Juno Release auf Eclipse 4.2 basieren wird. Damit verläßt der Eclipse 4 Zweig sein stiefmütterliches Dasein und wird endlich das Hauptrelease. In diesem Vortrag stellt der Eclipse 4 Commiter und Fürsprecher Lars Vogel den technischen Unterbau von Eclipse 4 vor und stellt vor wie man mit Eclipse 4 RCP Applikationen entwickeln wird.</p>
7, 8, 9 ... da kann man sich doch freu'n!? Die Gegenwart und mögliche Zukunft von Java2012-01-18T00:00:00+00:00https://www.majug.de/2012/01/18/gegenwart-und-zukunft-von-java<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 18.01.2012 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Java ist schon lange nicht mehr die einzige Programmiersprache für die virtuelle Maschine. Deshalb muss sie mit Sprach-Features konkurrieren, die in Java nur sehr mühsam nachzubilden sind. In diesem Vortrag geht es deshalb ganz kurz um die Neuerungen in Java 7 und hauptsächlich um das, was uns möglicherweise in den kommenden vier Jahren mit Java 8 und Java 9 erwarten mag. Dabei wird noch ein kleiner Blick auf die Konkurrenz geworfen, die ja auch nicht schläft, und gezeigt, was die in der nächsten Zeit zu bieten hat – und die Java-Entwickler weiterhin vor Neid erblassen lässt.</p>
<h3 id="bio">Bio</h3>
<p>Michael Wiedeking ist Gründer und Geschäftsführer der MATHEMA Software GmbH <a href="http://www.mathema.de">www.mathema.de</a>, Veranstalter des Herbstcampus <a href="http://www.herbstcampus.de">www.herbstcampus.de</a> und Herausgeber vom KaffeeKlatsch <a href="http://www.bookware.de/kaffeeklatsch">www.bookware.de/kaffeeklatsch</a> – dem kostenlosen PDF-Magazin rund um Software-Entwicklung. Er ist Java-Programmierer der ersten Stunde, schreibt regelmäßig Artikel und spricht auf Konferenzen im In- und Ausland. Am liebsten aber „sammelt“ er Programmiersprachen und beschäftigt sich mit ihrem Design und ihrer Implementierung.</p>
Huch, wo ist meine Architektur hin?2011-11-30T00:00:00+00:00https://www.majug.de/2011/11/30/huch-wo-ist-meine-Architektur-hin<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 30.11.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Wenn Applikationen über eine bestimme Größe oder einen bestimmten Zeitraum hinaus wachsen wird Modularität ein Kernaspekt für Wartbarkeit. Designentscheidungen die getroffen wurden sind kaum noch im Code wiederzufinden, Abhängigkeiten zwischen einzelnen Modulen der Applikation wachsen oft wild. Der Vortrag Patterns und Best Practices rund um generelle Code-Organisation und Package-Strukturen vor um eine solide Grundlage für langlebige Java-Applikationen zu legen, sowie eine Möglichkeit mit Spring lose gekoppelte Komponenten und dedizierte Erweiterungspunkte in Applikationen zu definieren und zu verwenden.</p>
<h3 id="bio">Bio</h3>
<p>Oliver Gierke ist Projektleiter des Spring Data JPA Teams und darüber hinaus auch in andere Spring Data Module (z.B. MongoDB) involviert. Seit über 6 Jahren widmet er sich dem Entwicklen von Java Enterprise Applikationen und Open Source Projekten. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring und Persistenztechnologien. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen sowie Autor von Fachartikeln.</p>
JavaScript - Spracheinführung2011-11-11T00:00:00+00:00https://www.majug.de/2011/11/11/javascript-spracheinfuehrung<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.11.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Lange vergessen, erlebt JavaScript im Zuge der Verlagerung von Applikationen in den Browser eine Rainessance. Die Möglichkeit asynchrone Anfragen an Server zu senden verstärkt diesen Trend noch. In diesem Vortrag stelle ich die Grundlagen von JavaScript vor; Sprach-Syntax und -Konstrukte.</p>
<p>Darüber hinaus schauen wir uns an, wie JavaScript Objektorientierung implementiert und was es mit den Prototypen auf sich hat. Zu guter Letzt, aber nicht minder interessant, behandeln wir noch das JavaScript-Eventhandling und was sich Ecma international drunter vorgestellt hat.</p>
<h3 id="bio">Bio</h3>
<p>Seit mehreren Jahren gefesselt von PHP, beteiligt sich Bastian Feder an den Übersetzungsbestrebungen der englischen Dokumentation ins Deutsche.</p>
<p>Als regelmäßiger Sprecher auf Konferenzen und freiberuflicher Autor beschäftigt er sich intensiv mit der Qualität von Software, der IDE Eclipse PDT, JavaScript und dem JavaScript-Framework jQuery. Als Trainer für diverse Opensource Themen verbreitet er den OpenSource-Gedanken, auch einen großen Teil seiner Freizeit widmet er zahlreichen OpenSource-Projekten, wie phpDox, proxy-object und FluentDom.</p>
Sieben Einsatzmuster für Groovy in Java Projekten2011-10-20T00:00:00+00:00https://www.majug.de/2011/10/20/groovy-in-java-projekten<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 20.10.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Groovy hat sich mittlerweile als der Industriestandard für leichtgewichtige, dynamische Programmierung auf der Java Plattform durchgesetzt.</p>
<p>Die Sprache versucht nicht, Java zu ersetzen, sondern Java gezielt zu ergänzen. Diese Session stellt sieben Einsatzmuster vor: Alleskleber, Weiches Herz, Endoskopische Operation, Intelligente Personalisierung, Grenzenlose Offenheit, Heinzelmännchen und Prototyp.</p>
<h3 id="bio">Bio</h3>
<p>Dierk König ist Fellow bei der Canoo Engineering AG in Basel, Committer in den Projekten Groovy, Grails und GPars und ist Autor des Buches “Groovy in Action” (deutsch: “Groovy im Einsatz”).
Bei Twitter erreicht man Dirk unter: <a href="https://twitter.com/mittie">@mittie</a></p>
Eclipse Code Recommenders IDE 2.0: Leveraging the Wisdom of the [Software Engineering] Crowds2011-09-29T00:00:00+00:00https://www.majug.de/2011/09/29/eclipse-code-recommenders<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 29.09.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Software Frameworks sind heutzutage nicht mehr aus der Softwareentwicklung wegzudenken. Kein Wunder, verspricht doch ihre Nutzung enormen Vorteile wie zum Beispiel erhebliche reduzierte Kosten, verbesserte Softwarequalität und kürzere Time-to-Market. Doch der Einsatz von Software Frameworks ist auch mit hohen Kosten verbunden: Bevor Frameworks effizient genutzt werden können, müssen Softwareentwickler ihre korrekte Verwendung zuerst einmal erlernen, was gerade in der Anfangsphase mit hohen Einarbeitungskosten verbunden ist.</p>
<p>Zum Glück werden Frameworks häufig auf die gleiche Weise verwendet. Diese typischen Verwendungsmuster lassen sich auch im Quellcode von bereits bestehenden Anwendungen wiederfinden – und können somit auch direkt aus dem Quellcode (vollautomatisch) extrahiert und Framework-Neulingen innerhalb ihrer Entwicklungsumgebung wieder zur Verfügung gestellt werden.
Eclipse Code Recommenders ( ) ermöglicht diesen Austausch von Wissen wie eine API korrekt verwendet wird, indem es interessante Information (Muster) aus dem Quellcode bestehender Anwendungen extrahiert und dieses Wissen durch Tools wie beispielsweise intelligente Code Completion, aus Beispielanwendungen automatisch gewonnene API Dokumentation, smarte API-Bug-Detektoren, personalisierter Codesuche, sowie einer Stacktrace Suchmaschine wieder zurück in die Entwicklungsumgebung bringt.
Dieser Talk stellt euch Eclipse Code Recommenders vor. Im ersten Teil zeigen wir euch die neusten Werkzeuge aus dem Code Recommenders Projekt und diskutieren wie diese Tools funktionieren. Im zweiten Teil zeigen wir dann an Beispiel von Google’s Android Plattform, wie ihr selbst in wenigen Minuten eigenen Code Recommender Modelle für eure eigenen APIs entwickeln könnt - live. Ein fundiertes Wissen über Eclipse oder Android ist nicht notwendig :)</p>
<h3 id="bio">Bio</h3>
<p>Marcel ist wissenschaftlicher Mitarbeiter an der Technischen Universität Darmstadt. Er arbeitet an neuen Konzepten um Entwicklern effizienter bei ihrer Arbeit zu unterstützen und hat 2011 das Eclipse Code Recommenders Projekt ins Leben gerufen: ein Forschungsprojekt, das darauf abzielt allgemein verfügbares (Softwareentwickler-) Wissen zu nutzen und wieder in die Entwicklungsumgebung einfließen zu lassen.
Weitere Infos zum Projekt gibt es unter:
(http://eclipse.org/recommenders)
(http://code-recommenders.blogspot.com)</p>
<p>Update: die Folien zum Vortrag gibt es hier: (http://www.slideshare.net/Microbiotic/eclipse-code-recommenders-majug-2011)</p>
<p>Mehr Informationen zu Marcel gibt es unter:
(http://www.stg.tu-darmstadt.de/staff/marcel_bruch)
(http://gplus.to/marcelbruch)
(http://twitter.com/marcelbruch)</p>
JavaFX spricht Java!?2011-09-08T00:00:00+00:00https://www.majug.de/2011/09/08/javafx-spricht-java<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 08.09.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Die Ablösung der GUI-Sprache JavaFX Script durch ein natives Java API hat die Diskussion um JavaFX neu entfacht. Statt an einer, an die Welt der Grafik Designer und Gestalter angepasste Oberflächen-Beschreibungssprache festzuhalten, setzt Oracle heute auf Java als etablierte Universalsprache. Doch ist es überhaupt möglich, im Swing-Stil moderne Oberflächen zu entwickeln und können wir wirklich auf eine GUI DSL wie JavaFX Script verzichten? Der Vortrag erläutert, welche Schwierigkeiten die neue JavaFX 2.0 API mit sich bringt, und wie Open Source Projekte wie Visage und ScalaFX versuchen, entstehende Lücken in der modernen GUI Entwicklung zu schließen.</p>
<h3 id="bio">Bio</h3>
<p>Andreas Schosser ist Software-Entwickler mit Schwerpunkt auf dynamischen Sprachen und grafischen Benutzeroberflächen. Seine starke Verbundenheit mit dem Java-Umfeld, sowie eine große Begeisterung für moderne GUI-Technologien wie Microsoft WPF oder Adobe Flex, machen Andreas zu einem überzeugten Verfechter von JavaFX.</p>
Java Concurrency2011-08-11T00:00:00+00:00https://www.majug.de/2011/08/11/java-concurrency<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 11.08.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Ein Sprichwort besagt: “Concurrency is hard to get right”. Trotzdem wird es gerade in Zeiten von Multi-Core-CPUs immer wichtiger, die Parallelisierbarkeit von Software nicht außer Acht zu lassen.</p>
<p>Der Vortrag illustriert anhand anschaulicher Beispiele typische Probleme, die bei der Entwicklung nebenläufiger Software auftreten. Im Anschluss geht er näher auf die Werkzeuge ein, die uns Java zur Lösung dieser Probleme an die Hand gibt - nicht jedoch, ohne diese einer kritischen Betrachtung zu unterziehen. Er schließt mit einem Überblick über neuartige Konzepte für die Parallelisierung von Software wie Software Transactional Memory und Actors.</p>
<h3 id="bio">Bio</h3>
<p>Thilo-Alexander Ginkel ist geschäftsführender Gesellschafter der TG Byte Software GmbH <a href="http://www.tgbyte.de/">http://www.tgbyte.de/</a> und seit kurzem freiberuflich als Softwareentwickler und IT-Berater aus Leidenschaft im Einsatz. Zuvor war er sechs Jahre bei der SAP AG in der Systementwicklung auf Java-EE-Basis tätig. Neben der Durchführung anspruchsvoller Projekte hat er sich der effizienten Gestaltung des Entwicklungsalltags verschrieben.</p>
Erlang/OTP für Java-Profis2011-07-14T00:00:00+00:00https://www.majug.de/2011/07/14/erlang-otp-fuer-java-profis<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 14.07.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Der pragmatische Programmierer soll jährlich eine neue Programmiersprache lernen. Bitte sehr! In dieser Session wird dem Java-Volk Erlang/OTP vorgestellt - etwas, was aus einer ganz anderen Welt kommt, aber bereits auf JVM läuft: eine dynamisch typisierte, funktionale Sprache mit eingebauter Parallelität. Und es ist eine Plattform für robuste, fehlertolerante, massivparallele Anwendungen.</p>
<h3 id="bio">Bio</h3>
<p>Pavlo Baron arbeitet in einem Telekommunikationsunternehmen in München. Er ist Autor zahlreicher Artikel, Speaker auf verschiedenen Konferenzen und Autor der Bücher “Pragmatische IT-Architektur” und “Fragile Agile”. Seine privaten Leidenschaften sind Erlang und Big Data, die seine gesamte verfügbare Freizeit verschlingen. Pavlo committet u.A. in Erjang, der JVM-basierten Erlang-VM.</p>
Spring Data JPA - Repositories done right2011-05-05T00:00:00+00:00https://www.majug.de/2011/05/05/spring-data-jpa<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 05.05.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Domain Driven Design (DDD) ist mittlerweile ein weit verbreiteter Ansatz um Problemdomänen mit einem reichhaltingen Objektmodell zu abstrahieren. Weiterhin hat sich in der Javawelt JPA als standard Persistenzlösung etabliert.</p>
<p>Der Vortrag stellt das JPA Modul des Spring Data Projekts vor, das die Implementierung von JPA Repositories stark vereinfacht. Wir beginnen mit einer kurzen Analyse eines Repositories auf nackter JPA und erörtern die Problemstellungen vor allem in Bezug auf den DDD Ansatz (fehlende Abstraktion, viel Codeaufwand beim Ausführen von Queries, Pagination usw.). Der Hauptteil des Vortrages widmet sich dann den Lösungsansätzen, die Spring Data JPA für eben diese Probleme aufzeigt.</p>
<p>Die Präsentation ist zu 80% hands on - weniger Folien, mehr Code :)</p>
<h3 id="bio">Bio</h3>
<p>Oliver Gierke ist Senior Consultant bei SpringSource - a division of VMware und Teil des Spring Data Teams. Seit über 5 Jahren widmet er sich dem Entwicklen von Java Enterprise Applikationen und Open Source Projekten. Seine Arbeitsschwerpunkte liegen im Bereich Softwarearchitektur, Spring und Persistenztechnologien. Er ist regelmäßiger Sprecher auf deutschen und internationalen Konferenzen, Autor von Fachartikeln und Project Lead der OpenSource Bibliotheken Hades und Hera.</p>
<p>Webseite: <a href="http://www.springsource.org/spring-data">http://www.springsource.org/spring-data</a>
Beispielcode: <a href="http://github.com/olivergierke/hades-showcase">http://github.com/olivergierke/hades-showcase</a>
Vortrag auf der Devoxx 2009: <a href="http://www.parleys.com/#st=5&id=1470&sl=1">http://www.parleys.com/#st=5&id=1470&sl=1</a>
Vortrag bei der JUG Essen: <a href="http://www.ruhrjug.de/videos/gse.lectures.app/Talk.html#Hades">http://www.ruhrjug.de/videos/gse.lectures.app/Talk.html#Hades</a></p>
Cloud Computing mit Google App Engine2011-04-21T00:00:00+00:00https://www.majug.de/2011/04/21/cloud-computing-google-app-engine<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 21.04.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Google bietet das Hosten von Java und Python basierten Applikationen auf dem Google App Engine an. Das schöne daran ist, daß das Hosting für kleinere Webapplikationen gratis ist, d.h. man kann leicht anfangen, ohne gleich seine Kreditkarte belasten zu müssen. Dieser Vortrag präsentiert die Architektur unter dem Google AppEngine und zeigt wie leicht es ist mit dem Eclipse basierten Tools von Google Webapplicationen zu erstellen. Noch nie war das Deployment von Java Webapps so leicht.</p>
<p>Im Rahmen der Präsentation werden die Möglichkeiten Daten auf dem AppEngine zu speichern (JPA, JDO), das Email API und viele andere API’s gezeigt. Als Demo werden WebApps erstellt, die automatisch Updates zu Twitter schicken bzgl. ein Chat Roboter, der basierend auf dem XMPP Protocol erlaubt sich mit Ihm zu unterhalten.</p>
<p>Wer schon mal in das Google AppEngine hineinschnuppern will, kann hier eine Einführung des Präsentators finden:</p>
<p><a href="http://www.vogella.de/articles/GoogleAppEngineJava/article.html">Google AppEngine with Java</a>
<a href="http://www.vogella.de/articles/GoogleAppEngine/article.html">Google AppEngine with Python</a>
Update: Präsentation
<a href="http://www.slideshare.net/LarsVogel/google-app-engine-for-java-7698966">Google App Engine for Java</a></p>
<p>Anschließend gibt es noch eine Kurzeinführung in Amazon Elastic Beanstalk durch Wolfgang Schell.
Update: Präsentation
<a href="http://www.slideshare.net/jetztgradnet/introduction-elastic-beanstalk">Introduction to Elastic Beanstalk</a></p>
<h3 id="bio">Bio</h3>
<p>Lars Vogel betreibt die Webseite vogella.de mit vielen Android und Eclipse bezogenen Tutorials, die von mehr als 20 000 Besuchern täglich gelesen werden. Er arbeitet nebenberuflich als freier Eclipse und Android Trainer und ist angestellt bei der SAP AG. Er ist regelmäßiger Sprecher auf internationalen Konferenzen wie der EclipseCon, Eclipse Summit Europe, Java Forum Stuttgart, MobilTechCon und der Droidcon. Lars wurde 2010 zum “Eclipse Top Contributor” gewählt.</p>
Verteiltes Rechnen mit Apache Hadoop und Map/Reduce2011-03-03T00:00:00+00:00https://www.majug.de/2011/03/03/apache-hadoop<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 03.03.2011 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Apache Hadoop stellt ein verteiltes Dateisystem (HDFS) und darauf aufbauendes Computing-Framework (Map/Reduce) zur Verfügung und eröffnet neue Perspektiven im Hinblick auf Durchsatz, Skalierung und Batch-Job-Verarbeitung. Dieser Vortrag erklärt die zugrundeliegenden Konzepte. In einer kurzen Demo wird die Interaktion mit HDFS und ein Map/Reduce Job gezeigt.</p>
<h3 id="bio">Bio</h3>
<p>Bernd Fondermann (bernd.fondermann[at]brainlounge.de) ist freiberuflicher Softwarearchitekt und Consultant in Frankfurt a. M. Er beschäftigt sich mit innovativen Open-Source-Technologien wie Apache Hadoop und Lucene und ist Member der Apache Software Foundation und Vice President Apache Labs.</p>
The power of JSF 2.02011-02-03T00:00:00+00:00https://www.majug.de/2011/02/03/the-power-of-jsf-2<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am xx.xx.20xx um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>JSF 2.0 ist nun schon einige Zeit verfügbar. Zeit genug, um die großen Versprechungen von neuen und tollen Features auch in der Praxis gegenzuprüfen und zu schauen, ob die Erweiterungen auch tatsächlich einen Mehrwert in der UI-Entwicklung mit JSF bringen. In diesem Vortrag sollen daher die Vorteile, die sich aus einem Einsatz von JSF 2.0 ergeben, demonstriert werden. Es wird gezeigt, welche konkreten Verbesserungen in JSF 2.0 vorhanden sind, die einem Anwendungsentwickler die Arbeit wesentlich erleichtern.</p>
<h3 id="bio">Bio</h3>
<p>Andy Bosch ist unabhängiger Berater und Trainer für JavaServer Faces und Portlets. Er ist Autor verschiedener Fachbücher (JavaServer Faces, Portlets und JSF) sowie Betreiber der Plattform www.jsf-forum.de. Zudem ist er Mitglied der Expertengruppe des JSR-301 und JSR-329 (Portlet Bridge Specification for JavaServer Faces) und Vorstand von SENS (www.SoftwareExperts.de).</p>
<p>Wer sich vorher schon mal mit JSF beschäftigen will, kann das folgende Tutorial verwenden: <a href="http://www.vogella.de/articles/JavaServerFaces/article.html">JSF Tutorial</a></p>
Android Code Camp2011-01-13T00:00:00+00:00https://www.majug.de/2011/01/13/android-code-camp<h3 id="termin">Termin</h3>
<p>Das Code Camp findet am 13.01.2011 um 17:30 Uhr bei der Siemens AG in der Dynamostr. 4 in Mannheim statt.</p>
<h3 id="abstract">Abstract</h3>
<p>Das erste Code Camp Event von majug zum Thema: Android.
Dank der freundlichen Unterstützung der Firma Siemens, steht uns ein Raum für 16 Personen zur Verfügung, wo die Teilnehmer nach kurzem Android crash course, in kleinen Gruppen zusammen versuchen werden, eine Android-App zu entwickeln. Da die Teilnehmerzahl limitiert ist, bitten wir um eine schnelle Registrierung unter <a href="http://tinyurl.com/majugandroid">http://tinyurl.com/majugandroid</a>. Die Gebühr von 8EUR wird in die Verpflegung (z.B. Pizza etc.) investiert.</p>
<p>Feedback / App-Ideen sind gerne willkommen - einfach @majug oder @lplotni twittern.</p>
<p>Beginn am 13.1. um 17.30 Uhr</p>
<h4 id="veranstaltungsort">Veranstaltungsort</h4>
<p>Siemens AG
Dynamostr. 4
68165 Mannheim</p>
<h4 id="anreise">Anreise</h4>
<p>ÖPNV: Linie 6 oder 9, Haltestelle Planetarium (vom Bahnhof aus ca. 10 Minuten), dann 300m zu Fuß durch Gottlieb-Daimler-Straße und Dynamostraße.</p>
<p>Mit dem Auto:
s. Karte oben oder hier nochmal ein Link zu Google Maps:
<a href="http://maps.google.de/maps?f=q&source=s_q&hl=de&geocode=&q=Dynamostra%C3%9Fe+4,+Mannheim&sll=49.474699,8.489342&sspn=0.006769,0.016512&ie=UTF8&hq=&hnear=Dynamostra%C3%9Fe+4,+Mannheim+68165+Mannheim,+Baden-W%C3%BCrttemberg&ll=49.475347,8.491595&spn=0.006943,0.016512&z=17">http://maps.google.de/maps?f=q&source=s_q&hl=de&geocode=&q=Dynamostra%C3%9Fe+4,+Mannheim&sll=49.474699,8.489342&sspn=0.006769,0.016512&ie=UTF8&hq=&hnear=Dynamostra%C3%9Fe+4,+Mannheim+68165+Mannheim,+Baden-W%C3%BCrttemberg&ll=49.475347,8.491595&spn=0.006943,0.016512&z=17</a></p>
<p>Gäste-Parkplätze gibt es auf dem Siemensgelände (man muss an der Schranke klingeln)</p>
<h4 id="ablauf">Ablauf</h4>
<p>Kurze Einführung in Android Programmierung durch Lars Vogel
Projektauswahl und Bilden von Teams. Wer eine Idee für eine App hat, kann diese gerne vorher schon äußern. Wir haben auch ein paar Vorschläge.
Freies Hacken :-)</p>
<p>Zwischendurch bestellen wir Pizza, für (alkoholfreie) Getränke ist gesorgt.</p>
<p>Das Ende ist offen.</p>
<h4 id="vorbereitung">Vorbereitung</h4>
<p>Bitte Notebook mitbringen (Netzteil nicht vergessen).</p>
<p>Um an dem Abend nicht zu viel Zeit mit der Installation der Entwicklungsumgebung zu verlieren, empfiehlt es sich, dies schon vorher zu Hause durchzuführen. Eine Anleitung bietet Lars’ Tutorial: <a href="http://www.vogella.de/articles/Android/article.html">http://www.vogella.de/articles/Android/article.html</a>. Hier bitte mindestens Kapitel 2 (Installation) durchführen. Besser wäre es, die korrekte Funktion schon durch eine einfache “Hello World”-App auszutesten (s. Kapitel 4 im Tutorial). Wer schon mehr wissen will, kann sich gerne schon in weitere Artikel auf Lars’ Seite einarbeiten: <a href="http://www.vogella.de/android.html">http://www.vogella.de/android.html</a></p>
<p>Buchempfehlung: “Android 2: Grundlagen und Programmierung” von Arno Becker und Marcus Pant, 2. Auflage, Dpunkt Verlag, ISBN 3898646777</p>
<p><a href="http://www.amazon.de/Android-Grundlagen-Programmierung-Arno-Becker/dp/3898646777/">http://www.amazon.de/Android-Grundlagen-Programmierung-Arno-Becker/dp/3898646777/</a></p>
CI & Android-Entwicklung, wie geht das?2010-12-09T00:00:00+00:00https://www.majug.de/2010/12/09/ci-und-android-entwicklung<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 09.12.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Continouos Integration hat sich bei der Entwicklung von Java-Geschäftsanwendungen (JEE) etabliert und verspricht eine frühe Fehlererkennung und dadurch eine stetige Verbesserung der Codequalität. Wie man dies auch bei der Entwicklung von Android-Anwendungen mit Git und UI-Tests einsetzen kann, zeigt dieser Vortrag.</p>
<h3 id="bio">Bio</h3>
<p>Markus Kopf ist Berater, Trainer und Architekt bei der arconsis IT-Solutions GmbH. Seine Schwerpunkte liegen im Bereich der mobilen Anwendungen, Eclipse und agilen Softwareentwicklung.</p>
<p>Andreas Frey arbeitet als Software Entwickler und Software Architekt bei der 1und1 Internet AG. Schwerpunkte seiner Tätigkeit sind die Entwicklung von mobilen Anwendungen für Android und iPhone sowie die Entwicklung von Java Enterprise Anwendungen. Darüber hinaus interessiert er sich für alles rund um Web 2.0 sowie für agile Anwendungsentwicklungsprozesse.</p>
Multi-Core-Programmierung mit Clojure2010-11-25T00:00:00+00:00https://www.majug.de/2010/11/25/clojure<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 25.11.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Nachdem die Entwicklung von typischen Rechnersystemen mittlerweile nicht mehr nur im Serverumfeld, sondern auch bei Desktop- und Mobilsystemen in Richtung Multi-Core anstelle von immer höheren Taktraten geht, stellt sich die Frage nach dem geeigneten Programmiermodell. Clojure ist eine JVM-Sprache mit Lisp-Wurzeln, die von Grund auf für die Parallelverarbeitung ausgelegt ist und dabei mit vielen bekannten Mustern aus der OO-Welt bricht. Im Vortrag werden nach einer Einführung in die Sprache die von Clojure unterstützten Mechanismen, insbesondere Agenten und Software Transactional Memory, vorgestellt und ihr praktischer Nutzen demonstriert. Dabei wird insbesondere auch auf die Integrationsfähigkeit in klassische Java-Anwendungen eingegangen.</p>
<h3 id="bio">Bio</h3>
<p>Stefan Tilkov ist Geschäftsführer und Principal Consultant bei der innoQ Deutschland und beschäftigt sich dort mit leichtgewichtigen Ansätzen für Entwicklung und Architektur von Systemen. In den letzten Jahren liegt sein Fokus auf dem sinnvollen Einsatz von Web-Technologien für Anwendungen und Anwendungsintegration und dem Einsatz dynamischer Sprachen.</p>
Android Programming2010-10-14T00:00:00+00:00https://www.majug.de/2010/10/14/android-programming<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 14.10.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Googles Ausflug in die Welt der Smartphones und Mobilgeräte hat gerade erst begonnen. Aber was ist Android überhaupt, wie sehen die Geräte aus, wie baut man Programme dafür — und warum sollte man das überhaupt tun?</p>
<p>Der Vortrag besteht aus zwei Teilen. Im ersten werden wir einen groben Überblick über die Welt der Smartphone-Betriebssysteme und die wichtigsten Unterschiede der einzelnen Systeme geben, wobei wir im zweiten Abschnitt anhand einer Beispiel-App die Entwicklung einer App, von der Idee bis zur Platzierung im Android Market, vorstellen. Dabei wird die Entwicklungsumgebung, aber auch die Eigenheiten von “Java for Android” und dem Android Market diskutiert.</p>
<h3 id="bio">Bio</h3>
<p>Benjamin Reimold, 27 Jahre alt, studiert an der Dualen Hochschule Baden-Württemberg, absolviert den praktischen Teil seiner Ausbildung bei aformatik Training & Consulting in Sindelfingen und ist Mitglied der Stuttgart GTUG. Neben Anwendungsentwicklung mit JEE und .Net, beschäftigt sich Benjaminseit 2009 mit Anwendungsentwicklung für mobile Geräte, Schwerpunkt ist hierbei Android. Da er aber seit kurzem einen Apple-Rechner besitzt, wird er auch die iOS-Welt sicherlich bald unsicher machen.</p>
<p>Moritz Haarmann – 25 Jahre, hat gerade sein Studium der Medieninformatik an der HdM Stuttgart beendet. Er arbeitet bei der Firma CaperWhite, wo er sich hauptsächlich um iPhones und Java Server kümmert. In der Freizeit engagiert er sich u.A. bei der GTUG Stuttgart. Für die Entwicklung für iPhone und Android interessiert er sich seit 2009, unter anderem wurde die App ‘qwerted’ von der MfG Stiftung ausgezeichnet.</p>
<p>Wer mehr über Android lernen will, findet hier ein <a href="http://www.vogella.de/training/android.html">Android Training</a>.</p>
Git and EGit - Distributed Version Control with Eclipse2010-09-02T00:00:00+00:00https://www.majug.de/2010/09/02/git-und-egit<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 02.09.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Slides are available on Slideshare: <a href="http://slidesha.re/dc62D4">http://slidesha.re/dc62D4</a></p>
<p>Git is a distributed SCM, which means every contributor has a full local copy of the complete history of every revision of the project, allowing for independence and unparalleled speed compared to other centralized SCMs. With Git’s intelligent branching and merging functionality, combined with a highly optimized network transport protocol, distributed development becomes much more efficient.</p>
<p>Contributors who don’t have direct write access to the main repository of an open source project benefit from the distributed nature of Git, as they can still take advantage of the same tools that committers have. This explains the high interest of open source projects to favor Git over traditional versioning systems like CVS or SVN, in order to ease the life of all contributors, and make the community more productive.</p>
<p>Git is the future of SCM at Eclipse. The EGit project is implementing Eclipse tooling on top of JGit, the Java implementation of Git. Both EGit and JGit moved to Eclipse in May 2009 and shipped with Helios in June 2010.</p>
<p>This talk will give an update on the project progress and more detailed information about the design and features. A demo will illustrate how it’s used in its own development process. It will also show how Gerrit Code Review, a JGit based review system developed for the needs of the Android community, can help to further improve the development process.</p>
<p>The talk will be in German.</p>
<h3 id="bio">Bio</h3>
<p>Matthias Sohn works at SAP since 1999 in various positions in the area of technology development and holds a PHD in experimental physics of the University of Karlsruhe (now KIT). He has a focus on development infrastructure, especially versioning systems but also build systems, component models and development processes. Since 2009 Matthias is initial committer for the Eclipse projects JGit and EGit and since February 2010 co-project lead for EGit. He is in close contact with the Maven / Tycho community and right now starts contributing to Gerrit Code Review. Besides that he tries to help the SAP development organization to learn from successful Open Source projects. In his spare time he enjoys his family and passionately plays the double bass.</p>
<p>Dr. Stefan Lay has been developing java applications for 10 years and joined SAP at the beginning of 2005. He holds a PhD in theoretical physics of the University of Freiburg.
Currently Stefan is working in the java infrastructure department of SAP with a focus on the eclipse integration of versioning systems. Since 2009 Stefan is initial committer for the Eclipse projects EGit and JGit. At SAP he additionally acts as a scrum master of the project which contributes to EGit, JGit and Gerrit.
In his spare time Stefan enjoys his family, cycling, reading and in the near future renovating his new house.</p>
Wicket - Komponentenbasierte Webanwendungen in Java2010-07-21T00:00:00+00:00https://www.majug.de/2010/07/21/wicket<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 21.07.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Wicket ist ein vergleichsweise neues Web-Framework für die Java-Welt, dessen Bekanntheitsgrad allerdings immer weiter zunimmt. Es erlaubt die Entwicklung von Web-Anwendungen auf der Basis von reinem Java und HTML, ohne die Notwendigkeit von XML, JSP- oder Taglib-Dateien. Das einfache Programmiermodell stellt die schnelle Erstellung eigener Komponenten zur Kapselung und Wiederverwendung fachlicher Logik erstmals in den Mittelpunkt der Web-Entwicklung. Dabei werden im Rahmen des Vortrags sowohl Grundlagen als auch fortgeschrittene Themen wie AJAX und die Erstellung eigener UI-Komponenten erläutert. Ein kritisches Resümee rundet den Vortrag ab.</p>
<h3 id="bio">Bio</h3>
<p>Olaf Siefart hat an der Universität Marburg Informatik studiert und bei Avinci seine Diplomarbeit im J2EE-Umfeld geschrieben. Bei Senacor ist er seit 2004 beschäftigt (mittlerweile als Chief Developer), ein Schwerpunkt seiner Arbeit ist die Konzeption von Client-Architekturen. Mit Wicket beschäftigt er sich seit 2007, unter anderem natürlich im Rahmen seines Buchs, was Ende des letzten Jahres endlich erschienen ist.</p>
<h4 id="xing">XING</h4>
<p>Wer sich auf XING für den Vortrag anmelden möchte, kann das unter folgendem Link tun:
<a href="https://www.xing.com/events/wicket-reloaded-533140">Wicket @ XING</a></p>
Eclipse DemoCamp 20102010-06-10T00:00:00+00:00https://www.majug.de/2010/06/10/eclipse-demo-camp<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 10.06.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Am 10. Juni veranstalten wir ein Eclipse DemoCamp zum Helios Release. Folgende Vorträge sind geplant:</p>
<ul>
<li>Oliver Gierke - Roo beyond the obvious (Hackathon with Spring Roo using Eclipse integration)</li>
<li>Benjamin Muskalla - Eclipse RAP / EclipseRT</li>
<li>Matthias Sohn et al. (SAP) - <a href="http://eclipse.org/egit">Eclipse EGit</a></li>
<li>Markus Kohler <a href="http://kohlerm.blogspot.com/">(http://kohlerm.blogspot.com/)</a> - Memory usage analysis on the Android platform</li>
<li>ekke (Ekkehard Gentz), Independent Software Architect, Thema: Modeling meets Runtime <a href="http://redview.org/">redView</a></li>
<li>Oliver Gierke - What’s new in Mylyn 3.4? <a href="http://www.eclipse.org/mylyn">[1]</a></li>
<li>Manuel Bork - Eclipse modeling and programming with <a href="http://www.uml-lab.com/">UML Lab</a></li>
<li><a href="http://www.vogella.de/">Lars Vogel</a> - Eclipse 4.0</li>
<li>Nicole Rauch and Marc Philipp - Das ist hier <a href="http://www.projectusus.org/">Usus</a></li>
</ul>
<p>Alle Details, sowie die Anmeldung erfolgt unter <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Mannheim">http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Mannheim</a></p>
Spring Roo - Produktive Entwicklung mit Spring, AOP und der Cloud2010-05-26T00:00:00+00:00https://www.majug.de/2010/05/26/spring-roo<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 26.05.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Mit Spring Roo steht ein neues Werkzeug zur Verfügung, das die Entwicklung von Enterprise-Java-Anwendungen sehr deutlich beschleunigt.
Erleben Sie live, wie man in 10 Minuten eine lauffähige Java-Anwendung implementieren kann! Außerdem werden wir einen Blick auf den Bereich Cloud werfen und sehen, was in diesem Bereich heute schon für Entwickler möglich ist.</p>
<h3 id="bio">Bio</h3>
<p>Eberhard Wolff ist Principal Technologist bei SpringSource, der Firma hinter dem Spring Framework und dem Spring-Portfolio. Er ist Autor zahlreicher Fachartikel, verschiedener Bücher und regelmäßiger Sprecher auf verschiedenen, auch internationalen Konferenzen.</p>
<h4 id="xing">XING</h4>
<p>Wer sich auf XING für den Vortrag anmelden möchte, kann das unter folgendem Link tun:
<a href="https://www.xing.com/events/spring-roo-produktive-entwicklung-spring-aop-cloud-504951">Roo @ XING</a></p>
Java Virtual Machine Internals2010-03-24T00:00:00+00:00https://www.majug.de/2010/03/24/jvm-internals<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.03.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Java haftet seit seiner Einführung vor über zehn Jahren das Vorurteil
an, langsam zu sein, insbesondere im Vergleich zu kompilierten Sprachen
wie C & C++. In den ersten Jahren war dies begründet, mittlerweile hat
sich das, vor allem Dank moderner Just-In-Time-Compiler (JIT-Compiler),
teilweise sogar ins Gegenteil umgekehrt.</p>
<p>In diesem Vortrag werden wir Einblicke in die in einer Java Virtual
Machine (JVM) zur Geschwindigkeitssteigerung eingesetzten Techniken geben.
Dabei werden wir nicht nur auf verschiedene JIT-Optimierungen (wie
bspw. Profiling, Inlining, Escape-Analyse, Deoptimierung und Intrinsics)
eingehen, sondern auch andere JVM-Techniken wie zum Beispiel effiziente
Synchronisation und Speicherverwaltung vorstellen.</p>
<h3 id="bio">Bio</h3>
<p>Arne Harren und Volker Simonis arbeiten seit mehreren Jahren bei SAP im
Bereich Java Virtual Machine und Just-In-Time Compilation. Sie haben in
Oldenburg bzw. Tübingen Informatik studiert und promoviert.</p>
<h4 id="xing">XING</h4>
<p>Wer sich auf XING für den Vortrag anmelden möchte, kann das unter folgendem Link tun:
<a href="https://www.xing.com/events/java-virtual-machine-internals-474479">RJava Virtual Machine Internals @ XING</a></p>
Clean Code Development2010-02-24T00:00:00+00:00https://www.majug.de/2010/02/24/clean-code-development<h3 id="termin">Termin</h3>
<p>Der Vortrag findet am 24.02.2010 um 19:00 Uhr in der Uni Mannheim A5, 6 im Raum C013 statt <a href="/getting-there">Anfahrtsbeschreibung</a>.</p>
<h3 id="abstract">Abstract</h3>
<p>Clean Code Development ist derzeit nicht zuletzt durch aktuelle Diskussionen zu den Themen Software Qualität oder auch ‘Software Craftsmanship’ in aller Munde. In einer Zeit in welcher Kunden immer höhere Qualitätsanforderungen stellen, in dessen Rahmen Weiterentwicklung und Wartbarkeit von Softwaresystemen einen immer höheren Stellenwert einnehmen, ist es umso notwendiger nicht nur Code zu schreiben welcher die fachlichen Anforderungen erfüllt, sondern darüber hinaus ‘sauberen’ Code zu entwickeln welcher leicht zu verstehen und ebenso leicht zu ändern ist. Die Berücksichtigung der zugrundeliegenden kognitiven Prozesse und die damit verbundene Frage unter welchen Umständen wir Code als lesbar bzw. nachvollziehbar erleben, wird dabei selten angesprochen. Der Vortrag liefert einen tieferen Einblick in das innerhalb der Entwicklergemeinde eher unbekannte Forschungsgebiet ‘Program Comprehension’ und beleuchtet anschliessend gängige Prinzipien (S-O-L-I-D, DRY, TDA, …), Modellierungsansätze (Domain Driven Design, Design by Contract, …) und Programmier-Techniken (Immutability, Implementation Patterns, …) zur Entwicklung von sauberen, lesbaren Code unter dem Gesichtspunkt kognitiver Leistungen und Beschränkungen des menschlichen (Entwickler-) Hirns.</p>
<h3 id="bio">Bio</h3>
<p>Dipl.-Inf. Mario Gleichmann ist unabhängiger IT-Consultant und in dieser Funktion seit vielen Jahren an der Konzeption, Design und Entwicklung grosser Enterprise-Systeme beteiligt. Zudem ist er aktiver Open Source Committer und Autor einiger Fachartikel.</p>