Christopher Moore: Die Bibel nach Biff

Dieser Tage las ich eines der sicherlich großartigsten Bücher überhaupt. Die Bibel nach Biff von Christopher Moore. Vor vielen Jahren hatte ich das Buch schon einmal gelesen und als ich letztens bei Amazon darüber stolperte, war es schnell bestellt.

Das Buch beschreibt die wilden Jugendjahre Jesu aus der Sicht seines besten Kumpels Levi, genannt Biff. Da dieser Abschnitt bisher nicht niedergeschrieben wurde, wird Biff von Engel Raziel wiederbelebt, in ein Hotelzimmer gesperrt und darf sein eigenes Evangelium schreiben.
Biff erzählt wie er zusammen mit Jesus aufwächst und begleitet ihn auf seinen Reisen bevor er zum Messias wird. Der zukünftige Messias ist sich seiner Aufgabe schon bewusst, hat aber keine Ahnung wie er auf die Menschheit einwirken und seine Fähigkeiten einsetzen soll. Die beiden Jugendlichen reisen gemeinsam gegen Osten und gehen bei den drei Weisen in die Lehre, die Jesus schon an seiner Krippe besuchten. Dabei ergeben sich teilweise urkomische Begebenheiten, ich habe noch selten beim Lesen eines Buches so oft laut gelacht. Die beiden geraten von einer absurden und merkwürdigen Szene in die nächste. Biff ist als sexbegeisterter, sarkastischer Jugendlicher ein exzellentes Gegenstück zum jungen Jesus. Nicht umsonst wurde er wohl in den anderen Evangelien ausgelassen. Manchmal ist er allerdings auch gerade deswegen eine große Hilfe auf dem Weg zur Erleuchtung.

Gegen Ende zieht sich der Roman leider ein wenig und man merkt, dass durch die recht engen Vorgaben der Bibel die Phantasie des Autors doch stark in ihre Schranken gewiesen wurde. Moore zieht in seinem Buch dennoch das neue Testament auf sehr amüsante Art und Weise ordentlich durch den Kakao. Eine klare Leseempfehlung von mir!

Spam-Versuch [Nachtrag]

Dieser Tage erhielt ich einen Kommentar auf meinen Eintrag mit dem mysteriösen Ikea-Tisch:

Spamkommentar

Das liest sich doch ganz nett und erst freute ich mich auch, dass wohl ein Fremder auf diese Seite gefunden hat und sich anscheinend für mein Geschreibsel interessiert. Dann sah ich, dass der Kommentar von jemandem namens "Flüge" abgegeben wurde. Seine Webseite ist dann auch passender Weise eine, auf der man Billigflüge aller Art buchen kann. Ein klarer Fall von manuellem Spam.

Irgend ein Mensch hat sich also die Mühe gemacht, erst mein Blog zu finden, dann den Beitrag zu lesen und dann auch noch einen passenden Kommentar dazu zu schreiben. Das klingt nach Arbeit! Und weil mich das interessiert, schrub ich gerade mal eine Email an die zum Kommentar abgegebene Email-Adresse. Mal schauen ob man mir ein paar Fragen zum Geschäft beantworten mag. Ich befürchte aber fast, da wird keine Antwort kommen.

Übrigens: Nordby ist ein Küchentisch.

Nachtrag: Wie es fast zu erwarten war, kam die Email mit dem Hinweis "Empfänger unbekannt" zurück. Sehr schade! Mich hätte es wirklich interessiert, wer da hinter dem Computer sitzt, wie viel Arbeit dahinter steckt und wie es mit dem Verdienst aussieht. Ich tippe ein wenig auf einen Studenten, der eine Liste mit Blogs vor sich hat die nicht das "nofollow"-Attribut in den Kommentaren setzen. Unseriöse Suchmaschinenoptimierer (SEOs) versuchen damit, die Gewichtung ihrer Webseiten bei Suchmaschinen zu verbessern.

Langeoog

Panorama Langeoog City

