XML 2.0

XML 2.0

The time has probably arrived to define graceful error handling for XML, put some IETF, W3C or WHATWG sticker on it, label it XML 2.0 and ship it.

Anne van Kersteren

Webstandards grokken

Webstandards grokken

Das Wort »grok« (Das Wort wird im Originaltitel und im Text des Artikels verwendet. – Anm. d. Übersetzers) kommt aus Robert A. Heinleins Zen-Hippie-Science-Fiction-Werk Fremder in einem fremden Land. Es ist ein Verb aus der Sprache der Marsianer und bedeutet so etwas wie »vollständig verstehen« oder auch »verinnerlichen«.

So steht es bei den Webkrauts. Und das zu Recht, denn dorten gibt’s jetzo die deutsche Übersetzung des wunderbaren ALA-Artikels »How to Grok Web Standards«. Nun aber lesen, gibt keine Ausrede mehr…

Firebug im YUI-Theater

Firebug im YUI-Theater

Yahoo macht ja nicht zu knapp Werbung für sein Javascript-Framework »Yahoo! User Interface Library« (kurz YUI), und das mit Fug und Recht sozusagen, denn YUI kann nicht nur einiges, das was es kann ist einfach hervorragend dokumentiert, es wird dazu ausgiebig gebloggt und mit dem YUI Theater wird eine Vielzahl von Lern-Videos angeboten,… also der gemeine DojoUserEntwickler kriegt da schon feuchte Augen…

Aktuell tritt im Theater gerade John Hewitt – bekannt als der Entwickler von Firebug – auf, mit Welcome to Firebug 1.0 (MP4-Download-Link). John stellt sein Wundertool vor, und gibt einige Tricks zum Besten. Vor allem die Profiler-Funktionen werden eindrucksvoll erklärt.

IDE: Aptana

IDE: Aptana

Um ein wenig Javascript zu editieren, braucht man sich natürlich keine fette IDE installieren!

Ja, das stimmte sicherlich noch zu den Zeiten, als wir mit Javascript diese tollen Spuren programmiert haben, die den Mauszeiger verfolgten, nicht?! Heutzutage entwickelt man irgendwie im größeren Stil könnte man meinen, und da ist so eine IDE durchaus sinnvoll. Für Javascript empfehle ich da durch mal Aptana, die auf Eclipse aufsetzt: man kann Apatana einzeln und als Eclipse Plugin herunterladen (250.000 Leute haben das schon getan), ich empfehle letzteres, da man dann auch noch andere Funtkionen von Eclipse (bspw. Subversion, diverse PHP-Editoren etc.) kombineren kann. Alles an einem Ort sozusagen.

Aptana editiert ganz hervorragend JS-Files, CSS und HTML, stellt einen (leider etwas gewöhnungsbedürftiegn) (S)FTP-Client zu Verfügung und glänzt mit allerhand vorbereiteten JS-Frameworks, die beim Anlegen von Projekten ausgewählt werden können. Das reicht, um einiges mehr im Browser passieren zu lassen, als eine Mauszeigerverfolgung.

Code and Listen: c6

Code and Listen: c6

Wenn wir früher im Click herumhingen, pflegte Feierkollege Helge solcherlei Musik immer mit feierlichem „Klick-Klick-Klick!“ anzukündigen, und das empfinde ich nach wie vor als die beste Beschreibung jegliche musikalischen Minimalismus deephousetechnoider Färbung, deren Hauptinhalt eben dieses nervend beruhigende Klickgeräusch ist.

Lange Rede kurzer Sinn: geklickt wird heutzutage viele und vielerorts, lange nicht mehr nur bei den Fingerhutbierschlürfern, sondern allen Ernstes auch in Mexiko beispielsweise. Von dort kommt Gastón Arévalo, der bei Cyan Recs. diese Woche sein Werk Pez de Piscis (ich kann nur raten… könnte Schwimmbadfische heissen, jedenfalls etwas mit Fisch…) abgeliefert hat. Das klickt mal richtig und angenehm genug, um auf der Trackliste »Code and Listen« einen Ehrenplatz zu finden.

SelfHTML in der Krise

SelfHTML in der Krise

Düstere Nachrichten hört man aus dem SelfHTML-Projekt, heise.de meldet den Abgang von Stefan Münz, dem Vater und Schirmherren des (wahrscheinlich) einzigartigen Web-Dokumentationsprojektes.

Im SelfHTML-Weblog schreibt Mathias Schäfer aka. molily nun über die Krise und Zukunft des SELFHTML-Projektes:

Nachdem sich mehrere Protagonisten aus dem Projekt verabschiedet haben, ist die Zukunft von SELFHTML tatsächlich unsicher. Die Stimmung ist durch die bedauerlichen Entwicklungen wie gelähmt und das Projekt scheint unstrukturiert und ziellos zu treiben. Hinzu kommt das allgemeine Problem, dass den Aktiven durch andere Verpflichtungen und Interessen wenig Zeit für das ehrenamtliche SELFHTML-Projekt bleibt und dadurch das redaktionelle »Tagesgeschäft« erschwert wird. Derzeit ist noch nicht entschieden, wie wir aus dieser Krise herauskommen und das Projekt wiederbeleben können.

