Sonntag, 4. Juli 2010

Fehler in der VCARD-Import-Implementierung von Outlook 2007

Ein paar Experimente mit dem Import von VCARDs haben mir gezeigt, was andere auch schon festgestellt haben:
Microsoft hat in Outlook den VCARD-Import nicht 100% spezifikationskonform implementiert.

So habe ich versucht, Visitenkarten im VCARD 2.1-Format zu importieren.

Dabei sind mir folgende Unstimmigkeiten aufgefallen:
  1. Outlook ignoriert Zeilen, die mit "CATEGORIES" beginnen.
  2. Outlook erwartet bei einem eingebetteten PHOTO das "ENCODING=b", obwohl dies nur für VCARDS 3.0 gilt, und ignoriert ENCODING=BASE64
  3. Bei der Angabe eines CHARSET achtet Outlook auf Groß- und Kleinschreibung (case-sensitive), ignoriert jedoch "UTF-8" und versteht nur "utf-8".
Bestätigungen und Widersprüche als Kommentar zu diesem Blog-Eintrag sind willkommen.

Samstag, 12. Juni 2010

VCARD Import von XING nach Outlook / Evolution inklusive Fotos

Das VCARD-Visitenkartenfomat bietet die Möglichkeit, ein Portrait-Bild einzubetten.
XING bietet einen Adressexport im VCARD-Format an.
Leider haben die XING-Entwickler etwas geschlampt und einen Export erzeugt, der einer Mischung aus VCARD 2.1 und 3.0 entspricht. Darüber sehen Outlook und Evolution zum Glück hinweg.

Dass Umlaute in UTF-8 kodiert sind, als Zeichensatz aber explizit ISO-8859-1 in der VCARD angegeben wird, verzeihen die beiden Programme natürlich nicht.

Zur die Portrait-Bilder greift XING auf die Spezifikation zurück, die die Angabe einer URL zulässt. Damit können Outlook und Evolution jedoch nichts anfangen.
Was die Adressverwaltungen beim VCARD-Import jedoch verstehen, sind BASE64-kodierte Bilder.

Was liegt also näher, als alle Bilder per wget von XING herunterzuladen und die URL in den VCARDs durch BASE64-kodierte Bilder zu ersetzen?
Die Zeichensatzangaben können wir dann auch gleich korrigieren.
Dabei muss beachtet werden, dass auch MS Outlook nicht 100% die V2.1-Spezifikation versteht. Das nach V2.1 konforme "ENCODING=BASE64" versteht Outlook nicht. Outlook braucht die RFC2426-konforme Variante "ENCODING=b".
Weiterhin ist Outlook "case sensitive" in Bezug auf den Wert zu CHARSET. Es muss also "utf-8" und nicht "UTF-8" heißen.

Folgendes Bash-Skript erfüllt den Zweck:
#!/bin/bash
# Copyright 2010 Superwallah, this code is distributed under GPL 3.0
if [ "$1" = "" ] ; then
echo "usage: ./xing2outlook.sh vcards-XING.vcf"
exit
fi
# wget all images
wget -N $(gawk -F";" '/PHOTO/ { print substr($3,11,length($3)-11)}' $1 )
# correct charset settings in XING vcards
sed -e 's/ISO-8859-1/utf-8/g' $1 > neuesvcard_out.vcf
# delete empty address lines
sed -e '/;;;;;;/d' neuesvcard_out.vcf > XING4Outlook.vcf
# convert all pictures into base64
for i in $( ls *.jpeg *.jpg *.gif 2> error.log ); do
base64 --wrap=0 $i > $i.b64
# BASE64 enthält /, daher ! sed-Trennzeichen
sed -e 's!VALUE=URL;TYPE=JPEG:.*'$i'!ENCODING=b;TYPE=JPEG:'$(cat $i.b64)'!g' XING4Outlook.vcf > neuesvcard_out.vcf
cp neuesvcard_out.vcf XING4Outlook.vcf
done
rm neuesvcard_out.vcf


Dabei sei allerdings auf Abschnitt 4.2 der XING AGBs verwiesen, die keinen automatisierten Zugriff erlauben.
Wörtlich zitieren darf ich die AGBs hier allerdings auch nicht, da ich sonst ebenfalls gegen denselben Abschnitt verstoßen würde.

Also: Es handelt sich um ein Gedankenexperiment. Die Nutzung ist ausdrücklich untersagt. Ich übernehme keinerlei Gewähr für Auswirkung der Nutzung des Codes.

Montag, 17. Mai 2010

