Umlaute auf US-Tastatur unter Windows 7

Ich finde die US-Variante der englischen Tastatur-Belegung für Programmierer sehr praktisch. So findet man sämtliche Klammern (runde, geschweifte, eckige und spitze Klammern) immer direkt oder höchstens per Shift-Taste „versteckt“.  Im deutschen Tastatur-Layout sieht dies leider anders aus. Da benötigt man entweder die AltGr-Taste oder aber auf dem Mac die Alt-Taste. Beim Mac sind die Klammern noch nicht mal entsprechend beschriftet.

Doch der große Nachteil sind die Umlaute. Auf dem Mac sind die Umlaute und das ß immerhin via Alt-u und dem jeweiligen Vokal bzw. Alt-s zu erreichen. Unter Windows sieht dies anders aus. Hier kann man entweder mit Deadkeys der US-Intl. Variante arbeiten. Das ist allerdings unschön, wenn man einfach nur eine normales Anführungszeichen schreiben will. Dazu muss man dann immer noch die Leertaste hinterher schieben.

Dafür habe ich nun eine Lösung gefunden: den Microsoft Keyboard Layout Creator. Mit diesem Tool von Microsoft kann man sich sein eigenes Tastaturlayout erstellen. Ich habe mir dazu als Vorlage das US-Layout genommen und dann auf AltGr-Vokal die jeweiligen Umlaute gelegt. Für die Großbuchstaben ist jeweils noch die Shift-Taste nötig. Die Ausgabe dieses Tools ist dann eine setup-Datei samt verschiedener dll-Dateien. Nach der Installation steht in Windows das neue Tastaturlayout zur Verfügung.

Warmer Nacht-Wind

Da ich nun ja die Daten meiner Wetterstation PCE FWS 20 auslese, konnte ich für heute Nacht einen seltsamen Effekt feststellen:

Betrachtet man die Kurven für Temperatur, Windstärke und -richtung, so sieht man in der Zeit von 3:30 Uhr bis 5:30 Uhr ein plötzliches Ansteigen der Temperatur, einen Anstieg in der Windstärke und einen Wechsel der Windrichtung von West auf Nord-Ost.

Wetterdaten 29. April 2012

Interessanterweise ist dieser Effekt auf Stationen in der Umgebung nicht festzustellen:
In Karben:

Station in Karben

Oder in Maintal:

Station in Maintal

Es scheint sich also entweder um eine kurzfristige Fehlmessung meiner Station zu handeln oder aber um einen sehr lokal begrenzten Effekt.

P.S.: An diesem zerschossenen Layout ist mal wieder dieser Dre***-Sch***-TinyMCE-ich-mache-aus-dem-eingegebenen-HTML-Code-das-was-ich-meine-Editor schuld. 🙁

Gran Turismo 5: Spezial Lizenz in Gold

Eigentlich wollte ich mir ja den Formula Gran Turismo beim Gebrauchtwagenhändler von Gran Turismo 5 erspielen. Dazu wollte ich den Trick anwenden, dass man einfach durch fünf Lizenzprüfungen klickt — also nicht fährt sondern immer gleich zur nächsten hüpft. Dadurch wird das Angebot des Gebrauchtwagenhändlers einmal ausgetauscht.

Doch leider war dies ein Satz mit x. Den Formula Gran Turismo habe ich so nicht erhalten. Ich habe ihn mir nun online gekauft.

Aber ich bin so dazu gekommen, die eine oder andere Prüfung der Spezial Lizenz zu fahren. Und auf einmal war das Ziel klar:

Das muss man doch alles in Gold schaffen können!!

Ziel ist es jeweils, das Rennen zu gewinnen. Dabei darf man nicht von der Strecke kommen oder zu hart gegen die Bande fahren. Auch Feindberührungen sollten möglichst sanft sein.

In der Tat habe ich dieses Ziel nun geschafft:

 

 

 

 

 

Als schwierigster Brocken erwies sich dabei die vierte Prüfung: Tokyo, Route 246. Es war mir sogar schon mal gelungen, in der letzten Doppel-Rechts-Kurve die Führung zu übernehmen. Es kam also nur noch die Zielgerade mit ihrer leichten rechts-links S-Kurve. Dabei bin ich dann gegen die Wand gefahren und wurde disqualifiziert.

Zu guter letzt habe ich aber auch diese Prüfung geschafft:

 

Mit dem Currents Producer zur eigenen Datenquelle für Google Currents

Nachdem ich mich zunächst ein wenig mit Google Currents als Anwender befasst habe, steht nun natürlich auch an, herauszufinden, wie man für Currents Inhalte bereitstellt.

Google bietet hierfür den Currents Producer an. Es handelt sich dabei um eine Webanwendung, die nur im Chrome läuft und natürlich einen Google Account voraussetzt.

