Unikrams

Was man da links sieht ist die erste Version des Handouts für meinen Vortrag am nächsten Monatg, die ich hab korrigieren lassen. Wie man sieht ist noch einiges zu tun, wobei es eigentlich alles nur Kleinigkeiten sind, z.B. vergessen den Mathe-Modus in LaTex zu aktivieren (ich hasse LaTex, aber es sieht nunmal geil aus…) oder ein paar Kommata vergessen. Und es soll Satz statt Theorem heißen, obwohl ich Theorem schöner finde, aber naja, was solls. Ist also noch ein bisschen was zu tun am Wochenende. Wie ich mich dann auf Montagabend freue, wenn ich dann beide Seminare für dieses Semester endlich fertig habe und mich da nur noch relaxed hinsetzen und zuhören muss :)

Groupon Fieber in Deutschland

Groupon, was ist das überhaupt? Das ganze kommt aus den USA (wo auch sonst) und setzt sich zusammen aus “Group” und “Coupon”, also sowas wie “Gruppenrabatt”. Ist wohl das erste Web 2.0 Geschäftsmodell in diesem Jahr. Das ganze läuft meistens ortsgebunden ab, ab und zu auch mal deutschlandweit. Der Anbieter sucht sich lokale Partner und handelt mit denen ein Angebot aus. Z.B. ein Mittagsmenü zum halben Preis, Saunabesuch für zwei, wo nur einer zahlt etc. Anschließend wird dieses Angebot ins Netz gestellt. Der Clou an der Sache ist, dass der Deal erst zustande kommt, wenn genügend Leute den Deal kaufen wollen. So ist also sichergestellt, dass sich das sowohl für den Anbieter wie auch den lokalen Partner lohnt. In Deutschland gibt es im Moment zwei große Anbieter: CityDeal und DailyDeal. Beide fingen anfang des Jahres an, zuerst in den Großstädten wie Berlin oder Hamburg, mittlerweile kommen aber auch immer mehr neue Städte hinzu, in denen man Angebote finden kann.

Dass die beiden Konkurrenten sind, freut den Nutzer zuweilen, wenn es 5 Euro Starbucks Gutscheine für 2 Euro gibt. Oder 6 Euro Mecces Gutscheine für 3 Euro. Oder 50 Euro Zalando Gutschein für 15 Euro. Bleibt abzuwarten, wer sich letztendlich durchsetzen kann, oder ob beide durchhalten. Ich persönlich habe schon beide genutzt und kann mich nicht beklagen. Das Versenden der Gutscheine dauert generell ein paar Tage, denn erst muss die Aktion beendet sein und dann ein bisschen Verwaltungskrams, aber die Gutscheine kamen bisher an. Oftmals gibt es aber auch einfach Gutscheincodes per Mail, die sofort kommen, wenn die Aktion beendet ist.

Ein kleiner Nachteil, der sich sicher in Zukunft auflösen wird, ist die geringe Anzahl der Städte, in denen es Angebote gibt. Ich vermute aber, dass beide Anbieter fleißig am Suchen nach passenden Partnern und attraktiven Angeboten sind, so dass wir in Zukunft auch für die vielen kleineren Städte Deals finden werden. Alles in allem finde ich es eine super Sache, auch wenn es letztendlich wieder mal eine Geschäftsidee ist, die aus den USA abgekupfert wurde. Gerade die deutschlandweiten Angebote sind oftmals echte Hammer, ich frage mich da schon, wie lange das gegenseitige Pushen zwischen den Beiden gutgehen wird, denn das da Gewinn abfällt, kann ich mir kaum vorstellen, wenn iTunes Karten im Wert von 10 Euro für 6,90 Euro verkauft werden. Aber sowas nennt man in diesem Business wohl aggressive Kundenakquise. Und letztendlich belebt Konkurrenz ja auch das Geschäft. Laut deutsche-startups.de hat CityDeal momentan die Nase vorne.

Wer jetzt neugierig geworden ist und ein interessanten Angebot gefunden hat, könnte sich ja über meinen Link dort registrieren, dann kriege ich auch einen kleinen Obolus für meine nächste Bestellung gut geschrieben, so ganz uneigennützig ist dieser Beitrag dann doch nicht ;) Bei CityDeal nutzt doch einfach diesen Link und bei DailyDeal den hier.

SEP – die Zweite.

