Sprachmodul redesigned

Nachdem mittlerweile 4 Sprachen in das Sprachmodul integriert sind, habe ich eine gute Basis um die grundsätzliche Funktionalität und das Zusammenspiel der einzelnen Komponenten zu testen.

Die ersten Testrückmeldungen von Anwendern sowie eigene Experimente sind vielversprechend, so dass ich mich zum ersten Redesign entschlossen habe. Damit sollte das Modul einen entscheidenden Schritt hin zur Finalversion gemacht haben. Ich setze die Versionsnummer auf 0.97.


Im Rahmen des ersten Redesigns wurden verschiedene kleinere Bugs korrigiert, Anregungen von Testern eingebaut und das Modul modularisiert und verschlankt. Das sollte sich auch positiv auf die Performance auswirken.

Ich gehe jetzt an die Integration weiterer Sprachen. Aktuell sind

  1. Englisch ohne Mühe
  2. Französisch ohne Mühe
  3. Italienisch ohne Mühe
  4. Spanisch ohne Mühe

verfügbar und m.E. auch bereits für den Prxiseinsatz fertig. Die ersten kommerziellen Anwender sind auch schon am Lernen.

Zeichenwandler in JavaFX

In der letzten Zeit brauche ich bei der Programmierung immer wieder die Zeichencodes von einzelnen Buchstaben und vor allen Dingen Sonderzeichen (vor allen Dingen für HTML und PHP). Das Suchen von Tabellen im Internet ist mir langsam lästig geworden.

Deshalb habe ich ein kleines Programm in JavaFX geschrieben, in das man einfach ein oder mehrere Zeichen eingeben kann und den entsprechenden ASCII-Code beziehungsweise Unicode erhält.

Das Programm kann sowohl als Java-Applet in eine Webseite eingebunden werden oder aber per Webstart direkt von einem Webserver gestartet werden.

Klicken für einen Webstart zum Beispiel hier

Ich habe das Programm so gebaut, dass bis zu maximal 10 Zeichen umgewandelt werden. Das bedeutet mit anderen Worten, dass Sie bis zu 10 Zeichen in das Eingabefeld eingeben können und die jeweiligen Code der einzelnen Zeichen (abgetrennt durch einen Bindestrich) erhalten.


Sie können das Tool als Widget kostenlos direkt in Ihre Webseiten einbinden, ohne es auf Ihrem Server bereitstellen zu müssen. Dann wird es bei einem Aufruf von meinem Server hinzugebunden.

Kopieren Sie einfach den nachfolgenden Code in Ihre Webseite.

Die Oberfläche von dem Programm ist mit JavaFX programmiert, die Logik im Hintergrund wieder reines Java.

Mit Java dreieckige Arrays erzeugen

Java kennt ja erst einmal keine multidimensionale Arrays. Aber Arrays mit Arrays als Inhalt (allgemein – beliebige Referenztypen). Kann man sehr einfach ganz witzige Effekte erzielen. Weihnachten ist zwar vorbei, aber dennoch:


public class Weihnachtsbaum {
public static void main(String[] args) {
char[] spitze = { ' ', ' ', ' ', '*' };
char[] ebene1 = { ' ', ' ', '*', '*', '*' };
char[] ebene2 = { ' ', '*', '*', '*', '*', '*' };
char[] ebene3 = { '*', '*', '*', '*', '*', '*', '*' };
char[] stamm = spitze;
char[] baum[] = { spitze, ebene1, ebene2, ebene3, stamm, stamm, stamm,
stamm };
for (char[] cs : baum) {
for (char c : cs) {
System.out.print(c);
}
System.out.println("");
}
}
}

Führt dazu:


*
***
*****
*******
*
*
*
*

Italienisch als Onlinekurs fertig

Und weiter geht es mit neuen Sprachen für die RIA zum online Sprachen lernen.


Heute ist der Kurs Italienisch ohne Mühe fertig geworden.