Durch Provokation die Bürger gegen den Überwachungsstaat mobilisieren

"Ich habe nichts zu verbergen." und "Würdest Du das nicht auch unterstützen, wenn sie Dein Kind missbrauchen oder Deinen Vater in der U-Bahn zusammenschlagen würden?" - Das ist leider häufig die spontane Reaktion Vieler auf die Diskussion über Videoüberwachung, Vorratsdatenspeicherung und Überwachung im Internet.

Die "Spätfolgen" erkennen viele nicht. Diese werden sich ja auch es schleichend und somit nach und nach von der Gesellschaft akzeptiert einstellen. Das "diffuse Gefühl vom Beobachtetsein" wird ja schon jetzt häufig dem Paranoiker zugeschrieben. Was Null-Toleranz-Politik wirklich bedeutet, wird die Masse allerdings erst dann begreifen, wenn sie mit ihr aus heutiger Sicht nicht übereinstimmt.

Wo ist also Gesetzbrechen fast schon gesellschaftlich toleriert?
  • Bei der Steuererklärung - sofern es sich um "kleine" Beträge handelt.
  • Noch viel mehr: Im Straßenverkehr!
    "Ich war doch nur 20 drüber." - Ja, eben "drüber"(!), sprich jenseits des gesetzlich erlaubten.
    "Wenn der Penner nicht rechts rüberfährt, dann muss ich ja wohl rechts überholen." - Nein. Das ist verboten. Aufregen über Sonntagsfahrer hingegen ist gesetzlich erlaubt.
    "Ich war doch nur kurz auf einen Sprung Brötchen holen. Außerdem ist doch hier alles vollgeparkt." - Nee. "Parkverbot" bedeutet "Parken ist hier verboten, also gesetzlich nicht erlaubt.".
    Nun gut, es sind Ordnungswidrigkeiten, keine Straftaten. Wie hoch ist eigentlich das jährlich Volumen an Strafzetteln im Vergleich zu Geldstrafen bei Strafdelikten?
  • Rauchen im öffentlichen Rauchverbot
Wie hier im Blog schon mal vorgeschlagen, wäre eine Überwachung im Straßenverkehr auf Basis von Handydaten sicher problemlos möglich. Öffentliche Überwachungskameras könnten nach brennenden Zigaretten filtern. Und der Abgleich von Handy-Bewegungsprofilen könnte die Fahrtenbücher der Steuererklärungen auf Plausibilität prüfen.

Wenn hierfür nun offiziell eine technische Lösung in Politikkreisen diskutiert werden würde, wäre das Geschrei der Bürger (und nicht nur der Daten- und Verbraucherschützer) groß. Es würde Klagen geben und eine öffentliche Diskussion, für die sich sicher sogar die 50-Cent-Boulevardpresse interessieren würde.
Man würde ein Exempel statuieren.

Und plötzlich würde die Diskussion "Wann sollte der Staat überwachen dürfen?" jeden interessieren. Zumindest wäre endlich dieser dumme Satz "Ich habe doch nichts zu verbergen." tot.

Sonntag, 21. März 2010

SCRUM: unterpriorisieren von unverstandenen Anforderungen im Product Backlog birgt Risiko

In agilen Software-Entwicklungsmethoden, wie SCRUM oder XP, wird häufig empfohlen, das zuerst zu tun, bei dem genau klar ist, was zu tun ist.
Das klingt zunächst gut, da dann sichergestellt ist, dass alle Ihre Aufgabe genau kennen und die Umsetzbarkeit und Umsetzungsaufwand abschätzen können.

Konsequenz dieses Vorgehens ist jedoch, dass die vage und unpräzise formulierten Anforderungen bzw. die Anforderungen, bei denen das genaue Ziel noch unklar ist, unterpriorisiert werden.
Einerseits mag in den Anforderungen, bei denen selbst der Anforderer nicht genau weiss, was er will, kein großes Gewicht liegen. Wenn der Anforderer nicht genau weiss, was er will, lässt er sich ggf. auch schneller davon überzeugen, dass er die Umsetzung dieser schwammig formulierten Anforderung vielleicht gar nicht braucht.
So wird für dieses Vorgehen gerne damit geworben, dass über eine solche Priorisierung die Anforderungen mit dem höchsten Nutzen zuerst implementiert werden. Am Ende eines Projektes bleiben dann nur noch Anforderungen mit hohem Aufwand aber vergleichsweise niedrigem Nutzen zurück, die notfalls auch komplett fallengelassen werden können.

