Category: Javascript

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

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

MATHEMA Campus 2013

Der diesjährige MATHEMA Campus fand am 19. und 20. April am bewährten Ort, dem Novotel Erlangen, statt. Das Programm war wieder vollgepackt mit einer Fülle aus Vorträgen, gegliedert in vier Tracks: Sprachen, Mobil/Web, Qualität und Verschiedenes. Eine der schönen Besonderheiten am Campus ist, dass es nicht nur „tierisch“ ernste IT-Vorträge gibt, sondern auch solche zum „ganzen Rest“; so konnte man dieses Jahr z.B. etwas zur Faszination des Whiskys erfahren oder etwas über die Vorzüge des Barfuß-Laufens.

Hier möchte ich kurz über die von mir besuchten Vorträge berichten.

Tag 1

Kaffeesatz

Die Begrüßung leitete wieder Michael Wiedeking, der diesmal einen Rückblick zu 10 Jahren Campus und parallell dazu 10 Jahre (vermeintliche) Highlights der IT gab. Erstaunlich, wie viele Dinge man schon wieder vergessen hat oder vor fünf Jahren noch als wichtig eingestuft, die nun doch wieder in der Versenkung verschwunden sind …

We’re all in

Werner Eberling und Torsten Zahn berichteten von Ihrem internationalen Großprojekt bei Adidas. Es ging um den flexiblen Produktkonfigurator für individuell gefertigte Produkte, der sich in die gesamte Adidas IT-Infrastruktur integrieren musste. Neben den „üblichen“ technischen Herausforderungen gab es interessante Erkenntnisse zum Offshoring über mehrere Firmen und Länder hinweg zu hören.

Freches Früchtchen

Ralph Henze gab einen schönen Überblick über Google Guava, die „Core-Bibliothek“ für Java-Projekte. Ich hatte selbst schon einige Teile davon in den letzten Jahren genutzt (vor allem das Collections Zeug), dennoch waren für mich ein paar neue Dinge dabei. Beispielsweise das Optional<T> zur Vermeidung von null-Werten kann bei konsequenter Nutzung sehr zur Verbesserung der Codequalität beitragen. Aber auch die angebotenen Caches sind eine starke Sache – jeder, der sich sagt: „da mach ich mir mal schnell nen Cache mit einer HashMap“, sollte unbedingt in Erwägung ziehen, die Cache-Klassen aus Guava zu verwenden!

Ausgeswingt

Im kommenden Java wird Swing als @Deprecated markiert und die Verwendung von JavaFX empfohlen. Sascha Groß gab einen praxisnahen Überblick zum aktuellen Stand bei JavaFX 2.0. Nachdem ich bei den älteren Versionen von JavaFX beschlossen hatte, dass es nicht lohnt, dieses Thema weiter zu verfolgen, war ich von der Entwicklung doch einigermaßen positiv überrascht! JavaFX 2.0 kommt recht solide daher und einem gestandenen Swing-Entwickler sollte der Umstieg nicht schwer fallen. Auch das Tooling und Showcases sind schon auf einem recht guten Stand, so dass es sicher Spaß machen kann, seinen GUI-Client mit dem Framework zu entwickeln.

I, Robot

Für mich und meinen Sohn Nico (8) (nochmals danke an Mathema für die „Sondereinladung“) war dies ein ganz besonderes Highlight: Jan Leßner erzählte über seine Erfahrungen mit Kindern in Sachen Programmieren lernen. Er leitet eine AG für Schüler der 5. bis 7. Klasse an einem Paderborner Gymnasium. Zunächst lernen die Kinder die nötigen Denkstrukturen mit Hilfe der Software CeeBot Teen. Hier programmieren die Schüler Autos, die über den Bildschirm in virtuellen Räumen fahren und Aufgaben lösen (und ja, die können sogar schießen 😉 )

Mit diesem Vorwissen geht es dann an die Programmierung von LEGO Mindstorms Robotern mit LEJOS, einer Java-basierten Umgebung unter Verwendung von Eclipse. Nach Jans Erfahrung lernen die Jungs und Mädels(!) sehr schnell den Umgang mit Eclipse, insb. Autovervollständigung, Format, Organize Imports und so weiter.

Nach dem Abendessen konnten wir das Ganze dann in der Praxis ausprobieren: wir sollten einen fahrenden Roboter mit Ultraschall- und Drucksensor ausgestattet, so programmieren, dass er an einer Wand entlang fahren kann und Hindernisse dabei umfährt. Die 75min reichten gerade so, dass die meisten Teams eine in erster Näherung funktionierende Implementierung hatten. Unser Bot war sogar der erste, der den Parcour erfolgreich bewältigte, mein Junior war sehr stolz 🙂

Best of Highlights

Der traditionelle Filmvortrag am späten Abend zeigte wieder Sensationen der Computergrafik in Filmen und allerlei lustige Ausschnitte.

Tag 2

(conj known-languages :closure)

Eine sehr schöne Einführung in die funktionale Programmiersprache Clojure lieferte uns David Tanzer. Er hatte keine Folien dabei, stattdessen wurde fleissig Live-gecoded – ein erfrischender Start in den zweiten Tag des Campus. David verwendete den Editor Light Table, welcher die Ausdrücke sofort während des Tippens sehr schön dargestellt auswertet.

Make-Up fürs Web

Da die Session zu Raspberry Pi leider ausfallen musste, ging ich in den CSS3 Vortrag von Rüdiger Keller. Für mich gab es hier nichts wirklich Neues, aber die Zahl der Fragen aus dem Publikum zeigte mir, wie wichtig so ein Vortrag aktuell ist.

Mein Name ist Script, JavaScript!

Von diesem Vortrag war ich leicht enttäuscht, da mir das Abstract etwas mehr versprochen hatte. Frank Goraus präsentierte eine solide Einführung in die Grundlagen von JavaScript, aber eben nichts darüber hinaus. Meiner Meinung nach dürfte für jeden, der schon ein bisschen mit der Sprache zu tun hatte, nichts neues dabei gewesen sein.

Real existent

Zum Abschluß gabs nochmal ein Highlight: Michael Wiedeking zeigte den aktuellen Stand zu seiner perfekten Programmiersprache ALx (Arbeitstitel, der wohl nicht der finale Name werden wird). Mittlerweile gibt es tatsächlich einen Compiler (der leider noch nicht vollständig funktioniert) und ein Eclipse-Plugin, das es ermöglicht, die nötigen mathematischen Zeichen einzugeben. Allerdings bereitet die Auswertung von Ausdrücken (Reihenfolge der Operatoren) „MiWi“ doch noch größere Probleme …. man darf gespannt bleiben!

Fazit

Der Campus war wieder mal eine Top-Veranstaltung, an die manch größere Konferenz nicht herankommt. Vielleicht ist es ja gerade die herzliche Atmosphäre und der eher kleine Kreis, der die Magie dieser zwei Tage ausmacht. Vielen Dank an das gesamte MATHEMA-Team und ich freue mich schon aufs nächste Jahr!

Share