<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>a7p's &#187; project</title>
	<atom:link href="http://a7p.org/blog/category/project/feed/" rel="self" type="application/rss+xml" />
	<link>http://a7p.org/blog</link>
	<description>code, confusion, confessions</description>
	<lastBuildDate>Tue, 07 Sep 2010 08:54:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Getting Birthdays out of the AppleAddressBook</title>
		<link>http://a7p.org/blog/2008/10/02/getting-birthdays-out-of-the-appleaddressbook/</link>
		<comments>http://a7p.org/blog/2008/10/02/getting-birthdays-out-of-the-appleaddressbook/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 09:51:24 +0000</pubDate>
		<dc:creator>A7P</dc:creator>
				<category><![CDATA[MacOSx]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://a7p.org/blog/2008/10/02/getting-birthdays-out-of-the-appleaddressbook/</guid>
		<description><![CDATA[Recently I posted a terrible piece of AppleScript, but I refurbished the whole thing and rewrote it in python. Basically there are two known ways of accessing the contents of the Apple AddressBook &#8211; well, two sane ways. The first &#8230; <a href="http://a7p.org/blog/2008/10/02/getting-birthdays-out-of-the-appleaddressbook/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I posted a terrible piece of AppleScript, but I refurbished the whole thing and rewrote it in python.</p>
<p>Basically there are two known ways of accessing the contents of the Apple AddressBook &#8211; well, two sane ways.</p>
<p>The first and most simple one is to use <a href="http://www.sqlite.org/">SQLite</a>, and that will doubtlessly be the fastest way. But if Apple ever changes the data-schema of the addressbook the script will be useless. Apart from all that, there is another, more interesting way of accessing the addressbook &#8211; so I took the long way home *g*.</p>
<p><a href="http://pyobjc.sourceforge.net/">PyObjC</a> offeres a neat bridge to OSxs&#8217; native methods &#8211; these methods are useable in Python. Using pythons <a href="http://docs.python.org/lib/module-datetime.html">datetime</a> classes it is pretty simple to accomplish almost anything concerning dates. <a href="http://www.programmish.com/?p=26">This blog-entry</a> was a great help and gave me the idea to use PyObjC &#8211; thanks!</p>
<p>Since my OSX does not offer a py2applet (and the macports version does not work properly) I used Platypus to bundle it into an App.</p>
<p>The Growl code I used stays BSD-licensed, my code is GPL3.</p>
<p>Have fun (and post improvements).</p>
<p><a href="http://a7p.org/blog/wp-content/uploads/2008/10/showbirthdays.zip">showbirthdays.app (clickable release)<br />
</a></p>
<p><a href="http://a7p.org/blog/wp-content/uploads/2008/10/birthdaystufftar.gz">birthdaystuff.tar.gz (sourcecode release)<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://a7p.org/blog/2008/10/02/getting-birthdays-out-of-the-appleaddressbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
