7 Minutes of Hell

Da schaue ich gestern Abend nichtsahnend auf ORF.at und stoße auf den Artikel Das Work-out-Wunder aus dem Testlabor. Es geht darum, dass Sportwissenschaftler herausgefunden haben, dass für einen guten Trainingserfolg sieben Minuten täglich ausreichend sind und alles was man dafür braucht eine Wand, ein Stuhl und das eigene Körpergewicht sind.

Es gebe klare Hinweise darauf, dass dieses hochintensive Intervalltraining die selben Trainingserfolge wie ein ausgedehntes Ausdauertraining bringe, berichtet der ORF und zitiert dabei die Studie „High-Intensity Circuit Training Using Body Weight: Maximum Results With Minimal Investment“ von Chris Jordan und Brett Klika.

Rank und schlank, fit und ausdauernd in nur 7 Minuten? Das musste ich natürlich probieren!

Es geht darum 12 Übungen à 30 Sekunden mit 10 Sekunden Pause dazwischen abzuspulen, so intensiv wie nur möglich. Das Training ist so abgestimmt, dass die einzelnen Muskelpartien abwechselnd belastet werden und somit der ganze Körper trainiert wird.

Der Ablauf schaut folgendermaßen aus: Hampelmann ? Pause ? Wandsitz ? Pause ? Liegestütz ? Pause ? Crunch ? Pause ? Step-up auf einen Stuhl ? Pause ? Kniebeuge ? Pause ? Trizeps-Dips ? Pause ? Plank ? Pause ? Kniehoch am Stand ? Pause ? Ausfallschritt ? Pause ? Liegestütz mit Drehung des Oberkörpers ? Pause ? Sideplank (nach 15 Sekunden wenden)

Das klingt nach nicht viel, waren aber ziemlich heftige 7 Minuten. Um mir bei dieser Übung zu helfen, habe ich mir eine kleine Hilfs-Webapp gebaut, die mir beim Timing und der korrekten Ausübung der Abläufe hilft. Ich habe sie treffender weise 7 Minutes Of Hell genannt.

Vom Prinzip her ganz einfach: die Übungen sind mit der jeweiligen Trainingsdauer hinterlegt. Die Pausen sind auch dabei. Damit nicht ständig auf den Bildschirm gestarrt werden muss, gibt die Webapp alle 10 Sekunden, bzw. die letzten 5 Sekunden sekündlich einen Beep von sich (der Beep kommt von Sound Jay). Über dem Timer steht immer, welche Übung gerade am Laufen ist, unten rechts steht immer, was als nächstes kommt.

Die Webapp sollte auf allen gängigen Geräten funktionieren und ist für moderne Browser mit einem Offline-Modus versehen, d.h. einfach bookmarken und dann sollte es auch funktionieren, wenn mal kein Netz verfügbar ist. 

WebKit Webapps für den IEMobile/9.0 anpassen

Mit dem Release von Mango hat Microsoft einen Browser auf die Windows Phone 7 Platform gebracht, der gar nicht mal so schlecht ist, wie der Name Internet Explorer verlauten würde.

Zwar hinkt der Browser der Konkurrenz auf iPhone und Android nach wie vor meilenweit hinterher (html5test.com bescheinigt ihm gerade mal 30-40% der Punkte, die ein WebKit-Smartphone bekommt), jedoch kann der Browser, wenn er richtig eingesetzt wird, durchaus auch sehr schöne Webapps auf den Bildschirm zaubern.

Falle 1: Console.who?

Wenn die Webapp gar nicht laufen will, dann liegt es aller Voraussicht nach daran, dass im JavaScript Code irgendwo ein console.log() verwendet wurde. Das bringt (fast) jeden Internet Explorer zu Fall. Am Einfachsten wird das Problem umgangen, wenn einfach vor dem ganzen anderen JavaScript console.log definiert wird, wenn es nicht bereits vorhanden ist.

if ( window.console == undefined )
	window.console = { log: function( msg ) { } };

Dadurch müssen die nützlichen console.log Ausgaben nicht gelöscht werden und sogar im Internet Explorer 9 auf dem Desktop verwendet werden, wenn über F12 die Entwicklertools eingeschaltet sind.

Falle 2: window.setTimeout( callback, time, [ ] )

Die zweite Falle, in die ich mehrmals getappt bin, war die die Sache, dass der Internet Explorer keine Argumente für den callback in window.setTimeout unterstützt. Auch hierfür gibt es aber eine sehr einfache Lösung.

// das funktioniert im IEMobile nicht
window.setTimeout( myCallback, 100, arg1, arg2, arg3 );

// das funktionert im IEMobile einwandfrei
window.setTimeout( function() {
	myCallback( arg1, arg2, arg3 );
}, 100 );

Falle 3: no transitions (yet)

Microsoft wird erst mit dem Internet Explorer 10 CSS3 Transitionen und Animationen unterstützen. Dafür wird dann der -ms- Prefix verwendet werden.

Setzt die Webapp Transitionen voraus, sollte ein Fallback gebastelt werden. JavaScript Animationen sind zwar sehr aufwendig und langsam, als letzter Ausweg kann man sie aber durchaus in Betracht ziehen. jQuery bietet hier eine sehr schöne API dafür.

Und wie teste ich das Ganze?

Webapps für das Windows Phone 7 zu testen, ist nicht einfach. Weinre funktioniert leider nur mit WebKit Browsern und das fehlen einer console macht auch simpelstes Logging unmöglich. Zum Glück ist die Browser Engine des IEMobile der des Internet Explorer 9 auf dem Browser sehr ähnlich und bei eingeschalteten Developer Tools (F12) kann der Browser auch Debuggen, console.log. Oben drein gibt es dann auch einen Inspector, wie man ihn vielleicht von FireBug oder den WebKit Inspector kennt.

**update**

I have no touchevent and I must touch

Das wohl größte Problem des IEMobile 9.0 ist das Fehlen der Touch Events. Die in Desktop-Browsern verwendeten Drag’n’Drop Events werden leider auch nicht unterstützt. Einzig click wird als Event unterstützt. Das macht in gewissen Maßen mobile Entwicklung komplizierter als nötig.

Alternativen habe ich bis Dato leider keine gefunden. Da muss wohl Microsoft dran und die Events weiter reichen. Lustigerweise müssen sie sich dadurch ja auch selbst beschneiden. So bietet z.B. Nokia mittlerweile in den Webversionen ihrer Maps Anwendung für iOS und Android Offline Daten an. Im IEMobile/9.0 kann nicht mal die Online-Variante verwendet werden.