Archiv für März, 2012

Filme

Film-Kurzreview: “Der Ghostwriter”

0

Gelungener unkomplizierter Politthriller

derghostwriterEin Ghostwriter (Ewan McGregor) bekommt die profitable Gelegenheit, die Autobiographie des ehemaligen britischen Premierministers Adam Lang (Pierce Brosnan) zu vollenden, da der Vorgänger-Ghostwriter Michael McAra, der bereits ein vollständiges Manuskript verfasst hatte, sich kurz zuvor augenscheinlich das Leben nahm. Unter Auflagen wird ihm gestattet, das Manuskript einzusehen und Lang zu interviewen. Dieser muss sich derweil vor der britischen Justiz und der Bevölkerung verantworten, weil er Terrorverdächtige hat entführen und foltern lassen. Der Ghostwriter stößt bei seiner Recherche auf beunruhigende Ungereimtheiten, die vermuten lassen, dass McAra ermordet wurde, weil er angebliche Hinweise auf eine Verbindung zur CIA gefunden hatte. Als der Ghost beginnt die falschen Fragen zu stellen, begibt er sich damit selbst in Lebensgefahr. In seiner Not wendet er sich an Langs größten Rivalen und Ankläger Rycart (Robert Pugh), von dem er erfährt, dass des Rätsels Lösung in McAras Manuskript zu finden sein muss.

Regie-Altmeister Roman Polanski schuf mit “Der Ghostwriter” einen haarsträubend aufregenden Politthriller, von dem selbst ich als jemand, der mit dem Genre nur selten etwas anzufangen weiß, mich gerne habe mitreißen lassen. Im Gegensatz zu den üblichen Kandidaten überfordert “Der Ghostwriter” den Zuschauer nicht mit zunehmend komplexeren politischen Verstrickungen, über die er im Laufe der Handlung den Überblick behalten muss, sondern hält sich damit betont zurück. So kommen hier sogar Fans eher leicht verdaulicher Unterhaltungskost mitunter auf ihre Kosten. Der Plot wirkt intelligent und plausibel, und trotz seiner Einfachheit verwirrend genug. Spannendes Miträtseln ist garantiert.

Ewan McGregor setzt den unbedarften Schriftsteller, der ohne die nötigen politischen Fachkenntnisse an der Autobiographie eines umstrittenen Politikers arbeitet, in jeder Hinsicht perfekt in Szene. Pierce Brosnan mimt entsprechend den leicht schmierigen stereotypischen Politiker, dem es von Natur aus Schwierigkeiten bereitet, die Wahrheit zu sagen. Der Zuschauer weiß zu Recht erst nicht, was er von ihm halten soll. Diese Charakterkonstellation hält genau was sie verspricht und sorgt für die nötige unterschwellige Spannung, die der Ghost zunächst zu ignorieren versucht.

Besonders positiv aufgefallen sind mir die vielen tristen Einstellungen der kargen, verregneten Insel. Sie unterstreichen die melancholische Grundstimmung des Films und sorgen für eine angenehm einsame Atmosphäre, die passender nicht hätte sein können. Polanski versteht es wirklich, den Zuschauer in dieselbe bedrückende Situation zu bringen wie seine Charaktere. Einziger merklicher Wermutstropfen für mich war das unbefriedigende Ende, das nicht so gut zum allgemeinen Stil des Films und erst recht nicht zum eigentlich packenden Twist passt. Das Motiv der Hauptfigur erscheint mir nicht schlüssig und das trübt den bleibenden Eindruck leider nicht unerheblich.

Fazit: Für Politikwissenschaftler und Verschwörungstheoretiker steigt “Der Ghostwriter” wahrscheinlich nicht tief genug in die Materie ein, für alle anderen dagegen eine großartige Balance zwischen Unterhaltung, wirkungsvollem Ambiente, und Kritik an der Verflechtung von Geheimdiensten und Regierungen, dazu eine gelungene Portion Spannung. Als Gesamtwerk funktioniert der Film außerordentlich gut, obwohl er meiner Meinung nach auf der Zielgeraden falsch abbiegt.

