Donnerstag, 8. Januar 2015

“Kleiner Apfel” ist Chinas Winterhit

Endlich einmal ein Liedtitel, welchen sogar ich mit meinen rudimentären Mandarin-Sprachkenntnissen verstehe: Xiao Ping Guo oder auf gut deutsch: Kleiner Apfel!

Vor einigen Wochen wurde ich durch Daniel Wyss, bald Expat in Hong Kong, auf den Song aufmerksam gemacht, der in China mittlerweile wohl jedermann kennt, singt und tanzt:

Man darf wohl ohne Understatement vom chinesischen Gangnam Style sprechen. Als wir über Weihnachten sechs Nächte in der subtropischen Yalong Bay bei Sanya, Hainan, Volksrepublik China, verbrachten, lief der Song jeden Abend auf der Plaza des La Floret-Einkaufszentrums. Der chinesische Nachwuchs wippte, tanzte und sang genauso wie deren Eltern. Will man es ihnen verwehren? Der Track hat enormes Ohrwurmpotential.

Mittlerweile gibt es einige Covers – offiziell, oder inoffiziell; das folgende entdeckte ich gestern:

Wer das Video ganz genau von Anfang bis Ende durchschaut, dem wird auffallen, dass verschiedene Protagonisten offenbar an einem medizinischen Problem leiden: Nasenbluten! Ein verdeckter Hinweis auf Ebola? Nein, wie mich Stephanie gestern freundlicherweise aufgeklärt hat: In Asien ist dies eine Metapher für sexuelle Erregung

Tags: , , , , , ,
Labels: Asien

1 Kommentar | neuen Kommentar verfassen

Dienstag, 6. Januar 2015

Welcher Prozess verwendet unter Linux welchen Netzwerkport?

# netstat -tulpn

Quelle: Look for the process bound to a certain port

Tags: , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 6. Januar 2015

Kurzer Besuch von Dubai während eines Anschlussflugs (“Layover”)

Am 31. Dezember 2014 landeten wir mit Emirates EK367 kurz nach 5 Uhr morgens von Taipei herkommend in Dubai. Unser Anschlussflug Emirates EK85 nach Zürich sollte gemäss Flugplan um 16:15 Uhr Ortszeit, das heisst 11 Stunden nach unserer Ankunft in Dubai, abheben.

Wir hatten diesen sog. “Layover” in Dubai bewusst gebucht, um einen kurzen Ausflug in die Stadt zu unternehmen und ausgewählte Touristenattraktionen zu besuchen sowie um in einem der nicht ganz billigen Küchen der Stadt ein Mittagessen einzunehmen.

Gerne bestätigen wir, dass dieses Unterfangen – mit einigen Komplikationen – im Grossen und Ganzen gut geklappt hat und empfehlen es all denjenigen Personen weiter, welche Flugreisen und Layovers mit einer gewissen Lässigkeit begegnen können.

Dusche

Nach der Ankunft ging es darum, zuerst einmal eine warme Dusche zu nehmen, sich der neuen Temperatursituation anzupassen und den kulturellen Umständen angemessen umzukleiden. Da wir bereits vor Abflug wussten, dass wir in Terminal 3 ankommen würden, hatte Stephanie den Health Club auf dem 5. Stockwerk ausgemacht.

Dieses hygienische Vorhaben verkomplizierte unseren Kurzausflug nach Dubai ein wenig, denn: Als Passagier mit Anschlussflug muss man hierzu der Signalisation “Transfer” folgen (und noch nicht Richtung “Baggage Claim” oder Richtung Flughafen-Ausgang/”Immigration”), geht durch einen der Security Checks und nimmt dann die Rolltreppe oder den Lift auf das 3. Stockwerk für abfliegende Passagiere. Anschliessend nimmt man einen anderen Lift in der Nähe der Information auf den 5. Stock und geht zur Reception des Fitness-Clubs. Obwohl erst ungefähr 5:45 Uhr morgens war die Reception mit einer asiatischen Angestellten bedient, die problemlos Englisch sprach. Wir bezahlten je umgerechnet 15 USD für eine Duschkabine.

Anschliessend wurde zuerst Stephanie zur Toilette begleitet (strikte Geschlechtertrennung!), dann ich. Nachdem wir unsere Notdurft erledigt hatten, führte uns die Dame einzeln zu den ebenfalls strikt nach Geschlechtern getrennten Duschen.

Der Fitnessclub verfügt über geräumige Duschkabinen mit mehreren Duschköpfen, unter anderem zwei auf Bauchhöhe. Für überforderte Zeitgenossen liegen Anleitungen bereit, wie man eine warme Dusche nimmt. Ausserhalb des Nassraums gibt es genügend Stauraum für (angemessenes) Handgepäck (solche Zeitgenossen sind explizit ausgenommen) und eine verschliessbare Plasticbox, in welche man Objekte verstauen kann, die nicht nass werden sollen. Shampoo, Seife, Kamm, Rasurmaterial, Zahnbürste und -pasta werden in Hotelmanier bereitgestellt.

NB: Eine ausführlichere Erläuterung der Duschmöglichkeiten in Dubai findet sich hier: Where can I take a shower at Dubai Airport?

Reverse Security Check

Frisch geduscht standen wir vor einem Problem: Wie komme ich als Transferpassagier aus dem Abflugbereich heraus, um zum “Baggage Claim” respektive zur “Immigration” zu gelangen?

Wir fragten an der Information im 3. Stock nach, welche uns zur Information beim Security Check im 2. Stock verwies. Leider war diese nicht besetzt. Wir gingen also wieder in den 3. Stock und wendeten uns mit unserem Anliegen an die nächstbeste Flughafenmitarbeiterin (erkennbar an ihrem gut sichtbar getragenen Ausweis). Diese verwies uns an den Emirates-Schalter für Visas, Städtetouren und Hotelbuchungen gleich um die Ecke. Die dortige Mitarbeiterin teilte uns mit, dass wir einfach entgegen dem Passagierstrom durch den Security-Check gehen sollten.

Wir verschoben also wieder mit dem Lift in den 2. Stock (die Alternative wäre die Treppe gewesen). Und tatsächlich war die umgekehrte Durchquerung des Security Checks kein Problem. Wir hielten sogar unsere Pässe als auch das Flugticket, aber das Sicherheitspersonal interessierte sich keinen Deut dafür. Sie wünschten uns sogar einen schönen Aufenthalt in Dubai. Glücklicherweise hatten wir gerade eine Phase erwischt, in welcher kaum Passagiere den Security Check durchliefen.

Anschliessend folgten wir den Schildern zum “Baggage Claim” und zur “Immigration”.

Immigration

Der Einwanderungsbereich resp. die “Passkontrolle” ist hochmodern ausgestattet – doch leider versagte die Technik zum automatischen Einlesen der maschinenlesbaren Pässe vollumfänglich – nicht nur bei uns, sondern allen anderen Passagieren auch. Deshalb mussten wir uns in die Reihe anstellen und den manuellen Check durch Bürger in der traditionellen Kleidung der Region über uns ergehen lassen.

Mit einem Schweizerischen resp. US-Amerikanischen Pass hat man die Erlaubnis, visumsfrei in die Vereinigten Arabischen Emirate einzureisen. Insgesamt gilt diese erleichterte Einreise für ungefähr 30 Nationen.

Und nein, ich kann nun endlich persönlich bestätigen: Den israelischen Stempel in meinem Pass störte keine Menschenseele. Es handelt sich somit um Urban Myths, die im Internet kursieren und Leuten wie mir unnötig Angst machen.

Ankunftshalle: Wo bleibt unser Fahrer?

Um 7:30 Uhr kamen wir in der Ankunftshalle an. Ich kontaktierte unseren Ansprechpartner Geimi “Jimmy” Nahra von Uni Tourism Llc, von welchem ich über Get Your Guide einen Fahrer für 8 Stunden für 200 USD gebucht hatte. Leider erhielten wir keine Antwort. Um 8 Uhr, dem eigentlich vereinbarten Abholungstermin, war von unserem Fahrer nichts zu sehen. In der Annahme, dass man es im arabischen Raum wohl nicht so genau mit der Pünktlichkeit nehme, warteten wir bis 8:15 Uhr.

Dann aber begann ich nervös zu werden: Wir hatten lange vor der Reise Tickets für die Besichtigung des Burj Khalifa, des höchsten Gebäude der Welt, gebucht. Der Eintritt war auf 9 Uhr terminiert. Nach unzähligen unbeantworteten Telefonanrufen, gesendeten iMessages, Facebook- sowie WeChat-Nachrichten erhielt wir kurz vor 8:30 Uhr den lange ersehnten Rückruf: Der Fahrer falle aus; ein Ersatz sei unterwegs, könne aber erst um 9 Uhr am Flughafen sein.

Ich sagte Geimi, dass wir um 9 Uhr im Erdgeschoss des Burj Khalifa sein müssten und wir deshalb ein Taxi nehmen würden. Der Fahrer solle uns später bei der Mall of Dubai unter/neben dem Burj Khalifa aufladen. Geimi war mit dem Vorgehen einverstanden.

Plan B: Taxi

Wir reihten uns in der langen Menschenschlange ein, welche ein Taxis in die Stadt nehmen wollten. Nach wenigen Minuten wurden wir einem luxuriösen schwarzen Taxi zugeteilt – ein Vorteil, wenn man im Gegensatz zu allen anderen Anstehenden nur mit Handgepäck unterwegs ist und kein Grossraumtaxi benötigt …

Burj Khalifa

Die Fahrt verlief reibungslos, und kurz vor 9 Uhr lud uns der Taxi-Fahrer am Haupteingang der Mall of Dubai aus. Entschädigt wurde er mit 80 AED (“Dirham”), umgerechnet etwa 22 CHF. Nach weiteren fünf Minuten hatten wir den Einkaufstempel durchquert, nahmen den Lift ins Untergeschoss und kamen am Empfang des Burj Khalifa an. Meine elektronische Ticketbestätigung wurde geprüft und wir erhielten unsere Fast Track-Tickets ausgehändig. Obwohl horrend teuer, lohnte sich dieser Entscheid rückblickend allemal, um unser restliches ambitioniertes Programm durchzuziehen.

Neben dem Empfang gaben wir unser Handgepäck ab und betraten den Weg zu den Liften. Offenbar schienen um 9 Uhr noch kaum Leute das Gebäude besuchen zu wollen; erst kurz vor den Liften stauten sich die Menschenmassen, welche wir dank den Spezialtickets einfach übersprangen.

Die Aussicht über die Stadt war kurz nach 9 Uhr sehr gut. Wir liessen von den angestellten Photographen einige Souvenirphotos schiessen (inkl. Greenscreen-Szenen), verzichteten dann aber darauf, diese zu kaufen, da ein (!) Abzug umgerechnet 70 CHF kostete.

Kurz vor 10 Uhr machten wir uns an den Abstieg und durften dank unseren Tickets wieder die vor dem Lift wartende Menschenschlange überspringen.

Zweiter Versuch: Fahrer

In der Zwischenzeit hatte uns ein SMS erreicht, in welchem Jimmy uns die Telefonnummer des Ersatzfahrers bekannt gab und uns versprach, die Kosten für die Taxifahrt zurückzuerstatten. Das grösste Problem war nun, den Fahrer zu finden. Er wollte, dass wir ihn bei der “Al-Majib Bank” trafen, obwohl wir keine Ahnung hatten, wo sich besagte Bank befand. Schlussendlich gaben wir auf und meldeten dem Fahrer, dass er uns doch bitteschön einfach am Haupteingang des Einkaufszentrums aufgabeln sollte. Doch offenbar hat die Lokalbevölkerung Mühe, den Begriff “Mall of Dubai Main Entrance” zu deuten. Nach mehreren Telefonaten und der Angabe von Tiffany & Co. schafften wir es dann doch noch, unseren Fahrer zu treffen. Das Auto, eine Toyota Familienkutsche, hatte er im grossen Parking des Einkaufszentrums parkiert.

