<?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>Green Goo</title>
	<atom:link href="http://greengoo.de/feed" rel="self" type="application/rss+xml" />
	<link>http://greengoo.de</link>
	<description>Creating life with the power of computers.</description>
	<lastBuildDate>Mon, 14 Dec 2009 21:34:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>goo… URL shortener?</title>
		<link>http://greengoo.de/337/goo%e2%80%a6-url-shortener</link>
		<comments>http://greengoo.de/337/goo%e2%80%a6-url-shortener#comments</comments>
		<pubDate>Mon, 14 Dec 2009 21:30:20 +0000</pubDate>
		<dc:creator>Konrad Ludwig Moritz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[foo]]></category>

		<guid isPermaLink="false">http://greengoo.de/?p=337</guid>
		<description><![CDATA[Due to its name, I can’t not mention it: Google has just announced their own URL shortener service: “goo.gl”.
Of course there are all the usual objections to such services – well, not all, in this case: they’re not for public consumption (yet), only for Google products. And it’s also undeniable that they are useful.

But just [...]]]></description>
			<content:encoded><![CDATA[<p>Due to its name, I can’t <em>not</em> mention it: Google <a href="http://googleblog.blogspot.com/2009/12/making-urls-shorter-for-google-toolbar.html">has just announced</a> their own URL shortener service: “<a href="http://goo.gl">goo.gl</a>”.
Of course there are all the <a href="http://joshua.schachter.org/2009/04/on-url-shorteners.html">usual objections</a> to such services – well, not <em>all</em>, in this case: they’re not for public consumption (yet), only for Google products. And it’s also undeniable that they <em>are</em> <a href="http://mashable.com/2009/04/05/url-shorteners/">useful</a>.</p>

<p>But just for the name, <strong>kudos</strong>, Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/337/goo%e2%80%a6-url-shortener/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Problem With Ethics Councils</title>
		<link>http://greengoo.de/289/the-problem-with-ethics-councils</link>
		<comments>http://greengoo.de/289/the-problem-with-ethics-councils#comments</comments>
		<pubDate>Fri, 04 Sep 2009 15:59:49 +0000</pubDate>
		<dc:creator>Konrad Ludwig Moritz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ethics]]></category>
		<category><![CDATA[genetics]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[religion]]></category>

		<guid isPermaLink="false">/?p=289</guid>
		<description><![CDATA[Over at Scienceblogs, there’s an excellent article about how Germany’s latest stance on genetic testing misses the mark, and it’s a real eye-opener for all people involved and interested in this particular area.



This new legislation once again displays a very worrying factor of the German law-making process in particular, but also law-making in general: The [...]]]></description>
			<content:encoded><![CDATA[<p>Over at <a href="http://scienceblogs.com">Scienceblogs</a>, there’s an excellent <a href="http://scienceblogs.com/geneticfuture/2009/09/germanys_anti-genetic_testing.php">article</a> about how Germany’s latest stance on genetic testing misses the mark, and it’s a real eye-opener for all people involved and interested in this particular area.</p>

<p><span id="more-289"></span></p>

<p>This new legislation once again displays a very worrying factor of the German law-making process in particular, but also law-making in general: The decisions are made, at least in part, by uninformed people. Sure, they go to great lengths to flaunt an informed decision-making, they’ve got all kinds of advisory panels &#8212; <em>and</em> they’ve got the <a href="http://www.ethikrat.org/_english/about_us/function.html">German National Ethics Council</a> to discuss <a href="http://en.wikipedia.org/wiki/Bioethics">bioethical issues</a>.</p>

<p>First and foremost, the recommendations of that council are largely ignored. This is the opposite of informed decision-making, it’s <em>ignoring</em> available information.</p>

<p>Secondly, the Ethics council consists to a very large degree of <a href="http://www.ethikrat.org/_english/about_us/members.html">laymen</a>, people with no scientific education whatsoever. In fact, many of the members represent the Church. I see how this might appeal to the currently very strong conservative sense of German politics. Objectively, though, it’s horrible: these recommendations will be coloured by religious creed &#8212; in fact, that is the expressed intent of these council members. And while this is their personal right and all sounds very democratic, it still injects a heavily biased, subjective and entirely irrational component in a would-be rational decision-making process.</p>

<p>Bluntly put, this means that German healthcare policies are governed by supernatural belief and pre-science era dogma.</p>

<p>The horrible experiences of the Third Reich certainly contribute to the fear, uncertainty and doubt surrounding genetics but let’s not forget the elephant in the room here; putting the future of medicine into the hands of the Church is no better than putting it in the hands of witch-doctors. It belongs in neither, it belongs entirely in the hands of professionals who <em>know</em> what they’re talking about and can estimate the consequences of their doing.</p>

<p>Some people see a conflict of interest in letting scientists decide about the morality of their research but even if that were true, it isn’t helped by pitting them against the Church which has its own agenda in mind, and therefore the same conflict of interest.</p>

<p>Lest someone argue that almost half of the council’s members are scientists after all, and thus ensure a scientific view – this is simply not the case. By merely examining the past recommendations of the council it becomes clear that all these members can ever hope to reach is a stalemate; the democratic process imposes a compromise that lacks any rational reasoning whatsoever and is simply the centre of two diametrically opposed viewpoints.</p>

<p>Case in point, stem cell research. Creating, cloning (<em>and</em> destroying) embryonic stem cells in Germany is forbidden. However, importing them is possible, and so is research conducted on imported cell lines (since the may not be created in Germany).</p>

<p>But there’s a catch. The law from 2002 allowed importing cell lines <em>only</em> if the cells were created <em>before</em> January 1st, 2002 (&#8221;Stichtagsregelung&#8221;, deadline regulation). There is of course no rational justification for this regulation, it is merely a compromise between a complete prohibition (which would have been impractical) and unrestricted access to embryonic stem cells (which was bitterly opposed by the political right).</p>

<p>Since this date is now far behind and once again acquiring cell lines has become a massive hurdle, the law was reconsidered, quite successfully: <a href="http://www.spiegel.de/politik/deutschland/0,1518,546744,00.html">the deadline is now May 1st, 2007</a>. What a progress. Such a decision cannot be described as reasonable, or even as a success (although it has been claimed as one, by <em>all</em> sides) from <em>any</em> conceivable standpoint. From a religious point of view, this means that innocent embryos are still murdered, and from a scientific point of view it means that acquiring vital research material is still unnecessarily expensive and difficult to come by.</p>

<p><strong>The complete process of arriving at such a result can only be described by one word: <em>insane</em>.</strong></p>

<p>But that’s the everyday life in politics.</p>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/289/the-problem-with-ethics-councils/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Logic is Hard</title>
		<link>http://greengoo.de/269/logic-is-hard</link>
		<comments>http://greengoo.de/269/logic-is-hard#comments</comments>
		<pubDate>Wed, 17 Jun 2009 16:37:42 +0000</pubDate>
		<dc:creator>Konrad Ludwig Moritz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[debate]]></category>
		<category><![CDATA[religion]]></category>

		<guid isPermaLink="false">/?p=269</guid>
		<description><![CDATA[PZ Myers has linked to the Proof that God exists.

Of course, him being a &#8220;godless liberal,&#8221; you know what to expect. And sure enough, this is just another false dilemma: you are offered the choice between accepting the existence of a &#8220;universal morality&#8221; (whatever they mean by that, considering how the site is littered with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://scienceblogs.com/pharyngula/2009/06/proof_that_god_exists_1.php">PZ Myers</a> has linked to the <a href="http://www.proofthatgodexists.org/">Proof that God exists</a>.</p>

<p><span id="more-269"></span>Of course, him being a &#8220;godless liberal,&#8221; you know what to expect. And sure enough, this is just another <a href="http://en.wikipedia.org/wiki/False_dilemma">false dilemma</a>: you are offered the choice between accepting the existence of a &#8220;<em>universal morality</em>&#8221; (whatever they mean by <em>that</em>, considering how the site is littered with Bible quotes), or, on the other hand, asserting that &#8220;child rape is fun&#8221; (at which point the website gives you up as hopeless).</p>

<p>PZ correctly concludes that this website is just another waste of time. But since I&#8217;m a procrastinating student, I took the long road just to see how the website would end up convincing me: so I accepted the proposition that <strong>yes</strong>, there&#8217;s a universal moral law.</p>

<p>And <strong>yes</strong>, they are immaterial (quote, &#8220;are they made of matter, or are they &#8216;abstract&#8217; entities? &#8212; are they physical or non-physical things?&#8221;), and <strong>yes</strong>, they are universal (didn&#8217;t I already say so?), and <strong>yes</strong>, they are unchanging (isn&#8217;t that implied in &#8220;universal&#8221; anyway, you pre-Einsteinians?). &#8230; By that time, I had actually expected that the site would concede defeat, given how much the laws of the Bible have been changed to accomodate our modern society.</p>

<p>But not so. I was actually led to the &#8220;preproof&#8221; page. Interesting. Apparently, the difference between a proof and a preproof is that the latter is a non sequitur: the website now claims that I&#8217;ve just accepted the following proposition:</p>

<blockquote>
  <p>Universal, immaterial, unchanging laws are necessary for rational thinking to be possible. Universal, immaterial, unchanging laws cannot be accounted for if the universe was random or only material in nature.</p>
</blockquote>

<p>Well, I certainly didn&#8217;t. There&#8217;s absolutely no logical connection. It gets worse; the website now threatens by quoting Romans 1:18&#8211;21 &#8230;</p>

<blockquote>
  <p>The wrath of God is being revealed from heaven against all the godlessness and wickedness of men who suppress the truth by their wickedness, since what may be known about God is plain to them, because God has made it plain to them. For since the creation of the world God&#8217;s invisible qualities &#8211; his eternal power and divine nature &#8211; have been clearly seen, being understood from what has been made, so that men are without excuse. &#8230;</p>
</blockquote>

<p>And <strong>now</strong> finally the big moment has come, and I&#8217;m just one mouse click away from the awe-inspiring proof that god exists:</p>

<blockquote>
  <p>The Proof that God exists is that without Him you couldn&#8217;t prove anything.</p>
</blockquote>

<p>Damn. Got me there. Wait, let me change this slightly &#8230;</p>

<blockquote>
  <p>The Proof that Dopey exists is that without Him you couldn&#8217;t prove anything.</p>
</blockquote>

<p>For those eager to learn: this is also a <a href="http://en.wikipedia.org/wiki/Non_sequitur_(absurdism)">non sequitur</a>. Anyway, the authors didn&#8217;t do their homework. This kind of logical flaw has been around for <em>ages</em>, no need to create an own website for it.</p>

<p>Anyway, there&#8217;s one nugget of wisdom on the website, a quote from Proverbs 12:1:</p>

<blockquote>
  <p>&#8230; he who hates correction is stupid.</p>
</blockquote>

<p>Guys, let that be your motto.</p>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/269/logic-is-hard/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Developing .NET without an IDE</title>
		<link>http://greengoo.de/243/developing-dotnet-without-an-ide</link>
		<comments>http://greengoo.de/243/developing-dotnet-without-an-ide#comments</comments>
		<pubDate>Wed, 27 May 2009 10:15:51 +0000</pubDate>
		<dc:creator>Konrad Ludwig Moritz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">/?p=243</guid>
		<description><![CDATA[It might be a wrong decision for a .NET developer to switch to OS X. Granted, Mono simply works and that in itself is fabulous news. The C# compiler it ships is mature, stable and produces efficient code. Heck, even the Windows Forms implementation is completely usable.

But how to develop?

On Linux and OS X, I [...]]]></description>
			<content:encoded><![CDATA[<p>It might be a wrong decision for a .NET developer to switch to OS X. Granted, <a href="http://www.mono-project.com/Main_Page">Mono</a> simply works and that in itself is fabulous news. The C# compiler it ships is mature, stable and produces efficient code. Heck, even the Windows Forms implementation is completely usable.</p>

<p>But how to <em>develop?</em><span id="more-243"></span></p>

<p>On Linux and OS X, I use the <a href="http://iterm.sourceforge.net/">terminal</a> for everything &#8212; in fact, this was one of the main reasons for me to make the switch. I create all text documents in <a href="http://code.google.com/p/macvim/">MacVim</a> or even plain <a href="http://www.vim.org/">Vim</a> &#8212; including source code. Usually, this is no big deal. Contrary to popular beliefs from the Windows folks, this is a very rich development environment. Especially for languages such as C++, <a href="http://stackoverflow.com/questions/24109/c-ide-for-linux/24119#24119">life is good</a>.</p>

<p><img src="http://macvim.googlecode.com/files/MacVim-screenshot-10-detail.jpg" alt="MacVim shot" /></p>

<p>Enter .NET. For the purpose of the discussion I will concentrate on C# because the other mainstream .NET language &#8212; <abbr>VB</abbr> &#8212; has no mature, up-to-date compiler for Mono (yet). Compiling and running is as easy as</p>

<pre>make debug
make test</pre>

<p>(with a little makefile magic).</p>

<p>So this part of an <abbr>IDE</abbr> is well taken care of. The interactive debugging I can live without. What remains now is <em>editing</em> code. And unfortunately, my previous observations no longer apply: editing C# source code in a text editor is a royal <abbr title="pain in the *ss">PITA</abbr>.</p>

<p>Several factors contribute equally.</p>

<ol>
<li><p>First off, <strong>developing <abbr>GUIs</abbr> without a form designer is just no fun</strong>. Even before the advent of WPF, the Visual Studio WinForms designer has shown how effortless good SmartClient design can be. In particular, coding <abbr>GUIs</abbr> manually involves a lot of typing.</p>

<p>Sure, there&#8217;s the <a href="http://www.mono-project.com/WinForms_Designer">Mono WinForms designer</a> which looked quite nice &#8212; right until I tried placing a control which simply didn&#8217;t work, try as I might.</p>

<p><a href="http://www.mono-project.com/Image:Mwf-designer.png"> <img src="http://www.mono-project.com/files/thumb/b/b8/400px-Mwf-designer.png" alt="Mono WinForms designer screenshot" /> </a></p></li>
<li><p>My memory is worse than I previously thought. The .NET framework is just too large to memorize more than a small subset of it. <strong>IntelliSense</strong> for auto-completion of methods has become an integral part of how I write C# code and I now see that I can&#8217;t work efficiently without it. Just to retrieve <em>member names</em> I now have to have dozens of <abbr>MSDN</abbr> browser windows open and since the <abbr>MSDN</abbr> online documentation is also quite slow, this puts a real, measurable damper on development speed.</p>

<p>.NET development used to be agile for me.</p></li>
<li><p>Last but not least, <strong>error correction</strong>. Even though C#&#8217;s background compilation pales in comparison to <abbr>VB</abbr>&#8217;s, it&#8217;s very good at recognizing the single error that constitutes an estimated 90% of all my errors: typos. I&#8217;ve got spelling switched on in Vim but that&#8217;s not enough, so most of these errors are found by the compiler.</p></li>
<li><p>Did I mention that Mono&#8217;s integration into Unix tools is less than perfect? Usually, <code>make</code> works together very well with Vim: compilation errors are displayed inside the editors and I can jump back and forth between the offending lines. So far, I haven&#8217;t got that working for the Mono&#8217;s C# compiler so whenever there&#8217;s an error, I&#8217;ve got to navigate to the right file and source line manually.</p></li>
</ol>

<p>It&#8217;s time for a good cross-platform .NET <abbr>IDE</abbr> to emerge. <a href="http://monodevelop.com/">MonoDevelop</a> unfortunately isn&#8217;t usable under OS X (no, <a href="http://monodevelop.com/Developers/Mac_Support#Known_Issues">really</a>), and even under Linux it leaves a few things to be desired.</p>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/243/developing-dotnet-without-an-ide/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>On Twitter and Classical Media</title>
		<link>http://greengoo.de/224/on-twitter-and-classical-media</link>
		<comments>http://greengoo.de/224/on-twitter-and-classical-media#comments</comments>
		<pubDate>Mon, 04 May 2009 12:12:42 +0000</pubDate>
		<dc:creator>Konrad Ludwig Moritz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[censorship]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">/?p=224</guid>
		<description><![CDATA[It took me quite a long time to appreciate the usefulness of Twitter.

I&#8217;m still not very active myself but I&#8217;ve come to see its uses when trying to gauge current interests. For example, evaluating the popular topics of German twitter users is very revealing. As I&#8217;m typing, interest no. 1  is the tag #zensursula [...]]]></description>
			<content:encoded><![CDATA[<p>It took me quite a long time to appreciate the usefulness of <a href="http://twitter.com">Twitter</a>.<span id="more-224"></span></p>

<p>I&#8217;m still not very active <a href="http://twitter.com/klmr">myself</a> but I&#8217;ve come to see its uses when trying to gauge current interests. For example, evaluating the <a href="http://www.deutsche-twitter-trends.de/">popular topics</a> of German twitter users is very revealing. As I&#8217;m typing, <a href="http://www.deutsche-twitter-trends.de/trend/zensursula.html">interest no. 1 </a> is the tag <a href="http://search.twitter.com/search?q=%23zensursula">#zensursula</a> which is a portmanteau for “Zensur” (censorship) and “Ursula” (Minister of Family Affairs, Senior Citizens, Women and Youth <a href="http://www.bundesregierung.de/Webs/Breg/EN/Federal-Government/Cabinet/UrsulaVonDerLeyen/ursula-von-der-leyen.html">Ursula von der Leyen</a>). And, not surprisingly, this alludes to her unholy campaign to censor child pornography web sites and track accesses instead of prosecuting perpetrators.</p>

<p>The law (using blacklists similar to the ones in <a href="http://www.smh.com.au/articles/2009/03/19/1237054961100.html">Australia</a> and elsewhere) is of course stupid, since <a href="https://www.opendns.com/start">ineffective</a>, <a href="http://wikileaks.org/wiki/Dentist%27s_website_on_leaked_blacklist">faulty</a>, prone to misuse and likely unconstitutional.</p>

<p>So why is this of particular interest? Because it (once again) shows two classes in the information society: one class are we who live on the Internet. The other class are those poor people who get shoved the bullshit of the classical media down their throats. Media coverage of Ursula&#8217;s campaign? <em>Zilch</em>. Well, no. There sure <em>is</em> a media echo &#8212; in the literal sense of “echo”, praising the government&#8217;s politicking in the minister&#8217;s own words.</p>

<p>What I&#8217;d wish for is a media <em>reflection</em>. While the police uses flimsy excuses to <a href="http://wikileaks.org/wiki/Police_raid_home_of_Wikileaks.de_domain_owner_over_censorship_lists">raid homes</a> of those who document questionable government actions, the media is silent. I hate to be an alarmist but such actions just crossed the line in a constitutional state.</p>

<p>This is just another confirmation that the classical media has become <a href="http://www.leasticoulddo.com/comic/20090504/">totally out of touch with what matters</a>. There&#8217;s just no conceivable argument that can be made against the importance and public interest of this topic. The censorship law is in direct violation of the most fundamental principles of our state, it&#8217;s ineffective and it is a populist&#8217;s exploitation of voters. Furthermore, it&#8217;s so <em>easy</em> for the media to tap this. Why is nobody doing it? Why doesn&#8217;t a single news channel use this chance to land a big hit, and drag all those lies and distortions out into the public?</p>

<p>Frankly, I don&#8217;t care for the reasons any more. But if I want to stay informed, Twitter has become a valuable addition to other sources of news on the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/224/on-twitter-and-classical-media/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Discourse in Lying and Cheating</title>
		<link>http://greengoo.de/173/a-discourse-in-lying-and-cheating</link>
		<comments>http://greengoo.de/173/a-discourse-in-lying-and-cheating#comments</comments>
		<pubDate>Thu, 23 Apr 2009 07:56:04 +0000</pubDate>
		<dc:creator>Konrad Ludwig Moritz</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[debate]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[religion]]></category>

		<guid isPermaLink="false">/?p=173</guid>
		<description><![CDATA[Berlin has recently become the stage of a first-class farce.
To appreciate the irony (or otherwise, lies and deception), let me give you a brief overview.

The background ¶

Germany, unlike the US, France or Turkey, has never been a secular state.
In fact, despite the non-religious attitude of large parts of the population, the state still bases its very [...]]]></description>
			<content:encoded><![CDATA[<p>Berlin has recently become the stage of a first-class farce.
To appreciate the irony (or otherwise, lies and deception), let me give you a brief overview.<span id="more-173"></span></p>

<h4 id="the-background">The background<a href="#the-background"> ¶</a></h4>

<p>Germany, unlike the US, France or Turkey, has never been a secular state.
In fact, despite the non-religious attitude of large parts of the population, the state still bases its very <a href="http://www.bundestag.de/parlament/funktion/gesetze/grundgesetz/index.html">constitution</a> on faith, as witnessed by the preamble which starts with,</p>

<blockquote>
  <p>Conscious of [the people's] responsibility before God and man &#8230;</p>
</blockquote>

<p>The special status is further elevated by declaring (in article 7, §3) religious education as the sole constitutionally enforced compulsory subject on the curriculum.
However, and due to historical reasons, there has always been an exception to this rule which applies in Berlin.
Thus, Berlin has provided a religious education on voluntary basis only.
This has been complemented recently by the introduction of &#8220;ethics&#8221; (which also includes history of religions and comparative religion) as a regular subject.</p>

<p>The introduction of compulsory ethics education has gone down badly with several religious and conservative groups which see the religious education of their children threatened by what they see as &#8220;atheist ethics&#8221; taught in schools.
Instead of now attacking the perceived contents of this subject, they contest (again, the perceived) displacement of religion by ethics.</p>

<p>This debate has become the subject of a referendum to introduce religious education as a regular, compulsory subject alongside ethics.
Not both subjects can be (or have to be taken): rather, there would be a <em>choice</em> between the two elective subjects.
As a consequence, ethics education would no longer be universal since religious education can be taken instead &#8212; which is precisely what the referendum wants.</p>

<p>So far, so good. A referendum reflects the empowerment of the people and is of course welcome as such.
Furthermore, both positions (<em>for</em> the choice between either religion or ethics on the one hand, and for compulsory ethics education and complementary free religious education on the other) are valid positions representing different interests.
As such, the referendum is really a fight of two different world views.
Simplified, it&#8217;s between religious people wanting to protect and enforce their exceptional position in the state, and humanists/atheists who strive to make Germany a (more) secular state and to create a foundation of common ethics for all citizens.</p>

<h4 id="campaigning-is-hard-lets-go-shopping">Campaigning is hard, let&#8217;s go shopping<a href="#campaigning-is-hard-lets-go-shopping"> ¶</a></h4>

<p>The referendum is a farce for two reasons.</p>

<p>One, and rather mundane, is the fact that it&#8217;s not really fought by the people but rather by political parties.
The left-leaning majority in senate has passed the new law introducing ethics as a compulsory course over the objection of the conservative minority.
The conservatives (represented mainly by the <abbr title="Christlich Demokratische Union Deutschlands">CDU</abbr>), robbed of other political options, have put their money and marketing expertise into a campaign to get the referendum started.
The <abbr title="Sozialdemokratische Partei Deutschlands">SPD</abbr> and &#8220;Linke&#8221; on the other hand have put <em>their</em> money into opposing the referendum.</p>

<p><em>It&#8217;s all about the &#8220;will of the people&#8221; all right.</em>
Combined with the fact that the campaigns for and against the referendum are a pack of spins, lies and deliberate omissions, this means that the referendum will simply reflect the balance of power of Berlin&#8217;s political parties.
It will certainly <em>not</em> reflect the mind of the people.</p>

<p>The real issue is rather clear-cut and the above text gives a comprehensive summary.
Reading between the lines in their pamphlets, this is obvious and (I believe) largely undisputed.
However, none of the parties are actually using this line of reasoning in their campaigns.</p>

<p>I&#8217;ll lay initial blame with the drivers of the campaign which call themselves &#8220;<a href="http://www.pro-reli.de/volksentscheid">Pro Reli</a>&#8220;.
They don&#8217;t in fact advertise religious education; instead, they advertise &#8220;free choice.&#8221;
This makes it all very simple: since we&#8217;re all living in a democracy, anything that <em>isn&#8217;t</em> free choice is automatically bad, right?
In reality, there&#8217;s of course no choice involved: the old as well as the new law makes it entirely possible for children (or rather: their parents) to choose religious education, if they so want.
The only thing that is <em>not</em> up to choice under current law is ethics, which is compulsory, which is what Pro Reli opposes without wanting to admit it loudly.</p>

<p>Faced with the argument of free choice, the opponents of the referendum, styling themselves &#8220;<a href="http://www.proethik.info/">Pro Ethik</a>&#8221; decry the &#8220;obligation to choose&#8221;, giving themselves over to public ridicule: &#8220;<strong>obligation to choose</strong>&#8220;? I&#8217;ve rarely heard a more pathetic complaint.
Such baloney is just cannon fodder for Pro Reli and they promptly used it.
I can&#8217;t blame them.
What I blame them for is the active distortion of facts and outright lies to win over otherwise atheist voters.</p>

<p>Apart from the &#8220;free choice&#8221; nonsense Pro Reli uses <a href="http://www.pro-reli.de/volksentscheid/?page_id=46">a few main arguments</a> worth dissecting for their sheer amount of bullshit (numbers do not correspond to Pro Reli&#8217;s list):</p>

<ol>
<li><p><strong>Compulsory ethics education, so the implied claim, is &#8220;intolerant&#8221;.</strong></p>

<p>According to Pro Reli, only a competing religious education (only for the larger religions, mind you!) can ensure tolerance &#8212; surprising, since religions have never been known for their particular tolerance.</p></li>
<li><p><strong>Ethics cannot provide a sufficiently large cultural variety.</strong></p>

<p>This particular claim is directly belied by the fact that ethics also includes comparative religious education and history of religion.</p>

<p>But it also offers an insight into what Pro Reli understands by the terms &#8220;cultural variety&#8221; and &#8220;tolerance&#8221;.
To quote their official arguments (exact wording not available online):</p>

<blockquote>
  <p>Tolerance is always founded in individual convictions. &#8230; It does not mean &#8230; noncommittal coexistence.</p>
</blockquote>

<p>Pro Reli fears that ethics can and will only talk impartially <em>about</em> different religious beliefs, and, since it cannot take sides, will not relay them:</p>

<blockquote>
  <p>Ethics education is committed to neutrality. It risks relativising the pupils&#8217; standpoints.</p>
</blockquote>

<p>What Pro Reli wants, pure and simple, is that pupils will be taught, without questions, what is right and what is wrong. It does not endorse discussion or doubt. The responsibility to decide for themselves is lifted off their puny shoulders. How does this fit with Pro Reli&#8217;s claim that</p>

<blockquote>
  <p>&#8220;Religious education enables responsible reasoning&#8221; &#8212; Georg Cardinal Sterzinsky</p>
</blockquote></li>
<li><p><strong>Ethics education cannot preserve ideological neutrality.</strong></p>

<p>The solution: religion. Yes, that&#8217;s right, because &#8220;[it] does not have the unrealistic commitment to neutrality.&#8221;</p></li>
<li><p><strong>Religious education prevents a state monopoly.</strong></p>

<blockquote>
  <p>Teaching of values is never free of ideology. By letting ethics become [...] the sole regular subject the state would intervene inappropriately in matters of ideology. This contradicts the state&#8217;s duty to neutrality.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></p>
</blockquote></li>
</ol>

<p>On the one hand claiming special rights and on the other decrying lack of neutrality &#8212; that&#8217;s chutzpah.
I cannot imagine a more dishonest, two-faced morality.
And these people want to teach values?</p>

<p>&#8211; To be fair, the other side argues just as ridiculously. The party &#8220;Linke&#8221; has stooped especially low; their campaign slogan reads:</p>

<blockquote>
  <p>Religion is voluntary. For it to stay that way, vote &#8220;no&#8221;.</p>
</blockquote>

<p>Well, <em>duh</em>. <strong>Nobody</strong> here attacked freedom of religion. <a href="http://en.wikipedia.org/wiki/Straw_man">Straw man</a>, anyone?</p>

<div class="footnotes">
<ol>

<li id="fn:1">
In fact, the state has never claimed neutrality in this matter. On the contrary, it is the expressed interest of the government (and has always been, of every &#8220;western&#8221; state) to instil in their citizens a respect of certain values deemed acceptable and important for the well-being of the society at large. <a href="#fnref:1" rev="footnote">↩</a>
</li>

</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/173/a-discourse-in-lying-and-cheating/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java and the Joys of Serializing Objects into RandomAccessFiles</title>
		<link>http://greengoo.de/166/java-and-the-joys-of-serializing-objects-into-randomaccessfiles</link>
		<comments>http://greengoo.de/166/java-and-the-joys-of-serializing-objects-into-randomaccessfiles#comments</comments>
		<pubDate>Thu, 16 Apr 2009 15:44:51 +0000</pubDate>
		<dc:creator>Paul Theodor</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">/?p=166</guid>
		<description><![CDATA[Some bumps on the road ¶

Recently (like 5 minutes ago) I was trying to serialize an Object into a file, using the RandomAccessFile Class. After a bit of head-scratching and some google-action I found a little FAQ that apparently was determined to make my day even worse.

Now, I must admit, that I generally don&#8217;t use Java [...]]]></description>
			<content:encoded><![CDATA[<h4 id="some-bumps-on-the-road">Some bumps on the road<a href="#some-bumps-on-the-road"> ¶</a></h4>

<p>Recently (like 5 minutes ago) I was trying to serialize an <code>Object</code> into a file, using the <code>RandomAccessFile</code> Class. After a bit of head-scratching and some google-action I found <a href="http://java.sun.com/javase/technologies/core/basic/serializationFAQ.jsp#random">a little FAQ</a> that apparently was determined to make my day even worse.<span id="more-166"></span></p>

<p>Now, I must admit, that I generally don&#8217;t use Java and just today had to start with it, because the professor of the lecture that I provide the tutorials for decided it was a good idea.</p>

<p>So I ventured out into the world of Java, armed only with my knowledge of C++syntax, my hopefully still functional brain and the good will to get things done. The FAQ gave me a first clue &#8230; using the classes <code>ByteArrayInputStream</code> and <code>ByteArrayOutputStream</code> to handle the serialized data.</p>

<p>Well, I&#8217;d better start at the beginning, and that is the use of <code>RandomAccessFile</code>, which is really no big deal.</p>

<pre class="source-code cpp"><span class="identifier">RandomAccessFile</span> <span class="identifier">rf</span> = <span class="keyword operator">new</span> <span class="identifier">RandomAccessFile</span>( <span class="keyword operator">new</span> <span class="identifier">File</span>( <span class="string">"some.file"</span> ), <span class="string">"rw"</span> );
<span class="identifier">byte</span>[] <span class="identifier">barry</span> = <span class="keyword operator">new</span> <span class="identifier">byte</span>[<span class="number">10</span>];
<span class="identifier">rfile</span>.<span class="identifier">read</span>( <span class="identifier">barry</span>, <span class="number">0</span>, <span class="number">10</span> );</pre>

<p>So, as you can see the initialization is pretty straightforward and the reading of data also works the way I&#8217;d expected it to. But I wouldn&#8217;t be writing this post if there wasn&#8217;t a problem to address. It is in my understanding a problem of design of the Java API.</p>

<p>It all starts with the wish to serialize an Object into a RandomAccessFile and it quickly ends in dismay at the apparent shortcomings of the Java-API. The problem is, that for serialization in Java one has to use an <code>ObjectOutputStream</code> and the respective method <code>writeObject( Object o )</code>, but the <code>ObjectOutputStream</code> can only be initialized with an associated <code>OutputStream</code> which can be a <code>FileStream</code>. Unfortunately the <code>RandomAccessFile</code> class is not an <code>OutputStream</code> but rather more or less on the same level as <code>ObjectOutputStream</code> in that it in itself uses a <code>File</code> to write to.</p>

<p>The workaround is described in the aforementioned <a href="http://java.sun.com/javase/technologies/core/basic/serializationFAQ.jsp#random">FAQ</a> and uses a <code>ByteArrayOutputStream</code> for the <code>ObjectOutputStream</code> to write to and then converts this into an Array of Bytes and writes those to the <code>RandomAccessFile</code> like so:</p>

<pre class="source-code cpp"><span class="keyword">public</span> <span class="keyword type">int</span> <span class="identifier">writeObject</span>( <span class="keyword type">long</span> <span class="identifier">position</span>, <span class="identifier">Object</span> <span class="identifier">o</span> ) <span class="identifier">throws</span> <span class="identifier">IOException</span>{
    <span class="identifier">m_byte_out</span> = <span class="keyword operator">new</span> <span class="identifier">ByteArrayOutputStream</span>();
    <span class="identifier">m_object_out</span> = <span class="keyword operator">new</span> <span class="identifier">ObjectOutputStream</span>( <span class="identifier">m_byte_out</span> );
    <span class="identifier">m_object_out</span>.<span class="identifier">writeObject</span>( <span class="identifier">o</span> );
    <span class="identifier">m_rfile</span>.<span class="identifier">seek</span>( <span class="identifier">position</span> );                  <span class="comment">//Position the Pointer
</span>    <span class="identifier">m_rfile</span>.<span class="identifier">write</span>( <span class="identifier">m_byte_out</span>.<span class="identifier">toByteArray</span>() ); <span class="comment">//Write Binary Data to File
</span>    <span class="keyword type">int</span> <span class="identifier">length</span> = <span class="identifier">m_byte_out</span>.<span class="identifier">toByteArray</span>().<span class="identifier">length</span>;
    <span class="keyword type">long</span> <span class="identifier">length_change</span> = ( <span class="identifier">position</span> - <span class="identifier">m_length</span> ) + <span class="identifier">length</span>;
    <span class="keyword">if</span>( <span class="identifier">length_change</span> &lt; <span class="number">0</span> ){
        <span class="identifier">length_change</span> = <span class="number">0</span>; <span class="comment">//Something has been overwritten, probably bad
</span>    }
    <span class="identifier">m_length</span> += <span class="identifier">length_change</span>;
    <span class="keyword">return</span> <span class="identifier">length</span>;
}</pre>

<p>This function is part of a wrapper-class I have written to handle my serializable Objects in a <code>RandomAccessFile</code> naming it <a href="/media/randomaccessfileserialized.jar" title=".jar-file with wrapper-class and tests"><code>RandomAccessFileSerialized</code></a>. The link is to a .jar-file containing the wrapper-class plus some tests, I uploaded those in case anyone would like to give it a try.</p>

<p>Well, so there it is, the basic setup as I have come up with, please comment if you think you can improve on it or see problems, I don&#8217;t claim to be a good Java programmer and this is my first Java-Project in years.</p>

<p>At the end, I&#8217;d like to add a word of advice, <strong>do not</strong> use this class in a production environment without prior testing, as I have done so only very briefly and can&#8217;t guarantee, that it will work as expected.</p>

<p>&#8211; Paul</p>
]]></content:encoded>
			<wfw:commentRss>http://greengoo.de/166/java-and-the-joys-of-serializing-objects-into-randomaccessfiles/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
