11.10.2012Insert Coin To Play

Can gaming concepts help make OpenStreetMap better?

29.05.2012Fiddle around (code)

Since I’m using JavaScript more heavily, and beeing active on StackOverflow, I’m using a service called jsFiddle. It’s a great tool with a simple idea (I can see a pattern here: great tools are always based on simple ideas): Make it easy to write demo code. Either to help someone or to point out a problem.

jsFiddle UI

jsFiddle comes with a very basic user interface that is divided in 4 parts:

  • Basic HTML (omitting <head> and everything you don’t need)
  • CSS for styling
  • JavaScript (the heart of the page)
  • and finally the resulting page

No login required, just write your code and share the unique link. You can even include JavaScript frameworks or other external resources, it’s really easy!

Then last week I stumpled upon a website called sqlFiddle, which uses the basic idea of jsFiddle, but this time for databases and queries. There you can select different database systems and start writing your SQL code.

Now today I learned about a site called Sencha Fiddle, that let’s you actually develop Sencha Touch mobile application. You can even download the whole thing when your done. Wow!

There are several more xFiddle services that I can think of being valuable:

  • LaTeX
  • Shell scripting (allowing me to choose which shell I want: csh, ksh, bash, ..)
  • Python
  • Sass/SCSS
  • Less
  • ..

I don’t know if there is a directory of these services (leave me a message if you know it), but anyway I hope to see more websites like that in the future.

Spread the word. Start to code.

UPDATE I: There is a Python Fiddle :-)

UPDATE II: …and Ruby Fiddle (thanks Jürg)

UPDATE III: reFiddle for regular expressions (thanks Toni Suter)

08.03.2012Setup JavaScript unit testing using QUnit, PhantomJS and Jenkins on Amazon EC2

Me and my friend are currently working on a term paper about Google Fusion Tables. It’s about it’s possibilities and potential. Our goal is to create a cross-platform mobile application using Sencha Touch, therefore we need to write a lot of JavaScript code for the UI and to access the Google Fusion Tables. Fortunately Google provides an inofficial JSONP API, so we get native JavaScript access without another server roundtrip (there is a good blog post explaining the usage with jQuery).

The next question is: if we write tons of code in JavaScript, how are we going to unit test this code. We already used QUnit in a former project and it’s fairly easy to use, so we decided to use that. This all works very well, you get a nice web page where all your tests run in the browser and you get nice output, everything’s fine.

Browser output of
QUnit

But, wait! What about our build? We use Jenkins CI, which is configured to build our project every time we push new code to GitHub. Wouldn’t it be nice if our tests run when we build, so we get immediate feedback and never ever forget to run them and fix our code?

Yes, it definitely would be!

Now we have several problems

  • How do I run JavaScript without a browser?
  • Does Jenkins “speak” JavaScript?
  • Is there a solution for ant? Do I need another tool? Another server?
  • How do I get my test results as XML, so Jenkins can handle them?

I checked serveral solutions to my this problems: From node.js to Rhino (there is even an ant based unit testing framework using Rhino) to TestSwarm. They were all too limited or too bloated. I couldn’t believe this is such a big deal to run QUnit JavaScript code, get the results and publish them in Jenkins.

This is when I found out about PhantomJS, a nice and handy headless WebKit browser, that runs JavaScript code. Exactly what I need. As we are using Amazon EC2 for this project, I tried to install PhantomJS on a basic Amazon AMI. I just couldn’t get it to work, when I asked in Twitter if someone succeeded to setup PhantomJS. Philipp Küng pointed out (thanks again!) that it is much easier to setup with Ubuntu. Well then, launch a new Instance on EC2, choose the latest Ubuntu AMI, and after some simple commands you’re good to go:

sudo add-apt-repository ppa:jerome-etienne/neoip
sudo apt-get update
sudo apt-get install phantomjs

After that I had to setup Xvfb (virutal framebuffer), because EC2 instances are headless. Generally see the PhantomJS Wiki for further information.

Now I have a PhantomJS instance, the published QUnit tests and Jenkins. To be able to retrieve the data from PhantomJS I created a simple PHP script, which runs on the new instance and just executes a shell command (idea from this blog post).

<?php
/* Display 99 is configured on the server using Xvfb */
$value = shell_exec("DISPLAY=:99 phantomjs run_qunit.js http://gft.rdmr.ch/test/js/index.html junit-xml");
echo $value;
?>

With this URL I was able to create a simple ant target, which fetches the latest results from the tests:

<target name="test-js" depends="deploy">
    <get src="${test.url}" dest="${result.dir}/${result.js.file}"/>
</target>

Where ${test.url} referes to my PHP script, and ${result.dir} is configured as the location of JUnit reports in Jenkins (see screenshot):

Jenkins job configuration for JUnit XML
reports

Now the last missing piece is to get proper output for Jenkins. I adapted the QUnit test runner from the PhantomJS examples accordingly (called run_qunit.js, see above, here is my version). I added a new command line parameter type, which determines the type of output the runner generates. With the value junit-xml, the output can directly be used by Jenkins, this is the reason for the junit-xml parameter in the PHP script above.

The generated XML looks like that:

<?xml version="1.0"?>
---
 Tests completed in 2294 milliseconds.
36 tests of 36 passed, 0 failed. 
---
<testsuite name="QUnit - JavaScript Tests" timestamp="2012-03-08T00:11:27Z" tests="36" failures="0" time="2.294">
<testcase name="PaintSwitzerland" classname="GoogleFusionTable">
</testcase>
<testcase name="Construtor" classname="GftLib">
</testcase>
<testcase name="Constants" classname="GftLib">
</testcase>
<testcase name="doGet" classname="GftLib">
</testcase>
<testcase name="doPost" classname="GftLib">
</testcase>
<testcase name="doGetJSONP" classname="GftLib">
</testcase>
<testcase name="doPostJSONP" classname="GftLib">
</testcase>
<testcase name="ExecSelect" classname="GftLib">
</testcase>
</testsuite>

And in Jenkins like that: Test trend with failed/successful tests over
time

Overview of tests: Overview of all performed
tests

Failed test: Detail of a failed test incl.
'stacktrace'

06.10.2011ZFF 2011: Turn Me On, Goddammit

Turn Me On,
Goddammit

In "Turn Me On, Goddammit" von Jannicke Systad Jacobsen spielt die bemerkenswerte Helene Bergsholm die 15jährige Alma, welche gerade dabei ist ihre Sexualität zu entdecken. Sie wohnt mit ihrer Mutter in einem Provinznest in Norwegen. An einer Party ereignet sich ein peinlich Vorfall mit ihrem Schwarm Artur, welchen sie brühwarm ihren Freundinnen erzählt (“He poked me with his penis!”). Niemand will ihr diese Geschichte glauben, fortan wird sie zur Aussenseiterin, die Lügengeschichten verbreitet.

Auch der Zuschauer des Film wird geschickt darüber im Unklaren gelassen, ob dieses Ereignis tatsächlich stattgefunden hat oder nicht. Die Kamera schweift manchmal ins träumerische ab, indem der Fokus auf dem Vordergrund liegt und der Hintergrund stark verschwommen wird oder die Farbgebung ganz stark ist. Dieses Stilmittel setzt die Regisseur immer dann ein, wenn die Hauptdarstellerin in ihrer Fantasie ist, jedoch manchmal auch bei Ereignissen die tatsächlich stattfinden. Dadurch erscheint auch die ganze Welt des Dorfes mal romantisch, mal langweilig.

Die Hauptdarstellerin ist eine Wucht, diese junge Frau weiss genau was sie will und bewegt sich sehr natürlich vor der Kamera, das Thema Sexualität ist einfach eine Facette ihres (pubertären) Charakters, der weder übertrieben wirkt noch ins Lächerliche gezogen wird.

Leichte Erzählweise, kurzweilige, gute Unterhaltung.

04.10.2011ZFF 2011: Kurzes aus der Türkei

Die Internationlen Kurzfilmtage Winterthur zeigten Kurzfilme aus der Türkei, dem diesjährigen Gastland des Zurich Film Festival. Die beiden Festivals haben schon die letzten Jahre eine Zusammenarbeit gepflegt.

__

My Mother Learns Cinema

My Mother Learns
Cinema (Nesimi Yetik, 2007)

Eine kleine Ode ans Kino, als ersten Schritt um das Kino kennen zu lernen, lehrt ein Sohn seiner Mutter die korrekte Aussprache einiger Regisseur.

__

Biskilet/Bicycle

Biskilet/Bicycle (Serhat Karaaslan, 2010)

Dieser Film, der ganz ohne gesprochene Sprache auskommt, erzählt von einem Jungen, der gerne ein Fahrrad hätte. Alles was ihm noch fehlt ist ein Hinterrad…

__

I, Soldier

I,
Soldier (Ergun Köken, 2007)

Ein ganz spezieller Film, der zum Teil aus 2 Perspektiven gefilmt wurde, wobei beide nebeneinander gezeigt werden. Die Aufnahmen sind während den Feierlichkeiten zum Unabhängigkeitstag der Türkei entstanden.

__

Dem (Moment)

Dem
(Moment) (Aysegül Okul, 2010)

Ein Mann ist auf dem Weg zu einem Bewerbungsgespräch, unterwegs holt er sich noch einen Kaffee und trifft dabei eine Frau, welche Minuten später von einem Auto überfahren wird, Kurz darauf durchlebt der Mann die Szene nochmals, wird er diesmal das Schlimmste verhindern können?

__

Gemeinschaft

Gemeinschaft (Özlem Akin, 2008)

In diesem kurzen Animationsfilm geht es darum als Gruppe eine unliebsame Person loszuwerden. Doch wie stellt man das an? Ein witziger Erklärungsversuch.

__

Xewna Yusiv / Yusiv’s Dream

Xewna Yusiv / Yusiv's
Dream (Ferit Karahan, 2011)

Yusiv führt ein normales Leben bis seine Idylle gestört wird: er wird heimlicher Zeuge eines Mordes.

__

KöY (Das Dorf)

KöY (Das
Dorf) (Mustafa Dok, 2009)

Der zu Beginn sehr lustig-fröhliche Film zeigt einen Mann, der es sich zur Aufgabe gemacht hat, auf einem Schild jeweils die genau Anzahl Personen die sich im Dorf befinden zu notieren. Dieser Spass wird aber jäh durchbrochen als das Militär auftaucht.

__

Bende Sira (Ich bin dran)

Bende Sira (Ich bin
dran) (Ismet Ergün, 2007)

Zum Abschluss gab es noch ein wahres Highlight: eine Gruppe von Jungs liebt es ins Kino zu gehen. Da sie nicht genügend Geld haben, gemeinsam zu gehen, legen sie jeweils zusammen und bestimmen wer gehen darf. Nach dem Filmbesuch, muss derjenige dann natürlich ganz genau erzählen was passiert ist. Der Film kommt ganz ohne Untertitel aus, die Bilder sprechen für sich. Die Jungs können sehr bildgewaltig von ihren Kinoerlebnissen berichten. Ein Schmaus!

30.09.2011ZFF 2011: Kriegerin

Kriegerin

"Kriegerin" von David Wnendt ist eine Geschichte einer jungen, rechtsextremen Frau irgendwo in einer tristen Kleinstadt in Ostdeutschland. Der Film bewegt sich auch erstaunlich neutralem Boden, auf eine Moralpredigt und billige Erklärungsversuche wird verzichtet. Gezeigt wird vielmehr wie sich diese Frau in ihrer Nazi-Clique durchschlägt, wie die Leute miteinander umgehen und wie gross ihr Hass auf alles Fremde ist. Sobald ein Ausländer aufkreuzt, gibt es Radau, Fäuste fliegen. Dabei hauen die Frauen ebenso drauf wie die Männer.

Marisa (Alina Levshin) spürt jedoch, dass etwas nicht stimmt in ihrem Weltbild. Nach einem von ihr provozierten Unfall, macht sie eine Wandlung durch, davon darf aber natürlich niemand etwas mitbekommen. Diese innere Zerrissenheit sieht man Alina Levshin förmlich an, wunderbar gespielt, sehr beeindruckend. Einzig die Nebengeschichte von Svenja, einer 15jährigen, die neu zur Clique stösst, ist etwas gar überzeichnet. Die Verwandlung vom apolitischen Mädchen, zur “Heil Hitler” schreienden jungen Frau, geht mir etwas zu schnell.

Ich bin sehr gespannt wie dieser Film in Deutschland aufgenommen wird, zum Teil sind die gezeigten Szenen sehr hart, die Sprache ebenso. Dadurch entsteht der Eindruck, einen wirklichen Einblick in diese Szene zu erhalten. Beim Interview mit dem Regisseur und der Hauptdarstellerin nach dem Film wird auch schnell klar warum: die Recherche für den Film war sehr intensiv, so hat sich David Wnendt mit mehreren Frauen aus der rechtsextremen Szene getroffen und sich deren Lebensgeschichte angehört. Diese vielen verschiedenen Geschichten sind in den Film eingeflossen. Speziell ist auch noch, dass für den Film alles neue Musik komponiert wurde, im Stile der “bekannten” Nazi-Lieder.

Ein beeindruckendes Portrait einer Frau und deren Umgebung, die plötzlich beginnt ihre Gesinnung zu hinterfragen, ohne dies laut auszusprechen.

30.09.2011ZFF 2011: Majority (Çogunluk)

Majority
(Çogunluk)

Der Debütfilm "Majority" von Seren Yüce war für mich eine grosse Überraschung. Ich bin gar nicht vertraut mit dem türkischen Filmschaffen, dieser Film hat mich auf alle Fälle schwer beeindruckt. Die Machart unterscheidet sich grundsätzlich von den anderen Filmen die ich am Festival gesehen habe. Erzählt wird eine Geschichte mitten aus dem Alltag. Somit hat die Geschichte auch keinen klaren Anfang und kein Ende.

Der Film handelt von Mertkan (Bartu Küçükçaglayan), der noch zu Hause bei seinen Eltern wohnt und bei seinem Vater in einer Baufirma einen Bürojob hat. In seiner Freizeit trifft er sich mit seinen Freunden um Tee zu trinken oder mit dem dicken Auto seinen Vaters durch Istanbul zu fahren. Eines Tages trifft er auf Gül (Esme Madra) und verliebt sich in sie. Das Problem an der Sache ist nur, dass Gül eine Kurdin ist und Mertkans Vater auf keinen Fall will, dass sich sein Sohn mit “solchen Leuten” trifft.

Der Film könnte ebenso gut ein Theaterstück sein: Ziemliche wenige Schauplätze, geballte Emotionen ohne viele Worte. Der Film schafft es stets, die gerade herrschende Stimmung einzufangen, geprägt von einer gewissen Schwere und der Autorität des Vaters. Das Ende ist brillant gemacht, die vermeintlich im Mittelpunkt stehende Liebesgeschichte verkommt zur Nebenhandlung. Ein Film bei dem man auch nach dem Abspann noch einige Minuten auf dem Sitz verharrt.

Sehr auffallend ist auch die Kameraführung. Bei den zum Teil sehr langen Szenen wird die Kamera bewusst an einem Ort belassen, obwohl sich die Protagonisten aus dem Bild bewegen. Dann kommen auch immer wieder gleiche Motive vor wie das Ausziehen der Schuhe und Jacke beim betreten der Wohnung: diese Handlung wird ca. zehnmal gezeigt, immer von einer Perspektive.

Ein stimmungsvolles Kammerspiel, welches eine eindrückliche Geschichte erzählt, die einem nicht einfach so loslässt.

27.09.2011ZFF 2011: Happy, Happy (Sykt Lykkelig)

Happy, Happy (Sykt
Lykkelig)

Die norwegische Komödie "Happy, Happy" bietet ein kurzweiliges Filmerlebnis. Die zugrunde liegende Geschichte ich zwar eigentlich tieftraurig, wird aber sehr leichtfüssig erzählt so dass nie Herzschmerz aufkommt oder man Mitleid mit einem der Protagonisten haben muss.

Kaja (Agnes Kittelsen) und Eirik (Joachim Rafaelsen) leben sehr abgelegen irgendwo in Norwegen. Um jede Abwechslung froh, freuen sie sich auf ihre neuen Nachbarn Sigve (Henrik Rafaelsen) und Elisabeth (Maibritt Saerens), die hierher umziehen. Bei einem Spielabend kommt ans Licht, dass es um die beiden Ehen nicht sonderlich gut steht. Der ruhige Eirik und die gar lebendige Kaja haben sich nicht mehr viel zu sagen. Sigve wiederum wollte aufs Land ziehen um mit Elisabeth neu anzufangen, nachdem diese eine Affäre hatte.

Dies bietet natürlich den idealen Stoff für weitere Affären, Romanzen und Liebeleien. Zur Auflockerung spielt jeweils eine Acapella-Band ein kurzes Stück bevor ein neues Kapitel der Geschichte aufgeschlagen wird. Diese Sequenzen sind urkomisch und die Lieder passen natürlich immer peinlich-perfekt zur Situation.

Der Schluss ist ziemlich gut gemacht, kommt doch alles anders als man denkt: die typischen Klischees werden links liegen gelassen und mal etwas Neues probiert. Etwas merkwürdig ist die Nebengeschichte der beiden Söhne der beiden Familien, diese wirkt wie ein Fremdkörper, nicht richtig verbunden mit dem Rest, schlicht unpassend.

Leichtfüssig erzählt, viel Situationskomik, muss man nicht gesehen haben, bietet aber 90min Unterhaltung

25.09.2011ZFF 2011: Jonas

Jonas

Auf das Filmprojekt "Jonas" war ist sehr gespannt. Die Idee war es, die Kunstfigur Jonas in eine echte Schule, mit echten Schülern und Lehrern zu schicken und dann den Schulalltag zu bestreiten. Durchgeführt wurde dieses Projekt an der Brandenburger Gesamtschule Paul-Dessau. Am Anfang ist zwar noch deutlich zu spüren, dass es sich bei Jonas um eine Kunstfigur handelt, die Schüler sind unsicher wie mit dem neuen Mitschüler umzugehen ist, die Kamera hemmt noch ein wenig. Wenn der Film dann aber mal die Fahrt aufgenommen hat, entwickelt sich eine faszinierende Geschichte. Schlussendlich wurde aus 350 Stunden Rohmaterial der Film geschnitten. Gemäss den Machern gab es kein Drehbuch, keine einstudierten Dialoge, gefilmt wurde einfach in der Schule. Einzig 3 Ankerpunkte wurden vorher festgelegt: Jonas verliebt sich in seine Musiklehrerin, er will eine Band gründen und er will die Probezeit bestehen.

Jonas ist mit 18 Jahren der älteste Schüler der Klasse, etwas vorlaut, immer mit etwas kontra und einem flotten Spruch auf der Lippe. Wenn mit der Zeit Schüler und auch die Lehrer zu vergessen scheinen, dass ich hinter Jonas der 35jährige Christian Ulmen versteckt, ist herrlich zu sehen. Der Mathelehrer schikaniert ihn durch das Vorrechnen an der Tafel, keine Scheu ihm dann auch die Meinung zu sagen.

Das Projekt zeigt denn aber auch seine Grenzen auf: Durch die Konzentration auf die Schule, kratzt der Film nur an der Oberfläche, Jonas als Figur bleibt unnahbar, Bilder ausserhalb des Schulkontextes gibt es keine. Dadurch dass der Film am Anfang quasi per Texteinblendung erklärt wird, wird dem Zuschauer gleich von Anfang an die Illusion genommen. Ich hätte es schöner gefunden die Einführung auch filmisch umzusetzen. Insgesamt finde ich das Experiment aber sehr gelungen.

Sehr unterhaltsamer, schneller Film über den (Alb-) Traum wieder in die Schule zu gehen.