Archiv ‘IT’

Sonntag, 22. April 2012

iCal kann nicht mit Google Calendar kommunizieren

Seit meinem Umstieg auf Mac OS X Lion Ende Februar 2012 plagte mich das Problem, dass ich auf meinem Mac mini partout keinen Kontakt zu meinen Google Calendars herstellen konnte.

Seit ich heute hier und da ein wenig ausgemistet habe, funktioniert es plötzlich. Welche Aktion(en) die Lösung bewerkstelligt haben, kann ich leider nicht mehr sagen.

  • Reset SyncServices. Die unter ~/Library/Application Support/SyncServices/Local abgelegten Daten sollte man mit dem Befehl
    /System/Library/Frameworks/SyncServices.framework/Versions/A/Resources/resetsync.pl full

    säubern (Quelle: Mac OS X: Resetting the SyncServices folder)

  • Mail-Accounts. In der Datei ~/Library/Mail/V2/MailData/Accounts.plist lagen noch einige Leichen herum, unter anderem auch mein Gmail-Account, welchen ich nur noch über die Web-Oberfläche aufrufe. Mit viel Vorsicht (und nachdem ich eine Kopie der Datei erstellt hatte), löschte ich diesen Eintrag.
  • Two-Way Authentication. Schlussendlich schaltete ich auf Grund eines tragischen Berichts im The Atlantic über den Hack eines GMail-Accounts die Zwei-Wege-Authentifizierung inklusive Applikationspasswörtern ein.

Als ich iCal nun erneut aufrief wurde zuerst einmal der Hauptkalender synchronisiert. Anschliessend konnte ich die restlichen Kalender unter Preferences > Accounts > Google > Delegation zur Synchronisation markieren.

Tags: , , , , , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen

Sonntag, 22. April 2012

iPhoto Photo Stream ist kaputt

Seit dem Umstieg von Mac OS X Snow Leopard auf Mac OS X Lion war ich nicht in der Lage, unter iPhoto 11 den Photo Stream zu aktivieren. Der Stream wird von meinem iPhone 3GS, meinem iPhone 4S und meinem iPad 1 befüllt.

Jedes Mal wenn ich unter iPhoto 11 die Rubrik „Photo Stream“ auswählte, wurde mir angeboten, den Stream zu abonnieren:

Nachdem ich erwartungsvoll auf „Turn On Photo Stream“ klickte, starrte ich während circa 30 Sekunden auf die Dialogbox, die mir mitteilte, dass iPhoto nun mit dem iCloud-Dienst Kontakt aufnehme:

Am Ende der Wartezeit hiess es dann aber nur lapidar:

Ein Aufruf von Console.app mit der Hoffnung, detailliertere Hinweise auf den Fehler zu erhalten, bot in der Tat ein tragisches Bild. Eine Filterung nach „Photostream“ förderte sich alle drei Sekunden wiederholende Fehlermeldungen zu Tage:

22.04.12 20:13:50.787 ReportCrash: Saved crash report for PhotoStreamAgent[37000] version 2.1 (10.12) to /Users/mario/Library/Logs/DiagnosticReports/PhotoStreamAgent_2012-04-22-201350_Mac-Mini.crash
22.04.12 20:13:50.859 PhotoStreamAgent: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive version (4294967295)'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff8fb78fc6 __exceptionPreprocess + 198
	1   libobjc.A.dylib                     0x00007fff96d86d5e objc_exception_throw + 43
	2   CoreFoundation                      0x00007fff8fb78dfa +[NSException raise:format:arguments:] + 106
	3   CoreFoundation                      0x00007fff8fb78d84 +[NSException raise:format:] + 116
	4   Foundation                          0x00007fff8f3e263f -[NSKeyedUnarchiver initForReadingWithData:] + 2611
	5   Foundation                          0x00007fff8f41159e +[NSKeyedUnarchiver unarchiveObjectWithFile:] + 129
	6   CoreMediaStream                     0x00000001001d09a0 -[MSCupidStateMachine initWithPersonID:] + 379
	7   CoreMediaStream                     0x00000001001b6639 -[MSSubscriber initWithPersonID:baseURL:] + 59
	8   CoreMediaStream                     0x00000001001b383d +[MSSubscriber subscriberForPersonID:] + 172
	9   CoreMediaStream                     0x00000001001a9256 -[MSMediaStreamDaemon _boundSubscriberForPersonID:] + 43
	10  CoreMediaStream                     0x00000001001a87d6 -[MSMediaStreamDaemon pollForSubscriptionUpdatesForPersonID:] + 48
	11  PhotoStreamAgent                    0x00000001000034fb -[AssetManagementDaemon startDaemon] + 491
	12  PhotoStreamAgent                    0x0000000100002f87 -[AssetManagementDaemon run] + 151
	13  libdispatch.dylib                   0x00007fff8a065224 dispatch_once_f + 53
	14  PhotoStreamAgent                    0x000000010000264c +[AssetManagementDaemon run] + 124
	15  PhotoStreamAgent                    0x0000000100001723 main + 67
	16  PhotoStreamAgent                    0x00000001000016d4 start + 52
)
22.04.12 20:13:50.863 com.apple.photostream-agent: terminate called throwing an exception
22.04.12 20:13:50.972 ReportCrash: Removing excessive log: file://localhost/Users/mario/Library/Logs/DiagnosticReports/PhotoStreamAgent_2012-04-22-200644_Mac-Mini.crash

