php

php.js - PHP VM with JavaScript. Einfach PHP Ausführung auf den Browser verlagern. Hey, dann haben endlich die Sicherheitslücken in PHP nur noch lokale Auswirkung für den User und nicht mehr für den Server!

the unbearable finality of pixel space. Das dort verlinkte Archivierungstool für Flickr hab ich mal ausprobiert und es läuft richtig gut. Da verzeihe ich auch mal das PHP. Ich hab zwar die Flickr-Bilder auch immer mal wieder hier ins Blog geschoben (die "Neulich auf Flickr" Posts), aber der Vorteil dieses Backup-Scriptes ist, dass die Struktur und sogar die Flickr Zugriffsrechte erhalten bleiben. Leider werden derzeit Alben und Sets noch nicht mit gesichert, sondern nur der Photostream. Und das Layout ist sehr spartanisch. Aber vielleicht wäre das ein Kandidat um mal mit Bootstrap 2.0 zu spielen und das ganze mal etwas aufzupeppen.

Phalanger 3.0 | PHP compiler for .NET. Hmm, komplett an mir vorbeigegangen - es gibt einen PHP Compiler für .NET, mit dem PHP eine vollständig integrierte .NET-Sprache wird. Und das läuft auch mit Mono. Und das ganze ist so vollständig, dass man damit ein aktuelles Wordpress unter mod-mono laufen lassen kann - und die Performance geht laut Benchmarks deutlich hoch. Könnte ich mir vielleicht mal in einer ruhigen Stunde angucken.

The Xavisys WordPress Plugin Framework - Xavisys. Interessant wenn man selber Plugins für WordPress bauen will, denn es nimmt einem ein paar der Standardarbeiten ab und macht den Code damit etwas simpler.

asuhan / happy. Auch nicht uninteressant: ein PHP Interpreter bzw. Compiler in Python auf Basis der PyPy Toolchain. Ok, ist jetzt nicht der Brüller, ich glaube nicht, dass ich schon sehr oft die Frage hatte "wie kann ich jetzt in Python PHP Code ausführen" - aber z.B. wenn eine Site auf Django-Basis den Nutzern PHP als Scriptsprache zur Verfügung stellen will, könnte sowas durchaus interessant werden - PHP ist nunmal eine der bekanntesten Scriptsprachen für das Web, Python aber mit einigen Frameworks einfach sehr viel interessanter aus Produktionssicht.

Introduction to Pharen. Ein Lisp, welches nach PHP kompiliert. Weird. Ok, könnte praktisch sein, wenn der Hoster nur PHP als Serversprache anbietet. Aber trotzdem. Weird.

Display photos from Tumblr (using JSON method) ist PHP, aber das sollte ich eigentlich leicht auf JavaScript umbauen können und dann nur client-seitig laufen lassen.

integer overflows - und wie die PHP Maintainer sich vorstellen, das zu verhindern ... wundert sich noch jemand über die vielen Probleme im PHP-Interpreter? Wärs vielleicht an der Zeit, das einige der Maintainer dort mal programmieren lernen?

New database class - HyperDB - das was unter wordpress.com dafür sorgt, das man Wordpress in Datacenter betreiben kann. Nett.

SQLite Introduction - nur gelinkt, weil ich es möglicherweise für ein Banalprojekt brauch (PHP5 und SQLite - ihgitt, muss mir danach die Tastatur reinigen).

Aus dem Ruhestand bei security@php.net - "Die Gründe dafür sind vielfältig, aber der wichtigste ist, dass ich erkannt habe, dass jeder Versuch, die Sicherheit von PHP von innen heraus zu verbessern, vergeblich ist".

WPHP - PHP über einen FastCGI-Server aus Python heraus aufrufen. Damit könnte PHP z.B. in Django integriert werden.

WordPattern - wohl der nächste für heute?

Warum ich PHP-Software nicht mag

