<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHPFlüsterer</title>
	<atom:link href="http://www.phpfluesterer.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpfluesterer.de</link>
	<description>Continuous Integration, Qualitätsmanagement, Software-Architektur</description>
	<lastBuildDate>Mon, 09 Jan 2012 15:14:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Bücher</title>
		<link>http://www.phpfluesterer.de/projekte/buecher/buecher/</link>
		<comments>http://www.phpfluesterer.de/projekte/buecher/buecher/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 15:10:04 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Bücher]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=763</guid>
		<description><![CDATA[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,...<br /><a href="http://www.phpfluesterer.de/projekte/buecher/buecher/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>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 damit entweder ihren Spaß haben, oder weniger nervige Arbeiten verrichten müssen, hat mich immer schon mit Freude und Stolz erfüllt. Umso wichtiger war es für mich, stets hochqualitative Arbeit abzuliefern und &#8220;möglichst&#8221; (ganz geht ja leider nicht) fehlerfreie Software zu produzieren und später in meinem Werdegang, produzieren zu lassen.</p>
<p>Mit steigendem Anspruch bezüglich Qualität, sowie immer knapper werdenden Terminen und somit entstehendem Termindruck bei gleichbleibendem Anspruch, galt es die Prozesse, die zu einer guten, unseren, sowie den Kundenansprüchen genügenden Software führen, fortlaufend zu optimieren. Neue Werkzeuge und Standards, sowie die stete Weiterentwicklung von PHP und den dazugehörigen Entwicklerwerkzeugen (z. B. IDEs) bieten viele Möglichkeiten und zeitgleich viele Fallen.</p>
<p>So habe auch ich selbst erlebt, wie schön es sein kann, mit neuen Prozessen die Dauer der Releasezyklen zu verkürzen ohne Einbuße bei der Qualität hinnehmen zu müssen. Aber eben auch einige Schattenseiten kennengelernt, so dass das ein oder andere Mal Nachtschichten notwendig waren, wenn man mal wieder Feuerwehr spielen musste (es fällt ein wenig leichter wenn man die Notwendigkeit der Nachtschichten selbst zu verantworten hat).</p>
<p>Meine Erfahrungen und die daraus gewonnenen Erkenntnisse, sowie Tipps und Empfehlungen schreibe ich aktuell in dem Buch mit dem Arbeitstitel <strong>&#8220;Qualität in Softwareprojekten&#8221;</strong> nieder.</p>
<p><strong><br />
Aktuelles Buchprojekt</strong><br />
<a  title="Buchprojekt: Qualität in Softwareprojekten" href="http://www.phpfluesterer.de/category/projekte/buecher/qualitaet-in-softwareprojekten/">Hier erfahrt ihr mehr zum aktuellen Buchprojekt &#8220;Qualität in Softwareprojekten&#8221;</a></p>
<p><map name='google_ad_map_763_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/763?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_763_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=763&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fprojekte%2Fbuecher%2Fbuecher%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=763&amp;md5=7f8532e7b261fac5b340abab1fc14612" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/projekte/buecher/buecher/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Aktueller Stand</title>
		<link>http://www.phpfluesterer.de/projekte/buecher/qualitaet-in-softwareprojekten/aktueller-stand/</link>
		<comments>http://www.phpfluesterer.de/projekte/buecher/qualitaet-in-softwareprojekten/aktueller-stand/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 14:45:01 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Qualität in Softwareprojekten]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=767</guid>
		<description><![CDATA[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...<br /><a href="http://www.phpfluesterer.de/projekte/buecher/qualitaet-in-softwareprojekten/aktueller-stand/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Würde ich jetzt, nachden Ergebnissen des letzten Jahres, ein Resümee ziehen, dann würde ich wahrscheinlich ganz simpel formulieren:</p>
<blockquote><p>Im Bereich der Software-Entwicklung wiederholt sich alles, geschätzt alle 5 &#8211; 10 Jahre nur heißt es immer anders &#8230;</p></blockquote>
<p>Es ist ja auch kein Geheimnis, dass Theorien und Prozesse/Vorgehensweisen aus den End-Siebzigern noch heute verfeinert und Vergessenes sowie damals Belächeltes zu neuem Leben erweckt wird.</p>
<p>Zum aktuellen Zeitpunkt überarbeite ich die Kapitel die ich bisher verfasst habe um die Inhalte an die Entwicklung und Erkenntnisse aus dem letzten Jahr anzupassen. Bezüglich der weiteren Entwicklung und einem möglichen Veröffentlichungstermin halte ich euch selbstverständlich auf dem Laufenden.</p>
<p>&nbsp;</p>
<p><map name='google_ad_map_767_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/767?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_767_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=767&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fprojekte%2Fbuecher%2Fqualitaet-in-softwareprojekten%2Faktueller-stand%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=767&amp;md5=ea00481f70a081a37ffb5e585df9c4ae" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/projekte/buecher/qualitaet-in-softwareprojekten/aktueller-stand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XHProf für Windows (aktuelle Windows-Builds)</title>
		<link>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-fur-windows-aktuelle-windows-builds/</link>
		<comments>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-fur-windows-aktuelle-windows-builds/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 14:18:29 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[XHProf (PHP-Extension)]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Windows-Build]]></category>
		<category><![CDATA[XHProf]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=750</guid>
		<description><![CDATA[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....<br /><a href="http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-fur-windows-aktuelle-windows-builds/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>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 wäre es super wenn er mich kurz <a  title="Kontakt" href="http://www.phpfluesterer.de/kontakt/">kontaktieren würde</a>.</p>
<p>Da es seit kurzem keine offiziellen VC6-Builds des PHP-Source mehr gibt, habe auch ich sämtliche Projektdateien auf VC9 umgestellt. Auf diesem Wege konnten sogar ohne zutun einige nicht ganz triviale Date/Time-Bugs in VC6 umgangen werden.</p>
<p><strong>Aktuelle XHProf-Version: 0.10.2</strong></p>
<p><strong><br />
Changelog</strong></p>
<ul>
<li>0.10.2<br />
Aktuelle Änderungen aus dem Facebook Repository übernommen:<br />
- PHP 5.4 Kompatibilität der Extension hergestellt</li>
<li>0.10.1<br />
long-filename support: Möglichkeit hinzugefügt, den vollständigen Dateinamen anzeigen zu lassen (XHPROF_FLAGS_LONGNAMES)<br />
Autor: <a  title="smalyshev @ github" href="https://github.com/smalyshev/xhprof/commit/426a339ac13e7ed36bda82e5cafaa2889978a3ea" target="_blank">smalyshev <em>(Stanislav Malyshev)</em></a></li>
</ul>
<p>&nbsp;</p>
<p><strong>Download</strong><br />
<a  title="Download xhprof-0.10.2-PHP-5.3-vc9-ts" href="http://www.phpfluesterer.de/wp-content/uploads/2012/01/xhprof-0.10.2-PHP-5.3-vc9-ts.zip" target="_blank">XHProf &#8211; 0.10.2 &#8211; PHP 5.3 VC9 TS (32 bit)</a><br />
<a class="inactive">XHProf &#8211; 0.10.2 &#8211; PHP 5.3 VC9 TS (64 bit)</a><br />
<a class="inactive">XHProf &#8211; 0.10.2 &#8211; PHP 5.3 VC9 (32 bit)</a><br />
<a class="inactive">XHProf &#8211; 0.10.2 &#8211; PHP 5.3 VC9 (64 bit)</a><br />
<a  title="Download xhprof-0.10.2-PHP-5.4-vc9-ts" href="http://www.phpfluesterer.de/wp-content/uploads/2012/01/xhprof-0.10.2-PHP-5.4-vc9-ts.zip" target="_blank">XHProf &#8211; 0.10.2 &#8211; PHP 5.4 VC9 TS (32 bit)</a><br />
<a class="inactive">XHProf &#8211; 0.10.2 &#8211; PHP 5.4 VC9 TS (64 bit)</a><br />
<a class="inactive">XHProf &#8211; 0.10.2 &#8211; PHP 5.4 VC9 (32 bit)</a><br />
<a class="inactive">XHProf &#8211; 0.10.2 &#8211; PHP 5.4 VC9 (64 bit)</a></p>
<p><map name='google_ad_map_750_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/750?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_750_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=750&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fprojekte%2Fopen-source-software-projekte%2Fxhprof-php-extension%2Fxhprof-fur-windows-aktuelle-windows-builds%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=750&amp;md5=a3b3da966b6a01cfd3569ba6fb9ab0df" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-fur-windows-aktuelle-windows-builds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Willkommen zurück!</title>
		<link>http://www.phpfluesterer.de/software-entwicklung/willkommen-zuruck/</link>
		<comments>http://www.phpfluesterer.de/software-entwicklung/willkommen-zuruck/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 14:27:33 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHPFlüsterer]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=652</guid>
		<description><![CDATA[Nach knapp einem Jahr melde ich mich unter neuer Domain (phpfluesterer.de) und mit guten Nachrichten zurück. Während einer ausgiebigen &#8220;Auszeit&#8221;, in der ich quer durch die Welt gereist bin, viel gesehen, meditiert, sowie entspannt und...<br /><a href="http://www.phpfluesterer.de/software-entwicklung/willkommen-zuruck/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Nach knapp einem Jahr melde ich mich unter neuer Domain (<a  title="Neue Domain: phpfluesterer.de" href="http://www.phpfluesterer.de">phpfluesterer.de</a>) und mit guten Nachrichten zurück. Während einer ausgiebigen &#8220;Auszeit&#8221;, in der ich quer durch die Welt gereist bin, viel gesehen, meditiert, sowie entspannt und das Leben genossen habe, wurden meine &#8220;Akkus&#8221; aufgefrischt und nun bin ich zurück im &#8220;Business&#8221; und so wie zuvor &#8211; voller Tatendrang.</p>
<p>Ganz abstinent war ich selbstverständlich nicht, findet man doch auch in den entlegensten Winkeln der Erde einen Internetzugang. Somit habe ich hier und da mal eine E-Mail geschrieben, meine Lieblingsseiten besucht und die Entwicklung im Bereich PHP passiv genossen.</p>
<p>Die Auszeit die ich mir, nach ca. 5 sehr anstrengenden und nervenzehrenden Jahren, selbst verhängt habe, kam genau zum richtigen Zeitpunkt. Sie hat dazu beigetragen, den Fokus auf spezielle Bereiche der Software-Entwicklung im PHP-Umfeld zu lenken und dieses wird sich auch hier auf meinen Seiten bemerkbar machen.<strong></strong></p>
<p><strong>Neuer Fokus</strong><br />
Zeitgleich mit dem neuen Design, ändert sich auch offiziell der Fokus der von mir publizierten Inhalte. Primär befasse ich mich mit der Qualität von Software und der Optimierung von Entwicklungsprozessen und dabei haben (fast) alle Artikel stets einen Bezug zum PHP-Umfeld.</p>
<p><strong>Die Kategorien</strong><br />
Die veröffentlichten Artikel lassen sich zu 99%  in eine der (neuen) folgenden Kategorien einordnen:<br />
<div class="multi-column-taxonomy-list"><ul class="multi-column-1"><li><a  href="http://www.phpfluesterer.de/category/projekte/buecher/" rel="tag">Bücher</a></li><li><a  href="http://www.phpfluesterer.de/category/software-entwicklung/continuous-integration/" rel="tag">Continuous-Integration</a></li><li><a  href="http://www.phpfluesterer.de/category/software-entwicklung/howto-software-entwicklung/" rel="tag">Howto ...</a></li><li><a  href="http://www.phpfluesterer.de/category/projekte/open-source-software-projekte/" rel="tag">Open-Source Software</a></li><li><a  href="http://www.phpfluesterer.de/category/projekte/" rel="tag">Projekte</a></li></ul><ul class="multi-column-2"><li><a  href="http://www.phpfluesterer.de/category/projekte/buecher/qualitaet-in-softwareprojekten/" rel="tag">Qualität in Softwareprojekten</a></li><li><a  href="http://www.phpfluesterer.de/category/software-entwicklung/qualitaetssicherung/" rel="tag">Qualitätssicherung</a></li><li><a  href="http://www.phpfluesterer.de/category/software-entwicklung/" rel="tag">Software-Entwicklung</a></li><li><a  href="http://www.phpfluesterer.de/category/software-entwicklung/werkzeuge-tools/" rel="tag">Werkzeugkoffer</a></li><li><a  href="http://www.phpfluesterer.de/category/projekte/open-source-software-projekte/xhprof-php-extension/" rel="tag">XHProf (PHP-Extension)</a></li></ul></div></p>
<p>Doch da ist auch noch der Bereich: &#8220;Beyond the Tellerrand&#8221;. Nicht immer lassen sich Grenzen so einfach ziehen und es wäre auch nicht angemessen immer einen harten Schnitt zu machen. Somit behalte ich mir hier mal vor, auch den Blick &#8220;Beyond the Tellerrand&#8221; für den ein oder anderen Artikel nicht ausser Acht zu lassen.</p>
<p><strong>Eigene Projekte<br />
</strong>Da ich in der Vergangenheit schon am ein oder anderen Projekt partizipiert und auch einige selbst initiiert habe, finden sich diese auch hier wieder. Zu diesen Projekten zählen z. B. die Windows-Version von <em>XHProf</em>, die <em>moovrelocator</em>-Klassen, <em>Lazyload.js</em> (kommt in Kürze) sowie das von mir entwickelte und selbst auch eingesetzte WordPress-Plugin (siehe Startseite) <em>Amazon-Product-Widget</em>. Ein Buchprojekt welches ich vor über einem Jahr begonnen habe wird in Kürze auch seinen Platz hier finden und ihr somit auch darüber auf dem Laufenden gehalten.</p>
<p><strong>Sprache</strong><br />
In der Vergangenhit habe ich so oft zwischen deutsch und englisch hin- und hergewechselt, das keine klare Linie zu erkennen war. Nun, nach reichlich Überlegung und Auswertung der Besucherstatistiken, habe ich mich dazu entschieden, alle Kanäle nur noch in deutsch zu befüllen. Dabei spare ich mir dabei die Zeit für die Übersetzung (schließlich bekommt z. B. Google das auch ganz akzeptabel hin) und stecke die gesparte Zeit lieber in die Entwicklung oder in mein Buchprojekt. Schon jetzt absehbare Abweichungen werden z. B. ReTweets aus englisch-sprachigen Kanälen sein, da ich diese sicherlich nicht in die deutsche Sprache übersetzen werde. Ich hoffe, dass ich damit niemandem zu nahe trete. Anfragen bzw. E-Mails in englisch beantworte ich selbstverständlich a) weiter und b) selbstverständlich in englisch.</p>
<p><strong>Merke</strong><br />
Neuer Fokus, regelmäßig neue Inhalte und ab sofort ausschließlich unter <span style="text-decoration: underline;">www.phpfluesterer.de</span> zu erreichen</p>
<p><map name='google_ad_map_652_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/652?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_652_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=652&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fsoftware-entwicklung%2Fwillkommen-zuruck%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=652&amp;md5=312f2e2ee7eb48f05fec6c2a77a358c4" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/software-entwicklung/willkommen-zuruck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Source of XHProf 0.10.0 released</title>
		<link>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/source-of-xhprof-0-10-0-released/</link>
		<comments>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/source-of-xhprof-0-10-0-released/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 02:09:32 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[XHProf (PHP-Extension)]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[XHProf]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=496</guid>
		<description><![CDATA[I&#8217;ve released the source some minutes ago! Everyone who&#8217;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...<br /><a href="http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/source-of-xhprof-0-10-0-released/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve released the source some minutes ago! Everyone who&#8217;s interested in the source of the windows-compatible release can find the sources at <a  title="clickalicious/xhprof @ github" href="https://github.com/clickalicious/xhprof" target="_blank">my github repo for XHProf</a> and maybe soon at the <a  title="facebook/xhprof @ github" href="https://github.com/facebook/xhprof/" target="_blank">Facebook repo</a>.</p>
<p>For the &#8220;old-school&#8221; user &#8211; here are the udiff patches for the two files:</p>
<p>1. php_xhprof.h:</p>
<div class="codecolorer-container diff default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:658px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td><div class="diff codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #440088;">25a26</span><br />
&amp;gt; #include &quot;win32/php_xhprof_win32.h&quot;<br />
<span style="color: #440088;">33a35,37</span><br />
&amp;gt; /**<br />
&amp;gt; * PHP default module methods<br />
&amp;gt; */<br />
<span style="color: #440088;">39a44,46</span><br />
&amp;gt; /**<br />
&amp;gt; * declare methods available in PHP<br />
&amp;gt; */<br />
<span style="color: #440088;">45a53</span><br />
&amp;gt;</div></td></tr></tbody></table></div>
<p>and xhprof.c:</p>
<div class="codecolorer-container diff default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:658px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br /></div></td><td><div class="diff codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #440088;">61a62,71</span><br />
&amp;gt; #elif PHP_WIN32<br />
&amp;gt; /*<br />
&amp;gt; * Patch for compiling in Windows <span style="">&#40;</span>i've used MS VC++ <span style="">6</span><span style="">&#41;</span><br />
&amp;gt; * @author Benjamin Carl<br />
&amp;gt; */<br />
&amp;gt; # define CPU_SET<span style="">&#40;</span>cpu_id, new_mask<span style="">&#41;</span> <span style="">&#40;</span>*<span style="">&#40;</span>new_mask<span style="">&#41;</span><span style="">&#41;</span> = <span style="">&#40;</span>cpu_id + <span style="">1</span><span style="">&#41;</span><br />
&amp;gt; # define CPU_ZERO<span style="">&#40;</span>new_mask<span style="">&#41;</span> <span style="">&#40;</span>*<span style="">&#40;</span>new_mask<span style="">&#41;</span><span style="">&#41;</span> = <span style="">0</span><br />
&amp;gt; # define SET_AFFINITY<span style="">&#40;</span>pid, size, mask<span style="">&#41;</span> SetProcessAffinityMask<span style="">&#40;</span>pid, <span style="">&#40;</span>*<span style="">&#40;</span>mask<span style="">&#41;</span><span style="">&#41;</span><span style="">&#41;</span><br />
&amp;gt; # define GET_AFFINITY<span style="">&#40;</span>pid, size, mask<span style="">&#41;</span><br />
&amp;gt; GetProcessAffinityMask<span style="">&#40;</span>GetCurrentProcess<span style="">&#40;</span><span style="">&#41;</span>, mask, &amp;amp;s_mask<span style="">&#41;</span><br />
<span style="color: #440088;">78c88</span><br />
&amp;lt; #define XHPROF_VERSION &quot;0.9.2&quot;<br />
<span style="color: #888822;">---<br />
&amp;gt; #define XHPROF_VERSION &quot;0.10.0&quot;</span><br />
<span style="color: #440088;">236c246</span><br />
&amp;lt; static ZEND_DLEXPORT void <span style="">&#40;</span>*_zend_execute<span style="">&#41;</span> <span style="">&#40;</span>zend_op_array *ops TSRMLS_DC<span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt; ZEND_DLEXPORT void <span style="">&#40;</span>*_zend_execute<span style="">&#41;</span> <span style="">&#40;</span>zend_op_array *ops TSRMLS_DC<span style="">&#41;</span>;</span><br />
<span style="color: #440088;">239c249</span><br />
&amp;lt; static ZEND_DLEXPORT void <span style="">&#40;</span>*_zend_execute_internal<span style="">&#41;</span> <span style="">&#40;</span>zend_execute_data *data,<br />
<span style="color: #888822;">---<br />
&amp;gt; ZEND_DLEXPORT void <span style="">&#40;</span>*_zend_execute_internal<span style="">&#41;</span> <span style="">&#40;</span>zend_execute_data *data,</span><br />
<span style="color: #440088;">282a293,295</span><br />
&amp;gt; static int restore_cpu_affinity<span style="">&#40;</span>cpu_set_t * prev_mask<span style="">&#41;</span>;<br />
&amp;gt; static int bind_to_cpu<span style="">&#40;</span>uint32 cpu_id<span style="">&#41;</span>;<br />
&amp;gt;<br />
<span style="color: #440088;">408a422</span><br />
&amp;gt; unsigned long s_mask;<br />
<span style="color: #440088;">414a429</span><br />
&amp;gt; #ifndef PHP_WIN32<br />
<span style="color: #440088;">415a431,434</span><br />
&amp;gt; #else<br />
&amp;gt; GetSystemInfo<span style="">&#40;</span>&amp;amp;sysinfo<span style="">&#41;</span>;<br />
&amp;gt; hp_globals.cpu_num = sysinfo.dwNumberOfProcessors;<br />
&amp;gt; #endif<br />
<span style="color: #440088;">486c505,506</span><br />
&amp;lt; int i;<br />
<span style="color: #888822;">---<br />
&amp;gt; /* Note<span style="">&#40;</span>bcarl<span style="">&#41;</span>: changed to uint32 like defined in struct -&amp;gt; hp_global_t */</span><br />
&amp;gt; uint32 i;<br />
<span style="color: #440088;">488a509,511</span><br />
&amp;gt; // duplicate call needed?<br />
&amp;gt; get_all_cpu_frequencies<span style="">&#40;</span><span style="">&#41;</span>;<br />
&amp;gt;<br />
<span style="color: #440088;">490c513,514</span><br />
&amp;lt; php_info_print_table_header<span style="">&#40;</span><span style="">2</span>, &quot;xhprof&quot;, XHPROF_VERSION<span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt; php_info_print_table_row<span style="">&#40;</span><span style="">2</span>, &quot;xhprof&quot;, &quot;enabled&quot;<span style="">&#41;</span>;</span><br />
&amp;gt; php_info_print_table_row<span style="">&#40;</span><span style="">2</span>, &quot;xhprof version&quot;, XHPROF_VERSION<span style="">&#41;</span>;<br />
<span style="color: #440088;">493c517,521</span><br />
&amp;lt; php_info_print_table_header<span style="">&#40;</span><span style="">2</span>, &quot;CPU num&quot;, buf<span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt; php_info_print_table_row<span style="">&#40;</span><span style="">2</span>, &quot;CPU num&quot;, buf<span style="">&#41;</span>;</span><br />
&amp;gt; /* information about the cpu the process is bound to */<br />
&amp;gt; len = snprintf<span style="">&#40;</span>tmp, SCRATCH_BUF_LEN, &quot; CPU %d &quot;, hp_globals.cur_cpu_id<span style="">&#41;</span>;<br />
&amp;gt; tmp<span style="">&#91;</span>len<span style="">&#93;</span> = <span style="">0</span>;<br />
&amp;gt; php_info_print_table_row<span style="">&#40;</span><span style="">2</span>, &quot;process bound to&quot;, tmp<span style="">&#41;</span>;<br />
<span style="color: #440088;">501c529</span><br />
&amp;lt; len = snprintf<span style="">&#40;</span>tmp, SCRATCH_BUF_LEN, &quot;%f&quot;, hp_globals.cpu_frequencies<span style="">&#91;</span>i<span style="">&#93;</span><span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt; len = snprintf<span style="">&#40;</span>tmp, SCRATCH_BUF_LEN, &quot;%-.0f&quot;, hp_globals.cpu_frequencies<span style="">&#91;</span>i<span style="">&#93;</span><span style="">&#41;</span>;</span><br />
<span style="color: #440088;">923,924d950</span><br />
&amp;lt; int desc_len;<br />
&amp;lt; char *desc;<br />
<span style="color: #440088;">1099,1101c1125,1127</span><br />
&amp;lt; /* Update tv */<br />
&amp;lt; tv-&amp;gt;tv_sec = <span style="">&#40;</span>time_in_micro / <span style="">1000000</span><span style="">&#41;</span>;<br />
&amp;lt; tv-&amp;gt;tv_usec = <span style="">&#40;</span>time_in_micro % <span style="">1000000</span><span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt; /* Update tv Note<span style="">&#40;</span>bcarl<span style="">&#41;</span>: added explicit typecasting <span style="">&#40;</span>long<span style="">&#41;</span> warning C4244 */</span><br />
&amp;gt; tv-&amp;gt;tv_sec = <span style="">&#40;</span>long<span style="">&#41;</span><span style="">&#40;</span>time_in_micro / <span style="">1000000</span><span style="">&#41;</span>;<br />
&amp;gt; tv-&amp;gt;tv_usec = <span style="">&#40;</span>long<span style="">&#41;</span><span style="">&#40;</span>time_in_micro % <span style="">1000000</span><span style="">&#41;</span>;<br />
<span style="color: #440088;">1184a1211,1219</span><br />
&amp;gt;<br />
&amp;gt; #ifdef PHP_WIN32<br />
&amp;gt; __asm <span style="">&#123;</span><br />
&amp;gt; cpuid<br />
&amp;gt; rdtsc<br />
&amp;gt; mov __a, eax<br />
&amp;gt; mov __d, edx<br />
&amp;gt; <span style="">&#125;</span><br />
&amp;gt; #else<br />
<span style="color: #440088;">1185a1221,1222</span><br />
&amp;gt; #endif<br />
&amp;gt;<br />
<span style="color: #440088;">1230,1231c1267,1268</span><br />
&amp;lt; start-&amp;gt;tv_sec = incr/<span style="">1000000</span>;<br />
&amp;lt; start-&amp;gt;tv_usec = incr%1000000;<br />
<span style="color: #888822;">---<br />
&amp;gt; start-&amp;gt;tv_sec = <span style="">&#40;</span>long<span style="">&#41;</span><span style="">&#40;</span>incr/<span style="">1000000</span><span style="">&#41;</span>;</span><br />
&amp;gt; start-&amp;gt;tv_usec = <span style="">&#40;</span>long<span style="">&#41;</span><span style="">&#40;</span>incr%1000000<span style="">&#41;</span>;<br />
<span style="color: #440088;">1270a1308,1309</span><br />
&amp;gt; uint64 tsc_start;<br />
&amp;gt; uint64 tsc_end;<br />
<span style="color: #440088;">1276c1315,1317</span><br />
&amp;lt; uint64 tsc_start = cycle_timer<span style="">&#40;</span><span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt;</span><br />
&amp;gt; tsc_start = cycle_timer<span style="">&#40;</span><span style="">&#41;</span>;<br />
&amp;gt;<br />
<span style="color: #440088;">1284c1325,1327</span><br />
&amp;lt; uint64 tsc_end = cycle_timer<span style="">&#40;</span><span style="">&#41;</span>;<br />
<span style="color: #888822;">---<br />
&amp;gt;</span><br />
&amp;gt; tsc_end = cycle_timer<span style="">&#40;</span><span style="">&#41;</span>;<br />
&amp;gt;<br />
<span style="color: #440088;">1294c1337</span><br />
&amp;lt; int id;<br />
<span style="color: #888822;">---<br />
&amp;gt; uint32 id;</span><br />
<span style="color: #440088;">1519,1520d1561</span><br />
&amp;lt; double gtod_value, rdtsc_value;<br />
&amp;lt;<br />
<span style="color: #440088;">1532c1573</span><br />
&amp;lt; hp_inc_count<span style="">&#40;</span>counts, &quot;wt&quot;, get_us_from_tsc<span style="">&#40;</span>tsc_end - top-&amp;gt;tsc_start,<br />
<span style="color: #888822;">---<br />
&amp;gt; hp_inc_count<span style="">&#40;</span>counts, &quot;wt&quot;, <span style="">&#40;</span>long<span style="">&#41;</span>get_us_from_tsc<span style="">&#40;</span>tsc_end - top-&amp;gt;tsc_start,</span><br />
<span style="color: #440088;">1786,1787d1826</span><br />
&amp;lt; zval *ret;<br />
&amp;lt; char *out_url;</div></td></tr></tbody></table></div>
<p><map name='google_ad_map_496_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/496?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_496_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=496&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fprojekte%2Fopen-source-software-projekte%2Fxhprof-php-extension%2Fsource-of-xhprof-0-10-0-released%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=496&amp;md5=ce0ab61b5cbf0d830e55970333d750ce" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/source-of-xhprof-0-10-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XHProf PHP-extension 0.10.0 &#8211; Windows-Build</title>
		<link>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-php-extension-0-10-0-windows-32nt-compatible-version/</link>
		<comments>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-php-extension-0-10-0-windows-32nt-compatible-version/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 16:09:54 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[XHProf (PHP-Extension)]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=485</guid>
		<description><![CDATA[I&#8217;ve recently finished version 0.10.0 of XHProf the PHP-Profiler published by Facebook. I&#8217;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....<br /><a href="http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-php-extension-0-10-0-windows-32nt-compatible-version/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently finished version 0.10.0 of <a  title="XHProf @ Facebook" href="http://mirror.facebook.net/facebook/xhprof/doc.html" target="_blank" class="broken_link">XHProf</a> the PHP-Profiler <a  title="XHProf @ github" href="https://github.com/facebook/xhprof" target="_blank">published by Facebook</a>. I&#8217;ve added the missing functionality for windows versions (e.g. getrusage(), SET_AFFINITY(), GET_AFFINITY()).</p>
<p>This Version is based on <a  title="xhprof @ pecl" href="http://pecl.php.net/package/xhprof" target="_blank">Version 0.9.2 beta (2009-06-01) from pecl</a>. The extension was linked against php5ts.lib (PHP 5.3.3, VC++ 6, TS, Debug) and packed with UPX afterwards.</p>
<p><a  href="http://www.phpfluesterer.de/wp-content/uploads/2010/12/screen_xhprof.jpg" class="thickbox no_icon" rel="gallery-485" title="Screenshot XHProf 0.10.0"><img class="aligncenter size-medium wp-image-486" title="Screenshot XHProf 0.10.0" src="http://www.phpfluesterer.de/wp-content/uploads/2010/12/screen_xhprof-300x120.jpg" alt="Screenshot XHProf 0.10.0" width="300" height="120" /></a></p>
<p>You can download the Extension <a  title="download PHP-Extension XHProf 0.10.0 Windows compatible" href="http://www.phpfluesterer.de/?download=XHProf-0.10.0-PHP-5.3.3-VC6-x86-TS" target="_blank">here</a>.</p>
<p>I will release the source at <a  title="clickalicious @ github" href="https://github.com/clickalicious" target="_blank">github</a> as soon as i did enough tests. I would be nice to have your feedback as well to get a 100% working profiler!</p>
<p><map name='google_ad_map_485_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/485?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_485_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=485&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fprojekte%2Fopen-source-software-projekte%2Fxhprof-php-extension%2Fxhprof-php-extension-0-10-0-windows-32nt-compatible-version%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=485&amp;md5=6a5ce8dd234615de4d0ed8f73099bcc2" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/projekte/open-source-software-projekte/xhprof-php-extension/xhprof-php-extension-0-10-0-windows-32nt-compatible-version/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>XHGUI für XHProf &#8211; Windows Version</title>
		<link>http://www.phpfluesterer.de/software-entwicklung/werkzeuge-tools/xhgui-fuer-xhprof-windows-version/</link>
		<comments>http://www.phpfluesterer.de/software-entwicklung/werkzeuge-tools/xhgui-fuer-xhprof-windows-version/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 00:31:20 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Werkzeugkoffer]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[Qualität]]></category>
		<category><![CDATA[XHProf]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=477</guid>
		<description><![CDATA[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...<br /><a href="http://www.phpfluesterer.de/software-entwicklung/werkzeuge-tools/xhgui-fuer-xhprof-windows-version/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Für den PHP Software-Profiler <a  title="XHProf by Facebook" href="http://mirror.facebook.net/facebook/xhprof/doc.html" target="_blank" class="broken_link">XHProf</a> wird von Facebook <a  title="XHProf by Facebook" href="https://github.com/facebook/xhprof" target="_blank">eine GUI</a> 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 <a  title="Paul Preinheimer" href="http://blog.preinheimer.com/index.php?/archives/355-A-GUI-for-XHProf.html" target="_blank">Paul Preinheimer</a> dachte sich das gleiche und hat sich des Problems angenommen und die GUI um die &#8220;<a  title="highcharts" href="http://www.highcharts.com/" target="_blank">highchart</a>&#8221; charting library (JavaScript) erweitert und an vielen anderen Stellen entsprechend angepasst.</p>
<p><a  href="http://www.phpfluesterer.de/wp-content/uploads/2010/12/2010-04-26_1443.png" class="thickbox no_icon" rel="gallery-477" title="Screenshot XHGUI mit Highchart"><img class="aligncenter size-medium wp-image-483" title="Screenshot XHGUI mit Highchart" src="http://www.phpfluesterer.de/wp-content/uploads/2010/12/2010-04-26_1443-300x177.png" alt="Screenshot XHGUI mit Highchart" width="300" height="177" /></a></p>
<p>Heute habe ich die XHGUI um einige Switches erweitert, so daß diese auch auch Windows-Systemen einwandfrei genutzt werden kann. Paul Preinheimer hat die Änderungen schon in sein Repo auf Github übernommen, so daß ihr euch die XHGUI direkt von dort auschecken könnt.</p>
<p>Für diejenigen unter euch, die sich jetzt wundern was ich mit der XHGUI unter Windows anfangen möchte, die möchte ich hiermit informieren daß eine angepasste und für Windows kompilierte Version von XHProf (php_xprof.dll) von mir im Laufe des heutigen Tages bereitgestellt wird. Somit kann auch auf Windows-basierten Entwicklungssystemen mit XHProf gearbeitet werden. Ich habe diese dringend benötigt, nirgendwo fertig gefunden und deshalb nach Jahren mal wieder meinen C-Compiler angeschmissen. Mehr dazu im Laufe des heutigen Tages &#8230;</p>
<p><a  title="XHGUI by Paul Preinheimer" href="https://github.com/preinheimer/xhprof" target="_blank">Die angepasste XHGUI findet ihr hier</a></p>
<p><map name='google_ad_map_477_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/477?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_477_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=477&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fsoftware-entwicklung%2Fwerkzeuge-tools%2Fxhgui-fuer-xhprof-windows-version%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=477&amp;md5=604044c08e9483a6c5cfcd4c3d565533" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/software-entwicklung/werkzeuge-tools/xhgui-fuer-xhprof-windows-version/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Erkennen des Character-Encodings durch MAGIC-Field</title>
		<link>http://www.phpfluesterer.de/software-entwicklung/erkennen-des-character-encodings-durch-html-form-magic-field/</link>
		<comments>http://www.phpfluesterer.de/software-entwicklung/erkennen-des-character-encodings-durch-html-form-magic-field/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 10:14:25 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[Tipps + Tricks]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=465</guid>
		<description><![CDATA[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...<br /><a href="http://www.phpfluesterer.de/software-entwicklung/erkennen-des-character-encodings-durch-html-form-magic-field/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>Als ich das gelesen hatte, konnte ich mir dies nur schwer vorstellen, zumal ich ja nicht erst seit gestern Formulare für das Netz erstelle. Doch es funktioniert tatsächlich. Allerdings konnte ich dies nur mit Firefox in Version 3.5 und dem Internet Explorer in Version 7 testen (Wenn jemand dies auch mit anderen Browser schon getestet hat, möge er oder sie das Ergebnis docheinfach per Kommentar mit uns teilen).</p>
<p>Einfach folgendes Feld in das Formular einbinden:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:658px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;_charset_&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></div></td></tr></tbody></table></div>
<p>Und schon sollte man das Ergebnis im entgegennehmenden Skript sehen können (Achtung! Der Internet Explorer gibt den Zeichensatz lowercase und der Firefox uppercase an).</p>
<p>Euer<br />
Benjamin Carl</p>
<p><map name='google_ad_map_465_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/465?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_465_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=465&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fsoftware-entwicklung%2Ferkennen-des-character-encodings-durch-html-form-magic-field%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=465&amp;md5=29dab1df73a3dff38f7299a2ca8b776b" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/software-entwicklung/erkennen-des-character-encodings-durch-html-form-magic-field/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verarbeitung von UTF-8 mit PHP</title>
		<link>http://www.phpfluesterer.de/software-entwicklung/die-wichtigsten-informationen-fur-utf-8-mit-php/</link>
		<comments>http://www.phpfluesterer.de/software-entwicklung/die-wichtigsten-informationen-fur-utf-8-mit-php/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 12:00:15 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[Encoding]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zeichensätze]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=459</guid>
		<description><![CDATA[Immer mal wieder stolpert man über das Thema: &#8220;UTF-8 mit PHP&#8221; &#8211; 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...<br /><a href="http://www.phpfluesterer.de/software-entwicklung/die-wichtigsten-informationen-fur-utf-8-mit-php/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Immer mal wieder stolpert man über das Thema: &#8220;UTF-8 mit PHP&#8221; &#8211; 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 vielen Stellen selbst aktiv zu werden und zu validieren, konvertieren usw&#8230;</p>
<p>Auf der Suche nach passenden Informationen wird es ja teilweise fast schon kriminell &#8211; Was man auf den Ergebnisseiten so lesen kann und wie die Informationen, wohl durch Unwissenheit bzw. &#8220;Dem gefährlichen Halbwissen&#8221; geschuldet, wild durcheinander gewürfelt werden &#8211; oh je!</p>
<p>Ich habe die besten  und aufschlußreichsten drei Ergebnisse ermittelt und möchte diese nun mit euch teilen:</p>
<ol>
<li><a  title="Character Sets / Character Encoding Issues at phpwact.org" href="http://www.phpwact.org/php/i18n/charsets" target="_blank">Character Sets / Character Encoding Issues at phpwact.org</a></li>
<li><a  title="Handling UTF-8 at phpwact.org" href="http://www.phpwact.org/php/i18n/utf-8" target="_blank">Handling UTF-8 with PHP at phpwact.org</a></li>
<li><a  title="UTF-8: The Secret of Character Encoding" href="http://htmlpurifier.org/docs/enduser-utf8.html" target="_blank">UTF-8: The Secret of Character Encoding</a></li>
</ol>
<p><map name='google_ad_map_459_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/459?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_459_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=459&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fsoftware-entwicklung%2Fdie-wichtigsten-informationen-fur-utf-8-mit-php%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=459&amp;md5=dac0c469de898f7ed669b8b5d3d80644" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/software-entwicklung/die-wichtigsten-informationen-fur-utf-8-mit-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Salt&#8217;n&#039;Pepper &#8211; Username als Pepper zum Salt</title>
		<link>http://www.phpfluesterer.de/software-entwicklung/saltnpepper-username-als-pepper-zum-salt-fur-den-hash/</link>
		<comments>http://www.phpfluesterer.de/software-entwicklung/saltnpepper-username-als-pepper-zum-salt-fur-den-hash/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 21:10:20 +0000</pubDate>
		<dc:creator>PHPFlüsterer</dc:creator>
				<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[Hash]]></category>
		<category><![CDATA[Passwort]]></category>
		<category><![CDATA[Salt]]></category>

		<guid isPermaLink="false">http://www.phpfluesterer.de/?p=375</guid>
		<description><![CDATA[Soeben hatte ich eine Idee für einen dynamisch aus den vorliegenden Logindaten erzeugten Salt &#8211; quasi Pepper zum Salt. Für diejenigen unter euch, die nicht wissen, was Salt in Verbindung mit der Speicherung von Passwörtern...<br /><a href="http://www.phpfluesterer.de/software-entwicklung/saltnpepper-username-als-pepper-zum-salt-fur-den-hash/" target="_self" title="Weiterlesen" alt="Weiterlesen">Weiterlesen&#160;&#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Soeben hatte ich eine Idee für einen dynamisch aus den vorliegenden Logindaten erzeugten Salt &#8211; quasi Pepper zum Salt.</p>
<p>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:</p>
<blockquote><p>Salt (engl. „Salz“) bezeichnet in der Kryptographie eine zufällig gewählte Bitfolge, die an einen gegebenen Klartext vor der Verwendung als Eingabe einer Hashfunktion angehängt wird, um die Entropie der Eingabe zu erhöhen. Die Verwendung eines Salts erhöht den Aufwand von Wörterbuch-und Brute-Force-Angriffen oder Angriffen unter Verwendung einer Rainbow Table auf die Chiffre deutlich&#8230;</p></blockquote>
<p>Da bei einer Loginsession (in 99% aller Fälle) genau zwei Konstanten zur Verfügung stehen &#8211; zum Einen der &#8220;Benutzername&#8221; und zum Anderen das &#8220;Passwort&#8221; &#8211; läßt sich doch genau mit diesen ein solches, von mir &#8220;Salt&#8217;n'Pepper&#8221; getauftes, Verfahren realisieren.</p>
<p>Ganz neu scheint diese Idee oder der Gedanke jedenfalls nicht zu sein (siehe <a  title="Username as password-salt" href="http://www.callum-macdonald.com/2008/06/13/username-as-password-salt/" target="_blank">hier</a>).</p>
<p>Ich bin mir nur noch nicht sicher, ob es sich bei dieser Idee wirklich um eine sinnvolle handelt, oder ob der Ansatz eher zu &#8220;<a  title="security through obscurity" href="http://de.wikipedia.org/wiki/Security_through_obscurity" target="_blank">security through obscurity</a>&#8221; bzw.  &#8220;<a  title="security by obscurity" href="http://de.wikipedia.org/wiki/Security_through_obscurity" target="_blank">security by obscurity</a>&#8221; zählt. Was aber auch laut Wikipedia nicht grundsätzlich negativ wäre:</p>
<blockquote><p>Als Ergänzung bestehender Sicherheitskonzepte kann sich Verschleierung jedoch als wirkungsvoll z. B. gegenüber automatisierten Angriffen erweisen.</p></blockquote>
<p>In den mir bekannten Systemen wird entweder ein komplett anderes Hashing-Verfahren wie z.B. <a  title="phpass" href="http://www.openwall.com/phpass/" target="_blank">phpass</a> eingesetzt (wie z. B. bei WordPress), oder es wird ein simples Md5-Hashing in Kombination mit einer Unbekannten als <a  title="wikipedia zu Salt / Kryptologie" href="http://de.wikipedia.org/wiki/Salt_%28Kryptologie%29" target="_blank">Salt</a> für den Hash verwendet. Die Salt-Funktion wird dabei, um eine weitere Trennung der sicherheitsrelevanten Funktionen zu erreichen, oftmals in der Datenbank, als &#8220;stored-procedure&#8221; hinterlegt.</p>
<p>Auf jeden Fall erhöht man die Anzahl der zur Berechnung des ursprünglichen Passwortes notwendigen (unbekannten) Informationen und erhöht dadurch ja schon die bedingte Entropie des erzeugten Hash.</p>
<p>So in etwa könnte das Ganze formuliert werden:</p>
<blockquote><p>hP = hash( p + hB + s )</p></blockquote>
<p>Dabei entspricht &#8220;hP&#8221; dem Ziel-Hash, &#8220;p&#8221; dem Passwort, &#8220;hB&#8221; dem Hash des Benutzernamens und &#8220;s&#8221; der statischen Salt-Value.</p>
<p>Wichtig! &#8220;hB&#8221; wird hier lediglich als Hash des Benutzernamens dargestellt, was natürlich nur beispielhaft gemeint ist. Hier liegt es an der Kreativität des Entwicklers, den Hash statt mit einem simplen MD5 ggf. mit einem kombinierten Verfahren zu erzeugen.</p>
<p>Ich würde mich diesmal sehr über Feedback oder Kritik in Form von Kommentaren freuen, das Thema ist sicherlich nicht nur für mich interessant.</p>
<p>Euer Benjamin Carl</p>
<p><map name='google_ad_map_375_45ad50ab3805f578'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/375?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_375_45ad50ab3805f578' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=375&amp;url= http%3A%2F%2Fwww.phpfluesterer.de%2Fsoftware-entwicklung%2Fsaltnpepper-username-als-pepper-zum-salt-fur-den-hash%2F' /></p> <p><a href="http://www.phpfluesterer.de/?flattrss_redirect&amp;id=375&amp;md5=eededc2afcdc312ab1d65cd463e67352" title="Flattr" target="_blank"><img src="http://www.phpfluesterer.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpfluesterer.de/software-entwicklung/saltnpepper-username-als-pepper-zum-salt-fur-den-hash/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

