Kai Freikorps Kai Tracid Kai Winding

buy CD Albireon download music Apparat download albums After The Eulogy albums download 2 Preciious, Lee Aaron Arthur Cordewener A Beautiful Machine Absolum online tracks Audioholics Alio Die and Zeit A Beautiful Machine Absolum buy albums Animal Collective (feat. Vashti Bunyan) download music Artento Divini online music AZ-Rotator buy tracks Alfven, Hugo buy Arizona Dream A Beautiful Machine albums buy Alexi Delano buy albums Andy Moor Annie Haslam A Beautiful Machine Absolum download CD 2Pac - Makaveli and Dillinger Accept A Beautiful Machine Absolum online albums Agresion buy CD Apparat Amsterdam Klezmer Band A Beautiful Machine Absolum online CD Acid Rain buy Anugama and Sebastiano A Beautiful Machine buy music A Split Second albums download Apocalypse download Asrai A Beautiful Machine download mp3 2 Preciious, Lee Aaron online mp3 Adam Freeland online CD A-Ha buy tracks 4 Strings and Tina Cousins buy CD Artie Shaw online CD AZ download music Amauta and Rijchary buy music ASC feat Intex Systems buy tracks Arruga, Lombardo and Friends buy music Ashen Light download Aidan Baker vs. Cymbl A Beautiful Machine albums buy Angels and Airwaves download Astrid Williamson A Beautiful Machine Akwid and Jae-P A Beautiful Machine Absolum online CD Alejandro Sanz buy tracks Aly and Fila buy tracks Alex Sword and John Chevalier online mp3 Abazagorath albums download Arthur Alexander download albums Anchors for Arms download CD Anuradha Paudwal, Sanjeev Ab.. albums download Altiplano De Chile download tracks Acron online albums Auberon buy mp3 A New Age In Relaxation online mp3 Avail albums download Angelo Badalamenti download Alan Menken A Beautiful Machine buy tracks Arcane online tracks Alternative Control online Agatus A Beautiful Machine download CD Adham Shaikh download music 68 Beats download music Alan Sorrenti buy CD Arj Snoek download Aidan Baker A Beautiful Machine download CD Akira Takasaki buy music Anathema online mp3 Alla Zagaykevych online Altus and Silvercord A Beautiful Machine download mp3 Arnold Schoenberg and Anton Webern buy mp3 Alexander online Aes Dana A Beautiful Machine download mp3 5Ive's Continuum Research Project buy mp3 Alastair Galbraith buy albums A Javelin Reign buy music Arzu buy mp3 Ahmed Sahin download tracks Apache Indian download CD Alex Parsons and Tommy Four Seven Aalto A Beautiful Machine Absolum

März 17th, 2006

Opera 8.52: XML-Verarbeitung

Posted by frank in AJAX

Bei der XML-Verarbeitung mit AJAX bringt der Opera 8.52 ein komisches Verhalten mit. Neben der fehlenden synchronen Abfrage interpretiert er die XML-Datei auch etwas eigensinnig. Mit der Eigenschaft “responseXML” des XMLHttpRequest-Objektes kann auf eine XML-Datei per DOM-Struktur zugegriffen werden. Der Opera liefert dann die Tagnamen von XHTML jedoch immer in Großbuchstaben aus und ignoriert dabei völlig die Schreibweise in der übertragenen Datei. Dies ist vor allem bei einem Textvergleich eine leicht zu übersehende Fehlerquelle, zumal in XML-Dateien die Tags sowieso alle klein geschrieben sein sollten.

März 14th, 2006

JBoss - Config Fehler

Posted by frank in Java, J2EE

Soeben hat mich folgende Meldung ein paar Minuten geärgert.


org.jboss.security.auth.login.ParseException: Encountered "&lt?xml" at line 1, column 1.
Was expecting one of:
<EOF>
<identifier> ...

Grund war aber nicht etwa etwas in Zeile 1 bei der Config-Datei, sondern der Inhalt der Datei war nicht korrekt. Nach XML-Gesichtspunkten schon, jedoch nicht passend zur geforderten XSD. Man sollte also nicht immer sich auf die Fehlermeldungen verlassen ;)

März 13th, 2006

JavaScript: typeof vs. instanceof

Posted by frank in AJAX

Soeben habe ich noch etwas bemerkenswertes festgestellt. Laut JavaScript ist eine einfache Function automatisch ein Objekt.

Folgender Code soll es verdeutlichen:


function o() {
}

var t = new o();

alert((typeof o == "function") ? "true" : "false");
alert((typeof t == "function") ? "true" : "false");
alert((o instanceof Object) ? "true" : "false");
alert((t instanceof Object) ? "true" : "false");

Dieser Code gibt folgendes aus: true, false, true, true

