Mittwoch, 26. August 2015

Montag, 30. Juni 2014

Business Technology Days / W-JAX November 2014

In Kooperation mit der S&S Media möchte ich euch auf folgende Veranstaltungen im November hinweisen:

Business Technology Days (3. - 6. November 2014)

IT im Wandel - die zunehmende Digitalisierung nahezu aller Branchen bewirkt ein Umdenken in klassischen IT-Abteilungen: nicht mehr die Umsetzung komplexer Enterprise-Systeme gilt als die hohe Kunst der IT, sondern die Realisierung hochgradig flexibler webbasierter Anwendungen und Geschäftsmodelle. Allen voran demonstrieren das primär Internetbasierte Unternehmen, die erkannt haben, dass eine innovative und extrem leistungsfähige IT der Schlüssel zum Freisetzen der Innovationskraft und neuer Geschäftsmodelle von Unternehmen ist.

Die Business Technology Days präsentieren wertvolles Wissen für innovative Business- und IT-Entscheider. Dabei spielen organisatorische Neuausrichtungen eine ebenso wichtige Rolle wie der Einsatz neuester Technologien. Die Speaker sind bekannte Unternehmensgründer und IT-Strategen, die aus ihrer Praxis in fortschrittlichen Unternehmen berichten. Alle und alles mit dem einen Ziel: Sie und Ihr Unternehmen fit zu machen für das digitale Zeitalter.

Themenspektrum:

  • Best Practices erfolgreicher digitaler Unternehmen
  • Lean Startup & Innovation Management
  • Digital Transformation Management
  • Kontinuierliche Optimierung von IT-Strukturen
  • Innovationen: Cloud, Mobile, Big Data und vieles mehr

Highlights

  • Abwechslungsreiches 4-Tage-Programm mit Best Practices
  • 30+ topaktuelle Sessions, Special Days und Keynotes
  • Expo mit namhaften IT-Unternehmen vom 4. - 6. November
  • For Free: Parallel stattfindende W-JAX kostenfrei mitbesuchen
  • Abendliche Networking-Events in angenehmer Atmosphäre
  • Vollverpflegung mit wechselnden Buffets und Getränken
  • Digitaler Zugang zu den Slides nach der Konferenz
  • Offizielles Zertifikat alsTeilnahmebestätigung
  • Goodies: Developer-Rucksack, Frei-Magazine, -Abos etc.

W-JAX 2014: Zwei Tage „Power Workshops“ mit Live-Coding und Best Practices

  • IT-Experten laden auf der W-JAX zum gemeinsamen Live-Coding, Entwickeln und Experimentieren mit Software-Architekturen und mehr
  • Mehr als 180 Workshops, Sessions und Keynotes im 5-Tage-Programm

Vom 3. bis 7. November wird München wieder zum Mekka für ITProfis, wenn mehr als 160 nationale und internationale Konferenzsprecher auf der W-JAX ihre Best Practices zum Besten geben. Als Teil Europas führender Konferenz-Serie für Enterprise-Technologien, agile Methoden und Software-Architekturen präsentiert die W-JAX über 180 Vorträge von und für IT-Experten. „Unsere traditionellen Power Workshops stellen eine richtige Trainingseinheit dar“, erklärt Sebastian Meyen, Program Chair der W-JAX und Chief Content Officer der Software & Support Media Group. „Am Konferenz-Montag und - Freitag schulen dabei renommierte Trainer unsere Teilnehmer einen Tag lang fokussiert und intensiv zu ausgewählten Themen.“

Der Architektur-Profi Eberhard Wolff begleitet die Konferenz-Serie W-JAX und JAX regelmäßig als Speaker. Auf der diesjährigen W-JAX lädt der erfahrene Trainer seine Teilnehmer im „Pragmatischen Architekturworkshop“ dazu ein, selbst Architekturen zu entwickeln und gelernte Konzepte noch vor Ort praktisch umzusetzen.

„Im Gegensatz zu älteren Versionen ist die Entwicklung mit Java EE 6/7 trotz der Komplexität der Anwendungslandschaft einfach“, sagt der Java-Experte Dirk Weil. Um das zu demonstrieren, hält er den Power Workshop „Java EE 7 – Enterprise-Anwendungen ohne Ballast“ und beschreibt vorab: „Das Beispiel wird interaktiv entwickelt und steht den Teilnehmern als Git-Repository zum aktiven Mitmachen zur Verfügung.“

Ebenfalls praktisch wird es im „Workshop zu Lambdas und Streams in Java 8“. Präsentiert wird der Workshop von den Java-Profis Angelika Langer und Klaus Kreft, die auf der W-JAX bereits als eingespieltes Trainer-Duo bekannt sind. Nach einem Überblick zu den Neuerungen, die Java 8 in Bezug auf Lambdas und Streams bewirkt hat, sollen die Teilnehmer unter fachgerechter Begleitung der Experten verschiedene Experimente auf ihren Notebooks durchführen.