Java

DailyMaxRollingZipFileAppender für Log4j

2

Nun also doch wieder ein winziger Beitrag zur Java-Welt von mir. Da ich an Projekten arbeite, die mit Hilfe von Apache Log4j Logdateien erstellen, wurde kürzlich die Frage geäußert, wie man denn verhindern kann, dass das System irgendwann mit gigabytegroßen Logs volllaufen wird. Die bisherige “Alles-in-eine-Datei”-Implementierung sollte also ersetzt werden durch eine Lösung mit täglichem Wegspeichern der Logs vom Vortag und nach Möglichkeit direkt als ZIP-Datei, um Platz zu sparen (Plain Text lässt sich bekanntlich unheimlich gut packen). Hinzu kommt dann noch, dass nur die Logdateien der letzten x Tage vorgehalten werden sollten. Ältere Logs müssen automatisch gelöscht werden.

Nun ist Log4j ein sehr mächtiges Tool, das einem wirklich viel Arbeit abnimmt. Der RollingFileAppender z.B. erlaubt es dem Entwickler ganz einfach, Logdateien wegzuspeichern, wenn sie eine bestimmte Dateigröße erreicht haben, und die nächste Logdatei zu beginnen. Wunderbarerweise gibt es zusätzlich sogar die Möglichkeit, mit maxBackupIndex vorzugeben, wieviele Logdateien gleichzeitig gespeichert bleiben sollen. Fast perfekt, aber leider nicht auf periodisches, also z.B. tägliches Wegspeichern anwendbar. Zu meinem Glück gibt es genau für diese Anforderung den DailyRollingFileAppender, so als wäre er direkt für mich gemacht worden. Und jetzt kommt der Brüller: Der DailyRollingFileAppender hat blöderweise wieder keinen maxBackupIndex, er erlaubt also nicht das Vorhalten einer vorgegebenen Anzahl an Logdateien. Super Sache. Wie bekomme ich jetzt DEN FileAppender, der beides kann? Ich bräuchte eine Kombination aus beidem.

Unter http://wiki.apache.org/logging-log4j/DailyRollingFileAppender fand ich die Rettung in Form einer fertigen Klasse: Der DailyMaxRollingFileAppender – tägliches Wegspeichern mit Angabe des maxBackupIndex. Damit wären also zwei von drei Anforderungen erfüllt. Die ZIP-Funktionalität fehlte noch. Meine Mission war es also, einen kleinen FileAppender zu schreiben, der den DailyMaxRollingFileAppender erweitert. Geboren war der DailyMaxRollingZipFileAppender (DAS ist mal ein Klassenname!):

package org.apache.log4j;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * @author Vincent Hoehnel
 *
 */

// This FileAppender additionally enhances DailyMaxRollingFileAppender with ZIP file support
public class DailyMaxRollingZipFileAppender extends DailyMaxRollingFileAppender{

	public DailyMaxRollingZipFileAppender(){
	}

	public DailyMaxRollingZipFileAppender(Layout layout, String filename, String datePattern) throws IOException{
		
		super(layout, filename, datePattern);
		
	}
	
