Too Cool for Internet Explorer

QuadKonsole 2.0


Eines der für mich wichtigsten Werkzeuge beim Arbeiten unter Linux ist sicherlich die Konsole. So ist es nicht ungewöhnlich, wenn ich gleichzeitig viele Konsolen geöffnet habe. Tabs brachten schon eine echte Erleichterung bei der Arbeit mit Konsolen mit sich.

Jetzt habe ich etwas anderes entdeckt. Die QuadKonsole von Simon Perreault unterstützt das Arbeiten mit mehreren Konsolen ohne die Verwendung von Tabs. Dabei werden die Konsolen in einem Raster neben- bzw. untereinander dargestellt. Die Voreinstellung bietet 4 Konsolen, über einen Parameter können beim Programmstart aber auch mehr Konsolen dargestellt werden. Der Fokus folgt der Maus, alternativ kann man per CTRL + SHIFT + Pfeiltasten zwischen den Konsolen navigieren.

Die Software gefällt mir wirklich gut. Allerdings würde ich mir bei dieser Gelegenheit mal wieder einen größeren TFT mit höherer Auflösung wünschen ;-)



PHP Debugger und Profiler


Ich war lange Zeit auf der Suche nach einem guten und freien Profiler für PHP und bin mit dem von Derick Rethans entwickelten xdebug 2 fündig geworden. Im Rahmen des anstehenden Serverumzugs der Web Seite PixelQuelle.de beschäftige ich mich im Moment auch mit der Optimierung der von uns dafür eingesetzten Software und dem Auffinden von Flaschenhälsen. Dazu eignet sich der Profiler von xdebug hervorragend. Dieser kann nämlich Informationen des Profilers im cachegrind kompatiblen Dateiformat erzeugen, welches unter Linux mit dem Programm kcachegrind (siehe Screenshot) bzw. unter Windows mittels wincachegrind visualisiert werden kann. Für jedes Script kann man so ganz genau sehen, welche Funktionen wie, wo und wie oft aufgerufen werden, wieviel Zeit dafür benötigt wird und vieles mehr.

Interessant ist in diesem Zusammenhang auch der Vergleich von Funktionen wie preg_replace und str_replace. Erstere ist zwar sehr viel flexibler, kostet aber bei der Ausführung auch sehr viel mehr Zeit. Oft kann man Scripten auf diese Weise gut optimieren, indem man ein preg_replace durch einen Code-Block mit den Standard String-Funktionen von PHP wie str_replace, substr, etc. ersetzt. Das ist dann zwar mehr Code, kann aber am Ende u.U. um einiges schneller sein als die Lösung mittels preg_replace.

Xdebug ist derzeit noch beta, läuft aber für meine Verhältnisse äußerst stabil. Die Installation gestaltet sich relativ einfach. Entweder man installiert das ganze über PECL, oder man holt sich den Quellcode von xdebug und PHP und compiliert sich xdebug selbst als PHP modul. Auf der Web Seite von xdebug finden sich ausführliche Informationen zur Installation und Konfiguration des Moduls.

Wenn jemand eine Lösung zum Visualisieren der cachegrind Dateien für Mac OS X kennt, der möge sich bitte melden - denn die fehlt mir hier leider noch :-(.



PHP IDE mit PHP-GTK


Tulip ist eine Entwicklungsumgebung für PHP, die selbst in PHP in Verbindung mit dem GUI Toolkit GTK geschrieben ist. Tulip verwendet als Editorkomponente das sehr ausgereifte Scintilla, bietet die Integration von CVS und enthält einen Datenbank Navigator über den derzeit der Zugriff auf MySQL und PostgreSQL Datenbanken möglich ist.


PHP Maguma Studio wird Open Source


Laut einem Bericht des Online News Services golem.de, plant der Software Hersteller Maguma seine PHP Enwicklungsumgebung Maguma Studio demnächst als Open Source freizugeben. Maguma Studio ist der Vorgänger der Maguma Workbench, die im Moment in der Version 2.2 vorliegt.


Hula Server - Kalender und Mail Server


Ich habe mir gerade Hula Server installiert. Hula ist ein Kalender und Mail Server. Ziel ist die Entwicklung eines besonders einfach und komfortabel zu bedienenden Servers zum Verwalten von Kalendern, Terminen und e-mails per Weboberfläche. Das Web Interface soll dank der Verwendung von Javascript und DHTML ähnlich komfortabel zu bedienen sein wie Google's Gmail Service.

Das hört sich schonmal sehr gut an und ich hoffe, daß der erste Eindruck, den ich von der Software gewonnen habe, nicht trügt. Selten habe ich die Entwicklungsversion eines Projektes - Pakete sind noch nicht erhältlich - so ohne jegliche Probleme installieren können: Quellcode per subversion client runterladen, compilieren und installieren, starten - geht!

Das Admin Interface orientiert sich an die von Novell schon bekannten und auch die Icons und Bezeichnungen kommen mir sehr bekannt vor. Das Admin Interface ist alles in allem sehr übersichtlich und einfach zu bedienen - obwohl es umfangreiche Funktionalität vermuten läßt.

Hula basiert auf dem von Novell kürzlich als Open Source freigegebenen NetMail Code. Selbstverständlich ist auch Hula Open Source und wird unter den Lizenzen LGPL und MPL angeboten.

Ich denke, daß ich die nächsten Tage einiges zu tun haben werde, die Arbeitsweise und Möglichkeiten von Hula auszuloten :-).