Wordpress ist ja nun eines der besseren in PHP geschriebenen Systeme. Und was ist? Es finden sich eine Reihe unsauberer Programmierungen da drin. Ja, ich weiss, das tritt auch in andren Sprachen auf. Der Punkt ist: die Wordpress-Programmierer sind relativ gut qualifiziert und relativ sorgfältig in ihrer Arbeit - und trotzdem treten solche Probleme auf. Unter andrem eben weil bei PHP die Sourcen innerhalb der Server-Root liegen, also Files die eigentlich nur intern genutzt werden über HTTP erreichbar sind. Und weil PHP-Lösungen eben nicht von Hause aus schon eine Eingangsprüfung und ein brauchbares Quoting von Texten vornehmen. Nö, sorry, aber ich mag solch ein Kuddelmuddel einfach nicht.

Hurring.com: Code: Python: PHP Serialize implemented in Python - PHP-Daten von Python deserialisieren. Könnte interessant sein, wenn ich weitere Sites von PHP auf Django umbauen will und z.B. an Wordpress-Settings dran will.

What’s New in WordPress 2.0? · Asymptomatic - auch wenn ich bald von Wordpress weg bin, interessant ist es allemal zu gucken was sich da tut. Ausserdem wird sicherlich mindestens die Metaeule ja auch weiterhin mit Wordpress laufen.

Kritische Lücke in Content Management System Mambo

PHP entwickelt sich immer mehr zum Sicherheits-Müllhaufen:

Nicht immer erhöht unter PHP das Deaktivieren von register_globals die Sicherheit. Manchmal öffnet sich dadurch erst eine Schwachstelle. So auch im Falle des Content Management System Mambo, das laut eines Postings auf der Sicherheits-Mailing-Liste Full Disclosure eine Schwachstelle enthält, mit der es Angreifern möglich ist, eigenen Code auf dem Server auszuführen.

Dazu trägt sicherlich bei, das es kaum eine Sprache - ausser vielleicht noch Perl - so viel Cruft mit sich rum, wie PHP. Das Ergebnis zeigt sich dann immer wieder in esoterischen Problemen, die dann selbst Leute erwischen, die eigentlich von der Erfahrung her auf sowas vorbereitet sein müssten.

die seltsame Neigung der PHP-Programmierer zu eval

Schwachstellen in PHP-Modulen gefährden (mal wieder) zahlreiche Webapplikationen - und zwar wieder mal XML-RPC. Da wird immer noch eval benutzt - und zwar zur Auswertung von Tags. Bitte was? Sorry, Leute, aber das ist einfach nur noch albern - eval ist euch schon mal um die Ohren geflogen, warum wurden die ganzen Aufrufe nicht damals schon rausgeworfen? Oder wenigstens vernünftig gesichert?

Und da wundern sich Leute wenn ich von PHP-Software nicht allzuviel halte ...

Keith Devens - Weblog: I hate PHP - August 13, 2003 - der mag auch kein PHP

n3dst4.com: PHP Annoyances - der mag PHP auch nicht.

Spyced: Why PHP sucks - eine recht gute Analyse was an PHP eher störend ist.

Why PHP sucks - und noch jemand der kein PHP mag.

Hardened-PHP project

Keine Ahnung wie gut das wirklich ist, aber das Hardened-PHP Projekt klingt schon mal ganz nett. Gerade durch die hohe Verbreitung von PHP für Webanwendungen ist es ein zentraler Einbruchsweg in Server. Sollte ich mir mal auf die ToDo-Liste schreiben.

PHP-Serialize für Python

Hurring.com : Code Vault : Python : PHP-Python Serialize : v0.3b ist eine Implementation des PHP serialize() Zeugs in Python. Sehr praktisch für WordPress: in den Optionen werden oft serialisierte Strukturen gespeichert die man so wieder auflösen kann - man kann so z.B. Tools schreiben, die direkt auf der Datenbank aufsetzen, aber in Python geschrieben sind. Der Autor hat das gleiche auch noch mal für Perl gemacht - man kann also zwischen Python, Perl und PHP einfache Datenstrukturen hin und her schieben.

wp-cache-2 und PHP Accelerator

Wer das sehr brauchbare Caching-Plugin wp-cache-2 benutzen will, muss aufpassen: es ist nicht kompatibel mit dem PHPAccelerator. Leider kann man nicht beide zusammen einbauen, nur eines von beiden geht. Ziemlich ärgerlich, denn sie sprechen unterschiedliche Elemente an - das Plugin cached den Output, der Accelerator cached das vorkompilierte PHP. Von daher würde der Accelerator auch dem Cache-System helfen, denn das Cache-System ist ja in PHP geschrieben ...

