Archiv 4. März 2012

Sonntag, 4. März 2012

Geburtstage von Apple AddressBook nach iCal übertragen

Damit man die gesammelten Geburtstage seiner Mitmenschen immer im Kopf behält, empfehle ich jedem Mac-Anwender die nützliche Apple Automator-Action iCalBirthdays.

Mit dieser Action ist es möglich, für alle im Apple Adressbuch enthaltenen Kontakte mit Geburtsdatum einen Alarm in iCal zu erstellen. Führt man die Automator-Action quartalsweise (oder häufiger) durch — je nachdem, wie oft neue Geburtsdaten ins Adressbuch aufgenommen werden — hat man so immer einen aktuellen Kalender und somit auch eine Erinnerungsmeldung, damit man Bekannten pünktlich gratulieren kann.

Nachdem die Action heruntergeladen und installiert ist, öffnet man Apple Automator und erstellt einen Workflow mit der iCalBirthday-Komponente in der Calendar-Library. Den Workflow speichert man anschliessend am Besten als eigenständige Applikation, die man unter /Applications ablegt.

Meine Einstellungen für den Workflow schauen folgendermassen aus:

Screen Shot 2012-03-04 at 21.55.18

Tags: , , ,
Labels: Apple

3 Kommentare | neuen Kommentar verfassen

Sonntag, 4. März 2012

Aktuell geöffnetes Fenster unter Mac OS X minütlich aufzeichnen

Seit mehreren Jahren zeichne ich jede Minute auf, welches Fenster auf meinem Mac OS X-Desktop aktiv ist. Ich nutze diese Aufzeichnungen nicht zuletzt dazu, um bei ungefähr zu wissen, wie lange ich für Kundenaufträge gearbeitet habe — und dementsprechend Rechnung zu stellen.

Das AppleScript lautet folgendermassen:

tell application "System Events"
	set app_name to name of item 1 of (every process whose frontmost is true)
end tell

tell application app_name
	try
		if (count of windows) > 0 then
			set mouseToolsPath to "usr:local:bin:MouseTools"
			set {mouseX, mouseY} to paragraphs of (do shell script quoted form of POSIX path of mouseToolsPath & " -location")
			
			set title to (app_name & "&title=" & name of window 1 & "&x=" & mouseX & "&y=" & mouseY)
		end if
	on error
		set title to app_name
	end try
end tell

Damit das Script auch gleichzeitig die Position des Mauszeigers erfasst, müssen noch die MouseTools heruntergeladen und — in meinem Fall — unter /usr/local/bin/ abgelegt werden.

Um dieses Script regelmässig auszuführen, habe ich mit der kostenpflichtigen Applikation Lingon einen launchd-Job erstellt (in der Steinzeit hat man noch auf Cron-Jobs zurückgegriffen), der jede Minute ausgeführt wird. Hierzu verwende ich ein bash-Script als Wrapper, um die Informationen an ein PHP-Script auf einem im Intranet stehenden Linux-Server weiterzuleiten:

#!/bin/sh

LOGGEDIN=`who | grep "^mario" | grep console | wc -l`
WGET="/opt/local/bin/wget"
#WGET=`which wget`

if [ $LOGGEDIN -lt 1 ];
then
        echo "User mario not logged in. Exiting."
        exit 0
fi

if [ ! -x "$WGET" ];
then
	echo "wget executable '$WGET' not found. Exiting."
	exit 1
fi

APP=`/usr/bin/osascript /usr/local/bin/FrontMostApplication.scpt`
#echo $APP

URL="http://tld/save.php?app=$APP"

#echo "Accessing URL '$URL' using $WGET"

$WGET -q -O /dev/null "$URL"

exit 0

Tags: , , , ,
Labels: Apple, Linux

Keine Kommentare | neuen Kommentar verfassen