Mit ihm hat man die Möglichkeit, Inhalte, die zum Beispiel als RSS-Feed, als HTML-Seite/Google Doc oder als YouTube Channel vorliegen, für Google Currents zusammenzufassen und anzubieten. Es ist auch möglich, epub-Inhalte hier einzustellen.

Im Anschluss kann man noch ein wenig am Layout mit Farben und Grafiken drehen, sowie auch das Layout selbst auswählen oder gar selbst gestalten. Ein schöne Darstellung der einzelnen Schritte findet man in diesem Video von WordPress Training Videos


Ist alles zur eigenen Zufriedenheit zusammengeklickt, so geht es ans Testen. Neben der Voransicht im Browser selbst, wird dem eigenen Google Currents Account der eigene Inhalt eingeblendet, so dass man auf dem eigenen Gerät sich die eigenen Inhalte anschauen kann

Das Veröffentlichen geht für Normalsterbliche erstmal nur über einen Link. Bei mir lautet er https://www.google.com/producer/editions/CAowsOHjAQ/jerrywho. Diesen können interessierte Leser dann im eigenen Currents Account einbinden.

Hat man 200 Abonennten zusammen, so erscheint das eigene Angebot auch bei Suchen in Currents selbst. Bis dahin werde ich erstmal mit dem von Google bereitgestellten Banner arbeiten 😉

Google Currents nun auch in Deutschland verfügbar

Seit ein paar Wochen ist Google Currents auch in Deutschland u.a. für dasiPad und iPhone  aber auch für Android-Geräte verfügbar. Hierbei handelt es sich um so etwas ähnliches wie Flipboard.

Man abonniert hier Inhalte, die Currents dann in Magazin-Form darstellt. Bei Flipboard kann man neben RSS-Feeds auch Twitter und Facebook als Datenquelle angeben. Bei Currents ist dies nur mit RSS-Feeds möglich. Hierbei kann man einen Google-Reader Account als Quelle angeben. Man muss dann aber manuell jeden einzelnen dort aufgeführten Feed hinzufügen.

Aber auch an anderer Stelle erscheint mir das Arbeiten mit Google Currents als etwas schwerfällig. So werden zum Beispiel die auf dem iPad in der Google Currents App gelesenen Artikel nicht als solche wieder zurück zu Google Reader synchronisiert, so dass man diesen Artikel dann an anderer Stelle erneut als ungelesen präsentiert bekommt. Dieses Problem gibt es bei Flipboard nicht. Allerdings muss man hier immerhin den Artikel anklicken. Blättert man einfach durch die Übersichtsseiten, so werden keine Artikel als gelesen markiert. Bei Feeddler Pro, einem kostenpflichtigen und — wie ich finde — ausgezeichnetem RSS-Reader für iOS Geräte kann man Artikel alleine durch das Weg-Scrollen als gelesen markieren – sehr praktisch.

Die Sortierung der RSS-Artikel ist in Currents auch etwas gewöhnungsbedürftig und nicht chronologisch. Wonach sortiert wird, ist mir noch nicht aufgefallen.

Dafür hat man bei Currents im Gegensatz zu Flipboard die Möglichkeit, Inhalte samt Bildern auf das mobile Gerät zu synchronisieren und diese dann offline zu lesen. (Dies ist übrigens mit Feeddler Pro auch möglich.)

Ich komme im Moment mit der Kombination Feeddler Pro als RSS-Reader und Zite als Quelle für neue Inhalte, die außerdem ausgezeichnet präsentiert werden, viel besser klar als mit dem noch recht spartanisch erscheinenden Currents.

Auf jeden Fall stellen aber RSS-Feeds nicht die Hauptquelle für Inhalte in Google Currents dar. Vielmehr zielt dies darauf ab, dass „Inhalteanbieter“ diese explizit für Google Currents anbieten. Im deutschsprachigen Angebot habe ich allerdings noch nichts spannendes gefunden. Zu neu scheint das in Deutschland zu sein.

Mit fowsr die Daten der Wetterstation PCE FWS 20 auslesen

Die Tage stolperte ich über fowsr. Dabei handelt es sich über eine kleine Programmsammlung zum Auslesen und Verteilen der Daten aus verschiedenen Wetterstationen. Zu den unterstützten Stationen gehört neben meiner PCE FWS 20 auch folgende Typen:

Da ich mir gerade ein Laptop mit Ubuntu 12.04 LTS (beta) Precise Pangolin fertig gemacht hatte, war das doch der ideale Rechner, um fowsr auszuprobieren.

Doch nach einem einfachen make gab’s folgende Fehlermeldungen:

gcc    -c -o fowsr.o fowsr.c
fowsr.c: In function ‘CWS_print_decoded_data’:
fowsr.c:279:3: warning: format not a string literal and no format arguments [-Wformat-security]
fowsr.c: In function ‘CWS_decode’:
fowsr.c:477:4: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘double’ [-Wformat]
fowsr.c: In function ‘CWF_Write’:
fowsr.c:602:6: warning: field width used with ‘%A’ gnu_strftime format [-Wformat]
fowsr.c:602:6: warning: field width used with ‘%A’ gnu_strftime format [-Wformat]
gcc -lusb -lm -o fowsr  fowsr.o
fowsr.o: In function `list_devices':
fowsr.c:(.text+0x11d): undefined reference to `usb_get_busses'
fowsr.o: In function `find_device':
fowsr.c:(.text+0x188): undefined reference to `usb_get_busses'
fowsr.o: In function `CUSB_Open':
fowsr.c:(.text+0x200): undefined reference to `usb_init'
fowsr.c:(.text+0x20c): undefined reference to `usb_set_debug'
fowsr.c:(.text+0x211): undefined reference to `usb_find_busses'
fowsr.c:(.text+0x216): undefined reference to `usb_find_devices'
fowsr.c:(.text+0x267): undefined reference to `usb_open'
fowsr.c:(.text+0x2d5): undefined reference to `usb_get_driver_np'
fowsr.c:(.text+0x327): undefined reference to `usb_detach_kernel_driver_np'
fowsr.c:(.text+0x359): undefined reference to `usb_claim_interface'
fowsr.c:(.text+0x3a0): undefined reference to `usb_set_altinterface'
fowsr.c:(.text+0x402): undefined reference to `usb_get_descriptor'
fowsr.c:(.text+0x437): undefined reference to `usb_get_descriptor'
fowsr.c:(.text+0x46c): undefined reference to `usb_get_descriptor'
fowsr.c:(.text+0x487): undefined reference to `usb_release_interface'
fowsr.c:(.text+0x4c2): undefined reference to `usb_set_configuration'
fowsr.c:(.text+0x4dd): undefined reference to `usb_claim_interface'
fowsr.c:(.text+0x518): undefined reference to `usb_set_altinterface'
fowsr.c:(.text+0x565): undefined reference to `usb_control_msg'
fowsr.c:(.text+0x59a): undefined reference to `usb_get_descriptor'
fowsr.o: In function `CUSB_Close':
fowsr.c:(.text+0x5d4): undefined reference to `usb_release_interface'
fowsr.c:(.text+0x628): undefined reference to `usb_close'
fowsr.o: In function `CUSB_read_block':
fowsr.c:(.text+0x708): undefined reference to `usb_control_msg'
fowsr.c:(.text+0x737): undefined reference to `usb_interrupt_read'
fowsr.o: In function `CUSB_write_byte':
fowsr.c:(.text+0x7ef): undefined reference to `usb_control_msg'
fowsr.c:(.text+0x81e): undefined reference to `usb_interrupt_write'
fowsr.c:(.text+0x84d): undefined reference to `usb_interrupt_read'
fowsr.o: In function `CUSB_write_block':
fowsr.c:(.text+0x900): undefined reference to `usb_control_msg'
fowsr.c:(.text+0x92f): undefined reference to `usb_interrupt_write'
fowsr.c:(.text+0x95e): undefined reference to `usb_interrupt_read'
fowsr.o: In function `CWS_dew_point':
fowsr.c:(.text+0x10e7): undefined reference to `log'
collect2: ld returned 1 exit status
make: *** [fowsr] Error 1

Das sah gar nicht gut aus. Irgendetwas passte beim Linken nicht. Also habe ich erstmal ein wenig gegoogelt. Angeblich setzt fowsr libusb in der Version 0.1 voraus. Ich hatte sowohl die Pakete libusb-0.1-4 wie auch libusb-1.0-0 installiert. Für letzteres auch das Developer Paket.

Nun gut, da das nicht zum Erfolg führte, habe ich mir die libusb in der Version 0.1 unter /opt installiert.

Auch dann funktionierte das Kompilieren und Linken in einem Schritt nicht. Daher habe ich es manuell gebaut:

gcc -I/opt/include -L/opt/lib -lm -lusb fowsr.c -c -o fowsr.o
gcc -o fowsr ./fowsr.o -lusb -lm

Nachher fiel mir dann auf, dass es auch in einem Rutsch geht, wenn man die Optionen in der richtigen Reihenfolge setzt:

> gcc -o fowsr -I/opt/include -L/opt/lib  fowsr.c  -lm -lusb
fowsr.c: In function ‘CWS_print_decoded_data’:
fowsr.c:279:3: warning: format not a string literal and no format arguments [-Wformat-security]
fowsr.c: In function ‘CWS_decode’:
fowsr.c:477:4: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘double’ [-Wformat]
fowsr.c: In function ‘CWF_Write’:
fowsr.c:602:6: warning: field width used with ‘%A’ gnu_strftime format [-Wformat]
fowsr.c:602:6: warning: field width used with ‘%A’ gnu_strftime format [-Wformat]

Der erste Schritt war also getan. Nun ging es ans Auslesen.

Wichtig hierfür ist, dass das Programm nach /var schreiben kann. Dort wird das Ausgabe-File angelegt. Man kann dies nur im Quellcode überschreiben, wenn man will. Per Option geht das zur Laufzeit nicht mehr.

Wenn die Daten nun ausgelesen werden können, steht nun an, die Daten auch zu veröffentlichen. Dazu werden bei fowsr zwei Skripte mitgeliefert, die die Daten zum einen zu Weatherunderground, zum anderen zu PWSWeather schicken, sofern man dort jeweils einen Account hat.

Ich habe mich zunächst für Weatherunderground entschieden. Dort werden zum Beispiel diese Grafiken dann bereitgestellt:

Victini als Geheimgeschehen erhältlich

Zur Zeit wird über das Geheimgeschehen für Pokemon Schwarz und Weiß mal wieder ein Victini verteilt. Nachdem im letzten Jahr man sich das Victini dadurch sichern konnte, dass man den Gartenpass heruntergeladen hat, erhält man nun das Victini direkt.

Es ist im Level 50 und besitzt vier sehr schöne Attacken: V-Generator, Flammenball, Kreuzdonner und Kreuzflamme

In Vorbereitung auf die im Herbst erhältlichen neuen Pokemon-Versionen Schwarz 2 und Weiß 2 macht das auf jeden Fall schon mal Lust auf mehr.

Geschafft – Jeff Gordon Nascar School

Nun ist es mir tatsächlich gelungen, die Jeff Gordon Nascar School in Daytona in Bronze zu schaffen. Dazu muss man fünfter werden. Ich hatte ja früher meine Zweifel, ob das nach dem Schießen der Lücke mit dem Deaktivieren der Traktionskontrolle überhaupt ohne Lenkrad möglich ist. Doch nun habe ich den Dreh raus.

Zum einen habe ich folgende Einstellungen vorgenommen:

Einstellungen

Dann besteht der Trick darin, in den Kurven immer ungefähr in Höhe der gestrichelten Linie zu bleiben und bloß nicht zu stark zu lenken. Auf keinen Fall sollte man auch gegen die Bande kommen. Das kostet zu viel Geschwindigkeit.

Kann man auf der ersten Geraden nach dem Überholen des ersten Wagens den Rückstand von weniger als 1,9 Sekunden auf 1,6 Sekunden verringern, hat man gute Karten. Doch seht selbst:

Unsinnige Rennen im B-Spec Modus bei Gran Turismo

Wie ich ja bereits schrieb, lasse ich nun meine Fahrer im B-Spec Modus Runden drehen. Dabei hatte ich eben ein seltsames Erlebnis: Meine Fahrer hatte ich auf die 1000km von Suzuka geschickt. Als ich nun nach ca. 5 Stunden mal wieder reinschaute, stellte ich fest, dass die aktuellen Rundenzeiten statt bei gut zwei Minuten bei 4 Minuten lagen.

Was war geschehen? Es fing an zu regnen, und anstatt dass die Comuptergegner dies schamlos ausnutzten, blieben sie ebenso wie meine Fahrer munter auf Slicks. Bei jeder Kurve rutschen die Wagen von der Straße.

Also wechselte ich auf Regenreifen. Daraufhin fuhren auch die Computergegner an die Box, wechselten aber auf Intermediates, obwohl die Anzeige 100% Feuchtigkeit auf der Strecke signalisierte.

Mein Fahrer wollte daraufhin nach jeder Runde an die Box. Als ich ihn dann an die Box ließ und auch Intermediates aufzog, fuhr er ohne akuten Boxenstopp-Wunsch weiter.

Als ich später reinschaute, waren plötzlich alle auf Regenreifen unterwegs.

Es ist zwar nett, dass der Computer meine Abwesendheit nicht ausnutzte. Realistisch ist’s aber nicht.

Neues Reporting bei Google Analytics

Im Google Analytics Blog kann man heute lesen, dass Google an einem neuen Report arbeitet. So soll die Quelle des Zugriffs zukünftig weiter ausgewertet werden können. Zugriffe sollen dann als Quelle nicht mehr nur von der Erde kommen können, sondern vielmehr auch von anderen Planeten, wenn der Mensch diese denn besiedelt.

Geplant ist diese Einführung für 2030. Man überlegt auch, die Zugriffe nach Spezies unterscheiden zu können, wenn man denn noch andere Lebensformen entdeckt.

Ich finde es sehr positiv, dass Google sein Produkt Google Analytics immer weiter ausbaut. — Allen Lesern noch einen schönen ersten April 😉