<?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>Xceptance Blog &#187; Software Development</title>
	<atom:link href="http://blog.xceptance.com/category/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xceptance.com</link>
	<description>Passionate Testing</description>
	<lastBuildDate>Sat, 21 Jan 2012 11:29:54 +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>Spurious wakeup &#8211; the rare event</title>
		<link>http://blog.xceptance.com/2011/05/06/spurious-wakeup-the-rare-event/</link>
		<comments>http://blog.xceptance.com/2011/05/06/spurious-wakeup-the-rare-event/#comments</comments>
		<pubDate>Fri, 06 May 2011 00:12:08 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Object]]></category>
		<category><![CDATA[threads]]></category>
		<category><![CDATA[wait]]></category>
		<category><![CDATA[wakeup]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=628</guid>
		<description><![CDATA[After hunting for quite some for a strange application behavior, I finally found the reason. The Problem The Java application was behaving strangely in 4 out of 10 runs. It did not process all data available and assumed that the data input already ended. The application features several producer-consumer patterns, where one thread offers preprocessed data [...]]]></description>
			<content:encoded><![CDATA[<p>After hunting for quite some for a strange application behavior, I finally found the reason.</p>
<h3>The Problem</h3>
<p>The Java application was behaving strangely in 4 out of 10 runs. It did not process all data available and assumed that the data input already ended. The application features several producer-consumer patterns, where one thread offers preprocessed data to the next one, passing it into a buffer where the next thread reads it from.</p>
<p>The consumer or producer fall into a wait state in case no data is available or the buffer is full. In case of a state change, the active threads notifies all waiting threads about the new data or the fact that all data is consumed.</p>
<p>On 2-core and 8-core machines, the application was running fine but when we moved it to 24-cores, it suddenly started to act in an unpredictable manner.</p>
<h3>The Cause</h3>
<p>After a lot of debugging I found out that threads wake up without having been notified by their partner thread. In this case the consumer was woken up despite the fact that data was unavailable aka the producer has not delivered and therefore not notified anyone. But the consumer was awake&#8230;</p>
<p>The debugging nightmare finally revealed a rare behavior of any POSIX based application. This is the quote from the JDK6 doc:</p>
<blockquote><p>A thread can also wake up without being notified, interrupted, or  timing out, a so-called <em>spurious wakeup</em>.  While this will rarely  occur in practice, applications must guard against it by testing for  the condition that should have caused the thread to be awakened, and  continuing to wait if the condition is not satisfied.  In other words,  waits should always occur in loops.</p></blockquote>
<h3>The Verdict</h3>
<p>So never trust your notification chains. Threads might wake up even though nobody directly notified it. Additionally you should never exclude the possibility that the move from a small box to a big box does not influence the application behavior. More cores mean more trouble.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/05/06/spurious-wakeup-the-rare-event/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Argument about the Curly Brackets</title>
		<link>http://blog.xceptance.com/2011/03/03/the-argument-about-the-curly-brackets/</link>
		<comments>http://blog.xceptance.com/2011/03/03/the-argument-about-the-curly-brackets/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 07:00:57 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Quotations]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[cartoon]]></category>
		<category><![CDATA[code style]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=570</guid>
		<description><![CDATA[When you talk about code styleguides, you often talk about basic formatting. This means you probably already fought the holy war over the curly brackets {} and where to put them. Of course, the next line is the only right place. A curly bracket is a hermit and does not like to be put next [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="/wp-content/uploads/2011/03/next-line.jpg"><img class="alignleft size-medium wp-image-571" title="Curly brackets go..." src="/wp-content/uploads/2011/03/next-line-211x300.jpg" alt="" width="211" height="300" /></a>When you talk about code styleguides, you often talk about basic formatting. This means you probably already fought the holy war over the curly brackets <em>{}</em> and where to put them.</p>
<p>Of course, the next line is the only right place. A curly bracket is a hermit and does not like to be put next to any other character&#8230;  <img src='http://blog.xceptance.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>What is your opinion?</p>
<p>Cartoon courtesy of <a href="http://geekandpoke.typepad.com/geekandpoke/2011/02/simply-explained.html">Geek and Poke</a> under CC-BY-ND-2.0</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2011/03/03/the-argument-about-the-curly-brackets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One digit version numbers only, please!</title>
		<link>http://blog.xceptance.com/2010/05/16/one-digit-version-numbers-only-please/</link>
		<comments>http://blog.xceptance.com/2010/05/16/one-digit-version-numbers-only-please/#comments</comments>
		<pubDate>Sun, 16 May 2010 15:02:42 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Things went wrong]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[y2k]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=445</guid>
		<description><![CDATA[Just read about a nice small software problem at Opera. Their latest browser is version 10, but they couldn&#8217;t continue to use the version number in the user agent string, because some web sites try to identify the agent version and fail with 2 digit version numbers. Seems to be similar to the famous Y2K [...]]]></description>
			<content:encoded><![CDATA[<p>Just read about a nice small software problem at Opera. Their latest browser is version 10, but they couldn&#8217;t continue to use the version number in the user agent string, because some web sites try to identify the agent version and fail with 2 digit version numbers. Seems to be similar to the famous Y2K problem, but now it is a BVN problem &#8211; a browser version number problem.</p>
<blockquote><p>&#8220;&#8230;It appears that a considerable amount of browser sniffing scripts are not quite ready for this change to double digits, as they detect only the first digit of the user agent string: in such a scenario, Opera 10 is interpreted as Opera 1. This results in sites mistakenly identifying Opera 10 as an unsupported browser, thereby breaking server, as well as client-side scripts&#8230;&#8221;</p></blockquote>
<p>Read more at <a href="http://dev.opera.com/articles/view/opera-ua-string-changes/">Dev.Opera</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2010/05/16/one-digit-version-numbers-only-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some nice reading about HBase</title>
		<link>http://blog.xceptance.com/2010/03/16/some-nice-reading-about-hbase/</link>
		<comments>http://blog.xceptance.com/2010/03/16/some-nice-reading-about-hbase/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 20:35:45 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[good reading]]></category>
		<category><![CDATA[hbase]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=439</guid>
		<description><![CDATA[If you want to stay in touch with cutting-edge technology in terms of scalability of databases, high traffic sites, and large storage volumes, you should read these two articles on the new hstack.org blog. Cosmin Lehene wrote two excellent articles on Adobe&#8217;s experiences with HBase: Why we’re using HBase: Part 1 and Why we’re using [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-440 alignleft" title="HBase Logo" src="http://blog.xceptance.de/wp-content/uploads/2010/03/hbase_small.gif" alt="HBase Logo" width="91" height="66" />If you want to stay in touch with cutting-edge technology in terms of scalability of databases, high traffic sites, and large storage volumes, you should read these two articles on the new <a href="http://hstack.org/">hstack.org</a> blog.</p>
<blockquote><p>Cosmin Lehene wrote two excellent articles on Adobe&#8217;s experiences with HBase: <a href="http://hstack.org/why-were-using-hbase-part-1/">Why we’re using HBase: Part 1 </a> and <a href="http://hstack.org/why-were-using-hbase-part-2/">Why we’re using HBase: Part 2</a>. Adobe needed a <em>generic</em>, real-time, structured data storage and processing system that could handle any data volume, with access times under 50ms, with no downtime and <em>no data loss</em>. The article goes into great detail about their experiences with HBase and their evaluation process, providing a &#8220;well reasoned impartial use case from a commercial user&#8221;. It talks about failure handling, availability, write performance, read performance, random reads, sequential scans, and consistency.</p></blockquote>
<p>(via <a href="http://highscalability.com/blog/2010/3/16/1-billion-reasons-why-adobe-chose-hbase.html">High Scalability</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2010/03/16/some-nice-reading-about-hbase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Gründe, warum Webdesigner coden können sollten</title>
		<link>http://blog.xceptance.com/2010/02/19/5-grunde-warum-webdesigner-coden-koennen-sollten/</link>
		<comments>http://blog.xceptance.com/2010/02/19/5-grunde-warum-webdesigner-coden-koennen-sollten/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 13:33:01 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=418</guid>
		<description><![CDATA[Mike Kus hat einen kurzen Artikel geschrieben, warum Webdesigner unbedingt coden können sollten. Gerade aus Sicht von QA kann ich ihm nur zustimmen. Via T3N]]></description>
			<content:encoded><![CDATA[<p><a href="http://carsonified.com/blog/uncategorized/5-good-reasons-why-designers-should-code/">Mike Kus hat einen kurzen Artikel geschrieben</a>, warum Webdesigner unbedingt coden können sollten. Gerade aus Sicht von QA kann ich ihm nur zustimmen.</p>
<p>Via <a href="http://t3n.de/news/webentwicklung-5-gute-grunde-designer-coden-sollten-267339/">T3N</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2010/02/19/5-grunde-warum-webdesigner-coden-koennen-sollten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse und Ubuntu 9.10</title>
		<link>http://blog.xceptance.com/2010/01/05/eclipse-und-ubuntu-9-10/</link>
		<comments>http://blog.xceptance.com/2010/01/05/eclipse-und-ubuntu-9-10/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 10:39:57 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Things went wrong]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[gdk]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=380</guid>
		<description><![CDATA[Wer seine eigene Eclipse-Installation unter Ubuntu 9.10 betreibt bzw. ältere Versionen von Eclipse im Einsatz hat, der kennt evenutell Probleme mit Buttons. Diese lassen sich oft mit der Maus nicht klicken oder anwählen. Nur mit Hife der Tastatur kann man noch etwas ausrichten. Das Ganze ist ein bekanntes Problem seit Ubuntu 9.10 und sollte mit [...]]]></description>
			<content:encoded><![CDATA[<p>Wer seine eigene Eclipse-Installation unter Ubuntu 9.10 betreibt bzw. ältere Versionen von Eclipse im Einsatz hat, der kennt evenutell Probleme mit Buttons. Diese lassen sich oft mit der Maus nicht klicken oder anwählen. Nur mit Hife der Tastatur kann man noch etwas ausrichten. </p>
<p>Das Ganze ist ein bekanntes Problem seit Ubuntu 9.10 und sollte mit Eclipse 3.5.1 weg sein. Wenn das aber keine Lösung ist, dann muss man seine Umgebung mit diesem Parameter anpassen:</p>
<blockquote><p>
GDK_NATIVE_WINDOWS=true
</p></blockquote>
<p>Danach funktioniert es wieder. Die Lösung habe ich hier gefunden: <a href="http://www.widdix.de/2009/12/01/eclipse-unter-ubuntu-9-10/">Widdix &#8211; Eclipse unter Ubuntu 9.10</a> und <a href="http://www.norio.be/blog/2009/10/problems-eclipse-buttons-ubuntu-910">hier gibt es mehr dazu in Englisch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2010/01/05/eclipse-und-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Beautifier &#8211; Code schön gemacht</title>
		<link>http://blog.xceptance.com/2009/09/08/javascript-beautifier-code-schon-gemacht/</link>
		<comments>http://blog.xceptance.com/2009/09/08/javascript-beautifier-code-schon-gemacht/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 13:32:27 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[formatierung]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[optimierung]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=298</guid>
		<description><![CDATA[Beim Debuggen von Webanwendungen steht man oft vor einem Haufen Javascript-Code, der eingedampft wurde, um Bandbreite zu sparen und die Verarbeitungszeiten zu drücken. Der JavaScript Beautifier ist eine schnelle und elegante Lösung, den Code wieder einigermaßen lesbar zu bekommen.]]></description>
			<content:encoded><![CDATA[<p>Beim Debuggen von Webanwendungen steht man oft vor einem Haufen Javascript-Code, der eingedampft wurde, um Bandbreite zu sparen und die Verarbeitungszeiten zu drücken.</p>
<p>Der <a href="http://jsbeautifier.org/">JavaScript Beautifier</a> ist eine schnelle und elegante Lösung, den Code wieder einigermaßen lesbar zu bekommen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/09/08/javascript-beautifier-code-schon-gemacht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skype ist wohl mit Delphi programmiert worden</title>
		<link>http://blog.xceptance.com/2009/07/16/skype-ist-wohl-mit-delphi-programmiert-worden/</link>
		<comments>http://blog.xceptance.com/2009/07/16/skype-ist-wohl-mit-delphi-programmiert-worden/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 13:24:44 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[programmierung]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=243</guid>
		<description><![CDATA[Skype scheint mit Delphi geschrieben worden zu sein. Ja, das Entwicklungswerkzeug, das von Borland hergestellt wurde. Damals&#8230; vor langer langer Zeit. Interessant&#8230;]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.xceptance.de/wp-content/uploads/2009/07/skype-delphi.png"><img class="size-medium wp-image-244 alignleft" title="Skype Fehlermeldung" src="http://blog.xceptance.de/wp-content/uploads/2009/07/skype-delphi-300x67.png" alt="Skype Fehlermeldung" width="300" height="67" /></a>Skype scheint mit Delphi geschrieben worden zu sein. Ja, das Entwicklungswerkzeug, das von Borland hergestellt wurde. Damals&#8230; vor langer langer Zeit.</p>
<p>Interessant&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/07/16/skype-ist-wohl-mit-delphi-programmiert-worden/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Der Picasso in uns</title>
		<link>http://blog.xceptance.com/2009/07/08/der-picasso-in-uns/</link>
		<comments>http://blog.xceptance.com/2009/07/08/der-picasso-in-uns/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 16:24:57 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[grafik]]></category>
		<category><![CDATA[witzig]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=238</guid>
		<description><![CDATA[Nach längerer Forschung ist es uns nun gelungen, möglichst abstrakte und doch surreal schöne Diagramme zu malen. Leider werden wir unseren Kunden dieses wunderbare Feature in der endgültigen Softwareversion vorenthalten müssen. P.S. Es war nicht mal ein Bug in der Software, einfach eine unerwartete Datenanomalie.]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.xceptance.de/wp-content/uploads/2009/07/changedisplaymode-images_runtime.png"><img class="alignleft size-medium wp-image-239" title="Abstrakte Chart-Kunst" src="http://blog.xceptance.de/wp-content/uploads/2009/07/changedisplaymode-images_runtime-300x90.png" alt="Abstrakte Chart-Kunst" width="300" height="90" /></a>Nach längerer Forschung ist es uns nun gelungen, möglichst abstrakte und doch surreal schöne Diagramme zu malen. Leider werden wir unseren Kunden dieses wunderbare Feature in der endgültigen Softwareversion vorenthalten müssen.</p>
<p>P.S. Es war nicht mal ein Bug in der Software, einfach eine unerwartete Datenanomalie.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/07/08/der-picasso-in-uns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lasttesten mit Webdriver und Ruby</title>
		<link>http://blog.xceptance.com/2009/07/04/lasttesten-mit-webdriver-und-ruby/</link>
		<comments>http://blog.xceptance.com/2009/07/04/lasttesten-mit-webdriver-und-ruby/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 10:51:12 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[lasttest]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[webdriver]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=236</guid>
		<description><![CDATA[Zur Zeit arbeiten wir intensiv an unseren nächsten Xceptance LoadTest Version.  Sie wird einige interessante Neuerungen mitbringen, die man bisher auf dem Markt noch nicht so gesehen hat: Als Scriptsprache steht jetzt neben Java auch Ruby zur Verfügung. Wer also die schnelle agile Entwicklung mit Ruby mag, der kann jetzt nahtlos auch in Ruby Regressions- [...]]]></description>
			<content:encoded><![CDATA[<p>Zur Zeit arbeiten wir intensiv an unseren nächsten Xceptance LoadTest Version.  Sie wird einige interessante Neuerungen mitbringen, die man bisher auf dem Markt noch nicht so gesehen hat:</p>
<ul>
<li>Als Scriptsprache steht jetzt neben Java auch Ruby zur Verfügung. Wer also die schnelle agile Entwicklung mit Ruby mag, der kann jetzt nahtlos auch in Ruby Regressions- und Lasttests erstellen.</li>
<li>Google hat sich die Mühe gemacht und eine einheitliche API zur Programmierung von Webregressiontests ins Leben gerufen &#8211; <a href="http://google-opensource.blogspot.com/2009/05/introducing-webdriver.html">Google Webdriver</a>. XLT spricht jetzt Webdriver. Damit lassen sich schnell Webtests schreiben und, im Gegensatz zu den anderen Tools, auch als Lasttest ausführen. Wir denken, dass damit die Einführung von XLT deutlich schneller geht und sich damit noch besser für Projekte mit Rapid-Prototyping-Charakter eignet.</li>
<li>Zwei Lasttest-Läufe lassen sich jetzt innerhalb von Sekunden vergleichen und das Ergebnis zeigt schnell und deutlich, wo die Änderungen liegen.</li>
<li>Wer sich mehr für die langfristige Entwicklung der Performance interessiert ist, dem wird der neue Trendreport eine grosse Hilfe sein. Eine beliebige Menge von Testläufen lässt sich zueinander in Relation setzen und man kann daraus einfach die Entwicklung des Performancetrends ablesen.</li>
</ul>
<p>Wir freuen uns schon auf die Fertigstellung von XLT 3.3. Zu den einzelnen Neuigkeiten wird es demnächst mehr Blogeinträge geben.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/07/04/lasttesten-mit-webdriver-und-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vergleich von Lasttest-Ergebnissen</title>
		<link>http://blog.xceptance.com/2009/06/13/vergleich-von-lasttests-ergebnissen/</link>
		<comments>http://blog.xceptance.com/2009/06/13/vergleich-von-lasttests-ergebnissen/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 14:02:08 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XLT]]></category>
		<category><![CDATA[diff]]></category>
		<category><![CDATA[report]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[vergleich]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=220</guid>
		<description><![CDATA[Die kommende Version von XLT (3.3) wird ein schönes neues Feature mitbringen: Die Möglichkeit des Vergleichs von Lasttest-Ergebnissen und die dazu gehörige Visualisierung. Hier nur ein kleiner Ausschnitt aus einem Report. So oder so ähnlich wird es dann aussehen. Wie gewohnt, wird auch der Vergleich von Lasttest-Ergebnissen nur mit offenen Datenformaten arbeiten. Außerdem wird der [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.xceptance.de/wp-content/uploads/2009/06/xlt-33-diff-report.png"><img class="alignleft size-medium wp-image-221" title="Übersicht über die Unterschiede in der Request-Laufzeit" src="/wp-content/uploads/2009/06/xlt-33-diff-report-300x176.png" alt="Übersicht über die Unterschiede in der Request-Laufzeit" width="300" height="176" /></a>Die kommende Version von XLT (3.3) wird ein schönes neues Feature mitbringen: Die Möglichkeit des Vergleichs von Lasttest-Ergebnissen und die dazu gehörige Visualisierung. Hier nur ein kleiner Ausschnitt aus einem Report. So oder so ähnlich wird es dann aussehen.</p>
<p>Wie gewohnt, wird auch der Vergleich von Lasttest-Ergebnissen nur mit offenen Datenformaten arbeiten. Außerdem wird der Vergleich basierend auf den bereits existierenden Reports erstellt. Damit kann man schnell und einfach zwei Reports vergleichen und sich ein Bild von den Fortschritten oder aktuellen Problemen machen.</p>
<p>Alle Kunden, die bereits XLT einsetzen, sind herzlich zu einem Vorabtest der Entwicklungsversion 3.3 eingeladen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/06/13/vergleich-von-lasttests-ergebnissen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XLT 3.2 ist nicht mehr weit</title>
		<link>http://blog.xceptance.com/2009/05/02/xlt-32-ist-nicht-mehr-weit/</link>
		<comments>http://blog.xceptance.com/2009/05/02/xlt-32-ist-nicht-mehr-weit/#comments</comments>
		<pubDate>Sat, 02 May 2009 12:03:51 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[XLT]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=208</guid>
		<description><![CDATA[Nächste Woche wollen wir XLT 3.2 releasen. Ich freue mich drauf, denn es ist wirklich gut geworden. Wir haben viele Dinge umgesetzt, die die Arbeit mit XLT schneller, effizienter und interessanter machen. Nichts davon ist praxisfern entstanden, sondern alle Verbesserungen und neuen Features sind aus der Arbeit mit XLT entstanden. Mehr demnächst hier.]]></description>
			<content:encoded><![CDATA[<p>Nächste Woche wollen wir XLT 3.2 releasen. Ich freue mich drauf, denn es ist wirklich gut geworden. Wir haben viele Dinge umgesetzt, die die Arbeit mit XLT schneller, effizienter und interessanter machen. Nichts davon ist praxisfern entstanden, sondern alle Verbesserungen und neuen Features sind aus der Arbeit mit XLT entstanden.</p>
<p>Mehr demnächst hier.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/05/02/xlt-32-ist-nicht-mehr-weit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Singletons auf die faule Art</title>
		<link>http://blog.xceptance.com/2009/03/24/singletons-auf-die-faule-art/</link>
		<comments>http://blog.xceptance.com/2009/03/24/singletons-auf-die-faule-art/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 19:36:20 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[fehler]]></category>
		<category><![CDATA[parallelität]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=197</guid>
		<description><![CDATA[Wir hatten heute eine kurze Diskussion über Singletons und die Art und Weise ihrer Erzeugung, speziell wenn man sie faul (lazy) erzeugen möchte. Die Wikipedia hat dazu diesen schönen Eintrag &#8211; On Demand Holder Idiom: In software engineering, the Initialization on Demand Holder idiom (design pattern) is a lazy-loaded singleton. The idiom can be implemented [...]]]></description>
			<content:encoded><![CDATA[<p>Wir hatten heute eine kurze Diskussion über Singletons und die Art und Weise ihrer Erzeugung, speziell wenn man sie faul (lazy) erzeugen möchte. Die Wikipedia hat dazu diesen schönen Eintrag &#8211; <a href="http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom">On Demand Holder Idiom:</a></p>
<blockquote><p>In software engineering, the Initialization on Demand Holder idiom (design pattern) is a lazy-loaded singleton. The idiom can be implemented in both single-threaded/serial and concurrent environments, but care must be taken to correctly implement the idiom under concurrent conditions.</p></blockquote>
<p>Ganz besondern wichtig ist die Erklärung, warum Lazy in diesem Fall so und nicht anders funktioniert:</p>
<blockquote><p>The implementation relies on the well-specified initialization phase of execution within the Java Virtual Machine (JVM); see section <a class="external text" title="http://java.sun.com/docs/books/jls/third_edition/html/execution.html#44557" rel="nofollow" href="http://java.sun.com/docs/books/jls/third_edition/html/execution.html#44557">12.4 of Java Language Specification</a> (JLS) for details.</p>
<p>When the class <strong>Something</strong> is loaded by the JVM, the class goes through initialization. Since the class does not have any static variables to initialize, the initialization completes trivially. The static class definition <strong>LazyHolder</strong> within it is <strong>not</strong> initialized until the JVM determines that <strong>LazyHolder</strong> must be executed. The static class <strong>LazyHolder</strong> is only executed when the static method <strong>getInstance</strong> is invoked on the class <strong>Something</strong>, and the first time this happens the JVM will load and initialize the <strong>LazyHolder</strong> class.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/03/24/singletons-auf-die-faule-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die richtigen Leute für den Job?</title>
		<link>http://blog.xceptance.com/2009/03/07/berufsverbot/</link>
		<comments>http://blog.xceptance.com/2009/03/07/berufsverbot/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 18:31:34 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Things went wrong]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=181</guid>
		<description><![CDATA[Wenn man in einer Webseite diesen Text findet und weiss, dass eine angeblich professionelle Webagentur/Webdesign-Firma ihre Hände im Spiel hatte, dann sollte man sich fragen, ob es die richtigen Leute für den Job sind&#8230; oder nicht? &#60;!-- Since margins/padding looked different in diff browsers, use a transparent image to get spacing above and below actual [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man in einer Webseite diesen Text findet und weiss, dass eine angeblich professionelle Webagentur/Webdesign-Firma ihre Hände im Spiel hatte, dann sollte man sich fragen, ob es die richtigen Leute für den Job sind&#8230; oder nicht?</p>
<pre>&lt;!--
Since margins/padding looked different in diff browsers, use a
transparent image to get spacing above and below actual footer...
--&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/03/07/berufsverbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abbrechnen &#8211; Wenn Worte zu ähnlich sind</title>
		<link>http://blog.xceptance.com/2009/03/07/abbrechnen-wenn-worte-zu-ahnlich-sind/</link>
		<comments>http://blog.xceptance.com/2009/03/07/abbrechnen-wenn-worte-zu-ahnlich-sind/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 17:25:54 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Things went wrong]]></category>
		<category><![CDATA[bestellen]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[ordern]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=176</guid>
		<description><![CDATA[Heute habe ich sichtlich verwirrt geschaut und gesucht, wie ich beim Spiegel mir eine Online-Ausgabe kaufen kann, denn im Bestellprozess steht plötzlich Abrechnen auf einem Button. Abrechnen habe ich noch nie gelesen. Meist steht nur Weiter, Kaufen oder Bestellen drauf. Das Problem ist, dass man auf den ersten Blick nämlich Abbrechen liest. Da fällt mir das [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox" href="http://blog.xceptance.de/wp-content/uploads/2009/03/spiegel-abrechnen.png"><img class="size-thumbnail wp-image-177 alignleft" title="Abrechnen und Abbrechen" src="http://blog.xceptance.de/wp-content/uploads/2009/03/spiegel-abrechnen-200x200.png" alt="Wenn Worte zu ähnlich sind" width="200" height="200" /></a>Heute habe ich sichtlich verwirrt geschaut und gesucht, wie ich beim Spiegel mir eine Online-Ausgabe kaufen kann, denn im Bestellprozess steht plötzlich <em>Abrechnen</em> auf einem Button.</p>
<p><em>Abrechnen</em> habe ich noch nie gelesen. Meist steht nur <em>Weiter</em>, <em>Kaufen</em> oder <em>Bestellen</em> drauf. Das Problem ist, dass man auf den ersten Blick nämlich <em>Abbrechen</em> liest.</p>
<p>Da fällt mir das schöne Kunstwort <em>Abbrechnen</em> ein&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/03/07/abbrechnen-wenn-worte-zu-ahnlich-sind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lesepflicht &#8211; OWASP zu XSS</title>
		<link>http://blog.xceptance.com/2009/02/11/lesepflicht-owasp-zu-xss/</link>
		<comments>http://blog.xceptance.com/2009/02/11/lesepflicht-owasp-zu-xss/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 22:28:11 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[owasp]]></category>
		<category><![CDATA[scriping]]></category>
		<category><![CDATA[sicherheit]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=157</guid>
		<description><![CDATA[Heute gibt es einen Link über Cross-Site-Scripting (XSS), was es ist, was man dagegen tun kann oder kurz: Wie beugt man XSS vor? Der Artikel stammt vom OWASP, der Authoriät im Sachen Internetsicherheit bzw. Informationen zur Sicherheit. This article provides a simple positive model for preventing XSS using output escaping/encoding properly. While there are a [...]]]></description>
			<content:encoded><![CDATA[<p>Heute gibt es einen Link über Cross-Site-Scripting (XSS), was es ist, was man dagegen tun kann oder kurz: <a href="https://www.owasp.org/index.php?title=XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet">Wie beugt man XSS vor?</a></p>
<p>Der Artikel stammt vom OWASP, der Authoriät im Sachen Internetsicherheit bzw. Informationen zur Sicherheit.</p>
<blockquote><p>This article provides a simple positive model for preventing XSS using output escaping/encoding properly. While there are a huge number of XSS attack vectors, following a few simple rules can completely defend against this serious attack.</p>
<p>These rules apply to all the different varieties of XSS. Both reflected and stored XSS can be addressed by performing the appropriate escaping on the server-side. The use of an escaping/encoding library like the one in ESAPI is strongly recommended as there are many special cases. DOM Based XSS can be addressed by applying these rules on the client on untrusted data.</p>
<p>For a great cheatsheet on the attack vectors related to XSS, please refer to the excellent XSS Cheat Sheet by RSnake. More background on browser security and the various browsers can be found in the Browser Security Handbook.</p>
<p>Quelle: <a href="https://www.owasp.org/index.php?title=XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet">OWASP</a> unter <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA-3.0</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/02/11/lesepflicht-owasp-zu-xss/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OCR-Erkennung in JavaScript</title>
		<link>http://blog.xceptance.com/2009/01/24/ocr-erkennung-in-javascript/</link>
		<comments>http://blog.xceptance.com/2009/01/24/ocr-erkennung-in-javascript/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 21:36:56 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=153</guid>
		<description><![CDATA[Mich erstaunen die Talente vieler Leute immer wieder. Jemand hat ein Script geschrieben, das Captchas automatisch löst und das ganze in JavaScript. Das Ding läuft auch noch im Browser&#8230; wow! Nun gut, es löst nicht alle Captchas&#8230; aber immerhin. Wenn es interessiert, hier geht es zum Artikel: Captcha cracking in JavaScript with Canvas and neural [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-154 alignleft" title="Captcha" src="http://blog.xceptance.de/wp-content/uploads/2009/01/captcha.jpg" alt="Ein Captcha Demo" width="132" height="72" />Mich erstaunen die Talente vieler Leute immer wieder. Jemand hat ein Script geschrieben, das Captchas automatisch löst und das ganze in JavaScript. Das Ding läuft auch noch im Browser&#8230; wow! Nun gut, es löst nicht alle Captchas&#8230; aber immerhin.</p>
<p>Wenn es interessiert, hier geht es zum Artikel: <a href="http://ajaxian.com/archives/captcha-cracking-in-javascript-with-canvas-and-neural-nets">Captcha cracking in JavaScript with Canvas and neural nets</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2009/01/24/ocr-erkennung-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java und Virtuelle Server (VPS)</title>
		<link>http://blog.xceptance.com/2008/10/28/java-und-virtuelle-server-vps/</link>
		<comments>http://blog.xceptance.com/2008/10/28/java-und-virtuelle-server-vps/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 08:04:11 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[heap]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[probleme]]></category>
		<category><![CDATA[speicher]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=78</guid>
		<description><![CDATA[Wer sich einen virtuellen Server gemietet hat und sich quält, Java vernünftig zum Laufen zu bringen, dem sei dieser Artikel ans Herz gelegt: Java Web Hosting HowTo &#8211; vServer memory and Java heap size trouble. Java Virtual Machines and Linux virtual Servers do not play well with each other all the time. Some tweaking and [...]]]></description>
			<content:encoded><![CDATA[<p>Wer sich einen virtuellen Server gemietet hat und sich quält, Java vernünftig zum Laufen zu bringen, dem sei dieser Artikel ans Herz gelegt: <a href="http://www.groovygrails.de/blog/groovygrails/entry/low_cost_grails_java_web2">Java Web Hosting HowTo &#8211; vServer memory and Java heap size trouble.</a></p>
<blockquote><p>Java Virtual Machines and Linux virtual Servers do not play well with each other all the time. Some tweaking and configuration will be necessary to get it working and optimize the use of the (memory) resources.</p></blockquote>
<p>Die VPS / Virtuellen Server haben leider die Angewohnheit, den Speicher als zu gross zu melden. Sie melden den Gesamtspeicher des Hosts und nicht den Speicher des Virtuellen Servers. Deswegen schlägt Java gnadenlos zu, und versucht sich reinzuoptimieren. Die einzige Lösung ist die Limitierung des Speichers schon beim Start von Java mit <em>-Xm</em>s und <em>-Xmx</em>, um die Selbstoptimierung von Java zu umgehen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2008/10/28/java-und-virtuelle-server-vps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Softreferenzen gehen jederzeit</title>
		<link>http://blog.xceptance.com/2008/10/22/softreferenzen-java-gc/</link>
		<comments>http://blog.xceptance.com/2008/10/22/softreferenzen-java-gc/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 06:00:08 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[gc]]></category>
		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=71</guid>
		<description><![CDATA[Softreferenzen (soft references) in Java sind eine tolle Sache, denn es lassen sich tolle Caches und Notfallszenarien damit bauen. Was kaum jemand weiß, dass Softreferenzen nicht nur im Falle von akuter Speicherknappheit freigegeben werden, sondern durchaus auch früher. Letzteres kann zu unerwarteten Nebenwirkungen führen, speziell mit Blick auf Caching. Soft references are kept alive longer [...]]]></description>
			<content:encoded><![CDATA[<p>Softreferenzen (soft references) in Java sind eine tolle Sache, denn es lassen sich tolle Caches und Notfallszenarien damit bauen. Was kaum jemand weiß, dass Softreferenzen nicht nur im Falle von akuter Speicherknappheit freigegeben werden, sondern durchaus auch früher. Letzteres kann zu unerwarteten Nebenwirkungen führen, speziell mit Blick auf Caching.</p>
<blockquote><p>Soft references are kept alive longer in the server virtual machine than in the client.  The rate of clearing can be controlled with the command line option <kbd>-XX:SoftRefLRUPolicyMSPerMB=&lt;N&gt;</kbd>, which specifies the number of milliseconds a soft reference will be kept alive (once it is no longer strongly reachable) for each megabyte of free space in the heap.</p>
<p>The default value is 1000 ms per megabyte, which means that a soft reference will survive (after the last strong reference to the object has been collected) for 1 second for each megabyte of free space in the heap.  Note that this is an approximate figure since soft references are cleared only during garbage collection, which may occur sporadically.</p></blockquote>
<p>Quelle: <a href="http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html#other_considerations">JDK 6 Garbage Collection Tuning Guide</a></p>
<p>Nachtrag: Erwähnenswert ist auch dieser <a href="http://jeremymanson.blogspot.com/2009/07/how-hotspot-decides-to-clear_07.html">Blogeintrag von Jeremy Manson</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2008/10/22/softreferenzen-java-gc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testedby</title>
		<link>http://blog.xceptance.com/2008/10/21/testedby/</link>
		<comments>http://blog.xceptance.com/2008/10/21/testedby/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 16:19:49 +0000</pubDate>
		<dc:creator>Rene</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[unit-testing]]></category>

		<guid isPermaLink="false">http://blog.xceptance.de/?p=68</guid>
		<description><![CDATA[Heute habe ich einen interessanten Ansatz für eine Verbesserung von JUnit gefunden &#8211; TestedBy. In a nutshell TestedBy aims to change the point of view regarding test classes and classes under test. What we would obtain is to put class under test (the most important classes of your projects) on the centre and link from [...]]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich einen interessanten Ansatz für eine Verbesserung von JUnit gefunden &#8211; <a href="http://code.google.com/p/testedby/">TestedBy</a>.</p>
<blockquote><p>In a nutshell TestedBy aims to change the point of view regarding test classes and classes under test. What we would obtain is to put class under test (the most important classes of your projects) on the centre and link from there your test class and test method.</p></blockquote>
<p>Ist einen Blick wert, da es scheinbar erstmal das Management der Tests verbessert.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xceptance.com/2008/10/21/testedby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

