Category: AngularJS

Bericht JavaLand 25./26.3.2014

Die JavaLand war eine neue Veranstaltung im Kalender der Java-Konferenzen, hat aber – soviel darf ich vorab schon mal sagen – sofort den Sprung unter die ganz Großen geschafft! Da meine Vortragseinreichung angenommen wurde, durfte ich als Speaker Teil des Ganzen sein. Hier mein kurzer Bericht – geprägt von meiner Perspektive und den Vorträgen, die ich mir angehört habe.

Anreise

Am Montag Abend erreichte ich das Phantasialand in Brühl, welches sich für die kommenden zwei Tage in JavaLand verwandeln sollte. Gespannt auf die ungewohnte Location war ich ja schon vorab und ich wurde nicht enttäuscht, als ich das dazu gehörende Hotel Matamba betrat. Man fühlte sich gleich wie direkt nach Afrika versetzt, bis ins kleinste Detail ist alles liebevoll eingerichtet.

Die Speaker waren am Abend zu einem afrikanischen Buffet eingeladen. Und was das für ein Buffet war! Von der schier endlosen Auswahl, von den exotischen Gewürzen, vom Ambiente als solchem war man fast erschlagen 😉 So gab es die Gelegenheit nette Gespräche mit anderen Speakern und Ausstellern zu führen und sich dabei einer endlosen Völlerei hinzugeben – grandios! Und noch etwas: Zebra schmeckt wirklich sehr lecker!

Tag 1

Das Frühstücksbuffet war genau so gewaltig wie am Abend zuvor – ich begann mir Sorgen um meine Linie zu machen. Nun aber hieß es endlich ab auf die Insel, betreten wir JavaLand. Der Eingang ist geprägt von einem 3- oder 4-stöckigen Karussell, dann läuft man die Gasse entlang von Hausfassaden, die den Eindruck erwecken man sei 200 Jahre zurück versetzt worden (siehe auch meine Impressionen in Form von Bildern).

Im Wintergarten – dem größten Vortragssaal, sonst wohl ein großes Theater – fand die Eröffnung statt. Trotz der mindestens 600 Sitzplätze war es gerammelt voll, ein Teil der Besucher stand an den Rändern des Saals. Hier erfuhren wir mehr über den Weg von der Idee bis zur Umsetzung der JavaLand und man konnte schon spüren, dass es wohl mehr als gelungen ist, was uns die Veranstalter zubereitet hatten.

Danach kurz einen Kaffee geschnappt und in den ersten Vortrag gewandert: Is It a Car? Is It a Computer? No, It’s a Raspberry Pi Java Carputer von Simon Ritter (Oracle Corporation). Ein spaßiger Mix aus Raspberry, JavaFX, Anbindung an das Bussystem eines Audi. Es wurde gezeigt, wie man die Fahrzeugdaten anzapfen und auswerten kann.

Dann war auch schon ich mit meinem Vortrag an der Reihe. Nach anfänglichen Problemen mit dem VGA-Kabel war alles problemlos aufgebaut, die Techniker waren wirklich fix, man musste sich um nichts weiter kümmern, schon war der Vortrag auf dem Beamer, das Mikrofon am Ohr und die Hintergrundmusik leise gestellt. Ich war überrascht und erfreut, dass sich doch recht viele Interessierte eingefunden hatten, mein Thema ist für einen Java-Entwickler ja eher ein Randgebiet.

Inspiriert vom morgendlichen Vortrag war ich heiß auf mehr Spaß mit dem Raspberry Pi und setzte mich in „Having fun“ mit Raspberry Pi, Java und Sensor-Netzwerken von Gerrit Grunwald. Der präsentierte seine selbst gebastelte Home-Vernetzung aus Messwerten wie Temperatur usw. und zahlreichen Frontends von kleinen Touchscreens über mobile Endgeräte bis hin zur Smart Watch. Machte Lust auf mehr und gab mir einige nützliche Tipps, da ich für meine Hütte Ähnliches in Planung habe.

Nun wollte ich mich aber etwas ernsthafteren Vorträgen widmen und besuchte Stefan Tilkovs (innoQ Deutschland GmbH) Architektur 201x: Neue Konzepte für die Architektur komplexer Systeme. Gekonnt gab er die richtigen Impulse für eine Entwicklung in schlanken Anwendungen („Micro Services“) und deren Kompilation zu einem großen System, das eben nicht mehr träge, monolithisch und unwartbar ist.

Zahlreiche Anregungen für meinen Projektalltag konnte ich bei Endlich sichere Webanwendungen mit Java von Dominik Schadow (BridgingIT GmbH) mitnehmen.