Dieser Sichtweise steht aber die Behandlung besonders komplexer Anforderungen gegenüber. Dies sind diejenigen, die zu Beginn eines Projektes niemand so genau beschreiben kann. Bei diesen Anforderungen wäre zunächst weitere Planungszeit nötig, um sie präziser zu formulieren und in kleinere Teilanforderungen zu zerschneiden.
Andererseits ist bei unverstandenen Anforderungen der Nutzen zunächst noch unklar. Zumindest besteht zunächst die Wahrnehmung, dass der Aufwand zur Lösung den (noch unbekannten) Nutzen deutlich übersteigt.
Wenn sich in einer dieser komplexen Anforderungen jedoch ein simple Lösung mit hohem Nutzen verbirgt, ist es es wert, die zusätzlich erforderliche Zeit einzuplanen, um die Anforderung besser zu verstehen. Einer solchen Anforderung (würde man sie denn trotz ihrer Komplexität erkennen) sollte Priorität eingeräumt werden.

Wir schlussfolgern daraus:
Werden nur die klar verstandenen Anforderungen hoch priorisiert, läuft man Gefahr, Zeit zu verlieren, die derzeit unverstandenen, komplexen Anforderungen mit (relativ zum Aufwand) hohem Nutzen zu identifieren und somit auch umzusetzen. Mit diesem Vorgehen kann man sogar relativ sicher sein, dass diese Anforderungen überhaupt nicht umgesetzt werden, da der Anforderungsanalyse dafür nie ausreichend Zeit eingeräumt wird.

In Kürze: Komplexe Anforderungen müssen keine unwirtschaftlichen Anforderungen sein.

Freitag, 5. März 2010

Synchronisation mit Android - eine Client-Übersicht

Ziel ist es, sein Android-Handy mit dem Server oder Desktop-PC / Laptop zu synchronisieren, ohne die Daten durch Google (Gmail etc.) schleusen zu müssen.

Man kann auf SyncML setzt. Dann ist Funambol eine gute Wahl.

Daneben gibt es aber mittlerweile noch eine ganze Reihe weiterer Sync-Dienste:


Sync über Austauschdateien auf SD-Karte. Test mit Demo-Version 1.4.6 erfolglos.
NameBeschreibungGegenseitePreis
FunambolKontakte via SyncMLbeliebiger SyncML-Server, z.B. Funambol-Android-Client muss selbst kompiliert werden
The Missing SyncKontakte und Dateien synchronisieren, in Zukunft: Kalender, Aufgaben, Notizen, SMSWindows, Mac$39,95 (1 PC), $69,95 (3 PCs)Pairing erfordert http-Verbindung zum MarkSpace-Server, funktioniert aber nicht via Wifi. Bluetooth geht erst ab Android 2.0 (Cyanogenmod wird als 1.6 deklariert) => Kein Sync
CompanionLink CL USB Sync-$39,95nur Kontakte, deutscher Android-Client nicht vollständig übersetzt. => kein Sync
Wave Labs MyLink AdvancedWindows£9,99
TouchDownE-Mail-Syncbeliebiger MS Exchange
ContactsSyncE-Mail-Syncbeliebiger MS Exchange 2007
vCardIOKontakte via VCARD-Im-/ExportVCARD-Filesderzeit nur VCARD 2.1, basiert auf altem Funambol-Code, funktioniert in seinen Grenzen aber sehr gut.
aFileSyncFile-Synchronisation via ftpbeliebiger FTP-Server-als Backup-Lösung brauchbar, kein Kontakte-Sync-Tool-Ersatz

Sonntag, 14. Februar 2010

Ich habe nichts zu verbergen (Teil III)

Wenn die Deutsche Steuergewerkschaft Recht hat, hinterziehen die Deutschen jedes Jahr 30 Milliarden Euro an Steuern.

Sind Sie sicher, dass von Ihnen kein einziger Euro dabei ist?
Haben Sie auch die Punkte prüfen lassen, bei denen Sie sich unsicher waren, bevor Sie Ihre Steuererklärung abgegeben haben?

Es müssen ja nicht gleich Schweizer Bankkonten sein. Aber wer für den Kauf der CD durch die Bundesregierung stimmt, der sollte die beiden oberen Fragen auch mit "JA" beantwortet haben.

Oder halten Sie das Bankgeheimnis eh für einen Schutz derjenigen, die zu viel haben? Dann ist sicher Blippy das Richtige für Sie!

Haben Sie immer noch nichts zu verbergen?

