Vortrag am 15.4. – Node.js und Evented I/O Alternativen auf der JVM

Node.js (oder mittlerweile auch I/O.js) ist als „Evented I/O Runtime“ weit verbreitet und vielseitig im Einsatz. Aber wie kann die neue Node.js Welt in vorhanden Enterprise Architekturen eingebunden werden? Es gibt ausgereifte Monitoring Prozesse für JVM Runtime Umgebungen und ein nicht unerheblicher Anteil von Fachlogik ist in Java-Bibliotheken implementiert. Zusätzlich ist die Ausführung von JavaScript Code in Node.js nur Single-Threaded. Lohnt sich das dann überhaupt?
Die nahtlose Integration und (nahezu vollständige) Kompatibilität zu Node.js Anwendungen in JVM Umgebungen verspricht Nodyn von RedHat, hierbei werden aber JVM-native JavaScript Engines wie Nashorn bzw. DynJS verwendet. Zusätzlich spielen hier auch Netty und Vert.x eine Rolle.
Diese Lösung ermöglicht es nicht nur JavaScript Code asynchron und nicht-blockierend zu verwenden, sondern diesen auch in verteilten Umgebungen mit Hilfe des Vert.x Eventbusses ablaufen zu lassen.
Mit Hilfe meines „Beer-as-a-Service“ zeige ich Möglichkeiten, wie mittlerweile auch im Unternehmensumfeld JavaScript serverseitig eingesetzt werden kann.

Über Niko Köbler

Niko Köbler ist freiberuflicher Software-Architekt, Developer & Trainer für Java & JavaScript (Enterprise) Lösungen, Integrationen und Webdevelopment. Er ist Co-Lead der JUG Darmstadt, schreibt Artikel für Fachmagazine und ist regelmäßig als Sprecher auf internationalen Fachkonferenzen anzutreffen. Niko twittert unter @dasniko
 

Veranstaltungen Java Usergroup Münster 2015

Auf dieser Seite findet sich eine kurze Übersicht zu allen Vorträgen die wir von der Java Usergroup Münster für 2015 geplant haben.
Zusätzlich haben wir einen regelmäßigen Stammtisch, den wir über die Mailingliste, den Blog hier und den Google Kalender ankündigen.
Alle Termine finden sich auch im Google Calendar der JUG Münster. Updates und Infos gibt es über Twitter (@JUG_MS) und die Mailing-Liste der JUG Münster.

Die Vorträge finden falls nicht anders angegeben bei der LVM Versicherung statt. Einlass ist – falls nicht anders angegeben – jeweils ab 18:00 Uhr und der Vortrag startet im Regelfall gegen 18:30 Uhr.
Alle Termine sind vorläufig und können sich noch kurzfristig ändern – um Anmeldung über Xing bzw. Verifikation der Veranstaltung auf unserer Homepage wird gebeten. (Die Xing Anmeldung nutzen wir zur Planung der Teilnehmerzahl / Catering. Über die Xing Gruppe der Java Usergroup Münster gibt es zu den einzelnen Vorträgen eine Einladung für eine komfortable Anmeldung.)

Anfahrt zur LVM Versicherung: Anfahrtbeschreibung – mit öffentlichen Verkehrsmitteln per Bus (Linie 7,15,16, Haltestelle Kolde-Ring) am besten zu erreichen. (Google Transit / Google Maps / Bings Maps ist sicher hilfreich).

Bei Vorträgen in 3.xx.xx Räumen bitte beim LVM Hauptgebäude am Empfang melden, die 5.xx.xx Räume sind im Neubau-Tower, bei den 6.xx.xx Raeumen bitte am Gebäude in der Sperrlichstrasse am Empfange melden, da wir keine separate Ausschilderung haben.

Übersicht Vorträge

  • 18.2. Hendrik Ebbers, JavaFX Enterprise, 3.01.08 Konferenzraum II Links
  • 03.3. Stefan Zoerner Architektur Speed-Dating / Ersatz fuer Januar Termin – 3.01.08 Konferenzraum II Links
  • 18.3. Thomas Kruse, Modern Java Webdevelopment, 3.01.08 Konferenzraum II Links
  • 15.4. Niko Koebler, Projekt Avatar, 5.02.20 LVM-Akademie
  • 13.5. Tom Eugelink, JFXtras, 3.01.08 Konferenzraum II Links
  • 17.6. Nils Wloka, Clojure, 5.02.20 LVM-Akademie
  • 19.8. Tobias Flohre, Dennis Schulte, Spring Boot Microservice Praxisbericht, 3.01.08 Konferenzraum II Links
  • 16.9. Christoph Engelbert, Hazelcast, 5.02.20 LVM-Akademie
  • 21.10. Markus Eisele, Java Enterprise Security, 3.01.08 Konferenzraum II Links
  • 4.11. Florian Hopf, Elasticsearch, 3.01.08 Konferenzraum II Links
  • 2.12. Rene Jahrn, JVx Application Framework, 3.01.08 Konferenzraum II Links
 

