Bubble (US-2005)

May 20th, 2006

Steven Soderberghs Sozialdrama im Mittwesten der USA.


Martha lebt in einer Kleinstadt und arbeitet in einPuppenfabrik. Neben ihren pflegebedürftigen Vater ist ein junger Arbeitskollege, den sie jeden morgen im Auto mitnimmt, ihr kleines Fenster zu Welt. Nach einer Nacht in der er mit der jungen Rose ausgeht während Martha den Babysitter spielt wird Rose erdrosselt aufgefunden.

Warum man diesen Film sehen sollte

Wem aus der Beschreibung nicht schon klar ist, dass Martha die Mörderin ist, ist der Film nicht zu empfehlen. Alle anderen erleben ein spartanisch inszeniertes Laienspiel mit wohlbalancierten Bildsprache.

Es wird wenig gesprochen, doch ist der Film voll durchinszeniert. Soderbergh erzählt die Geschichte und motiviert die Handlungen. Sehr selten tritt die Wichtigkeit des Regisseurs derat deutlich hervor.

Was nervt

Die überflüssige Auflösung am Schluss des Films, nichtmal Leute vom Kaliber eines Soderbergh sind selbst bei so kleinen Produktionen in der Lage die lineare Erzählung für dich selbst sprechen zu lassen - die Rückblende ist einfach unpassend

What’s the point in Java open-sourced?

May 20th, 2006

Triggered by a blog I looked at an article by Richard Stallmann

Well, I finally I got his point and now I am sure that I have to disagree with open-sourcing Java.

First, the article. Stallman speaks about free software. I didn’t put “free” in quotes, but I set it in italics to emphasize that it is a term. Search Wikipedia for what a term is. Stallmann’s term is not the “free” in “free beer” or “free thought”, it is the “free” from Free-Software-Foundation (the guys who brought to you the GPL). The FSF “free” is a label that declares the compliance with some principles which are more or less arbitrary - I like to compre it with the DOGMA-manifesto in films, interesting, but - as they knew themselves - a dogma, not something that ca can universal truth. Read the rest of this entry »

Code Ownership

May 20th, 2006

I looked over Martin Fowler’s note on the kinds of code ownership, well don’t expect much from it, but it is a nice definition of terms to be used in discussions.

This morning I read a followup that shed a different light on it.

In the original post social factors had been identified as the driving force, where the followup also mentions the focussing on competence is relevant.

That fits a bit more accuratly into my experiences, while I like to throw in a thrird factor: organizational structure. Collaborative ownership across departments with different goals/deadlines are almost guaranteed to make a mess, especially if there a located in different parts of a building - or even worse - in different countries.

A working social network is an enabler, the presence of know-kow differences and organizational borders are pure disablers.

So if we strive for agility, we have to strengthen the enablers and eliminate the disablers. Though it is possible to overcome most of the obstacles, sometimes it isn’t or it is simply out of your hands. In these situations that are probably the majority of the cases when it comes to large projects and/or big (or those who think they are) organisations, you have to adapt your project to suceed. Read the rest of this entry »

Practices of an Agile Developer

May 20th, 2006

Just finished reading this book, all in all a great read. Especially the first six chapters (when it comes to things like debugging it gets a bit shallow)

Two practices, Feeding Agility - Learn when to Unlearn and Delivering User what they want - Justify Technology Use caught my attention in ther combination.

In short what they are talking about:

Learn when to Unlearn

Every technology has its time - some techniques are not useful anymore or got replaced by something that suits today environments better. This ranges from programming languages (indispensable techniques from C/C++ are questionable in a Java project and perhaps simply idiotic in the realm of a dynamic language) to the interface technology (3270 terminals, GUIs and webacces have different constraints and advantages which you cannot exploit in all the same way).

Justify Technology Use

