Michael Kipp's Blog

Category: Lehre (page 1 of 2)

Java: Umstieg auf OpenJDK

(es gab einige Updates bezüglich Windows, Dank an Corinna List und Stefan König für ihren Input…)

Leider gab es in letzter Zeit Entwicklungen, die es erfordern, dass alle, die mit Java (und NetBeans) arbeiten (oder es unterrichten) sich überlegen müssen, ob sie nicht umsteigen auf OpenJDK und auf IntelliJ.

Die eine Entwicklung ist, dass Oracle, die Firma, die Java bislang entwickelt hat, beschlossen hat, Java ab Januar 2019 zu kommerzialisieren. Das heißt: Ab sofort (Java 8) gibt es Updates nur für Entwickler*innen, die eine Lizenz erwerben. Das ist ein drastischer Einschnitt in der Geschichte der Sprache Java. (Siehe Artikel auf Heise, Artikel in Computerwoche und Artikel auf Aspera)

Zum Glück gibt es OpenJDK, eine open-source-Variante von Java. Diese Variante wurde 2007 von der Firma Sun Microsystems herausgegeben und wird aktiv von der Community weiterentwickelt. Laut Wikipedia ist “OpenJDK [is] the official reference implementation of Java SE since version 7”.

Die zweite Entwicklung betrifft die Entwicklungsumgebung NetBeans. Oracle will NetBeans “loswerden” und zu Apache abgeben (siehe Artikel auf ZDNET und Artikel auf Heise), was mittelfristig vielleicht keine schlechte Idee ist. Aber derzeit befindet sich NetBeans in einer Übergangsphase, so dass die Installation der “richtigen” NetBeans-Version umständlich und nicht unbedingt zu empfehlen ist.

Was tun?

Aufgrund der Entwicklungen habe ich zwei Empfehlungen:

  1. auf OpenJDK umsteigen (leider muss JavaFX separat eingebunden werden)
  2. die Entwicklungsumgebung IntelliJ IDEA verwenden (die community edition CE ist kostenlos)

Zu beiden Empfehlungen möchte ich ein paar Tipps geben. IntelliJ finden Sie hier: https://www.jetbrains.com/idea

OpenJDK

OpenJDK kann man hier runterladen (derzeit Version 12) unter dem Punkt Builds: http://jdk.java.net/12

Einrichtung unter Windows

Unter Windows muss man die Datei auspacken und das resultierende Verzeichnis (z.B. jdk-12.0.1) an irgendeine Stelle schieben, z.B. nach

C:\Program Files\Java

oder auch

C:\Programme\Java

Dann haben Sie dort also ein Verzeichnis

C:\Program Files\Java\jdk-12.0.1

Jetzt müssen wir Umgebungsvariablen anpassen. Dazu öffnen Sie Systemsteuerung > System und Sicherheit > System. Dort klicken Sie in der linken Leiste auf Erweiterte Systemeinstellung. Im nächsten Fenster dann auf den Button Umgebungsvariablen… (rechts unten).

Als erstes richten Sie eine neue Umgebungsvariable ein (Button Neu… drücken). Nennen Sie sie JAVA_HOME und setzen Sie sie auf den Pfad zum JDK-Verzeichnis. In unserem Beispiel wäre das:

C:\Program Files\Java\jdk-12.0.1

Als nächstes müssen Sie die existierende Variable Path (in der Liste im unteren Teilfenster) erweitern. Markieren Sie die entsprechende Zeile und drücken Sie auf Bearbeiten… . Anschließend fügen Sie mit Neu den Pfad zum bin-Verzeichnis des JDK hinzu. Dabei beziehen Sie sich auf die Variable JAVA_HOME:

%JAVA_HOME%\bin

Fertig!

Einrichtung unter MacOS

Auf einem Mac geht es einfacher. Man muss nur die OpenJDK-Datei auspacken und das resultierende Verzeichnis an diese Stelle schieben:

 /Library/Java/JavaVirtualMachines

Fertig!

Test, ob OpenJDK gefunden wird

Auf einer Konsole können Sie mit folgender Zeile testen, ob das JDK gefunden wird.

java --version

Sie sollten etwas in dieser Art sehen:

openjdk 12.0.1 2019-04-16
OpenJDK Runtime Environment (build 12.0.1+12)
OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

OpenJDK in IntelliJ

Wenn Sie in IntelliJ ein neues Java-Projekt anlegen, können Sie unter In File > Project Structure das neue JDK angeben und zwar unter Platform Settings > SDKs. Das müssen Sie nur einmalig durchführen.