Vortrag zu Graphen, noSQL und BigData mit Neo4J bei der JUG Münster: 3. September 2013

Die Java Usergroup Münster freut sich auch im September einen spannenden Vortrag anbieten zu können. Diesmal beehrt uns einer der Gründer der populären neo4j Graphen Datenbank, Peter Neubauer.
Willkommen sind – wie immer – alle an Software Entwicklung (oder Datenstrukturen) interessierte Personen. Speziell Neo4J ist nicht nur für Java Entwickler interessant, sondern wird auch im Ruby/Rails oder PHP Bereich professionell eingesetzt.
Infos zum Talk:

Neo4j und die wunderbare Welt der Graphen – eine Einführung

NOSQL, Big Data und Graphen sind zur Zeit in aller Munde – hier kommt etwas zum Thema!

Wir beginnen mit einer Einführung in die Graphen-Datenbank Neo4j, die Abfragesprache Cypher und Beispiele für den Zugriff von Java und REST.

Im zweiten Teil des Abends werden wir ein spezialisierteres Thema aufgreifen, z.B. Spring Data Neo4j, Grails, Nutzung von Neo4j-Server, das auf Neoj4 basierende Structr-CMS, Beispiel-Anwendungen in Java, Neo4j-Spatial, Empfehlungs- und andere Graphenalgorithmen, Neo4j Internals und vieles mehr vorstellen, oder ganz einfach Fragen beantworten, je nach eurem Interesse!

Infos zum Speaker:
Peter ist einer der Gründer der populären Neo4j Graphdatenbank und anderer Open Source Projekte wie OPS4J. Er liebt es, neue Verbindungen zwischen Menschen, Projekten und Technologien zu schaffen.

Zur Zeit ist Peter VP Community bei Neo Technology und Mentor für Coderdojo Malmö (Programmieren für Kinder) und Startup Bootcamp in Kopenhagen und Berlin.

Für ein Bier ist Peter immer gern für ein Gespräch zu haben 🙂

Infos zum Termin:
Am 3. September 2013, Einlass ab 18:00 Uhr, Beginn des Vortrags ca. 18:30 (je nachdem wie schnell die Brötchen gegessen sind…).
Ort: LVM Versicherung, Kolde Ring 21 in Münster. Wer sich nicht auskennt, einfach am Empfang melden, die freundlichen Damen und Herren wissen Bescheid.

 

Stammtisch: Java und mehr am 25.7.2012

Der nächste Java Stammtisch der Java Usergroup Münster findet am 25.07.2012 im Cuba Nova ab 18:30 Uhr statt. Eingeladen sind (wie immer alle) an Java, Softwareentwicklung, HTML5, Android, Webentwicklung und Projektmanagement interessierten Personen.

Für Teilnehmer am Java Stammtisch gibt es einen Sonderpreis für Weizen bzw. alkoholfreies Weizen!

Das Cuba Nova befindet sich in der Achtermannstrasse in der Nähe vom Hauptbahnhof. (4 Minuten zu Fuß, wenn man langsam geht.)

Parkmöglichkeiten und Anfahrt zum JUG Münster Treff: Parkhaus Engelenschanze ist am nächsten gelegen. Ansonsten empfehlen wir die Anreise mit dem Rad oder öffentlichen Verkehrsmitteln – insbesondere für Weizen-Fans. (Google Maps Link)

 

Compiling OpenJDK 7 with Ubuntu 12.04 64bit

When Sun Microsystems was still the head of Java, the wise decision to OpenSource it was made. (Thank you, whoever was behind it…) OpenJDK as of today can be built without any binary plugs, so it can be considered as really OpenSource and free. To exercise the liberty of building your own, runnable Java it takes amazingly low effort – that is the topic if this short blog entry.