PHP Generator für Querverweise und Source Dokumentation


PHPXRef ist ein Hilfsprogramm, das es erleichtern soll den Überblick über umfangreiche PHP Projekte zu behalten. Zu diesem Zweck kann es ein Projektverzeichnis einlesen und statische HTML Seiten aus dem Quellcode und der darin enthaltenen Dokumentation erzeugen.

PHPXRef verarbeitet Dokumentation, die im Format von phpdoc innerhalb des Quellcodes angelegt wurde. Außerdem indiziert PHPXref Klassen, Funktionen, Variablen, Konstanten und über require bzw. include eingebundene Dateien und kann so Querverweise zwischen den einzelnen Quelltexten herstellen.

So ist es beispielsweise auf einfachste Weise möglich festzustellen, in welchen Dateien eine bestimmte Funktion, Variable etc. Verwendung findet und aufgerufen wird, bzw. wo diese definiert wurde. PHPXRef bietet umfangreiche Suchmöglichkeiten innerhalb der Quelltexte und stellt diese formatiert und coloriert dar.

PHP UML Plugin für Dia


Dia ist ein Programm, ähnlich dem kommerziellen Visio, zum Erstellen von Diagrammen wie z.b. Netzwerkplänen, Programmablaufplänen und auch UML Diagrammen.

Mit uml2php gibt es nun ein Plugin mit dem es möglich ist automatisiert Source Code aus einem UML Klassen Modell für PHP5 zu generieren.

Dia ist u.a. für die Betriebssysteme Linux, Windows und Mac OS X (über die Darwinports) erhältlich.


Bildschirmaufzeichnung per VNC


Vnc2swf ist eine Software, über die man Bildschirmaktionen aufzeichnen und im Flash(TM) Format (SWF) von Macromedia speichern kann. Dies ist z.b. nützlich, wenn man animierte Tutorials zu Anwendungsprogrammen erstellen möchte. Wie der Name schon sagt, arbeitet das Tool über das weit verbreitete VNC Protokoll, offiziell unterstützt werden derzeit die Programme XVnc (Linux/Unix), WinVNC (Windows), OSXVnc (Mac OS X) und x11vnc (Linux/Unix).

Die eigentliche Software zur Aufzeichnung einer Animation - vnc2swf - ist derzeit nur unter Linux/Unix sowie Mac OS X lauffähig. Der Autor plant jedoch eine Neuentwicklung, die dann auch unter Windows lauffähig sein soll.


PNGs optimieren


Oft hat man das Problem, daß PNG Dateien Aufgrund der Möglichkeit zur Verwendung von Transparenzen verwendet werden müssen, die fertigen Dateien aber zumindest für das Web zu groß sind. Die Titelgrafik auf meiner Homepage beispielsweise war über 260kb groß - zu viel, um sie auf einer Website benutzen zu können. Zur Lösung dieses Problems gibt es zum Glück einige sehr praktische Hilfsprogramme.

Eines davon, das für mich das optimalste Ergebnis lieferte, ist pngquant. Pngquant wandelt eine Grafik, die im 32-bit RGBA Format vorliegt, in eine 8-bit Datei um, ohne die transparenten Bereiche zu verlieren. Die Titelgrafik auf meiner Seite konnte so von 260kb auf unter 62kb reduziert werden - ohne nennenswerte Qualitätseinbuße.

Pngquant ist open source. Ausführbare Programme gibt es für Linux und Windows, der Source Code läßt sich ohne weiteres unter anderen Betriebssystem z.b. Mac OS X compilieren.

Ein weiteres nützliches Tool zur Kompressionsoptimierung ist pngcrush. Pngcrush bietet viele Optionen zur Anwendung verschiedenster Kompressionsfilter. Außerdem gibt es einen "brute" Modus, der über 100 verschiedene Kompressionsalgorithmen auf die jeweilige PNG Datei anwenden kann und dann den Algorithmus mit dem besten Ergebnis zur Generierung der Ausgabedatei verwendet.

Auch Pngcrush ist Open Source, unter Mac OS X kann es auch über die DarwinPorts installiert werden.