Freitag, 25. Dezember 2009

Funambol Android Client installieren

Wer sein Android statt mit Google mit einem SyncML-Server synchronisieren will, braucht einen Syncml-Client.
Funambol bietet zum eigenen Server gleich das passende Client-Projekt für Android.

Herausforderung hierbei ist, dass die Variante, die zum Download bereitsteht, hoffnungslos veraltet ist. Kernunterschied: Die offizielle Version unterstützt nur Synchronisation der Kontakte, die Entwicklerversion unterstützt auch Kalender, Photos, ....

Daher sind folgende Schritte notwendig:
  1. Eclipse installieren
  2. Android SDK installieren
  3. Android ADT Plugin for Eclipse installieren
  4. subversion unter eclipse installieren
  5. Funambol Android-client Quellen in Eclipse einbinden
  6. ggf. xml-File an lokale Installation anpassen
  7. Android-Client kompilieren
  8. Android-Client auf Android-Gerät installieren
  9. Android-Client auf Android-Gerät konfigurieren
Die ersten drei Schritte sind hier gut erklärt.

Freitag, 13. November 2009

Trend zur Kontroll-Gesellschaft macht dumme Menschen

Compliance-Programme, Kopfnoten, Bewertung von Alten- und Pflegeheimen, Video-Überwachung - all das führt bei den betroffenen Menschen zu ein und derselben Einstellung und provoziert ein vergleichbares Verhalten: "Wenn ich kontrolliert werde, muss ich mich genauer an die Regeln halten." Genau das ist gewollt und Motivation für die Maßnahmen.

Allerdings hat das System auch eine Kehrseite:
  1. Falls es in einem Einzelfall mal KEINE explizite Regel gibt, kann ich tun und lassen, was ich will.
  2. Falls die Einhaltung der Regeln nicht oder nur unzureichend kontrolliert wird, ist wohl auch ein Regelverstoß akzeptiert und damit subjektiv legalisiert.
Wem das zu abstrakt ist, hier ein paar Beispiele:
  • Viele Menschen fahren regelmäßig und gewohnheitstechnisch 20-30 km/h zu schnell Auto, da eine Strafe hier noch vergleichsweise milde ausfällt. Vor Blitzapparaten wird jedoch penibel abgebremst.
  • In der gymnasialen Oberstufe sind pro Fach und Halbjahr eine bestimmte Anzahl an Fehlstunden zulässig. Bei weniger gewissenhaften Schülern, die zudem eh keine großen Punkterekorde in einem bestimmten Fach zu erwarten haben, führt diese Regelung gerne zu der Denkweise: "Ich habe ja noch 4 Fehlstunden gut. Lass uns heute auch schwänzen."
  • Putzt eine Klofrau gewissenhafter, wenn sie alle halbe Stunde pro Toilettenraum auf einer Liste ihr Unterschriftenkürzel hinterlassen muss? Oder gibt ihr die pünktliche Unterschrift nicht jetzt ein beruhigendes Gefühl, dass zuvor nur eine sorgfältige Arbeit verschaffen konnte?
Ich möchte also die Frage wagen:
Führen Compliance Checks und Kontrollsysteme zu einer verbesserten Moral oder eher zur Unmündigkeit?

Superwallah - IT, Innovation, Indien

Globaler Cyber-Fortschritt ist heute

Suche

 

ich

Du bist nicht angemeldet.

Wer bist Du?

Sag es mir. Und hinterlass einen Kommentar nach Lesen eines Eintrag!

Aktuelle Beiträge

Methode zur Organisation...
Ich habe auf dem 34C3 eine interessante Methode kennengelernt,...
superwallah - 3. Jan, 22:11
Filofax Personal Abmessungen
Wer eigene Filofax-Einlagen basteln möchte, muss sich...
superwallah - 3. Jan, 15:01
Sicherheit in Android...
TLS ist nur so sicher wie die Gesamtheit der Root-CAs,...
superwallah - 13. Jun, 21:30
Den richtigen Co-Working-Space...
Die moderne Welt des Arbeitens liegt im Teilen der...
superwallah - 24. Mai, 18:16
Adressen und Kalender...
Wer meinem Blog folgt, weiss, dass ich mich konsequent...
superwallah - 23. Mai, 09:36

Meine Gadgets

Gesehene Filme

Zähler

Web Counter by www.webcounter.goweb.de
Web Counter by www.webcounter.goweb.de

Status

Online seit 6766 Tagen
Zuletzt aktualisiert: 3. Jan, 22:11