Spice Souq

Nun ging es zum Spice Souq in Dera Dubai, im ursprünglichen, alten Teil der Stadt. Da zeigte sich eine weitere Schwäche meiner Planung: Stau. Auf der Autobahn durch die Stadt lief noch alles zügig, doch kurz nach der Autobahnausfahrt fuhren wir auf stockenden Kollonnenverkehr auf, was uns sicherlich 30 bis 45 Minuten kostete. Uns blieben nur noch 15 Minuten für den Besuch des Marktes.

Der Souq selber war enttäuschend und erinnerte mehr als alles andere an eine Touristenfalle. Sobald ich mich als Schweizer zu erkennen gab, hörte ich “Chuchichäschtli”, “Adieu”, “Tschüss” und sonstige Floskeln. Stephanie kaufte “Safran” aus dem Iran, obwohl ich immer noch das Gefühl habe, dass uns ein Imitat angedreht wurde. Ganz unappetitlich wurde es, als ich während Stephanies Preisverhandlung ein Gefäss mit getrockneten Pfefferkörnern aus dem Regal nahm – und einen Wurm das Gefäss hochkriechen sah …

Indego

Eingedeckt mit Gewürzen riefen wir den Fahrer zurück, stiegen in das Fahrzeug ein und liessen uns nach Dubai Marina chauffieren. Dort hatten wir als Sylvester-Mittagsessen einen Tisch im Indego by Vineet gebucht. Punkt 12:30 Uhr – der Öffnung des Restaurants – waren wir als erste Gäste des Tages vor Ort. Gegen 13:30 Uhr begann sich die Terrasse dann doch noch zu füllen … leider war es auf Grund der Schattenlage und des Meerwindes auf der Terrasse nicht ganz so warm wie vermutet.

Wir spiesen bis wir platzten (inkl. eines Glases Neuseeländischen Pinot Noirs), mussten aber auf Grund der vorgerückten Zeit und auf Grund fehlendem Magenvolumen auf das Dessert verzichten. Wir liessen uns die Reste packen, erhielten diese aber nur gegen die Unterzeichnung eines “Liability Waiver” ausgehändigt. Und da denkt jemand die Amerikaner seien prozessfreudig …

Zurück an den Flughafen

Um 14:34 Uhr fuhren wir zurück an den Flughafen, wo wir um 15:15 Uhr ankamen. In der Zwischenzeit hatte ich es geschafft, dass mir der Fahrer die versprochenen 80 AED aushändigte.

Nach einem langen Fussmarsch durch die Eingangshalle – vorbei am Check-In, da es ja nichts einzuchecken gab – vorbei an der Dame von der Passkontrolle, dann durch den Security Check. Die Essensreste kamen problemlos durch den Scan, was mich erstaunte.

Schlussendlich schafften wir es noch vor dem ersten Aufruf zum Boarding bis in die Menschenmassen beim Gate. Ich hatte sogar noch genügend Zeit, ein letztes Mal eine Toilette auf dem Erdboden aufzusuchen. Auf Grund Bauarbeiten an einer der Pisten verzögerte sich unser Abflug schlussendlich noch um satte 30 Minuten, doch das war uns zu dem Zeitpunkt egal.

Fazit

Die Wolkenkratzer und die Shoppingmeilen in Dubai sind zwar eindrücklich, nicht aber wirklich mein Ding. Dubai kommt mir vor wie das Las Vegas des Mittleren Osten: Eine herzlose Stadt ohne Charakter, mit Personen, die in klimatisierten Fahrzeugen zwischen klimatisierten Räumen hin- und herpendeln und eigentlich viel lieber an einem anderen Ort der Welt wären.

Nichtsdestotrotz habe ich diesen Ausflug geschätzt, da er die Grenzen des Machbaren ausgereizt hat und ich wieder einmal einiges nützliches Jetset-Wissen aneignen konnte.

Tags: , , , , , , , , , , ,
Labels: Reisen

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 4. Januar 2015

Remember The Milk lädt nicht mehr

Frisch zurück aus den Ferien kämpfte ich mit dem Zugriff auf meine Taskliste, welche ich mit der SaaS-Anwendung Remember The Milk verwalte. Wenn ich diese Seite in Safari aufrief, erschien einzig der blaue Hintergrund des Teasers, ohne dass aber die Lade-Animation erschien. In Firefox konnte ich mich problemlos in die Anwendung einloggen.

Ein Blick auf die Web Developer-Konsole in Safari gab mir einen ersten Hinweis, wo das Problem lag:

Safari Web Developer Console
image-6044

Safari akzeptierte das SSL-Zertifikat für die Server s1.rtmcdn.net und s4.rtmcdn.net nicht (mehr). Offenbar hatte Firefox gleichzeitig kein Problem damit, die Server anzusprechen und Ressourcen von dort zu laden. Rückblickend vermute ich, dass Firefox eine eigene Liste vertrauenswürdiger CA Root-Zertifikate mitbringt und nicht auf die OS X-Zertifikate abstellt.

Nach etwas herumpröbeln entschied ich mich, Remember The Milk in Chrome zu öffnen. Der Google-Browser, welcher auch auf WebKit aufsetzt, lud die Applikation ebenfalls nicht, gab aber wenigstens eine deutlich klarere Fehlermeldung von sich:

Google Chrome SSL Error
image-6045

… server presented a certificate that is not yet valid.

Hä? Irgendetwas war also definitiv mit dem Zertifikat nicht in Ordnung, welches von RTM eingesetzt wird. Ein Klick auf den durchgestrichenen https: zeigte mir Details zur Zertifikatskette an. Ich folgte der Kette bis zum Ursprung des Fehlers und sah folgende Fehlermeldung:

DigiCert High Assurance EV Root CA: This certificate has expired
image-6046

Das Zertifikat ist seit dem 26. Juli 2014 nicht mehr gültig? Wieso ich in all dieser Zeit keine Probleme mit dem Zugriff auf RTM hatte, ist mir schleierhaft — evtl. haben die Entwickler erst kürzlich auf dieses Zertifikat gewechselt.

Das war die gesuchte Information. Mittels einer Google-Suche stiess ich äusserst rasch auf einen Blog-Artikel von DigiCert, der genau dieses Problem beschrieb und eine einfache Lösung anbot:

Fix for an Expired Intermediate SSL Certificate Chain

In meiner OS X Keychain war wie in den Screenshots von DigiCert beschrieben ein (abgelaufenes) DigiCert High Assurance EV Root CA abgelegt, welches problemlos gelöscht werden konnte. Keychain schliessen, Safari schliessen und neu öffnen — und ich konnte mich wieder in Remember The Milk einloggen.

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Samstag, 3. Januar 2015

Markus Somm und die kalifornische Initiative gegen japanische Einwanderer

Auf Flugreisen erhalte ich immer viel, viel Zeit, um auf Instapaper hinterlegte Artikel zu lesen. Während dem Rückflug aus den Weihnachtsferien hatte ich so Gelegenheit, mir das Geschreibsel des nationalkonservativen Markus Somm mit dem Titel Die Schweiz im Ausnahmezustand zu Gemüte zu führen.

Dabei fiel mir unter anderem folgende Aussage auf:

Als Kalifornien nach schweizerischem Vorbild vor dem Ersten Weltkrieg die direkte Demokratie ­einführte, richtete sich eine der frühen Volks­initiativen gegen chinesische und japanische Immigranten. Man nahm die Initiative an.

Spannend! Da ich seit einigen Jahren über Stephanie einen persönlichen Bezug zu Kalifornien, asiatischen Einwanderern und ABCs habe, nahm mich diese Episode besonders wunder.