Jedenfalls habe ich mal das Plugin auf den von mir betreuten WordPress-Blogs aktiviert. Vor allem der Metaeule könnte das auf Dauer gut tun. Das Caching ist derzeit auf 20 Minuten eingestellt, damit Änderungen in der Datenbank nicht so lange rumhängen bevor sie alle sehen können. Mal schauen was für Seltsamkeiten dabei auftreten im laufenden Betrieb.

Eine Sache von der ich erwartet habe das sie nicht mehr richtig funktioniert ist das Plugin Popularity Contest - mit dem wird ja gezählt wie oft ein Posting aufgerufen wurde. Das passiert durch das Caching natürlich wesentlich seltener und dadurch sind die Zahlen nicht mehr so aussagekräftig. Bewertungen auf Basis von Kommentaren und Trackbacks gehen natürlich noch, aber die Lesezugriffe sind unbrauchbar. Schade eigentlich, aber dafür kriege ich wesentlich niedrigere Serverload und wesentlich höhere Auslieferzahlen: mit aktiviertem wp-cache habe ich bei 20 konkurrierenden massiven Zugriffen nur eine Load von knapp 4 und schaufel knapp 50 Requests pro Sekunden raus. Ohne wp-cache habe ich eine Load von über 9 und schaffe nur knapp 5 Requests pro Sekunde.

Also mit wp-cache-2 nur die Hälfte der Load und dafür das 10fache an Performance. Da opfer ich den Popularity Contest gerne

Ein zweites Plugin das mir aufgefallen ist: Search Hilight (Standardplugin von WordPress) tuts nicht. Logisch - das färbt ja Suchbegriffe ein, die aufgrund des Referrers von einer Suchmaschine ermittelt wurden. Und Referrer gehen natürlich nicht in die Cache-Signatur ein. Schade, war eine optisch nette Spielerei. Aber andererseits auch nicht wirklich so wichtig.

Popularity Contest

Alex King hat ein schönes Plugin für WordPress: den Popularity Contest. Damit werden diverse Werte an Postings gesammelt und verrechnet und daraus ermittelt welche Postings die beliebtesten sind. Ich hab das mal in meine Sidebar eingebaut (unter den Bildern). Zusätzlich zu den Tags für die Einbindung in das Template liefert das auch noch einen Schwung von Infos auf einer Unterseite der Startseite des WordPress-Admins. Da kann man dann Beliebtheit nach Kategorie oder Art der Kennzahl angucken. Mal schauen wie sich das so entwickelt mit den Werten.

Ping TopicExchange von WordPress

Phillip Pearson hat ein WP-Plugin geschrieben das vereinfachtes einfaches Pingen von TopicExchange ermöglicht. TopicExchange ist im Prinzip einfach nur eine Liste von Trackback-Zielen mit einen eigenen Wiki pro Trackback-Ziel. Die Idee ist eine möglichst einfache Gruppenblogfunktion die von den Benutzern über ihre eigenen Blogs angesprochen werden können.

Sparkline PHP Graphing Library liefert kleine kompakte Grafiken die sich gut in Text einpassen - ideal z.B. um Verläufsdaten besser zu visualisieren.

Streifenkalender für WordPress

Als erstes Plugin aus meinem Bilderblog (mitlerweile aus) gibts jetzt den Streifenkalender. Im Prinzip ein ganz normaler WordPress Kalender - nur eben nicht als Block für den Sidebar, sondern als Streifen um ihn über den Inhalt drüberzustellen. Da man in der Regel in der Länge einer Seite mehr Platz verschwenden kann als in der Breite und da mancher ja vielleicht mit dem doch recht ausgelutschten Format wo der Kalender in einem Sidebar steckt brechen will, kann man jetzt einfach den Streifenkalender einbauen. Der Code zum Einbau ist trivial:


< ?php get_strip_calendar(); ?> ```

Einfach das in das header.php oder wo auch immer man den Kalender haben will einbauen. Fertig (natürlich vorher das Plugin nach wp-content/plugins/ auspacken und in der Administration auspacken!).

virtuelle Hosts mit WordPress

Das Vhost Plugin ist mein momentaner Favorit der Beiträge zum Plugin-Wettbewerb für WordPress. Mit diesem Plugin kann man Kategorien an virtuelle Hosts binden - wenn dieser Host angesprochen wird, wird automatisch die passende Kategorie angezeigt und zusätzlich dieser Kombination noch (optional) ein anderes Template verpasst.

Mir fallen spontan eine ganze Reihe von Ideen an - z.B. könnte ich meine Bananenrepublik da drunterpacken und damit mein Geschimpfe als eigenständigeren Inhalt präsentieren. Oder meine fotografischen Einträge endlich wieder unter einer meiner Foto-Domains laufen lassen. Ich glaub mit dem Plugin spiele ich demnächst mal ein wenig herum.

Eine weitere witzige Funktion - für mich aber eher uninteressant - ist die Möglichkeit einen Benutzer auf einen VHost einzuschränken (und damit auf eine Kategorie) und damit eine Multi-Blog-Plattform auf einer WordPress-Installation aufzusetzen. Könnte z.B. für Familienblogs ganz witzig sein.

Installation ist leider etwas hakelig - man muss ein paar Funktionen patchen, da dort in der Standardinstallation Bugs drin sind. Mit WP 1.5.1 sollte das dann aber hoffentlich besser sein.

Das Studs MVC Framework ist eine Portierung und Erweiterung des Java Struts Frameworks nach PHP. Dabei sind Frameworks die erstmal eine J2EE-ähnliche Grundstruktur für Servlets in PHP abbildet. Für mich klingt das natürlich nach Den Teufel mit dem Beelzebub austreiben

Tags aus Terms

Jonathan Luster hat sein Y! Terms Extraction Plugin für WordPress veröffentlicht. Es benutzt die Yahoo-Services um aus einem Postingtext relevante Schlüsselwörter herauszuholen und präsentiert diese dann als Technorati-Tags im Posting. Wenn jemand das mal ausprobiert: mich würd interessieren wie gut das mit deutschen Texten klarkommt.

Ausserdem würde mich natürlich auch mal interessieren wann blogg.de ein API anbietet, ich mein, wird doch langsam mal Zeit mit den Features von Technorati und Yahoo aufzuholen, oder?

class.jabber.php ist eine PHP-Klasse zur Programmierung von Jabber-Diensten.

Agata Report ist sowas wie Crystal Reports, nur für Linux und Open Source. Könnte mal gelegentlich ganz praktisch sein, zumal es wohl auch Reports generieren kann die leicht auf einem Webserver laufen können.

Und wer kein Lisp mag oder kann, vielleicht hilft ja SAJAX - Simple Ajax Toolkit by ModernMethod - XMLHTTPRequest Toolkit for PHP das nicht nur PHP sondern auch noch Io, Lua, Perl, Python und Ruby unterstützt.

PIXELPOST - Small Photoblog Software - sieht ganz nett aus, auch die Demos. Witzig ist der kleine Streifenkalender in der Demo - ich glaub sowas mach ich mir mal für WordPress, das belegt wesentlich weniger Platz in der Sidebar als der klassische Kalender. Für jemanden der einfach nur Photobloggen will sieht PixelPost ganz nett aus.

speed up WordPress l10n

New php-gettext, speed up WordPress l10n beschreibt zwei recht einfache Massnahmen um WordPress ein bischen Beine zu machen. Und zwar ist die gettext-Unterstützung suboptimal - was jeden Benutzer einer nicht-englischen WordPress-Installation betrifft. Mit gettext werden nämlich die Übersetzungen geladen. Mit den genannten Patches werden diese Bereiche deutlich beschleunigt, besonders gut natürlich auf Einzelseiten (wo die Anzahl der Datenbankzugriffe kleiner ist) zu sehen, aber auch z.B. bei meiner Homepage hat das ganze durchaus eine messbare Beschleunigung ergeben.

Trackbacks generell moderieren

Für WordPress gibts ja ein Plugin das Trackbacks automatisch auf moderiert setzt. Das arbeitet aber mit zusätzlichen Datenbankzugriffen (setzt nach der Erstellung des Trackbacks das Moderationsflag), was bei Trackback-Spammern eher doof ist - jeder zusätzliche Datenbankzugriff treibt die Systemlast in die Höhe. Daher hab ich mal meine eigene Version davon geschrieben, die ganz ohne zusätzliche Datenbankzugriffe auskommt. Source gibts hier.

Plugin API for WordPress listet Actions und Filter auf, die WordPress definiert. Wird gerade mit Inhalt gefüllt.

Apache2, php5-fcgi, php4-fcgi, mod_fastcgi HowTo

Apache2, php5-fcgi, php4-fcgi, mod_fastcgi HowTo liefert alles was man wissen muss um PHP als FCGI-Prozess laufen zu lassen. Und sogar in Deutsch. Das bischen Apache2 da drin kann man selber auf Apache 1.3 umdenken, der Apache ist eigentlich kaum betroffen.

FCGI bietet über Kombination mit suexec die Möglichkeit um PHP pro virtuellem Host unter einem dedizierten User laufen zu lassen und damit die Möglichkeit in shared hosting Umgebungen Files in einem virtuellen Host so anzulegen das ein anderer User mit seinem PHP diese nicht auslesen kann. Man könnte sogar die FCGI-PHPs in einem chroot Jail laufen lassen, um sie noch stärker abzuschotten.

Ausserdem ist FCGI für PHP oft deutlich resourcenschonender, da weniger PHP-Prozesse als Apache-Prozesse laufen können und die Apache-Prozesse nicht so aufgeblasen werden. Wenn man natürlich viele virtuelle Hosts hat, kann das dazu führen das die FCGI-Prozesse wieder an Anzahl gleichziehen - aber dann sollte man sowieso überlegen ob die FCGI-Prozesse nicht besser auf einer dedizierten Maschine laufen sollten.

Für simon wär das genau das richtige, zumal ich dann den anderen Usern auch PHP erlauben könnte.

phpOpenTracker ist ein Live-Access-Auswerter für Webseiten. Er kann direkt in PHP-Anwendungen integriert werden oder über Webbugs (kleine unsichtbare Grafiken) aus statischen Webseiten gesammelt werden. Man kann damit ziemlich viel über das Benutzerverhalten in den Webseiten erkennen. Und bei Asymptomatic wird gerade an einem WP-Plugin dafür gestrickt, mit dem man die entsprechenden Auswertungen im WP-Backend zu sehen bekommt ...

eAccelerator ist ein weiterer PHP Accelerator. Er baut auf dem Turck mmCache Source auf, ist aber aktiv in der Entwicklung.

no status quo » RunPHP WordPress Plugin führt PHP-Code direkt in Postings aus. Damit kriegt man sowas wie < ?php echo "Makros"; ?> in Wordpress.

PECL :: Package :: APC - PHP caching System, Open Source (nicht so komische Stunts wie phpAccelerator und nicht so tot wie turck mmCache)

Glossary für WordPress

Ich habe ein kleines Wordpress Plugin geschrieben das ein Glossary ähnlich wie bei Radio Userland oder PyDS implementiert. Mit dem Glossary werden einfach Texte die durch | (Pipe) Symbole begrenzt werden durch einen Ersatztext (der auch XHTML Markup enthalten kann) ersetzt. Spart Tipperei ...

Das Plugin installiert eine kleine Managementseite im Wordpress-Backend, das ganze funktioniert also nur mit Wordpress 1.5 (oder evtl. 1.3). Die nötige Datenbanktabelle wird nach Aktivierung des Plugins automatisch erstellt beim ersten Zugriff auf die Managementseite.

GeSHi - Generic Syntax Highlighter :: Home - ein Syntaxhighlighter in PHP. Könnte ich benutzen wenn ich hier Sourcecode poste ...

( Syck ): YAML for Ruby, Python, PHP and OCaml - Noch ein YAML Parser und Emitter - dieser fokussiert auf Komplettheit, Schnelligkeit und Multiplattform

Embedding Gallery Into An Existing Community - Wie man Gallery in andere PHP-Seiten einbinden kann

PHP/SWF Charts - PHP Tool zur Erstellung von Graphen im Flash-Format

SourceForge.net: Project Info - DoXFS Document Management System - Dokumentenarchiv mit XFS und PHP-Frontend