<?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>PhiLIOsoph &#187; PC</title>
	<atom:link href="http://www.robertnitsch.de/category/pc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.robertnitsch.de</link>
	<description>Ansichten, Erlebnisse und Werke eines Heranwachsenden</description>
	<lastBuildDate>Sat, 07 Aug 2010 10:00:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>RFA: Ein rekursiver Algorithmus für das metrische Traveling-Salesman-Problem</title>
		<link>http://www.robertnitsch.de/2010/01/14/rfa-ein-rekursiver-algorithmus-fur-das-metrische-traveling-salesman-problem/</link>
		<comments>http://www.robertnitsch.de/2010/01/14/rfa-ein-rekursiver-algorithmus-fur-das-metrische-traveling-salesman-problem/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:30:04 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Freaky]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Schule]]></category>
		<category><![CDATA[Studium]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=483</guid>
		<description><![CDATA[In diesem Artikel stelle ich einen rekursiven Algorithmus namens RFA für das metrische bzw. geometrische Traveling-Salesman-Problem (Problem des Handlungsreisenden, auch genannt Rundreiseproblem) vor. Idee &#038; Umsetzung stammen von mir; bei meiner Recherche habe ich den Algorithmus nicht finden können. Ich gehe daher vorläufig davon aus, dass ich der erste damit bin. Bei dem hier betrachteten [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Artikel stelle ich einen rekursiven Algorithmus namens <strong>RFA</strong> für das metrische bzw. geometrische <a href="http://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden" rel="nofollow" class="liwikipedia">Traveling-Salesman-Problem</a> (<em>Problem des Handlungsreisenden</em>, auch genannt <em>Rundreiseproblem</em>) vor. Idee &#038; Umsetzung stammen von mir; bei meiner Recherche habe ich den Algorithmus nicht finden können. Ich gehe daher vorläufig davon aus, dass ich der erste damit bin. <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Bei dem hier betrachteten Traveling-Salesman-Problem geht es darum, eine möglichst kostengünstige Rundreise durch eine gegebene Menge an &#8220;Städten&#8221; (ich werde bei der Terminologie &#8220;Stadt&#8221; bleiben) zu finden, wobei jede Stadt genau 1 Mal besucht werden muss. Jede Wegstrecke zwischen 2 Städten ist mit bestimmten Reisekosten verbunden. In dem von mir gemeinten Fall des metrischen TSP entsprechen die Reisekosten genau der Luftlinie zwischen den beiden Städten. Daher habe ich die Städte der Einfachheit halber als Punkte in der Ebene modelliert (mit einer X- und einer Y-Koordinate), womit bereits erste Experimente möglich sind.</p>
<h3>Phase 1: Reduktion auf den Trivialfall des TSP</h3>
<div id="attachment_484" class="wp-caption alignright" style="width: 228px"><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/00_TSP_Trivialfall.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/00_TSP_Trivialfall.png" alt="TSP - Trivialfall mit nur 3 Städten" title="00_TSP_Trivialfall" width="218" height="201" class="size-full wp-image-484" /></a><p class="wp-caption-text">TSP - Trivialfall mit nur 3 Städten</p></div>
<p>Mein Algorithmus greift darauf zurück, dass das Rundreiseproblem für 3 Städte trivial ist, weil es nur 1 mögliche Rundreise durch 3 Städte gibt (siehe Grafik auf der rechten Seite).</p>
<p>Bei 1-3 Städten kann der Algorithmus daher direkt die Lösung zurückgeben, weil sie offensichtlich ist.</p>
<p>Bei mehr als 3 Städten arbeitet der Algorithmus in 2 Phasen.</p>
<p>In der 1. Phase werden die gegebenen Städte solange gefaltet, bis nur noch 3 Städte übrig sind.</p>
<p>Es werden jeweils 2 Städte gefaltet. Das sieht so aus, dass eine neue fiktive Stadt erzeugt wird, deren Koordinate gleich dem Mittelpunkt/Zentrum der 2 gefalteten Städte ist. Die 2 gefalteten Städte werden dann durch die neue fiktive Stadt <em>ersetzt</em>, wobei sich die fiktive Stadt ihre &#8220;Vorbilder&#8221; (<em>&#8220;Kind-Städte&#8221;</em>) merkt. Dadurch wird das Falten zugleich umkehrbar.</p>
<p>Eine naive Implementierung sieht zum Beispiel so aus, dass in jedem Schritt <em>zufällig</em> eine Stadt ausgewählt und ihr nächster Nachbar berechnet wird. Diese beiden Städte werden dann gefaltet. Der Vorgang wird so lange wiederholt, bis wie gesagt nur noch 3 Städte übrig sind. Fiktive Städte können genauso gefaltet werden wie die Ursprungs-Städte. (Dadurch ergibt sich je nach Anzahl der Städte eine beliebig tiefe &#8220;Verschachtelung&#8221;.)</p>
<div style="clear:both;"></div>
<h3>Phase 2: Entfalten der Städte mit optimaler Integration der Kind-Städte</h3>
<p>Nach der 1. Phase sind wir also beim Trivialfall mit 3 Städten angekommen. Das ist auch schon unsere vorläufige Lösung bzw. die vorläufige Rundreise.</p>
<p>In der 2. Phase werden die fiktiven Städte wieder entfaltet, wobei die vorläufige Rundreise bei jedem Schritt erhalten wird.</p>
<div id="attachment_487" class="wp-caption alignright" style="width: 228px"><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/01_TSP_Entfalten1.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/01_TSP_Entfalten1.png" alt="" title="01_TSP_Entfalten1" width="218" height="201" class="size-full wp-image-487" /></a><p class="wp-caption-text">TSP - Fiktive Stadt (blau) mit Kind-Städten (rot) in einer vorläufigen Rundreise zu Beginn von Phase 2</p></div>
<p>Betrachten wir die Grafik auf der rechten Seite. Nehmen wir an die beiden rot markierten Städte seien die Kind-Städte der blau markierten fiktiven Stadt. (Wie man auch gut sehen kann befindet sich die blaue Stadt genau im Zentrum ihrer beiden Kind-Städte.)</p>
<p>Wenn die fiktive Stadt nun in Phase 2 durch ihre Kinder ersetzt wird, dann gibt es genau 2 Möglichkeiten, wie man die beiden Kind-Städte in die gegebene Rundreise integrieren kann. Dazu muss man sich die blaue Stadt wegdenken, denn diese existiert dann ja nicht mehr.</p>
<div style="clear:both;"></div>
<div id="attachment_594" class="wp-caption alignright" style="width: 228px"><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/02_TSP_Entfalten2.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/02_TSP_Entfalten2.png" alt="TSP - Entfalten mit beiden Integrationsmöglichkeiten" title="02_TSP_Entfalten2" width="218" height="201" class="size-full wp-image-594" /></a><p class="wp-caption-text">TSP - Entfalten mit beiden Integrationsmöglichkeiten (grün = die bessere Variante)</p></div>
<p>Auf dem nächsten Bild sind die beiden Möglichkeiten eingezeichnet. Die grüne Variante ist offensichtlich die kürzere und damit auch die bessere Wahl.</p>
<p>Halten wir fest: Beim Entfalten muss der Algorithmus nach jedem Schritt entscheiden, wie er die neuen Städte in die bestehende Rundreise integriert. Dabei gilt es zwischen genau 2 Alternativen zu wählen&#8230; und das ist relativ leicht.</p>
<p>Phase 2 endet, wenn keine fiktiven Städte mehr übrig sind, die noch entfaltet werden könnten. Die Rundreise ist damit &#8220;fertig&#8221; und kann vom Algorithmus zurückgegeben werden.</p>
<div style="clear:both;"></div>
<h3>Namensgebung: RFA</h3>
<p>Weil der Algorithmus auf dem Falten &#038; Entfalten der Städte beruht taufe ich ihn <strong>RFA</strong>: <strong>Rekursiver-Falt-Algorithmus</strong> bzw. <em>recursive-fold-algorithm</em>.</p>
<h3>Beispiele</h3>
<div id="attachment_521" class="wp-caption alignleft" style="width: 299px"><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/03_TSP_Rundreise_100.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/03_TSP_Rundreise_100-289x300.png" alt="TSP - Rundreise mit 100 Städten" title="03_TSP_Rundreise_100" width="289" height="300" class="size-medium wp-image-521" /></a><p class="wp-caption-text">TSP - Rundreise mit 100 Städten</p></div>
<div id="attachment_523" class="wp-caption alignright" style="width: 299px"><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/04_TSP_Rundreise_500.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/04_TSP_Rundreise_500-289x300.png" alt="TSP - Rundreise mit 500 Städten" title="04_TSP_Rundreise_500" width="289" height="300" class="size-medium wp-image-523" /></a><p class="wp-caption-text">TSP - Rundreise mit 500 Städten</p></div>
<div style="clear:both;"></div>
<p>Die Rundreise auf der linken Seite besteht aus 100 Städten und wurde im Bruchteil einer Sekunde berechnet.</p>
<p>Die Rundreise auf der rechten Seite besteht aus 500 Städten und wurde in nur etwas mehr als 1 Sekunde berechnet.</p>
<p>Wie man an den beiden Beispielen auch gut sehen kann arbeitet der RFA keineswegs optimal, denn an der einen oder anderen Stelle überschneiden sich die Rundreisen sogar (das sicherste Zeichen dafür, dass eine Lösung suboptimal ist).</p>
<p>Nichtsdestotrotz handelt es sich in beiden Fällen um sehr gute Näherungslösungen, die zudem in kürzester Zeit berechnet wurden.</p>
<h3>Performanz &#038; Güte des RFA</h3>
<p>Der RFA befindet sich, was die Laufzeit betrifft, in der Komplexitätsklasse <strong>O(n²)</strong><sup class='footnote'><a href="#fn-483-1" id='fnref-483-1' class="liinternal">1</a></sup> (Faustregel: Verdoppelt man die Anzahl der Städte, so braucht der Algorithmus 4 Mal so lang). Die Speicherkomplexität liegt dagegen bei <strong>O(n)</strong>.</p>
<p>In allen mir bekannten Fällen stellten die vom Algorithmus erzeugten Rundreisen eine gute bis sehr gute Näherung an die optimale Lösung dar.</p>
<p>Dank seiner überragend hohen Geschwindigkeit <strong>eignet sich der RFA in meinen Augen besonders für die Berechnung von Näherungslösungen bei sehr großen Probleminstanzen mit vielen tausenden Städten</strong>. Für <a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/TSP_Rundreise_10000.png" target="_blank" class="liinternal">eine Rundreise durch 10000 Städte *klick*</a> benötigt meine eigene, sehr simple Python-Implementierung beispielsweise ca. 7 Minuten und 20 Sekunden. Gemessen an der Qualität der erhaltenen Näherungslösung ist das ziemlich schnell.</p>
<p>Ausgehend von dieser Näherungslösung kann die Rundreise dann Stück für Stück durch weitere Algorithmen dem Optimum näher gebracht werden.</p>
<p>Zum Vergleich möchte ich außerdem an meinen evolutionären Algorithmus für das TSP erinnern (habe ich damals ebenfalls in Python implementiert). Dieser brauchte bei Städtezahlen jenseits der 100 bereits ewig für eine Näherungslösung. (Für weitere Details siehe <a href="http://www.robertnitsch.de/projekte/lernleistung/" class="liinternal">Projekte -&gt; Lernleistung</a>.)</p>
<h3>Testlauf mit TSP-Instanzen der TSPLIB</h3>
<p>Für TSP &#8211; Testläufe gibt es die sogenannte <a href="http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/" class="liexternal">TSPLIB</a>. Sie enthält dutzende von TSP-Instanzen mit den unterschiedlichsten Eigenschaften. Von kleinen bis sehr großen Städte-Zahlen ist alles dabei. Das besondere ist, dass in der TSPLIB in vielen Fällen die optimale Lösung bereits enthalten ist. Damit kann man die Ergebnisse von TSP-Algorithmen überprüfen oder ihre Güte in der Praxis abschätzen.</p>
<p>Bisher habe ich meinen Algorithmus zwar hoch gelobt, aber ich bin glaubwürdige Aussagen schuldig geblieben. Daher habe ich ihn auf einige metrische TSP-Instanzen der TSPLIB angesetzt (<a href="http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/tsp/" class="liexternal">Quelle</a>):</p>
<table border="1">
<thead>
<tr>
<th>Instanz-Bezeichnung<br /><span class="tiny">(enthält Städte-Anzahl)</span></th>
<th>Gesamtlänge der<br />optimalen Rundreise<span class="tiny"> (<a href="http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/STSP.html" class="liexternal">Quelle</a>)</span></th>
<th>Lösung des RFA</th>
<th>Faktor<sup class='footnote'><a href="#fn-483-2" id='fnref-483-2' class="liinternal">2</a></sup></th>
<th>Laufzeit</th>
</tr>
</thead>
<tbody>
<tr>
<td>a280</td>
<td>2579</td>
<td>3372</td>
<td>130.75%</td>
<td>0.482s</td>
</tr>
<tr>
<td>berlin52</td>
<td>7542</td>
<td>8334</td>
<td>110.5%</td>
<td>0.022s</td>
</tr>
<tr>
<td>bier127</td>
<td>118282</td>
<td>139535</td>
<td>117.97%</td>
<td>0.106s</td>
</tr>
<tr>
<td>brd14051</td>
<td>469385</td>
<td>573675</td>
<td>122.22%</td>
<td>15m 27s</td>
</tr>
<tr>
<td>ch150</td>
<td>6528</td>
<td>7830</td>
<td>119.94%</td>
<td>0.159s</td>
</tr>
<tr>
<td>d18512</td>
<td>645238</td>
<td>779639</td>
<td>120.83%</td>
<td>26m 19s</td>
</tr>
<tr>
<td>eil51</td>
<td>426</td>
<td>524</td>
<td>123.0%</td>
<td>0.023s</td>
</tr>
<tr>
<td>pr76</td>
<td>108159</td>
<td>126086</td>
<td>116.57%</td>
<td>0.049s</td>
</tr>
<tr>
<td>pr107</td>
<td>44303</td>
<td>46578</td>
<td>105.14%</td>
<td>0.078s</td>
</tr>
<tr>
<td>pr439</td>
<td>107217</td>
<td>132462</td>
<td>123.55%</td>
<td>1.079s</td>
</tr>
<tr>
<td>pr1002</td>
<td>259045</td>
<td>323954</td>
<td>125.06%</td>
<td>5.157s</td>
</tr>
<tr>
<td>rat99</td>
<td>1211</td>
<td>1374</td>
<td>113.46%</td>
<td>0.068s</td>
</tr>
<tr>
<td>rat783</td>
<td>8806</td>
<td>10548</td>
<td>119.78%</td>
<td>3.171s</td>
</tr>
</tbody>
</table>
<p></p>
<p>Im Schnitt sind die von meinem Algorithmus berechneten Rundreisen <strong>119.14%</strong> länger als die jeweilige optimale Rundreise.</p>
<p>Damit schlägt sich der RFA bei deutlich besserer Laufzeitkomplexität mindestens genausogut wie die <a href="http://de.wikipedia.org/wiki/Christofides-Heuristik" rel="nofollow" class="liwikipedia">Christofides-Heuristik</a> bzw. der Christofides-Näherungsalgorithmus (mit einer Laufzeitkomplexität von <strong>O(n³)</strong>). Die Christofides-Heuristik hat nämlich für metrische Rundreiseprobleme eine feste Gütegarantie von 50%, d.h. sie garantiert einen Faktor von höchstens 150%, d.h. die Lösungen sind maximal 1,5fach so lang wie die optimale Lösung. (Sie ist damit der bisher beste Algorithmus mit einer festen Gütegarantie.)</p>
<p>Zwar kann ich (noch?) nicht beweisen, dass der RFA ebenfalls über eine Gütegarantie verfügt. Aber in der Praxis zeigt sich, dass der Faktor deutlich unter 150% bleibt.</p>
<h3>Übertragbarkeit auf nicht-metrische Rundreiseprobleme</h3>
<p>Der RFA ist zwar auch übertragbar auf nicht-metrische Rundreiseprobleme (das Falten von 2 &#8220;Städten&#8221; muss man dann entsprechend neu erfinden), allerdings erhoffe ich mir davon keine so guten Resultate. Der RFA beruht nunmal hauptsächlich auf der <a href="http://de.wikipedia.org/wiki/Dreiecksungleichung" rel="nofollow" class="liwikipedia">Dreiecksungleichung</a> (denn für je 2 &#8220;Städte&#8221; muss eine Art fiktive Stadt im Zentrum der 2 Städte konstruierbar sein). Je stärker diese verletzt wird, desto schlechter werden die Ergebnisse vermutlich sein. Daher eignet sich der RFA auch nur bedingt für asymmetrische TSP-Instanzen (also wenn die Reisekosten für A -&gt; B nicht immer auch den Reisekosten B -&gt; A entsprechen (bspw. bergauf vs. bergab)).</p>
<p>Ein dahingehender Test meinerseits steht aber noch aus.</p>
<h3>Verbesserungsmöglichkeiten</h3>
<p>Abgesehen von der Art der Implementierung (bis jetzt nur in Python; viel schneller wäre C++) kann man den Algorithmus selbst, d.h. seine Laufzeitkomplexität, definitiv noch weiter verbessern.</p>
<p>Ich sehe großen Spielraum in Phase 1 beim Falten der Städte. Die wesentliche Rechenleistung in Phase 1 besteht darin, zu einer gegebenen Stadt ihren nächsten Nachbarn zu finden. Das kann man deutlich beschleunigen, indem man die Städte zu Beginn von Phase 1 partitioniert (die &#8220;Landkarte&#8221; wird auf bestimmte Weise in Quadrate aufgeteilt). Dadurch muss man beim Suchen des nächsten Nachbars nicht mehr <em>alle</em> Städte berücksichtigen, sondern nur noch diejenigen Städte, die sich in den umliegenden/benachbarten Partitionen befinden. Beim Falten von 2 Städten muss dann natürlich sichergestellt werden, dass die neu erzeugte fiktive Stadt ihrerseits in die korrekte Partition eingeordnet wird.</p>
<p>Die Güte des Algorithmus kann man womöglich deutlich verbessern, indem man eine Methode entwickelt, die auf intelligente Weise die Städte faltet. In meiner naiven Implementierung geschieht die Auswahl der zu faltenden Städte nämlich <em>zufällig</em>. An dieser Stelle kann man gewiss noch Verbesserungen erzielen, indem man die Reihenfolge des Faltens nicht nur dem Zufall überlässt.</p>
<p>In Phase 2 sehe ich wenig Potenzial zur Verbesserung, weil das Entfalten &#8211; wie beschrieben &#8211; quasi optimal erfolgt. Die Reihenfolge des Entfaltens spielt jedoch mMn. wenigstens eine untergeordnete Rolle, deshalb behalte ich mir eine nähere Untersuchung von Phase 2 vor.</p>
<h3>Zusammenfassung</h3>
<p>Der von mir entwickelte Algorithmus für das metrische TSP hat eine Laufzeitkomplexität von <strong>O(n²)</strong> und eine Speicherkomplexität von <strong>O(n)</strong>. Weil er auf dem Falten &#038; Entfalten der Städte beruht und das TSP dabei (zumindest zwischenzeitlich) auf den Trivialfall reduziert, nenne ich ihn <strong>RFA: Rekursiver-Falt-Algorithmus</strong>.</p>
<p>Obwohl meine Python-Implementierung ausgesprochen naiv vorgeht und ich mir kaum Mühe gegeben habe effizienten Code zu schreiben, bewältigt sie TSP-Instanzen der TSPLIB in sehr kurzer Zeit. Die Länge der dabei gefundenen Lösungen lag im Durchschnitt nur ca. 19% über der jeweils optimalen Lösung (also Faktor 119%; der höchste Faktor betrug 130%).</p>
<p>Daher kann der RFA durchaus mit der <strong>Christofides-Heuristik</strong> &#8211; der bisher beste Algorithmus mit einer festen Gütegarantie für das metrische TSP &#8211; konkurrieren, nicht zuletzt weil diese eine deutlich schlechtere Laufzeitkomplexität von <strong>O(n³)</strong> besitzt (und überdies auch noch sehr viel komplizierter ist). Eventuell kann ich beweisen, dass auch für den RFA eine feste Gütegarantie gilt. In der Praxis schlägt er sich auf alle Fälle sehr gut.</p>
<p>Der RFA ist zwar grundsätzlich auch übertragbar auf nicht-metrische Rundreiseprobleme, allerdings hängt die Güte des RFA sehr wahrscheinlich von der Dreiecksungleichung ab. Je stärker diese verletzt wird, desto schlechter werden die Ergebnisse vermutlich sein.</p>
<p><strong>Dank seiner überragenden Geschwindigkeit eignet sich der Algorithmus in meinen Augen besonders für die Berechnung von Näherungslösungen für sehr große TSP-Instanzen mit vielen Tausend Städten.</strong></p>
<h3>Download meiner Python-Implementierung</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/RFA_demo.zip" class="lizip">RFA_demo.zip</a> (2.2 MB)</p>
<p>Der Quelltext befindet sich im Ordner &#8220;src&#8221; (die Dateien sind <strong>UTF-8</strong>-kodiert). Die im Artikel verwendeten TSPLIB-Challenges (und viele weitere) befinden sich im Ordner &#8220;TSPLIB&#8221;.</p>
<p>Die auszuführende Datei ist <strong>src/RFA_demo.py</strong>. Ich habe <a href="http://python.org/download/" class="liexternal">Python 2.6</a> verwendet, es sollte aber auch mit <strong>Python 2.5</strong> laufen.</p>
<p>In der Datei <strong>RFA_demo.py</strong> kann man auch einige Einstellungen verändern. Ich habe die entsprechenden Stellen deutlich hervorgehoben und jede Einstellung in Deutsch beschrieben (ansonsten ist alles in Englisch gehalten). Sogar Laien haben also eine faire Chance die Demonstration auf ihrem PC auszuführen.</p>
<p>Viel Spaß damit!
<div class='footnotes'>
<div class='footnotedivider'></div>
<ol>
<li id='fn-483-1'>Einen Beweis bleibe ich vorerst schuldig. Allerdings ist O(n²) naheliegend, weil der wesentliche Aufwand darin besteht während des Faltens (Phase 1) immer und immer wieder den nächsten Nachbarn zu einer Stadt zu finden. Dort sehe ich übrigens auch schon die ersten vielversprechenden Verbesserungsmöglichkeiten mittels geschickter Partitionierung der Städte (mehr dazu unter &#8220;Verbesserungsmöglichkeiten&#8221;). <span class='footnotereverse'><a href="#fnref-483-1" class="liinternal">&#8617;</a></span></li>
<li id='fn-483-2'>Der Faktor berechnet sich als &lt;RFA-Lösung&gt; / &lt;Optimale-Lösung&gt; und gibt somit die relative Länge der RFA-Lösung zur Länge der optimalen Lösung an. <span class='footnotereverse'><a href="#fnref-483-2" class="liinternal">&#8617;</a></span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2010/01/14/rfa-ein-rekursiver-algorithmus-fur-das-metrische-traveling-salesman-problem/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Datei-Backups leicht gemacht mit WinRAR</title>
		<link>http://www.robertnitsch.de/2010/01/11/datei-backups-leicht-gemacht-mit-winrar/</link>
		<comments>http://www.robertnitsch.de/2010/01/11/datei-backups-leicht-gemacht-mit-winrar/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 15:00:30 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=413</guid>
		<description><![CDATA[WinRAR kann man ganz leicht als Backup-Tool für Dateien und Verzeichnisse nutzen. Das hat einige Vorteile: Der Backup-Vorgang ist durchschaubar bzw. leicht nachvollziehbar, weil es sich um einen gewöhnlichen Packer handelt und nicht um eine spezielle Backup-Software, bei der man so genau gar nicht weiß, wie sie arbeitet (das kann ich persönlich gar nicht leiden). [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.winrar.de" class="liexternal">WinRAR</a> kann man ganz leicht als Backup-Tool für Dateien und Verzeichnisse nutzen. Das hat einige Vorteile:</p>
<ul>
<li>Der Backup-Vorgang ist durchschaubar bzw. leicht nachvollziehbar, weil es sich um einen gewöhnlichen Packer handelt und nicht um eine spezielle Backup-Software, bei der man so genau gar nicht weiß, wie sie arbeitet (das kann ich persönlich gar nicht leiden).</li>
<li>RAR-Dateien kann man (im Gegensatz zu den meisten Backup-Containern kommerzieller Backup-Software, bspw. Acronis True Image) nahezu auf jeder Plattform entpacken, weil der Entpack-Algorithmus öffentlich verfügbar ist. Das gilt natürlich auch für ZIP, 7zip und die meisten anderen Archiv-Formate.</li>
<li>Das RAR-Format unterstützt sogenannte <em>recovery records</em> (Wiederherstellungsinformationen). Kleinere Schäden an der Backup-Datei (Beispiel: ein paar Sektoren auf der Festplatte spielen verrückt) können damit behoben werden.</li>
<li>Die Verschlüsselung von RAR-Dateien erfolgt &#8211; wenn gewünscht &#8211; mit <a href="http://de.wikipedia.org/wiki/Advanced_Encryption_Standard" rel="nofollow" class="liwikipedia">AES-128</a>. Dieser Standard gilt als sicher.</li>
</ul>
<p>Im Folgenden zeige ich mit welchen Einstellungen man WinRAR für Backups optimiert.</p>
<h3>Einstellungen: &#8220;Allgemein&#8221;</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/00_Allgemein.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/00_Allgemein.png" alt="WinRAR - Allgemeine Einstellungen" title="00_Allgemein" width="452" height="411" class="alignright size-full wp-image-423" /></a></p>
<ol>
<li>Ziel-Datei: In welcher Archivdatei sollen die Dateien gesichert werden?</li>
<li>Update-Modus: Das Backup-Archiv soll mit den Quelldaten synchronisiert werden. Das bedeutet, dass neue Dateien hinzugefügt, geänderte Dateien erneuert und gelöschte Dateien auch im Backup gelöscht werden. Hierdurch werden außerdem das 2. und alle folgenden Backups stark beschleunigt, weil quasi-inkrementelle Backups gemacht werden.</li>
<li>Kompressions-Methode: Damit das Komprimieren nicht zu viel Zeit in Anspruch nimmt stellen wir die Kompression auf eine schwächere aber schnellere Stufe.</li>
<li>Authentizitätsinformationen hinzufügen: Fügt bei der Erstellung des Archivs nochmal einige allgemeine Daten wie Archivname etc. in das Archiv ein. Diese werden beim späteren Öffnen des Archivs geprüft, um grobe Manipulationen zu verhindern. Bietet zwar wenig Sicherheit, kostet aber auch nichts.</li>
<li>Wiederherstellungs-Informationen hinzufügen: Hier handelt es sich um den oben beschriebenen <em>recovery record</em>. Unter <em>Erweitert</em> kann man dieses Feature genauer konfigurieren.</li>
</ol>
<div style="clear:both;"></div>
<h3>Einstellungen: &#8220;Erweitert&#8221;</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/01_Erweitert.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/01_Erweitert.png" alt="WinRAR - Erweiterte Einstellungen" title="01_Erweitert" width="441" height="400" class="alignright size-full wp-image-431" /></a></p>
<p>Einstellungen, die sehr nützlich sind, aber dem persönlichen Gutdünken obliegen, habe ich blau eingerahmt.</p>
<p>Zu den roten Markierungen:</p>
<ol>
<li>Datenströme speichern: Sehr wichtig, wenn NTFS als Dateisystem eingesetzt wird. Einige Applikationen legen in zusätzlichen NTFS-Dateiströmen einige Informationen ab, die nicht zu den Dateiinhalten selbt gehören, aber mit den jeweiligen Dateien verknüpft sind. Es handelt sich quasi um eine Art von <em>Meta-Informationen</em>, die ohne diese Einstellungen verlorengehen würden.</li>
<li>Wiederherstellungs-Informationen: Hiermit legt man fest, wie groß der prozentuale Anteil des recovery records am Archiv sein soll. 2-5% halte ich für angemessen. Standard ist übrigens 1%.</li>
</ol>
<p>Zu den &#8220;Volumen&#8221;-Einstellungen: Diese sind nur nutzbar, wenn man das Backup-Archiv in mehrere Teilarchive aufsplittet. Dazu muss man eine Volumengröße unter &#8220;Allgemein&#8221; angeben.<br />
Jedes &#8220;Wiederherstellungs-Volumen&#8221; kann genau 1 Original-Volumen wiederherstellen, sogar dann, wenn dieses komplett verloren gegangen ist. Angenommen man hat 30 Teil-Archive (&#8220;Volumen&#8221;) und 3 Wiederherstellungsvolumen, dann dürfen bis zu 3 Volumen verlorengehen bzw. beschädigt werden. Im Zweifel lohnt sich hier ein Blick in die WinRAR-Hilfe.</p>
<div style="clear:both;"></div>
<h3>Einstellungen: &#8220;Dateien&#8221;</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/02_Dateien.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/02_Dateien.png" alt="WinRAR - &quot;Dateien&quot;" title="02_Dateien" width="452" height="411" class="alignright size-full wp-image-444" /></a></p>
<p>Der wahrscheinlich wichtigste Teil am Backup: Die zu sichernden Dateien bzw. Verzeichnisse müssen ausgewählt werden.</p>
<p>Hier kann man außerdem bestimmte Dateien bzw. Verzeichnisse vom Backup ausschließen. Bei mir gehören zum Beispiel Downloads definitiv zu den ausgeschlossenen Daten. *.tmp sowie *.bak-Dateien brauchen genausowenig gesichert zu werden.</p>
<p>Ebenfalls sehr nützlich ist es, bestimmte Dateien zwar zu sichern, aber dabei von der Kompression auszuschließen. Das macht das Backup dieser Dateien/Dateitypen deutlich schneller. Zum Beispiel macht es wenig Sinn *.rar, *.zip oder *.jpg-Dateien zu komprimieren, weil diese Dateien bereits komprimiert vorliegen. Ein paar weitere Vorschläge für diesen Filter: *.mp3 *.avi *.mpg</p>
<p>Aufpassen muss man bei der Struktur des zu erzeugenden Archivs. Ich spreche mich sehr stark für die Einstellung <em><strong>&#8220;Volle Pfade inkl. Laufwerksbuchstaben&#8221;</strong></em> aus, damit nicht nur die Daten selbst, sondern auch ihr genauer Ablageort jederzeit wiederherstellbar bzw. nachvollziehbar ist. In der Standardeinstellung gehen diese Informationen verloren und bei vielen Dateien wird das sehr schnell sehr hässlich, weil man nicht mehr unterscheiden kann, woher die Dateien/Ordner im Einzelnen gekommen sind.</p>
<div style="clear:both;"></div>
<h3>Einstellungen: &#8220;Backup&#8221;</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/03_Backup.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/03_Backup.png" alt="WinRAR - &quot;Backup&quot;" title="03_Backup" width="452" height="411" class="alignright size-full wp-image-450" /></a></p>
<p>Wie der Name sagt sind diese Einstellungen speziell für Backups vorgesehen.</p>
<p><strong>&#8220;Gemeinsam genutzte Dateien öffnen&#8221;</strong> sorgt dafür, dass WinRAR versucht, auch momentan durch andere Programme geöffnete Dateien zu sichern. Nichtsdestotrotz wird WinRAR das bei vielen Dateien mit einer Fehlermeldung quittieren. Das ist aber völlig normal.</p>
<p><strong>&#8220;Archivnamen aus folgender Maske erzeugen&#8221;</strong> hängt an den Archivnamen eine Zeichenkette an, die dynamisch zum Beispiel aufgrund der aktuellen Kalenderwoche erzeugt wird. In meinem Fall wird &#8220;yyyymm&#8221; angehängt, also z.B. &#8220;201001&#8243;. Dadurch wird maximal 1 Monat lang einunddasselbe Archiv genutzt (&#8220;RobertBackup201001.rar&#8221;). Für den nächsten Monat erzeugt WinRAR automatisch ein neues Archiv (&#8220;RobertBackup201002.rar&#8221;).<br />
Folgende Zeichen werden in der Maske akzeptiert (aus der WinRAR &#8211; Hilfe; dort findet man weitere nützliche Details):</p>
<table>
<tr>
<th>Y</th>
<td>Jahr</td>
</tr>
<tr>
<th>M</th>
<td>Monat</td>
</tr>
<tr>
<th>MMM</th>
<td>Monatsnamen (Jan, Feb, usw.)</td>
</tr>
<tr>
<th>W</th>
<td>Kalenderwoche (eine Woche beginnt mit einem Montag)</td>
</tr>
<tr>
<th>A</th>
<td>Tag der Woche (Montag ist 1, Sonntag ist 7)</td>
</tr>
<tr>
<th>D</th>
<td>Tag des Monats</td>
</tr>
<tr>
<th>E</th>
<td>Tag des Jahres</td>
</tr>
<tr>
<th>H</th>
<td>Stunden</td>
</tr>
<tr>
<th>M</th>
<td>Minuten (wird als Minuten behandelt, wenn es nach Stunden auftritt)</td>
</tr>
<tr>
<th>S</th>
<td>Sekunden</td>
</tr>
<tr>
<th>N</th>
<td>Archivnummer. WinRAR sucht nach einem bereits vorhandenen Archiv mit dem erzeugten Namen und erhöht im Falle der Existenz die Archivnummer, bis ein eindeutiger Name erzeugt wurde. Das Formatzeichen &#8216;N&#8217; wird beim Erstellen von mehrteiligen Archiven (Volumen) nicht unterstützt.</td>
</tr>
</table>
<p>Damit kann man schon eine ganze Menge erreichen. In diesem Punkt steht WinRAR kommerzieller Backup-Software in nichts nach, eher im Gegenteil. Lediglich das Löschen alter Archive geschieht nicht so leicht automatisch, da muss man schon noch selbst Hand anlegen. Aber um ehrlich zu sein lösche ich meine Backups auch viel lieber selbst&#8230;</p>
<div style="clear:both;"></div>
<h3>Kommentar hinzufügen</h3>
<p>Im letzten Reiter kann man dem Archiv einen Kommentar hinzufügen. Beispiel:</p>
<blockquote><p>In diesem Backup enthalten:<br />
C:\Users\Robert\<br />
D:\eclipse</p>
<p>Ausgeschlossen:<br />
C:\Users\Robert\Downloads *.tmp *.bak </p>
<p>Backup-Methode: Synchronisation (geänderte/neue Dateien werden hinzugefügt/überschrieben, gelöschte Dateien werden aus dem Archiv gelöscht)</p></blockquote>
<h3>Speichern der Einstellungen als Profil</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2010/01/04_Profile.png" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2010/01/04_Profile.png" alt="WinRAR - &quot;Aktuelle Einstellungen als Profil speichern...&quot;" title="04_Profile" width="452" height="411" class="alignright size-full wp-image-455" /></a></p>
<p>Nun wäre das ganze ziemlich mühselig, wenn man all diese Einstellungen jedes Mal aufs Neue festlegen müsste. Dafür bietet WinRAR sogenannte Profile an. Unter &#8220;Allgemein&#8221; kann man seine Einstellungen auf diese Weise für das nächste Mal speichern (siehe Bild auf der rechten Seite).</p>
<p><strong>Nicht vergessen im folgenden Dialog die ersten beiden Haken anzukreuzen! Außerdem empfehle ich einen Haken bei &#8220;Verknüpfung auf dem Desktop anlegen&#8221;.</strong> Diese Verknüpfung sollte man immer mit Administratorrechten ausführen (kann man in den Einstellungen derselben auch dauerhaft festlegen).</p>
<div style="clear:both;"></div>
<h3>Fazit</h3>
<p>Backups mit WinRAR sind schnell, klein, übersichtlich, leicht zu konfigurieren und sicher. Mit Hilfe der Einstellung <strong>&#8220;Archivnamen aus folgender Maske erzeugen&#8221;</strong> kann man zudem eine automatische Konsolidierung der Backups umsetzen.</p>
<p>Was will man mehr?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2010/01/11/datei-backups-leicht-gemacht-mit-winrar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtual server / VPS vs. Java: &#8220;Could not reserve enough space for object heap&#8221;</title>
		<link>http://www.robertnitsch.de/2009/12/18/virtual-server-vps-vs-java-could-not-reserve-enough-space-for-object-heap/</link>
		<comments>http://www.robertnitsch.de/2009/12/18/virtual-server-vps-vs-java-could-not-reserve-enough-space-for-object-heap/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 22:44:17 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PC]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=375</guid>
		<description><![CDATA[Today I encountered the following error message on my virtual server: Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. This error message occurred every single time Java was involved in something&#8230; Even &#8220;java -version&#8221; crashed&#8230; After several hours I figured out it [...]]]></description>
			<content:encoded><![CDATA[<p>Today I encountered the following error message on my virtual server:</p>
<blockquote><p>Error occurred during initialization of VM<br />
Could not reserve enough space for object heap<br />
Could not create the Java virtual machine.</p></blockquote>
<p>This error message occurred every single time Java was involved in something&#8230; Even &#8220;java -version&#8221; crashed&#8230;</p>
<p>After several hours I figured out it was not a problem of having too less memory but instead a problem of having too much free memory. In particular, my system (a <em>virtual</em> server) always seems to have a lot of free memory, which is in fact used by the other virtual server instances on the same physical machine. Thus, Java attempts to allocate a very big part of the memory (expecting it is not used otherwise). The memory allocation fails and Java crashes with the deceptive message &#8220;Could not reserve enough space for object heap&#8221;. At least this is my explanation so far&#8230;</p>
<h3>The solution</h3>
<p>The problem can be fixed by manually specifying the <strong>maximum</strong> heapsize. E.g., execute &#8220;java -Xmx128m -version&#8221; instead of &#8220;java -version&#8221;.</p>
<p>Since it is a pain and sometimes almost impossible to enable this commandline parameter (think of applications making use of java indirectly) you can make it the default by changing the environment variable <strong>_JAVA_OPTIONS</strong>. Either edit <em>/etc/environment</em> (persistent solution) or execute</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">export _JAVA_OPTIONS=&quot;-Xmx128m&quot;</pre></div></div>

<p>(solves the issue only for the current session).</p>
<p>It worked for me and I&#8217;m running Ubuntu 8.04 on a VPS hosted by Hosteurope.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/12/18/virtual-server-vps-vs-java-could-not-reserve-enough-space-for-object-heap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TU Darmstadt: Rückblick auf 2 Semester Informatik</title>
		<link>http://www.robertnitsch.de/2009/11/28/tu-darmstadt-ruckblick-auf-2-semester-informatik/</link>
		<comments>http://www.robertnitsch.de/2009/11/28/tu-darmstadt-ruckblick-auf-2-semester-informatik/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 15:00:52 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Studium]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=316</guid>
		<description><![CDATA[Wie man dem Willkommenstext ganz oben auf der Startseite entnehmen kann studiere ich momentan Informatik an der TU Darmstadt. Ich strebe den Abschluss M.Sc. (Master of Science) Informatik an. Inzwischen habe ich die ersten 2 Semester hinter mir, befinde mich also noch im Bachelor-Stadium; das 3. Semester hat seit einigen Wochen begonnen. Dieser Artikel soll [...]]]></description>
			<content:encoded><![CDATA[<p>Wie man dem Willkommenstext <a href="http://www.robertnitsch.de" class="liinternal">ganz oben auf der Startseite</a> entnehmen kann studiere ich momentan Informatik an der <a href="http://www.tu-darmstadt.de" class="liexternal">TU Darmstadt</a>. Ich strebe den Abschluss <strong>M.Sc.</strong> (<em>Master of Science</em>) Informatik an.</p>
<p>Inzwischen habe ich die ersten 2 Semester hinter mir, befinde mich also noch im Bachelor-Stadium; das 3. Semester hat seit einigen Wochen begonnen. Dieser Artikel soll einen kurzen Rückblick darstellen, der sich wahrscheinlich besonders für diejenigen lohnt, die ein Informatik-Studium in Betracht ziehen.</p>
<p>Hinweis: Ich gebe hier meine Sicht der Dinge wieder, also <em>meine</em> Meinung.</p>
<h3>Wintersemester 08/09</h3>
<p>Im WS 08/09 habe ich mein Informatik-Studium an der TU Darmstadt begonnen. Für diejenigen, die vllt. Informatik studieren werden, dürfte dieser Teil am spannendsten sein.</p>
<h4>Grundlagen der Informatik 1</h4>
<p>In GdI 1 gab es eine Einführung in das Programmieren. Von einer Einführung kann dabei aber kaum die Rede sein, denn es ging durchaus ziemlich in die Tiefe. Angefangen haben wir mit <strong>Scheme</strong>, einer <strong><em>funktionalen</em> Programmiersprache</strong>, die mit LISP verwandt ist und mit der ich und die meisten meiner Kommilitonen zuvor nichts zu tun gehabt haben. Funktionale Programmierung war für die meisten, mich eingeschlossen, absolutes Neuland.</p>
<p>Das war insofern ein Problem, als dass viele meiner Kommilitonen Schwierigkeiten beim Einstieg in die funktionale Programmierung hatten &#8211; nicht nur die absoluten Neulinge, sondern auch einige der Erfahreneren. Bei Scheme werden nämlich fast alle Probleme mit rekursiven Funktionen gelöst. Schleifen im klassischen Sinne stehen quasi nicht zur Verfügung. Und wie sortiert man bspw. eine Liste rekursiv, wenn man bisher nur iterative Implementierungen kennt? Erstmal gar nicht so einfach!</p>
<p>Es stellte sich jedoch sehr schnell heraus, dass die Erfahrung mit Scheme eine echte Bereicherung war. Wer GdI 1 mit einer guten Note übersteht, der dürfte hinterher keine Probleme mehr mit Rekursionen haben. <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Der zweite und geringfügig größere Teil drehte sich um <strong>Java</strong>. Das Verhältnis Scheme : Java kann man ungefähr mit 40 : 60 beschreiben. Beinhaltet waren solche Themen wie Objektorientierte Programmierung, d.h. was sind Klassen/Objekte, was ist Vererbung und wie funktioniert sie, Polymorphismus, Generische Typen (Generics) und ähnliches.</p>
<p><strong>Klausuren:</strong> Im Dezember gab es eine Semestralklausur, in der es nur um Scheme ging. Nach Ende der Lehrveranstaltungen (während der Semesterferien) gab es dann noch eine endgültige Prüfung, die zu etwa 40% aus Scheme und zu 60% aus Java-bezogenen Aufgaben bestand.</p>
<p><strong>Bewertung:</strong> Der Veranstalter ist den Studenten bei Problemen fast immer entgegengekommen, die Folien &#038; die Übungen waren gut gemacht und die Klausuren waren sehr fair. Für Einsteiger ohne Programmiererfahrung aber trotzdem ein gewaltiges Stück Arbeit!</p>
<h4>Technische Grundlagen der Informatik 1</h4>
<p>TGdI 1 beinhaltete Grundlagen der Digitaltechnik, also boolesche Algebra / boolesche Funktionen, kombinatorische und sequenzielle Logik, KV-Diagramme, digitale Schaltungen, Signalpfade, wichtige digitale Schaltungen (Multiplexer, Decoder, &#8230;), darunter auch Speicherelemente (Flipflops), Automaten (Mealy und Moore) uvm.</p>
<p><strong>Klausuren:</strong> Auch hier gab es eine Semestralklausur im Dezember und eine Prüfung am Ende des Semesters.</p>
<p><strong>Bewertung:</strong> Die Folien waren relativ gut gemacht, teilweise habe ich aber den roten Faden vermisst. Insgesamt aber immer noch sehr gut gemacht, auch die Übungen und die Klausur ließen nicht viel zu wünschen übrig. Allerdings ist der Stoff einfach einfach. Wer hier durchfällt sollte sich Gedanken machen!</p>
<h4>Mathematik für Informatiker und Wirtschaftsinformatik 1</h4>
<p>Mathematik für Inf und WInf 1 war zusammen mit FGdI 1 die einzige Herausforderung im 1. Semester. Dazu muss ich etwas weiter ausholen.</p>
<p>Inhaltlich gesehen ist Mathe 1 nicht sonderlich schwer. Im Wesentlichen geht es um die <strong>gewöhnliche Analysis</strong> (mit einstelligen Funktionen), d.h. Folgen, Reihen, Grenzwerte, Funktionen, Differential- und Integralrechnung. Jedoch wird das Ganze sehr mathematisch aufgezogen. Der Vorlesung kann man kaum folgen, die wichtigen Informationen gehen in einem Schwall unnötiger mathematischer Sätze und Beweise völlig unter. Dazu muss man sagen, dass die Veranstaltung vom Fachbereich Mathematik organisiert wird. Sie wird also auch von einem Mathematik-Professor gehalten. Das merkt man auch sehr deutlich.</p>
<p><strong>Klausuren:</strong> Es gab nur 1 Klausur am Ende des Semesters.</p>
<p><strong>Bewertung:</strong> In Mathe 1 wird relativ leichter Stoff mit mathematischen Beweisen derart aufgeblasen, dass die eigentliche Leistung darin besteht, die wenigen wichtigen Informationen zu filtern bzw. überhaupt zu erfassen, ohne sich dabei von der gigantischen Menge unnötigen Wissens, das ebenfalls vermittelt wird, erschlagen zu lassen. Die Übungen waren anfangs schwer, weil man mathematische Beweise führen musste. Und das ist erstmal schwer bis unmöglich. Später wurden die Übungen aber besser. Die Klausur war schließlich ausgesprochen fair, aber vor allem eines: leichter, als alle erwartet hatten. Trotzdem sind hier viele gescheitert. <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<h4>Formale Grundlagen der Informatik 1</h4>
<p>FGdI 1 ist mir bis heute noch ein Rätsel. Wie man dem Titel der Veranstaltung ansehen kann geht es hier um die <strong>theoretische Informatik</strong>.</p>
<p>Rätsel deshalb, weil im Grunde genommen extrem einfacher Stoff (Sprachen, Reguläre Ausdrücke, Grammatiken, Chomsky-Hierarchie und dazugehörend <abbr title="deterministic finite automaton">DFAs</abbr>, <abbr title="non-deterministic finite automaton">NFAs</abbr>, <abbr title="pushdown automaton">PDAs</abbr>) dermaßen mit formaler Sprache aufgeblasen wird, dass man sich erstmal immer fragt: &#8220;WHAT THE FUCK SOLL DAS HEISSEN?&#8221; Und wenn man es dann verstanden hat, denkt man sich: &#8220;Ist ja total easy. -.-&#8221;</p>
<p>Die Verantwortung liegt hier nicht nur bei den Veranstaltern, denn schließlich muss man sich an die formale Sprache erst gewöhnen, bis man sie wirklich verstehen kann. Aber es gab quasi keinerlei Erklärendes. Im Wesentlichen wurde wild drauflos definiert und wir mussten dann erraten, wozu die einzelnen Definitionen jeweils im Gesamtzusammenhang gebraucht wurden. Wie man es auch dreht und wendet: Wenn man gerade erst mit dem Studium anfängt, dann ist das eine echte Herausforderung!</p>
<p><strong>Klausuren:</strong> Es gab wie in Mathe 1 nur eine Klausur am Ende des Semesters. :/</p>
<p><strong>Bewertung:</strong> Während die Vorlesung inkl. Folien ziemlich bescheiden war, so waren die Übungen einigermaßen in Ordnung und die Klausur war sehr fair. Man konnte 60 Punkte erreichen, für eine 1.0 brauchte man aber nur 48 Punkte. Hier kann man eigentlich nur durchfallen, wenn man das falsche lernt. Ein gutes Auge für das Wesentliche hilft Wunder!</p>
<h3>Sommersemester 2009</h3>
<h4>Grundlagen der Informatik 2</h4>
<p>GdI 2 war eine monströse Veranstaltung, in der sich alles um <strong>Algorithmen und Datenstrukturen</strong> drehte, auch mehrere Index-Strukturen waren dabei; Laufzeit- und Speicherkomplexität von Algorithmen inklusive uvm. Alles in allem war es vor allem eines: verdammt viel, für die meisten <em>zu</em> viel! Nicht ohne Grund ist GdI 2 als <strong>&#8220;Exmatrikulator&#8221;</strong> berüchtigt (womit sich die Veranstalter für meinen Geschmack allzu oft gebrüstet haben, so als wären sie besonders stolz darauf).</p>
<p>Hier noch ein paar Stichworte zur Illustration: Komplexität von Algorithmen, Sortierverfahren, Graphenalgorithmen, Allgemeine Bäume und Binärbäume, Binäre Suchbäume, Mehrwegbäume, B-Baum u. Varianten, Digitale Suchbäume, Hashverfahren (intern, extern, erweiterbar), Graphische Datenstrukturen, Spezielle Themen (Bitmap Index, Indexstrukturen für &#8220;broadcast data&#8221;, etc.)</p>
<p><strong>Klausuren:</strong> Nur eine Klausur am Ende des Semesters, für die man sich einen Bonus von bis zu einem ganzen Notensprung erarbeiten konnte.</p>
<p><strong>Bewertung:</strong> Die Vorlesung war in Ordnung, soweit ich das beurteilen kann. Unser Professor schien aber häufig unvorbereitet zu sein; er selbst sagte entschuldigend, er hätte dieses Semester sehr viel zu tun.<br />
Wie bereits geschrieben konnte man sich einen Bonus erarbeiten. Ab 191 Punkten in den bewerteten Hausübungen und Programmieraufgaben hat man einen vollen Notensprung für die Prüfung erhalten. Das war insofern manchmal ärgerlich, als dass die Hausübungen und Programmieraufgaben in mehreren Fällen unklar/missverständlich formuliert waren und die Folien oft erst verspätet ins Netz gestellt wurden. Ansonsten waren die Übungen und die Programmieraufgaben durchaus sehr hilfreich und man konnte sehr viel dabei lernen.<br />
Die Klausur am Ende war ziemlich fair, es wurden sogar diejenigen belohnt, die sich den letzten Foliensatz nochmal komplett durchgeschaut haben (dazu kam eine sehr leichte Aufgabe dran, die man aber ohne diesen Foliensatz nicht bearbeiten konnte). Ich bin sehr zufrieden mit dieser Veranstaltung, einzig die Tatsache, dass man sich ständig als &#8220;Exmatrikulator&#8221; aufgeführt hat, ist mir mehrfach übel aufgestoßen. Man stand quasi dauernd unter Verdacht, Lösungen von Kommilitonen zu kopieren. Das nervt irgendwann&#8230;</p>
<h4>Technische Grundlagen der Informatik 2</h4>
<p>In TGdI 2 wurde uns im Wesentlichen beigebracht wie <strong>Prozessoren</strong> funktionieren. Das beinhaltet die verschiedenen binären Zahlen-Darstellungen (1er-Komplement, 2er-Komplement, Gleitkommazahlen uvm.), die Begriffe Steuerwerk &#038; Operationswerk, ALUs und eine Einführung in die MIPS-Prozessorarchitektur (Eintaktimplementierung, Mehrtaktimplementierung und eine Implementierung mit Pipelining und alles was dazugehört, also z.B. Forwarding und Hazard Detection uvm.). In der Praxis haben wir mit Verilog gearbeitet, einer Hardware-Beschreibungssprache. Mit dieser Sprache haben wir in vielen Übungen digitale Schaltungen beschrieben und simuliert; eine sehr spannende Angelegenheit. Eine kleine Einführung in die Assembler-Programmierung hat es hier ebenfalls gegeben.</p>
<p><strong>Klausuren:</strong> 1 Semestralklausur, die für das Ergebnis nur insofern relevant war, als dass man sich hier einen Bonus für die eigentliche Klausur am Ende des Semesters holen konnte.</p>
<p><strong>Bewertung:</strong> Die Veranstaltung war sehr gut gemacht! Gute Folien, gute Übungen und eine fordernde, aber faire Klausur zum Schluss. Die Semestralklausur war ebenfalls in Ordnung. Außerdem &#8211; gut, das ist jetzt eher subjektiv &#8211; war das Thema sehr interessant. <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>Mathematik für Inf und WInf 2</h4>
<p>Von der Qualität der Veranstaltung her genauso schlimm wie Mathe 1. Die eigentliche Leistung bestand wieder darin rechtzeitig vor den Klausuren den ganzen Schmodder, den man sich umsonst reingezogen hat, wieder loszuwerden und einen freien Kopf zu kriegen. Dann erst kann man sich richtig auf die Klausur vorbereiten.</p>
<p>Inhaltlich bot Mathe 2 lineare Algebra, Analysis mit mehrstelligen Funktionen und einfache Differentialgleichungen (DGL), lineare Systeme von DGL usw.</p>
<p><strong>Klausuren:</strong> Wie bei Mathe 1 gab es nur eine Klausur am Ende des Semesters. Diese Klausur war &#8211; anders als bei Mathe 1 &#8211; <strong>viel schwerer</strong> als wir erwartet hatten. So kam dann auch eine <strong>Durchfallquote von 60%</strong> bzw. eine <strong>Durchschnittsnote von 4.27</strong> zustande. Ich habe es dennoch geschafft unter die besten 10% zu kommen, trotzdem bin ich etwas enttäuscht von der <em>absoluten</em> Note.</p>
<p><strong>Bewertung:</strong> Ja, was soll man dazu sagen? Die Vorlesung ist grauenvoll, weil sie zu 90% unbrauchbares mathematisches Gedöns enthält, das eine riesige Belastung darstellt, weil man eben erstmal nicht weiß, was davon nun Gedöns ist und was man wirklich braucht. Also zieht man sich <em>alles</em> rein und ordnet den Stoff <em>hinterher</em> in &#8220;Unbrauchbar&#8221; und &#8220;Brauchbar&#8221;. Sorry, aber das muss einfach mal gesagt werden: Die Vorlesung ist scheiße.<br />
Die Übungen hingegen waren einigermaßen in Ordnung. Es gab übrigens viele betreute Extra-Übungen vor der Klausur &#8211; eine super Gelegenheit zur Vorbereitung, die man bei anderen Veranstaltungen meist nicht bekommt.</p>
<h4>Formale Grundlagen der Informatik 2</h4>
<p>Kurzfassung: Nach FGdI 2 habe ich mich kaum noch über FGdI 1 beschwert.<br />
Das liegt daran, dass FGdI 2 letzteres nochmals deutlich unterboten hat. Erklärungen gab es keine und die wenigen Beispiele in den Folien verstehe ich heute noch nicht &#8211; trotz guter Prüfungsnote. Hier hat man sich keine Mühe gegeben, so viel steht fest. Mal wieder hat sich mein Motto <strong>&#8220;schlimmer geht immer&#8221;</strong> bestätigt. Dagegen war die Mathe 2 &#8211; Vorlesung fast schon wieder genießbar.</p>
<p>Inhaltlich ging es in FGdI 2 um die <strong>Aussagenlogik</strong> (quasi boolesche Algebra) und die <strong>Prädikatenlogik</strong> (im Wesentlichen Aussagenlogik erweitert um All- und Existenzquantoren).</p>
<p><strong>Klausur:</strong> Nur eine Klausur am Ende des Semesters (48 Punkte brauchte man für 100%, 60 gab es insgesamt). Naja: <em>eigentlich</em>! Leider gab es während der Klausur in einem der Gebäude einen Feueralarm. Dadurch konnten etwa 2 Drittel der Studenten die Klausur nicht weiterschreiben und mussten die Klausur etwa 3 Wochen später wiederholen &#8211; der neue Termin für FGdI 2 lag zudem direkt hinter 2 anderen knackigen Klausuren. Einen Vorteil hatten wir Wiederholenden (ich war einer der Unglücklichen) also nicht, denn wir mussten uns auf die anderen Klausuren konzentrieren (unter anderem auf den &#8220;Exmatrikulator&#8221;: GdI 2). Trotzdem war die Wiederholungsklausur schwerer als die 1. Klausur. Schwerer ist eigentlich der falsche Ausdruck: <strong>Die Wiederholungsklausur war um Längen schwerer!</strong> Es gab in jeder Ecke irgendeine Falle, und die meisten sind voll ins Messer gelaufen.<br />
Hier die Notenspiegel der beiden Klausuren im Vergleich (PDF von mir erstellt, Angaben ohne Gewähr!): <a href="http://www.robertnitsch.de/wp-content/uploads/2009/10/Notenspiegel_FGdI2_SS09.pdf" class="lipdf">Notenspiegel FGdI2 SS09</a><br />
Unbedingt zu beachten sind die Punktegrenzen auf Seite 2. Ursprünglich benötigte man 24 Punkte zum Bestehen (50% von 48). Diese Grenze wurde bereits bei der 1. Klausur deutlich herabgesetzt. Bei der Wiederholungsklausur brauchte man schließlich nur noch 15 Punkte! Das sind etwa 31%!<br />
Man kann sich also ungefähr ausmalen wie viel schwerer die Wiederholungsklausur war. Für mich war das Ganze nicht mehr nachvollziehbar.</p>
<p><strong>Bewertung:</strong> Die Vorlesung &#038; die Folien waren grauenvoll, die Übungen mäßig und die Klausuren wurden insofern versaut, als dass die Wiederholungsklausur in einem völlig unangebrachten Ausmaß schwerer war als die 1. Klausur. FGdI 2 war sehr bitter!</p>
<h3>Fazit</h3>
<p>Die ersten 2 Semester sind definitiv eine <strong>Durststrecke</strong>. Besonders diejenigen Veranstaltungen, die vom Fachbereich Mathematik organisiert werden (das sind Mathe 1 &#038; 2 und Formale Grundlagen 1 &#038; 2), leiden an grauenvollen Vorlesungen und schwer nachvollziehbaren Folien/Skripten. Genausogut könnten wir auch die normalen Mathe-Vorlesungen hören, da bräuchte es kein Mathematik <strong>für Informatiker</strong> (das beziehe ich jetzt wirklich nur auf die Vorlesung; was die Übungen und die Klausur angeht habe ich nichts einzuwenden <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Mich haben also keineswegs die Veranstaltungen gestört, in denen es etwas theoretischer zuging. Nein, mich stört, dass sich der FB Mathematik bei Veranstaltungen <strong>für Informatiker</strong> scheinbar nicht die allergeringste Mühe zu geben scheint. Die Veranstaltungen tragen zwar &#8220;für Informatiker&#8221; im Namen, inhaltlich ist das jedoch (abgesehen vllt. von der Klausur) kaum zu spüren. Mag sein, dass sie den Stoff tatsächlich ein wenig für die Informatiker angepasst haben. Für mich steht aber fest: Da ist noch viel zu viel Luft nach oben.</p>
<p>Das 3. Semester hingegen sieht bisher ausgesprochen gut aus. Das liegt ganz gewiss auch daran, dass sämtliche Veranstaltungen vom FB Informatik organisiert werden. Man spürt sofort, dass die Veranstalter einen ganz anderen Blick auf die Dinge haben und vermitteln.</p>
<h4>Fallt mir nicht in den Rücken&#8230;</h4>
<p>Ich habe schon mehrfach die Lehrveranstaltungen des FB Mathematik im Fachschaftsforum kritisiert, da hier wie gesagt einiges im Argen liegt. Dabei sind mir viele Kommilitonen in den Rücken gefallen mit scheinheiligen Argumenten wie &#8220;schau dir doch Erklärungen im Internet an&#8221; oder &#8220;das ist der Anspruch einer Universität&#8221; usw. Sinngemäß wurde mir viel zu oft vermittelt: &#8220;Wenn du zu dumm dafür bist, dann studier etwas anderes oder organisiere dich besser.&#8221; Das möchte ich an dieser Stelle gerne vermeiden.</p>
<p>Niemand konnte mir bisher erklären, warum sich manche Veranstalter (des FB Mathematik) auf die faule Haut legen dürfen, während man sich bei anderen bereits über Kleinigkeiten aufregt (mehrfach geschehen).<br />
<strong>Die Grundlagen-Veranstaltungen der ersten 2 Semester, die vom FB Mathematik organisiert werden, sind einfach <em>scheiße</em>.</strong> Diese meine Ansicht habe ich jetzt an mehreren Stellen mehr oder weniger grob erklärt (Kurzfassung: es steht zwar &#8220;für Informatiker&#8221; drauf, das ist aber nicht drin!). Findet euch damit ab, dass man mich nicht von dieser Ansicht abbringt, indem man mir immer wieder erklärt, dass es Veranstaltungen gibt, die noch schlechter sind oder dass ich zu dumm oder zu faul bin. Ich habe Mathe 1/2 und FGdI 1/2 auf Anhieb bestanden und außer bei FGdI 2 habe ich jedes Mal zu den besten 10% gehört (bei FGdI 2 nur zu den besten 16% mangels Motivation). Von Dummheit oder Faulheit möchte ich nichts mehr hören, egal wie ihr diese Anschuldigungen verpackt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/11/28/tu-darmstadt-ruckblick-auf-2-semester-informatik/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Layer-ads.de pleite?</title>
		<link>http://www.robertnitsch.de/2009/10/17/layer-ads-de-pleite/</link>
		<comments>http://www.robertnitsch.de/2009/10/17/layer-ads-de-pleite/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 15:16:43 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=293</guid>
		<description><![CDATA[Layer-ads.de ist ein Vermittler für Internetwerbung, vermittelt also Werbende (Sponsoren) an Werbeträger (Webmaster; im Folgenden auch Layer-ads.de Webmaster in Anlehnung an die Layer-ads.de AGB). Der Inhaber von Layer-ads.de ist die S² Media GmbH &#038; Co KG. Die Geschäftsführer sind Jens Reimer und Oliver Sperke. Seit einigen Wochen geht das Gerücht um, layer-ads.de sei pleite und [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Layer-ads.de</strong> ist ein Vermittler für Internetwerbung, vermittelt also Werbende (<em>Sponsoren</em>) an Werbeträger (<em>Webmaster</em>; im Folgenden auch <em>Layer-ads.de Webmaster</em> in Anlehnung an die Layer-ads.de AGB). Der Inhaber von Layer-ads.de ist die <strong>S² Media GmbH &#038; Co KG</strong>. Die Geschäftsführer sind <strong>Jens Reimer</strong> und <strong>Oliver Sperke</strong>. Seit einigen Wochen geht das Gerücht um, layer-ads.de sei pleite und die Geschäftsführer hätten sich aus dem Staub gemacht. Leider spricht einiges dafür, dass es tatsächlich so ist.</p>
<p>Und das, wo ich layer-ads.de doch erst letztes Jahr <a href="http://www.robertnitsch.de/2008/11/12/layer-adsde-bisher-der-einzige-seriose-layerad-anbieter/" class="liinternal">empfohlen hatte</a>.</p>
<p><span style="color: #C00;"><strong>Eines möchte ich vorneweg ganz klar machen:</strong></span><br />
<strong>Alle Angaben in diesem Artikel sind ohne Gewähr.</strong> Ich habe aber sehr wohl ernsthaft versucht, gründlich und umfassend zu recherchieren. Die &#8211; seien sie expliziter oder impliziter Form &#8211; Schlussfolgerungen, Behauptungen oder &#8211; wenn man so mag &#8211; Unterstellungen, die ich in diesem Artikel zu Wort bringe sind als meine persönliche Einschätzung der aktuellen Situation von layer-ads.de zu verstehen und ich berufe mich auf die Meinungsfreiheit. Dies ist kein Tatsachenbericht sondern eine Schilderung aus meiner persönlichen Wahrnehmung heraus.</p>
<h3>Ziel dieses Artikels</h3>
<p>Ziel dieses Artikels ist es, andere Webmaster darauf aufmerksam zu machen, dass layer-ads.de mit seinen Auszahlungen in großem Umfang im Verzug ist (zumindest dann, wenn man die in den Layer-ads.de AGB genannten 30 Werktage von der Freigabe einer Gutschrift bis zur Auszahlung zugrundelegt).<br />
Ich selbst habe bereits den Glauben daran verloren, dass ich meine noch ausstehenden Auszahlungen (dazu später mehr) von layer-ads.de jemals zu Gesicht bekomme. Und ich habe mmN. auch gute Gründe dafür. Ich möchte verhindern, dass andere Webmaster, die noch nicht von layer-ads.de abgesprungen sind, später vermutlich besonders darunter leiden müssen. Auch ist es mein besonderes Interesse zu verhindern, dass sich die Geschäftsführer von Layer-ads.de an den Leistungen der Werbeträger bereichern, indem sie das Geld nicht mehr an diese weitergeben.</p>
<h3>Ausschnitte aus den AGB: Vergütungsanspruch und Abwicklung der Auszahlungen</h3>
<p>Zunächst möchte ich dazu einen kurzen Einblick in die <a href="https://layer-ads.de/agb.htm" class="liexternal">allgemeinen Geschäftsbedingungen</a> von Layer-ads.de geben.</p>
<p>In den allgemeinen Geschäftsbedingungen von <strong>Layer-ads.de</strong> heißt es:</p>
<blockquote><p>&#8220;Layer-Ads.de dient dabei als Vermittler der Werbung für den Sponsor, ohne dessen Werbeinhalte zu berühren oder zu beeinflussen. Des Weiteren sorgt Layer-Ads.de für die Abwicklung der Zahlungen und Kontrollen.&#8221;</p></blockquote>
<p>Die Webmaster selbst treten bei layer-ads.de nicht in Kontakt mit den Sponsoren. Das Geld fließt auch nicht direkt von den Sponsoren zu den Webmastern, sondern über layer-ads.de.</p>
<p>Anspruch auf Vergütung erlangt man als Webmaster durch Implementierung der Werbeeinblendungen auf der eigenen Webseite:</p>
<blockquote><p>&#8220;Mittels Implementierung eines Layer auf seiner(n) Website(s) hat der Layer-Ads.de Webmaster durch die Weiterleitung von Besuchern seiner Website zur Website des Sponsors Anspruch auf Vergütung wenn der Layer durch den User korrekt geschlossen und der Klick vom Layer-Ads.de Skript als gültig eingestuft wurde.&#8221;</p></blockquote>
<p>Weiterhin heißt es in den ABG:</p>
<blockquote><p>&#8220;Für jeden gültige Layer-Auslieferung wird dem Layer-Ads.de Webmaster ein Fixbetrag gutgeschrieben.&#8221;</p></blockquote>
<p>Zur Auszahlung des auf diese Weise erwirtschafteten Geldes heißt es:</p>
<blockquote><p>&#8220;Wird eine Gutschrift erstellt [beantragt] so prüft Layer-Ads.de innerhalb von 5 Werktagen den Auszahlungantrag auf die Einhaltung der Layer-Ads.de AGB und gibt nach erfolgreicher Prüfung die Gutschrift zur Auszahlung frei. <strong>Freigegebene Gutschriften werden von Layer-Ads.de innerhalb von 30 Werktagen auf die angegebene Kontoverbindung überwiesen.</strong>&#8220;</p></blockquote>
<h3>Die 30 Werktage werden aber nicht (mehr) eingehalten&#8230;</h3>
<p>Inzwischen habe ich bereits (mindestens) 8 freigegebene/geprüfte Auszahlungsanträge angehäuft, die laut AGB schon hätten abgewickelt werden müssen. &#8220;Mindestens&#8221; 8 deshalb, weil ich vor über 1 Woche das letzte Mal nachgeschaut habe. Die älteste Gutschrift, die bereits hätte ausgezahlt werden sollen, ist vom 10.06.2009. Das ist über 4 Monate her!</p>
<p>Leider geht es nicht nur mir so, sondern allem Anschein nach auch allen anderen Layer-ads.de Webmastern. Zur Demonstration die ersten 5 Suchergebnisse, wenn man <a href="http://www.google.de/search?hl=de&#038;q=layer-ads.de+pleite&#038;btnG=Suche" class="liexternal">bei Google &#8220;layer-ads.de pleite&#8221; eingibt</a>:</p>
<ul>
<li>Ist das Werbenetzwerk Layer-Ads.de pleite? » She-Sign.de</li>
<li>pains Blog : Geht Layer-Ads.de pleite?</li>
<li>Was ist los bei den Layer-Anbietern? Alle pleite? | Tegget.de &#8230;</li>
<li>Layer-Ads insolvent?</li>
<li>Layer-Ads.de pleite und Jens Reimer abgetaucht? » Layer-Adsde &#8230;</li>
</ul>
<p>Diese Suchergebnisse sprechen schon für sich.</p>
<p>Ich habe layer-ads.de vor 1 Woche eine EMail geschrieben, in der ich gar nicht viel verlangt habe (schon gar nicht, dass ich mein Geld endlich haben möchte), jedoch habe ich bis heute keine Antwort erhalten. Auf vielen Webseiten wird davon berichtet, dass bei layer-ads.de niemand mehr erreichbar sei (<a href="http://www.tutsi.de/layer-ads-probleme-zahlt-layerads-webmastern-kein-geld-mehr-aus/2009/09/09/tutsi-blog-aktuell/" class="liexternal">[1]</a>, <a href="http://www.webnews.de/kommentare/494184/0/Layer-Adsde-insolvenz-Webmaster-warten-seit-Monaten-auf-ihr-Geld.html" class="liexternal">[2]</a>), auch nicht per Telefon und noch nicht mal per Brief oder Einschreiben (<a href="http://www.tutsi.de/layer-ads-und-die-zahlungsmoral-der-s-media-gmbh-co-kg/2009/10/01/tutsi-blog-aktuell/" class="liexternal">[1]</a>). Die Registrierung im layer-ads.de Forum soll schon seit Monaten deaktiviert sein; Diskussionen zu diesem ganzen Thema werden dort in kürzester Zeit gesperrt. Das heißt auch, dass dort sehr wohl noch jemand arbeitet. Die Frage ist nur, ob er sich noch in Deutschland aufhält, oder von außerhalb den Schaden (für sich selbst) zu reduzieren bzw. so viel wie möglich für sich selbst herauszuholen versucht.</p>
<p>Das alles deutet in meinen Augen auf <a href="http://de.wikipedia.org/wiki/Insolvenzverschleppung" rel="nofollow" class="liwikipedia">Insolvenzverschleppung</a> hin. Ich vermute, dass sich die Geschäftsführer schon längst abgesetzt haben.</p>
<p>Also: Macht euch selbst ein Bild von der Lage, geht ein bisschen googlen! Wenn layer-ads.de euch sehr viel Geld schuldet, dann solltet ihr euch überlegen, einen Anwalt zu konsultieren.</p>
<p><em>Hinweis: Von Zeit zu Zeit werde ich noch einige Links einfügen.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/10/17/layer-ads-de-pleite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My brute&#8230;</title>
		<link>http://www.robertnitsch.de/2009/07/02/my-brute/</link>
		<comments>http://www.robertnitsch.de/2009/07/02/my-brute/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 13:12:51 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Freaky]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Lustiges]]></category>
		<category><![CDATA[Spiele]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=273</guid>
		<description><![CDATA[&#8230;ist das beste Diebspiel überhaupt. Sehr unterhaltsam. Also, denkt euch einen lustigen Namen aus, kämpft gegen mich und ladet auch eure Freunde ein! Traut ihr euch?]]></description>
			<content:encoded><![CDATA[<p>&#8230;ist das beste Diebspiel überhaupt. Sehr unterhaltsam.<br />
Also, denkt euch einen lustigen Namen aus, kämpft gegen mich und ladet auch eure Freunde ein!</p>
<p align="center"><a href="http://der-echte-bmaker.mybrute.com/" style="font-size:28pt; font-weight: bold;" title="In den Kampf" class="liimagelink">Traut ihr euch? <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/07/02/my-brute/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Youtube: &#8220;Killerspiele&#8221; in ARD, ZDF und WDR</title>
		<link>http://www.robertnitsch.de/2009/06/27/youtube-killerspiele-in-ard-zdf-und-wdr/</link>
		<comments>http://www.robertnitsch.de/2009/06/27/youtube-killerspiele-in-ard-zdf-und-wdr/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 11:32:17 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Kommentare]]></category>
		<category><![CDATA[Politik]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=260</guid>
		<description><![CDATA[Tja, was soll man dazu noch sagen? Einfach nur erbärmlich. Diesen Journalisten gehört m.E. einfach gekündigt. Aber seht es euch selbst an: Youtube-Link: http://www.youtube.com/watch?v=R9JRm3iQQak]]></description>
			<content:encoded><![CDATA[<p>Tja, was soll man dazu noch sagen? Einfach nur erbärmlich. Diesen Journalisten gehört m.E. einfach gekündigt. Aber seht es euch selbst an:</p>
<div style="text-align:center">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/R9JRm3iQQak&#038;hl=de&#038;fs=1&#038;color1=0x2b405b&#038;color2=0x6b8ab6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/R9JRm3iQQak&#038;hl=de&#038;fs=1&#038;color1=0x2b405b&#038;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
<br />
Youtube-Link: <a href="http://www.youtube.com/watch?v=R9JRm3iQQak" title="Killerspiele in ARD, ZDF und WDR" class="liexternal">http://www.youtube.com/watch?v=R9JRm3iQQak</a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/06/27/youtube-killerspiele-in-ard-zdf-und-wdr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trafficshaping mit cFosSpeed &#8211; Die ultimative Internet-Optimierung</title>
		<link>http://www.robertnitsch.de/2009/02/07/trafficshaping-mit-cfosspeed-die-ultimative-internet-optimierung/</link>
		<comments>http://www.robertnitsch.de/2009/02/07/trafficshaping-mit-cfosspeed-die-ultimative-internet-optimierung/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 12:51:31 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=193</guid>
		<description><![CDATA[Neulich habe ich durch Zufall von cFosSpeed gehört, einer Software, die sogenanntes Trafficshaping betreibt. Das Trafficshaping von cFosSpeed ermöglicht die Priorisierung von Protokollen und/oder Anwendungen bei dem Zugriff auf das Internet. Das führt dazu, dass man auch während größerer Downloads mit gefühlter voller Bandbreite surfen kann (habe ich selbst getestet und kann ich zu 100% [...]]]></description>
			<content:encoded><![CDATA[<p>Neulich habe ich durch Zufall von <a href="http://www.cfos.de/speed/cfosspeed.htm" class="liexternal">cFosSpeed</a> gehört, einer Software, die sogenanntes Trafficshaping betreibt. Das Trafficshaping von cFosSpeed ermöglicht die Priorisierung von Protokollen und/oder Anwendungen bei dem Zugriff auf das Internet.</p>
<p>Das führt dazu, dass man auch während größerer Downloads mit gefühlter voller Bandbreite surfen kann (habe ich selbst getestet und kann ich zu 100% bestätigen). Man merkt dann kaum noch, dass die Leitung in Wirklichkeit voll ausgereizt ist (= optimal).</p>
<p>Ich habe es gestern auch mal auf die Spitze getrieben: Ich habe eine sehr große Datenmenge heruntergeladen und <em>währenddessen</em> über das Internet ein Strategiespiel gespielt (bei diesem Spiel kommt es v.a. auf gute Reaktionszeiten an, d.h. auf eine gute Internet-Verbindung). Normalerweise wäre das nicht möglich gewesen, da das Spiel dauernd geruckelt hätte usw. Da ich aber cFosSpeed klargemacht habe, dass der Download nicht so wichtig ist wie das Spiel, habe ich den Download im Hintergrund <em>nicht</em> beim Zocken gespürt. Dabei war die Leitung die ganze Zeit zu 100% ausgereizt. Die Bandbreite wurde von cFosSpeed einfach geschickt zwischen den Anwendungen aufgeteilt &#8211; entsprechend meiner Einstellungen.</p>
<p>Ganz ehrlich&#8230; für DSL 1000 &#8211; Kuhkaff &#8211; Menschen wie mich ist cFosSpeed eine erstklassige, wenn auch leider nicht kostenlose Software. Ich überlege mir ernsthaft, mir diese Software nach Ablauf der 30 Tage &#8211; Demo zuzulegen (zudem man lebenslang zu allen Updates/Upgrades Zugang hat).<br />
Die Bedienung von cFosSpeed ist zwar etwas gewöhnungsbedürftig, aber immerhin sind die populären Anwendungen/Prokotolle bereits vorkonfiguriert. So wird bspw. das Surfen und das Zocken von Anfang an mit einer hohen Priorität bedacht. Filesharing-Prokotolle werden auch schon von Haus aus &#8220;gedrosselt&#8221;. Sollte man doch mal eine Anwendung hinzufügen wollen, die nicht bereits in cFosSpeed eingetragen ist, dann ist das problemlos möglich.</p>
<p>Alles in allem kann ich cFosSpeed nur uneingeschränkt weiterempfehlen und hoffe, dass auch ihr von meiner &#8220;Entdeckung&#8221; profitiert. Probiert es einfach aus, es ist wirklich herrlich!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/02/07/trafficshaping-mit-cfosspeed-die-ultimative-internet-optimierung/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meine Abrechnung mit Linux</title>
		<link>http://www.robertnitsch.de/2009/01/09/meine-abrechnung-mit-linux/</link>
		<comments>http://www.robertnitsch.de/2009/01/09/meine-abrechnung-mit-linux/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 16:35:34 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Freaky]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PC]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=174</guid>
		<description><![CDATA[&#8220;Linux ist das größte, das schnellste, das schönste, das sicherste und das beste!&#8221; Dies ist die kurze Fassung dessen, was viele vermeintliche Computerexperten bei fast jeder Gelegenheit predigen. Ich bin zuerst selbst darauf reingefallen und bin Anfang 2006 von Windows auf Ubuntu (eine Linux-Distribution) umgestiegen. Windows war von da an etwa 1 Jahr lang nur [...]]]></description>
			<content:encoded><![CDATA[<p><strong>&#8220;Linux ist das größte, das schnellste, das schönste, das sicherste und das beste!&#8221;</strong></p>
<p>Dies ist die kurze Fassung dessen, was viele vermeintliche Computerexperten bei fast jeder Gelegenheit predigen. Ich bin zuerst selbst darauf reingefallen und bin Anfang 2006 von Windows auf Ubuntu (eine Linux-Distribution) umgestiegen. Windows war von da an etwa 1 Jahr lang nur noch ein Zweitsystem zum Spielen.</p>
<p><em>Hinweis:</em> Diese Abrechnung bezieht sich ausschließlich auf Linux-Systeme, die auf (privaten) Workstations ihren Einsatz finden! Auf Servern ist Linux meiner Meinung die erste Wahl (auch wenn meine Kritik teilweise auch auf &#8220;Server-Linuxe&#8221; übertragen werden kann)!</p>
<h3>Behauptung: Linux ist ein <em>grauenvolles</em> Frickelsystem</h3>
<p>Irgendwann gab meine Festplatte den Geist auf und ich musste das System komplett neu aufsetzen. Dazu hatte ich dann aber keine Lust mehr, weil Linux schier unendlich viel Zeit gefressen hatte, bis es vollständig eingerichtet war und alles so lief, wie es sollte. Das ist auch heute noch mein Hauptkritikpunkt: <strong>Linux ist ein <em>grauenvolles</em> Frickelsystem</strong>. Auch Ubuntu ist da nicht anders, obwohl es überall heißt, dass es ja ach so benutzerfreundlich wäre.</p>
<p>Die Betonung liegt auf <em>grauenvoll</em>, weil es nicht nur ein Frickelsystem ist, sondern eben auch noch ein <strong>besonders schlimmes bzw. schlecht gemachtes Frickelsystem</strong>. Damit meine ich vor allem, dass die Konfigurationsdateien (in denen z.B. das Verhalten der Programme festgelegt wird) aller größeren Programme/Daemons sich bezüglich ihres Formats/ihrer Syntax voneinander unterscheiden. Jedes dieser Programme muss demzufolge auch selbst &#8211; auf eigene Faust &#8211; seine Konfigurationsdateien auslesen, was eine gewaltige Fehlerquelle darstellt. Und wer bitte schön hatte zum Beispiel bei Linux noch nie das Problem, dass eine Konfigurationsdatei laut offizieller Anleitung/Dokumentation korrekt ist, aber irgendwie doch nicht funktioniert? Eben, das tritt nämlich fast immer auf. Manchmal steckt dahinter auch ein Fehler, den man selbst zu verantworten hat. Das ist aber letztendlich in den meistne Fällen nur eine Folge der viel zu komplizierten Konfigurationsdateien (Syntax zu komplex, zu wenig fehlertolerant etc.).</p>
<p>Wie man es besser machen könnte? Da, wo es angemessen und praktikabel ist, ein einheitliches Format einführen (für dieses Format muss dann auch nur 1x Code geschrieben werden => zentral => bessere Wartbarkeit und weniger Bugs). Beispielsweise eines wie das <strong>in</strong>tuitive <strong>IN</strong>I-Format (oder ein ähnliches):</p>
<blockquote><p>[SEKTION]<br />
name=wert<br />
name2=anderer_wert</p></blockquote>
<p>Größere Daemons, die tatsächlich noch mehr brauchen, dürfen gerne auch komplexere Formate für ihre Konfigurationsdateien definieren. Aber bitte, ihr Linux-Freaks, gebt nicht mehr jedem Kleinst-Daemon sein eigenes verdammtes Konfigurationsformat!<br />
Das führt nämlich dazu, dass man für jede etwas größere Konfigurationsänderung Manuals, Tutorials und Internetforen durchkämmen muss, bis es dann &#8211; meist nach Stunden &#8211; endlich klappt.</p>
<h3>Kritik: Linux gebe dem Anwender sehr viel mehr &#8220;Macht&#8221; als Windows</h3>
<p>Ein PRO-Argument für Linux lautet, dass man unter Linux &#8211; durch den berüchtigten root-Account &#8211; sehr viel mehr Einfluß auf sein System hat. Man kann sehr viel genauer bestimmen, was es macht und wie es das macht.<br />
Das stimmt auch. Allerdings werte ich das größtenteils nicht als Vorteil:</p>
<ol>
<li>Linux ist ein Frickelsystem (siehe oben) und man kann von dem root-Account nicht profitieren ohne sich zunächst (in jeder Angelegenheit aufs Neue) in komplizierte Details einzuarbeiten.</li>
<li>Es gibt nur ganz wenige Fälle in denen man unter Linux etwas machen kann, was unter Windows nicht auch (mit geringerem Aufwand) so oder so ähnlich möglich wäre. Das sind dann meistens auch nur Spielereien, auf die man auch gut und gerne ganz verzichten kann.</li>
</ol>
<p>Es gibt natürlich Momente in denen man vom mächtigen root-Account profitiert. Aber auch hier muss man sich erst mühsam in Details einarbeiten.</p>
<p>Absolut vernachlässigt werden bei Linux Benutzer, die entweder nicht oder kaum dazu in der Lage (wg. zu hohem Alter o.ä.) sind oder keine Lust darauf haben, sich so (unangemessen) viel Fachwissen anzueignen. Das äußert sich darin, dass vieles unter Linux nicht anders zu meistern ist als durch einen Umweg über die Konsole (Shell). Dann tippt man mehr oder weniger viele Befehle ein, die jeweils eine eigenen &#8220;Befehlssatz&#8221; aufweisen und man hat erreicht, was man erreichen wollte (zum Beispiel das Killen eines Programms). Es gibt zwar immer wieder Ansätze &#8211; gerade für Windows-Abwanderer &#8211; sich an Windows anzunähern, z.B. durch das Bereitstellen von Programmen, die Windows-Programmen ähnlich sehen (Taskmanager und ähnliches). Meine Erfahrung ist aber, dass diese Programme extrem unzuverlässig sind. Der Schwerpunkt wird bei Linux nunmal nach wie vor auf die Konsolenprogramme gelegt.</p>
<h3>Kritik: Linux hat viele Probleme mit Hardware</h3>
<p>Ob es daran liegt, dass die Hersteller keine Treiber bereitstellen oder nicht&#8230; es ist mir letztlich egal, was die Ursachen dafür sind und wer daran Schuld ist. Am Ende kommt es doch nur darauf an, was ein System kann und was es nicht kann. Und dazu gehört auch die (schnellstmögliche) Erkennung und Nutzung von neuer Hardware. Hier kommt Linux gar nicht gut weg.</p>
<p>Windows ist hier jedoch &#8211; wegen seiner Marktführerschaft &#8211; ganz klar an der Spitze. Man schließt die neue Hardware einfach an und meistens ist sie innerhalb weniger Sekunden voll einsatzbereit. Unter Linux muss man stattdessen häufig auf irgendwelche Arten improvisieren &#8211; das schließt meist auch wieder das Anlegen/Anpassen komplizierter Konfigurationsdateien ein -, um Hardware zu nutzen, die nicht auf Anhieb erkannt werden kann (und davon gibt es nicht wenig).</p>
<p>Das ist auch ein Punkt, der mich schließlich dazu bewegt hat, wieder zu Windows zurückzuwechseln. Unabhängig davon, ob es in der Macht der Linux-Entwickler steht, an der Hardware-Erkennung etwas wesentlich zu verbessern oder (mangels fehlender Kooperation der Hardware-Hersteller) nicht.</p>
<h3>Widerspruch: Windows sei unsicher(er als Linux)</h3>
<p>Ich kann mich nicht daran erinnern, wann ich mit Windows das letzte Mal Probleme mit Viren/Trojanern/Würmern o.ä. hatte. Zugegeben, ich habe zu XP-Zeiten zum Surfen und normalen Arbeiten ein eingeschränktes Benutzerkonto verwendet. Mein System so einzurichten hat mich aber nur ein paar Minuten Zeit gekostet&#8230;<br />
Natürlich hatte ich auch eine Firewall und ein Antiviren-Programm installiert. Das ist aber auch Pflicht bei Windows: Es ist schließlich das mit großem Abstand am weitesten verbreitete System.</p>
<p>Ich kann mich übrigens genausowenig daran erinnern, wann mein Windows das letzte Mal abgestürzt ist&#8230;</p>
<h3>Ein paar Worte zu Windows Vista</h3>
<p>Ich nutze Vista erst seit wenigen Tagen, aber mein erster Eindruck ist, dass es ein sehr mächtiges und modernes Betriebssystem ist. Viele Dialoge und v.a. die Navigation wurden im Vergleich zu Windows XP aufgebessert. Leider wird Windows Vista in einem sehr besch&#8230; Konfigurationszustand ausgeliefert. So frisst zum Beispiel die Systemwiederherstellung unglaublich viel Leistung; nachdem ich sie deaktiviert habe, läuft mein System viel flüssiger. Außerdem habe ich mit Hilfe von Tuneup Utilities viele unnötige Dienste deaktiviert oder &#8220;gedrosselt&#8221;.<br />
Zugegeben: Im &#8220;Auslieferungszustand&#8221; ist Vista <strong>unerträglich</strong> (meiner Meinung nach). Man kann aber auch dieses Windows innerhalb weniger Stunden in ein schnelles, sparsames und modernes System umwandeln. Dazu braucht es unter Windows auch keine komplizierten Konfigurationsdateien&#8230;</p>
<h3>Schlusswort</h3>
<p>Mir ist klar, dass die Mehrheit der &#8220;Experten&#8221; anderer Meinung ist. Diese Mehrheit ist auch dazu aufgerufen mir zu widersprechen und mich zu widerlegen. Letztlich ist es aber immer eine subjektive Entscheidung, wenn es darum geht, welches Betriebssystem man lieber verwendet. Daher habe ich mich in diesem Artikel auf die Aspekte konzentriert, die m.E. ganz objektive Schwächen von Linux darstellen oder Falschaussagen über Windows sind.</p>
<p>Bevor man mit mir eine Diskussion darüber anfängt, sollte man sich aber bitte einmal ehrlich fragen, wie viel Zeit man mit dem Konfigurieren seines Linux-Systems verbracht hat und wie viel Zeit unter Windows für die Konfiguration aufgewendet werden musste und was letztlich weniger nervenaufreibend war. Es sollte ja klar sein, was meine persönliche Antwort darauf ist&#8230;</p>
<p>Bitte &#8211; liebe Linux-Anhänger &#8211; zerreißt mich nicht gleich in der Luft sondern versucht erst einmal ungefähr zu verstehen, was mir an Linux stinkt&#8230;</p>
<p>Auch ich bin dankbar dafür, dass es so viele kluge Menschen gibt, die unentgeltlich sehr viel Arbeit in ein kostenloses &#8211; sogar quelloffenes &#8211; Betriebssystem stecken. Mit diesem Beitrag möchte ich aber unter anderem auch aufzeigen, dass Linux keineswegs perfekt ist und dass man den einfachen Leuten, die sich nicht so sehr auskennen, besser vermitteln muss, auf was sie sich mit Linux einlassen, wenn sie sich dafür entscheiden. Momentan gebärdet sich die Linux-Gemeinde aber eher so, wie eingangs erwähnt: <strong>&#8220;Linux ist das größte, das schnellste, das schönste, das sicherste und das beste!&#8221;</strong> Dazu kommen natürlich noch viele Seitenhiebe gegen Microsoft/Windows. Gegen dieses Gehabe wendet sich mein Artikel in erster Linie&#8230; von einem Betriebssystem, das so gefeiert wird, habe ich schlicht und ergreifend mehr erwartet, als mir letzlich geboten wurde.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2009/01/09/meine-abrechnung-mit-linux/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>layer-ads.de &#8211; bisher der einzige seriöse LayerAd-Anbieter</title>
		<link>http://www.robertnitsch.de/2008/11/12/layer-adsde-bisher-der-einzige-seriose-layerad-anbieter/</link>
		<comments>http://www.robertnitsch.de/2008/11/12/layer-adsde-bisher-der-einzige-seriose-layerad-anbieter/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 18:07:03 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=161</guid>
		<description><![CDATA[10.10.2009 &#8211; Aktuelle Warnung: Meiner Meinung nach ist es besser, wenn Ihr Abstand von Layer-ads.de haltet. Die sind gegenüber vielen &#8211; wahrscheinlich sogar den meisten oder allen &#8211; mit ihren Auszahlungen sehr lange in Verzug (wenn man die in den AGB von layer-ads.de genannten 30 Werktage zur Auszahlung &#8220;freigegebener Gutschriften&#8221; zugrundelegt). Informiert euch am besten [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #d00;"><strong>10.10.2009 &#8211; Aktuelle Warnung:</strong> Meiner Meinung nach ist es besser, wenn Ihr Abstand von Layer-ads.de haltet. Die sind gegenüber vielen &#8211; wahrscheinlich sogar den meisten oder allen &#8211; mit ihren Auszahlungen sehr lange in Verzug (wenn man die in den AGB von layer-ads.de genannten 30 Werktage zur Auszahlung &#8220;freigegebener Gutschriften&#8221; zugrundelegt). Informiert euch am besten selbst <a href="http://www.google.de/search?q=layer-ads.de+auszahlung" class="liexternal">über Google</a>, was da momentan abgeht. Meine Angaben sind natürlich ohne Gewähr!</span> Update 17.10.2009: Ich habe jetzt auch <a href="http://www.robertnitsch.de/2009/10/17/layer-ads-de-pleite/" class="liinternal">einen eigenen Artikel zu dem Thema</a> geschrieben.</p>
<p>Vor einiger Zeit habe ich angefangen auf meiner Webseite <a href="http://np.bmaker.net" class="liexternal">DS NoPaste</a> Layer-Werbung einzublenden. Dazu habe ich mich bei bin-layer.de registriert. Schließlich wurde ich nach kurzer Zeit dort gesperrt und habe die ganze Geschichte hier veröffentlicht: <a href="http://www.robertnitsch.de/2008/04/20/bin-layerde-ein-negativer-erfahrungsbericht/" class="liinternal">bin-layer.de &#8211; ein negativer Erfahrungsbericht</a>.</p>
<p>Danach ging ich zu euros4click.de. Dort wurde ich zwar nicht gesperrt, aber meine Vergütung wurde auf weniger als 20% vom gepriesenen Wert gesetzt. Meine Einnahmen waren dann einfach nur noch lächerlich. Und abzocken lasse ich mich sicherlich nicht. (Liebe Juristen, es handelt sich hierbei um eine Formulierung, die in etwa folgendes bedeuten soll: Ich kann mir nicht vorstellen, dass es einen fairen Grund dafür gab, meine Vergütung so extrem herabzusetzen. Bei dieser Formulierung gehe ich davon aus, dass meine Leser bei der Interpretation derselben den Wortschatz eines durchschnittlichen Deutschen anwenden und nicht den eines gescheiterten Juristen, der auf Internetseiten nach Formulierungen sucht, die es wert sein könnten, eine Abmahnung zu schreiben um seine verkorkste Kanzlei vor dem Konkurs zu retten. Mit anderen Worten: Es handelt sich hierbei &#8211; wie sonst auch immer &#8211; um meine persönliche Meinung.)</p>
<p>Inzwischen bin ich bei <strong>layer-ads.de</strong> angekommen. Die Auszahlungen werden pünktlich ausgeführt und es gibt auch nach 5 Monaten keinen Grund mich zu beklagen (hier dürfen die Juristen ausnahmsweise ihren eigenen Wortschatz anwenden, denn beide Interpretationen sind zulässig). Meine Vergütung hat noch immer denselben Wert wie zu Beginn: 4€ / 1000 gewertete Layer-Einblendungen.<br />
Das danke ich <strong>layer-ads.de</strong> mit diesem Artikel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2008/11/12/layer-adsde-bisher-der-einzige-seriose-layerad-anbieter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motivationskurve beim Erlernen einer Programmiersprache</title>
		<link>http://www.robertnitsch.de/2008/09/19/motivationskurve-beim-erlernen-einer-programmiersprache/</link>
		<comments>http://www.robertnitsch.de/2008/09/19/motivationskurve-beim-erlernen-einer-programmiersprache/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 15:31:36 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Freaky]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Lustiges]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=115</guid>
		<description><![CDATA[Peter Kroener hat eine geniale Grafik / Motivationskurve veröffentlicht, die die Motivation beim Erlernen einer neuen Programmiersprache beschreibt. Ich musste herzhaft lachen, weil mich die Kurve so sehr an meine eigenen Erfahrungen erinnert.]]></description>
			<content:encoded><![CDATA[<p>Peter Kroener hat eine <a href="http://www.peterkroener.de/die-neue-programmiersprache-lernen/" class="liexternal">geniale Grafik / Motivationskurve veröffentlicht</a>, die die Motivation beim Erlernen einer neuen Programmiersprache beschreibt. Ich musste herzhaft lachen, weil mich die Kurve so sehr an meine eigenen Erfahrungen erinnert. <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><img style="margin-left:20px;" src="http://www.peterkroener.de/wp-content/uploads/2008/08/die-neue-programmiersprache-lernen-359x477.png" alt="Motivationskurve" border="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2008/09/19/motivationskurve-beim-erlernen-einer-programmiersprache/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AutoIt3: Vereinfachung der Windows-Funktion &#8220;Ausführen als&#8230;&#8221;</title>
		<link>http://www.robertnitsch.de/2008/09/08/autoit3-vereinfachung-der-windows-funktion-ausfuhren-als/</link>
		<comments>http://www.robertnitsch.de/2008/09/08/autoit3-vereinfachung-der-windows-funktion-ausfuhren-als/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 22:57:52 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=102</guid>
		<description><![CDATA[Im letzten Artikel habe ich die Programmiersprache AutoIt3 und das Beispielskript &#8220;FensterRetter&#8221; vorgestellt. Dieses Mal möchte ich ein etwas praktikableres Skript vorstellen, das ich schon seit einigen Wochen intensiv nutze: AusfuehrenAls.au3 Unter Windows XP kann man einzelne Anwendungen/Programme unter einem anderen Benutzerkonto ausführen, ohne sich ab- und neu anmelden zu müssen (http://www.zdnet.de/enterprise/os/0,39023494,20000267-43,00.htm). Wenn man z.B. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.robertnitsch.de/2008/07/29/autoit-windows-eigentliche-skriptsprache/" class="liinternal">Im letzten Artikel</a> habe ich die Programmiersprache AutoIt3 und das Beispielskript <em>&#8220;FensterRetter&#8221;</em> vorgestellt. Dieses Mal möchte ich ein etwas praktikableres Skript vorstellen, das ich schon seit einigen Wochen intensiv nutze: <em>AusfuehrenAls.au3</em></p>
<p>Unter Windows XP kann man einzelne Anwendungen/Programme unter einem anderen Benutzerkonto ausführen, ohne sich ab- und neu anmelden zu müssen (<a href="http://www.zdnet.de/enterprise/os/0,39023494,20000267-43,00.htm" class="liexternal">http://www.zdnet.de/enterprise/os/0,39023494,20000267-43,00.htm</a>). Wenn man z.B. <em>Rechtsklick (auf eine Verknüpfung) -> Ausführen als&#8230;</em> anwählt, dann erscheint ein solcher Dialog:<br />
<a href="http://www.robertnitsch.de/wp-content/uploads/2008/09/ausfuehren_als.jpg" class="liimagelink"><img src="http://www.robertnitsch.de/wp-content/uploads/2008/09/ausfuehren_als.jpg" alt="&quot;Ausführen als...&quot; unter Windows XP" title="&quot;Ausführen als...&quot; unter Windows XP" width="383" height="321" class="size-full wp-image-103" /></a></p>
<p>Dieser Dialog hat einige gravierende Mängel:</p>
<ul>
<li>Die Option &#8220;Aktueller Benutzer (&#8230;)&#8221; ist vorausgewählt.</li>
<li>Die Option &#8220;Aktueller Benutzer (&#8230;)&#8221; wird in 99,9% aller Fälle nicht gebraucht, denn wozu macht man Rechtsklick auf eine Anwendung, klickt dann auf &#8220;Ausführen als&#8230;&#8221;, wenn man das Programm ja doch unter dem eigenen Benutzerkonto ausführen möchte. Sinn? Keiner!</li>
<li>Das Eingabefeld für den Benutzernamen unter der Option &#8220;Folgender Benutzer&#8221; speichert zwar die im Laufe der Zeit eingegebenen Namen, aber es ist immer &#8220;Administrator&#8221; voreingegeben.</li>
</ul>
<p>All diese Nachteile haben zur Folge, dass man mehrere Sekunden braucht, um ein Programm endlich unter einem anderen Benutzerkonto auszuführen, vor allem wenn das benötigte Benutzerkonto nicht den Namen &#8220;Administrator&#8221; hat. Wenn man allerdings auf diese Funktion angewiesen ist, dann wird das Ganze sehr schnell nervig.</p>
<p>Abhilfe schafft hier mein Skript:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code"><pre class="vb" style="font-family:monospace;">; AusfuehrenAls.au3
;
; Ein Skript zum Vereinfachen der Windows-Funktion <span style="color: #800000;">&quot;Ausführen als...&quot;</span>
; Für Windows XP.
;
; www.robertnitsch.de
&nbsp;
#include <span style="color: #800000;">&quot;Misc.au3&quot;</span>
_Singleton(<span style="color: #800000;">&quot;AusfuehrenAls&quot;</span>)
&nbsp;
; Der Name des auszuwählenden Benutzers
$user = <span style="color: #008000;">'Mein_Administrator_Konto'
</span>
&nbsp;
; Ab hier nichts mehr ändern
Opt(<span style="color: #800000;">&quot;WinWaitDelay&quot;</span>, 500)
ProcessSetPriority(@AutoItPID, 1)
&nbsp;
<span style="color: #000080;">While</span> <span style="color: #000080;">True</span>
	WinWaitActive(<span style="color: #800000;">&quot;Ausführen als&quot;</span>)
	Send(<span style="color: #800000;">&quot;{DOWN 2}&quot;</span>)
	Send($user)
	Send(<span style="color: #800000;">&quot;{TAB}&quot;</span>)
	WinWaitClose(<span style="color: #800000;">&quot;Ausführen als&quot;</span>)
WEnd</pre></td></tr></table></div>

<p>Das Skript wählt bei Erscheinen des &#8220;Ausführen als&#8221;-Dialogs automatisch die Option &#8220;Folgender Benutzer&#8221; aus und gibt einen voreingestellten Benutzernamen (Zeile 12) ein. Ich habe das Skript in meinen Autostart gepackt und bin seither zufrieden damit!</p>
<h3>Download von AusfuehrenAls.au3</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2008/09/ausfuehrenals.zip" class="lizip">AusfuehrenAls.zip</a> (1 KB)</p>
<p>Zur Ausführung und/oder Kompilierung wird AutoIt3 benötigt: <a href="http://www.autoitscript.com/autoit3/" class="liexternal">http://www.autoitscript.com/autoit3/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2008/09/08/autoit3-vereinfachung-der-windows-funktion-ausfuhren-als/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AutoIt &#8211; Windows&#8217; eigentliche Skriptsprache&#8230;</title>
		<link>http://www.robertnitsch.de/2008/07/29/autoit-windows-eigentliche-skriptsprache/</link>
		<comments>http://www.robertnitsch.de/2008/07/29/autoit-windows-eigentliche-skriptsprache/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 22:13:54 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=100</guid>
		<description><![CDATA[Ich habe vor einigen Tagen AutoIt wiederentdeckt. AutoIt ist eine BASIC-ähnliche Skriptsprache zur Automatisierung von Windows. Automatisierung umfasst das vielfältige &#8220;Simulieren&#8221; von Benutzerinteraktionen (Mausklicks / Tastatureingaben) oder sogar das direkte Manipulieren von Programmfenstern (verschieben / vergrößern / maximieren / minimieren / verändern uvm.) &#8230; Offizielle Kurzbeschreibung: AutoIt v3 is a freeware BASIC-like scripting language designed [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe vor einigen Tagen <a href="http://www.autoitscript.com/" class="liexternal">AutoIt</a> wiederentdeckt. AutoIt ist eine BASIC-ähnliche Skriptsprache zur Automatisierung von Windows. Automatisierung umfasst das vielfältige &#8220;Simulieren&#8221; von Benutzerinteraktionen (Mausklicks / Tastatureingaben) oder sogar das direkte Manipulieren von Programmfenstern (verschieben / vergrößern / maximieren / minimieren / verändern uvm.) &#8230;</p>
<p>Offizielle Kurzbeschreibung:</p>
<blockquote><p><em>AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained <strong>and will run on all versions of Windows out-of-the-box with no annoying &#8220;runtimes&#8221; required!</strong></em></p></blockquote>
<p>An AutoIt faszinieren mich vor allem:</p>
<ul>
<li>die unglaubliche Fülle an Funktionen in der Standardauslieferung (das erinnert mich ein wenig an die Standardbibliothek von Python, obgleich diese natürlich noch viel mächtiger ist&#8230; dennoch: <em>&#8220;batteries included&#8221;</em>)</li>
<li>die sehr gute Dokumentation! Fast zu jeder Funktion gibt es auch ein Beispielskript. Es funktioniert ganz einfach so, wie es beschrieben ist! Auf diese Weise macht das Skripten fast so viel Spaß wie mit Python&#8230;</li>
<li>die Möglichkeit, Skripte zu kompilieren. Sie müssen dann nicht mehr interpretiert werden, sondern sind von sich aus lauffähig auf fast allen Windows-Systemen.</li>
</ul>
<h3>Beispielskript: Der Fensterretter</h3>
<p>Ich will auch noch ein ganz kleines Beispielskript vorstellen:<br />
Vorgestern hatte ein Freund von mir das Problem, dass sich ein Programmfenster außerhalb seines Desktops befand. Das Programmfenster war auch herkömmlichem Wege (z.B. neustarten) nicht wiederzubekommen und eine entsprechende Windows-Funktion hat er nicht gefunden (weil sie sehr gut versteckt oder nicht existent ist).<br />
Das Problem tritt relativ häufig dann auf, wenn man mit mehreren Bildschirmen arbeitet.</p>
<p>Zur Lösung dieses Problems habe ich kurzerhand den &#8220;FensterRetter&#8221; ins Leben gerufen. Nach 5 Minuten war er fertig und das Fenster wieder da, wo es sein sollte. Dank AutoIt!</p>
<p>Code:</p>

<div class="wp_syntax"><div class="code"><pre class="autoit" style="font-family:monospace;"><span style="font-style: italic; color: #009933;">; FensterRetter.au3</span>
<span style="font-style: italic; color: #009933;">; www.robertnitsch.de</span>
<span style="font-style: italic; color: #009933;">;</span>
&nbsp;
<span style="color: #F000FF; font-style: italic;">#Include</span> <span style="color: #FF0000; font-weight: bold;">&lt;</span>WinAPI<span style="color: #FF0000; font-weight: bold;">.</span><span style="color: #0000FF; font-style: italic; font-weight: bold;">au3</span><span style="color: #FF0000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="font-weight: bold; color: #AA0000;">$titel</span> <span style="color: #FF0000; font-weight: bold;">=</span> <span style="color: #000080; font-style: italic; font-weight: bold;">InputBox</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="font-weight: bold; color: #008080;">&quot;Fenstertitel&quot;</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #008080;">&quot;Den Titel oder wenigstens den Anfang des Titels von dem Fenster, das gerettet werden soll, angeben:&quot;</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">if</span> <span style="font-weight: bold; color: #AA0000;">$titel</span> <span style="color: #FF0000; font-weight: bold;">=</span> <span style="font-weight: bold; color: #008080;">&quot;&quot;</span> <span style="color: #0000FF; font-weight: bold;">Then</span>
	<span style="color: #000080; font-style: italic; font-weight: bold;">msgbox</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="color: #AC00A9; font-style: italic; font-weight: bold;">32</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #008080;">&quot;Fehler&quot;</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #008080;">&quot;Ohne Fenstertitel geht hier gar nichts, sorry...&quot;</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
	<span style="color: #0000FF; font-weight: bold;">exit</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="color: #AC00A9; font-style: italic; font-weight: bold;">1</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">endif</span>
&nbsp;
<span style="font-weight: bold; color: #AA0000;">$handle</span> <span style="color: #FF0000; font-weight: bold;">=</span> <span style="color: #000080; font-style: italic; font-weight: bold;">WinGetHandle</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="font-weight: bold; color: #AA0000;">$titel</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #0000FF; font-weight: bold;">if</span> <span style="font-weight: bold; color: #AA0000;">$handle</span> <span style="color: #FF0000; font-weight: bold;">=</span> <span style="font-weight: bold; color: #008080;">&quot;&quot;</span> <span style="color: #0000FF; font-weight: bold;">Then</span>
	<span style="color: #000080; font-style: italic; font-weight: bold;">msgbox</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="color: #AC00A9; font-style: italic; font-weight: bold;">32</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #008080;">&quot;Fehler&quot;</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="font-weight: bold; color: #008080;">&quot;Sorry, aber dieses Fenster konnte nicht gefunden werden... versuch einen anderen Titel!&quot;</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
	<span style="color: #0000FF; font-weight: bold;">exit</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="color: #AC00A9; font-style: italic; font-weight: bold;">1</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">Else</span>
	<span style="color: #0080FF; font-style: italic; font-weight: bold;">_WinAPI_MoveWindow</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="font-weight: bold; color: #AA0000;">$handle</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #AC00A9; font-style: italic; font-weight: bold;">10</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #AC00A9; font-style: italic; font-weight: bold;">10</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #0080FF; font-style: italic; font-weight: bold;">_WinAPI_GetWindowWidth</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="font-weight: bold; color: #AA0000;">$handle</span><span style="color: #FF0000; font-weight: bold;">&#41;</span><span style="color: #FF0000; font-weight: bold;">,</span> <span style="color: #0080FF; font-style: italic; font-weight: bold;">_WinAPI_GetWindowHeight</span><span style="color: #FF0000; font-weight: bold;">&#40;</span><span style="font-weight: bold; color: #AA0000;">$handle</span><span style="color: #FF0000; font-weight: bold;">&#41;</span><span style="color: #FF0000; font-weight: bold;">&#41;</span>
<span style="color: #0000FF; font-weight: bold;">endif</span></pre></div></div>

<p>Das Tool fragt a) den Fenstertitel ab, b) ermittelt das Fenster-Handle und c) schiebt das Fenster per API-Aufruf an die linke obere Bildschirmecke.</p>
<h3>Download</h3>
<p><a href="http://www.robertnitsch.de/wp-content/uploads/2008/07/fensterretter.zip" class="lizip">FensterRetter.zip</a> (290 KB)</p>
<h3>Fazit</h3>
<p>AutoIt ist mächtiger als vergleichbare Skriptsprachen (VBScript *kotz*), wahrscheinlich auch noch viel besser dokumentiert und sehr zuverlässig. AutoIt ist alles in allem <strong>auf jeden Fall</strong> einen Blick wert!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2008/07/29/autoit-windows-eigentliche-skriptsprache/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Veröffentlichung der Lernleistung</title>
		<link>http://www.robertnitsch.de/2008/07/07/veroffentlichung-der-lernleistung/</link>
		<comments>http://www.robertnitsch.de/2008/07/07/veroffentlichung-der-lernleistung/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 10:46:10 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Freaky]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Real Life]]></category>
		<category><![CDATA[Schule]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=99</guid>
		<description><![CDATA[Ich habe nun endlich meine Lernleistung veröffentlicht. Das Ganze hat sich wegen eines Festplattenfehlers verzögert. Außerdem fehlen nun einige ergänzende Texte, die ich speziell für die Veröffentlichung erstellt hatte. Jetzt muss erstmal das reichen, was in den Backups zu finden war, auch wenn es nun teilweise besonders schwer verdaulich ist.]]></description>
			<content:encoded><![CDATA[<p>Ich habe nun endlich <a href="http://www.robertnitsch.de/projekte/lernleistung/" class="liinternal">meine Lernleistung veröffentlicht</a>.<br />
Das Ganze hat sich wegen eines Festplattenfehlers verzögert. Außerdem fehlen nun einige ergänzende Texte, die ich speziell für die Veröffentlichung erstellt hatte. Jetzt muss erstmal das reichen, was in den Backups zu finden war, auch wenn es nun teilweise besonders schwer verdaulich ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2008/07/07/veroffentlichung-der-lernleistung/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ideenklau 2.0</title>
		<link>http://www.robertnitsch.de/2008/05/19/ideenklau-20/</link>
		<comments>http://www.robertnitsch.de/2008/05/19/ideenklau-20/#comments</comments>
		<pubDate>Mon, 19 May 2008 11:37:49 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Freaky]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Real Life]]></category>

		<guid isPermaLink="false">http://www.robertnitsch.de/?p=93</guid>
		<description><![CDATA[Ich musste kürzlich mit Erstaunen feststellen, dass ich innerhalb kurzer Zeit zum wiederholten Male nicht der erste war, dem eine mehr oder weniger geniale Idee zugeflogen ist. Durch Zufall bin ich nämlich auf OpenID gestoßen, ein Single Sign-on-System, das ziemlich genau einem System entspricht, an dessen Entwicklung ich selbst schon gearbeitet habe und das dasselbe [...]]]></description>
			<content:encoded><![CDATA[<p>Ich musste kürzlich mit Erstaunen feststellen, dass ich innerhalb kurzer Zeit zum wiederholten Male nicht der erste war, dem eine mehr oder weniger geniale Idee zugeflogen ist.</p>
<p>Durch Zufall bin ich nämlich auf <a href="http://de.wikipedia.org/wiki/OpenID" rel="nofollow" class="liwikipedia">OpenID</a> gestoßen, ein <a href="http://de.wikipedia.org/wiki/Single_Sign-On" rel="nofollow" class="liwikipedia">Single Sign-on</a>-System, das ziemlich genau einem System entspricht, an dessen Entwicklung ich selbst schon gearbeitet habe und das dasselbe Ziel hat: Das Problem der vielen Accounts/Logins auf etlichen verschiedenen Webseiten zu lösen&#8230;</p>
<p>Das würde mich ja gar nicht stören (bis auf die Arbeit, die ja jetzt quasi umsonst war, weil der OpenID-Standard sich offenbar bereits durchgesetzt hat), wenn da nicht noch dieser andere Vorfall wäre:<br />
Als ich vor kurzem eine Variante des <a href="http://de.wikipedia.org/wiki/Transportproblem" rel="nofollow" class="liwikipedia">Transportproblems</a> lösen musste, ist mir ein schier genialer Algorithmus eingefallen, der bereits verdammt gute Näherungslösungen und in den meisten Fällen sogar optimale Ergebnisse lieferte. Damals wusste ich gar nicht, dass das Problem in der Wissenschaft bereits abgehandelt wurde und ich wusste auch nicht, dass es &#8220;Transportproblem&#8221; genannt wird. Aber es handelt sich in der Tat um eine <em>Variante</em> des eigentlichen Problems (für die, die es interessiert: eine Lagerstätte/Quelle kann bei dieser Variante immer nur genau <strong>eine</strong> Ware liefern und somit nur <strong>einen</strong> Bedarf decken). Dennoch: Der Algorithmus, den ich entwickelt habe, entspricht der <a href="http://de.wikipedia.org/wiki/Vogelsche_Approximationsmethode" rel="nofollow" class="liwikipedia"><em>Vogelschen Approximationsmethode</em></a>&#8230; der Ansatz, der dahinter steckt, den gibt es also schon länger. <img src='http://www.robertnitsch.de/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> </p>
<p>Fazit: Ich lebe in der falschen Zeit! (Kommt mir auch aus ganz anderen Gründen häufig so vor.)<br />
PS: Den Titel bitte nicht falsch verstehen, ich käme im Leben nicht darauf, irgendwem vorzuwerfen, er hätte mir meine Idee geklaut, nur weil er sie vor mir hatte! Das ist eigentlich eine Selbstverständlichkeit, aber hier lesen ja immer noch Juristen mit und da erkläre ich es lieber nochmal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robertnitsch.de/2008/05/19/ideenklau-20/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