„Git hat sich mittlerweile etabliert“, erklären die Software-Profis Nils Hartmann und René Preißel und führen fort: „Neben der eigentlichen (Code-)Versionierung bietet Git aber auch viele weiterführende Möglichkeiten, die Projektalltag und Release-Management vereinfachen können.“ Genau diese Möglichkeiten stellen die beiden Spezialisten im Power Workshop „Werden Sie Git-Experte“ vor.

Eine „Einführung in die Sprache JavaScript für Java-Entwickler“ gibt der Software-Kenner Oliver Zeigermann im gleichnamigen Power Workshop. „Ich werde die Themen Objekte, Arrays, Exceptions, Funktionen, prototypische Vererbung und Module besprechen“, kündigt der erfahrene JavaScript-Entwickler an.

Der Software-Architekt Thilo Frotscher geht mit seinem Power Workshop „REST mit JAX-RS 2.0“ in die Tiefe: „Wir entwickeln Schritt für Schritt eine REST-basierte Anwendung auf Basis des Standards. Fortgeschrittene Themen und Anforderungen wie Validierung, Logging, Hypermedia, Fehlerbehandlung, wiederverwendbare Erweiterungen, Bindings, Paging oder Security werden vorgestellt und demonstriert.“

Alle weiteren Infos zu den Power Workshops finden sich unter: www.jax.de/workshops Bis 7. August erhalten die Teilnehmer den Agile Day gratis und profitieren von den Frühbucherpreisen.

Alle weiteren Informationen rund um die W-JAX finden sich unter: www.jax.de

Dienstag, 18. März 2014

Java 8 ist da!

Java 8 ist endlich freigegeben worden. Ihr findet die Binaries wie immer unter:
http://www.oracle.com/technetwork/java/javase/downloads

Ich freue mich dass wir in den nächsten Wochen Events direkt zum Thema bei der JUG Bremen anbieten können.

In der nächsten Woche am Dienstag den 25.03. findet außerdem das offizielle Java 8 Launch Event statt, welches Ihr in Bremen mit anderen Java Interessierten verfolgen könnt.

Anmeldung unter:
http://www.meetup.com/jugbremen/events/170126412/
https://www.xing.com/events/java-8-launch-event-1375426


Am 16. April wird außerdem Wolfgang Weigend von Oracle bei uns vor Ort sein und uns alles zu Java 8 erzählen. Anmeldung folgt noch!


Weitere Informationen:
http://mreinhold.org/blog/jdk8-ga
http://www.oracle.com/technetwork/java/javase/8train-relnotes-latest-2153846.html

Lambda Beschreibungen:
http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html
http://cr.openjdk.java.net/~briangoetz/lambda/lambda-libraries-final.html

Tutorials:
https://github.com/AdoptOpenJDK/lambda-tutorial
https://github.com/JCrete/lambda-hackday

IDEs:
NetBeans 8 ist dementsprechend auch verfügbar:
https://netbeans.org/downloads/

JetBrains hat direkt nachgezogen und IntelliJ Version 13.1 veröffentlicht:
http://www.jetbrains.com/idea/

Eclipse JDT 8 ist ebenfalls als Update für Eclipse Kepler SR2 (4.3.2) verfügbar:
https://wiki.eclipse.org/JDT/Eclipse_Java_8_Support_For_Kepler

Donnerstag, 31. Oktober 2013

JUnit Rules

Vor einiger Zeit bin ich zufällig über eine weniger bekannte Funktionalität von JUnit gestoßen: JUnit Rules.

Das Problem

Mit dem Rules Konstrukt verfügt JUnit seit einer ganzen Weile über die Möglichkeit, den Testablauf zu beeinflussen, also z.B. vor oder nach einem Test etwas zu tun.
Das klingt erstmal absolut unspannend, immerhin sind Methoden, die mit @Before und @After Annotationen versehen werden nicht gänzlich unbekannt. Also was soll das Ganze?

Versuchen wir es mal mit einem einfachen Beispiel:

Das Ergebnis davon sieht wenig überraschend wie folgt aus:

vor dem Test...
test
nach dem Test...


Nehmen wir an, uns gefällt was in den before() und after() Methoden passiert und wir möchten das wiederverwenden. Nichts einfacher als das:

Das Ergebnis der Ausführung dieser Klasse mit Hilfe von JUnit sieht wie folgt aus:

vor dem Test...
extended test
nach dem Test...
vor dem Test...
test
nach dem Test...