Die Erweiterung auf neue Sprachen flutscht richtig gut. Spanisch läuft auf meinem lokalen Testsystem auch schon halbwegs. Das macht richtig Spass. Außer dass ich ständig auf Besonderheiten bei dem Internet Explorer Rücksicht nehmen muss ;-(.

Ich denke, dass das nachfolgende Problem einfach ein Bug in dem Browsern ist. Das Zeichen wird in dem Browser einfach nicht dargestellt. Ich kann die Kodierung umstellen wie ich will. Hilft nix. Das Zeichen wird im Französischen und Italienischen verdammt oft gebraucht. Musste es in der Sprachdatenbank konsequent durch die Maskierung

&# 146 ;

ersetzen. Aber halt nur für den IE. Alle anderen Browser kommen ohne Maskierung aus. Ich verstehe es nicht.

Ansonsten habe ich mittlerweile einige nette Effekte aus dem Dojo-Framework in die RIA integriert. Zum Beispiel eine wegblendbare Box zur Auswahl von Sonderzeichen mit der Maus oder einen modernen Dialog zur Anzeige von Hilfe.

Da lohnt sich wieder Werbung für mein Buch Ajax Frameworks, nicht wahr? ;-).



Was zu Windows 7 + Silverlight

Ich nutze die Betaversion von Windows 7 nur gelegentlich und aus Sicherheitsgründen natürlich in einer VM. Also von daher sind meine Erfahrungen eingeschränkt gültig. Aber 2 Sachen sind mir aufgefallen:

1. Ich habe Probleme in der Darstellung von Joomla! im IE, der in Windows 7 dabei ist. Aber das ist wohl ein Problem, das eher Windows 7 nicht anzulasten ist. Wer den IE nimmt ist schließlich selbst schuld.

2. Wollte mir gerade eine Webseite ansehen, die mit Silverlight gemacht ist. Ging nicht – Silverlight 2.0 ist nicht in Windows 7 dabei. Warum eigentlich nicht, wenn Silverlight angeblich bei MS so gepushed wird? Nachinstallation ist kein Problem, aber eigentlich sollte das schon dabei sein. Sonst wird das nix mit den groß angekündigten Sivlerlight-Plänen von MS.

Ansonsten gefällt mir W7 bisher immer noch ganz gut.

Blog-Zensur

Unter dem fadenscheinigen Argument des Jugendschutzes ist neulich ein Blog über Magersucht geschlossen wurden. Dort würde Magersucht verherlichen und damit wäre das jugendgefährdend.

Unabhängig von der tatsächlichen oder eingebildeten Gefahr für die Jugend – was wirklich gefährlich ist, ist eine solche Zensur. Und absolut inakzeptabel.

Wehred den Anfängen. Freiheitsfeinden fallen immer subtilere Argumente ein um Überwachung und Zensur einen legitimen Deckmantel zu geben.

Onlinekurs „Französisch ohne Mühe“ fertig





Ich habe die letzten Wochen das Sprachmodul weiter entwickelt, über das man online Sprachen lernen kann (also eine moderne RIA, die auf AJAX sowie Dojo und Prototype aufsetzt und zur Wiedergabe und Aufnahme von Tondateien zudem Java und Flash einsetzt).

Das Modul stellt einmal Texte in der Fremsprache und Deutsch dar, spielt die englischen Sätze als Tondateien ab, beinhaltet ein kleines Tonstudio, um eigene Sprachübungen aufzunehmen und bietet verschiedene Übungstechniken zum Vertiefen der erlernten Sprachkenntnisse.
Heute ist der Kurs Französisch ohne Mühe fertig geworden.

Ich habe die RIA so konzipiert, dass die Erweiterung auf neue Sprachen mit relativ geringem Aufwand möglich sein sollte.
Der Prototyp war ein Englischkurs für Einsteiger (Englisch ohne Mühe) und nach dessen Livetests habe ich nun mit dem Französischkurs die erste Anpassung an eine neue Sprache bis zur Praxisreife durchgezogen.
Schon der Prototyp war gar nicht schlecht konzipiert, denn die Anpassung ging recht glatt. Und mit zwei verschiedenen Sprachmodulen habe ich jetzt ein gute Testbasis, um die Integration von weiteren Sprachen immer leichter möglich zu machen. Die Anpassung an Französisch hat das Programm insgesamt vorangebracht und ich setzte die Versionsnummer auf 0.96 hoch. Also meiner Meinung nach fast fertig.

Als nächstes gehe ich Italienisch an und der Fortgeschrittenenkurs Englisch funktioniert ja auch schon im Groben.

Hier geht es zur Anmeldung zu den Sprachkursen, die in Zusammenarbeit mit dem Verlag ASSIMIL GmbH und dem Arbeitskreis für Information – AKI RP/Eifel progammiert und vertrieben werden.