Morgen ist es also soweit: Die erste Iteration des Software- entwicklungspraktikums ist vorbei. Der Prototyp steht. Die Dokumente sind fertig, müssen aber mal wieder komplett überarbeitet werden… Allgemein kann man auch sagen, dass diese Phase hauptsächlich aus Dokumente schreiben und UML Diagramme zeichnen bestand. Programmieren war da wohl eher das kleinere übel. Wir haben also Pflichtenheft, Grobentwurf, Feinentwurf und Testdokumentation (insgesamt 102 Seiten) und geschätzte 10000 UML Diagramme. Dokumentation wurde übrigens in LaTex gesetzt…

Wäre das Projekt nicht so cool, dann wäre die Teammotivation noch geringer, denn jeden Tag bis abends in der Uni sitzen, weil man die Roboter nicht mit nach Hause nehmen darf, ist einfach kraftraubend. Insbesondere wenn man nebenbei noch Vorlesungen besuchen und Hausaufgaben machen muss. Und, achja, erwähnt ich schon, dass es lediglich eine Studienleistung ist? D.h. die Note geht nicht mal in die Bachelornote ein. Ich hoffe jetzt einfach mal, dass die nä. Iteration unkomplizierter wird.

Man darf natürlich auch nicht die Erfolge übersehen: ich hatte letzte Woche noch arge Zweifel, dass das alles so funktionieren wird, aber tatsächlich: Wir können dem Roboter Aufträge zuweisen und er arbeitet diese auch auf dem Kürzesten Wege ab. Das ist schonmal gut. Jetzt geht es darum das alles auf mehrere Roboter zu erweitern und verschiedene Strategien für das Ersteigern von Aufträgen zu implementieren. Von daher: Auf gehts in die nächste Iteration.

Softwareentwicklungspraktikum 2010 – NeXT Generation Transport Robots

Dieses Semester steht das Softwareentwicklungspraktikum (SEP) auf dem Stundenplan. Ein komplettes Projekt selber organisieren und durchführen. Wir bekamen das Lastenheft und müssen nun alles was wir im letzten Semester in der Vorlesung “Softwareentwicklung” gelernt haben. Also Pflichtenheft, Grobentwurf, Feinentwurf, Programmierung, Testen, Testdokumentation, Dokumentation und was noch alles dazugehört.

Unser Thema: NeXT Generation Transport Robots. Unser Szenario ist ein fiktiver Flughafen, auf dem Roboter autonom agieren sollen. Z.B. Personen vom Check-In zum Eingang Gate bringen oder Koffer umherfahren. Da wir natürlich keinen echten Testflughafen (Abbildung siehe unten) haben und wir nur knapp 4 Monate Zeit haben, können wir auch keine echten Roboter bauen. Wir beschränken uns deswegen auf eine Simulation mit Hilfe von Lego NXT Mindstorms (deswegen auch NeXT). Man kann sie mit Java programmieren, großer Vorteil, da wir alle 2 Semester lang Java gelernt haben, und über Bluetooth steuern bzw. mit Daten füttern. Außerdem gibt es eine gut dokumentierte API, so dass wir z.B. keine eigenen Klassen für Kommunikation über Bluetooth schreiben müssen, was auch den Zeitrahmen bei weitem sprengen würde. Die Herausforderung ist weniger die Programmierung, sondern vielmehr die Implementation der ganzen geforderten Features. So sollen die Roboter ihre Wege selber planen, d.h. wir brauchen einen vernünftigen, schnellen Algorithmus, der die kürzesten Wege berücksichtigt. Außerdem wird gefordert, dass es eine zentrale Control Unit gibt, über die die gesamte Kommunikation ablaufen soll und die für die Verteilung der Aufträge zuständig ist. Es müssen natürlich auch unter allen Umständen Kollisionen verhindert werden und der Kunde gibt vor, dass pro Wegabschnitt immer nur ein Roboter fahren kann.

Zum Glück besitzen die Roboter einige nette Sensoren, die Aufgaben um einiges erleichtern, z.B. einen Farbsensor. Damit können sie auf dem Boden aufgeklebte Linien erkennen und anhand derer ihre Wege abfahren. Ebenso lassen sich so mit anderen Farben bestimmte Punkte markieren. Die “Straßen” werden durch schwarzes Klebeband dargestellt, und Kreuzungen können z.B. mit Rot, Gelb und anderen Farben für die Roboter “lesbar” gemacht werden. Erhält jede Kreuzung eine andere Farbe, lässt sich auch gleichzeitig noch die Position feststellen.