Einen letzten Satz Urlaubsbilder hab ich noch. Nach den Bildern aus Bensersiel und denen aus der Landschaft nun noch welche von unserem Besuch auf der Insel Langeoog, die praktischer Weise von Bensersiel aus bequem per Fähre erreichbar ist. Die Fahrt ist mit knapp 20 Euro nicht ganz günstig, aber gelohnt hat sich der Besuch auf jeden Fall.

Alter Wasserturm Langeoog

Neben dem langen Strand zum offenen Meer hin ist der oben abgebildete alte Wasserturm der Insel eine kleine Touristenattraktion. Heute kann man dort innen hochklettern und hat dann einen tollen Ausblick über die Insel. Das Panorama ganz oben ist vom Fuß des Turms aus entstanden.
Ansonsten gibt es dann auch noch eine Menge Dünen, durch die man auf leicht vereisten Wegen schön spazieren kann.

Dünenweg auf Langeoog

Der oben schon erwähnte Strand ist im Sommer bestimmt super zum rumlungern und baden gehen, im Winter spaziert man dort glaub ich lieber. Ich war ein wenig überrascht wie viele Touristen sich doch tatsächlich auf der Insel aufhielten, nachdem Bensersiel doch eher ausgestorben war.

Meer auf Langeoog
Meer auf Langeoog

Zu guter Letzt dann noch ein Bild speziell für Herrn Meisinger. Der hatte nach dem Verhalten des Sigma 10-20mm bei Offenblende gefragt. Folgendes Bild ist nicht ganz bei Offenblende entstanden, gibt aber mit f4,5 schon einen ganz guten Eindruck.

Wasserturm, Zaun und Offenblende

Katzenjammer in der Kulturkirche

Man nehme: Vier norwegische Musikstudentinnen, eine große Menge an Instrumenten und eine ausverkaufte Kirche als Veranstaltungsort. Heraus kommt: Eines der großartigsten Konzerte die ich bisher besuchen durfte.

Gestern Abend besuchte ich das Konzert der Band Katzenjammer, dass in der Kulturkirche in Köln stattfand. Ich bin schon ein wenig länger Fan des Quartetts. In meine musikalische Top 25 des vergangenen Jahres waren die Damen sehr schnell eingestiegen und das Album "Le Pop" läuft bei mir sehr regelmäßig. Dementsprechend war ich sehr gespannt, wie man sich live schlagen würde.

Über ein gutes Konzert hätte ich mich sehr gefreut - aber dass es so grandios werden würde, hätte ich nicht gedacht. Live hören sich Katzenjammer noch ein gutes Stück besser an als auf CD. Die Mädels haben alle tolle Stimmen und beherrschen eine Menge Instrumente: Vom Schlagzeug, über diverser Saiteninstrumente und eine Trompete bis hin zum Keyboard. Dabei werden die Instrumente munter getauscht, was nicht nur mich sehr überraschte.

Die Stimmung in der ausverkauften Kulturkirche war toll, auch wenn die Luft leider im Laufe des Konzertes etwas stickig wurde. Nicht nur ich war wohl so begeistert. Ich bin sehr gespannt, wie die Aufnahme des WDR Rockpalast wurde. Die waren nämlich mit ein paar Kameras vor Ort und zeichneten fleißig auf. Das Konzert soll wohl am 26. April 2010 von 00.15 bis 01.45 Uhr ausgestrahlt werden.

Nach etwa anderthalb Stunden war der Spaß leider auch schon wieder vorbei. Da die Damen am Merchandise-Stand anschließend selbst CDs und T-Shirts verkaufen, konnte man ihnen auch noch einmal persönlich sagen, wie großartig die Show war. Und das machte nicht nur ich.

Ikea Nordby - Der mysteriöse Tisch

Schon bei meinem letzten Ikea-Besuch war mir dort ein Tisch aufgefallen: "Nordby" stand dran und er hat mir auf Anhieb gefallen. Ich könnte ihn mir gut als meinen neuen Schreibtisch vorstellen. Ein wenig verwundert war ich deshalb, dass die Ikea-Suche dazu nichts ausspuckte und der Tisch auch in der Übersicht unauffindbar war.

