Jan
26
2011
0

[update] Python OptionParser: invalid integer value

Nachdem ich mich gewundert habe, warum bei mir jeweils zwei Kanäle meiner Daten (Kanal 08 und 09) nicht berechnet worden sind, habe ich die Jobs per Hand gestartet und stieß auf folgendes Phänomen:

Man nehme folgende minimal.py:


#!/usr/bin/python
# -*- coding: utf8 -*-
# minimal example by H.Dickten 2011

from optparse import OptionParser
parser = OptionParser()

parser.add_option("-c", "--channel1", type = int, dest="ch1",default = -1,
help = "channel 1")
parser.add_option("-C", "--channel2", type = int, dest="ch2",default = -1,
help = "channel 2")

(options, args) = parser.parse_args()
parser.destroy()
print "Channel1 = %d, Channel2 = %d. EXIT.\n" % (options.ch1, options.ch2)

und führe folgende test.sh aus:

#!/bin/bash
for i in 6 06 7 07 8 08 9 09 10
do
echo "i = $i"; python minimal.py -c 1 -C $i
done

Phänomen:
Wie man sieht werden alle Zahlen (mit und ohne vorstehenden Nullen) wunderbar als int geparsed. Nur die Zahl 08 und 09 werden nicht als 8 und 9 erkannt.

Abhilfe:
Man lässt die Zahlen als string parsen und castet diese später auf int via:

options.ch1 = int(options.ch1)

Gestestet mit Python 2.6.6 (debian squeeze) und Python 2.6.5 (Windows 7)

Update:
Python interpretiert “08″ als Oktalzahl (Quelle: docs.python.org). Demnach werden Hex- und Binärzahlen mit dem Präfix “0x” bzw. “0b” gekennzeichnet; Oktalzahlen jedoch nur mit der Ziffer “0″ anstelle der eindeutigen Kette “0o”. Dies sollte geändert werden ist wohl in Python 3 geändert worden, damit Zahlen nicht falsch interpretiert werden können (z.B. 072 (dezimal) != 072 (oktal) = 0o72 = 58 (dezimal)).

Nov
09
2010
0

Neues von der .zshrc Front

Vorhin habe ich eine kleine Funktion zum konvertieren von beliebig kodierter Textdateien in die UTF-8-Kodierung geschrieben. Einfach folgende Zeilen in die .zshrc übernehmen:


# Funktion zum konvertieren nach utf-8
conv2utf8() {
if [[ $OSTYPE == linux-gnu ]]; then
ENCIN=`file $@ -i | awk '{print $3}' | sed 's/charset=//g'`
else
ENCIN=`file $@ -I | awk '{print $3}' | sed 's/charset=//g'`
fi

ENCOUT='utf-8'
SUFFIXIN=${@##*.}
PREFIXIN=${@%.*}

OUT=$PREFIXIN"_utf8."$SUFFIXIN

print "Konvertiere $@ von $ENCIN nach $ENCOUT ..."
iconv -f $ENCIN -t $ENCOUT $@ > $OUT
}

Gebrauch: conv2utf8 Textdatei.txt.
Das Resultat ist anschließend in Textdatei_utf8.txt zu finden.

Viel Spaß damit!

Aug
17
2010
1

Howto: Kontakte (Mac) inkl. Geburtstagen mit Google synchronisieren

Nachdem ich mir nun ein Android-Telefon zugelegt habe und vermehrt die Synchronisationsmöglichkeit zwischen dem Mac-Adressbuch und Google nutze, ist mir aufgefallen, dass die Geburtstage nicht mit Google synchronisiert werden.

Die Synchronisation erfolgte dabei direkt über das Adressbuch on Mac OS 10.6:

Synchronisation von Kontakten mit Google

In den Einstellungen vom Adressbuch einfach “Mit Google synchronisieren” auswählen und die Zugangsdaten eintragen. Danach synchronisiert der Mac (wann und wie auch immer) die Kontakte mit Google. Zuvor hat natürlich jeder ein aktuelles Backup seiner Kontakte erstellt … :-)

Möchte man nun auch Geburtstage in seinen Kontakten hinterlegt haben, so importiert man einfach seine zuvor als vCard gesicherten Kontakte zusätzlich noch einmal bei Google via:

Kontakte -> Importieren -> vCard auswählen -> Upload.

Google erkennt (zumindest bei mir) die doppelten Einträge und fügt lediglich die fehlenden Daten ein. Danach sind alle Geburtstage in den Kontakten hinterlegt und können über den Kalender (sofern der Geburtstagskalender abonniert ist) eingesehen werden.

Written by Hensing in: Android,frickeln,Mac,pfiffig! | Schlagwörter: , , , , , , , , ,
Dez
16
2007
3

Geotagging vom Alpencross

Endlich habe ich es geschafft, die Alpen-Cross Fotos richtig zu sortieren (wir hatten drei Kameras mit vier verschiedenen Zeiten … *nerv*) und mit Geokodierung zu versehen.

Das Prinzip ist einfach: man lässt ein GPS-Gerät (in unserem Fall das Garmin vom Meyer) die zurückgelegte Wegstrecke, mit Zeitstempeln versehen, aufzeichnen. Nachher lädt man diese Log-Datei aus dem Gerät und gleicht die Zeit der gewonnenen Fotos mit dem GPS ab.

Dann verwendet man ein Programm, welches die GPS-Daten mit den Fotos verlinkt:

GeoTagging mit GPSPhotoLinker
GeoTagging mit GPSPhotoLinker

in userem Fall den GPSPhotoLinker, der frei für OS X erhältlich ist. Wenn man nun gute Nerven hat und die sporadischen Abstürze überlebt (das Programm ist noch nicht so ganz Leopard-tauglich) erhält man relativ einfach gute Ergebnisse! Schnell kann man nachsehen, wie denn der See hieß, den man auf dem Foto sieht.

Und siehe da: die Fotos haben nun Koordinaten und Höhenangaben in den Meta-Tags :)

Höhenvergleich
Höhenvergleich zwischen GPS und Barometer

Jetzt kommt nie wieder die Frage “Wo war das nochmal ….?!?” auf ;) Jetzt bleibt nur noch die Frage offen, wie ich in Zukunft die Daten mit meiner Nokia LD-3W GPS-Mouse per Handy mitloggen kann.

Powered by WordPress | Aeros Theme | TheBuckmaker.com | Original background by Dino Abatzidis | modified by H.Dickten