Here they coined the nice term “résumé driven design”. It denotes the choice of technology that serves primarily the personal interest. In fact this goes even deeper down: Pathological use of patterns leads to same problem. Resources get wasted to attain a goal that has nothing to do with the goals of the project.

Each practice described in the book is rounded up with a section Keeping Your Balance: Real-life is not binary; you have to evaluate in your very situation to which degree it makes sense to apply a practice.

The two practices above with their balancing form a teeter-tatter. You can make it swing by leaning forward-backward on the opposite sides of it - thus destroying the balance. New technology and new techniques are sometimes antipodal to things you already know and use.

This means that you can stay globally in balance if you under- or overdo both practices - although that is not supposed to be 100% healthy. More important though: You always have to keep global balance. When dealing with stuff that’s right out of the oven, you have to question your habits thoroughly to apply them successfully.

The main problem here is that technologies seem to be easier to learn than habits can get changed - I do no claim to be an exception - I observed how hard I struggled with (G|Ruby on)rails; I had to throw some views over board to make progress (the annoying thing was that it eventually turned out to be a déjà vu and I#d to fall bach to techniques I unlearned several years ago).
As my first boss said: If it was easy we wouldn’t be here in first place.

This is genuine Microsoft

May 20th, 2006

I started playing with Google Web Toolkit beta- actually I didn’t really start. Because I had to uninstall IE7 (which I don’t use at all), but hey I’d been curious.

The screenshot above is a ‘warning’ from the uninstall. I think they inserted it to deter people from stopping using it (interesting though how this compares to trailware).

But at the end the best one:

It is always more confusing to offer a negated phrase (”Are you not sure if you don’t want not all files lost on harddrive not being formatted [Y/N]”), instead of defaulting a reasonable choice.

The alert reader might have spotted that I use a french edition of XP (with the Vista L&F) - but everything comes in english?!

BTW: I think IE7 sucks. It is IE6 with tabbed-browsing, a terrible layout of controls and all known bugs. Worst of all: The anti-aliasing. Looks like s**t - if you happen to use Office 2003 you know this reading-layout - just like this, just a tad worse.

They should steal the anti-aliasing from Mustang, that works and looks really good.

PS: I now believe Microsoft invented the browser: It just took them longer than Netscape to come out with it:-) If the big battleship Microsoft is in hurry, some things might go over board

Da Vinci Code (US 2005)

May 18th, 2006

Staraufgebot huldigt dem Meister der verquasteten Literatur.


Ich habe das Buch gelesen und die exakte Wiederholung gesehen, von der Handlung war weder das Eine noch das Andere es wert.

Warum sollte man den Film sehen? 

Scherzfrage. Audrey Tatous französischer Akzent ist das einzig echte. Die Falten am Hals von Tom Hanks sind wohl auch echt.

Der Buchvorlage wird bis aufs Komma gefolgt.
Was nervt

Alles recht vorhersehbar, nicht eine Geste bleibt unkommentiert. Jean Reno is furchtbar flach und Silas wurde nach dem Vorbild von Gollum gerendert.

Warum “based upon the novel”? - der Film ist ein speed-run durch das Buch - innere Reflektion (selten) wird durch optische Effekte ersetzt. Etwas zu wenig um die 125Mio zu rechtfertigen, die der Streifen angeblich gekostet hat.

Feed the monkeys

May 14th, 2006

or what “syntactic sugar” is.

Java5 gave us syntactic sugar. Is it really sweet or just bad for your teeth?

What we got:

Varargs - I think I’ve said enough on this, so let’s advance to the for-loop

Instead of