Im Anschluss setzte ich einen Vortrag aus und tümmelte mich im Community Bereich mit reichlich Live- und Nighthacking sowie interessanten Diskussionen herum. Man muss dazu sagen, die Pausen waren durchgängig immer nur 15 Minuten lang, es war keine Mittagspause o.Ä. vorgesehen. Das hatte den Vorteil, dass es an dem reichhaltigen Verpflegungsbuffet (welches in einer dynamisch-magischen Weise sein Sortiment je nach Tageszeit änderte) keine Warteschlangen gab und keine unnötig langen Pausen existierten. Stressig wurde es für die, die nonstop Talks besuchen wollten, aber auch das ist mit ein paar Happen und einem Kaffee zwischendurch gut machbar.

Den Schlusspunkt bildete Akka – Reaktive Applikationen einfach entwickelt von Michael Pisula (TNG Technology Consulting GmbH). Akka war für mich noch völlig neu und ist nun auf meiner Watchlist!

Abends war es dann angesagt die Attraktionen des Parks zu nutzen, Highlight war die Achterbahn Black Mamba. Leider musste ich diesen Teil sausen lassen, ich gab einem befreundeten Entwickler aus der Region den Vorzug, den ich aus einem früheren Projekt kenne.

Tag 2

50 New Features of Java EE 7 in 50 43 Minutes war der Startschuss in den zweiten Tag. Arun Gupta (Red Hat Inc.) heizte in Highspeed durch die wichtigsten Neuerungen in EE 7 – selten habe ich in einer dreiviertel Stunde soviel mitgenommen – grandios!

Danach blieb ich der EE-Schiene treu und hörte mir Apache TomEE, Java EE Web Profile and More on Tomcat von David Blevins (Tomitribe) an. Schöne Demo mit viel Live-Coding. Sein Schlusswort war ein Appell an alle Anwendungsentwickler sich an der Weiterentwicklung mit reichlich Feedback einzubringen – wir sollten ja schließlich wissen, wo der Schuh drückt.

Es folgte die Keynote von Heinz Kabutz: Threading Bugs – Some War Stories. Doch zuvor wurde Markus Eisele von Kabutz und Arun Gupta in die Riege der Java Champions aufgenommen. Unter großem Beifall wurde der Mitveranstalter für seinen unermüdlichen Einsatz in der Java Welt geadelt – Glückwunsch auch von meiner Seite! Dann also Threading Bugs, schön dargelegt mit kurzen prägnanten Beispielen und erstaunlichen Differenzen zwischen den verschiedenen Java Releases.

Michael Hüttermann schärfte den Blick auf DevOps und versuchte das gehypte Thema in die richtigen Bahnen zu lenken.

Ein weiteres persönliches Highlight war Testing the Enterprise Layers: The ABCs of Integration Testing von Andrew Rubinger (JBoss by Red Hat). Er griff sich ein paar Artikel aus seinem Buch Continuous Enterprise Development in Java heraus und zeigte modernes Integrationstesting mit Arquillian.

Mein heutiger Gang in den Community-Bereich war geprägt von einer Achterbahnfahrt via Oculus Rift und einer coolen Vorführung diverser Drohnenflüge per Gestensteuerung.

Nach TomEE am Morgen wechselte ich nun zur „Konkurrenz“: Building Modern Applications Using JBoss and OpenShift von Pete Muir (Red Hat, Inc.). Er zeigte, wie man mit JBoss Forge im Nu eine Enterprise Anwendung generiert und auf OpenShift deployed. Am meisten beeindruckte er mich, als er plötzlich ein komplettes AngularJS Frontend (CRUD) für eine zuvor generierte REST/JPA Anwendung auf Knopfdruck aus dem Hut zauberte – wow!

Der letzte Vortrag – Bytecode, Class-Loader und Class-Transformer (Bernd Müller (Hochschule Ostfalia)) – vermittelte Kenntnisse zu den tieferen Schichten der Java Programmiersprache.

Danach konnte man es noch gemütlich ausklingen lassen und schon war eine grandiose Erstauflage der JavaLand zu Ende.

Fazit

Ich bin begeistert! Die JavaLand hat es auf Anhieb geschafft eine Referenz in Sachen Entwicklerkonferenz zu werden! Hier stimmte einfach wirklich alles, vom perfekten Rahmen (Location, Verpflegung, Zeitplan, …) über hochinteressante Talks mit zahlreichen bekannten Speakern bis hin zu Community-Events, die uns alle einer Familie zugehörig fühlen lassen.

Ich werde wieder kommen und gerne auch wieder einen Vortrag dort halten. Vielen Dank an alle Beteiligten – macht weiter so!

Share

Slides zum JavaLand AngularJS Talk

