Bayeux gestattet Push-Technink mit AJAX

Ich bin gerade über Bayeux gestolpert. Das Protokoll gestattet Push-Technink mit AJAX. Sehr interessant. Das muss ich weiter verfolgen. Denn grundsätzlich kann man per HTTP eine Datensendung nur durch den Client anstoßen. Der Server kann immer nur auf eine Anfrage reagieren. Das ist im Grunde ein unabdingbares Sicherheitsfeature. Nur schränkt das viele sehr interaktive RIAs ziemlich ein. Deshalb erweitert das Bayeux-Protokoll HTTP in Hinsicht auf die bidirektionale Kommunikation – sowohl vom Client zum Server und umgekehrt vom Server zum Client. Bayeux wird mittlerweile schon bei diversen Webapplikationen verwendet, ohne dass das dem Anwender bewusst ist. Und zwar solche RIAs, bei denen der Server beim Eintritt eines bestimmten Ereignisses von sich aus Informationen an registrierte Clients übermitteln soll. Das können zum Beispiel Web-Onlinespiele oder Börsenticker sein. Die neu erschiene CometD-Version 1.0 (https://cometd.org/) implementiert nu das Bayeux-Protokoll. Dazu bei es eine Javascript-Bibliothek mit der Möglichkeit der Anbinung anjQuery und Dojo sowie eine in Java geschriebene Clientbibliothek zur Integration in Java-Applikationen. Gerade die Verbindung zum Dojo Tookit ist ziemlich naheliegend, den hinter CometD steht die Dojo Foundation. Auf Seiten des Servers stellt CometD eine in Java geschriebene Bibliothek zur Umsetzung der eigentlichen Applikationslogik zur Verfügung.

GWT 2.0 und qooxdoo 1.0

Gibt zwei mehr oder weniger interessante Entwicklungen im Umfeld von AJAX- bzw. Web-Frameworks. Das GWT ist in die Version 2.0 gegangen und ein neues Framework mit Namen qooxdoo erschienen.

Ich persönlich finde die neue Version des GWT sehr interessant, während mir das Drumherum bei qooxdoo sehr befremdlich erscheint (unabhängig davon, ob die Welt wirklich auf noch ein Framework gewartet hat).

qooxdoo wurde steht unter https://qooxdoo.org/ zum Download zur Verfügung. Das Framework unterstützt nach eigenen Aussagen die wichtigsten gängigen Browsern (Internet Explorer, Firefox, Safari, Opera, Chrome). Was mich persönlich zum Einen etwas befremdet ist, dass dAs Framework frei sein soll und unter einer dualen Lizenz (LGPL und EPL) steht, aber die Entwicklung wurde hauptsächlich von der 1&1 Internet AG vorangetrieben.

Viel mehr stört mich aber die Marketingaussage aus dem Projekt dass man mit dem Framework RIAs erstellen kann, ohne dass man sich mit Webtechniken wie CSS, DOM und HTML auskennen muss. Mit so einen Bullshit haben schon der Hersteller der katastrophalen WYSIWYG-Webeditoren die Webseitenersteller für dumm verkauft.

Aber so rein von der Funktionalität macht qooxdoo auf den ersten Blick gar keinen schlechten Eindruck. Es konzentriert sich auf die Erstellung von Webanwendungen mit desktop-ähnlicher Oberflächen. Es ist also im Gegensatz zu mehr an der Programmierung orientierten Frameworks wie Prototype mehr auf die Optik fokussiert.
Von der Funktionalität scheint das Framework vergleichbar mit den Platzhirschen jQuery, Dojo oder YUI zu sein. Es enthält die üblichen Widgets, Layout-Manager und Themes sowie Tools zur Codevalidierung, JavaScript-Kompilierung, Unit-Tests, automatisierte GUI-Tests, Debugging etc. Von großen Interesse dürfte aber sein, dass das angekündigte QxWT-Projekt fast alle qooxdoo-Funktionen in das Google Web Toolkit (GWT) integrieren soll.

Und damit sind wir beim GWT, dessen Version 2.0 verfügbar ist. Es enthält mit Speed Tracer einen neuen Performance-Profiler für Chrome. Klar was Google damit bezweckt – eine Win-Win-Situation für das GWT und Ghrome zu schaffen. Ebenso neu ist ein inkrementeller Download von Applikationen mit Code-Splitting. Damit müssenh Anwender erst einmal nur den für eine Anwendung wirklich notwendigen Code herunterladen. Das reduziert die Startzeit einer Webanwendung. Weiter ist ein UIBinder ein UI-Framework neu. Damit lassen sich GUI für Webanwendungen schneller entwickeln und die Präsentationsschicht und Anwendungslogik sauber trennen. Also das GWT 2.0 werde ich mir auf jeden Fall näher ansehen.

Vorratsausspionage vor Gericht

Ich muss mich doch mal bei den über 30.000 Klägern bedanken, die die so genannte Vorratsdatenspeicherung (für mich ist das nur reine Spionage auf Vorrat) vor Gericht gezerrt haben. Und es bestehen gute Chancen, dass der Mist gekippt wird. Schon seltsam, dass der verantwortliche Angeklagte – das Justizministerium – wohl selbst eine Verurteilung wünscht. Das macht zumindest Hoffnung, dass einige Leute in Deutschland aus den zwei Überwachungsstaaten im letzten Jahrhundert ein bisschen was gelernt haben. Und ich frage mich wo die Terroristen wirklich sitzen, die unsere Freiheit bedrohen?

Standardisierungsversuch XMLHttpRequest-Objekt

Da schau – das XMLHttpRequest-Objekt soll ein Webstandard werden. Zumindest nach dem W3C, das den letzten Working Draft dafür vorgelegt hat. Bis zum 16. Dezember 2009 nimmt das WW3C noch Kommentare zum aktuellen Entwurf entgegen. Das bedeutet, dass die Arbeiten an dem Standard fast abgeschlossen sind. Das W3C will mit der Standardisierung nun für einheitliche Implementierung sorgen.

Bleibt zu hoffen, dass dies erfolgreicher verläuft als die bisherigen Standardisierungsversuche wie bei HTML oder CSS, an die sich Browserhersteller quasi als Qualitätsmerkmal nicht gehalten haben oder immer noch nicht halten. Aber so weit sich das XMLHttpRequest-Objekt mittlerweile schon etabliert hat kann selbst der zahnlose W3C-Tiger nicht mehr viel falsch machen.

Neue Programmiersprache von Google

Da schau an. Google beackert ja wirklich jeden Acker. Jetzt gibt es sogar eine neue Programmiersprache mit Namen Go. Sie soll C oder Pascal ähneln und bisher noch nicht produktionsreif sein. Google verfolgt in Bezug auf die OO einige ungewöhnliche Ansätze, denn angeblich gibt es keine Vererbung und keine Typhierarchien. Aber Schnittstellen und Pakete sowie private Elemente. Auch Polymorphismus wird unterstützt. Und entsprechend aller modernen Sprachen gibt es einen GC zur Speicherbereinigung.

Nun stellt sich die Frage, wozu man eine weitere Programmiersprache braucht? Aber Google hat schon immer eine Nase für Trends und spannende neue Entwicklungen. Ich bin mir noch nicht sicher, ob sich eine Beschäftigung mit Go lohnt. Aber ein bisschen werde ich wohl damit experimentieren.

https://golang.org/

Diplomarbeit wieder entdeckt

Ich habe gerade beim Stöbern im Keller meines Elternhauses meine Diplomarbeit gefunden. Hatte die im Heizungskeller in der hintersten Ecke versteckt. Das Thema waren mathematische Grundlagen der relativistischen Quantenmechanik. Genau genommen geht es um die „Existenz und Vollständigkeit der Wellenoperatoren nach V. Ens“, deren Gültigkeit ich vom Fall des nichtrelativistischen Schrödinger-Operators auf den relativistischen Fall mit dem Dirac-Operator übertragen habe.

Was ein Formelwust. Versteh selbst nix mehr. Selbst bei der Einleitung verwende ich schon Begriffe, mit denen ich heute nichts mehr anfangen kann. Aber irgendwann muss ich das wohl mal kapiert haben.

Neuer Online-Workshop zu AJAX

Ich halte mal wieder bei akademie.de einen Online-Workshop zu AJAX. Er geht über 4 Wochen und beginnt am 10. November 2009.


In den vier Wochen werden die Teilnehmer mit vielen praktischen Beispielen und Übungen an AJAX herangeführt:

* vom Schnelleinstieg ins „Prinzip AJAX“
* über die Kerntechniken von AJAX: (X)HTML, Style Sheets, DHTML und JavaScript
* bis zu anspruchsvollen AJAX-Applikationen mit serverseitiger Programmierung mit PHP

Der Workshop richtet sich an Webentwickler und Programmierer, die schnell und fundiert alle relevanten Techniken samt diverser praktischer Beispiele rund um AJAX kennen lernen wollen. Am Ende des Workshops können Sie anspruchsvolle AJAX-Anwendungen selbst programmieren.


Zum Workshop

AJAX-Inhalte bald gezielt durchsuchbar sind

Grundsätzliches Problem bei dynamisch per AJAX nachgeladenen Inhalten ist, dass diese nachgeladenen Inhalte für Suchmaschinen quasi nicht erkennbar bzw. verwertbar sind. Um diese Inhalte doch für Suchmaschinen erfassbar zu machen, will Google einen neuen Standard etablieren.

Googles Idee ist ziemlich schlau. Über eine spezielle Syntax mit einem Ausrufezeichen im HTTP-Request sollen Crawler einer Suchmaschine dynamische AJAX-URLs erkennen. Ein Crawler könnte daraus eine eigene Anforderung der Daten generieren und vom Server den Inhalt so nachfordern als ob von einem Browser per AJAX Daten nachgefordert werden. Das geplante Verfahren von Google erfordert zwar sowohl Aufwand bei den Serverbetreibern als auch den Webseitenerstellern. Es hat aber nicht nur den Vorteil, dass dann dynamische Inhalte überhaupt in den Suchmaschinen auftauchen, sondern auch den Charme, dass Webseitenersteller die Kontrolle darüber behalten, welche AJAX-Inhalte überhaupt in den Suchmaschinen auftauchen sollen.

Und wieder was kaputt :-(

Mist – jetzt ist mein guter alter SuSE-Arbeitsrechner auch kaputt. Wohl das Netzteil hinüber. Hab die Festplatten gestern abend noch ausgebaut und sichere sie jetzt erst mal per USB-Adapter. Aber das macht mehr Probleme als gedacht. Die Festplatten werden nur an einem anderen SuSE-Rechner überhaupt gemountet. Glücklicher Weise habe ich mit dem Rechner nur noch E-Mails gemacht und meinen Passwortsafe geführt. Trotzdem schade, denn das alte Hardwaresystem mit einem restriktiven Linux hinter einem Router war total sicher. An der Kombination hat sich jeder Virus, Wurn oder Trojaner die Zähne ausgebissen.

AJAX-NET.de hat ein neues Gesicht

Nachdem ich jetzt einige fremde Seiten mit Joomla neu erstellt habe, musste auch mal mein eigenes Portal unter www.ajax-net.de aufgefrischt werden. Das Template der Seite habe ich zwar über die Jahre mehrfach von Hand angepasst, aber nun sollte mal ein ganz neues Design her. Gelegentlich braucht man einfach einen gründlichen Tapetenwechsel.

Onlineübersetzungen von Google für die eigene Webseite

Google ist in Hinsicht auf das Web 2.0 einfach der Mastermind! Es gibt ein geiles neues Übersetzungstool mit Namen Google übersetzer (https://translate.google.de/#), um per AJAX komplette Webseiten online zu übersetzen, wenn der Webseitenersteller das vorbereitet und ein Anwender das wünscht.

Dazu muss man als Ersteller einer Webseite nichts Weiteres tun als ein spezielles SCRIPT-Element in seiner Webseite aufzunehmen. Das sieht etwa so aus:

<div id=“google_translate_element“></div><script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: ‚de‘
}, ‚google_translate_element‘);
}
</script><script src=“https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit“></script>

