Category: Allgemein

Browserschlacht: Chrome vs. Lunascape

Die Schlacht kann beginnen. Nach kleinen Startproblemen in der Firma, wahrscheinlich aufgrund des Proxys, kam der Lunascape zu Hause auf Anhieb ins Internet. In einem Kampf über 6 Runden versuchen wir den derzeit besten Browser zu ermitteln.

1. Runde: Installation & Konfiguration
Chrome hat fast keine Installationsroutine. Automatisch übernimmt er die Einstellungen vom Internet Explorer. Lunascape hatte, obwohl die Einstellung gesetzt war, Probleme mit dem Proxy. Außerdem ist er derzeit nicht in Deutsch verfügbar und stellt am Anfang, für meinen Geschmack, viel zu viele Fragen.
Stand nach der 1. Runde in der Schlacht Chrome vs. Lunascape – 1 : 0

2. Runde: Shortcuts
Der Lunascape unterstützt so gut wie keine Shortcuts. Nach jahrelanger Gewöhnung an Strg + T für “Neuer Tab” und Strg + L für “Adresszeile fokussieren” ist dieser Verlust nur schwer zu verkraften. Vor allem sind dies Shortcuts die in alle Browsern funktionieren. Auch ein Strg + F bewirkt keine Funktion. Eine Seitensuche habe ich Menü nicht gefunden.
Stand nach der 2. Runde in der Schlacht Chrome vs. Lunascape – 2 : 0

3. Runde: Speicherverbrauch
Während Firefox teilweise 200MB RAM und mehr belegt, ist bei Chrome jeder Tab für sich selber verantwortlich. Jeder Tab wird einzeln im Task-Manager aufgeführt. Die Speicherverwaltung von Lunascape orientiert sich am Firefox. Sollte also ein Tab abstürzten, muss der gesamte Browser abgeschossen werden.
Stand nach der 3. Runde in der Schlacht Chrome vs. Lunascape – 3 : 0

4. Runde: Engines
Bisher ist Lunascape der einzige Browser, der alle drei Engines (IE, Firefox, Chrome) unter einem Dach vereint. Für den Firefox gab es dafür ein Plugin, der die IE Engine in den Firefox implementierte. Chrome kann da nicht mithalten.
Stand nach der 4. Runde in der Schlacht Chrome vs. Lunascape – 3 : 1

5. Runde: WebKit Seitenaufbau
Chrome basiert auf WebKit und im Lunascape ist es eine von drei Engines. WebKit soll die angeblich schnellste Engine sein, die derzeit auf dem Browsermarkt ist.

Chrome

Lunascape

Der erste Screenshot ist vom Google Chrome Browser beim Aufrufen von www.web.de, der zweite beim Aufrufen der gleichen Adresse im Lunascape. Wie man sieht braucht Lunascape wesentlich länger. Der Test wurde mehrmals wiederholt und ergab immer das gleiche Ergebnis. Einer der Fehler im Chrome Browser ist im Lunascape Web Inspector nur eine Warnung.
Stand nach der 5. Runde in der Schlacht Chrome vs. Lunascape – 4 : 1

6. Runde WebKit Speicheranalyse
Während der Lunascape beim Seitenaufbau gepatzt hat, glänzt er bei der Analyse des Speicherverbrauches. Google und Lunascape scheinen unterschiedliche Versionen vom WebKit implementiert zu haben.
Stand nach der 6. Runde in der Schlacht Chrome vs. Lunascape – 4 : 2

Nach 6 Runden kommen wir zu einem klaren Ergebnis nach Punkten. Für Entwickler ist der Browser bedingt geeignet, da man mit ihm schnell verschiedene Browser testen kann. Im normalen Alltag kann ich den Browser nicht empfehlen, aufgrund der mangelnden Shortcuts.

Usability: www ist nur eine Subdomain

Für viele Menschen sind Domains, Firstleveldomains und Subdomains immer noch ein Buch mit sieben Siegeln. Oft fällt auch die Unterscheidung zwischen Domain und URL schwer. Dabei ist es, wie immer wenn man weiß wie es geht, ganz einfach.