Beim ersten Meetings des Teams sind schon einige Diskussionen entbrannt, ich bin echt gespannt, was dabei herauskommt, denn keiner von uns hat bisher so ein Projekt mitgemacht, d.h. niemand hat Erfahrung, was es alles zu berücksichtigen gilt. Am Ende des SEP wird unser, hoffentlich funktionierendes, Projekt auf einer Mini-Messe, dem Tag der neuen Software-Entwickler, vorgestellt. Bis dahin sind es von heute an, noch genau 3 Monate. Ich versuche euch hier von Zeit zu Zeit auf den neuesten Stand zu bringen und von Problemen oder Erfolgen im Laufe des Projekts zu berichten. (alle Bilder von der Seite des Instituts, das für unser Projekt zuständig ist)

Router Hacking

Die letzten beiden Tage habe ich mich damit beschäftigt, einen Sinus W500V Router mit alternativer Firmware auszustatten. Konkret geht es um das Freetz Projekt, welches auf dem Speedport2Fritz (Anleitung) Projekt aufbaut. Letzteres erlaubt es AVM Fritzbox Firmware auf bestimmte Speedport und Sinus Router zu packen, während das Freetz Projekt die AVM Firmware verändert bzw. um sogenannte Packeges erweitert. So ist es dann z.B. möglich einen Webserver oder FTP Server laufen zu lassen.

Bei mir laufen der lighttpd (HTTP Server), bftpd (FTP Server), knockd (Knock Daemon) und dropbear (SSH Daemon). Für Ruby und PHP hat der begrenzte Speicher des Sinus W500V leider nicht gereicht. Aber bis dahin war es ein langer Weg. Vorneweg: Vergesst es gleich, den Krams mit dem Mac machen zu wollen. Ich habe da mehrere Stunden dran gesessen und nacheinander Fehlermeldungen abgearbeitet, aber hatte irgendwann keine Lust mehr. Zum Glück gibts in der oben verlinkten Anleitung ein fertiges Ubuntu Image, welches man in einer VirtualBox oder im VMWare Player laufen lassen kann und wo bereits alles vorbereitet ist. Im Prinzip läuft das ganze so ab, dass man zuerst ein speed2fritz Image erstellt, also Fritzbox Firmware für den Router. Danach mit start-freetz ein Image, dass die entsprechenden Packages enthält (das Erstellen kann schonmal längere Zeit dauern, da alles erst aus dem Netz geladen werden wird und ggf. auch noch kompiliert werden muss) und danach nochmal mit speed2fritz aus den vorher erstellten Images ein Finales erstellt. Das einfach über das Web Interface als neue Firmware installieren, die Warnmeldungen ignorieren, ein bisschen warten und den Router neu starten. Und schon hat man ein neues Spielzeug. Nach dem Neustart gibts im Fritzbox Webinterface nen neuen Menüpunkt, der das Freetz Webinterface aufruft, von dem man alles wichtige Verwalten kann. Dienste starten und beenden oder Einstellungen verändern. Ich hab das ganze nicht auf unserer Fritzbox gemacht, die wir für den Internetzugang nutzen, das war mir dann doch zu riskant, wollte dann doch erstma einfach nur rumspielen. Da jetzt auf dem Sinus Teil ne Fritzbox läuft, lässt sich dieser vielleicht sogar mit unserer original Fritzbox verbinden (als Repeater oder so, mal sehn) und dann damit auch Internetzugang bekommen. Ein always-on Jabber Client wär schon cool – mcabber gibts ja als Package…

Problematisch bzw. aufwendig ist es leider nur, dass man immer wieder das Image komplett erstellen und installieren muss, wenn man ein neues Package hinzufügen möchte. Aber naja, was solls. Vielleicht werde ich dann die nä. Version noch mit PHP oder Ruby als Package erstellen, um dann z.B. dynamische Statusseiten zu erstellen, die von außerhalb erreichbar sind. Geschützt durch den Port Knocking Daemon. Port Knocking funktioniert grob gesagt wie folgt: Der Client “klopft” nacheinander eine bestimmte Sequenz von Ports auf dem Zielrechner an. Der Daemon erkennt die Sequenz und führt eine vorher definierte Aktion durch. Bei mir ist es das (de)aktivieren von SSH. Ebenso ließe sich der lighttpd starten und beenden. Liefert einen gewissen Schutz, da durch Port Scannings keine offenen Ports entdeckt werden, solang die richtige Sequenz nicht gesendet wurde.