	// New rollover method that compresses backup logfiles
	@Override
	public void rollOver() throws IOException{
		
		File currentLogfile = new File(fileName);
		String newFileName = fileName+sdf.format(new Date(currentLogfile.lastModified()));
		
		super.rollOver();
		
		File oldLogfile = new File(newFileName);
		File zipLogfile = new File(newFileName + ".zip");
		
		if(!oldLogfile.exists())
			return;
		
		// Open and read original backup log file into byte array
		FileInputStream logfileInputStream = new FileInputStream(oldLogfile);
		
		byte[] oldLogfileContent = new byte[(int) oldLogfile.length()];
		
		logfileInputStream.read(oldLogfileContent);
		logfileInputStream.close();
		
		// Write it into a zip file
		FileOutputStream fileOutputStream = new FileOutputStream(zipLogfile);
		ZipOutputStream zipfileOutputStream = new ZipOutputStream(fileOutputStream);
		
		zipfileOutputStream.putNextEntry(new ZipEntry(newFileName));
		zipfileOutputStream.write(oldLogfileContent, 0, oldLogfileContent.length);
		zipfileOutputStream.closeEntry();
		
		zipfileOutputStream.close();
		fileOutputStream.close();
		
		// Delete original log file
		oldLogfile.delete();
		
	    if(getMaxBackupIndex() > 0){
	    	
	        // Delete the oldest zip file
	        File file = new File(fileName + dateBeforeZip());

	        if (file.exists())
	          file.delete();
	        
	    }
		
	}

	private String dateBeforeZip(){
	
	  String dataAnte = "";

	    if(getDatePattern() != null){
	    	
	      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(getDatePattern());
	      dataAnte =  simpleDateFormat.format(new Date(rpc.getPastCheckMillis(new Date(), getMaxBackupIndex())));
	      
	    }

	    return dataAnte + ".zip";
	}

}

Dieser FileAppender benennt zum Tageswechsel das Logfile mit Angabe des Datums um, verpackt es sofort als handliche ZIP-Datei, und löscht bei Bedarf das älteste Logfile (sofern maxBackupIndex erreicht). Ist ja eigentlich schon fast schade, dass Log4j sowas nicht von Haus aus kann. Falls jemand zufällig mit Log4j zu tun hat und damit was anfangen könnte: Bedient euch.

In related news: Hurra, endlich ein Syntax-Highlighter-Plugin für SuccessDenied. Als Programmierer kann man doch beinahe keinen Blog führen ohne ein solches Plugin.

Hardware

Unendlich Speicherplatz!!11einself

6

qnapnasIch bin reich! Also zumindest an Speicherplatz. Seit gestern Abend kann ich 15 Terabyte an Daten speichern. Zusätzlich selbstverständlich zu den 8,5 TB die mir an internen und externen magnetischen Speichermedien bisher schon zur Verfügung standen. “Wer braucht denn soviel Platz?” werden die üblichen VollidiotenVerdächtigen wieder fragen und ich werde antworten: “Ihr wohl nicht, aber ICH!“.

Das neueste Stück Hardware, das bei mir nun rumsteht ist ein Netzwerkspeicher (NAS) von QNAP inklusive fünf 3,5″-Festplatten mit jeweils 3 TB. Darauf werden künftig zwei Desktoprechner, zwei Notebooks, ein Tablet und ein Smartphone jederzeit Zugriff haben. Die Kiste läuft mit einem Linux-Kernel und wird betrieben von einem beeindruckenden 1,8 GHz Zweikern-Intel Atom-Prozessor mit 1 GB RAM. Ist alles USB 3.0-, SATA3-, und doppelt Gigabit-LAN-fähig und kann die Datenträger verschlüsseln. Das Ding hat soviele Features und integrierte Dienste, dass ich wahrscheinlich morgen noch am Tippen wäre, würde ich versuchen sie alle aufzuzählen.

Na gut, es sind natürlich nicht 15 “TB”, sondern – nach Umrechnung – 13,7 TB, im RAID5 abzüglich Parität und sonstigem Overhead landen wir dann bei “nur” noch 10,8 TB freiem nutzbarem Speicher. Immer noch eine ganze Menge. Das krieg ich ja NIEMALS voll. Wahrscheinlich aber doch. Soviel zu unendlich Speicherplatz.

