Und das Wetter war wie?

Ich achte auf angemessene Alliterationen am Anfang eines etwas eingeschränkt-exzellenten Eintrages.

Aber sprechen wir doch übers Wetter.
Am Tag meiner Ankunft war ich nach dem Zurücklegen einer Distanz von knapp 200 Metern bis auf die Knochen durchnässt. Wegen des Regens. Am zweiten Tag war ich ebenso schnell durchnässt. Diesmal jedoch bei wolkenlosem Himmel und schönstem Sonnenschein. Seither war insbesondere die dritte Woche noch einmal regnerisch, die anderen Tage waren geprägt von einer eigentlich angenehm warmen Temperatur, aber hoher Luftfeuchtigkeit, die einem den Schweiss aus den Poren trieb. Grund für die hohe Luftfeuchtigkeit sind sicher die vielen Teiche, Seen, Bäche und Flüsse, die die Landschaft in und um Moskau prägen. Möglicherweise tragen auch die Traktoren, die periodisch die Strassen mit Wasser kühlen, dazu bei. Ein Tag, an dem nicht irgendwo Wolken am Himmel zu sehen sind, gab es nicht. Hingegen war auch bei grössten Sturzfluten irgendwo ein blauer Fleck am Himmel zu sehen.

Die regnerischen Zeiten sind jeweils mit Gewittern verbunden gewesen. Und wenn es mal loslegt, dann richtig. Meinen Informationen zufolge sind zum Beispiel am Sonntag, dem 3. Juli, 3 Menschen in Moskau aufgrund von Blitzeinschlägen gestorben, sowie weitere verletzt. Bei allen wurde die Nutzung eines elektronischen Gerätes zum Verhängnis. Aber was ich damit sagen möchte, ist ja eigentlich, dass das Wetter hier Formen angenommen hat, die ich mir so von der Schweiz nicht gewohnt bin. Dies hängt auch mit der geografischen Lage zusammen: weit und breit keine Berge, die den Wind oder die Wolken in irgendeiner Weise beeinflussen könnten. Kommt der Wind von Norden, wird es kalt, kommt er vom Süden warm.

James Bond’s Salad Dressing

Mix five parts of red-wine vinegar with one part extra-virgin olive oil. The vinegar overload is essential. Add a half clove of garlic, half a teaspoon of Dijon mustard, a good grind of black pepper and a teaspoon of white granulated sugar. Mix well, remove the garlic and dress the salad.

Source: William Boyd, Solo, Jonathan Cape, London 2013, p. 269

???

Über Sprache sprechen

Die Motivation für einen Sprachaufenthalt? Sprache lernen, klar. In meinem Fall Russisch. Eine spannende Sprache: Einflüsse von Wikingern, Mongolen, Griechen und vielen mehr entwickelten sich zu einer eigenen, komplexen Sprache, die sich insbesondere durch eine viel zu grosse Anzahl an Wörtern auszeichnet. Eine weitere Eigenart ist die kyrillischen Schrift, die aus einer Hand- und einer Blockschrift besteht, die beide grosse Ähnlichkeiten zur lateinischen Schrift vorweisen. Allerdings nur optisch: der kyrillische Buchstaben für den Laut des lateinischen d sieht in der Handschrift aus wie jenes vom g, das r wie ein p, das t wie ein m. Und das ist nur eine Auswahl der kleineren Schwierigkeiten.

Die Frage, wie viel ich schon verstehe, und ob ich grosse Fortschritte mache, wird oft gestellt. Ich fühle mich nicht kompetent, eine vernünftige Antwort zu geben. Im geschlossenen Umfeld der Russischlektionen wird das Gesprächsthema auf mein Kenntnisstand abgestimmt. Die verwendeten Wörter und Formen kenne ich, beziehungsweise: sollte ich kennen. Die Geschwindigkeit ist ebenso auf mein Tempo abgestimmt und ist nicht vergleichbar mit der eines realen Gespräches. Und alles Neue wird erklärt. Insgesamt geht es dort hervorragend vorwärts, Neues gibt es portionsweise und mein Verständnis für die Unterrichtssprache steigt stetig.