Meine Slides zum Vortrag <Superheld/> können hier online betrachtet werden (klick auf Bild unten)

Die Sources findet ihr auf GitHub: https://github.com/weinbrenner/angularjs-superheld

Share

Vortrag auf der JavaLand 2014: AngularJS

Nachdem Markus Eisele mich fragte, ob ich nicht einen Vortrag zur neu geschaffenen JavaLand Konferenz einreichen möchte, sagte ich: „Ja, ich denke darüber nach“. Er: „Heute Nacht 0.00 Uhr ist der CfP zu Ende!“. So musste es etwas spontaner sein. Ich reichte also einen Vortrag zu meinem aktuellen Lieblings-Frontend-Thema ein: AngularJS.

Es soll ein einführender Vortrag werden, der einem typischen Java-Entwickler mit grundlegendem HTML/JS-Vorwissen eine Einführung in die Materie gibt.

Sehr gefreut habe ich mich, dass wenige Wochen später tatsächlich die frohe Kunde kam, mein Vortrag sei akzeptiert.

Auf die JavaLand bin ich schon sehr gespannt. Zum einen gibt es natürlich ein großes Füllhorn an überaus interessanten Vorträgen, zum anderen reizt die Konferenz mit ihrem ungewöhnlichen Veranstaltungsort, dem Phantasialand bei Köln.

So muss ich dann schwere Entscheidungen treffen, welche Vorträge ich mir noch anhören werde, oder ob ich doch lieber Achterbahn fahre 😉

Share

Aufbau einer Enterprise AngularJS Anwendung mit Yeoman in 5 Minuten

Als Java Entwickler ist man verwöhnt. Man hat für alles perfekte Tools (in erster Näherung). Ganz schnell ist ein Projekt mit Maven aufgesetzt, mit Jenkins eine CI Umgebung angeflanscht usw.

Für Webentwickler von JavaScript Anwendungen sieht es da typischerweise schon etwas anders aus. Da ich mich derzeit mit der Entwicklung von AngularJS Frontends beschäftige und die Dinge nun professioneller werden müssen, habe ich mich etwas umgesehen. Zuerst habe ich meist mit einem der Seed-Templates (z.B. angular-sprout) begonnen. Da ist zwar eine wunderbare Struktur vorgegeben, auch schon Tests uvm., aber die Flexibilität hat mir etwas gefehlt, verbunden mit der Tatsache, dass viel von dem Vorgegebenen doch wieder angepasst und geändert werden muss.

So habe ich mich umgesehen und es geht eleganter! Mit Yeoman habe ich ein Tool gefunden, das einen bei der Entwicklung perfekt begleiten kann – vom initialen Generieren einer Anwendung, über das Bauen und Testen bis hin zum Pflegen der Abhängigkeiten.

In diesem Artikel will ich beschreiben, wie man sich eine entsprechende Umgebung in 5 Minuten und 4 Schritten aufsetzen kann.

Hinweis: die ersten drei Schritte müssen nur einmal pro Entwicklungsrechner gemacht werden!

1.) Aktuelle Version von node.js und npm installieren

Auf Linux Ubuntu oder Mint sind die mitgelieferten node Pakete doch relativ alt, so dass es sich empfiehlt, aktuellere zu installieren. Eine Anleitung für alle Betriebssysteme ist hier zu finden: https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

Für meine Linux Mint Kiste sind das folgende Schritte:

sudo apt-get update
sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

2.) Yeoman installieren

Yeoman lässt sich nun via npm Paketmanager installieren (hier global für alle User):

sudo npm install -g yo

3.) Generator installieren

Yeoman benötigt sogenannte Generatoren um entsprechende Projekttemplates generieren zu können. Unter http://yeoman.io/community-generators.html findet man jede Menge davon. Für meine AngularJS Projekte habe ich mir den „Yeoman Generator for Enterprise Angular Projects“ (https://github.com/cgross/generator-cg-angular) rausgesucht. Installiert ist dieser binnen Sekunden (wieder global):

sudo npm install -g generator-cg-angular

4.) Die Anwendung selbst anlegen

Nun müssen wir Yeoman mit seinem neuen Generator nur noch die Arbeit verrichten lassen, eine Anwendung zu generieren:

mkdir NewAngularApp
cd NewAngularApp
yo cg-angular

Voila! Das wars auch schon. Jetzt kann man loslegen mit der Entwicklung der Anwendung. Zur Seite stehen einem dazu ein paar Grunt-Tasks zum Bauen und Testen des Projekts, sowie verschiedene Yeoman Subgeneratoren zum Anlegen von Direktiven, Partials, Services und Filtern. Die Dokumentation und weitere Vorzüge sind in der README.md des Generators nachzulesen.

Share