Too Cool for Internet Explorer

PHP Resources bei IBM developerWorks


IBM hat auf seiner Seite developerWorks, auf der viele äußerst interessante Artikel für Entwickler und Informationen zu Open Source Projekten zu finden sind, einen eigenen Bereich für PHP eingerichtet.

XDroplets zum Starten von X11 Anwendungen unter Mac OSX


XDroplets ist eine Sammlung von Applescripts zum Starten von X11 Anwendungen unter Mac OSX um diese besser ins System zu integrieren. XDroplets unterstützt das Starten aus dem Finder oder dem Dock heraus, ermöglicht Drag 'n Drop und das automatische Starten des X-Servers, wenn dieser noch nicht läuft.

Für Mac OSX Benutzer wie mich, die auch X11 Anwendungen verwenden, ist dies eine sehr, sehr nützliche Sammlung. Ist es doch sonst so, daß man zunächst X11 Starten muß und danach die Anwendung über das X-Server Menü erst starten kann - etwas umständlich. Noch blöder ist es, wenn man ein Dokument immer mit einer bestimmten X11 Anwendung öffnen will. Das Zuweisen der X11 Anwendung zum Dokumententyp, klappt hier nämlich nicht. XDroplets schafft hier Abhilfe.

XDroplets liefert Startscripts für viele häufig verwendete X11 Applikationen. Wer eine Anwendung benötigt, die nicht von XDroplets unterstützt wird, kann sich sein eigenes Startscript mittels XDroplets Factory erstellen.

Vielleicht kann ich so endlich meinen unter Linux und Windows so heiß geliebten Imageviewer XnView auch unter OSX zum laufen bringen :-).

Firefox URL Shortcuts


Bei Firefox kann man sich URL Shortcuts für Lesezeichen definieren. Wenn man z.b. ein Lesezeichen zum Online Wörterbuch dict.leo.org mit dem Kürzel 't' speichert, genügt in Zukunft in der URL Adresse das Eingeben eines 't' zum Aufrufen der Seite. Das schöne daran: man kann dem Aufruf einen Parameter mitgeben, sodaß man beispielsweise direkt eine Suche auslösen kann. Die Eingabe von 't suchbegriff' löst jetzt bei mir eine direkte Suche nach dem entsprechenden Wort aus und liefert mir die Ergebnisliste zurück.

Ich habe mir für die für mich wichtigsten Seiten Shortcuts eingerichtet. Zu beachten ist, daß das '%s' in der URL den Platzhalter zur Parameterübergabe darstellt.


  • Name: LEO Wörterbuch
    Location: http://dict.leo.org/?search=%s
    Keyword: t

  • Name: PHP Referenz
    Location: http://de.php.net/search.php?pattern=%s&show=quickref
    Keyword: p

  • Name: MySQL Referenz
    Location: http://www.mysql.com/search/?q=%s
    Keyword: m



Selbstverständlich dürfen die Namen der Kürzel auch länger als ein Zeichen sein ;-).

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.

Umstellung meines Blogs


Ich werde mein Blog demnächst auf eine neue Software umstellen - ich glaube ich habe mich damals zu schnell für Wordpress entschieden und die erste Begeisterung ist mittlerweile merklich abgeflaut.

Natürlich sehe ich mir die Blogs anderer Leute - in erster Linie PHP Entwickler - an. Sebastian Bergmann verwendet das System Serendipity an dessen Entwicklung er und andere namhafte Entwickler beteiligt sind.

Ich habe das Serendipity Blog System jetzt seit einiger Zeit in einem Test laufen. Es hat ein paar nette Features wie z.b. den WYSIWYG Editor den ich mir mit der Zeit immer mehr wünsche. Nachdem ich außerdem meine Artikel aus Wordpress ohne Probleme per RSS Feed importieren konnte, wird es also wahrscheinlich auf Serendipity als neues System herauslaufen.


PHP, Apache und FastCGI


Timo Gmell hat eine Anleitung zum Installieren und Konfigurieren von PHP4 bzw. PHP5 in Verbindung mit FastCGI veröffentlicht.

Warum FastCGI?

Die Installation von PHP Mittels mod_php bringt zwar im Vergleich zu PHP-CGI erhebliche Geschwindigkeitsvorteile mit sich, hat aber auch mehrere Nachteile. So werden PHP Scripte mit dem Apache User ausgeführt wodurch verhindert wird, daß in über den FTP Benutzer angelegte Dateien und Verzeichnisse, die keine Schreibberechtigung für Andere Benutzer besitzen, geschrieben wird. Ein weiterer gravierender Nachteil und eine Sicherheitslücke ist, daß u.U. ein virtueller Host die Dateien eines anderen virtuellen Hosts lesen kann.