Technisch handelt es sich bei dem Programm wie gesagt um eine RIA (Rich Internet Application) auf Basis von PHP, MySQL, DHTML, AJAX sowie den AJAX-Frameworks Dojo Toolkit und Prototype. Daneben kommen noch Flash und Java zur Unterstützung von Multimediaeffekten zum Einsatz.
Um deshalb ein bisschen Werbung in eigner Sache zu machen – viele Grundlagen der Umsetzung findet man in meinem Buch Ajax Frameworks.



Als Verwaltungsplattform verwenden wir ILIAS, eine leistungsstarke, web-basierte Lernplattform für E-Learning in einem integrierten System (Persönlicher Schreibtisch, Kursmanagement, Gruppensystem, Magazin mit Rollen-basiertem Zugriff, …).

Kleine Animation mit JavaFX Script

Der nachfolgende Quelltext zeigt eine kleine Animatin, die mit den mächtigen Komponenten in JavaFX Script auf einfachste Weise erzeugt werden kann.

Erstellt mit der Finalversion 1.0 von JavaFX!


/*
* Main.fx
* Eine kleine Animation mit JavaFX Script
*
* Created on 27.01.2009, 12:11:28
* Copyright Ralph Steyer, www.rjs.de, RJS EDV-KnowHow
*/

package gui7;

import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.Scene;
import javafx.stage.Stage;

var x=0;
var y=0;
var bild =ImageView {
translateX: bind x
translateY: bind y
image: Image {
url: "https://rjs.de/bilder/devil.gif"
}
}
Timeline {
repeatCount: Timeline.INDEFINITE
keyFrames: [
KeyFrame {
time: 5s
canSkip: true
values: x => 150

},
KeyFrame {
time: 8s
values: y => 80 tween Interpolator.LINEAR


}
]
}.play();
Stage {
title: "Animationen"
width: 250
height: 250
scene: Scene {
content: [bild]
}
}

Und hier ein kleiner Formulargag mit Scriptaculous für AJAX

Den so genannten In.Place-Editor von Scriptaculous find ich klasse. Klicken Sie mal auf den Text in dem IFrame. Da wird ein normaler Text editierbar ohne die sonst üblichen häßlichen Formulareingabefelder in der Webseite anzuzeigen, wenn der Inhalt nur angezeigt werden soll.

Auch aus meinem Buch Ajax Frameworks



So geht’s:

<!DOCTYPE HTML PUBLIC „-//W3C//DTD HTML 4.01//EN“
 „https://www.w3.org/TR/html4/strict.dtd“>
<html>
 <head>
   <meta http-equiv=“Content-Type“
     content=“text/html; charset=iso-8859-1″ />
   <title>Scriptaculous</title>
   <script type = „text/javascript“
     src=“prototype-1.6.0.3.js“></script>
   <script  type=“text/javascript“
 src=“scriptaculous-js-1.8.2/src/scriptaculous.js“></script>  
 </head>
 <body>
   <h1>AJAX-Anfrage mit Ersetzen eines Textes</h1>
<div id=“klickmich“>Klick mich an um mich zu bearbeiten und dann zu ersetzen</div>
<script type=“text/javascript“>
new Ajax.InPlaceEditor(‚klickmich‘, ‚info.php‘);
</script>
</body>
</html>

Kleiner Dojo-Effekt für die Webseite

Hier ist ne kleine Dojo-Anination für die Webseite.

Aus meinem Buch Ajax Frameworks



So geht’s:
<!DOCTYPE html PUBLIC „-//W3C//DTD XHTML 1.0 Transitional//EN“
   „https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=“https://www.w3.org/1999/xhtml“>
<head>
<meta name=“generator“ content=
„HTML Tidy for Windows (vers 14 February 2006), see www.w3.org“ />
<title>Animationen mit Dojo</title>

<script type=“text/javascript“ src=
„https://o.aolcdn.com/dojo/1.2/dojo/dojo.xd.js“ djconfig=
„parseOnLoad: true, isDebug:false“>
</script>
<script type=“text/javascript“>
//<![CDATA[
     dojo.require(„dojo.fx“);
     dojo.addOnLoad(function(){
   var anim = dojo.fadeOut({ node: „meineID“, duration:5000 });
   var anim2 = dojo.fadeIn({ node: „meineID“, duration:6000 });
   dojo.fx.chain([anim,anim2]).play();
     });