Man kann das Toll so verwenden, dass es beim Laden der Webseite den dortigen Wert mit der im Browser oder im Betriebssystem eingestellten bevorzugten Sprache des Anwenders vergleicht. Bei einer Abweichung blendet Google dann in der linken oberen Ecke der Webseite einen Knopf ein, mit dem ein Anwender eine Übersetzung der Seite in einer anderen Sprache auswählen kann. Oder man zeigt die Möglichkeit zur Übersetzung immer an, was man hier in dem Blog direkt sehen kann (guckst Du rechts ;-))!

Die Originalsprache bleibt im Hintergrund erhalten und kann angezeigt werden, wenn der Anwender mit dem Mauszeiger den übersetzten Bereich überstreicht.
Zur Zeit stehen etwa 50 Sprachen für den Übersetzungsdienst zur Verfügung und es ist zu erwarten, dass diese Zahlen wachsen wird.

Läuft wieder

Mein System läuft wieder. Aber ich musste sowohl den Windows- als auch Linux-Part komplett neu aufsetzen. Da sieht man mal wieder die Wichtigkeit von einer regelmäßigen Datensicherung. Ich konnte zwar nach dem Windoof-Crash die Daten noch über das parallele Linux in Sicherheit bringen, aber ohne das wäre ich auf meine Backups angewiesen gewesen. So sind glücklicher Weise außer ein paar Lesezeichen im Browser und ein paar Datenbanken (die ich aber aus meinem Live-System zurückholen kann) keine Daten verloren gegangen.

