Too Cool for Internet Explorer

googlemail mit elinks



googlemail mit elinks ... funktioniert einwandfrei :-).











Open Cubic Player


Der Linux Port des legendären (Open) Cubic Player...













DeskBrowse - WebBrowser


DeskBrowse ist ein schlanker und schneller WebBrowser, der auf der WebKit / KHTML Engine basiert, derselben Engine, die auch von Safari verwendet wird. DeskBrowse verzichtet auf den meisten Schnickschnack anderer Browser und stellt nur die nötigsten Funktionen - wie Tabs und Lesezeichen - zur Verfügung. Zusätzlich gibt es jedoch noch einen passwortgeschützten Kiosk-Modus.

Das praktischste an diesem Browser ist neben der Schlankheit wohl, dass man ihn ber Hotkey ein- und ausblenden kann. Ich denke ich werde ihn wohl zum Browsen von Online-Dokumentationen verwenden, ist es doch äusserst praktisch, wenn man einen Browser beim Programmieren schnell zum Nachschlagen einer Funktion o.ä. per Hotkey in den Vordergrund holen kann.

Deskbrowse ist Open-Source und steht unter der GNU General Public License.



visor - terminal window


Ich habe mal wieder ein super praktisches Tool entdeckt, das mir die tägliche Arbeit komfortabler gestaltet.

"visor - systemwide terminal window" ist eine Erweiterung für das Terminal von Mac OS X ab Version 10.4. Wenn das Terminal gestartet ist, kann über einen Hotkey ein Terminalfenster am oberen Bildrand eingeblendet werden. Per default liegt der Hotkey auf ^F1 - schon nach kurzer Zeit merkt man, wie praktisch die ganze Sache ist. Normalerweise ist es doch so, daß das Terminalfenster immer verdeckt im Hintergrund liegt - oder sich gar auf einem anderen Desktop befindet, wenn man es gerade braucht. Per Visor lässt sich ein Terminalfenster aus jeder Applikation heraus schnell in den Vordergrund holen.

Ich habe Visor mit dem desktop manager getestet - es funktioniert problemlos und das Terminal wird immer im aktuellen Desktop eingeblendet. Der einzige Nachteil mag sein, dass das OSX Terminal bereits gestartet sein muss, damit Visor funktioniert. Ich finde es jedoch nicht weiter schlimm - das Terminal wird seit neuestem bei mir gleich beim Hochfahren des Systems gestartet.

Visor ist frei und Open Source - unter welcher Lizenz es steht, konnte ich jetzt leider nicht herausfinden - diese Information wird ggf. nachgereicht.



Mail Umzug mit exchange-away


Ich war heute gezwungen meine IMAP basierte Mailbox von einem Server zu einem anderen umzuziehen. Wie macht man das am besten mit so wenig wie möglich Aufwand?

Ein Freund hat mir für die Migration das freie Tool exchange-away empfohlen. Es handelt sich dabei um ein Perl Script das völlig unkompliziert installiert werden kann, ich musste lediglich über CPAN die Bibliothek Mail::IMAPClient nachinstallieren.

Natürlich wird exchange-away über die Kommandozeile aufgerufen. Es erwartet Parameter zum Verbindungsaufbau zum Quell- und zum Zielserver sowie den Namen eines IMAP Ordners, den man migrieren möchte. Optional können noch Parameter angeben werden z.b. ob der Quell-Server mit Pausen zwischen dem Abholen der Mails geschont werden soll, damit dieser nicht Überlastet wird und ob die Mails vom Quell-Server nach dem Abholen sofort gelöscht werden sollen. Letzteres empfiehlt sich nicht, da bei der Migration ja immer etwas schief gehen kann und nach dem Löschen die e-mails unwiderruflich verloren sind.

exchange-away hat für mich absolut problemlos funktioniert. Insgesamt habe ich so 3 Ordner mit zusammen ca. 4000 Mails verschoben - relativ flott und ohne Fehler und so kann ich das Tool nur jedem ans Herz legen, der einmal seine Mails von einem IMAP Server zu einem anderen umziehen muss.



PHP Programmierung mit VIM


Ich bin kürzlich wieder auf den VIM als Entwicklungsumgebung für PHP umgestiegen, nachdem ich ja sehr lange Zeit mit Jedit entwickelt habe und damit auch im Grossen und Ganzen sehr zufrieden war.

Das Problem mit jedit war höchstens, dass es als Java Applikation auf meinem Powerbook doch manchmal etwas träge war, vor allem wenn ich gleichzeitig MP3s gehört habe. Also musste doch wieder ein schnellerer Editor her und natürlich wieder einer, der auf allen Plattformen verfügbar ist und nachdem ich ohnehin hin und wieder dem VIM nachgetrauert habe, bin ich ohne lang zu überlegen wieder umgestiegen.

