<?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>Webmaid.de</title>
	<atom:link href="http://www.webmaid.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webmaid.de</link>
	<description>Programming, Testing, Publishing and more...</description>
	<lastBuildDate>Thu, 03 May 2012 06:46:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>NoClassDefFoundError unter Android &#8211; He, she, lib &#8211; das s muss mit.</title>
		<link>http://www.webmaid.de/2012/05/noclassdeffounderror-unter-android-he-she-lib-das-s-muss-mit/</link>
		<comments>http://www.webmaid.de/2012/05/noclassdeffounderror-unter-android-he-she-lib-das-s-muss-mit/#comments</comments>
		<pubDate>Thu, 03 May 2012 06:46:05 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[NoClassDefFoundError]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=396</guid>
		<description><![CDATA[Manchmal sind es die kleinen Sachen, die einem nicht sofort ins Auge fallen. Ich hatte z.B. das Problem, dass mein Projekt unter Eclipse kompiliert und mir keine Fehler angezeigt wurden, aber der Android-Emulator immer einen java.lang.NoClassDefFoundError warf. Man darf das Verzeichnis nicht lib nennen, sondern muss es libs (mit s) nennen. Nur dann tauchen die [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal sind es die kleinen Sachen, die einem nicht sofort ins Auge fallen. Ich hatte z.B. das Problem, dass mein Projekt unter Eclipse kompiliert und mir keine Fehler angezeigt wurden, aber der Android-Emulator immer einen java.lang.NoClassDefFoundError warf.</p>
<p>Man darf das Verzeichnis nicht lib nennen, sondern muss es libs (mit s) nennen. Nur dann tauchen die Libraries auch unter &#8220;Android Dependencies&#8221; auf.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2012/05/noclassdeffounderror-unter-android-he-she-lib-das-s-muss-mit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Datenschutz</title>
		<link>http://www.webmaid.de/2011/09/facebook-datenschutz/</link>
		<comments>http://www.webmaid.de/2011/09/facebook-datenschutz/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 11:11:19 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Like-Button]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=382</guid>
		<description><![CDATA[Derzeit steht der Facebook &#8211; Button unter Beschuss der Datenschützer. Um das Problem zu umgehen, dass bereits beim Betreten der eigenen Seite Daten an Facebook geliefert werden kann man einen einfachen Workaround bauen. Bei diesem muss der Nutzer zwar einmal mehr klicken, aber der Vorteil ist dafür auch, dass die Seite schneller lädt. &#60;span id="facebook.placeholder" [...]]]></description>
			<content:encoded><![CDATA[<p>Derzeit steht der Facebook &#8211; Button unter Beschuss der Datenschützer. Um das Problem zu umgehen, dass bereits beim Betreten der eigenen Seite Daten an Facebook geliefert werden kann man einen einfachen Workaround bauen. Bei diesem muss der Nutzer zwar einmal mehr klicken, aber der Vorteil ist dafür auch, dass die Seite schneller lädt.<br />
<!-- more --></p>
<pre>
&lt;span id="facebook.placeholder" onclick="this.innerHTML='HTML für
Iframe von Facebook';"&gt;Facebook&lt;/span&gt;
</pre>
<p>Man muss bei dem HTML von Facebook lediglich die &#8221; durch &amp;quot; ersetzen, damit es nicht zur Fehldarstellung kommt.</p>
<p>Hierbei handelt es sich um die einfachste Variante, die man beliebig gestalten kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2011/09/facebook-datenschutz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML in Java verarbeiten</title>
		<link>http://www.webmaid.de/2011/08/html-in-java-verarbeiten/</link>
		<comments>http://www.webmaid.de/2011/08/html-in-java-verarbeiten/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 05:36:49 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=376</guid>
		<description><![CDATA[HTML ist ja leider kein XML und so gibt es immer wieder Probleme, wenn man versucht eine HTML-Seite aus der realen Welt zu verarbeiten; dabei klappt es mit dem DOM in einem Browser doch ganz gut, nur ist der Browser darauf spezialisiert die realen Seiten zu parsen. In Java übernimmt dies z.B. jsoup jsoup: Java [...]]]></description>
			<content:encoded><![CDATA[<p>HTML ist ja leider kein XML und so gibt es immer wieder Probleme, wenn man versucht eine HTML-Seite aus der realen Welt zu verarbeiten; dabei klappt es mit dem DOM in einem Browser doch ganz gut, nur ist der Browser darauf spezialisiert die realen Seiten zu parsen. In Java übernimmt dies z.B. jsoup<br />
<span id="more-376"></span><br />
<a href="http://jsoup.org/" target="_blank">jsoup: Java HTML Parser</a> versucht sämtliche Seiten zu parsen, um die Bestandteile dann mittels DOM und jquery zur Weiterverarbeitung anzubieten. </p>
<p>Um z.B. alle Links eines HTML-Dokuments über den DOM-Weg zu erhalten reichen die folgenden Zeile Java-Code:</p>
<pre>
Document doc = Jsoup.parse(html);
Elements links = content.getElementsByTag("a");
for (Element link : links) {
  String linkHref = link.attr("href");
  String linkText = link.text();
}
</pre>
<p>Eine weitere Möglichkeit wäre (mittels CSS/Jquery Selector):</p>
<pre>
Document doc = Jsoup.parse(html);
Elements links = doc.select("a[href]"); // a with href
</pre>
<p>Um unsauber definierte HTML-Dokumente einfach aufzuräumen kann man sich auch noch den <a href="http://htmlcleaner.sourceforge.net/" target="_blank">angucken</a>. Nach dem Aufräumen kann man über Standard-XML-Bibliotheken auf die Struktur zugreifen und muss &#8220;nichts neues&#8221; lernen oder kann die Dokumente in die gegebene Projektstruktur einfach einbinden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2011/08/html-in-java-verarbeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die &#8220;App-Markets&#8221; aus Sicht der Entwickler</title>
		<link>http://www.webmaid.de/2011/08/die-app-markets-aus-sicht-der-entwickler/</link>
		<comments>http://www.webmaid.de/2011/08/die-app-markets-aus-sicht-der-entwickler/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 03:00:11 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=365</guid>
		<description><![CDATA[Eine kostenlose App veröffentlichen ist immer mit Kosten verbunden. Wie hoch diese Kosten im einzelnen sind, wird in diesem Artikel erläutert. Android Market, Microsoft App Hub, Apple Appstore und Nokia Ovi Store bieten alle die Möglichkeit kostenlose Apps zu veröffentlichen.]]></description>
			<content:encoded><![CDATA[<p>Will man eine Mobile App entwickeln, muss man sich zuerst für den entsprechenden App-Market anmelden. Dieser Schritt geht gleich ins Portemonnaie unabhängig davon, ob man eine kostenlose App anbietet oder ob man mit dieser Mobile App auch Geld verdienen will. Eine gute Idee für die Allgemeinheit geht also auf Kosten des Ideengebers.</p>
<p>In diesem Beitrag vergleiche ich nun die Kosten für die App-Markets und versuche die dafür gebotene Leistung zu vergleichen.<br />
<span id="more-365"></span><br />
In dem ersten Teil gehe dieses Artikels gehe ich erstmal auf die Kosten ein, wenn man eine kostenlose App in den Markt stellen will. Im zweiten Teil des Artikels beleuchte ich dann die Provisionen/Kosten für kostenpflichtige Apps in den jeweiligen Markets.</p>
<h2>Android Market</h2>
<p>Die Anmeldung zum <a href="https://market.android.com/publish/signup" target="_blank">Android Market</a> kostet einmalig 25,00 USD (zum Zeitpunkt des Artikels ca. 18 EUR). Die entsprechenden Vereinbarungen, die man akzeptiert findet man auf der Anmeldeseite in <a href="http://www.android.com/us/developer-distribution-agreement.html" target="_blank">englischer Sprache</a>. Vor der Bezahlung wird man auch noch einmal auf die <a href="https://checkout.google.com/termsOfService?type=BUYER" target="_blank">deutschen Nutzungsbedingungen</a> hingewiesen. Wie bei so ziemlich allen Diensten von Google braucht man auch hier ein kostenloses Google-Konto. Es gibt keine ersichtliche Einschränkung bzgl. der Anzahl der Veröffentlichungen im Android Market.</p>
<h2>Microsoft App Hub</h2>
<p>Bei Microsoft kriegt man eigentlich mehr als man will. Um eine kleine Anwendung für Windows Phone 7 zu entwickeln muss man sich beim <a href="http://create.msdn.com/en-us/home/membership" target="_blank">App Hub</a> anmelden. Für 99 USD pro Jahr darf man dann 100 free Apps (+ beliebig viele kostenpflichtige Apps) für Windows Phone und 10 Games für Xbox Live Indie Games veröffentlichen. Im Gegensatz zum Android-Market hat man hier also nicht nur einmalige Kosten, sondern jährliche! Will man seine kleine Idee also an <del>den Mann</del>die Frau bringen, sollte man sich überlegen, wie man die 99 USD pro Jahr finanzieren kann.</p>
<h2>Apple App-Store</h2>
<p>Um eine App für das iOS (iPhone, IPad, IPod touch) veröffentlichen zu können, muss man das <a href="http://developer.apple.com/programs/ios/" target="_blank">iOS Developer Program</a> beitreten. Die Preise sind genauso hoch, wie bei Microsoft (99 USD pro Jahr). Im Gegensatz zu dem Microsoft &#8220;App Hub&#8221; gibt es hier jedoch scheinbar keine Beschränkung in der Anzahl der kostenlosen Apps.</p>
<h2>Nokia Ovi Store</h2>
<p>Für den <a href="http://info.publish.ovi.com/" target="_blank">Nokia Ovi Store</a> für Symbian Anwendungen kostet die Anmeldung lediglich 1 EUR. Leider konnte ich ohne kostenpflichtige Anmeldung keine Informationen finden, was diese Anmeldegebühr alles beinhaltet.</p>
<h2>Fazit</h2>
<p>Alle vier großen Anbieter bieten einen Appstore zum Veröffentlichen kostenlose Apps. Leider sind die Kosten mit 99 USD pro Jahr nicht gerade wenig und man sollte sich wirklich Gedanken machen, ob man diese nicht durch Werbeeinblendungen kompensiert. Beim Android-Market sind die Kosten mit 25 USD schon sehr günstig. Unschlagbar ist jedoch der Nokia OVI Store mit einer einmaligen Anmeldegebühr von 1 EUR.</p>
<p>Für eine reine kostenlose App ohne kommerziellen Gedanken sollte man also auf SymbianOs und AndroidOS setzen. Mit diesen beiden Betriebssystemen hat man dann auch laut Gartner <a href="http://www.gartner.com/it/page.jsp?id=1764714" target="_blank">65,5% der verkauften Smartphones</a> abgedeckt.</p>
<p>Mit der Entwicklung für iOS würde man noch einmal 18.2% abdecken; hierbei muss man jedoch beachten, dass das SDK nur unter einem MacOSX verfügbar ist.</p>
<p>Scheinbar wollen Microsoft und Apple auch bei kostenlosen Apps mitverdienen, da Sie glauben, dass jede App in irgendeiner Art und Weise Umsatz generiert. Google verdient im Gegensatz zu den anderen Anbietern bei den kostenlosen Apps wiederum bei der Werbung mit (durch Admob). Wie Nokia Umsatz generiert mit kostenlosen Apps ist nicht ersichtlich, evtl. wollen Sie das gar nicht?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2011/08/die-app-markets-aus-sicht-der-entwickler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: SEO-nofollow für BlogRoll</title>
		<link>http://www.webmaid.de/2010/09/wordpress-seo-nofollow-fur-blogroll/</link>
		<comments>http://www.webmaid.de/2010/09/wordpress-seo-nofollow-fur-blogroll/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 13:02:26 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=345</guid>
		<description><![CDATA[Um die Links im Blogroll mit nofollow zu versehen, kann man entweder ein Plugin installieren, welches dies standardmässig hinzufügt oder mit ein paar kleinen Änderungen in WordPress die Funktionalität alleine hinzufügen. In WordPress muss man die Datei wp-admin/includes/meta-boxes.php anpassen. Ihr solltet, falls ihre doch eine andere Version habt, vorher ein Backup der Datei machen. In [...]]]></description>
			<content:encoded><![CDATA[<p>Um die Links im Blogroll mit nofollow zu versehen, kann man entweder ein Plugin installieren, welches dies standardmässig hinzufügt oder mit ein paar kleinen Änderungen in WordPress die Funktionalität alleine hinzufügen.<br />
<span id="more-345"></span><br />
In WordPress muss man die Datei wp-admin/includes/meta-boxes.php anpassen. Ihr solltet, falls ihre doch eine andere Version habt, vorher ein Backup der Datei machen.</p>
<p>In der Zeile 683 (Worpress V2.9.1) fügt ihr nun den folgenden Code hinzu:</p>
<pre><code>&lt;!-- Change for nofollow --&gt;
&lt;tr&gt;
	&lt;th scope="row"&gt; &lt;?php _e('seo') ?&gt; &lt;/th&gt;
	&lt;td&gt;&lt;fieldset&gt;&lt;legend class="screen-reader-text"&gt;&lt;span&gt; &lt;?php _e('seo') ?&gt; &lt;/span&gt;&lt;/legend&gt;
		&lt;label for="nofollow"&gt;
		&lt;input class="valinp" type="checkbox" name="nofollow" value="nofollow" id ="nofollow" &lt;?php xfn_check('nofollow', 'nofollow'); ?&gt; /&gt;
		&lt;?php _e('SEO for nofollow') ?&gt;&lt;/label&gt;
	&lt;/fieldset&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;!-- Change for nofollow --&gt;
</code></pre>
<p>Nach dieser kleinen Änderung könnt ihr auf der normalen Links->Edit (Add New) nun auch das nofollow &#8211; Attribute in das rel &#8211; Tag einbauen lassen.<br />
<strong>Update</strong>: Für die aktuelle Worpress-Version 3.0.3 müsst ihr das oben angegebene Markup in Zeile 750 einpflegen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2010/09/wordpress-seo-nofollow-fur-blogroll/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>IP zu Land/Region zuordnen</title>
		<link>http://www.webmaid.de/2010/09/ip-zu-landregion-zuordnen/</link>
		<comments>http://www.webmaid.de/2010/09/ip-zu-landregion-zuordnen/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 21:45:23 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=329</guid>
		<description><![CDATA[Oft ist es interessant die IP des Besuchers zu einem Land zuordnen zu können, um evtl. gleich eine Vorauswahl zu treffen, welche Resultate für den Besucher interessant sein könnten. In diesem Artikel werden mehrere Wege aufgezeigt, wie dies zu erreichen ist. Der RIPE-Weg Man kann mittels whois die Daten vom RIPE zu einer IP abfragen. [...]]]></description>
			<content:encoded><![CDATA[<p>Oft ist es interessant die IP des Besuchers zu einem Land zuordnen zu können, um evtl. gleich eine Vorauswahl zu treffen, welche Resultate für den Besucher interessant sein könnten. In diesem Artikel werden mehrere Wege aufgezeigt, wie dies zu erreichen ist.<br />
<span id="more-329"></span></p>
<h2>Der RIPE-Weg</h2>
<p>Man kann mittels <a href="http://www.manpagez.com/man/1/whois/" target="_blank">whois</a> die Daten vom RIPE zu einer IP abfragen. Hierzu ruft man whois <ip> auf und kann dann z.B. die Ausgabe auswerten. Hat man whois nicht installiert, kann man die Anfrage über die Weboberfläche vom RIPE durchführen. Hierzu ruft man einfach die URL http://www.db.ripe.net/whois?searchtext=&lt;ip&gt; auf; die Antwort kann man dann auch entsprechend auswerten.</p>
<h2>GeoIP</h2>
<p>Die Firma <a href="http://www.maxmind.com/app/geoip_features" target="_blank" rel="nofollow">Maxmind</a> bietet die Daten gegen Bezahlung an. Die Preise beginnen bei 50 US$ zzgl. 144 US$ pro Jahr. </p>
<h2>IP Address Locator</h2>
<p>Die Firma GeoBytes bietet einen kostenlosen Dienst an, der auch ausdrücklich mittels PHP angesprochen werden darf. Zusätzlich gibt es auch eine Lizenz, wenn das Aufkommen wohl höher liegen sollte. Die ersten 20 Anfragen pro Stunde sind kostenlos danach zahlt man 10000 Anfragen 10 US$ ohne Grundgebühr oder monatlichen Kosten. Vor allem die Einbindung in PHP ist relativ komfortabel</p>
<pre><code>$tags = get_meta_tags('http://www.geobytes.com/IpLocator.htm?GetLocation&#038;template=php3.txt&#038;IpAddress=192.168.0.20, 127.0.0.1');
print $tags['city'];  // city name</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2010/09/ip-zu-landregion-zuordnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EverCookie &#8211; Nicht mit mir und FireFox</title>
		<link>http://www.webmaid.de/2010/09/evercookie-nicht-mit-mir-und-firefox/</link>
		<comments>http://www.webmaid.de/2010/09/evercookie-nicht-mit-mir-und-firefox/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 10:34:27 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Administration & OS]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Zombie-Cookie]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/2010/09/evercookie-nicht-mit-mir-und-firefox-4-x/</guid>
		<description><![CDATA[Zombie-Cookies verhindern im FireFox.]]></description>
			<content:encoded><![CDATA[<p>Derzeit macht eine Lücke die Runde, dass man einen fast unlöschbaren Cookie (Zombie-Cookie) setzen kann; im aktuellen FireFox funktioniert davon zwar auch eine Variante, aber die lässt sich umgehen, sofern man keine &#8220;Offline&#8221;-Browser-Anwendungen nutzen möchte.<br />
<span id="more-323"></span><br />
Um das Problem zu beseitigen gibt man in der Adresszeile &#8220;about:config&#8221; ein und bestätigt den nachfolgenden Sicherheitsdialog. Nachdem man nun die Liste aller Parameter sieht kann man diese nach dem folgenden Wert filtern oder diesen Wert von Hand suchen: dom.storage.enabled (s. a. <a href="https://developer.mozilla.org/en/dom/storage">Mozilla Developer Center</a>).</p>
<p>Dieser Wert muss nun auf false gestellt werden. Will man testen, ob man evtl. noch die max. Cookie-Lebenszeit oder ähnliches einstellen soll, kann man dies auf der Seite von <a href="http://samy.pl/evercookie/" target="_blank">Samy Kankar</a> testen.</p>
<p>Wer mehr über das Thema Web Storage erfahren will, kann dies auf den <a href="http://dev.w3.org/html5/webstorage/" target="_blank">offiziellen Seiten des W3C</a>s nachlesen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2010/09/evercookie-nicht-mit-mir-und-firefox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quicky: CakePHP mag keine Tabellen mit dem Namen files</title>
		<link>http://www.webmaid.de/2010/09/quicky-cakephp-mag-keine-tabellen-mit-dem-namen-files/</link>
		<comments>http://www.webmaid.de/2010/09/quicky-cakephp-mag-keine-tabellen-mit-dem-namen-files/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 06:21:49 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[CakePHP]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/2010/09/quicky-cakephp-mag-keine-tabellen-mit-dem-namen-files/</guid>
		<description><![CDATA[Wenn ihr also eure Tabelle files nennt und dann eine Menge von Warnings erhaltet, dann liegt das nicht an irgendeinem typo oder ähnlichem, sondern wohl daran, dass CakePHP diesen Namen für sich beansprucht.]]></description>
			<content:encoded><![CDATA[<p>Wenn ihr also eure Tabelle files nennt und dann eine Menge von Warnings erhaltet, dann liegt das nicht an irgendeinem typo oder ähnlichem, sondern wohl daran, dass CakePHP diesen Namen für sich beansprucht. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2010/09/quicky-cakephp-mag-keine-tabellen-mit-dem-namen-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testgetriebene Entwicklung &#8211; anfangs mehr, später viel mehr</title>
		<link>http://www.webmaid.de/2010/09/testgetriebene-entwicklung-anfangs-mehr-spater-viel-mehr/</link>
		<comments>http://www.webmaid.de/2010/09/testgetriebene-entwicklung-anfangs-mehr-spater-viel-mehr/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 18:50:33 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JUnit]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/?p=308</guid>
		<description><![CDATA[Bei der testgetriebenen Entwicklung handelt es um eine Methode, die in der agilen Entwicklung von Computerprogrammen angewendet werden kann. Wie bei allen Methoden gibt es auch für die testgetriebene Entwicklung Vor- und Nachteile. Am Anfang des Projektes investiert man mehr in die Entwicklungszeit, erhält dafür aber auch mehr Softwarequalität und als Entwickler mehr Freizeit während [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der testgetriebenen Entwicklung handelt es um eine Methode, die in der agilen Entwicklung von Computerprogrammen angewendet werden kann. Wie bei allen Methoden gibt es auch für die testgetriebene Entwicklung Vor- und Nachteile. Am Anfang des Projektes investiert man mehr in die Entwicklungszeit, erhält dafür aber auch mehr Softwarequalität und als Entwickler mehr Freizeit während der Testphase.<br />
<span id="more-308"></span><br />
Entscheidet man sich für die testgetriebene Entwicklung, muss man sich vorab Gedanken um das Testframework machen. In der Java-Welt wird hier die Wahl sehr wahrscheinlich auf <a href="http://www.junit.org/" target="_blank">JUnit</a> fallen. Weiterhin muss bei der Projektplanung auch mehr Aufwand für die Entwicklung der Komponenten berücksichtigt werden, da man zusätzlich noch die Tests schreiben muss, die eine gewisse Testabdeckung erreichen sollten.</p>
<p>Man kann die testgetriebene Entwicklung jedoch gleich Nutzen um das Know-How für die entsprechende fachliche Funktionalität auf zwei Personen zu übertragen und mittels Paarprogrammierung die Aufgaben so aufteilen, dass ein Entwickler die Tests schreibt und der andere Entwickler die eigentliche Umsetzung schreibt; die Rollen sollen jedoch regelmäßig wechseln, da Testfälle schreiben nicht zu den Favoriten in der Entwicklung gehören. Durch dieses Vier-Augen-Prinzip kann man die Softwarequalität steigern, da die fachlichen Anforderungen von zwei Entwicklern überdacht werden und man so evtl. Missverständnisse frühzeitig aufdecken kann. Eine Paarprogrammierung ist jedoch bei der testgetriebenen Entwicklung nicht vorgeschrieben, sondern erhöht lediglich weiter die Softwarequalität und &#8220;überwacht&#8221; die Umsetzung der geforderten Unit-Tests. Die Partner spornen sich gegenseitig an und können auch voneinander etwas lernen (Mentoring).</p>
<p>Der erhöhte Aufwand bei der Entwicklung wird sich durch die gesteigerte Softwarequalität dann bei den System- und Integrationstest, sowie durch eine geringere Fehlermenge beim Kunden kompensieren, vorausgesetzt man setzt konsequent für die Module die entsprechenden Unit-Tests um. Je später ein Fehler gefunden wird, desto teurer wird die Behebung.</p>
<p>Durch die konsequente Erstellung von Tests für einzelnen Funktionalitäten (Units) wird in den meisten Fällen eine höhere Modularität der fertigen Software erreicht. In C würde eine Unit einer Funktion entsprechen, in objektorientieren Sprachen eine Klasse mit ihren Methoden.</p>
<p>Da jeder erstellte Code sofort getestet wird, können Fehler frühzeitig aufgedeckt und entsprechend schnell und kostengünstig behoben werden. Bei einem späteren Refactoring kann man sofort erkennen, ob die Anwendung noch fehlerfrei funktioniert, da die Tests einen Großteil der Funktionalität sofort automatisiert prüfen können.</p>
<p>Um einen messbaren Erfolg mit der testgetriebenen Entwicklung zu erreichen und nicht nur auf den erhöhten Aufwand sitzen zu bleiben, sollte man eine die Testabdeckung automatisiert prüfen lassen. Wenn man JUnit zum Testen genutzt hat, kann man hierfür z.B. <a href="http://nounit.sourceforge.net/" target="_blank">NoUnit</a> nutzen oder sich einen Überblick auf <a href="http://java-source.net/open-source/code-coverage" target="_blank">Java-Source.net</a> verschaffen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2010/09/testgetriebene-entwicklung-anfangs-mehr-spater-viel-mehr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amiga ONE X1000 &#8211; Der Sommer ist bald vorbei</title>
		<link>http://www.webmaid.de/2010/07/amiga-one-x1000-der-sommer-ist-bald-vorbei/</link>
		<comments>http://www.webmaid.de/2010/07/amiga-one-x1000-der-sommer-ist-bald-vorbei/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 07:12:10 +0000</pubDate>
		<dc:creator>author</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Amiga]]></category>

		<guid isPermaLink="false">http://www.webmaid.de/2010/07/amiga-one-x1000-der-sommer-ist-bald-vorbei/</guid>
		<description><![CDATA[Der Amiga ONE X1000 nähert sich seiner Fertigstellung. Das Kernstück des Rechners &#8211; Motherboard &#8211; soll noch einmal überarbeitet worden sein und nun finalisiert und für den BETA-Test produziert werden. Am 24. Juli 2010 ist der X1000 auf dem Amiga-Event 2010 in Essen zu bestaunen. Das Amiga OS wurde scheinbar weitestgehend angepasst, so dass es [...]]]></description>
			<content:encoded><![CDATA[<p>Der Amiga ONE X1000 nähert sich seiner Fertigstellung. Das Kernstück des Rechners &#8211; Motherboard &#8211; soll noch einmal überarbeitet worden sein und nun finalisiert und für den BETA-Test produziert werden.<br />
<span id="more-305"></span><br />
Am 24. Juli 2010 ist der X1000 auf dem <a href="http://www.amiga-event.de/index.html" target="_blank">Amiga-Event</a> 2010 in Essen zu bestaunen. Das Amiga OS wurde scheinbar weitestgehend angepasst, so dass es auch vernünftig mit der gegebenen Hardware läuft.</p>
<p>Es wird erwähnt, dass auf der Messe zwei Amiga X1000 Systeme zu sehen sind &#8211; ob zwei gleiche oder unterschiedliche Versionen geht leider nicht aus den Neuigkeiten hervor (zumal bis jetzt immer nur die Rede von einer Spezifikation war); ob auf so einer Messe jedoch ein, zwei oder n Computer stehen ist jedoch sonst irrelevant.</p>
<p>Nachtrag (22. September 2010): Auf der Webseite zum Amiga ONE X1000 wurde mitlerweile der Erscheinungszeitraum von Summer 2010 auf late 2010 geändert. Hoffen wir, dass es die letzte Änderung bleibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmaid.de/2010/07/amiga-one-x1000-der-sommer-ist-bald-vorbei/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