Eine Domain ist alles ohne die Subdomains und Verzeichnisse bzw. Dateien. URLs sind dagegen der gesamte String.

[html]

google.de
web.de


www.google.de
www.google.de/verzeichnis/datei.html
google.de/verzeichnis/datei.html
[/html]

Die Domain kostet Geld. Je nach Endung (.de / .com / .net) mehr oder weniger. Wundert mich, das es die in Deutschland nicht schon beim Aldi gibt. Mittlerweile ist, glaube ich, schon der ganzen Duden registriert.

Die Subdomain kostet aber kein Geld und hier geht die Usability weiter, wenn man davon ausgeht, das sie bei der Domain anfängt. Als SysAdmin kann man an der Domain nichts verändern. Die kommt vom Kunden oder hat die Firma bereits eingekauft, an der Subdomain dagegen schon.

Wie oft kommt es vor, das man mal ein W zuviel oder zu wenig eintippt? Wäre es dann nicht fantastisch, wenn man trotzdem auf die Seite kommt. Der Kunde ist König, warum sollte man ihn also für seinen kleinen Fehler bestrafen, wenn wir es ohne Probleme korrigieren können?

Damit der Kunde trotz falscher Subdomain, auf der richtigen Domain landet, gibt es zwei Angriffspunkte. Zuerst einmal muss man die falsche Anfrage akzeptieren, getreu dem Motto, es gibt keine dummen Fragen nur Dumme antworten, können wir ihn jetzt gleich korrigieren oder dies später per htaccess tun.
Aufgrund von Serverkonfigurationen kann es sein, das zwar alle Subdomains zum Ziel führen, aber man den Server nicht direkt konfigurieren darf und dies mittels htaccess machen muss.

Sollte htaccess auch nicht möglich sein, weil damit im Prinzip die Einstellungen vom Apache überschrieben bzw. erweitert werden, könnte man noch auf PHP zurückgreifen.

Alternative zu Zend Studio

Das absolute Non Plus Ultra für PHP Entwickler ist das Zend Studio. Eine Entwicklungsumgebung die so gut wie keine Wünsche mehr offen lässt. Mit knapp 500€ kostet die Entwicklungsumgebung jedoch auch nicht wenig. In Firmen mag dies der gerechte Ausgleich zum Office sein. Während Sekretärinnen und Chef hauptsächlich Microsoft Produkte nutzen, ist für einen Entwickler ein kostenloses Linux Derivat viel angenehmer. Zudem es den IE auch für Linux gibt.

Für PHP Entwickler, die jeglich Lizenzkosten vermeiden wollen, gibt es jedoch eine kostenlose Alternative die nicht umsonst ist, Eclipse mit PDT. Eclipse ist eine kostenlose Entwicklungsumgebung, die ursprünglich auf Java ausgerichtet ist.

Mit nur einem Plugin hat man jedoch auch die Möglichkeit HTML, CSS, PHP und JavaScript zu implementieren. Ein paar Java Features gehen unterwegs verloren. So funktioniert das Shortcut STRG + 7 in der PHP Ansicht nicht. Hiermit ist es möglich, markierte Zeilen mit einzeiligen Kommentarzeichen zu versehen und wieder aufzuheben.

Syntaxfehler werden angezeigt aber nicht, wie in Java, automatisch korrigiert. F3 dagegen funktioniert insofern, das Eclipse alle Dateien auflistet in denen die Funktion vorkommt. Welche im konkreten Fall verwendet wird, kann es nicht entscheiden. Includes und Requieres werden also nicht interpretiert.

Hier liegt auch der Schwachpunkt. Ein direktes debugging wie im Zend Studio ist nicht möglich, da Eclipse den Code nur teilweise versteht. Variablen, Funktionen, Methoden und Klassen werden erkannt und vorgeschlagen. Code wird vervollständigt. Auf nicht geschlossene HTML-Attribute, Klammern und Anführungszeichen wird hingewiesen.

