<?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>Martin Ankerl &#187; ideas</title>
	<atom:link href="http://martin.ankerl.com/category/ideas/feed/" rel="self" type="application/rss+xml" />
	<link>http://martin.ankerl.com</link>
	<description>No movement is faster than no movement</description>
	<lastBuildDate>Tue, 13 Jul 2010 05:31:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Statistical Unit Tests with ensure4j</title>
		<link>http://martin.ankerl.com/2007/01/04/statistical-unit-tests-with-ensure4j/</link>
		<comments>http://martin.ankerl.com/2007/01/04/statistical-unit-tests-with-ensure4j/#comments</comments>
		<pubDate>Thu, 04 Jan 2007 20:54:33 +0000</pubDate>
		<dc:creator>Martin Ankerl</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[freeware]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[ensure4j]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://martin.ankerl.com/?p=78</guid>
		<description><![CDATA[As part of another project I am developing ensure4j. The syntax (see the examples here) is working quite nicely, ensure4j is already very useful for internal use. Lately I was busy adding tests that are able to verify if some code (e.g. an optimizer that uses random, like genetic algorithm, simulated annealing, &#8230;) produces the [...]]]></description>
			<content:encoded><![CDATA[<p>As part of another project I am developing <a href="http://martin.ankerl.com/2006/08/02/redesigning-junit-asserts/">ensure4j</a>. The syntax (see the examples <a href="http://martin.ankerl.com/2006/08/02/redesigning-junit-asserts/">here</a>) is working quite nicely, ensure4j is already very useful for internal use.</p>
<p>Lately I was busy adding tests that are able to verify if some code (e.g. an optimizer that uses random, like <a href="http://en.wikipedia.org/wiki/Genetic_algorithm">genetic algorithm</a>, <a href="http://en.wikipedia.org/wiki/Simulated_annealing">simulated annealing</a>, &#8230;) produces the desired in e.g. 95% of the cases (Wikipedia has <a href="http://en.wikipedia.org/wiki/Confidence_interval#Practical_example">a nice practical example</a> for confidence intervals).</p>
<h1>Example Usage</h1>
<p>Here is an example that tests the nonsense code <tt>Math.random() * 2</tt>.</p>
<pre class="brush: java;">ensure(new Experiment() {
    public double measure() {
        return Math.random() * 2;
    }
}).between(0.9, 1.1, 0.95).sample(10, 100);</pre>
<p>The code most likely does not make much sense out of context like this, so here is an explanation of what it does:</p>
<p><span id="more-78"></span></p>
<h1>Explanation</h1>
<p>In that example we want to verify that the code  returns values whose <strong>95% confidence interval is between 0.9 and 1.1</strong>. At first take <strong>10 samples</strong> to verify this. If the mean is not as expected between the interval, there is still the chance that this was just bad luck. We can take further samples (<strong>up to 1000</strong>) to rule bad luck out. When we have to take more than 1000 samples and the mean is still not in the specified  still not met, there is a very high probability that the code does not produce the desired result, so we have to fail.</p>
<p>I hope the above description is somewhat understandable. It&#8217;s no piece of cake, and there is no way to cheat around the complexity involved with that kind of statistical tests. I have tried to make the interface as clean and simple as possible, suggestions are always welcome.</p>
<h1>Open Source?</h1>
<p>I am developing ensure4j partly at work, and partly in my free time. I would like to make it open source, but I need to get the OK from my boss first.</p>
<p>ensure4j is the the only implementation I know of that uses statistical tests that can be used with JUnit. If you know something similar than this, please post!</p>
<div style='clear:both'></div><img src="http://martin.ankerl.com/?ak_action=api_record_view&id=78&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://martin.ankerl.com/2007/01/04/statistical-unit-tests-with-ensure4j/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Introduce a Wiki</title>
		<link>http://martin.ankerl.com/2005/11/30/how-to-introduce-a-wiki/</link>
		<comments>http://martin.ankerl.com/2005/11/30/how-to-introduce-a-wiki/#comments</comments>
		<pubDate>Wed, 30 Nov 2005 06:12:57 +0000</pubDate>
		<dc:creator>Martin Ankerl</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://martin.ankerl.com/?p=37</guid>
		<description><![CDATA[On my quest of successfully installing a wiki at my workplace, I came to the conclusion that the biggest problem is a social one. On this quest, I fought with Google and other search engines to present you this list of great links to this topic: Getting Your Wiki Adpoted It&#8217;s On The Wiki! HOWTO [...]]]></description>
			<content:encoded><![CDATA[<p><!-- ALL ADSENSE ADS DISABLED --></p>
<p>On my quest of successfully installing a wiki at my workplace, I came to the conclusion that the biggest problem is a social one. On this quest, I fought with <a href="http://www.google.com">Google</a> <a href="http://www.alltheweb.com/">and</a> <a href="http://beta.previewseek.com/">other</a> <a href="http://www.teoma.com/">search</a> <a href="http://vivisimo.com/">engines</a> to present you this list of great links to this topic:</p>
<ul>
<li><a href="http://www.possibility.com/epowiki/Wiki.jsp?page=GettingYourWikiAdopted">Getting Your Wiki Adpoted</a></li>
<li><a href="http://www.tmtm.com/nothing/archives/001974.html">It&#8217;s On The Wiki!</a></li>
<li><a href="http://servers.linux.com/article.pl?sid=02/09/18/1449248&#38;tid=87&#38;tid=100&#38;tid=51&#38;tid=42">HOWTO Install TWiki as a Corporate Intranet</a> (Start reading at &#8220;Getting Buy-in&#8221;)</li>
<li><a href="http://pascal.vanhecke.info/2005/09/04/introducing-a-wiki-into-an-organization-the-quickdate-page/">Introducing a Wiki into an organization: the QuickDate page</a></li>
</ul>
<p>There does not seem to be much information on this topic available, but it is something to start with.</p>
<div style='clear:both'></div><img src="http://martin.ankerl.com/?ak_action=api_record_view&id=37&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://martin.ankerl.com/2005/11/30/how-to-introduce-a-wiki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svnlog2html</title>
		<link>http://martin.ankerl.com/2005/09/22/svnlog2html/</link>
		<comments>http://martin.ankerl.com/2005/09/22/svnlog2html/#comments</comments>
		<pubDate>Thu, 22 Sep 2005 03:45:23 +0000</pubDate>
		<dc:creator>Martin Ankerl</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://martin.ankerl.com/?p=26</guid>
		<description><![CDATA[Subversion has the ability to output a log file in XML format. I think it would be pretty straightforward to implement an application in Ruby (mabe with use of Amrita), that creates some nice looking statistic about the repository. On a side note, I have a personal subversion repository that contains everything I have accomplished [...]]]></description>
			<content:encoded><![CDATA[<p><!-- ALL ADSENSE ADS DISABLED --></p>
<p>Subversion has the ability to output a log file in XML format. I think it would be pretty straightforward to implement an application in Ruby (mabe with use of <a href="http://amrita.sourceforge.jp/">Amrita</a>), that creates some nice looking statistic about the repository. </p>
<p>On a side note, I have a personal subversion repository that contains everything I have accomplished during my study of <a href="http://se.fh-hagenberg.at/webbler.exe?database=SE.MDB&#38;getpagename=WasIst">Software Engineering</a> in <a href="http://www.fh-hagenberg.at/">Hagenberg</a>. This dates back to somewhere in 2000, and so far I am at revision 3628, and the repository uses about 500MB. It is a bit strange that 5 years worth of work can fit on a single CD <img src='http://martinus.geekisp.com/wp-images/smilies/icon_cool.gif' alt='8-)' /></p>
<div style='clear:both'></div><img src="http://martin.ankerl.com/?ak_action=api_record_view&id=26&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://martin.ankerl.com/2005/09/22/svnlog2html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DoNoFo</title>
		<link>http://martin.ankerl.com/2005/09/22/donofo/</link>
		<comments>http://martin.ankerl.com/2005/09/22/donofo/#comments</comments>
		<pubDate>Thu, 22 Sep 2005 03:32:41 +0000</pubDate>
		<dc:creator>Martin Ankerl</dc:creator>
				<category><![CDATA[ideas]]></category>

		<guid isPermaLink="false">http://martin.ankerl.com/?p=25</guid>
		<description><![CDATA[SuperMemo is the only application I know of that tries to improve ones memory. The problem is that it is not free, and only works in Windows. The idea is to write an application similar to supermemo called donofo (= do not forget), but written in a platform independent language (Ruby or XUL), and with [...]]]></description>
			<content:encoded><![CDATA[<p><!-- ALL ADSENSE ADS DISABLED --></p>
<p><a href="http://www.supermemo.com/">SuperMemo</a> is the only application I know of that tries to improve ones memory. The problem is that it is not free, and only works in Windows.</p>
<p>The idea is to write an application similar to supermemo called <em>donofo</em> (= do not forget), but written in a platform independent language (Ruby or XUL), and with mathematical based optimizer. Although the SuperMemo developer has done a lot of research, he seems to have not much of programming experience. The optimizer should be based on mathematical sound methods (bayesian networks?), I am pretty sure this can be done without stuff like neural networks or lots of  parameters gathered through trial and error.</p>
<div style='clear:both'></div><img src="http://martin.ankerl.com/?ak_action=api_record_view&id=25&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://martin.ankerl.com/2005/09/22/donofo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Programming Challenge</title>
		<link>http://martin.ankerl.com/2005/09/22/ruby-programming-challenge/</link>
		<comments>http://martin.ankerl.com/2005/09/22/ruby-programming-challenge/#comments</comments>
		<pubDate>Thu, 22 Sep 2005 03:25:29 +0000</pubDate>
		<dc:creator>Martin Ankerl</dc:creator>
				<category><![CDATA[ideas]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://martin.ankerl.com/?p=24</guid>
		<description><![CDATA[Python has a quite interesting programming challenge. Unfortunately it is not possible to do the challenge in any other programming language, because in the later levels it starts to depend on special libraries that are only available in Python. The idea is to create a similar challenge that does not depend on a programming language. [...]]]></description>
			<content:encoded><![CDATA[<p><!-- ALL ADSENSE ADS DISABLED --></p>
<p>Python has a quite interesting <a href="http://www.pythonchallenge.com/">programming challenge</a>. Unfortunately it is not possible to do the challenge in any other programming language, because in the later levels it starts to depend on special libraries that are only available in Python.</p>
<p>The idea is to create a similar challenge that does not depend on a programming language. Ruby probably should be a very practical choice to get through all levels, but It should also be possible with Perl, Python, Java, or whatever. This would also be a very entertaining way to teach programming. It could work like a game with different episodes: string episode with 10 levels, an OOP episode, etc.</p>
<div style='clear:both'></div><img src="http://martin.ankerl.com/?ak_action=api_record_view&id=24&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://martin.ankerl.com/2005/09/22/ruby-programming-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
