Noch mehr JavaOne: Applets are back!

Im letzten Eintrag habe ich bereits von den Videos zur JavaOne 2008 berichtet. Hier ist ein weiteres:

Der interessante Teil in Bezug auf JavaFX und RIAs beginnt bei ca. 24:30 Minuten. Hier wird das neue Plugin-Konzept der Java Runtime vorgestellt. Die JRE soll modularisiert werden um die Downloadgröße zu verringern und eine schnellere Installation zu ermöglichen. Über die Sinnhaftigkeit dieses Ziels kann man streiten. Wie werden fehlende Plugins in der JRE nachinstalliert? Geschieht dies für den Nutzer in einem transparenten Weg? Das müßte geklärt werden, um diese Neuerung zu beurteilen…

Was hingegen sehr interessant ist, ist die Neuerungen rund um Applets. Wie wahrscheinlich jeder weiß, sind Applets meist kleinere Java Applikationen, die in eine Webseite eingebunden werden. Bislang waren diese relativ beschränkt, was grafische Aufmachung, Multimediainhalte usw. anbelangt. Durch die neue JRE und JavaFX soll sich dies grundlegend ändern. Anscheinend wird JavaFX eine echte Adobe Flash / Flex Alternative. EDIT: Das Hauptargument gegnüber der Konkurrenz dürfte allerdings das Folgende sein: Sun will mit JavaFX Applets und Applitkationen sowohl auf den Desktop, als auch auf mobilen Endgeräten verfügbar machen. Hierbei sollen keine Änderungen am Code, Neukompilieren usw. nötig sein. Ob das realistisch ist?

Was mich besonders beeindruckt hat: Applets können per Drag & Drop aus der Webseite auf den Desktop gezogen werden. Sie laufen dann in einem eigenen Fenster (oder wie in der Demo ohne Rahmen). Der Entwickler kann das Verhalten spezifizieren, wie sich das Applet verhalten soll, wenn beispielsweise der Browser geschlossen wird. Soll es weiterlaufen oder ebenfalls beendet werden? Außerdem ist es möglich, dass das Applet auf Wunsch - ohne den Browser zu öffnen - gestartet werden kann. Hierzu wird ein Shortcut auf dem Desktop angelegt. Ist dies etwa eine neue Möglichkeit Applikationen auszurollen? Mir fallen beim nachdenken schon einige mögliche Anwendungsfälle ein… Man darf gespannt sein!

Posted by Sebastian on August 22nd, 2008 No Comments

JavaFX Testdrive und Pseudo-Tutorial :-)

Rich Internet Applications (RIAs) sind (ursprünglich) Webapplikationen, die aber Benutzeroberflächen, Look & Feel und Funktionalitäten ähnlich einer Desktop-Applikation bieten. Stichworte sind kein neuerliches Laden einer Seite, wenn sich die Inhalte ändern, Drag & Drop, Animation usw.

Sun springt mit JavaFX auch auf diesen Zug auf. Ende Juli 2008 wurde eine erste Preview SDK auf der Produktseite veröffentlicht. Mit JavaFX möchte Sun eine komplette Produktlinie zur Verfügung stellen, um RIAs zu entwickeln. Hierzu gehören sowohl Tools zur Programmierung bzw. zum Skripten (Netbeans IDE), als auch Werkzeuge zur Content-Erstellung (Project Nile).

Einer der wichtigsten Bestandteile der Produktlinie ist JavaFX Script. Diese Skriptsprache dient der Definition des Aussehens und Verhaltens einer Benutzeroberfläche. JavaFX Script ist damit vergleichbar zu ActionScript, wie es in Adobe Flash / Flex / Air Verwendung findet. Zunächst stellt sich die Frage, warum man überhaupt eine neue Skriptsprache braucht. Schließlich wurde beispielsweise mit Groovy eine eingefügt. Einer der Hauptgründe ist wohl, dass es dem Benutzer möglichst einfach gemacht werden soll, dynamische Benutzeroberflächen zu definieren.

Dann wollen wir mal schauen, ob das Ganze was taugt :-)


JavaFX Preview SDK und Netbeans herunterladen

Netterweise gibt es von Sun ein Paket, dass JavaFX und die Entwicklungsumgebung Netbeans bündelt. Einfach herunterladen und installieren. Zurzeit gibt es dieses Paket für Windows und Mac OS X.

Neues JavaFX Projekt anlegen

Nachdem Netbeans gestartet wurde, legt man ein neues Projekt über “File > New Project” an. Als Vorlage wählt man “JavaFX Script Application” in der Kategorie “JavaFX”. Noch schnell einen Projektnamen (z.B. TestdriveJavaFX) und schon geht’s ans Eingemachte. Wir erhalten nun ein leeres Projekt.

Leeres JavaFX Projekt

Leeres JavaFX Projekt

Weiter geht’s

Im Projekt wurde bereits eine Datei “Main.fx” angelegt. Dies ist das JavaFX Script. Zurzeit sollte die Datei ungefähr so aussehen:

/*
 * Main.fx
 *
 * Created on 21.08.2008, 17:14:46
 */
 
package testdrivejavafx;
 
import javafx.application.Frame;
import javafx.application.Stage;
import javafx.scene.text.Text;
import javafx.scene.Font;
import javafx.scene.FontStyle;
 
/**
 * @author Sebastian
 */
 
// place your code here

Auf der rechten Seite des Netbeans Fenster findet sich die Palette. Hier können visuelle Elemente per Drag & Drop dem Skript hinzugefügt werden. Zunächst benötigen wir ein Frame aus dem Bereich “Applications” der Palette. Dies definiert ein Fenster, in dem später die Inhalte der Applikation angezeigt werden. Durch ziehen des Frames in das Code-Fenster unter //place your code here wird das entsprechende Code-Segment eingefügt. Das Ganze sollte jetz so aussehen:

/*
 * Main.fx
 *
 * Created on 21.08.2008, 17:14:46
 */
 
package testdrivejavafx;
 
import javafx.application.Frame;
import javafx.application.Stage;
import javafx.scene.text.Text;
import javafx.scene.Font;
import javafx.scene.FontStyle;
 
/**
 * @author Sebastian
 */
 
// place your code here
Frame {
    title: "MyApplication"
    width: 200
    height: 200
    closeAction: function() {
        java.lang.System.exit( 0 );
    }
    visible: true
 
    stage: Stage {
        content: []
    }
}

Die Werte nach title, width und height beschreiben natürlich die Attribute Titel, Breite und Höhe des Fensters.

Ein Klick auf den Run-Button genügt zum Starten der Applikation. Ohne eine Zeile Code selbst zu schreiben, wurde ein Fenster geöffnet. Wer Swing kennt weiß, dass das ziemlich schnell ging für Java ;-)

Ein Fenster… und jetzt?

Jetzt könnte man anfangen, das Fenster mit Inhalt zu füllen. Versucht doch mal einige Elemente in die eckigen Klammern von content: [] aus der Palette zu ziehen. Auf diese Weise können sehr schnell Texte und einfache geometrische Formen in das Fenster plaziert werden. Experimentiert :-)

Das ist natürlich noch ziemlich wenig. Interessant wird es erst, wenn es in den Bereich Animation und die Verzahnung mit regulären Java Code geht. Das hebe ich mir aber für später auf (muss das erstmal selbst lernen)…

Wie… das war’s schon?!

Na ja, so ziemlich. Wer sich Appetit holen will, dem empfehle ich das folgende Video von der diesjährigen JavaOne Konferenz. Es werden einige interessante JavaFX Demos gezeigt.

Weitere Videos zu JavaFX finden sich auf der entsprechenden Konferenzseite.

So long…

Posted by Sebastian on August 21st, 2008 No Comments

Textdateien mit Java

Zurzeit programmiere ich wieder viel in Java. Ein Problem das man immer mal wieder hat: Textdateien einlesen. Erstaunlicherweise kann man dabei wahnsinnig viele unterschiedliche Methoden verwenden. Die meisten sind schlecht, unschön und sehr, sehr langsam…

Ein modifiziertes Beispiel aus den Weiten des Internets, das zwar eine Textdatei einliest, sich aber dabei ziemlich viel Zeit lässt:

/**
 * Load a text file in a string.
 * @param file text file
 * @return string containing the text
 * @throws IOException
 */
public static String loadTextFile(File file) throws IOException {
        BufferedReader in = new BufferedReader(new FileReader(file));
        String result = "";
        boolean linesLeft = true;
        while (linesLeft) {
           String str = in.readLine();
           if (str != null) {
        	   result += str + "\n";
           }
           else {
        	   linesLeft = false;
           }
        }
        in.close();
        return result;
}

Da ich öfters Textdateien einlesen muss, habe ich mir eine kleine Klasse zu diesem Thema geschrieben. Das Einlesen geht wesentlich schneller als im oberen Beispiel. Ich schätze, dies ist so ziemlich das Maximum an Performance, was man mit relativ geringen Aufwand aus Java kitzeln kann. Nebenbei bemerkt ist die Methode auch wesentlich kompakter und lesbarer!

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
 
/**
 * Utility class for loading and saving text files.
 */
public class TextFileUtilities {
 
    /**
     * Write a string to a file.
     *
     * @param text text to save
     * @param file file to save text to
     * @throws IOException
     */
    public static void saveTextFile(String text, File file) throws IOException {
      FileWriter fileWriter = new FileWriter(file);
      fileWriter.write(text);
      fileWriter.flush();
      fileWriter.close();
    }
 
    /**
     * Read the content of a text file.
     *
     * @param file text file
     * @return content of text file
     * @throws IOException
     */
     public static String loadTextFile(File file) throws IOException {
       BufferedReader reader = new BufferedReader( new FileReader(file) );
       char[] chars = new char[ (int)file.length() ];
       reader.read(chars);
       reader.close();
       return new String(chars);
     }
}

Posted by Sebastian on August 13th, 2008 No Comments

Achmed the dead terrorist