Dafür habe ich mir das Buch 'vim ge-packt' von Reinhard Wobst aus dem mitp-Verlag gekauft um mal etwas tiefer in den VIM einzusteigen. Generell hat man ja bei Büchern über den VI nicht viel auswahl, aber das o.g. Buch eignet sich auch glücklicherweise wirklich hervorragend für den tieferen Einstieg. Es handelt sich um eine kompakte Referenz, die die wichtigsten Themen zum Umgang mit dem VI behandelt. Sehr hilfreich sind auch die vielen weiterführenden Hinweise auf die in VIM integrierte Hilfe.

Natürlich hatte ich wenig Zeit (und Lust) mir eine eignene Konfiguration für den VIM zu basteln und so habe mal im Internet nach brauchbarem gestöbert. Dabei bin ich auf die Serie 'Comfortable PHP editing with VIM' im Weblog von Tobias Schlitt gestossen. Netterweise bietet er auch gleich seine .vimrc zum Download an, mit der es sich wirklich komfortabel unter dem VIM entwickeln lässt. Die Serie umfasst (derzeit) drei Teile, die ich hier verlinkt habe.

Zum Abschluss möchte ich noch auf das Script Archiv auf der Homepage des VIM verweisen, das 100e Erweiterungen bereitstellt, sodass man sich eine äusserst mächtige Entwicklungsumgebung bauen kann, die eigentlich keine Wünsche mehr offen lässt.




FileSystemWatcher und Steuerung von Applikationen



Für ein anstehendes Projekt wird ein Teil die Entwicklung einer Steuerung für AdobeIndesign sein. Ich möchte schon seit längerer Zeit mal C# und .net in einem Projekt anwenden und denke, dass hier endlich die Gelegenheit dafür kommen könnte, zumal C# einige Funktionen bietet, die ich wirklich gut gebrauchen kann wie z.b. eine Methode zur Überwachung von Dateisystemen mittels dem FileSystemWatcher Objekt. Darüber lassen sich recht einfach HotFolder Mechanismen realisieren.

Zukünftig wird möglicherweise noch die Notwendigkeit bestehen InDesign unter Mac OSX zu steuern. Offiziell waren mir hier bisher nur die Möglichkeiten über AppleScript und Javascript bekannt. Allerdings finde ich die Syntax von AppleScript schon recht grausig, deshalb war - und bin - ich auf der Suche nach Alternativen. Bei freshmeat bin ich jetzt auch hier wieder fündig geworden.

"Appscript is a high-level, user-friendly MacPython to Apple
event bridge that allows users to control scriptable Mac OS X
applications using ordinary Python scripts. It makes
MacPython a serious alternative to Apple's own AppleScript
language for automating a Mac."

Ich hatte noch nicht die Zeit das ganze auszutesten inwieweit man AppleScript tatsächlich durch appscript ersetzen kann. Auf der Web Seite des Projekts kann man immerhin schon einige Beispiele finden, wie man mittels appscript Anwendungen ansprechen kann.


MySQL Statistiken mit MySQL Activity Report



freshmeat.net ist eine wahre Fundgrube wenn man auf der suche nach nützlichen open source tools ist. Viele der Tools, über die ich hier blogge, habe ich bei freshmeat gefunden. Und ich habe noch eine ganze Reihe Links zu Anwendungen, die ich noch nicht abgearbeitet habe aber hoffentlich demnächst mal kurz vorstellen kann.

Oft findet man solche Tools auch ganz einfach "nebenbei" während man eigentlich auf der Suche nach etwas anderem ist. So habe ich gestern den MySQL Activity Report gefunden.

Hierbei handelt es sich um ein Tool mit dem ein MySQL Datenbankadministrator Informationen über Parameter und Variablen zu Datenbanken sammeln und statistisch auswerten kann. Die gesammelten Informationen können z.b. zum Überwachen von Datenbanken verwendet werden, MySQL Activity Report eignet sich aber auch als Hilfe zum Performance Tuning von MySQL Datenbanken. Eine Demo Seite zeigt Beispiele, wie die Daten ausgewertet und grafisch aufbereitet werden können.

Das zum Download bereitgestellte Paket enthält neben dem Dämon, der die Daten über die MySQL Client Library sammelt und in einer Round Robin Datenbank speichert - es wird die rrdtool Library von Tobias Oetiker benötigt - auch Beispiele für die graphische Auswertung.



twin - textmode window manager


Ich glaube ich habe an anderer Stelle schon erwähnt, dass ich sehr gerne die Konsole zum Arbeiten verwende und oftmals viele Konsolen zugleich geöffnet habe. Zum besseren Organisieren der geöffneten Konsolen habe ich bisher Tabs verwendet bzw. seit einiger Zeit auch die QuadKonsole. Es gibt aber noch eine weitere Möglichkeit.