Obwohl Somm äusserst unscharf schreibt und so nicht wirklich nachvollziehbar ist, auf welche Initiative er genau verweist, gehe ich nach einigen Recherchen davon aus, dass er sich auf das California Alien Land Law of 1913 bezieht:

The California Alien Land Law of 1913 (also known as the Webb-Haney Act) prohibited “aliens ineligible for citizenship” from owning agricultural land or possessing long-term leases over it, but permitted leases lasting up to three years. It affected the Chinese, Indian, Japanese, and Korean immigrant farmers in California. Implicitly, the law was primarily directed at the Japanese. […] The law was meant to discourage immigration, primarily of Japanese immigrants, and to create an inhospitable climate for immigrants already living in California.

Quelle: California Alien Land Law of 1913

1920 wurde das Gesetz auf Grund des Resultats einer Volksinitative verschärft, weil es die japanische Einwanderung nicht stoppen konnte:

The 1920 Alien Land Law was passed in reaction to the intensification of anti-Japanese sentiment, and to the fact that the 1913 Alien Land Law was doing little to stem Japanese immigration to California.

Quelle: California Alien Land Law of 1913

Ich bin kein Verfassungsrechtler, aber ich glaube dass die Lex Koller das schweizerische Pendant zu diesem Gesetz ist — es aber nicht auf eine bestimmte Ausländergruppe abzielt. Der Gesetzgeber in Kalifornien hingegen formulierte den Gesetzestext aber so aus, dass europäische Einwanderer nicht von ihm betroffen waren:

The laws are widely held to have been discriminatory measures specifically targeting the Japanese, spurred by fears about the increasing number of Japanese immigrants settling in California. The choice to apply the laws only to those aliens ineligible for citizenship rather than to all aliens meant that European aliens would not be affected. Because of this, the bill was decidedly directed at Asians and specifically at the Japanese, who had become a strong presence in the agricultural labor market as well as in the control of farms. The Alien Land Laws were part of a larger trend of attempted discrimination against the Japanese through policy in California during the early 20th century.

Quelle: California Alien Land Law of 1913

Ein wichtiges Faktum, welches uns Somm — in typisch nationalkonservativem Thesenjournalismus — verschweigt:

The Alien Land Laws were invalidated in 1952 by the Supreme Court of California as a violation of the equal protection clause of the 14th Amendment to the United States Constitution […]

Quelle: California Alien Land Law of 1913

Tags: , , , , , , , , ,
Labels: Schweiz, USA

Keine Kommentare | neuen Kommentar verfassen

Samstag, 3. Januar 2015

USA, Drogen-/Alkoholmissbrauch und Sozialhilfe

In meinem Facebook-Feed finden sich dann und wann immer wieder Stimmen aus Amerika, welche obdachlose Personen nur dann Sozialhilfe ausrichten möchten, welche regelmässig Drogen- und Alkoholtests über sich ergehen lassen.

Eine solche Vorgabe mag für Mittelklassler Sinn machen, zäumt das Pferd aber vom Schwanz auf, wie ein Artikel aus dem Pacific Standard: The Science of Society zeigt:

Telling a homeless alcoholic he needs to clean up his life before he can enter housing is the functional equivalent of telling an obese person they have to lose weight before they can go to a gym.

Quelle: The Case for Allowing the Homeless to Drink

Diese obdachlosen Drunkenbolde benötigen primär einmal ein Dach über den Kopf — in den meisten Fällen stellt sich dann automatisch ein verbessertes Suchtverhalten ein.

Eine weitere amerikanisch-naive Herangehensweise an die Obdachlosenproblematik zeigt folgendes Video auf:

The Empowerment Plan: Creating Jobs and Jackets for Homeless in Detroit

Es ist zwar nett, den Obdachlosen eine Jacke auszuhändigen, die in einen Schlafsack umfunktioniert werden kann — aber Mensch, diese Leute brauchen keine Jacke, sie brauchen ein Dach über dem Kopf! Zum Glück scheint man dies in diesem Projekt dann doch noch einmal realisiert zu haben und stellt nun Obdachlose an, um Obdachlosen Jacken zu nähen.