Einfach nur super…

Posted by Sebastian on April 3rd, 2008 No Comments

Firlefox?!

Nachdem sich mein guter Freund mk sich über die “Featuritis” in Form von Extensions bei Firefox (zu Recht) beschwert hat, hier mal ein wirklich nützliches Werkzeug (gefunden bei bildungstechnologie.net):

Die Literaturverwaltung Zotero!
Zotero erlaubt es Literaturquellen zu sammeln und zu verwalten. Es lassen sich auch leicht Literaturlisten und Zitatangaben aus dieser Datenbank erstellen. Außerdem stehen Notizfunktionen zur Verfügung. Da das ganze als Extension in Firefox integriert ist, lassen sich Literaturquellen direkt aus Webseiten erstellen. Das Buch bei Amazon gefunden? Kein Problem. Ein Klick genügt und die kompletten Angaben, wie Autor, Titel, Verlag oder ISBN landen zur späteren Verwendung in der Datenbank. Für einen kleinen Überblick gibt es eine schöne Tour!

Posted by Sebastian on October 31st, 2007 No Comments

Urban Priol

Urban Priol ist mit Sicherheit einer besten deutschen Kabarettisten und steht einem Dieter Hildebrandt in nichts nach. Schon allein Aussagen wie “Der Franke ist der Kurde Bayerns” sind ihr Geld wert und die Geschwindigkeit in der er zielsicher seine Pointen platziert ist einmalig.
Wie ich ja bereits geschrieben habe, finden sich in der ZDF Mediathek alle Sendung vom ZDF. So auch einige von Urban Priol, wie sein aktuelles Programm “Tür zu!”… Ansehen und genießen.

328

Posted by Sebastian on September 19th, 2007 No Comments

ZDF Mediathek

Ich schaue gerade “Abenteuer Wissen” auf der ZDF Mediathek an. Diese wurde zum Beginn der IFA komplett überarbeitet. Sehr interessant und sehenswert :-) Ist das die neue Generation des Fernsehens?

Posted by Sebastian on August 31st, 2007 No Comments

Thunderbird beschleunigen

Thunderbird 2.0 ist mein derzeitiger Lieblings-eMail-Client. Leider wurde mein POP3 eMail-Konto in letzter Zeit sehr langsam. Das Öffnen von Nachrichten hat mitunter eine halbe Minute oder mehr gedauert. Jetzt habe ich endlich herausgefunden, wie man hier Abhilfe schaffen kann. Das eMail-Konto muss komprimiert werden!

Das kann man auf zwei unterschiedliche Arten machen:

  1. Im Kontextmenü (Rechtsklick auf das Konto in der Ordneransicht) das “Komprimieren” manuell starten.
  2. In den Thunderbird-Einstellungen (Extras > Einstellungen > Erweitert > Netzwerk & Speicherplatz) die Option “Ordner komprimieren, wenn dies mehr Platz spart als xxx KB”. Der konkrete Kilobyte-Wert ist relativ egal. Es haben sich bei mir die Standardeinstellung 100 KB bewährt.

Posted by Sebastian on May 13th, 2007 No Comments

ccMixter

ccMixter ist eine Community, die sich ganz Remixes von Audiotracks verschrieben hat. Hier findet man neben Sample Packs, A Capellas, Instrumentals zum selber kreativ werden natürlich auch fertige Remixes. Alles unter den liberalen Creative Commons Lizensen!

Hier mal der Track “Out of time” von IceSun, der Vocals von der selben Seite benutzt um einen schönen Trance-Song zu zaubern:

Get the Flash Player to see the wordTube Media Player.

Posted by Sebastian on April 13th, 2007 No Comments

Kunstwerke ausleihen?

Das geht in der Münchner Artothek. Schon für 2,60€ pro Monat kann man Skulpturen und Bilder junger lokaler Künstler für sein Zuhause ausleihen. Hierzu schreibt muenchen.de:
“Die Idee, kulturelle Bildung und Kunst möglichst vielen Menschen zugänglich zu machen, unabhängig von deren finanziellen Möglichkeiten, stammt aus den 1920er Jahren. Analog zu der Ausleihe von Büchern in den Bibliotheken kann seitdem in einer Artothek Kunst ausgeliehen werden. Die 1986 gegründete Münchner Artothek ist als städtische Einrichtung vor allem an der Förderung der lokalen Szene interessiert. Münchner Künstlerinnen und Künstlern können die Räume nutzen für Einzelpräsentationen ebenso wie für Gruppenausstellungen. Häufig finden sich die dort gezeigten Bilder später in der Kunstsammlung der Artothek wieder, die mittlerweile mehr als 1500 Bilder und Skulpturen umfasst, die alle ausgeliehen werden können. Der kommunikative Charakter des Instituts wird durch ein abwechslungsreiches Ausstellungsprogramm unterstützt. Themenausstellungen mit Lesungen verbinden Bildende Kunst und Literatur.”

Ich werde das Angebot testen und berichten :-)

Links:
Artothek

Posted by Sebastian on March 27th, 2007 No Comments