Was hatte es mit incomprehensible archive version (4294967295) auf sich? Eine Google-Suche brachte die Lösung des Problems (nicht aber eine Erläuterung) zu Tage:

I found a fix! you just need to delete ~/Library/Application Support/iLifeAssetManagement and then reboot, and then it should work.

Quelle: aperture unable to connect to photo stream

Nach einem

rm -rf ~/Library/Application\ Support/iLifeAssetManagement

und einem Logout gefolgt von einem erneuten Login in meinen Mac-Account brachte die Erlösung: Nach dem Klick auf Enable Photo Stream dauerte es etwa 30 Sekunden, danach füllte sich der Stream mit Photos von meinen iOS-Geräten.

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 17. April 2012

Microsoft Access meldet „Overflow“

Heute meldete mir Microsoft Acceess äusserst nichtssagend „Overflow“, als ich ein Query ausführen wollte. Wie sich nach einigem Debugging herausstellte, versuchte ich, den Wert eines Tabellenfeldes mit einem Wert eines anderen Tabellenfeldes zu dividieren, wobei der Nenner 0 war.

Merke:

  1. Access-Fehlermeldungen sind Microsoft-typisch nichtssagend …
  2. … und zudem auch noch falsch, es hätte nämlich „Division by Zero“ heissen sollen

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Montag, 2. April 2012

Einen Amazon S3-Bucket leeren und dann löschen

Vor einiger Zeit bin ich von JungleDisk auf tarsnap migriert. Als sozusagen „letzte“ Amtshandlung gehört nun dazu, dass ich den Amazon S3-Bucket lösche. Dies ist gar nicht so einfach, weil nur leere Buckets gelöscht werden können — das heisst, alle darin gespeicherten Objekte müssen zuerst entfernt werden.

Da mir die Sache mit Cyberduck zu langwierig erschien (und gelegentlich zu komischen Fehlermeldungen führte), habe ich mich nach einem Kommandozeilen-Tool umgesehen.

s3sync

Fündig wurde ich mit s3sync. Diese Sammlung von Ruby-Scripts erlaubt es, mit Amazon S3 zu kommunizieren.

Nachdem ich die Script-Sammlung heruntergeladen und entpackt hatte, musste ich zuerst die zwingend benötigte Konfigurationsdatei unter $HOME/.s3conf/s3config.yml ablegen. Deren Inhalt:

AWS_ACCESS_KEY_ID: ...
AWS_SECRET_ACCESS_KEY: ...

AWS_CALLING_FORMAT: SUBDOMAIN

Der Kommandozeilenbefehl zum Löschen der Dateien im Bucket lautete folgendermassen:

./s3cmd.rb -v deleteall jd2-5d95f837098760279d8c32d215671111-eu

Quelle: How to delete an Amazon S3 bucket with lots of files in it

Zeichensatz-Problem

Leider gab es — wohl auf Grund der Herkunft meiner Dateien von einem Mac OS X-Dateisystem — immer wieder folgende Fehlermeldung:

./s3cmd.rb:119:in `iconv': "\314\210s Text innen2 "... (Iconv::IllegalSequence)
        from ./s3cmd.rb:119:in `s3cmdMain'
        from ./s3cmd.rb:245

Deshalb empfiehlt es sich, den Programmcode an zwei Stellen anzupassen, in welchen auf iconv zurückgegriffen wird:

... Iconv.iconv($S3SYNC_NATIVE_CHARSET, ...

wird zu

... Iconv.iconv($S3SYNC_NATIVE_CHARSET + "//IGNORE", ...

Quelle: Ignore Iconv::IllegalSequence while using Ruby WWW::Mechanize

Tags: , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 29. März 2012

Windows Netzwerkverbindungen als Administrator öffnen

Wenn man als Standardbenutzer die Windows Netzwerkverbindungen in den Systemsteuerungen mit Administratorrechten öffnen will, verwendet man folgenden Befehl:

runas /user:<Administratorbenutzer> "explorer.exe /n,::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"

Tags: , , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen

Donnerstag, 29. März 2012

Mit Access eine Textdatei mit Pipe-Trennzeichen einlesen

Will man unter Access 2007 eine Textdatei einlesen, welche Datensätze enthält, dessen Felder mit einem Strich (engl. „Pipe“) getrennt sind, muss man folgenden Trick beachten:

Damit das Pipe-Symbol in das Trennzeichenfeld eingeben kann, muss der Inhalt des leeren Feldes zuerst mit der Maus ausgewählt werden (Ctrl-A). Erst dann kann das Symbol eingegeben werden:

Quelle: Import Text file with Pipe Delimited – 2007

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 14. März 2012

Titelzeile eines Windows-Fensters ausserhalb der Bildschirmansicht

Wer wie ich gezwungen ist, auf der Arbeit mit Microsoft Windows zu arbeiten, hat im wechselnden Zweimonitorbetrieb vielleicht auch schon einmal das Problem gehabt, dass die Titelzeile eines Fensters ausserhalb der Bildschirmansicht zu liegen kam, wenn man ein maximiertes Fenster verkleinerte.

Es gibt aber tatsächlich eine Möglichkeit, um die Titelzeile wieder innerhalb den angezeigten Bildschirmbereich zu bringen:

  1. Alt + Space (Leertaste)
  2. M
  3. Das Fenster mit den Cursor-Taste verschieben
  4. Enter

Quelle: Move a window when its title bar is off the screen

Tags: , ,
Labels: IT

2 Kommentare | neuen Kommentar verfassen

Sonntag, 18. September 2011

Der Consumer ist der Unternehmens-IT meilenweit voraus

Consumerized devices with over-the-air updates on a 12 month cycle are five times more agile than a traditional corporate Windows desktop. Another way to look at this is that for every change in a corporate desktop environment, the average user will change their device experience five times.

Quelle: OS turning circles: Questioning Windows’ maneuverability | asymco

Dies ist ein Problem, mit welchem Corporate-IT immer stärker zu kämpfen hat: Die Mitarbeiter benutzen zu Hause Technologie, die der Unternehmens-IT um Meilen voraus ist. Im Gegenzug werden meiner Meinung nach IT-Abteilungen von Grossunternehmen immer mehr als langsam, konservativ und produktivitätsbehindern aufgefasst.

Tags:
Labels: IT, Wirtschaft

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 31. August 2011

Word HTML-Säuberer wordoff.py lokal ausführbar machen

Kürzlich stand ich auf der Arbeit vor der schmerzlichen Vorgabe, ein dutzendes Seiten umfassendes Word-Dokumenten nach Excel zu kopieren (das Dokument enthielt unzählige Tabellen im immer gleichen Aufbau). Anstelle jede Zelle mühsam einzeln nach Excel zu kopieren – was meine gesamte bisherige Ausbildung in Frage gestellt hätte – entschied ich mich dafür, das Word-Dokument als HTML abzuspeichern, den HTML-Code anzupassen und danach in Word zu importieren.

Bekanntermassen ist der von Word produzierte HTML-Code ungefähr so das schrecklichste, was ein Web-Entwickler jemals zu Gesicht bekommen wird. Zum Glück gibt es Web-Dienste wie WordOff, welche über ein Web-Form Word-HTML entgegennehmen, säubern und zum Download anbieten.

Da das Word-Dokument in meinem Falle aber die Bemerkung „Strictly Confidential“ enthielt, empfand ich dies dann doch eher als gewagter Stunt, der mir im schlimmsten Falle den Job hätte kosten können.

Ich entschied mich deshalb, den Python-Code für das Projekt von git herunterzuladen, anzupassen und danach lokal über das HTML-File laufen zu lassen.

Folgende Anpassung war in wordoff.py nötig:

...
def superClean(str):
    clean = stripAttributes(str)
    cleaner = stripSpans(clean)
    cleaner = stripDivs(cleaner)
    #cleaner = xenophobia(cleaner)
    cleaner = stripEmptyElements(cleaner)
    cleaner = stripEmptyElements(cleaner)
    cleaner = stripEmptyElements(cleaner)
    cleaner = reduceLineBreaks(cleaner)
    return cleaner

# Changes added by Mario Aeby, eMeidi.com
# Allows to execute the script locally on a command line
def main():
	file = open("word-to-excel.htm");
	str = file.read()
	
	print superClean(str)
	
if __name__ == "__main__":
    main()

Dies erlaubt, das Script folgendermassen auf der Kommandozeile aufzurufen (die Quelldatei muss derzeit leider in den Sourceode hardkodiert werden):

$ ./wordoff.py > word-to-excel-clean.html

Nicht schlecht. Wer weiss, vielleicht lässt der Entwickler diese Anpassung ja auch ins Projekt einfliessen, damit man es künftig sowohl unter dem Django-Framework als auch lokal in einer Shell ausführen kann.

Tags: , , , ,
Labels: IT, Web

1 Kommentar | neuen Kommentar verfassen

Sonntag, 24. Juli 2011

Was Lehrer nicht lehren können

Even the best teachers cannot usually describe what they are doing. Procedural knowledge is largely subconscious.

Quelle: Knowing ‚How‘ – (37signals)

Tags: , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen