Freitag, 16. Januar 2015

Wie die SNB am 15. Januar 2015 garantiert auch einige Spekulanten erlegt hat

Gestern, einige Stunden nach der Ankündigung der SNB, den Mindestkurs des Schweizer Frankens zum Euro aufzugeben, notierte ich auf Facebook Folgendes:

Irgendwo muss es heute morgen doch Devisenhändler von Grossbanken so RICHTIG gehudelt haben … wo ist der nächste Adoboli???

Gestern Abend schrieb dann Mike Zigmont folgendes:

There are entities that went bankrupt today. There are entities that scored mega profits today. Just watch the headlines for the next few weeks to see who’s who.

Quelle: Currency Shocks and Cuckoo Clocks – the Swiss Franc

Oder wie es Warren Buffet etwas bildlicher zu sagen pflegt:

After all, you only find out who is swimming naked when the tide goes out.

Quelle: Berkshire Hathaway Chairman’s Letter (2001)

Mindestens ein Unternehmen hat es bereits „gelüpft“, andere verzeichnen Millionenverluste:

Deutsche Bank, Barclays Lose Tens of Millions; FXCM Sees ‘Significant’ Losses

… Meanwhile, a major U.S. currency broker warned its equity was wiped out, a U.K. retail broker entered insolvency and a New Zealand foreign-exchange trading house collapsed.

Quelle: Fallout From Swiss Move Hits Banks, Brokers

Tags: , , , ,
Labels: Wirtschaft

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 13. Januar 2015

WordPress vor dem Ausreizen des RAM-Speicher bewahren

Seit einigen Wochen finden sich in meiner php.err täglich Einträge wie den folgenden:

...
[12-Jan-2015 14:19:24 UTC] PHP Fatal error:  Out of memory (allocated 9699328) (tried to allocate 78720 bytes) in /blog/wp-includes/script-loader.php on line 528
[12-Jan-2015 14:19:24 UTC] PHP Fatal error:  Out of memory (allocated 8126464) (tried to allocate 49152 bytes) in /blog/wp-includes/comment-template.php on line 2163
[12-Jan-2015 14:19:24 UTC] PHP Fatal error:  Out of memory (allocated 1572864) (tried to allocate 3072 bytes) in /blog/wp-includes/functions.php on line 3514
[12-Jan-2015 14:19:24 UTC] PHP Fatal error:  Out of memory (allocated 6291456) (tried to allocate 3072 bytes) in /blog/wp-includes/post.php on line 670
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 19660800) (tried to allocate 8 bytes) in /blog/wp-includes/pomo/mo.php on line 237
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 23592960) (tried to allocate 32 bytes) in /blog/wp-includes/pomo/mo.php on line 243
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 16252928) (tried to allocate 49152 bytes) in /blog/wp-content/plugins/stop-spammer-registrations-plugin/stop-spammer-registrations.php on line 163
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 22544384) (tried to allocate 32 bytes) in /blog/wp-includes/pomo/mo.php on line 237
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 18350080) (tried to allocate 1920 bytes) in /blog/wp-includes/default-widgets.php on line 914
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 22806528) (tried to allocate 94 bytes) in /blog/wp-includes/pomo/mo.php on line 250
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 22282240) (tried to allocate 32 bytes) in /blog/wp-includes/pomo/mo.php on line 243
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 20709376) (tried to allocate 12288 bytes) in /blog/wp-content/plugins/wptouch/themes/foundation/modules/sharing/sharing.php on line 126
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 20971520) (tried to allocate 12288 bytes) in /blog/wp-content/plugins/wptouch/themes/foundation/modules/social-links/social-links.php on line 54
[12-Jan-2015 19:59:36 UTC] PHP Fatal error:  Out of memory (allocated 21495808) (tried to allocate 12449 bytes) in /blog/wp-includes/pomo/streams.php on line 113
...

Egal, ob ein WordPress-Update, eine Aktualisierung eines Plugins oder Überbuchungen meines Hosting-Servers durch Cyon der Auslöser war — ich wollte mein Log vor solchen Einträgen bewahren.

Nachfolgend eine Anleitung, wie ich vorgegangen bin:

TPC! Memory Usage

Als erstes installierte ich das Plugin TPC! Memory Usage, welches die Speicherauslastung bei jedem Aufruf eines WordPress-Artikels aufzeichnet und im Administrations-Dashboard anzeigt.

Ca. 120 vom Plugin innerhalb weniger Minuten automatisch generierte und versendete E-Mails später hatte ich dann auch herausgefunden, dass ich in der Administrationsoberfläche im schwarzen, vertikalen Menubalken unter Memory Usage > Einstellungen > Notify if memory usage exceeds: den Schwellenwert von 32MB auf 64MB erhöhen musste, um von der Mailflut verschont zu werden.

Der Schwellenwert ist übrigens auch in der Datei tpcmem-core.php hardkodiert, falls jemand den Wert vor dem Upload der Dateien in die WordPress-Installation anpassen möchte:

...
add_option('tpc_memory_usage_email_high_usage', 32);
...

P3 (Plugin Performance Profiler)

Nachdem ich mit dem Plugin und den automatisch versendeten E-Mails die hohe Speicherauslastung durch meine WordPress-Installation bestätigt hatte, stiess ich mit einer Google-Suche auf folgenden Artikel:

How to monitor and reduce WordPress memory usage by plugins

Ich entschied mich, das in diesem Artikel erwähnte Plugin P3 (Plugin Performance Profiler) zu installieren und auszuführen. Beim ersten Durchlauf wurde ich wieder mit TPC!-Notifikations-E-Mails eingedeckt, die Speicherauslastung lag regelmässig über 80 MB.

Die erste Auswertung sah folgendermassen aus:

WordPress Plugin Profile Report
===========================================
Report date: Dienstag, 13. Januar 2015
Theme name: 
Pages browsed: 31
Avg. load time: 2.1364 sec
Number of plugins: 13
Plugin impact: 79.58% of load time
Avg. plugin time: 1.7001 sec
Avg. core time: 0.5284 sec
Avg. theme time: 0.0218 sec
Avg. mem usage: 86.89 MB
Avg. ticks: 88,114
Avg. db queries : 70.94
Margin of error : -0.1139 sec

Plugin list:
===========================================
P3 (Plugin Performance Profiler) - 0.0073 sec - 0.43%
Akismet - 0.0147 sec - 0.86%
Better WordPress Minify - 0.0540 sec - 3.18%
Google Sitemap Generator - 0.0035 sec - 0.21%
Jetpack von WordPress.com - 0.8103 sec - 47.67%
Limit Login Attempts - 0.0257 sec - 1.51%
Simple Lightbox - 0.4993 sec - 29.37%
Stop Spammer Registrations Plugin - 0.0092 sec - 0.54%
SubToMe - 0.0065 sec - 0.38%
Tpc Memory Usage - 0.0311 sec - 1.83%
WP Permalauts - 0.0327 sec - 1.92%
Wp Super Cache - 0.0138 sec - 0.81%
WPtouch Mobile Plugin - 0.1919 sec - 11.29%

Deaktivierung von Jetpack

Eine Google-Suche zeigte, dass ich offenbar nicht der einzige WordPress-Benutzer bin, dessen Jetpack-Plugin mehr als die Hälfte der Ladezeit eines Blog-Artikels ausmacht.

Deshalb entschied ich mich kurzerhand dazu, Jetpack zu deaktivieren. Der nächste Benchmark mit P3 lieferte folgende Zahlen:

WordPress Plugin Profile Report
===========================================
Report date: Dienstag, 13. Januar 2015
Theme name: 
Pages browsed: 17
Avg. load time: 1.2534 sec
Number of plugins: 12
Plugin impact: 60.86% of load time
Avg. plugin time: 0.7629 sec
Avg. core time: 0.4815 sec
Avg. theme time: 0.0994 sec
Avg. mem usage: 76.41 MB
Avg. ticks: 91,763
Avg. db queries : 56.94
Margin of error : -0.0904 sec

Plugin list:
===========================================
P3 (Plugin Performance Profiler) - 0.0014 sec - 0.19%
Akismet - 0.0098 sec - 1.28%
Better WordPress Minify - 0.0315 sec - 4.13%
Google Sitemap Generator - 0.0071 sec - 0.94%
Limit Login Attempts - 0.0108 sec - 1.42%
Simple Lightbox - 0.5075 sec - 66.53%
Stop Spammer Registrations Plugin - 0.0040 sec - 0.52%
SubToMe - 0.0146 sec - 1.92%
Tpc Memory Usage - 0.0284 sec - 3.72%
WP Permalauts - 0.0231 sec - 3.03%
Wp Super Cache - 0.0087 sec - 1.14%
WPtouch Mobile Plugin - 0.1159 sec - 15.20%

Deaktivierung von Simple Lightbox

Das Plugin Simple Lightbox dient dazu, verlinkte Bilder im Grossformat als Overlay über der aktuellen Seite anzuzeigen. Doch war die Funktionalität es wert, über eine halbe Sekunde auf das Plugin zu warten? Ganz klar: Nein.

Ich deaktivierte auch dieses Plugin und führte die Messungen ein drittes Mal durch:

WordPress Plugin Profile Report
===========================================
Report date: Dienstag, 13. Januar 2015
Theme name: 
Pages browsed: 17
Avg. load time: 0.8826 sec
Number of plugins: 11
Plugin impact: 39.13% of load time
Avg. plugin time: 0.3454 sec
Avg. core time: 0.4266 sec
Avg. theme time: 0.1072 sec
Avg. mem usage: 28.44 MB
Avg. ticks: 5,251
Avg. db queries : 55.35
Margin of error : 0.0034 sec

Plugin list:
===========================================
P3 (Plugin Performance Profiler) - 0.0082 sec - 2.36%
Akismet - 0.0118 sec - 3.42%
Better WordPress Minify - 0.0467 sec - 13.53%
Google Sitemap Generator - 0.0064 sec - 1.87%
Limit Login Attempts - 0.0258 sec - 7.46%
Stop Spammer Registrations Plugin - 0.0064 sec - 1.86%
SubToMe - 0.0215 sec - 6.24%
Tpc Memory Usage - 0.0347 sec - 10.05%
WP Permalauts - 0.0271 sec - 7.84%
Wp Super Cache - 0.0110 sec - 3.19%
WPtouch Mobile Plugin - 0.1457 sec - 42.20%

Bravo! Die Zeiten für das Laden der Plugins lag nun durchgehend im Hundertstel-Sekundenbereich, im Fall von WPTouch Mobile im Zehntelssekundenbereich.

Positiver Nebeneffekt: Auch die RAM-Auslastung brach markant ein:

Ursprungszustand 86.89 MB
Ohne Jetpack 70.94 MB
Ohne Jetpack, ohne Simple Lighbox 28.44 MB

Um die doch wirklich nützliche Lightbox-Funktionalität nicht zu verlieren, installierte ich stattdessen folgendes Plugin:

CSS3 Lightbox

Es handelt sich um eine rein CSS-basierte Lösung; der Einfluss auf die PHP-Renderzeiten von WordPress-Seiten ist vernachlässigbar.

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

Keine Kommentare | neuen Kommentar verfassen

Montag, 12. Januar 2015

IPP-Druckserver debuggen

Kürzlich musste ich zu Hause einen IPP-Druckserver (natürlich Apples CUPS) debuggen. Dabei entdeckte ich folgenden Befehl, um von einem Client-System zu prüfen, ob und wie der IPP-Druckserver auf Anfragen reagiert.

Dank der Fehlermeldung des CUPS-Servers als Antwort auf nachfolgenden Befehl …

$ ipptool -v -4 http://10.10.10.10:631/Laserdrucker get-printer-attributes.test
The printer or class does not exist.
       EXPECTED: STATUS successful-ok (got client-error-not-found)
       status-message="The printer or class does not exist."
       EXPECTED: charset-configured
       EXPECTED: charset-supported
       EXPECTED: compression-supported
       EXPECTED: document-format-default
       EXPECTED: document-format-supported
       EXPECTED: generated-natural-language-supported
       EXPECTED: ipp-versions-supported
       EXPECTED: natural-language-configured
       EXPECTED: operations-supported
       EXPECTED: pdl-override-supported
       EXPECTED: printer-is-accepting-jobs
       EXPECTED: printer-name
       EXPECTED: printer-state
       EXPECTED: printer-state-reasons
       EXPECTED: printer-up-time
       EXPECTED: printer-uri-supported
       EXPECTED: queued-job-count
       EXPECTED: uri-authentication-supported
       EXPECTED: uri-security-supported

… realisierte ich, dass ich meinen Laserdrucker über die URL http://10.10.10.10:631/printers/Laserdrucker ansprechen muss.

Auf dem Druckserver selber zeigt man sich den Status des Druckers mit folgendem Befehl an:

$ lpstat -p
printer Laserdrucker is idle. enabled since Wed 10 Dec 2014 06:56:43 PM CET

Tags: , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 12. Januar 2015

Für den Mindestlohn

Das Schweizer Stimmvolk hat sich 2014 klar gegen einen Mindestlohn geäussert. In den USA ist das Thema aber mehr denn je präsent – dem Autor des verlinkten Artikels kann ich auf Grund der doch etwas prekäreren Umständen in den USA zu folgender Aussage beipflichten:

Today’s corporations don’t have to cut back jobs when wages rise. They have to cut back profits, which are at an all-time high.

Quelle: The Minimum Wage Shows Why (and How) We Should Vote Today

Aber wahrscheinlich widerspricht das der gängigen Kapitalismuslehre sowie dem Mantra „Greed is good“.

Tags:
Labels: USA

Keine Kommentare | neuen Kommentar verfassen

Samstag, 10. Januar 2015

Safari benötigt 30 Sekunden zum Starten (ungelöst)

Seit einigen Wochen plagt mein Mac OS X 10.9 Mavericks auf einem Mac mini (Late 2012) ein merkwürdiges Problem: Beim Programmstart von Safari springt das Dock-Icon während genau 30 Sekunden auf und ab, bevor das Browser-Fenster erscheint. Ein Logout und ein Login in mein Benutzerkonto beheben das Problem nicht.

Leider habe ich bis jetzt keine Lösung für das Problem gefunden, weshalb ich hier erst einmal dokumentiere, was ich diesbezüglich herausgefunden habe.

Das Apple-Tool fs_usage ist mein Freund. Hier ein Beispiel-Auszug der Dateizugriffe des Safari-Prozesses:

# fs_usage
...
12:37:38.681696  open              F=13       (RW____)  /dev/dtracehelper                                                                                                                                    0.000026   Safari.6649750
12:37:38.681703  ioctl             F=13                                                                                                                                                      0.000006   Safari.6649750
12:37:38.681708  close             F=13                                                                                                                                                                      0.000005   Safari.6649750
12:37:38.681816  stat64                                 /System/Library/StagedFrameworks/Safari/WebInspectorUI.framework/Versions/A/WebInspectorUI                                                           0.000011   Safari.6649750
12:37:38.681836  open              F=13       (R_____)  /System/Library/StagedFrameworks/Safari/WebInspectorUI.framework/Versions/A/WebInspectorUI                                                           0.000018   Safari.6649750
12:37:38.681840  pread             F=13   B=0x1000     O=0x00000000                                                                                                                                          0.000004   Safari.6649750
12:37:38.681842  pread             F=13   B=0x1000     O=0x00004000                                                                                                                                          0.000002   Safari.6649750
12:37:38.681846  fcntl             F=13                                                                                                                                                              0.000002   Safari.6649750
12:37:38.681887  close             F=13                                                                                                                                                                      0.000003   Safari.6649750
12:37:38.684252  socket            F=13                                                                                                                                           0.000007   Safari.6649750
12:37:38.684284  connect           F=13     private/var/run/usbmuxd                                                                                                                                          0.000020   Safari.6649750
12:37:38.684288  ioctl             F=13                                                                                                                                                      0.000002   Safari.6649750
12:37:38.684365  close             F=14                                                                                                                                                                      0.000004   Safari.6649750
12:37:38.684375  sendto            F=13   B=0x10                                                                                                                                                             0.000008   Safari.6649750
12:37:38.684380  sendto            F=13   B=0x1f2                                                                                                                                                            0.000004   Safari.6649750
12:38:08.684465  close             F=14                                                                                                                                                                      0.000018   Safari.6649750
12:38:08.684588  close             F=13                                                                                                                                                                      0.000107   Safari.6649750
12:38:08.688500  stat64                 [  2]           /Library/Managed Preferences>>>>>>>>>>>>>>>>>>>>>>>>>>>>                                                                                             0.000005   Safari.6649750
12:38:08.688805  open              F=13       (R_____)  /Library/Preferences/com.apple.security.plist                                                                                                        0.000010   Safari.6649750
12:38:08.688811  close             F=13                                                                                                                                                                      0.000002   Safari.6649750
12:38:08.689103  stat64                                 /Users/mario/Library/Preferences/com.apple.security.plist                                                                                            0.000043   Safari.6649750
12:38:08.689108  stat64                 [  2]           /Library/Preferences/com.apple.security-common.plist                                                                                                 0.000003   Safari.6649750
12:38:08.689201  getattrlist                            /Users                                                                                                                                               0.000009   Safari.6649750

Zwischen 12:37:38 und 12:38:08 dreht der Prozess Däumchen. Hinweis gibt die folgende Zeile:

12:37:38.684284  connect           F=13     private/var/run/usbmuxd                                                                                                                                          0.000020   Safari.6649750

Safari scheint 30 Sekunden auf den connect zu private/var/run/usbmuxd zu warten.

In Console.app erscheint zudem genau nach 30 Sekunden folgende Meldung:

...
10.01.15 20:35:58.844 Safari[72526]: _SubscribeForMuxNotifications (thread 0x7fff74373310): USBMuxListenerCreate: Operation timed out
...

usbmuxd ist der Daemon, mit welchem iTunes resp. Mac OS X mit iPhones „spricht“ — wenn ich die Erklärungen verstehe so etwas wie TCP-over-USB: Usbmux — The iPhone Wiki.

Tags: , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

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

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

… 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

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