Das erste Update des JavaFX 1.2 ist erschienen und steht unter den üblichen Quellen zum Download bereit. Es ist als Bug-Fix-Release zu verstehen. Dazu wurde etwas an der Performance gebastelt.
Finnisch ohne Mühe
Das geht mittlerweile mit der Integration neuer Sprachen ja wie beim Bretzelbacken.
Es zeigt sich immer mehr, dass meine Konzeption und Programmierung des Sprachmoduls zwei sich wohl wiedersprechende Fassetten zur Folge hat:
- Das gesamte Programm ist ziemlich starr und unflexibel, da Datenbank, serverseitige Programmierung und clientseitige Programmierung extrem in einander verwoben sind. Insbesondere steckt Logik bereits in der Datenbank. Das beruht aber darauf, dass ich die Kurse ja bereits auf CD mit einer Access-Datenbank beziehe und diese Datenbank erst einmal ohne große Änderung in das MySQL-DBMS importiere und dort dann die zusätzliche Steuerlogik integriere sowie ein paar notwendigen Anpassungen im Quellcode durchführe.
- Das Konzept und die Arbeitsabläufe zur Integration neuer Sprachen auf Basis dieser bereits auf CD vorhandenen und mit dem Onlinekurs zusammen vertriebenen Kurse ist (für mich) wahnsinnig schnell möglich und faszinierend sicher als auch unproblematisch. Im Quellcode müssen nur die Inkosistenzen zwischen den verschiedenen Kursen ausgeglichen und ein paar Konstanten angepasst werden. Die Anpassungen in der jeweiligen Datenbank dauern auch kaum mehr als eine Stunde. Und die super Integrationsmöglichkeiten wiegen die Nachteile der Unflexibilität bei Weitem auf.
Unter https://fremdsprachen.cspcampus.de/ ist Finnisch ohne Mühe online. In Kürze werden dieser Kurs als auch Dänisch ohne Mühe (sowie die noch folgenden Sprachen Ungarisch, Polnisch, Norwegisch, …) im Shop unter hier freigegeben. Dort finden Sie derzeit schon
- Englisch ohne Mühe
- Französisch ohne Mühe
- Italienisch ohne Mühe
- Niederländisch ohne Mühe
- Portugiesisch ohne Mühe
- Schwedisch ohne Mühe
- Spanisch ohne Mühe
Wie erwähnt – der Leistungsumfang eines Kurses umfasst jeweils einen
- Onlinezugang zu allen Funktionen des Standard-Selbstlernsprachkurses für 9 Monate (das ist der Teil, den ich jeweils neu erstelle).
- Lernmaterialien, bestehend aus Lehrbuch und Audio-Files des Kurses auf CD – die CD nutze ich als Basis, aber ein Lernender kann auch das Desktop-Programm verwenden – aber ehrlich gesagt – meine Webvariante ist besser 😉 .
- Die Lernmaterialien gibt es alternativ auch mit MP3-Files für MP3-Player.
Dänisch ohne Mühe
Ich bin mal wieder an die Weiterentwicklung meines Sprachenprogramms zum online Lernen von Fremdsprachen gegangen. Dänisch ohne Mühe ist online und muss nur noch getestet werden. Den Shop für die fertigen und freigegebenen Sprachen finden Sie hier. Der Leistungsumfang eines Kurses umfasst jeweils einen
- Onlinezugang zu allen Funktionen des Standard-Selbstlernsprachkurses für 9 Monate.
- Lernmaterialien, bestehend aus Lehrbuch und Audio-Files des Kurses auf CD.
- Die Lernmaterialien können wahlweise auch mit MP3-Files bestellt werden.
Grafischer Editor für jQuery
Es gibt einen neuen grafischen Editor für jQuery, der direkt über den Browser ausgeführt wird. Das Tool mit Namen IxEdit liegt in einer ersten Betaversion vor und ist Open Source. Kann man unter https://www.ixedit.com/ laden.
Ich lach mich weg – Twitter soll die Wahl vom Wochenende beeinflusst haben
Twitter hat es heute in die Nachrichten der meisten TV-Sender geschafft. Und das mit einem solchen Bullshit, dass ich mich weglache. Angeblich hat da ein CDU-Abgeordneter (oder sonst wer) 90 Minuten vor Schließung der Wahllokale irgendwelche „Prognosen“ (oder Kaffeesatzzahlen) in Twitter gepostet und jetzt schreit alles Zeter und Mord.
Ja gibt es denn nichts Wichtiges? Wie viele Leute erreicht denn der durchschnittlicher Twitterer? 0? oder sind es doch 1 – 2 Follower? Und wenn der Geheimnisverräter wirklich populär ist und 20 Follower hat – wieviele Leute haben dann nochmal auf Grund dieser Zahlenraterei über Ihre Wahl nachgedacht? 2? oder waren es 3? Ich tippe mal, dass 1 Wähler sich dann tatsächlich umentschieden hat. Und jetzt reden die von Wahlanfechtung. Und neuen Verboten. Man – wann kapieren die Politiker und auch manche Medien denn, dass das Interent nix mehr mit der zensierten häppchenweisen Information der Vergangenheit zu tun hat? Und man sollte die Kirche im Dorf lassen und nicht glauben, dass diese Zahlen in Twitter auch nur halbwegs die Wirkung gehabt hätten wie ein Interview mit einem Dorfbürgermeister im lokalen Radiosender, was er denn gewählt hat.
Twitter-Client mit jQuery
Da ich ja aktuell ziemlich viel mit jQuery mache, habe ich ein weiteres jQuery-PlugIn erstellt. Einen Twitter-Client, den man sich beliebig in die eigene Webseite einbauen kann. Entweder um fremde Tweets von Leuten, die einen interessieren, als Content darzustellen oder – und das halte ich für interessanter – von überall seine eigenen Tweets unmittelbar in der Webseite darzustellen. Und das ganz ohne die Webseite anzupassen oder ein schwergewichtiges CMS verwenden zu müssen.
Das PlugIn operiert explizit auf der Struktur der Twitter-Tweets und verwendet das JSON-Format. Genau genommen wird JSONP verwendet, um direkt auf den Twitter-Server zugreifen zu können.
Das PlugIn ist hochanpassbar. Folgende Optionen kann ein Anwender individuell einstellen, wenn das PlugIn in die Webseite eingebaut wird:
• Die Hintergrundfarbe als CSS-Wert
• Die Vordergrundfarbe als CSS-Wert
• Die Schriftart als CSS-Wert
• Die Schriftgröße als CSS-Wert
• Ob der Name angezeigt wird oder nicht
• Ob der Screename angezeigt wird oder nicht
• Die Anzahl der angezeigten
• Auswahl des Screenames des Autors – darüber kann jeder beliebige Twitter-Autor angegeben werden, wenn die Tweeds frei zugänglich sind
• Ob ID angezeigt wird oder nicht
• Ob das Bild angezeigt wird, wenn eines vorhanden ist
Hier ist ein Live-Demo (auf der rechten Seite der Website)
Um das PlugIn zu verwenden referenzieren Sie https://rjs.de/jquery/jquery.rjstwitter.js.
Oder Sie laden die Bibliothek über https://rjs.de/jquery/jquery.rjstwitter.zip„.
Genauere Informationen zur Verwendung, Licence, etc. gibt es unter https://rjs.de/jquery/index.php
jQuery-Plugins
Hab heute ein jQuery-Plugin erstellt und auf der offiziellen Seite von jQuery veröffentlicht.
Die Idee der Funktionalität von diesem Plugin ist sehr einfach. Die Anwendung der Methode dragwithstatus() macht ein Element oder eine Gruppe an Elementen in der Webseite verschiebbar. Soweit ist das nur eine Funktionalität, die bereits eine Standardmethode von jQuery bereitstellt.
Mein PlugIn wird jedoch diese Funktionalität erweitern. Zum einen wird jedes verschiebbar Element auf Wunsch mit einem Rahmen gekennzeichnet und zudem wird auf Wunsch der Mauszeiger verändert, wenn er über ein verschiebbares Element bewegt wird.
Nun ist ein weiteres Feature unseres PlugIns, dass das verschobene Element transparent gesetzt werden kann, während die Positionsänderung aktiv ist.
In der Statuszeile des Browser kann das PlugIn desweiteren laufend aktualisierte Informationen anzeigen, während der Anwender ein Objekt mit der Maus verschiebt. Und zwar die X- und Y-Koordinaten des verschobenen Objektes.
Na gut – dann twittere ich eben auch
Hab mir gerade auch einen Twitter-Zugang zugelegt. Warum? Ich brauche ihn für ein paar Experimente, die ich mit jQuery durchführe.
Ob mein Gezwitscher da irgendjemand interessiert? Keine Ahnung. Gerade vorgestern gelesen, dass Twitter maßlos überschätzt würde. Höchstens 3% aller Internet-User würden damit erreicht. Und die absolute Maße aller Twitter-User wären nur Karteileichen. Ein paar Tweeds und das war es. Überhaupt hätten 99,9% aller Twitter-User 0 Follower. Und zu guter Letzt würden Twitter sowieso nur EDV-Leute nutzen.
Denke, dass ich die Aussagen so unterstützten würde. Aber egal – mal ein bisschen damit spielen, die Spielereien für die Programmierung von einem Widget nutzen und dann ab zu den Karteileichen ;-).
Wer will kann ja mal rjsedv folgen 🙂
Was ist denn mit dem Firefox los?
Nachdem mein Firefox sich auf die Version 3.5.2 upgedatet hat, friert das Teil ständig ein. Was ist das denn? Ist die Version etwa nicht ausgereift oder was?! Sowas bin ich ja nicht einmal vom IE gewohnt :-(.
Onlineshop fertig
Für unsere Sprachkurse ist der Onlineshop fertig. Abs sofort können die verschiedenen Sprachkurs darüber erworben werden.
Neuer Zeitungsbeitrag
Im Magazin PHP User Vol. 3 vom Software&Support-Verlag (für den schreibe ich in diversen Magazinen und auch schon ein paar Bücher von mir sind da erschienen) ist ein neuer Artikel von mir erschienen. 6 Seiten zum Thema Google Maps & Co. Nur sind da 2 Bugs reingerutscht – ich habe einmal an einer Stelle den Vornamen „Manfred“ bekommen und zudem ist im Inhaltsverzeichnis der Untertitel von einem anderen Beitrag unter meinen gerutscht. Naja – ist ein neues Magazin und das wird schon 😉
C#-Schulung
Halte aktuell eine C#-Schulung. C# und .NET sind nicht ganz meine Welt, aber im Grunde ist das nur eine Java-Schulung mit teils etwas seltsamer Syntax, falschen Namenskonventionen und recht kruxen Sonderheiten ;-).
Aber die Schulung macht Spass.
Trojaner im System??
Hab mal wieder seit langer Zeit eine Warnung von meinem Antivirenprogramm erhalten 🙁 – die 2. in dem Jahr und vielleicht die 5. oder 6. überhaupt – bleibe bisher weitgehend davon verschont – toi, toi, toi. Angeblich habe ich einen Trojaner eingefangen. Wobei ich mir das eigentlich nicht vorstellen kann. Meine Start-Exe von Eclipse sollte befallen sein. Aber deren Metadaten sind korrekt gewesen. Weder die Größe noch das Dateidatum haben sich geändert. Auch kam die Meldung komischer Weise beim Versuch eine PHP-Datei mit dem Kontextmenü zu öffnen. Aber zur Sicherheit hab ich das Antivirenprogramm mal sein Ding machenlassen.
Es ist halt wie es ist – wenn es ginge, würde ich nur unter Linux arbeiten.
Kritische Probleme im Internet Explorer
Wieder einmal gibt es eine kritische Sicherheitslücke im Internet Explorer unter Windows XP und Server 2003. Windows Vista sowie Windows Server 2008 sind zwar offiziell nicht betroffen, aber zur Sicherheit sollte man auch dort aufpassen.
Denn wie schon so oft können Angreifer via dieser Lücke Zugriff auf das Clientsystem erlangen, wenn ein Anwender auf eine entsprechend präperiterte Webseite surft. Und so neu die Lücke ist – sie wird wohl schon massiv ausgenutzt. Das Problem liegt an der Datei msvidctl.dll des Video-ActiveX-Control-Moduls und es gibt aktuell noch kein Sicherheitspatch.
Webseite überarbeitet
Hab meine Webseite überarbeitet. Im Wesentlichen habe ich das seitliche Navigationsmenü ersetzt durch ein dynamisches Pulldown-Menü (auf Basis von jQuery). Damit habe ich mehr seitlichen Platz. Den brauche ich vor allen Dingen für die Integration von meinem Shop für die Onlinetraining. Der hat eine vorgegebene Breite von 1050 Pixeln.
Belegexemplare sind da
Heute habe endlich die Belegexemplare von meinem neusten Buch Einstieg in JavaFX erhalten.
Ralph Steyer
Addison-Wesley
ISBN 978-3-8273-2845-8
erschienen 06.2009
ca. 340 Seiten
Mit CD
Die wichtigsten Neuerungen von JavaFX 1.2
Nachdem sich die Einführung von JavaFX von den ersten Vorversionen bis zu Finalversion 1.0 relativ lange hingezogen hat, haben die ersten Releasewechsel von der Version 1.0 bis zur Version 1.2 nur extrem kurz gedauert.
Diese Releasewechsel sind aber fast vollständig abwärtskompatibel, was man bei den Wechseln der Preversionen und besonders hin zur ersten Finalversion nicht behaupten kann.
Version 1.2 erweitert nun JavaFX hauptsächlich um einige Layout-Klassen und strukturiert das API in einigen Bereichen etwas um. Das ist aber vollkommen unkritisch.
Hier sind die aus meiner Sicht beiden wichtigsten Neuerungen von JavaFX 1.2 nochmal ausführlich aufgelistet. Insbesondere diejenigen, die auch jenseits spezieller bzw. erweiterter Programmierung Relevanz haben.
Mehrfachvererbung-Light über Mixins
Die m.E. wichtigste Erweiterung gleicht zuerst – Mixins. Grundsätzlich hat sich über die Jahre die Mehrfachverbung in der objektorientierten Programmierung als extrem kritisch herauskristalisiert. Nicht umsonst haben neuere objektorientierte Sprachen wie Java oder C# auf Mehrfachvererbung verzichtet.
In den ersten Versionen von JavaFX Script hat Sun jedoch wieder auf Mehrfachvererbung gesetzt. Das war aber auf Grund der sehr eingeschränkten Funkionalität von Funktionen/Operationen und der an Prototyping orientierten Umsetzung von Methoden relativ unkritisch.
Nichts desto trotzwurde Mehrfachvererbung in der Finalversion 1.0 von JavaFX Script explizit abgeschafft. Auch in der Version 1.1 gab es keine Mehrfachvererbung.
In der Version 1.2 wurde diese jedoch nun durch die Hintertür wieder – stark entschärft – reaktiviert. Offiziell gilt zwar immer noch, dass JavaFX nur Einfachvererbung unterstüzt, aber es gibt nun das Konzept der mixin-Klassen.
Mixins unterscheiden sich von normalen Klassen nur durch das Schlüsselwort mixin, das in der Deklaration auftaucht.
* So eine Klasse kann nicht direkt instanziert werden, dient aber als Superklasse (das kennt man ja von abstrakten Klassen).
* Eine mixin-Klasse kann auch abstrakte Methoden enthalten, die dann in der Subklasse überschrieben werden müssen, wenn diese nicht abstrakt sein soll.
* Und eine andere Klasse kann von beliebig vielen Mixins abgeleitet werden. Und dazu noch von maximal einer echten Klasse
Beispiel:
public mixin class A {
public var antwort_1 = „Die Antwort ist „;
}
public mixin class B {
public var antwort_2 = 42;
public abstract function gibMirDieAntwort():String;
}
public class C {
public var frage = „Aber wie lautet die Frage?“;
}
public class Anhalter extends C, A, B {
public override function gibMirDieAntwort():String {
return „{antwort_1}{antwort_2}“;
}
}
var o = new Anhalter();
println(o.gibMirDieAntwort());
println(o.frage);
Und das ist die Ausgabe:
Die Antwort ist 42
Aber wie lautet die Frage?
Ein Problem gibt es jetzt noch, wenn aus verschiedenen Mixins identische Bezeichner für Funktionen oder Variablen vererbt werden. Das System verwendet die zuerst vererbte Variante! Also von der zuerst hinter extends notierten Klasse.
In gewisser Weise kann man also – innerhalb sehr strenger und einfacher Regeln – wieder von Mehrfachvererbung in JavaFX sprechen. Das Mixim- Konzept interpretiere ich als einen Zwitter zwischen (dem in JavaFX fehlenden) Schnittstellenkonzept und (eingeschränkter) echter Mehrfachvererbung.
Ich persönlich stelle mir ernsthaft die Frage, ob man so eine mehrfache Vererbung-Light wirklich benötigt? Ich bin zwiegespalten. Aber das Konzept schafft schon eine erhebliche Vereinfachung.
Native Arrays
JavaFX hat ja gegenüber Java das Konzept der Arrays bzw. allgemein Datenfeld-ähnlicher Konstrukte erheblich verändert und arbeitet mit so genannten Sequenzen. Diese haben so ihre ganz besonderen Eigenheiten (etwa das Einfügen von Elementen mit insert oder das Löschen mit delete).
Mit den neu ergänzten nativen Arrays kann man nur unter JavaFX Script auch echte Java-Arrays erzeugen. Im Wesentlichen soll damit der Datenaustausch zwischen Java und JavaFX vereinfacht werden.
Native Arrays werden mit dem Schlüsselwort nativearray deklariert.
Beispiel:
var ints : nativearray of Integer = [1..100] as nativearray of Integer;
for (i in ints) println(i);
Die vollständige Beschreibung der Änderungen finden Sie unter https://www.javafx.com/docs/articles/javafx1-2.jsp .
Onlinetraining zum Dojo Toolkit und Valuepack: AJAX + Prototype/script.aculo.us + Dojo Toolkit erschienen
Heute sind meine neuen Onlinetraining von Video2Brain erschienen. Einmal das Onlinetraining zum Dojo Toolkit und zum Anderen ein Valuepack: AJAX + Prototype/script.aculo.us + Dojo Toolkit (da sind die genannten Onlinetrainings zu einem Bundle zusammen gefasst).
Neue Gruppe zu JavaFX in FACEBOOK
Noch ganz unter dem Eindruck der RIA World die letzten 2 Tage in München habe ich heute in Facebook eine neue Gruppe zu JavaFX gegründet. Es gab namlich bisher keine solche für den deutschsprachigen Raum.
Lade alle JavaFX-Interessierten zum Beitritt ein.
Mal sehen, was sich daraus entwickelt.