Month: November 2008

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.

5 Tipps für das richtige WordPress Theme

Täglich liest man in irgendwelchen Blogs von neuen coolen Themes für den WordPress Blog. Von dem neuen Design geblendet übersieht man manchmal, das manche Funktionen nun nicht mehr verfügbar sind. Das Design folgt also nicht der Funktion, sondern umgekehrt. Dies ist für Besucher natürlich besonders ärgerlich und so wird das neue Design schnell zum Hassobjekt, wenn liebgewonnene Funktionen nun nicht mehr zur Verfügung stehen.

Besonders ärgerlich ist es, wenn man ein passendes Design nicht erweitern kann. Deshalb eine kleine Checkliste, die helfen soll sich im WordPress Theme Dschungel zurecht zu finden.

1. Unter welcher Lizenz wurde das Theme veröffentlicht? Für private oder nicht kommerzielle Zwecke ist es meist kostenlos. Diese Lizenz könnte man schon verletzen, wenn man Anzeigen auf seiner Seite platziert. Ich empfehle ein Theme was sowohl für private und kommerzielle Zwecke verwendet werden kann.

2. Welche Funktionen sind auf den Screenshots zu erkennen? Bereits auf den Screenshots von vielen Themes ist zu erkennen ob es statische Seiten gibt oder Kategorien. Bei WordPress Themes die besonders individuell sind, kann man davon ausgehen, dass keine Widgets unterstützt werden.

3. Ist das Theme für Suchmaschinenoptimierung geeignet? Für WordPress gibt es mittlerweile eine unzählige Anzahl an Plugins zur Suchmaschinenoptimierung. Diese fängt jedoch schon bei der Auswahl des Themes an. So sollte man Bildtexte nicht fest verdrahten müssen. Bilder kann Google nicht lesen.

4. Designer sind keine Programmierer. Bevor man ein Theme fest in seinem WordPress installierte sollte man es vorher in verschiedenen Browsern testen. Für einen schnellen Test eignet sich dafür der neue Lunascape Browser.

5. Werden PSD Dateien bereitgestellt? Neben dem Archiv für den Blog sollte man auch schauen, das man sich die PSD Dateien speichert. Diese können später nützlich sein, wenn man den Blog erweitern will. Oder mal die Farben ändern will.

Wer diese 5 Tipps befolgt, sollte die Anzahl von Themes stark reduzieren können und sich später nicht ärgern müssen, wenn man irgendwann das Theme wechseln muss, weil es nicht anpassbar ist.

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.