Durch Vererbung von JUnit Tests erhalten wir ein Verhalten, was nicht in jedem Fall gewünscht ist. Zunächst einmal werden alles Tests der Oberklasse ebenfalls ausgeführt. Des Weiteren haben wir keine Möglichkeit z.B. nur die before() Logik zu nutzen, ohne ebenfalls die Logik innerhalb der after() Methode auszuführen. Das Schränkt die Wiederverwendbarkeit stark ein und führt zu unübersichtlichen Klassenhierarchien.

Die Lösung: JUnit Rules

Mit Hilfe von JUnit Rules lässt sich das Problem elegent lösen. Die Rules stellen einen mit Interceptoren oder Aspekten vergleichbaren Mechanismus bereit unabhängig von der Klassenhierarchie zusätzliche Logik in den Testablauf einzubauen.

Wie funktioniert es? 

Um eine Rule zu definieren muss eine Klasse erstellt werden, die das Interface org.junit.rules.TestRule implementiert. Darin ist nur die Methode apply(Statement base, Description description) definiert. Hinter dem Statement-Objekt verbirgt sich der laufende JUnit Test welcher mit base.evaluate() ausgeführt werden kann. Davor und danach kann eigene Logik ausgeführt werden. Dies könnte z.B. wie folgt aussehen:

Um die Rule im eigenen JUnit Test verwenden zu können wird diese einfach als Klassenvariable instanziiert und mit der @Rule Annotation versehen:
Das Ergebnis des Tests sieht wie folgt aus:

vor dem Test...
test
nach dem Test...


Die Rule wird beim Aufruf jeder einzelner Test-Methode verwendet, analog zu @Before bzw. @After. Alternativ lässt sich die Rule einmalig für die Testklasse verwenden, hierfür ist nur die folgende Änderung notwendig:

JUnit bringt bereits einige vorgefertigte Rules mit, siehe https://github.com/junit-team/junit/wiki/Rules

Freitag, 4. Oktober 2013

Excel generieren leicht gemacht

Wer schon einmal Apache POI zur Generierung von Excel Dokumenten verwendet hat, kennt wahrscheinlich Code, der so ähnlich aussieht wie der Folgende:


Man muss also relativ viel Code schreiben um ein sehr simples Dokument zu generieren. Auch die Wartbarkeit ist nicht ganz so dolle. Jede noch so kleine Änderung sorgt dafür, dass der Code angepasst werden muss. Wenn dann noch viel mit CellStyles gearbeitet wird, hört es irgendwann ganz auf.


Vor einiger Zeit wurde mir von dem Framework jXLS erzählt, mit dem sich Excel Dokumente deutlich einfacher generieren lassen.
Javaseitig ist für das gleiche Beispiel wie oben nur noch folgender Code notwendig:


Zusätlich wird noch ein Template benötigt. Das Template ist einfach eine Excel Datei, im Beispiel shopping-list.xls. Dem Template wird eine Map übergeben. In der Map befinden sich die Objekte an denen die Informationen abgefragt werden können, die in dem Excel Dokument dargestellt werden sollen.
Das Template sieht folgendermaßen aus:



Über Expression Language kann nun auf alle Objekte zugegriffen werden, die in der Map gespeichert und an das Template übergeben wurden. Es ist möglich über Listen zu itererieren und Informationen ein- bzw. auszublenden. Hintergrundfarben, Schriftarten, -größen etc. können im Template gepflegt werden und werden dann in das generierte Dokument übernommen.
So lange sich die darzustellenden Informationen nicht ändern, sondern nur die Art und Weise wie die Daten angezeigt werden sollen, muss nur das Template angepasst werden.
Das fertige Dokument sieht das folgendermaßen aus:


Weitere Informationen findet ihr hier: http://jxls.sourceforge.net/

Der Beispielcode befindet sich hier: https://github.com/gossie/jxls-demo

Freitag, 27. September 2013

iJUG Mitgliedschaft und JavaLand Konferenz

iJUG

Die JUG Bremen ist nun Gruppenmitglied in der iJUG dem Interessenverbund der (deutschen) Java User Groups e.V.

Diese Mitgliedschaft bringt uns u.a. den Schutz eines Vereins bei Veranstaltung, gemeinsame Öffentlichkeitsarbeit und die Mitgliedschaft im JCP (Java Community Process).
Zudem unterstützt der iJUG die aktive Arbeit im Java Community Process (JCP). Mitglieder sind automatisch JCP-Mitglied unter dem gemeinsamen Dach und müssen keine separaten Verträge mit Oracle schließen. Organisierte Mitglieder müssen sich nur auf jcp.org registrieren und dem iJUG zuordnen und sind dann vollwertiges JCP-Mitglied. (Quelle: www.ijug.eu)
 Mehr über den JCP erfahrt ihr unter: http://jcp.org/en/participation/overview


