About Stefan Antoni

Der Suchmaschinen-Experte, Internet-Enthusiast & Pythonista kennt sich mit performanten und skalierbaren Enterprise Search & Content Management Systemen (CMS) aus. Mehr von Stefan gibt es bei Xing.de, bei LinkedIn und vor allem bei Twitter und auf Google Plus. Wem das noch nicht reicht, der bekommt auf http://stefan.antoni.io eine gebündelte Übersicht über alle Referenzen von Stefan Antoni und einen Überblick über alle Kontaktmöglichkeiten.

Filmkritik zum Film “Side Effects” von Steven Soderbergh

Der Film Side Effects ist ein intelligenter und mitreißender Thriller, der sich zunächst als deprimierende Anklage gegen die US-Pharmalobby tarnt, um daraufhin zu einem Psychothriller rund um eine geschickt eingefädelte Verschwörung zu mutieren.

Side Effects funktioniert auf beiden Ebenen ganz hervorragend und bietet einen kontinuierlichen Spannungsbogen, der es dem Zuschauer schwer macht sich auch nur für einen Moment vom Geschehen auf der Leinwand zu distanzieren. Der Film erzeugt eine Sogwirkung, wie man sie ursprünglich vor allem von Alfred Hitchcocks Werken her kannte, in dessen Trickkiste sich Steven Soderbergh offenbar auskennt.

Viele unerwartete Wendungen im Kleinen wie im Großen und nicht wenige, cinematographisch geschickt eingestreute Hinweise auf kommende Überraschungen, treiben die Story unentwegt auf ihren Höhepunkt zu. Die dritte große Wendung des Films verwandelt ihn schließlich zu einer Art “Drama in Kurzform” und die entscheidende Rückblende klärt uns darüber auf wie eiskaltes Kalkül und geschickte Planung die Protagonisten zu Taten verleiteten, die man ihnen bis zu diesem Zeitpunkt nicht zugetraut hätte.

Die einzige Schwäche dieser Genremixtur mit ihren erzählerischen Finten ist aus meiner Sicht das Ende, das mir im Kontrast zum erzählerisch dichten Blendwerk der ersten beiden Wendungen zu vorhersehbar erschien.

Warum DuckDuckGo meine favorisierte Suchmaschine ist

Ich suche aus einer Menge von Gründen in letzter Zeit sehr gerne mit DuckDuckGo. Leider ist DDG für die Suche nach deutschen Inhalten nicht besonders brauchbar. Hier fehlt offenbar noch ein echter lokaler Index. Für die Suche nach englischsprachigem Content eignet sie sich dagegen sehr gut. Aber dieser Mangel kann sehr einfach behoben werden, denn DuckDuckGo beherrscht die sogenannte “Bang”-Syntax.

Mit “Stefan Antoni” suche ich nach mir selbst in DDG. Die Suchergebnisse sind sehr ernüchternd. Mit dem Bang “!g” bzw. der Sucheingabe “!g Stefan Antoni” suche ich von DuckDuckGo aus nach mir in Google.de, da DDG die Anfrage an Google.de durchleitet. Das Ergebnis sieht so aus: Stefan Antoni bei Google.de . Aber der Spass geht weiter: “!osm” sucht zum Beispiel in Open Streetmap. Gebt mal: “!osm google mountain view” ein und ihr landet direkt bei OpenStreetMap.

Den vollen Überblick zu den !-Tags gibt es hier: https://duckduckgo.com/bang.html und einen schön gestalteten Überblick über die Funktionsvielfalt von DuckDuckGo findet ihr bei den Goodies. Da ist mit Sicherheit für jeden etwas dabei. Ich verwende vor allem die Konvertierungsfunktionen für Währungen und Zeit sehr häufig. Das kann Google allerdings auch. Die Kategorien Web Developer und Programming sind dagegen umso nützlicher und werden von mir auch häufig verwendet. Und auch recht generische Fragen wie etwa “port 443″ und “unicode €” werden korrekt und trotzdem kurz & präzise beantwortet.

Ich wünsche euch viel Vergnügen beim Ausprobieren.

Meine Meinung zum Film “The Master”

Ich war gestern im Kino und habe mir “The Master” von Paul Thomas Anderson in der Sneak angeschaut.

Ich habe während der ersten Stunde zunächst verstehen und anschließend akzeptieren müssen, dass dieser Film offenbar keine zentrale Aussage hat und wohl einfach einen sehr langen Ausschnitt aus dem “Leben” der beiden Protagonisten darstellen soll. Das ganze Scientology-Drumherum, das zunächst eine vielversprechende Story mit Empörungspotential vermuten ließ, entpuppte sich als liebevoll gestaltetes aber am Ende doch irgendwie beliebiges Setting rund um die beiden Hauptdarsteller

Wenn man während der ersten Stunde nicht vor lauter Verwirrung aufgibt oder mental abschaltet, dann ist “The Master” ein intensiver Film mit einem unglaublich gut spielendem Joaquín Phoenix und einem weniger intensiven aber nicht minder guten Philip Seymour Hoffman.

Fazit: Unterhaltung findet man woanders. Gutes Acting findet man in “The Master”.

Elegante Filterscripte mit Python und dem fileinput Modul

Im Alltag bin ich viel und gerne auf der Kommandozeile (Shell) unterwegs.

Häufig erzeuge ich dabei Daten, die wiederum als Eingabe für ein Python-Script dienen. Der Grund dafür ist die wunderbare Eigenschaft einer leistungsfähigen Shell bzw. des darunter liegenden Betriebssytems, dass beliebige Filterkommandos und deren Parameter miteinander verkettet werden können und die Ausgabe eines Kommandos in der Kette jeweils die Eingabe für das nächste Kommando ist:

cat access_log | egrep -i ".+Jan.+200.+googlebot.+" | egrep "66\.249" | wc -l
11

Dieses Kommando sagt mir z. B. wie häufig im Zugriffslog access_log meines Webservers der erfolgreiche Besuch, also HTTP 200, des Googlebots im Januar stattgefunden hat.

Das Ergebnis: Genau 11 mal. Das Pipe-Symbol “|” zwischen den Kommandos “cat”, “egrep” und “wc” ist dabei sozusagen das “Rohr”, das alle Kommandos miteinander verkettet und durch das die Daten jeweils vom linken Kommando in das rechte Kommando fließen.

Was aber wenn ich so ein Kommando in Python schreiben möchte? Und vor allem: Wie mache ich das möglichst schnell und einfach, ohne große Mengen von Boilerplate Code zu schreiben?

Ich mache das so:

Dieses Script ersetzt ganz einfach die falsch geschriebene Adresse dieses Blogs gegen die korrekte Adresse und nutzt den praktischen Membership-Operator “in”, den Python bereit stellt. Das Ergebnis sieht so aus:

echo "Mein Blog ist unter www.suchkultur.net zu finden" | ./filter.py
Mein Blog ist unter www.suchkultur.de zu finden

Für mich ist das ein praktischer Skeleton, den ihr euch per Git von hier ziehen könnt: https://gist.github.com/4605608 .

Viel Spass auf der Commandline :-)