Page 36 of 59

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.

Test: Lunascape Browser

Nachdem ich es im T3N Blog gelesen hatte, mußte ich es auch gleich ausprobieren. Den neuen Lunascape Browser. Als Google Anwender ist man gewohnt, das Anwendungen im Alpha, Beta Stadium sind und trotzdem funktionieren. Also auch gleich mal die Lunascape5 Alpha gezogen. Besonders für Developer soll dieser Browser besonders geeignet sein, weil alle drei Browser Engines in ihm vereint sind.


Beim ersten Starten wird auch gleich nach der bevorzugten Engine gefragt, die man später aber wieder ändern kann. Sofort stören mich die vielen Leisten, als Google Chrome Benutzer bin ich Minimalismus gewohnt.

Ohne irgendwas konfiguriert oder importiert zu haben, sind sofort gefühlte 1000 Feeds abonniert. Diese Poppen auch gleich in einem Outlook ähnlichen Fenster unten rechts in der Taskleiste hoch. Mein Geschmack ist es nicht. Aber jetzt ist verständlich warum er 512MB Arbeitsspeicher erfordert.

Die Performance konnte ich nicht testen, weil der Browser keine Webseite anzeigen konnte. Die Proxy Einstellungen sollte er sich, wie Chrome auch, direkt vom IE ziehen, jedoch konnte er komischerweise nur seine eigene Suche und die Feeds ansteuern.

Definitiv den Hals gekostet hat den Browser jedoch die nicht vorhandenen Shortcuts. Als Browser für Entwickler gepriesen und dann kein Strg + L und kein Strg + T . So kann ich nicht arbeiten. Ich mußte den Test abbrechen.

Java: Unterschiede zwischen && vs. &

Viele, denke ich, wissen gar nicht, das man eine Verknüpfung auch mit einem einfach & durchführen kann. Was der Unterschied zum doppelten && ist, soll der folgende Artikel beleuchten. Dieses Verhalten ist unabhängig von der Programmiersprache, für PHP habe ich es auch nochmals demonstriert. Im folgenden Beispiel wird Java verwendet. Grundsätzlich müssen bei einer UND-Verknüpfung alle Bedingungen WAHR sein, damit das Statement ausgeführt wird. Sollte nur eine Bedingung FALSE sein, wird der ELSE-Zweig genommen. Der Unterschied zwischen & und && ist jetzt nur, wie geht es weiter, wenn die erste Bedingung bereits FALSE ist.

Beispiel von && vs &

[java]
public class UndUnd {

public static void main(String[] args) {

if(a() && b()){
System.out.println("Fertig");
}else{
System.out.println("UnFertig");
}

}

public static boolean a(){
System.out.print("Hallo ");
return false;
}

public static boolean b(){
System.out.println("Welt");
return true;
}
}

// Ausgabe: Hallo
// Unfertig
[/java]

Bei Verwendung des && Operators, wird sofort nach der ersten fehlerhaften Bedingung abgebrochen. Für die Performance ist dies natürlich optimal. Jedoch könnte es sein, das sich in der Funktion B Programmcode befindet der trotzdem auf jeden Fall ausgeführt werden soll, genauso wie in der Funktion A. Hier würde man den einfach & Operator verwenden.

[java]
public class UndUnd {

public static void main(String[] args) {

if(a() & b()){
System.out.println("Fertig");
}else{
System.out.println("UnFertig");
}

}

public static boolean a(){
System.out.print("Hallo ");
return false;
}

public static boolean b(){
System.out.println("Welt");
return true;
}
}

// Ausgabe: Hallo Welt
// UnFertig
[/java]

Performance && vs. &

Für die Performance sollte man immer && verwenden, weil dann bereits nach der ersten fehlerhaften Bedingung abgebrochen wird. Wenn man gewährleisten will das alle Bedingungen überprüft werden, sollte man dagegen das einfach & wählen.

Zusammenfassung – tl;dr

Soll sichergestellt werden, dass alle Bedingungen in einem if untersucht werden, sollte ein einfaches & verwendet werden, besser für die Performance ist die Verwendung ist &&.

Weitere Fragen zur Java-Programmierung? Jetzt einfach und schnell einen Kommentar hinterlassen, mit E-Mail Adresse, und deine Frage wird ausführlich im BugBlog beantwortet.

[random_content group_id=”210″ num_posts=”1″]