Innerhalb der JUG Bremen könnt ihr der iJUG für nur 10 Euro pro Jahr beitreten und erhaltet dafür u.a. vier Ausgaben des Magazins 'Java aktuell' und könnt am JCP teilnehmen. Mitgliedsanträge können ausgefüllt bei mir abgegeben werden. Einen Antrag erhaltet ihr unter:
http://www.ijug.eu/mitgliedschaft/mitgliedschaft.html

Neue Konferenz JavaLand

Im März wird im Phantasialand in Brühl eine zweitägige deutsche Java-Konferenz, die JavaLand  stattfinden. Die Konferenz wird von der DOAG (Deutsche Oracle Anwendergruppe) und dem Heise Zeitschriftenverlag mit Unterstützung der iJUG am 25./26. März 2014 erstmalig ausgerichtet. Die Konferenz verspricht ein interessantes Programm mit deuschen und internationalen Vortragenden und dem ausprobieren der einen oder anderen Attraktion im Phantasialand.

Der Call For Paper, bei dem eigene Vorträge eingereicht werden können, läuft noch bis zum 15. Oktober. Das Programm wird kurze Zeit später bekannt gegeben.

Weitere Informationen finden sich auf der JavaLand Homepage: www.javaland.eu



Dienstag, 17. September 2013

Aktueller Stand Java 8

Hier findet ihr einen hoffentlich vollständigen Überblick über den aktuelle Stand von Java 8.

Developer Preview


Seit der letzten Woche ist eine offizielle Developer Preview für Java 8 erhältlich: https://jdk8.java.net/download.html

Es handelt sich dabei um Build 106 vom 09.09.2013 welcher von Mark Reinhold hier genauer beschrieben wird: http://mreinhold.org/blog/jdk8-preview

Diese Version enthält alle neuen Features in Java 8 und auch an den Lambda-Bibliotheken sollte sich von nun an nicht mehr viel ändern. Gestern ist dazu ein neuer State of the Lambda von Brian Goetz erschienen:
http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html
http://cr.openjdk.java.net/~briangoetz/lambda/lambda-libraries-final.html

Dort ist die Entwicklung von Lambdas für Java und die Integration in die Libraries mit Beispielen beschrieben. Dies ist auf jeden Fall einen Blick wert!

Oracle ruft offiziell dazu auf Java 8 bereits zu testen und Fehler direkt zu reporten.

Dazu ist nun sogar endlich der neue Jira Bugtracker von Oracle für Java aktiv: https://bugs.openjdk.java.net
 

Frameworks mit Java 8 testen


Das Adopt OpenJDK Projekt hat außerdem eine Wiki-Seite auf der der Status für Frameworks die mit Java 8 getestet wurden vermerkt ist: https://java.net/projects/adoptopenjdk/pages/TestingJava8

Wenn ihr ein eigenes Framework habt oder eins benutzt welches noch in der Liste fehlt, tragt es doch dort ein oder schreibt mir eine Mail wenn ihr keinen Account habt.

Auf der genannten Seite findet ihr außerdem einen Link zu https://adopt-openjdk.ci.cloudbees.com worüber ihr eure Java 8 Projekte in der Cloud auf Java 8 testen könnt. Es sind auch Anleitungen für die Einrichtung von Jenkins vorhanden.

Lambda Aufgaben


Einige von euch haben bereits an zwei abendlichen Events zur Programmierung mit Lambdas und Java 8 teilgenommen. Zu der Open Spaces Konferenz JCrete vor zwei Wochen hat Ioannis Kostaras neue spannende Aufgaben entwickelt, an denen Ihr euch gerne versuchen könnt:
https://github.com/JCrete/lambda-hackday
(Anleitung zur Einrichtung von IDEs: https://github.com/AdoptOpenJDK/lambda-tutorial)

Eclipse und Java 8


Nun zu den IDEs: Während IntelliJ und Netbeans schon seit längerem weitestgehend vollständigen Support für Java 8 bieten, hinkt Eclipse noch immer hinterher.

Hintergrund ist der eigene Java Compiler ECJ den Eclipse verwendet und der komplett selber geschrieben ist. Die umfangreichen Änderungen bedeuten für das Eclipse Team einen immensen Aufwand um den Compiler auf den aktuellen Stand zu bringen.

Mittlerweile lässt sich Java 8 Code kompilieren und auch der Content Assist ist recht fortgeschritten. Offen ist noch die Typinferenz und Auflösung von überladenen Methoden (http://wiki.eclipse.org/JDT_Core/Java8). Wenn ihr Eclipse mit Java 8 ausprobieren möchtet, könnt ihr die von Tom Schindl bereitgestellte aktuelle Luna Version von gestern verwenden:
http://downloads.efxclipse.org/eclipse-java8/2013-09-13

Noch Fragen oder Anregungen? Gerne per E-Mail an mich.

Links im Überblick