<?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/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>bueltge.de [by:ltge.de] &#187; Entwicklung</title>
	<atom:link href="http://bueltge.de/category/entwicklung/feed/" rel="self" type="application/rss+xml" />
	<link>http://bueltge.de</link>
	<description>Frank Bültge schreibt auf bueltge.de zu den Themen Webentwicklung &#38; design, WordPress, Literatur und andere Themen bezüglich Internet und Development</description>
	<lastBuildDate>Mon, 06 Feb 2012 12:19:43 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Optionen aus WordPress an JavaScripts übergeben #1</title>
		<link>http://bueltge.de/optionen-aus-wordpress-an-javascripts-uebergeben/1329/</link>
		<comments>http://bueltge.de/optionen-aus-wordpress-an-javascripts-uebergeben/1329/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 09:19:50 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Adventskalender]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1329</guid>
		<description><![CDATA[Von PHP auf Werte in der DB zugreifen und an JavaScript übergeben, das JSON Objekt ist eine Möglichkeit dies zu tun und dieses Beispiel soll es verdeutlichen.]]></description>
			<content:encoded><![CDATA[<p>Auch in WordPress bleibt man nicht konstant in der PHP-Welt und so müssen Einstellungen, Daten aus der Datenbank an Scripte übergeben werden. In vielen Plugins findet man Lösungen in dem die <code>wp-load.php</code> geladen wird und damit der Zugriff auf alle Funktionen von WordPress. Vor geraumer Zeit hat <a href="http://ottopress.com/2010/dont-include-wp-load-please/">Otto (Samuel Wood)</a> auf diesen Umstand schon aufmerksam gemacht und der Artikel zeigt Lösungsansätze. Noch immer kommen dazu Fragen auf und noch immer erscheinen Plugins, die die wp-load.php genau auf Grund solcher Probleme laden.</p>
<p>Eine ähnliche Problematik stellt sich, wenn man den Source der Scripte nicht einfach in den Footer-Bereich von WordPress schreibt, sondern sauber in eine Datei auslagert und via <code>wp_enqueue_script()</code> inkludiert. Nur so kann WordPress diese Scripte mit verwalten, packen und optimiert ausliefern. Daher möchte ich in zwie Beispielen aufzeigen, wie man Daten von PHP an JS übergibt.<br />
<span id="more-1329"></span><br />
Die ersten Schnipsel nutzen die Übergabe von Werten via JSON; wobei ich die Werte aus der Datenbank mit den gängigen Mitteln in PHP hole und das Script direkt im head der Seite die Werte als Objekt ablegt.</p>
<pre><code>
add_action( 'admin_enqueue_scripts', 'fb_print_scripts' );

function fb_print_scripts() {
	global $current_screen;

	if ( isset( $current_screen -&gt; id ) &amp;&amp; ! in_array( $current_screen -&gt; id, array( 'post', 'page' ) ) )
		return;

	if ( is_plugin_active_for_network( plugin_basename( __FILE__ ) ) )
		$options = get_site_option( 'my_options_id' );
	else
		$options = get_option( 'my_options_id' );

	if ( ! $options )
		return;
	?&gt;
	&lt;script type=&quot;text/javascript&quot;&gt;
		var my_json_object = &lt;?php echo htmlspecialchars( json_encode( $options ) ); ?&gt;;
	&lt;/script&gt;
	&lt;?php
}
</code></pre>
<p>Die obige Funktion gibt nun die Werte aus der Datenbank als JSON-Objekt in den head im Backend, da im ersten Schritt der Funktion die Seite abgefragt wird. Mittes <code>$current_screen</code> wird geprüft, so dass nur ausgeliefert wird, wenn man auf der definierten Seiten (post, page) ist.</p>
<p>Der folgende Schritt ist üblich und best practice in WordPress um Scripte einzubringen. Dabei inkludiere ich das JS-File, welches dann auf das JSON-Objekt zugreift.</p>
<pre><code>
add_action( 'admin_enqueue_scripts', 'fb_admin_enqueue_scripts' );

function fb_admin_enqueue_scripts( $where ) {

	if ( ! in_array( $where, array( 'post.php', 'post-new.php', ) )
		return;

	$suffix = defined('SCRIPT_DEBUG') &amp;&amp; SCRIPT_DEBUG ? '.dev' : '';

	wp_enqueue_script(
		self :: get_textdomain() . '_script',
		plugins_url( '/js/my_script' . $suffix. '.js', __FILE__ ),
		array( 'jquery', 'my_other_script' ),
		'',
		TRUE
	);

}
</code></pre>
<p>Im Script wird dann direkt auf das Objekt zugegriffen, welches verarbeitet wird.</p>
<pre><code class="javascript">
jQuery( document ).ready( function( $ ) {

	if ( typeof my_json_object == 'undefined' )
		return;

// debug in console of Browser
console.dir( my_json_object ); 

});
</code></pre>
<p>Eine weitere Lösung soll im Folgebeitrag der diesjährigen Serie vorgestellt werden; der Link folgt.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/optionen-aus-wordpress-an-javascripts-uebergeben/1329/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/optionen-aus-wordpress-an-javascripts-uebergeben/1329/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple Media Queries Debugging</title>
		<link>http://bueltge.de/simple-media-queries-debugging/1286/</link>
		<comments>http://bueltge.de/simple-media-queries-debugging/1286/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 11:17:58 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1286</guid>
		<description><![CDATA[Media Queries sind dabei sich zu etablieren, Vor- und Nachteile seien hier kein Thema. Definitiv ist das „Debuggen” nicht immer einfach und die Layouterstellung kann schnell komplex werden. Diese Lösung stellt die Umsetzung einer Idee dar, um den jeweiligen Viewport zu kennen, da im obersten Bereich der Seite dargestellt wird. Durch diese Werte kann auf die verschiedenen Weiten eingegangen werden.]]></description>
			<content:encoded><![CDATA[<p>Der Titel dieses Artikels ist für die entstandene Lösung sicher überzogen &#8211; trotzdem hatte ich mal wieder Spaß an einer kleinen <a href="http://bueltge.de/test/media-query-debugger.php">statischen Spielerei</a>, die im Grunde nur entstanden ist, da ich für ein Projekt den Viewport haben wollte um besser für entsprechende Media Queries zu stylen. Die eigentliche Lösung wurde dann etwas erweitert und durch die Hilfe der Community, insbesondere <a href="http://frederic-hemberger.de/">Frederic</a> und <a href="http://www.grochtdreis.de/">Jens</a>, wurde der Iststand erreicht und kann in jeder Form genutzt werden.<br />
<span id="more-1286"></span><br />
Zum Testen von Media Queries nutze ich meine kleine <a href="http://bueltge.de/test/media-query-tester.php" title="Zum Tester">iFrame-Anpassung</a>, die mittels DOM Storage-API verschiedene Werte zulässt; mehr dazu im <a href="http://bueltge.de/simple-media-queries-tester/1239/" title="Artikel zum Simple Media Queries Tester">zugehörigen Artikel</a>. Trotzdem wollte ich immer den aktuellen Stand haben und hatte mir daher mittels CSS an den body gehangen. Dies kann man einfach tun und ist für verschieden, die üblichen Verdächtigen, nun im Projekt integriert. Diese Aufgabe wird von einer einzelnen CSS-Datei übernommen &#8211; <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging/blob/master/debug.css"><code>debug.css</code></a>; so dass sie einfach inkludiert werden kann. Alternativ könnt ihr damit alles mögliche anfangen &#8211; <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging" title="Forken, Lesen auf Github.com">forken</a> und somit die Idee verbessern und mehr daraus machen. </p>
<p><a href="http://bueltge.de/wp-content/images/simple-media-queries-debug.png" title="Bild ein wenig größer?"><img class="centered aligncenter" src="http://bueltge.de/wp-content/images/simple-media-queries-debug450.png" alt="Simple Media Queries Debugge - Screenshot" /></a></p>
<p>Innerhalb der kleinen Spielerei sind diverse Anpassungen für Media Queries drin, so dass die Seite auch einen Effekt hat, wenn man die Größe des Browsers ändert bzw. mit verschiedenen Geräten auf die Seite gelangt. Dabei habe ich keinen Wert auf Schönheit gelegt, sondern eher Pragmatismus und Effekthascherei genutzt. So nutze ich Transition via CSS3 um das Verändern etwas animiert zu gestalten und so die Darstellung zu hübschen.<br />
Schaut euch den Code einfach an, entweder direkt auf <a href="http://bueltge.de/test/media-query-debugger.php">der Seite</a> oder im <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging" title="Zum Projekt auf Github">Projekt auf github</a>, wo ich alles abgelegt habe.</p>
<p>Für alle, denen noch der Zusammenhang fehlt; bitte einfach <a href="http://bueltge.de/test/media-query-debugger.php">die Seite</a> besuchen und den Browser in der Größe ändern; dabei die Ausgabe am oberen Rand beachten. Alternativ dieses kleine Video.</p>
<p><iframe src="http://player.vimeo.com/video/25499813" width="640" height="480" frameborder="0"></iframe></p>
<p>Mir ist klar, dass dies nicht die beste Lösung ist, da Media Queries in jeder erdenklichen Form auftauchen können und die Ausgabe den größten Nutzwert hat, wenn man die Ausgabe der optimierten Größe anpasst. Aber es stellt eine einfache und schnell Lösung dar. Alternativen sind vermutlich via JavaScript denkbar, die das Stylesheet parsen und anhand der gefunden Anweisungen zu Media Queries den Viewport auswerfen &#8211; aber diese Form erfordert etwas mehr zeit und Kraft; also schnell überzogen und in meinem Fall ist die vorgestellte Lösung vollkommen ausreichend; durch die Erweiterungen von Frederic sind auch noch andere Viewports eingeflossen und in diesem Zusammenhang habe ich mir bekannte typische Größen und Ausrichtungen integriert &#8211; <em>Portrait</em> und <em>Landscape</em>. Alles weitere seht ihr in der angesprochenen <a href="https://github.com/bueltge/Simple-Media-Queries-Debugging/blob/master/debug.css" title="debug.css als Code lesen"><code>debug.css</code></a> und direkt auf <a href="http://bueltge.de/test/media-query-debugger.php">der Seite</a>, die den Source des Stylesheets ausgibt.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/simple-media-queries-debugging/1286/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/simple-media-queries-debugging/1286/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/simple-media-queries-debug450.png" />
		<media:content url="http://bueltge.de/wp-content/images/simple-media-queries-debug450.png" medium="image">
			<media:title type="html">Simple Media Queries Debugge - Screenshot</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Schriftarten für Coder unter Linux</title>
		<link>http://bueltge.de/schriftarten-fur-coder-unter-linux/1233/</link>
		<comments>http://bueltge.de/schriftarten-fur-coder-unter-linux/1233/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 05:23:53 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Font]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1233</guid>
		<description><![CDATA[Die richtige Schriftart im Editor ist nicht immer der Standard, hier eine Auswahl an Schriften unter Linux.]]></description>
			<content:encoded><![CDATA[<p>Ich arbeite an unterschiedlichen Systemen und habe mich über die Jahre immer wieder mit den Fonts meiner Editoren herum geschlagen. Je nach Betriebssystem kann man unterschiedliche Fonts im Standard wählen, hinzu kommt die Version und die installierten Fonts. Eine Auswahl von Schriftarten unter Linux möchte ich mit diesem Artikel vorstellen und vielleicht hilft es dem einen oder anderen seine spezielle Vorliebe zu finden. Dies mag kein direkter Artikel zum Thema WordPress sein, aber bewegen sich nicht alle einen Großteil ihrer Zeit im Editor, wenn sie für und mit WordPress entwickeln und da sollte der Font ein große Rolle spielen.<br />
<span id="more-1233"></span><br />
Einen ähnlichen Artikel, mehr für Windows-Nutzer geeignet findet ihr bei Jeff in seinem Beitrag <a href="http://www.codinghorror.com/blog/2007/10/revisiting-programming-fonts.html">Revisiting Programming Fonts</a>.</p>
<p>Ich habe ein freies Script erstellt, welches nichts leistet, aber die kleine Auswahl an Schriften schön demonstriert und als Umgebung nutze ich die IDE <a href="http://www.aptana.com/">Aptana</a>, in der ich gerne arbeite; aktuell noch Version 2.*; wobei die neue Version 3 mit vielen Features aufwartet und aktuell als Beta genutzt werden kann.</p>
<p>Ich habe alle Fonts mit der gleichen Größe übernommen und auch die Screenshots sind gleich, so dass ihr euch ein Bild machen könnt. Weitere Vorschläge und Vorlieben bitte in den Kommentaren.</p>
<p>Während ich auf dem System mit der Droid sehr zufrieden bin, nutze ich im Editor in der Regel die Monospace. Unter Windows nutze ich die Consolas, 11 Punkte Regular.</p>
<h4>Monospace 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/monospace-11-regular.png" alt="monospace-11-regular" /></p>
<h4>Andale mono 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/andale-mono-11-regular.png" alt="andale-mono-11-regular" /></p>
<h4>Courier New 11  Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/courier-new-11-regular.png" alt="courier-new-11-regular" /></p>
<h4>Verdana 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/verdana-11-regular.png" alt="verdana-11-regular" /></p>
<h4>Inconsolata 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/inconsolata-11-regular.png" alt="inconsolata-11-regular" /></p>
<h4>Free mono 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/free-mono-11-regular.png" alt="free-mono-11-regular" /></p>
<h4>Droid 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/droid-11-regular.png" alt="droid-11-regular" /></p>
<h4>DejaVu 11 Regular</h4>
<p><img src="http://bueltge.de/wp-content/images/linux-coder-fonts/dejavu-mono-11-regular.png" alt="dejavu-mono-11-regular" /><br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/schriftarten-fur-coder-unter-linux/1233/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/schriftarten-fur-coder-unter-linux/1233/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/linux-coder-fonts/monospace-11-regular.png" />
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/monospace-11-regular.png" medium="image">
			<media:title type="html">monospace-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/andale-mono-11-regular.png" medium="image">
			<media:title type="html">andale-mono-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/courier-new-11-regular.png" medium="image">
			<media:title type="html">courier-new-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/verdana-11-regular.png" medium="image">
			<media:title type="html">verdana-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/inconsolata-11-regular.png" medium="image">
			<media:title type="html">inconsolata-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/free-mono-11-regular.png" medium="image">
			<media:title type="html">free-mono-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/droid-11-regular.png" medium="image">
			<media:title type="html">droid-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/linux-coder-fonts/dejavu-mono-11-regular.png" medium="image">
			<media:title type="html">dejavu-mono-11-regular</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Meine WordPress Entwickler Toolbox</title>
		<link>http://bueltge.de/meine-wordpress-entwickler-toolbox/1037/</link>
		<comments>http://bueltge.de/meine-wordpress-entwickler-toolbox/1037/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 06:35:12 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1037</guid>
		<description><![CDATA[Immer wieder kommt die Frage rein: Was nutzt du als Umgebung zum Entwickeln mit WordPress. Einige Anregungen möchte ich hier mal geben, wobei ich diese Vorlieben nicht als statisches Etwas sehe. Ich lebe, der Rechner mit mir und ebenso die Tools, die ich nutze.]]></description>
			<content:encoded><![CDATA[<p>Immer wieder kommt die Frage rein: Was nutzt du als Umgebung zum Entwickeln mit WordPress. Einige Anregungen möchte ich hier mal geben, wobei ich diese Vorlieben nicht als statisches Etwas sehe. Ich lebe, der Rechner mit mir und ebenso die Tools, die ich nutze.<br />
Ebenso würde ich mich freuen, wenn mir der eine oder andere seine Vorlieben in diesem Segment kurz in den Kommentaren nennt - vielleicht findet sich das eine oder andere Schmankerl.<br />
<span id="more-1037"></span></p>
<h4>Plattform</h4>
<p>Aktuell arbeite ich unter Windows und Linux, so dass sich meine Tools vorrangig auf beiden Plattformen anwenden lassen sollten. Dies ist mir wichtig, da ich eine heterogene Arbeitsumgebung für förderlich halte und es die Umgewöhnung am Client reduziert.</p>
<h4>Browser</h4>
<p>In meinem täglichen Umfeld der Webentwicklung arbeite ich vorrangig im Browser und im Editor, demzufolge sind diese beiden Werkzeuge für mich auch das Zentrum der Arbeit und bekommen den größten Zugriff.</p>
<p>Beim Browser vertraue ich auf <a href="http://www.mozilla-europe.org/de/firefox/">Firefox</a>, was vorrangig an den erstklassigen Erweiterungen liegt. In diesem Umfeld muss das Add on <a href="http://getfirebug.com/">FireBug</a> erwähnt werden, ohne das ich mir die Arbeit nicht mehr vorstellen könnte. Für dieses Add on gibt es wieder <a href="http://getfirebug.com/downloads#extensions">diverse Erweiterungen</a>, die ich ebenso nützlich empfinde, dazu zählen vor allem <a href="http://developer.yahoo.com/yslow/">YSlow</a>, <a href="http://www.firephp.org/">FirePHP</a> und <a href="http://code.google.com/intl/de-DE/speed/page-speed/">Page Speed</a>.</p>
<p>Im weiteren nutze ich sehr gern das Add on im Firefox - <a href="http://chrispederick.com/work/web-developer/features/">Web Developer</a> um diverse Inhalte einer Website zuzugreifen, sei es Cookies oder JavaScript auszuwerten, oder live CSS  zu schreiben. Die Vielfalt ist sehr mächtig und damit ist das Add on ein wunderbares Werkzeug. Einige Punkte überschneiden sich mit dem FireBug - hier muss man einfach sehen, was man lieber mag.</p>
<p>In diesem Zusammenhang gibt es einige wunderbare Erweiterungen für den Browser, die die Arbeit erleichtern und ebenso die Synchronisation verschiedener Clients übernehmen kann. Daher kommt mein Firefox nicht nur mit diesen beiden Add ons aus, sondern es gibt einige wenige mehr, die aber in diesem Zusammenhang keinen erhöhten Wert haben.</p>
<h4>Editor</h4>
<p>Ein weiteres wichtiges Werkzeug ist der Editor, wobei ich hier auf <a href="http://www.ultraedit.com/">UltraEdit</a> setze. Ein Editor der leider meinem Grundgedanken zu Open Source nicht entspricht, der mir aber über die vielen Jahre am Rechner ans Herz gewachsen ist. Hier schätze ich vorrangig die Geschwindigkeit des Editors und die wunderbare Erweiterbarkeit mit eigenen Tools. So nutze ich das Parsen von PHP und das validieren von HTML und CSS direkt im Editor. Für das Parsen von CSS kommt <a href="http://csstidy.sourceforge.net/">CSSTidy</a> zum Einsatz, auch online verfügbar. PHP parse ich via Webserver, der im Editor integriert ist und zusätzlich via <a href="http://www.icosaedro.it/phplint/">PHPLint</a>, auch in den zusätzlichen Werkzeugen des Editors integriert.</p>
<p>Unter Linux kann ich mich noch nicht ganz entscheiden und nutze dort <a href="http://www.geany.org/">Geany</a> und <a href="http://netbeans.org/">NetBeans</a>, wobei mir NetBeans eigentlich schon wieder zu träge ist und ich in Geany das eine oder andere vermisse. UE habe ich aktuell noch in der Test- und Betaphase und mal sehen, eventuell kann ich mich doch nicht von diesem Editor lösen.</p>
<h4>Webserver &#038; Tools</h4>
<p>In diesem Zusammenhang gibt es zwei weitere wichtige Tools, die im Rahmen der Webentwicklung einsetze. Ich setze zum Arbeiten auf der lokalen Umgebung unter Windows <a href="http://www.apachefriends.org/de/xampp.html">XAMPP</a> ein und unter Linux ist die lokale Webumgebung via Paketverwaltung installiert. Somit habe ich auf jedem Client eine Umgebung um mit PHP und mySQL zu arbeiten.</p>
<p>Wichtig bei der Entwicklung mit PHP ist für die Fehler- und Hinweisausgabe und das Debuggen. Unter PHP gibt es dabei diverse Ansätze und ich setze auf das Modul <a href="http://xdebug.org/">xDebug</a> und eine entsprechende Ausgabe der Fehler und Hinweise in PHP.<br />
Im weiteren schreibe ich in dem Zusammenhang die Errorlogs und werte diese aus. Als letztes Tool möchte ich auf <a href="http://code.google.com/p/webgrind/">Webgrind</a> hinweisen, was als Webanwendung genutzt wird. Alternativ gibt es auch Desktop-Tools, die diese Arbeit erledigen, bspw. <a href="http://sourceforge.net/projects/wincachegrind/">WinCacheGrind</a> unter Windows. Damit lässt sich hervorragend das Profiling von xDebug auswerten und der eigene Code optimieren. <a href="http://bueltge.de/php-debugging-und-profiling-leicht-gemacht/520/">Einen Beitrag zur Konfiguration</a> und diverse hinweise habe ich bereits in der Vergangenheit erstellt.</p>
<h4>FTP</h4>
<p>Um die Entwicklung auf den Server zu bekommen, bedarf es meist einem Tool, welches das FTP Protokoll beherrscht und möglichst eine Oberfläche für die Verwaltung der Accounts liefert. Hierbei setze ich unter Windows auf den <a href="http://www.ghisler.com/deutsch.htm">Total Commander</a>, den man hervorragend an seine Bedürfnisse anpassen kann und wo ich vorrangig schätze, dass ich Tabs verschiedene Verbindungen öffnen kann. Unter Linux nutze ich für die Übertragung via FTP das Add on für den Firefox <a href="http://fireftp.mozdev.org/">FireFTP</a>. Hier gibt es diverse Tools, allerdings habe ich noch nie die Zeit gefunden, um mir diverse andere Tools anzusehen.</p>
<p>Für die Verbindung von SSH kommt <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> als Hilfe zum Einsatz und <a href="http://developer.berlios.de/projects/sftp4tc/">damit</a> kann ich im Total Commander via SSH arbeiten. Unter Linux gibt es ebenso tolle Erweiterungen.</p>
<h4>WordPress</h4>
<p>Da ich vorrangig in und für WordPress entwickle, habe ich einige kleine Plugins in der Testumgebung aktiv, die mir die Sicht auf bestimmte Daten erleichtern, und die mir speziell für WordPress die Fehler speichern oder ausgeben. So teste ich beispielsweise auf nicht mehr aktuelle Funktionen von WordPress, um veraltetet Funktionen mit den neuen zu erkennen und zeitnah zu ersetzen. Eine kleine Liste mit kurzer Erläuterung von Plugins dazu, auch wenn ich nicht alle einsetze, so findet vielleicht der eine oder andere Gefallen.</p>
<ul>
<li><a href="http://bueltge.de/wordpress-27-offline-nutzen/710/">WP Offline</a> - da ich die ständigen Verbindungsversuche nicht brauche</li>
<li><a href="http://wordpress.org/extend/plugins/wp-developer-assistant/">WP Developer Assistant</a> - weil es einige Auswertungen und Hilfen hat, die so schnell zur Hand sind</li>
<li><a href="http://www.code-styling.de/english/development/wordpress-plugin-codestyling-localization-en">CodeStyling Localization</a> - weil jedes Plugin mehrsprachig erstellt wird und ich damit wunderbar neue Sprachfiles erstellen kann</li>
<li><a href="http://striderweb.com/nerdaphernalia/features/wp-log-deprecated-calls/">Log Deprecated Calls</a> - nicht immer dabei, kann aber nützlich sein</li>
<li><a href="http://www.mittineague.com/dev/er.php">Error Reporting</a> - für die, die nicht die Auswertung der Logs via Webungebung steuern</li>
<li><a href="http://bueltge.de/wordpress-performance-analysieren-plugin/558/">Debug Queries</a> - Analyse der Queries</li>
<li><a href="http://bueltge.de/debug-objects-wordpress-plugin/966/">Debug Objects</a> - Auswertung über sehr viele Werte</li>
<li><a href="http://www.adminer.org/en/">Adminer</a> - oft für den schnellen Zugriff auf einem Webspace oder als <a href="http://bueltge.de/adminer-fuer-wordpress/1014/">Plugin</a> direkt in WordPress</li>
<li><a href="http://www.firephp.org/">FirePHP</a> - als <a href="http://bueltge.de/firephp-und-wordpress/944/">Plugin</a> für WordPress um an diverse Inhalte zu kommen und nicht immer im Source zu wühlen</li>
<li><a href="http://wordpress.org/extend/plugins/core-control/">Core Control</a></li>
</ul>
<p>Damit genug, auch wenn es sicher noch mehr gibt. Entscheidend aus meiner Sicht sind aber nicht die Plugins, sondern die Umgebung mit xDebug und die Settings, die WordPress im Standard in diesem Zusammenhang bietet. Daher kann ich nur empfehlen, folgende Zeilen in der <code>wp-config.php</code> der Umgebung zu haben.</p>
<pre><code class="php">

/** Debugging WP */
define('WP_DEBUG', true); //enable the reporting of notices during development - E_ALL
define('WP_DEBUG_DISPLAY', true); //use the globally configured setting for display_errors and not force errors to be displayed
define('WP_DEBUG_LOG', true); //error logging to wp-content/debug.log
define('SCRIPT_DEBUG', true); //loads the development (non-minified) versions of all scripts and CSS and disables compression and concatenation,
define('E_DEPRECATED', false); //E_ALL &amp; ~E_DEPRECATED &amp; ~E_STRICT

define('AUTOSAVE_INTERVAL', '300');    // Autosave interval
define('SAVEQUERIES', true);    // Analyse queries
define('WP_POST_REVISIONS', false);
</code></pre>
<p>Diese Definitionen machen die Arbeit mit WordPress einfach und es gibt viele Hinweise von WP zu einem sauberen Code und aktuellen Funktionen. Den Autosave-Intervall ändere ich nur dann auf kleine Werte, wenn ich diesem Segment arbeite, wenn ich also möglichst schnell das Script brauche.</p>
<h4>Webzugriffe</h4>
<p>Im Web gibt es eine Vielzahl von Tools, die nützlich sind - ich möchte mal kurz einige vorstellen, die ich oft nutze und auch damit meinen Dank an die Leute sagen, die diese Dienste bereit stellen.</p>
<ul>
<li><a href="http://de2.php.net/">php.net</a> - weil man nie schnell genug an Infos kommt, daher habe ich auch im Firefox eine Erweiterung für das interne Suchfeld, was direkt in den Funktionen von php.net sucht (<a href="http://bueltge.de/test/searchplugins/phpnet.php">kann gern genutzt werden</a>, habe ich abgelegt)</li>
<li><a href="http://wpseek.com/">wpseek.com</a> - die Suche zu WordPress, auch eine Sucherweiterung für Firefox steht zur Verfügung (@Oliver: einzig und allein - ich wünschte mir mehr Übersicht, weniger Design <img src='http://bueltge.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</li>
<li><a href="http://xref.yoast.com/">PHP Cross Reference of WordPress Source</a> - weil ich manchmal so schneller bin als über den Editor</li>
<li><a href="http://bueltge.de">bueltge.de</a> - mein eigenes Blog <img src='http://bueltge.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ist gestartet und meine Lösungen fest zu halten und zu teilen, ich nutze die Suche massiv und auch die gibt es als Browsererweiterung</li>
</ul>
<h4>Fazit</h4>
<p>Um UpToDate zu bleiben, nutze ich viele Anwendungen, die ich hier auch genannt habe, via SVN - dies gilt für WordPress ebenso wie für die genannten Tools, wenn es den seitens des Entwicklers angeboten wird. Ebenso ist die Arbeit mit SVN unumgänglich, wenn man <a href="http://wordpress.org/extend/plugins/profile/bueltge">Plugins auf dem Server</a> von WordPress ablegen will. Unter Windows (z.B. <a href="http://tortoisesvn.tigris.org/">Tortoise</a>) und Linux (z.B. <a href="http://rapidsvn.tigris.org/">RapidSVN</a>) ist die Arbeit mit einem SVN kein Problem und es stehen ausreichend gute Tools zur Verfügung.</p>
<p>Ein kleines Ausblick meiner aktuellen Tools und vielleicht findet einer von Euch Anregungen und hat ebenso Anregungen für mich.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/meine-wordpress-entwickler-toolbox/1037/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/meine-wordpress-entwickler-toolbox/1037/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Einfach mal Danke sagen!</title>
		<link>http://bueltge.de/einfach-mal-danke-sagen/1025/</link>
		<comments>http://bueltge.de/einfach-mal-danke-sagen/1025/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 14:49:07 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=1025</guid>
		<description><![CDATA[Nein, diesmal möchte ich mich nicht beschweren, sondern auf eine Aktion aufmerksam machen - 1 EURO FÜR EUREN ENTWICKLER am 15. Oktober 2009. In der Vergangenheit habe ich schon einige Einblicke in meine Einsicht zum Thema Danke für Entwicklungen dargestellt und nun gibt es eine Aktion, die eine wunderbare Geste gegenüber den vielen Entwicklern darstellt. [...]]]></description>
			<content:encoded><![CDATA[<p>Nein, diesmal möchte ich mich nicht beschweren, sondern auf eine Aktion aufmerksam machen - <a href="http://j.mp/1EURDAY">1 EURO FÜR EUREN ENTWICKLER am 15. Oktober 2009</a>.<br />
<span id="more-1025"></span><br />
<img class="centeredob" src="http://bueltge.de/wp-content/images/1eurday.png" alt="1 Euro Day - Einen Euro für Euren Entwickler" /></p>
<p>In der Vergangenheit habe ich schon <a href="http://bueltge.de/unzufrieden-als-digitaler-freizeitkaempfer/978/">einige Einblicke</a> in meine Einsicht zum Thema Danke für Entwicklungen dargestellt und nun gibt es eine Aktion, die eine wunderbare Geste gegenüber den vielen Entwicklern darstellt. Insofern ist es sicher wert, dass man über die Idee nachdenkt, wie immer man dazu auch steht. Besucht doch <a href="http://www.mobiflip.de/2009/10/einfach-mal-danke-sagen-1-eur-fuer-euren-entwickler-am-15-oktober-2009/">den Beitrag</a> und denkt über die Idee nach, vielleicht findet der oder andere Geschmack. Mein(e) und eurer(e) Entwickler freut(en) sich sicher über die Geste.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/einfach-mal-danke-sagen/1025/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/einfach-mal-danke-sagen/1025/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/1eurday.png" />
		<media:content url="http://bueltge.de/wp-content/images/1eurday.png" medium="image">
			<media:title type="html">1 Euro Day - Einen Euro für Euren Entwickler</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress Plugin Competition nutzen &amp; beachten</title>
		<link>http://bueltge.de/wordpress-plugin-competition-nutzen-beachten/969/</link>
		<comments>http://bueltge.de/wordpress-plugin-competition-nutzen-beachten/969/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 10:27:38 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=969</guid>
		<description><![CDATA[Die <a href="http://wordpress.org/extend/plugins/">Pluginliste im offiziellen Verzeichnis</a> von WordPress wächst stetig und fast täglich. Viele Lösungen sind kleine Gimmicks, die man auch ohne Plugin realisieren könnte, aber so ist es für viele Nutzer ein einfaches die Lösung zu nutzen. Aber es gibt auch aufwendige, überlegt und sehr nützliche Lösungen.

Egal aus welchem Grund man Plugins entwickelt, ob Hobbycoder, Profi oder Agentur mit Auftragsarbeit, der Vielzahl der Plugins sorgt zumindest für das weitere Wachsen der WordPress Community. Trotzdem ist gerade ein Event im Jahr den Plugins für WordPress gewidmet  -der <a href="http://weblogtoolscollection.com/pluginblog/">Plugin Competition</a>. Hier kann man sein Plugin der Community vorstellen und Preise gewinnen.]]></description>
			<content:encoded><![CDATA[<p>Die <a href="http://wordpress.org/extend/plugins/">Pluginliste im offiziellen Verzeichnis</a> von WordPress wächst stetig und fast täglich. Viele Lösungen sind kleine Gimmicks, die man auch ohne Plugin realisieren könnte, aber so ist es für viele Nutzer ein einfaches die Lösung zu nutzen. Aber es gibt auch aufwendige, überlegte und sehr nützliche Lösungen.</p>
<p>Egal aus welchem Grund man Plugins entwickelt, ob Hobbycoder, Profi oder Agentur mit Auftragsarbeit, die Vielzahl der Plugins sorgt zumindest für das weitere Wachsen der WordPress Community. Trotzdem ist gerade ein Event im Jahr den Plugins für WordPress gewidmet - der <a href="http://weblogtoolscollection.com/pluginblog/">Plugin Competition</a>. Hier kann man sein Plugin der Community vorstellen und <a href="http://weblogtoolscollection.com/plugin-competition-prizes/">Preise</a> gewinnen.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wp/wltcpl09.png" alt="wltcpl09" /><br />
<span id="more-969"></span></p>
<h3>Wieso, weshalb, warum</h3>
<p>Aktuell läuft der diesjährige Wettbewerb noch bis Ende Juli und es sind gerade mal 13 Plugins eingetragen. Darunter sind einige tolle Ideen. Obwohl jeden Tag neue Plugins im <a href="http://wordpress.org/extend/plugins/">SVN</a> von WordPress erscheinen, sind dort so wenig gelistet. Entwickler - traut euch, stellt euch der Konkurrenz.  Dieser Event ist ein Mehrwert für Nutzer und Entwickler, beide Seiten können nur Vorteile davon gewinnen. Klar, einem Profi in PHP das Wasser reichen ist nicht leicht - aber auch im <a href="http://wordpress.org/extend/plugins/">SVN</a> steht euer Code der Öffentlichkeit zur Verfügung und kann daher immer eingelesen werden. Der <a href="http://weblogtoolscollection.com/pluginblog/">Plugin Competition</a> ist nur eine andere Plattform und sollte daher von Einsteigern und Profis genutzt werden.<br />
Er macht das Plugin nicht besser, aber es kann dazu kommen, dass man mehr Aufmerksamkeit zum Plugin bekommt, damit mehr Rückmeldungen und, so habe ich es im letzten Jahr erfahren, auch viele Ideen, Verbesserungen und direkte Lösungen zum Plugin. In diesem Jahr soll es zumindest die gleich Rückmeldung geben wie im letzen Jahr, wo Otz jedes Plugin bewertet hat, nach Idee und Umsetzung. Auch in diesem Jahr wird man wieder Feedback von Ozh erwarten können, siehe sein <a href="http://planetozh.com/blog/2009/07/lets-get-more-contestants-into-the-wordpress-plugin-competition/">Beitrag zum Plugin Competition</a>. Klar, die Meinung von Ozh ist nicht in jedem Interesse und sicher wird es die eine oder andere differenzierte Meinung geben, aber die Rückmeldung ist entscheidend. Damit hat nicht nur der Nutzer etwas davon, sondern als Entwickler habe ich dadurch viel gelernt, meine Kenntnisse erweitert und die Hinweise ergänzt.</p>
<p>Ebenso kann der Competition zeigen, wie engagiert Entwickler mit WordPress arbeiten, kann die Aufmerksamkeit auf WordPress erhöhen und Entwicklern, die eventuell Aufträge generieren wollen, eine Plattform bieten.</p>
<p>Der Wettbewerb ist kein Mehraufwand für euch Plugin-Schreiber. Euer Plugin bekommt nur eine zusätzliche Plattform und wird bewertet. Alles in allem also Vorteile. Zusätzlich könnt ihr noch diverse Preise abräumen. Daher - mitmachen!</p>
<h3>Sponsoring</h3>
<p>Ebenso ist der Wettbewerb eine wunderbare Plattform für Leute, die ihr Produkt für WordPress bewerben wollen. Daher gilt es für Theme &#038; Plugin-Autoren, Agenturen und Hostingservices, etc. - melden, Sponsore den Wettbewerb und hole dir die Aufmerksamkeit. Sicher auch eine gute Idee für WordPress Deutschland - aber dazu braucht WPD Sponsoren und Entwickler, die entweder ihre Arbeit, ihr Plugin oder ihre finanziellen Mittel einbringen.</p>
<h3>Aus deutscher Sicht</h3>
<p>Aktuell sind 2 Plugins von deutschen Entwicklern drin, das <a href="http://www.code-styling.de/deutsch/entwicklungen/wordpress-plugin-codestyling-localization">dritte Plugin</a> sollte hoffentlich bald folgen, denn es verdient mehr Aufmerksamkeit. In diesem Zusammenhang ein Aufruf an meine deutschen Leser - Votet für uns, zeigt das deutsche Entwickler im Bereich WordPress ein Wörtchen mitzureden haben, auch wenn wir sonst bei WordPress eine untergeordnete Rolle spielen, da unser Sprachraum für viele dort nicht existent zu sein scheint.</p>
<ul>
<li><a href="http://weblogtoolscollection.com/pluginblog/2009/06/30/changelogger/">Changelogger</a> von <a href="http://www.schloebe.de/">Oliver Schlöbe</a></li>
<li><a href="http://weblogtoolscollection.com/pluginblog/2009/06/30/debug-objects/">Debug Objects</a> von mir</li>
</ul>
<p>Die Entwickler von WordPress werden sicher den Plugin Competition verfolgen und lunsen, was es für Ideen gibt und wie man sie umsetzt. Nicht nur einmal ist bisher ein Plugin in den Core von WordPress gewandert und nicht nur einmal war die Lösung eines Pluginautors besser, als die Lösung im Core.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wordpress-plugin-competition-nutzen-beachten/969/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wordpress-plugin-competition-nutzen-beachten/969/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp/wltcpl09.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp/wltcpl09.png" medium="image">
			<media:title type="html">wltcpl09</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WP Basis Theme</title>
		<link>http://bueltge.de/wp-basis-theme/953/</link>
		<comments>http://bueltge.de/wp-basis-theme/953/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:53:31 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=953</guid>
		<description><![CDATA[Fast seit dem ich mit WordPress beschäftige, irgendwann mit Version 0.71 war das, habe ich mir eine Theme-Layout geschaffen, was ich immer zum Neustart eines neuen Theme heran ziehe - <a href="http://wpbasis.de/">WP Basis</a>.
Fast genauso lange veröffentliche ich dieses Theme unter GPL und es wird wohl recht vielfach genutzt. Die Entwicklung am Theme habe ich weiter getrieben und das Theme ist mit jeder Version von WordPress gewachsen und passt sich den jeweiligen Änderungen an. Um diese Veränderungen besser Händeln zu können, habe ich das Theme seit geraumer Zeit im <a href="http://code.google.com/p/wp-basis-theme/">SVN von Google Code</a> abgelegt und konnte dadurch auch auf die Mitarbeit von <a href="http://andreas-isaak.de/">Andreas</a> und <a href="http://ocean90.de/">Dominik</a> zählen - vielen Dank an dieser Stelle nochmal!

Immer wieder kamen Fragen rein, ob das <a href="http://bueltge.de/basis-theme-fuer-wordpress/411/">alte Theme</a> aktualisiert wird und wann - daher hier nun die Info, ich habe einen Stand erreicht, der stabil ist und das Theme ist mit der aktuellen Version 2.7 und der kommenden Version 2.8 von WordPress kompatibel. Daher hier nun offiziell die <a href="http://wpbasis.de/">Freigabe zum Download und Nutzen</a>.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://wpbasis.de/images/wpbasis_logo.png" alt="WP Basis Theme Logo" /><br />
Fast seit dem ich mit WordPress beschäftige, irgendwann mit Version 0.71 war das, habe ich mir eine Theme-Layout geschaffen, was ich immer zum Neustart eines neuen Theme heran ziehe - <a href="http://wpbasis.de/">WP Basis</a>.<br />
Fast genauso lange veröffentliche ich dieses Theme unter GPL und es wird wohl recht vielfach genutzt. Die Entwicklung am Theme habe ich weiter getrieben und das Theme ist mit jeder Version von WordPress gewachsen und passt sich den jeweiligen Änderungen an. Um diese Veränderungen besser Händeln zu können, habe ich das Theme seit geraumer Zeit im <a href="http://code.google.com/p/wp-basis-theme/">SVN von Google Code</a> abgelegt und konnte dadurch auch auf die Mitarbeit von <a href="http://andreas-isaak.de/">Andreas</a> und <a href="http://ocean90.de/">Dominik</a> zählen - vielen Dank an dieser Stelle nochmal!</p>
<p>Immer wieder kamen Fragen rein, ob das <a href="http://bueltge.de/basis-theme-fuer-wordpress/411/">alte Theme</a> aktualisiert wird und wann - daher hier nun die Info, ich habe einen Stand erreicht, der stabil ist und das Theme ist mit der aktuellen Version 2.7 und der kommenden Version 2.8 von WordPress kompatibel. Ebenso ist es abwärtskompatibel, getestet bis Version 1.5 von WordPress. Daher hier nun offiziell die <a href="http://wpbasis.de/">Freigabe zum Download und Nutzen</a>.</p>
<ul>
<li><a href="http://wpbasis.de/">Projektsite</a></li>
<li><a href="http://code.google.com/p/wp-basis-theme/">SVN Repository mit Diskussionsplattform</a></li>
</ul>
<p><span id="more-953"></span><br />
Ein Hinweis, das Theme ist <strong>kein Framework</strong> es ist ein einfaches Theme, welches lediglich die Grundlagen eines Theme enthält und diverse Vorzüge aus meiner Arbeit mir WordPress vereint. Es dient also wirklich dazu, dass man ein Theme für Kunden oder sich selbst erstellt, angepasst auf die Anforderungen. Es bringt keinerlei überflüssiges Markup mit, was man dann nicht braucht und wie bei Frameworks zum Teil üblich, mitschleift. Es soll auch so bleiben, keine Child-Themes oder ähnliches, auch keine Hooks zum komfortablen erweitern mit Code. Ich mag diese Art der Arbeit, schlank und schnell, direkt auf die Aufgabe zugeschnitten und daher kann ich mich nicht sonderlich mit Frameworks im WordPress-Theme-Sektor anfreunden; heißt aber nicht, dass andere Entwickler das auch tun sollten!</p>
<p>Wenn euch diese Arbeit liegt und ihr ebenfalls das Theme in erster Linie selbst schreibt, dann steht euch damit eine Grundlage bereit. Durch die Verwaltung im SVN steht euch ebenso eine Möglichkeit zur Verfügung <a href="http://code.google.com/p/wp-basis-theme/issues/list">Fehler und Hinweise zu melden</a>, worüber ich mich sehr freuen würde.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wp-basis-theme/953/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wp-basis-theme/953/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
	
		<media:thumbnail url="http://wpbasis.de/images/wpbasis_logo.png" />
		<media:content url="http://wpbasis.de/images/wpbasis_logo.png" medium="image">
			<media:title type="html">WP Basis Theme Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>XSS Scanner leicht gemacht</title>
		<link>http://bueltge.de/xss-scanner-leicht-gemacht/923/</link>
		<comments>http://bueltge.de/xss-scanner-leicht-gemacht/923/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 13:00:47 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=923</guid>
		<description><![CDATA[Ein XSS Scanner, der einfach als Bookmark genutzt werden kann &#8211; genau das ist <a href="http://www.thespanner.co.uk/2009/03/25/xss-rays/">XSS Rays</a>.
Das Tool ist ein Open-Source-Werkzeug, wurde in JavaScipt geschrieben und kann browserübergreifend XSS-Anfälligkeiten finden.

Im Entwicklungsprozess kann so schnell, einfach und unkompliziert die Sicherheit erhöht werden. Das Tool ist schnell als Lesezeichen im Browser abgelegt und scannt Links und Pfade. Alternativ kann man neue Angriffsvektoren hinzufügen. Definitiv ein Bookmark wert.]]></description>
			<content:encoded><![CDATA[<p>Ein XSS Scanner, der einfach als Bookmark genutzt werden kann &#8211; genau das ist <a href="http://www.thespanner.co.uk/2009/03/25/xss-rays/">XSS Rays</a>.<br />
Das Tool ist ein Open-Source-Werkzeug, wurde in JavaScipt geschrieben und kann browserübergreifend XSS-Anfälligkeiten finden.<br />
<span id="more-923"></span><br />
Zum Thema XSS habe ich bereits einiges an Infos veröffentlicht, was mir im Lernprozess geholfen hat, siehe Beitrag <a href="http://bueltge.de/cross-site-scripting-xss/477/">Cross Site Scripting (XSS)</a>. Bisher habe ich andere Tools eingesetzt, die mir ein wenig Sicherheit nach dem Coden geben. Mit diesem Tool bin ich daher sofort infiziert, infiziert von einer Idee, die es wirklich einfach macht, eine kleine weitere Prüfung beim Entwickeln aufzunehmen.</p>
<p>Im Entwicklungsprozess kann so schnell, einfach und unkompliziert die Sicherheit erhöht werden. Das Tool ist schnell als Lesezeichen im Browser abgelegt und scannt Links und Pfade. Alternativ kann man neue Angriffsvektoren hinzufügen. Definitiv ein Bookmark wert. Download und Anwendung finden sich auf der Webseite zum Tool <a href="http://www.thespanner.co.uk/2009/03/25/xss-rays/">XSS Rays</a>.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/xss-scanner-leicht-gemacht/923/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/xss-scanner-leicht-gemacht/923/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Einblick in HTML5</title>
		<link>http://bueltge.de/einblick-in-html5/910/</link>
		<comments>http://bueltge.de/einblick-in-html5/910/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 21:46:19 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=910</guid>
		<description><![CDATA[Ein schöner und verständlicher Einblick in HTML5 mit reichlich Code-Beispielen gibt uns Christopher Schmitt.]]></description>
			<content:encoded><![CDATA[<p>Ein schöner und verständlicher Einblick in HTML5 mit reichlich Code-Beispielen gibt uns <a href="http://www.christopherschmitt.com/2009/03/09/looking-into-html5/">Christopher Schmitt</a>...</p>
<p><object width="425" height="355" class="centered"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=lookingintohtml5-pdf-090304212841-phpapp02&#038;stripped_title=looking-into-html5" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=lookingintohtml5-pdf-090304212841-phpapp02&#038;stripped_title=looking-into-html5" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></p>
<p>... natürlich ist in dem Zusammenhang die <a href="http://www.peterkroener.de/html5-was-geht-heute-schon-was-geht-nicht-der-grosse-ueberblick/">Übersicht von Peter Kröner zu HTML5</a> nicht zu vergessen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/einblick-in-html5/910/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/einblick-in-html5/910/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Top WordPress Plugin Bereiche</title>
		<link>http://bueltge.de/top-wordpress-plugin-bereiche/888/</link>
		<comments>http://bueltge.de/top-wordpress-plugin-bereiche/888/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 12:51:37 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Statistik]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=888</guid>
		<description><![CDATA[<a href="http://w-shadow.com/blog/2009/02/11/top-wordpress-plugin-niches/">Janis Elsts</a> fragt sich in seinem Blog, was ein Plugin beliebt macht, warum bekommen einige Plugins hunderte Kommentare und Bewertungen und warum warum werden andere sehr gute Lösungen kaum wahr genommen?
Die Auswertung dazu ist interessant, nicht nur für Entwickler. Ich habe den Ansatz mal verfolgt und das Schema nochmal detaillierter dargestellt. Will man Plugins für den kommerziellen Bereich entwickeln und damit Umsatz generieren, dann ist es sicher noch weit interessanter, wie die Ergebnisse aussehen. Aber auch als Coder für diverse Anforderungen, so wie ich es beispielsweise mache, ist die Statistik einen Blick wert.]]></description>
			<content:encoded><![CDATA[<p><a href="http://w-shadow.com/blog/2009/02/11/top-wordpress-plugin-niches/">Janis Elsts</a> fragt sich in seinem Blog, was ein Plugin beliebt macht, warum bekommen einige Plugins hunderte Kommentare und Bewertungen und warum warum werden andere sehr gute Lösungen kaum wahr genommen?<br />
Die Auswertung dazu ist interessant, nicht nur für Entwickler. Ich habe den Ansatz mal verfolgt und das Schema nochmal detaillierter dargestellt. Will man Plugins für den kommerziellen Bereich entwickeln und damit Umsatz generieren, dann ist es sicher noch weit interessanter, wie die Ergebnisse aussehen. Aber auch als Coder für diverse Anforderungen, so wie ich es beispielsweise mache, ist die Statistik einen Blick wert.<br />
<span id="more-888"></span></p>
<p><img class="centeredob" src="http://bueltge.de/wp-content/images/wp/wp-plugin-stats.png" alt="WP Plugin Bereiche in der Nutzung" /></p>
<p>Mein Umsetzungen, wo ich einen Teil <a href="http://bueltge.de/wordpress-plugins/">hier im Blog</a> als Plugin veröffentliche oder auch nur Teillösungen als Beitrag zur Diskussion stelle basieren immer auf Anforderungen aus meinem Kopf oder aus den Ideen und Wünschen von Kontakten. Um aber in eine Nische zu stoßen und Plugins zu einem Einkommen zu deklarieren, gehört mehr Überlegung. So spielt nicht nur das Nichtvorhandensein von Konkurrenz eine Rolle, sondern auch die Planung von WordPress im Core, denn kommt diese Funktionalität in den Standard, dann kann eine Quelle schnell versiegen.</p>
<p>Aber ebenso lässt sich die Statistik nutzen um das Interesse der Nutzer zu analysieren. SEO und Statistik sind hier führend, was schnell nahe legt, dass es sich bei den meisten Nutzern im Interessenten handelt, die ihre Blogs weit nach oben in den Ergebnissen der Suchmaschinen katapultieren wollen, ob Businessinteresse oder rein privat sei erst mal dahin gestellt. Zum Glück können auch Plugins nicht alles und noch immer ist Content der Schlüssel zum Erfolg, was mich als Consumer der Suchergebnisse sehr freut. Bisher komme ich allen Installationen ohne SEO Plugin aus und auch Statistiken überlasse ich den Inhabern.</p>
<p>Dahingehend zeigt mir diese Statistik wieder, dass man auch in diesem Bereich auf seinen Bauch hören sollte und Spaß am Entwickeln haben muss. Was nützt mir die beste Nische, wenn ich keinen Spaß am Coden habe - oft sind die absurdesten Anforderungen die spannendsten und meist haben die das größte Feedback, die, die dem Nutzer Vorteile verschaffen.</p>
<p>In diesem Sinne wünsche ich mir weiterhin, dass die Community weiterhin so freiwillig gibt und dazu lernt und nicht mit dem Ziel eines kommerziellen Erfolges die Entwicklung eines Plugins startet.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/top-wordpress-plugin-bereiche/888/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/top-wordpress-plugin-bereiche/888/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp/wp-plugin-stats.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp/wp-plugin-stats.png" medium="image">
			<media:title type="html">WP Plugin Bereiche in der Nutzung</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Core Plugins - Fluch oder Segen</title>
		<link>http://bueltge.de/core-plugins-fluch-oder-segen/883/</link>
		<comments>http://bueltge.de/core-plugins-fluch-oder-segen/883/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 12:50:42 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Webdeveloper]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=883</guid>
		<description><![CDATA[Die WP Hacker Mailing Liste ist immer für eine Diskussion gut und bisher habe ich dort gern mitdiskutiert, trotz meines sehr schlechten Englisch und der Scheu vor Diskussionen, die nicht in der Muttersprache verlaufen. Einige Punkte konnten dort schon aus meiner Sicht und der Sicht der deutschen Anwender erreicht werden - was ich bemerkens- und lobenswert finde.
Aktuell gibt es eine neue Diskussion, die die Entwicklung zu Core Plugins zum Thema hat. <a href="http://www.wp-fun.co.uk/">Andrew</a>, versierter und interessierter Entwickler, hat das Thema in einem <a href="http://www.wptavern.com/core-plugins-never-gonna-happen">Gastbeitrag der WP Tavern</a> aufgenommen und bringt einige wichtige Punkte zum tragen.

Auch ich möchte <strong>meine Sicht</strong> der Dinge ein wenig darlegen und rufe zur Diskussion auf. WordPress ist aus meiner Sicht eine Applikation die Spaß macht und das Potential in sich trägt, weiterhin nutzbar und zukunftsträchtig zu sein. Diese kurze und einfache Form meiner Meinung meine ich aus der Sicht eines Anwenders und ebenso eines Entwicklers. Ich will nur kurz und bündig Möglichkeiten zeigen, die ich mir in dem Punkt wünsche und wie ich mir ein WordPress der Zukunft vorstellen könnte, ohne den jetzigen Pfad zu verlassen und die Nutzung parallel zu gewährleisten - quasi ohne einen Start bei Null.]]></description>
			<content:encoded><![CDATA[<p>Die WP Hacker Mailing Liste ist immer für eine Diskussion gut und bisher habe ich dort gern mitdiskutiert, trotz meines sehr schlechten Englisch und der Scheu vor Diskussionen, die nicht in der Muttersprache verlaufen. Einige Punkte konnten dort schon aus meiner Sicht und der Sicht der deutschen Anwender erreicht werden - was ich bemerkens- und lobenswert finde.<br />
Aktuell gibt es eine neue Diskussion, die die Entwicklung zu Core Plugins zum Thema hat. <a href="http://www.wp-fun.co.uk/">Andrew</a>, versierter und interessierter Entwickler, hat das Thema in einem <a href="http://www.wptavern.com/core-plugins-never-gonna-happen">Gastbeitrag der WP Tavern</a> aufgenommen und bringt einige wichtige Punkte zum tragen.</p>
<p>Auch ich möchte <strong>meine Sicht</strong> der Dinge ein wenig darlegen und rufe zur Diskussion auf. WordPress ist aus meiner Sicht eine Applikation die Spaß macht und das Potential in sich trägt, weiterhin nutzbar und zukunftsträchtig zu sein. Diese kurze und einfache Form meiner Meinung meine ich aus der Sicht eines Anwenders und ebenso eines Entwicklers. Ich will nur kurz und bündig Möglichkeiten zeigen, die ich mir in dem Punkt wünsche und wie ich mir ein WordPress der Zukunft vorstellen könnte, ohne den jetzigen Pfad zu verlassen und die Nutzung parallel zu gewährleisten - quasi ohne einen Start bei Null.<br />
<span id="more-883"></span></p>
<h4>Core Plugins</h4>
<p>Core Plugins erlauben es, dass der eigentliche Core von WordPress schlank bleibt und man sich die notwendigen Erweiterungen mit Hilfe der Core Plugins holt. Damit schaltet man nur Funktion zu, die man auch wirklich benötigt bzw. die von anderen Erweiterungen, zum Beispiel Plugins aus der Community, gebraucht werden.</p>
<h4>Fahrplan</h4>
<p>Bisher ist die Philosophie von WordPress: wachse, erweitere mehr und mehr; wie ich das auch in den <a href="http://blog.wordpress-deutschland.org/2009/01/06/wordpress-ein-ausblick-fuer-2009.html">Gedanken zu 2009</a> schon veröffentlicht habe. Dies liegt aus meiner Sicht sicher daran, dass der Großteil der Benutzer immer mehr Funktionen möchte, was auch schon an der <a href="http://wordpress.org/extend/ideas/">Wunschliste von WordPress</a> zu sehen ist.</p>
<h4>Pro &#038; Kontra</h4>
<p>Das Entwicklerteam um WordPress tut sich schwer mit Entscheidungen, was kommt in den Core und was nicht. Zum Teil werden ewige Diskussionen geführt, bis man es umsetzt. WordPress ist bekannt für ein schnelles Wachstum und Funktionsvielfalt. Aus diesem Aspekt heraus ist es sicher schwer, zu sagen, wir nehmen bestimmte Bereiche heraus und stellen sie als Plugin zur Verfügung. Dies bedeutet aber eine angekoppelte Entwicklung, was mehr Zeit kostet und die scheint WordPress nie zu haben. Ich stimme zu - damit wird die Entwicklung träger, der Aufwand des Testens höher und die Vielfalt hat keinen gemeinsamen Standard. Aber ist es nicht ein Mehrwert, wenn man ein schlankes stabiles System hat, welches man mit den den entsprechenden Plugins um die benötigten Funktionen erweitert?</p>
<p>Aus meinem Umfeld der <a href="http://bueltge.de/wordpress-themes/">eigenen</a> <a href="http://bueltge.de/wordpress-plugins/">Entwicklungen</a>, veröffentlicht oder nicht, rund um und mit WordPress weiß ich, wie viel Aufwand es bedeuten kann, Plugins aktuell zu halten und entsprechend zu testen. Ich kann verstehen, wenn man sich gegen Core Plugins ausspricht. Aus dem Blick der unterschiedlichen Anwendungen und Lösungen, die ich mit WordPress umgesetzt habe, kann ich aber die Entwicklung in die Richtung Core Plugin nur unterstreichen.</p>
<h4>Core Plugin oder klassisches Plugin?</h4>
<p>In diesem Zusammenhang stellt sich aber dann auch unwiderruflich die Frage, warum Core Plugins, warum nicht die klassischen Modelle der Plugins im wordpress.org Plugin Repository? In diesem Verzeichnis zeigt sich besonders stark, wie aktiv die Community um WordPress ist und die Vielfalt der Plugins ist unüberschaubar, eine Prüfung des Code ist für die einzelnen Plugins nicht zu gewährleisten (was ich im Grunde auch unterstützte, so lange sie GPL sind; aber das ist eine andere Diskussion). Die Möglichkeit der Core Plugins sehe ich da anders, denn sie könnten diese Sicherheit geben und den gleichen Standard wie der Core selbst haben.</p>
<h4>Versionsaufwand</h4>
<p>Durch die vielen Versionen von WordPress, die auch nicht wenig im Umlauf sind, ist es schwer Plugins an alle Versionen anzupassen. Seit Version 2.7 ist die Bereitstellung von Schnittstellen und Möglichkeiten für Entwickler viel konsistenter und übergreifender geworden. Ich selbst tue mich schwer auf Systeme mit niedrigeren Versionen zu portieren und ich kenne diese Meinung auch von anderen Entwicklern, die viel mehr von Code verstehen als ich - es macht einfach keinen Spaß ist mein Grund. Aber es ist nicht der einzige, es sind auch die Möglichkeiten und die saubere Implementierung, die seit 2.7 übergreifender und durchgängiger umgesetzt wurde.<br />
Ähnlich ist die Diskussion zu PHP5, die ich auch hier nicht anschneiden will - schauen wir, was WordPress 2.8 bringt oder <a href="http://wordcamp.de/agenda/">Matt am 14.Februar in Jena</a> dazu sagt. Die WP Hacker Mailing Liste hat auch dazu eine umfangreiche Diskussion.</p>
<h4>Nochmal Core Plugin</h4>
<p>Mit Hilfe der Core Plugins, um wieder zum Thema zurück zu finden, sehe ich Chancen für stabilen Code mit mehr Aufwand aber ebenso großen Feedback. Plugins können sich darauf beziehen, können diese abfragen und die Performance könnte davon profitieren. Die Vielfalt der Möglichkeiten, die WordPress jetzt schon bietet, wäre noch größer und leichter zu begründen. Jedes Core Plugin ist einzelnen erhältlich oder komfortabel über einen Builder für eine Komplettversion zu bekommen.</p>
<h4>Ein Beispiel</h4>
<p>Um das ganze ein wenig plakativer zu gestalten, soll ein Beispiel dienen, welches in der Vergangenheit zu viel Ärger und Diskussionen geführt hat, nicht nur bei Entwicklern - die Revision in WordPress seit Version 2.5.<br />
Diese Funktion ist für die Nutzung als CMS und mit unterschiedlichen Autoren in WordPress unumgänglich. Sie stellt aus dieser Sicht einen Mehrwert her - gibt aber gleichzeitig sehr viele Datenmengen in die Datenbank. Dies ist vor allem dann unnötig, wenn man das Blog allein betreibt und auf diese Bereicherung im CMS-Sektor verzichten kann. Aus meiner Sicht stellt gerade die Revision in WP ein typisches Produkt für ein Core Plugin dar. Wer es benötigt, der aktiviert es und fertig. Ich kenne so viele WordPress-Nutzer, die diese Funktion noch nicht mal kennen, sich nur über das Feld im Backend wundern und die großen Datenmengen beim Backup bestaunen. Im Standard gibt es keine Möglichkeit diese Funktion einzuschränken oder zu deaktivieren - dazu ist ein Eingriff in die Konfigurationsdatei notwendig oder das Nutzen eines Plugins. Dank der großen und freien Community wird so was kommuniziert - erreichen kann man damit trotzdem nie alle und Dienstleister bereinigen dann die Daten, wenn der Kunde es wünscht.</p>
<h4>Fazit</h4>
<p>Daher stimme ich für Core Plugins, parallel entwickelt mit und für den Core, gern in Abhängigkeit der Version des Core. Ebenso bin ich für die eigenständige Form der Core Plugins und die Freiheit für Entwickler in den bekannten Plugins aus dem wp.org Plugin Repository.</p>
<h4>Geschafft</h4>
<p>Wunderbar, du hast es bis hier gelesen? Schon dafür danke ich und sage Entschuldigung: Nun sind es doch einige Zeichen mehr geworden, gesagt habe ich trotzdem nicht alles und vielleicht bin ich auch komplett auf dem Holzweg, aber es ist eine Meinung und Open Source ist aus meiner Sicht eben mehr als Nehmen und Geben von Source Code, es ist auch die Freiheit mitzumachen, mitzudenken und zu diskutieren - ja geradezu Anregen zum Diskutieren.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/core-plugins-fluch-oder-segen/883/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/core-plugins-fluch-oder-segen/883/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Blackbird JavaScript Konsole für WordPress</title>
		<link>http://bueltge.de/blackbird-javascript-konsole-wordpress/853/</link>
		<comments>http://bueltge.de/blackbird-javascript-konsole-wordpress/853/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 12:25:56 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[CSS, xHTML, JS]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=853</guid>
		<description><![CDATA[<img class="alignrightob" src="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" alt="Blackbird Logo" />
Die Entwicklung von JavaScript Scripten wird immer vielfältiger und öfter nötig. Um so schöner, wenn das Debuggen browserunabhängig möglich ist. Ich hatte Kontakt mit einem JS-Entwickler, der gern das Tool <a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a> einsetzt und der Zugriff innerhalb von WordPress sollte erleichtert werden.
Und genau das ist auch entstanden, Plugin kopieren, aktivieren und nutzen.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" alt="Blackbird Logo" /><br />
Die Entwicklung von JavaScript Scripten wird immer vielfältiger und öfter nötig. Um so schöner, wenn das Debuggen browserunabhängig möglich ist. Ich hatte Kontakt mit einem JS-Entwickler, der gern das Tool <a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a> einsetzt und der Zugriff innerhalb von WordPress sollte erleichtert werden.<br />
Und genau das ist auch entstanden, Plugin kopieren, aktivieren und nutzen.<br />
<span id="more-853"></span><br />
<a href="http://www.gscottolson.com/blackbirdjs/">Blackbird</a> ist eine Konsole zum Debuggen von JavaScript, browserunabhängig und eine echte Alternative zu Firebug oder <code>alert("Hinweis");</code>. Hinzukommt, dass Blackbird sehr einfach und optisch ansprechend ist.<br />
Mit Hilfe des Plugin für WordPress umgeht man die Integration im Quellcode, egal ob Debuggen im Frontend oder Backend von WordPress.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wp/blackbird-wp.png" alt="Blackbird Console in WordPress Backend und Frontend" /></p>
<h3>Anforderungen</h3>
<p>Das Plugin wurde unter WordPress 2.7 entwickelt und getestet, sollte aber Version 2.5 laufen.</p>
<h3>Installation</h3>
<ol>
<li>Plugin downloaden und die zip-Datei lokal entpacken.</li>
<li>Die PHP-Datei in euren WordPress-Plugin-Ordner kopieren (/wp-content/plugins/).</li>
<li>Im Adminbereich deines Blogs das Plugin aktivieren.</li>
<li>Reload, Frontend bzw. Backend und Taste <em>F2</em> lassen die Konsole erscheinen</li>
</ol>
<h3>Hinweise</h3>
<p>Blackbird setzt einen Cookie, wenn man das Fenster immer geladen haben will. Dazu muss lediglich die Checkbox &#8222;Visible on page load&#8220; gesetzt werden. Ansonsten kann die Konsole immer via <em>F2</em> aufgerufen werden. Der Cookie wird im Beispiel Logging auch genutzt um eine Beispielausgabe im Tool auszugeben. Das eigentliche Loggen kann beispielsweise in der <code>mylogging.js</code> geschehen, die direkt im Ordner des Plugins zur Verfügung steht.</p>
<p>Hinweise über Formen des Logging sind auf der <a href="http://www.gscottolson.com/blackbirdjs/">Projektseite des Tools</a> zu finden und sollen hier nicht weiter ausgeführt werden.</p>
<h3>Download:</h3>
<form class="spenden" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="amount" id="eins" value="" />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="frank@bueltge.de" />
<input type="hidden" name="item_name" value="Spende bueltge.de Blackbird" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="http://bueltge.de/" />
<input type="hidden" name="cancel_return" value="http://bueltge.de/" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="bn" value="PP-DonationsBF" />
<input type="image" src="http://bueltge.de/wp-content/images/donate.png" style="border:0" name="submit" alt="Zahlen Sie mit PayPal - schnell, kostenlos und sicher!" /></form>
<p><strong>Ist die Arbeit nicht 1 Euro wert?</strong><br />
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.<br />
Möchtest du mehr oder anders spenden, so besuche meine <a href="http://bueltge.de/wunschliste/">Wunschliste</a>.</p>
<p>Download als zip-Datei: <a href="http://bueltge.de/wp-content/download/wp/plugins/blackbird.zip">blackbird.zip</a> - 108 kByte<br />
<br style="clear:left" /><br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/blackbird-javascript-konsole-wordpress/853/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/blackbird-javascript-konsole-wordpress/853/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp/blackbird-logo.png" medium="image">
			<media:title type="html">Blackbird Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/wp/blackbird-wp.png" medium="image">
			<media:title type="html">Blackbird Console in WordPress Backend und Frontend</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress Feed für Entwürfe</title>
		<link>http://bueltge.de/wordpress-feed-fuer-entwuerfe/829/</link>
		<comments>http://bueltge.de/wordpress-feed-fuer-entwuerfe/829/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 01:00:44 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Feed]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=829</guid>
		<description><![CDATA[Im gemeinsamen Projekt WPEngineer arbeiten wir mittlerweile mit vier Autoren &#8211; da ist es recht nützlich, wenn man einen Feed für die Entwürfe hat. Schreibt jemand einen neuen Artikel und speichert diesen ab, dann hat er im Standard von WordPress den Status Entwurf (Draft). Aufgrund dieses Datenbank-Schlüssels kann man daher die Inhalte schnell holen und entsprechend verarbeiten.

Für uns war eine Mail-Möglichkeit nicht erwünschenswert und daher habe ich mir überlegt, dass wir uns über die Entwürfe wie Feed informieren. Daher habe ich mir mal angeschaut, wie man einen eigenen Feed entwerfen kann. Mit Hilfe des Loop kann man dabei schon recht viel machen, siehe Beitrag &#8222;<a href="http://bueltge.de/wordpress-feed-beeinflussen/653/">WordPress Feed beeinflussen</a>&#8220;.

Das folgenden kleine Plugin kann gern genutzt werden und ich stelle mal meinen Code dar, damit man sich eventuell einen eigenen Feed bauen will. Sei es im Rahmen einer Community oder auf Basis eines anderen Wertes aus der Datenbank.]]></description>
			<content:encoded><![CDATA[<p>Im gemeinsamen Projekt <a href="http://wpengineer.com/">WPEngineer</a> arbeiten wir mittlerweile mit vier <a href="http://wpengineer.com/about/">Autoren</a> &#8211; da ist es recht nützlich, wenn man einen Feed für die Entwürfe hat. Schreibt jemand einen neuen Artikel und speichert diesen ab, dann hat er im Standard von WordPress den Status Entwurf (Draft). Aufgrund dieses Datenbank-Schlüssels kann man daher die Inhalte schnell holen und entsprechend verarbeiten.</p>
<p>Für uns war eine Mail-Möglichkeit nicht erwünschenswert und daher habe ich mir überlegt, dass wir uns über die Entwürfe wie Feed informieren. In dem Zusammenhang habe ich mir mal angeschaut, wie man einen eigenen Feed entwerfen kann. Mit Hilfe des Loop kann man dabei schon recht viel machen, siehe Beitrag &#8222;<a href="http://bueltge.de/wordpress-feed-beeinflussen/653/">WordPress Feed beeinflussen</a>&#8220;.</p>
<p>Zusätzlich bietet das Plugin ein Dashbaord-Widget, welches die letzten fünf Entwürfe aller Autoren zeigt. Das Standard-Widget von WordPress zeigt nur die eigenen Entwürfe.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wp/recents_draft.png" alt="Screenshot des Dashbaord Widget der letzten Entwürfe aller Autoren" /></p>
<p>Das folgenden kleine Plugin kann gern genutzt werden und ich stelle mal meinen Code dar, damit man sich eventuell einen eigenen Feed bauen will. Sei es im Rahmen einer Community oder auf Basis eines anderen Wertes aus der Datenbank.<br />
<span id="more-829"></span><br />
Der Feed hat keinen Zugriffsschutz &#8211; damit ist das Lesen auch mit diversen Online-Tools einfach und unkompliziert. Alternativ könnte man natürlich den geloggten User aus WP abfragen. Diesen Weg überlasse ich aber jedem selbst.</p>
<p>Das Plugin  erstellt einen Feed, der unter der URL <code>http://examble.com/?feed=draft</code> erreichbar ist. Der Name des Feed kann in Zeile 27 <code>add_feed( 'draft', array(&#038;$this, 'get_draft_feed') );</code> frei definiert werden.</p>
<pre><code>
&lt;?php
/*
Plugin Name: Drafts Feed
Plugin URI:  http://bueltge.de/wordpress-feed-fuer-entwuerfe/829/
Description: Add a new Feed for drafts: &lt;code&gt;/?feed=draft&lt;/code&gt;
Version:     0.2
Author:      Frank B&uuml;ltge
Author URI:  http://bueltge.de/
Licence:     GPL
Last Change: 17.06.2009 10:50:19
*/

//avoid direct calls to this file, because now WP core and framework has been used
if ( !function_exists('add_action') ) {
	header('Status: 403 Forbidden');
	header('HTTP/1.1 403 Forbidden');
	exit();
}

if ( function_exists('add_action') ) {
	//WordPress definitions
	if ( !defined('WP_CONTENT_URL') )
		define('WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
	if ( !defined('WP_CONTENT_DIR') )
		define('WP_CONTENT_DIR', ABSPATH . 'wp-content');
	if ( !defined('WP_PLUGIN_URL') )
		define('WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins');
	if ( !defined('WP_PLUGIN_DIR') )
		define('WP_PLUGIN_DIR', WP_CONTENT_DIR.'/plugins');
	if ( !defined('PLUGINDIR') )
		define( 'PLUGINDIR', 'wp-content/plugins' ); // Relative to ABSPATH.  For back compat.
	if ( !defined('WP_LANG_DIR') )
		define('WP_LANG_DIR', WP_CONTENT_DIR . '/languages');

	// plugin definitions
	define( 'FB_DF_BASENAME', plugin_basename(__FILE__) );
	define( 'FB_DF_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) );
	define( 'FB_DF_TEXTDOMAIN', 'draft_feed' );
}

if ( !class_exists('DraftFeed') ) {
	class DraftFeed {

		// constructor
		function DraftFeed() {

			add_action( 'init', array(&#038;$this, 'add_draft_feed') );
			if ( is_admin() ) {
				add_action( 'wp_dashboard_setup', array(&#038;$this, 'my_wp_dashboard_setup') );
				add_action( 'admin_head', array(&#038;$this, 'add_my_css') );
				add_action( 'admin_init', array(&#038;$this, 'textdomain') );
			}
		}

		function textdomain() {

			if ( function_exists('load_plugin_textdomain') ) {
				if ( !defined('WP_PLUGIN_DIR') ) {
					load_plugin_textdomain( FB_DF_TEXTDOMAIN, str_replace( ABSPATH, '', dirname(__FILE__) ) . '/languages' );
				} else {
					load_plugin_textdomain( FB_DF_TEXTDOMAIN, false, dirname( plugin_basename(__FILE__) ) . '/languages' );
				}
			}
		}

		function my_wp_dashboard_recent_drafts( $drafts = false, $view_content = false ) {
			if ( $drafts )
				return;

			$drafts_query = new WP_Query( array(
																					'post_type' =&gt; 'post',
																					'post_status' =&gt; 'draft',
																					'posts_per_page' =&gt; 5,
																					'orderby' =&gt; 'modified',
																					'order' =&gt; 'DESC'
																					) );
			$drafts =&#038; $drafts_query-&gt;posts;

			if ( $drafts &#038;& is_array( $drafts ) ) {
				$list = array();
				foreach ( $drafts as $draft ) {
					$url = get_edit_post_link( $draft-&gt;ID );
					$title = _draft_or_post_title( $draft-&gt;ID );
					$user = get_userdata($draft-&gt;post_author);
					$author = $user-&gt;display_name;
					$item = '&lt;a href="' . $url . '" title="' . sprintf( __( 'Edit &#8220;%s&#8221;', FB_DF_TEXTDOMAIN ), esc_attr( $title ) ) . '"&gt;' . $title . '&lt;/a&gt; ' . __( 'by', FB_DF_TEXTDOMAIN ) . ' ' . stripslashes( apply_filters('comment_author', $author) ) . ' &lt;abbr title="' . get_the_time(__('Y/m/d g:i:s A'), $draft) . '"&gt;' . get_the_time( get_option( 'date_format' ), $draft ) . '&lt;/abbr&gt;';
					$list[] = $item;
				}
		?&gt;
			&lt;ul&gt;
				&lt;li&gt;&lt;?php echo join( "&lt;/li&gt;\n&lt;li&gt;", $list ); ?&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p class="textright"&gt;&lt;a href="edit.php?post_status=draft" class="button"&gt;&lt;?php _e('View all', FB_DF_TEXTDOMAIN); ?&gt;&lt;/a&gt;&lt;/p&gt;
		&lt;?php
			} else {
				_e( 'There are no drafts at the moment', FB_DF_TEXTDOMAIN );
			}
		}

		function my_wp_dashboard_setup() {

			wp_add_dashboard_widget( 'my_wp_dashboard_recent_drafts', __( 'Recents Drafts', FB_DF_TEXTDOMAIN ) . ' &lt;small&gt;' . __( 'of all authors', FB_DF_TEXTDOMAIN ) . '&lt;/small&gt;', array(&#038;$this, 'my_wp_dashboard_recent_drafts') );
		}

		function add_my_css() {

			$echo  = '';
			$echo .= "\n";
			$echo .= '&lt;style type="text/css"&gt;'."\n";
			$echo .= '&lt;!--'."\n";
			$echo .= '#my_wp_dashboard_recent_drafts abbr {' . "\n";
			$echo .= 'font-family: "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif;' . "\n";;
			$echo .= 'font-size: 11px;' . "\n";
			$echo .= 'color: #999;' . "\n";
			$echo .= 'margin-left: 3px;' . "\n";
			$echo .= '}'."\n";
			$echo .= '--&gt;'."\n";
			$echo .= '&lt;/style&gt;'."\n";

			echo $echo;
		}

		// add feed via hook
		function add_draft_feed() {

			// set name for the feed
			// http://examble.com/?feed=draft
			add_feed( 'draft', array(&#038;$this, 'get_draft_feed') );
		}

		// get feed
		function get_draft_feed() {
			global $wpdb;

			// draft or future
			$sql = "
							SELECT ID, post_title, post_date, post_author, post_author, guid, post_excerpt, post_content
							FROM $wpdb-&gt;posts
							WHERE post_status = 'draft'
							ORDER BY post_date_gmt DESC
						";
			$items = $wpdb-&gt;get_results($sql);

			if ( !headers_sent() )
				header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
			$more = 1;
		?&gt;
		&lt;?php echo '&lt;?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '&gt;'; ?&gt;

&lt;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/"
	&lt;?php do_action('rss2_ns'); ?&gt;
&gt;

&lt;channel&gt;
	&lt;title&gt;&lt;?php bloginfo_rss( 'name' ); wp_title_rss(); ?&gt;&lt;/title&gt;
	&lt;atom:link href="&lt;?php self_link(); ?&gt;" rel="self" type="application/rss+xml" /&gt;
	&lt;link&gt;&lt;?php bloginfo_rss( 'url' ) ?&gt;&lt;/link&gt;
	&lt;description&gt;&lt;?php bloginfo_rss( 'description' ) ?&gt;&lt;/description&gt;
	&lt;pubDate&gt;&lt;?php echo mysql2date( 'D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false ); ?&gt;&lt;/pubDate&gt;
	&lt;generator&gt;http://bueltge.de/&lt;/generator&gt;
	&lt;language&gt;&lt;?php echo get_option( 'rss_language' ); ?&gt;&lt;/language&gt;
	&lt;sy:updatePeriod&gt;&lt;?php echo apply_filters( 'rss_update_period', 'hourly' ); ?&gt;&lt;/sy:updatePeriod&gt;
	&lt;sy:updateFrequency&gt;&lt;?php echo apply_filters( 'rss_update_frequency', '1' ); ?&gt;&lt;/sy:updateFrequency&gt;
	&lt;?php do_action('rss2_head'); ?&gt;
	&lt;?php
	if ( empty($items) ) {
		echo '&lt;!-- No submissions found yet. //--&gt;';
	} else {
		foreach ($items as $item) {
	?&gt;
		&lt;item&gt;
			&lt;title&gt;&lt;?php echo stripslashes( apply_filters( 'comment_author', $item-&gt;post_title ) ); ?&gt;&lt;/title&gt;
			&lt;link&gt;&lt;?php echo stripslashes( apply_filters( 'comment_author_url', get_permalink($item-&gt;ID) ) ); ?&gt;&lt;/link&gt;
			&lt;pubDate&gt;&lt;?php echo mysql2date( 'D, d M Y H:i:s +0000', $item-&gt;post_date ); ?&gt;&lt;/pubDate&gt;
			&lt;dc:creator&gt;&lt;?php echo stripslashes( apply_filters('comment_author', $item-&gt;post_author) ); ?&gt;&lt;/dc:creator&gt;

			&lt;guid isPermaLink="false"&gt;&lt;?php echo stripslashes( apply_filters('comment_author_url', $item-&gt;guid) ); ?&gt;&lt;/guid&gt;
			&lt;?php if ( $item-&gt;post_excerpt != '' ) { ?&gt;
			&lt;description&gt;&lt;![CDATA[&lt;?php echo trim(stripslashes( apply_filters('comment_text', $item-&gt;post_excerpt) ) ); ?&gt;]]&gt;&lt;/description&gt;
			&lt;?php } else { ?&gt;
			&lt;description&gt;&lt;![CDATA[&lt;?php echo strip_tags( trim( stripslashes( apply_filters('comment_text', $item-&gt;post_content) ) ) ); ?&gt;]]&gt;&lt;/description&gt;
			&lt;?php } ?&gt;
			&lt;content:encoded&gt;&lt;![CDATA[&lt;?php echo trim( stripslashes( apply_filters( 'comment_text', $item-&gt;post_content ) ) ); ?&gt;]]&gt;&lt;/content:encoded&gt;
			&lt;?php do_action('rss2_item'); ?&gt;
		&lt;/item&gt;
	&lt;?php
		}
	}
	?&gt;
	&lt;/channel&gt;
&lt;/rss&gt;
		&lt;?php
		}

	} // end class

	$df_wp_injector = new DraftFeed();
} // end if class exists

// WP init and add ne function for feed
if ( isset($df_wp_injector) &#038;& function_exists( 'add_action' ) ) {
	add_action( 'DraftFeed',  array(&#038;$df_wp_injector, 'init') );
}
?&gt;
</code></pre>
<h3 id="download">Download:</h3>
<form class="spenden" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="amount" id="eins" value="" />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="frank@bueltge.de" />
<input type="hidden" name="item_name" value="Spende bueltge.de" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="http://bueltge.de/" />
<input type="hidden" name="cancel_return" value="http://bueltge.de/" />
<input type="hidden" name="currency_code" value="EUR" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="bn" value="PP-DonationsBF" />
<input type="image" src="http://bueltge.de/wp-content/images/donate.png" style="border:0" name="submit" alt="Zahlen Sie mit PayPal - schnell, kostenlos und sicher!" /></form>
<p><strong>Ist die Arbeit nicht 1 Euro wert?</strong><br />
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.<br />
Möchtest du mehr oder anders spenden, so besuche meine <a href="http://bueltge.de/wunschliste/">Wunschliste</a>.</p>
<p>Download als zip-Datei:<br />
<a href="http://bueltge.de/wp-content/download/wp/draft-feed.zip">draft-feed.zip</a> &#8211; 1 kByte<br />
<br style="clear:left" /></p>
<h3 id="historie">Historie</h3>
<ul>
<li>0.1 - Idee und Lösung</li>
<li>0.2 - Dashboard Widget hinzugefügt; Mehrsprachigkeit ergänzt (17/06/2009)</li>
</ul>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wordpress-feed-fuer-entwuerfe/829/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wordpress-feed-fuer-entwuerfe/829/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp/recents_draft.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp/recents_draft.png" medium="image">
			<media:title type="html">Screenshot des Dashbaord Widget der letzten Entwürfe aller Autoren</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Regular Expressions Cheat Sheets</title>
		<link>http://bueltge.de/regular-expressions-cheat-sheets/828/</link>
		<comments>http://bueltge.de/regular-expressions-cheat-sheets/828/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 09:37:21 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Cheat Sheet]]></category>
		<category><![CDATA[Linktipp]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=828</guid>
		<description><![CDATA[Regular Expressions können ein Thema für sich sein &#8211; die Hilfe eines <a href="http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/">Cheat Sheet</a> ist in jedem Fall sehr nützlich und so freue ich mich, dass es wieder ein schönes übersichtliches Sheet zum Thema von <a href="http://www.addedbytes.com/">AddedBytes.com</a>, dort wurden schon eine ganze Reihe anderer nützlicher Cheat Sheets bereit gestellt, gibt.]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://bueltge.de/wp-content/images/regex-cs.png" alt="Regular Expressions Cheat Sheet" width="200" height="200" /><br />
Regular Expressions können ein Thema für sich sein &#8211; die Hilfe eines <a href="http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/">Cheat Sheet</a> ist in jedem Fall sehr nützlich und so freue ich mich, dass es wieder ein schönes übersichtliches Sheet zum Thema von <a href="http://www.addedbytes.com/">AddedBytes.com</a>, dort wurden schon eine ganze Reihe anderer nützlicher Cheat Sheets bereit gestellt, gibt.</p>
<p>Das <a href="http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/">neuste Modell</a> widmet sich den regulären Ausdrucken und kommt wie immer schlicht, aber trotzdem schick daher.</p>
<p>Als weitere Empfehlung zum Thema kann ich im übrigen nur das Add on für den Firefox <a href="http://sebastianzartner.de/firefoxExtensions/RExT/">Regular Expression Tester</a> empfehlen, der einige Erleichterungen bringen kann.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/regular-expressions-cheat-sheets/828/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/regular-expressions-cheat-sheets/828/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/regex-cs.png" />
		<media:content url="http://bueltge.de/wp-content/images/regex-cs.png" medium="image">
			<media:title type="html">Regular Expressions Cheat Sheet</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>BMWi - jemand da?</title>
		<link>http://bueltge.de/bmwi-jemand-da/820/</link>
		<comments>http://bueltge.de/bmwi-jemand-da/820/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 13:22:43 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=820</guid>
		<description><![CDATA[Ich habe eine Einladung zum Dritten Nationalen IT Gipfel der Bundesregierung bekommen; nun habe ich mich für eine Teilnahme entschieden - daher die Frage, kann ich jemanden von meinen Lesern in Darmstadt auf dem Gipfel treffen oder muss ich den ganzen Tag Vorlieb mit Frau Merkel nehmen?]]></description>
			<content:encoded><![CDATA[<p>Ich habe eine Einladung zum <a href="http://www.bmwi-veranstaltungen.de/">Dritten Nationalen IT Gipfel der Bundesregierung</a> bekommen; nun habe ich mich für eine Teilnahme entschieden - daher die Frage, kann ich jemanden von meinen Lesern in Darmstadt auf dem Gipfel treffen oder habe ich glücklicherweise den ganzen Tag für die charmante Frau Merkel zur Verfügung <del datetime="2008-11-12T17:49:52+00:00">oder muss ich den ganzen Tag Vorlieb mit Frau Merkel nehmen</del> ?</p>
<blockquote><p>... sie sind zum Dritten Nationalen IT Gipfel der Bundesregierung am 20. November 2008 in Darmstadt eingeladen. </p></blockquote>
<p>Sollte also jemand ebenso eine Einladung bekommen haben, so würde ich mich über einen Kontakt freuen. Die eine oder andere Kaffeepause neben den Foren ist sicher dafür verfügbar.</p>
<p>Informationen werden im übrigen auf dem <a href="http://www.it-gipfelblog.de/">zugehörigen Blog</a> veröffentlicht.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/bmwi-jemand-da/820/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/bmwi-jemand-da/820/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Angst vor dem IE 8?</title>
		<link>http://bueltge.de/angst-vor-ie-8/771/</link>
		<comments>http://bueltge.de/angst-vor-ie-8/771/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 07:34:15 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=771</guid>
		<description><![CDATA[Der Internet Explorer der Version 8 steht in den Startlöchern und es wurde schon <a href="http://www.google.de/search?q=internet+explorer+8+beta+2">viel darüber berichtet</a>. Für Microsoft ist es aus meiner Sicht eine sehr starke Veränderung, für Webentwickler ist es ein Fortschritt in jeder Hinsicht. Der IE war in der Vergangenheit nicht gerade der Liebling der Webentwickler. Allerdings sollte man auch nicht verschweigen, dass Microsoft eine ganze <a href="http://www.drunkenfist.com/304/2008/08/11/some-internet-explorer-innovations-you-probably-forgot-about-while-waiting-for-ie6-to-die/">Reihe von Möglichkeiten</a> im Web geschaffen hat, die den Internet Explorer zumindest im Bereich von Administration und Business-Anwendungen schon vor AJAX und Web 2.0 zu Möglichkeiten verhalf, die mit anderen Browsern damals nicht denkbar waren.]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/internet_explorer.jpg" alt="IE" /><br />
Der Internet Explorer der Version 8 steht in den Startlöchern und es wurde schon <a href="http://www.google.de/search?q=internet+explorer+8+beta+2">viel darüber berichtet</a>. Für Microsoft ist es aus meiner Sicht eine sehr starke Veränderung, für Webentwickler ist es ein Fortschritt in jeder Hinsicht. Der IE war in der Vergangenheit nicht gerade der Liebling der Webentwickler. Allerdings sollte man auch nicht verschweigen, dass Microsoft eine ganze <a href="http://www.drunkenfist.com/304/2008/08/11/some-internet-explorer-innovations-you-probably-forgot-about-while-waiting-for-ie6-to-die/">Reihe von Möglichkeiten</a> im Web geschaffen hat, die den Internet Explorer zumindest im Bereich von Administration und Business-Anwendungen schon vor AJAX und Web 2.0 zu Möglichkeiten verhalf, die mit anderen Browsern damals nicht denkbar waren.</p>
<p>Und auch beim Internet Explorer 8 führt Microsoft wieder Neuerungen ein, die der Webwelt vorerst in zwei Lager spalten. In diesem Artikel will ich mich daher nicht über Webstandards und Microsoft auslassen, sondern über die neuen Funktionen gegen das Ausspähen von Nutzern.<br />
<span id="more-771"></span><br />
Den Schwenk von proprietärem Standard, hin zu offenen Webstandards und Vorgaben des W3C sorgen bei einigen Unternehmen schon jetzt für Unbehagen. Noch können Sie sich eine Weile gegen den neuen Browsers wehren, aber ewig werden sie das Lager des IE 6 doch nicht halten können und müssen auch dem Druck der Anwender im Unternehmen nachgeben. Der eingeführte Meta-Tag, der den IE 8 mit der Darstellungsfunktion des IE 7 fahren lässt, wird uns wohl noch geraume Zeit begleiten.</p>
<pre><code>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
</code></pre>
<p>Seit der Beta 2 des IE 8 ist nun aber ein zweiter Punkt im Browser, der nicht nur die Unternehmen für die Verwendung des Browsers intern verärgert, sondern auch für die Funktion vieler Webservices und Websiten kann mit der neuen Funktion InPrivate viel Unbehagen gestreut werden.</p>
<h3>InPrivat</h3>
<p>In einigen Medien auch als <a href="http://www.spiegel.de/netzwelt/tech/0,1518,574872,00.html">Porno-Modus</a> bekannt, soll die InPrivate-Funktion dem Nutzer mehr Sicherheit geben. Die Privatsphäre des Nutzers wird gewahrt. Wissbegierige Anbieter werden ausgesperrt. Die neue Funktion sammelt eine ganze Reihe von Funktionen, die man auch aus anderen Browsern kennt, die aber im IE 8 gebündelt werden und der Unternehmensführung das Leben sehr erschweren können. Eine einfache Funktion ist dabei beispielsweise, dass man via Klick die Spuren des Surfverhaltens löschen kann. Dies ist aber so nicht immer erwünscht, denn dabei können auch für den Nutzer wichtige Informationen verloren gehen. Im IE 8 öffnet der InPrivate Modus ein neues Fenster und wendet in diesem Browser alle Mechanismen an, die die Privatsphäre schützen. Alle Informationen, die im Vorfeld im &#8222;normalen&#8220; Modus gespeichert wurden, bleiben dabei aber erhalten. Alle Daten werden also nur temporär bis zum Ende dieser Sitzung gespeichert. Cookies und Cache-Dateien, Suchanfragen, Formulare und Passwörter werden damit nicht gespeichert, ebenso die Historie der URLs.<br />
<img class="centered" src="http://bueltge.de/wp-content/images/inprivate.jpg" alt="about:inprivate" /></p>
<h3>Auswirkungen</h3>
<p>Um das Surfverhalten eines Nutzers zu erhalten, nutzen eine ganze Reihe von Firmen die Cookies; bekanntestes Beispiel ist wohl Google, die mit einer vielen Services unter diesem Modus leiden werden. Die Werbung, die Google finanziert und auf den Nutzer abstimmt, wäre dann nicht mehr so lukrativ und Google hat mit Sicherheit einen geringeren Interessenkreis von Werbenden, wenn sie diese Funktion nicht umgehen können.<br />
Wie bei so vielen Sicherheitsthemen sind die Lösungen/Alternativen nicht weit und auch in diesem Bereich gibt es Möglichkeiten, die schon jetzt Anwendung finden - die <a href="http://de.wikipedia.org/wiki/Flash-Cookie">Adobe Flash Cookies</a>. Diese Form der Cookies lassen sich nicht über die Konfiguration des Browsers auslesen oder löschen. Eine anderen Lösung ist die Zuordnung eines &#8222;<a href="http://my.affiliate-life.at/fingerprint-tracking-was-ist-das">Fingerprint</a>&#8220;, der ebenfalls schon jetzt von diversen Anwendungen genutzt wird. Mit der Veröffentlichung des IE 8 wird dieser Trend sicher enorm an Potenzial gewinnen.</p>
<p>Eine weitere Funktion des IE 8 wird aber sicher viele Anbieter im Web vor eine Veränderung stellen bzw. zum Umdenken bewegen, die Funktion &#8222;Blocking&#8220;. Auch diese Funktion wird mit dem InPrivate-Modus aktiviert. Sie richtet sich in erster Linie gegen die Angebote Dritter in Websites. Dem Anwender ist aktuell nicht bewusst, wo die Daten herkommen. Im einfachsten Fall geht der Nutzer davon aus, dass die alle Inhalte von der Website kommen, dessen URL in der Adresszeile steht. Vielen Websiten und Services nutzen aber die Möglichkeit Inhalte von anderen Seiten bereit zu stellen, ohne die angesurfte Website zu verlassen. Auf dem <a href="http://blogs.msdn.com/ie/">Blog von Microsoft zum IE</a> wird dieser Modus diskutiert und im Sinne des Web ist die Zusammenführung von Inhalten legitim. Für die Privatsphäre des Nutzers ist das aber eine Verletzung, so Dean Hachamovitch, Gerneral Manager des IE. Denken wir an Analysetools und Anzeigenvermarktung, dann ist diese Technik nicht weg zu denken. Im Zeitalter des Web 2.0 ist diese Technologie richtig populär geworden. Websites sind keine abgeschlossenen Container, viele Schnittstellen wie z.B. XML machen die Integration externer Services einfach. Auch hier trifft es den Riesen Google besonders, denke ich nur an Google Maps. Viel genutzt um Informationen auf der Website zu bereichern, ist es doch ein Dienst außerhalb der eigentlichen Website. Ebenfalls trifft dieser Modus viele Services des Web 2.0 und Unternehmen, die ihre Website mit externen Daten füttern, um die Inhalte attraktiver zu gestalten.<br />
Diese Funktion erhält seitens Microsoft sogar noch einen Bonus, denn die Suchmuster des Browsers können gesammelt und importiert werden. Damit kann jeder Nutzer des IE seine eigene Liste erstellen und diese zum Download anbieten. Ähnlich kennt man das vom Add on <a href="http://adblockplus.org/de/">Adblock Plus</a> im Firefox. Dabei handelt es sich aber um eine Erweiterung, was die Nutzerzahl reduziert; der Laie nutzt den Browser in seiner reinsten Form und kennt oft diverse  und Möglichkeiten nicht.</p>
<h3>Fazit</h3>
<p>Microsoft bringt einen neuen Browser und zum ersten mal macht man den Webentwicklern wohl eine Freude damit, dass man offene Standards unterstützt. Im gleichen Atemzug werden aber diverse Entwicklungen erschwert, da Microsoft dem Nutzer mit InPrivate einen neuen Service bietet. Die berechtigte Sorge vieler Nutzer, dass ihre Gewohnheiten und Interessen durch kommerzielle Websites ausgespäht werden, kann damit genommen werden und jeder Nutzer kann selbst entscheiden, was er frei geben will. Ein zweischneidiges Schwert - einerseits genießen Nutzer die zugeschnittenen Angebote oder bessere Suchergebnisse, andererseits wollen sie ihre Privatsphäre behalten. Mit diesem neuen Modus im IE 8 bündelt Microsoft viele bisher verstreute Funktionen und macht die Nutzung einfach, auch für wenige versierte Anwender. In Private sorgt nicht nur dafür, dass Inhalte aus dem WWW lokal gespeichert werden, sondern hält Drittinhalte außen vor. Mit der letzteren Funktion werden sicher viele Anbieter im Web ein Problem haben und Auswirkungen lassen sich heute noch nicht absehen. Wird also der IE 8 nur annähernd so viele Nutzer wie der viel verhasste IE 6 haben, dann setzt Microsoft die Webanbieter unter Zugzwang. Google muss also mehr als eine Alternative im Browsermarkt bieten, denn nur sehr wenige Unternehmen werden von der Hauptstraße Microsoft abbiegen und einen alternativen Browser nutzen. Alternativ können die Anbieter hoffen, dass die Nutzung Angebote Dritter schon so weit fortgeschritten ist, dass die Nutzer diesen Service nicht mehr wissen wollen und diesen Modus im IE 8 keine Chance geben.</p>
<p>Mal wieder zeigt Microsoft, dass sie ein berechtigtes Mitspracherecht auch über und im Web haben. Mit der Veröffentlichung der Beta 2 des IE 8 ist das Interesse nicht nur seitens der Webentwickler da, denn InPrivate betrifft viel größere Kreise und könnte den aktuellen Trend zu Integration immer mehr Mashups ändern.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/angst-vor-ie-8/771/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/angst-vor-ie-8/771/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/internet_explorer.jpg" />
		<media:content url="http://bueltge.de/wp-content/images/internet_explorer.jpg" medium="image">
			<media:title type="html">IE</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/inprivate.jpg" medium="image">
			<media:title type="html">about:inprivate</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>WordPress Plugin Daten automatisch deinstallieren</title>
		<link>http://bueltge.de/wordpress-plugin-daten-automatisch-deinstallieren/748/</link>
		<comments>http://bueltge.de/wordpress-plugin-daten-automatisch-deinstallieren/748/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 23:39:36 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Tipps]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WP2.7]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=748</guid>
		<description><![CDATA[Ab der Version 2.7 von WordPress wird es die Möglichkeit geben, dass man ein Plugin aus dem Backend heraus löschen kann, siehe Version 2.7 Info. Um das Löschen der Daten auch in der Datenbank zu realisieren, müssen die Autoren der Plugins einige Voraussetzungen schaffen. Damit der eine oder andere diese Funktion in sein Plugin aufnimmt [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://bueltge.de/wp-content/images/wp27/wp27_delete.png" alt="Plugins löschen" title="ab Version 2.7 kann man Plugins direkt im Backend von WordPress löschen" /><br />
Ab der Version 2.7 von WordPress wird es die Möglichkeit geben, dass man ein Plugin aus dem Backend heraus löschen kann, siehe <a href="http://codex.wordpress.org/Version_2.7#Plugin_Uninstaller">Version 2.7 Info</a>. Um das Löschen der Daten auch in der Datenbank zu realisieren, müssen die Autoren der Plugins einige Voraussetzungen schaffen. Damit der eine oder andere diese Funktion in sein Plugin aufnimmt oder für die Zukunft im Hinterkopf abspeichert, zeige ich, wie man dies realisiert.<br />
<span id="more-748"></span><br />
Wer schon im Vorfeld eine Uninstall-Funktion im Plugin hatte, der muss nicht sonderlich viel umstellen. Für Interessierende, die Funktionen zum Deinstallieren finden sich in <code>wp-admin/includes/plugin.php</code></p>
<ol>
<li><code>is_uninstallable_plugin($plugin)</code></li>
<li><code>uninstall_plugin($plugin)</code></li>
</ol>
<p>und der zugehörige Hook in <code>wp-includes/plugin.php</code></p>
<ol>
<li><code>register_uninstall_hook($file, $callback)</code></li>
</ol>
<p>Um nun das Plugin mit der Möglichkeit zu bereichern, können <strong>zwei Möglichkeiten</strong> genutzt werden.</p>
<ol>
<li>Eine Datei mit der Bezeichnung<code>uninstall.php</code> muss im Plugin vorliegen.</li>
<li>Der Hook zur Deinstallation <code>register_uninstall_hook</code> muss angesprochen werden.</li>
</ol>
<p>Bis zu Version 2.7 von WordPress konnte man ebenfalls die Daten aus der Datenbank löschen, allerdings nur wenn man das Plugin deaktiviert (Hook <code>register_deactivation_hook()</code>) oder mit Hilfe eines Formulars. Sollte dabei eine Funktion genutzt worden sein, dann kann diese auch weiterhin dafür einspringen. Lediglich das Ansprechen hat sich geändert.<br />
Um auch andere Versionen von WordPress zu unterstützen, empfiehlt es sich die Konstante <code>WP_UNINSTALL_PLUGIN</code> abzufragen, denn diese steht erst ab Version 2.7 zu diesem Zweck bereit. Alternativ kann man auch den Hook <code>register_uninstall_hook()</code> nutzen, da dieser zur Funktion via Hook notwendig ist. Beide Möglichkeiten habe ich im folgenden Beispielen hinterlegt.</p>
<p><img class="centered" src="http://bueltge.de/wp-content/images/wp27/wp27_delete2.png" alt="Plugins löschen" title="ab Version 2.7 kann man Plugins direkt im Backend von WordPress löschen" /></p>
<p>Die folgenden Funktion soll beispielhaft in einem Plugin stehen und löscht den Eintrag <em>example</em> aus der Datenbank Tabelle <code>options</code>.</p>
<pre><code>
/**
 * Delete options in database
 */
function example_deinstall() {

	delete_option('example');
}
</code></pre>
<h3>via Datei <code>uninstall.php</code></h3>
<p>Die einfachste Möglichkeit ist das Anlegen der Datei <code>unistall.php</code> mit den entsprechenden Einträgen zum Löschen von Daten in der Tabelle <code>options</code>.</p>
<pre><code>
delete_option('example');
</code></pre>
<p>Um ein Fehlverhalten in älteren Versionen von WordPress vorzubeugen, empfiehlt sich hier der Einsatz der Konstante. Ist diese nicht definiert, dann findet im Beispiel ein einfacher Abruch statt.</p>
<pre><code>
if ( !defined('WP_UNINSTALL_PLUGIN') ) {
    exit();
}
delete_option('example');
</code></pre>
<h3>via Hook <code>register_uninstall_hook()</code></h3>
<p>Alternativ kann man die Deinstallation auch per Hook registrieren, so dass man nicht auf die Datei angewiesen ist und man optional einfacher eine Möglichkeit der Deinstallation in das Plugin integrieren kann. Dazu steht der Hook <code>register_uninstall_hook()</code> zur Verfügung.</p>
<pre><code>
 /**
 * Check for hook
 */
if ( function_exists('register_uninstall_hook') )
	register_uninstall_hook(__FILE__, 'example_deinstall');

 /**
 * Delete options in database
 */
function example_deinstall() {

	delete_option('example');
}
</code></pre>
<p>Die Möglichkeit, dass man direkt im Backend von WordPress Plugins löschen kann, macht es sicher dem Nutzer ein wenig leichter, seine Installation von unnötigen Daten zu befreien. Nun müssen die Autoren von Plugins diese Lösung noch unterstützen und die Tabell <code>options</code> wird es sicher danken.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/wordpress-plugin-daten-automatisch-deinstallieren/748/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/wordpress-plugin-daten-automatisch-deinstallieren/748/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/wp27/wp27_delete.png" />
		<media:content url="http://bueltge.de/wp-content/images/wp27/wp27_delete.png" medium="image">
			<media:title type="html">ab Version 2.7 kann man Plugins direkt im Backend von WordPress löschen</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/wp27/wp27_delete2.png" medium="image">
			<media:title type="html">ab Version 2.7 kann man Plugins direkt im Backend von WordPress löschen</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>FirePHP verwenden, eine Einführung</title>
		<link>http://bueltge.de/firephp-verwenden-einfuehrung/720/</link>
		<comments>http://bueltge.de/firephp-verwenden-einfuehrung/720/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 10:02:26 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=720</guid>
		<description><![CDATA[Das Firefox Add on Firebug kann mittels weiterer Add ons erweitert werden, ein seht nützlich für PHP-Entwickler und Nutzer kann Firebug sein. Allerdings muss man dazu einiges an Anpassungen vornehmen und da es in diesem Zusammenhang wohl Bedarf gibt, hier eine kurze Einführung, wie man Firebug verwendet und wo die Werte dann zu finden sind. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/firephp/logo.png" alt="FirePHP Logo" /><br />
Das Firefox Add on <a href="http://www.getfirebug.com/">Firebug</a> kann mittels weiterer Add ons erweitert werden, ein seht nützlich für PHP-Entwickler und Nutzer kann <a href="http://www.firephp.org/">Firebug</a> sein. Allerdings muss man dazu einiges an Anpassungen vornehmen und da es in diesem Zusammenhang wohl Bedarf gibt, hier eine kurze Einführung, wie man Firebug verwendet und wo die Werte dann zu finden sind.</p>
<p>Mit PHP gibt es eine ganze Reihe von Möglichkeiten um die Ausgabe von Variablen während des Entwickeln zu gestalten, <code>print_r()</code> und <code>var_dump()</code> sind sicher die meist genutzten. Diese Möglichkeiten geben die Inhalte als HTML aus, direkt and er Stelle, wo sie eingebunden sind. Das hat den Nachteil, dass das Layout eventuell zerstört ist, dass die Ausgabe unübersichtlich wird und wenn man in einem Livebetrieb diese Möglichkeiten nutzt, dann is tdas nur schwer vor den anderen Usern zu verbergen. Mit dem Add on FirePHP bekommt der Entwickler ein Werkzeug, ohne Entwicklungsumgebung, welches diese Arbeit erleichtern kann und direkt im Browser verfügbar ist.<br />
Nun aber in wenigen Schritten, wie man zur Integration des Firebug und der Ausgabe der Werte kommt.<br />
<span id="more-720"></span></p>
<h3>Installation</h3>
<p>Das Add  on benötigt ein weiters Add on und ist nur im Browser Firefox verfügbar. Wer also nicht mit diesem Browser unterwegs ist, darum kommt man beim Entwickeln aktuell nicht dran vorbei, auch wenn sich andere Hersteller redlich bemühen. Installiert also den Browser <a href="http://www.mozilla.com/en-US/firefox/all-rc.html">Firefox</a> und das Add on <a href="http://www.getfirebug.com/">Firebug</a>. Wer Firebug noch nicht kennt - damit kann man im Standard HTML, CSS und JavaScritp debuggen, analysieren und live editieren. Ist das abgeschlossen, so kann die Erweiterung <a href="http://www.firephp.org/">FirePHP</a> installiert werden. Die einzelnen Links führen euch zu den Installationen, welche einfach und schnell erledigt sind.</p>
<p><strong>Ein Hinweis</strong>, FirePHP und dessen Library funktioniert nur mit PHP 5.</p>
<p>Nach dem alles installiert ist, findet man die Tools in der Systemleiste des Browser (zu erkennen am kleinen Käfer), per Klick oder <strong>F12</strong> kann der Firebug aufgerufen werden. Nun kann schon mit den Standard-Tools gearbeitet werden; für die Verwendung von FirePHP muss man noch das PEAR-Paket bereit stellen. Die wenigsten Nutzer werden wohl einen eigenen Server haben, so dass die Umgebung für das Entwickeln von PHP-Anwendungen eher ein lokaler Server sein wird. Daher erkläre ich mal am Beispiel <a href="http://www.apachefriends.org/de/xampp.html">XAMPP</a>, wie man FirePHP zum reden bringt.</p>
<ol>
<li>Als erstes muss die Code-Libarary herunter geladen werden, zu finden auf der <a href="http://www.firephp.org/">Webseite von FirePHP</a>.</li>
<li>In diesem Download-Paket gibt es einen Ordner <em>FirePHPCore</em>, den man nach <code>…\xampp\php\PEAR</code> kopiert.</li>
<li>Hat man dies erledigt, dann muss man lediglich den Server starten bzw. neu starten, falls er schon lief.</li>
</ol>
<h3>Vorbereitung der Ausgabe</h3>
<p>Nach dem nun die Bibliothek beriet steht, können wir sie in das Projekt implementieren. Dazu inkludet man die Datei und schon steht die wichtigste Funktion <code>fb()</code> bereit.</p>
<pre><code>
require('FirePHPCore/fb.php');
</code></pre>
<p>Nun empfiehlt sich noch das Puffern der Ausgabe und dann kann es schon los gehen. Aktuell steht also im Projekt die folgenden Zeilen.</p>
<pre><code>
&lt;?php
require('FirePHPCore/fb.php');
ob_start();
?&gt;
</code></pre>
<h3>Die erste Ausgabe &#8222;Hello World&#8220;</h3>
<p>Als erstes soll das gewohnte Neuland betreten werden, in dem wir &#8222;Hello World&#8220; im FireBug ausgeben. Dazu erweitert man die obigen Zeilen um ein einfache Ausgabe mit der Funktion <code>fb()</code> von FirePHP.</p>
<pre><code>
&lt;?php
require('FirePHPCore/fb.php');
ob_start();
fb('Hello World');
?&gt;
</code></pre>
<p>Mit <strong>F12</strong> den Firebug aktivieren und die Seite neu laden, dann sollte es ähnlich dem folgendem Screenshot bei euch aussehen.<br />
<a href="http://bueltge.de/wp-content/images/firephp/firebug_hello_world.png" title="Klick für Zoom"><img class="centered" src="http://bueltge.de/wp-content/images/firephp/firebug_hello_world.thumb.png" alt="FirePHP Hello World" /></a></p>
<h3>Log Meldungen gestalten</h3>
<p>Firebug kann aber mehr als pur die Meldungen ausgeben; dabei gibt es verschiedene Design-Möglichkeiten, die das Lesen der Ausgabe von Meldungen erleichtern und so verschiedene Typen für unterschiedliche Ausgaben zulassen.<br />
Dazu den Code wieder ein wenig erweitern:</p>
<pre><code>
&lt;?php
require('FirePHPCore/fb.php');
ob_start();
fb('Hello World');

fb('Log Mitteilung', FirePHP::LOG);
fb('Info Mitteilung', FirePHP::INFO);
fb('Warn Mitteilung', FirePHP::WARN);
fb('Error Mitteilung', FirePHP::ERROR);
?&gt;
</code></pre>
<p><img class="centered" src="http://bueltge.de/wp-content/images/firephp/firebug_message.png" alt="FirePHP Log Message" /></p>
<h3>Array ausgaben</h3>
<p>Nun aber weg von den kleinen Spielereien, zu einem sehr mächtigen Werkzeug, die Ausgabe von Arrays. Die Ausgabe soll an einer bekannten Variable gezeigt werden - $_SERVER.</p>
<blockquote><p>$_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen. Die Einträge in diesem Array werden vom Webserver erstellt.</p></blockquote>
<p>Diese Variable wird nun mittels der Funktion <code>fb()</code> in FirePHP geloggt und kann daher inhaltlich gelesen werden. Bisher wurde die Funktion lediglich mit Text gefüttert und dieser wurde dann ausgeben, dass ändert sich nur soweit, dass man anstatt Text nun die Variable übergibt.<br />
Der Syntax wird wieder erweitet:</p>
<pre><code>
&lt;?php
require('FirePHPCore/fb.php');
ob_start();

fb($_SERVER, FirePHP::LOG);
?&gt;
</code></pre>
<p>Nun wird im Firebug ein Array angezeigt, mit dem Wert 36. Ein MouseOver zeigt die Inhalte des Array in einem Extra Fenster, ein Klick stellt das Fenster permanent dar.<br />
<a href="http://bueltge.de/wp-content/images/firephp/firebug_array.png" title="Klick für Zoom"><img class="centered" src="http://bueltge.de/wp-content/images/firephp/firebug_array.thumb.png" alt="FirePHP Array Ausgabe" /></a></p>
<p>Erstellt man später mehrere Ausgaben, so ist es sinnvoll, wenn man eine Zuordnung hat. Daher lässt die Funktion <code>fb()</code> auch dafür einen Parameter zu.</p>
<pre><code>
fb($_SERVER, 'Server Variables', FirePHP::LOG);
</code></pre>
<p><img class="centered" src="http://bueltge.de/wp-content/images/firephp/firebug_array2.png" alt="FirePHP Array Ausgabe mit Zuordnung" /></p>
<h3>Trace loggen</h3>
<p>Als nächstes soll ein Trace erfolgen, so dass man alle Verbindungen sehen kann. Die WordPress-Nutzer sehen spätestens jetzt, dass ich für das Beispiel in einem WordPress-Theme debugge, was eigentlich schön zeigt, wie gut sich FirePHP integrieren lässt.</p>
<p>Dafür die folgende Erweiterung in den Code übernehmen.</p>
<pre><code>
&lt;?php
require('FirePHPCore/fb.php');
ob_start();

fb('Backtrace to here', FirePHP::TRACE);
?&gt;
</code></pre>
<p><a href="http://bueltge.de/wp-content/images/firephp/firephp_trace.png" title="Klick für Zoom"><img class="centered" src="http://bueltge.de/wp-content/images/firephp/firephp_trace.thumb.png" alt="FirePHP Tracing" /></a></p>
<p>Sehr schön kann man nun die Verbindungen sehen, die tabellarische Sicht gibt sehr schnell Auskunft und macht die Analyse zum Kinderspiel.</p>
<h3>Fazit</h3>
<p>Dieser kleine Einstieg zeigt die für mich wichtigsten Funktionen. FirePHP kann mehr und informiert darüber ausführlich auf der zugehörigen <a href="http://www.firephp.org/">Website</a>.<br />
Ebenso lohnend ist das Tutorial von  Dirk Henn &#8222;<a href="http://alldev.de/64-php-mit-firebug-debuggen/">PHP mit Firebug debuggen</a>&#8220;.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/firephp-verwenden-einfuehrung/720/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/firephp-verwenden-einfuehrung/720/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/firephp/logo.png" />
		<media:content url="http://bueltge.de/wp-content/images/firephp/logo.png" medium="image">
			<media:title type="html">FirePHP Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/firephp/firebug_hello_world.thumb.png" medium="image">
			<media:title type="html">FirePHP Hello World</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/firephp/firebug_message.png" medium="image">
			<media:title type="html">FirePHP Log Message</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/firephp/firebug_array.thumb.png" medium="image">
			<media:title type="html">FirePHP Array Ausgabe</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/firephp/firebug_array2.png" medium="image">
			<media:title type="html">FirePHP Array Ausgabe mit Zuordnung</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/firephp/firephp_trace.thumb.png" medium="image">
			<media:title type="html">FirePHP Tracing</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Bessere Seiten entwickeln mit Firebug</title>
		<link>http://bueltge.de/bessere-seiten-entwickeln-mit-firebug/718/</link>
		<comments>http://bueltge.de/bessere-seiten-entwickeln-mit-firebug/718/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 11:31:36 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Add-on]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=718</guid>
		<description><![CDATA[Die Webgemeinde ist sich im Nutzen des Add on Firebug für den Browser Firefox sicher einig - erst einmal damit gearbeitet, dann ist der Firebug ein unverzeichtbares Werkzeug, welches auch den Sprung zu einem anderen Browser erschwert. Das Add on bietet sehr viele und umfangreiche Funktionen, außerdem kann man vie Plugin den Firebug erweitern, was [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignrightob" src="http://bueltge.de/wp-content/images/firebug.jpg" alt="Firebug Logo" /><br />
Die Webgemeinde ist sich im Nutzen des Add on <a href="http://getfirebug.com/">Firebug</a> für den Browser Firefox sicher einig - erst einmal damit gearbeitet, dann ist der Firebug ein unverzeichtbares Werkzeug, welches auch den Sprung zu einem anderen Browser erschwert.</p>
<p>Das Add on bietet sehr viele und umfangreiche Funktionen, außerdem kann man vie Plugin den Firebug erweitern, was ihn um einiges stärker weden läßt. Ich denke da nur an Erweiterungen wie <a href="http://developer.yahoo.com/yslow/">YSlow</a>, <a href="http://firephp.org/">FirePHP</a> und <a href="http://www.pixelperfectplugin.com/">PixelPerfect</a>, die ich nicht mehr missen will.</p>
<h3>Lesebefehl</h3>
<p>Noch besser ist es aber, wenn man das Add on auch ausschöpfen kann, weil man das Tool kennt und deren Funktion richtig anwendet.<span id="more-718"></span> Genau in diesem Punkt setzt ein <a href="http://www.webmonkey.com/tutorial/Build_Better_Pages_With_Firebug">Tutorial</a> von <a href="http://www.webmonkey.com/tutorial/Build_Better_Pages_With_Firebug">webmonkey.com</a> an und erklärt uns, wie man Firebug richtig und umfassend nutzt.<br />
Daher mein Hinweis und Tipp als Lesebefehl für alle Nutzer des Firebug, die eventuell noch dazu lernen wollen und können.</p>
<h3>Alternative ohne Firefox</h3>
<p>Will oder kann man nicht mit dem Firefox arbeiten, dann ist das Leichtgewicht <a href="http://getfirebug.com/lite.html">Firebug Lite</a> des Firebug eventuell eine Alternative, denn dieses Tool ist browserunabhängig und kann dem Entwickler auch in anderen Briwsern helfen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/bessere-seiten-entwickeln-mit-firebug/718/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/bessere-seiten-entwickeln-mit-firebug/718/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/firebug.jpg" />
		<media:content url="http://bueltge.de/wp-content/images/firebug.jpg" medium="image">
			<media:title type="html">Firebug Logo</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Lach oder wein ich?</title>
		<link>http://bueltge.de/lach-oder-wein-ich/709/</link>
		<comments>http://bueltge.de/lach-oder-wein-ich/709/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 06:57:26 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=709</guid>
		<description><![CDATA[Ich erstelle sehr gern Plugins und Themes für die Plattform WordPress. Wer hier schon länger mit liest, der weis, dass ich eine ganze Reihe an Plugins erstellt habe. Das eine oder andere habe ich auch schon auf Anfrage speziell für eine bestimmte Aufgabe erstellt. Dabei wähle ich vorrangig nach: Interessiert mich die Anforderung Kann ich [...]]]></description>
			<content:encoded><![CDATA[<p>Ich erstelle sehr gern Plugins und Themes für die Plattform WordPress. Wer hier schon länger mit liest, der weis, dass ich eine ganze Reihe an Plugins erstellt habe. Das eine oder andere habe ich auch schon auf Anfrage speziell für eine bestimmte Aufgabe erstellt.</p>
<p>Dabei wähle ich vorrangig nach:</p>
<ul>
<li>Interessiert mich die Anforderung</li>
<li>Kann ich eine Lösung erkennen und umsetzen</li>
<li>Ist die Zusammenarbeit angenehm</li>
</ul>
<p>Leider scheint es aber im Web in letzter Zeit immer mehr Leute zu geben, die der Meinung sind, dass ich nur auf Ihre Anforderung warte und dann lege ich mit voller Fahrt los.<br />
Aber genau so ist es nicht - auch mein Tag hat nur 24 Stunden und dieser ist bei weitem schon übervoll, zumindest im aktuellen Stadium.<br />
<span id="more-709"></span><br />
<img class="alignrightob" src="http://bueltge.de/wp-plugin-sicherheit/pix/04.gif" alt="Sauer" /></p>
<p>Dabei geht es mir nicht darum, dass man mich fragt, ob ich ein Plugin für einen feuchten Händedruck mach - das kommt nicht selten vor, wenn die obigen Bedingungen erfüllt sind. Aber wenn man es fordert und schon in der Mail als überschwänglich hervor tritt und offensichtlich die Lösung schnell für einen Kundenauftrag benötigt, dann werde ich sauer und kann überreagieren.</p>
<p><strong>Nochmal</strong>, wenn es freundliche Anfragen sind und ich keinen finanziellen Hintergrund für den Anfragenden sehe, dann erstelle ich es eventuell gern - wenn man mir aber fordernd und proletenhaft daher kommt und dann noch einen Zeitplan erstellen will, weil der Kunde wartet, dann sollte man sich die Mühe einer Mail sparen, denn meine Nachfragen und Bemühungen sind dann auch umsonst und kosten mich viel Zeit.</p>
<p>Gleiches gilt für eine Reihe von Anforderungen bei <a href="http://bloggerjobs.de">bloggerjobs.de</a>. Einige Aufgaben dort sind entweder nicht ernst gemeint oder die jeweiligen User sind sehr von sich überzeugt.</p>
<blockquote><p>... ich suche ein Plugin, welches drei Plugins miteinander vereint. Wer ein solches erstellen könnte, dem würde ich 10 € überweisen (PayPal) und kann einen Banner bei mir in der Sidebar für einen Monat haben, soweit dieser für mich in Ordnung ist. ...</p></blockquote>
<p>Obige Zitat möchte das Plugin um im Blog durch reichhaltige Funktionen Geld mit Werbung zu verdienen. Schon die Anforderung sollte es doch wert sein, den Autor des entstehenden Plugins dann auch gebührend zu honorieren.</p>
<p>Das Schreiben eines Plugins geschieht nicht im Schlaf und eventuell sollte der einen oder andere WordPress Nutzer mal darüber nachdenken. WordPress hat schon eine riesen Community und eine extrem lange Liste von Plugins. Einen derartigen Umfang können nicht viele freie Applikationen aufweisen. Wenn man dann noch eine spezielle Lösung benötigt, dann wendet man sich also bitte mit dem gebührenden Respekt und Honorierung an die Autoren.</p>
<p>Irgendwie musste ich das mal los werden - aktuell beginnt mein Tag um 5 und gegen 0 Uhr versuche ich meinen Kopf wieder zu reseten und ein wenig Schlaf zu bekommen. Wird man dann noch mit Hohn beworfen in Form von Mails, dann kann das sehr bitter sein.<br />
Sollte ich jemanden mit diesem Artikel angegriffen haben, so hoffe ich, dass ich den/die richtige Person erwischt habe - für alle nicht betroffenen entschuldige ich mich ansonsten für den eher ungewöhnlichen Ton.<br />
Für Kritiken und Diskussionsstoff steht die Kommentarfunktion wie immer offen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/lach-oder-wein-ich/709/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/lach-oder-wein-ich/709/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-plugin-sicherheit/pix/04.gif" />
		<media:content url="http://bueltge.de/wp-plugin-sicherheit/pix/04.gif" medium="image">
			<media:title type="html">Sauer</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Effizienz bei der Webentwicklung</title>
		<link>http://bueltge.de/effizienz-tools-webentwicklung/660/</link>
		<comments>http://bueltge.de/effizienz-tools-webentwicklung/660/#comments</comments>
		<pubDate>Wed, 21 May 2008 14:36:34 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdeveloper]]></category>

		<guid isPermaLink="false">http://bueltge.de/?p=660</guid>
		<description><![CDATA[Immer wieder fragen Leser an: Welche Tools nutzt du für die und die Anwendung? Aus diesem Grund stelle ich mal eine Auswahl der für mich wichtigsten Werkzeuge vor. Diese Liste steht sicher nicht als Dogma und jeder Entwickler nutzt andere Werkzeuge, aber sie gibt vielleicht dem Einen oder Anderen einen Tipp für zukünftige Arbeitstools. Augenmerk [...]]]></description>
			<content:encoded><![CDATA[<p>Immer wieder fragen Leser an: Welche Tools nutzt du für die und die Anwendung? Aus diesem Grund stelle ich mal eine Auswahl der für mich wichtigsten Werkzeuge vor. Diese Liste steht sicher nicht als Dogma und jeder Entwickler nutzt andere Werkzeuge, aber sie gibt vielleicht dem Einen oder Anderen einen Tipp für zukünftige Arbeitstools. Augenmerk steht dabei auf die klassischen Anwendungen und Online-Tools. Bewusst nicht genannt sind Browser und die passenden Erweiterungen, dazu gibt es ausreichend und gute <a href="http://www.google.de/search?q=firefox+webdesign+tools&#038;sourceid=navclient-ff&#038;ie=UTF-8&#038;rlz=1B3GGGL_de___DE231">Beiträge im Web</a>.<br />
<span id="more-660"></span><br />
Im weiteren würde ich mich freuen, wenn in den Kommentaren weitere nützliche Tools hinterlegt werden. Da ich Webentwicklung nur als Hobby betreibe und mich beruflich auf anderen Pfaden bewege, ist der Umfang und die Arbeitsweise eventuell ein wenig anders als bei beruflich bedingten Webentwicklern.</p>
<h3>Editor</h3>
<p>Hierbei kommt in meinem Umfeld <a href="http://www.ultraedit.com/">UltraEdit</a> für Windows zum Einsatz. UltraEdit ist keine freie Anwendung, ist mir aber ans Herz gewachsen und lässt sich sehr gut an alle möglichen Anforderungen anpassen und erweitern.<br />
Als Alternative will ich aber trotzdem die beiden Editoren <a href="http://notepad-plus.sourceforge.net/de/site.htm">Notepad++</a> (Windows) und <a href="http://www.jedit.org/">jEdit</a> (Mac OS X, OS/2, Unix, VMS und Windows) nennen. Denn beide waren lange in meinem Einsatzgebiet und lassen sich ebenso gut an die eigenen Bedürfnisse anpassen.</p>
<h3>PHP-Umgebung und Debuggen</h3>
<p>Hierbei bin ich noch immer auf einer einfachen XAMPP-Umgebung mit Xdebug. Zusätzlich nutze ich WinCacheGrid. Zu Konfiguration und Nutzen dieser Umgebung habe ich einen Beitrag erstellt und verweise daher einfach darauf: &#8222;<a href="http://bueltge.de/php-debugging-und-profiling-leicht-gemacht/520/">PHP Debugging und Profiling leicht gemacht</a>&#8220;.</p>
<p>Zusätzlich parse ich die PHP-Datei direkt im Editor. Dazu fügt man lediglich die php.exe als Aufruf hinzu und richtet sich nach dem jeweiligen Editor und dessen Anleitung. In meinem UltrEdit sieht das beispielsweise wie folgt aus.</p>
<p><code>D:\xampp\php\php.exe -l %f</code></p>
<h3>Validieren</h3>
<p>Das Validieren erledige ich unter anderem direkt im Editor. Ich habe mir <a href="http://tidy.sourceforge.net/">HTML-Tidy</a> und <a href="http://csstidy.sourceforge.net/index.php">CSS-Tidy</a> in meinen Editor eingebunden. Das kann man bei jedem besseren Editor tun und die notwendigen Anwendungen <a href="http://tidy.sourceforge.net/">HTML-Tidy</a> und <a href="http://csstidy.sourceforge.net/index.php">CSS-Tidy</a> findet man im Netz.</p>
<p>Hier mal die Einbindung von CSS-Tidy in UltraEdit, was aber auch in anderen Editoren machbar ist.<br />
<code>D:\pfad_zu_csstidy\csstidy\csstidy.exe %f</code></p>
<p>Für die Prüfung von XML habe ich ebenso per Kommando in meinen Editor integriert. Als Basis dient <a href="http://xmlsoft.org/xmllint.html">XMLlint</a>.</p>
<p>Alternativ kann man das auch mit Hilfe diverser Online-Tools erledigen oder einem Browser-Add on.</p>
<h3>Online-Hilfen</h3>
<ol>
<li><a href="http://developer.yahoo.com/ypatterns/">Yahoo! Design Pattern Library</a> Lösungen suchen oder Checkliste abarbeiten</li>
<li><a href="http://www.cssfly.net/">CSSfly</a> CSS Edit in Echtzeit, direkt im Browser, egal Welcher</li>
<li><a href="http://planetozh.com/projects/wordpress-functions-history/">WordPress Functions Implementation History</a> WordPress Funktion in/ab/bis welcher Version</li>
<li><a href="http://bueltge.de/designtool-browseruebergreifend/581/">Designtool Browserübergreifend</a> per JS wird eine Hilfe geschaltet, schöne grid-Möglichkeiten</li>
<li><a href="http://bueltge.de/jash-javascript-shell-erlaubt-das-debuggen-per-bookmark/564/">Jash: JavaScript Shell erlaubt das Debuggen per Bookmark</a></li>
<li><a href="http://jrm.cc/color-palette-generator/">Color Palette Generator</a> Generiert eine Farbpalette aus einem Bild</li>
<li><a href="http://tester.jonasjohn.de/">test everything</a> 100+ Tools in Einem zum Testen der Webseite</li>
<li><a href="http://tools.pingdom.com/fpt/">Pingdom Tools - Full page test</a> Seitentest und Ladezeit (alternativ gibt es <a href="http://www.getfirebug.com/">Firebug</a> und <a href="http://developer.yahoo.com/yslow/">YSlow</a> für Firefox</li>
</ol>
<p>Für viele weitere Anwendungen ist es nicht so, dass ich große Linklisten führe oder irgendwo online die Bookmarks ablege. Benötige ich etwas, dann nutze ich einschlägige Suchmaschinen, dabei verwende ich eigentlich nur für die Code-Suche Alternativen, ansonsten kommt Google zum Einsatz.</p>
<p>Übersichten und Nachschlagewerke sind ebenso in meinen Arbeitsalltag integriert, wobei ich vorrangig mit <a href="http://bueltge.de/tag/cheat-sheet/">Cheat Sheets</a> arbeite und weiteres online nachlese. Für einige Themen habe ich auch Bücher, die ich aber mehr als Lektüre nutze und dann eher weniger als Nachschlagewerk.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/effizienz-tools-webentwicklung/660/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/effizienz-tools-webentwicklung/660/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Web-Anwendungen und ihre größten Schwachstellen</title>
		<link>http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/</link>
		<comments>http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 00:17:51 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/</guid>
		<description><![CDATA[Eine Liste mit Schwachstellen in Webanwendungen ohne Wertung der Reihenfolge. Viele Informationen beziehen sich auf die Aussagen des OWASP-Projektes. Dort sind auch mögliche Lösungen und Hintergründe in ausführlicher Form hinterlegt (Downloads). Cross Site Scripting (XSS) Die bekannteste und meiste genutzte Lücke im System - XSS. Wie, was und warum - dazu habe ich bereits einen [...]]]></description>
			<content:encoded><![CDATA[<p>Eine Liste mit Schwachstellen in Webanwendungen ohne Wertung der Reihenfolge. Viele Informationen beziehen sich auf die Aussagen des <a href="http://www.owasp.org/">OWASP-Projektes</a>. Dort sind auch mögliche Lösungen und Hintergründe in ausführlicher Form hinterlegt (<a href="http://www.owasp.org/index.php/OWASP_Guide_Project#OWASP_Guide_2.0_Downloads">Downloads</a>).<br />
<span id="more-535"></span></p>
<h3>Cross Site Scripting (XSS)</h3>
<p>Die bekannteste und meiste genutzte Lücke im System - XSS. Wie, was und warum - dazu habe ich bereits <a href="http://bueltge.de/cross-site-scripting-xss/477/">einen Artikel im Vorfeld</a> veröffentlicht.</p>
<p>Grundlegend heißt es, bösartige User hinterlegen Script im Browser des Anwenders und holen darüber benutzereigene Daten und können mit diesen Daten beispielsweise schadhaften Code injizieren. Die meisten Angriffe werden mittels JavaScript ausgeführt, daher auch die ehemalige Ablehnung von JavaScipt in einigen Bereichen. Grundlegend können aber XSS-Attacken mit jeder Script-Sprache ausgeführt werden, die der Browser unterstützt. Seit dem Thema Web 2.0 ist JavaScript in aller Munde und in vielen Anwendungen nicht mehr wegzudenken. Um so wichtiger das Wissen über die möglichen Schwachstellen und die damit verbundene Vorsorge. Gerade im AJAX-Umfeld ist XSS ein Problem.</p>
<p>Hierbei sehr interessant das <a href="http://ha.ckers.org/xss.html ">XSS-Cheat Sheet</a> (Auch im Download von OWASP zu finden)</p>
<h3>Cross Site Request Forgery (CSRF)</h3>
<p>Der Hacker greift den Client an und übernimmt die Kontrolle über den Browser. In der Regel passiert das nach dem Einloggen in eine Webappliaktion. Mit diesem Login kann der Hacker dann Anfragen an das System kreieren und nutzereigene Daten als Rückmeldung bekommen. In der Regel laufen derartige Aktione über Cookies-Sessions. Einzige Lösung ist das nicht Speichern durch den Browser von relevanten Daten.</p>
<h3>Offene URLs</h3>
<p>Eine ganze Reihe von Webseiten haben Anwendungen für kleine Bereiche laufen. Allerdings schützen sie die Verzeichnisse nicht und versierte User finden die URLs recht schnell und können so auf eventuell schützenswerte Daten zugreifen. Es findet also das klassische Erraten von Adressen statt, was man aber deswegen nicht als abwegig und nachlässig einstufen sollte. Prinzipiell sollte man den Anderen nicht unterschätzen, also lieber das Verzeichnis schützen und eine Zugangskontrolle implementieren.</p>
<h3>Ausführen von</h3>
<p>Kann die Applikation Nutzerdaten akzeptieren, dann kann prinzipiell auch schadhafter Code ausgeführt werden. Die meisten Probleme in diesem Umfeld sind mit der Sprache PHP bekannt. Anfällig ist aber jede Applikation oder Framework. Die Schwachstellen wird bezeichnet als Remote File Inclusion (RFI).</p>
<h3>Injection-Fehler</h3>
<p>Hierbei nutzen Hacker die Möglichkeit, dass Daten vom Anwender als Befehl oder Anfrage an einen Interpreter gesendet werden. Dabei werden die Befehle manipuliert und die Daten verändert. Man kann also jede Form von Daten für die Anwendung erstellen, lesen, ändern oder löschen. Das größte Problem in aktuellen Anwendungen sind die gelobten APIs. Diese könnten, wenn sie Lücken aufweisen dazu missbraucht werden. Klassisches Beispiel sind SQL-Injections.</p>
<h3>Objekt-Zugriff</h3>
<p>Unautorisierte Zugriffe via Direct Object References dienen dem Angreifer um auf Dateien, Verzeichnisse, Schlüssel oder direkt auf Datenbankeinträge zuzugreifen. Prinzipiell kann man, wenn man einen Schlüssel im System hat, auf die anderen Schlüssel schließen und verwenden. Ein klassisches Beispiel ist der Finanzmarkt: die Kontonummer des Nutzers referenziert ihn in allen Anwendungen und somit hat der Angreifer Kontonummer und kann damit weitere Daten abrufen. Eine indirekte Referenz kann helfen und macht die Zugriffe autonomer. Grundlegend sollten direkte Referenzen vermieden werden.</p>
<h3>Fehlerbehandlung</h3>
<p>Ausführliche und inhaltlich wertvolle Fehlerbeschreibungen eines Fehlers in der Webapplikation sind für Hacker ein Schlüssel. Mit diesen detailreichen Informationen können Bösewichte entsprechende Maßnahmen einleiten um das System für sich zu öffnen. Derartige Probleme lassen sich nur mit Hilfe von umfangreichen Tests finden. Auch dafür gibt es Tools mit entsprechenden Möglichkeiten. Außerdem gehört die Fehlerbehandlung im Live-Betrieb deaktiviert.</p>
<h3>Zugang via Session und Kommunikation</h3>
<p>Webapplikationen sind so gut wie immer mit einem Zugang geschützt, die Zugangsdaten gehören sicher gespeichert und der Zugang sollte immer per Protokoll SSL laufen. Ebenso speichert man Zugangsdaten nicht 1:1, sondern mit Hilfe eines Hash. Auch hier gilt es, Cookies sind nicht immer der Schlüssel zum Glück des Anwenders. Die Kommunikation zwischen verschiedenen Servern o.ä. gehört mittels Verschlüsselung oder Transport Layer Security realisiert.</p>
<h3>Offene Datenablage</h3>
<p>Die Datenablage ist bei relevanten Applikation schon heute in vielen Bereichen verschlüsselt. Die Daten selbst werden aber uncodiert gespeichert und die vorhandene Verschlüsselung ist oft unzureichend. Es gilt, dass möglichst starke und ausreichend getestet, besser standardisierte, Algorithmen genutzt werden. Einfache oder eigene Algorithmen entsprechen selten den nötigen Anforderungen.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/web-anwendungen-und-ihre-groeszten-schwachstellen/535/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Herausforderung Web 2.0 im Unternehmen</title>
		<link>http://bueltge.de/herausforderung-web-20-im-unternehmen/436/</link>
		<comments>http://bueltge.de/herausforderung-web-20-im-unternehmen/436/#comments</comments>
		<pubDate>Tue, 08 May 2007 18:03:20 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Webküche]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Karneval]]></category>
		<category><![CDATA[Unternehmen]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://bueltge.de/herausforderung-web-20-im-unternehmen/436/</guid>
		<description><![CDATA[Der folgende Artikel steht in Verbindung mit dem 3. Business-Blog-Karneval und dieser wird veranstalltet von der Agentur Thoxan auf dem Neukunden-Magnet. Die innerbetriebliche Kommunikation ist noch immer ein Problem im Unternehmen. Was in der großen Welt des Internets immer leichter und auch immer attraktiver wird, ist in vielen Unternehmen nicht zu spüren – die Kommunikation, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://bueltge.de/wp-content/images/blogkarneval3_156x60.gif" alt="Logo 3.Business Blog Karneval" /><em>Der folgende Artikel steht in Verbindung mit dem <a href="http://www.neukunden-magnet.de/business-blog-karneval-erfolgreich-mit-neuen-medien">3. Business-Blog-Karneval</a> und dieser wird veranstalltet von der <a href="http://www.thoxan.com/">Agentur Thoxan</a> auf dem <a href="http://www.neukunden-magnet.de/">Neukunden-Magnet</a>.</em></p>
<p>Die innerbetriebliche Kommunikation ist noch immer ein Problem im Unternehmen. Was in der großen Welt des Internets immer leichter und auch immer attraktiver wird, ist in vielen Unternehmen nicht zu spüren – die Kommunikation, die Zusammenarbeit. Unternehmen können ihr Know-how nicht bündeln und haben damit im Wettbewerb einen Nachteil. Web-Techniken, die unter dem Begriff Web 2.0 bekannt oder bekannter geworden sind, stellen eine Chance für Unternehmen dar – sie müssen nur zugreifen. Wissensmanagment, Kommunikation und Zusammenarbeit sind Bausteine, die im Unternehmen gemeistert werden müssen. Um die Vorteile von Weblogs,  Wikis und Social Services zu nutzen, bedarf es jedoch einiger Vorraussetzungen.</p>
<p>Techniken, die mit dem Schlagwort Web 2.0 im Zusammenhang stehen, können den Informationsfluss im Unternehmen effizienter gestallten. Derzeit ist das typische Austauschmedium im Unternehmensumfeld die E-Mail. Mitarbeiter geben Informationen an andere Mitarbeiter, in der Regel über die Möglichkeit Kopie-Adresse hinterlegen (cc-Funktion). Damit ist der Datenstrom schnell sehr groß, der Mailserver überlastet und hat man einen Mitarbeiter vergessen, dann erhält er erst gar keine Information. Dabei gehen Informationen verloren, gelangen an die falsche Adresse oder die Relevanz ist falsch gesetzt.</p>
<p>Mit Hilfe von Web 2.0-Anwendungen wird dieses Problem umgekehrt. Der Empfänger entscheidet selbst, ob und welche Information er haben möchte. Dazu steht vorrangig der Nutzen von Feeds im Vordergrund.</p>
<p>Ähnlich verhält es sich mit der Information, die im einfachsten Fall in der E-Mail steht. Sie geht im Laufe der Zeit verloren. Das Wissen besteht zwar, aber es ist nur schwer darauf zuzugreifen. Auch hier können Werkzeuge wie Blogs und Wikis helfen, helfen das Wissen im Unternehmen zu bündeln – das Wissensmanagment verbessern. Informationen werden zentral gespeichert und der Zugriff steht jedem Mitarbeiter offen. Suchmaschinen helfen den Inhalt zu finden. Das Wissen, was viele Mitarbeiter auf ihren lokalen Festplatten speichern, ist nicht erreichbar – es nützt nur diesem Mitarbeiter und damit dem Unternehmen nur sehr gering. Im Extremfall verlässt der Mitarbeiter das Unternehmen und nimmt das Wissen mit. Mit den genannten Lösungen bleibt das Wissen erhalten, der Zugriff steht offen und wird vereinfacht.</p>
<p>Web 2.0 steht aber vor allem für Kommunikation, für Gemeinsamkeit. Auch hier können Unternehmen profitieren, denn Web 2.0-Anwendungen erleichtern die Zusammenarbeit. Die Anwendungen laufen zentral und die Mitarbeiter können von verschiedenen Standorten darauf zugreifen. Alle Beteiligten können einfach und kontrolliert auf die Daten zugreifen, unabhängig von Ort und Zeit. Alle Mitarbeiter greifen auf gleiche Versionen zu. Inhalte lassen sich gemeinsam erstellen und bearbeiten. Alle Teilnehmer arbeiten immer mit der aktuellen Version und bekommen per Feed Information über die Aktualisierungen.</p>
<p><img class="alignright" src="http://bueltge.de/wp-content/images/web20unternehmen.png" alt="Web 2.0 Vorraussetzungen" />Um all diese Vorteile zu nutzen, bedarf es an einigen Vorraussetzungen. Im Web ist die Welt schnelllebiger und anpassbar. Das Unternehmen ist dagegen träge und bedarf klarer Strukturen.<br />
Deshalb sind folgenden Grundlagen zu schaffen und zu vereinbaren:</p>
<ul>
<li>Standards und Richtlinien definieren und einhalten</li>
<li>Berechtigungskonzepte festlegen</li>
<li>Verwaltung der Anwendungen regeln</li>
<li>Anwendungen in den täglichen Arbeitsprozess integrieren</li>
<li>Verbindung der Kommunikationskanäle schaffen</li>
<li>Einfache Bedienung um hohe Akzeptanz zu erzeugen</li>
<li>Hoher Bedienkomfort</li>
<li>Verschiedene Informationskanäle anbieten (z.B. Feed und Newsletter)</li>
<li>Bündelung der Suche über alle Anwendungen hinweg</li>
<li>Offenheit und Kritik unterstützen und die Kulter des Web 2.0 erzeugen – Kommunikation, Zusammenarbeit und Eigenverantwortung</li>
</ul>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/herausforderung-web-20-im-unternehmen/436/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/herausforderung-web-20-im-unternehmen/436/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/wp-content/images/blogkarneval3_156x60.gif" />
		<media:content url="http://bueltge.de/wp-content/images/blogkarneval3_156x60.gif" medium="image">
			<media:title type="html">Logo 3.Business Blog Karneval</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/images/web20unternehmen.png" medium="image">
			<media:title type="html">Web 2.0 Vorraussetzungen</media:title>
		</media:content>
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>SOA - serviceorientierte Architektur und die Verständnisfrage</title>
		<link>http://bueltge.de/soa-serviceorientierte-architektur-und-die-verstaendnisfrage/416/</link>
		<comments>http://bueltge.de/soa-serviceorientierte-architektur-und-die-verstaendnisfrage/416/#comments</comments>
		<pubDate>Tue, 27 Mar 2007 10:39:12 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://bueltge.de/soa-serviceorientierte-architektur-und-die-verstaendnisfrage/416</guid>
		<description><![CDATA[SOA ist in aller Munde und im letzten Jahr war es das Thema in der Business IT-Welt. Viele sehen SOA als neue Technik und SAP will es bei jedem Kunden sehen. Das Problem des Verständnis liegt aber in der Sichtweise - SOA ist keine Technik - SOA ist ein Denkmuster. Nur wenn man sich dessen [...]]]></description>
			<content:encoded><![CDATA[<p>SOA ist in aller Munde und im letzten Jahr war es das Thema in der Business IT-Welt. Viele sehen SOA als neue Technik und SAP will es bei jedem Kunden sehen. Das Problem des Verständnis liegt aber in der Sichtweise - SOA ist keine Technik - SOA ist ein Denkmuster. Nur wenn man sich dessen bewusst ist, kann man die Vorzüge von SOA für sich entdecken.</p>
<blockquote><p>SOA steht für: Service Oriented Architecture, auch Service-orientierte Architektur, ein Ansatz zum Entwurf verteilter Systeme im Softwaredesign</p></blockquote>
<p><cite><a href="http://de.wikipedia.org/wiki/SOA">de.wikipedia.org/wiki/SOA</a></cite></p>
<p>SOA ist kein technischer Standard - SOA ist Denkmuster. SOA ist nicht schnelllebig und käuflich -  SOA ist zeitintensiv und langlebig. Dies ist Stärke und Risiko zugleich und erschwert die Durchsetzung im Unternehmen. Das Denkmuster SOA ist verknüpft Geschäftsprozesse mit der Informationstechnologie besonders eng. Und damit wird es wichtiges Mittel zur Ausführung von Prozessen. SOA wird erhalten, und entwickelt sich stetig weiter.<br />
Der Nachteil, dass man SOA nicht kaufen kann, ist die Schwäche vieler SOA-Projekte. SOA ist nicht käuflich, auch wenn es als Schlagwort auf vielen Produkten steht. Es ist nicht käuflich, weil es Paradigma ist und keine Technik, kein Produkt. Um SOA zu leben, müssen Geschäftsprozesse sauber definiert werden. Nicht das Zusammenspiel von Produkten, die den Stempel SOA tragen, ist die Lösung - sondern die Definition.<br />
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/soa-serviceorientierte-architektur-und-die-verstaendnisfrage/416/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/soa-serviceorientierte-architektur-und-die-verstaendnisfrage/416/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Konzept GUID</title>
		<link>http://bueltge.de/konzept-guid/386/</link>
		<comments>http://bueltge.de/konzept-guid/386/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 10:05:23 +0000</pubDate>
		<dc:creator>Frank Bültge</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[GUID]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://bueltge.de/konzept-guid/386</guid>
		<description><![CDATA[Ich verwende GUIDs in einem meiner größten Projekte und habe damit sehr gute Erfahrungen gemacht. Immer wieder kommt die Frage, was ist ein GUID überhaupt, deshalb nun hier eine kleine Erläuterung. Ebenso verwende ich ein GUID als Schlüssel im Plugin &#169;Feed um dem Feed einen eindeutigen String zuzufügen und damit nach Contentdiebstahl zu suchen. Ein [...]]]></description>
			<content:encoded><![CDATA[<p>Ich verwende GUIDs in einem meiner größten Projekte und habe damit sehr gute Erfahrungen gemacht. Immer wieder kommt die Frage, was ist ein GUID überhaupt, deshalb nun hier eine kleine Erläuterung. Ebenso verwende ich ein GUID als Schlüssel im <a href="http://bueltge.de/wp-feed-plugin/204">Plugin &copy;Feed</a> um dem Feed einen eindeutigen String zuzufügen und damit nach Contentdiebstahl zu suchen.</p>
<blockquote><p>Ein Globally Unique Identifier (GUID) bzw. ein Universally Unique Identifier (UUID) ist eine global eindeutige Zahl, die in verteilten Computersystemen zum Einsatz kommt.</p></blockquote>
<p>GUID, auch bekannt als UUID - Universally Unique Identifier - ist 128 Bit lang (32 Zeichen, besteht aus einer 16-Byte-Zahl), feste Größe und ist weltweit gültig für einen Registrierungsprozess. Es wird keine zentralisierte Berechtigung angefordert, um GUIDs zu erzeugen, deshalb kann die Erzeugung vollständig automatisiert werden.</p>
<p>Jede GUID ist praktisch einmalig. Die Wahrscheinlichkeit, dass zwei gleiche GUIDs erzeugt werden, ist sehr gering.</p>
<p>Die interne Darstellung eines UUID ist eine spezifische Sequence der Bits im Speicher. Die korrekte Darstellung des UUID als URN oder als menschliche lesbare Zeichenkette macht es erforderlich, die Bit-Sequence in einen String zu wandeln.<br />
Jedes GUID wird als Integer (Ganzzahl) behandelt und mit Nullen aufgefüllt, zu einer hexadezimalen Zeichenkette. Die hexadezimalen Werte „a“ bis „f“ werden als Kleinbuchstaben ausgeben und sind nicht Case-Sensitive, sind also von Groß- und Kleinschreibung unabhängig.</p>
<h3>Formale Darstellung des GUID</h3>
<pre>
      UUID                   = time-low "-" time-mid "-"
                               time-high-and-version "-"
                               clock-seq-and-reserved
                               clock-seq-low "-" node
      time-low               = 4hexOctet
      time-mid               = 2hexOctet
      time-high-and-version  = 2hexOctet
      clock-seq-and-reserved = hexOctet
      clock-seq-low          = hexOctet
      node                   = 6hexOctet
      hexOctet               = hexDigit hexDigit
      hexDigit               = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
                               "a" / "b" / "c" / "d" / "e" / "f" /
                               "A" / "B" / "C" / "D" / "E" / "F"
</code></pre>
<h4>Beispiel eines UIDD als URN</h4>
<p><code>urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6</pre>
<h3>Beispielhafte Darstellung im XML</h3>
<pre><code>
<Reference>
    <!--Merkmal-->
    <GUID>1bdf546c46bb3b4ce14d52ceecf5e99f</GUID>
</Reference>
</code></pre>
<h3>Erzeugung mit PHP</h3>
<p>Einfache Lösung mit Funktion <em>unigid</em>, die allerdings keinen Zufallsanteil besitzt.</p>
<pre><code>md5 (uniqid (""));</pre>
<p>Deshalb ist die Erzeugung durch eine Koppelung mit Funktion <em>rand</em> wesentlich besser.</p>
<pre><code>md5 (uniqid (rand()));</pre>
<h3>Weiterführende Informationen</h3>
<ul>
<li><a href="http://ietf.org/rfc/rfc4122.txt">A Universally Unique IDentifier (UUID) URN Namespace</a></li>
<li><a href="http://de.wikipedia.org/wiki/GUID">Globally Unique Identifier auf Wikipedia(de)</a></li>
<li><a href="http://www.javaexchange.com/aboutRandomGUID.html">GUID Generator für JAVA</a></li>
<li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample/html/_sample_mfc_GUIDGEN.asp">Microsoft GUID Generator</a></li>
</ul>
<hr />
<p><img src="http://bueltge.de/favicon.ico" alt="bueltge.de Favicon"/> <small>&copy; <a href="http://bueltge.de/">Frank B&uuml;ltge</a>, All rights reserved / Alle Rechte vorbehalten. (ID: 6e8b33de4342c4f2ca76b245199aeee8)</small></p>
<p><a href="http://bueltge.de/feed/"><img style="border: medium none ; float: left; margin-right: 10px;" src="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" alt="Feed Icon" width="34" height="34" /></a>Danke für das Abonnieren meines <strong><a href="http://bueltge.de/feed/">Feed</a></strong>! Inhalt gefällt? <a href="http://bueltge.de/wunschliste/" title="Wunschliste">Danke sagen</a> &middot; <a href="http://bueltge.de/konzept-guid/386/#writecomment" title="zu den Kommentaren dieses Artikels">Kommentieren</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bueltge.de/konzept-guid/386/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:thumbnail url="http://bueltge.de/favicon.ico" />
		<media:content url="http://bueltge.de/favicon.ico" medium="image">
			<media:title type="html">bueltge.de Favicon</media:title>
		</media:content>
		<media:content url="http://bueltge.de/wp-content/themes/black_label/images/rss.gif" medium="image">
			<media:title type="html">Feed Icon</media:title>
		</media:content>
	</item>
	</channel>
</rss>