Trotz der düsteren Zeiten, arbeitet man jedoch immer noch am Update des aktuellen Dokuzweigs. Wollen hoffen, das man sich dorten wieder zusammenrappelt und weiter macht.

SelfHTML kenne ich nun schon einige Jahre, vieles von dem, was ich mir selbst beibringen musste — und ehrlich gesprochen, trotz Ausbildung zum Fachinformatiker: alles, was ich über HTML weiss, musste ich mir selbst beibringen — stammt von der SelfHTML-Site. Und das wird vielen deutschsprachigen Webdevelopern so gehen. Also… durchhalten!

Webseminar: Web-2.0-Anwendungen absichern

Webseminar: Web-2.0-Anwendungen absichern

Via Think PHP: mysql.de veranstaltet am 30. Januar ein Online-Seminar (ein Webinar sozusagen) zum o.g. Thema.

Die verbesserte Einsatztauglichkeit der Web-2.0-Anwendungen wird auf Kosten von neuen Sicherheitsproblemen erworben. Sowohl die mächtige Logik im JavaScript als auch der permanente Login auf vielen Sites bergen Risiken, die anders und gezielt beantwortet werden müssen. Dieses Webseminar gibt einen Überblick, bewertet die Probleme und stellt Lösungswege vor.

Wenn Sie Web 2.0- und AJAX-Anwendungen entwickeln, ist dieser Vortrag genau das Richtige für Sie! Hier erfahren Sie:

  • Welche neuen Sicherheitsrisiken es für Webanwendungen gibt
  • Welche Bedeutung XXS hat
  • Ursprünge und Typen von JavaScript-Malware
  • Wege zur Absicherung Ihrer LAMP-Anwendungen für Web 2.0

Ist gratis, online und eine Telefonkonferenz gibt’s auch. Nähere Infos und Anmeldung hier.

Encoding — irgendetwas geht immer schief

Encoding — irgendetwas geht immer schief

Character Encoding ist so eins der Dinge, die bei einem Webprojekt leicht schief gehen können, vor allem wenn man in einer heterogenen Umgebung arbeiten muss, also beispielsweise eine große Website aus etlichen verschiedenen Quellen, von unterschiedlichen Servern, aus verschiedenen Codejahrhunderten zusammen zu stricken hat. Natürlich könnte, müsste, sollte immer alles UTF-8 codiert sein: aber die Realität sieht leider anders aus. Denn selbst wenn man es schafft, alle Codequellen und Server abzustimmen, irgendwann kommt immer ein Benutzer mit der nordkoeranischen Version des Acrobat Readers 1.0 und hat mal eben daraus Text in ein Webformular gepastet…

Tommy Olsson bringt nun auf Sitepoint: The Definitive Guide to Web Character Encoding, ein hehres Ziel, will ich meinen. Und tatsächlich, der Artikel birgt wunderschöne Erklärungen: was ist das eigentlich »Character Encoding«, was passiert da, wie und wo stellt man es richtig ein und was passiert dann. Auf die Unwägbarkeiten des geplagten Integrationsentwicklers kann man da nur schwer eingehen, das sehe ich ein, also, wer von »Character Encoding« noch keinen Schimmer hat, unbedingt lesen.

Für die anderen ein paar Hinweise (teilweise auch siehe im genannten Artikel) gebündelt: Stellen an denen es mit dem Character Encoding gerne schief läuft:

  • Der Eintrag im HTML ist falsch oder fehlerhaft. Eigentlich immer die erste Stelle, wo man bei einer Webseite nachschauen sollte. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> soll da im Header stehen. Man beachte auch, dass content den ganzen String, samt Semikolon enthält, also hier: text/html; charset=utf-8.
  • Ausserdem überschreibt der HTTP-Header des Servers (oder aus einem Programm) zwingend den Meta-Tag des Dokumentes. Also muss in der Apache-Konfiguration AddDefaultCharset UTF-8 gesetzt sein. Ist es so, aber es kommt trotzdem Müll, kann auch bspw. ein PHP-Programm den Header neu gesetzt haben. Man suche nach Stellen wie: header('Content-Type: application/xhtml+xml; charset=ISO-8859-1'); und, ach ja: in der php.ini gibt’s auch noch ein oder zwei Stellen, wo man mal nach default_charset diggen sollte.
  • Arbeitet man mit einen Javascript-Framework wie Dojo, kann man über Parameter bestimmen, in welchem Encoding Daten an den Server geschickt werden. Da haben wir aber teilweise richtige Schwierigkeiten bekommen, die wir auch nicht auflösen konnten – was so ein typisches Problembeispiel ist. Die Programmierer der Javascript- genauso wie der PHP-Seite behaupteten allesamt, dass ausschließlich mit UTF-8 gearbeitet würde, obwohl trotzdem Müll in der DB landete. Schlussendlich hat man sich auf einen Dojo-Bug geeinigt und serverseitig das Problem aufgefangen…
  • …was man aber eigentlich nicht tun sollte, denn: es ist im Grunde immer besser, wenn die Daten schon richtig ankommen, im Grunde ist dabei das Encoding egal, wenn es richtig ausgewiesen ist. Richtig blöd wird’s nur, wenn encodierte Daten nochmals encodiert werden. Das sieht zwar lustig aus…