<?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>Kanojo.de Blog &#187; iPhone</title>
	<atom:link href="http://blog.kanojo.de/tag/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kanojo.de</link>
	<description></description>
	<lastBuildDate>Fri, 06 Jan 2012 09:54:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Free/Open Wireless Sync your iPhone with Linux!</title>
		<link>http://blog.kanojo.de/2010/12/07/freeopen-wireless-sync-your-iphone-with-linux/</link>
		<comments>http://blog.kanojo.de/2010/12/07/freeopen-wireless-sync-your-iphone-with-linux/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 11:21:37 +0000</pubDate>
		<dc:creator>nebuk</dc:creator>
				<category><![CDATA[Computer]]></category>
		<category><![CDATA[Electronic]]></category>
		<category><![CDATA[Free-Software]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[tinkering]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[caldav]]></category>
		<category><![CDATA[carddav]]></category>
		<category><![CDATA[evolution]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://kanojo.blogs.ghostdub.de/?p=1194</guid>
		<description><![CDATA[While using 3.x on my iPhone free (as in self-hosted and "free as in free speech") syncing was a bit of tinkering here and there but worked. With iOS 4 Apple introduced a new scheme for the Calendar (which used to be a nicely and sanely formatted sqlite file), so all the sync-tools aren't really [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>While using 3.x on my iPhone free (as in self-hosted and "free as in free speech") syncing was a bit of tinkering here and there but worked. With iOS 4 Apple introduced a new scheme for the Calendar (which used to be a nicely and sanely formatted sqlite file), so all the sync-tools aren't really working anymore. Iphonesync (required J/B Phones and synced to e.g. Funambol) can still read notes(?) and addresses but can't sync the calendar anymore. So i was looking for another option to sync this thingy - and found one (or two) ...</p>
<p><span id="more-1194"></span></p>
<p><img src="http://blog.kanojo.de/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />Basically there are two options - one is to use <a href="http://www.libimobiledevice.org/" target="_blank">libimobiledevice</a>, a library that achieved protocol-compatability with iPhones native interfaces (the same protocol as used by iTunes) that is just Wowzers. They also implemented a API for syncing calendar, contacts, notes and apps(?). Problem is - the API is there, but no "client" to use it. <a href="http://live.gnome.org/Conduit" target="_blank">Conduit</a> seems to have something in the planning or may have even started implementing it... but you'd have to hack or wait here.</p>
<p>The other option you have is checking what option that strange phone has natively, and for iOS 4.x you may discover theres calDAV and cardDAV, which are two nice (almost) standardized protocols for syncinc Calendars and Contacts... So why not just use them?</p>
<p>Turns out it's a bit more complicated than that. Apple has published a card/calDAV sync-server under GPL, but has made it kind of complicated to get this up and running nicely. Thanks to the thrive of the Free Software Scene there are quite some alternatives, to me to most noteworthy one is <a href="www.davical.org">davical</a> - a nice little service written in php to provide both cardDAV and calDAV as well as a tiny tweeny little web-interface for administration and settings. That and a variety of sync-clients on the Linux side makes just what you need! <img src='http://blog.kanojo.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  So let's set this up!</p>
<p>For those of you using Debian there's the nice way to use the official davical packages on their repository. I chose another path and installed from git - i simply checked out their git-repos and moved the files in my DocumentRoot, then almost verbatimly followed thei<a href="http://wiki.davical.org/w/Debian">wiki-page</a> for Debian-Installations. One real problem was the .well-known URL scheme for cardDAV (who the f... came up with that f... up scheme for auto-discovery?). Thanks to the nice support in the davical irc channel and some brute-forcing i got it to work quite easily. Luckily i didn't need the <a href="http://wiki.davical.org/w/CardDAV/Configuration/SRV_Records">SRV-Records proposed here</a> (why ever?!), so all i had to do is forwarding the .well-known urls correctly:﻿﻿﻿﻿</p>
<blockquote>
<div>RewriteEngine On</div>
<div>RewriteRule ^/.well-known(.*)$ /caldav.php/.well-known$1 [NC,L]</div>
<div>RewriteRule ^/principals/users(.*)$ /caldav.php$1 [NC,L]</div>
</blockquote>
<div>This in the apache config did the job (adjust the path to caldav.php!), now the only thing i had to do to get cardDAV to work was <a href="http://wiki.davical.org/w/CardDAV/Creating_addressbooks">creating a address-book-resource</a> - almost to simple to be true.</div>
<div>Enter the corresponding information on your iPhone and you're good to go. Don't forget to set your default addressbook and calendar!</div>
<div>The next point coming up is linking your Linux PIM programm to cardDAV and calDAV - i chose Evolution here and that really made me shoot myself in the leg! It seems that in current versions of Evolution in the Debian repositories cardDAV support is super br00ked - the version from Debian stable didn't have any cardDAV support to begin with. So it's compile-yourself-time! Luckily the Evolution guys wrote a <a href="http://mad-scientist.us/evolution.html">Makefile</a> meant for developers to automate evolution compilation. It'll clone the GIT repositories for Evolution and most of its relevant dependencies, build them and install them to a seperated prefix (e.g. /opt/evo/). I had to tinker around a bit to get it to actually compile and not barf somewhere in between - mainly by pinning the version of the checkouts and disabling a few unneeded dependencies.  My modified Makefile (this is nothing magic, i just followed the docs on the site above) is available <a href="http://tmp.kanojo.de/Makefile-evolution">here</a> for convenience. With that just follow the guide on the site above - you'll receive a Evolution nicely talking cardDAV and calDAV! On other distributions with different Evolution-Versions you might not have to compile Evolution yourself. Even more convenient!</div>
<div>Now just add a new calendar and addressbook in Evolution using your url to caldav.php and appropriate settings. That is:</div>
<blockquote>
<div>caldav://your.hostna.me/path/to/caldav.php/USERNAME/home</div>
</blockquote>
<div>as calendar-URI and</div>
<blockquote>
<div>http://your.hostna.me/path/to/caldav.php/USERNAME/YOUR-CONTACTS-NAME</div>
</blockquote>
<div>(whatever you chose as addressbook name before) as URL for cardDAV, also check avoid IfMatch.</div>
<div>That was it for me - i now can finally sync my iPhone (and probably other smartphones too?) wirelessly with using only free and open Tools with Linux! Yay!</div>
</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.kanojo.de%2F2010%2F12%2F07%2Ffreeopen-wireless-sync-your-iphone-with-linux%2F&amp;title=Free%2FOpen%20Wireless%20Sync%20your%20iPhone%20with%20Linux%21" id="wpa2a_2"><img src="http://kanojo.blogs.ghostdub.de/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.kanojo.de/2010/12/07/freeopen-wireless-sync-your-iphone-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Push-EMail with your own Mailserver (Exim, Postfix, QMail, etc&#8230;)</title>
		<link>http://blog.kanojo.de/2009/11/04/iphone-push-email-with-your-own-mailserver-exim-postfix-qmail-etc/</link>
		<comments>http://blog.kanojo.de/2009/11/04/iphone-push-email-with-your-own-mailserver-exim-postfix-qmail-etc/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 14:35:15 +0000</pubDate>
		<dc:creator>nebuk</dc:creator>
				<category><![CDATA[Electronic]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tinkering]]></category>

		<guid isPermaLink="false">http://blog.kanojo.de/?p=67</guid>
		<description><![CDATA[As Jabber does not seem appropriate for a SMS-replacement (the clients just don't to survive connection changes from wifi-&#62;3g, 3g-&#62;E, etc.) i've been looking for something different. E-Mail is nice, just the shortest polling-interval of 15minutes is not suited for realtime communication. So - theres Push Email (meaning the iPhone will hold a HTTP connection [...]]]></description>
			<content:encoded><![CDATA[<p>As Jabber does not seem appropriate for a SMS-replacement (the clients just don't  to survive connection changes from wifi-&gt;3g, 3g-&gt;E, etc.) i've been looking for something different. E-Mail is nice, just the shortest polling-interval of 15minutes is not suited for realtime communication. So - theres Push Email (meaning the iPhone will hold a HTTP connection to some server open all the time and the server writes something to that stream as soon as a new mail arrives) for various services including Microsoft Exchange and GMail. How about you hosting a own server since you don't want to give away all your data? No problem - either use one of the tons of commercial servers supporting Push or use Z-Push with your favorite IMAP and SMTP server.</p>
<p><span id="more-67"></span></p>
<p>Z-Push is a collection of PHP Scripts that emulate a Microsoft Exchange AS Server to provide push. It supports multiple backends - IMAP among them.</p>
<p>One drawback of Z-Push is that it does so strange PHP magic it doesn't support PHP-CGI on apache, it wants mod_php really really bad. But mod_php is bad for security. So for testing purposes i've set up Z-Push on my homeserver instead of my dedicated server which runs php-cgi. Problem: Z-Push will run on a different domain and machine than the mailserver runs on. This produces quite some headache - here's how you solve it:</p>
<ol>
<li>normally install Z-Push (simply unpack the tarball and install according to INSTALL) on your "small server". Edit config.php to reflect your timezone settings, change the BACKEND_PROVIDER to "BackendIMAP", enter your server data (you may want /ssl/[no]validate-cert in IMAP_OPTIONS). Also set IMAP_DEFAULTFROM to "@yourdomain.com" - important <img src='http://blog.kanojo.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
<li>Configure your "small servers" MTA to relay via your "big server". As i don't want a pseudo-open relay on my "big server" i chose to use exims SMARTHOST with SMTP Login method:</li>
<li>(I'm assuming Debian here) install exim4 or start dpkg-reconfigure exim4-config. Configure your box to be a smarthost with remote smtp. Then open up "<tt>/etc/exim4/passwd.client" and add a line with the syntax "host:user:password" to reflect your "big servers" smtp account.</tt></li>
<li><tt>As this is a normal smtp connection and no relay, no changes must be made to your big server.</tt></li>
<li><tt>Thats it, enter the data as Microsoft Exchange Account on your iPhone, valdidation will fail. Press Next and Save anyways, navigate to Account Details, turn of SSL.</tt></li>
<li><tt>Now your Push-Email account works!</tt></li>
</ol>
<p>Tipp: if you need debug output from Z-Push create a file called debug.txt in its Install-Dir and chmod it a+rw.</p>
<p>Well, this is IMO a quite nice way to get PushMail as a SMS-Substitute for the iPhone (given all your friends have Smartphones with Internet and use your Push solution too <img src='http://blog.kanojo.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ). Have fun!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.kanojo.de%2F2009%2F11%2F04%2Fiphone-push-email-with-your-own-mailserver-exim-postfix-qmail-etc%2F&amp;title=iPhone%20Push-EMail%20with%20your%20own%20Mailserver%20%28Exim%2C%20Postfix%2C%20QMail%2C%20etc%26%238230%3B%29" id="wpa2a_4"><img src="http://kanojo.blogs.ghostdub.de/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.kanojo.de/2009/11/04/iphone-push-email-with-your-own-mailserver-exim-postfix-qmail-etc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GNU/Linux  iPhone Sync &#8211; Wireless! Funambol error -1, yay!</title>
		<link>http://blog.kanojo.de/2009/10/30/gnulinux-iphone-sync-wireless-funambol-error-1-yay/</link>
		<comments>http://blog.kanojo.de/2009/10/30/gnulinux-iphone-sync-wireless-funambol-error-1-yay/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 14:51:09 +0000</pubDate>
		<dc:creator>nebuk</dc:creator>
				<category><![CDATA[Electronic]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tinkering]]></category>

		<guid isPermaLink="false">http://blog.kanojo.de/?p=52</guid>
		<description><![CDATA[I recently got me a iPhone for tinkering, development (i've got a few nice ideas) and general nerdism. I've run into a few problems syncing my PIM (stuff like Contacts, Tasks, etc.) - especially since i use GNU/Linux which is no platform to run iTunes. Pictures and Music is no Problem as gtkpod and the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently got me a iPhone for tinkering, development (i've got a few nice ideas) and general nerdism. I've run into a few problems syncing my PIM (stuff like Contacts, Tasks, etc.) - especially since i use GNU/Linux which is no platform to run iTunes. Pictures and Music is no Problem as gtkpod and the like support the iPhone. Just the important stuff does not work out nicely.</p>
<p><span id="more-52"></span></p>
<p>So, after a *ton* of googeling and looking around i found out theres a app for jailbroken iPhones which reads the .sqlitedb files of Contacts, Calendar and Notes and sends it to a specialized synchronization server for PIM. Luckily theres a bunch of clients for other platforms - including S60, evolution, ldap, etc. - we're interested in the Evolution one.</p>
<p>So, i installed Funambol (the syncserver) on my server and started it up. First to notice is that the startup often does not work at first try - i had to start/stop the server a few times before it would serve me on http://hostname:8080/funambol/. Also there seems to be a fucked-up state where the http-server is running but the admin-interface won't let you log in. At that point i also had to restart the server a few times *sigh*.<br />
Then i installed iPhoneSync, the iPhone funambol client on my handset, started it up, entered my servers data and synced. Woosh, failed. The Log said "server returned error -1" ... wowziez, cool - whats that? No table of error codes, no description, no server debug log entries, nothing - not even a bugreport in some mailinglist. Basically its a funambol bug concerning contact-Thumbnails with more than 8k size *Sigh*. At least its fixed in svn trunk...</p>
<p>Now comes the fun part - compiling Funambol. As Funambol needs tomcat, netbeans, maven2 and a whole other bunch of dependencies its *really* fun. With some tinkering i made it to a installer package - that now even works with the iPhone.<br />
So, for all of you out there running into the same bug as me - heres a Funambol binary of svn trunk with this bug fixed:</p>
<p><a title="funambol-8.2.2-SNAPSHOT.bin" href="http://tmp.kanojo.de/funambol-8.2.2-SNAPSHOT.bin">http://tmp.kanojo.de/funambol-8.2.2-SNAPSHOT.bin</a></p>
<p>So - here's what you basically need to do:</p>
<ol>
<li>scp the above binary on your server, ssh there and execute "sh <a title="funambol-8.2.2-SNAPSHOT.bin" href="http://tmp.kanojo.de/funambol-8.2.2-SNAPSHOT.bin">funambol-8.2.2-SNAPSHOT.bin</a>"</li>
<li>install the server as guided by the installation program, i installed it to /opt. Also note it *really* only installs stuff there, so no worries about trash not managed by the package management on your system <img src='http://blog.kanojo.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
<li>when asked whether you want to start the server say no</li>
<li>cd to /&lt;wherever&gt;/Funambol/, execute "./bin/funambol-server start", wait a few minutes (you can also check top whether java has stopped eating up your whole cpu-power)</li>
<li>start up the admin interface, either on the server by using remote X (ssh -X) "./admin/bin/funamboladmin" or in a installation of funambol on your current desktop box.</li>
<li>there, log in using "admin" as user and "sa" as password, go to user management, change the admin pw (important! <img src='http://blog.kanojo.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) and log in again.</li>
<li>once again in user management create a new user for you.</li>
<li>on your jailbroken iPhone with cydia, install "iphonesync" via cydia, start it up, enter your servers data (http://yourhostname:8080/funambol/ds) - and sync!</li>
<li>on your desktop box, install syncevolution, to configure do the following:</li>
<li>execute "syncevolution --configure --sync-property "username=123456" --sync-property "password=!@#ABcd1234" funambol". then open up ~/.config/syncevolution/funambol/config.ini and change the URI to the same as you used on your iPhone</li>
<li>sync using syncevolution -s &lt;mode&gt; funambol (&lt;mode&gt; can be one of the items seen in "syncevolution -s ?")</li>
</ol>
<p>Happy Syncing!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.kanojo.de%2F2009%2F10%2F30%2Fgnulinux-iphone-sync-wireless-funambol-error-1-yay%2F&amp;title=GNU%2FLinux%20%20iPhone%20Sync%20%26%238211%3B%20Wireless%21%20Funambol%20error%20-1%2C%20yay%21" id="wpa2a_6"><img src="http://kanojo.blogs.ghostdub.de/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.kanojo.de/2009/10/30/gnulinux-iphone-sync-wireless-funambol-error-1-yay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