//]]>
</script>
</head>
<body>
<h1>Aus- und Einblenden</h1>
<img src=“b5.jpg“ id=“meineID“ name=“meineID“ />
</body>
</html>

Wieder zuhause

Bin wieder zuhause. Der Rückflug heute morgen war unmenschlich früh. Schon um 6:20 Uhr ab Graz. Dafür war ich um 9:00 Uhr schon im Büro. Manche Leute haben jeden Tag so eine Anreisezeit zur Arbeit ;-).
Und irgendwie wollen da ganz viele Leute nach Frankfurt. War ausnahmsweise mal ein etwas größerer Jet und im Gegensatz zu sonst nicht von Eurowings, sondern Lufthansa selbst.

That’s it

Fertisch!

Auch das Onlinetraining zu JavaFX Script ist eingespielt. Ist allerdings erheblich umfangreicher geworden als ich geplant hatte. Gibt halt doch ne Menge zu dem Thema zu sagen.

Jetzt noch ein paar Abschlussarbeiten und dann ist mein Job in Graz erledigt. Morgen fliege ich zurück. Dummerweise schon um 6:20 Uhr. Eckelhaft!

Ansonsten gab es auch dieses Mal Filmaufnahmen. Ich musste heute noch zwischenzeitlich ins Filmstudio und musste zu den 4 Trainings was vor der Kamera loslassen. Dachte eigentlich, dass das nur bei DVDs üblich ist. Und ich habe erstmals mit einem Teleprompter gearbeitet, von dem ich meinen Text während der Filmaufnahmen abgelesen habe. Das ist ja tierisch anstrengend.

Das war der dritte Streich

Ist schon toll. Andere Leute sagen, dass heute Sonntag ist ;-). Aber ich habe nicht viel davon mitbekommen in meinem abgeschlossenen Tonstudio (ohne Fenster). Egal. Das dritte Onlinetraining ist eingespielt und ich bin gut in der Zeit. Bis Dienstagabend muss ich noch ein Training zu JavaFX Script einspielen und bisher habe ich etwa 1,5 Tage pro Training gebraucht.

Los geht es mit den Videotrainings

Ich bin in Graz bei Video2Brain angekommen und nehme jetzt erst einmal ein Onlinetraining zu AJAX auf. Die Anreise war problemlos, nur hab ich aus dem Flugzeug rein gar nix gesehen. In einer Mittelreihe direkt am Triebwerk gesessen. Egal – kenne die Route ja mittlerweile recht gut ;-).
Ansonsten wohne ich nicht wie sonst in der Trainerwohnung, sondern in einem Hotel. Keine selbstverpflegung möglich, aber zumindest gibt es Frühstück. Sind richtig viele Trainer hier gerade am Aufnehmen.

Windows 7

Ich halte zwar – wie immer wieder betont – Linux für das Betriebssystem, das den besten Kompromiss aus Sicherheit, Benutzerfreundlichkeit und Leistungsfähigkeit bietet (ohne MacOS genau zu kennen, was angeblich ebenso gut sein soll). Aber ich habe auch keine Berührungsängste mit Windows zu arbeiten. Die meisten Versionen von Windows haben durchaus ihre Qualitäten (insbesondere im Massenmarkt) und ich habe weder Zeit noch Lust rein aus dogmatischen Gründen an meinem geliebten Linux zu kleben. Wenn es Sinn macht oder notwendig ist, verwende ich auch Windows. Z.Z ausschließlich XP, denn ältere Versionen sind einfach nicht mehr zeitgemäß. Und dass Hasta la Vista neben ME der größte Flopp der Windows-Reihe ist braucht nicht diskutiert werden.

Aber wenn die ersten Berichte stimmen hat Microsoft aus dem Vista-Disaster gelernt und mit Windows 7 ein gutes System hingelegt, das es seit ein paar Tagen in einer Betaversion zum kostenlosen Download und Test gibt. Die Version soll bis August 2009 laufen. Das Teil muss ich mir unbedingt ansehen und dazu in einer VM installieren. Das soll angeblich recht problemlos gehen.

Hab mir gerade eine Windows Live ID besorgt (leider vor dem Download notwendig) und aktuell lade ich mir gerade das ISO-File. Dazu kommt ein Downloadmanager zum Einsatz. Und der ist in – festhalten – Java geschrieben! Zumindest wenn man die Sache mit Firefox durchzieht. Ich fasse es nicht. Auch Microsoft verliert Berührungsängste ;-). Alles wird gut ;-).