Heute, etwa anderthalb Monate später war ich wieder im schwedischen Möbelhaus meines Vertrauens. Eigentlich stand nur eine Schreibtischlampe auf meinem Einkaufszettel, aber nach dem Tisch habe ich dann doch nochmals geschaut. Obwohl ich beim letzten Mal zu meiner eigenen Erinnerung ein Foto des anhängen Zettels gemacht hatte ((Mein Siebhirn vergisst alle Informationen die es sich merken soll, nach etwa dreißig Sekunden.)), war ich mir meiner Sache nicht mehr so ganz sicher.

Ikea-Tisch Nordby

Ich hatte mich also nicht geirrt. Anscheinend ist der Tisch bisher online einfach noch nicht verfügbar. Aber es wird wohl eine ganze Serie mit Nordby-Möbeln geben: Irgendwo stolperte ich (im wahrsten Sinne des Wortes) gegen einen Couchtisch mit dem gleichen Namen. Eine passende Bank zum Tisch gibt es übrigens auch.
Demnächst werde ich wohl die Möglichkeit haben, mal wieder mit einem Auto nach Ikea zu fahren. Bis dahin muss ich mir überlegen, ob mir mein aktueller Schreibtisch wirklich zu groß ist, wie es mit der tatsächlichen Platzersparnis aussieht und ob mir diese das Geld wert ist. Eine gute Möbel-Aufmöbel-Idee zu dem neuen Tisch habe ich auch schon. Aber ich möchte nicht zu viel verraten.

Nachtrag: Um es noch ein wenig mysteriöser zu machen, hat Ikea jetzt in seiner eigenen Aktionswerbung auch Nordby-Artikel. Die Suche auf der Webseite findet aber immer noch nichts dazu.

ikea-nordby-topf

Plugin? Pah! - Ein Tutorial

Da fragte mich der Andi dieser Tage doch, mit welchem Plugin ich denn die Schlagworte und verwandten Einträge unter einem Eintrag hier aus- und einblenden lasse. Plugin? Pah! Natürlich habe ich da selbst ein wenig Hand angelegt. So sieht das übrigens ausgeklappt aus, zum Beispiel unter dem vorigen Beitrag ((Verwirrend übrigens, einen Screenshot in Originalgröße in den Eintrag einzublenden. Ich will da dauernd draufklicken.)):

Verwandte Einträge/Schlagworte

Nachdem ich eine kurze Weile beleidigt war, erklärte ich die näheren Umstände und dass man nicht immer alles per Plugin lösen muss. Daraufhin wurde ich als "Programmierer" beschimpft. Wieder war ich für kurze Zeit beleidigt. Anschließend kam dann meine Gutherzigkeit doch wieder durch und so versprach ich dann, mal zu erklären wie man so was selbst baut. Eigentlich ist das nämlich nicht schwer. Und das gibt es dann nach dem Klick.

Um den coolen Slide-Effekt zu bauen, brauchen wir zuerst einmal ein paar Dinge: Zuerst natürlich mal FTP-Zugang zum (Wordpress-)Blog, einen Texteditor, jQuery und ein paar grundsätzliche Kenntnisse im Umgang mit all dem. Easy, das hat auch der Andi drauf.

Als erstes braucht es dann mal ein wenig HTML. Ein Element wird um den zu versteckenden Inhalt gebaut, ein zweites dient als Link zum Öffnen und Schließen des Ersten. Das sieht dann etwa so aus:


<div class="metaopener"><span>&darr; Verwandte Einträge/Schlagworte</span></div>

<div class="metadata">
	<!-- an dieser Stelle kann man einbauen was man will, das ist dann nachher versteckt -->
</div>

Bekanntlich wäre purer HTML-Code aber nicht so sonderlich hübsch, wenn es da nicht die wundervollen CSS gäbe. In diesem Fall benötigen wir aber auch eine Zeile für den Effekt. Hier aber erst einmal der CSS-Code aus meinem Stylesheet. Ich habe ihn auf das nötigste reduziert.


.metaopener {
	text-align: right;
     border-bottom: 1px solid #eee; 
	}

	.metaopener span {
		cursor: pointer;
		}
		
	.metaopener span:hover {
		color: #000;
		}
		