Mod_fastcgi führt PHP Prozesse mit dem User aus, der im jeweiligen virtuellen Host von Apache konfiguriert ist. Außerdem wird beim Start eine beliebige Anzahl von PHP-FCGI Prozessen geladen, die fest im Speicher verbleiben und nicht bei jedem neuen Request neu gestartet werden müssen. Die Konfiguration von PHP über FastCGI kann für einen virtuellen Host individuell eingestellt werden. So könnte man beispielsweise pro Host eine eigene php.ini Konfiguration oder sogar ein eigenes PHP Binary verwenden.

PHP Abstraktion einer Abstraktion


ActiveDBLib ist eine Abstraktionsschicht für Datenbankabstraktionsschichten...(!) ActiveDBLib möchte ein einheitliches Interface für Datenbankabstraktionsschichten zur Verfügung stellen. Im Moment werden die Schichten ADODB, Pear:DB und Metabase unterstützt.

Ich frage mich gerade, wie sinnvoll der Einsatz einer solchen weiteren Schicht ist. Wenn jetzt jemand ein ähnliches Projekt startet, können wir vielleicht bald mit einer Abstraktionsschicht der Abstraktionsschichten der Datenbankabstraktionsschichten rechnen.

Ich glaube auf diese Art von "Flexibilität" verzichte ich dann doch lieber (und wende mich wiederCreole zu).


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 :-).


Javascript Datenbank und SQL Interpreter


Jsdb ist eine kleine komplett in JavaScript geschriebene und in Standard Browsern ausführbare Datenbank mit einfachem SQL Interpreter. Eine in jsdb angelegte Datenbank existiert nur im Speicher des Web Clients. Die Datenbank ist sehr rudimentär gehalten, der SQL Interpreter unterstützt einfache SELECT Abfragen mit multiplen Joins, Bedingungen sowie Sortierung der Datensätze. Zum Manipulieren der Datenbank findet sich lediglich die INSERT Anweisung.

Nett - leider ist die Web Seite fast ausschließlich in catalan bzw. spanisch verfaßt - das gilt auch für die Kommentare im Quellcode. Da das Script aber ohnehin sehr einfach gehalten ist, ist die Funktionsweise mehr oder weniger selbsterklärend.


PHP in MySQL ausführen


Ich habe mir gerade die Web Seite von David Sklar, Autor mehrerer PHP Fachbücher und Gründer und Betreiber der PHP Funktionssammlung px.sklar.com, näher angesehen und bin dabei auf folgendes Projekt gestoßen:

Myphp ist eine Benutzerdefinierte Funktion (UDF) für MySQL, die PHP Code ausführen kann. Nach der Installation von myphp lässt sich über die Funktion 'php' PHP Code direkt in einer MySQL Datenbankabfrage ausführen, wobei die Funktion wie alle anderen in MySQL eingebauten Funktionen angewendet wird. Somit kann der zu interpretierende Code entweder direkt als Funktionsparameter angegeben werden oder aber durch Übergabe des Namens einer Tabellenspalte direkt aus einer Tabelle gelesen werden.

Nett!

PHP Magazine 02.2005


Abonennten hatten gestern bereits die neue Ausgabe des internationalen PHP Magazins in ihrem Briefkasten. Besonders erwähnenswert sind sicherlich die Artikel zu drei der Siegerprojekten des PHP5 Coding Contest von Zend, die man sehr gut auch als einführende Tutorials in die Thematik und Arbeitsweise des jeweiligen Projektes ansehen kann:


  • Prado, ein objekt orientiertes, komponenten- und ereignisbasiertes Framework über das ich an anderer Stelle (hier und hier) schon berichtet habe.

  • MyObjects stellt Werkzeuge zur Entwicklung von Datenbankschemas und der Generierung von Klassen für MySQL In Verbindung mit PHP bereit. MyObjects bietet ein komfortables webbasiertes Frontend zum schnellen und automatisierten Generieren von Datenbankschemas und den daraus resultierenden Klassen bereit.

  • Hive ist eine Art Application Server für komponenten- und ereignisbasierte Web Anwendungen.




Firefox Plugins für Web Entwickler