explorernas2Inzwischen habe ich Benutzer bzw. Freigabeverzeichnisse erstellt und diese schonmal probeweise unter Windows als Netzwerklaufwerke eingebunden und so die Rechtevergabe getestet. Scheint alles zu klappen, auch wenn ich dem Gerät meine Daten noch nicht so ganz anvertrauen will. Nachdem das NAS sich von seiner eigenen Software im Netzwerk nicht finden ließ, das Updaten der Firmware zuerst nicht klappen wollte, die Firmware zudem einen entsetzlich dämlichen Bug beim Anlegen der Benutzer hat (Artikel folgt wohl), mit der Datenträgersynchronisierung nach elf Stunden noch nicht ganz fertig war, und jetzt nach einem Reboot damit schlauerweise wieder von vorne anfängt, wobei die Synchronisierung stolze 50% der CPU frisst, bin ich zwiegespalten und etwas misstrauisch was das Ding angeht. Außerdem weiß ich nicht ob drei Minuten zum Hochfahren normal sind. Das packt meine Windows-Installation ja schneller und die müsste doch deutlich schwergewichtiger sein als so ein hochspezialisiertes Embedded-System. Vielleicht hätte ich mein Geld am Ende doch lieber dem Konkurrenzanbieter Synology geben sollen. Nunja, die Hauptsache ist, dass es läuft.

Und wofür brauch ich das Ding nun? Ganz einfach: für Redundanz, für einen zentralen dedizierten Speicherort, und für maximale Zukunftssicherheit. Auf das NAS kommen Daten, die für mich unverzichtbar sind und nicht durch einen Festplattenausfall verloren gehen dürfen. Außerdem komme ich so erst einmal nicht in die doofe Situation, dass mir der Speicherplatz ausgeht. Meine Daten kann ich nun immer und überall aus dem Internet abrufen, auch wenn ich meinen Desktoprechner mal ausgeschaltet habe.

Deutschland

Wahl-O-Mat Saarland 2012

11

Ich bin zwar kein Saarländer, aber ich habe mal wieder die Probe aufs Exempel gemacht und mich spaßeshalber durch die Thesen im Wahl-O-Mat zur Landtagswahl im Saarland 2012 geklickt. Bei vielen kommunalen Themen musste ich mich enthalten, da mir für eine Einschätzung das Hintergrundwissen fehlt, aber ich habe mich bemüht, mich meistens für eine Seite zu entscheiden.

saarlandwahlomat

Oh, welche Überraschung, die Piratenpartei mit deutlichem Abstand auf Platz 1. Auf dem hinterletzten Platz, da wo sie eigentlich hingehört, ganz knapp nach der FDP: die ach so wunderbare CDU, die – warum auch immer (rhetorische Frage) – die Geschicke unseres Landes lenken darf.

Doch überraschend allerdings ist für mich, dass Martin Sonneborns Die PARTEI bei mir sogar auf Platz 2 landet. Auf Platz 3 dann aus einem mir unverständlichen Grund leider die NPD, was mir ein klein wenig zu denken geben sollte. Da hätte ich eigentlich lieber die Grünen gesehen. Vielleicht habe ich bei der einen oder anderen Frage etwas zu hoch gegriffen, und dabei hatten meine Antworten so gar nichts nationalistisches.

Aber ich stehe zu dem Ergebnis, denn ich wollte ja ganz bewusst die Fragen nicht so beantworten, damit mir das Ergebnis passt, sondern so wie ich es für richtig halte. Die wichtigsten Parteien sind nämlich genau da wo ich sie haben will. Die schwarzgelbe Fortschrittsbremse am unteren Ende und die progressiven Piraten ganz oben.

Update vom 19.03.: Danke an Gordon für die ausführliche Recherche und den Hinweis. Dass bei Piratenwählern die NPD so weit oben in der Liste auftaucht, ist kein Weltuntergang und liegt einfach daran, dass bei den gegebenen Thesen die NPD und die Piraten zufällig oft derselben Meinung sind. Das sagt eben nichts darüber aus, wie oft Piraten und NPD völlig gegensätzlicher Meinung sind. Die Auswahl der Thesen hat eben nicht besonders viel Piraten- oder NPD-spezifisches und so ist die Übereinstimmung durchaus nicht so unwahrscheinlich.