.metadata {
	display: none;
	border-bottom: 1px solid #eee;
	}

Mit ein wenig Blick für HTML erkennt man, dass der Container mit der Klasse metaopener durch den CSS-Code mit einer Linie am seinem unteren Ende ausgestattet wird (Zeile 3) und der Textfluß innerhalb des Elementes nun rechts ausgerichtet ist (Zeile 2).
Der span innerhalb des Containers soll später unser Link sein. Damit das auch nach was ausschaut, verändere ich den dargestellten Mauscursor (Zeile 7) für das Element und ändere die Textfarbe, wenn man mit der Maus darauf kommt (Zeile 11).
Der Container mit der Klasse metadata wird später die versteckten Inhalte beinhalten. Damit dieser beim Aufruf der Seite nicht zu sehen ist, blende ich ihn mit display: none; aus (Zeile 15). Die Linie am unteren Rand des Containers dient nur der Optik (Zeile 16). Falls das hier wirklich mal jemand nachbauen sollte, ist es empfehlenswert die erst mal zu Testzwecken drin zu lassen.

So weit, so gut. Nun passiert allerdings noch nicht sonderlich viel. Bisher wäre der Inhalt des zweiten Containers einfach verschwunden. Deshalb laden wir uns nun jQuery herunter, packen es dann per FTP in den Ordner des aktuellen Wordpress-Themes. Die folgenden Zeilen binden zwei Dateien namens jquery.js und functions.js ein. Wir packen sie in die Datei header.php irgendwo zwischen die beiden head-Tags. Ersteres sollte die gerade hochgeladene Datei sein, zweitere legen wir uns erst einmal im Template-Verzeichnis an.


<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/jquery.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/functions.js"></script>

Was brauchen wir eigentlich noch? Genau, ein wenig Code der dem HTML- und CSS-Code sagt: "Wenn ich auf das eine klicke, dann soll das andere auf oder zugehen. Echt jetzt!"
Das schöne an jQuery ist, dass das Framework für den Webentwickler ((So darf man sich nach Abschluss dieses Tutorials nennen!)) ohne JavaScript-Kenntnisse sehr leicht zu verstehen ist. Wenn es nicht mehr als ein wenig auf- und zugeslide sein soll, dann tut es folgender Code völlig:


$(document).ready(function(){
    $(".metaopener span").click(function () {
             $(".metadata").slideToggle("slow");
    });
});

Den Kram kopieren wir nun in die Datei functions.js. Apfel-C, Apfel-V. Und dann schauen wir mal, was der Code so macht:

Die Funktion in Zeile 1 umschließt das gesamte Konstrukt und gegebenenfalls noch weitere jQuery-Skripte. Sie lädt den Javascript-Code wenn das Dokument (also die aktuelle Seite) fertig geladen ist.
In der zweiten Zeile wird dann einem span eine Click-Funktion zugewiesen. Dem aufmerksamen Webentwickler fällt auf, dass die Notation die gleiche ist wie im CSS-Code. Gut, ne?
Zeile Nummer drei sagt dann was gemacht werden soll wenn jemand auf den span klickt. Gar nicht schwer zu verstehen: Auf den Container mit der Klasse metadata wird die Funktion slideToggle("slow") angewendet.
Die vierte und fünfte Zeile schließen dann noch Klammern und schon ist alles fertig. Wenn man mein ganzes Blafasel mal ausblendet, dann sollte das irgendwie in zehn Minuten erledigt sein.

Wie das dann am Ende ausschaut, kann man sich direkt unter diesem Beitrag dann auch mal anschauen. Fragen dürfen gerne in die Kommentare.

Verdammnis

Gestern im Kino: Der zweite Teil der Verfilmung von Stieg Larssons "Millenium"-Trilogie. Verdammnis.

Vorweg: Ich habe bisher keines der Bücher gelesen. Das ist vielleicht auch gut so, denn Frau Anna konnte anschließend einen sehr ausführlichen Vortrag darüber halten, was alles fehlte und falsch war. Wie üblich bei Buchverfilmungen wurde an einigen Stellen wohl gespart und auch umgeschrieben. Mir machte das nichts aus.

