Hier findest du eine Übersicht über alle bisher veröffentlichten Artikel seit dem 11. November 2009.

  • Compile PHP and/or an extension under Win(x86) This guide is based on the following official php.net Wiki Page. This guide covers the compile process of PHP (>= 5.5) a PHP-extension (Pecl) under Windows with Microsoft Visual Studio Express 2012 for Windows Desktop. As result of this operation we will get binaries of PHP for Windows as well as an extension (php_*.dll). We will use the ...
  • Startup-Code: Kommentare im Quelltext Es ist immer wieder ein gerne diskutiertes Thema** “Kommentare im Quelltext”** – allen voran die sogenannten Inline-Kommentare. Das Kommentare sinnvoll sind und in jedem guten Softwareprojekt elementarer Bestandteil sind, dessen sind sich die Mehrheit der Entwicklergemeinde und auch die Projektverantwortlichen mittlerweile eigentlich sicher. Das ist auch schon viel Wert. Doch es gibt sie noch, die ...
  • Open-Source-Entwicklung mit Open-Source-Werkzeugen Während einem meiner letzten Open-Source-Projekte war selbst ich von den aktuell verfügbaren Werkzeugen und vor allem von deren Funktionsumfang sowie Stabilität überrascht. Es hat für mich den Anschein, als wäre das Open-Source-Umfeld zwar mittlerweile eine großes Feld zum experimentieren und dabei zugänglich für jedermann und doch durch und durch professionell organisiert. Es gibt dabei unzählige ...
  • jQuery-Plugin – jquery.WebSocket Gerade eben habe ich jquery.WebSocket für euch bereitgestellt. Das Plugin hilft euch dabei auf die WebSocket-Schnittstelle des Browser zuzugreifen. Des weiteren hilft es euch dabei, im Falle älterer Browser auf eine Fallback Variante (AJAX Long Polling) zurückgreifen zu können – völlig automatisch – und dabei die gleiche Schnittstelle nutzen zu können, so wie die gleichen ...
  • jQuery-Plugin – jquery.ezy Gerade eben habe ich jquery.ezy für euch bereitgestellt. ezy hilft euch dabei eure Seite auf ein event driven UI umzustellen und das recht smart und simpel. Kein “Schi-Schi” – nur das nötigste, dass aber gut. Hinweis: Ab demnächst und zukünftig wahrscheinlich bei allen Projekten gilt: News gibt es nach wie vor über meinen Blog und bei Twitter, jedoch ...
  • WebSockets – Vom Client zum Server und zurück (Teil 1) Dieser Artikel ist der Beginn einer kleinen Serie, die dir das Thema WebSockets und deren Einsatzmöglichkeiten ein wenig näher bringen soll. Bei WebSockets handelt es sich um eine der Neuerungen aus dem HTML5-Paket. WebSockets können ein mächtiges sowie einfach einzusetzendes Feature zugleich sein. Das die Möglichkeiten zum Einsatz vielfältig sind, steht wahrscheinlich außer Frage. Doch ...
  • PHP Coding-Standards und Programmierrichtlinien Mit der zunehmenden Professionalität in PHP-Projekten der letzten Jahre, stieg auch die Anzahl der mir bekannten Coding-Standards und Programmierrichtlinien. Mittlerweile finden sich im World Wide Web unzählige Dokumente aus den unterschiedlichsten Projekten und in unterschiedlichsten Detailstufen. Viele große Open-Source-Projekte, allen voran das PEAR-Projekt, haben einen Beitrag zur Vereinheitlichung der unterschiedlich gewachsenen Standards geleistet. Am bekanntesten sind ...
  • CUPS – the Configurable-Update-Package-System Zur Zeit arbeite ich in den freien Minuten die mir hier und da bleiben an CUPS, einer Software, die es ermöglicht Software-Updates (Releases) über große Rechenzentren hinweg zu verteilen. Um eine Vorstellung von der Größenordung zu vermitteln, ist es am leichtesten die Anzahl der Server zu nennen die über die Software aktualisiert werden sollen. Hier ...
  • Di – Das Dependency-Injection-Framework für PHP Di ist ein leichtgewichtiges und zugleich mächtiges Dependency-Injection-Framework geschrieben in und für PHP. Di unterstützt alle wichtigen Typen von Injektionen wie der Constructor-Injektion, der Setter-Injektion und der Property-Injektion. Di ist vollständig dokumentiert und sehr einfach einzubinden, sowie zu verwenden. Di wird außerdem aktiv weiterentwickelt und ist selbstverständlich ausgiebig getestet (Unit-Tests und Einsatz im produktiven Umfeld).     Features Static-, ...
  • Amazon Product Widget Version 1.2.0 Soeben habe ich Version 1.2.0 des Amazon Product Widget(s) veröffentlicht. Neben kleineren Korrekturen wurden folgenden Anpassungen vorgenommen: added support for Amazon China (CN) and Amazon Spain (ES) added requirements-check. Now the plugin checks for example if “allow_url_open” is activated and shows a warning if the requirements are not fulfilled. changed links to Amazons affiliate site(s) to SSL (https://) changed ...
  • Lazyload.js – Annotation based Dependency Loader Soeben hat Lazyload.js  – ein leichtgewichtiger Annotation based Dependency Loader das Licht der Öffentlichkeit erblickt. Mit seinen schmalen 5,9 KB (in der minified Version) ist es gegenüber RequireJS ein Leichtgewicht bei ähnlichem Funktionsumfang. Eben der Vergleich mit RequireJS und der damit verbundenen Überraschung, dass es vom Funktionsumfang ähnlich, aber einfacher zu implementieren ist, hat mich dazu bewogen, ...
  • Amazon Product Widget (WordPress Plugin) Soeben habe ich das von mir entwickelte und auch selbst (hier im Blog) eingesetzte Wordpress Plugin Amazon Product Widget auf Version 1.1 aktualisiert. Ab sofort ist es offiziell auch auf Wordpress.org zu finden und wieder kompatibel zur Amazon AWS API. Die Amazon AWS API wurde zum 01. November 2011 leicht umgestellt wodurch das Plugin nicht mehr ...
  • Grundlegende Regeln für gute Fehlermeldungen Soeben musste ich bei der Integration einer Bibliothek mal wieder staunen. Die Bibliothek, auf die ich mich hier beziehe, zeichnet sich unter anderem durch einen guten Stil, eine durchgängige Dokumentation, sowie fast lückenlose Fehlerbehandlung aus. Deshalb ist es um so weniger verständlich, dass die eingesetzten Fehlermeldungen, die implementiert wurden, leider oft nicht aussagekräftig genug sind. ...
  • Bücher Nach einigen Jahren mit sehr interessanten Erfahrungen in der Software-Entwicklung, habe ich vor ca. einem Jahr mit dem Schreiben meines ersten Fachbuches begonnen. Mir lag die Qualität der Projekte an denen ich maßgeblich beteiligt bin, stets sehr am Herzen. Ein Stück Software zu schreiben, es zu testen und es Menschen zur Verfügung zu stellen, die ...
  • Aktueller Stand Während des letzten Jahres habe ich sehr viele neue Impulse aufgenommen und viele Theorien zur Qualität von Software gehört, Vorlesungen besucht, unzählige Bücher aus vielen Bereichen der Software-Entwicklung gelesen, sowie Diskussionen und anregende Unterhaltungen bei Conventions geführt. Würde ich jetzt, nachden Ergebnissen des letzten Jahres, ein Resümee ziehen, dann würde ich wahrscheinlich ganz simpel formulieren: Im Bereich ...
  • XHProf für Windows (aktuelle Windows-Builds) Hier findest du die aktuellen XHProf Windows-Builds. Ich bin bemüht, die Builds stets den aktuell verfügbaren PHP-Versionen anzupassen. Zum aktuellen Zeitpunkt PHP 5.3 und 5.4. Die NTS-Versionen (und 64 bit) bereiten mir momentan noch Probleme. Deshalb stelle ich momentan lediglich TS-Builds zum Download bereit. Wenn jemand die NTS-Version oder 64 bit erfolgreich kompiliert hat, dann ...
  • Willkommen zurück! Nach knapp einem Jahr melde ich mich unter neuer Domain (phpfluesterer.de) und mit guten Nachrichten zurück. Während einer ausgiebigen “Auszeit”, in der ich quer durch die Welt gereist bin, viel gesehen, meditiert, sowie entspannt und das Leben genossen habe, wurden meine “Akkus” aufgefrischt und nun bin ich zurück im “Business” und so wie zuvor – ...
  • Source of XHProf 0.10.0 released I’ve released the source some minutes ago! Everyone who’s interested in the source of the windows-compatible release can find the sources at my github repo for XHProf and maybe soon at the Facebook repo. For the “old-school” user – here are the udiff patches for the two files: 1. php_xhprof.h: 25a26 > #include “win32/php_xhprof_win32.h” 33a35,37 > /** > * ...
  • XHProf PHP-extension 0.10.0 – Windows-Build I’ve recently finished version 0.10.0 of XHProf the PHP-Profiler published by Facebook. I’ve added the missing functionality for windows versions (e.g. getrusage(), SET_AFFINITY(), GET_AFFINITY()). This Version is based on Version 0.9.2 beta (2009-06-01) from pecl. The extension was linked against php5ts.lib (PHP 5.3.3, VC++ 6, TS, Debug) and packed with UPX afterwards. You can download the Extension ...
  • XHGUI für XHProf – Windows Version Für den PHP Software-Profiler XHProf wird von Facebook eine GUI mitgeliefert. Bei genauerer Betrachtung stellt man aber schnell fest, dass diese bei der optischen Erscheinung ein paar Wünsche offen lässt.  Der kanadische Softwareentwickler Paul Preinheimer dachte sich das gleiche und hat sich des Problems angenommen und die GUI um die “highchart” charting library (JavaScript) erweitert ...
  • Erkennen des Character-Encodings durch MAGIC-Field Bei meinen Zeichensatz-Spielereien in der letzten Zeit bin ich auf eine interessante Möglichkeit gestoßen, den Zeichensatz den der Browser für das Senden von Formulardaten verwendet zu erkennen. Es gibt, ähnlich den Magic-Methoden bei PHP, die Möglichkeit ein speziell benanntes Formularfeld zu erstellen, in das der Browser bei Submit automatisch den verwendeten Zeichensatz einfügt. Als ich das ...
  • Verarbeitung von UTF-8 mit PHP Immer mal wieder stolpert man über das Thema: “UTF-8 mit PHP” – und es ist wirklich alles andere als angenehm. Die Unterstüztung für Multibyte-Zeichensätze in PHP ist ziemlich dürftig und da bis zum erscheinen von PHP 6 und der anschließenden Migrationsphase auch noch einige Tage vergehen werden, kommt man momentan noch nicht drum herum an ...
  • Salt’n’Pepper – Username als Pepper zum Salt Soeben hatte ich eine Idee für einen dynamisch aus den vorliegenden Logindaten erzeugten Salt – quasi Pepper zum Salt. Für diejenigen unter euch, die nicht wissen, was Salt in Verbindung mit der Speicherung von Passwörtern bedeutet, hier ein kurzer Auszug aus der Wikipedia: Salt (engl. „Salz“) bezeichnet in der Kryptographie eine zufällig gewählte Bitfolge, die an einen ...
  • Call for Papers für den “Month of PHP Security” gestartet Der PHP-Sicherheitsexperte Stefan Esser, initiiert eine neue Aktion zur Verbesserung der freien Skriptsprache. In Anlehnung an den von ihm 2007 gestarteten  “Month of PHP Bugs” soll der Mai täglich neue Informationen für PHP-Interessierte bieten. Im Unterschied zu seiner vorigen Initiative bezieht Esser jedoch nun die Community mit ein. In einem Aufruf auf der Projektwebsite bittet ...
  • PHP – Zugriff auf den Namen einer Child-Klasse Wer innerhalb einer Klasse (z.B. einer generischen Singleton-Klasse im Destructor (__destruct()) auf den Namen der Child-Klasse (die erbende Klasse) zugreifen muss/möchte, der wird feststellen, dass __CLASS__ an dieser Stelle (so wie es auch sein sollte) den Namen der Klasse die die Methode enthält (in diesem Beispiel die generische Singleton-Klasse) beinhaltet (Generic_Singleton). Möchte man aber ...
  • Debugging PHP in Eclipse mit Xdebug (Zend_Debugger) Ich bin gerade mal wieder über ein sehr gutes (Anfänger) “HowTo” gestolpert. Diesmal kommt es aus dem Hause IBM und trifft genau auf meine (perfekt abgestimmte) Konstellation von Entwicklungswerkzeugen zu. Es behandelt das Debuggen von PHP-Skripten innerhalb der Eclipse IDE (PDT oder Aptana) mit Xdebug oder zend_debugger. Das HowTo ist in englischer Sprache verfasst und ...
  • Cheat-Sheets für PHP, CSS, JavaScript, mod_rewrite, SVN … Unter www.addedbytes.com/cheat-sheets/ findet man die Cheat-Sheets genannten Schnellreferenzen zu sehr vielen Programmiersprachen und auch mod_rewrite. Ich habe mir einen kleinen Überblick verschafft und muß sagen, die Schnellreferenzen sind echt gelungen. Meine Wände sind nun neu dekoriert! Für jeden der Informationen nicht nur digital oder in Form von Büchern bereithalten möchte sicherlich sehr interessant. Aktuell gibt es ...
  • PHP – WideImage image-manipulation-library WideImage ist eine objekt-orientiert in PHP5 geschriebene Bibliothek zur Bildmanipulation. Es handelt sich bei WideImage um eine reine PHP-Bibliothek die ohne externe/zusätzliche Bibliotheken/Tools außer der GD2 extension funktioniert. Ein Großteil des Code ist unit-tested mit Simpletest und die Bibliothek ist E_ALL + E_STRICT konform. Sie wird aktiv in Produktivumgebungen eingesetzt und es gab seit ihrem ersten ...
  • Dateien ausliefern mit PHP Bei den Recherchen zur Auslieferung von Dateihäppchen habe ich das PDF Deliver Files With PHP von Thomas Weinert (papaya CMS) entdeckt, welches wirklich einige sehr interessante Informationen zur Auslieferung von Daten (Dateien) mit PHP beinhaltet. Das Material wurde auf der International PHP Conference 2008 präsentiert und ist meiner Kenntnis nach immer noch aktuell. Wer Interesse ...
  • moovrelocator – qt-faststart / QTIndexSwapper für PHP In einem Projekt, an dem ich aktuell arbeite, setzt man auf PHP-basiertes HTTP-Pseudostreaming. Innerhalb der zu entwickelnden Anwendung können Videos hochgeladen werden, welche dann mittels FFmpeg zu MP4-Dateien konvertiert werden. Genau an diesem Punkt liegt auch schon das eigentliche “Problem”, da das für das HTTP-Pseudostreaming (progressiver Download) benötigte MOOV-Atom (das sind die Metadaten in MP4-Dateien) von ...
  • phpUnderControl – java.net.SocketException Network is unreachable Folgende Aufgabe stand an: Migration einer phpUnderControl-Installation (Cruisecontrol) von CentOS zu Debian. Folgender Fehler trat beim ersten Aufruf auf dem neuen System auf: java.net.SocketException: Network is unreachable Das Problem: Die Weboberfläche war nicht unter dem Standard-Port 8080 erreichbar. Normalerweise sollte sich Cruisecontrol aber auf Port 8080 binden. Ein Blick in den Logfile von Cruisecontrol verriet mir folgendes: java.net.SocketException: Network is ...
  • HTTP-Pseudostreaming von Videodateien Eigentlich lassen sich MP4-Dateien mit H264-Codec nicht über das HTT(P)-Protokoll streamen. Stimmt irgendwie nur teilweise, denn man bekommt es mit viel Mühe und über einige Umwege doch hin! Dies ist dann aber wiederum mit einigen Einschränkungen verbunden, wie z.B. der fehlenden Möglichkeit im ungebufferten Bereich zu „seeken“. Doch wie macht Youtube das dann … Generelle Informationen Ich verwende folgende ...
  • PHP merge_array() PHP bringt bis einschließlich Version 5.3 sage und schreibe 77 dokumentierte Array-Funktionen mit und mit keiner lässt sich diese einfache Operation durchführen: Verschmelze (merge) zwei Arrays Nehme das erste Array ($array_1) als Ziel (zu ergänzendes Array) Nehme das zweite Array ($array_2) als Quelle (ergänzendes Array) Wobei kein komplettes Ersetzen eines Keys erfolgen soll, bei Vorhandensein doppelter Keys sollen die ...
  • PHP Coding-Standard Es gibt mittlerweile unzählig viele Entwürfe von Coding-Standards, angefangen bei den wohl bekanntesten, den PEAR-Coding-Standards, über die Zend-Coding-Standards, bis hin zu verschiedenen Ergänzungen der übrigen Framework-Entwickler und einigen wenigen Eigenkreationen.  Fehlte es doch bisher an konkreten Ansätzen, die verschiedenen vorliegenden Entwürfe gemeinsam in einem finalen/konkreten und allgemein gültigen Entwurf zusammenzufassen, scheint jetzt ein wenig Bewegung ...
  • PHP – Simple aber effektive Performance-Tipps Nicht mehr so ganz aktuell aber auf jeden Fall einen Blick Wert! Das Video zeigt grundlegende Tipps zur Optimierung des PHP-Codes – schaut einfach selbst: Ggf. hilft euch dieses Buch ein wenig die Performanz eurer Web-Anwendung ein wenig zu optimieren. Ganz nebenbei ist es ein guter Leitfaden für den Einstieg in die professionelle Softwareentwicklung mit PHP. Sibg0T3wKs4
  • OptiPNG – Continuous-Integration fähige PNG-Optimierung Im Buildprozess eines meiner Projekte kommt seit kurzem ein neues, hilfreiches Werkzeug zur Optimierung von PNG-Grafiken zum Einsatz. Die von den Grafikern gelieferten Dateien entsprechen zwar optisch den Anforderungen, jedoch besteht immer ein wenig potenzial die Größe der Dateien noch ein wenig zu reduzieren. Auch wenn durch die Optimierungen nur ein paar Kilobyte pro Datei ...
  • JSLint als Eclipse-Plugin Den Frontend-Entwicklern unter euch, wird “JSLint” von Douglas Crockford sicherlich ein Begriff sein. Auch ich setze für die schnelle Prüfung auf Verletzung von Coding-Conventions JSLint ein.  Bisher habe ich auf die Java-basierte Kommandozeilenversion gesetzt Im Buildprozess werde ich dies auch beibehalten, allerdings habe ich in meiner IDE soeben die Kommandozeilenversion (testweise) gegen die JSLint-Pugin-Version ausgetauscht. ...
  • FFmpeg kompilieren (Linux) Ein FFmpeg-update wird benötigt und wieder mal keiner da, der FFmpeg aktualisieren (kompilieren)  kann – außer meiner Wenigkeit. Immer wieder kommt dieses Thema bei uns auf: FFmpeg und FFmpeg-PHP müssen aktualisiert werden – sei es um bekanntgewordene Bugs zu beseitigen, die Performanz zu erhöhen oder aber neue Codecs zu unterstützen. Jedes Mal wenn dies der Fall ...
  • Die 9 häufigsten IE Bugs und wie man sie behebt Gerade erreichte mich ein Link, über den einer meiner Arbeitskollegen gestolpert ist. Der Artikel der sich hinter diesem Link befindet, zeigt die 9 häufigsten Internet-Explorer Bugs auf…
  • PHPBench (marking) – Schneller ans Ziel Jeder der schon mal mit der PHP-basierten Backend-Entwicklung im Enterprise-Bereich in Berührung gekommen ist, kennt sicherlich die verschiedensten Ansätze die Performance einer Applikation zu optimieren. Wie in fast jedem Bereich, gibt es auch zur Optimierung stets mehrere Wahrheiten. Abgesehen von der “pre- oder postincrement?”-Frage beschäftigt sich die Seite die ich aufgetan habe mit konkreten Beispielen ...
  • Willkommen auf phpfluesterer.de Jeder Software-Entwickler der seiner Tätigkeit schon ein wenig länger nachgeht, wird es kennen – reine Theorie und Praxiserfahrung alleine helfen nicht immer weiter. Es ist vielmehr die Kombination mit einer Ahnung, die zwar auf den vorgenannten Fähigkeiten beruht, aber bei jedem Entwickler unterschiedlich gut ausgeprägt ist. Vielleicht hilft es hier auch, wenn man,  so wie ...