While consumers and corporate IT seems to prefer Windows as primary operating system, developers tend to choose a unixoid OS: Linux (Debian, Arch, Ubuntu), Apple OSX or OpenSolaris. OpenSolaris lacks a current open source desktop distribution Ubuntu was chosen for this example. To add some complexity Canonical went with a multi-arch setup since Ubuntu 11.04 which looks like being extended/change on Ubuntu 12.04. (This is described on the MultiArch wiki page. We will come back to the problems caused by the transition later in the article.)

In order to retrieve the OpenJDK sources mercurial has to be installed:

sudo apt-get install mercurial

OpenJDK contains many sub-projects, in order to be able to manage the sources separately, the hgforest extension to mercurial is used. Installing it is a little more effort:

  • Clone the hgforest sources: hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ "$HOME/hgforest"
  • Add the hgforest extension to your mercurial setup by editing ~/.hgrcand adding
    [extensions]
    forest=~/hgforest/forest.py
  • Please adjust the path accordingly, if you did not clone it to your home directory

As a last preparational step build time library dependencies have to be installed:

sudo apt-get install gawk g++ libcups2-dev libasound2-dev libfreetype6-dev libx11-dev libxt-dev libxext-dev libxrender-dev libxtst-dev libfontconfig1-dev

Now it is time to retrieve the OpenJDK7 sources – use the „7u“ repository in order to retrieve the latest update release sources:

hg fclone http://hg.openjdk.java.net/jdk7u/jdk7u openjdk7u

The time depends on your internet connection of course, but it should not take longer than a couple of minutes with a consumer class broadband connection. (Calculate about 1GB of hard disc space for the sources and build output.)

Please make sure that you have a Java compiler installed, it is needed during building OpenJDK. (Of course you can use OpenJDK itself, once it has beend build.) For this tutorial a current Java JDK has been placed at /usr/lib/jvm/jdk1.7.0

After preparation is finished we can build OpenJDK on Ubuntu:

cd openjdk7u
unset JAVA_HOME
export LANG=C
export ALT_BOOTDIR="/usr/lib/jvm/jdk1.7.0"
export ALLOW_DOWNLOADS=true
export EXTRA_LIBS=/usr/lib/x86_64-linux-gnu/libasound.so.2
make sanity && time make

The "ALLOW_DOWNLOADS" parameter is used by the build system to retrieve additional libraries which are required for building and may be missing in the system wide installation. Note the "EXTRA_LIBS" environment entry: This is due to building on a 64 bit Ubuntu using the MultiArch setup. The OpenJDK build system itself does not detect where the alsa sound libraries are installed on this particular setup.

After a while (about 20 minutes, depending on your machine), you should see this:

#-- Build times ----------
Target all_product_build
Start 2012-05-12 11:40:32
End 2012-05-12 12:04:01
00:01:27 corba
00:10:15 hotspot
00:00:18 jaxp
00:00:27 jaxws
00:10:30 jdk
00:00:32 langtools
00:23:29 TOTAL
-------------------------
real 23m30.532s
user 32m10.625s
sys 2m24.617s

The OpenJDK build is created in build/linux-amd64 – you can run your Java from there:

./build/linux-amd64/bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-tkruse_2012_05_11_20_23-b00)
OpenJDK 64-Bit Server VM (build 23.0-b21, mixed mode)

Bonus: OpenJDK 8 is building accordingly. Just substitute the mercurial clone path http://hg.openjdk.java.net/jdk7u/jdk7u/  with http://hg.openjdk.java.net/jdk8/jdk8/

The build result should look like this:
-- Build times ----------
Target all_product_build
Start 2012-05-12 11:10:35
End   2012-05-12 11:35:00
00:01:30 corba
00:10:30 hotspot
00:00:19 jaxp
00:00:24 jaxws
00:11:08 jdk
00:00:34 langtools
00:24:25 TOTAL
-------------------------

And you can run your own Java 8 now:
./build/linux-amd64/bin/java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-tkruse_2012_05_12_11_10-b00)
OpenJDK 64-Bit Server VM (build 24.0-b09, mixed mode)

As a side note: If you are using Java Native Access (JNA) on an Ubuntu 12.04 64bit machine and you have problems with libraries not being detected properly, update to JNA 3.4, fixes have been incorporate there.

 

Vortrag „node.js“ mit Stefan Tilkov am 22.2.2012

Am 22 Feb 2012 haben wir Stefan Tilkov als Speaker zum Thema „node.js“ bei uns.

Node.js ist ein Framework zur Umsetzung von Netzwerkapplikationen in JavaScript, dessen Unterstützung für Funktionen höherer Ordnung perfekt zu einem Programmiermodell passt, das Non-blocking I/O in den Mittelpunkt stellt. In dieser Session wird Node.js und das umgebende Ökosystem vorgestellt und gezeigt, wie sich auf dieser Basis hochperformante Clients und Server implementieren lassen.

