SyncMate unter Leopard

Nachdem ich jetzt auch unter die Mac-User gegangen bin (habe es geschafft ein iBook G4 als Ersatz für mein mittlerweile auseinanderfallendes HP NX5000 zu ergattern) stand ich vor der üblichen Hürde für die unter Windows oder Linux bekannten und gern genutzten Programme ein passables Mac-Äquivalent zu finden.

Für meine größten Bedenken, ob sich mein Windows Mobile 5 Handy (ein HTC Wizard, in Deutschland unter anderem als „Xda Mini S“ bezeichnet) mit MacOS syncen lässt hat sich erstaunlich schnell ein Ersatz gefunden … SyncMate. Die Freude hielt aber nicht lange an. Heruntergeladen, installiert, Handy angeschlossen, wunderbar, es installiert irgendwas auf dem Handy. Dann, nichts mehr. Handy wird einfach nicht erkannt.

Irgendwann fand ich in dem Blogbeitrag in dem die Software angeündigt wurde und in dem sich einige Leute über dasselbe Problem beschwert hatten die Lösung: Einfach das Handy neu booten. Gesagt, getan, und siehe da: Es wird gefunden und der Sync funktioniert einwandfrei.

iScroll2 und Leopard

iScroll2 hat mich nach der Installation ein wenig irritiert … das Touchpad im iBook G4 ist definitiv kompatibel, der „Rechtsklick“ mit 2 Fingern auf dem Pad und einem Druck auf den Knopf funktionierte einwandfrei, das Scrollen mit zwei Fingern jedoch nicht. Ein Hinweis im offiziellen Tracker brachte mir dann die Lösung:

Nach der iScroll2 Installation wird das Touchpad auch vom dem originalen Einstellungsdialog des Touchpads als zwei-Finger-fähig erkannt. Die Einstellungen zum vertikalen und horizontalen Scrollen müssen daraufhin sowohl unter „Tastatur & Maus“ als auch unter „iScroll2“ vorgenommen werden.

HTTPS Datei Upload mit POST

Eine nette Aufgabe kam heute auf mich zu … aus einem Programm heraus eine Datei über eine Website per HTML-Formular auf einen Webserver laden, das ganze über eine HTTPS-Verbindung und mit Authentifizierung per Zertifikat.

Klingt eigentlich nicht so schwer … dachte ich zumindest.

Die Zertifikate aus dem CertificateStore von Windows auslesen war auch relativ einfach, der Upload per HTTP eigentlich auch … bis ich dann das Zielformular über die Zertifikatabfrage schützte.

Die Suche nach der Fehlerquelle hat dann einige Zeit gekostet, bis ich dann irgendwann feststellte dass Apache es einfach nicht mag wenn man über eine SSL-Verbindung ohne Vorankündigung ein POST-Formular abschickt.

Die Lösung des Problems war dann relativ einfach, einfach vorher einen kurzen Seitenabruf mit GET, dann den tatsächlichen Upload, zwischendurch die Session nicht verlieren und voila…

X509CertificateCollection certs = new X509CertificateCollection();
MyCerts mycert = new MyCerts();
int num = mycert.Init();
for (int i=0; i < num; i++)
certs.Add(mycert[i]);

HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(uri);
webrequest.ClientCertificates = certs;
webrequest.Method = "GET"
WebResponse response = webrequest.GetResponse();
Stream read = response.GetResponseStream();
read.Close();

webrequest = (HttpWebRequest)WebRequest.Create(uri);
webrequest.ClientCertificates = certs;
webrequest.Method = "POST"
webrequest.ContentType = "multipart/form-data; boundary=" + boundary;
// content zusammenbauen und senden

auf einmal geht es einwandfrei.