Gut und nett, doch für mich bleibt nur noch eine Frage: Wer bezahlt die Löhne dieser Arbeiter? Müssen die Obdachlosen die Jacken zum Vollkostenpreis kaufen? Oder unterstützt der Staat das Projekt? Oder Stiftungen von Philantropen?

Nachtrag

Und noch ein Video, welches ich kürzlich entdeckt habe. Aber Achtung, man hüte sich vor voreiligen Schlüssen! How Does A Homeless Man Spend $100?

… was mich umgehend an eine Untersuchung erinnerte, welche zum Schluss kam, dass As Wealthy Give Smaller Share of Income to Charity, Middle Class Digs Deeper.

Tags: , , , ,
Labels: USA

Keine Kommentare | neuen Kommentar verfassen

Samstag, 3. Januar 2015

Karte des Huayu Resort & Spa, Yalong Bay, Sanya, Hainan, China

Ein Abstecher nach Taiwan über die Festtage 2014 bewog uns, eine Woche Strandferien auf der chinesischen Insel Hainan im südchinesischen Meer anzuhängen.

Wir entschieden uns nach längeren Recherchen auf Tripadvisor für das Huayu Resort & Spa in der Yalong Bay, 45 Autominuten vom Flughafen Sanya (SYX) entfernt.

Wir kamen im Zimmer 1338 unter, das heisst im Gebäude 1, Stockwerk 3 (englische Zählweise; d.h. für Schweizer im 2. Stock) im Zimmer 38. Unser Balkon zeigte auf den Überdachten Pavillon, welcher von der Lobby zum Sichuan Hot Pot-Restaurant führte.

Da sich im Internet nirgends ein anständiger, hochauflösender Plan des Resorts findet, erlaube ich mir, den Scan des Mäppchen unseres Schlüsselkartenhalters hochzuladen:

Huayu Resort Spa Yalong Bay Sanya Hainan Map
image-6032

Und hier noch der Scan des ganzen Schlüsselkartenhalters als PDF:

Huayu Resort Spa Key Card Sleeve

Tags: , , , , , , ,
Labels: Reisen

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 16. Dezember 2014

YCombinator Hacker News Evergreen-Artikel automatisiert zu Instapaper senden

Im November 2014 publizierte Ben Autrey auf Contextly eine Liste der am höchsten bewerteten Hacker News-Artikel aller Zeiten.

Da er in seinem Blog-Post nicht direkt auf die eigentlichen Artikel, sondern nur auf die Hacker News-Kommentarseite verwies, investierte ich gestern einige Zeit, um die eigentlichen Artikel automatisiert meinem Instapaper-Konto hinzuzufügen.

Das Ergebnis inklusive einer Textdatei mit allen Links auf die eigentlichen Artikel (urls-articles.txt) finden interessierte Zeitgenossen in meinem Github-Repository.

Tags: , , , , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 2014

Wenn man das SWISS-Osterei partout nicht im Adventskalender 2014 finden kann …

… ja dann hilft nur die gute, alte Web-Entwickler-Konsole:

Swiss Adventskalender 2014
image-6024

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 2014

Wieder einmal: Wie ich Video-Streams von News-Sendungen herunterlade

Mittels eines Cron-Scripts lade ich jede Stunde alle YouTube-Links in meinen Remember The Milk-Taskliste auf mein NAS, damit ich diese dann zu Hause mit Air Video auf meinen Apple TV (und somit 55″ Plasma) streamen kann.

Manchmal komme ich aber auch an News-Beiträgen von Fernsehanstalten vorbei, welche nicht auf YouTube angeboten werden und mit youtube-dl nicht heruntergeladen werden können.

Um dieser Videos trotzdem habhaft zu werden ist (leider) noch einiges an Handarbeit nötig. In der Regel streamen Fernsehanstalten solche Inhalte als f4f (“F4F is Adobe’s fragmented MP4 or FLV file format for HTTP Dynamic Streaming”).

Als Beispiel nehmen wir ABC’s David Muir Exclusive Backstage Interview With Apple CEO Tim Cook.

Nachdem man die Web-Site im Browser der Wahl geöffnet hat, startet man die Web Developer-Konsole, schaltet auf die Ansicht der HTTP-Requests und startet anschliessend das Video. Im Chaos der aufgerufenen Assets suchen wir das sogenannte f4m-Manifest — eine XML-Datei, die dem Videoplayer sagt, wo er die Fragmente des Video-Streams findet.

Obwowhl ich Firefox längst totgeschrieben habe — ich habe die Erfahrung gemacht, dass dieser Browser die Netzwerkrequests am intuitivsten aufbereitet, um am schnellsten zum Ziel zu kommen. Nicht zuletzt, weil es eine Spalte mit dem Typ des Requests gibt, die es äusserst einfach macht, nach dem Typ f4m Ausschau zu halten.

Hier die Datei für obiges Video vom September 2014:

/tmp/temp_textmate.DgGpNM:2: warning: variable $KCODE is no longer effective; ignored
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:akamai="uri:akamai.com/f4m/1.0">
  <akamai:version>2.0</akamai:version>
  <akamai:bw>5000</akamai:bw>
  <id>/abcnews/2014/09/140909_wn_muir7_1837_,500,700,900,1200,1600,2000,2500,.mp4.csmil_0</id>
  <streamType>recorded</streamType>
  <akamai:streamType>vod</akamai:streamType>
  <duration>200.968</duration>
  <streamBaseTime>0.000</streamBaseTime>
  <bootstrapInfo profile="named" id="bootstrap_0">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_1">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_2">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_3">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_4">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_5">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_6">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <media bitrate="495" url="0_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_0">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIAAAAAAAAAABmhlaWdodABAcgAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAeSO4tL3p2AAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBZ8IggAAAAAAACQ==</metadata>
  </media>
  <media bitrate="694" url="1_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_1">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAgs/By82odgAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBcKoP4AAAAAAACQ==</metadata>
  </media>
  <media bitrate="894" url="2_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_2">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAiQ24xGUM/gAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBdXMc8AAAAAAACQ==</metadata>
  </media>
  <media bitrate="1194" url="3_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_3">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAkTU4pmS0SwAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBfKCEIAAAAAAACQ==</metadata>
  </media>
  <media bitrate="1593" url="4_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_4">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAl3KVnpj2SgAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBgxjZEAAAAAAACQ==</metadata>
  </media>
  <media bitrate="1993" url="5_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_5">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQJAAAAAAAAAABmhlaWdodABAggAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAnbA4DHkwAgAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBh+GlUAAAAAAACQ==</metadata>
  </media>
  <media bitrate="2491" url="6_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_6">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQJQAAAAAAAAABmhlaWdodABAhoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAor16mqIiOAAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBjdrgaAAAAAAACQ==</metadata>
  </media>
</manifest>

Hat man die URL dieses Manifests ergattert (in diesem Fall ist es abcvod.abcnews.com/z/abcnews/2014/09/140909_wn_muir7_1837_,500,700,900,1200,1600,2000,2500,.mp4.csmil/manifest.f4m?g=SFHWHPOOGNQB&hdcore=3.5.0&plugin=aasp-3.5.0.151.81), verwendet man AdobeHDS.php, um die Stream-Fragmente automatisiert auf den lokalen Rechner herunterzuladen und danach zu einer MP4 oder FLV-Datei zusammenzuschustern:

$ php AdobeHDS.php --manifest "http://abcvod.abcnews.com/z/abcnews/2014/09/140909_wn_muir7_1837_,500,700,900,1200,1600,2000,2500,.mp4.csmil/manifest.f4m?g=SFHWHPOOGNQB&hdcore=3.5.0&plugin=aasp-3.5.0.151.81"

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen