Archive for October, 2008

Der Spiegel und die Mac-Überschrift

Wednesday, October 15th, 2008

Nach der gestrigen Vorstellung der neuen Macbooks war man sich bei spiegel.de wohl nciht ganz sicher, welche Überschrift denn nun am besten zu dem Artikel passen würde. Im RSS Feed kann man nämlich jede einzelne Version sehen, wenn die Redakteure die Überschrift nach der Veröffentlichung nochmal anpassen.

Und so sieht die Historie aus:

21:42h Laptop-Show: Apple veredelt das MacBook
21:58h Laptop-Show: Apple verbilligt das MacBook
23:50h Laptop-Show: Apple verbilligt das MacBook – ein bisschen

Aus dem besseren Macbook wurde also schnell das billigere und (aus welchen Gründen auch immer) dann das “ein bisschen” billigere. Stimmt alles irgendwie, aber man fragt sich schon, was da in der Redaktion vorgeht. Haben die keinen Journalismus zu betreiben? :)

Track JW FLV Player Videos with Google Analytics

Tuesday, October 14th, 2008

The FLV Media Player by Jeroen Wijering can be considered as one of the most advanced commercially available FLV Players on the market. It features nifty functions such as streaming and Javascript callback functions. These callbacks can be used to track how often a video was played with Google Analytics.

The reference docs for the Javascript API are the starting point. But I will show you how to implement the video tracking here.

I recomend setting up a new Javascript source file, let’s call it video.js. Include this file into your page which will show the video:
<script type="text/javascript" src="/scripts/video.js"></script>

Now embed the FLV Player according to the documentation.
Every instance of the FLV player will try to call a Javascript function when the FLV is finished loading: playerReady(obj) .

So we add such a funtion to our video.js:

var player;
function playerReady(obj) {
var id = obj['id'];
player = document.getElementById(id);
};

Now the global variable player holds a reference to the FLV Player object. Now we can add a callback handler to the player object, according to the various callback hooks described in the docs. We want to listen to an event that tells us, when a video has been started. This is the “STATE” hook which fires an event every time the video starts playing, stops or ends.


function playerReady(obj) {
var id = obj['id'];
player = document.getElementById(id);
player.addModelListener("STATE","playTracker");
};

So now every time the state of the video changes, the player tries to call the playTracker function. Let’s implement it.


function playTracker(obj) {
if (obj.newstate=='BUFFERING' && started==false) {
started=true;
pageTracker._trackPageview("/videos/videos/"+obj.id );
}

The player not only calls this function, but also send certain information in the parameter obj. We are interested in the value obj.newstate, which of course tells us the state to which the player just changed. We are only interested if the player just started, because this means the user pressed the “PLAY” button. Please note the variable started which we use to ensure that the play event is only tracked once. The “BUFFERING” event could be fired more than once, if the player needs to reload the video, due to a slow connection or when the user skips the videostream.
Inside the playTracker function we use Google Analytics _trackPageview function to fire the actual tracking of the video. The obj.id variable holds the id of the SWF file. This is initially set when embedding the flash in your HTMl page:

var so = new SWFObject('player.swf','mpl','300','250','9');

In this example the id would be mpl. For the tracker to make sense you need to set this id to some string which identifies the actual video, like a description. If you create this id dynamically, for example from a database, make sure to strip any kind of whitespaces or special characters, since this could break either the Javascript or Google’s tracking.

The complete video.js should look like this:


var player;
var started = false;
function playerReady(obj) {
var id = obj['id'];
player = document.getElementById(id);
player.addModelListener("STATE","playTracker");
};

function playTracker(obj) {
if (obj.newstate=='BUFFERING' && started==false) {
started=true;
pageTracker._trackPageview("/videos/videos/"+obj.id );
}

};

Please note that I have not tested this code with more than one instance of the JW FLV Player but I think it might even work with more.

Den Belichtungsspeicher eurer Digitalkamera richtig nutzen

Friday, October 3rd, 2008

Ind er Regel bestizen digitale Spiegelreflexkameras eine Taste zu Speicherung der Bleichtung. Bei Canon ist das die Sternchentaste rechts oben auf der Rückseite.

Canon 30D Sternchentaste

Canon 30D Sternchentaste

Ich vermute, dass viele Fotografen diese Taste, ebenso wie ich, lange vernachlässigt haben. Wozu ist sie überhaupt gut?
Wird diese Taste gedrückt, misst die Kamera die nötige Belichtung und speichert diese für das nächste Foto. Das bedeutet, dass man im Anschluß das gewünschte Bild neu komponieren und die Schärfe einstellen kann, ohne das die Kamera nochmals eine Belichtungsmessung vornimmt und die Belcihtungszeit oder Blende neu einstellt. Bei Canon können so sogar mehrere Fotos hintereinander mit der immer gleichen Belichtung geschossen werden.

Und wozu soll das gut sein? Die Digitalkamera versucht in den Automatikmodi das Bild auf einen durchschnittlichen Helligkeitswert zu belichten. d.h. richtet man die Kamera auf eine sschwarze Fläche, versucht die Kamera diese Fläche durch eine Verlängerung der Belichtungszeit oder Vergrößerung der Blende Grau zu belichten. Ebenso wird die Kamera versuchen eine weiße Fläche als Grau zu belichten.

Nun haben moderne Kameras ausgeklügelte Messverfahren, mit denen sich Bilder ganz ordentlich belichten lassen. Für eine richtige Bildkomposition reicht das aber nicht aus.

Nehmen wir an, man möchte ein Modell in schwarzem Kleid vor einer weißen Fläche zu fotografieren. Die Kamera stellen wir in den Modus für Blendenpriorität, in dem die Kamera die Belichtungszeit der fix gewählten Blende anpasst. Messen wir nun die benötigte Beichtungszeit gegen das schwarze Kleid, wird das resultierende Bild viel zu hell, da die Kamera versucht die schwarze Fläche durch lange Belichtung “auf Grau zu bringen”. Im Gegensatz dazu wird das Bild sehr dunkel, wenn wir gegen den hellen Hintergrund messen.
Hier kommt der Belichtungsspeicher zum Einsatz. Wir richten die Kamera z.B. auf das Gesicht des Modells und drücken diese Taste. Nun können wir die Kamera auf den gewünschten Bildausschnitt ausrichten und können trotzdem sicher gehen, dass das Gesicht des Modells korrekt belichtet ist.

Wenn ich die Sterntaste meiner Canon 30D benutze, suche ich mir entweder genau den Bildausschnitt, den ich korrekt belichtet haben möchte, oder ich suche mir einen durchschnittlich beleuchteten Punkt, gegen den ich messe.

Die Speichertaste für die Belichtung lässt sich zum Beispiel auch gut nutzen, wenn man bei viel Sonne Landschaft fotografiert. Hier kann man gut gegen einen blauen Himmel messen und dann das Bild neu komponieren.