Und das Neuinstallieren ist zwar mühsam und zeitaufwändig, aber mein zugemülltes Windoof-System ist jetzt durch ein frisches System ohne Dateileichen ersetzt. Und das ist auch was wert.

Windows defekt :-(

Oh man,

jetzt startet mein Windoof gar nicht mehr. Ohne Meldung. Weder der abgesicherte Modus, noch die letzte bekannte Konfiguration noch sonst was. Keine Ahnung was da kaputt ist. Zum Glück habe ich die Daten gesichert und komme zudem über das parallel installierte Linux an die Partition. Aber lästig ist das dennoch, wenn ich den gesamten Windows-Kram wieder neu aufsetzen muss :-(.

Polnisch ohne Mühe ist fertig


Man, war das eine Arbeit mit den Sonderzeichen. Von wegen – „Wie beim Bretzelbacken“. So einfach die Integration der verschiedenen Westeuropäischen Sprachen in das Sprachmodul war, so schwer wird das mit den Osteuropäischen Sprachen. Die Migration der zugrundeliegenden Access-Datenbank geht nur von Hand, da wohl der JDBC-ODBC-Treiber von Sun nicht Unicode-fähig ist. Und den verwendet sowohl das Migrationstool, das ich bisher verwendet habe als auch mein zwischenzeitlich selbst geschriebenes Java-Tool zur Migration. Bis ich das rausgefunden hatte, war schon ein Tag vergangen. Also muss ich bereits die Datenbank von Hand in MySQL migrieren. Mühsam, mühsam. Zudem hat die zugrundeliegende Access-Datenbank so diverse Bugs, die ich erst beseitigen muss 🙁

Aber die Arbeit geht weiter. Ich habe massive Probleme, um die sprachspezifischen Sonderzeichen gemeinsam mit deutschen Zeichen in der Datenbank zu verwalten. UTF-8 und Unicode bzw. Kollation hin oder her. Deshalb maskiere ich die deutschen als auch fremdsprachigen Sonderzeichen allesamt. Auch sehr aufwändig, aber in Hinsicht auf die Darstellung in der Webseite sowieso die sicherste Variante.

Insgesamt eine langwierige Angelegenheit, aber ich komme zumindest zum Erfolg.

Unter https://fremdsprachen.cspcampus.de/ ist Polnisch ohne Mühe online und muss nur noch getestet und freigeschaltet werden. Dazu sind unter anderem die folgenden Sprachen verfügbar:

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 Lernmaterialien gibt es alternativ auch mit MP3-Files für MP3-Player.