Kurz zur Geschichte: Lisbeth Salander und Mikael Blomkvist ermitteln im Film parallel am gleichen Fall. Allerdings aus unterschiedlichen Gründen. Es dreht sich um den Handel mit osteuropäischen Mädchen, was allerdings nie richtig in den Vordergrund tritt. Lisbeth geht es aber eigentlich gar nicht darum, sie wird mehr oder weniger per Zufall verwickelt. Im Laufe der Geschichte wird Lisbeth dann des dreifachen Mordes verdächtigt. Es stehen einige Überraschungen auf dem Plan, bis es dann doch noch zu einer Art Showdown in der wunderbaren schwedischen Landschaft kommt.

Sieben von zehn Punkten würde ich vergeben, schlecht gemacht ist der Film nämlich nicht. Schon sehr spannend. Irgendwie zog es sich aber dann gegen Ende doch ein wenig. Der Schluss war dann ein ziemlicher Cliffhanger, wie man ihn sonst eigentlich nur von Serienfolgen kennt. Im Juni kommt dann aber auch schon der dritte Teil.

Relative Zeitangaben in Wordpress

Aktualisierung: Damit das alles mehr Sinn macht, habe ich noch ein "über" in das erste if eingebaut.

Kleine Bastelei in der Mittagspause: Über den Kommentaren wird jetzt nicht mehr das Datum des Kommentars angezeigt, sondern wie lange er schon dort steht. Das finde ich sehr viel hübscher als die normale Zeitangabe.

Nur ein klein wenig musste ich rumsuchen, bis ich eine Lösung für Wordpress gefunden hatte. Im Ninedays Blog erklärt Terri Ann wie es geht und was der PHP-Code genau macht.

Da ich schon sehr viel Wert darauf lege das hier alles auf deutsch ist, übersetzte ich die wenigen Texte schnell. Außerdem habe ich das Skript so angepasst, dass es statt vor 1 Minute nun vor einer Minute ausgibt. Dazu habe ich in jede if-Abfrage noch ein weiteres "if" eingebaut, das die Zahl 1 durch einen Text ersetzt. Das sieht in meinen Augen besser aus. Den von mir verwendeten Code gibt es nach dem Klick.

Das ist nun der Code, der in die Datei functions.php des Themes muss:


<?php
if ( ! function_exists( 'how_long_ago' ) ) {
	function how_long_ago( $timestamp ) {
		$difference = time() - $timestamp;

		if ( $difference >= 60 * 60 * 24 * 365 ) {
			// if more than a year ago
			$int = intval( $difference / ( 60 * 60 * 24 * 365 ) );
			$s   = ( $int > 1 ) ? 'en' : '';

			if ( $int == 1 ) {
				$int = 'einem';
			};

			$r = "vor über " . $int . ' Jahr' . $s;

		} elseif ( $difference >= 60 * 60 * 24 * 7 * 5 ) {
			// if more than five weeks ago
			$int = intval( $difference / ( 60 * 60 * 24 * 30 ) );
			$s   = ( $int > 1 ) ? 'en' : '';

			if ( $int == 1 ) {
				$int = 'einem';
			};

			$r = "vor " . $int . ' Monat' . $s;

		} elseif ( $difference >= 60 * 60 * 24 * 7 ) {
			// if more than a week ago
			$int = intval( $difference / ( 60 * 60 * 24 * 7 ) );
			$s   = ( $int > 1 ) ? 'n' : '';

			if ( $int == 1 ) {
				$int = 'einer';
			};

			$r = "vor " . $int . ' Woche' . $s;

		} elseif ( $difference >= 60 * 60 * 24 ) {
			// if more than a day ago
			$int = intval( $difference / ( 60 * 60 * 24 ) );
			$s   = ( $int > 1 ) ? 'en' : '';

			if ( $int == 1 ) {
				$int = 'einem';
			};

			$r = "vor " . $int . ' Tag' . $s;

		} elseif ( $difference >= 60 * 60 ) {
			// if more than an hour ago
			$int = intval( $difference / ( 60 * 60 ) );
			$s   = ( $int > 1 ) ? 'n' : '';

			if ( $int == 1 ) {
				$int = 'einer';
			};

			$r = "vor " . $int . ' Stunde' . $s;

		} elseif ( $difference >= 60 ) {
			// if more than a minute ago
			$int = intval( $difference / ( 60 ) );
			$s   = ( $int > 1 ) ? 'n' : '';

			if ( $int == 1 ) {
				$int = 'einer';
			};

			$r = "vor " . $int . ' Minute' . $s;

		} else {
			// if less than a minute ago
			$r = 'gerade eben';
		}

		return $r;
	}
}