Es sollte also nie eine function auf “Object” mit instanceof geprüft werden.

März 12th, 2006

JavaScript, Ereignisse und innere Variablen

Posted by frank in AJAX

Wenn man etwas aufwendigere Webseiten mit JavaScript verschönen will, kommt man vor allem bei den dynamisch erstellten Ereignissen schnell ins strudeln.
Dies möchte ich an einem kleinen Code-Beispiel zeigen:


function t() {
this.v = "123";
}

function some() {
var obj = document.getElementById("test");
var v = new t();
v.v = "124";
obj.onclick=function() { alert(v.v); }
var v = new t();
}

Was wird hier wohl ausgegeben? Genau, nicht wie vielleicht erwartet 124, sondern 123. Denn die Variable v wird durch new t() am Ende wieder überschrieben und das Ereignis bezieht sich dann auf diese lokale Variable.

Nun kann man dies zwar hier umgehen durch einen anderen Variablennamen, in einer Schleife stellt sich das Problem dann jedoch schon etwas gravierender dar.

Abhilfe schafft an dieser Stelle, dass an fast jedes Objekt in JavaScript dynamische Properties hinzugefügt werden kann.
Ändern wir als den Code wie folgt ab:


function t() {
this.v = "123";
}

function some() {
var obj = document.getElementById("test");
var v = new t();
v.v = "124";
obj.onclick_vars = v;
obj.onclick=function() { alert(this.onclick_vars.v); }
var v = new t();
}

Jetzt gibt der Code beim Klick auf das Element “test” den Wert 124 aus, denn es wurde vorher die Referenz auf v in obj.onclick_vars abgelegt, auf welche später zugegriffen wird.

Auf diese Art und Weise kann das Manko umgangen werden, dass man an Ereignisse keine zusätzlichen Variablen hängen kann. In meinen Augen ein klarer Design-Fehler, denn ein platz für ein Objekt wäre im Eventhandler sicherlich noch übrig gewesen.

März 2nd, 2006

Fehler beim Starten von Java-Programmen

Posted by frank in Java

Heute kam einmal wieder der folgende Fehler beim Starten einer einfachen Java-Anwendung:

Exception in thread "main" java.lang.UnsupportedClassVersionError: ???? (Unsupported major.minor version 49.0)

Grund dafür ist, dass man einfach eine zu alte JRE verwendet. Hier wurde mit einer 1.4er JRE ein Programm, welches für die 5.0er JRE kompiliert wurde, ausgeführt.

März 2nd, 2006

Haben Sie schon die richtige Domain ?

Posted by warper in Webhosting

Der richtige Domainname wird immer wichtiger beim Aufbau von Präsenzen und Portalen. Ein knackiger und prägnanter Name lässt Besucher immer wieder zu Ihnen finden. Deutschland ist aber nach der .COM Domain zweit häufigst registrierte Domainendung der Welt womit ein Namensfindung sehr schwierig wird.

suckurity.de schafft da sicher ein wenig Abhilfe. Die Applikation erfasst wieder frei gewordene Domains zur “Reregistrierung”. Einen Blick sollte man auf alle Fälle riskieren.

März 1st, 2006

Konqueror sendet falsche Daten

Posted by frank in AJAX

Nutzt man beim Konqueror (Version 3.4.3) das XMLHttpRequest um per send einen String zu senden, so sendet der Konqueror den String zuzüglich eines 0-Zeichens. Dieses Zeichen wird häufig zur Terminierung von Zeichenketten verwendet, hat aber beim Senden wirklich nichts verloren. Folgender Code demonstriert das Phänomen, welches per Sniffer wie ethereal überwacht werden kann.

req = new XMLHttpRequest();
req.open("POST", "http://www.ziel.de/", false);
req.send("test");

Es wird hier der Text “test” sowie das 0-zeichen im POST-Stream gesendet.

März 1st, 2006

Opera und das XMLHttpRequest-Objekt

Posted by frank in AJAX

Opera unterstützt ja nun seit geraumer Zeit (glaube ab 8.0) auch das XMLHttpRequest-Objekt, welches für AJAX notwendig ist. Dies scheint jedoch nicht ganz dem von Mozilla zu entsprechen. Wenn man der Referenz für XMLHttpRequest folgt, so ist durch das Async-Flag im open-Befehl die Wahl zwischen synchroner und asynchroner Abfrage möglich. Der Opera bis Version 9.00 Build 3216 unterstützt die synchrone Übertragung nicht. Egal wie, es ist immer asynchron. Dies kann jedoch recht einfach nachgebildet werden:

req = new XMLHttpRequest();
req.open("GET", "http://ziel/", false);
req.send();
while (req.readyState <> 4) ;