twin ist ein textbasierter Window Manager für Linux und kann in einer Konsole dargestellt werden oder alternativ als X11 Fenster oder in sich selbst, als twin Fenster. Twin kann ähnlich wie X11 basierte Window Manager viele verschiedene Fenster in einem Screen verwalten. Die Fenster können wie man es von einer grafischen Benutzeroberfläche gewohnt ist Verschoben, in der Grösse geändert und wahlweise einen Fokus zum Arbeite erhalten bzw. in den Vorder und Hintergrund geschoben werden. Über die mitgelieferte Terminal Applikation lassen sich so nahezu beliebige textbasierte Anwendungen starten in eigenen Fenstern auf dem twin Desktop starten. Über eine mitgelieferte Bibliothek können auch spezielle twin-Anwendungen geschrieben werden. Als Beispiel gibt es eine twin-Oberfläche für den freien MP3 Player XMMS sowie einen Taschenrechner.

Ich bin mir (noch) nicht sicher, wie sinnvoll der Einsatz von twin unter eine grafischen Oberfläche ist. Wenn man aber rein im textmodus arbeiten möchte, ist twin wirklich brauchbar, aber auch unter einer grafischen Oberfläche hat twin seinen Reiz und es macht wirklich spass damit zu arbeiten.

Der Screenshot zeigt eine typische twin session. In der Aktuell verfügbaren Version 0.5.1 ist es möglich Themes zu Verwenden, sodass die Fensterrahmen und Icons von twin grafisch dargestellt werden. Den Screenshot habe ich übrigens zwar unter Mac OS X - passend zum Mac OS 9 Theme von twin - erstellt, twin selbst läuft aber auf einem Linux Rechner mit einer X11 Weiterleitung auf den Mac. Leider habe ich es bisher noch nicht geschaft twin direkt unter Mac OS X zu kompilieren.


PixelQuelle Web Server / lighttpd


In den letzten Tagen gab es für uns noch einiges zu tun. Mit dem Umzug auf den neuen Server hatten wir uns dafür entschieden zum Performance Tuning zwei Web Server auf unserer Maschine laufen zu lassen. Ein Apache mit PHP5 Unterstützung zum Ausliefern der dynamischen Seiten und einen eigenen Web Server, der alle Bilder (Thumbnails, Previews, Icons etc.) ausliefert, sodaß der Apache sich rein um die php-generierten Seiten kümmern kann. Bei dem zweiten Web Server habe ich mich für lighttpd  entschieden.

Unser erstes Konzept sah vor, daß der Apache auf dem Standard Port 80 laufen sollte und der 2. Web Server auf Port 8080. Leider ist es so, daß Port 8080 oft Firewall bedingt nicht zur Verfügung steht und deshalb ein paar unserer Benutzer keine Bilder mehr sehen konnten.

In so einem Fall macht es sich dann wirklich bezahlt, welchen Server Provider man wählt: Wir konnten über unseren neuen Provider problemlos weitere IP Adressen bestellen und sind nun in der Lage unsere beiden Web Server mit unterschiedlichen IP Adressen über den Standard Port 80 zu betreiben.

Vor dem Umzug der PixelQuelle habe ich mir einige performance optimierte Web Server angesehen und bin dabei auf lighttpd von Jan Kneschke gestossen. lighttpd ist klein, schnell, flexibel und äußerst leicht zum Installieren. Die Projektseite bietet u.a. eine übersichtliche Dokumentation, wer weitere Informationen benötigt oder Fragen hat, dem sei die Mailingliste und das Archiv empfohlen.

Ich mag lighttpd, weil er äußerst zuverlässig ist, sich leicht konfigurieren läßt und man schnell und unkompliziert mehrere Web Server mit unterschiedlichsten Konfigurationen starten kann. Es juckt mich direkt in den Fingern einmal den Apache, der ja im moment noch für die dynamischen Web Seiten zuständig ist, ebenfalls durch lighttpd zu ersetzen.



Paparazzi! - Screenshots von Web Seiten


Für Mac OS X gibt es ein Tool, mit dem sich auf einfachste Art und Weise Screenshots von Web Seiten erstellen lassen.

Paparazzi! lädt im Hintergrund die Web Seite einer eingegebenen URL und fertigt einen Screenshot an, wobei auch der Teil, der vom Web Browser verdeckt werden würde, berücksichtigt wird. Paparazzi! ist äußerst leicht zu bedienen. Das Programm erwartet die Eingabe einer URL sowie die Breite und die Mindeshöhe, die für das "Abfotografieren" der Web Seite berücksichtigt werden soll. Der Screenshot läßt sich anschließend in Originalgröße im PNG Format speichern. Paparazzi! ist Open Source, der Objective-C Quellcode kann von der Homepage des Projekts heruntergeladen werden.


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.