Auf der Strasse aber. Oder im Restaurant, im Supermarkt: sobald ich angesprochen werde, stehe ich zuerst verdutzt zwei Sekunden stumm da, wie ein Reh vor dem heranrasenden Auto. Dann die ungelenke Bitte um die Wiederholung des Gesagten. Meist ist es die Geschwindigkeit, die mich daran hindert, den ganzen Satz zu erfassen. In den meisten Fällen gelang es mir anschliessend, ein oder zwei Stichwort herausfiltern, mit denen ich durch eine Wiederholung ein wenig Zeit gewinnen konnte. Bisher haben diese Konfrontationen in Restaurant und Supermarkt zwei nennenswerte Ausgänge: entweder ich krieg am Schluss durch die Wiederholung eines Stichwortes sowie einem zufälligen “Ja”, “Nein” oder “Entschuldigung” was ich will. Oder ich krieg was anderes. Beide Fälle haben jedoch das eine gemeinsam: was genau der Gesprächsinhalt war, fällt mir erst eine halbe Stunde später ein. Und von grossem Fortschritt kann man da bisher definitiv nicht sprechen.

Kleine Nebenbemerkung: in dieser Situation bekommt die Challenge “Fast Food Bestellung ohne Rückfrage” einen ganz neuen Wert.
Weitere kleine Nebenbemerkung: gewisse Situationen oder Sachbezüge könnten ein wenig überspitzt oder verändert dargestellt sein, als sie tatsächlich vorgekommen sind. Sprache ist schliesslich auch zum Spielen da.

Über Verkehr

Der Begriff “Verkehr” ist glücklicherweise weitläufig. Die erste Begegnung mit dem Verkehr machte ich also am Flughafen. Mit einer Verspätung von etwas mehr als 30 Minuten landete mein Flugzeug angenehm sanft am Moskauer Flughafen. Anstatt am 10 Meter nebenan liegenden Terminalschlauch anzudocken, mussten alle Passagiere das Flugzeug durch die Hecktüren verlassen. Zwei Transportbusse standen in zwei verschiedene Richtungen gewandt bereit, um uns Passagiere zur Passkontrolle sowie zu den Anschlussflügen zu bringen. Weshalb die beiden Busse in andere Richtungen standen, und welchen man besteigen sollte, ist mir bis jetzt unklar. Der von mir gewählte Bus führte mich jedenfalls nach einem Umweg, der in einem weitläufigen Kreis herumführte, zur Passkontrolle, wie es sich gehört.

Nach der Passkontrolle wartete meine Ansprechspartnerin für die Organisation in Moskau auf mich. Sie führte mich zu ihrem Auto, mit dem wir eine Stunde um halb Moskau zu meinem Studentenwohnheim fuhren. Die meiste Zeit verbrachten wir auf den grossen, fünf- bis sechsspurigen Autostrassen, die Moskau wie ein Gürtel umschliessen. Auf diesen Strassen schienen mir Verkehrsregeln unnötig, so viel freien Platz fand sich da. Und scheinbar war ich nicht alleine mit dieser Meinung: die meisten Autofahrer schienen zu fahren, wie es ihnen beliebte. Und die Motorradfahrer erst: Mit oder ohne Passagier, ihre Geschwindigkeit schien rekordverdächtig, ihre Kurven enger als beim Skislalom. Aber es war ja Platz genug da.

Nun kam ich heil in meinem neuen, temporären Daheim an. In der Nacht erfuhr ich eine nächste Begegnung mit dem Verkehr. Oder, besser gesagt, mit seinen Geräuschen. Leider steht das Studentenheim an einer weiteren, vierspurigen Autostrasse. Und aufgrund der Temperaturen ist es einfach nicht möglich, mit geschlossenen Fenstern den Schlaf zu suchen.

Den nächsten Tag verbrachte ich hauptsächlich damit, in der Umgebung herumzuwandern, auf der Suche nach einer Metrostation. Einer sicheren Quelle zufolge gibt es nur in den Metrostationen eine PrePaid-Fahrkarte für die öffentlichen Verkehrsmittel. Meinen Reiseführer hatte ich genauso wenig dabei wie eine Strassenkarte auf dem Mobiltelefon. Nach einer Weile folgte ich dem gloriosen Einfall, mal einen Blick zu werfen auf die Karten an den etlichen Busstationen, an denen ich doppelt und dreifach vorbei gelaufen bin. Obschon mich diese Idee wegen schlechten Kartenlesekenntnissen zuerst in die falsche Richtung führte, schaffte ich es doch, die Metrostation zu finden. Diese bot mir die bisher schwerste Aufgabe: die korrekte Fahrkarte zu kaufen. Ob die Aktion erfolgreich war, ist zu bezweifeln.

Die Zeit als Fussgänger brachte mir jedoch noch eine weitere Erkenntnis: dank den breiten Strassen kann man an einer beliebigen Stelle beim Überqueren anhalten, und die Autos können einen umfahren 😉
Theoretsch jedenfalls. Praktisch ist es dank genügend vielen Fussgängerstreifen gar nicht nötig. Die Ampeln an den Fussgängerstreifen bieten ein aus meiner Sicht sehr praktisches Feature: Sie zeigen die Sekunden, die es noch dauert, bis die Ampel wieder rot bzw. grün wird. So kann man kompetent entscheiden, ob man den Sprung noch wagen kann oder nicht. Das grüne Licht besteht aus einem animierten grünen Männchen, das schneller läuft, sobald die Zeit knapp wird. Und gerade in diesen modernen Zeiten hat die angezeigte Zeit die Verantwortung, dem auf sein Handy schauenden Fussgänger mitzuteilen, wie lange er sich noch auf das Wesentliche, sein Smartphone, konzentrieren kann.

Google und Neujahrsvorsätze

Wer im Web sucht, verrät etwas über sich – zumindest wenn er sich nicht dagegen schützt. So zeichnen Google, Bing und Co. jede Suchanfrage auf, zusammen mit Datum, Ort und welche Daten auch immer sie noch kriegen können. Zu unserem Glück bieten sie immer wieder einen Einblick in ihre Daten und zeigen Trends und Highlights, so zum Beispiel auf google.com/trends.

Diese Daten können wichtige Erkenntnisse liefern oder einfach faszinieren. Und sie repräsentieren die Gedanken und Sorgen unserer Gesellschaft. So lässt sich zum Beispiel feststellen, dass kurz vor dem Verkaufsstart von neuen iPhones die Suchanfragen nach “iPhone langsam” exponentiell in die Höhe schnellen.

Jetzt, kurz nach Silvester, jetzt, am Anfang des neuen Jahrs, lässt sich eine ebenso rasch ansteigende Nachfrage nach “Fitness”, “abnehmen” oder “Diät” feststellen. Diese wird auch dieses Jahr – wie alle Jahre zuvor, achten Sie mal auf die Kurve – schnell wieder zurückgehen. Im Frühling wenn das Volk wieder von einer Bikinifigur träumt gehen die Suchanfragen wieder ein wenig rauf, nehmen aber auch diesmal wieder ab – bis zu den Neujahrsvorsätzen!

Welche regelmässigen Kurven finden Sie? Schreiben Sie Ihre Beobachtungen in die Kommentare!

plymouthd: ply-terminal.c:611: ply_terminal_open: Assertion ‘terminal != ((void *)0)’ failed

plymouthd: ply-terminal.c:611: ply_terminal_open: Assertion 'terminal != ((void *)0)' failed

An error message that practically stops the Cubietruck. Fooling around on the keyboard does not help anymore. But there is another solution: Ctrl + Alt + F1

The only problem is that the Lubuntu user interface could not be started. With the magic keyboard command you get to the original Ubuntu command line. From here you can now search for possible causes and fix them.

In my case, an incomplete installation of Java prevented starting the UI. I was able to complete the installation with sudo apt-get -f install after I created a little more space on the hard disk. Then you can either start the user interface by command, or restart the computer with sudo reboot , so that the user interface is activated as usual at startup.

Lesemodus – Rückentwicklung des Webs?

Immer mehr Geräte mit Internetzugang bieten im Browser die Möglichkeit, die Website ohne Style bloss als Text mit den Bildern anzuzeigen. Je nach Browser heisst diese Funktion zum Beispiel “Reader View” bzw. “Lesemodus”. Das meiner Meinung erstaunliche daran ist, dass das meiner Beobachtungen zufolge quasi ein Rückschritt auf dem Weg der Webentwicklung bedeutet. Im Lesemodus werden die Seiten, wie ganz zu Beginn des Internets, nur mit den elementarsten HTML Tags dargestellt: Nur die verschiedenen Headings, Links und Paragraphen werden angewandt. Dieser Modus macht das Lesen vielfach tatsächlich einfacher und bietet somit viel Potential. Dennoch sehe ich noch einige Schwachstellen. Einerseits werden die Webseiten dennoch ganz geladen und verbrauchen somit ebenso viel Internetleistung. Andererseits entspricht der Style des Lesemodus aus unerfindlichen Gründen nicht dem Standardstyle des Browsers – wenn also ein Developer denkt er könne es sich einfach machen und den Style einfach weg lassen, weil seine Seite einfach nur gelesen werden muss, hat sich leider getäuscht. Das Standardlayout ist noch immer voll 90er Jahre und dass der Nutzer deshalb die Reader View einschaltet ist nicht zu erwarten. Stattdessen sucht er eine andere Website auf, die ihm besser gefällt…

Haben Sie diesen Artikel im Lesemodus angeschaut? Ist Ihnen meine Meinung zu weit hergeholt? Schreiben Sie Ihre Antwort in die Kommentare!

Angular & Onsen.io

Nahezu drei Tage brachte ich es einfach nicht hin, dass meine Angular Applikation mit onsen.io macht, was sie sollte. ng-repeat waren im DOM-Baum auskommentiert, ng-click reagierten nicht.
Nun endlich ist mir das Problem aufgefallen und bewusst geworden. Die ng-controller dürfen nicht auf einem angewendet werden, sondern dürfen frühestens bei der als Attribut gesetzt werden. Ich hoffe ich kann mit dieser Beobachtung anderen solch schweres Kopfzerbrechen verhindern.

spaceMaster – mein erstes Game für iOs & Android

Das Spiel, das von mir ursprünglich als Projekt im EF Informatik entwickelt wurde, ist jetzt für Android und iOs verfügbar.

Im Spiel geht es darum, dass Sie mit Ihrer Rakete durch das All fliegen und die Goldmünzen einsammeln, die Sie auf Ihrem Weg finden. Doch Vorsicht: Das All ist voll mit gefährlichen Meteoriten und feindlichen Ufos, die Ihre Münzen klauen und Sie vernichten wollen! Weichen Sie ihnen aus, um den Highscore zu knacken.

Das Spiel ist sehr einfach aufgebaut und erinnert, hauptsächlich aufgrund der Schwierigkeitsstufe, ein wenig an Flappy Bird. Auch wenn hohe Highscores auf den ersten paar Versuchen unmöglich scheinen, ist das Spiel für die eine oder andere Gelegenheit sehr zu empfehlen! Ausgetauscht werden die Highscores auf iOs mit dem GameCenter und auf Android mit Swarm.

Leider ist das Anbieten von Apps im iTunes Store nicht kostenlos, so dass ich das Spiel auch nicht gratis anbieten kann. Der Preis von CHF 1.- ist jedoch vergleichsweise sehr tief, so dass diese Kosten Sie hoffentlich nicht daran hindern, die App herunterzuladen.

Wie viele Punkte haben Sie erreicht? Schreiben Sie die Antwort in die Kommentare!

Weitere Infos zum Spiel: http://bernhard-webstudio.ch/spacemaster

Cortana vs. Siri #2: Desktop

Seit Siri das erste Mal vorgestellt wurde, sind schon einige Jahre ins Land gezogen. Mit ihnen kamen viele Gerüchte – wird Siri auch auf OS X verfügbar sein? Und nach all diesen Jahren ist die ernüchternde Antwort noch immer: “vermutlich eines Tages, aber bisher ist noch nichts definitiv!”
Bei Cortana sieht das anders aus. Schon eine der ersten Technical Preview von Windows 10 kam mit Cortana ausgeliefert. Der Funktionsumfang entspricht dem von Windows Phone, logischerweise, da Microsoft ja für alle Geräte das selbe OS ausliefern möchte. Und wer Cortana sowohl auf dem Smartphone wie auch auf dem Desktoprechner mit dem selben Microsoft-Konto nutzt, dem werden die Daten über die Cloud selbstverständlich von einem Gerät zum anderen synchronisiert.
Ob das jetzt von Vorteil ist, wenn die gleiche Sprachsteuerung vom Handy auch auf dem Desktopcomputer verfügbar ist, sei dahingestellt. Es ist aber ein Punkt mehr, der an Cortana geht. Doch das Spiel ist noch nicht aus.