JavaFX

JavaFX ist die aktuellste GUI-Technologie von Java und hatte 2014 mit der Version JavaFX 8 endgültig die alte Swing-Technologie abgelöst. Wer JavaFX lernen möchte, kann sich in meinem Skript unter http://michaelkipp.de/java die Kapitel GUIs mit JavaFX (Teile 1-3) anschauen.

JavaFX ist nicht in OpenJDK enthalten! Also muss man JavaFX separat runterladen: https://gluonhq.com/products/javafx

Das entsprechende Verzeichnis (z.B. derzeit javafx-sdk-11.0.2) kann man dann irgendwo ablegen. Zum Beispiel auf einem Mac in eigenen Benutzerverzeichnis unter:

Library/javafx-sdk-11.0.2

JavaFX in IntelliJ

Will man in IntelliJ auch JavaFX verwenden, muss man eine einmalige Einrichtung vornehmen und dann bei jedem Projekt eine Anpassung durchführen.

Einmalige Einrichtung

In IntelliJ macht man einmalig folgendes:

  1. In den Einstellungen (Mac: Preferences, Win: File > Settings…) wählt man: Appearance & Behavior > Path Variables
  2. Dort fügt man einen neuen Pfad hinzu (Pluszeichen unten). Diesen nennt man PATH_TO_FX und setzt ihn auf den Pfad, wo man das Verzeichnis oben hingetan hat und fügt noch ein /lib hinzu. Zum Beispiel: /Users/kipp/Library/javafx-sdk-11.0.2/lib

Bei jedem neuen Projekt

Immer wenn man ein neues JavaFX-Projekt anlegt, muss man folgendes tun:

  1. In File > Project Structure unter Libraries fügt man das obige /lib Verzeichnis hinzu
  2. Bei jeder Run-Konfiguration (siehe Run -> Edit Configurations…) fügt man als VM option folgendes ein:
 --module-path ${PATH_TO_FX} --add-modules=javafx.controls,javafx.fxml

Leider ist das alles etwas umständlich, aber es besteht die Hoffnung, dass JavaFX demnächst zusammen mit OpenJDK ausgeliefert wird und dass IntelliJ die Nutzung etwas vereinfacht.

Vortrag zu meiner Lehre

Am 14.1.2016 wurde ich eingeladen, den folgenden Vortrag am Tag der Lehre an der Hochschule Augsburg zu halten. Titel ist “Digital vs. Präsenz: Beispiele aus der Informatikausbildung”. Es geht um Videos, Online-Skript, Clicker und Live-Coding…

Processing – neue Version 3

Processing ist eine Programmiersprache und -umgebung, die den Einstieg ins Prgrammieren sehr erleichtert. Die Sprache basiert auf Java.

Jetzt ist das neue Processing 3 erschienen. Dieses Update ist sehr umfangreich und bringt einige Änderungen mit sich. Wer also “alten Code” hat, sollte seine Processing 2 Version erstmal nicht löschen.

Processing-Downloadseite

Wer Processing lernen möchte, kann gern in meinem Online-Skript stöbern: Processing-Skript.

Hier noch ein informatives Video von Daniel Shiffman:

Welcome to Processing 3 from Processing Foundation on Vimeo.

Android: Material Design

End of June Google presented what will be its new design for the coming Android L-release. It is called “Material Design” and has already received very positive reactions from top designers (“Google has really stepped up its design game”). Here’s Google’s demo video:

If you want to know more look at Google’s guidelines which are nicely written and complemented with many demo videos.

Designers around the web are busily trying to apply the new design. Here’s a design study about how Instagram could look like under Google’s new design paradigm:

Programming Superpower

Here’s a nice “motivation” video for people who wondering about whether they should start learning programming or not – featuring Mark Zuckerberg, Bill Gates and others…

Interesting Facts on Teen Internet Usage

The American Pew Research Center (nonprofit) conducted some interesting studies concerning habits of Teen Internet users (“digital natives”) and of their parents.

The following slides show some surprising results:

Processing and Kinect: Resources

Java programmers can use the Kinect quite comfortably via the Processing language. On codasign there are a number of articles that’ll teach you how to do this quickly. It’s based on the OpenSimpleNI package.

The Kinect has become so popular because it can track a person in space by inferring a “skeleton” in 3D space (using a depth image). This means that the human user is not only detected in space but that his/her rough body structure is reconstructed and the system then know where certain key body parts (hands, feet, hip …) are located in space. SkeletonTracked

