<?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>of bits and bytes</title>
	<atom:link href="http://blog.rolandbaer.ch/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rolandbaer.ch</link>
	<description>Der normale Wahnsinn in der Softwarewelt - The ordinary madness in the world of software.</description>
	<lastBuildDate>Fri, 18 May 2012 09:36:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Slippery When Wet #6: XPath and the Default Namespace</title>
		<link>http://blog.rolandbaer.ch/2012/05/18/slippery-when-wet-6-xpath-and-the-default-namespace/</link>
		<comments>http://blog.rolandbaer.ch/2012/05/18/slippery-when-wet-6-xpath-and-the-default-namespace/#comments</comments>
		<pubDate>Fri, 18 May 2012 09:36:01 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Pitfall]]></category>
		<category><![CDATA[Slippery When Wet]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Namespace]]></category>
		<category><![CDATA[SWW]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=516</guid>
		<description><![CDATA[Recently, I tried to work on a XmlDocument with XPath in C#. But the only expression that worked was "/*". According to the .NET Documentation the expressions should work, but they didn't.]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.rolandbaer.ch/wp-content/uploads/2008/10/slipperywhenwet.gif"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2008/10/slipperywhenwet-216x300.gif" alt="" title="Slippery When Wet" width="216" height="300" class="alignright size-medium wp-image-61" /></a>I proudly present to you the sixth in a infinite number of posts of “Slippery When Wet.” In these posts I show you a little bastard I stumbled on.</p>
<p>Recently, I tried to work on a XmlDocument with XPath in C#. To get the right expressions easily I used the<a href="http://www.altova.com/xml-editor/"> XML Spy</a> from <a href="http://www.altova.com/">Altova</a>. As soon as I got the right XPath expressions I started Visual Studio to work in my .NET Application. But here, the only expression that worked was &#8220;/*&#8221;. According to the .NET Documentation the expressions should work, but they didn&#8217;t.</p>
<p>So I tried another XML file, one from the examples in the .NET Documentation of XPath. And with this file the (corresponding) expressions worked as expected. So I searched the difference of the two XML files. After a short time I found the relevant difference: The file that worked had no <a href="http://www.w3schools.com/xml/xml_namespaces.asp">namespace</a> defined, whereas the non-working file had two namespaces. One namespace with a prefix (xmlns:prefix=&#8221;URI&#8221;) and a default namespaces (xmlns=&#8221;URI&#8221;).</p>
<p>As I got the reason for my problem I had to look for a solution. A little bit of googling brought me the solution. I had to add the default namespace to the NamespaceManager with a prefix and then use the XPath expressions with the defined prefix.</p>
<p>In .NET 3.5 Microsoft introduced the XDocument class as a alternative (or a replacement) for XmlDocument. The C# code differs a little bit depending on the used class. I found a description when using the <a href="http://social.msdn.microsoft.com/Forums/eu/xmlandnetfx/thread/20cae029-62eb-4795-97c5-f741c2f01e07">XmlDocument class</a> and two when using the <a href="http://stackoverflow.com/questions/3715936/wierdness-with-xdocument-xpath-and-namespaces">XDocument</a> <a href="http://stackoverflow.com/questions/934486/how-do-i-get-a-nametable-from-an-xdocument">class</a>. </p>
<p>With the added prefix for the default namespace my XPath expressions worked as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/05/18/slippery-when-wet-6-xpath-and-the-default-namespace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual T# (TSharp) &#8211; Allererster Schritt</title>
		<link>http://blog.rolandbaer.ch/2012/04/23/visual-tsharp-allererster-schritt/</link>
		<comments>http://blog.rolandbaer.ch/2012/04/23/visual-tsharp-allererster-schritt/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 19:45:50 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[T#]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[TSharp]]></category>
		<category><![CDATA[Unit Test]]></category>
		<category><![CDATA[Visual T#]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=489</guid>
		<description><![CDATA[Pretty Objects hat Visual T# in der Version 3.0 veröffentlicht. Zeit, dieses Tool einmal näher anzuschauen. Die Installation erfolgt über ein Setup und muss hier wohl nicht weiter beschrieben werden. Ich starte das Ganze mit einem kleinen Vergleich zwischen dem Testing Framework von Microsoft und Visual T# an einem einfachen Beispiel. Dieses Beispiel hatte ich [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://prettyobjects.com/">Pretty Objects</a> hat <a href="http://www.prettyobjects.com/en-us/products/visualt.aspx">Visual T#</a> in der <a href="http://forum.prettyobjects.com/topic140-visual-t-v300-is-released.aspx">Version 3.0</a> veröffentlicht. Zeit, dieses Tool einmal näher anzuschauen.</p>
<p>Die Installation erfolgt über ein Setup und muss hier wohl nicht weiter beschrieben werden.</p>
<p>Ich starte das Ganze mit einem kleinen Vergleich zwischen dem Testing Framework von Microsoft und Visual T# an einem einfachen Beispiel. Dieses Beispiel hatte ich vor einiger Zeit erstellt, um NUnit vorzustellen.</p>
<p><strong>Die zu testende Bibliothek</strong></p>
<div class="codecolorer-container csharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">namespace</span> Calculator<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Calc<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">byte</span> Add<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">byte</span> b1, <span style="color: #6666cc; font-weight: bold;">byte</span> b2<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">int</span> res <span style="color: #008000;">=</span> b1 <span style="color: #008000;">+</span> b2<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>res <span style="color: #008000;">&gt;</span> <span style="color: #6666cc; font-weight: bold;">Byte</span><span style="color: #008000;">.</span><span style="color: #0000FF;">MaxValue</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> OverflowException<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">byte</span><span style="color: #008000;">&#41;</span>res<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Die Funktion beinhaltet bereits die Überlauf-Absicherung für den zweiten Test, ansonsten nicht viel spannendes an diesem Code&#8230;</p>
<p><strong>Erster Test mit Microsoft Test Framework</strong></p>
<div class="codecolorer-container csharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">namespace</span> CalculatorMSTest<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#91;</span>TestClass<span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> CalcTest<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#91;</span>TestMethod<span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> AddTest<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calc calc <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Calc<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">byte</span> sum <span style="color: #008000;">=</span> calc<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">12</span>, <span style="color: #FF0000;">26</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">AreEqual</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">38</span>, sum<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Auch hier gibt es nicht viel spannendes: Initialisierung (Zeile 9), Ausführung (Zeile 11) und Validierung (Zeile 13) wie wahrscheinlich schon tausend mal gesehen.</p>
<p><strong>Der erste Test mit T#</strong></p>
<div class="codecolorer-container tsharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="tsharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">namespace</span> CalculatorTSharp<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0600FF; font-weight: bold;">testclass</span> CalculatorTest <span style="color: #0600FF; font-weight: bold;">for</span> Calc<br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">test</span> Add<span style="color: #008000;">&#40;</span> <span style="color: #6666cc; font-weight: bold;">byte</span>, <span style="color: #6666cc; font-weight: bold;">byte</span> <span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; Calc calc <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">new</span> Calc<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">runtest</span> <span style="color: #6666cc; font-weight: bold;">byte</span> sum <span style="color: #008000;">=</span> calc<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">12</span>, <span style="color: #FF0000;">26</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">assert</span> sum <span style="color: #008000;">==</span> <span style="color: #FF0000;">38</span><span style="color: #008000;">;</span> &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Auf den ersten Blick könnte man meinen, es sei auch normaler C#-Code, aber auf den zweiten Blick fallen dann die Unterschiede auf:</p>
<ol>
<li><strong>testclass anstelle von class</strong> (Zeile 4)<br />
	Mit dem Keyword testclass wird angegeben, dass es sich um eine Klasse für Tests handelt.</li>
<li><strong>test als Bezeichner für Testmethode</strong> (Zeile 6)<br />
	Das Keyword test bezeichnet eine Testmethode. Mit dem nachfolgenden Add(byte, byte) kann angegeben werden, welche Methode mit diesem Test überprüft werden soll. Dies ist aber optional.</li>
<li><strong>Deklarierung des Stimuli mit runtest</strong> (Zeile 10)<br />
	Die Anweisung, mit welcher der Stimuli des Tests ausgelöst wird, wird mit runtest bezeichnet. Somit ist klar ersichtlich, was Initialisierung und was Ausführung der Tests ist.</li>
<li><strong>Überprüfung mit Keyword assert.</strong> (Zeile 12)<br />
	Für die Überprüfung gibt es das Keyword assert und nicht ein Objekt wie in den bekannten Testing Frameworks</li>
<li><strong>keine Attribute</strong><br />
	Da T# extra für Tests entwickelt wurde sind keine zusätzlichen Attribute nötig (siehe auch Punkt 1).</li>
</ol>
<p>Eine etwas andere Syntax aber keine spektakulären Neuerungen. Ein paar eingesparte Attribute, sonst etwa der gleiche Aufwand. Bisher also kein richtiger Grund, eine neue Syntax zu lernen.</p>
<p>Schauen wir und noch einen zweiten Test an:</p>
<p><strong>Zweiter Test mit Microsoft Test Framework</strong></p>
<div class="codecolorer-container csharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#91;</span>TestMethod, ExpectedException<span style="color: #008000;">&#40;</span><a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span style="color: #008000;">typeof</span></a><span style="color: #008000;">&#40;</span><span style="color: #000000;">System</span><span style="color: #008000;">.</span><span style="color: #0000FF;">OverflowException</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> BigAddTest<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Calc calc <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Calc<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; calc<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">150</span>, <span style="color: #FF0000;">230</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Der zweite Test validiert die Überlauf-Prüfung. Die erwartete Ausnahme wird als Attribut (Zeile 1) angegeben.</p>
<p><strong>Der zweite Test mit T#</strong></p>
<div class="codecolorer-container tsharp geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="tsharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">test</span> Add<span style="color: #008000;">&#40;</span> <span style="color: #6666cc; font-weight: bold;">byte</span> a, <span style="color: #6666cc; font-weight: bold;">byte</span> b<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; Calc calc <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">new</span> Calc<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">runtest</span> calc<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">150</span>, <span style="color: #FF0000;">230</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">assert</span> <span style="color: #0600FF; font-weight: bold;">thrown</span> <span style="color: #000000;">System</span><span style="color: #008000;">.</span><span style="color: #0000FF;">OverflowException</span><span style="color: #008000;">;</span> &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p>Der wichtigste Unterschied betrifft die Ausnahme. Bei T# wird das Auftreten der Ausnahme ebenfalls mit einem assert Befehl validiert. Der Test folgt somit dem bekannten Schema Initialisierung (Zeile 3), Ausführung (Zeile 5) und Validierung (Zeile 7). </p>
<p>In diesem Beispiel haben wir aus meiner Sicht einen Mehrwert mit T#: Das Schema wird beibehalten, während bei Tests mit dem Microsoft Test Framework die Validierung in ein Attribut an den Anfang des Tests geschoben wird.</p>
<p><strong>Ausblick:</strong><br />
T# bietet noch weitere Vorteile, die ich in einem weiteren Artikel noch beleuchten möchte.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/04/23/visual-tsharp-allererster-schritt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piwik in Version 1.7.1 erschienen</title>
		<link>http://blog.rolandbaer.ch/2012/02/26/piwik-in-version-1-7-1-erschienen/</link>
		<comments>http://blog.rolandbaer.ch/2012/02/26/piwik-in-version-1-7-1-erschienen/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 15:44:36 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=484</guid>
		<description><![CDATA[Schlag auf Schlag geht es weiter, 10 Tage nach dem Release 1.7 ist schon die Version 1.7.1 von Piwik veröffentlicht worden.]]></description>
			<content:encoded><![CDATA[<p>Schlag auf Schlag geht es weiter, 10 Tage nach dem <a href="http://blog.rolandbaer.ch/2012/02/17/piwik-in-version-1-7-erschienen/" title="Piwik in Version 1.7 erschienen">Release 1.7</a> ist schon die Version 1.7.1 von <a href="http://piwik.org/">Piwik</a> veröffentlicht worden.</p>
<p>In diesem Release wurde ein neues Feature eingebaut: Man kann nun in jedem Report auswählen, wie viele Einträge in der Liste erscheinen. Die dabei gewählten Werte werden gespeichert, so dass beim nächsten Besuch wieder die gewünschte Anzahl angezeigt wird.</p>
<p>In den <a href="http://piwik.org/blog/2012/02/piwik-1-7-1/">15 abgearbeiteten Tickets</a> wurden neben dem oben erwähnten neuen Feature auch Fehler behoben.</p>
<p>Achtung: Das Update hat zur Folge, dass das archive.php Script neu einen Parameter verlangt, wenn es aus einem <a href="http://piwik.org/setup-auto-archiving/">cronjob </a>gestartet wird. Ein bereits eingerichteter cronjob muss deshalb angepasst werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/02/26/piwik-in-version-1-7-1-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piwik in Version 1.7 erschienen</title>
		<link>http://blog.rolandbaer.ch/2012/02/17/piwik-in-version-1-7-erschienen/</link>
		<comments>http://blog.rolandbaer.ch/2012/02/17/piwik-in-version-1-7-erschienen/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 17:19:38 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=479</guid>
		<description><![CDATA[Vier Monate nach demRelease 1.6 ist die Version 1.7 von Piwik veröffentlicht worden.]]></description>
			<content:encoded><![CDATA[<p>Vier Monate nach dem <a href="http://blog.rolandbaer.ch/2011/10/29/piwik-in-version-1-6-erschienen/" title="Piwik in Version 1.6 erschienen">Release 1.6</a> ist die Version 1.7 von <a href="http://piwik.org/">Piwik</a> veröffentlicht worden.</p>
<p>Aus meiner Sicht eine der wichtigsten Neuerungen sind die Grafiken, die nun in den generierten <a href="http://piwik.org/blog/2012/02/new-features-in-piwik-1-7-screenshots/#toc-pdf-html-reports-now-include-graphs-optional">HTML- und PDF- Reports</a> möglich sind.</p>
<p>Es wurden aber auch neue Auswertungen zur Verfügung gestellt, wie z.B. der <a href="http://piwik.org/blog/2012/02/new-features-in-piwik-1-7-screenshots/#toc-loyalty-report">Loyalty report</a> oder der <a href="http://piwik.org/blog/2012/02/new-features-in-piwik-1-7-screenshots/#toc-recency-report">Recency report</a>.</p>
<p>Die Darstellung des Dashboards kann nun konfiguriert werden. So kann die Darstellung z.B. zwei- oder vierspaltig sein anstelle der standardmässigen drei Spalten.</p>
<p>In den <a href="http://piwik.org/blog/2012/02/7775/">99 abgearbeiteten Tickets</a> wurden neben den verschiedenen Neuerungen und Verbesserungen auch Fehler behoben und Sicherheitslücken geschlossen.</p>
<p>An dieser Stelle einmal ein grosses Dankeschön an das <a href="http://piwik.org/the-piwik-team/">Piwik Team</a> und allen anderen, die zu Piwik beigetragen haben!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/02/17/piwik-in-version-1-7-erschienen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wieviel sind 72 Brontobytes?</title>
		<link>http://blog.rolandbaer.ch/2012/02/07/wieviel-sind-72-brontobytes/</link>
		<comments>http://blog.rolandbaer.ch/2012/02/07/wieviel-sind-72-brontobytes/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 20:16:57 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Bronto]]></category>
		<category><![CDATA[Festplatte]]></category>
		<category><![CDATA[File System]]></category>
		<category><![CDATA[Harddisk]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=468</guid>
		<description><![CDATA[In einer Pressemeldung in der iX zum Dateisystem GlusterFS bin ich über die maximalen Grösse von 72 Brontobytes gestolpert. Bronto(-bytes) hatte ich bis anhin noch nie gehört. Als offizieller SI-Einheitenpräfix existiert dieser Begriff (noch) nicht, weitere Recherchen ergaben aber, dass es sich um das Präfix für 1027 (oder auch hier) handelt. Solche unvorstellbar grossen Zahlen [...]]]></description>
			<content:encoded><![CDATA[<p>In einer Pressemeldung in der <a href="http://www.ix.de">iX</a> zum Dateisystem <a href="http://www.gluster.org/">GlusterFS</a> bin ich über die maximalen Grösse von <a href="http://www.gluster.org/about/">72 Brontobytes</a> gestolpert. Bronto(-bytes) hatte ich bis anhin noch nie gehört. Als offizieller <a href="http://de.wikipedia.org/wiki/Vors%C3%A4tze_f%C3%BCr_Ma%C3%9Feinheiten">SI-Einheitenpräfix</a> existiert dieser Begriff (noch) nicht, weitere Recherchen ergaben aber, dass es sich um das <a href="http://www.whatsabyte.com/">Präfix für 10<sup>27</sup></a> (oder auch <a href="http://www.urbandictionary.com/define.php?term=brontobyte">hier</a>) handelt.<br />
Solche unvorstellbar grossen Zahlen schreien nach einem Vergleich, um sie fassbarer zu machen.</p>
<p>Die zur Zeit grössten erhältlichen Festplatten fassen 4 Terabyte. Somit müssten wir 18 * 10<sup>15</sup> Festplatten einsetzen um das Dateisystem an das Limit zu bringen:</p>
<p>(72 * 10<sup>27</sup>) / (4 * 10<sup>12</sup>) = 18 * 10<sup>15</sup></p>
<p>Wenn wir nun Server einsetzen, in denen wir auf einer Bauhöhe von 2 Units 12 Festplatten benutzen können und ein herkömmliches Rack mit 42 Units einsetzen können wir in einem Rack 21 Server einsetzen. Das Rack benötigt eine Standfläche von 0,6 m<sup>2</sup>. Dann benötigen wir für alle Racks (Seite an Seite und Tür an Tür) 42 * 10<sup>6</sup> km<sup>2</sup> Standfläche:</p>
<p>(18 * 10<sup>15</sup>) / (12 * 21) * 0.6 m<sup>2</sup> = 42 * 10<sup>12</sup> m<sup>2</sup> = 42 * 10<sup>6</sup> km<sup>2</sup></p>
<p><a href="http://de.wikipedia.org/wiki/Schweiz">Die Schweiz</a> hat eine Fläche von ca. 42&#8217;000 km<sup>2</sup>. Daraus folgt, dass wir 1000 mal die Fläche der Schweiz benötigen würden, um alle Server aufzustellen.</p>
<p><a href="http://de.wikipedia.org/wiki/Europa">Europa</a> hat eine Fläche von 10,18 * 10<sup>6</sup> km<sup>2</sup>. Demzufolge wäre mehr als 4 mal die Fläche von Europa nötig für alle Server.</p>
<p>Zur Zeit wäre das Ausreizen des Dateisystems also noch ein Platzproblem, auch bei einem durchgängig vierstöckigen Rechenzentrum würde ganz Europa durch das Rechenzenter bedeckt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/02/07/wieviel-sind-72-brontobytes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piwik in c&#8217;t 4/2012</title>
		<link>http://blog.rolandbaer.ch/2012/02/05/piwik-in-ct-42012/</link>
		<comments>http://blog.rolandbaer.ch/2012/02/05/piwik-in-ct-42012/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 16:14:10 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=465</guid>
		<description><![CDATA[Die aktuelle c&#8217;t (Ausgabe 4/2012) beinhaltet den Artikel &#8220;Tiefen-Analyse&#8221; zum Thema Web-Analytics. Er behandelt zum einen Google Analytics, stellt aber auch verschiedene komerzielle und freie Alternativen vor, unter anderem auch Piwik. Daneben werden aber auch noch Heatmap-Dienste und -Programme vorgestellt. Dabei handelt es sich um Auswertungen, auf welche Elemente der Webseite die Benutzer am Häufigsten [...]]]></description>
			<content:encoded><![CDATA[<p>Die aktuelle <a href="http://www.ct.de/" title="c't Magazin">c&#8217;t</a> (<a href="http://www.heise.de/ct/inhalt/2012/04/6/">Ausgabe 4/2012</a>) beinhaltet den Artikel &#8220;<a href="http://www.heise.de/ct/inhalt/2012/04/142/">Tiefen-Analyse</a>&#8221; zum Thema Web-Analytics. Er behandelt zum einen Google Analytics, stellt aber auch verschiedene komerzielle und freie Alternativen vor, unter anderem auch <a href="http://www.piwik.org/">Piwik</a>. Daneben werden aber auch noch <a href="http://de.wikipedia.org/wiki/Heatmap">Heatmap</a>-Dienste und -Programme vorgestellt. Dabei handelt es sich um Auswertungen, auf welche Elemente der Webseite die Benutzer am Häufigsten klicken. So können Schwachstellen der Webseite (z.B. schlecht erkennbare Links oder Elemente, die von Benutzern als Links wahrgenommen werden, aber keine Links sind) noch besser erkannt werden.<br />
Der Artikel ist keine umfassende Marktanalyse und auch kein detaillierter Test, gibt aber einen guten Überblick über verschiedene Dienste und spricht auch die Datenschutzproblematik an.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/02/05/piwik-in-ct-42012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rekursiv vs. Iterativ</title>
		<link>http://blog.rolandbaer.ch/2012/01/29/rekursiv-vs-iterativ/</link>
		<comments>http://blog.rolandbaer.ch/2012/01/29/rekursiv-vs-iterativ/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 17:16:21 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Factorial]]></category>
		<category><![CDATA[Fakultät]]></category>
		<category><![CDATA[Mathematik]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Stack Overflow]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=453</guid>
		<description><![CDATA[Rekursiv oder Iterativ, was ist für den Computer "einfacher zu verstehen"?]]></description>
			<content:encoded><![CDATA[<p>In der <a href="http://www.dotnetpro.de/">dotnetpro</a> <a href="http://www.dotnetpro.de/articles/articlearchive1763.aspx">8/2011</a> hat <a href="http://www.ralfw.de/">Ralp Westphal</a> im Artikel <a href="http://www.dotnetpro.de/articles/onlinearticle3802.aspx">&#8220;Aus Baum mach Fluss&#8221;</a> zum Einstieg die <a href="http://de.wikipedia.org/wiki/Fakult%C3%A4t_%28Mathematik%29" title="Fakultät (Mathematik)">Fakultät</a>sberechnung in der rekursiven und in der iterativen Variante gezeigt. Seiner Meinung nach ist die iterative Variante einfacher zu verstehen, besonders für nicht-Mathematiker.<br />
Ich fragte mich dann, welche Variante ist für den Computer einfacher zu verstehen, d.h. welche Variante ist performanter? Oder ist es egal, optimiert der Compiler schon so weit, dass beide Varianten in etwa gleich schnell sind?</p>
<p>Ich habe ein <a href='http://blog.rolandbaer.ch/wp-content/uploads/2012/01/factorial.zip'>kleines Programm</a> geschrieben, dass die Fakultät für verschiedene Werte mehrmals berechnet, um messbare Werte zu erhalten.<br />
Hier die Resultate:</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Factorial recursive and iterative<br />
---------------------------------<br />
<br />
10!<br />
Recursive: 00:00:00.0390023<br />
Iterative: 00:00:00.0220012<br />
<br />
100!<br />
Recursive: 00:00:00.2940168<br />
Iterative: 00:00:00.1720099<br />
<br />
1000!<br />
Recursive: 00:00:02.5131437<br />
Iterative: 00:00:01.0270588<br />
<br />
10000!<br />
Recursive: 00:00:25.0624335<br />
Iterative: 00:00:09.4535407</div></div>
<p>Die rekursive Variante braucht also etwa 2.5 mal so lang wie die iterative. Und bei grossen Fakultäten kommt noch ein weiteres Problem hinzu: Es wird eine StackOverflowException geworfen, da jeder Rekursionsschritt einen Funktionsaufruf zur Folge hat, der einen Teil des Stacks beansprucht.</p>
<p><strong>Fazit:</strong><br />
Der iterative Ansatz ist (mindestens in diesem Fall) auch für den Computer &#8220;einfacher zu verstehen&#8221;. Neben der besseren Performance ist aber auch die gebannte Gefahr des Stack Overflows ein wichtiger Grund, die iterative Varinate vorzuziehen.</p>
<p><a href='http://blog.rolandbaer.ch/wp-content/uploads/2012/01/factorial.zip'>Factorial Source Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/01/29/rekursiv-vs-iterativ/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zeitgeist 2011 reloaded: Suchmaschinen</title>
		<link>http://blog.rolandbaer.ch/2012/01/20/zeitgeist-2011-reloaded-suchmaschinen/</link>
		<comments>http://blog.rolandbaer.ch/2012/01/20/zeitgeist-2011-reloaded-suchmaschinen/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 21:52:45 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Interna]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[Search Engine]]></category>
		<category><![CDATA[Suchmaschine]]></category>
		<category><![CDATA[Zeitgeist]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=442</guid>
		<description><![CDATA[Nachtrag zu Zeitgeist 2011: Von welchen Suchmaschinen oder anderen Quellen kamen die Zugriffe?]]></description>
			<content:encoded><![CDATA[<p>Im Artikel <a href="http://blog.rolandbaer.ch/2012/01/06/zeitgeist-2011/" title="Zeitgeist 2011">Zeitgeist 2011</a> bin ich noch eine wichtige Statistik schuldig geblieben (die man aber bei Googles Zeitgeist sicher nicht finden wird): Von welchen Suchmaschinen oder anderen Quellen kamen die Zugriffe?</p>
<p><strong>Suchmaschinen</strong></p>
<p>Hier die Liste der wichtigsten Suchmaschinen:</p>
<table>
<tr>
<th>Rang</th>
<th>Webseite</th>
<th>Blog</th>
</tr>
<tr>
<td>1</td>
<td>Google</td>
<td>Google</td>
</tr>
<tr>
<td>2</td>
<td>Bing</td>
<td>Google Images</td>
</tr>
<tr>
<td>3</td>
<td>Yahoo!</td>
<td>Bing</td>
</tr>
</table>
<p>Wahrscheinlich für niemanden überraschend ist Google sowohl bei der Webseite als auch beim Blog an erster Stelle. </p>
<p>Google hat dabei eine erdrückende Übermacht, beim Blog hat die Google Bildersuche als einzige noch einen wirklich sichtbaren Anteil.<br />
<div id="attachment_446" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/searchenginesweb2011.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/searchenginesweb2011-300x166.png" alt="Suchmaschinen-Marktanteil Web 2011" title="Suchmaschinen-Marktanteil Web 2011" width="300" height="166" class="size-medium wp-image-446" /></a><p class="wp-caption-text">Suchmaschinen-Marktanteil Web 2011</p></div></p>
<div id="attachment_445" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/searchenginesblog2011.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/searchenginesblog2011-300x166.png" alt="Suchmaschinen-Marktanteil Blog 2011" title="Suchmaschinen-Marktanteil Blog 2011" width="300" height="166" class="size-medium wp-image-445" /></a><p class="wp-caption-text">Suchmaschinen-Marktanteil Blog 2011</p></div>
<p>Diese Übermacht ist bereits seit der Umstellung auf Piwik so, die entsprechenden Grafiken, wie ich sie in <a href="http://blog.rolandbaer.ch/2012/01/08/zeitgeist-revisited-a-browsers-history/" title="Zeitgeist revisited: A Browsers History">Zeitgeist revisited</a> erstellt hatte, habe ich mir deshalb erspart.</p>
<p><strong>Verweise</strong></p>
<p>Hier die Liste der wichtigsten Domänen, die auf meine Webseiten verlinken:</p>
<table>
<tr>
<th>Rang</th>
<th>Webseite</th>
<th>Blog</th>
</tr>
<tr>
<td>1</td>
<td>nsis.sourceforge.net</td>
<td>www.rolandbaer.ch</td>
</tr>
<tr>
<td>2</td>
<td>de.wikipedia.org</td>
<td>www.google.com</td>
</tr>
<tr>
<td>3</td>
<td>forum.computerbild.de</td>
<td>www.google.de</td>
</tr>
<tr>
<td>4</td>
<td>www.google.de</td>
<td>www.facebook.com</td>
</tr>
<tr>
<td>5</td>
<td>blog.rolandbaer.ch</td>
<td>www.google.at</td>
</tr>
</table>
<p>Aus dieser Tabelle kann ich einige interessante Schlüsse ziehen:</p>
<ol>
<li>Das &#8216;interne Marketing&#8217; zwischen Webseite und Blog ist einseitig. Das Blog erhält viel mehr Traffic von der Webseite als umgekehrt (nicht nur in der Rangliste, sondern auch in absoluten Zahlen). Wenn man die beiden Seiten betrachtet wird auch schnell klar warum: Auf der Webseite ist das Blog besser sichtbar als auf dem Blog der Link zur Webseite. Da besteht sicher noch optimierungspotential.</li>
<li>Das NSIS-Tutorial auf meiner Webseite ist der Traffic-Bringer</li>
<li>Der Einsatz des Plugins <a href="http://wordpress.org/extend/plugins/add-link-to-facebook/" title="Add Link to Facebook">Add Link to Facebook</a> zahlt sich aus.</li>
</ol>
<p><strong>Fazit</strong></p>
<p>Neben den Statistiken und den schönen Grafiken können mit der Analyse mit Piwik auch Schwachstellen der Webseite erkannt werden. Dies gibt Ansporn, Verbesserungen zu planen und vorzunehmen. Dabei kann der Fokus auf Google bleiben, solange die anderen Suchmaschinen noch keinen nennenswerten Marktanteil haben. Dass sich dies im Jahr 2012 ändert würde ich aber eher bezweifeln.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/01/20/zeitgeist-2011-reloaded-suchmaschinen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeitgeist revisited: A Browsers History</title>
		<link>http://blog.rolandbaer.ch/2012/01/08/zeitgeist-revisited-a-browsers-history/</link>
		<comments>http://blog.rolandbaer.ch/2012/01/08/zeitgeist-revisited-a-browsers-history/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 18:20:29 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Interna]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=428</guid>
		<description><![CDATA[In meiner Zeitgeist-Auswertung habe ich auch die Marktanteile der Browser dargestellt. Aus Neugier wollte ich wissen, ob sich der Marktanteil eines Browsers stark verändert hat.]]></description>
			<content:encoded><![CDATA[<p>In meiner <a href="http://blog.rolandbaer.ch/2012/01/06/zeitgeist-2011/" title="Zeitgeist 2011">Zeitgeist</a>-Auswertung habe ich auch die Marktanteile der Browser dargestellt. Aus Neugier wollte ich wissen, ob sich der Marktanteil eines Browsers stark verändert hat. Dazu habe ich die Zugriffe auf meine Webseite seit der Umstellung auf Piwik ausgewertet:<br />
<div id="attachment_429" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/BrowserMonthly.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/BrowserMonthly-300x168.png" alt="" title="Browser Marktanteile April 2010 - Dezember 2011" width="300" height="168" class="size-medium wp-image-429" /></a><p class="wp-caption-text">Browser Marktanteile April 2010 - Dezember 2011</p></div><br />
Grosse Verschiebungen sind nicht zu beobachten. Beim Internet Explorer ist ein leichter Abwärtstrend auszumachen, die Webkit-Familie kann diese Schwäche zu einer kleinen Marktanteils-Steigerung nutzen.</p>
<p>Für die allgemein als die grossen drei angesehenen Browser <a href="http://www.mozilla.com/firefox/" title="Mozilla Firefox" target="_blank">Firefox</a>, <a href="http://www.google.com/chrome/" title="Google Chrome" target="_blank">Chrome</a> und <a href="http://www.microsoft.com/germany/windows/products/winfamily/ie/default.mspx" title="Internet Explorer" target="_blank">Internet Explorer</a> habe ich noch Grafiken erstellt, die die verschiedenen Versionen der Browser darstellen. Daraus kann man die Aktualisierungen schön sehen. Als erstes der Internet Explorer:<br />
<div id="attachment_434" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/IEVersionen.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/IEVersionen-300x180.png" alt="Internet Explorer Versionen April 2010 - Dezember 2011" title="Internet Explorer Versionen April 2010 - Dezember 2011" width="300" height="180" class="size-medium wp-image-434" /></a><p class="wp-caption-text">Internet Explorer Versionen April 2010 - Dezember 2011</p></div><br />
Man kann schön sehen, dass der Browser nicht allzu oft überarbeitet wird, mehrere Versionen über lange Zeit verwendet werden und deshalb alte Versionen nicht so schnell &#8216;aussterben&#8217;.</p>
<p>Als Gegensatz dazu Chrome von Google:<br />
<div id="attachment_432" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/ChromeVersionen.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/ChromeVersionen-300x180.png" alt="Chrome Versionen April 2010 - Dezember 2011" title="Chrome Versionen  April 2010 - Dezember 2011" width="300" height="180" class="size-medium wp-image-432" /></a><p class="wp-caption-text">Chrome Versionen  April 2010 - Dezember 2011</p></div><br />
Die grosse Legende zeigt schon an, dass die Version sehr oft ändert, der Browser also fleissig überarbeitet wird. Der automatische Update-Mechanismus führt auch dazu, dass der Browser schnell aktualisiert wird und deshalb kaum alte Versionen im Umlauf sind.</p>
<p>Beim Firefox sieht man die Philosophie-Umstellung recht schön:<br />
<div id="attachment_433" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/FirefoxVersionen.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/FirefoxVersionen-300x180.png" alt="Firefox Versionen April 2010 - Dezember 2011" title="Firefox Versionen April 2010 - Dezember 2011" width="300" height="180" class="size-medium wp-image-433" /></a><p class="wp-caption-text">Firefox Versionen April 2010 - Dezember 2011</p></div><br />
Bis im ersten Quartal des letzten Jahres wurde die Version 3.6 wohl weiterentwickelt, dies zeigte sich aber nur in der dritten Versions-Nummer (3.6.x). Ab der Version 4 wurde dann die Google-Philosophie der häufigen Updates mit Versionsnummer-Erhöhung an der ersten Stelle übernommen. Diese werden nun auch automatisch aktualisiert, so dass die Versionen 4 bis 7 kaum mehr im Einsatz sind.<br />
Man sieht auch, dass etwa 20% der Besucher bei diesem &#8220;Update-Wahnsinn&#8221; nicht mitmachen wollen und bei der Version 3.6 geblieben sind.</p>
<p>Die Tendenzen entsprechen auch den bei <a href="http://www.browser-statistik.de/" title="browser-statistik.de" target="_blank">browser-statistik.de</a> gezeigten <a href="http://www.browser-statistik.de/statistiken/versionen/" title="Statistiken der Browser-Versionen" target="_blank">Statistiken der Browser-Versionen</a> (Achtung: umgekehrte Darstellung, neue Versionen werden unten hinzugefügt).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/01/08/zeitgeist-revisited-a-browsers-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zeitgeist 2011</title>
		<link>http://blog.rolandbaer.ch/2012/01/06/zeitgeist-2011/</link>
		<comments>http://blog.rolandbaer.ch/2012/01/06/zeitgeist-2011/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 08:23:49 +0000</pubDate>
		<dc:creator>Roland Bär</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Deutsch]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Interna]]></category>
		<category><![CDATA[Piwik]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[Zeitgeist]]></category>

		<guid isPermaLink="false">http://blog.rolandbaer.ch/?p=408</guid>
		<description><![CDATA[Inspiriert von Googles Zeitgeis veröffentliche ich ein paar Statistiken aus meinen Piwik-Analysen des vergangenen Jahres.]]></description>
			<content:encoded><![CDATA[<p>Inspiriert von <a href="http://www.google.com/press/zeitgeist2010/">Googles Zeitgeist</a> veröffentliche ich hier ein paar Statistiken aus meinen <a href="http://piwik.org/">Piwik</a>-Analysen des vergangenen Jahres.</p>
<p><strong>Suchbegriffe</strong></p>
<table>
<tr>
<th>Rang</th>
<th>Webseite</th>
<th>Blog</th>
</tr>
<tr>
<td>1</td>
<td>nsis tutorial</td>
<td>slippery when wet</td>
</tr>
<tr>
<td>2</td>
<td>nsis</td>
<td>nsis package including subdirectory</td>
</tr>
<tr>
<td>3</td>
<td>nsi deleteregkey</td>
<td>piwik vs awstats</td>
</tr>
</table>
<p><strong>Browser</strong></p>
<p>Wie aus den Grafiken unten und der Tabelle ersichtlich ist auf meinen Seiten der Firefox klarer Marktführer.<br />
<div id="attachment_414" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/browsersweb2011.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/browsersweb2011-300x151.png" alt="Browser-Marktanteil Web 2011" title="Browsers Web 2011" width="300" height="151" class="size-medium wp-image-414" /></a><p class="wp-caption-text">Browser-Marktanteil Web 2011</p></div><br />
<div id="attachment_413" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/browsers2011.png"><img src="http://blog.rolandbaer.ch/wp-content/uploads/2012/01/browsers2011-300x151.png" alt="Browser-Marktanteil Blog 2011" title="Browsers Blog 2011" width="300" height="151" class="size-medium wp-image-413" /></a><p class="wp-caption-text">Browser-Marktanteil Blog 2011</p></div></p>
<table>
<tr>
<th>Browser-Familie</th>
<th>Webseite (%)</th>
<th>Blog (%)</th>
</tr>
<tr>
<td>Gecko (Firefox)</td>
<td>63.75</td>
<td>57.00</td>
</tr>
<tr>
<td>Trident (IE)</td>
<td>18.58</td>
<td>23.99</td>
</tr>
<tr>
<td>WebKit (Safari)</td>
<td>10.99</td>
<td>15.63</td>
</tr>
<tr>
<td>Presto (Opera)</td>
<td>6.52</td>
<td>2.63</td>
</tr>
<tr>
<td>KHTML (Konqueror)</td>
<td>0.07</td>
<td>0.42</td>
</tr>
<tr>
<td>unbekannt</td>
<td>0.09</td>
<td>0.33</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.rolandbaer.ch/2012/01/06/zeitgeist-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