Geistesblitz: gesamter localStorage auslesen

Für eine HTML5 Applikation hatte ich die Idee, einige Elemente im localStorage anstatt zu löschen bloss umzubenennen. Da dies mehrfach geschiehen würde, musste die Umbenennung eindeutig erfolgen, damit die anderen Elemente nicht überschrieben werden. Und was eignet sich für die eindeutige Identifikation besser als die aktuelle Uhrzeit mit Datum, Millisekunden und allem?

Nun gut; die Idee mag zwar gut klingen, aber wie kriegt man das Element eines Tages wieder aus dem Speicher raus? Wie kann ich ein Element mit nahezu zufälligem Schlüssel aufrufen?

Ja, lieber Leser, genau diese Frage habe ich mir gestellt. Bestimmt haben Sie schon nach dem Titel gedacht “Pah, das weiss ich…”. Und damit haben Sie natürlich Recht, doch da nach einer kurzen Internetrecherche meinerseits keine Lösungen auffindbar waren, möchte ich hier zwei vorstellen.

Die eine Lösung ist wohl die elegantere: jedes mal wenn man ein neues “Zufallselement” in den Storage schreibt, den entsprechenden Schlüssel in ein Array schreiben, das ebenfalls in den localStorage geschrieben wird.

Die andere Lösung ist jene, die zum Titel “Geistesblitz” geführt hat. Obwohl die Idee sehr naheliegend ist und ich früher hätte auf die Idee kommen sollen, ist sie mir halt eben als Geistesblitz gekommen. Der entscheidende Gedanke ist dieser: localStorage ist ein Objekt wie jedes andere. Also kann man es mit einer einfachen for-Schlaufe durchlaufen. Das geht zum Beispiel so, wenn alle Elemente untereinander aufgelistet werden sollen:

function listItems () {
	var string = "";
	for (var key in localStorage) {
		string += key + ": " + localStorage.getItem(key);
		string += "<br />";
	}
	document.getElementById("target").innerHTML = string;
}

JavaScript: Windows Phone Hardware Backbutton abfangen

Bei der Programmierung einer Windows Phone Applikation mit JavaScript kann der “zurück”-Button unten links am Smartphone natürlich auch abgefangen werden, um eine alternative Tätigkeit als zum Beispiel das Beenden der Applikation herbeizuführen. Im folgenden möchte ich die Vorgehensweise erklären.

In der entscheidenden HTML-Seite muss ein WinJS Application Control Element mit den Parameter onbackclick : meineFunktion erstellt werden, wobei meineFunktion der Funktion entspricht, die aufgerufen wird, wenn der Backbutton angeklickt wird. Dies sollte ungefähr folgendermassen aussehen:

<div data-win-control="WinJS.Application." data-win-options="{onbackclick : meineFunktion}" />

Anschliessed kann der EventHandler “backclick” verwendet werden. Zum Beispiel so:

document.addEventListener("backclick", meineFunktion);

Um jedoch das Standardverhalten, das Beenden der Applikation, zu unterdrücken, muss true zurückgegeben werden. Eine empfehlenswerte Verwendung ist folgende, in der Datei default.js:

<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span><code class="language-javascript">app.onbackclick = function (evt) {
   meineFunktion();
   return true;
}

CSS: Windows Phone Akzentfarbe

Mit Windows (Phone) 8 gab Microsoft den Entwicklern die Möglichkeit, ihre Apps für Windows & Windows Phone mit HTML, CSS und JavaScript zu entwickeln. So ist es besonders für Webentwickler wie mich verlockend, die Web App auf jene Geräte zu portieren.

Gerade Windows Phone brilliert mit einer grossen Personalisierbarkeit; neben der Flexibilität des Sperrbildschirms, dem Hintergrundbild das den Startbildschirm vervollständigt ist auch die Akzentfarbe ein oft genanntes Argument, weshalb Windows Phone besser personalisierbar ist.

Doch wie ist es nun möglich, wenn man die App mit HTML und CSS entwickelt, auf die Akzentfarbe zuzugreifen? Die Antwort ist simpel, wenn man sie einmal gefunden hat: über die Farbe mit dem Namen Highlight. Die passende Textfarbe kann man, sehr naheliegend, mit HighlightText anwenden.