Hamburg goes east
Some parties in Hamburg featuring east european music. Know more? Leave a comment!
- Datscha-Project
Great concerts and wild parties - Shantel
Mandarin Kasino goes Balkan - Gypsy Juice
Kulturhaus 73 goes Gypsy
Russendisko only rarely visits Hamburg, but check out their CDs.
If you like this, you will also like the “Club Mestizo” at the Hafenklang.
Filed under Event | Comment (1)Hitlers Hitparade
Recently I watched the documentary Hitlers Hitparade, a collage which risks an unusual view on the german national socialist era. In contrast to the usual martial, black-and-white and deliberately deterrent pictures this movie mixes propaganda, colour and amateur videos, cabaret and entertainment; accompanied by music from the era (also swingin german music!).
This selection gives an idea of the allurement of the national socialism. At the same time, the movie is creating a second film with all the horror from that time in the mind of the beholder – it stays politically correct. “Hitler’s Hitparade” won a Grimme-Preis.
PS: I get similar goose bumps by the scene “Tomorrow Belongs to us” from the movie cabaret, which was was censored first.
Filed under Uncategorized | Comment (0)Thoughts on programming – Exceptions
Exceptions bring many benefits:
- Separation between function’s results and error information
- When being part of the interface, they communicate cleary what special cases should be handled by the caller. (That’s why I in gererally prefer throwing an exception over returning null – returning null is too easy to oversee for the caller)
There are several discussions about error handling that i would not want to reopen, since I can see arguments for both sides:
- Reusing existing Exceptions vs. creating your own, meaningful Exceptions (e.g. BookNotFound vs. NoSuchElementException, especially if there is more than on potential “element”)
- Throwing exceptions for exceptional situations only, e.g. “Should a select throw a NotFound exception, or return null?”
- Checked vs. unchecked exceptions?
One of my favourite strategies for error handling is to fail early: Your program wants to be as intolerant as possible.
A configuration value is missing? Throw an exception, don’t use a default value. Fixing a missing configuration value takes about 1 minute, finding out why the program uses an unexpected value might cost you hours. Make the program opinionated and simple.
In the coding: When your program notices an error, locally it seldom has the knowledge how to fix this. Make it somebody elses problem: Throw an exception, forget about it, continue with the normal flow.
In most programs I also introduced an “InternalException”: An exception thrown for all programming errors and “can’t happens”, if they do happen. Just in case – check, throw, and forget about it.
This can occur everywhere, hence it is an unchecked exeception.
In contrast to “can’t happen” there are some exceptions that are unavoidable in real life, so these should be dealt with in a manner that is understandable for a dummy user. Don’t show the user a stack trace for this classes of exceptions:
- Configuration errors, installation errors, file not found
- Invalid user input (parameters/values)
- Other component (server, database) not reachable
When using exceptions, don’t clutter your code with try/catch. Throw everywhere, but catch only rarely: Everytime you catch, you should be able to fix/handle the problem (most times by signaling it to the user).
If you cannot handle the exception, let it flow until someone can.
This is only half the truth: One of the main other reasons for try/catch is exception mapping, the rational for this is seemingly good: Implementation hiding, especially at component borders.
try
{
doSomething();
}
catch (JDBCConnectionException e)
{
throw ComponentUnavailableException (e.getMessage());
}
Note there is one common mistake in the code above: You loose the valuable original stack trace. You would want to wrap the original Exception instead:
throw ComponentUnavailableException (e.getMessage(), e);
Stack traces are a gift by mother Java, don’t throw them away light heartily.
The other major problem is that this mapping leads to a lot of duplicated try/catch code, especially if you want to map more than one exception in more than one method. As Ruby On Rails teaches us, mapping is seldom a good thing.
Untyped exceptions and your framework (Spring!) might help, but this is one of the tricky situations where code duplication is sometimes hard to avoid.
Filed under Uncategorized | Comment (0)Working men
Two interesting documentary movies:
“Is heavy manual labor disappearing or is it just becoming invisible? Where can we still find it in the 21st century?
Workingman’s Death follows the trail of the HEROES in the illegal mines of the Ukraine, sniffs out GHOST among the sulfur workers in Indonesia, finds itself face to face with LIONS at a slaughterhouse in Nigeria, mingles with BROTHERS as they cut a huge oil tanker into pieces in Pakistan, and joins Chinese steel workers in hoping for a glorious FUTURE.”
Breathtaking pictures, also visually stunning – great camera work.
Herr Pilipenko und sein U-Boot
Documentary about Wladimir Pilipenko who built a submarine in his garage – in the middle of the Ukrainian steppe. After 30 years of work, see him trying out the green submarine in the village’s pond, and finally follow his journey to the black sea.
Filed under Uncategorized | Comment (0)
Karimmi

Mein alter Freund Immi schreibt:
Die Faces-Sammlung find ich schoen! (Wenn du mal genug davon hast, kannst du das binden lassen und als facebook verkaufen… ;-)
Die Idee hatte allerdings schon jemand.
Und wenn wir bei Werbung fuer Webseiten sind:
Neu auf Karimmis Webseite: Wie man eine Hilbertkurve stickt.
Sehr hübsch, vor allem auch das Video. Sehenswert ist sie generell, die Webseite von Immi und Karin.
Meine Hobbies sind Handarbeiten, Ballett und Zahlentheorie.
Unter anderem finden sich dort viele hübsche Lieder für Mathematiker , und seltsame Text-Adventures.
Filed under Uncategorized | Comment (0)