Kurz vor Jahresende kommt PDT in der Version 2. Wer es jetzt schon mal testen will findet es unter http://www.eclipse.org/pdt/ . PDT wird von IBM zusammen mit Zend entwickelt. Man kann also hoffen, das es in der nächsten Version eine Reihe von Verbesserungen gibt.

Meine liebste MySQL 5 Neuerung

Gerade im Internet ist es wichtig, das man auf dem aktuellen Stand. Dies gilt besonders im Kontext mit Sicherheitslücken. Für Server Administratoren bedeutet dies jedoch auch einen erheblichen Mehraufwand, den man erstmal nicht bezahlt bekommt.

Mittlerweile gibt es aber auch viele Anwendungen die nach höheren Versionsnummer schreien. Als Administrator kann man entweder einen neuen Server mit der neuen Version aufsetzen oder den ganzen Server updaten und hoffen, dass später noch alles funktioniert.

Der Umstieg von MySQL 4 auf 5 und PHP 4 auf 5 hat relativ problemlos funktioniert. Besonders bei PHP wird es jedoch immer schwieriger die Altlasten mitzutragen. Die Version 6 von PHP wird deshalb nicht so einfach zu PHP 5 kompatibel sein. Entwickler werden hier gezwungen werden, ihre alten Gewohnheiten abzulegen und PHP vielleicht auf eine ganz neue Art und Weise zu programmieren.

Als Entwickler schreie ich mittlerweile schon nach MySQL 5. Man sollte meinen dies ist Standard, bei manchen Hosting Agenturen anscheinend jedoch noch nicht. Mein liebste Funktion, die erst seit MySQL 5 verfügbar ist heißt ON DUPLICATE KEY UPDATE. Eine fantastische Erleichterung, die es überall geben sollte.

Früher:
1. Schauen ob in der Datenbank ein entsprechender Schlüssel vorhanden ist.
2. Abhängig von 1 entscheiden ob ich INSERT oder UPDATE nehme
3a. Neuen Datensatz einfügen
3b. Vorhandenen Datensatz updaten

Heute:
1. Vorher überlegen, welche unterschiedlichen Werte der Datensatz bei INSERT oder UPDATE hat
2. Ein SQL Statement für beide Fälle schreiben

Beispiel:
[sql]
// a und b sind die Schlüsselattribute

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

// Quelle: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
[/sql]

Der Vorteil liegt hier eindeutig in der Performance. Man braucht nur noch eine Abfrage an die Datenbank absetzen. Man muss keine Fallunterscheidung implementieren. Man wird gezwungen sich sinnvolle Schlüsselattribute zu überlegen.

Die Anforderungen steigen – WordPress Plugin List

Noch ist mein Blog nicht ganz fertig, was man vielleicht auch an der einen oder anderen Stelle merkt. Zum Einen fehlen noch die statischen Seiten, die anscheinend vom Template nicht unterstützt werden. Zum Anderen fehlen mir noch ein paar Erweiterungen / Plugins.

Bisher habe ich folgende Plugins installiert:

  • Akismet
  • FeedBurner FeedSmith
  • Google XML Sitemaps
  • iG:Syntax Hiliter
  • Marekkis Watermark-Plugin
  • Post Teaser
  • Post to PDF
  • Simple Tags
  • WP lightbox 2

Wie bereits oben erwähnt fehlt mir noch ein Glossar Plugin. So wie es im Moment ausschaut, werde ich dieses wohl selber programmieren müssen, weil es bisher noch nichts fertiges für WordPress gibt. Wie dies genau abläuft werde ich im Blog berichten.

Außerdem hätte ich gerne noch ein Plugin, welches einen direkten Zugriff auf meine Downloaddateien verhindert oder entsprechend korrigiert und protokolliert. In der WordPressgemeinde scheint es dafür bisher kein Bewusstsein zu geben und dem entsprechend auch kein Plugin, von daher wird dieses wohl auch selber programmiert werden müssen.

Sollte jemand entsprechende Plugins kennen, die bereits eine entsprechende Funktionalität zu den obigen Themengebieten bieten, wäre ich für einen Kommentar dankbar.