Wie folgt wird nun das relative Datum ausgegeben, der folgende Code ist natürlich schon auf meine Bedürfnisse angepasst.


<?php
if ( ! function_exists( 'how_long_ago' ) ) {
	' |' . comment_date();
} else {
	echo how_long_ago( get_comment_time( 'U' ) );
}

Neben der Funktion get_comment_time() kann so auch get_the_time() ersetzt werden. Vielleicht ist ja noch dem ein oder anderen damit geholfen. Bei mir klappt alles ganz super, Fragen dürfen gerne in die Kommentare.

Installationsanleitung: Open Transport Tycoon

Gestern schon in der Linkeria angekündigt, habe ich mich ein wenig mit dem Open Source-Spiel Open Transport Tycoon beschäftigt. Ganz so einfach war es nicht, dass Spiel richtig zum Laufen zu bekommen.

Screenshot: Open Transport Tycoon

Die Programmierer bieten im Wesentlichen nämlich nur eine Laufzeitumgebung für das Spiel, eigentlich soll man auf die Grafikdateien des Originalspiels zurückgreifen. Schade wenn man die nicht hat, denn das Spiel macht eine Menge Spaß, läuft flüssig und sieht hübsch aus ((Wenn man nicht auf 3D geballere steht, sondern auf Wirtschaftssimulationen.)).

Aber es gibt Abhilfe. Mit OpenGFX und OpenSFX stellen einige fleißige Menschen nämlich auch freie Grafiken und Sounds zur Verfügung, die das Spiel komplettieren.

Die Installationsanleitungen lesen sich alle ein wenig aufwändig. Dabei ist es eigentlich gar nicht schwer, wenn man mal durchgeblickt hat. Hier die einzelnen Schritte für die Installation unter MacOS X.

Anschließend steht dem Spielspaß nichts mehr im Weg. Ich werde mich sicherlich noch das ein oder andere Mal mit dem Spiel beschäftigen, die zwei Stunden gestern Abend haben wirklich Spaß gemacht.

New York, I love you

Gestern Abend im Kino: New York, I love you. Ein Film bestehend aus verschiedenen Kurzfilmen. Skeptisch war ich vorher ja schon, normalerweise gehe ich ja eher in Kino, wenn es mal ordentlich krachen und rumsen soll.

Lange Rede, kurzer Sinn: Es hat sich schon gelohnt. Hätte ich mich vorher mal ein wenig informiert, wäre das auch vorauszusehen gewesen. Wenn sich gleich mehrere tolle Regisseure (zum Beispiel Fatih Akin) zusammentun und dann auch noch unter anderem Shia LaBeouf (u.a. Transformers), Natalie Portman, Orlando Bloom, Christina Ricci, Hayden Christiansen, Andy Garcia und Ethan Hawke verpflichten, kann eigentlich nichts all zu schlechtes dabei herauskommen.

Mit dem Klick werden Daten von YouTube nachgeladen.

Die einzelnen Geschichten sind alle schön gemacht. Zum Teil witzig, zum Teil nachdenklich. Obwohl die einzelnen Handlungen unabhängig voneinander laufen, findet sich am Ende doch alles zusammen. Das Aufgebot an Darstellern ist schon ein wenig beeindruckend. Wie immer wenn es kein großes Effektspektakel gibt, muss man den Film nicht unbedingt im Kino gesehen haben. Für einen DVD-Abend oder einen Sonntagnachmittag ist er aber sehr zu empfehlen.