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

<channel>
	<title>WEBPIRATEN</title>
	<atom:link href="http://webpiraten.de/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://webpiraten.de</link>
	<description>TECHNOLOGIE-BLOG</description>
	<lastBuildDate>Wed, 03 Mar 2010 12:39:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>:nth-of-type Pseudo-Klasse macht Tabellen-Zeilen Highlighting einfach</title>
		<link>http://webpiraten.de/index.php/2010/03/nth-of-type-pseudo-klasse-macht-tabellen-zeilen-highlighting-einfach/</link>
		<comments>http://webpiraten.de/index.php/2010/03/nth-of-type-pseudo-klasse-macht-tabellen-zeilen-highlighting-einfach/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 10:51:56 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Layout & Styles]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css 3]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[klasse]]></category>
		<category><![CDATA[of type]]></category>
		<category><![CDATA[pseudo]]></category>
		<category><![CDATA[row]]></category>
		<category><![CDATA[tabelle]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=227</guid>
		<description><![CDATA[Das abwechselnd farbliche Absetzen von Tabellenzeilen in HTML kann auch mittels einer CSS 3 Pseudo Klasse umgesetzt werden.

/* heighlight jeder 2ten zeile beginnend mit der ersten */
tr:nth-of-type(2n+1) { background-color:#f7f7f7; }

/* heighlight jeder 2ten zeile beginnend mit der zweiten */
tr:nth-of-type(2n) { background-color:#f7f7f7; }

Der InternetExplorer weigert sich leider bis dato diese CSS 3 Angaben zu interpretieren.
Mehr Informationen [...]]]></description>
			<content:encoded><![CDATA[<p>Das abwechselnd farbliche Absetzen von Tabellenzeilen in HTML kann auch mittels einer CSS 3 Pseudo Klasse umgesetzt werden.</p>
<pre class="brush: css;">
/* heighlight jeder 2ten zeile beginnend mit der ersten */
tr:nth-of-type(2n+1) { background-color:#f7f7f7; }

/* heighlight jeder 2ten zeile beginnend mit der zweiten */
tr:nth-of-type(2n) { background-color:#f7f7f7; }
</pre>
<p>Der InternetExplorer weigert sich leider bis dato diese CSS 3 Angaben zu interpretieren.</p>
<p>Mehr Informationen zu CSS 3 Selektoren liefert der <a href="http://www.w3.org/TR/css3-selectors/#structural-pseudos">W3C</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2010/03/nth-of-type-pseudo-klasse-macht-tabellen-zeilen-highlighting-einfach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell Scripting Guide</title>
		<link>http://webpiraten.de/index.php/2009/12/shell-scripting-guide/</link>
		<comments>http://webpiraten.de/index.php/2009/12/shell-scripting-guide/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 16:04:51 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bin]]></category>
		<category><![CDATA[freeos]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=221</guid>
		<description><![CDATA[Hier findet Ihr den Shell Scripting Guide:
freeos.com/guides/lsst/
Dann kann man beispielsweise so kleine Helferlein zum Löschen von Logs und Caches wie diesen hier basteln:

#!/bin/bash
cd `dirname $0` # go to scripts dir
cd .. # step ahead
arr[0]='Application1/app/cache/*'
arr[1]='Application1/var/cache/*'
arr[2]='Application2/application/cache/*'
arr[3]='Application2/application/logs/*'
arr[4]='Application2/pub/tmp/*'
arr[5]='Application3/application/cache/*'
arr[6]='Application3/application/logs/*'
arr[7]='Application3/pub/tmp/*'

i=0
while [ $i -lt ${#arr[@]} ]
do

rm -rf ${arr[$i]}
echo &#34;${arr[$i]} deleted&#34;

(( i=$i+1 ))
done

]]></description>
			<content:encoded><![CDATA[<p>Hier findet Ihr den Shell Scripting Guide:</p>
<p><a href="http://www.freeos.com/guides/lsst/" target="_blank">freeos.com/guides/lsst/</a></p>
<p>Dann kann man beispielsweise so kleine Helferlein zum Löschen von Logs und Caches wie diesen hier basteln:</p>
<pre class="brush: bash;">
#!/bin/bash
cd `dirname $0` # go to scripts dir
cd .. # step ahead
arr[0]='Application1/app/cache/*'
arr[1]='Application1/var/cache/*'
arr[2]='Application2/application/cache/*'
arr[3]='Application2/application/logs/*'
arr[4]='Application2/pub/tmp/*'
arr[5]='Application3/application/cache/*'
arr[6]='Application3/application/logs/*'
arr[7]='Application3/pub/tmp/*'

i=0
while [ $i -lt ${#arr[@]} ]
do

rm -rf ${arr[$i]}
echo &quot;${arr[$i]} deleted&quot;

(( i=$i+1 ))
done
</pre>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/12/shell-scripting-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDF Dokumente mit Zend LiveDocx</title>
		<link>http://webpiraten.de/index.php/2009/11/pdf-dokumente-mit-zend-livedocx/</link>
		<comments>http://webpiraten.de/index.php/2009/11/pdf-dokumente-mit-zend-livedocx/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 09:01:18 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[docx]]></category>
		<category><![CDATA[dokument]]></category>
		<category><![CDATA[livedocx]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[pdf2html]]></category>
		<category><![CDATA[phphatesme]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=218</guid>
		<description><![CDATA[Ein sehr interessanter Ansatz zur Erzeugung von Dokumenten im Web wird bei phphatesme.com beschrieben. HTML-zu-PDF-Konvertierung und programmatischer Ansatz sind ja bekannt. Der neue Ansatz bedient sich einer SOAP Schnittstelle und Templates. Unter folgender URL gibts mehr dazu: 
phphatesme.com &#8211; PDF Dokumente mit Zend LiveDocx
]]></description>
			<content:encoded><![CDATA[<p>Ein sehr interessanter Ansatz zur Erzeugung von Dokumenten im Web wird bei <a href="http://phphatesme.com" target="_blank">phphatesme.com</a> beschrieben. HTML-zu-PDF-Konvertierung und programmatischer Ansatz sind ja bekannt. Der neue Ansatz bedient sich einer SOAP Schnittstelle und Templates. Unter folgender URL gibts mehr dazu: </p>
<p><a href="http://www.phphatesme.com/blog/webentwicklung/pdf-erzeugung-mit-dem-zend-framework/" target="_blank">phphatesme.com &#8211; PDF Dokumente mit Zend LiveDocx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/11/pdf-dokumente-mit-zend-livedocx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPBench &#8211; PHP auf dem Prüfstand</title>
		<link>http://webpiraten.de/index.php/2009/11/phpbench-php-auf-dem-pruefstand/</link>
		<comments>http://webpiraten.de/index.php/2009/11/phpbench-php-auf-dem-pruefstand/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 14:02:30 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[phpbench]]></category>

		<guid isPermaLink="false">http://webpiraten.de/index.php/2009/11/phpbench-php-auf-dem-prufstand/</guid>
		<description><![CDATA[Hier der Link zu PHPBench. Benchmarks für PHP Funktionen.
phpbench.com
]]></description>
			<content:encoded><![CDATA[<p>Hier der Link zu PHPBench. Benchmarks für PHP Funktionen.</p>
<p><a href="http://phpbench.com" target="_blank" title="phpbench.com">phpbench.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/11/phpbench-php-auf-dem-pruefstand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging mit XDebug und KCachegrind</title>
		<link>http://webpiraten.de/index.php/2009/11/debugging-mit-xdebug-und-kcachegrin/</link>
		<comments>http://webpiraten.de/index.php/2009/11/debugging-mit-xdebug-und-kcachegrin/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 17:42:52 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[XDebug]]></category>
		<category><![CDATA[code coverage]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[kcachegrind]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[stacktrace]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[var_dump]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=204</guid>
		<description><![CDATA[XDebug ist das sehr beliebte und allseits bewährte Tool, das nicht nur Stacktrace und var_dumps ausgeben kann, sondern ebenso für CodeCoverage, echtes Debuggen, Profiling und Testen mit PHPUnit gedacht ist.
XDebug kann Profiler Dateien erzeugen, die man mit KCacheGrind perfekt auswerten kann. So bleibt kein Flaschenhals in der Applikation unbemerkt.
xdebug.org
kcachegrind.sourceforge.net
]]></description>
			<content:encoded><![CDATA[<p>XDebug ist das sehr beliebte und allseits bewährte Tool, das nicht nur Stacktrace und var_dumps ausgeben kann, sondern ebenso für CodeCoverage, echtes Debuggen, Profiling und Testen mit PHPUnit gedacht ist.</p>
<p>XDebug kann Profiler Dateien erzeugen, die man mit KCacheGrind perfekt auswerten kann. So bleibt kein Flaschenhals in der Applikation unbemerkt.</p>
<p><a href="http://xdebug.org" target="_blank">xdebug.org</a><br />
<a href="http://kcachegrind.sourceforge.net">kcachegrind.sourceforge.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/11/debugging-mit-xdebug-und-kcachegrin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN-Befehle für Zwischendurch</title>
		<link>http://webpiraten.de/index.php/2009/11/svn-befehle-fuer-zwischendurch/</link>
		<comments>http://webpiraten.de/index.php/2009/11/svn-befehle-fuer-zwischendurch/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 21:58:19 +0000</pubDate>
		<dc:creator>graste</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Versionierung]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[hilfe]]></category>
		<category><![CDATA[one-liner]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=198</guid>
		<description><![CDATA[Ein paar kleine SVN-Befehle und One-liner für den Alltag:
Alle Beitragenden eines Repositories anzeigen lassen (sortiert nach Anzahl der Änderungen):

svn log -q &#124; awk '/^r/ {print $3}' &#124; sort &#124; uniq -c &#124; sort -rn

Alle Änderungen zwischen der aktuellen Arbeitskopie und der Head-Version anzeigen lassen. Sollte im Normalfall auch anzeigen, wer den Build kaputt gespielt hat. [...]]]></description>
			<content:encoded><![CDATA[<p>Ein paar kleine SVN-Befehle und One-liner für den Alltag:</p>
<p>Alle Beitragenden eines Repositories anzeigen lassen (sortiert nach Anzahl der Änderungen):</p>
<pre class="brush: bash;">
svn log -q | awk '/^r/ {print $3}' | sort | uniq -c | sort -rn
</pre>
<p>Alle Änderungen zwischen der aktuellen Arbeitskopie und der Head-Version anzeigen lassen. Sollte im Normalfall auch anzeigen, wer den Build kaputt gespielt hat. ;)</p>
<pre class="brush: bash;">
svn log -r BASE:HEAD
</pre>
<p>History eines Zweiges ausgehend vom Verzweigungspunkt anzeigen lassen:</p>
<pre class="brush: bash;">
svn log --stop-on-copy
</pre>
<p>Alle Änderungen innerhalb eines Zeitraums ausgeben lassen:</p>
<pre class="brush: bash;">
svn di -r{2009-10-23}:{2009-11-28}
</pre>
<p>ALLE Änderungen der lokalen Arbeitskopie rückgängig machen:</p>
<pre class="brush: bash;">
svn revert -R .
</pre>
<p>SVN-Informationen als XML ausgeben lassen, um einfacher Infos für Analysen und Statistiken zu erhalten/zu parsen:</p>
<pre class="brush: bash;">
svn log --xml
</pre>
<p>Noch was für Leute, die keine Angst vor&#8217;m Löschen von Externals haben: Alle Dateien, die mit ? gekennzeichnet sind (bei SVN-Status) einfach mal löschen:</p>
<pre class="brush: bash;">
svn st | grep ^\? | awk '{print $2}' | xargs rm
</pre>
<p>Und hier noch ein Befehl um alle neuen Dateien zum Repository hinzuzufügen</p>
<pre class="brush: bash;">
svn st|grep ^?|sed s/?//|xargs svn add $1
</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/11/svn-befehle-fuer-zwischendurch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eigene Configs in Agavi nutzen</title>
		<link>http://webpiraten.de/index.php/2009/11/eigene-configs-in-agavi-nutze/</link>
		<comments>http://webpiraten.de/index.php/2009/11/eigene-configs-in-agavi-nutze/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 00:15:31 +0000</pubDate>
		<dc:creator>graste</dc:creator>
				<category><![CDATA[Agavi]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[agavi]]></category>
		<category><![CDATA[ConfigHandler]]></category>
		<category><![CDATA[Konfiguration]]></category>
		<category><![CDATA[Schema]]></category>
		<category><![CDATA[Validierung]]></category>
		<category><![CDATA[XSD]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=191</guid>
		<description><![CDATA[Eigene XML-Konfigurationsdateien mit Agavi definieren, validieren und verwenden. Eine kurze Einführung mit Beispielnutzung des AgaviReturnArrayConfigHandler.]]></description>
			<content:encoded><![CDATA[<p>Für diverse Aufgaben in größeren Projekten ist es notwendig, eigene XML-Konfigurationsdateien zu nutzen. Die Definition umfangreicher Einstellungen in der settings.xml wird schnell anstrengend und das Holen der Werte per <code>AgaviConfig::get('setting.name', 'default');</code> unübersichtlich. Agavi bietet es aber an, eigene Konfigurationsdateien zu erstellen und diese nicht nur zu validieren, sondern auch zur Wiederverwendung zu cachen.<br />
In der <a href="http://www.mivesto.de/agavi/agavi-faq.html#general_22">Agavi FAQ</a> habe ich dazu mal ein Beispiel verfasst.</p>
<p>Einfach einen Config-Handler in der <code>config_handlers.xml</code> definieren:</p>
<pre class="brush: xml;">
&lt;handler pattern=&quot;%core.config_dir%/project/foo/*.xml&quot; class=&quot;AgaviReturnArrayConfigHandler&quot; /&gt;
</pre>
<p>und dann direkt in den Actions, Views und Models benutzen:</p>
<pre class="brush: php;">
if (!isset($config['baz']))
{
    throw new LogicException('baz is missing!');
}

if (isset($config['bars']))
{
    foreach ($config['bars'] as $foo =&gt; $data)
    {
        $this-&gt;doSomethingWithEach($foo, $data);
    }
}
</pre>
<p>Die XML-Datei für den obigen Code könnte beispielweise so aussehen:</p>
<pre class="brush: xml;">
&lt;ae:configurations&gt;
    &lt;ae:configuration&gt;
        &lt;baz&gt;asdf&lt;/baz&gt;
        &lt;foo&gt;-1&lt;/foo&gt;
        &lt;bars&gt;
            &lt;some&gt;...more data and xml...&lt;/some&gt;
            &lt;more&gt;...more data and xml...&lt;/more&gt;
            &lt;deep&gt;...more data and xml...&lt;/deep&gt;
            &lt;structs&gt;...more data and xml...&lt;/structs&gt;
        &lt;/bars&gt;
    &lt;/ae:configuration&gt;
    &lt;ae:configuration environment=&quot;production.*&quot;&gt;
        &lt;baz&gt;bleh&lt;/baz&gt;
        &lt;foo&gt;1&lt;/foo&gt;
    &lt;/ae:configuration&gt;
&lt;/ae:configurations&gt;
</pre>
<p>Gut zu erkennen ist der Vorteil eigener Configs: Man kann die Agavi-Features für Konfigurationsdateien nutzen und auf einfache Art und Weise environmentspezifische Einstellungen vornehmen (z.B. in &#8220;Production&#8221; andere Werte für Logdateien, URLs oder Einstellungen nutzen als während der Entwicklung oder beim Testen).</p>
<p>Ebenfalls gut zu erkennen im PHP-Code ist, dass man lauter Abfragen über die Existenz bestimmer Elemente macht, die man sich mit vernünftiger Validierung sparen kann, da invalide XML-Dokumente gar nicht erst als korrekt angesehen werden von Agavi. Um seine XML-Strukturen zu validieren definiert man per <code>validation</code> Parameter ein XML-Schema und definiert noch gleich einen eigenen ConfigHandler, den man schreibt und per <code>autoload.xml</code> bekannt macht:</p>
<pre class="brush: xml;">
&lt;handler pattern=&quot;%core.config_dir%/project/foo/*.foo.xml&quot; class=&quot;FooDefinitionConfigHandler&quot;&gt;
    &lt;validation&gt;%core.config_dir%/xsd/foo_definition.xsd&lt;/validation/&gt;
&lt;/handler&gt;
</pre>
<p>Der ConfigHandler könnte so beginnen:</p>
<pre class="brush: php;">
class FooDefinitionConfigHandler extends AgaviXmlConfigHandler
{
    // notwendige Methoden implementieren und XML-Struktur validieren...
}
</pre>
<p>Für Beispiele einfach in die in Agavi verwendeten XSDs und entsprechende ConfigHandler sehen. Viel Spaß. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/11/eigene-configs-in-agavi-nutze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nachfolgende Slashes mit mod_rewrite entfernen?</title>
		<link>http://webpiraten.de/index.php/2009/11/nachfolgende-slashes-mit-mod-rewrite-entfernen/</link>
		<comments>http://webpiraten.de/index.php/2009/11/nachfolgende-slashes-mit-mod-rewrite-entfernen/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 22:04:47 +0000</pubDate>
		<dc:creator>endorfin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod rewrite]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[ror]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[rule]]></category>
		<category><![CDATA[slash]]></category>
		<category><![CDATA[trailing]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=181</guid>
		<description><![CDATA[Mit diesem kleine Eintrag werden URLs mit einem Slash am Ende auf die gleiche URL ohne Slash am Ende geleitet. In meiner Rails Anwendung verursachten URLs mit einem Slash am Ende einen 403 &#8211; Forbidden.


RewriteEngine On
RewriteRule ^(.+)/$  $1 [R=301,L]

]]></description>
			<content:encoded><![CDATA[<p>Mit diesem kleine Eintrag werden URLs mit einem Slash am Ende auf die gleiche URL ohne Slash am Ende geleitet. In meiner Rails Anwendung verursachten URLs mit einem Slash am Ende einen 403 &#8211; Forbidden.</p>
<pre class="brush: bash;">

RewriteEngine On
RewriteRule ^(.+)/$  $1 [R=301,L]
</pre>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/11/nachfolgende-slashes-mit-mod-rewrite-entfernen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPUnit Manual &#8211; Sebastian Bergmann</title>
		<link>http://webpiraten.de/index.php/2009/10/phpunit-manual-sebastian-bergmann/</link>
		<comments>http://webpiraten.de/index.php/2009/10/phpunit-manual-sebastian-bergmann/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 22:48:25 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[bergmann]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[sebastian]]></category>
		<category><![CDATA[unit]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=179</guid>
		<description><![CDATA[Hier der komplette PHPUnit Guide um entsprechende Tests zu seiner Applikation zu schreiben. 
PHPUnit Manual
]]></description>
			<content:encoded><![CDATA[<p>Hier der komplette PHPUnit Guide um entsprechende Tests zu seiner Applikation zu schreiben. </p>
<p><a href="http://phpunit.de/manual/current/en/" target="_blank" title="PHPUnit Manual - Sebastian Bergmann">PHPUnit Manual</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/10/phpunit-manual-sebastian-bergmann/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Professionelle Softwareentwicklung mit PHP 5</title>
		<link>http://webpiraten.de/index.php/2009/10/professionelle-softwareentwicklung-mit-php-5/</link>
		<comments>http://webpiraten.de/index.php/2009/10/professionelle-softwareentwicklung-mit-php-5/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 22:40:56 +0000</pubDate>
		<dc:creator>sägefisch</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPUnit]]></category>
		<category><![CDATA[datenbanken]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[pattern]]></category>

		<guid isPermaLink="false">http://webpiraten.de/?p=174</guid>
		<description><![CDATA[Der ultimative Guide für Objektorientierung, Entwurfsmuster und Modellierung sowie fortgeschrittene Datenbankprogrammierung von Sebastian Bergmann
Professionelle Softwareentwicklung mit PHP 5
]]></description>
			<content:encoded><![CDATA[<p>Der ultimative Guide für Objektorientierung, Entwurfsmuster und Modellierung sowie fortgeschrittene Datenbankprogrammierung von Sebastian Bergmann</p>
<p><a href="http://professionelle-softwareentwicklung-mit-php5.de" target="_blank" title="Professionelle Softwareentwicklung mit PHP 5 - Sebastian Bergmann">Professionelle Softwareentwicklung mit PHP 5</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webpiraten.de/index.php/2009/10/professionelle-softwareentwicklung-mit-php-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