Niemand muss Angst haben, dass ihm plötzlich die Haare ausfallen, dass ihm Springerstiefel an den Füßen und Schlagringe an den Händen wachsen und dass ihn seine Beine eigenmächtig zu Naziaufmärschen tragen.

Filme

Film-Kurzreview: “Easy Money”

0

Spannender aber nüchterner Thriller

easymoneyDer Student Johan (Joel Kinnaman) ist ein kluger Kopf wenn es um Finanzen geht, doch alleine von Geld etwas zu verstehen, macht ihn nicht automatisch reich. Um gleichzeitig studieren und Kontakte zur High Society knüpfen zu können, betätigt er sich nachts illegal als Taxifahrer. Als er sich in die reiche Sophie verliebt, steht sein Entschluss längst fest: Er braucht schnell viel Geld. Der entflohene Häftling Jorge (Matias Padin Varela) hilft ihm dabei, einen Kokaindeal auszuhandeln und in die skrupellose Untergrundwelt einzusteigen. Zur gleichen Zeit begegnen sie dem serbischen Auftragskiller Mrado (Dragomir Mrsic), der seinen Teil vom Kuchen abhaben will und der auch über Leichen geht. Johan stellt entsetzt fest, dass er diese gefährliche Welt lieber nicht betreten hätte. Die Aussicht auf das viele Geld ist aber zu verlockend, außerdem kann niemand mehr so einfach aussteigen.

“Easy Money – Spür die Angst” ist ein Film über Vertrauen und vor allem Misstrauen in einer Welt schneller riskanter Geldgeschäfte. In dieser Welt gibt es keine Freunde, nur Gewinner und Verlierer – Betrüger und Betrogene. Johan, der zunächst nur auf eine große Menge leichtverdienten Geldes aus ist, erkennt zu spät, welche Opfer er – und andere – dafür bringen müssen. Wem es hier nicht schnell genug gelingt, sich unentbehrlich zu machen, der wird hintergangen oder beseitigt. Der Film zeigt die emotionale Zerrissenheit, die Johan erfährt, während er sich klarmachen muss, dass er keiner der bösen Jungs sein will, nur um einer reichen Frau zu gefallen.

Die schwedische Romanverfilmung unter der Regie von Daniél Espinosa ist ein gegen Ende recht spannender Thriller, der es tatsächlich schafft, jedem Akteur in den thematisierten zwielichtigen Geschäften auch eine menschliche Komponente beizulegen, so beispielsweise dem kantigen Mrado, der sich neben seiner illegalen Geschäfte auch um seine 8-jährige Tochter Lovisa kümmern muss, für die er ein guter Vater sein will. Leider fand ich die erste Hälfte insgesamt eher lau, und gerade in den ersten zehn Minuten fiel es mir schwer herauszufiltern, wer oder was für die folgende Handlung relevant ist. Zeitliche Sprünge von mehreren Stunden sind im ersten Moment nicht deutlich genug. Die Verwirrung löste sich aber doch schnell auf.

Der Film kommt ohne größere Effekte, ohne international bekannte Darsteller und ohne aufwändigen Soundtrack aus, aber das macht den Film noch lange nicht schlecht. Stellenweise ist das nicht ganz so große Budget erkennbar, aber das sorgt nur dafür, dass man sich mehr auf die Leistungen der Schauspieler konzentriert, und die können sich sehen lassen. Die Handlung ist wenig spektakulär und stellenweise ungeschliffen, dafür kommen zum Finale auch Action-Fans noch auf ihre Kosten.

Fazit: Man darf nicht erwarten, dass man hier etwas Neues geboten bekommt, aber “Easy Money” hat seine Momente. Ich kann nicht behaupten, übermäßig viel von skandinavischen Filmen zu halten, aber dieser ist durchaus sehenswert. Es wird für mich allerdings bei diesem einen Mal bleiben.

Success Denied Symbol

Neuer Bereich und andere Änderungen

