<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Carsten's Blog</title>
	<link>http://www.saager.org</link>
	<description>may contain traces of personal opinon</description>
	<pubDate>Sat, 16 Feb 2008 23:48:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>No Country for Old Men (US 2007)</title>
		<link>http://www.saager.org/2008/02/17/no-country-for-old-men-us-2007.html</link>
		<comments>http://www.saager.org/2008/02/17/no-country-for-old-men-us-2007.html#comments</comments>
		<pubDate>Sat, 16 Feb 2008 23:24:34 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Kino]]></category>

		<guid isPermaLink="false">http://www.saager.org/2008/02/17/no-country-for-old-men-us-2007.html</guid>
		<description><![CDATA[2h Stunden Langeweile mit Splatterbeilage. Wenn es die Coen Brüder machen wird auch kein Film draus
Handlung
Nicht der Rede wert
Warum sollte man den Film sehen
Es gibt eigentlich überhaupt keinen Grund. Abgesehen von Tommy Lee Jones und ein paar kult-verdächtigen Dialogen.
Was nervt
Alles schon da gewesen und vorhersehbar. Das soll wohl der Sinn des Ganzen gewesen sein, aber [...]]]></description>
			<content:encoded><![CDATA[<p>2h Stunden Langeweile mit Splatterbeilage. Wenn es die Coen Brüder machen wird auch kein Film draus</p>
<p><strong>Handlung</strong></p>
<p>Nicht der Rede wert</p>
<p><strong>Warum sollte man den Film sehen</strong></p>
<p>Es gibt eigentlich überhaupt keinen Grund. Abgesehen von Tommy Lee Jones und ein paar kult-verdächtigen Dialogen.</p>
<p><strong>Was nervt</strong></p>
<p>Alles schon da gewesen und vorhersehbar. Das soll wohl der Sinn des Ganzen gewesen sein, aber sorry, wenn mich an Animationsfilmen schon nervt, dass sie nicht ohne Referenzen auf Klassiker auskommen, beim Realfilm wird es langsam lächerlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2008/02/17/no-country-for-old-men-us-2007.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Cloverfield (US 2008)</title>
		<link>http://www.saager.org/2008/02/16/cloverfield-us-2008.html</link>
		<comments>http://www.saager.org/2008/02/16/cloverfield-us-2008.html#comments</comments>
		<pubDate>Fri, 15 Feb 2008 23:36:13 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Kino]]></category>

		<guid isPermaLink="false">http://www.saager.org/2008/02/16/cloverfield-us-2008.html</guid>
		<description><![CDATA[Alien in Doom/Halflife Perspektive. Science-Fiction im Video(spiel)zeitalter.
Handlung 
It came from &#8230; Keiner weiss es, jedenfalls ist Manhattan hinterher gewesen. Eine kleine Gruppe Yuppies im Chaos, alles gefilmt von einer kleinen Videokamera, mit der nur ein paar nette Clips auf einer Party gedreht werden sollten (keine Angst, kein wakeliger Dogmakram, filmisch 1a Qualität)
Warum sollte man den Film [...]]]></description>
			<content:encoded><![CDATA[<p>Alien in Doom/Halflife Perspektive. Science-Fiction im Video(spiel)zeitalter.</p>
<p><strong>Handlung </strong></p>
<p>It came from &#8230; Keiner weiss es, jedenfalls ist Manhattan hinterher gewesen. Eine kleine Gruppe Yuppies im Chaos, alles gefilmt von einer kleinen Videokamera, mit der nur ein paar nette Clips auf einer Party gedreht werden sollten (keine Angst, kein wakeliger Dogmakram, filmisch 1a Qualität)</p>
<p><strong>Warum sollte man den Film sehen</strong></p>
<p>Falls man Doom und Halflife mag (beide Spiele sind unverleugbar Kult) oder Alien und Godzilla (noch mehr Kult), jetzt das ganze als Egoshooter in der Fassung des urbanen 21. Jahrhunderts. Sound und Grafik sind auf der  Höhe der Zeit ( die armen Geizhälse, die sich den Film nicht im Kino angucken)</p>
<p>Sehr gute Dialoge, klar motivierte Charaktäre, sorgfältige Dramaturgie. Definitiv einer der besten Filme des Jahres; wird aber beim Oscar wohl trotzdem leer ausgehen. Die Welt ist ungerecht.</p>
<p><strong>Was nervt</strong></p>
<p>Nokia Productplacement</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2008/02/16/cloverfield-us-2008.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Lust, Caution (2007)</title>
		<link>http://www.saager.org/2008/02/10/lust-caution-2007.html</link>
		<comments>http://www.saager.org/2008/02/10/lust-caution-2007.html#comments</comments>
		<pubDate>Sat, 09 Feb 2008 23:24:35 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Kino]]></category>

		<guid isPermaLink="false">http://www.saager.org/2008/02/10/lust-caution-2007.html</guid>
		<description><![CDATA[Mata Hari in Shanghai. Chinesen lieben anders.
Handlung
Studentin lässt sich zu einem Anschlag auf einen Kollaborateur der Japaner anheuern. Nattürlich verliebt sie sich in ihn
Warum sollte man den Film sehen
Die Geschichte ist nicht schlecht erzählt. Die Westentaschenresistance lässt einen fast Schmunzeln, wirklich interessant ist allerdings nur die Liebesgeschichte. Die Liebe zu einem Mann, der nur besitzen [...]]]></description>
			<content:encoded><![CDATA[<p>Mata Hari in Shanghai. Chinesen lieben anders.</p>
<p><strong>Handlung</strong></p>
<p>Studentin lässt sich zu einem Anschlag auf einen Kollaborateur der Japaner anheuern. Nattürlich verliebt sie sich in ihn</p>
<p><strong>Warum sollte man den Film sehen</strong></p>
<p>Die Geschichte ist nicht schlecht erzählt. Die Westentaschenresistance lässt einen fast Schmunzeln, wirklich interessant ist allerdings nur die Liebesgeschichte. Die Liebe zu einem Mann, der nur besitzen und herrschen kann, dann am Ende doch zeigt, dass auch er Gefühle hat, die sich nicht gestattet.</p>
<p><strong>Was nervt</strong></p>
<p>Überlänge - die Fassung in Frankreich hat 2h40&#8242;, das Lesen der sich (wiederholende) Dialoge ist ermüdend (ich bin dreimal eingeschlafen). Auch ist die Rahmenhandlung sehr vorherrsehbar, gerade weil der Film sehr minimalistisch aufgebaut ist - jedes Detail für den Zuschauer auf die Spur, so dass and 1h30&#8242; die Luft raus ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2008/02/10/lust-caution-2007.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Closure puzzler or enum references considered harmful</title>
		<link>http://www.saager.org/2008/02/07/closure-puzzler-or-enum-references-considered-harmful.html</link>
		<comments>http://www.saager.org/2008/02/07/closure-puzzler-or-enum-references-considered-harmful.html#comments</comments>
		<pubDate>Thu, 07 Feb 2008 08:36:15 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.saager.org/2008/02/07/closure-puzzler-or-enum-references-considered-harmful.html</guid>
		<description><![CDATA[SPOILER - don&#8217;t read this if you want to figure out the Neapolitan Ice Cream Puzzler by yourself!
Neal Gafter posted a Closure Puzzler that hasn&#8217;t too much to do with closures, but shows that Static initializers considered harmful is not limited to the old enum-pattern, but also applies to Java 5 enums. Here the Java [...]]]></description>
			<content:encoded><![CDATA[<p>SPOILER - don&#8217;t read this if you want to figure out the <a href="http://gafter.blogspot.com/2008/02/closures-puzzler-neapolitan-ice-cream.html">Neapolitan Ice Cream Puzzler</a> by yourself!</p>
<p>Neal Gafter posted a Closure Puzzler that hasn&#8217;t too much to do with closures, but shows that <a href="/2005/10/16/static-initializers-considered-harmful.html">Static initializers considered harmful</a> is not limited to the old enum-pattern, but also applies to Java 5 enums. Here the Java 5 version of his code for those who don&#8217;t get the closures code or simply are too lazy:</p>
<pre>
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Compare {
	static &lt;T, U&gt; List&lt;U&gt; map(List&lt;T&gt; list, Transformer&lt;T, U&gt; transform) {
		List&lt;U&gt; result = new ArrayList&lt;U&gt;(list.size());
		for (T t : list) {
			result.add(transform.invoke(t));
		}
		return result;
	}

	public static void main(String[] args) {
	        List&lt;Color&gt; colors = map(Arrays.asList(Flavor.values()), new Transformer&lt;Flavor,Color&gt;(){public Color  invoke( Flavor f ){return f.color; }});
	        System.out.println(colors.equals(Arrays.asList(Color.values())));

	        List&lt;Flavor&gt; flavors = map(Arrays.asList(Color.values()), new Transformer&lt;Color,Flavor&gt;(){public Flavor invoke(Color c){return c.flavor;} });
	        System.out.println(flavors.equals(Arrays.asList(Flavor.values())));
	    }
}

interface Transformer&lt;S, T&gt; {
	T invoke(S s);
}

enum Color {
	BROWN(Flavor.CHOCOLATE), RED(Flavor.STRAWBERRY), WHITE(Flavor.VANILLA);
	final Flavor flavor;

	Color(Flavor flavor) {
		this.flavor = flavor;
	}
}

enum Flavor {
	CHOCOLATE(Color.BROWN), STRAWBERRY(Color.RED), VANILLA(Color.WHITE);
	final Color color;

	Flavor(Color color) {
		this.color = color;
	}
}</pre>
<p>I think I have already seen such a backport already, but here it is again&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2008/02/07/closure-puzzler-or-enum-references-considered-harmful.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Faut que ça danse (F 2006)</title>
		<link>http://www.saager.org/2007/12/31/faut-que-ca-danse-f-2006.html</link>
		<comments>http://www.saager.org/2007/12/31/faut-que-ca-danse-f-2006.html#comments</comments>
		<pubDate>Mon, 31 Dec 2007 00:18:39 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Kino]]></category>

		<guid isPermaLink="false">http://www.saager.org/2007/12/31/faut-que-ca-danse-f-2006.html</guid>
		<description><![CDATA[Das Duo Lvovsky/Tedeschi zum Zweiten.
Handlung
Sarah ist vierzig und ihr Vater Salamon is 80. Was erwartet man noch vom Leben, er sucht, sie wird noch (unerwartet) schwanger. Man muss durchs Leben tanzen
Warum sollte man den Film sehen
Die beste Filmgeburt seit den 30er Jahren. Eine perfekte Komödie. Hier scheint wirklichkum eine Perspektive der Norm entsprechen. Ein Fil [...]]]></description>
			<content:encoded><![CDATA[<p>Das Duo Lvovsky/Tedeschi zum <a href="/2007/12/30/actrices-f-2006.html">Zweiten</a>.</p>
<p><strong>Handlung</strong></p>
<p>Sarah ist vierzig und ihr Vater Salamon is 80. Was erwartet man noch vom Leben, er sucht, sie wird noch (unerwartet) schwanger. Man muss durchs Leben tanzen</p>
<p><strong>Warum sollte man den Film sehen</strong></p>
<p>Die beste Filmgeburt seit den 30er Jahren. Eine perfekte Komödie. Hier scheint wirklichkum eine Perspektive der Norm entsprechen. Ein Fil für Nonkonformisten, die trotzdem gerne glücklich sind.</p>
<p><strong>Was nervt</strong></p>
<p>Wenn ich schon mal nichts zu meckern finde, dann sollte ich auch nicht krampfhaft nach irgendwelchen Schwächen suchen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2007/12/31/faut-que-ca-danse-f-2006.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Automatic Resource Management blocks</title>
		<link>http://www.saager.org/2007/12/30/automatic-resource-management-blocks.html</link>
		<comments>http://www.saager.org/2007/12/30/automatic-resource-management-blocks.html#comments</comments>
		<pubDate>Sun, 30 Dec 2007 20:04:38 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Scala]]></category>

		<category><![CDATA[Architecture]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.saager.org/2007/12/30/automatic-resource-management-blocks.html</guid>
		<description><![CDATA[In his (perhaps successful) attempt to sink the BGGA proposal, Captain Bloch send the closuralists packing to Scala island in the Swiss Sea and promised milk(CICE) and honey(ARM) for the rest.
Besides some remaining choices of freedom a ARM block will look somehow like this:

do (InputStream in   = new FileInputStream(src);
    OutputStream [...]]]></description>
			<content:encoded><![CDATA[<p>In his (perhaps successful) attempt to sink the BGGA proposal, Captain Bloch send the closuralists packing to <a href="http://www.scala-lang.org">Scala island</a> in the Swiss Sea and promised milk(CICE) and <a href="http://docs.google.com/View?docid=dffxznxr_1nmsqkz">honey(ARM) </a>for the rest.</p>
<p>Besides some remaining choices of freedom a ARM block will look somehow like this:</p>
<pre>
do (InputStream in   = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dest)) {
  byte[] buf = new byte[1024];
  int n;
  while ((n = in.read(buf)) &gt;= 0)
    out.write(buf, 0, n);
}</pre>
<p>I thought this should be pretty easy to imitate in Scala as well. Ideally I&#8217;d like to have</p>
<pre>
with (fi&lt;-  new FileInputStream(src);
      fo&lt;- new FileOutputStream(dest)) {
  val buf = new Array[byte](1024);
  def cp() {
    val n = fi.read(buf)
    if (n&gt;0) {
      fo.write(buf,0,n)
      cp
   }
  }
  cp
}</pre>
<p>But writing a &#8220;with&#8221; is not possible - the 2nd idea was to have a with where the resource is &#8220;this&#8221;:</p>
<pre>
with (new DbConnection) {
  executeUpdate("delete from scratch")
  commit()
}</pre>
<p>As Jamie Webb pointed out a simple wrapper is easy to write and might do the job:</p>
<pre>
class ManagedResource[T&lt;:{def close()}] (resource:T) {
  def foreach(f : T =&gt; Unit) : Unit =
    try {
      f(resource)
    } finally {
      resource.close()
    }
  }
}</pre>
<p>and  so it is easy to write:</p>
<pre>
for(pi&lt;-new ManagedResource(new PipedInputStream);
    po&lt;-new ManagedResource(new PipedOutputStream(pi))) {
  po.write('A');
  Console.println((pi.read).asInstanceOf[Char]);
}</pre>
<p>So interesting part it: How does this magic work. On Scala island everybody knows swiss-army knives. We usually use &#8220;for&#8221;. The code above is equivalent to</p>
<pre>
for(pi&lt;-new ManagedResource(new PipedInputStream)){
    for(po&lt;-new ManagedResource(new PipedOutputStream(pi))) {
  po.write('A');
  Console.println((pi.read).asInstanceOf[Char]);
    }
}</pre>
<p>and each block (or closure) is passed to foreach:</p>
<pre>
new ManagedResource(new PipedInputStream).foreach(pi=&gt;
  new  ManagedResource(new PipedOutputStream(pi)).foreach(po=&gt;{
     po.write('A'); //where is po defined?
     Console.println((pi.read).asInstanceOf[Char]);
   }
  )
)</pre>
<p>Here you see the for-magic in action. For defines some nice symbols pi and po for us that make writeing the function much easier than wrapping it all up in <a href="http://blog.omega-prime.co.uk/2007/08/25/implementing-the-disposable-pattern-in-scala/">nested anonymous functions</a>.</p>
<p>As the expansion of for shows we are getting the nest of resources as we would get if we would write everything by hand. Less visible is the cleanup. Note that the argument to each foreach is a closure. This means th code is excecute where it is writen and not evaluated and then passed to foreach. By this the finally block in foreach executes two times:</p>
<ol>
<li>After the print</li>
<li>After po had been closed</li>
</ol>
<p>So far so simple, but why some might ask can I refer to pi and po as PipedInput/Outputstreams instead of ManagedResource[T]s?</p>
<p>The reason is that &#8220;for&#8221; is just some compiler magic, what eventually gets executed is the foreach which takes  a function T=&gt;Unit  (i.e. a funtion with a single argument of type T and return value void). T here is either  PipedInputStream or PipedOutputstream and the pi and po are type to accommondate for that.</p>
<p>In practice it is a bit more complicated to define ManagedResource because there are three different possible expansions (via map and flatMap). We investigated as well lazy resource acquisition, but this might open some other wholes, but it is possible to write ManagedResources that aquire the underlying resource iff it is accessed. You opening a ctor to the application developer is too dangerours as inadvertedly  an open resource might get passed to the ManagedResource without that it can tell that it got already opened.</p>
<p>Resources with explicit open methods as Josh mentioned in his text would solve this problem easily with no overhead for the application developer. An alternative are Linear Types, but that doesn&#8217;t go well together with a language like Scala.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2007/12/30/automatic-resource-management-blocks.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ungar/Burgundisches Gulasch</title>
		<link>http://www.saager.org/2007/12/30/ungarburgundisches-gulasch.html</link>
		<comments>http://www.saager.org/2007/12/30/ungarburgundisches-gulasch.html#comments</comments>
		<pubDate>Sun, 30 Dec 2007 17:54:17 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Küche]]></category>

		<guid isPermaLink="false">http://www.saager.org/2007/12/30/ungarburgundisches-gulasch.html</guid>
		<description><![CDATA[Wenn einem partout nichts einfällt, kocht man etwas mit vielen Zutaten&#8230;

1 grosse Zwiebel
 300/400g Boeuf Bourginon
Balsamicoessig
1 grosse Paprika rot
1 grosse Paprika grün
2 Zehen Knoblauch
Paprikapulver
Tomatenmark (+evtl. etwas Zucker)
(getrocknete) Pilze
Pfeffer &#38; Salz
Rotwein (Pinot Noir aus dem Burgund) zum abschmecken und trinken

Also Zwiebel grob hacken und in eine heisse Pfanne mit etwas Olivenöl (wer mag gern auch mit [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn einem partout nichts einfällt, kocht man etwas mit vielen Zutaten&#8230;</p>
<ul>
<li>1 grosse Zwiebel</li>
<li> 300/400g Boeuf Bourginon</li>
<li>Balsamicoessig</li>
<li>1 grosse Paprika rot</li>
<li>1 grosse Paprika grün</li>
<li>2 Zehen Knoblauch</li>
<li>Paprikapulver</li>
<li>Tomatenmark (+evtl. etwas Zucker)</li>
<li>(getrocknete) Pilze</li>
<li>Pfeffer &amp; Salz</li>
<li>Rotwein (Pinot Noir aus dem Burgund) zum abschmecken und trinken</li>
</ul>
<p>Also Zwiebel grob hacken und in eine heisse Pfanne mit etwas Olivenöl (wer mag gern auch mit Peperonis) geben, dann Fleich in mundgerechte Bissen zu schneiden und zu den Zwieben geben. Gut anbraten und dann in einen mittelgrossen Topf geben. Die Pfanne mit 2-4 Esslöffeln Balsamico abbrennen und dann mit Wasser ablöschen und zum Fleisch geben.</p>
<p>Paprika würfeln und Knoblauch einfach schälen und in den Topf geben. Wasser zugeben, sodass die Paprika fast bedeckt sind, rechleich Paprikapulver hinzugeben und bei geschlossen Deckel 60&#8242; simmern lassen.</p>
<p>Eine Stunde vor dem Servieren die restlichen Zutaten beigeben und bei kleiner Hitze weichgaren und abschmecken.</p>
<p>Als Beilage eignet sich Kartoffelpüree, Spiralnudeln oder auch Polenta. Ein frischer Salat und Baguette werden nicht als störend empfunden.</p>
<p>Das ist eine ideales Aufwärmgericht, einmal erkalten lassen ist Minimum, richtig gut wird ein Gulasch allerdings erst nach dem zweiten Aufwärmen.<a href="http://www.saager.org/wp-content/uploads/2007/12/gulasch.JPG" title="gulasch.JPG"><img src="http://www.saager.org/wp-content/uploads/2007/12/gulasch.JPG" alt="gulasch.JPG" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2007/12/30/ungarburgundisches-gulasch.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Actrices (F 2006)</title>
		<link>http://www.saager.org/2007/12/30/actrices-f-2006.html</link>
		<comments>http://www.saager.org/2007/12/30/actrices-f-2006.html#comments</comments>
		<pubDate>Sun, 30 Dec 2007 13:47:50 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Kino]]></category>

		<guid isPermaLink="false">http://www.saager.org/2007/12/30/actrices-f-2006.html</guid>
		<description><![CDATA[Eine neue Welle der selbst-referentiellen Drehbücher scheint über uns herein zu brechen. Es ist immer leicht autobiographische Züge zu unterstellen, hier jedoch mindestens kunstvoll verarbeitet
Handlung
Valeria Bruni Tedeschi (Hauptdarstellerin und Regie) &#8220;[der Film erzählt] von einer Frau, die eines Tages meint gerade aufgewacht zu sein, als wenn sie ihr ganzes Leben lang geschlafen hätte, [&#8230;]&#8221;
Warum sollte [...]]]></description>
			<content:encoded><![CDATA[<p>Eine neue Welle der selbst-referentiellen Drehbücher scheint über uns herein zu brechen. Es ist immer leicht autobiographische Züge zu unterstellen, hier jedoch mindestens kunstvoll verarbeitet</p>
<p><span style="font-weight: bold">Handlung</span></p>
<p>Valeria Bruni Tedeschi (Hauptdarstellerin und Regie) &#8220;<span><spanstyle="font-style:>[der Film erzählt] von einer Frau, die eines Tages meint gerade aufgewacht zu sein, als wenn sie ihr ganzes Leben lang geschlafen hätte, [&#8230;]&#8221;</spanstyle="font-style:></span><span><span style="font-style: italic"></span></span><span><span style="font-style: italic"></span></span><span style="font-weight: bold"></span></p>
<p><span class="Apple-style-span" style="font-weight: bold">Warum sollte man den Film sehen</span></p>
<p>Nett wie die Personen des Turgeniev-Stücks, der Darsteller sich immer wieder überlappend ihre Geschichte erzählen.Für angehende Schauspieler eine zeitsparender test, ob man wirklich wirklich Schauspieler sein will und kann. Kein Zufall wohl, dass ich meine Freundin Johanna beim Herausgehen getroffen habe und sie seltsam kurz angebunden war.</p>
<p><span style="font-weight: bold">Was nervt</span><span style="font-weight: bold"></span><span style="font-weight: bold"></span><span style="font-weight: bold"></span></p>
<p>Die Untertitel. Ein Experiment(?) im mk2 Quai de Seine für hör- und sehbehinderte Zuschauer. Für letztere ein guter Witz, die Untertitel waren zu klein und kontrastarm, für Brillenträger nur aus den ersten 10 Reihen lesbar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2007/12/30/actrices-f-2006.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Not only open source</title>
		<link>http://www.saager.org/2007/12/27/not-only-open-source.html</link>
		<comments>http://www.saager.org/2007/12/27/not-only-open-source.html#comments</comments>
		<pubDate>Thu, 27 Dec 2007 01:45:19 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Computer]]></category>

		<category><![CDATA[Whatever]]></category>

		<guid isPermaLink="false">http://www.saager.org/2007/12/27/not-only-open-source.html</guid>
		<description><![CDATA[I pulled out an old issue of brand eins which remained still unread in the pile of magazines. If you don&#8217;t now this magazine yet and you have some interest in off-beat economics and you can read german - get it.
An article with interview with Don Tapscott on his Wikinomics I found quite interesting. The [...]]]></description>
			<content:encoded><![CDATA[<p>I pulled out an old issue of <a href="http://www.brandeins.de"><em>brand eins</em> </a>which remained still unread in the pile of magazines. If you don&#8217;t now this magazine yet and you have some interest in off-beat economics and you can read german - get it.</p>
<p>An article with interview with Don Tapscott on his <a href="http://wikinomics.com/">Wikinomics</a> I found quite interesting. The point -in short - is that openess will make you advance quicker and be more successful. I don&#8217;t buy everything he says, but he is right in many aspects.</p>
<p>Take the simple example of open source and closed source. Where do you think hides the worst coding and design? It cannot be generalized of course, but closed source has better to get away bad coding. There are exceptions in any domain, Axis for example (at least the 1.4) is a kludge and some closed source stuff I worked on had been beautifully engineered. Anything has to stand the test of time, thus in an active open source problems will be addressed - if not god-like committers reject these changes.</p>
<p><em>And here I lost interest in continuing until I found <a href="http://ifacethoughts.net/2007/12/01/why-giving-away-your-code-is-not-dangerous/">Why giving away your code is not dangerous.</a></em></p>
<p><a href="http://ifacethoughts.net/2007/12/01/why-giving-away-your-code-is-not-dangerous/"> <a href="http://www.saager.org/2007/12/27/not-only-open-source.html#more-186" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2007/12/27/not-only-open-source.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Acid2</title>
		<link>http://www.saager.org/2007/12/25/acid2.html</link>
		<comments>http://www.saager.org/2007/12/25/acid2.html#comments</comments>
		<pubDate>Tue, 25 Dec 2007 18:42:54 +0000</pubDate>
		<dc:creator>carsten</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.saager.org/2007/12/25/acid2.html</guid>
		<description><![CDATA[A week ago Microsoft&#8217;s IE8 team announced that they passed the ACID2 test. Now - nice present for Xmas - Safari for Windows Beta 4 renders it correctly as well.I checked with Firefox 2.0.0.11 and it is all but OK:Anyone tried it with other browsers?
]]></description>
			<content:encoded><![CDATA[<p>A week ago Microsoft&#8217;s IE8 team<a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx"> announced that they passed</a> the <a href="http://www.webstandards.org/files/acid2/test.html#top">ACID2 test</a>. Now - nice present for Xmas - <a href="http://www.apple.com/safari/">Safari for Windows Beta 4</a> renders it correctly as well.I checked with Firefox 2.0.0.11 and it is all but OK:<a href="http://www.saager.org/wp-content/uploads/2007/12/acid2.PNG" title="acid2.PNG"><img src="http://www.saager.org/wp-content/uploads/2007/12/acid2.PNG" alt="acid2.PNG" /></a>Anyone tried it with other browsers?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saager.org/2007/12/25/acid2.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
