<?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>Simon Ottenhaus</title>
	<atom:link href="http://familie-ottenhaus.de/simon/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://familie-ottenhaus.de/simon/blog</link>
	<description>Uni &#38; Software</description>
	<lastBuildDate>Fri, 23 Dec 2011 13:15:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Start von compulearnonline.de und CompuLearn Mathematik</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/12/start-von-compulearnonline-de-und-compulearn-mathematik/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/12/start-von-compulearnonline-de-und-compulearn-mathematik/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 13:15:33 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[CompuLearn]]></category>
		<category><![CDATA[Mathematik]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1379</guid>
		<description><![CDATA[Seit ein paar Tagen kann man CompuLearn Mathematik auf compulearnonline.de/mathematik/download herunterladen. Endlich ist die Webseite fertig und fast alle Bereiche mit Inhalt gefüllt. Jetzt stehen nur noch unzählige Kleinigkeiten an, wie das immer so ist&#8230; CompuLearn Mathematik ist so wie CompuLearn Englisch als 1-Jahres-Lizenz erhältlich. Kosten: So viel wie eine Nachhilfestunde [http://mathematik-bestellung.compulearnonline.de/bestellung_cm_main.html&#124;» Bestellung CompuLearn Mathematik] [...]]]></description>
			<content:encoded><![CDATA[<p>Seit ein paar Tagen kann man CompuLearn Mathematik auf <a href="http://compulearnonline.de/mathematik/download/" target="_blank" class="liexternal">compulearnonline.de/mathematik/download</a> herunterladen.</p>
<p>Endlich ist die Webseite fertig und fast alle Bereiche mit Inhalt gefüllt. Jetzt stehen nur noch unzählige Kleinigkeiten an, wie das immer so ist&#8230;</p>
<p>CompuLearn Mathematik ist so wie CompuLearn Englisch als 1-Jahres-Lizenz erhältlich. Kosten: So viel wie eine Nachhilfestunde <img src='http://familie-ottenhaus.de/simon/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
[http://mathematik-bestellung.compulearnonline.de/bestellung_cm_main.html|» Bestellung CompuLearn Mathematik]<br />
[http://bestellung.compulearnenglisch.de/bestellung_ce_main.html|» Bestellung CompuLearn Englisch]</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/12/start-von-compulearnonline-de-und-compulearn-mathematik/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/12/start-von-compulearnonline-de-und-compulearn-mathematik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verdi Streik in Stuttgart: Jetzt ist Laufen angesagt</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/10/verdi-streik-in-stuttgart-jetzt-ist-laufen-angesagt/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/10/verdi-streik-in-stuttgart-jetzt-ist-laufen-angesagt/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 09:53:10 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[SSB]]></category>
		<category><![CDATA[Streik]]></category>
		<category><![CDATA[Stuttgart]]></category>
		<category><![CDATA[Verdi]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1369</guid>
		<description><![CDATA[Verdi bestreikt in Stuttgart die Werkstätten der SSB vom heutigen Dienstag bis Freitag. Bis Freitag einschließlich sollen weder Busse noch Bahnen der SSB in Stuttgart fahren. Dieser viertägige Streik trifft viele Berufspendler und Schüler hart: Die Bürgersteige sind voll von Leuten, die zur Arbeit oder zur Schule laufen müssen. Laut SSB ist die Verkehrssicherheit der [...]]]></description>
			<content:encoded><![CDATA[<p>Verdi bestreikt in Stuttgart die Werkstätten der SSB vom heutigen Dienstag bis Freitag. Bis Freitag einschließlich sollen weder Busse noch Bahnen der SSB in Stuttgart fahren.<br />
Dieser viertägige Streik trifft viele Berufspendler und Schüler hart: Die Bürgersteige sind voll von Leuten, die zur Arbeit oder zur Schule laufen müssen.</p>
<p><em>Laut SSB ist die Verkehrssicherheit der Fahrzeuge und die Sicherheit der Fahrgäste nicht gewährleistet.</em></p>
<p>Dies finde ich etwas seltsam. Sind alle Fahrzeuge so anfällig, dass sie sofort gefährlich sind, wenn sie vier Tage lang nicht gewertet werden? Dann müssten ja alle Straßenbahnen und Busse ständig in der Werkstatt sein. Wenn nur 10% &#8211; 20% aller Fahrten ausfallen würden könnte ich dieses Argument nachvollziehen. Aber warum sind gleich alle Fahrzeuge unsicher, nur weil die Werkstatt ein paar Tage geschlossen ist?</p>
<p>Die Einnahmeausfälle durch diesen Streik dürften eher gering ausfallen, da die meisten Fahrgäste sowieso Monatsfahrkarten gekauft haben. Effektiv haben sie also bereits für Leistungen bezahlt, die jetzt nicht erbracht werden.</p>
<p>So wie das Ganze für mich aussieht wollen die Arbeitgeber mit der Einstellung des Betriebs schlechte Stimmung gegen den Streik machen. Verdi behauptet, dass die Forderungen nicht auf dem Rücken der Fahrgäste durchgesetzt werden sollen aber genau dies bewirkt diese Aktion jetzt.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/10/verdi-streik-in-stuttgart-jetzt-ist-laufen-angesagt/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/10/verdi-streik-in-stuttgart-jetzt-ist-laufen-angesagt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTo: Subversion 1.6 unter Debian lenny</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/10/howto-subversion-1-6-unter-debian-lenny/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/10/howto-subversion-1-6-unter-debian-lenny/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 20:26:27 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[HowTo / Anleitung]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1362</guid>
		<description><![CDATA[Unter Debian lenny wird zur Zeit nur Subversion 1.5.x bereitgestellt. Dies unterstützt allerdings nur Repositories bis zur Version 3. Neuere Repositories werden allerdings in der Version 4 erstellt. Wenn man mit diesen arbeiten möchte benötigt man Subversion 1.6 Vorbereitung Zunächst muss der sources.list eine neue Zeile hinzugefügt werden, damit ein sogenannter Backport von Subversion verwendet [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://familie-ottenhaus.de/simon/blog/wp-content/uploads/2009/04/subversion_logo_hor-468x64.png" alt="subversion_logo_hor-468x64" title="subversion_logo_hor-468x64" width="468" height="64" class="alignnone size-full wp-image-631" /></p>
<p>Unter Debian lenny wird zur Zeit nur Subversion 1.5.x bereitgestellt. Dies unterstützt allerdings nur Repositories bis zur Version 3. Neuere Repositories werden allerdings in der Version 4 erstellt. Wenn man mit diesen arbeiten möchte benötigt man Subversion 1.6</p>
<p><strong>Vorbereitung</strong><br />
Zunächst muss der sources.list eine neue Zeile hinzugefügt werden, damit ein sogenannter Backport von Subversion verwendet werden kann. Dies bedeutet, dass neuere Software für ältere Debain Versionen zur Verfügung gestellt wird.</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1362code5'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p13625"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p1362code5"><pre class="text" style="font-family:monospace;"># diese zeile muss zu &quot;/etc/apt/sources.list&quot; hinzugefügt werden
deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free</pre></td></tr></table></div>

<p>Nun ist es möglich Subversion 1.6 zu installieren. Allerdings muss dazu aptitude mit speziellen Parametern aufgerufen werden</p>
<p><strong>Installation</strong><br />
Zunächst müssen die Paketquellen neu geladen werden. Dies geschieht mit</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1362code6'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p13626"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1362code6"><pre class="text" style="font-family:monospace;">sudo aptitude update</pre></td></tr></table></div>

<p>Nun kann Subversion 1.6 endlich installiert werden:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1362code7'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p13627"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1362code7"><pre class="text" style="font-family:monospace;">sudo aptitude -t lenny-backports install subversion</pre></td></tr></table></div>

<p>Aptitude wird eventuell vor der Installation noch nachfragen. Wenn alles funktioniert hat sollte nun Subversion 1.6 installiert sein:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1362code8'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p13628"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p1362code8"><pre class="text" style="font-family:monospace;">#svn --version
svn, Version 1.6.12 (r955767)
   übersetzt Jun 17 2011, 07:54:11</pre></td></tr></table></div>

<p>Andere Artikel zum <a href="http://familie-ottenhaus.de/simon/blog//tag/subversion/" class="liinternal">Thema Subversion</a></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/10/howto-subversion-1-6-unter-debian-lenny/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/10/howto-subversion-1-6-unter-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listen filtern mit LINQ &#8211; c# Snippets</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/10/listen-filtern-mit-linq-c-snippets/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/10/listen-filtern-mit-linq-c-snippets/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 19:27:15 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1354</guid>
		<description><![CDATA[Damit die Reihe c# Snippets gleich mit zwei Artikel startet folgt nun noch ein kurzes aber praktisches Snippet. Problemstellung Gegeben ist eine Liste. Gesucht ist eine Teilmenge der Liste, die eine bestimmte Bedingung erfüllt. Beispiel Gegeben: List&#60;int&#62; list = new List&#60;int&#62;() { 5, 3, 17, 2, 23 }; Gesucht ist eine neue Liste, die alle [...]]]></description>
			<content:encoded><![CDATA[<p>Damit die <a href="http://familie-ottenhaus.de/simon/blog/tag/snippets/" class="liinternal">Reihe c# Snippets</a> gleich mit zwei Artikel startet folgt nun noch ein kurzes aber praktisches Snippet.</p>
<p><strong>Problemstellung</strong><br />
Gegeben ist eine Liste.<br />
Gesucht ist eine Teilmenge der Liste, die eine bestimmte Bedingung erfüllt.</p>
<p><strong>Beispiel</strong><br />
Gegeben: <code>List&lt;int&gt; list = new List&lt;int&gt;() { 5, 3, 17, 2, 23 };</code><br />
Gesucht ist eine neue Liste, die alle Elemente größer 10 enthält.</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1354code11'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p135411"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p1354code11"><pre class="csharp" style="font-family:monospace;">List<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">int</span><span style="color: #008000;">&gt;</span> list <span style="color: #008000;">=</span> ...<span style="color: #008000;">;</span>
List<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">int</span><span style="color: #008000;">&gt;</span> result <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>from i <span style="color: #0600FF;">in</span> list where i <span style="color: #008000;">&gt;</span> 10 select i<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToList</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>In dem Select-Teil kann auch Code ausgeführt werden, zum Beispiel wenn die Quadrate der Zahlen gesucht sind:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1354code12'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p135412"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p1354code12"><pre class="csharp" style="font-family:monospace;">List<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">int</span><span style="color: #008000;">&gt;</span> list <span style="color: #008000;">=</span> ...<span style="color: #008000;">;</span>
List<span style="color: #008000;">&lt;</span><span style="color: #FF0000;">int</span><span style="color: #008000;">&gt;</span> result <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span>from i <span style="color: #0600FF;">in</span> list where i <span style="color: #008000;">&gt;</span> 10 select i <span style="color: #008000;">*</span> i<span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">ToList</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/10/listen-filtern-mit-linq-c-snippets/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/10/listen-filtern-mit-linq-c-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SerializeToString &#8211; c# Snippets</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/10/serializetostring-c-snippets/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/10/serializetostring-c-snippets/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 19:10:58 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1337</guid>
		<description><![CDATA[Dieser Artikel ist der erste Teil der Reihe c# Snippets. Oftmals hat man eine Liste von Elementen möchte diese aber als einen String darstellen. Beispiel Gegegen ist eine Liste von decimal-Werten: List&#60;decimal&#62;list = new list&#60;decimal&#62;{ 1.05, 2.50; 3.66 }; Gewünscht ist "1,05; 2,50; 3,66" Der herkömmliche Ansatz &#8230; sieht dann vermutlich so oder so ähnlich [...]]]></description>
			<content:encoded><![CDATA[<p><em>Dieser Artikel ist der erste Teil der <a href="http://familie-ottenhaus.de/simon/blog/tag/snippets/" class="liinternal">Reihe c# Snippets</a>.</em></p>
<p>Oftmals hat man eine Liste von Elementen möchte diese aber als einen String darstellen.</p>
<p><strong>Beispiel</strong><br />
Gegegen ist eine Liste von decimal-Werten:<br />
<code>List&lt;decimal&gt;list = new list&lt;decimal&gt;{ 1.05, 2.50; 3.66 };</code><br />
Gewünscht ist <code>"1,05; 2,50; 3,66"</code></p>
<p><strong>Der herkömmliche Ansatz</strong><br />
&#8230; sieht dann vermutlich so oder so ähnlich aus:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1337code17'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p133717"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p1337code17"><pre class="csharp" style="font-family:monospace;">StringBuilder sb <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> StringBuilder<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">foreach</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">decimal</span> d <span style="color: #0600FF;">in</span> list<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    sb.<span style="color: #0000FF;">Append</span><span style="color: #000000;">&#40;</span>d.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;0.00&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;;  &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>sb.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">&gt;</span> 0<span style="color: #000000;">&#41;</span> sb.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-=</span><span style="color: #FF0000;">2</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// Trennzeichen am Ende entfernen</span>
<span style="color: #0600FF;">return</span> sb.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p><strong>Die Hilfsmethode SerializeToString mit Lamda-Ausdrücken</strong></p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1337code18'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p133718"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p1337code18"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">static</span> <span style="color: #FF0000;">class</span> StringExtensions
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #FF0000;">string</span> SerializeToString<span style="color: #008000;">&lt;</span>T<span style="color: #008000;">&gt;</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span> IEnumerable<span style="color: #008000;">&lt;</span>T<span style="color: #008000;">&gt;</span> list, Func<span style="color: #008000;">&lt;</span>T, <span style="color: #FF0000;">string</span><span style="color: #008000;">&gt;</span> serialize, <span style="color: #FF0000;">string</span> separator<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        StringBuilder sb2 <span style="color: #008000;">=</span> list.<span style="color: #0000FF;">Aggregate</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> StringBuilder<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, <span style="color: #000000;">&#40;</span>sb, item<span style="color: #000000;">&#41;</span> <span style="color: #008000;">=&gt;</span> sb.<span style="color: #0000FF;">Append</span><span style="color: #000000;">&#40;</span>serialize<span style="color: #000000;">&#40;</span>item<span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> separator<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>sb2.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">&gt;</span> 0<span style="color: #000000;">&#41;</span> sb2.<span style="color: #0000FF;">Length</span> <span style="color: #008000;">-=</span> separator.<span style="color: #0000FF;">Length</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">return</span> sb2.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p><strong>Der Aufruf von SerializeToString</strong><br />
ist nun wesentlich kürzer und meiner Meinung nach besser lesbar:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1337code19'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p133719"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1337code19"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">string</span> serializedValues <span style="color: #008000;">=</span> list.<span style="color: #0000FF;">SerializeToString</span><span style="color: #000000;">&#40;</span>d <span style="color: #008000;">=&gt;</span> d.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;0.00&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>Natürlich funktioniert dies auch für Listen von komplexeren Datenstrukturen und auch verschachtelt:</p>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1337code20'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p133720"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p1337code20"><pre class="csharp" style="font-family:monospace;">List<span style="color: #008000;">&lt;</span>List<span style="color: #008000;">&lt;</span>DateTime<span style="color: #008000;">&gt;&gt;</span> list <span style="color: #008000;">=</span> ...<span style="color: #008000;">;</span>
&nbsp;
<span style="color: #FF0000;">string</span> serializedValues <span style="color: #008000;">=</span> list.<span style="color: #0000FF;">SerializeToString</span><span style="color: #000000;">&#40;</span>i1 <span style="color: #008000;">=&gt;</span> i1.<span style="color: #0000FF;">Count</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot; Elemente: &quot;</span> <span style="color: #008000;">+</span> i1.<span style="color: #0000FF;">SerializeToString</span><span style="color: #000000;">&#40;</span>i2 <span style="color: #008000;">=&gt;</span> i2.<span style="color: #0000FF;">ToString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>, <span style="color: #666666;">&quot;, &quot;</span><span style="color: #000000;">&#41;</span>, <span style="color: #666666;">&quot;<span style="color: #008080; font-weight: bold;">\r</span><span style="color: #008080; font-weight: bold;">\n</span>&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #008080; font-style: italic;">// Beispiel-Ausgabe:</span>
<span style="color: #008080; font-style: italic;">// 1.1.2010, 2.1.2010</span>
<span style="color: #008080; font-style: italic;">// 1.1.2011, 2.1.2011, 3.1.2011</span>
<span style="color: #008080; font-style: italic;">// ...</span></pre></td></tr></table></div>

<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/10/serializetostring-c-snippets/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/10/serializetostring-c-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordbooker Plugin installiert</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/07/wordbooker-plugin-installiert/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/07/wordbooker-plugin-installiert/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 09:58:04 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordbooker]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1329</guid>
		<description><![CDATA[&#8230; wenn alles funktioniert hat sollten neue Beiträge auf meinem Blog jetzt auch auf Facebook erscheinen.]]></description>
			<content:encoded><![CDATA[<p>&#8230; wenn alles funktioniert hat sollten neue Beiträge auf meinem Blog jetzt auch auf Facebook erscheinen.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/07/wordbooker-plugin-installiert/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/07/wordbooker-plugin-installiert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datenschutz: Anti Facebook Tracker &#8211; Alle Like-Buttons entfernen</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/07/datenschutz-anti-facebook-tracker-like-buttons-entfernen/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/07/datenschutz-anti-facebook-tracker-like-buttons-entfernen/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 15:15:18 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[HowTo / Anleitung]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Like-Button]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1316</guid>
		<description><![CDATA[Facebook kann über die Like-Buttons problemlos Benutzerprofile erstellen &#8211; auch von nicht angemeldeten Nutzern. Jedes Mal, wenn ein Like-Button erscheint wird eine Anfrage an Facebook übermittelt. In dieser befinden sich ausreichend Daten, so dass Facebook nachvollziehen kann wann man welche Webseite aufgerufen hat. Ein effektiver Weg dies zu verhindern ist die Like-Buttons nicht mehr zu [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook kann über die Like-Buttons problemlos Benutzerprofile erstellen &#8211; <strong>auch von nicht angemeldeten Nutzern</strong>.</p>
<p>Jedes Mal, wenn ein Like-Button erscheint wird eine Anfrage an Facebook übermittelt. In dieser befinden sich ausreichend Daten, so dass Facebook nachvollziehen kann wann man welche Webseite aufgerufen hat.</p>
<p>Ein effektiver Weg dies zu verhindern ist die Like-Buttons nicht mehr zu laden. Dazu benötigt man</p>
<ul>
<li><a href="https://addons.mozilla.org/de/firefox/addon/adblock-plus/" target="_blank" class="liexternal">Adblock Plus</a> (kostenlose Erweiterung für Firefox)</li>
<li>spezielle Filterregeln für Adblock Plus:</li>
</ul>

<div class="wp_codebox_msgheader"><span class="right"></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1316code22'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p131622"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p1316code22"><pre class="text" style="font-family:monospace;">||facebook.com^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net
||facebook.net^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net
||fbcdn.com^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net
||fbcdn.net^$domain=~facebook.com|~facebook.net|~fbcdn.com|~fbcdn.net</pre></td></tr></table></div>

<p><em>Die Regeln bedeuten folgendes:</em> Blockiere Inhalte von Facebook, wenn die Seite auf der der Inhalt angezeigt werden soll nicht Facebook ist.<br />
<em>Oder positiv ausgedrückt:</em> Nur auf Facebook können Inhalte von Facebook geladen werden.</p>
<p><strong>Regeln hinzufügen</strong><br />
Die Regeln müssen nach der Installation von Adblock Plus einzeln neu hinzugefügt werden.</p>
<p><strong>Fazit</strong><br />
Alle Like-Buttons sind verschwunden.<br />
Facebook kann das Surfverhalten nicht mehr nachvollziehen.<br />
facebook.com kann trotzdem noch wie gewohnt verwendet werden.<br />
Zeitaufwand: 5-10 Minuten</p>
<p><strong>PS</strong><br />
Der Facebook-Link auf meinem Blog besteht aus einem Bild, das von diesem Server ausgeliefert wird. Erst beim Klick auf das &#8220;f&#8221; wird eine Verbindung zu Facebook hergestellt.</p>
<p><strong>Quelle</strong><br />
<a href="http://lifehacker.com/5542041/block-sites-from-using-your-facebook-login-with-adblock-plus/" target="_blank" class="liexternal">lifehacker.com</a></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/07/datenschutz-anti-facebook-tracker-like-buttons-entfernen/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/07/datenschutz-anti-facebook-tracker-like-buttons-entfernen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Steam Summer Camp Sale &#8211; Jetzt zuschlagen?</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/07/steam-summer-camp-sale-jetzt-zuschlagen/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/07/steam-summer-camp-sale-jetzt-zuschlagen/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 10:20:14 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Steam]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1305</guid>
		<description><![CDATA[Bei Steam gibt es zur Zeit jeden Tag ca. 12 neue (sonder-) Angebote. Teilweise sind die Spiele bis zu 75% reduziert &#8211; sogar im Vergleich zu Amazon Preisen. Aber Vorsicht: Bei manchen &#8220;reduzierten&#8221; Spielen spart man praktisch nichts gegenüber regulären Preisen bei anderen Händlern. Es werden unter anderem auch ziemlich schlecht bewertete Spiele angeboten &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Bei Steam gibt es zur Zeit jeden Tag ca. 12 neue (sonder-) Angebote. Teilweise sind die Spiele bis zu 75% reduziert &#8211; sogar im Vergleich zu Amazon Preisen.</p>
<p>Aber Vorsicht:<br />
Bei manchen &#8220;reduzierten&#8221; Spielen spart man praktisch nichts gegenüber regulären Preisen bei anderen Händlern.<br />
Es werden unter anderem auch ziemlich schlecht bewertete Spiele angeboten &#8211; aber auch richtig gute Spiele.</p>
<p>Trotzdem bzw. gerade deshalb lohnt es sich alle Angebote genau zu prüfen:</p>
<ol>
<li>Ersparnis gegenüber &#8220;realen&#8221; Preisen ermitteln</li>
<li><a href="http://www.metacritic.com/" target="_blank" class="liexternal">metacritic.com</a> konsultieren</li>
<li>Entscheiden, ob einem das Spiel gefällt<br />
	<a href="http://de.wikipedia.org/" target="_blank" rel="nofollow" class="liwikipedia">Wikipedia Artikel lesen</a>, <a href="http://pc.gametrailers.com/" target="_blank" class="liexternal">Trailer schauen</a></li>
<li>Viel Zeit zum Spielen einplanen &#8211; in meinem Fall nachdem ich die Prüfungen hinter mir habe.</li>
</ol>
<p>Link zum Steam-Store<br />
<a href="http://store.steampowered.com/" target="_blank" class="liexternal">store.steampowered.com</a></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/07/steam-summer-camp-sale-jetzt-zuschlagen/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/07/steam-summer-camp-sale-jetzt-zuschlagen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aufgaben und Lösungen zum 4. Tutorium online</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/06/aufgaben-und-losungen-zum-4-tutorium-online/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/06/aufgaben-und-losungen-zum-4-tutorium-online/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 09:31:23 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Uni Stuttgart]]></category>
		<category><![CDATA[Informatikpraktikum]]></category>
		<category><![CDATA[Rekursion]]></category>
		<category><![CDATA[Tutorium]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1299</guid>
		<description><![CDATA[Letztes Mal hatte ich im Tutorium angekündigt das pdf zur Rekursion hochzuladen &#8211; was ich auch gemacht habe.. etwas später am Abend. Leider waren bis dahin schon einige vergeblich suchend hier vorbeigekommen. Dieses Mal ist alles besser: Die Dateien sind jetzt schon online: » InfoP-Downloads]]></description>
			<content:encoded><![CDATA[<p>Letztes Mal hatte ich im Tutorium angekündigt das pdf zur Rekursion hochzuladen &#8211; was ich auch gemacht habe.. etwas später am Abend. Leider waren bis dahin schon einige vergeblich suchend hier vorbeigekommen.</p>
<p>Dieses Mal ist alles besser: Die Dateien sind jetzt schon online:<br />
<a href="http://familie-ottenhaus.de/simon/blog/infop/" class="liinternal">» InfoP-Downloads</a></p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/06/aufgaben-und-losungen-zum-4-tutorium-online/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/06/aufgaben-und-losungen-zum-4-tutorium-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portal 2: Sehr viel &#8220;Community Content&#8221;</title>
		<link>http://familie-ottenhaus.de/simon/blog/2011/06/portal-2-sehr-viel-community-content/</link>
		<comments>http://familie-ottenhaus.de/simon/blog/2011/06/portal-2-sehr-viel-community-content/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 20:39:45 +0000</pubDate>
		<dc:creator>Simon Ottenhaus</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Portal 2]]></category>

		<guid isPermaLink="false">http://familie-ottenhaus.de/simon/blog/?p=1294</guid>
		<description><![CDATA[Portal 2 ist zwar länger als Portal 1, aber auch ziemlich schnell durchgespielt. Zum Glück gibt es auf thinkingwithportals.com sehr viele gute Einzelspieler- und Coopkarten zum Download.]]></description>
			<content:encoded><![CDATA[<p><img src="http://ottenhaus.de/simon/turret_500.png" alt="portal turret" /></p>
<p>Portal 2 ist zwar länger als Portal 1, aber auch ziemlich schnell durchgespielt. Zum Glück gibt es auf <a href="http://www.thinkingwithportals.com/" target="_blank" class="liexternal">thinkingwithportals.com</a> sehr viele gute Einzelspieler- und Coopkarten zum Download.</p>
<p class="facebook"><a href="http://www.facebook.com/share.php?u=http://familie-ottenhaus.de/simon/blog/2011/06/portal-2-sehr-viel-community-content/" target="_blank" class="liimagelink"><img src="http://familie-ottenhaus.de/simon/blog/wp-content/plugins/add-to-facebook-plugin/facebook_share_icon.gif" alt="Share on Facebook" title="Share on Facebook" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://familie-ottenhaus.de/simon/blog/2011/06/portal-2-sehr-viel-community-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