Inwiefern die Telefonfunktion noch geht, kann ich leider keine Auskunft geben, das Sinus W500V hat zwar ne Telefonfunktion, die wir aber nicht nutzen. Aber ich vermute, dass es auf jeden Fall mit der Fritzbox Firmware läuft, ob die Freetz Firmware daran etwas ändert, weiß ich nicht, müsste man vielleicht ausprobieren.

Für jeden der Spaß am rumhacken hat und vielleicht noch nen Sinus oder Speedport Router nutzlos rumstehen hat, kann so vielleicht noch mal ein bisschen Späße treiben. Hab irgendwo was von LED Lauflicht mit den Statuslämpchen gesehn, das werd ich nochmal ausprobieren, sieht bestimmt lustig aus :D

IE, Firefox und Safari + jQuery

Heute hatte ich ein sehr merkwürdiges Problem. Vor meiner Zeit wurde auf der Seite jQuery und ein Plugin genutzt, um Tooltips zu erzeugen, die per Ajax Request den Inhalt einer anderen Seite anzeigen. Ich wollte heut morgen nur den Titel der Box ändern, die den Inhalt anzeigt, als mir auffiel, dass die Seiten nicht mehr darin angezeigt werden. Alles sehr mysteriös, da es letzte Woche noch einwandfrei ging. Also Firefox an und Firebug gestartet, dieser komische Javascript Debugger im Safari is ja mal total crappy. Zusätzlich noch ein paar alerts in den Quellcode gesetzt und dann mal geschaut. Bis zum HTTP Request an die externe Seite, die auf der gleichen Domain liegt, funktionierte alles. Im Firebug sah ich auch den Request, jedoch gab es kein GET Response, lediglich ein OPTIONS. Also weiter geprüft. Die URL wird an die Funktion übergeben. Als erstes habe ich dann die URL als String direkt in den AJAX Request geschrieben: $(‘#elementname’).load(“URL”). Kein Erfolg. Ein bisschen mit der URL rumgespielt. Irgendwann hatte ich dann eine URL die lief, es war die gleiche, bis auf das fehlende www. Also bei allen Links das www entfernt und plötzlich lief das olle Ding wieder. Ich hab kein Plan, wieso das so ist. Es wurde weder das jQuery Framework noch das Plugin in letzter Zeit geupdatet. Das jQuery habe ich heut erstmal auf die aktuellste Version gebracht. Aber das machte auch keinen Unterschied. Also alles soweit so gut? Nein. Der Krams läuft jetzt. Aber nur im Internet Explorer und im Firefox. Nicht im Safari. Und ich hab kein Plan, wie ich Javascript vernünftig im Safari debuggen kann.

Aber da mich dieses Plugin schon länger nervt, werde ich das ganze wohl sowieso im Zuge der Umstellung auf das neue CD rauswerfen und gegen eine besser Lösung ersetzen. jQuery und jQuery UI liefern ja mittlerweile genügend Möglichkeiten sowas zu machen ohne extra Plugins zu nutzen.

Lang, lang ist’s her..

Über einen Monat hab ich jetzt nichts mehr hier geschrieben. Das lag hauptsächlich an Klausuren und akuter Unlust was zu schreiben. Mittlerweile sind die Klausuren vorbei – alles bestanden und auch die Unlust legt sich so langsam. Vor der Tür stehen jetzt noch zwei Seminararbeiten (Thema 1: Graph Homomorphisms, Thema 2: Idealklassen quadratischer Zahlkörper) für das nächste Semester und in knapp 3 Wochen geht die Uni schon wieder los.

Ich entdecke gerade eBay wieder für mich, versteigere ein paar Dinge (Nintendo DSi und einen alten iPod nano). Hauptsächlich weil ich die Dinge nicht mehr benötige und weil das Geld dafür für andere Sachen draufgehn soll, so benötige ich nen Scanner und auch das iPad erscheint ja in absehbarer Zukunft. Außerdem geht meinen externen Festplatten der Speicherplatz aus und ich liebäugle mit nem Drobo. Leider im Moment noch ein bisschen zu teuer für meinen Geldbeutel, deswegen wirds vermutlich auf ne weitere externe Firewire Platte hinauslaufen. Passend dazu probiere ich gerade diverse Ebay Apps für den Mac aus. Im Moment überzeugen mich iSale, was ich mal bei Macheist erworben hab, zum Einstellen von Auktionen und die eBay eigene Air-Anwendung “eBay Desktop”. Dazu noch die iPhone App von eBay die mich dank Push Notifications an bald endende Auktionen erinnert.

Was gibt’s noch? Ich hab angefangen ne PHP Klasse für Matrix Operationen zu schreiben, okay, das interessiert vielleicht die wenigsten hier, aber ich finds ganz praktisch. Gibts zwar schon, aber erstens komm ich so mal dazu mich mit der ganzen Klassenstruktur von PHP5 auseinanderzusetzen und zweitens sind Matlab und Maple für sowas einfach zu überdimensioniert. Das ganze kommt früher oder später auch noch online und wird Open Source, aber das dauert noch ein bissl.

Empfehlungen am Serienhorizont: Auf jeden Fall “How to make it in America” (Trailer). Beschreibung von der offiziellen Seite:

“How to Make It in America” follows two enterprising Brooklyn twenty somethings as they hustle their way through New York City, determined to achieve the American Dream. Trying to make a name for themselves in New York’s competitive fashion scene, Ben Epstein (Greenberg) and his friend and business partner Cam Calderon (Rasuk) use their street knowledge and connections to bring their ambitions to fruition. With the help of Cam’s cousin Rene (Guzman), who is trying to market his own high-energy drink, and their well-connected friend Domingo (“Kid Cudi”), the entrepreneurs set out to make it big, encountering obstacles along the way that will require all their ingenuity to overcome.”

Auf jeden Fall eine coole Serie mit tollem Soundtrack und auf der Homepage gibts zu jeder Folge auch noch die Playlist aller Songs. Sehr lobenswert. Hier noch ein Youtube Video zum wunderbaren Song des Intros.

Und während ich das hier schreibe, habe ich endlich meinen gebrauchten Scanner bei eBay ersteigert. Dank Macbay Faxservice kann ich somit endlich Originaldokumente faxen, ohne mir anhören zu müssen, dass abfotografierte Dokumente nicht akzeptiert werden, sondern ich doch bitte das Stück Papier per Fax senden solle.

[Link-Tip] The Hype Machine

Heute möchte ich mal ne absolute Empfehlung für The Hype Machine aussprechen. Wie ihr auf dem Bild schon erkennen könnt, crawlt der Dienst durch Twitter, aber auch hauptsächlich durch Musikblogs und schaut, was die Leute dort über verschiedene Tracks schreiben. Je mehr darüber schreiben, desto populärer muss der Song sein. Anschließend findet man diese Lieder auf der Hype Machine Homepage, auf der man als angemeldeter Benutzer Lieder mit einem Herzchen versehen kann, ähnlich dem faven bei Tweetes. So entstehen Ranglisten. Ranglisten mit Musik aus vielen verschiedenen Stilrichtungen, sehr oft echt geile Remixes. Dort findet man auch die Links zu den Blogs, in denen man die Lieder meistens downloaden kann. Einmal im Jahr gibts es den sogenannten “Zeitgeist” – eine Auflistung der Top Artisten, Top Tracks und Top Alben des vergangenen Jahres. Sehr genial. Außerdem nutzen sie beim Twittern den wohl coolsten URL Kürzungsdienst, den es gibt: awe.sm. Also, wer gute Musik abseits des Mainstreams sucht, der ist hier genau richtig aufgehoben. Viel Spaß beim Musik hören.

[Mac] Echofon – Twitter Client mit Listen

Die neudesignte Oberfläche sieht sehr hübsch aus

Mein Lieblingstwitterclient auf dem Mac – Echofon – bekam heut ein neues Update, das das Programm auf die Version 0.98 Beta brachte – nicht mehr weit weg von der 1.0. Das Update brachte nicht nur ein neues Facelifting mit, sondern liefert auch endlich Unterstützung für die “neuen” Twitter Features “Listen” und “Geolocation” (wobei ich bei letzterem noch nicht genau weiß, wie und wo sich das im Programm widerspiegelt).

Im Vergleich zur alten Version fällt insbesondere die neue obere Tableiste auf. Sie ist um einiges hübscher als in der alten Version (Bild siehe unten) und auch das Dock Icon wurde komplett geändert und sieht einfach wunderbar aus.

Die Listenfunktion ist nahezu perfekt integriert: man kann Listen anschauen, ver- und entfolgen oder Leute zur eigenen Liste hinzufügen. Somit ist Echofon meines Wissens nach der einzige native Mac OS X Client, der dieses Feature unterstützt. Lediglich das Anlegen neuer Listen ist nicht möglich. Entsprechend wurden auch die Growl Funktionen angepasst: Gibt es News auf den Listen, kann man sich das per Notification anzeigen lassen.

Profilanzeige in Echofon - der grüne Kasten führt zur Retweetanzeige

Auch die Retweet Funktion, wie man sie von der Twitter Homepage kennt, wurde eingebaut, d.h. man kann sich per Klick alle Retweets auf der eigenen Timeline anschauen sowie nachsehen, was man retweeted hat oder von wem man retweeted wurde. Der Weg dahin ist ein wenig kompliziert bzw. versteckt: Man muss sein eigenes Profil aufrufen (im Programm: Menü Twitter -> My Profile bzw. Shift+Cmd+U). Somit ist Echofon für mich momentan der beste Client auf dem Mac zum Twittern, lediglich das kürzen von URLs und Einfügen von Bildern ist momentan nur über jeweils einen einzigen Dienst möglich (bit.ly bzw. twitpic). Ich hoffe dass sich dies in einem der nächsten Updates ändert und dann mehrere Anbieter zur Auswahl stehen.

Echofon mit dem alten Design

Schon länger beherrscht das Programm das Speichern von Suchen und zeigt die “Trending Topics” an, leider noch nicht die Regionsbezogenen, aber dieses Feature ist in Deutschland momentan sowieso nicht relevant, da es diese Regionalen Themenanzeige hier noch nicht gibt.

Was gibts noch zu sagen? Nunja, momentan ist das Programm noch kostenlos, laut Homepage soll sich das im Laufe des Jahres ändern, ich denke spätestens, wenn es das offizielle stabile Release gibt, werden wir Preise erfahren. Echofon ist für mich die Alternative zu Tweetie, das ich gar nicht mehr benutze, da der Entwickler scheinbar kein Interesse hat, die Mac Version zu aktualisieren, sondern sich mehr auf die iPhone Version konzentriert. Wer also einen hübschen, im Moment noch, kostenlosen Twitter Client sucht, der viele Features bietet und mit den Einschränkungen bei URL Kürzungen und Bildhostern leben kann, dem sei Echofon empfohlen.

Skins is back…

Gestern begann sie: die neue Staffel der wohl coolsten britischen Serie aller Zeiten. Wie kann man Skins beschreiben? Irgendwer beschrieb es mal als britisches Pendant zu The O.C.. Das ist Skins. Nicht. The O.C. ist ein Dreck dagegen. Was ihr hier seht ist viel besser. Die Welt aus Liebe, Drogen und Sex reißt mich jedes mal wieder mit, schockiert erneut, aber fasziniert auch. Wer möchte nicht mal ein bisschen in diesem Leben leben? Auch wenn der Cast nach der 2. Staffel fast komplett ausgetauscht wurde und das gleiche nochmal nach der 4. Staffel passiert: Es. Lohnt. Sich.

Was ihr wissen müsst? Jede Folge trägt den Namen von einer oder zwei Personen aus dem Cast. Und um diese Person(en) geht es dann in der Folge natürlich auch. Es werden Familie, Freunde, Probleme, Liebschaften und Beziehungen aufgezeigt, so lernt man nach und nach das ganze Beziehungsgeflecht innerhalb der Jugendlichen kennen. Wer mit wem, wer welche Träume hat. Dabei kommt die Serie nicht abgehoben daher. Sie bleibt auf dem Boden, lebensnah. Wer also eine der besten Dramaserien der letzten Jahre sehen will, dem sei Skins empfohlen. Am besten auf Englisch. Auch wenn der britische Akzent gewöhnungsbedürftig ist, lohnt sich dennoch, wie so oft, die Originalstimmen zu hören.