This can be used to react to movement in space (approaching, retreating…), body orientation (facing the system or not …), hand gestures (wave, swipe, cross …) and even body posture (leaning over, sitting …).

In the following linked-up pages, you can learn how to set up the Kinect with Processing and how to obtain skeleton information in 3D space. Gesture detection is yet another topic.

Installing OpenNi for Processing: shows you how to get started.

Using the Kinect with Processing: Overview of Kinect-related pages in codasign.

Skeleton Tracking with the Kinect: Explains how to access the skeleton information.

Getting Joint Position in 3D Space from the Kinect: This is interesting because it does not only show how to retrieve joint locations but also how to easily obtain the projection onto screen coordinates.

Reference for Simple-OpenNI and the Kinect: Some potentially interesting information about the SimpleOpenNI class.

BlueJ-Buch: 5. Auflage jetzt auf Deutsch!

Die neueste 5. Auflage des BlueJ-Buchs “Java lernen mit BlueJ” (engl. Objects First with Java) von Barnes/Kölling ist jetzt endlich auch auf Deutsch verfügbar. Es sind wurden keine dramatischen Änderungen gemacht: die Codebeispiele wurden leicht modernisiert und einige Java 7 Feature wurden eingebaut. Derzeit findet man das Buch nur direkt beim Verlag (Pearson).

bluej

Processing: How to link up the (local) Processing API reference

Processing has a nice API reference page under http://processing.org/reference.You also have this locally (i.e. on your hard drive) once you install Processing and can open it in the main menu under Help > Reference.

Processing API

Under Windows, your Processing directory is probably in your C:\Programs directory. Go there and then to processing-2.0b7 (or whatever it’s called in your case) > modes > java > reference. Open index.html.

On a Mac, you go to your Applications folder, find Processing.app, rightclick and choose “show contents”. Then go to Contents > Resources > Java > modes > java > reference. Open index.html.

Khan-Academy-Videos: Informatik / deutsche Versionen

Ich habe in einem früheren Blog-Eintrag schon kurz von der Khan-Academy berichtet. Dort wird auf ca. 3000 Videos (je 10 Min.) alles mögliche erklärt, von Bruchrechnen bis Astrophysik. Eine gigantische “Schule”, die kostenlos ist, wunderbar erklärt und so selbstbestimmtes Lernen und Entdecken weltweit ermöglicht.

Informatik/Programmieren

Im Bereich Informatik wird mit Hilfe eines interaktiven Programmierbildschirms und Audio-Begleitung das Programmieren geübt (Programmiersprache ist JavaScript mit einer Library, die dem ganzen einen Processing-Flavor gibt): Khan Academy Computer Science. Die Sprecherin ist Vi Hart und es ist alles sehr Grafikorientiert und natürlich auch humorvoll. Leider gibt es hier keine deutsche Übersetzung.

Deutsche Versionen / deutsche Untertitel

Einige der Videos gibt es auch auf Deutsch, leider nur sehr wenige und mit teils durchwachsener Qualität. Hier ist der deutsche YouTube-Kanal. Schauen Sie mal rein, wenn Sie kein Englisch können. Hier gibt es immerhin schon Themen wie Trigonometrie und Algebra. Auf den originalen Khan-Videos kann man teilweise deutsche Untertitel aktivieren. Ich übersetze derzeit einige der Statistik-Videos.

In Presse und Buch

Sehr lesenwert ist auch ein Artikel des Forbes-Magazins, das sich normalerweise nur mit Billionären und ihren Firmen beschäftigt: One Man, One Computer, 10 Million Students: How Khan Academy Is Reinventing Education.

Das Buch, in dem Firmengründer Salman Khan seine Vision der Schule der Zukunft beschreibt, ist ebenfalls kürzlich erschienen: The One World Schoolhouse. Die deutsche Übersetzung “Die Khan-Academy: Die Revolution für die Schule von morgen” ist für Februar 2013 angekündigt. Hier ein Auszug von der Amazon.de-Seite:

Salman Khans weit reichende Vision lautet: »Kostenlose, erstklassige Bildung für jedermann an jedem Ort der Welt.« Sein leidenschaftlicher Appell trifft den Kern: »Es geht nicht nur um Prüfungsergebnisse. Es geht um das Leben der Menschen. Es geht um ausgeschöpfte oder verschwendete Potenziale, um gewährte oder versagte Würde.«

(Amazon.de, 03.11.2012)

Olderposts

Copyright © 2019 Michael Kipp's Blog

Theme by Anders NorenUp ↑