0

oxyd2 3Der Winter ist nun vorbei, da kann ich mal wieder ein kleines Update über die neuesten Änderungen an Success Denied posten. Nach wie vor keine nennenswerte Verbesserung der Besucherzahlen und auch die Werbepartner halten sich noch etwas zurück, so dass ich noch ein bisschen länger auf das ganz große Geld warten muss. Aber keine Sorge, das mit dem Weltruhm klappt sicher noch.

Bis dahin möchte ich euch darüber unterrichten, dass es im Menü unter “Bereiche” nun eine neue Seite speziell für die Atari ST -Spiele von Meinolf Schneider und Dongleware gibt. Zusätzlich zu den Beschreibungen, Screenshots und einigen Infos, kann ich somit auch die allerersten Downloads auf meiner Seite präsentieren. Zu allen dort erwähnten Spielen gibt es Disk-Images und Rohdateien für die verfügbaren PD-Versionen, Vollversionen und Leveleditoren. Wenn sich dort irgendwo ein Fehler eingeschlichen haben sollte, bin ich für Hinweise selbstverständlich wie immer dankbar. Im Moment bin ich am überlegen, ob ich die Sektion noch mit YouTube-Videos erweitern soll und ob ich OXYD Magnum einfügen sollte, das ich leider nie gespielt habe. Das Design kann sich jedenfalls jederzeit ändern, da ich sowieso noch viel am Experimentieren bin.

Die Team-Seite musste weichen, da sie den Anschein erweckt hatte, SuccessDenied.com sei eine Teamproduktion. Darüber hinaus habe ich das Menü einige Male umgestellt, weil ich mir immer noch nicht restlos sicher bin, wie ich die Seite strukturieren will und was der Kern der Seite sein soll. Die Premium-Sektion ist zurück, kann aber ohne Passwort nicht genutzt werden. Was sich dort verbirgt, wissen natürlich nur die Leute, die darauf auch Zugriff haben. Der Umstieg auf WordPress 3.3.1 verlief ohne Probleme, auch das Update auf phpBB 3.0.10. Die letzten drei Updates meiner gewählten Kern-Theme für WordPress waren dagegen schon etwas komplizierter, da ich beinahe jedes Mal auch meine Childtheme anpassen musste, was ja eigentlich nicht der Sinn der Sache ist.

Einige Grafiken habe ich korrigiert. Daneben experimentiere ich mit einigen Codesyntax-Plugins für WordPress, damit sich Quelltexte besser in Blogposts anzeigen lassen. Leider will das Ding irgendwie nicht so recht funktionieren, was die Sache verzögert. Zusätzlich überlege ich mir die Einführung eines Review-Plugins, um z.B. Filme, Spiele oder Serien in Zahlen bewerten zu können. Aber auch das klappt noch nicht so optimal, weshalb ich vorerst verzichten werde.

Viele neue Bereiche sind geplant, so dass mein Blog in Zukunft doch deutlich an neuem Inhalt gewinnen wird. Allerdings muss ich dafür erst einmal die nötige Energie und Zeit finden, so wie eben mit dem Dongleware-Bereich. Geplant sind zusätzliche Accounts, die ich meiner Seitenleiste hinzufügen will. Außerdem geht es zur Zeit (ganz ganz langsam) mit meinem kleinen Java-Projekt wieder voran, dessen Unterbau ich vor einigen Monaten komplett von neuem begonnen habe zu implementieren. Die Performance dürfte einem Minispiel, das es nun mal ist, künftig eher gerecht werden, außerdem ist der Code dann auch viel besser lesbar, da ordentlich strukturiert.

Wie gehts weiter? Keine Ahnung! Irgendwas wird es schon werden. Bis dahin schreibe ich weiter über dies und das, bis mir die ultimative Erleuchtung kommt. Dass das nicht das Gelbe vom Ei ist, ist mir selbst auch klar, aber das hält mich nicht davon ab.

nach oben