Iterator iter = coll.iterator();
while( iter.hasNext() ){
Object obj = iter.next();


we could do

for (Object obj : coll) {


This is not only shorter, it is also clearer:

  1. We state that we assume Objects in coll (well not a big surprise with Object)
  2. We don’t plan to call remove() on the Iterator.
  3. There is no such thing as an index.

What “index” I am talking about, the for-loop works also with arrays or anything that implements Iterable

Double [] ds = getValues();
for (Number n: ds) …

The syntactic sugar here is hiding something from you, but it is handy in some situations.

On the plus side we have less clutter, and easier refactoring. Imaging you change from an array to a collection, must of the code can be refactored easily by your IDE, but it cannot refactor a for running over an index to an interator on the collection. The enhanced for-loop thus makes you code more reaable and mantainable. The downside: Another syntactical idiom to learn.

Generics are not templates. Generics are compile-time only. So having List just saves you some keystrokes because you don’t have to cast manually. In this sense there are just sugar, but important one. I see the main benefit in Generics that the forced covariancy and autoboxing (without these it would be very hard to define classes that implement a generic interface) - on the other hand covariancy with out generics is pretty useless.

So the sugar puts some restrictions and also opens (see my remarks on varargs) ways of improving the language or the performance of its implementations. Also the syntax gets richer and some idioms become part of the syntax (Iterator). This doesn’t make a language more complex. If the idiom is in the language it is implicitly clear. I gibe you ne example:

I heard of a style guide that defined the naming of index-variables. They had to be named ‘ii’,'jj’, etc. (This is really useful, because you can search it more easily, I adopted it years ago and I still use it). So you need code-inspection to enforce this and you have to make people learn this. In a differnt project (not speaking of a different organization) it will be different. A programmer will be much more productive and the code will equally standardized when an array-iteration is build into the language.

So when I write for(int a :values) it is clear that I only care about the values for ‘a’ and that their actual position does not matter. This gives simplicity by raising expressivity. In absence of this I have to learn how to do it anyway and the idiom of doing so is also specific to the language, but I still have a questionable freedom of implementing it.  This is no simpler than some additional syntax while more difficult to manage in a project.

A bout de souffle (F 1959)

May 13th, 2006

Godards erste long-metrage, Belmondos erste  Rolle. Dogma-vorlage


Michel klaut ein Auto, findet darin eine Pistole, erschiesst einen Polizisten, taucht bei einer Freundin unter, wird von ihr verraten und schliesslich von der Polizei erschossen.

Dabei raucht er ca. 120 Zigaretten.

Warum sollte man den Film sehen?

Es geht ein seltsamer Charme von diesem Film aus. Ich empfehle die deutsch synchronisierte Fassung, sie ist qualitativ einfach besser.

Sehr unpuristisch, nicht? Godard hat später hinzugelernt, Qualität stört nicht, im Gegenteil. Godard hat hier kein Blairwitch gedreht.

Insgesamt ein sehr künstlerischer Ansatz das Sujet, Träume-Liebe-Desillusion zu behandeln. Einige Zitate und milde Selbstreferenzen (Jean Seberg vor dem Schaukasten einen Kinos, das einen Film mit Jean Seberg affichiert).

Sehr (arche?)typischer frz. Film der Nachkriegszeit.

Was nervt

Der Film wurde unter chaotischen Bedingungn gedreht. Daher brauchte es 3 Monate  für den Schnitt (üblich waren damals 2 Wochen) und trotzdem oder auch deshalb ist der Ton weit unter dem Niveau der Epoche.

Mission Impossible III (US 2005)

May 13th, 2006

Der lauteste Film nach Blackhawk Down


Ethen hat sich verlobt und es gibt eine interne Verschwörung. Maskenspielchen à la Fantomas, Viele Explosionen, Kollateralschäden werden nicht berichtet.

Warum sollte man den Film sehen?

Falls man Zahnarzt ist, sind sicher die Jacketkronen von Tom Cruise ein Argument. Die Auswahl war für mich klar, als ein Film mit vielen Explosionen gesucht wurde. Man wird da nicht enttäuscht.

Was nervt

Ich bin aus einer Generation, die noch die Fernsehserie kennt. Im Prinzip wird noch immer dort geklaut und das Ganze mit eine paar Knallfröschen garniert