Es gibt eine ganze Reihe für Web Entwickler äußerst nützlicher Plugins und Add-ons für den Browser Firefox bzw. Mozilla.


  • Die Web Developer Toolbar von Chris Pederick fügt dem Browser eine komplette Toolbar mit Funktionen für HTML und Web Entwickler hinzu. Die Toolbar bietet funktionen zum markieren von HTML Elementen, Anzeigen von Elementattributen, Tools zum Testen von Formularen und vieles andere mehr.

  • HTML Validator erweitert den Browser um ein Prüfwerkzeug für HTML Seiten. Die Erweiterung gibt in der Statusleiste des Browsers die Anzahl der Fehler und Warnungen der entsprechenden HTML Seite aus. Öffnet man das Fenster zur Ansicht des Quellcodes einer HTML Seite, erhält man zusätzlich eine Übersicht sowie Details der Fehler und Unstimmigkeiten der Seite.

  • Venkman ist ein kompletter Javascript Debugger, der ursprünglich für Mozilla entwickelt wurde, aber auch unter Firefox lauffähig ist. Venkman dürfte eines der komplexesten Add-ons für den Browser sein und demonstriert gleichzeitig eindrucksvoll die Möglichkeiten Mozilla basierter Browser und Anwendungen. Venkman ist ein vollständiger Debugger mit der Möglichkeit zum setzen von Breakpoints, Überwachung von Aurufen und Inhalten von Variablen und Objekten. Da Venkman eine sehr komplexe Applikation mit unzähligen Funktionen ist, möchte ich an dieser Stelle auch auf das hervorragende Tutorial "Learning the Javascript Debugger Venkman" von Svend Tofte verweisen.

  • Live HTTP Headers schließlich ist eine Erweiterung mit der es möglich ist, die Header eines Seitenaufrufs zu inspizieren. So ist es möglich auf einfachste Art und Weise festzustellen, welche Daten bei dem Aufruf einer Web Seite zwischen dem Browser und dem Server über den HTTP Header ausgetauscht werden. Dies ist zum Debuggen von Web Applikationen und Web Formularen äußerst nützlich. Wenn man nur schnell mal die übertragenen HTTP Header betrachten möchte und keine Lust hat das Ganze über eine zwar professionelle aber für den schnellen Test auch etwas umständlichere Proxy basierte Lösung wie den HTTP monitor Charles zu lösen, ist man mit live HTTP headers durchaus gut bedient.


PHP Entwicklung mit jEdit


Als ich mir vor gut einem Jahr meinen ersten Mac kaufte, machte ich mich auf die Suche nach einer brauchbaren Entwicklungsumgebung für PHP - hat man unter Linux die Qual der Wahl, gestaltete sich die Suche für eine unter OSX lauffähige Software viel schwieriger. Nachdem ich eine Weile mit Eclipse arbeitete, die als Entwicklungsumgebung für Java zwar ausgezeichnet ist, für PHP aber zu komplex und auf meinem Powerbook außerdem auch etwas träge ist, stieß ich schließlich auf die Java Applikation jedit, die sich auf Grund der guten Integration von Java in Mac OSX fast wie eine native Anwendung anfühlt.

Jedit ist eine ausgereifte Entwicklungsumgebung, die seit vielen Jahren aktiv entwickelt wird. Jedit ist dank seiner Plugin Architektur hervorragend erweiterbar und individuell konfigurierbar. Der Plugin Manager erlaubt das komfortable Installieren von vielen Plugins. Natürlich bietet jedit Syntax Highlightning für viele populäre und auch weniger populärer Programmiersprachen und unterstützt selbstverständlich auch automatisches Einrücken sowie das Einfalten von Blöcken. Mittlerweile möchte ich auf jedit nicht mehr verzichten und verwende es auch an meinem Arbeitsplatz unter Linux.

Als weiterführenden Lesestoff kann ich den auf der Seite sitepoint.com erschienenen Artikel "Use jedit to edit your PHP" sehr empfehlen.


PHP Compiler für .Net


Die aktuelle Ausgabe der Zeitschrift iX beinhaltet unter anderem auch einen interessanten Artikel über Mono, die freie und platformübergreifende .Net Implementation. In dem Artikel wird auch erwähnt, daß es mittlerweile über 30 Programmiersprachen für .Net gibt. Neugierig wie ich bin, habe ich mich deshalb auf die Suche nach einem .Net Compiler für PHP gemacht.

Ich bin tatsächlich fündig geworden. Phalanger ist ein PHP Compiler für .Net, der aktiv entwickelt wird. Leider ist das Lizenzmodell sehr restriktiv: so verbietet die Lizenz eine kommerzielle Nutzung des Compilers. Für mich persönlich ist außerdem entscheidend, daß es derzeit nicht möglich ist Phalanger unter Mono zu verwenden. Nichtsdestotrotz enthält die Web Seite interessante Informationen bezüglich PHP und .Net und ist in jedem Fall einen Besuch wert.


5. PixelQuelle.de Fotocontest #2


Morgen abend um 24:00 endet der 5. PixelQuelle.de Fotocontest. Bis dahin können noch Photos hochgeladen werden, Thema ist diesmal: "Die Welt im Detail (Makroaufnahmen)" und der Hauptpreis ist ein Manfrotto MA 680B Compact Einbeinstativ.

Viel Spaß!