Vortragender: Stefan Tilkov

Stefan Tilkov ist Geschäftsführer der innoQ Deutschland GmbH und beschäftigt sich seit Anfang der 90er Jahre mit Architekturen für starkverteilte, große Systeme und Anwendungslandschaften. Seine technologischen Schwerpunkte haben sich im Laufe der Zeit von C/C++ und DCE, C++/CORBA, Java/CORBA über J2EE, MDA und Web Services hin zu SOA, REST und Ruby verschoben.

Bitte meldet Euch unter https://www.xing.com/events/node-js-einfuhrung-865138 an, damit wir fuer den Event die Anzahl der Teilnehmer planen koennen.

Die viadee unternehmensberatung GmbH unterstuetzt uns freundlicherweise mit Raeumlichkeiten und Verpflegung. Der Veranstaltungsort ist daher:

viadee Unternehmensberatung GmbH
Anton-Bruchausen-Straße 8
48147 Münster

Einlass ist um 18 Uhr.

Bitte gebt die Infos auch an Kollegen und Freunde weiter!

 

Veranstaltungen 2012

Kurzübersicht über alle Vorträge, welche 2012 bei der Java Usergroup Münster angeboten werden. Zusätzlich haben wir einen regelmäßigen Stammtisch, den wir über die Mailingliste und den Blog hier ankündigen. Alle Termine finden sich auch im Google Calendar der JUG Münster. Updates und Infos gibt es über die Mailing-Liste der JUG Münster.

Die Vorträge finden falls nicht anders angegeben bei der Viadee Unternehmensberatung statt. Einlass ist jeweils ab 18:00 Uhr und der Vortrag startet im Regelfall um 18:30 Uhr. Alle Termine sind vorläufig und können sich noch kurzfristig ändern – um Anmeldung über Xing bzw. Verifikation auf unserer Homepage wird gebeten.

NOVEMBER
Termin: noch nicht sicher – 14. November
Thema: „DevOps/jRuby“
Dozent: Andreas Simon, Michael Johann

DEZEMBER
Termin: 12.12.2012
Thema: „CDI 1.1“
Dozent: Lars Röwekamp

weiterlesen

 

Java7 Launch Event

Es ist geschafft, Java 7 wurde offiziell am 07.07.2011 von Oracle vorgestellt. Aus diesem Grund möchten wir zusammen mit/für Euch einen Launch Event veranstalten. Es wird Informationen über die neuen Features in Java7 geben, sowie hoffentlich viele anregende Diskussionen über alle Java relevanten Dinge.

Auch Oracle hat sich großzügig gezeigt und wird uns mit T-Shirts sponsoren.

Hier noch ein paar Informationen über den Event:

Ort: Produktivhaus Münster (CoWorking Space)

Weseler Straße 253a

48151 Münster

Datum: 22.07.2011

Uhrzeit: ab 18 Uhr

Wir würden Euch bitten sich für den Event via Xing anzumelden, den entsprechende Link findet Ihr hier.

Wer die Demos selbst ausprobieren moechte, findet hier das Archiv: java7-demo

 

Java Testing best practice: Projekt Organisation

Im folgenden wird beschrieben, wie man sein Projekt so strukturieren kann, dass auf der einen Seite das Testen erleichtert wird, auf der anderen Seite die Tests vom produktiven Java Quellcode separiert werden. Das erleichtert zum Beispiel die Paketierung zur Auslieferung an Kunden, die lediglich den produktiven Quellcode erhalten sollen.

Bei einigen Entwicklungsumgebungen, wie z.B. Netbeans, ist bereits bei einem leeren Java Projekt eine Separierung von Test Quellcode und Java Quellcode vorgesehen: Es gibt einen Ordner für „Test Packages“ und einen für „Source Packages“. Im Dateisystem werden diese auf die Ordner „src“ und „test“ entsprechend abgebildet. Bei der Tastenausführung werden aus beiden Verzeichnissen die Quellen übersetzt und die Ergebnisse zusammen geführt. Bei dem von Netbeans standardmäßig erstellten Buildfile kann man auch von der Kommandozeile mittels „ant test“ die Tests ausführen, bei „ant jar“ wird eine JAR Datei (im „dist“ Verzeichnis) erstellt, die lediglich den produktiven Code enthält. weiterlesen